From 06405807ebaa208dc23fe7fc334f8bbb5858bb5c Mon Sep 17 00:00:00 2001 From: jygaulier Date: Thu, 5 Oct 2023 12:24:27 +0200 Subject: [PATCH] WIP/POC DO NOT MERGE use "pusher" to wait for export-by-email worker to tell client that export is done. nb: export worker is artificially delayed by 30s ! --- Phraseanet-production-client/config/config.js | 2 +- Phraseanet-production-client/dist/account.js | 20 +- .../dist/account.min.js | 20 +- .../dist/authenticate.js | 436 +- .../dist/authenticate.min.js | 436 +- Phraseanet-production-client/dist/commons.js | 2 +- .../dist/commons.min.js | 2 +- Phraseanet-production-client/dist/lazy-0.js | 30 +- .../dist/lazy-0.min.js | 30 +- Phraseanet-production-client/dist/lazy-1.js | 282 +- .../dist/lazy-1.min.js | 282 +- Phraseanet-production-client/dist/lazy-2.js | 20 +- .../dist/lazy-2.min.js | 20 +- Phraseanet-production-client/dist/lazy-3.js | 604 +- .../dist/lazy-3.min.js | 604 +- .../dist/lightbox-mobile.js | 838 +-- .../dist/lightbox-mobile.min.js | 838 +-- Phraseanet-production-client/dist/lightbox.js | 20 +- .../dist/lightbox.min.js | 20 +- .../dist/permaview.js | 16 +- .../dist/permaview.min.js | 16 +- .../dist/production.js | 5212 ++++++++++++++++- .../dist/production.min.js | 5212 ++++++++++++++++- .../dist/skin-000000.js | 12 +- .../dist/skin-000000.min.js | 12 +- .../dist/skin-959595.js | 12 +- .../dist/skin-959595.min.js | 12 +- .../dist/skin-FFFFFF.js | 12 +- .../dist/skin-FFFFFF.min.js | 12 +- .../package-lock.json | 15 + Phraseanet-production-client/package.json | 1 + .../src/components/record/export.js | 30 +- composer.json | 3 +- composer.lock | 62 +- .../Controller/Prod/DoDownloadController.php | 1 + .../Controller/Prod/DownloadController.php | 1 + .../Controller/Prod/ExportController.php | 58 + .../ControllerProvider/Prod/DoDownload.php | 3 + .../ControllerProvider/Prod/Download.php | 1 + .../ControllerProvider/Prod/Export.php | 8 + .../Phrasea/Twig/PhraseanetExtension.php | 2 +- .../WorkerManager/Worker/ExportMailWorker.php | 14 + templates/web/common/dialog_export.html.twig | 78 +- 43 files changed, 12402 insertions(+), 2909 deletions(-) diff --git a/Phraseanet-production-client/config/config.js b/Phraseanet-production-client/config/config.js index 208c4dd76c..9b644e52a2 100644 --- a/Phraseanet-production-client/config/config.js +++ b/Phraseanet-production-client/config/config.js @@ -13,5 +13,5 @@ module.exports = { setupDir: _root + 'tests/setup/node.js', karmaConf: _root + 'config/karma.conf.js', // change this version when you change JS file for lazy loading - assetFileVersion: 93 + assetFileVersion: 94 }; diff --git a/Phraseanet-production-client/dist/account.js b/Phraseanet-production-client/dist/account.js index cdfbdd43e3..c66a326aa1 100644 --- a/Phraseanet-production-client/dist/account.js +++ b/Phraseanet-production-client/dist/account.js @@ -70,7 +70,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = "/assets/production/"; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 282); +/******/ return __webpack_require__(__webpack_require__.s = 283); /******/ }) /************************************************************************/ /******/ ({ @@ -3864,21 +3864,21 @@ var PluralResolver = function () { /***/ }), -/***/ 282: +/***/ 283: /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(283); +module.exports = __webpack_require__(284); /***/ }), -/***/ 283: +/***/ 284: /***/ (function(module, exports, __webpack_require__) { "use strict"; -var _bootstrap = __webpack_require__(284); +var _bootstrap = __webpack_require__(285); var _bootstrap2 = _interopRequireDefault(_bootstrap); @@ -3896,7 +3896,7 @@ module.exports = accountApp; /***/ }), -/***/ 284: +/***/ 285: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3924,7 +3924,7 @@ var _lodash = __webpack_require__(4); var _lodash2 = _interopRequireDefault(_lodash); -var _config = __webpack_require__(285); +var _config = __webpack_require__(286); var _config2 = _interopRequireDefault(_config); @@ -3932,7 +3932,7 @@ var _emitter = __webpack_require__(15); var _emitter2 = _interopRequireDefault(_emitter); -var _account = __webpack_require__(286); +var _account = __webpack_require__(287); var _account2 = _interopRequireDefault(_account); @@ -4010,7 +4010,7 @@ exports.default = bootstrap; /***/ }), -/***/ 285: +/***/ 286: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4029,7 +4029,7 @@ exports.default = defaultConfig; /***/ }), -/***/ 286: +/***/ 287: /***/ (function(module, exports, __webpack_require__) { "use strict"; diff --git a/Phraseanet-production-client/dist/account.min.js b/Phraseanet-production-client/dist/account.min.js index cdfbdd43e3..c66a326aa1 100644 --- a/Phraseanet-production-client/dist/account.min.js +++ b/Phraseanet-production-client/dist/account.min.js @@ -70,7 +70,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = "/assets/production/"; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 282); +/******/ return __webpack_require__(__webpack_require__.s = 283); /******/ }) /************************************************************************/ /******/ ({ @@ -3864,21 +3864,21 @@ var PluralResolver = function () { /***/ }), -/***/ 282: +/***/ 283: /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(283); +module.exports = __webpack_require__(284); /***/ }), -/***/ 283: +/***/ 284: /***/ (function(module, exports, __webpack_require__) { "use strict"; -var _bootstrap = __webpack_require__(284); +var _bootstrap = __webpack_require__(285); var _bootstrap2 = _interopRequireDefault(_bootstrap); @@ -3896,7 +3896,7 @@ module.exports = accountApp; /***/ }), -/***/ 284: +/***/ 285: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3924,7 +3924,7 @@ var _lodash = __webpack_require__(4); var _lodash2 = _interopRequireDefault(_lodash); -var _config = __webpack_require__(285); +var _config = __webpack_require__(286); var _config2 = _interopRequireDefault(_config); @@ -3932,7 +3932,7 @@ var _emitter = __webpack_require__(15); var _emitter2 = _interopRequireDefault(_emitter); -var _account = __webpack_require__(286); +var _account = __webpack_require__(287); var _account2 = _interopRequireDefault(_account); @@ -4010,7 +4010,7 @@ exports.default = bootstrap; /***/ }), -/***/ 285: +/***/ 286: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4029,7 +4029,7 @@ exports.default = defaultConfig; /***/ }), -/***/ 286: +/***/ 287: /***/ (function(module, exports, __webpack_require__) { "use strict"; diff --git a/Phraseanet-production-client/dist/authenticate.js b/Phraseanet-production-client/dist/authenticate.js index d95caa7394..a54c527f80 100644 --- a/Phraseanet-production-client/dist/authenticate.js +++ b/Phraseanet-production-client/dist/authenticate.js @@ -96,7 +96,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } -/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=93"; +/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=94"; /******/ var timeout = setTimeout(onScriptComplete, 120000); /******/ script.onerror = script.onload = onScriptComplete; /******/ function onScriptComplete() { @@ -152,7 +152,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.oe = function(err) { console.error(err); throw err; }; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 265); +/******/ return __webpack_require__(__webpack_require__.s = 266); /******/ }) /************************************************************************/ /******/ ({ @@ -3645,21 +3645,21 @@ var Translator = function (_EventEmitter) { /***/ }), -/***/ 265: +/***/ 266: /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(266); +module.exports = __webpack_require__(267); /***/ }), -/***/ 266: +/***/ 267: /***/ (function(module, exports, __webpack_require__) { "use strict"; -var _bootstrap = __webpack_require__(267); +var _bootstrap = __webpack_require__(268); var _bootstrap2 = _interopRequireDefault(_bootstrap); @@ -3677,7 +3677,7 @@ module.exports = authenticateApp; /***/ }), -/***/ 267: +/***/ 268: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3705,7 +3705,7 @@ var _lodash = __webpack_require__(4); var _lodash2 = _interopRequireDefault(_lodash); -var _config = __webpack_require__(268); +var _config = __webpack_require__(269); var _config2 = _interopRequireDefault(_config); @@ -3713,7 +3713,7 @@ var _emitter = __webpack_require__(15); var _emitter2 = _interopRequireDefault(_emitter); -var _authentication = __webpack_require__(269); +var _authentication = __webpack_require__(270); var _authentication2 = _interopRequireDefault(_authentication); @@ -3803,7 +3803,7 @@ exports.default = bootstrap; /***/ }), -/***/ 268: +/***/ 269: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3822,134 +3822,6 @@ exports.default = defaultConfig; /***/ }), -/***/ 269: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _jquery = __webpack_require__(0); - -var _jquery2 = _interopRequireDefault(_jquery); - -var _login = __webpack_require__(270); - -var _login2 = _interopRequireDefault(_login); - -var _forgotPassword = __webpack_require__(275); - -var _forgotPassword2 = _interopRequireDefault(_forgotPassword); - -var _renewPassword = __webpack_require__(276); - -var _renewPassword2 = _interopRequireDefault(_renewPassword); - -var _register = __webpack_require__(277); - -var _register2 = _interopRequireDefault(_register); - -var _registerProvider = __webpack_require__(278); - -var _registerProvider2 = _interopRequireDefault(_registerProvider); - -var _renewEmail = __webpack_require__(279); - -var _renewEmail2 = _interopRequireDefault(_renewEmail); - -var _changePassword = __webpack_require__(280); - -var _changePassword2 = _interopRequireDefault(_changePassword); - -var _sprintfJs = __webpack_require__(45); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -__webpack_require__(281); // multiselect - -/* - * This file is part of Phraseanet - * - * (c) 2005-2016 Alchemy - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -var authentication = function authentication(services) { - var configService = services.configService, - localeService = services.localeService, - appEvents = services.appEvents; - - - var initialize = function initialize() { - // close alerts - (0, _jquery2.default)(document).on('click', '.alert .alert-block-close a', function (e) { - e.preventDefault(); - (0, _jquery2.default)(this).closest('.alert').alert('close'); - return false; - }); - - (0, _jquery2.default)('select[multiple="multiple"]').multiselect({ - buttonWidth: '100%', - buttonClass: 'btn btn-inverse', - maxHeight: 185, - includeSelectAllOption: true, - selectAllValue: 'all', - selectAllText: localeService.t('all_collections'), - buttonText: function buttonText(options, select) { - if (options.length === 0) { - return localeService.t('no_collection_selected'); - } else { - - return (0, _sprintfJs.sprintf)(localeService.t(options.length === 1 ? 'one_collection_selected' : 'collections_selected'), options.length); - } - } - }); - (0, _jquery2.default)('form[name="registerForm"]').on('submit', function () { - // must deselect the 'select all' checkbox for server side validation. - (0, _jquery2.default)('select[multiple="multiple"]').multiselect('deselect', 'all'); - }); - }; - - var login = function login() { - // init login form - (0, _login2.default)(services).initialize(); - }; - var forgotPassword = function forgotPassword() { - // init login form - (0, _forgotPassword2.default)(services).initialize(); - }; - var renewPassword = function renewPassword() { - // init login form - (0, _renewPassword2.default)(services).initialize(); - }; - var register = function register() { - // init login form - (0, _register2.default)(services).initialize(); - }; - var registerProvider = function registerProvider() { - // init login form - (0, _registerProvider2.default)(services).initialize(); - }; - var renewEmail = function renewEmail() { - // init login form - (0, _renewEmail2.default)(services).initialize(); - }; - var changePassword = function changePassword() { - // init login form - (0, _changePassword2.default)(services).initialize(); - }; - - return { initialize: initialize, login: login, forgotPassword: forgotPassword, renewPassword: renewPassword, register: register, registerProvider: registerProvider, renewEmail: renewEmail, changePassword: changePassword }; -}; -exports.default = authentication; - -/***/ }), - /***/ 27: /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -4087,6 +3959,134 @@ var LanguageUtil = function () { "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _jquery = __webpack_require__(0); + +var _jquery2 = _interopRequireDefault(_jquery); + +var _login = __webpack_require__(271); + +var _login2 = _interopRequireDefault(_login); + +var _forgotPassword = __webpack_require__(276); + +var _forgotPassword2 = _interopRequireDefault(_forgotPassword); + +var _renewPassword = __webpack_require__(277); + +var _renewPassword2 = _interopRequireDefault(_renewPassword); + +var _register = __webpack_require__(278); + +var _register2 = _interopRequireDefault(_register); + +var _registerProvider = __webpack_require__(279); + +var _registerProvider2 = _interopRequireDefault(_registerProvider); + +var _renewEmail = __webpack_require__(280); + +var _renewEmail2 = _interopRequireDefault(_renewEmail); + +var _changePassword = __webpack_require__(281); + +var _changePassword2 = _interopRequireDefault(_changePassword); + +var _sprintfJs = __webpack_require__(45); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +__webpack_require__(282); // multiselect + +/* + * This file is part of Phraseanet + * + * (c) 2005-2016 Alchemy + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +var authentication = function authentication(services) { + var configService = services.configService, + localeService = services.localeService, + appEvents = services.appEvents; + + + var initialize = function initialize() { + // close alerts + (0, _jquery2.default)(document).on('click', '.alert .alert-block-close a', function (e) { + e.preventDefault(); + (0, _jquery2.default)(this).closest('.alert').alert('close'); + return false; + }); + + (0, _jquery2.default)('select[multiple="multiple"]').multiselect({ + buttonWidth: '100%', + buttonClass: 'btn btn-inverse', + maxHeight: 185, + includeSelectAllOption: true, + selectAllValue: 'all', + selectAllText: localeService.t('all_collections'), + buttonText: function buttonText(options, select) { + if (options.length === 0) { + return localeService.t('no_collection_selected'); + } else { + + return (0, _sprintfJs.sprintf)(localeService.t(options.length === 1 ? 'one_collection_selected' : 'collections_selected'), options.length); + } + } + }); + (0, _jquery2.default)('form[name="registerForm"]').on('submit', function () { + // must deselect the 'select all' checkbox for server side validation. + (0, _jquery2.default)('select[multiple="multiple"]').multiselect('deselect', 'all'); + }); + }; + + var login = function login() { + // init login form + (0, _login2.default)(services).initialize(); + }; + var forgotPassword = function forgotPassword() { + // init login form + (0, _forgotPassword2.default)(services).initialize(); + }; + var renewPassword = function renewPassword() { + // init login form + (0, _renewPassword2.default)(services).initialize(); + }; + var register = function register() { + // init login form + (0, _register2.default)(services).initialize(); + }; + var registerProvider = function registerProvider() { + // init login form + (0, _registerProvider2.default)(services).initialize(); + }; + var renewEmail = function renewEmail() { + // init login form + (0, _renewEmail2.default)(services).initialize(); + }; + var changePassword = function changePassword() { + // init login form + (0, _changePassword2.default)(services).initialize(); + }; + + return { initialize: initialize, login: login, forgotPassword: forgotPassword, renewPassword: renewPassword, register: register, registerProvider: registerProvider, renewEmail: renewEmail, changePassword: changePassword }; +}; +exports.default = authentication; + +/***/ }), + +/***/ 271: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); @@ -4137,7 +4137,7 @@ exports.default = login; /***/ }), -/***/ 271: +/***/ 272: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4436,7 +4436,7 @@ exports.default = FormValidator; /***/ }), -/***/ 272: +/***/ 273: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4458,11 +4458,11 @@ var _backbone = __webpack_require__(53); var _backbone2 = _interopRequireDefault(_backbone); -var _error = __webpack_require__(273); +var _error = __webpack_require__(274); var _error2 = _interopRequireDefault(_error); -var _multiviews = __webpack_require__(274); +var _multiviews = __webpack_require__(275); var _multiviews2 = _interopRequireDefault(_multiviews); @@ -4513,7 +4513,7 @@ exports.default = InputView; /***/ }), -/***/ 273: +/***/ 274: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4595,7 +4595,7 @@ exports.default = ErrorView; /***/ }), -/***/ 274: +/***/ 275: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4637,7 +4637,7 @@ exports.default = { /***/ }), -/***/ 275: +/***/ 276: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4692,7 +4692,7 @@ exports.default = forgotPassword; /***/ }), -/***/ 276: +/***/ 277: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4759,7 +4759,7 @@ exports.default = renewPassword; /***/ }), -/***/ 277: +/***/ 278: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4909,7 +4909,7 @@ exports.default = regiser; /***/ }), -/***/ 278: +/***/ 279: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -5028,73 +5028,6 @@ exports.default = registerProvider; /***/ }), -/***/ 279: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _jquery = __webpack_require__(0); - -var _jquery2 = _interopRequireDefault(_jquery); - -var _form = __webpack_require__(43); - -var _form2 = _interopRequireDefault(_form); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/* - * This file is part of Phraseanet - * - * (c) 2005-2016 Alchemy - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -var renewEmail = function renewEmail(services) { - var configService = services.configService, - localeService = services.localeService, - appEvents = services.appEvents; - - var initialize = function initialize() { - new _form2.default({ - el: (0, _jquery2.default)('form[name=changeEmail]'), - errorTemplate: '#field_errors_block', - onRenderError: function onRenderError(name, $el) { - $el.closest('.control-group').addClass('error'); - }, - rules: [{ - name: 'form_password', - rules: 'required', - message: localeService.t('validation_blank') - }, { - name: 'form_email', - rules: 'required', - message: localeService.t('validation_blank') - }, { - name: 'form_email', - rules: 'email', - message: localeService.t('validation_email') - }, { - name: 'form_email_confirm', - rules: 'matches[form_email]', - message: localeService.t('email_match') - }] - }); - }; - - return { initialize: initialize }; -}; -exports.default = renewEmail; - -/***/ }), - /***/ 28: /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -5271,6 +5204,73 @@ var PluralResolver = function () { "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _jquery = __webpack_require__(0); + +var _jquery2 = _interopRequireDefault(_jquery); + +var _form = __webpack_require__(43); + +var _form2 = _interopRequireDefault(_form); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/* + * This file is part of Phraseanet + * + * (c) 2005-2016 Alchemy + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +var renewEmail = function renewEmail(services) { + var configService = services.configService, + localeService = services.localeService, + appEvents = services.appEvents; + + var initialize = function initialize() { + new _form2.default({ + el: (0, _jquery2.default)('form[name=changeEmail]'), + errorTemplate: '#field_errors_block', + onRenderError: function onRenderError(name, $el) { + $el.closest('.control-group').addClass('error'); + }, + rules: [{ + name: 'form_password', + rules: 'required', + message: localeService.t('validation_blank') + }, { + name: 'form_email', + rules: 'required', + message: localeService.t('validation_blank') + }, { + name: 'form_email', + rules: 'email', + message: localeService.t('validation_email') + }, { + name: 'form_email_confirm', + rules: 'matches[form_email]', + message: localeService.t('email_match') + }] + }); + }; + + return { initialize: initialize }; +}; +exports.default = renewEmail; + +/***/ }), + +/***/ 281: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); @@ -5336,7 +5336,7 @@ exports.default = changePassword; /***/ }), -/***/ 281: +/***/ 282: /***/ (function(module, exports) { /*** IMPORTS FROM imports-loader ***/ @@ -25173,11 +25173,11 @@ var _backbone = __webpack_require__(53); var _backbone2 = _interopRequireDefault(_backbone); -var _validator = __webpack_require__(271); +var _validator = __webpack_require__(272); var _validator2 = _interopRequireDefault(_validator); -var _input = __webpack_require__(272); +var _input = __webpack_require__(273); var _input2 = _interopRequireDefault(_input); diff --git a/Phraseanet-production-client/dist/authenticate.min.js b/Phraseanet-production-client/dist/authenticate.min.js index d4069e03e9..9b6bab6528 100644 --- a/Phraseanet-production-client/dist/authenticate.min.js +++ b/Phraseanet-production-client/dist/authenticate.min.js @@ -96,7 +96,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } -/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=93"; +/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=94"; /******/ var timeout = setTimeout(onScriptComplete, 120000); /******/ script.onerror = script.onload = onScriptComplete; /******/ function onScriptComplete() { @@ -152,7 +152,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.oe = function(err) { console.error(err); throw err; }; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 265); +/******/ return __webpack_require__(__webpack_require__.s = 266); /******/ }) /************************************************************************/ /******/ ({ @@ -3645,21 +3645,21 @@ var Translator = function (_EventEmitter) { /***/ }), -/***/ 265: +/***/ 266: /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(266); +module.exports = __webpack_require__(267); /***/ }), -/***/ 266: +/***/ 267: /***/ (function(module, exports, __webpack_require__) { "use strict"; -var _bootstrap = __webpack_require__(267); +var _bootstrap = __webpack_require__(268); var _bootstrap2 = _interopRequireDefault(_bootstrap); @@ -3677,7 +3677,7 @@ module.exports = authenticateApp; /***/ }), -/***/ 267: +/***/ 268: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3705,7 +3705,7 @@ var _lodash = __webpack_require__(4); var _lodash2 = _interopRequireDefault(_lodash); -var _config = __webpack_require__(268); +var _config = __webpack_require__(269); var _config2 = _interopRequireDefault(_config); @@ -3713,7 +3713,7 @@ var _emitter = __webpack_require__(15); var _emitter2 = _interopRequireDefault(_emitter); -var _authentication = __webpack_require__(269); +var _authentication = __webpack_require__(270); var _authentication2 = _interopRequireDefault(_authentication); @@ -3803,7 +3803,7 @@ exports.default = bootstrap; /***/ }), -/***/ 268: +/***/ 269: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3822,134 +3822,6 @@ exports.default = defaultConfig; /***/ }), -/***/ 269: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _jquery = __webpack_require__(0); - -var _jquery2 = _interopRequireDefault(_jquery); - -var _login = __webpack_require__(270); - -var _login2 = _interopRequireDefault(_login); - -var _forgotPassword = __webpack_require__(275); - -var _forgotPassword2 = _interopRequireDefault(_forgotPassword); - -var _renewPassword = __webpack_require__(276); - -var _renewPassword2 = _interopRequireDefault(_renewPassword); - -var _register = __webpack_require__(277); - -var _register2 = _interopRequireDefault(_register); - -var _registerProvider = __webpack_require__(278); - -var _registerProvider2 = _interopRequireDefault(_registerProvider); - -var _renewEmail = __webpack_require__(279); - -var _renewEmail2 = _interopRequireDefault(_renewEmail); - -var _changePassword = __webpack_require__(280); - -var _changePassword2 = _interopRequireDefault(_changePassword); - -var _sprintfJs = __webpack_require__(45); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -__webpack_require__(281); // multiselect - -/* - * This file is part of Phraseanet - * - * (c) 2005-2016 Alchemy - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -var authentication = function authentication(services) { - var configService = services.configService, - localeService = services.localeService, - appEvents = services.appEvents; - - - var initialize = function initialize() { - // close alerts - (0, _jquery2.default)(document).on('click', '.alert .alert-block-close a', function (e) { - e.preventDefault(); - (0, _jquery2.default)(this).closest('.alert').alert('close'); - return false; - }); - - (0, _jquery2.default)('select[multiple="multiple"]').multiselect({ - buttonWidth: '100%', - buttonClass: 'btn btn-inverse', - maxHeight: 185, - includeSelectAllOption: true, - selectAllValue: 'all', - selectAllText: localeService.t('all_collections'), - buttonText: function buttonText(options, select) { - if (options.length === 0) { - return localeService.t('no_collection_selected'); - } else { - - return (0, _sprintfJs.sprintf)(localeService.t(options.length === 1 ? 'one_collection_selected' : 'collections_selected'), options.length); - } - } - }); - (0, _jquery2.default)('form[name="registerForm"]').on('submit', function () { - // must deselect the 'select all' checkbox for server side validation. - (0, _jquery2.default)('select[multiple="multiple"]').multiselect('deselect', 'all'); - }); - }; - - var login = function login() { - // init login form - (0, _login2.default)(services).initialize(); - }; - var forgotPassword = function forgotPassword() { - // init login form - (0, _forgotPassword2.default)(services).initialize(); - }; - var renewPassword = function renewPassword() { - // init login form - (0, _renewPassword2.default)(services).initialize(); - }; - var register = function register() { - // init login form - (0, _register2.default)(services).initialize(); - }; - var registerProvider = function registerProvider() { - // init login form - (0, _registerProvider2.default)(services).initialize(); - }; - var renewEmail = function renewEmail() { - // init login form - (0, _renewEmail2.default)(services).initialize(); - }; - var changePassword = function changePassword() { - // init login form - (0, _changePassword2.default)(services).initialize(); - }; - - return { initialize: initialize, login: login, forgotPassword: forgotPassword, renewPassword: renewPassword, register: register, registerProvider: registerProvider, renewEmail: renewEmail, changePassword: changePassword }; -}; -exports.default = authentication; - -/***/ }), - /***/ 27: /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -4087,6 +3959,134 @@ var LanguageUtil = function () { "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _jquery = __webpack_require__(0); + +var _jquery2 = _interopRequireDefault(_jquery); + +var _login = __webpack_require__(271); + +var _login2 = _interopRequireDefault(_login); + +var _forgotPassword = __webpack_require__(276); + +var _forgotPassword2 = _interopRequireDefault(_forgotPassword); + +var _renewPassword = __webpack_require__(277); + +var _renewPassword2 = _interopRequireDefault(_renewPassword); + +var _register = __webpack_require__(278); + +var _register2 = _interopRequireDefault(_register); + +var _registerProvider = __webpack_require__(279); + +var _registerProvider2 = _interopRequireDefault(_registerProvider); + +var _renewEmail = __webpack_require__(280); + +var _renewEmail2 = _interopRequireDefault(_renewEmail); + +var _changePassword = __webpack_require__(281); + +var _changePassword2 = _interopRequireDefault(_changePassword); + +var _sprintfJs = __webpack_require__(45); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +__webpack_require__(282); // multiselect + +/* + * This file is part of Phraseanet + * + * (c) 2005-2016 Alchemy + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +var authentication = function authentication(services) { + var configService = services.configService, + localeService = services.localeService, + appEvents = services.appEvents; + + + var initialize = function initialize() { + // close alerts + (0, _jquery2.default)(document).on('click', '.alert .alert-block-close a', function (e) { + e.preventDefault(); + (0, _jquery2.default)(this).closest('.alert').alert('close'); + return false; + }); + + (0, _jquery2.default)('select[multiple="multiple"]').multiselect({ + buttonWidth: '100%', + buttonClass: 'btn btn-inverse', + maxHeight: 185, + includeSelectAllOption: true, + selectAllValue: 'all', + selectAllText: localeService.t('all_collections'), + buttonText: function buttonText(options, select) { + if (options.length === 0) { + return localeService.t('no_collection_selected'); + } else { + + return (0, _sprintfJs.sprintf)(localeService.t(options.length === 1 ? 'one_collection_selected' : 'collections_selected'), options.length); + } + } + }); + (0, _jquery2.default)('form[name="registerForm"]').on('submit', function () { + // must deselect the 'select all' checkbox for server side validation. + (0, _jquery2.default)('select[multiple="multiple"]').multiselect('deselect', 'all'); + }); + }; + + var login = function login() { + // init login form + (0, _login2.default)(services).initialize(); + }; + var forgotPassword = function forgotPassword() { + // init login form + (0, _forgotPassword2.default)(services).initialize(); + }; + var renewPassword = function renewPassword() { + // init login form + (0, _renewPassword2.default)(services).initialize(); + }; + var register = function register() { + // init login form + (0, _register2.default)(services).initialize(); + }; + var registerProvider = function registerProvider() { + // init login form + (0, _registerProvider2.default)(services).initialize(); + }; + var renewEmail = function renewEmail() { + // init login form + (0, _renewEmail2.default)(services).initialize(); + }; + var changePassword = function changePassword() { + // init login form + (0, _changePassword2.default)(services).initialize(); + }; + + return { initialize: initialize, login: login, forgotPassword: forgotPassword, renewPassword: renewPassword, register: register, registerProvider: registerProvider, renewEmail: renewEmail, changePassword: changePassword }; +}; +exports.default = authentication; + +/***/ }), + +/***/ 271: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); @@ -4137,7 +4137,7 @@ exports.default = login; /***/ }), -/***/ 271: +/***/ 272: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4436,7 +4436,7 @@ exports.default = FormValidator; /***/ }), -/***/ 272: +/***/ 273: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4458,11 +4458,11 @@ var _backbone = __webpack_require__(53); var _backbone2 = _interopRequireDefault(_backbone); -var _error = __webpack_require__(273); +var _error = __webpack_require__(274); var _error2 = _interopRequireDefault(_error); -var _multiviews = __webpack_require__(274); +var _multiviews = __webpack_require__(275); var _multiviews2 = _interopRequireDefault(_multiviews); @@ -4513,7 +4513,7 @@ exports.default = InputView; /***/ }), -/***/ 273: +/***/ 274: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4595,7 +4595,7 @@ exports.default = ErrorView; /***/ }), -/***/ 274: +/***/ 275: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4637,7 +4637,7 @@ exports.default = { /***/ }), -/***/ 275: +/***/ 276: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4692,7 +4692,7 @@ exports.default = forgotPassword; /***/ }), -/***/ 276: +/***/ 277: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4759,7 +4759,7 @@ exports.default = renewPassword; /***/ }), -/***/ 277: +/***/ 278: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4909,7 +4909,7 @@ exports.default = regiser; /***/ }), -/***/ 278: +/***/ 279: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -5028,73 +5028,6 @@ exports.default = registerProvider; /***/ }), -/***/ 279: -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _jquery = __webpack_require__(0); - -var _jquery2 = _interopRequireDefault(_jquery); - -var _form = __webpack_require__(43); - -var _form2 = _interopRequireDefault(_form); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/* - * This file is part of Phraseanet - * - * (c) 2005-2016 Alchemy - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -var renewEmail = function renewEmail(services) { - var configService = services.configService, - localeService = services.localeService, - appEvents = services.appEvents; - - var initialize = function initialize() { - new _form2.default({ - el: (0, _jquery2.default)('form[name=changeEmail]'), - errorTemplate: '#field_errors_block', - onRenderError: function onRenderError(name, $el) { - $el.closest('.control-group').addClass('error'); - }, - rules: [{ - name: 'form_password', - rules: 'required', - message: localeService.t('validation_blank') - }, { - name: 'form_email', - rules: 'required', - message: localeService.t('validation_blank') - }, { - name: 'form_email', - rules: 'email', - message: localeService.t('validation_email') - }, { - name: 'form_email_confirm', - rules: 'matches[form_email]', - message: localeService.t('email_match') - }] - }); - }; - - return { initialize: initialize }; -}; -exports.default = renewEmail; - -/***/ }), - /***/ 28: /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -5271,6 +5204,73 @@ var PluralResolver = function () { "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _jquery = __webpack_require__(0); + +var _jquery2 = _interopRequireDefault(_jquery); + +var _form = __webpack_require__(43); + +var _form2 = _interopRequireDefault(_form); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/* + * This file is part of Phraseanet + * + * (c) 2005-2016 Alchemy + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +var renewEmail = function renewEmail(services) { + var configService = services.configService, + localeService = services.localeService, + appEvents = services.appEvents; + + var initialize = function initialize() { + new _form2.default({ + el: (0, _jquery2.default)('form[name=changeEmail]'), + errorTemplate: '#field_errors_block', + onRenderError: function onRenderError(name, $el) { + $el.closest('.control-group').addClass('error'); + }, + rules: [{ + name: 'form_password', + rules: 'required', + message: localeService.t('validation_blank') + }, { + name: 'form_email', + rules: 'required', + message: localeService.t('validation_blank') + }, { + name: 'form_email', + rules: 'email', + message: localeService.t('validation_email') + }, { + name: 'form_email_confirm', + rules: 'matches[form_email]', + message: localeService.t('email_match') + }] + }); + }; + + return { initialize: initialize }; +}; +exports.default = renewEmail; + +/***/ }), + +/***/ 281: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); @@ -5336,7 +5336,7 @@ exports.default = changePassword; /***/ }), -/***/ 281: +/***/ 282: /***/ (function(module, exports) { /*** IMPORTS FROM imports-loader ***/ @@ -25173,11 +25173,11 @@ var _backbone = __webpack_require__(53); var _backbone2 = _interopRequireDefault(_backbone); -var _validator = __webpack_require__(271); +var _validator = __webpack_require__(272); var _validator2 = _interopRequireDefault(_validator); -var _input = __webpack_require__(272); +var _input = __webpack_require__(273); var _input2 = _interopRequireDefault(_input); diff --git a/Phraseanet-production-client/dist/commons.js b/Phraseanet-production-client/dist/commons.js index e4393dad66..8121543b5d 100644 --- a/Phraseanet-production-client/dist/commons.js +++ b/Phraseanet-production-client/dist/commons.js @@ -91,7 +91,7 @@ /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } -/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=93"; +/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".js?v=94"; /******/ var timeout = setTimeout(onScriptComplete, 120000); /******/ script.onerror = script.onload = onScriptComplete; /******/ function onScriptComplete() { diff --git a/Phraseanet-production-client/dist/commons.min.js b/Phraseanet-production-client/dist/commons.min.js index c52c6a587d..e8a59b42b4 100644 --- a/Phraseanet-production-client/dist/commons.min.js +++ b/Phraseanet-production-client/dist/commons.min.js @@ -91,7 +91,7 @@ /******/ if (__webpack_require__.nc) { /******/ script.setAttribute("nonce", __webpack_require__.nc); /******/ } -/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=93"; +/******/ script.src = __webpack_require__.p + "lazy-" + ({}[chunkId]||chunkId) + ".min.js?v=94"; /******/ var timeout = setTimeout(onScriptComplete, 120000); /******/ script.onerror = script.onload = onScriptComplete; /******/ function onScriptComplete() { diff --git a/Phraseanet-production-client/dist/lazy-0.js b/Phraseanet-production-client/dist/lazy-0.js index 1110767460..b360e44067 100644 --- a/Phraseanet-production-client/dist/lazy-0.js +++ b/Phraseanet-production-client/dist/lazy-0.js @@ -1,12 +1,12 @@ webpackJsonpapp([0],{ -/***/ 325: +/***/ 326: /***/ (function(module, exports, __webpack_require__) { // Generated by CoffeeScript 1.10.0 var BRUTEFORCE_CARDINALITY, MIN_GUESSES_BEFORE_GROWING_SEQUENCE, MIN_SUBMATCH_GUESSES_MULTI_CHAR, MIN_SUBMATCH_GUESSES_SINGLE_CHAR, adjacency_graphs, calc_average_degree, k, scoring, v; -adjacency_graphs = __webpack_require__(356); +adjacency_graphs = __webpack_require__(357); calc_average_degree = function(graph) { var average, k, key, n, neighbors, v; @@ -493,7 +493,7 @@ module.exports = scoring; /***/ }), -/***/ 356: +/***/ 357: /***/ (function(module, exports) { // Generated by CoffeeScript 1.10.0 @@ -736,17 +736,17 @@ module.exports = adjacency_graphs; /***/ }), -/***/ 463: +/***/ 464: /***/ (function(module, exports, __webpack_require__) { // Generated by CoffeeScript 1.10.0 var DATE_MAX_YEAR, DATE_MIN_YEAR, DATE_SPLITS, GRAPHS, L33T_TABLE, RANKED_DICTIONARIES, REGEXEN, adjacency_graphs, build_ranked_dict, frequency_lists, lst, matching, name, scoring; -frequency_lists = __webpack_require__(464); +frequency_lists = __webpack_require__(465); -adjacency_graphs = __webpack_require__(356); +adjacency_graphs = __webpack_require__(357); -scoring = __webpack_require__(325); +scoring = __webpack_require__(326); build_ranked_dict = function(ordered_list) { var i, len1, o, result, word; @@ -1439,7 +1439,7 @@ module.exports = matching; /***/ }), -/***/ 464: +/***/ 465: /***/ (function(module, exports) { // Generated by CoffeeScript 1.10.0 @@ -1461,7 +1461,7 @@ module.exports = frequency_lists; /***/ }), -/***/ 465: +/***/ 466: /***/ (function(module, exports) { // Generated by CoffeeScript 1.10.0 @@ -1525,13 +1525,13 @@ module.exports = time_estimates; /***/ }), -/***/ 466: +/***/ 467: /***/ (function(module, exports, __webpack_require__) { // Generated by CoffeeScript 1.10.0 var feedback, scoring; -scoring = __webpack_require__(325); +scoring = __webpack_require__(326); feedback = { default_feedback: { @@ -1647,13 +1647,13 @@ module.exports = feedback; // Generated by CoffeeScript 1.10.0 var feedback, matching, scoring, time, time_estimates, zxcvbn; -matching = __webpack_require__(463); +matching = __webpack_require__(464); -scoring = __webpack_require__(325); +scoring = __webpack_require__(326); -time_estimates = __webpack_require__(465); +time_estimates = __webpack_require__(466); -feedback = __webpack_require__(466); +feedback = __webpack_require__(467); time = function() { return (new Date()).getTime(); diff --git a/Phraseanet-production-client/dist/lazy-0.min.js b/Phraseanet-production-client/dist/lazy-0.min.js index 1110767460..b360e44067 100644 --- a/Phraseanet-production-client/dist/lazy-0.min.js +++ b/Phraseanet-production-client/dist/lazy-0.min.js @@ -1,12 +1,12 @@ webpackJsonpapp([0],{ -/***/ 325: +/***/ 326: /***/ (function(module, exports, __webpack_require__) { // Generated by CoffeeScript 1.10.0 var BRUTEFORCE_CARDINALITY, MIN_GUESSES_BEFORE_GROWING_SEQUENCE, MIN_SUBMATCH_GUESSES_MULTI_CHAR, MIN_SUBMATCH_GUESSES_SINGLE_CHAR, adjacency_graphs, calc_average_degree, k, scoring, v; -adjacency_graphs = __webpack_require__(356); +adjacency_graphs = __webpack_require__(357); calc_average_degree = function(graph) { var average, k, key, n, neighbors, v; @@ -493,7 +493,7 @@ module.exports = scoring; /***/ }), -/***/ 356: +/***/ 357: /***/ (function(module, exports) { // Generated by CoffeeScript 1.10.0 @@ -736,17 +736,17 @@ module.exports = adjacency_graphs; /***/ }), -/***/ 463: +/***/ 464: /***/ (function(module, exports, __webpack_require__) { // Generated by CoffeeScript 1.10.0 var DATE_MAX_YEAR, DATE_MIN_YEAR, DATE_SPLITS, GRAPHS, L33T_TABLE, RANKED_DICTIONARIES, REGEXEN, adjacency_graphs, build_ranked_dict, frequency_lists, lst, matching, name, scoring; -frequency_lists = __webpack_require__(464); +frequency_lists = __webpack_require__(465); -adjacency_graphs = __webpack_require__(356); +adjacency_graphs = __webpack_require__(357); -scoring = __webpack_require__(325); +scoring = __webpack_require__(326); build_ranked_dict = function(ordered_list) { var i, len1, o, result, word; @@ -1439,7 +1439,7 @@ module.exports = matching; /***/ }), -/***/ 464: +/***/ 465: /***/ (function(module, exports) { // Generated by CoffeeScript 1.10.0 @@ -1461,7 +1461,7 @@ module.exports = frequency_lists; /***/ }), -/***/ 465: +/***/ 466: /***/ (function(module, exports) { // Generated by CoffeeScript 1.10.0 @@ -1525,13 +1525,13 @@ module.exports = time_estimates; /***/ }), -/***/ 466: +/***/ 467: /***/ (function(module, exports, __webpack_require__) { // Generated by CoffeeScript 1.10.0 var feedback, scoring; -scoring = __webpack_require__(325); +scoring = __webpack_require__(326); feedback = { default_feedback: { @@ -1647,13 +1647,13 @@ module.exports = feedback; // Generated by CoffeeScript 1.10.0 var feedback, matching, scoring, time, time_estimates, zxcvbn; -matching = __webpack_require__(463); +matching = __webpack_require__(464); -scoring = __webpack_require__(325); +scoring = __webpack_require__(326); -time_estimates = __webpack_require__(465); +time_estimates = __webpack_require__(466); -feedback = __webpack_require__(466); +feedback = __webpack_require__(467); time = function() { return (new Date()).getTime(); diff --git a/Phraseanet-production-client/dist/lazy-1.js b/Phraseanet-production-client/dist/lazy-1.js index dc81be459f..fc617f23e9 100644 --- a/Phraseanet-production-client/dist/lazy-1.js +++ b/Phraseanet-production-client/dist/lazy-1.js @@ -1,6 +1,6 @@ webpackJsonpapp([1],{ -/***/ 305: +/***/ 306: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -13,23 +13,23 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_tsml___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_tsml__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_safe_json_parse_tuple__ = __webpack_require__(89); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_safe_json_parse_tuple___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_safe_json_parse_tuple__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_keycode__ = __webpack_require__(358); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_keycode__ = __webpack_require__(359); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_keycode___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_keycode__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_xhr__ = __webpack_require__(90); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_xhr___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_xhr__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_videojs_vtt_js__ = __webpack_require__(326); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_videojs_vtt_js__ = __webpack_require__(327); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_videojs_vtt_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_videojs_vtt_js__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_url_toolkit__ = __webpack_require__(362); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_url_toolkit__ = __webpack_require__(363); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_url_toolkit___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_url_toolkit__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_m3u8_parser__ = __webpack_require__(363); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_mpd_parser__ = __webpack_require__(364); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_mux_js_lib_mp4_probe__ = __webpack_require__(311); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_m3u8_parser__ = __webpack_require__(364); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_mpd_parser__ = __webpack_require__(365); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_mux_js_lib_mp4_probe__ = __webpack_require__(312); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_mux_js_lib_mp4_probe___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_mux_js_lib_mp4_probe__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_mux_js_lib_mp4__ = __webpack_require__(366); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_mux_js_lib_mp4__ = __webpack_require__(367); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_mux_js_lib_mp4___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_mux_js_lib_mp4__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_mux_js_lib_tools_ts_inspector_js__ = __webpack_require__(380); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_mux_js_lib_tools_ts_inspector_js__ = __webpack_require__(381); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_mux_js_lib_tools_ts_inspector_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12_mux_js_lib_tools_ts_inspector_js__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_aes_decrypter__ = __webpack_require__(382); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_aes_decrypter__ = __webpack_require__(383); /** * @license * Video.js 7.5.5 @@ -45062,7 +45062,7 @@ if (videojs$1.registerPlugin) { /***/ }), -/***/ 306: +/***/ 307: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45187,7 +45187,7 @@ module.exports = Stream; /***/ }), -/***/ 308: +/***/ 309: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45202,7 +45202,7 @@ module.exports = { /***/ }), -/***/ 311: +/***/ 312: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45216,7 +45216,7 @@ module.exports = { */ -var toUnsigned = __webpack_require__(365).toUnsigned; +var toUnsigned = __webpack_require__(366).toUnsigned; var findBox, parseType, timescale, startTime, getVideoTrackIds; // Find the data for a box specified by its path @@ -45440,7 +45440,7 @@ module.exports = { /***/ }), -/***/ 314: +/***/ 315: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45456,16 +45456,16 @@ module.exports = { */ -var Stream = __webpack_require__(306); -var mp4 = __webpack_require__(327); -var frameUtils = __webpack_require__(367); -var audioFrameUtils = __webpack_require__(368); -var trackDecodeInfo = __webpack_require__(371); -var m2ts = __webpack_require__(372); -var AdtsStream = __webpack_require__(374); -var H264Stream = __webpack_require__(375).H264Stream; -var AacStream = __webpack_require__(377); -var isLikelyAacData = __webpack_require__(315).isLikelyAacData; +var Stream = __webpack_require__(307); +var mp4 = __webpack_require__(328); +var frameUtils = __webpack_require__(368); +var audioFrameUtils = __webpack_require__(369); +var trackDecodeInfo = __webpack_require__(372); +var m2ts = __webpack_require__(373); +var AdtsStream = __webpack_require__(375); +var H264Stream = __webpack_require__(376).H264Stream; +var AacStream = __webpack_require__(378); +var isLikelyAacData = __webpack_require__(316).isLikelyAacData; // constants var AUDIO_PROPERTIES = [ @@ -46549,7 +46549,7 @@ module.exports = { /***/ }), -/***/ 315: +/***/ 316: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46728,7 +46728,7 @@ module.exports = { /***/ }), -/***/ 316: +/***/ 317: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46808,7 +46808,7 @@ exports.formatToFixedDecimals = formatToFixedDecimals; /***/ }), -/***/ 326: +/***/ 327: /***/ (function(module, exports, __webpack_require__) { /** @@ -46835,9 +46835,9 @@ exports.formatToFixedDecimals = formatToFixedDecimals; var window = __webpack_require__(44); var vttjs = module.exports = { - WebVTT: __webpack_require__(359), - VTTCue: __webpack_require__(360), - VTTRegion: __webpack_require__(361) + WebVTT: __webpack_require__(360), + VTTCue: __webpack_require__(361), + VTTRegion: __webpack_require__(362) }; window.vttjs = vttjs; @@ -46865,7 +46865,7 @@ if (!window.VTTCue) { /***/ }), -/***/ 327: +/***/ 328: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -47643,7 +47643,7 @@ module.exports = { /***/ }), -/***/ 328: +/***/ 329: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -47666,8 +47666,8 @@ module.exports = { // Link To Transport // ----------------- -var Stream = __webpack_require__(306); -var cea708Parser = __webpack_require__(329); +var Stream = __webpack_require__(307); +var cea708Parser = __webpack_require__(330); var CaptionStream = function() { @@ -48478,7 +48478,7 @@ module.exports = { /***/ }), -/***/ 329: +/***/ 330: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -48672,7 +48672,7 @@ module.exports = { /***/ }), -/***/ 330: +/***/ 331: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -48689,7 +48689,7 @@ module.exports = { -var Stream = __webpack_require__(306); +var Stream = __webpack_require__(307); var MAX_TS = 8589934592; @@ -48764,7 +48764,7 @@ module.exports = { /***/ }), -/***/ 331: +/***/ 332: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -48776,7 +48776,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); @@ -48827,7 +48827,7 @@ exports.default = HotkeyModal; /***/ }), -/***/ 332: +/***/ 333: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -48849,15 +48849,15 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); -var _rangeItem = __webpack_require__(388); +var _rangeItem = __webpack_require__(389); var _rangeItem2 = _interopRequireDefault(_rangeItem); -var _utils = __webpack_require__(316); +var _utils = __webpack_require__(317); var _alert = __webpack_require__(47); @@ -49408,7 +49408,7 @@ exports.default = RangeCollection; /***/ }), -/***/ 357: +/***/ 358: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -49426,35 +49426,35 @@ var _rx = __webpack_require__(8); var Rx = _interopRequireWildcard(_rx); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); -var _hotkeysModal = __webpack_require__(331); +var _hotkeysModal = __webpack_require__(332); var _hotkeysModal2 = _interopRequireDefault(_hotkeysModal); -var _hotkeysModalButton = __webpack_require__(384); +var _hotkeysModalButton = __webpack_require__(385); var _hotkeysModalButton2 = _interopRequireDefault(_hotkeysModalButton); -var _rangeBarCollection = __webpack_require__(385); +var _rangeBarCollection = __webpack_require__(386); var _rangeBarCollection2 = _interopRequireDefault(_rangeBarCollection); -var _rangeCollection = __webpack_require__(332); +var _rangeCollection = __webpack_require__(333); var _rangeCollection2 = _interopRequireDefault(_rangeCollection); -var _rangeControlBar = __webpack_require__(390); +var _rangeControlBar = __webpack_require__(391); var _rangeControlBar2 = _interopRequireDefault(_rangeControlBar); -var _videojsVtt = __webpack_require__(326); +var _videojsVtt = __webpack_require__(327); -var _hotkeys = __webpack_require__(391); +var _hotkeys = __webpack_require__(392); -var _rangeItemContainer = __webpack_require__(392); +var _rangeItemContainer = __webpack_require__(393); var _rangeItemContainer2 = _interopRequireDefault(_rangeItemContainer); @@ -49467,7 +49467,7 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* eslint-disable quotes */ -__webpack_require__(393); +__webpack_require__(394); // import rangeControls from './oldControlBar'; @@ -49777,7 +49777,7 @@ exports.default = plugin; /***/ }), -/***/ 358: +/***/ 359: /***/ (function(module, exports) { // Source: http://jsfiddle.net/vWx8V/ @@ -49959,7 +49959,7 @@ for (var alias in aliases) { /***/ }), -/***/ 359: +/***/ 360: /***/ (function(module, exports) { /** @@ -51274,7 +51274,7 @@ module.exports = WebVTT; /***/ }), -/***/ 360: +/***/ 361: /***/ (function(module, exports) { /** @@ -51562,7 +51562,7 @@ module.exports = VTTCue; /***/ }), -/***/ 361: +/***/ 362: /***/ (function(module, exports) { /** @@ -51703,7 +51703,7 @@ module.exports = VTTRegion; /***/ }), -/***/ 362: +/***/ 363: /***/ (function(module, exports, __webpack_require__) { // see https://tools.ietf.org/html/rfc1808 @@ -51873,7 +51873,7 @@ module.exports = VTTRegion; /***/ }), -/***/ 363: +/***/ 364: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53154,7 +53154,7 @@ function (_Stream) { /***/ }), -/***/ 364: +/***/ 365: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55008,7 +55008,7 @@ var parseUTCTiming = function parseUTCTiming(manifestString) { /***/ }), -/***/ 365: +/***/ 366: /***/ (function(module, exports) { var toUnsigned = function(value) { @@ -55022,22 +55022,22 @@ module.exports = { /***/ }), -/***/ 366: +/***/ 367: /***/ (function(module, exports, __webpack_require__) { module.exports = { - generator: __webpack_require__(327), - probe: __webpack_require__(311), - Transmuxer: __webpack_require__(314).Transmuxer, - AudioSegmentStream: __webpack_require__(314).AudioSegmentStream, - VideoSegmentStream: __webpack_require__(314).VideoSegmentStream, - CaptionParser: __webpack_require__(378) + generator: __webpack_require__(328), + probe: __webpack_require__(312), + Transmuxer: __webpack_require__(315).Transmuxer, + AudioSegmentStream: __webpack_require__(315).AudioSegmentStream, + VideoSegmentStream: __webpack_require__(315).VideoSegmentStream, + CaptionParser: __webpack_require__(379) }; /***/ }), -/***/ 367: +/***/ 368: /***/ (function(module, exports) { // Convert an array of nal units into an array of frames with each frame being @@ -55303,11 +55303,11 @@ module.exports = { /***/ }), -/***/ 368: +/***/ 369: /***/ (function(module, exports, __webpack_require__) { -var coneOfSilence = __webpack_require__(369); -var clock = __webpack_require__(370); +var coneOfSilence = __webpack_require__(370); +var clock = __webpack_require__(371); var ONE_SECOND_IN_TS = 90000; // 90kHz clock @@ -55456,7 +55456,7 @@ module.exports = { /***/ }), -/***/ 369: +/***/ 370: /***/ (function(module, exports) { var highPrefix = [33, 16, 5, 32, 164, 27]; @@ -55498,7 +55498,7 @@ module.exports = makeTable(coneOfSilence); /***/ }), -/***/ 370: +/***/ 371: /***/ (function(module, exports) { var @@ -55546,7 +55546,7 @@ module.exports = { /***/ }), -/***/ 371: +/***/ 372: /***/ (function(module, exports) { var ONE_SECOND_IN_TS = 90000; // 90kHz clock @@ -55654,7 +55654,7 @@ module.exports = { /***/ }), -/***/ 372: +/***/ 373: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -55669,12 +55669,12 @@ module.exports = { * Media Source Extensions. */ -var Stream = __webpack_require__(306), - CaptionStream = __webpack_require__(328), - StreamTypes = __webpack_require__(308), - TimestampRolloverStream = __webpack_require__(330).TimestampRolloverStream; +var Stream = __webpack_require__(307), + CaptionStream = __webpack_require__(329), + StreamTypes = __webpack_require__(309), + TimestampRolloverStream = __webpack_require__(331).TimestampRolloverStream; -var m2tsStreamTypes = __webpack_require__(308); +var m2tsStreamTypes = __webpack_require__(309); // object types var TransportPacketStream, TransportParseStream, ElementaryStream; @@ -56167,7 +56167,7 @@ var m2ts = { TimestampRolloverStream: TimestampRolloverStream, CaptionStream: CaptionStream.CaptionStream, Cea608Stream: CaptionStream.Cea608Stream, - MetadataStream: __webpack_require__(373) + MetadataStream: __webpack_require__(374) }; for (var type in StreamTypes) { @@ -56181,7 +56181,7 @@ module.exports = m2ts; /***/ }), -/***/ 373: +/***/ 374: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -56192,8 +56192,8 @@ module.exports = m2ts; */ var - Stream = __webpack_require__(306), - StreamTypes = __webpack_require__(308), + Stream = __webpack_require__(307), + StreamTypes = __webpack_require__(309), // return a percent-encoded representation of the specified byte range // @see http://en.wikipedia.org/wiki/Percent-encoding percentEncode = function(bytes, start, end) { @@ -56437,13 +56437,13 @@ module.exports = MetadataStream; /***/ }), -/***/ 374: +/***/ 375: /***/ (function(module, exports, __webpack_require__) { "use strict"; -var Stream = __webpack_require__(306); +var Stream = __webpack_require__(307); var AdtsStream; @@ -56577,14 +56577,14 @@ module.exports = AdtsStream; /***/ }), -/***/ 375: +/***/ 376: /***/ (function(module, exports, __webpack_require__) { "use strict"; -var Stream = __webpack_require__(306); -var ExpGolomb = __webpack_require__(376); +var Stream = __webpack_require__(307); +var ExpGolomb = __webpack_require__(377); var H264Stream, NalByteStream; var PROFILES_WITH_OPTIONAL_SPS_DATA; @@ -57030,7 +57030,7 @@ module.exports = { /***/ }), -/***/ 376: +/***/ 377: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -57185,7 +57185,7 @@ module.exports = ExpGolomb; /***/ }), -/***/ 377: +/***/ 378: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -57200,8 +57200,8 @@ module.exports = ExpGolomb; * Media Source Extensions. */ -var Stream = __webpack_require__(306); -var aacUtils = __webpack_require__(315); +var Stream = __webpack_require__(307); +var aacUtils = __webpack_require__(316); // Constants var AacStream; @@ -57314,7 +57314,7 @@ module.exports = AacStream; /***/ }), -/***/ 378: +/***/ 379: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -57329,10 +57329,10 @@ module.exports = AacStream; */ -var discardEmulationPreventionBytes = __webpack_require__(329).discardEmulationPreventionBytes; -var CaptionStream = __webpack_require__(328).CaptionStream; -var probe = __webpack_require__(311); -var inspect = __webpack_require__(379); +var discardEmulationPreventionBytes = __webpack_require__(330).discardEmulationPreventionBytes; +var CaptionStream = __webpack_require__(329).CaptionStream; +var probe = __webpack_require__(312); +var inspect = __webpack_require__(380); /** * Maps an offset in the mdat to a sample based on the the size of the samples. @@ -57762,7 +57762,7 @@ module.exports = CaptionParser; /***/ }), -/***/ 379: +/***/ 380: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -57781,7 +57781,7 @@ var inspectMp4, textifyMp4, - parseType = __webpack_require__(311).parseType, + parseType = __webpack_require__(312).parseType, parseMp4Date = function(seconds) { return new Date(seconds * 1000 - 2082844800000); }, @@ -58617,7 +58617,7 @@ module.exports = { /***/ }), -/***/ 380: +/***/ 381: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -58631,11 +58631,11 @@ module.exports = { */ -var StreamTypes = __webpack_require__(308); -var handleRollover = __webpack_require__(330).handleRollover; +var StreamTypes = __webpack_require__(309); +var handleRollover = __webpack_require__(331).handleRollover; var probe = {}; -probe.ts = __webpack_require__(381); -probe.aac = __webpack_require__(315); +probe.ts = __webpack_require__(382); +probe.aac = __webpack_require__(316); var @@ -59131,7 +59131,7 @@ module.exports = { /***/ }), -/***/ 381: +/***/ 382: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -59145,7 +59145,7 @@ module.exports = { */ -var StreamTypes = __webpack_require__(308); +var StreamTypes = __webpack_require__(309); var parsePid = function(packet) { var pid = packet[1] & 0x1f; @@ -59426,14 +59426,14 @@ module.exports = { /***/ }), -/***/ 382: +/***/ 383: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return decrypt; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return Decrypter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AsyncStream; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_pkcs7__ = __webpack_require__(383); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_pkcs7__ = __webpack_require__(384); var classCallCheck = function (instance, Constructor) { @@ -60074,7 +60074,7 @@ var Decrypter = function () { /***/ }), -/***/ 383: +/***/ 384: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -60127,7 +60127,7 @@ var version = "1.0.2"; /***/ }), -/***/ 384: +/***/ 385: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60145,11 +60145,11 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); -var _hotkeysModal = __webpack_require__(331); +var _hotkeysModal = __webpack_require__(332); var _hotkeysModal2 = _interopRequireDefault(_hotkeysModal); @@ -60235,7 +60235,7 @@ exports.default = HotkeysModalButton; /***/ }), -/***/ 385: +/***/ 386: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60249,11 +60249,11 @@ var _createClass = function () { function defineProperties(target, props) { for var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); -var _rangeBar = __webpack_require__(386); +var _rangeBar = __webpack_require__(387); var _rangeBar2 = _interopRequireDefault(_rangeBar); @@ -60329,7 +60329,7 @@ exports.default = RangeBarCollection; /***/ }), -/***/ 386: +/***/ 387: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60347,11 +60347,11 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); -var _nouislider = __webpack_require__(387); +var _nouislider = __webpack_require__(388); var _nouislider2 = _interopRequireDefault(_nouislider); @@ -60495,7 +60495,7 @@ exports.default = RangeBar; /***/ }), -/***/ 387: +/***/ 388: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! nouislider - 9.2.0 - 2017-01-11 10:35:34 */ @@ -62650,7 +62650,7 @@ function closure ( target, options, originalOptions ){ /***/ }), -/***/ 388: +/***/ 389: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -62672,13 +62672,13 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); -var _utils = __webpack_require__(316); +var _utils = __webpack_require__(317); -var _sortableComponent = __webpack_require__(389); +var _sortableComponent = __webpack_require__(390); var _sortableComponent2 = _interopRequireDefault(_sortableComponent); @@ -62822,7 +62822,7 @@ exports.default = RangeItem; /***/ }), -/***/ 389: +/***/ 390: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63103,7 +63103,7 @@ exports.default = SortableComponent; /***/ }), -/***/ 390: +/***/ 391: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63125,11 +63125,11 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); -var _utils = __webpack_require__(316); +var _utils = __webpack_require__(317); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -63573,7 +63573,7 @@ exports.default = RangeControlBar; /***/ }), -/***/ 391: +/***/ 392: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63828,7 +63828,7 @@ exports.hotkeys = hotkeys; /***/ }), -/***/ 392: +/***/ 393: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63850,11 +63850,11 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); -var _rangeCollection = __webpack_require__(332); +var _rangeCollection = __webpack_require__(333); var _rangeCollection2 = _interopRequireDefault(_rangeCollection); @@ -63954,18 +63954,18 @@ exports.default = RangeItemContainer; /***/ }), -/***/ 393: +/***/ 394: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), -/***/ 394: +/***/ 395: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* videojs-hotkeys v0.2.21 - https://github.com/ctd1500/videojs-hotkeys */ -!function(e,t){ true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(305)], __WEBPACK_AMD_DEFINE_RESULT__ = (function(e){return t(e.default||e)}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), +!function(e,t){ true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(306)], __WEBPACK_AMD_DEFINE_RESULT__ = (function(e){return t(e.default||e)}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):"undefined"!=typeof module&&module.exports?module.exports=t(require("video.js")):t(videojs)}(0,function(e){"use strict";"undefined"!=typeof window&&(window.videojs_hotkeys={version:"0.2.21"});(e.registerPlugin||e.plugin)("hotkeys",function(t){var r=this,n=r.el(),o=document,u={volumeStep:.1,seekStep:5,enableMute:!0,enableVolumeScroll:!0,enableFullscreen:!0,enableNumbers:!0,enableJogStyle:!1,alwaysCaptureHotkeys:!1,enableModifiersForNumbers:!0,enableInactiveFocus:!0,skipInitialFocus:!1,playPauseKey:function(e){return 32===e.which||179===e.which},rewindKey:function(e){return 37===e.which||177===e.which},forwardKey:function(e){return 39===e.which||176===e.which},volumeUpKey:function(e){return 38===e.which},volumeDownKey:function(e){return 40===e.which},muteKey:function(e){return 77===e.which},fullscreenKey:function(e){return 70===e.which},customKeys:{}},l=e.mergeOptions||e.util.mergeOptions,i=(t=l(u,t||{})).volumeStep,c=t.seekStep,a=t.enableMute,s=t.enableVolumeScroll,m=t.enableFullscreen,y=t.enableNumbers,f=t.enableJogStyle,v=t.alwaysCaptureHotkeys,d=t.enableModifiersForNumbers,p=t.enableInactiveFocus,b=t.skipInitialFocus;n.hasAttribute("tabIndex")||n.setAttribute("tabIndex","-1"),n.style.outline="none",!v&&r.autoplay()||b||r.one("play",function(){n.focus()}),p&&r.on("userinactive",function(){var e=function(){clearTimeout(t)},t=setTimeout(function(){r.off("useractive",e),o.activeElement.parentElement==n.querySelector(".vjs-control-bar")&&n.focus()},10);r.one("useractive",e)}),r.on("play",function(){var e=n.querySelector(".iframeblocker");e&&""===e.style.display&&(e.style.display="block",e.style.bottom="39px")});var h=function(e){if(r.controls()){var t=o.activeElement;if((v||t==n||t==n.querySelector(".vjs-tech")||t==n.querySelector(".iframeblocker")||t==n.querySelector(".vjs-control-bar"))&&s){e=window.event||e;var u=Math.max(-1,Math.min(1,e.wheelDelta||-e.detail));e.preventDefault(),1==u?r.volume(r.volume()+i):-1==u&&r.volume(r.volume()-i)}}},w=function(e,r){return t.playPauseKey(e,r)?1:t.rewindKey(e,r)?2:t.forwardKey(e,r)?3:t.volumeUpKey(e,r)?4:t.volumeDownKey(e,r)?5:t.muteKey(e,r)?6:t.fullscreenKey(e,r)?7:void 0};return r.on("keydown",function(e){var u,l,s=e.which,p=e.preventDefault,b=r.duration();if(r.controls()){var h=o.activeElement;if(v||h==n||h==n.querySelector(".vjs-tech")||h==n.querySelector(".vjs-control-bar")||h==n.querySelector(".iframeblocker"))switch(w(e,r)){case 1:p(),v&&e.stopPropagation(),r.paused()?r.play():r.pause();break;case 2:u=!r.paused(),p(),u&&r.pause(),l=r.currentTime()-c,r.currentTime()<=c&&(l=0),r.currentTime(l),u&&r.play();break;case 3:u=!r.paused(),p(),u&&r.pause(),(l=r.currentTime()+c)>=b&&(l=u?b-.001:b),r.currentTime(l),u&&r.play();break;case 5:p(),f?(l=r.currentTime()-1,r.currentTime()<=1&&(l=0),r.currentTime(l)):r.volume(r.volume()-i);break;case 4:p(),f?((l=r.currentTime()+1)>=b&&(l=b),r.currentTime(l)):r.volume(r.volume()+i);break;case 6:a&&r.muted(!r.muted());break;case 7:m&&(r.isFullscreen()?r.exitFullscreen():r.requestFullscreen());break;default:if((s>47&&s<59||s>95&&s<106)&&(d||!(e.metaKey||e.ctrlKey||e.altKey))&&y){var k=48;s>95&&(k=96);var K=s-k;p(),r.currentTime(r.duration()*K*.1)}for(var S in t.customKeys){var F=t.customKeys[S];F&&F.key&&F.handler&&F.key(e)&&(p(),F.handler(r,t,e))}}}}),r.on("dblclick",function(e){if(r.controls()){var t=e.relatedTarget||e.toElement||o.activeElement;t!=n&&t!=n.querySelector(".vjs-tech")&&t!=n.querySelector(".iframeblocker")||m&&(r.isFullscreen()?r.exitFullscreen():r.requestFullscreen())}}),r.on("mousewheel",h),r.on("DOMMouseScroll",h),this})}); /***/ }), @@ -63988,17 +63988,17 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _index = __webpack_require__(357); +var _index = __webpack_require__(358); var _index2 = _interopRequireDefault(_index); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var hotkeys = __webpack_require__(394); +var hotkeys = __webpack_require__(395); // require('video.js').default; diff --git a/Phraseanet-production-client/dist/lazy-1.min.js b/Phraseanet-production-client/dist/lazy-1.min.js index dc81be459f..fc617f23e9 100644 --- a/Phraseanet-production-client/dist/lazy-1.min.js +++ b/Phraseanet-production-client/dist/lazy-1.min.js @@ -1,6 +1,6 @@ webpackJsonpapp([1],{ -/***/ 305: +/***/ 306: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -13,23 +13,23 @@ Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_tsml___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_tsml__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_safe_json_parse_tuple__ = __webpack_require__(89); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_safe_json_parse_tuple___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_safe_json_parse_tuple__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_keycode__ = __webpack_require__(358); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_keycode__ = __webpack_require__(359); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_keycode___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_keycode__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_xhr__ = __webpack_require__(90); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_xhr___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_xhr__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_videojs_vtt_js__ = __webpack_require__(326); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_videojs_vtt_js__ = __webpack_require__(327); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_videojs_vtt_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_videojs_vtt_js__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_url_toolkit__ = __webpack_require__(362); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_url_toolkit__ = __webpack_require__(363); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_url_toolkit___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_url_toolkit__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_m3u8_parser__ = __webpack_require__(363); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_mpd_parser__ = __webpack_require__(364); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_mux_js_lib_mp4_probe__ = __webpack_require__(311); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_m3u8_parser__ = __webpack_require__(364); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_mpd_parser__ = __webpack_require__(365); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_mux_js_lib_mp4_probe__ = __webpack_require__(312); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_mux_js_lib_mp4_probe___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_mux_js_lib_mp4_probe__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_mux_js_lib_mp4__ = __webpack_require__(366); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_mux_js_lib_mp4__ = __webpack_require__(367); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_mux_js_lib_mp4___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_mux_js_lib_mp4__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_mux_js_lib_tools_ts_inspector_js__ = __webpack_require__(380); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_mux_js_lib_tools_ts_inspector_js__ = __webpack_require__(381); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_mux_js_lib_tools_ts_inspector_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12_mux_js_lib_tools_ts_inspector_js__); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_aes_decrypter__ = __webpack_require__(382); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_aes_decrypter__ = __webpack_require__(383); /** * @license * Video.js 7.5.5 @@ -45062,7 +45062,7 @@ if (videojs$1.registerPlugin) { /***/ }), -/***/ 306: +/***/ 307: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45187,7 +45187,7 @@ module.exports = Stream; /***/ }), -/***/ 308: +/***/ 309: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45202,7 +45202,7 @@ module.exports = { /***/ }), -/***/ 311: +/***/ 312: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45216,7 +45216,7 @@ module.exports = { */ -var toUnsigned = __webpack_require__(365).toUnsigned; +var toUnsigned = __webpack_require__(366).toUnsigned; var findBox, parseType, timescale, startTime, getVideoTrackIds; // Find the data for a box specified by its path @@ -45440,7 +45440,7 @@ module.exports = { /***/ }), -/***/ 314: +/***/ 315: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -45456,16 +45456,16 @@ module.exports = { */ -var Stream = __webpack_require__(306); -var mp4 = __webpack_require__(327); -var frameUtils = __webpack_require__(367); -var audioFrameUtils = __webpack_require__(368); -var trackDecodeInfo = __webpack_require__(371); -var m2ts = __webpack_require__(372); -var AdtsStream = __webpack_require__(374); -var H264Stream = __webpack_require__(375).H264Stream; -var AacStream = __webpack_require__(377); -var isLikelyAacData = __webpack_require__(315).isLikelyAacData; +var Stream = __webpack_require__(307); +var mp4 = __webpack_require__(328); +var frameUtils = __webpack_require__(368); +var audioFrameUtils = __webpack_require__(369); +var trackDecodeInfo = __webpack_require__(372); +var m2ts = __webpack_require__(373); +var AdtsStream = __webpack_require__(375); +var H264Stream = __webpack_require__(376).H264Stream; +var AacStream = __webpack_require__(378); +var isLikelyAacData = __webpack_require__(316).isLikelyAacData; // constants var AUDIO_PROPERTIES = [ @@ -46549,7 +46549,7 @@ module.exports = { /***/ }), -/***/ 315: +/***/ 316: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46728,7 +46728,7 @@ module.exports = { /***/ }), -/***/ 316: +/***/ 317: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -46808,7 +46808,7 @@ exports.formatToFixedDecimals = formatToFixedDecimals; /***/ }), -/***/ 326: +/***/ 327: /***/ (function(module, exports, __webpack_require__) { /** @@ -46835,9 +46835,9 @@ exports.formatToFixedDecimals = formatToFixedDecimals; var window = __webpack_require__(44); var vttjs = module.exports = { - WebVTT: __webpack_require__(359), - VTTCue: __webpack_require__(360), - VTTRegion: __webpack_require__(361) + WebVTT: __webpack_require__(360), + VTTCue: __webpack_require__(361), + VTTRegion: __webpack_require__(362) }; window.vttjs = vttjs; @@ -46865,7 +46865,7 @@ if (!window.VTTCue) { /***/ }), -/***/ 327: +/***/ 328: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -47643,7 +47643,7 @@ module.exports = { /***/ }), -/***/ 328: +/***/ 329: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -47666,8 +47666,8 @@ module.exports = { // Link To Transport // ----------------- -var Stream = __webpack_require__(306); -var cea708Parser = __webpack_require__(329); +var Stream = __webpack_require__(307); +var cea708Parser = __webpack_require__(330); var CaptionStream = function() { @@ -48478,7 +48478,7 @@ module.exports = { /***/ }), -/***/ 329: +/***/ 330: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -48672,7 +48672,7 @@ module.exports = { /***/ }), -/***/ 330: +/***/ 331: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -48689,7 +48689,7 @@ module.exports = { -var Stream = __webpack_require__(306); +var Stream = __webpack_require__(307); var MAX_TS = 8589934592; @@ -48764,7 +48764,7 @@ module.exports = { /***/ }), -/***/ 331: +/***/ 332: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -48776,7 +48776,7 @@ Object.defineProperty(exports, "__esModule", { var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); @@ -48827,7 +48827,7 @@ exports.default = HotkeyModal; /***/ }), -/***/ 332: +/***/ 333: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -48849,15 +48849,15 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); -var _rangeItem = __webpack_require__(388); +var _rangeItem = __webpack_require__(389); var _rangeItem2 = _interopRequireDefault(_rangeItem); -var _utils = __webpack_require__(316); +var _utils = __webpack_require__(317); var _alert = __webpack_require__(47); @@ -49408,7 +49408,7 @@ exports.default = RangeCollection; /***/ }), -/***/ 357: +/***/ 358: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -49426,35 +49426,35 @@ var _rx = __webpack_require__(8); var Rx = _interopRequireWildcard(_rx); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); -var _hotkeysModal = __webpack_require__(331); +var _hotkeysModal = __webpack_require__(332); var _hotkeysModal2 = _interopRequireDefault(_hotkeysModal); -var _hotkeysModalButton = __webpack_require__(384); +var _hotkeysModalButton = __webpack_require__(385); var _hotkeysModalButton2 = _interopRequireDefault(_hotkeysModalButton); -var _rangeBarCollection = __webpack_require__(385); +var _rangeBarCollection = __webpack_require__(386); var _rangeBarCollection2 = _interopRequireDefault(_rangeBarCollection); -var _rangeCollection = __webpack_require__(332); +var _rangeCollection = __webpack_require__(333); var _rangeCollection2 = _interopRequireDefault(_rangeCollection); -var _rangeControlBar = __webpack_require__(390); +var _rangeControlBar = __webpack_require__(391); var _rangeControlBar2 = _interopRequireDefault(_rangeControlBar); -var _videojsVtt = __webpack_require__(326); +var _videojsVtt = __webpack_require__(327); -var _hotkeys = __webpack_require__(391); +var _hotkeys = __webpack_require__(392); -var _rangeItemContainer = __webpack_require__(392); +var _rangeItemContainer = __webpack_require__(393); var _rangeItemContainer2 = _interopRequireDefault(_rangeItemContainer); @@ -49467,7 +49467,7 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* eslint-disable quotes */ -__webpack_require__(393); +__webpack_require__(394); // import rangeControls from './oldControlBar'; @@ -49777,7 +49777,7 @@ exports.default = plugin; /***/ }), -/***/ 358: +/***/ 359: /***/ (function(module, exports) { // Source: http://jsfiddle.net/vWx8V/ @@ -49959,7 +49959,7 @@ for (var alias in aliases) { /***/ }), -/***/ 359: +/***/ 360: /***/ (function(module, exports) { /** @@ -51274,7 +51274,7 @@ module.exports = WebVTT; /***/ }), -/***/ 360: +/***/ 361: /***/ (function(module, exports) { /** @@ -51562,7 +51562,7 @@ module.exports = VTTCue; /***/ }), -/***/ 361: +/***/ 362: /***/ (function(module, exports) { /** @@ -51703,7 +51703,7 @@ module.exports = VTTRegion; /***/ }), -/***/ 362: +/***/ 363: /***/ (function(module, exports, __webpack_require__) { // see https://tools.ietf.org/html/rfc1808 @@ -51873,7 +51873,7 @@ module.exports = VTTRegion; /***/ }), -/***/ 363: +/***/ 364: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -53154,7 +53154,7 @@ function (_Stream) { /***/ }), -/***/ 364: +/***/ 365: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -55008,7 +55008,7 @@ var parseUTCTiming = function parseUTCTiming(manifestString) { /***/ }), -/***/ 365: +/***/ 366: /***/ (function(module, exports) { var toUnsigned = function(value) { @@ -55022,22 +55022,22 @@ module.exports = { /***/ }), -/***/ 366: +/***/ 367: /***/ (function(module, exports, __webpack_require__) { module.exports = { - generator: __webpack_require__(327), - probe: __webpack_require__(311), - Transmuxer: __webpack_require__(314).Transmuxer, - AudioSegmentStream: __webpack_require__(314).AudioSegmentStream, - VideoSegmentStream: __webpack_require__(314).VideoSegmentStream, - CaptionParser: __webpack_require__(378) + generator: __webpack_require__(328), + probe: __webpack_require__(312), + Transmuxer: __webpack_require__(315).Transmuxer, + AudioSegmentStream: __webpack_require__(315).AudioSegmentStream, + VideoSegmentStream: __webpack_require__(315).VideoSegmentStream, + CaptionParser: __webpack_require__(379) }; /***/ }), -/***/ 367: +/***/ 368: /***/ (function(module, exports) { // Convert an array of nal units into an array of frames with each frame being @@ -55303,11 +55303,11 @@ module.exports = { /***/ }), -/***/ 368: +/***/ 369: /***/ (function(module, exports, __webpack_require__) { -var coneOfSilence = __webpack_require__(369); -var clock = __webpack_require__(370); +var coneOfSilence = __webpack_require__(370); +var clock = __webpack_require__(371); var ONE_SECOND_IN_TS = 90000; // 90kHz clock @@ -55456,7 +55456,7 @@ module.exports = { /***/ }), -/***/ 369: +/***/ 370: /***/ (function(module, exports) { var highPrefix = [33, 16, 5, 32, 164, 27]; @@ -55498,7 +55498,7 @@ module.exports = makeTable(coneOfSilence); /***/ }), -/***/ 370: +/***/ 371: /***/ (function(module, exports) { var @@ -55546,7 +55546,7 @@ module.exports = { /***/ }), -/***/ 371: +/***/ 372: /***/ (function(module, exports) { var ONE_SECOND_IN_TS = 90000; // 90kHz clock @@ -55654,7 +55654,7 @@ module.exports = { /***/ }), -/***/ 372: +/***/ 373: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -55669,12 +55669,12 @@ module.exports = { * Media Source Extensions. */ -var Stream = __webpack_require__(306), - CaptionStream = __webpack_require__(328), - StreamTypes = __webpack_require__(308), - TimestampRolloverStream = __webpack_require__(330).TimestampRolloverStream; +var Stream = __webpack_require__(307), + CaptionStream = __webpack_require__(329), + StreamTypes = __webpack_require__(309), + TimestampRolloverStream = __webpack_require__(331).TimestampRolloverStream; -var m2tsStreamTypes = __webpack_require__(308); +var m2tsStreamTypes = __webpack_require__(309); // object types var TransportPacketStream, TransportParseStream, ElementaryStream; @@ -56167,7 +56167,7 @@ var m2ts = { TimestampRolloverStream: TimestampRolloverStream, CaptionStream: CaptionStream.CaptionStream, Cea608Stream: CaptionStream.Cea608Stream, - MetadataStream: __webpack_require__(373) + MetadataStream: __webpack_require__(374) }; for (var type in StreamTypes) { @@ -56181,7 +56181,7 @@ module.exports = m2ts; /***/ }), -/***/ 373: +/***/ 374: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -56192,8 +56192,8 @@ module.exports = m2ts; */ var - Stream = __webpack_require__(306), - StreamTypes = __webpack_require__(308), + Stream = __webpack_require__(307), + StreamTypes = __webpack_require__(309), // return a percent-encoded representation of the specified byte range // @see http://en.wikipedia.org/wiki/Percent-encoding percentEncode = function(bytes, start, end) { @@ -56437,13 +56437,13 @@ module.exports = MetadataStream; /***/ }), -/***/ 374: +/***/ 375: /***/ (function(module, exports, __webpack_require__) { "use strict"; -var Stream = __webpack_require__(306); +var Stream = __webpack_require__(307); var AdtsStream; @@ -56577,14 +56577,14 @@ module.exports = AdtsStream; /***/ }), -/***/ 375: +/***/ 376: /***/ (function(module, exports, __webpack_require__) { "use strict"; -var Stream = __webpack_require__(306); -var ExpGolomb = __webpack_require__(376); +var Stream = __webpack_require__(307); +var ExpGolomb = __webpack_require__(377); var H264Stream, NalByteStream; var PROFILES_WITH_OPTIONAL_SPS_DATA; @@ -57030,7 +57030,7 @@ module.exports = { /***/ }), -/***/ 376: +/***/ 377: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -57185,7 +57185,7 @@ module.exports = ExpGolomb; /***/ }), -/***/ 377: +/***/ 378: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -57200,8 +57200,8 @@ module.exports = ExpGolomb; * Media Source Extensions. */ -var Stream = __webpack_require__(306); -var aacUtils = __webpack_require__(315); +var Stream = __webpack_require__(307); +var aacUtils = __webpack_require__(316); // Constants var AacStream; @@ -57314,7 +57314,7 @@ module.exports = AacStream; /***/ }), -/***/ 378: +/***/ 379: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -57329,10 +57329,10 @@ module.exports = AacStream; */ -var discardEmulationPreventionBytes = __webpack_require__(329).discardEmulationPreventionBytes; -var CaptionStream = __webpack_require__(328).CaptionStream; -var probe = __webpack_require__(311); -var inspect = __webpack_require__(379); +var discardEmulationPreventionBytes = __webpack_require__(330).discardEmulationPreventionBytes; +var CaptionStream = __webpack_require__(329).CaptionStream; +var probe = __webpack_require__(312); +var inspect = __webpack_require__(380); /** * Maps an offset in the mdat to a sample based on the the size of the samples. @@ -57762,7 +57762,7 @@ module.exports = CaptionParser; /***/ }), -/***/ 379: +/***/ 380: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -57781,7 +57781,7 @@ var inspectMp4, textifyMp4, - parseType = __webpack_require__(311).parseType, + parseType = __webpack_require__(312).parseType, parseMp4Date = function(seconds) { return new Date(seconds * 1000 - 2082844800000); }, @@ -58617,7 +58617,7 @@ module.exports = { /***/ }), -/***/ 380: +/***/ 381: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -58631,11 +58631,11 @@ module.exports = { */ -var StreamTypes = __webpack_require__(308); -var handleRollover = __webpack_require__(330).handleRollover; +var StreamTypes = __webpack_require__(309); +var handleRollover = __webpack_require__(331).handleRollover; var probe = {}; -probe.ts = __webpack_require__(381); -probe.aac = __webpack_require__(315); +probe.ts = __webpack_require__(382); +probe.aac = __webpack_require__(316); var @@ -59131,7 +59131,7 @@ module.exports = { /***/ }), -/***/ 381: +/***/ 382: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -59145,7 +59145,7 @@ module.exports = { */ -var StreamTypes = __webpack_require__(308); +var StreamTypes = __webpack_require__(309); var parsePid = function(packet) { var pid = packet[1] & 0x1f; @@ -59426,14 +59426,14 @@ module.exports = { /***/ }), -/***/ 382: +/***/ 383: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return decrypt; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return Decrypter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AsyncStream; }); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_pkcs7__ = __webpack_require__(383); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_pkcs7__ = __webpack_require__(384); var classCallCheck = function (instance, Constructor) { @@ -60074,7 +60074,7 @@ var Decrypter = function () { /***/ }), -/***/ 383: +/***/ 384: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -60127,7 +60127,7 @@ var version = "1.0.2"; /***/ }), -/***/ 384: +/***/ 385: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60145,11 +60145,11 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); -var _hotkeysModal = __webpack_require__(331); +var _hotkeysModal = __webpack_require__(332); var _hotkeysModal2 = _interopRequireDefault(_hotkeysModal); @@ -60235,7 +60235,7 @@ exports.default = HotkeysModalButton; /***/ }), -/***/ 385: +/***/ 386: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60249,11 +60249,11 @@ var _createClass = function () { function defineProperties(target, props) { for var _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); -var _rangeBar = __webpack_require__(386); +var _rangeBar = __webpack_require__(387); var _rangeBar2 = _interopRequireDefault(_rangeBar); @@ -60329,7 +60329,7 @@ exports.default = RangeBarCollection; /***/ }), -/***/ 386: +/***/ 387: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -60347,11 +60347,11 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); -var _nouislider = __webpack_require__(387); +var _nouislider = __webpack_require__(388); var _nouislider2 = _interopRequireDefault(_nouislider); @@ -60495,7 +60495,7 @@ exports.default = RangeBar; /***/ }), -/***/ 387: +/***/ 388: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! nouislider - 9.2.0 - 2017-01-11 10:35:34 */ @@ -62650,7 +62650,7 @@ function closure ( target, options, originalOptions ){ /***/ }), -/***/ 388: +/***/ 389: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -62672,13 +62672,13 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); -var _utils = __webpack_require__(316); +var _utils = __webpack_require__(317); -var _sortableComponent = __webpack_require__(389); +var _sortableComponent = __webpack_require__(390); var _sortableComponent2 = _interopRequireDefault(_sortableComponent); @@ -62822,7 +62822,7 @@ exports.default = RangeItem; /***/ }), -/***/ 389: +/***/ 390: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63103,7 +63103,7 @@ exports.default = SortableComponent; /***/ }), -/***/ 390: +/***/ 391: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63125,11 +63125,11 @@ var _underscore = __webpack_require__(2); var _underscore2 = _interopRequireDefault(_underscore); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); -var _utils = __webpack_require__(316); +var _utils = __webpack_require__(317); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -63573,7 +63573,7 @@ exports.default = RangeControlBar; /***/ }), -/***/ 391: +/***/ 392: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63828,7 +63828,7 @@ exports.hotkeys = hotkeys; /***/ }), -/***/ 392: +/***/ 393: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63850,11 +63850,11 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); -var _rangeCollection = __webpack_require__(332); +var _rangeCollection = __webpack_require__(333); var _rangeCollection2 = _interopRequireDefault(_rangeCollection); @@ -63954,18 +63954,18 @@ exports.default = RangeItemContainer; /***/ }), -/***/ 393: +/***/ 394: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), -/***/ 394: +/***/ 395: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* videojs-hotkeys v0.2.21 - https://github.com/ctd1500/videojs-hotkeys */ -!function(e,t){ true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(305)], __WEBPACK_AMD_DEFINE_RESULT__ = (function(e){return t(e.default||e)}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), +!function(e,t){ true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(306)], __WEBPACK_AMD_DEFINE_RESULT__ = (function(e){return t(e.default||e)}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):"undefined"!=typeof module&&module.exports?module.exports=t(require("video.js")):t(videojs)}(0,function(e){"use strict";"undefined"!=typeof window&&(window.videojs_hotkeys={version:"0.2.21"});(e.registerPlugin||e.plugin)("hotkeys",function(t){var r=this,n=r.el(),o=document,u={volumeStep:.1,seekStep:5,enableMute:!0,enableVolumeScroll:!0,enableFullscreen:!0,enableNumbers:!0,enableJogStyle:!1,alwaysCaptureHotkeys:!1,enableModifiersForNumbers:!0,enableInactiveFocus:!0,skipInitialFocus:!1,playPauseKey:function(e){return 32===e.which||179===e.which},rewindKey:function(e){return 37===e.which||177===e.which},forwardKey:function(e){return 39===e.which||176===e.which},volumeUpKey:function(e){return 38===e.which},volumeDownKey:function(e){return 40===e.which},muteKey:function(e){return 77===e.which},fullscreenKey:function(e){return 70===e.which},customKeys:{}},l=e.mergeOptions||e.util.mergeOptions,i=(t=l(u,t||{})).volumeStep,c=t.seekStep,a=t.enableMute,s=t.enableVolumeScroll,m=t.enableFullscreen,y=t.enableNumbers,f=t.enableJogStyle,v=t.alwaysCaptureHotkeys,d=t.enableModifiersForNumbers,p=t.enableInactiveFocus,b=t.skipInitialFocus;n.hasAttribute("tabIndex")||n.setAttribute("tabIndex","-1"),n.style.outline="none",!v&&r.autoplay()||b||r.one("play",function(){n.focus()}),p&&r.on("userinactive",function(){var e=function(){clearTimeout(t)},t=setTimeout(function(){r.off("useractive",e),o.activeElement.parentElement==n.querySelector(".vjs-control-bar")&&n.focus()},10);r.one("useractive",e)}),r.on("play",function(){var e=n.querySelector(".iframeblocker");e&&""===e.style.display&&(e.style.display="block",e.style.bottom="39px")});var h=function(e){if(r.controls()){var t=o.activeElement;if((v||t==n||t==n.querySelector(".vjs-tech")||t==n.querySelector(".iframeblocker")||t==n.querySelector(".vjs-control-bar"))&&s){e=window.event||e;var u=Math.max(-1,Math.min(1,e.wheelDelta||-e.detail));e.preventDefault(),1==u?r.volume(r.volume()+i):-1==u&&r.volume(r.volume()-i)}}},w=function(e,r){return t.playPauseKey(e,r)?1:t.rewindKey(e,r)?2:t.forwardKey(e,r)?3:t.volumeUpKey(e,r)?4:t.volumeDownKey(e,r)?5:t.muteKey(e,r)?6:t.fullscreenKey(e,r)?7:void 0};return r.on("keydown",function(e){var u,l,s=e.which,p=e.preventDefault,b=r.duration();if(r.controls()){var h=o.activeElement;if(v||h==n||h==n.querySelector(".vjs-tech")||h==n.querySelector(".vjs-control-bar")||h==n.querySelector(".iframeblocker"))switch(w(e,r)){case 1:p(),v&&e.stopPropagation(),r.paused()?r.play():r.pause();break;case 2:u=!r.paused(),p(),u&&r.pause(),l=r.currentTime()-c,r.currentTime()<=c&&(l=0),r.currentTime(l),u&&r.play();break;case 3:u=!r.paused(),p(),u&&r.pause(),(l=r.currentTime()+c)>=b&&(l=u?b-.001:b),r.currentTime(l),u&&r.play();break;case 5:p(),f?(l=r.currentTime()-1,r.currentTime()<=1&&(l=0),r.currentTime(l)):r.volume(r.volume()-i);break;case 4:p(),f?((l=r.currentTime()+1)>=b&&(l=b),r.currentTime(l)):r.volume(r.volume()+i);break;case 6:a&&r.muted(!r.muted());break;case 7:m&&(r.isFullscreen()?r.exitFullscreen():r.requestFullscreen());break;default:if((s>47&&s<59||s>95&&s<106)&&(d||!(e.metaKey||e.ctrlKey||e.altKey))&&y){var k=48;s>95&&(k=96);var K=s-k;p(),r.currentTime(r.duration()*K*.1)}for(var S in t.customKeys){var F=t.customKeys[S];F&&F.key&&F.handler&&F.key(e)&&(p(),F.handler(r,t,e))}}}}),r.on("dblclick",function(e){if(r.controls()){var t=e.relatedTarget||e.toElement||o.activeElement;t!=n&&t!=n.querySelector(".vjs-tech")&&t!=n.querySelector(".iframeblocker")||m&&(r.isFullscreen()?r.exitFullscreen():r.requestFullscreen())}}),r.on("mousewheel",h),r.on("DOMMouseScroll",h),this})}); /***/ }), @@ -63988,17 +63988,17 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _index = __webpack_require__(357); +var _index = __webpack_require__(358); var _index2 = _interopRequireDefault(_index); -var _video = __webpack_require__(305); +var _video = __webpack_require__(306); var _video2 = _interopRequireDefault(_video); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var hotkeys = __webpack_require__(394); +var hotkeys = __webpack_require__(395); // require('video.js').default; diff --git a/Phraseanet-production-client/dist/lazy-2.js b/Phraseanet-production-client/dist/lazy-2.js index 9b9b91d8d2..1893064150 100644 --- a/Phraseanet-production-client/dist/lazy-2.js +++ b/Phraseanet-production-client/dist/lazy-2.js @@ -1,6 +1,6 @@ webpackJsonpapp([2],{ -/***/ 458: +/***/ 459: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_RESULT__;/* @@ -153,7 +153,7 @@ var __WEBPACK_AMD_DEFINE_RESULT__;/* /***/ }), -/***/ 459: +/***/ 460: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*** IMPORTS FROM imports-loader ***/ @@ -739,7 +739,7 @@ var widget = $.widget; /***/ }), -/***/ 460: +/***/ 461: /***/ (function(module, exports, __webpack_require__) { /*** IMPORTS FROM imports-loader ***/ @@ -969,7 +969,7 @@ var $ = __webpack_require__(0); /***/ }), -/***/ 461: +/***/ 462: /***/ (function(module, exports, __webpack_require__) { /*** IMPORTS FROM imports-loader ***/ @@ -1003,7 +1003,7 @@ var $ = __webpack_require__(0); // Node/CommonJS: factory( __webpack_require__(0), - __webpack_require__(462) + __webpack_require__(463) ); } else { // Browser globals: @@ -2464,7 +2464,7 @@ var $ = __webpack_require__(0); /***/ }), -/***/ 462: +/***/ 463: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! jQuery UI - v1.11.4+CommonJS - 2015-08-28 @@ -3062,13 +3062,13 @@ var _jquery2 = _interopRequireDefault(_jquery); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var loadImage = __webpack_require__(458); +var loadImage = __webpack_require__(459); /* The jQuery UI widget factory, can be omitted if jQuery UI is already included */ -__webpack_require__(459); -/* The Iframe Transport is required for browsers without support for XHR file uploads */ __webpack_require__(460); -/* The basic File Upload plugin */ +/* The Iframe Transport is required for browsers without support for XHR file uploads */ __webpack_require__(461); +/* The basic File Upload plugin */ +__webpack_require__(462); /** * UPLOADER MANAGER diff --git a/Phraseanet-production-client/dist/lazy-2.min.js b/Phraseanet-production-client/dist/lazy-2.min.js index 9b9b91d8d2..1893064150 100644 --- a/Phraseanet-production-client/dist/lazy-2.min.js +++ b/Phraseanet-production-client/dist/lazy-2.min.js @@ -1,6 +1,6 @@ webpackJsonpapp([2],{ -/***/ 458: +/***/ 459: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_RESULT__;/* @@ -153,7 +153,7 @@ var __WEBPACK_AMD_DEFINE_RESULT__;/* /***/ }), -/***/ 459: +/***/ 460: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*** IMPORTS FROM imports-loader ***/ @@ -739,7 +739,7 @@ var widget = $.widget; /***/ }), -/***/ 460: +/***/ 461: /***/ (function(module, exports, __webpack_require__) { /*** IMPORTS FROM imports-loader ***/ @@ -969,7 +969,7 @@ var $ = __webpack_require__(0); /***/ }), -/***/ 461: +/***/ 462: /***/ (function(module, exports, __webpack_require__) { /*** IMPORTS FROM imports-loader ***/ @@ -1003,7 +1003,7 @@ var $ = __webpack_require__(0); // Node/CommonJS: factory( __webpack_require__(0), - __webpack_require__(462) + __webpack_require__(463) ); } else { // Browser globals: @@ -2464,7 +2464,7 @@ var $ = __webpack_require__(0); /***/ }), -/***/ 462: +/***/ 463: /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! jQuery UI - v1.11.4+CommonJS - 2015-08-28 @@ -3062,13 +3062,13 @@ var _jquery2 = _interopRequireDefault(_jquery); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var loadImage = __webpack_require__(458); +var loadImage = __webpack_require__(459); /* The jQuery UI widget factory, can be omitted if jQuery UI is already included */ -__webpack_require__(459); -/* The Iframe Transport is required for browsers without support for XHR file uploads */ __webpack_require__(460); -/* The basic File Upload plugin */ +/* The Iframe Transport is required for browsers without support for XHR file uploads */ __webpack_require__(461); +/* The basic File Upload plugin */ +__webpack_require__(462); /** * UPLOADER MANAGER diff --git a/Phraseanet-production-client/dist/lazy-3.js b/Phraseanet-production-client/dist/lazy-3.js index 5f5307e1bc..27691efcb2 100644 --- a/Phraseanet-production-client/dist/lazy-3.js +++ b/Phraseanet-production-client/dist/lazy-3.js @@ -1,19 +1,19 @@ -webpackJsonpapp([3],Array(296).concat([ -/* 296 */ +webpackJsonpapp([3],Array(297).concat([ +/* 297 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var leaflet = __webpack_require__(395); +var leaflet = __webpack_require__(396); -__webpack_require__(396); +__webpack_require__(397); module.exports = leaflet; /***/ }), -/* 297 */ +/* 298 */ /***/ (function(module, exports) { /* @@ -27,7 +27,7 @@ module.exports = leaflet; L.DomEvent.off(this._container,"touchmove",this._onTouchMove),this._detectIE()?(L.DomEvent.off(this._container,"MSPointerDowm",this._onTouchStart),L.DomEvent.off(this._container,"MSPointerUp",this._onTouchEnd),L.DomEvent.off(this._container,"MSPointerMove",this._onTouchMove),L.DomEvent.off(this._container,"MSPointerCancel",this._onTouchCancel)):(L.DomEvent.off(this._container,"touchcancel",this._onTouchCancel),L.DomEvent.off(this._container,"touchleave",this._onTouchLeave))},_touchEvent:function(t,e){var i={};if("undefined"!=typeof t.touches){if(!t.touches.length)return;i=t.touches[0]}else{if("touch"!==t.pointerType)return;if(i=t,!this._filterClick(t))return}var o=this._map.mouseEventToContainerPoint(i),n=this._map.mouseEventToLayerPoint(i),s=this._map.layerPointToLatLng(n);this._map.fire(e,{latlng:s,layerPoint:n,containerPoint:o,pageX:i.pageX,pageY:i.pageY,originalEvent:t})},_filterClick:function(t){var e=t.timeStamp||t.originalEvent.timeStamp,i=L.DomEvent._lastClick&&e-L.DomEvent._lastClick;return i&&i>100&&500>i||t.target._simulatedClick&&!t._simulated?(L.DomEvent.stop(t),!1):(L.DomEvent._lastClick=e,!0)},_onTouchStart:function(t){if(this._map._loaded){var e="touchstart";this._touchEvent(t,e)}},_onTouchEnd:function(t){if(this._map._loaded){var e="touchend";this._touchEvent(t,e)}},_onTouchCancel:function(t){if(this._map._loaded){var e="touchcancel";this._detectIE()&&(e="pointercancel"),this._touchEvent(t,e)}},_onTouchLeave:function(t){if(this._map._loaded){var e="touchleave";this._touchEvent(t,e)}},_onTouchMove:function(t){if(this._map._loaded){var e="touchmove";this._touchEvent(t,e)}},_detectIE:function(){var e=t.navigator.userAgent,i=e.indexOf("MSIE ");if(i>0)return parseInt(e.substring(i+5,e.indexOf(".",i)),10);var o=e.indexOf("Trident/");if(o>0){var n=e.indexOf("rv:");return parseInt(e.substring(n+3,e.indexOf(".",n)),10)}var s=e.indexOf("Edge/");return s>0?parseInt(e.substring(s+5,e.indexOf(".",s)),10):!1}}),L.Map.addInitHook("addHandler","touchExtend",L.Map.TouchExtend),L.Marker.Touch=L.Marker.extend({_initInteraction:function(){if(this.options.clickable){var t=this._icon,e=["dblclick","mousedown","mouseover","mouseout","contextmenu","touchstart","touchend","touchmove"];this._detectIE?e.concat(["MSPointerDown","MSPointerUp","MSPointerMove","MSPointerCancel"]):e.concat(["touchcancel"]),L.DomUtil.addClass(t,"leaflet-clickable"),L.DomEvent.on(t,"click",this._onMouseClick,this),L.DomEvent.on(t,"keypress",this._onKeyPress,this);for(var i=0;i0)return parseInt(e.substring(i+5,e.indexOf(".",i)),10);var o=e.indexOf("Trident/");if(o>0){var n=e.indexOf("rv:");return parseInt(e.substring(n+3,e.indexOf(".",n)),10)}var s=e.indexOf("Edge/");return s>0?parseInt(e.substring(s+5,e.indexOf(".",s)),10):!1}}),L.LatLngUtil={cloneLatLngs:function(t){for(var e=[],i=0,o=t.length;o>i;i++)e.push(this.cloneLatLng(t[i]));return e},cloneLatLng:function(t){return L.latLng(t.lat,t.lng)}},L.GeometryUtil=L.extend(L.GeometryUtil||{},{geodesicArea:function(t){var e,i,o=t.length,n=0,s=L.LatLng.DEG_TO_RAD;if(o>2){for(var a=0;o>a;a++)e=t[a],i=t[(a+1)%o],n+=(i.lng-e.lng)*s*(2+Math.sin(e.lat*s)+Math.sin(i.lat*s));n=6378137*n*6378137/2}return Math.abs(n)},readableArea:function(t,e){var i;return e?i=t>=1e4?(1e-4*t).toFixed(2)+" ha":t.toFixed(2)+" m²":(t/=.836127,i=t>=3097600?(t/3097600).toFixed(2)+" mi²":t>=4840?(t/4840).toFixed(2)+" acres":Math.ceil(t)+" yd²"),i},readableDistance:function(t,e,i){var o;if(e)o=t>1e3?(t/1e3).toFixed(2)+" km":Math.ceil(t)+" m";else if(t*=1.09361,t>1760)o=(t/1760).toFixed(2)+" miles";else{var n=" yd";i&&(t=3*t,n=" ft"),o=Math.ceil(t)+n}return o}}),L.Util.extend(L.LineUtil,{segmentsIntersect:function(t,e,i,o){return this._checkCounterclockwise(t,i,o)!==this._checkCounterclockwise(e,i,o)&&this._checkCounterclockwise(t,e,i)!==this._checkCounterclockwise(t,e,o)},_checkCounterclockwise:function(t,e,i){return(i.y-t.y)*(e.x-t.x)>(e.y-t.y)*(i.x-t.x)}}),L.Polyline.include({intersects:function(){var t,e,i,o=this._originalPoints,n=o?o.length:0;if(this._tooFewPointsForIntersection())return!1;for(t=n-1;t>=3;t--)if(e=o[t-1],i=o[t],this._lineSegmentsIntersectsRange(e,i,t-2))return!0;return!1},newLatLngIntersects:function(t,e){return this._map?this.newPointIntersects(this._map.latLngToLayerPoint(t),e):!1},newPointIntersects:function(t,e){var i=this._originalPoints,o=i?i.length:0,n=i?i[o-1]:null,s=o-2;return this._tooFewPointsForIntersection(1)?!1:this._lineSegmentsIntersectsRange(n,t,s,e?1:0)},_tooFewPointsForIntersection:function(t){var e=this._originalPoints,i=e?e.length:0;return i+=t||0,!this._originalPoints||3>=i},_lineSegmentsIntersectsRange:function(t,e,i,o){var n,s,a=this._originalPoints;o=o||0;for(var r=i;r>o;r--)if(n=a[r-1],s=a[r],L.LineUtil.segmentsIntersect(t,e,n,s))return!0;return!1}}),L.Polygon.include({intersects:function(){var t,e,i,o,n,s=this._originalPoints;return this._tooFewPointsForIntersection()?!1:(t=L.Polyline.prototype.intersects.call(this))?!0:(e=s.length,i=s[0],o=s[e-1],n=e-2,this._lineSegmentsIntersectsRange(o,i,n,1))}}),L.Control.Draw=L.Control.extend({options:{position:"topleft",draw:{},edit:!1},initialize:function(t){if(L.version<"0.7")throw new Error("Leaflet.draw 0.2.3+ requires Leaflet 0.7.0+. Download latest from https://github.com/Leaflet/Leaflet/");L.Control.prototype.initialize.call(this,t);var e;this._toolbars={},L.DrawToolbar&&this.options.draw&&(e=new L.DrawToolbar(this.options.draw),this._toolbars[L.DrawToolbar.TYPE]=e,this._toolbars[L.DrawToolbar.TYPE].on("enable",this._toolbarEnabled,this)),L.EditToolbar&&this.options.edit&&(e=new L.EditToolbar(this.options.edit),this._toolbars[L.EditToolbar.TYPE]=e,this._toolbars[L.EditToolbar.TYPE].on("enable",this._toolbarEnabled,this)),L.toolbar=this},onAdd:function(t){var e,i=L.DomUtil.create("div","leaflet-draw"),o=!1,n="leaflet-draw-toolbar-top";for(var s in this._toolbars)this._toolbars.hasOwnProperty(s)&&(e=this._toolbars[s].addToolbar(t),e&&(o||(L.DomUtil.hasClass(e,n)||L.DomUtil.addClass(e.childNodes[0],n),o=!0),i.appendChild(e)));return i},onRemove:function(){for(var t in this._toolbars)this._toolbars.hasOwnProperty(t)&&this._toolbars[t].removeToolbar()},setDrawingOptions:function(t){for(var e in this._toolbars)this._toolbars[e]instanceof L.DrawToolbar&&this._toolbars[e].setOptions(t)},_toolbarEnabled:function(t){var e=t.target;for(var i in this._toolbars)this._toolbars[i]!==e&&this._toolbars[i].disable()}}),L.Map.mergeOptions({drawControlTooltips:!0,drawControl:!1}),L.Map.addInitHook(function(){this.options.drawControl&&(this.drawControl=new L.Control.Draw,this.addControl(this.drawControl))}),L.Toolbar=L.Class.extend({includes:[L.Mixin.Events],initialize:function(t){L.setOptions(this,t),this._modes={},this._actionButtons=[],this._activeMode=null},enabled:function(){return null!==this._activeMode},disable:function(){this.enabled()&&this._activeMode.handler.disable()},addToolbar:function(t){var e,i=L.DomUtil.create("div","leaflet-draw-section"),o=0,n=this._toolbarClass||"",s=this.getModeHandlers(t);for(this._toolbarContainer=L.DomUtil.create("div","leaflet-draw-toolbar leaflet-bar"),this._map=t,e=0;ee;e++)this._disposeButton(this._actionButtons[e].button,this._actionButtons[e].callback,this);this._actionButtons=[],this._actionsContainer=null},_initModeHandler:function(t,e,i,o,n){var s=t.type;this._modes[s]={},this._modes[s].handler=t,this._modes[s].button=this._createButton({type:s,title:n,className:o+"-"+s,container:e,callback:this._modes[s].handler.enable,context:this._modes[s].handler}),this._modes[s].buttonIndex=i,this._modes[s].handler.on("enabled",this._handlerActivated,this).on("disabled",this._handlerDeactivated,this)},_createButton:function(t){var e=L.DomUtil.create("a",t.className||"",t.container);return e.href="#",t.text&&(e.innerHTML=t.text),t.title&&(e.title=t.title),L.DomEvent.on(e,"click",L.DomEvent.stopPropagation).on(e,"mousedown",L.DomEvent.stopPropagation).on(e,"dblclick",L.DomEvent.stopPropagation).on(e,"click",L.DomEvent.preventDefault).on(e,"click",t.callback,t.context),e},_disposeButton:function(t,e){L.DomEvent.off(t,"click",L.DomEvent.stopPropagation).off(t,"mousedown",L.DomEvent.stopPropagation).off(t,"dblclick",L.DomEvent.stopPropagation).off(t,"click",L.DomEvent.preventDefault).off(t,"click",e)},_handlerActivated:function(t){this.disable(),this._activeMode=this._modes[t.handler],L.DomUtil.addClass(this._activeMode.button,"leaflet-draw-toolbar-button-enabled"),this._showActionsToolbar(),this.fire("enable")},_handlerDeactivated:function(){this._hideActionsToolbar(),L.DomUtil.removeClass(this._activeMode.button,"leaflet-draw-toolbar-button-enabled"),this._activeMode=null,this.fire("disable")},_createActions:function(t){var e,i,o,n,s=this._actionsContainer,a=this.getActions(t),r=a.length;for(i=0,o=this._actionButtons.length;o>i;i++)this._disposeButton(this._actionButtons[i].button,this._actionButtons[i].callback);for(this._actionButtons=[];s.firstChild;)s.removeChild(s.firstChild);for(var h=0;r>h;h++)"enabled"in a[h]&&!a[h].enabled||(e=L.DomUtil.create("li","",s),n=this._createButton({title:a[h].title,text:a[h].text,container:e,callback:a[h].callback,context:a[h].context}),this._actionButtons.push({button:n,callback:a[h].callback}))},_showActionsToolbar:function(){var t=this._activeMode.buttonIndex,e=this._lastButtonIndex,i=this._activeMode.button.offsetTop-1;this._createActions(this._activeMode.handler),this._actionsContainer.style.top=i+"px",0===t&&(L.DomUtil.addClass(this._toolbarContainer,"leaflet-draw-toolbar-notop"),L.DomUtil.addClass(this._actionsContainer,"leaflet-draw-actions-top")),t===e&&(L.DomUtil.addClass(this._toolbarContainer,"leaflet-draw-toolbar-nobottom"),L.DomUtil.addClass(this._actionsContainer,"leaflet-draw-actions-bottom")),this._actionsContainer.style.display="block"},_hideActionsToolbar:function(){this._actionsContainer.style.display="none",L.DomUtil.removeClass(this._toolbarContainer,"leaflet-draw-toolbar-notop"),L.DomUtil.removeClass(this._toolbarContainer,"leaflet-draw-toolbar-nobottom"),L.DomUtil.removeClass(this._actionsContainer,"leaflet-draw-actions-top"),L.DomUtil.removeClass(this._actionsContainer,"leaflet-draw-actions-bottom")}}),L.Tooltip=L.Class.extend({initialize:function(t){this._map=t,this._popupPane=t._panes.popupPane,this._container=t.options.drawControlTooltips?L.DomUtil.create("div","leaflet-draw-tooltip",this._popupPane):null,this._singleLineLabel=!1,this._map.on("mouseout",this._onMouseOut,this)},dispose:function(){this._map.off("mouseout",this._onMouseOut,this),this._container&&(this._popupPane.removeChild(this._container),this._container=null)},updateContent:function(t){return this._container?(t.subtext=t.subtext||"",0!==t.subtext.length||this._singleLineLabel?t.subtext.length>0&&this._singleLineLabel&&(L.DomUtil.removeClass(this._container,"leaflet-draw-tooltip-single"),this._singleLineLabel=!1):(L.DomUtil.addClass(this._container,"leaflet-draw-tooltip-single"),this._singleLineLabel=!0),this._container.innerHTML=(t.subtext.length>0?''+t.subtext+"
":"")+""+t.text+"",this):this},updatePosition:function(t){var e=this._map.latLngToLayerPoint(t),i=this._container;return this._container&&(i.style.visibility="inherit",L.DomUtil.setPosition(i,e)),this},showAsError:function(){return this._container&&L.DomUtil.addClass(this._container,"leaflet-error-draw-tooltip"),this},removeError:function(){return this._container&&L.DomUtil.removeClass(this._container,"leaflet-error-draw-tooltip"),this},_onMouseOut:function(){this._container&&(this._container.style.visibility="hidden")}}),L.DrawToolbar=L.Toolbar.extend({statics:{TYPE:"draw"},options:{polyline:{},polygon:{},rectangle:{},circle:{},marker:{}},initialize:function(t){for(var e in this.options)this.options.hasOwnProperty(e)&&t[e]&&(t[e]=L.extend({},this.options[e],t[e]));this._toolbarClass="leaflet-draw-draw",L.Toolbar.prototype.initialize.call(this,t)},getModeHandlers:function(t){return[{enabled:this.options.polyline,handler:new L.Draw.Polyline(t,this.options.polyline),title:L.drawLocal.draw.toolbar.buttons.polyline},{enabled:this.options.polygon,handler:new L.Draw.Polygon(t,this.options.polygon),title:L.drawLocal.draw.toolbar.buttons.polygon},{enabled:this.options.rectangle,handler:new L.Draw.Rectangle(t,this.options.rectangle),title:L.drawLocal.draw.toolbar.buttons.rectangle},{enabled:this.options.circle,handler:new L.Draw.Circle(t,this.options.circle),title:L.drawLocal.draw.toolbar.buttons.circle},{enabled:this.options.marker,handler:new L.Draw.Marker(t,this.options.marker),title:L.drawLocal.draw.toolbar.buttons.marker}]},getActions:function(t){return[{enabled:t.completeShape,title:L.drawLocal.draw.toolbar.finish.title,text:L.drawLocal.draw.toolbar.finish.text,callback:t.completeShape,context:t},{enabled:t.deleteLastVertex,title:L.drawLocal.draw.toolbar.undo.title,text:L.drawLocal.draw.toolbar.undo.text,callback:t.deleteLastVertex,context:t},{title:L.drawLocal.draw.toolbar.actions.title,text:L.drawLocal.draw.toolbar.actions.text,callback:this.disable,context:this}]},setOptions:function(t){L.setOptions(this,t);for(var e in this._modes)this._modes.hasOwnProperty(e)&&t.hasOwnProperty(e)&&this._modes[e].handler.setOptions(t[e])}}),L.EditToolbar=L.Toolbar.extend({statics:{TYPE:"edit"},options:{edit:{selectedPathOptions:{dashArray:"10, 10",fill:!0,fillColor:"#fe57a1",fillOpacity:.1,maintainColor:!1}},remove:{},featureGroup:null},initialize:function(t){t.edit&&("undefined"==typeof t.edit.selectedPathOptions&&(t.edit.selectedPathOptions=this.options.edit.selectedPathOptions),t.edit.selectedPathOptions=L.extend({},this.options.edit.selectedPathOptions,t.edit.selectedPathOptions)),t.remove&&(t.remove=L.extend({},this.options.remove,t.remove)),this._toolbarClass="leaflet-draw-edit",L.Toolbar.prototype.initialize.call(this,t),this._selectedFeatureCount=0},getModeHandlers:function(t){var e=this.options.featureGroup;return[{enabled:this.options.edit,handler:new L.EditToolbar.Edit(t,{featureGroup:e,selectedPathOptions:this.options.edit.selectedPathOptions}),title:L.drawLocal.edit.toolbar.buttons.edit},{enabled:this.options.remove,handler:new L.EditToolbar.Delete(t,{featureGroup:e}),title:L.drawLocal.edit.toolbar.buttons.remove}]},getActions:function(){return[{title:L.drawLocal.edit.toolbar.actions.save.title,text:L.drawLocal.edit.toolbar.actions.save.text,callback:this._save,context:this},{title:L.drawLocal.edit.toolbar.actions.cancel.title,text:L.drawLocal.edit.toolbar.actions.cancel.text,callback:this.disable,context:this}]},addToolbar:function(t){var e=L.Toolbar.prototype.addToolbar.call(this,t);return this._checkDisabled(),this.options.featureGroup.on("layeradd layerremove",this._checkDisabled,this),e},removeToolbar:function(){this.options.featureGroup.off("layeradd layerremove",this._checkDisabled,this),L.Toolbar.prototype.removeToolbar.call(this)},disable:function(){this.enabled()&&(this._activeMode.handler.revertLayers(),L.Toolbar.prototype.disable.call(this))},_save:function(){this._activeMode.handler.save(),this._activeMode.handler.disable()},_checkDisabled:function(){var t,e=this.options.featureGroup,i=0!==e.getLayers().length;this.options.edit&&(t=this._modes[L.EditToolbar.Edit.TYPE].button,i?L.DomUtil.removeClass(t,"leaflet-disabled"):L.DomUtil.addClass(t,"leaflet-disabled"),t.setAttribute("title",i?L.drawLocal.edit.toolbar.buttons.edit:L.drawLocal.edit.toolbar.buttons.editDisabled)),this.options.remove&&(t=this._modes[L.EditToolbar.Delete.TYPE].button,i?L.DomUtil.removeClass(t,"leaflet-disabled"):L.DomUtil.addClass(t,"leaflet-disabled"),t.setAttribute("title",i?L.drawLocal.edit.toolbar.buttons.remove:L.drawLocal.edit.toolbar.buttons.removeDisabled))}}),L.EditToolbar.Edit=L.Handler.extend({statics:{TYPE:"edit"},includes:L.Mixin.Events,initialize:function(t,e){if(L.Handler.prototype.initialize.call(this,t),L.setOptions(this,e),this._featureGroup=e.featureGroup,!(this._featureGroup instanceof L.FeatureGroup))throw new Error("options.featureGroup must be a L.FeatureGroup");this._uneditedLayerProps={},this.type=L.EditToolbar.Edit.TYPE},enable:function(){!this._enabled&&this._hasAvailableLayers()&&(this.fire("enabled",{handler:this.type}),this._map.fire("draw:editstart",{handler:this.type}),L.Handler.prototype.enable.call(this),this._featureGroup.on("layeradd",this._enableLayerEdit,this).on("layerremove",this._disableLayerEdit,this))},disable:function(){this._enabled&&(this._featureGroup.off("layeradd",this._enableLayerEdit,this).off("layerremove",this._disableLayerEdit,this),L.Handler.prototype.disable.call(this),this._map.fire("draw:editstop",{handler:this.type}),this.fire("disabled",{handler:this.type}))},addHooks:function(){var t=this._map;t&&(t.getContainer().focus(),this._featureGroup.eachLayer(this._enableLayerEdit,this),this._tooltip=new L.Tooltip(this._map),this._updateTooltip(),this._map.on("mousemove",this._onMouseMove,this).on("touchmove",this._onMouseMove,this).on("MSPointerMove",this._onMouseMove,this).on("click",this._editStyle,this).on("draw:editvertex",this._updateTooltip,this))},removeHooks:function(){this._map&&(this._featureGroup.eachLayer(this._disableLayerEdit,this),this._uneditedLayerProps={},this._tooltip.dispose(),this._tooltip=null,this._map.off("mousemove",this._onMouseMove,this).off("touchmove",this._onMouseMove,this).off("MSPointerMove",this._onMouseMove,this))},revertLayers:function(){this._featureGroup.eachLayer(function(t){this._revertLayer(t)},this)},save:function(){var t=new L.LayerGroup;this._featureGroup.eachLayer(function(e){e.edited&&(t.addLayer(e),e.edited=!1)}),this._map.fire("draw:edited",{layers:t})},_backupLayer:function(t){var e=L.Util.stamp(t);this._uneditedLayerProps[e]||(t instanceof L.Polyline||t instanceof L.Polygon||t instanceof L.Rectangle?this._uneditedLayerProps[e]={latlngs:L.LatLngUtil.cloneLatLngs(t.getLatLngs())}:t instanceof L.Circle?this._uneditedLayerProps[e]={latlng:L.LatLngUtil.cloneLatLng(t.getLatLng()),radius:t.getRadius()}:t instanceof L.Marker&&(this._uneditedLayerProps[e]={latlng:L.LatLngUtil.cloneLatLng(t.getLatLng())}))},_getTooltipText:function(){return{text:L.drawLocal.edit.handlers.edit.tooltip.text,subtext:L.drawLocal.edit.handlers.edit.tooltip.subtext}},_updateTooltip:function(){this._tooltip.updateContent(this._getTooltipText())},_revertLayer:function(t){var e=L.Util.stamp(t);t.edited=!1,this._uneditedLayerProps.hasOwnProperty(e)&&(t instanceof L.Polyline||t instanceof L.Polygon||t instanceof L.Rectangle?t.setLatLngs(this._uneditedLayerProps[e].latlngs):t instanceof L.Circle?(t.setLatLng(this._uneditedLayerProps[e].latlng),t.setRadius(this._uneditedLayerProps[e].radius)):t instanceof L.Marker&&t.setLatLng(this._uneditedLayerProps[e].latlng),t.fire("revert-edited",{layer:t}))},_enableLayerEdit:function(t){var e,i=t.layer||t.target||t;this._backupLayer(i),this.options.selectedPathOptions&&(e=L.Util.extend({},this.options.selectedPathOptions),e.maintainColor&&(e.color=i.options.color,e.fillColor=i.options.fillColor),i.options.original=L.extend({},i.options),i.options.editing=e),this.isMarker?(i.dragging.enable(),i.on("dragend",this._onMarkerDragEnd).on("touchmove",this._onTouchMove,this).on("MSPointerMove",this._onTouchMove,this).on("touchend",this._onMarkerDragEnd,this).on("MSPointerUp",this._onMarkerDragEnd,this)):i.editing.enable()},_disableLayerEdit:function(t){var e=t.layer||t.target||t;e.edited=!1,e.editing.disable(),delete e.options.editing,delete e.options.original,this._selectedPathOptions&&(e instanceof L.Marker?this._toggleMarkerHighlight(e):(e.setStyle(e.options.previousOptions),delete e.options.previousOptions)),e instanceof L.Marker?(e.dragging.disable(),e.off("dragend",this._onMarkerDragEnd,this).off("touchmove",this._onTouchMove,this).off("MSPointerMove",this._onTouchMove,this).off("touchend",this._onMarkerDragEnd,this).off("MSPointerUp",this._onMarkerDragEnd,this)):e.editing.disable()},_onMouseMove:function(t){this._tooltip.updatePosition(t.latlng)},_onTouchMove:function(t){var e=t.originalEvent.changedTouches[0],i=this._map.mouseEventToLayerPoint(e),o=this._map.layerPointToLatLng(i);t.target.setLatLng(o)},_hasAvailableLayers:function(){return 0!==this._featureGroup.getLayers().length}}),L.EditToolbar.Delete=L.Handler.extend({statics:{TYPE:"remove"},includes:L.Mixin.Events,initialize:function(t,e){if(L.Handler.prototype.initialize.call(this,t),L.Util.setOptions(this,e),this._deletableLayers=this.options.featureGroup,!(this._deletableLayers instanceof L.FeatureGroup))throw new Error("options.featureGroup must be a L.FeatureGroup");this.type=L.EditToolbar.Delete.TYPE},enable:function(){!this._enabled&&this._hasAvailableLayers()&&(this.fire("enabled",{handler:this.type}),this._map.fire("draw:deletestart",{handler:this.type}),L.Handler.prototype.enable.call(this),this._deletableLayers.on("layeradd",this._enableLayerDelete,this).on("layerremove",this._disableLayerDelete,this))},disable:function(){this._enabled&&(this._deletableLayers.off("layeradd",this._enableLayerDelete,this).off("layerremove",this._disableLayerDelete,this),L.Handler.prototype.disable.call(this),this._map.fire("draw:deletestop",{handler:this.type}),this.fire("disabled",{handler:this.type}))},addHooks:function(){var t=this._map;t&&(t.getContainer().focus(),this._deletableLayers.eachLayer(this._enableLayerDelete,this),this._deletedLayers=new L.LayerGroup,this._tooltip=new L.Tooltip(this._map),this._tooltip.updateContent({text:L.drawLocal.edit.handlers.remove.tooltip.text}),this._map.on("mousemove",this._onMouseMove,this))},removeHooks:function(){this._map&&(this._deletableLayers.eachLayer(this._disableLayerDelete,this),this._deletedLayers=null,this._tooltip.dispose(),this._tooltip=null,this._map.off("mousemove",this._onMouseMove,this))},revertLayers:function(){this._deletedLayers.eachLayer(function(t){this._deletableLayers.addLayer(t),t.fire("revert-deleted",{layer:t})},this)},save:function(){this._map.fire("draw:deleted",{layers:this._deletedLayers})},_enableLayerDelete:function(t){var e=t.layer||t.target||t;e.on("click",this._removeLayer,this)},_disableLayerDelete:function(t){var e=t.layer||t.target||t;e.off("click",this._removeLayer,this),this._deletedLayers.removeLayer(e)},_removeLayer:function(t){var e=t.layer||t.target||t;this._deletableLayers.removeLayer(e),this._deletedLayers.addLayer(e),e.fire("deleted")},_onMouseMove:function(t){this._tooltip.updatePosition(t.latlng)},_hasAvailableLayers:function(){return 0!==this._deletableLayers.getLayers().length}})}(window,document); /***/ }), -/* 298 */ +/* 299 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* @@ -42,7 +42,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ var L; if (true) { // AMD - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(333)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(334)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -562,27 +562,27 @@ for (i = 0, l = classes.length; i < l; i++) { /***/ }), -/* 299 */ +/* 300 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var makeClient = __webpack_require__(304); -var xtend = __webpack_require__(353).extendMutable; -var getUser = __webpack_require__(352); -var MapboxGeocoding = __webpack_require__(431); -var MapboxSurface = __webpack_require__(432); -var MapboxDirections = __webpack_require__(433); -var MapboxUploads = __webpack_require__(434); -var MapboxMatching = __webpack_require__(435); -var MapboxDatasets = __webpack_require__(436); -var MapboxMatrix = __webpack_require__(438); -var MapboxTilestats = __webpack_require__(439); -var MapboxStyles = __webpack_require__(440); -var MapboxStatic = __webpack_require__(445); -var MapboxTilesets = __webpack_require__(448); -var MapboxTokens = __webpack_require__(449); +var makeClient = __webpack_require__(305); +var xtend = __webpack_require__(354).extendMutable; +var getUser = __webpack_require__(353); +var MapboxGeocoding = __webpack_require__(432); +var MapboxSurface = __webpack_require__(433); +var MapboxDirections = __webpack_require__(434); +var MapboxUploads = __webpack_require__(435); +var MapboxMatching = __webpack_require__(436); +var MapboxDatasets = __webpack_require__(437); +var MapboxMatrix = __webpack_require__(439); +var MapboxTilestats = __webpack_require__(440); +var MapboxStyles = __webpack_require__(441); +var MapboxStatic = __webpack_require__(446); +var MapboxTilesets = __webpack_require__(449); +var MapboxTokens = __webpack_require__(450); /** @@ -628,7 +628,7 @@ module.exports = MapboxClient; /***/ }), -/* 300 */ +/* 301 */ /***/ (function(module, exports) { /** @@ -891,23 +891,23 @@ if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { /***/ }), -/* 301 */ +/* 302 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const projectVersion = __webpack_require__(450).version; -const _ = __webpack_require__(451); +const projectVersion = __webpack_require__(451).version; +const _ = __webpack_require__(452); const EventEmitter = __webpack_require__(92); -const turfCircle = __webpack_require__(452); -const turfBbox = __webpack_require__(453); -const turfBboxPoly = __webpack_require__(454); -const turfTruncate = __webpack_require__(455); -const turfDestination = __webpack_require__(354); -const turfDistance = __webpack_require__(456); -const turfBearing = __webpack_require__(457); -const turfHelpers = __webpack_require__(310); +const turfCircle = __webpack_require__(453); +const turfBbox = __webpack_require__(454); +const turfBboxPoly = __webpack_require__(455); +const turfTruncate = __webpack_require__(456); +const turfDestination = __webpack_require__(355); +const turfDistance = __webpack_require__(457); +const turfBearing = __webpack_require__(458); +const turfHelpers = __webpack_require__(311); if (window && typeof window.MapboxCircle === 'function') { throw new TypeError('mapbox-gl-circle-' + window.MapboxCircle.VERSION + ' already loaded'); @@ -2263,14 +2263,14 @@ module.exports = exports = MapboxCircle; /***/ }), -/* 302 */ +/* 303 */ /***/ (function(module, exports, __webpack_require__) { !function(t,e){ true?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.turf={})}(this,function(t){"use strict";function e(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.bbox,i=n.id;if(void 0===t)throw new Error("geometry is required");if(e&&e.constructor!==Object)throw new Error("properties must be an Object");r&&N(r),i&&C(i);var o={type:"Feature"};return i&&(o.id=i),r&&(o.bbox=r),o.properties=e||{},o.geometry=t,o}function n(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var i=n.bbox;if(!t)throw new Error("type is required");if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");i&&N(i);var s;switch(t){case"Point":s=r(e).geometry;break;case"LineString":s=a(e).geometry;break;case"Polygon":s=o(e).geometry;break;case"MultiPoint":s=l(e).geometry;break;case"MultiLineString":s=h(e).geometry;break;case"MultiPolygon":s=p(e).geometry;break;default:throw new Error(t+" is invalid")}return i&&(s.bbox=i),s}function r(t,n,r){if(!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!b(t[0])||!b(t[1]))throw new Error("coordinates must contain numbers");return e({type:"Point",coordinates:t},n,r)}function i(t,e,n){if(!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");return c(t.map(function(t){return r(t,e)}),n)}function o(t,n,r){if(!t)throw new Error("coordinates is required");for(var i=0;i=0))throw new Error("precision must be a positive number");var n=Math.pow(10,e||0);return Math.round(t*n)/n}function d(t,e){if(void 0===t||null===t)throw new Error("radians is required");if(e&&"string"!=typeof e)throw new Error("units must be a string");var n=qo[e||"kilometers"];if(!n)throw new Error(e+" units is invalid");return t*n}function y(t,e){if(void 0===t||null===t)throw new Error("distance is required");if(e&&"string"!=typeof e)throw new Error("units must be a string");var n=qo[e||"kilometers"];if(!n)throw new Error(e+" units is invalid");return t/n}function _(t,e){return v(y(t,e))}function m(t){if(null===t||void 0===t)throw new Error("bearing is required");var e=t%360;return e<0&&(e+=360),e}function v(t){if(null===t||void 0===t)throw new Error("radians is required");return 180*(t%(2*Math.PI))/Math.PI}function x(t){if(null===t||void 0===t)throw new Error("degrees is required");return t%360*Math.PI/180}function E(t,e,n){if(null===t||void 0===t)throw new Error("length is required");if(!(t>=0))throw new Error("length must be a positive number");return d(y(t,e),n||"kilometers")}function w(t,e,n){if(null===t||void 0===t)throw new Error("area is required");if(!(t>=0))throw new Error("area must be a positive number");var r=Bo[e||"meters"];if(!r)throw new Error("invalid original units");var i=Bo[n||"kilometers"];if(!i)throw new Error("invalid final units");return t/r*i}function b(t){return!isNaN(t)&&null!==t&&!Array.isArray(t)}function I(t){return!!t&&t.constructor===Object}function N(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(4!==t.length&&6!==t.length)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach(function(t){if(!b(t))throw new Error("bbox must only contain numbers")})}function C(t){if(!t)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof t))throw new Error("id must be a number or a string")}function S(t,e,n){if(null!==t)for(var r,i,o,s,a,u,c,h,l=0,p=0,f=t.type,g="FeatureCollection"===f,d="Feature"===f,y=g?t.features.length:1,_=0;_t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]1&&b(e[0])&&b(e[1]))return e;throw new Error("Coordinate is not a valid Point")}function U(t){if(!t)throw new Error("obj is required");var e;if(t.length?e=t:t.coordinates?e=t.coordinates:t.geometry&&t.geometry.coordinates&&(e=t.geometry.coordinates),e)return Y(e),e;throw new Error("No valid coordinates")}function Y(t){if(t.length>1&&b(t[0])&&b(t[1]))return!0;if(Array.isArray(t[0])&&t[0].length)return Y(t[0]);throw new Error("coordinates must only contain numbers")}function V(t,e,n){if(!e||!n)throw new Error("type and name required");if(!t||t.type!==e)throw new Error("Invalid input to "+n+": must be a "+e+", given "+t.type)}function H(t,e,n){if(!t)throw new Error("No feature passed");if(!n)throw new Error(".featureOf() requires a name");if(!t||"Feature"!==t.type||!t.geometry)throw new Error("Invalid input to "+n+", Feature with geometry required");if(!t.geometry||t.geometry.type!==e)throw new Error("Invalid input to "+n+": must be a "+e+", given "+t.geometry.type)}function W(t,e,n){if(!t)throw new Error("No featureCollection passed");if(!n)throw new Error(".collectionOf() requires a name");if(!t||"FeatureCollection"!==t.type)throw new Error("Invalid input to "+n+", FeatureCollection required");for(var r=0;r=0&&d>=0&&d=0;h--)if(Math.abs(e[h][0][0]-u)<=1e-7&&Math.abs(e[h][0][1]-c)<=1e-7){for(var l=s.path.length-2;l>=0;--l)e[h].unshift(s.path[l]);a=!0;break}a||(e[n++]=s.path)}})}),e}(function(t,e){for(var n=t.length-1,r=t[0].length-1,i={rows:n,cols:r,cells:[]},o=0;o=e?8:0,a|=c>=e?4:0,a|=h>=e?2:0;var p=!1;if(5===(a|=l>=e?1:0)||10===a){var f=(u+c+h+l)/4;5===a&&fe?1:0};r>n;){if(r-n>600){var o=r-n+1,s=e-n+1,a=Math.log(o),u=.5*Math.exp(2*a/3),c=.5*Math.sqrt(a*u*(o-u)/o)*(s-o/2<0?-1:1);it(t,e,Math.max(n,Math.floor(e-s*u/o+c)),Math.min(r,Math.floor(e+(o-s)*u/o+c)),i)}var h=t[e],l=n,p=r;for(ot(t,n,e),i(t[r],h)>0&&ot(t,n,r);l0;)p--}0===i(t[n],h)?ot(t,n,p):ot(t,++p,r),p<=e&&(n=p+1),e<=p&&(r=p-1)}}function ot(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function st(t,e){if(!(this instanceof st))return new st(t,e);this._maxEntries=Math.max(4,t||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),e&&this._initFormat(e),this.clear()}function at(t,e){ut(t,0,t.children.length,e,t)}function ut(t,e,n,r,i){i||(i=yt(null)),i.minX=1/0,i.minY=1/0,i.maxX=-1/0,i.maxY=-1/0;for(var o,s=e;s=t.minX&&e.maxY>=t.minY}function yt(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function _t(t,e,n,r,i){for(var o,s=[e,n];s.length;)(n=s.pop())-(e=s.pop())<=r||(o=e+Math.ceil((n-e)/r/2)*r,Yo(t,o,e,n,i),s.push(e,o,o,n))}function mt(t,e){return e={exports:{}},t(e,e.exports),e.exports}function vt(t,e){if(!(this instanceof vt))return new vt(t,e);if(this.data=t||[],this.length=this.data.length,this.compare=e||function(t,e){return te?1:0},this.length>0)for(var n=(this.length>>1)-1;n>=0;n--)this._down(n)}function xt(t,e,n){e=Math.max(0,void 0===e?2:e),n=n||0;for(var r,i=function(t){for(var e=t[0],n=t[0],r=t[0],i=t[0],o=0;or[0]&&(r=s),s[1]i[1]&&(i=s)}var a=[e,n,r,i],u=a.slice();for(o=0;oo||a.push({node:h,dist:l})}for(;a.length&&!a.peek().node.children;){var p=a.pop(),f=p.node,g=St(f,e,n),d=St(f,r,i);if(p.dist=e.minX&&t[0]<=e.maxX&&t[1]>=e.minY&&t[1]<=e.maxY}function bt(t,e,n){for(var r=Math.min(t[0],e[0]),i=Math.min(t[1],e[1]),o=Math.max(t[0],e[0]),s=Math.max(t[1],e[1]),a=n.search({minX:r,minY:i,maxX:o,maxY:s}),u=0;u0!=os(t,e,r)>0&&os(n,r,t)>0!=os(n,r,e)>0}(a[u].p,a[u].next.p,t,e))return!1;return!0}function It(t){var e=t.p,n=t.next.p;return t.minX=Math.min(e[0],n[0]),t.minY=Math.min(e[1],n[1]),t.maxX=Math.max(e[0],n[0]),t.maxY=Math.max(e[1],n[1]),t}function Nt(t,e){var n={p:t,prev:null,next:null,minX:0,minY:0,maxX:0,maxY:0};return e?(n.next=e.next,n.prev=e,e.next.prev=n,e.next=n):(n.prev=n,n.next=n),n}function Ct(t,e){var n=t[0]-e[0],r=t[1]-e[1];return n*n+r*r}function St(t,e,n){var r=e[0],i=e[1],o=n[0]-r,s=n[1]-i;if(0!==o||0!==s){var a=((t[0]-r)*o+(t[1]-i)*s)/(o*o+s*s);a>1?(r=n[0],i=n[1]):a>0&&(r+=o*a,i+=s*a)}return o=t[0]-r,s=t[1]-i,o*o+s*s}function Mt(t,e,n,r,i,o,s,a){var u,c,h,l,p=n-t,f=r-e,g=s-i,d=a-o,y=t-i,_=e-o,m=p*p+f*f,v=p*g+f*d,x=g*g+d*d,E=p*y+f*_,w=g*y+d*_,b=m*x-v*v,I=b,N=b;0===b?(c=0,I=1,l=w,N=x):(l=m*w-v*E,(c=v*w-x*E)<0?(c=0,l=w,N=x):c>I&&(c=I,l=w+v,N=x)),l<0?(l=0,-E<0?c=0:-E>m?c=I:(c=-E,I=m)):l>N&&(l=N,-E+v<0?c=0:-E+v>m?c=I:(c=-E+v,I=m)),u=0===c?0:c/I;var C=(1-(h=0===l?0:l/N))*i+h*s-((1-u)*t+u*n),S=(1-h)*o+h*a-((1-u)*e+u*r);return C*C+S*S}function Lt(t,e){if(e=e||{},!I(e))throw new Error("options is invalid");var n=e.concavity||1/0,r=[];if(S(t,function(t){r.push([t[0],t[1]])}),!r.length)return null;var i=ss(r,n);return i.length>3?o([i]):null}function Pt(t,e,n){if("object"!=typeof(n=n||{}))throw new Error("options is invalid");var r=n.ignoreBoundary;if(!t)throw new Error("point is required");if(!e)throw new Error("polygon is required");var i=X(t),o=U(e),s=e.geometry?e.geometry.type:e.type,a=e.bbox;if(a&&!1===function(t,e){return e[0]<=t[0]&&e[1]<=t[1]&&e[2]>=t[0]&&e[3]>=t[1]}(i,a))return!1;"Polygon"===s&&(o=[o]);for(var u=0,c=!1;ut[1]!=c>t[1]&&t[0]<(u-s)*(t[1]-a)/(c-a)+s&&(r=!r)}return r}function Rt(t,e){var n=[];return A(e,function(e){O(t,function(t){Pt(t,e)&&n.push(t)})}),c(n)}function Tt(t,e){if("FeatureCollection"!==t.type)throw new Error("points must be a FeatureCollection");var n=!1;return c(function(t){if(t.length<3)return[];t.sort(Dt);var e,n,r,i,o,s,a=t.length-1,u=t[a].x,c=t[0].x,h=t[a].y,l=h;for(;a--;)t[a].yl&&(l=t[a].y);var p,f=c-u,g=l-h,d=f>g?f:g,y=.5*(c+u),_=.5*(l+h),m=[new At({x:y-20*d,y:_-d,__sentinel:!0},{x:y,y:_+20*d,__sentinel:!0},{x:y+20*d,y:_-d,__sentinel:!0})],v=[],x=[];a=t.length;for(;a--;){for(x.length=0,p=m.length;p--;)(f=t[a].x-m[p].x)>0&&f*f>m[p].r?(v.push(m[p]),m.splice(p,1)):(g=t[a].y-m[p].y,f*f+g*g>m[p].r||(x.push(m[p].a,m[p].b,m[p].b,m[p].c,m[p].c,m[p].a),m.splice(p,1)));for(Ft(x),p=x.length;p;)n=x[--p],e=x[--p],r=t[a],i=n.x-e.x,o=n.y-e.y,s=2*(i*(r.y-n.y)-o*(r.x-n.x)),Math.abs(s)>1e-12&&m.push(new At(e,n,r))}Array.prototype.push.apply(v,m),a=v.length;for(;a--;)(v[a].a.__sentinel||v[a].b.__sentinel||v[a].c.__sentinel)&&v.splice(a,1);return v}(t.features.map(function(t){var r={x:t.geometry.coordinates[0],y:t.geometry.coordinates[1]};return e?r.z=t.properties[e]:3===t.geometry.coordinates.length&&(n=!0,r.z=t.geometry.coordinates[2]),r})).map(function(t){var e=[t.a.x,t.a.y],r=[t.b.x,t.b.y],i=[t.c.x,t.c.y],s={};return n?(e.push(t.a.z),r.push(t.b.z),i.push(t.c.z)):s={a:t.a.z,b:t.b.z,c:t.c.z},o([[e,r,i,e]],s)}))}function At(t,e,n){this.a=t,this.b=e,this.c=n;var r,i,o=e.x-t.x,s=e.y-t.y,a=n.x-t.x,u=n.y-t.y,c=o*(t.x+e.x)+s*(t.y+e.y),h=a*(t.x+n.x)+u*(t.y+n.y),l=2*(o*(n.y-e.y)-s*(n.x-e.x));this.x=(u*c-s*h)/l,this.y=(o*h-a*c)/l,r=this.x-t.x,i=this.y-t.y,this.r=r*r+i*i}function Dt(t,e){return e.x-t.x}function Ft(t){var e,n,r,i,o,s=t.length;t:for(;s;)for(n=t[--s],e=t[--s],r=s;r;)if(o=t[--r],i=t[--r],e===i&&n===o||e===o&&n===i){t.splice(s,2),t.splice(r,2),s-=2;continue t}}function qt(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.units,i=X(t),o=X(e),s=x(o[1]-i[1]),a=x(o[0]-i[0]),u=x(i[1]),c=x(o[1]),h=Math.pow(Math.sin(s/2),2)+Math.pow(Math.sin(a/2),2)*Math.cos(u)*Math.cos(c);return d(2*Math.atan2(Math.sqrt(h),Math.sqrt(1-h)),r)}function Gt(t){if(!t)throw new Error("geojson is required");switch(t.type){case"Feature":return Bt(t);case"FeatureCollection":return function(t){var e={type:"FeatureCollection"};return Object.keys(t).forEach(function(n){switch(n){case"type":case"features":return;default:e[n]=t[n]}}),e.features=t.features.map(function(t){return Bt(t)}),e}(t);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return zt(t);default:throw new Error("unknown GeoJSON type")}}function Bt(t){var e={type:"Feature"};return Object.keys(t).forEach(function(n){switch(n){case"type":case"properties":case"geometry":return;default:e[n]=t[n]}}),e.properties=kt(t.properties),e.geometry=zt(t.geometry),e}function kt(t){var e={};return t?(Object.keys(t).forEach(function(n){var r=t[n];"object"==typeof r?null===r?e[n]=null:r.length?e[n]=r.map(function(t){return t}):e[n]=kt(r):e[n]=r}),e):e}function zt(t){var e={type:t.type};return t.bbox&&(e.bbox=t.bbox),"GeometryCollection"===t.type?(e.geometries=t.geometries.map(function(t){return zt(t)}),e):(e.coordinates=jt(t.coordinates),e)}function jt(t){return"object"!=typeof t[0]?t.slice():t.map(function(t){return jt(t)})}function Xt(t,e){function n(t,e){e.length&&e.pop();for(var n=c[t<0?~t:t],r=0,i=n.length;r1)for(var s,a,u=1,c=i(r[0]);uc&&(a=r[0],r[0]=r[u],r[u]=a,c=s);return r})}}function Yt(t,e,n){for(var r,i=e+(n---e>>1);e=Math.abs(h)?c>0?o<=r&&r<=a:a<=r&&r<=o:h>0?s<=i&&i<=u:u<=i&&i<=s)}(n,i=e[a+1],r)||o.push(r);return o.push(i),o}function ne(t,e){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r}function re(t,e,n){var r=e.x,i=e.y,o=n.x-r,s=n.y-i;if(0!==o||0!==s){var a=((t.x-r)*o+(t.y-i)*s)/(o*o+s*s);a>1?(r=n.x,i=n.y):a>0&&(r+=o*a,i+=s*a)}return o=t.x-r,s=t.y-i,o*o+s*s}function ie(t,e,n,r,i){for(var o,s=r,a=e+1;as&&(o=a,s=u)}s>r&&(o-e>1&&ie(t,e,o,r,i),i.push(t[o]),n-o>1&&ie(t,o,n,r,i))}function oe(t,e,n){if(t.length<=2)return t;var r=void 0!==e?e*e:1;return t=n?t:function(t,e){for(var n,r=t[0],i=[r],o=1,s=t.length;oe&&(i.push(n),r=n);return r!==n&&i.push(n),i}(t,r),t=function(t,e){var n=t.length-1,r=[t[0]];return ie(t,0,n,e,r),r.push(t[n]),r}(t,r)}function se(t,e,n){return oe(t.map(function(t){return{x:t[0],y:t[1],z:t[2]}}),e,n).map(function(t){return t.z?[t.x,t.y,t.z]:[t.x,t.y]})}function ae(t,e,n){return t.map(function(t){var r=t.map(function(t){return{x:t[0],y:t[1]}});if(r.length<4)throw new Error("invalid polygon");for(var i=oe(r,e,n).map(function(t){return[t.x,t.y]});!function(t){return!(t.length<3||3===t.length&&t[2][0]===t[0][0]&&t[2][1]===t[0][1])}(i);)i=oe(r,e-=.01*e,n).map(function(t){return[t.x,t.y]});return i[i.length-1][0]===i[0][0]&&i[i.length-1][1]===i[0][1]||i.push(i[0]),i})}function ue(t,e){if(e=e||{},!I(e))throw new Error("options is invalid");var n=e.resolution||1e4,r=e.sharpness||.85;if(!t)throw new Error("line is required");if(!b(n))throw new Error("resolution must be an number");if(!b(r))throw new Error("sharpness must be an number");for(var i=[],o=new bs({points:J(t).coordinates.map(function(t){return{x:t[0],y:t[1]}}),duration:n,sharpness:r}),s=0;s=qt(t.slice(0,2),[e,i])){var o=(n+i)/2;return[e,o-(r-e)/2,r,o+(r-e)/2]}var s=(e+r)/2;return[s-(i-n)/2,n,s+(i-n)/2,i]}function pe(t,e,n,i){if(i=i||{},!I(i))throw new Error("options is invalid");var o=i.units,s=i.properties,a=X(t),u=x(a[0]),c=x(a[1]),h=x(n),l=y(e,o),p=Math.asin(Math.sin(c)*Math.cos(l)+Math.cos(c)*Math.sin(l)*Math.cos(h));return r([v(u+Math.atan2(Math.sin(h)*Math.sin(l)*Math.cos(c),Math.cos(l)-Math.sin(c)*Math.sin(p))),v(p)],s)}function fe(t,e,n){var r=(n=n||{}).steps||64,i=n.properties;if(!t)throw new Error("center is required");if(!e)throw new Error("radius is required");if("object"!=typeof n)throw new Error("options must be an object");if("number"!=typeof r)throw new Error("steps must be a number");r=r||64,i=i||t.properties||{};for(var s=[],a=0;a=r.next.y&&r.next.y!==r.y){var a=r.x+(o-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(a<=i&&a>s){if(s=a,a===i){if(o===r.y)return r;if(o===r.next.y)return r.next}n=r.x=r.x&&r.x>=h&&i!==r.x&&Ne(on.x)&&Le(r,t)&&(n=r,p=u),r=r.next;return n}(t,e)){var n=Pe(e,t);Ee(n,n.next)}}(c[i],n),n=Ee(n,n.next);return n}(t,e,o,n)),t.length>80*n){a=c=t[0],u=h=t[1];for(var g=n;gc&&(c=l),p>h&&(h=p);f=0!==(f=Math.max(c-a,h-u))?1/f:0}return we(o,s,n,a,u,f),s}function xe(t,e,n,r,i){var o,s;if(i===Ae(t,e,n,r)>0)for(o=e;o=e;o-=r)s=Oe(o,t[o],t[o+1],s);return s&&Se(s,s.next)&&(Re(s),s=s.next),s}function Ee(t,e){if(!t)return t;e||(e=t);var n,r=t;do{if(n=!1,r.steiner||!Se(r,r.next)&&0!==Ce(r.prev,r,r.next))r=r.next;else{if(Re(r),(r=e=r.prev)===r.next)break;n=!0}}while(n||r!==e);return e}function we(t,e,n,r,i,o,s){if(t){!s&&o&&function(t,e,n,r){var i=t;do{null===i.z&&(i.z=Ie(i.x,i.y,e,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,n,r,i,o,s,a,u,c=1;do{for(n=t,t=null,o=null,s=0;n;){for(s++,r=n,a=0,e=0;e0||u>0&&r;)0!==a&&(0===u||!r||n.z<=r.z)?(i=n,n=n.nextZ,a--):(i=r,r=r.nextZ,u--),o?o.nextZ=i:t=i,i.prevZ=o,o=i;n=r}o.nextZ=null,c*=2}while(s>1)}(i)}(t,r,i,o);for(var a,u,c=t;t.prev!==t.next;)if(a=t.prev,u=t.next,o?function(t,e,n,r){var i=t.prev,o=t,s=t.next;if(Ce(i,o,s)>=0)return!1;var a=i.xo.x?i.x>s.x?i.x:s.x:o.x>s.x?o.x:s.x,h=i.y>o.y?i.y>s.y?i.y:s.y:o.y>s.y?o.y:s.y,l=Ie(a,u,e,n,r),p=Ie(c,h,e,n,r),f=t.nextZ;for(;f&&f.z<=p;){if(f!==t.prev&&f!==t.next&&Ne(i.x,i.y,o.x,o.y,s.x,s.y,f.x,f.y)&&Ce(f.prev,f,f.next)>=0)return!1;f=f.nextZ}f=t.prevZ;for(;f&&f.z>=l;){if(f!==t.prev&&f!==t.next&&Ne(i.x,i.y,o.x,o.y,s.x,s.y,f.x,f.y)&&Ce(f.prev,f,f.next)>=0)return!1;f=f.prevZ}return!0}(t,r,i,o):function(t){var e=t.prev,n=t,r=t.next;if(Ce(e,n,r)>=0)return!1;var i=t.next.next;for(;i!==t.prev;){if(Ne(e.x,e.y,n.x,n.y,r.x,r.y,i.x,i.y)&&Ce(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}(t))e.push(a.i/n),e.push(t.i/n),e.push(u.i/n),Re(t),t=u.next,c=u.next;else if((t=u)===c){s?1===s?we(t=function(t,e,n){var r=t;do{var i=r.prev,o=r.next.next;!Se(i,o)&&Me(i,r,r.next,o)&&Le(i,o)&&Le(o,i)&&(e.push(i.i/n),e.push(r.i/n),e.push(o.i/n),Re(r),Re(r.next),r=t=o),r=r.next}while(r!==t);return r}(t,e,n),e,n,r,i,o,2):2===s&&function(t,e,n,r,i,o){var s=t;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&function(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Me(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&Le(t,e)&&Le(e,t)&&function(t,e){var n=t,r=!1,i=(t.x+e.x)/2,o=(t.y+e.y)/2;do{n.y>o!=n.next.y>o&&n.next.y!==n.y&&i<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==t);return r}(t,e)}(s,a)){var u=Pe(s,a);return s=Ee(s,s.next),u=Ee(u,u.next),we(s,e,n,r,i,o),void we(u,e,n,r,i,o)}a=a.next}s=s.next}while(s!==t)}(t,e,n,r,i,o):we(Ee(t),e,n,r,i,o,1);break}}}function be(t,e){return t.x-e.x}function Ie(t,e,n,r,i){return t=32767*(t-n)*i,e=32767*(e-r)*i,t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t|e<<1}function Ne(t,e,n,r,i,o,s,a){return(i-s)*(e-a)-(t-s)*(o-a)>=0&&(t-s)*(r-a)-(n-s)*(e-a)>=0&&(n-s)*(o-a)-(i-s)*(r-a)>=0}function Ce(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function Se(t,e){return t.x===e.x&&t.y===e.y}function Me(t,e,n,r){return!!(Se(t,e)&&Se(n,r)||Se(t,r)&&Se(n,e))||Ce(t,e,n)>0!=Ce(t,e,r)>0&&Ce(n,r,t)>0!=Ce(n,r,e)>0}function Le(t,e){return Ce(t.prev,t,t.next)<0?Ce(t,e,t.next)>=0&&Ce(t,t.prev,e)>=0:Ce(t,e,t.prev)<0||Ce(t,t.next,e)<0}function Pe(t,e){var n=new Te(t.i,t.x,t.y),r=new Te(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,n.next=i,i.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r}function Oe(t,e,n,r){var i=new Te(t,e,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function Re(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Te(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Ae(t,e,n,r){for(var i=0,o=e,s=n-r;o0&&(r+=t[i-1].length,n.holes.push(r))}return n}(t),n=Is(e.vertices,e.holes,2),r=[],i=[];n.forEach(function(t,r){var o=n[r];i.push([e.vertices[2*o],e.vertices[2*o+1]])});for(var s=0;se?1:0})}function Ge(t,e,n,r,i){for(;r>n;){if(r-n>600){var o=r-n+1,s=e-n+1,a=Math.log(o),u=.5*Math.exp(2*a/3),c=.5*Math.sqrt(a*u*(o-u)/o)*(s-o/2<0?-1:1);Ge(t,e,Math.max(n,Math.floor(e-s*u/o+c)),Math.min(r,Math.floor(e+(o-s)*u/o+c)),i)}var h=t[e],l=n,p=r;for(Be(t,n,e),i(t[r],h)>0&&Be(t,n,r);l0;)p--}0===i(t[n],h)?Be(t,n,p):Be(t,++p,r),p<=e&&(n=p+1),e<=p&&(r=p-1)}}function Be(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function ke(t,e){if(!(this instanceof ke))return new ke(t,e);this._maxEntries=Math.max(4,t||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),e&&this._initFormat(e),this.clear()}function ze(t,e){je(t,0,t.children.length,e,t)}function je(t,e,n,r,i){i||(i=Ze(null)),i.minX=1/0,i.minY=1/0,i.maxX=-1/0,i.maxY=-1/0;for(var o,s=e;s=t.minX&&e.maxY>=t.minY}function Ze(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function Ke(t,e,n,r,i){for(var o,s=[e,n];s.length;)(n=s.pop())-(e=s.pop())<=r||(qe(t,o=e+Math.ceil((n-e)/r/2)*r,e,n,i),s.push(e,o,o,n))}function Qe(t){var e=ke(t);return e.insert=function(t){if(Array.isArray(t)){var e=t;(t=$e(e)).bbox=e}else t.bbox=t.bbox?t.bbox:tn(t);return ke.prototype.insert.call(this,t)},e.load=function(t){var e=[];return Array.isArray(t)?t.forEach(function(t){var n=$e(t);n.bbox=t,e.push(n)}):O(t,function(t){t.bbox=t.bbox?t.bbox:tn(t),e.push(t)}),ke.prototype.load.call(this,e)},e.remove=function(t){if(Array.isArray(t)){var e=t;(t=$e(e)).bbox=e}return ke.prototype.remove.call(this,t)},e.clear=function(){return ke.prototype.clear.call(this)},e.search=function(t){return{type:"FeatureCollection",features:ke.prototype.search.call(this,this.toBBox(t))}},e.collides=function(t){return ke.prototype.collides.call(this,this.toBBox(t))},e.all=function(){return{type:"FeatureCollection",features:ke.prototype.all.call(this)}},e.toJSON=function(){return ke.prototype.toJSON.call(this)},e.fromJSON=function(t){return ke.prototype.fromJSON.call(this,t)},e.toBBox=function(t){var e;return e=t.bbox?t.bbox:Array.isArray(t)&&4===t.length?t:tn(t),{minX:e[0],minY:e[1],maxX:e[2],maxY:e[3]}},e}function $e(t){var e=[t[0],t[1]],n=[t[0],t[3]],r=[t[2],t[3]];return{type:"Feature",bbox:t,properties:{},geometry:{type:"Polygon",coordinates:[[e,[t[2],t[1]],r,n,e]]}}}function tn(t){var e=[1/0,1/0,-1/0,-1/0];return S(t,function(t){e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]i?n:i,r>o?r:o]}(t,r),n.push(i),r}),n}(n,t.properties);r.forEach(function(t){t.id=e.length,e.push(t)})})}(t,e)}),c(e)}function nn(t,n){var r={},i=[];if("LineString"===t.type&&(t=e(t)),"LineString"===n.type&&(n=e(n)),"Feature"===t.type&&"Feature"===n.type&&"LineString"===t.geometry.type&&"LineString"===n.geometry.type&&2===t.geometry.coordinates.length&&2===n.geometry.coordinates.length){var o=rn(t,n);return o&&i.push(o),c(i)}var s=Qe();return s.load(en(n)),O(en(t),function(t){O(s.search(t),function(e){var n=rn(t,e);if(n){var o=U(n).join(",");r[o]||(r[o]=!0,i.push(n))}})}),c(i)}function rn(t,e){var n=U(t),i=U(e);if(2!==n.length)throw new Error(" line1 must only contain 2 coordinates");if(2!==i.length)throw new Error(" line2 must only contain 2 coordinates");var o=n[0][0],s=n[0][1],a=n[1][0],u=n[1][1],c=i[0][0],h=i[0][1],l=i[1][0],p=i[1][1],f=(p-h)*(a-o)-(l-c)*(u-s),g=(l-c)*(s-h)-(p-h)*(o-c),d=(a-o)*(s-h)-(u-s)*(o-c);if(0===f)return null;var y=g/f,_=d/f;if(y>=0&&y<=1&&_>=0&&_<=1){return r([o+y*(a-o),s+y*(u-s)])}return null}function on(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var i=t.geometry?t.geometry.type:t.type;if("LineString"!==i&&"MultiLineString"!==i)throw new Error("lines must be LineString or MultiLineString");var o=r([1/0,1/0],{dist:1/0}),s=0;return F(t,function(t){for(var i=U(t),u=0;u0&&((_=y.features[0]).properties.dist=qt(e,_,n),_.properties.location=s+qt(c,_,n)),c.properties.dist180?-(360-i):i}function an(t,e){var n=x(t[1]),r=x(e[1]),i=x(e[0]-t[0]);i>Math.PI&&(i-=2*Math.PI),i<-Math.PI&&(i+=2*Math.PI);var o=Math.log(Math.tan(r/2+Math.PI/4)/Math.tan(n/2+Math.PI/4));return(v(Math.atan2(i,o))+360)%360}function un(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.units;if(!t)throw new Error("from point is required");if(!e)throw new Error("to point is required");var i=X(t),o=X(e);o[0]+=o[0]-i[0]>180?-360:i[0]-o[0]>180?360:0;return E(function(t,e,n){var r=n=void 0===n?Fo:Number(n),i=t[1]*Math.PI/180,o=e[1]*Math.PI/180,s=o-i,a=Math.abs(e[0]-t[0])*Math.PI/180;a>Math.PI&&(a-=2*Math.PI);var u=Math.log(Math.tan(o/2+Math.PI/4)/Math.tan(i/2+Math.PI/4)),c=Math.abs(u)>1e-11?s/u:Math.cos(i);return Math.sqrt(s*s+c*c*a*a)*r}(i,o),"meters",r)}function cn(t,e){return ln(t,"mercator",e)}function hn(t,e){return ln(t,"wgs84",e)}function ln(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.mutate;if(!t)throw new Error("geojson is required");return Array.isArray(t)&&b(t[0])?t="mercator"===e?pn(t):fn(t):(!0!==r&&(t=Gt(t)),S(t,function(t){var n="mercator"===e?pn(t):fn(t);t[0]=n[0],t[1]=n[1]})),t}function pn(t){var e=Math.PI/180,n=20037508.342789244,r=[6378137*(Math.abs(t[0])<=180?t[0]:t[0]-360*function(t){return t<0?-1:t>0?1:0}(t[0]))*e,6378137*Math.log(Math.tan(.25*Math.PI+.5*t[1]*e))];return r[0]>n&&(r[0]=n),r[0]<-n&&(r[0]=-n),r[1]>n&&(r[1]=n),r[1]<-n&&(r[1]=-n),r}function fn(t){var e=180/Math.PI;return[t[0]*e/6378137,(.5*Math.PI-2*Math.atan(Math.exp(-t[1]/6378137)))*e]}function gn(t,n,i){if(i=i||{},!I(i))throw new Error("options is invalid");if(!t)throw new Error("pt is required");if(Array.isArray(t)?t=r(t):"Point"===t.type?t=e(t):H(t,"Point","point"),!n)throw new Error("line is required");Array.isArray(n)?n=a(n):"LineString"===n.type?n=e(n):H(n,"LineString","line");var o=1/0,s=t.geometry.coordinates;return G(n,function(t){var e=t.geometry.coordinates[0],n=t.geometry.coordinates[1],a=function(t,e,n,i){var o=i.mercator,s=!0!==o?qt(e,t,i):dn(e,t,i),a=m(!0!==o?ge(e,t):sn(e,t)),u=m(!0!==o?ge(e,n):sn(e,n)),c=Math.abs(a-u);if(c>90)return s;var h=(u+180)%360,l=m(!0!==o?ge(n,t):sn(n,t)),p=Math.abs(l-h);p>180&&(p=Math.abs(p-360));return p>90?!0!==o?qt(t,n,i):dn(t,n,i):!0!==o?s*Math.sin(x(c)):function(t,e,n,i){var o=0;(Math.abs(t[0])>=180||Math.abs(e[0])>=180||Math.abs(n[0])>=180)&&(o=t[0]>0||e[0]>0||n[0]>0?-180:180);var s=r(n),a=cn([t[0]+o,t[1]]),u=cn([e[0]+o,e[1]]),c=cn([n[0]+o,n[1]]),h=hn(function(t,e,n){var r=t[0],i=t[1],o=e[0],s=e[1],a=n[0],u=n[1],c=o-r,h=s-i,l=((a-r)*c+(u-i)*h)/(c*c+h*h);return[r+l*c,i+l*h]}(a,u,c));return 0!==o&&(h[0]-=o),un(s,h,i)}(e,n,t,i)}(s,e,n,i);o>a&&(o=a)}),o}function dn(t,e,n){var r=n.units,i=0;Math.abs(t[0])>=180&&(i=t[0]>0?-180:180),Math.abs(e[0])>=180&&(i=e[0]>0?-180:180);var o=cn([t[0]+i,t[1]]),s=cn([e[0]+i,e[1]]),a=function(t){return t*t},u=a(o[0]-s[0])+a(o[1]-s[1]);return E(Math.sqrt(u),"meters",r)}function yn(t){for(var n=function(t){if("FeatureCollection"!==t.type)return"Feature"!==t.type?c([e(t)]):c([t]);return t}(t),i=de(n),o=!1,s=0;!o&&s0){e+=Math.abs(En(t[0]));for(var n=1;n2){for(s=0;s=h&&l===i.length-1);l++){if(h>e&&0===o.length){if(!(s=e-h))return o.push(i[l]),a(o);u=ge(i[l],i[l-1])-180,c=pe(i[l],s,u,r),o.push(c.geometry.coordinates)}if(h>=n)return(s=n-h)?(u=ge(i[l],i[l-1])-180,c=pe(i[l],s,u,r),o.push(c.geometry.coordinates),a(o)):(o.push(i[l]),a(o));if(h>=e&&o.push(i[l]),l===i.length-1)return a(o);h+=qt(i[l],i[l+1],r)}return a(i[i.length-1])}function Nn(t,e,n){var r=(n=n||{}).ignoreEndVertices;if(!I(n))throw new Error("invalid options");if(!t)throw new Error("pt is required");if(!e)throw new Error("line is required");for(var i=X(t),o=U(e),s=0;s=Math.abs(f)?p>0?s<=i&&i<=u:u<=i&&i<=s:f>0?a<=o&&o<=c:c<=o&&o<=a;if("start"===r)return Math.abs(p)>=Math.abs(f)?p>0?s0?a=Math.abs(f)?p>0?s<=i&&i0?a<=o&&o=Math.abs(f)?p>0?s0?ae[0])&&(!(t[2]e[1])&&!(t[3] is required");if("number"!=typeof n)throw new Error(" must be a number");if("number"!=typeof r)throw new Error(" must be a number");!1!==i&&void 0!==i||(t=JSON.parse(JSON.stringify(t)));var o=Math.pow(10,n);return S(t,function(t){!function(t,e,n){t.length>n&&t.splice(n,t.length);for(var r=0;r=0==e}function Tn(t,e){if(!t||!e)return!1;if(t.length!=e.length)return!1;for(var n=0,r=t.length;n1&&n.push(a(l)),c(n)}function Fn(t,e){if(!e.features.length)throw new Error("lines must contain features");if(1===e.features.length)return e.features[0];var n,r=1/0;return O(e,function(e){var i=on(e,t).properties.dist;ip&&g.push(pe(t,e,p,s).geometry.coordinates),a(g,h)}function Bn(t){var e=t%360;return e<0&&(e+=360),e}function kn(t,e){if(e=e||{},!I(e))throw new Error("options is invalid");var n=e.properties,r=K(t),i=U(t);if(n=n||t.properties||{},!i.length)throw new Error("polygon must contain coordinates");switch(r){case"Polygon":return zn(i,n);case"MultiPolygon":var o=[];return i.forEach(function(t){o.push(zn(t,n))}),c(o);default:throw new Error("geom "+r+" not supported")}}function zn(t,e){return t.length>1?h(t,e):a(t[0],e)}function jn(t,e){if(e=e||{},!I(e))throw new Error("options is invalid");var n=e.properties,r=e.autoComplete,i=e.orderCoords;if(!t)throw new Error("lines is required");r=void 0===r||r,i=void 0===i||i;switch(K(t)){case"FeatureCollection":case"GeometryCollection":var o=[];return(t.features?t.features:t.geometries).forEach(function(t){o.push(U(Xn(t,{},r,i)))}),p(o,n)}return Xn(t,n,r,i)}function Xn(t,e,n,r){e=e||t.properties||{};var i=U(t),s=K(t);if(!i.length)throw new Error("line must contain coordinates");switch(s){case"LineString":return n&&(i=Un(i)),o([i],e);case"MultiLineString":var u=[],c=0;return i.forEach(function(t){if(n&&(t=Un(t)),r){var e=function(t){var e=t[0],n=t[1],r=t[2],i=t[3];return Math.abs(e-r)*Math.abs(n-i)}(j(a(t)));e>c?(u.unshift(t),c=e):u.push(t)}else u.push(t)}),o(u,e);default:throw new Error("geometry type "+s+" is not supported")}}function Un(t){var e=t[0],n=e[0],r=e[1],i=t[t.length-1],o=i[0],s=i[1];return n===o&&r===s||t.push(e),t}function Yn(t,e,n){var r,i,o,s,a,u=t.length,c=Hn(t[0],e),h=[];for(n||(n=[]),r=1;re[2]&&(n|=2),t[1]e[3]&&(n|=8),n}function Wn(t,e){for(var n=[],r=0;r0&&(i[0][0]===i[i.length-1][0]&&i[0][1]===i[i.length-1][1]||i.push(i[0]),i.length>=4&&n.push(i))}return n}function Jn(t){return"[object Arguments]"===Object.prototype.toString.call(t)}function Zn(t,e,n){return n||(n={}),t===e||(t instanceof Date&&e instanceof Date?t.getTime()===e.getTime():!t||!e||"object"!=typeof t&&"object"!=typeof e?(n.strict,t===e):function(t,e,n){var r,i;if(Kn(t)||Kn(e))return!1;if(t.prototype!==e.prototype)return!1;if(Jn(t))return!!Jn(e)&&(t=Bs.call(t),e=Bs.call(e),Zn(t,e,n));if(Qn(t)){if(!Qn(e))return!1;if(t.length!==e.length)return!1;for(r=0;r=0;r--)if(o[r]!==s[r])return!1;for(r=o.length-1;r>=0;r--)if(i=o[r],!Zn(t[i],e[i],n))return!1;return typeof t==typeof e}(t,e,n))}function Kn(t){return null===t||void 0===t}function Qn(t){return!(!t||"object"!=typeof t||"number"!=typeof t.length)&&("function"==typeof t.copy&&"function"==typeof t.slice&&!(t.length>0&&"number"!=typeof t[0]))}function $n(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.tolerance||0,i=[],o=Qe();o.load(en(t));var s;return G(e,function(t){var e=!1;O(o.search(t),function(n){if(!1===e){var i=U(t).sort(),o=U(n).sort();Zn(i,o)?(e=!0,s=s?tr(s,t):t):(0===r?Nn(i[0],n)&&Nn(i[1],n):on(n,i[0]).properties.dist<=r&&on(n,i[1]).properties.dist<=r)?(e=!0,s=s?tr(s,t):t):(0===r?Nn(o[0],t)&&Nn(o[1],t):on(t,o[0]).properties.dist<=r&&on(t,o[1]).properties.dist<=r)&&(s=s?tr(s,n):n)}}),!1===e&&s&&(i.push(s),s=void 0)}),s&&i.push(s),c(i)}function tr(t,e){var n=U(e),r=U(t),i=r[0],o=r[r.length-1],s=t.geometry.coordinates;return Zn(n[0],i)?s.unshift(n[1]):Zn(n[0],o)?s.push(n[1]):Zn(n[1],i)?s.unshift(n[0]):Zn(n[1],o)&&s.push(n[0]),t}function er(t){var e=t%360;return e<0&&(e+=360),e}function nr(t,e,n,i){if(i=i||{},!I(i))throw new Error("options is invalid");var o=i.units,s=i.properties;if(!t)throw new Error("origin is required");if(void 0===e||null===e)throw new Error("distance is required");if(void 0===n||null===n)throw new Error("bearing is required");if(!(e>=0))throw new Error("distance must be greater than 0");var a=E(e,o,"meters"),u=X(t),c=function(t,e,n,r){r=void 0===r?Fo:Number(r);var i=e/r,o=t[0]*Math.PI/180,s=x(t[1]),a=x(n),u=i*Math.cos(a),c=s+u;Math.abs(c)>Math.PI/2&&(c=c>0?Math.PI-c:-Math.PI-c);var h=Math.log(Math.tan(c/2+Math.PI/4)/Math.tan(s/2+Math.PI/4)),l=Math.abs(h)>1e-11?u/h:Math.cos(s),p=i*Math.sin(a)/l;return[(180*(o+p)/Math.PI+540)%360-180,180*c/Math.PI]}(u,a,n);return c[0]+=c[0]-u[0]>180?-360:u[0]-c[0]>180?360:0,r(c,s)}function rr(t,e,n,r,i,o){for(var s=0;s0?function(t,e,n){return ir(t,e,n)<0}(e,a,i)||(i=a):n>0&&r<=0&&(function(t,e,n){return ir(t,e,n)>0}(e,a,o)||(o=a)),n=r}return[i,o]}function ir(t,e,n){return(e[0]-t[0])*(n[1]-t[1])-(n[0]-t[0])*(e[1]-t[1])}function or(t){if(!t)throw new Error("line is required");var e=t.geometry?t.geometry.type:t.type;if(!Array.isArray(t)&&"LineString"!==e)throw new Error("geometry must be a LineString");for(var n,r,i=U(t),o=0,s=1;s0}function sr(t,e){switch("Feature"===t.type?t.geometry.type:t.type){case"GeometryCollection":return A(t,function(t){sr(t,e)}),t;case"LineString":return ar(U(t),e),t;case"Polygon":return ur(U(t),e),t;case"MultiLineString":return U(t).forEach(function(t){ar(t,e)}),t;case"MultiPolygon":return U(t).forEach(function(t){ur(t,e)}),t;case"Point":case"MultiPoint":return t}}function ar(t,e){or(t)===e&&t.reverse()}function ur(t,e){or(t[0])!==e&&t[0].reverse();for(var n=1;ns?128:64,c|=ls?32:16,c|=ps?8:4;var g=+(c|=fs?2:1),d=0;if(17===c||18===c||33===c||34===c||38===c||68===c||72===c||98===c||102===c||132===c||136===c||137===c||152===c||153===c){var y=(h+l+p+f)/4;d=y>s?2:y0?(c=156,d=4):c=152:33===c?d>0?(c=139,d=4):c=137:72===c?d>0?(c=99,d=4):c=98:132===c&&(d>0?(c=39,d=4):c=38)}if(0!=c&&170!=c){var _,m,v,x,E,w,b,I;_=m=v=x=E=w=b=I=.5;var N=[];1===c?(v=1-lr(e,p,f),I=1-lr(e,h,f),N.push(Sa[c])):169===c?(v=lr(s,f,p),I=lr(s,f,h),N.push(Sa[c])):4===c?(w=1-lr(e,l,p),x=lr(e,f,p),N.push(Na[c])):166===c?(w=lr(s,p,l),x=1-lr(s,p,f),N.push(Na[c])):16===c?(E=lr(e,p,l),m=lr(e,h,l),N.push(Ia[c])):154===c?(E=1-lr(s,l,p),m=1-lr(s,l,h),N.push(Ia[c])):64===c?(b=lr(e,f,h),_=1-lr(e,l,h),N.push(La[c])):106===c?(b=1-lr(s,h,f),_=lr(s,h,l),N.push(La[c])):168===c?(x=lr(s,f,p),v=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),N.push(Ca[c]),N.push(Sa[c])):2===c?(x=1-lr(e,p,f),v=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),N.push(Ca[c]),N.push(Sa[c])):162===c?(E=lr(s,p,l),w=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),N.push(Ca[c]),N.push(Sa[c])):8===c?(E=1-lr(e,l,p),w=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),N.push(Ia[c]),N.push(Na[c])):138===c?(E=1-lr(e,l,p),w=1-lr(s,l,p),_=1-lr(s,l,h),m=1-lr(e,l,h),N.push(Ia[c]),N.push(Na[c])):32===c?(E=lr(s,p,l),w=lr(e,p,l),_=lr(e,h,l),m=lr(s,h,l),N.push(Ia[c]),N.push(Na[c])):42===c?(I=1-lr(s,h,f),b=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l),N.push(Ma[c]),N.push(La[c])):128===c&&(I=lr(e,f,h),b=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h),N.push(Ma[c]),N.push(La[c])),5===c?(w=1-lr(e,l,p),I=1-lr(e,h,f),N.push(Na[c])):165===c?(w=lr(s,p,l),I=lr(s,f,h),N.push(Na[c])):20===c?(x=lr(e,f,p),m=lr(e,h,l),N.push(Ca[c])):150===c?(x=1-lr(s,p,f),m=1-lr(s,l,h),N.push(Ca[c])):80===c?(E=lr(e,p,l),b=lr(e,f,h),N.push(Ia[c])):90===c?(E=1-lr(s,l,p),b=1-lr(s,h,f),N.push(Ia[c])):65===c?(v=1-lr(e,p,f),_=1-lr(e,l,h),N.push(Sa[c])):105===c?(v=lr(s,f,p),_=lr(s,h,l),N.push(Sa[c])):160===c?(E=lr(s,p,l),w=lr(e,p,l),I=lr(e,f,h),b=lr(s,f,h),N.push(Ia[c]),N.push(Na[c])):10===c?(E=1-lr(e,l,p),w=1-lr(s,l,p),I=1-lr(s,h,f),b=1-lr(e,h,f),N.push(Ia[c]),N.push(Na[c])):130===c?(x=1-lr(e,p,f),v=1-lr(s,p,f),_=1-lr(s,l,h),m=1-lr(e,l,h),N.push(Ca[c]),N.push(Sa[c])):40===c?(x=lr(s,f,p),v=lr(e,f,p),_=lr(e,h,l),m=lr(s,h,l),N.push(Ca[c]),N.push(Sa[c])):101===c?(w=lr(s,p,l),_=lr(s,h,l),N.push(Na[c])):69===c?(w=1-lr(e,l,p),_=1-lr(e,l,h),N.push(Na[c])):149===c?(I=lr(s,f,h),m=1-lr(s,l,h),N.push(Ma[c])):21===c?(I=1-lr(e,h,f),m=lr(e,h,l),N.push(Ma[c])):86===c?(x=1-lr(s,p,f),b=1-lr(s,h,f),N.push(Ca[c])):84===c?(x=lr(e,f,p),b=lr(e,f,h),N.push(Ca[c])):89===c?(E=1-lr(s,l,p),v=lr(s,f,p),N.push(Sa[c])):81===c?(E=lr(e,p,l),v=1-lr(e,p,f),N.push(Sa[c])):96===c?(E=lr(s,p,l),w=lr(e,p,l),b=lr(e,f,h),_=lr(s,h,l),N.push(Ia[c]),N.push(Na[c])):74===c?(E=1-lr(e,l,p),w=1-lr(s,l,p),b=1-lr(s,h,f),_=1-lr(e,l,h),N.push(Ia[c]),N.push(Na[c])):24===c?(E=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),m=lr(e,h,l),N.push(Ia[c]),N.push(Sa[c])):146===c?(E=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),m=1-lr(s,l,h),N.push(Ia[c]),N.push(Sa[c])):6===c?(w=1-lr(e,l,p),x=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),N.push(Na[c]),N.push(Ca[c])):164===c?(w=lr(s,p,l),x=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),N.push(Na[c]),N.push(Ca[c])):129===c?(v=1-lr(e,p,f),I=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h),N.push(Sa[c]),N.push(Ma[c])):41===c?(v=lr(s,f,p),I=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l),N.push(Sa[c]),N.push(Ma[c])):66===c?(x=1-lr(e,p,f),v=1-lr(s,p,f),b=1-lr(s,h,f),_=1-lr(e,l,h),N.push(Ca[c]),N.push(Sa[c])):104===c?(x=lr(s,f,p),v=lr(e,f,p),b=lr(e,f,h),_=lr(s,h,l),N.push(Sa[c]),N.push(Pa[c])):144===c?(E=lr(e,p,l),I=lr(e,f,h),b=lr(s,f,h),m=1-lr(s,l,h),N.push(Ia[c]),N.push(La[c])):26===c?(E=1-lr(s,l,p),I=1-lr(s,h,f),b=1-lr(e,h,f),m=lr(e,h,l),N.push(Ia[c]),N.push(La[c])):36===c?(w=lr(s,p,l),x=lr(e,f,p),_=lr(e,h,l),m=lr(s,h,l),N.push(Na[c]),N.push(Ca[c])):134===c?(w=1-lr(e,l,p),x=1-lr(s,p,f),_=1-lr(s,l,h),m=1-lr(e,l,h),N.push(Na[c]),N.push(Ca[c])):9===c?(E=1-lr(e,l,p),w=1-lr(s,l,p),v=lr(s,f,p),I=1-lr(e,h,f),N.push(Ia[c]),N.push(Na[c])):161===c?(E=lr(s,p,l),w=lr(e,p,l),v=1-lr(e,p,f),I=lr(s,f,h),N.push(Ia[c]),N.push(Na[c])):37===c?(w=lr(s,p,l),I=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l),N.push(Na[c]),N.push(Ma[c])):133===c?(w=1-lr(e,l,p),I=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h),N.push(Na[c]),N.push(Ma[c])):148===c?(x=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),m=1-lr(s,l,h),N.push(Ca[c]),N.push(La[c])):22===c?(x=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),m=lr(e,h,l),N.push(Ca[c]),N.push(La[c])):82===c?(E=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),b=1-lr(s,h,f),N.push(Ia[c]),N.push(Sa[c])):88===c?(E=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),b=lr(e,f,h),N.push(Ia[c]),N.push(Sa[c])):73===c?(E=1-lr(e,l,p),w=1-lr(s,l,p),v=lr(s,f,p),_=1-lr(e,l,h),N.push(Ia[c]),N.push(Na[c])):97===c?(E=lr(s,p,l),w=lr(e,p,l),v=1-lr(e,p,f),_=lr(s,h,l),N.push(Ia[c]),N.push(Na[c])):145===c?(E=lr(e,p,l),v=1-lr(e,p,f),I=lr(s,f,h),m=1-lr(s,l,h),N.push(Ia[c]),N.push(Ma[c])):25===c?(E=1-lr(s,l,p),v=lr(s,f,p),I=1-lr(e,h,f),m=lr(e,h,l),N.push(Ia[c]),N.push(Ma[c])):70===c?(w=1-lr(e,l,p),x=1-lr(s,p,f),b=1-lr(s,h,f),_=1-lr(e,l,h),N.push(Na[c]),N.push(Ca[c])):100===c?(w=lr(s,p,l),x=lr(e,f,p),b=lr(e,f,h),_=lr(s,h,l),N.push(Na[c]),N.push(Ca[c])):34===c?(0===d?(E=1-lr(e,l,p),w=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h)):(E=lr(s,p,l),w=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l)),N.push(Ia[c]),N.push(Na[c]),N.push(Ma[c]),N.push(La[c])):35===c?(4===d?(E=1-lr(e,l,p),w=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h)):(E=lr(s,p,l),w=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l)),N.push(Ia[c]),N.push(Na[c]),N.push(Sa[c]),N.push(La[c])):136===c?(0===d?(E=lr(s,p,l),w=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l)):(E=1-lr(e,l,p),w=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h)),N.push(Ia[c]),N.push(Na[c]),N.push(Ma[c]),N.push(La[c])):153===c?(0===d?(E=lr(e,p,l),v=1-lr(e,p,f),I=1-lr(e,h,f),m=lr(e,h,l)):(E=1-lr(s,l,p),v=lr(s,f,p),I=lr(s,f,h),m=1-lr(s,l,h)),N.push(Ia[c]),N.push(Sa[c])):102===c?(0===d?(w=1-lr(e,l,p),x=lr(e,f,p),b=lr(e,f,h),_=1-lr(e,l,h)):(w=lr(s,p,l),x=1-lr(s,p,f),b=1-lr(s,h,f),_=lr(s,h,l)),N.push(Na[c]),N.push(La[c])):155===c?(4===d?(E=lr(e,p,l),v=1-lr(e,p,f),I=1-lr(e,h,f),m=lr(e,h,l)):(E=1-lr(s,l,p),v=lr(s,f,p),I=lr(s,f,h),m=1-lr(s,l,h)),N.push(Ia[c]),N.push(Ma[c])):103===c?(4===d?(w=1-lr(e,l,p),x=lr(e,f,p),b=lr(e,f,h),_=1-lr(e,l,h)):(w=lr(s,p,l),x=1-lr(s,p,f),b=1-lr(s,h,f),_=lr(s,h,l)),N.push(Na[c]),N.push(Ca[c])):152===c?(0===d?(E=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),m=lr(e,h,l)):(E=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),m=1-lr(s,l,h)),N.push(Ia[c]),N.push(Ca[c]),N.push(Sa[c])):156===c?(4===d?(E=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),m=lr(e,h,l)):(E=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),m=1-lr(s,l,h)),N.push(Ia[c]),N.push(Sa[c]),N.push(La[c])):137===c?(0===d?(E=lr(s,p,l),w=lr(e,p,l),v=1-lr(e,p,f),I=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l)):(E=1-lr(e,l,p),w=1-lr(s,l,p),v=lr(s,f,p),I=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h)),N.push(Ia[c]),N.push(Na[c]),N.push(Sa[c])):139===c?(4===d?(E=lr(s,p,l),w=lr(e,p,l),v=1-lr(e,p,f),I=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l)):(E=1-lr(e,l,p),w=1-lr(s,l,p),v=lr(s,f,p),I=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h)),N.push(Ia[c]),N.push(Na[c]),N.push(Ma[c])):98===c?(0===d?(E=1-lr(e,l,p),w=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),b=lr(e,f,h),_=1-lr(e,l,h)):(E=lr(s,p,l),w=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),b=1-lr(s,h,f),_=lr(s,h,l)),N.push(Ia[c]),N.push(Na[c]),N.push(La[c])):99===c?(4===d?(E=1-lr(e,l,p),w=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),b=lr(e,f,h),_=1-lr(e,l,h)):(E=lr(s,p,l),w=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),b=1-lr(s,h,f),_=lr(s,h,l)),N.push(Ia[c]),N.push(Na[c]),N.push(Sa[c])):38===c?(0===d?(w=1-lr(e,l,p),x=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h)):(w=lr(s,p,l),x=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l)),N.push(Na[c]),N.push(Ma[c]),N.push(La[c])):39===c?(4===d?(w=1-lr(e,l,p),x=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h)):(w=lr(s,p,l),x=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l)),N.push(Na[c]),N.push(Ca[c]),N.push(La[c])):85===c&&(E=1,w=0,x=1,v=0,I=0,b=1,_=0,m=1),(_<0||_>1||m<0||m>1||E<0||E>1||x<0||x>1||I<0||I>1||b<0||b>1)&&console.log("MarchingSquaresJS-isoBands: "+c+" "+g+" "+h+","+l+","+p+","+f+" "+d+" "+_+" "+m+" "+E+" "+w+" "+x+" "+v+" "+I+" "+b),o.cells[a][u]={cval:c,cval_real:g,flipped:d,topleft:_,topright:m,righttop:E,rightbottom:w,bottomright:x,bottomleft:v,leftbottom:I,lefttop:b,edges:N}}}}}return o}(t,e,n);return zs.polygons?(zs.verbose&&console.log("MarchingSquaresJS-isoBands: returning single polygons for each grid cell"),u=function(t){var e=[],n=0;return t.cells.forEach(function(t,r){t.forEach(function(t,i){if(void 0!==t){var o=Ra[t.cval](t);"object"==typeof o&&pr(o)?"object"==typeof o[0]&&pr(o[0])?"object"==typeof o[0][0]&&pr(o[0][0])?o.forEach(function(t){t.forEach(function(t){t[0]+=i,t[1]+=r}),e[n++]=t}):(o.forEach(function(t){t[0]+=i,t[1]+=r}),e[n++]=o):console.log("MarchingSquaresJS-isoBands: bandcell polygon with malformed coordinates"):console.log("MarchingSquaresJS-isoBands: bandcell polygon with null coordinates")}})}),e}(c)):(zs.verbose&&console.log("MarchingSquaresJS-isoBands: returning polygon paths for entire data grid"),u=function(t){for(var e=[],n=t.rows,r=t.cols,i=[],o=0;o0){var a=t.cells[o][s],u=function(t){if(t.edges.length>0){var e=t.edges[t.edges.length-1],n=t.cval_real;switch(e){case 0:return n&Xs?{p:[1,t.righttop],x:-1,y:0,o:1}:{p:[t.topleft,1],x:0,y:-1,o:0};case 1:return n&Us?{p:[t.topleft,1],x:0,y:-1,o:0}:{p:[1,t.rightbottom],x:-1,y:0,o:0};case 2:return n&Us?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[t.topleft,1],x:0,y:-1,o:0};case 3:return n&Ys?{p:[t.topleft,1],x:0,y:-1,o:0}:{p:[t.bottomleft,0],x:0,y:1,o:0};case 4:return n&Xs?{p:[1,t.righttop],x:-1,y:0,o:1}:{p:[t.topright,1],x:0,y:-1,o:1};case 5:return n&Us?{p:[t.topright,1],x:0,y:-1,o:1}:{p:[1,t.rightbottom],x:-1,y:0,o:0};case 6:return n&Us?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[t.topright,1],x:0,y:-1,o:1};case 7:return n&Ys?{p:[t.topright,1],x:0,y:-1,o:1}:{p:[t.bottomleft,0],x:0,y:1,o:0};case 8:return n&Us?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[1,t.righttop],x:-1,y:0,o:1};case 9:return n&Ys?{p:[1,t.righttop],x:-1,y:0,o:1}:{p:[t.bottomleft,0],x:0,y:1,o:0};case 10:return n&Ys?{p:[0,t.leftbottom],x:1,y:0,o:0}:{p:[1,t.righttop],x:-1,y:0,o:1};case 11:return n&js?{p:[1,t.righttop],x:-1,y:0,o:1}:{p:[0,t.lefttop],x:1,y:0,o:1};case 12:return n&Us?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[1,t.rightbottom],x:-1,y:0,o:0};case 13:return n&Ys?{p:[1,t.rightbottom],x:-1,y:0,o:0}:{p:[t.bottomleft,0],x:0,y:1,o:0};case 14:return n&Ys?{p:[0,t.leftbottom],x:1,y:0,o:0}:{p:[1,t.rightbottom],x:-1,y:0,o:0};case 15:return n&js?{p:[1,t.rightbottom],x:-1,y:0,o:0}:{p:[0,t.lefttop],x:1,y:0,o:1};case 16:return n&Us?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[0,t.leftbottom],x:1,y:0,o:0};case 17:return n&js?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[0,t.lefttop],x:1,y:0,o:1};case 18:return n&Ys?{p:[0,t.leftbottom],x:1,y:0,o:0}:{p:[t.bottomleft,0],x:0,y:1,o:0};case 19:return n&js?{p:[t.bottomleft,0],x:0,y:1,o:0}:{p:[0,t.lefttop],x:1,y:0,o:1};case 20:return n&js?{p:[t.topleft,1],x:0,y:-1,o:0}:{p:[0,t.leftbottom],x:1,y:0,o:0};case 21:return n&Xs?{p:[0,t.leftbottom],x:1,y:0,o:0}:{p:[t.topright,1],x:0,y:-1,o:1};case 22:return n&js?{p:[t.topleft,1],x:0,y:-1,o:0}:{p:[0,t.lefttop],x:1,y:0,o:1};case 23:return n&Xs?{p:[0,t.lefttop],x:1,y:0,o:1}:{p:[t.topright,1],x:0,y:-1,o:1};default:console.log("MarchingSquaresJS-isoBands: edge index out of range!"),console.log(t)}}return null}(a),c=null,h=s,l=o;null!==u&&i.push([u.p[0]+h,u.p[1]+l]);do{if(null===(c=function(t,e,n,r){var i,o,s,a,u,c=t.cval;switch(e){case-1:switch(r){case 0:i=Na[c],s=ea[c],a=na[c],u=ra[c];break;default:i=Ia[c],s=Qs[c],a=$s[c],u=ta[c]}break;case 1:switch(r){case 0:i=Ma[c],s=fa[c],a=ga[c],u=da[c];break;default:i=La[c],s=ha[c],a=la[c],u=pa[c]}break;default:switch(n){case-1:switch(r){case 0:i=Pa[c],s=Vs[c],a=Hs[c],u=Ws[c];break;default:i=Oa[c],s=Js[c],a=Zs[c],u=Ks[c]}break;case 1:switch(r){case 0:i=Sa[c],s=ia[c],a=oa[c],u=sa[c];break;default:i=Ca[c],s=aa[c],a=ua[c],u=ca[c]}}}{if(o=t.edges.indexOf(i),void 0===t.edges[o])return null;!function(t,e){delete t.edges[e];for(var n=e+1;n=n||h<0||h>=r||void 0===t.cells[l][h]){h-=c.x,l-=c.y;var p=function(t,e,n,r,i,o){var s=t.cells[n][e],a=s.cval_real,u=e+r,c=n+i,h=[],l=!1;for(;!l;){if(void 0===t.cells[c]||void 0===t.cells[c][u])if(c-=i,u-=r,s=t.cells[c][u],a=s.cval_real,-1===i)if(0===o)if(a&Ys)h.push([u,c]),r=-1,i=0,o=0;else{if(!(a&Us)){h.push([u+s.bottomright,c]),r=0,i=1,o=1,l=!0;break}h.push([u+1,c]),r=1,i=0,o=0}else{if(!(a&Ys)){if(a&Us){h.push([u+s.bottomright,c]),r=0,i=1,o=1,l=!0;break}h.push([u+s.bottomleft,c]),r=0,i=1,o=0,l=!0;break}h.push([u,c]),r=-1,i=0,o=0}else if(1===i)if(0===o){if(!(a&Xs)){if(a&js){h.push([u+s.topleft,c+1]),r=0,i=-1,o=0,l=!0;break}h.push([u+s.topright,c+1]),r=0,i=-1,o=1,l=!0;break}h.push([u+1,c+1]),r=1,i=0,o=1}else h.push([u+1,c+1]),r=1,i=0,o=1;else if(-1===r)if(0===o){if(!(a&js)){if(a&Ys){h.push([u,c+s.leftbottom]),r=1,i=0,o=0,l=!0;break}h.push([u,c+s.lefttop]),r=1,i=0,o=1,l=!0;break}h.push([u,c+1]),r=0,i=1,o=0}else{if(!(a&js)){console.log("MarchingSquaresJS-isoBands: wtf");break}h.push([u,c+1]),r=0,i=1,o=0}else{if(1!==r){console.log("MarchingSquaresJS-isoBands: we came from nowhere!");break}if(0===o){if(!(a&Us)){h.push([u+1,c+s.rightbottom]),r=-1,i=0,o=0,l=!0;break}h.push([u+1,c]),r=0,i=-1,o=1}else{if(!(a&Us)){if(a&Xs){h.push([u+1,c+s.righttop]),r=-1,i=0,o=1;break}h.push([u+1,c+s.rightbottom]),r=-1,i=0,o=0,l=!0;break}h.push([u+1,c]),r=0,i=-1,o=1}}else if(s=t.cells[c][u],a=s.cval_real,-1===r)if(0===o)if(void 0!==t.cells[c-1]&&void 0!==t.cells[c-1][u])r=0,i=-1,o=1;else{if(!(a&Ys)){h.push([u+s.bottomright,c]),r=0,i=1,o=1,l=!0;break}h.push([u,c])}else{if(!(a&js)){console.log("MarchingSquaresJS-isoBands: found entry from top at "+u+","+c);break}console.log("MarchingSquaresJS-isoBands: proceeding in x-direction!")}else if(1===r){if(0===o){console.log("MarchingSquaresJS-isoBands: wtf");break}if(void 0!==t.cells[c+1]&&void 0!==t.cells[c+1][u])r=0,i=1,o=0;else{if(!(a&Xs)){h.push([u+s.topleft,c+1]),r=0,i=-1,o=0,l=!0;break}h.push([u+1,c+1]),r=1,i=0,o=1}}else if(-1===i){if(1!==o){console.log("MarchingSquaresJS-isoBands: wtf");break}if(void 0!==t.cells[c][u+1])r=1,i=0,o=1;else{if(!(a&Us)){h.push([u+1,c+s.righttop]),r=-1,i=0,o=1,l=!0;break}h.push([u+1,c]),r=0,i=-1,o=1}}else{if(1!==i){console.log("MarchingSquaresJS-isoBands: where did we came from???");break}if(0!==o){console.log("MarchingSquaresJS-isoBands: wtf");break}if(void 0!==t.cells[c][u-1])r=-1,i=0,o=0;else{if(!(a&js)){h.push([u,c+s.leftbottom]),r=1,i=0,o=0,l=!0;break}h.push([u,c+1]),r=0,i=1,o=0}}if(u+=r,c+=i,u===e&&c===n)break}return{path:h,i:u,j:c,x:r,y:i,o:o}}(t,h,l,c.x,c.y,c.o);if(null===p)break;p.path.forEach(function(t){i.push(t)}),h=p.i,l=p.j,u=p}}while(void 0!==t.cells[l][h]&&t.cells[l][h].edges.length>0);e.push(i),i=[],t.cells[o][s].edges.length>0&&s--}return e}(c)),"function"==typeof zs.successCallback&&zs.successCallback(u),u}function lr(t,e,n){return(t-e)/(n-e)}function pr(t){return t.constructor.toString().indexOf("Array")>-1}function fr(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.pivot,i=n.mutate;if(!t)throw new Error("geojson is required");if(void 0===e||null===e||isNaN(e))throw new Error("angle is required");return 0===e?t:(r||(r=ye(t)),!1!==i&&void 0!==i||(t=Gt(t)),S(t,function(t){var n=sn(r,t)+e,i=un(r,t),o=U(nr(r,i,n));t[0]=o[0],t[1]=o[1]}),t)}function gr(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.origin,i=n.mutate;if(!t)throw new Error("geojson required");if("number"!=typeof e||0===e)throw new Error("invalid factor");var o=Array.isArray(r)||"object"==typeof r;return!0!==i&&(t=Gt(t)),"FeatureCollection"!==t.type||o?dr(t,e,r):(O(t,function(n,i){t.features[i]=dr(n,e,r)}),t)}function dr(t,e,n){var i="Point"===K(t);return n=function(t,e){void 0!==e&&null!==e||(e="centroid");if(Array.isArray(e)||"object"==typeof e)return X(e);var n=t.bbox?t.bbox:j(t),i=n[0],o=n[1],s=n[2],a=n[3];switch(e){case"sw":case"southwest":case"westsouth":case"bottomleft":return r([i,o]);case"se":case"southeast":case"eastsouth":case"bottomright":return r([s,o]);case"nw":case"northwest":case"westnorth":case"topleft":return r([i,a]);case"ne":case"northeast":case"eastnorth":case"topright":return r([s,a]);case"center":return de(t);case void 0:case null:case"centroid":return ye(t);default:throw new Error("invalid origin")}}(t,n),1===e||i?t:(S(t,function(t){var r=un(n,t),i=sn(n,t),o=U(nr(n,r*e,i));t[0]=o[0],t[1]=o[1],3===t.length&&(t[2]*=e)}),t)}function yr(t){var e=t[0],n=t[1];return[n[0]-e[0],n[1]-e[1]]}function _r(t,e){return t[0]*e[1]-e[0]*t[1]}function mr(t,e){return!function(t,e){return 0===_r(yr(t),yr(e))}(t,e)&&function(t,e){var n=t[0],r=yr(t),i=e[0],o=yr(e),s=_r(r,o);return function(t,e){return[t[0]+e[0],t[1]+e[1]]}(n,function(t,e){return[t*e[0],t*e[1]]}(_r(function(t,e){return[t[0]-e[0],t[1]-e[1]]}(i,n),o)/s,r))}(t,e)}function vr(t,e,n){var r=[],i=_(e,n),o=U(t),s=[];return o.forEach(function(t,e){if(e!==o.length-1){var n=function(t,e,n){var r=Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])),i=t[0]+n*(e[1]-t[1])/r,o=e[0]+n*(e[1]-t[1])/r,s=t[1]+n*(t[0]-e[0])/r,a=e[1]+n*(t[0]-e[0])/r;return[[i,s],[o,a]]}(t,o[e+1],i);if(r.push(n),e>0){var a=r[e-1],u=mr(n,a);!1!==u&&(a[1]=u,n[0]=u),s.push(a[0]),e===o.length-2&&(s.push(n[0]),s.push(n[1]))}2===o.length&&(s.push(n[0]),s.push(n[1]))}}),a(s,t.properties)}function xr(t,e,n){var r=e[0]-t[0],i=e[1]-t[1],o=n[0]-e[0],s=n[1]-e[1];return Math.sign(r*s-o*i)}function Er(t,e){return e.geometry.coordinates[0].every(function(e){return Pt(r(e),t)})}function wr(t,e){for(var n=0;n=Math.abs(s)?o>0?t[0]<=n[0]&&n[0]<=e[0]:e[0]<=n[0]&&n[0]<=t[0]:s>0?t[1]<=n[1]&&n[1]<=e[1]:e[1]<=n[1]&&n[1]<=t[1]}(t.coordinates[n],t.coordinates[n+1],e.coordinates))return!0;return!1}function br(t,e){return nn(e,kn(t)).features.length>0}function Ir(t,e){return!(t[0]>e[0])&&(!(t[2]e[1])&&!(t[3]0}function Mr(t,e){for(var n=!1,i=!1,o=t.coordinates[0].length,s=0;s=Math.abs(a)?s>0?t[0]<=n[0]&&n[0]<=e[0]:e[0]<=n[0]&&n[0]<=t[0]:a>0?t[1]<=n[1]&&n[1]<=e[1]:e[1]<=n[1]&&n[1]<=t[1]:Math.abs(s)>=Math.abs(a)?s>0?t[0]0?t[1]0}function Ar(t,e,n){n=n||[];for(var r=0;r0)){if(o/=p,p<0){if(o0){if(o>l)return;o>h&&(h=o)}if(o=r-u,p||!(o<0)){if(o/=p,p<0){if(o>l)return;o>h&&(h=o)}else if(p>0){if(o0)){if(o/=f,f<0){if(o0){if(o>l)return;o>h&&(h=o)}if(o=i-c,f||!(o<0)){if(o/=f,f<0){if(o>l)return;o>h&&(h=o)}else if(f>0){if(o0||l<1)||(h>0&&(t[0]=[u+h*p,c+h*f]),l<1&&(t[1]=[u+l*p,c+l*f]),!0)}}}}}function Kr(t,e,n,r,i){var o=t[1];if(o)return!0;var s,a,u=t[0],c=t.left,h=t.right,l=c[0],p=c[1],f=h[0],g=h[1],d=(l+f)/2,y=(p+g)/2;if(g===p){if(d=r)return;if(l>f){if(u){if(u[1]>=i)return}else u=[d,n];o=[d,i]}else{if(u){if(u[1]1)if(l>f){if(u){if(u[1]>=i)return}else u=[(n-a)/s,n];o=[(i-a)/s,i]}else{if(u){if(u[1]=r)return}else u=[e,s*e+a];o=[r,s*r+a]}else{if(u){if(u[0]=-pu)){var f=u*u+c*c,g=h*h+l*l,d=(l*f-c*g)/p,y=(u*g-h*f)/p,_=cu.pop()||new function(){Xr(this),this.x=this.y=this.arc=this.site=this.cy=null};_.arc=t,_.site=i,_.x=d+s,_.y=(_.cy=y+a)+Math.sqrt(d*d+y*y),t.circle=_;for(var m=null,v=au._;v;)if(_.ylu)a=a.L;else{if(!((i=o-function(t,e){var n=t.N;if(n)return ai(n,e);var r=t.site;return r[1]===e?r[0]:1/0}(a,s))>lu)){r>-lu?(e=a.P,n=a):i>-lu?(e=a,n=a.N):e=n=a;break}if(!a.R){e=a;break}a=a.R}!function(t){su[t.index]={site:t,halfedges:[]}}(t);var u=ri(t);if(ou.insert(e,u),e||n){if(e===n)return ni(e),n=ri(e.site),ou.insert(u,n),u.edge=n.edge=Hr(e.site,u.site),ei(e),void ei(n);if(n){ni(e),ni(n);var c=e.site,h=c[0],l=c[1],p=t[0]-h,f=t[1]-l,g=n.site,d=g[0]-h,y=g[1]-l,_=2*(p*y-f*d),m=p*p+f*f,v=d*d+y*y,x=[(y*m-f*v)/_+h,(p*v-d*m)/_+l];Jr(n.edge,c,g,x),u.edge=Hr(c,t,null,x),n.edge=Hr(t,g,null,x),ei(e),ei(n)}else u.edge=Hr(e.site,u.site)}}function ai(t,e){var n=t.site,r=n[0],i=n[1],o=i-e;if(!o)return r;var s=t.P;if(!s)return-1/0;var a=(n=s.site)[0],u=n[1],c=u-e;if(!c)return a;var h=a-r,l=1/o-1/c,p=h/c;return l?(-p+Math.sqrt(p*p-2*l*(h*h/(-2*c)-u+c/2+i-o/2)))/l+r:(r+a)/2}function ui(t,e,n){return(t[0]-n[0])*(e[1]-t[1])-(t[0]-e[0])*(n[1]-t[1])}function ci(t,e){return e[1]-t[1]||e[0]-t[0]}function hi(t,e){var n,r,i,o=t.sort(ci).pop();for(uu=[],su=new Array(t.length),ou=new jr,au=new jr;;)if(i=iu,o&&(!i||o[1]lu||Math.abs(i[0][1]-i[1][1])>lu)||delete uu[o]}(s,a,u,c),function(t,e,n,r){var i,o,s,a,u,c,h,l,p,f,g,d,y=su.length,_=!0;for(i=0;ilu||Math.abs(d-p)>lu)&&(u.splice(a,0,uu.push(Wr(s,f,Math.abs(g-t)lu?[t,Math.abs(l-t)lu?[Math.abs(p-r)lu?[n,Math.abs(l-n)lu?[Math.abs(p-e)=-270&&(d=-d),g<-180&&g>=-360&&(y=-y),"degrees"===s){var _=d*Math.cos(l)+y*Math.sin(l),m=y*Math.cos(l)-d*Math.sin(l);d=_,y=m}p.push([d+h[0],y+h[1]])}return p.push(p[0]),"degrees"===s?o([p],c):fr(o([p],c),a,{pivot:u})}function fi(t){var e=t*Math.PI/180;return Math.tan(e)}function gi(t,e){if(e=e||{},!I(e))throw new Error("options is invalid");var n=e.properties,i=e.weight;if(!t)throw new Error("geojson is required");var o=0,s=0,a=0;return A(t,function(t,e,n){var r=n[i];if(r=void 0===r||null===r?1:r,!b(r))throw new Error("weight value must be a number for feature index "+e);(r=Number(r))>0&&S(t,function(t){o+=t[0]*r,s+=t[1]*r,a+=r})}),r([o/a,s/a],n)}function di(t,e,n,i){var o=n.properties.tolerance||.001,s=0,a=0,u=0,c=0;if(O(n,function(e){var n=e.properties.weight,r=void 0===n||null===n?1:n;if(r=Number(r),!b(r))throw new Error("weight value must be a number");if(r>0){c+=1;var i=r*qt(e,t);0===i&&(i=1);var o=r/i;s+=e.geometry.coordinates[0]*o,a+=e.geometry.coordinates[1]*o,u+=o}}),c<1)throw new Error("no features to measure");var h=s/u,l=a/u;return 1===c||0===i||Math.abs(h-e[0])0?t+n[e-1]:t}),h.forEach(function(t){t=2*t*Math.PI/h[h.length-1];var e=Math.random();u.push([e*i*Math.sin(t),e*i*Math.cos(t)])}),u[u.length-1]=u[0],u=u.map(function(t){return function(e){return[e[0]+t[0],e[1]+t[1]]}}(_i(n))),s.push(o([u]))}return c(s)}function xi(t,e){if(e=e||{},!I(e))throw new Error("options is invalid");var n=e.bbox,r=e.num_vertices,i=e.max_length,o=e.max_rotation;void 0!==t&&null!==t||(t=1),(!b(r)||r<2)&&(r=10),b(i)||(i=1e-4),b(o)||(o=Math.PI/8);for(var s=[],u=0;u1?t:null;case"MultiPolygon":var e=[];if(F(t,function(t){mn(t)>1&&e.push(t.geometry.coordinates)}),e.length)return{type:"MultiPolygon",coordinates:e}}}function Yi(){this.reset()}function Vi(t,e,n){var r=t.s=e+n,i=r-e,o=r-i;t.t=e-o+(n-i)}function Hi(t){return t>1?kf:t<-1?-kf:Math.asin(t)}function Wi(){}function Ji(t,e){t&&eg.hasOwnProperty(t.type)&&eg[t.type](t,e)}function Zi(t,e,n){var r,i=-1,o=t.length-n;for(e.lineStart();++iBf?t-jf:t<-Bf?t+jf:t,e]}function so(t,e,n){return(t%=jf)?e||n?rg(uo(t),co(e,n)):uo(t):e||n?co(e,n):oo}function ao(t){return function(e,n){return e+=t,[e>Bf?e-jf:e<-Bf?e+jf:e,n]}}function uo(t){var e=ao(t);return e.invert=ao(-t),e}function co(t,e){function n(t,e){var n=Wf(e),a=Wf(t)*n,u=Kf(t)*n,c=Kf(e),h=c*r+a*i;return[Hf(u*o-h*s,a*r-c*i),Hi(h*o+u*s)]}var r=Wf(t),i=Kf(t),o=Wf(e),s=Kf(e);return n.invert=function(t,e){var n=Wf(e),a=Wf(t)*n,u=Kf(t)*n,c=Kf(e),h=c*o-u*s;return[Hf(u*o+c*s,a*r+h*i),Hi(h*r-a*i)]},n}function ho(t,e){(e=$i(e))[0]-=t,io(e);var n=function(t){return t>1?0:t<-1?Bf:Math.acos(t)}(-e[1]);return((-e[2]<0?-n:n)+jf-Gf)%jf}function lo(t,e,n,r){this.x=t,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function po(t){if(e=t.length){for(var e,n,r=0,i=t[0];++r0)do{c.point(0===h||3===h?t:n,h>1?r:e)}while((h=(h+a+4)%4)!==l);else c.point(o[0],o[1])}function s(r,i){return Yf(r[0]-t)0?0:3:Yf(r[0]-n)0?2:1:Yf(r[1]-e)0?1:0:i>0?3:2}function a(t,e){return u(t.x,e.x)}function u(t,e){var n=s(t,1),r=s(e,1);return n!==r?n-r:0===n?e[1]-t[1]:1===n?t[0]-e[0]:2===n?t[1]-e[1]:e[0]-t[0]}return function(s){function u(t,e){i(t,e)&&E.point(t,e)}function c(o,s){var a=i(o,s);if(l&&p.push([o,s]),v)f=o,g=s,d=a,v=!1,a&&(E.lineStart(),E.point(o,s));else if(a&&m)E.point(o,s);else{var u=[y=Math.max(pg,Math.min(lg,y)),_=Math.max(pg,Math.min(lg,_))],c=[o=Math.max(pg,Math.min(lg,o)),s=Math.max(pg,Math.min(lg,s))];sg(u,c,t,e,n,r)?(m||(E.lineStart(),E.point(u[0],u[1])),E.point(c[0],c[1]),a||E.lineEnd(),x=!1):a&&(E.lineStart(),E.point(o,s),x=!1)}y=o,_=s,m=a}var h,l,p,f,g,d,y,_,m,v,x,E=s,w=og(),b={point:u,lineStart:function(){b.point=c,l&&l.push(p=[]),v=!0,m=!1,y=_=NaN},lineEnd:function(){h&&(c(f,g),d&&m&&w.rejoin(),h.push(w.result())),b.point=u,m&&E.lineEnd()},polygonStart:function(){E=w,h=[],l=[],x=!0},polygonEnd:function(){var e=function(){for(var e=0,n=0,i=l.length;nr&&(p-o)*(r-s)>(f-s)*(t-o)&&++e:f<=r&&(p-o)*(r-s)<(f-s)*(t-o)&&--e;return e}(),n=x&&e,i=(h=hg(h)).length;(n||i)&&(s.polygonStart(),n&&(s.lineStart(),o(null,null,1,s),s.lineEnd()),i&&ug(h,a,e,o,s),s.polygonEnd()),E=s,h=l=p=null}};return b}}function go(t){return t.length>1}function yo(t,e){return((t=t.x)[0]<0?t[1]-kf-Gf:kf-t[1])-((e=e.x)[0]<0?e[1]-kf-Gf:kf-e[1])}function _o(t){return function(e){var n=new mo;for(var r in t)n[r]=t[r];return n.stream=e,n}}function mo(){}function vo(t,e,n){var r=e[1][0]-e[0][0],i=e[1][1]-e[0][1],o=t.clipExtent&&t.clipExtent();t.scale(150).translate([0,0]),null!=o&&t.clipExtent(null),ng(n,t.stream(vg));var s=vg.result(),a=Math.min(r/(s[1][0]-s[0][0]),i/(s[1][1]-s[0][1])),u=+e[0][0]+(r-a*(s[1][0]+s[0][0]))/2,c=+e[0][1]+(i-a*(s[1][1]+s[0][1]))/2;return null!=o&&t.clipExtent(o),t.scale(150*a).translate([u,c])}function xo(t){return function(t){function e(t){return t=c(t[0]*Uf,t[1]*Uf),[t[0]*d+s,a-t[1]*d]}function n(t,e){return t=o(t,e),[t[0]*d+s,a-t[1]*d]}function r(){c=rg(u=so(x,E,w),o);var t=o(m,v);return s=y-t[0]*d,a=_+t[1]*d,i()}function i(){return f=g=null,e}var o,s,a,u,c,h,l,p,f,g,d=150,y=480,_=250,m=0,v=0,x=0,E=0,w=0,b=null,I=Eg,N=null,C=gg,S=.5,M=Ng(n,S);e.stream=function(t){return f&&g===t?f:f=Cg(I(u,M(C(g=t))))},e.clipAngle=function(t){return arguments.length?(I=+t?wg(b=t*Uf,6*Uf):(b=null,Eg),i()):b*Xf},e.clipExtent=function(t){return arguments.length?(C=null==t?(N=h=l=p=null,gg):fo(N=+t[0][0],h=+t[0][1],l=+t[1][0],p=+t[1][1]),i()):null==N?null:[[N,h],[l,p]]},e.scale=function(t){return arguments.length?(d=+t,r()):d},e.translate=function(t){return arguments.length?(y=+t[0],_=+t[1],r()):[y,_]},e.center=function(t){return arguments.length?(m=t[0]%360*Uf,v=t[1]%360*Uf,r()):[m*Xf,v*Xf]},e.rotate=function(t){return arguments.length?(x=t[0]%360*Uf,E=t[1]%360*Uf,w=t.length>2?t[2]%360*Uf:0,r()):[x*Xf,E*Xf,w*Xf]},e.precision=function(t){return arguments.length?(M=Ng(n,S=t*t),i()):Qf(S)},e.fitExtent=function(t,n){return vo(e,t,n)},e.fitSize=function(t,n){return function(t,e,n){return vo(t,[[0,0],e],n)}(e,t,n)};return function(){return o=t.apply(this,arguments),e.invert=o.invert&&function(t){return(t=c.invert((t[0]-s)/d,(a-t[1])/d))&&[t[0]*Xf,t[1]*Xf]},r()}}(function(){return t})()}function Eo(t,e){return[t,Zf($f((kf+e)/2))]}function wo(t,e){return[Zf($f((kf+e)/2)),-t]}function bo(t,n,r,i){var o=t.properties||{},s="Feature"===t.type?t.geometry:t;if("GeometryCollection"===s.type){var a=[];return A(t,function(t){var e=bo(t,n,r,i);e&&a.push(e)}),c(a)}var u,h=j(t),l=h[1]>50&&h[3]>50;u=l?{type:s.type,coordinates:No(s.coordinates,So(s))}:cn(s);var p=(new bh).read(u),f=d(y(n,r),"meters"),g=gp.bufferOp(p,f);if(g=(new Ih).write(g),!Io(g.coordinates)){var _;return(_=l?{type:g.type,coordinates:Co(g.coordinates,So(s))}:hn(g)).geometry?_:e(_,o)}}function Io(t){return Array.isArray(t[0])?Io(t[0]):isNaN(t[0])}function No(t,e){return"object"!=typeof t[0]?e(t):t.map(function(t){return No(t,e)})}function Co(t,e){return"object"!=typeof t[0]?e.invert(t):t.map(function(t){return Co(t,e)})}function So(t){var e=de(t).geometry.coordinates.reverse(),n=e.map(function(t){return-t});return Sg().center(e).rotate(n).scale(Fo)}function Mo(){for(var t=new bh,e=t.read(JSON.stringify(arguments[0].geometry)),n=1;n=0&&(void 0===i||sm/2;P&&(L-=m/4);for(var O=[],R=[],T=0;T<6;T++){var A=2*Math.PI/6*T;O.push(Math.cos(A)),R.push(Math.sin(A))}for(var D=[],F=0;F<=C;F++)for(var q=0;q<=M;q++){var G=F%2==1;if((0!==q||!G)&&(0!==q||!P)){var B=F*E+a-S,k=q*w+u+L;if(G&&(k-=m/2),!0===i)(function(t,e,n,r,i,s){for(var a=[],u=0;u<6;u++){var c=[];c.push(t),c.push([t[0]+e*i[u],t[1]+n*s[u]]),c.push([t[0]+e*i[(u+1)%6],t[1]+n*s[(u+1)%6]]),c.push(t),a.push(o([c],r))}return a})([B,k],g/2,d/2,r,O,R).forEach(function(t){s?Lo(s,t)&&D.push(t):D.push(t)});else{var z=function(t,e,n,r,i,s){for(var a=[],u=0;u<6;u++){var c=t[0]+e*i[u],h=t[1]+n*s[u];a.push([c,h])}return a.push(a[0].slice()),o([a],r)}([B,k],g/2,d/2,r,O,R);s?Lo(s,z)&&D.push(z):D.push(z)}}}return c(D)}function Ro(t){if(t.features.length<=1)return t;var e=function(t){var e=Vo(),n=[];return F(t,function(t,e){var r=j(t);n.push({minX:r[0],minY:r[1],maxX:r[2],maxY:r[3],geojson:t,index:e})}),e.load(n),e}(t),n=[],r={};return F(t,function(t,i){if(r[i])return!0;for(e.remove({index:i},To),r[i]=!0;;){var o=j(t),s=e.search({minX:o[0],minY:o[1],maxX:o[2],maxY:o[3]});if(s.length>0){var a=s.map(function(t){return r[t.index]=!0,e.remove({index:t.index},To),t.geojson});a.push(t),t=Mo.apply(this,a)}if(0===s.length)break}n.push(t)}),c(n)}function To(t,e){return t.index===e.index}function Ao(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.properties,i=n.mask,s=[];if(null===e||void 0===e)throw new Error("cellSide is required");if(!b(e))throw new Error("cellSide is invalid");if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be array");if(4!==t.length)throw new Error("bbox must contain 4 numbers");if(i&&-1===["Polygon","MultiPolygon"].indexOf(K(i)))throw new Error("options.mask must be a (Multi)Polygon");for(var a=t[0],u=t[1],h=t[2],l=t[3],p=e/qt([a,u],[h,u],n)*(h-a),f=e/qt([a,u],[a,l],n)*(l-u),g=h-a,d=l-u,y=Math.floor(g/p),_=Math.floor(d/f),m=(d-_*f)/2,v=a+(g-y*p)/2,x=0;x=0&&o[e].children.length>this._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(i,o,e)},_split:function(t,e){var n=t[e],r=n.children.length,i=this._minEntries;this._chooseSplitAxis(n,i,r);var o=this._chooseSplitIndex(n,i,r),s=yt(n.children.splice(o,n.children.length-o));s.height=n.height,s.leaf=n.leaf,at(n,this.toBBox),at(s,this.toBBox),e?t[e-1].children.push(s):this._splitRoot(n,s)},_splitRoot:function(t,e){this.data=yt([t,e]),this.data.height=t.height+1,this.data.leaf=!1,at(this.data,this.toBBox)},_chooseSplitIndex:function(t,e,n){var r,i,o,s,a,u,c,h;for(u=c=1/0,r=e;r<=n-e;r++)s=function(t,e){var n=Math.max(t.minX,e.minX),r=Math.max(t.minY,e.minY),i=Math.min(t.maxX,e.maxX),o=Math.min(t.maxY,e.maxY);return Math.max(0,i-n)*Math.max(0,o-r)}(i=ut(t,0,r,this.toBBox),o=ut(t,r,n,this.toBBox)),a=pt(i)+pt(o),s=e;i--)o=t.children[i],ct(u,t.leaf?s(o):o),c+=ft(u);return c},_adjustParentBBoxes:function(t,e,n){for(var r=n;r>=0;r--)ct(e[r],t)},_condense:function(t){for(var e,n=t.length-1;n>=0;n--)0===t[n].children.length?n>0?(e=t[n-1].children).splice(e.indexOf(t[n]),1):this.clear():at(t[n],this.toBBox)},_initFormat:function(t){var e=["return a"," - b",";"];this.compareMinX=new Function("a","b",e.join(t[0])),this.compareMinY=new Function("a","b",e.join(t[1])),this.toBBox=new Function("a","return {minX: a"+t[0]+", minY: a"+t[1]+", maxX: a"+t[2]+", maxY: a"+t[3]+"};")}};var Ho=function(t,e,n){var r=t*e,i=Wo*t,o=i-(i-t),s=t-o,a=Wo*e,u=a-(a-e),c=e-u,h=s*c-(r-o*u-s*u-o*c);return n?(n[0]=h,n[1]=r,n):[h,r]},Wo=+(Math.pow(2,27)+1),Jo=function(t,e){var n=0|t.length,r=0|e.length;if(1===n&&1===r)return function(t,e){var n=t+e,r=n-t,i=t-(n-r)+(e-r);return i?[i,n]:[n]}(t[0],e[0]);var i,o,s=n+r,a=new Array(s),u=0,c=0,h=0,l=Math.abs,p=t[c],f=l(p),g=e[h],d=l(g);f=r?(i=p,(c+=1)=r?(i=p,(c+=1)>1;return["sum(",r(t.slice(0,e)),",",r(t.slice(e)),")"].join("")}function i(t){if(2===t.length)return[["sum(prod(",t[0][0],",",t[1][1],"),prod(-",t[0][1],",",t[1][0],"))"].join("")];for(var o=[],s=0;s0){if(o<=0)return s;r=i+o}else{if(!(i<0))return s;if(o>=0)return s;r=-(i+o)}var u=3.3306690738754716e-16*r;return s>=u||s<=-u?s:a(t,e,n)},function(t,e,n,r){var i=t[0]-r[0],o=e[0]-r[0],s=n[0]-r[0],a=t[1]-r[1],c=e[1]-r[1],h=n[1]-r[1],l=t[2]-r[2],p=e[2]-r[2],f=n[2]-r[2],g=o*h,d=s*c,y=s*a,_=i*h,m=i*c,v=o*a,x=l*(g-d)+p*(y-_)+f*(m-v),E=7.771561172376103e-16*((Math.abs(g)+Math.abs(d))*Math.abs(l)+(Math.abs(y)+Math.abs(_))*Math.abs(p)+(Math.abs(m)+Math.abs(v))*Math.abs(f));return x>E||-x>E?x:u(t,e,n,r)}];!function(){for(;c.length<=s;)c.push(o(c.length));for(var e=[],n=["slow"],r=0;r<=s;++r)e.push("a"+r),n.push("o"+r);var i=["function getOrientation(",e.join(),"){switch(arguments.length){case 0:case 1:return 0;"];for(r=2;r<=s;++r)i.push("case ",r,":return o",r,"(",e.slice(0,r).join(),");");i.push("}var s=new Array(arguments.length);for(var i=0;i1&&es(t[o[c-2]],t[o[c-1]],u)<=0;)c-=1,o.pop();for(o.push(a),c=s.length;c>1&&es(t[s[c-2]],t[s[c-1]],u)>=0;)c-=1,s.pop();s.push(a)}n=new Array(s.length+o.length-2);for(var h=0,l=(r=0,o.length);r0;--p)n[h++]=s[p];return n},es=$o[3],ns=vt,rs=vt;vt.prototype={push:function(t){this.data.push(t),this.length++,this._up(this.length-1)},pop:function(){if(0!==this.length){var t=this.data[0];return this.length--,this.length>0&&(this.data[0]=this.data[this.length],this._down(0)),this.data.pop(),t}},peek:function(){return this.data[0]},_up:function(t){for(var e=this.data,n=this.compare,r=e[t];t>0;){var i=t-1>>1,o=e[i];if(n(r,o)>=0)break;e[t]=o,t=i}e[t]=r},_down:function(t){for(var e=this.data,n=this.compare,r=this.length>>1,i=e[t];t=0)break;e[t]=a,t=o}e[t]=i}},ns.default=rs;var is=function(t,e){for(var n=t[0],r=t[1],i=!1,o=0,s=e.length-1;or!=h>r&&n<(c-a)*(r-u)/(h-u)+a&&(i=!i)}return i},os=$o[3],ss=xt,as=xt;ss.default=as;var us=function(t){return t},cs=function(t){if(null==t)return us;var e,n,r=t.scale[0],i=t.scale[1],o=t.translate[0],s=t.translate[1];return function(t,a){a||(e=n=0);var u=2,c=t.length,h=new Array(c);for(h[0]=(e+=t[0])*r+o,h[1]=(n+=t[1])*i+s;u=t)throw new Error("full hashmap");h=s[c=c+1&u]}return s[c]=r,a[c]=o,o},maybeSet:function(r,o){for(var c=e(r)&u,h=s[c],l=0;h!=i;){if(n(h,r))return a[c];if(++l>=t)throw new Error("full hashmap");h=s[c=c+1&u]}return s[c]=r,a[c]=o,o},get:function(r,o){for(var c=e(r)&u,h=s[c],l=0;h!=i;){if(n(h,r))return a[c];if(++l>=t)break;h=s[c=c+1&u]}return o},keys:function(){for(var t=[],e=0,n=s.length;e>7^_s[2]^_s[3])},vs=function(t){function e(t,e,n,r){if(p[n]!==t){p[n]=t;var i=f[n];if(i>=0){var o=g[n];i===e&&o===r||i===r&&o===e||(++y,d[n]=1)}else f[n]=e,g[n]=r}}function n(t){return ms(u[t])}function r(t,e){return gs(u[t],u[e])}var i,o,s,a,u=t.coordinates,c=t.lines,h=t.rings,l=function(){for(var t=fs(1.4*u.length,n,r,Int32Array,-1,Int32Array),e=new Int32Array(u.length),i=0,o=u.length;i=t)throw new Error("full hashset");u=o[a=a+1&s]}return o[a]=r,!0},has:function(r){for(var a=e(r)&s,u=o[a],c=0;u!=i;){if(n(u,r))return!0;if(++c>=t)break;u=o[a=a+1&s]}return!1},values:function(){for(var t=[],e=0,n=o.length;ea&&(a=e),nu&&(u=n)}function r(t){t.forEach(n)}function i(t){t.forEach(r)}var o=1/0,s=1/0,a=-1/0,u=-1/0,c={GeometryCollection:function(t){t.geometries.forEach(e)},Point:function(t){n(t.coordinates)},MultiPoint:function(t){t.coordinates.forEach(n)},LineString:function(t){r(t.arcs)},MultiLineString:function(t){t.arcs.forEach(r)},Polygon:function(t){t.arcs.forEach(r)},MultiPolygon:function(t){t.arcs.forEach(i)}};for(var h in t)e(t[h]);return a>=o&&u>=s?[o,s,a,u]:void 0}(t=function(t){var e,n={};for(e in t)n[e]=Vt(t[e]);return n}(t)),s=e>0&&o&&function(t,e,n){function r(t){return[Math.round((t[0]-c)*f),Math.round((t[1]-h)*g)]}function i(t,e){for(var n,r,i,o,s,a=-1,u=0,l=t.length,p=new Array(l);++at&&(e.push(r),n=i)}return e},bs.prototype.vector=function(t){var e=this.pos(t+10),n=this.pos(t-10);return{angle:180*Math.atan2(e.y-n.y,e.x-n.x)/3.14,speed:Math.sqrt((n.x-e.x)*(n.x-e.x)+(n.y-e.y)*(n.y-e.y)+(n.z-e.z)*(n.z-e.z))}},bs.prototype.pos=function(t){var e=t-this.delay;e<0&&(e=0),e>this.duration&&(e=this.duration-1);var n=e/this.duration;if(n>=1)return this.points[this.length-1];var r=Math.floor((this.points.length-1)*n);return function(t,e,n,r,i){var o=function(t){var e=t*t;return[e*t,3*e*(1-t),3*t*(1-t)*(1-t),(1-t)*(1-t)*(1-t)]}(t);return{x:i.x*o[0]+r.x*o[1]+n.x*o[2]+e.x*o[3],y:i.y*o[0]+r.y*o[1]+n.y*o[2]+e.y*o[3],z:i.z*o[0]+r.z*o[1]+n.z*o[2]+e.z*o[3]}}((this.length-1)*n-r,this.points[r],this.controls[r][1],this.controls[r+1][0],this.points[r+1])};var Is=ve,Ns=ve;ve.deviation=function(t,e,n,r){var i=e&&e.length,o=i?e[0]*n:t.length,s=Math.abs(Ae(t,0,o,n));if(i)for(var a=0,u=e.length;a0&&(r+=t[i-1].length,n.holes.push(r))}return n},Is.default=Ns,ke.prototype={all:function(){return this._all(this.data,[])},search:function(t){var e=this.data,n=[],r=this.toBBox;if(!Je(t,e))return n;for(var i,o,s,a,u=[];e;){for(i=0,o=e.children.length;i=0&&o[e].children.length>this._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(i,o,e)},_split:function(t,e){var n=t[e],r=n.children.length,i=this._minEntries;this._chooseSplitAxis(n,i,r);var o=this._chooseSplitIndex(n,i,r),s=Ze(n.children.splice(o,n.children.length-o));s.height=n.height,s.leaf=n.leaf,ze(n,this.toBBox),ze(s,this.toBBox),e?t[e-1].children.push(s):this._splitRoot(n,s)},_splitRoot:function(t,e){this.data=Ze([t,e]),this.data.height=t.height+1,this.data.leaf=!1,ze(this.data,this.toBBox)},_chooseSplitIndex:function(t,e,n){var r,i,o,s,a,u,c,h;for(u=c=1/0,r=e;r<=n-e;r++)s=function(t,e){var n=Math.max(t.minX,e.minX),r=Math.max(t.minY,e.minY),i=Math.min(t.maxX,e.maxX),o=Math.min(t.maxY,e.maxY);return Math.max(0,i-n)*Math.max(0,o-r)}(i=je(t,0,r,this.toBBox),o=je(t,r,n,this.toBBox)),a=Ve(i)+Ve(o),s=e;i--)o=t.children[i],Xe(u,t.leaf?s(o):o),c+=He(u);return c},_adjustParentBBoxes:function(t,e,n){for(var r=n;r>=0;r--)Xe(e[r],t)},_condense:function(t){for(var e,n=t.length-1;n>=0;n--)0===t[n].children.length?n>0?(e=t[n-1].children).splice(e.indexOf(t[n]),1):this.clear():ze(t[n],this.toBBox)},_initFormat:function(t){var e=["return a"," - b",";"];this.compareMinX=new Function("a","b",e.join(t[0])),this.compareMinY=new Function("a","b",e.join(t[1])),this.toBBox=new Function("a","return {minX: a"+t[0]+", minY: a"+t[1]+", maxX: a"+t[2]+", maxY: a"+t[3]+"};")}};var Cs=Object.freeze({toMercator:cn,toWgs84:hn}),Ss=6378137,Ms=function(t,e,n){function r(t,n,r,i){var u=o[t][n],c=o[t][n+1],h=o[r][i],l=o[r][i+1],p=function(t,e,n,r){if(On(t,n)||On(t,r)||On(e,n)||On(r,n))return null;var i=t[0],o=t[1],s=e[0],a=e[1],u=n[0],c=n[1],h=r[0],l=r[1],p=(i-s)*(c-l)-(o-a)*(u-h);return 0===p?null:[((i*a-o*s)*(u-h)-(i-s)*(u*l-c*h))/p,((i*a-o*s)*(c-l)-(o-a)*(u*l-c*h))/p]}(u,c,h,l);if(null!==p){var f,g;if(f=c[0]!==u[0]?(p[0]-u[0])/(c[0]-u[0]):(p[1]-u[1])/(c[1]-u[1]),g=l[0]!==h[0]?(p[0]-h[0])/(l[0]-h[0]):(p[1]-h[1])/(l[1]-h[1]),!(f>=1||f<=0||g>=1||g<=0)){var d=p,y=!a[d];y&&(a[d]=!0),e?s.push(e(p,t,n,u,c,f,r,i,h,l,g,y)):s.push(p)}}}function i(t,e){var n,r,i,s,a=o[t][e],u=o[t][e+1];return a[0]1)for(e=0;ey[e.isect].coord?-1:1});for(f=[];N.length>0;){var P=N.pop(),O=P.isect,R=P.parent,T=P.winding,A=f.length,D=[y[O].coord],F=O;if(y[O].ringAndEdge1Walkable)var q=y[O].ringAndEdge1,G=y[O].nxtIsectAlongRingAndEdge1;else q=y[O].ringAndEdge2,G=y[O].nxtIsectAlongRingAndEdge2;for(;!Tn(y[O].coord,y[G].coord);){D.push(y[G].coord);var B=void 0;for(a=0;ap&&(d>h&&gh&&du&&(u=y)}var _=[];if(a&&u0&&Math.abs(x-n[v-1][0])>p){var E=parseFloat(n[v-1][0]),w=parseFloat(n[v-1][1]),b=parseFloat(n[v][0]),I=parseFloat(n[v][1]);if(E>-180&&E-180&&n[v-1][0]h&&E<180&&-180===b&&v+1h&&n[v-1][0]<180){m.push([180,n[v][1]]),v++,m.push([n[v][0],n[v][1]]);continue}if(Eh){var N=E;E=b,b=N;var C=w;w=I,I=C}if(E>h&&b=180&&Eh?180:-180,M]),(m=[]).push([n[v-1][0]>h?-180:180,M]),_.push(m)}else m=[],_.push(m);m.push([x,n[v][1]])}else m.push([n[v][0],n[v][1]])}}else{var L=[];_.push(L);for(var P=0;P=0&&i.coordinates[0]-t.coordinates[0]<0)return 1;if(r.coordinates[0]-t.coordinates[0]<0&&i.coordinates[0]-t.coordinates[0]>=0)return-1;if(r.coordinates[0]-t.coordinates[0]==0&&i.coordinates[0]-t.coordinates[0]==0)return r.coordinates[1]-t.coordinates[1]>=0||i.coordinates[1]-t.coordinates[1]>=0?r.coordinates[1]-i.coordinates[1]:i.coordinates[1]-r.coordinates[1];var o=xr(t.coordinates,r.coordinates,i.coordinates);if(o<0)return 1;if(o>0)return-1;return Math.pow(r.coordinates[0]-t.coordinates[0],2)+Math.pow(r.coordinates[1]-t.coordinates[1],2)-(Math.pow(i.coordinates[0]-t.coordinates[0],2)+Math.pow(i.coordinates[1]-t.coordinates[1],2))}),this.outerEdgesSorted=!0)},Ta.prototype.getOuterEdges=function(){return this.sortOuterEdges(),this.outerEdges},Ta.prototype.getOuterEdge=function(t){return this.sortOuterEdges(),this.outerEdges[t]},Ta.prototype.addInnerEdge=function(t){this.innerEdges.push(t)};var Aa=function(t,e){this.from=t,this.to=e,this.next=void 0,this.label=void 0,this.symetric=void 0,this.ring=void 0,this.from.addOuterEdge(this),this.to.addInnerEdge(this)};Aa.prototype.getSymetric=function(){return this.symetric||(this.symetric=new Aa(this.to,this.from),this.symetric.symetric=this),this.symetric},Aa.prototype.deleteEdge=function(){this.from.removeOuterEdge(this),this.to.removeInnerEdge(this)},Aa.prototype.isEqual=function(t){return this.from.id===t.from.id&&this.to.id===t.to.id},Aa.prototype.toString=function(){return"Edge { "+this.from.id+" -> "+this.to.id+" }"},Aa.prototype.toLineString=function(){return a([this.from.coordinates,this.to.coordinates])},Aa.prototype.compareTo=function(t){return xr(t.from.coordinates,t.to.coordinates,this.to.coordinates)};var Da=function(){this.edges=[],this.polygon=void 0,this.envelope=void 0},Fa={length:{configurable:!0}};Da.prototype.push=function(t){this[this.edges.length]=t,this.edges.push(t),this.polygon=this.envelope=void 0},Da.prototype.get=function(t){return this.edges[t]},Fa.length.get=function(){return this.edges.length},Da.prototype.forEach=function(t){this.edges.forEach(t)},Da.prototype.map=function(t){return this.edges.map(t)},Da.prototype.some=function(t){return this.edges.some(t)},Da.prototype.isValid=function(){return!0},Da.prototype.isHole=function(){var t=this,e=this.edges.reduce(function(e,n,r){return n.from.coordinates[1]>t.edges[e].from.coordinates[1]&&(e=r),e},0),n=(0===e?this.length:e)-1,r=(e+1)%this.length,i=xr(this.edges[n].from.coordinates,this.edges[e].from.coordinates,this.edges[r].from.coordinates);return 0===i?this.edges[n].from.coordinates[0]>this.edges[r].from.coordinates[0]:i>0},Da.prototype.toMultiPoint=function(){return l(this.edges.map(function(t){return t.from.coordinates}))},Da.prototype.toPolygon=function(){if(this.polygon)return this.polygon;var t=this.edges.map(function(t){return t.from.coordinates});return t.push(this.edges[0].from.coordinates),this.polygon=o([t])},Da.prototype.getEnvelope=function(){return this.envelope?this.envelope:this.envelope=he(this.toPolygon())},Da.findEdgeRingContaining=function(t,e){var n,i,o=t.getEnvelope();return e.forEach(function(e){var s=e.getEnvelope();if(i&&(n=i.getEnvelope()),!function(t,e){var n=t.geometry.coordinates.map(function(t){return t[0]}),r=t.geometry.coordinates.map(function(t){return t[1]}),i=e.geometry.coordinates.map(function(t){return t[0]}),o=e.geometry.coordinates.map(function(t){return t[1]});return Math.max(null,n)===Math.max(null,i)&&Math.max(null,r)===Math.max(null,o)&&Math.min(null,n)===Math.min(null,i)&&Math.min(null,r)===Math.min(null,o)}(s,o)&&Er(s,o)){var a=t.map(function(t){return t.from.coordinates}).find(function(t){return!e.some(function(e){return function(t,e){return t[0]===e[0]&&t[1]===e[1]}(t,e.from.coordinates)})});a&&e.inside(r(a))&&(i&&!Er(n,s)||(i=e))}}),i},Da.prototype.inside=function(t){return Pt(t,this.toPolygon())},Object.defineProperties(Da.prototype,Fa);var qa=function(){this.edges=[],this.nodes={}};qa.fromGeoJson=function(t){!function(t){if(!t)throw new Error("No geojson passed");if("FeatureCollection"!==t.type&&"GeometryCollection"!==t.type&&"MultiLineString"!==t.type&&"LineString"!==t.type&&"Feature"!==t.type)throw new Error("Invalid input type '"+t.type+"'. Geojson must be FeatureCollection, GeometryCollection, LineString, MultiLineString or Feature")}(t);var e=new qa;return F(t,function(t){H(t,"LineString","Graph::fromGeoJson"),M(t,function(t,n){if(t){var r=e.getNode(t),i=e.getNode(n);e.addEdge(r,i)}return n})}),e},qa.prototype.getNode=function(t){var e=Ta.buildId(t),n=this.nodes[e];return n||(n=this.nodes[e]=new Ta(t)),n},qa.prototype.addEdge=function(t,e){var n=new Aa(t,e),r=n.getSymetric();this.edges.push(n),this.edges.push(r)},qa.prototype.deleteDangles=function(){var t=this;Object.keys(this.nodes).map(function(e){return t.nodes[e]}).forEach(function(e){return t._removeIfDangle(e)})},qa.prototype._removeIfDangle=function(t){var e=this;if(t.innerEdges.length<=1){var n=t.getOuterEdges().map(function(t){return t.to});this.removeNode(t),n.forEach(function(t){return e._removeIfDangle(t)})}},qa.prototype.deleteCutEdges=function(){var t=this;this._computeNextCWEdges(),this._findLabeledEdgeRings(),this.edges.forEach(function(e){e.label===e.symetric.label&&(t.removeEdge(e.symetric),t.removeEdge(e))})},qa.prototype._computeNextCWEdges=function(t){var e=this;void 0===t?Object.keys(this.nodes).forEach(function(t){return e._computeNextCWEdges(e.nodes[t])}):t.getOuterEdges().forEach(function(e,n){t.getOuterEdge((0===n?t.getOuterEdges().length:n)-1).symetric.next=e})},qa.prototype._computeNextCCWEdges=function(t,e){for(var n,r,i=t.getOuterEdges(),o=i.length-1;o>=0;--o){var s=i[o],a=s.symetric,u=void 0,c=void 0;s.label===e&&(u=s),a.label===e&&(c=a),u&&c&&(c&&(r=c),u&&(r&&(r.next=u,r=void 0),n||(n=u)))}r&&(r.next=n)},qa.prototype._findLabeledEdgeRings=function(){var t=[],e=0;return this.edges.forEach(function(n){if(!(n.label>=0)){t.push(n);var r=n;do{r.label=e,r=r.next}while(!n.isEqual(r));e++}}),t},qa.prototype.getEdgeRings=function(){var t=this;this._computeNextCWEdges(),this.edges.forEach(function(t){t.label=void 0}),this._findLabeledEdgeRings().forEach(function(e){t._findIntersectionNodes(e).forEach(function(n){t._computeNextCCWEdges(n,e.label)})});var e=[];return this.edges.forEach(function(n){n.ring||e.push(t._findEdgeRing(n))}),e},qa.prototype._findIntersectionNodes=function(t){var e=[],n=t,r=function(){var r=0;n.from.getOuterEdges().forEach(function(e){e.label===t.label&&++r}),r>1&&e.push(n.from),n=n.next};do{r()}while(!t.isEqual(n));return e},qa.prototype._findEdgeRing=function(t){var e=t,n=new Da;do{n.push(e),e.ring=n,e=e.next}while(!t.isEqual(e));return n},qa.prototype.removeNode=function(t){var e=this;t.getOuterEdges().forEach(function(t){return e.removeEdge(t)}),t.innerEdges.forEach(function(t){return e.removeEdge(t)}),delete this.nodes[t.id]},qa.prototype.removeEdge=function(t){this.edges=this.edges.filter(function(e){return!e.isEqual(t)}),t.deleteEdge()};var Ga=mt(function(t,e){function n(t){var e=[];for(var n in t)e.push(n);return e}(t.exports="function"==typeof Object.keys?Object.keys:n).shim=n}),Ba=(Ga.shim,mt(function(t,e){function n(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function r(t){return t&&"object"==typeof t&&"number"==typeof t.length&&Object.prototype.hasOwnProperty.call(t,"callee")&&!Object.prototype.propertyIsEnumerable.call(t,"callee")||!1}var i="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();(e=t.exports=i?n:r).supported=n,e.unsupported=r})),ka=(Ba.supported,Ba.unsupported,mt(function(t){function e(t){return null===t||void 0===t}function n(t){return!(!t||"object"!=typeof t||"number"!=typeof t.length)&&("function"==typeof t.copy&&"function"==typeof t.slice&&!(t.length>0&&"number"!=typeof t[0]))}var r=Array.prototype.slice,i=t.exports=function(t,o,s){return s||(s={}),t===o||(t instanceof Date&&o instanceof Date?t.getTime()===o.getTime():!t||!o||"object"!=typeof t&&"object"!=typeof o?s.strict?t===o:t==o:function(t,o,s){var a,u;if(e(t)||e(o))return!1;if(t.prototype!==o.prototype)return!1;if(Ba(t))return!!Ba(o)&&(t=r.call(t),o=r.call(o),i(t,o,s));if(n(t)){if(!n(o))return!1;if(t.length!==o.length)return!1;for(a=0;a=0;a--)if(c[a]!=h[a])return!1;for(a=c.length-1;a>=0;a--)if(u=c[a],!i(t[u],o[u],s))return!1;return typeof t==typeof o}(t,o,s))}})),za=function(t){this.precision=t&&t.precision?t.precision:17,this.direction=!(!t||!t.direction)&&t.direction,this.pseudoNode=!(!t||!t.pseudoNode)&&t.pseudoNode,this.objectComparator=t&&t.objectComparator?t.objectComparator:Rr};za.prototype.compare=function(t,e){if(t.type!==e.type||!Or(t,e))return!1;switch(t.type){case"Point":return this.compareCoord(t.coordinates,e.coordinates);case"LineString":return this.compareLine(t.coordinates,e.coordinates,0,!1);case"Polygon":return this.comparePolygon(t,e);case"Feature":return this.compareFeature(t,e);default:if(0===t.type.indexOf("Multi")){var n=this,r=Pr(t),i=Pr(e);return r.every(function(t){return this.some(function(e){return n.compare(t,e)})},i)}}return!1},za.prototype.compareCoord=function(t,e){if(t.length!==e.length)return!1;for(var n=0;n=0&&(n=[].concat(t.slice(r,t.length),t.slice(1,r+1))),n},za.prototype.comparePath=function(t,e){var n=this;return t.every(function(t,e){return n.compareCoord(t,this[e])},e)},za.prototype.comparePolygon=function(t,e){if(this.compareLine(t.coordinates[0],e.coordinates[0],1,!0)){var n=t.coordinates.slice(1,t.coordinates.length),r=e.coordinates.slice(1,e.coordinates.length),i=this;return n.every(function(t){return this.some(function(e){return i.compareLine(t,e,1,!0)})},r)}return!1},za.prototype.compareFeature=function(t,e){return!(t.id!==e.id||!this.objectComparator(t.properties,e.properties)||!this.compareBBox(t,e))&&this.compare(t.geometry,e.geometry)},za.prototype.compareBBox=function(t,e){return!!(!t.bbox&&!e.bbox||t.bbox&&e.bbox&&this.compareCoord(t.bbox,e.bbox))},za.prototype.removePseudo=function(t){return t};var ja=za,Xa=mt(function(t){function e(t,e,n,r){this.dataset=[],this.epsilon=1,this.minPts=2,this.distance=this._euclideanDistance,this.clusters=[],this.noise=[],this._visited=[],this._assigned=[],this._datasetLength=0,this._init(t,e,n,r)}e.prototype.run=function(t,e,n,r){this._init(t,e,n,r);for(var i=0;i=this.minPts&&(e=this._mergeArrays(e,i))}1!==this._assigned[r]&&this._addToCluster(r,t)}},e.prototype._addToCluster=function(t,e){this.clusters[e].push(t),this._assigned[t]=1},e.prototype._regionQuery=function(t){for(var e=[],n=0;n0){for(u=0;u=0);return t},e.prototype.assign=function(){for(var t,e=!1,n=this.dataset.length,r=0;ri&&(n=r):e=this.minPts)return n}},e.prototype._regionQuery=function(t,e){e=e||this.epsilon;for(var n=[],r=0,i=this.dataset.length;r0;r.length0;){var a=t[Math.floor(Math.random()*o)],u=s?a.join("_"):""+a;n[u]||(n[u]=!0,r.push(a))}if(r.length0,s=t[Math.floor(Math.random()*i)];o&&s.join("_");for(r.push(s);r.length0,f=[];if(n)i="kmrand"==n?Qa(t,e):"kmpp"==n?$a(t,e):n;else for(var g={};i.length0;){var u=s.pop();if(u===n)return Fr(u);u.closed=!0;for(var c=t.neighbors(u),h=0,l=c.length;h0&&(this.content[0]=e,this.bubbleUp(0)),t},remove:function(t){var e=this.content.indexOf(t),n=this.content.pop();e!==this.content.length-1&&(this.content[e]=n,this.scoreFunction(n)0;){var n=(t+1>>1)-1,r=this.content[n];if(!(this.scoreFunction(e)=a)return null;var u=t-i.site[0],c=e-i.site[1],h=u*u+c*c;do{i=o.cells[r=s],s=null,i.halfedges.forEach(function(n){var r=o.edges[n],a=r.left;if(a!==i.site&&a||(a=r.right)){var u=t-a[0],c=e-a[1],l=u*u+c*c;le.x?1:this.ye.y?1:0},bu.prototype.clone=function(){},bu.prototype.copy=function(){return new bu(this)},bu.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},bu.prototype.distance3D=function(t){var e=this.x-t.x,n=this.y-t.y,r=this.z-t.z;return Math.sqrt(e*e+n*n+r*r)},bu.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)},bu.prototype.hashCode=function(){var t=17;return t=37*t+bu.hashCode(this.x),t=37*t+bu.hashCode(this.y)},bu.prototype.setCoordinate=function(t){this.x=t.x,this.y=t.y,this.z=t.z},bu.prototype.interfaces_=function(){return[xu,Eu,Li]},bu.prototype.getClass=function(){return bu},bu.hashCode=function(){if(1===arguments.length){var t=arguments[0],e=mu.doubleToLongBits(t);return Math.trunc((e^e)>>>32)}},Iu.DimensionalComparator.get=function(){return Nu},Iu.serialVersionUID.get=function(){return 0x5cbf2c235c7e5800},Iu.NULL_ORDINATE.get=function(){return mu.NaN},Iu.X.get=function(){return 0},Iu.Y.get=function(){return 1},Iu.Z.get=function(){return 2},Object.defineProperties(bu,Iu);var Nu=function(t){if(this._dimensionsToTest=2,0===arguments.length);else if(1===arguments.length){var e=arguments[0];if(2!==e&&3!==e)throw new _u("only 2 or 3 dimensions may be specified");this._dimensionsToTest=e}};Nu.prototype.compare=function(t,e){var n=t,r=e,i=Nu.compare(n.x,r.x);if(0!==i)return i;var o=Nu.compare(n.y,r.y);if(0!==o)return o;if(this._dimensionsToTest<=2)return 0;return Nu.compare(n.z,r.z)},Nu.prototype.interfaces_=function(){return[wu]},Nu.prototype.getClass=function(){return Nu},Nu.compare=function(t,e){return te?1:mu.isNaN(t)?mu.isNaN(e)?0:-1:mu.isNaN(e)?1:0};var Cu=function(){};Cu.prototype.create=function(){},Cu.prototype.interfaces_=function(){return[]},Cu.prototype.getClass=function(){return Cu};var Su=function(){},Mu={INTERIOR:{configurable:!0},BOUNDARY:{configurable:!0},EXTERIOR:{configurable:!0},NONE:{configurable:!0}};Su.prototype.interfaces_=function(){return[]},Su.prototype.getClass=function(){return Su},Su.toLocationSymbol=function(t){switch(t){case Su.EXTERIOR:return"e";case Su.BOUNDARY:return"b";case Su.INTERIOR:return"i";case Su.NONE:return"-"}throw new _u("Unknown location value: "+t)},Mu.INTERIOR.get=function(){return 0},Mu.BOUNDARY.get=function(){return 1},Mu.EXTERIOR.get=function(){return 2},Mu.NONE.get=function(){return-1},Object.defineProperties(Su,Mu);var Lu=function(t,e){return t.interfaces_&&t.interfaces_().indexOf(e)>-1},Pu=function(){},Ou={LOG_10:{configurable:!0}};Pu.prototype.interfaces_=function(){return[]},Pu.prototype.getClass=function(){return Pu},Pu.log10=function(t){var e=Math.log(t);return mu.isInfinite(e)?e:mu.isNaN(e)?e:e/Pu.LOG_10},Pu.min=function(t,e,n,r){var i=t;return en?n:t}if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var r=arguments[0],i=arguments[1],o=arguments[2];return ro?o:r}},Pu.wrap=function(t,e){return t<0?e- -t%e:t%e},Pu.max=function(){if(3===arguments.length){var t=arguments[0],e=arguments[1],n=arguments[2],r=t;return e>r&&(r=e),n>r&&(r=n),r}if(4===arguments.length){var i=arguments[0],o=arguments[1],s=arguments[2],a=arguments[3],u=i;return o>u&&(u=o),s>u&&(u=s),a>u&&(u=a),u}},Pu.average=function(t,e){return(t+e)/2},Ou.LOG_10.get=function(){return Math.log(10)},Object.defineProperties(Pu,Ou);var Ru=function(t){this.str=t};Ru.prototype.append=function(t){this.str+=t},Ru.prototype.setCharAt=function(t,e){this.str=this.str.substr(0,t)+e+this.str.substr(t+1)},Ru.prototype.toString=function(t){return this.str};var Tu=function(t){this.value=t};Tu.prototype.intValue=function(){return this.value},Tu.prototype.compareTo=function(t){return this.valuet?1:0},Tu.isNaN=function(t){return Number.isNaN(t)};var Au=function(){};Au.isWhitespace=function(t){return t<=32&&t>=0||127===t},Au.toUpperCase=function(t){return t.toUpperCase()};var Du=function t(){if(this._hi=0,this._lo=0,0===arguments.length)this.init(0);else if(1===arguments.length){if("number"==typeof arguments[0]){var e=arguments[0];this.init(e)}else if(arguments[0]instanceof t){var n=arguments[0];this.init(n)}else if("string"==typeof arguments[0]){var r=arguments[0];t.call(this,t.parse(r))}}else if(2===arguments.length){var i=arguments[0],o=arguments[1];this.init(i,o)}},Fu={PI:{configurable:!0},TWO_PI:{configurable:!0},PI_2:{configurable:!0},E:{configurable:!0},NaN:{configurable:!0},EPS:{configurable:!0},SPLIT:{configurable:!0},MAX_PRINT_DIGITS:{configurable:!0},TEN:{configurable:!0},ONE:{configurable:!0},SCI_NOT_EXPONENT_CHAR:{configurable:!0},SCI_NOT_ZERO:{configurable:!0}};Du.prototype.le=function(t){return(this._hi9?(h=!0,l="9"):l="0"+c,s.append(l),n=n.subtract(Du.valueOf(c)).multiply(Du.TEN),h&&n.selfAdd(Du.TEN);var p=!0,f=Du.magnitude(n._hi);if(f<0&&Math.abs(f)>=a-u&&(p=!1),!p)break}return e[0]=r,s.toString()},Du.prototype.sqr=function(){return this.multiply(this)},Du.prototype.doubleValue=function(){return this._hi+this._lo},Du.prototype.subtract=function(){if(arguments[0]instanceof Du){var t=arguments[0];return this.add(t.negate())}if("number"==typeof arguments[0]){var e=arguments[0];return this.add(-e)}},Du.prototype.equals=function(){if(1===arguments.length){var t=arguments[0];return this._hi===t._hi&&this._lo===t._lo}},Du.prototype.isZero=function(){return 0===this._hi&&0===this._lo},Du.prototype.selfSubtract=function(){if(arguments[0]instanceof Du){var t=arguments[0];return this.isNaN()?this:this.selfAdd(-t._hi,-t._lo)}if("number"==typeof arguments[0]){var e=arguments[0];return this.isNaN()?this:this.selfAdd(-e,0)}},Du.prototype.getSpecialNumberString=function(){return this.isZero()?"0.0":this.isNaN()?"NaN ":null},Du.prototype.min=function(t){return this.le(t)?this:t},Du.prototype.selfDivide=function(){if(1===arguments.length){if(arguments[0]instanceof Du){var t=arguments[0];return this.selfDivide(t._hi,t._lo)}if("number"==typeof arguments[0]){var e=arguments[0];return this.selfDivide(e,0)}}else if(2===arguments.length){var n=arguments[0],r=arguments[1],i=null,o=null,s=null,a=null,u=null,c=null,h=null,l=null;return u=this._hi/n,c=Du.SPLIT*u,i=c-u,l=Du.SPLIT*n,i=c-i,o=u-i,s=l-n,h=u*n,s=l-s,a=n-s,l=i*s-h+i*a+o*s+o*a,c=(this._hi-h-l+this._lo-u*r)/n,l=u+c,this._hi=l,this._lo=u-l+c,this}},Du.prototype.dump=function(){return"DD<"+this._hi+", "+this._lo+">"},Du.prototype.divide=function(){if(arguments[0]instanceof Du){var t=arguments[0],e=null,n=null,r=null,i=null,o=null,s=null,a=null,u=null;n=(o=this._hi/t._hi)-(e=(s=Du.SPLIT*o)-(e=s-o)),u=e*(r=(u=Du.SPLIT*t._hi)-(r=u-t._hi))-(a=o*t._hi)+e*(i=t._hi-r)+n*r+n*i,s=(this._hi-a-u+this._lo-o*t._lo)/t._hi;return new Du(u=o+s,o-u+s)}if("number"==typeof arguments[0]){var c=arguments[0];return mu.isNaN(c)?Du.createNaN():Du.copy(this).selfDivide(c,0)}},Du.prototype.ge=function(t){return(this._hi>t._hi||this._hi===t._hi)&&this._lo>=t._lo},Du.prototype.pow=function(t){if(0===t)return Du.valueOf(1);var e=new Du(this),n=Du.valueOf(1),r=Math.abs(t);if(r>1)for(;r>0;)r%2==1&&n.selfMultiply(e),(r/=2)>0&&(e=e.sqr());else n=e;return t<0?n.reciprocal():n},Du.prototype.ceil=function(){if(this.isNaN())return Du.NaN;var t=Math.ceil(this._hi),e=0;return t===this._hi&&(e=Math.ceil(this._lo)),new Du(t,e)},Du.prototype.compareTo=function(t){var e=t;return this._hie._hi?1:this._loe._lo?1:0},Du.prototype.rint=function(){if(this.isNaN())return this;return this.add(.5).floor()},Du.prototype.setValue=function(){if(arguments[0]instanceof Du){var t=arguments[0];return this.init(t),this}if("number"==typeof arguments[0]){var e=arguments[0];return this.init(e),this}},Du.prototype.max=function(t){return this.ge(t)?this:t},Du.prototype.sqrt=function(){if(this.isZero())return Du.valueOf(0);if(this.isNegative())return Du.NaN;var t=1/Math.sqrt(this._hi),e=this._hi*t,n=Du.valueOf(e),r=this.subtract(n.sqr())._hi*(.5*t);return n.add(r)},Du.prototype.selfAdd=function(){if(1===arguments.length){if(arguments[0]instanceof Du){var t=arguments[0];return this.selfAdd(t._hi,t._lo)}if("number"==typeof arguments[0]){var e=arguments[0],n=null,r=null,i=null,o=null,s=null,a=null;return i=this._hi+e,s=i-this._hi,o=i-s,o=e-s+(this._hi-o),a=o+this._lo,n=i+a,r=a+(i-n),this._hi=n+r,this._lo=r+(n-this._hi),this}}else if(2===arguments.length){var u=arguments[0],c=arguments[1],h=null,l=null,p=null,f=null,g=null,d=null,y=null;f=this._hi+u,l=this._lo+c,g=f-(d=f-this._hi),p=l-(y=l-this._lo);var _=(h=f+(d=(g=u-d+(this._hi-g))+l))+(d=(p=c-y+(this._lo-p))+(d+(f-h))),m=d+(h-_);return this._hi=_,this._lo=m,this}},Du.prototype.selfMultiply=function(){if(1===arguments.length){if(arguments[0]instanceof Du){var t=arguments[0];return this.selfMultiply(t._hi,t._lo)}if("number"==typeof arguments[0]){var e=arguments[0];return this.selfMultiply(e,0)}}else if(2===arguments.length){var n=arguments[0],r=arguments[1],i=null,o=null,s=null,a=null,u=null,c=null;i=(u=Du.SPLIT*this._hi)-this._hi,c=Du.SPLIT*n,i=u-i,o=this._hi-i,s=c-n;var h=(u=this._hi*n)+(c=i*(s=c-s)-u+i*(a=n-s)+o*s+o*a+(this._hi*r+this._lo*n)),l=c+(i=u-h);return this._hi=h,this._lo=l,this}},Du.prototype.selfSqr=function(){return this.selfMultiply(this)},Du.prototype.floor=function(){if(this.isNaN())return Du.NaN;var t=Math.floor(this._hi),e=0;return t===this._hi&&(e=Math.floor(this._lo)),new Du(t,e)},Du.prototype.negate=function(){return this.isNaN()?this:new Du(-this._hi,-this._lo)},Du.prototype.clone=function(){},Du.prototype.multiply=function(){if(arguments[0]instanceof Du){var t=arguments[0];return t.isNaN()?Du.createNaN():Du.copy(this).selfMultiply(t)}if("number"==typeof arguments[0]){var e=arguments[0];return mu.isNaN(e)?Du.createNaN():Du.copy(this).selfMultiply(e,0)}},Du.prototype.isNaN=function(){return mu.isNaN(this._hi)},Du.prototype.intValue=function(){return Math.trunc(this._hi)},Du.prototype.toString=function(){var t=Du.magnitude(this._hi);return t>=-3&&t<=20?this.toStandardNotation():this.toSciNotation()},Du.prototype.toStandardNotation=function(){var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),n=this.extractSignificantDigits(!0,e),r=e[0]+1,i=n;if("."===n.charAt(0))i="0"+n;else if(r<0)i="0."+Du.stringOfChar("0",-r)+n;else if(-1===n.indexOf(".")){var o=r-n.length;i=n+Du.stringOfChar("0",o)+".0"}return this.isNegative()?"-"+i:i},Du.prototype.reciprocal=function(){var t=null,e=null,n=null,r=null,i=null,o=null,s=null,a=null;e=(i=1/this._hi)-(t=(o=Du.SPLIT*i)-(t=o-i)),n=(a=Du.SPLIT*this._hi)-this._hi;var u=i+(o=(1-(s=i*this._hi)-(a=t*(n=a-n)-s+t*(r=this._hi-n)+e*n+e*r)-i*this._lo)/this._hi);return new Du(u,i-u+o)},Du.prototype.toSciNotation=function(){if(this.isZero())return Du.SCI_NOT_ZERO;var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),n=this.extractSignificantDigits(!1,e),r=Du.SCI_NOT_EXPONENT_CHAR+e[0];if("0"===n.charAt(0))throw new Error("Found leading zero: "+n);var i="";n.length>1&&(i=n.substring(1));var o=n.charAt(0)+"."+i;return this.isNegative()?"-"+o+r:o+r},Du.prototype.abs=function(){return this.isNaN()?Du.NaN:this.isNegative()?this.negate():new Du(this)},Du.prototype.isPositive=function(){return(this._hi>0||0===this._hi)&&this._lo>0},Du.prototype.lt=function(t){return(this._hit._hi||this._hi===t._hi)&&this._lo>t._lo},Du.prototype.isNegative=function(){return(this._hi<0||0===this._hi)&&this._lo<0},Du.prototype.trunc=function(){return this.isNaN()?Du.NaN:this.isPositive()?this.floor():this.ceil()},Du.prototype.signum=function(){return this._hi>0?1:this._hi<0?-1:this._lo>0?1:this._lo<0?-1:0},Du.prototype.interfaces_=function(){return[Li,xu,Eu]},Du.prototype.getClass=function(){return Du},Du.sqr=function(t){return Du.valueOf(t).selfMultiply(t)},Du.valueOf=function(){if("string"==typeof arguments[0]){var t=arguments[0];return Du.parse(t)}if("number"==typeof arguments[0]){var e=arguments[0];return new Du(e)}},Du.sqrt=function(t){return Du.valueOf(t).sqrt()},Du.parse=function(t){for(var e=0,n=t.length;Au.isWhitespace(t.charAt(e));)e++;var r=!1;if(e=n);){var c=t.charAt(e);if(e++,Au.isDigit(c)){var h=c-"0";o.selfMultiply(Du.TEN),o.selfAdd(h),s++}else{if("."!==c){if("e"===c||"E"===c){var l=t.substring(e);try{u=Tu.parseInt(l)}catch(e){throw e instanceof Error?new Error("Invalid exponent "+l+" in string "+t):e}break}throw new Error("Unexpected character '"+c+"' at position "+e+" in string "+t)}a=s}}var p=o,f=s-a-u;if(0===f)p=o;else if(f>0){var g=Du.TEN.pow(f);p=o.divide(g)}else if(f<0){var d=Du.TEN.pow(-f);p=o.multiply(d)}return r?p.negate():p},Du.createNaN=function(){return new Du(mu.NaN,mu.NaN)},Du.copy=function(t){return new Du(t)},Du.magnitude=function(t){var e=Math.abs(t),n=Math.log(e)/Math.log(10),r=Math.trunc(Math.floor(n));return 10*Math.pow(10,r)<=e&&(r+=1),r},Du.stringOfChar=function(t,e){for(var n=new Ru,r=0;r0){if(o<=0)return qu.signum(s);r=i+o}else{if(!(i<0))return qu.signum(s);if(o>=0)return qu.signum(s);r=-i-o}var a=qu.DP_SAFE_EPSILON*r;return s>=a||-s>=a?qu.signum(s):2},qu.signum=function(t){return t>0?1:t<0?-1:0},Gu.DP_SAFE_EPSILON.get=function(){return 1e-15},Object.defineProperties(qu,Gu);var Bu=function(){},ku={X:{configurable:!0},Y:{configurable:!0},Z:{configurable:!0},M:{configurable:!0}};ku.X.get=function(){return 0},ku.Y.get=function(){return 1},ku.Z.get=function(){return 2},ku.M.get=function(){return 3},Bu.prototype.setOrdinate=function(t,e,n){},Bu.prototype.size=function(){},Bu.prototype.getOrdinate=function(t,e){},Bu.prototype.getCoordinate=function(){},Bu.prototype.getCoordinateCopy=function(t){},Bu.prototype.getDimension=function(){},Bu.prototype.getX=function(t){},Bu.prototype.clone=function(){},Bu.prototype.expandEnvelope=function(t){},Bu.prototype.copy=function(){},Bu.prototype.getY=function(t){},Bu.prototype.toCoordinateArray=function(){},Bu.prototype.interfaces_=function(){return[Eu]},Bu.prototype.getClass=function(){return Bu},Object.defineProperties(Bu,ku);var zu=function(){},ju=function(t){function e(){t.call(this,"Projective point not representable on the Cartesian plane.")}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(zu),Xu=function(){};Xu.arraycopy=function(t,e,n,r,i){for(var o=0,s=e;st._minx?this._minx:t._minx,n=this._miny>t._miny?this._miny:t._miny,r=this._maxx=this._minx&&e.getMaxX()<=this._maxx&&e.getMinY()>=this._miny&&e.getMaxY()<=this._maxy)}}else if(2===arguments.length){var n=arguments[0],r=arguments[1];return!this.isNull()&&(n>=this._minx&&n<=this._maxx&&r>=this._miny&&r<=this._maxy)}},Yu.prototype.intersects=function(){if(1===arguments.length){if(arguments[0]instanceof Yu){var t=arguments[0];return!this.isNull()&&!t.isNull()&&!(t._minx>this._maxx||t._maxxthis._maxy||t._maxythis._maxx||nthis._maxy||rthis._maxx&&(this._maxx=e._maxx),e._minythis._maxy&&(this._maxy=e._maxy))}}else if(2===arguments.length){var n=arguments[0],r=arguments[1];this.isNull()?(this._minx=n,this._maxx=n,this._miny=r,this._maxy=r):(nthis._maxx&&(this._maxx=n),rthis._maxy&&(this._maxy=r))}},Yu.prototype.minExtent=function(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return te._minx?1:this._minye._miny?1:this._maxxe._maxx?1:this._maxye._maxy?1:0},Yu.prototype.translate=function(t,e){if(this.isNull())return null;this.init(this.getMinX()+t,this.getMaxX()+t,this.getMinY()+e,this.getMaxY()+e)},Yu.prototype.toString=function(){return"Env["+this._minx+" : "+this._maxx+", "+this._miny+" : "+this._maxy+"]"},Yu.prototype.setToNull=function(){this._minx=0,this._maxx=-1,this._miny=0,this._maxy=-1},Yu.prototype.getHeight=function(){return this.isNull()?0:this._maxy-this._miny},Yu.prototype.maxExtent=function(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return t>e?t:e},Yu.prototype.expandBy=function(){if(1===arguments.length){var t=arguments[0];this.expandBy(t,t)}else if(2===arguments.length){var e=arguments[0],n=arguments[1];if(this.isNull())return null;this._minx-=e,this._maxx+=e,this._miny-=n,this._maxy+=n,(this._minx>this._maxx||this._miny>this._maxy)&&this.setToNull()}},Yu.prototype.contains=function(){if(1===arguments.length){if(arguments[0]instanceof Yu){var t=arguments[0];return this.covers(t)}if(arguments[0]instanceof bu){var e=arguments[0];return this.covers(e)}}else if(2===arguments.length){var n=arguments[0],r=arguments[1];return this.covers(n,r)}},Yu.prototype.centre=function(){return this.isNull()?null:new bu((this.getMinX()+this.getMaxX())/2,(this.getMinY()+this.getMaxY())/2)},Yu.prototype.init=function(){if(0===arguments.length)this.setToNull();else if(1===arguments.length){if(arguments[0]instanceof bu){var t=arguments[0];this.init(t.x,t.x,t.y,t.y)}else if(arguments[0]instanceof Yu){var e=arguments[0];this._minx=e._minx,this._maxx=e._maxx,this._miny=e._miny,this._maxy=e._maxy}}else if(2===arguments.length){var n=arguments[0],r=arguments[1];this.init(n.x,r.x,n.y,r.y)}else if(4===arguments.length){var i=arguments[0],o=arguments[1],s=arguments[2],a=arguments[3];it._maxx&&(e=this._minx-t._maxx);var n=0;return this._maxyt._maxy&&(n=this._miny-t._maxy),0===e?n:0===n?e:Math.sqrt(e*e+n*n)},Yu.prototype.hashCode=function(){var t=17;return t=37*t+bu.hashCode(this._minx),t=37*t+bu.hashCode(this._maxx),t=37*t+bu.hashCode(this._miny),t=37*t+bu.hashCode(this._maxy)},Yu.prototype.interfaces_=function(){return[xu,Li]},Yu.prototype.getClass=function(){return Yu},Yu.intersects=function(){if(3===arguments.length){var t=arguments[0],e=arguments[1],n=arguments[2];return n.x>=(t.xe.x?t.x:e.x)&&n.y>=(t.ye.y?t.y:e.y)}if(4===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2],s=arguments[3],a=Math.min(o.x,s.x),u=Math.max(o.x,s.x),c=Math.min(r.x,i.x),h=Math.max(r.x,i.x);return!(c>u)&&(!(hu)&&!(hthis.getEdgeDistance(t,1)?(this._intLineIndex[t][0]=0,this._intLineIndex[t][1]=1):(this._intLineIndex[t][0]=1,this._intLineIndex[t][1]=0)}},ec.prototype.isProper=function(){return this.hasIntersection()&&this._isProper},ec.prototype.setPrecisionModel=function(t){this._precisionModel=t},ec.prototype.isInteriorIntersection=function(){if(0===arguments.length)return!!this.isInteriorIntersection(0)||!!this.isInteriorIntersection(1);if(1===arguments.length){for(var t=arguments[0],e=0;ei?r:i;else{var s=Math.abs(t.x-e.x),a=Math.abs(t.y-e.y);0!==(o=r>i?s:a)||t.equals(e)||(o=Math.max(s,a))}return tc.isTrue(!(0===o&&!t.equals(e)),"Bad distance calculation"),o},ec.nonRobustComputeEdgeDistance=function(t,e,n){var r=t.x-e.x,i=t.y-e.y,o=Math.sqrt(r*r+i*i);return tc.isTrue(!(0===o&&!t.equals(e)),"Invalid distance calculation"),o},nc.DONT_INTERSECT.get=function(){return 0},nc.DO_INTERSECT.get=function(){return 1},nc.COLLINEAR.get=function(){return 2},nc.NO_INTERSECTION.get=function(){return 0},nc.POINT_INTERSECTION.get=function(){return 1},nc.COLLINEAR_INTERSECTION.get=function(){return 2},Object.defineProperties(ec,nc);var rc=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isInSegmentEnvelopes=function(t){var e=new Yu(this._inputLines[0][0],this._inputLines[0][1]),n=new Yu(this._inputLines[1][0],this._inputLines[1][1]);return e.contains(t)&&n.contains(t)},e.prototype.computeIntersection=function(){if(3!==arguments.length)return t.prototype.computeIntersection.apply(this,arguments);var e=arguments[0],n=arguments[1],r=arguments[2];if(this._isProper=!1,Yu.intersects(n,r,e)&&0===sc.orientationIndex(n,r,e)&&0===sc.orientationIndex(r,n,e))return this._isProper=!0,(e.equals(n)||e.equals(r))&&(this._isProper=!1),this._result=t.POINT_INTERSECTION,null;this._result=t.NO_INTERSECTION},e.prototype.normalizeToMinimum=function(t,e,n,r,i){i.x=this.smallestInAbsValue(t.x,e.x,n.x,r.x),i.y=this.smallestInAbsValue(t.y,e.y,n.y,r.y),t.x-=i.x,t.y-=i.y,e.x-=i.x,e.y-=i.y,n.x-=i.x,n.y-=i.y,r.x-=i.x,r.y-=i.y},e.prototype.safeHCoordinateIntersection=function(t,n,r,i){var o=null;try{o=Uu.intersection(t,n,r,i)}catch(s){if(!(s instanceof ju))throw s;o=e.nearestEndpoint(t,n,r,i)}return o},e.prototype.intersection=function(t,n,r,i){var o=this.intersectionWithNormalization(t,n,r,i);return this.isInSegmentEnvelopes(o)||(o=new bu(e.nearestEndpoint(t,n,r,i))),null!==this._precisionModel&&this._precisionModel.makePrecise(o),o},e.prototype.smallestInAbsValue=function(t,e,n,r){var i=t,o=Math.abs(i);return Math.abs(e)1e-4&&Xu.out.println("Distance = "+i.distance(o))},e.prototype.intersectionWithNormalization=function(t,e,n,r){var i=new bu(t),o=new bu(e),s=new bu(n),a=new bu(r),u=new bu;this.normalizeToEnvCentre(i,o,s,a,u);var c=this.safeHCoordinateIntersection(i,o,s,a);return c.x+=u.x,c.y+=u.y,c},e.prototype.computeCollinearIntersection=function(e,n,r,i){var o=Yu.intersects(e,n,r),s=Yu.intersects(e,n,i),a=Yu.intersects(r,i,e),u=Yu.intersects(r,i,n);return o&&s?(this._intPt[0]=r,this._intPt[1]=i,t.COLLINEAR_INTERSECTION):a&&u?(this._intPt[0]=e,this._intPt[1]=n,t.COLLINEAR_INTERSECTION):o&&a?(this._intPt[0]=r,this._intPt[1]=e,!r.equals(e)||s||u?t.COLLINEAR_INTERSECTION:t.POINT_INTERSECTION):o&&u?(this._intPt[0]=r,this._intPt[1]=n,!r.equals(n)||s||a?t.COLLINEAR_INTERSECTION:t.POINT_INTERSECTION):s&&a?(this._intPt[0]=i,this._intPt[1]=e,!i.equals(e)||o||u?t.COLLINEAR_INTERSECTION:t.POINT_INTERSECTION):s&&u?(this._intPt[0]=i,this._intPt[1]=n,!i.equals(n)||o||a?t.COLLINEAR_INTERSECTION:t.POINT_INTERSECTION):t.NO_INTERSECTION},e.prototype.normalizeToEnvCentre=function(t,e,n,r,i){var o=t.xe.x?t.x:e.x,u=t.y>e.y?t.y:e.y,c=n.xr.x?n.x:r.x,p=n.y>r.y?n.y:r.y,f=((o>c?o:c)+(ah?s:h)+(u0&&s>0||o<0&&s<0)return t.NO_INTERSECTION;var a=sc.orientationIndex(r,i,e),u=sc.orientationIndex(r,i,n);if(a>0&&u>0||a<0&&u<0)return t.NO_INTERSECTION;return 0===o&&0===s&&0===a&&0===u?this.computeCollinearIntersection(e,n,r,i):(0===o||0===s||0===a||0===u?(this._isProper=!1,e.equals2D(r)||e.equals2D(i)?this._intPt[0]=e:n.equals2D(r)||n.equals2D(i)?this._intPt[0]=n:0===o?this._intPt[0]=new bu(r):0===s?this._intPt[0]=new bu(i):0===a?this._intPt[0]=new bu(e):0===u&&(this._intPt[0]=new bu(n))):(this._isProper=!0,this._intPt[0]=this.intersection(e,n,r,i)),t.POINT_INTERSECTION)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e.nearestEndpoint=function(t,e,n,r){var i=t,o=sc.distancePointLine(t,n,r),s=sc.distancePointLine(e,n,r);return s0?n>0?-i:i:n>0?i:-i;if(0===e||0===n)return r>0?t>0?i:-i:t>0?-i:i;if(e>0?r>0?e<=r||(i=-i,o=t,t=n,n=o,o=e,e=r,r=o):e<=-r?(i=-i,n=-n,r=-r):(o=t,t=-n,n=o,o=e,e=-r,r=o):r>0?-e<=r?(i=-i,t=-t,e=-e):(o=-t,t=n,n=o,o=-e,e=r,r=o):e>=r?(t=-t,e=-e,n=-n,r=-r):(i=-i,o=-t,t=-n,n=o,o=-e,e=-r,r=o),t>0){if(!(n>0))return i;if(!(t<=n))return i}else{if(n>0)return-i;if(!(t>=n))return-i;i=-i,t=-t,n=-n}for(;;){if(s=Math.floor(n/t),n-=s*t,(r-=s*e)<0)return-i;if(r>e)return i;if(t>n+n){if(er+r)return-i;n=t-n,r=e-r,i=-i}if(0===r)return 0===n?0:-i;if(0===n)return i;if(s=Math.floor(t/n),t-=s*n,(e-=s*r)<0)return i;if(e>r)return-i;if(n>t+t){if(re+e)return i;t=n-t,e=r-e,i=-i}if(0===e)return 0===t?0:i;if(0===t)return-i}};var oc=function(){this._p=null,this._crossingCount=0,this._isPointOnSegment=!1;var t=arguments[0];this._p=t};oc.prototype.countSegment=function(t,e){if(t.xr&&(n=e.x,r=t.x),this._p.x>=n&&this._p.x<=r&&(this._isPointOnSegment=!0),null}if(t.y>this._p.y&&e.y<=this._p.y||e.y>this._p.y&&t.y<=this._p.y){var i=t.x-this._p.x,o=t.y-this._p.y,s=e.x-this._p.x,a=e.y-this._p.y,u=ic.signOfDet2x2(i,o,s,a);if(0===u)return this._isPointOnSegment=!0,null;a0&&this._crossingCount++}},oc.prototype.isPointInPolygon=function(){return this.getLocation()!==Su.EXTERIOR},oc.prototype.getLocation=function(){return this._isPointOnSegment?Su.BOUNDARY:this._crossingCount%2==1?Su.INTERIOR:Su.EXTERIOR},oc.prototype.isOnSegment=function(){return this._isPointOnSegment},oc.prototype.interfaces_=function(){return[]},oc.prototype.getClass=function(){return oc},oc.locatePointInRing=function(){if(arguments[0]instanceof bu&&Lu(arguments[1],Bu)){for(var t=arguments[0],e=arguments[1],n=new oc(t),r=new bu,i=new bu,o=1;o1||a<0||a>1)&&(i=!0)}}else i=!0;return i?Pu.min(sc.distancePointLine(t,n,r),sc.distancePointLine(e,n,r),sc.distancePointLine(n,t,e),sc.distancePointLine(r,t,e)):0},sc.isPointInRing=function(t,e){return sc.locatePointInRing(t,e)!==Su.EXTERIOR},sc.computeLength=function(t){var e=t.size();if(e<=1)return 0;var n=0,r=new bu;t.getCoordinate(0,r);for(var i=r.x,o=r.y,s=1;sn.y&&(n=o,r=i)}var s=r;do{(s-=1)<0&&(s=e)}while(t[s].equals2D(n)&&s!==r);var a=r;do{a=(a+1)%e}while(t[a].equals2D(n)&&a!==r);var u=t[s],c=t[a];if(u.equals2D(n)||c.equals2D(n)||u.equals2D(c))return!1;var h=sc.computeOrientation(u,n,c),l=!1;return l=0===h?u.x>c.x:h>0,l},sc.locatePointInRing=function(t,e){return oc.locatePointInRing(t,e)},sc.distancePointLinePerpendicular=function(t,e,n){var r=(n.x-e.x)*(n.x-e.x)+(n.y-e.y)*(n.y-e.y),i=((e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y))/r;return Math.abs(i)*Math.sqrt(r)},sc.computeOrientation=function(t,e,n){return sc.orientationIndex(t,e,n)},sc.distancePointLine=function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];if(0===e.length)throw new _u("Line array must contain at least one vertex");for(var n=t.distance(e[0]),r=0;r=1)return o.distance(a);var h=((s.y-o.y)*(a.x-s.x)-(s.x-o.x)*(a.y-s.y))/u;return Math.abs(h)*Math.sqrt(u)}},sc.isOnLine=function(t,e){for(var n=new rc,r=1;r0},yc.prototype.interfaces_=function(){return[fc]},yc.prototype.getClass=function(){return yc};var _c=function(){};_c.prototype.isInBoundary=function(t){return t>1},_c.prototype.interfaces_=function(){return[fc]},_c.prototype.getClass=function(){return _c};var mc=function(){};mc.prototype.isInBoundary=function(t){return 1===t},mc.prototype.interfaces_=function(){return[fc]},mc.prototype.getClass=function(){return mc};var vc=function(){};vc.prototype.add=function(){},vc.prototype.addAll=function(){},vc.prototype.isEmpty=function(){},vc.prototype.iterator=function(){},vc.prototype.size=function(){},vc.prototype.toArray=function(){},vc.prototype.remove=function(){};var xc=function(t){function e(e){t.call(this),this.message=e||""}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var n={name:{configurable:!0}};return n.name.get=function(){return"IndexOutOfBoundsException"},Object.defineProperties(e,n),e}(Error),Ec=function(){};Ec.prototype.hasNext=function(){},Ec.prototype.next=function(){},Ec.prototype.remove=function(){};var wc=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(){},e.prototype.set=function(){},e.prototype.isEmpty=function(){},e}(vc);(Pi.prototype=new Error).name="NoSuchElementException";var bc=function(t){function e(){t.call(this),this.array_=[],arguments[0]instanceof vc&&this.addAll(arguments[0])}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.ensureCapacity=function(){},e.prototype.interfaces_=function(){return[t,vc]},e.prototype.add=function(t){return 1===arguments.length?this.array_.push(t):this.array_.splice(arguments[0],arguments[1]),!0},e.prototype.clear=function(){this.array_=[]},e.prototype.addAll=function(t){for(var e=t.iterator();e.hasNext();)this.add(e.next());return!0},e.prototype.set=function(t,e){var n=this.array_[t];return this.array_[t]=e,n},e.prototype.iterator=function(){return new Ic(this)},e.prototype.get=function(t){if(t<0||t>=this.size())throw new xc;return this.array_[t]},e.prototype.isEmpty=function(){return 0===this.array_.length},e.prototype.size=function(){return this.array_.length},e.prototype.toArray=function(){for(var t=[],e=0,n=this.array_.length;e=1){if(this.get(this.size()-1).equals2D(i))return null}t.prototype.add.call(this,i)}else if(arguments[0]instanceof Object&&"boolean"==typeof arguments[1]){var o=arguments[0],s=arguments[1];return this.add(o,s),!0}}else if(3===arguments.length){if("boolean"==typeof arguments[2]&&arguments[0]instanceof Array&&"boolean"==typeof arguments[1]){var a=arguments[0],u=arguments[1];if(arguments[2])for(var c=0;c=0;h--)this.add(a[h],u);return!0}if("boolean"==typeof arguments[2]&&Number.isInteger(arguments[0])&&arguments[1]instanceof bu){var l=arguments[0],p=arguments[1];if(!arguments[2]){var f=this.size();if(f>0){if(l>0){if(this.get(l-1).equals2D(p))return null}if(l_&&(m=-1);for(var v=y;v!==_;v+=m)this.add(g[v],d);return!0}},e.prototype.closeRing=function(){this.size()>0&&this.add(new bu(this.get(0)),!1)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},Object.defineProperties(e,n),e}(bc),Cc=function(){},Sc={ForwardComparator:{configurable:!0},BidirectionalComparator:{configurable:!0},coordArrayType:{configurable:!0}};Sc.ForwardComparator.get=function(){return Mc},Sc.BidirectionalComparator.get=function(){return Lc},Sc.coordArrayType.get=function(){return new Array(0).fill(null)},Cc.prototype.interfaces_=function(){return[]},Cc.prototype.getClass=function(){return Cc},Cc.isRing=function(t){return!(t.length<4)&&!!t[0].equals2D(t[t.length-1])},Cc.ptNotInList=function(t,e){for(var n=0;n=t?e:[]},Cc.indexOf=function(t,e){for(var n=0;n0)&&(e=t[n]);return e},Cc.extract=function(t,e,n){e=Pu.clamp(e,0,t.length);var r=(n=Pu.clamp(n,-1,t.length))-e+1;n<0&&(r=0),e>=t.length&&(r=0),nr.length)return 1;if(0===n.length)return 0;var i=Cc.compare(n,r);return Cc.isEqualReversed(n,r)?0:i},Lc.prototype.OLDcompare=function(t,e){var n=t,r=e;if(n.lengthr.length)return 1;if(0===n.length)return 0;for(var i=Cc.increasingDirection(n),o=Cc.increasingDirection(r),s=i>0?0:n.length-1,a=o>0?0:n.length-1,u=0;u0))return e.value;e=e.right}}return null},Gi.prototype.put=function(t,e){if(null===this.root_)return this.root_={key:t,value:e,left:null,right:null,parent:null,color:Ac,getValue:function(){return this.value},getKey:function(){return this.key}},this.size_=1,null;var n,r,i=this.root_;do{if(n=i,(r=t.compareTo(i.key))<0)i=i.left;else{if(!(r>0)){var o=i.value;return i.value=e,o}i=i.right}}while(null!==i);var s={key:t,left:null,right:null,value:e,parent:n,color:Ac,getValue:function(){return this.value},getKey:function(){return this.key}};return r<0?n.left=s:n.right=s,this.fixAfterInsertion(s),this.size_++,null},Gi.prototype.fixAfterInsertion=function(t){for(t.color=1;null!=t&&t!==this.root_&&1===t.parent.color;)if(Ai(t)===Fi(Ai(Ai(t)))){var e=qi(Ai(Ai(t)));1===Ti(e)?(Di(Ai(t),Ac),Di(e,Ac),Di(Ai(Ai(t)),1),t=Ai(Ai(t))):(t===qi(Ai(t))&&(t=Ai(t),this.rotateLeft(t)),Di(Ai(t),Ac),Di(Ai(Ai(t)),1),this.rotateRight(Ai(Ai(t))))}else{var n=Fi(Ai(Ai(t)));1===Ti(n)?(Di(Ai(t),Ac),Di(n,Ac),Di(Ai(Ai(t)),1),t=Ai(Ai(t))):(t===Fi(Ai(t))&&(t=Ai(t),this.rotateRight(t)),Di(Ai(t),Ac),Di(Ai(Ai(t)),1),this.rotateLeft(Ai(Ai(t))))}this.root_.color=Ac},Gi.prototype.values=function(){var t=new bc,e=this.getFirstEntry();if(null!==e)for(t.add(e.value);null!==(e=Gi.successor(e));)t.add(e.value);return t},Gi.prototype.entrySet=function(){var t=new Rc,e=this.getFirstEntry();if(null!==e)for(t.add(e);null!==(e=Gi.successor(e));)t.add(e);return t},Gi.prototype.rotateLeft=function(t){if(null!=t){var e=t.right;t.right=e.left,null!=e.left&&(e.left.parent=t),e.parent=t.parent,null===t.parent?this.root_=e:t.parent.left===t?t.parent.left=e:t.parent.right=e,e.left=t,t.parent=e}},Gi.prototype.rotateRight=function(t){if(null!=t){var e=t.left;t.left=e.right,null!=e.right&&(e.right.parent=t),e.parent=t.parent,null===t.parent?this.root_=e:t.parent.right===t?t.parent.right=e:t.parent.left=e,e.right=t,t.parent=e}},Gi.prototype.getFirstEntry=function(){var t=this.root_;if(null!=t)for(;null!=t.left;)t=t.left;return t},Gi.successor=function(t){if(null===t)return null;if(null!==t.right){for(var e=t.right;null!==e.left;)e=e.left;return e}for(var n=t.parent,r=t;null!==n&&r===n.right;)r=n,n=n.parent;return n},Gi.prototype.size=function(){return this.size_};var Dc=function(){};Dc.prototype.interfaces_=function(){return[]},Dc.prototype.getClass=function(){return Dc},Bi.prototype=new Ri,(ki.prototype=new Bi).contains=function(t){for(var e=0,n=this.array_.length;e=0;){var s=i.substring(0,o);r.add(s),o=(i=i.substring(o+n)).indexOf(e)}i.length>0&&r.add(i);for(var a=new Array(r.size()).fill(null),u=0;u0)for(var o=i;o0&&r.append(" ");for(var o=0;o0&&r.append(","),r.append(Vc.toString(t.getOrdinate(i,o)))}return r.append(")"),r.toString()}},Wc.ensureValidRing=function(t,e){var n=e.size();if(0===n)return e;if(n<=3)return Wc.createClosedRing(t,e,4);return e.getOrdinate(0,Bu.X)===e.getOrdinate(n-1,Bu.X)&&e.getOrdinate(0,Bu.Y)===e.getOrdinate(n-1,Bu.Y)?e:Wc.createClosedRing(t,e,n+1)},Wc.createClosedRing=function(t,e,n){var r=t.create(n,e.getDimension()),i=e.size();Wc.copy(e,0,r,0,i);for(var o=i;o0&&Wc.reverse(this._points),null}},e.prototype.getCoordinate=function(){return this.isEmpty()?null:this._points.getCoordinate(0)},e.prototype.getBoundaryDimension=function(){return this.isClosed()?Gc.FALSE:0},e.prototype.isClosed=function(){return!this.isEmpty()&&this.getCoordinateN(0).equals2D(this.getCoordinateN(this.getNumPoints()-1))},e.prototype.getEndPoint=function(){return this.isEmpty()?null:this.getPointN(this.getNumPoints()-1)},e.prototype.getDimension=function(){return 1},e.prototype.getLength=function(){return sc.computeLength(this._points)},e.prototype.getNumPoints=function(){return this._points.size()},e.prototype.reverse=function(){var t=this._points.copy();Wc.reverse(t);return this.getFactory().createLineString(t)},e.prototype.compareToSameClass=function(){if(1===arguments.length){for(var t=arguments[0],e=0,n=0;e= 2)");this._points=t},e.prototype.isCoordinate=function(t){for(var e=0;e=1&&this.getCoordinateSequence().size()= 4)")},e.prototype.getGeometryType=function(){return"LinearRing"},e.prototype.copy=function(){return new e(this._points.copy(),this._factory)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},n.MINIMUM_VALID_SIZE.get=function(){return 4},n.serialVersionUID.get=function(){return-0x3b229e262367a600},Object.defineProperties(e,n),e}(Jc),nh=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var n={serialVersionUID:{configurable:!0}};return e.prototype.getSortIndex=function(){return cc.SORTINDEX_MULTIPOLYGON},e.prototype.equalsExact=function(){if(2===arguments.length){var e=arguments[0],n=arguments[1];return!!this.isEquivalentClass(e)&&t.prototype.equalsExact.call(this,e,n)}return t.prototype.equalsExact.apply(this,arguments)},e.prototype.getBoundaryDimension=function(){return 1},e.prototype.getDimension=function(){return 2},e.prototype.reverse=function(){for(var t=this._geometries.length,e=new Array(t).fill(null),n=0;n0?e.createPoint(n[0]):e.createPoint():t},sh.prototype.interfaces_=function(){return[rh.GeometryEditorOperation]},sh.prototype.getClass=function(){return sh};var ah=function(){};ah.prototype.edit=function(t,e){return t instanceof eh?e.createLinearRing(this.edit(t.getCoordinateSequence(),t)):t instanceof Jc?e.createLineString(this.edit(t.getCoordinateSequence(),t)):t instanceof Kc?e.createPoint(this.edit(t.getCoordinateSequence(),t)):t},ah.prototype.interfaces_=function(){return[rh.GeometryEditorOperation]},ah.prototype.getClass=function(){return ah};var uh=function(){if(this._dimension=3,this._coordinates=null,1===arguments.length){if(arguments[0]instanceof Array)this._coordinates=arguments[0],this._dimension=3;else if(Number.isInteger(arguments[0])){var t=arguments[0];this._coordinates=new Array(t).fill(null);for(var e=0;e0){var t=new Ru(17*this._coordinates.length);t.append("("),t.append(this._coordinates[0]);for(var e=1;e3&&(r=3),r<2?new uh(n):new uh(n,r)}},hh.prototype.interfaces_=function(){return[Cu,Li]},hh.prototype.getClass=function(){return hh},hh.instance=function(){return hh.instanceObject},lh.serialVersionUID.get=function(){return-0x38e49fa6cf6f2e00},lh.instanceObject.get=function(){return new hh},Object.defineProperties(hh,lh);var ph=function(t){function e(){t.call(this),this.map_=new Map}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return this.map_.get(t)||null},e.prototype.put=function(t,e){return this.map_.set(t,e),e},e.prototype.values=function(){for(var t=new bc,e=this.map_.values(),n=e.next();!n.done;)t.add(n.value),n=e.next();return t},e.prototype.entrySet=function(){var t=new Rc;return this.map_.entries().forEach(function(e){return t.add(e)}),t},e.prototype.size=function(){return this.map_.size()},e}(Pc),fh=function t(){if(this._modelType=null,this._scale=null,0===arguments.length)this._modelType=t.FLOATING;else if(1===arguments.length)if(arguments[0]instanceof dh){var e=arguments[0];this._modelType=e,e===t.FIXED&&this.setScale(1)}else if("number"==typeof arguments[0]){var n=arguments[0];this._modelType=t.FIXED,this.setScale(n)}else if(arguments[0]instanceof t){var r=arguments[0];this._modelType=r._modelType,this._scale=r._scale}},gh={serialVersionUID:{configurable:!0},maximumPreciseValue:{configurable:!0}};fh.prototype.equals=function(t){if(!(t instanceof fh))return!1;var e=t;return this._modelType===e._modelType&&this._scale===e._scale},fh.prototype.compareTo=function(t){var e=t,n=this.getMaximumSignificantDigits(),r=e.getMaximumSignificantDigits();return new Tu(n).compareTo(new Tu(r))},fh.prototype.getScale=function(){return this._scale},fh.prototype.isFloating=function(){return this._modelType===fh.FLOATING||this._modelType===fh.FLOATING_SINGLE},fh.prototype.getType=function(){return this._modelType},fh.prototype.toString=function(){var t="UNKNOWN";return this._modelType===fh.FLOATING?t="Floating":this._modelType===fh.FLOATING_SINGLE?t="Floating-Single":this._modelType===fh.FIXED&&(t="Fixed (Scale="+this.getScale()+")"),t},fh.prototype.makePrecise=function(){if("number"==typeof arguments[0]){var t=arguments[0];if(mu.isNaN(t))return t;if(this._modelType===fh.FLOATING_SINGLE){return t}return this._modelType===fh.FIXED?Math.round(t*this._scale)/this._scale:t}if(arguments[0]instanceof bu){var e=arguments[0];if(this._modelType===fh.FLOATING)return null;e.x=this.makePrecise(e.x),e.y=this.makePrecise(e.y)}},fh.prototype.getMaximumSignificantDigits=function(){var t=16;return this._modelType===fh.FLOATING?t=16:this._modelType===fh.FLOATING_SINGLE?t=6:this._modelType===fh.FIXED&&(t=1+Math.trunc(Math.ceil(Math.log(this.getScale())/Math.log(10)))),t},fh.prototype.setScale=function(t){this._scale=Math.abs(t)},fh.prototype.interfaces_=function(){return[Li,xu]},fh.prototype.getClass=function(){return fh},fh.mostPrecise=function(t,e){return t.compareTo(e)>=0?t:e},gh.serialVersionUID.get=function(){return 0x6bee6404e9a25c00},gh.maximumPreciseValue.get=function(){return 9007199254740992},Object.defineProperties(fh,gh);var dh=function t(e){this._name=e||null,t.nameToTypeMap.put(e,this)},yh={serialVersionUID:{configurable:!0},nameToTypeMap:{configurable:!0}};dh.prototype.readResolve=function(){return dh.nameToTypeMap.get(this._name)},dh.prototype.toString=function(){return this._name},dh.prototype.interfaces_=function(){return[Li]},dh.prototype.getClass=function(){return dh},yh.serialVersionUID.get=function(){return-552860263173159e4},yh.nameToTypeMap.get=function(){return new ph},Object.defineProperties(dh,yh),fh.Type=dh,fh.FIXED=new dh("FIXED"),fh.FLOATING=new dh("FLOATING"),fh.FLOATING_SINGLE=new dh("FLOATING SINGLE");var _h=function t(){this._precisionModel=new fh,this._SRID=0,this._coordinateSequenceFactory=t.getDefaultCoordinateSequenceFactory(),0===arguments.length||(1===arguments.length?Lu(arguments[0],Cu)?this._coordinateSequenceFactory=arguments[0]:arguments[0]instanceof fh&&(this._precisionModel=arguments[0]):2===arguments.length?(this._precisionModel=arguments[0],this._SRID=arguments[1]):3===arguments.length&&(this._precisionModel=arguments[0],this._SRID=arguments[1],this._coordinateSequenceFactory=arguments[2]))},mh={serialVersionUID:{configurable:!0}};_h.prototype.toGeometry=function(t){return t.isNull()?this.createPoint(null):t.getMinX()===t.getMaxX()&&t.getMinY()===t.getMaxY()?this.createPoint(new bu(t.getMinX(),t.getMinY())):t.getMinX()===t.getMaxX()||t.getMinY()===t.getMaxY()?this.createLineString([new bu(t.getMinX(),t.getMinY()),new bu(t.getMaxX(),t.getMaxY())]):this.createPolygon(this.createLinearRing([new bu(t.getMinX(),t.getMinY()),new bu(t.getMinX(),t.getMaxY()),new bu(t.getMaxX(),t.getMaxY()),new bu(t.getMaxX(),t.getMinY()),new bu(t.getMinX(),t.getMinY())]),null)},_h.prototype.createLineString=function(t){return t?t instanceof Array?new Jc(this.getCoordinateSequenceFactory().create(t),this):Lu(t,Bu)?new Jc(t,this):void 0:new Jc(this.getCoordinateSequenceFactory().create([]),this)},_h.prototype.createMultiLineString=function(){if(0===arguments.length)return new Xc(null,this);if(1===arguments.length){var t=arguments[0];return new Xc(t,this)}},_h.prototype.buildGeometry=function(t){for(var e=null,n=!1,r=!1,i=t.iterator();i.hasNext();){var o=i.next(),s=o.getClass();null===e&&(e=s),s!==e&&(n=!0),o.isGeometryCollectionOrDerived()&&(r=!0)}if(null===e)return this.createGeometryCollection();if(n||r)return this.createGeometryCollection(_h.toGeometryArray(t));var a=t.iterator().next();if(t.size()>1){if(a instanceof $c)return this.createMultiPolygon(_h.toPolygonArray(t));if(a instanceof Jc)return this.createMultiLineString(_h.toLineStringArray(t));if(a instanceof Kc)return this.createMultiPoint(_h.toPointArray(t));tc.shouldNeverReachHere("Unhandled class: "+a.getClass().getName())}return a},_h.prototype.createMultiPointFromCoords=function(t){return this.createMultiPoint(null!==t?this.getCoordinateSequenceFactory().create(t):null)},_h.prototype.createPoint=function(){if(0===arguments.length)return this.createPoint(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof bu){var t=arguments[0];return this.createPoint(null!==t?this.getCoordinateSequenceFactory().create([t]):null)}if(Lu(arguments[0],Bu)){var e=arguments[0];return new Kc(e,this)}}},_h.prototype.getCoordinateSequenceFactory=function(){return this._coordinateSequenceFactory},_h.prototype.createPolygon=function(){if(0===arguments.length)return new $c(null,null,this);if(1===arguments.length){if(Lu(arguments[0],Bu)){var t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof Array){var e=arguments[0];return this.createPolygon(this.createLinearRing(e))}if(arguments[0]instanceof eh){var n=arguments[0];return this.createPolygon(n,null)}}else if(2===arguments.length){var r=arguments[0],i=arguments[1];return new $c(r,i,this)}},_h.prototype.getSRID=function(){return this._SRID},_h.prototype.createGeometryCollection=function(){if(0===arguments.length)return new jc(null,this);if(1===arguments.length){var t=arguments[0];return new jc(t,this)}},_h.prototype.createGeometry=function(t){return new rh(this).edit(t,{edit:function(){if(2===arguments.length){var t=arguments[0];return this._coordinateSequenceFactory.create(t)}}})},_h.prototype.getPrecisionModel=function(){return this._precisionModel},_h.prototype.createLinearRing=function(){if(0===arguments.length)return this.createLinearRing(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){var t=arguments[0];return this.createLinearRing(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(Lu(arguments[0],Bu)){var e=arguments[0];return new eh(e,this)}}},_h.prototype.createMultiPolygon=function(){if(0===arguments.length)return new nh(null,this);if(1===arguments.length){var t=arguments[0];return new nh(t,this)}},_h.prototype.createMultiPoint=function(){if(0===arguments.length)return new th(null,this);if(1===arguments.length){if(arguments[0]instanceof Array){var t=arguments[0];return new th(t,this)}if(arguments[0]instanceof Array){var e=arguments[0];return this.createMultiPoint(null!==e?this.getCoordinateSequenceFactory().create(e):null)}if(Lu(arguments[0],Bu)){var n=arguments[0];if(null===n)return this.createMultiPoint(new Array(0).fill(null));for(var r=new Array(n.size()).fill(null),i=0;i=this.size())throw new Error;return this.array_[t]},Xi.prototype.push=function(t){return this.array_.push(t),t},Xi.prototype.pop=function(t){if(0===this.array_.length)throw new ji;return this.array_.pop()},Xi.prototype.peek=function(){if(0===this.array_.length)throw new ji;return this.array_[this.array_.length-1]},Xi.prototype.empty=function(){return 0===this.array_.length},Xi.prototype.isEmpty=function(){return this.empty()},Xi.prototype.search=function(t){return this.array_.indexOf(t)},Xi.prototype.size=function(){return this.array_.length},Xi.prototype.toArray=function(){for(var t=[],e=0,n=this.array_.length;e0&&this._minIndexthis._minCoord.y&&n.y>this._minCoord.y&&r===sc.CLOCKWISE&&(i=!0),i&&(this._minIndex=this._minIndex-1)},Sh.prototype.getRightmostSideOfSegment=function(t,e){var n=t.getEdge().getCoordinates();if(e<0||e+1>=n.length)return-1;if(n[e].y===n[e+1].y)return-1;var r=Nh.LEFT;return n[e].ythis._minCoord.x)&&(this._minDe=t,this._minIndex=n,this._minCoord=e[n])},Sh.prototype.findRightmostEdgeAtNode=function(){var t=this._minDe.getNode().getEdges();this._minDe=t.getRightmostEdge(),this._minDe.isForward()||(this._minDe=this._minDe.getSym(),this._minIndex=this._minDe.getEdge().getCoordinates().length-1)},Sh.prototype.findEdge=function(t){for(var e=t.iterator();e.hasNext();){var n=e.next();n.isForward()&&this.checkForRightmostCoordinate(n)}tc.isTrue(0!==this._minIndex||this._minCoord.equals(this._minDe.getCoordinate()),"inconsistency in rightmost processing"),0===this._minIndex?this.findRightmostEdgeAtNode():this.findRightmostEdgeAtVertex(),this._orientedDe=this._minDe;this.getRightmostSide(this._minDe,this._minIndex)===Nh.LEFT&&(this._orientedDe=this._minDe.getSym())},Sh.prototype.interfaces_=function(){return[]},Sh.prototype.getClass=function(){return Sh};var Mh=function(t){function e(n,r){t.call(this,e.msgWithCoord(n,r)),this.pt=r?new bu(r):null,this.name="TopologyException"}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getCoordinate=function(){return this.pt},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e.msgWithCoord=function(t,e){return e?t:t+" [ "+e+" ]"},e}(Qu),Lh=function(){this.array_=[]};Lh.prototype.addLast=function(t){this.array_.push(t)},Lh.prototype.removeFirst=function(){return this.array_.shift()},Lh.prototype.isEmpty=function(){return 0===this.array_.length};var Ph=function(){this._finder=null,this._dirEdgeList=new bc,this._nodes=new bc,this._rightMostCoord=null,this._env=null,this._finder=new Sh};Ph.prototype.clearVisitedEdges=function(){for(var t=this._dirEdgeList.iterator();t.hasNext();){t.next().setVisited(!1)}},Ph.prototype.getRightmostCoordinate=function(){return this._rightMostCoord},Ph.prototype.computeNodeDepth=function(t){for(var e=null,n=t.getEdges().iterator();n.hasNext();){var r=n.next();if(r.isVisited()||r.getSym().isVisited()){e=r;break}}if(null===e)throw new Mh("unable to find edge to compute depths at "+t.getCoordinate());t.getEdges().computeDepths(e);for(var i=t.getEdges().iterator();i.hasNext();){var o=i.next();o.setVisited(!0),this.copySymDepths(o)}},Ph.prototype.computeDepth=function(t){this.clearVisitedEdges();var e=this._finder.getEdge();e.setEdgeDepths(Nh.RIGHT,t),this.copySymDepths(e),this.computeDepths(e)},Ph.prototype.create=function(t){this.addReachable(t),this._finder.findEdge(this._dirEdgeList),this._rightMostCoord=this._finder.getCoordinate()},Ph.prototype.findResultEdges=function(){for(var t=this._dirEdgeList.iterator();t.hasNext();){var e=t.next();e.getDepth(Nh.RIGHT)>=1&&e.getDepth(Nh.LEFT)<=0&&!e.isInteriorAreaEdge()&&e.setInResult(!0)}},Ph.prototype.computeDepths=function(t){var e=new Rc,n=new Lh,r=t.getNode();for(n.addLast(r),e.add(r),t.setVisited(!0);!n.isEmpty();){var i=n.removeFirst();e.add(i),this.computeNodeDepth(i);for(var o=i.getEdges().iterator();o.hasNext();){var s=o.next().getSym();if(!s.isVisited()){var a=s.getNode();e.contains(a)||(n.addLast(a),e.add(a))}}}},Ph.prototype.compareTo=function(t){var e=t;return this._rightMostCoord.xe._rightMostCoord.x?1:0},Ph.prototype.getEnvelope=function(){if(null===this._env){for(var t=new Yu,e=this._dirEdgeList.iterator();e.hasNext();)for(var n=e.next().getEdge().getCoordinates(),r=0;rthis.location.length){var e=new Array(3).fill(null);e[Nh.ON]=this.location[Nh.ON],e[Nh.LEFT]=Su.NONE,e[Nh.RIGHT]=Su.NONE,this.location=e}for(var n=0;n1&&t.append(Su.toLocationSymbol(this.location[Nh.LEFT])),t.append(Su.toLocationSymbol(this.location[Nh.ON])),this.location.length>1&&t.append(Su.toLocationSymbol(this.location[Nh.RIGHT])),t.toString()},Oh.prototype.setLocations=function(t,e,n){this.location[Nh.ON]=t,this.location[Nh.LEFT]=e,this.location[Nh.RIGHT]=n},Oh.prototype.get=function(t){return t1},Oh.prototype.isAnyNull=function(){for(var t=0;tthis._maxNodeDegree&&(this._maxNodeDegree=e),t=this.getNext(t)}while(t!==this._startDe);this._maxNodeDegree*=2},Th.prototype.addPoints=function(t,e,n){var r=t.getCoordinates();if(e){var i=1;n&&(i=0);for(var o=i;o=0;a--)this._pts.add(r[a])}},Th.prototype.isHole=function(){return this._isHole},Th.prototype.setInResult=function(){var t=this._startDe;do{t.getEdge().setInResult(!0),t=t.getNext()}while(t!==this._startDe)},Th.prototype.containsPoint=function(t){var e=this.getLinearRing();if(!e.getEnvelopeInternal().contains(t))return!1;if(!sc.isPointInRing(t,e.getCoordinates()))return!1;for(var n=this._holes.iterator();n.hasNext();){if(n.next().containsPoint(t))return!1}return!0},Th.prototype.addHole=function(t){this._holes.add(t)},Th.prototype.isShell=function(){return null===this._shell},Th.prototype.getLabel=function(){return this._label},Th.prototype.getEdges=function(){return this._edges},Th.prototype.getMaxNodeDegree=function(){return this._maxNodeDegree<0&&this.computeMaxNodeDegree(),this._maxNodeDegree},Th.prototype.getShell=function(){return this._shell},Th.prototype.mergeLabel=function(){if(1===arguments.length){var t=arguments[0];this.mergeLabel(t,0),this.mergeLabel(t,1)}else if(2===arguments.length){var e=arguments[0],n=arguments[1],r=e.getLocation(n,Nh.RIGHT);if(r===Su.NONE)return null;if(this._label.getLocation(n)===Su.NONE)return this._label.setLocation(n,r),null}},Th.prototype.setShell=function(t){this._shell=t,null!==t&&t.addHole(this)},Th.prototype.toPolygon=function(t){for(var e=new Array(this._holes.size()).fill(null),n=0;n=2,"found partial label"),this.computeIM(t)},Fh.prototype.isInResult=function(){return this._isInResult},Fh.prototype.isVisited=function(){return this._isVisited},Fh.prototype.interfaces_=function(){return[]},Fh.prototype.getClass=function(){return Fh};var qh=function(t){function e(){t.call(this),this._coord=null,this._edges=null;var e=arguments[0],n=arguments[1];this._coord=e,this._edges=n,this._label=new Rh(0,Su.NONE)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isIncidentEdgeInResult=function(){for(var t=this.getEdges().getEdges().iterator();t.hasNext();){if(t.next().getEdge().isInResult())return!0}return!1},e.prototype.isIsolated=function(){return 1===this._label.getGeometryCount()},e.prototype.getCoordinate=function(){return this._coord},e.prototype.print=function(t){t.println("node "+this._coord+" lbl: "+this._label)},e.prototype.computeIM=function(t){},e.prototype.computeMergedLocation=function(t,e){var n=Su.NONE;if(n=this._label.getLocation(e),!t.isNull(e)){var r=t.getLocation(e);n!==Su.BOUNDARY&&(n=r)}return n},e.prototype.setLabel=function(){if(2!==arguments.length)return t.prototype.setLabel.apply(this,arguments);var e=arguments[0],n=arguments[1];null===this._label?this._label=new Rh(e,n):this._label.setLocation(e,n)},e.prototype.getEdges=function(){return this._edges},e.prototype.mergeLabel=function(){if(arguments[0]instanceof e){var t=arguments[0];this.mergeLabel(t._label)}else if(arguments[0]instanceof Rh)for(var n=arguments[0],r=0;r<2;r++){var i=this.computeMergedLocation(n,r);this._label.getLocation(r)===Su.NONE&&this._label.setLocation(r,i)}},e.prototype.add=function(t){this._edges.insert(t),t.setNode(this)},e.prototype.setLabelBoundary=function(t){if(null===this._label)return null;var e=Su.NONE;null!==this._label&&(e=this._label.getLocation(t));var n=null;switch(e){case Su.BOUNDARY:n=Su.INTERIOR;break;case Su.INTERIOR:default:n=Su.BOUNDARY}this._label.setLocation(t,n)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(Fh),Gh=function(){this.nodeMap=new Gi,this.nodeFact=null;var t=arguments[0];this.nodeFact=t};Gh.prototype.find=function(t){return this.nodeMap.get(t)},Gh.prototype.addNode=function(){if(arguments[0]instanceof bu){var t=arguments[0],e=this.nodeMap.get(t);return null===e&&(e=this.nodeFact.createNode(t),this.nodeMap.put(t,e)),e}if(arguments[0]instanceof qh){var n=arguments[0],r=this.nodeMap.get(n.getCoordinate());return null===r?(this.nodeMap.put(n.getCoordinate(),n),n):(r.mergeLabel(n),r)}},Gh.prototype.print=function(t){for(var e=this.iterator();e.hasNext();){e.next().print(t)}},Gh.prototype.iterator=function(){return this.nodeMap.values().iterator()},Gh.prototype.values=function(){return this.nodeMap.values()},Gh.prototype.getBoundaryNodes=function(t){for(var e=new bc,n=this.iterator();n.hasNext();){var r=n.next();r.getLabel().getLocation(t)===Su.BOUNDARY&&e.add(r)}return e},Gh.prototype.add=function(t){var e=t.getCoordinate();this.addNode(e).add(t)},Gh.prototype.interfaces_=function(){return[]},Gh.prototype.getClass=function(){return Gh};var Bh=function(){},kh={NE:{configurable:!0},NW:{configurable:!0},SW:{configurable:!0},SE:{configurable:!0}};Bh.prototype.interfaces_=function(){return[]},Bh.prototype.getClass=function(){return Bh},Bh.isNorthern=function(t){return t===Bh.NE||t===Bh.NW},Bh.isOpposite=function(t,e){if(t===e)return!1;return 2===(t-e+4)%4},Bh.commonHalfPlane=function(t,e){if(t===e)return t;if(2===(t-e+4)%4)return-1;var n=te?t:e)?3:n},Bh.isInHalfPlane=function(t,e){return e===Bh.SE?t===Bh.SE||t===Bh.SW:t===e||t===e+1},Bh.quadrant=function(){if("number"==typeof arguments[0]&&"number"==typeof arguments[1]){var t=arguments[0],e=arguments[1];if(0===t&&0===e)throw new _u("Cannot compute the quadrant for point ( "+t+", "+e+" )");return t>=0?e>=0?Bh.NE:Bh.SE:e>=0?Bh.NW:Bh.SW}if(arguments[0]instanceof bu&&arguments[1]instanceof bu){var n=arguments[0],r=arguments[1];if(r.x===n.x&&r.y===n.y)throw new _u("Cannot compute the quadrant for two identical points "+n);return r.x>=n.x?r.y>=n.y?Bh.NE:Bh.SE:r.y>=n.y?Bh.NW:Bh.SW}},kh.NE.get=function(){return 0},kh.NW.get=function(){return 1},kh.SW.get=function(){return 2},kh.SE.get=function(){return 3},Object.defineProperties(Bh,kh);var zh=function(){if(this._edge=null,this._label=null,this._node=null,this._p0=null,this._p1=null,this._dx=null,this._dy=null,this._quadrant=null,1===arguments.length){var t=arguments[0];this._edge=t}else if(3===arguments.length){var e=arguments[0],n=arguments[1],r=arguments[2];this._edge=e,this.init(n,r),this._label=null}else if(4===arguments.length){var i=arguments[0],o=arguments[1],s=arguments[2],a=arguments[3];this._edge=i,this.init(o,s),this._label=a}};zh.prototype.compareDirection=function(t){return this._dx===t._dx&&this._dy===t._dy?0:this._quadrant>t._quadrant?1:this._quadrant2){o.linkDirectedEdgesForMinimalEdgeRings();var s=o.buildMinimalRings(),a=this.findShell(s);null!==a?(this.placePolygonHoles(a,s),e.add(a)):n.addAll(s)}else r.add(o)}return r},Yh.prototype.containsPoint=function(t){for(var e=this._shellList.iterator();e.hasNext();){if(e.next().containsPoint(t))return!0}return!1},Yh.prototype.buildMaximalEdgeRings=function(t){for(var e=new bc,n=t.iterator();n.hasNext();){var r=n.next();if(r.isInResult()&&r.getLabel().isArea()&&null===r.getEdgeRing()){var i=new Dh(r,this._geometryFactory);e.add(i),i.setInResult()}}return e},Yh.prototype.placePolygonHoles=function(t,e){for(var n=e.iterator();n.hasNext();){var r=n.next();r.isHole()&&r.setShell(t)}},Yh.prototype.getPolygons=function(){return this.computePolygons(this._shellList)},Yh.prototype.findEdgeRingContaining=function(t,e){for(var n=t.getLinearRing(),r=n.getEnvelopeInternal(),i=n.getCoordinateN(0),o=null,s=null,a=e.iterator();a.hasNext();){var u=a.next(),c=u.getLinearRing(),h=c.getEnvelopeInternal();null!==o&&(s=o.getLinearRing().getEnvelopeInternal());var l=!1;h.contains(r)&&sc.isPointInRing(i,c.getCoordinates())&&(l=!0),l&&(null===o||s.contains(h))&&(o=u)}return o},Yh.prototype.findShell=function(t){for(var e=0,n=null,r=t.iterator();r.hasNext();){var i=r.next();i.isHole()||(n=i,e++)}return tc.isTrue(e<=1,"found two shells in MinimalEdgeRing list"),n},Yh.prototype.add=function(){if(1===arguments.length){var t=arguments[0];this.add(t.getEdgeEnds(),t.getNodes())}else if(2===arguments.length){var e=arguments[0],n=arguments[1];Uh.linkResultDirectedEdges(n);var r=this.buildMaximalEdgeRings(e),i=new bc,o=this.buildMinimalEdgeRings(r,this._shellList,i);this.sortShellsAndHoles(o,this._shellList,i),this.placeFreeHoles(this._shellList,i)}},Yh.prototype.interfaces_=function(){return[]},Yh.prototype.getClass=function(){return Yh};var Vh=function(){};Vh.prototype.getBounds=function(){},Vh.prototype.interfaces_=function(){return[]},Vh.prototype.getClass=function(){return Vh};var Hh=function(){this._bounds=null,this._item=null;var t=arguments[0],e=arguments[1];this._bounds=t,this._item=e};Hh.prototype.getItem=function(){return this._item},Hh.prototype.getBounds=function(){return this._bounds},Hh.prototype.interfaces_=function(){return[Vh,Li]},Hh.prototype.getClass=function(){return Hh};var Wh=function(){this._size=null,this._items=null,this._size=0,this._items=new bc,this._items.add(null)};Wh.prototype.poll=function(){if(this.isEmpty())return null;var t=this._items.get(1);return this._items.set(1,this._items.get(this._size)),this._size-=1,this.reorder(1),t},Wh.prototype.size=function(){return this._size},Wh.prototype.reorder=function(t){for(var e=null,n=this._items.get(t);2*t<=this._size&&((e=2*t)!==this._size&&this._items.get(e+1).compareTo(this._items.get(e))<0&&e++,this._items.get(e).compareTo(n)<0);t=e)this._items.set(t,this._items.get(e));this._items.set(t,n)},Wh.prototype.clear=function(){this._size=0,this._items.clear()},Wh.prototype.isEmpty=function(){return 0===this._size},Wh.prototype.add=function(t){this._items.add(null),this._size+=1;var e=this._size;for(this._items.set(0,t);t.compareTo(this._items.get(Math.trunc(e/2)))<0;e/=2)this._items.set(e,this._items.get(Math.trunc(e/2)));this._items.set(e,t)},Wh.prototype.interfaces_=function(){return[]},Wh.prototype.getClass=function(){return Wh};var Jh=function(){};Jh.prototype.visitItem=function(t){},Jh.prototype.interfaces_=function(){return[]},Jh.prototype.getClass=function(){return Jh};var Zh=function(){};Zh.prototype.insert=function(t,e){},Zh.prototype.remove=function(t,e){},Zh.prototype.query=function(){},Zh.prototype.interfaces_=function(){return[]},Zh.prototype.getClass=function(){return Zh};var Kh=function(){if(this._childBoundables=new bc,this._bounds=null,this._level=null,0===arguments.length);else if(1===arguments.length){var t=arguments[0];this._level=t}},Qh={serialVersionUID:{configurable:!0}};Kh.prototype.getLevel=function(){return this._level},Kh.prototype.size=function(){return this._childBoundables.size()},Kh.prototype.getChildBoundables=function(){return this._childBoundables},Kh.prototype.addChildBoundable=function(t){tc.isTrue(null===this._bounds),this._childBoundables.add(t)},Kh.prototype.isEmpty=function(){return this._childBoundables.isEmpty()},Kh.prototype.getBounds=function(){return null===this._bounds&&(this._bounds=this.computeBounds()),this._bounds},Kh.prototype.interfaces_=function(){return[Vh,Li]},Kh.prototype.getClass=function(){return Kh},Qh.serialVersionUID.get=function(){return 0x5a1e55ec41369800},Object.defineProperties(Kh,Qh);var $h=function(){};$h.reverseOrder=function(){return{compare:function(t,e){return e.compareTo(t)}}},$h.min=function(t){return $h.sort(t),t.get(0)},$h.sort=function(t,e){var n=t.toArray();e?qc.sort(n,e):qc.sort(n);for(var r=t.iterator(),i=0,o=n.length;itl.area(this._boundable2)?(this.expand(this._boundable1,this._boundable2,t,e),null):(this.expand(this._boundable2,this._boundable1,t,e),null);if(n)return this.expand(this._boundable1,this._boundable2,t,e),null;if(r)return this.expand(this._boundable2,this._boundable1,t,e),null;throw new _u("neither boundable is composite")},tl.prototype.isLeaves=function(){return!(tl.isComposite(this._boundable1)||tl.isComposite(this._boundable2))},tl.prototype.compareTo=function(t){var e=t;return this._distancee._distance?1:0},tl.prototype.expand=function(t,e,n,r){for(var i=t.getChildBoundables().iterator();i.hasNext();){var o=i.next(),s=new tl(o,e,this._itemDistance);s.getDistance()1,"Node capacity must be greater than 1"),this._nodeCapacity=n}},nl={IntersectsOp:{configurable:!0},serialVersionUID:{configurable:!0},DEFAULT_NODE_CAPACITY:{configurable:!0}};el.prototype.getNodeCapacity=function(){return this._nodeCapacity},el.prototype.lastNode=function(t){return t.get(t.size()-1)},el.prototype.size=function(){if(0===arguments.length)return this.isEmpty()?0:(this.build(),this.size(this._root));if(1===arguments.length){for(var t=0,e=arguments[0].getChildBoundables().iterator();e.hasNext();){var n=e.next();n instanceof Kh?t+=this.size(n):n instanceof Hh&&(t+=1)}return t}},el.prototype.removeItem=function(t,e){for(var n=null,r=t.getChildBoundables().iterator();r.hasNext();){var i=r.next();i instanceof Hh&&i.getItem()===e&&(n=i)}return null!==n&&(t.getChildBoundables().remove(n),!0)},el.prototype.itemsTree=function(){if(0===arguments.length){this.build();var t=this.itemsTree(this._root);return null===t?new bc:t}if(1===arguments.length){for(var e=arguments[0],n=new bc,r=e.getChildBoundables().iterator();r.hasNext();){var i=r.next();if(i instanceof Kh){var o=this.itemsTree(i);null!==o&&n.add(o)}else i instanceof Hh?n.add(i.getItem()):tc.shouldNeverReachHere()}return n.size()<=0?null:n}},el.prototype.insert=function(t,e){tc.isTrue(!this._built,"Cannot insert items into an STR packed R-tree after it has been built."),this._itemBoundables.add(new Hh(t,e))},el.prototype.boundablesAtLevel=function(){if(1===arguments.length){var t=arguments[0],e=new bc;return this.boundablesAtLevel(t,this._root,e),e}if(3===arguments.length){var n=arguments[0],r=arguments[1],i=arguments[2];if(tc.isTrue(n>-2),r.getLevel()===n)return i.add(r),null;for(var o=r.getChildBoundables().iterator();o.hasNext();){var s=o.next();s instanceof Kh?this.boundablesAtLevel(n,s,i):(tc.isTrue(s instanceof Hh),-1===n&&i.add(s))}return null}},el.prototype.query=function(){if(1===arguments.length){var t=arguments[0];this.build();var e=new bc;return this.isEmpty()?e:(this.getIntersectsOp().intersects(this._root.getBounds(),t)&&this.query(t,this._root,e),e)}if(2===arguments.length){var n=arguments[0],r=arguments[1];if(this.build(),this.isEmpty())return null;this.getIntersectsOp().intersects(this._root.getBounds(),n)&&this.query(n,this._root,r)}else if(3===arguments.length)if(Lu(arguments[2],Jh)&&arguments[0]instanceof Object&&arguments[1]instanceof Kh)for(var i=arguments[0],o=arguments[1],s=arguments[2],a=o.getChildBoundables(),u=0;ut&&(t=r)}}return t+1}},el.prototype.createParentBoundables=function(t,e){tc.isTrue(!t.isEmpty());var n=new bc;n.add(this.createNode(e));var r=new bc(t);$h.sort(r,this.getComparator());for(var i=r.iterator();i.hasNext();){var o=i.next();this.lastNode(n).getChildBoundables().size()===this.getNodeCapacity()&&n.add(this.createNode(e)),this.lastNode(n).addChildBoundable(o)}return n},el.prototype.isEmpty=function(){return this._built?this._root.isEmpty():this._itemBoundables.isEmpty()},el.prototype.interfaces_=function(){return[Li]},el.prototype.getClass=function(){return el},el.compareDoubles=function(t,e){return t>e?1:t0);for(var n=new bc,r=0;r0;){var l=h.poll(),p=l.getDistance();if(p>=u)break;l.isLeaves()?(u=p,c=l):l.expandToQueue(h,u)}return[c.getBoundable(0).getItem(),c.getBoundable(1).getItem()]}}else if(3===arguments.length){var f=arguments[0],g=arguments[1],d=arguments[2],y=new Hh(f,g),_=new tl(this.getRoot(),y,d);return this.nearestNeighbour(_)[0]}},e.prototype.interfaces_=function(){return[Zh,Li]},e.prototype.getClass=function(){return e},e.centreX=function(t){return e.avg(t.getMinX(),t.getMaxX())},e.avg=function(t,e){return(t+e)/2},e.centreY=function(t){return e.avg(t.getMinY(),t.getMaxY())},n.STRtreeNode.get=function(){return sl},n.serialVersionUID.get=function(){return 0x39920f7d5f261e0},n.xComparator.get=function(){return{interfaces_:function(){return[wu]},compare:function(n,r){return t.compareDoubles(e.centreX(n.getBounds()),e.centreX(r.getBounds()))}}},n.yComparator.get=function(){return{interfaces_:function(){return[wu]},compare:function(n,r){return t.compareDoubles(e.centreY(n.getBounds()),e.centreY(r.getBounds()))}}},n.intersectsOp.get=function(){return{interfaces_:function(){return[t.IntersectsOp]},intersects:function(t,e){return t.intersects(e)}}},n.DEFAULT_NODE_CAPACITY.get=function(){return 10},Object.defineProperties(e,n),e}(el),sl=function(t){function e(){var e=arguments[0];t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.computeBounds=function(){for(var t=null,e=this.getChildBoundables().iterator();e.hasNext();){var n=e.next();null===t?t=new Yu(n.getBounds()):t.expandToInclude(n.getBounds())}return t},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(Kh),al=function(){};al.prototype.interfaces_=function(){return[]},al.prototype.getClass=function(){return al},al.relativeSign=function(t,e){return te?1:0},al.compare=function(t,e,n){if(e.equals2D(n))return 0;var r=al.relativeSign(e.x,n.x),i=al.relativeSign(e.y,n.y);switch(t){case 0:return al.compareValue(r,i);case 1:return al.compareValue(i,r);case 2:return al.compareValue(i,-r);case 3:return al.compareValue(-r,i);case 4:return al.compareValue(-r,-i);case 5:return al.compareValue(-i,-r);case 6:return al.compareValue(-i,r);case 7:return al.compareValue(r,-i)}return tc.shouldNeverReachHere("invalid octant value"),0},al.compareValue=function(t,e){return t<0?-1:t>0?1:e<0?-1:e>0?1:0};var ul=function(){this._segString=null,this.coord=null,this.segmentIndex=null,this._segmentOctant=null,this._isInterior=null;var t=arguments[0],e=arguments[1],n=arguments[2],r=arguments[3];this._segString=t,this.coord=new bu(e),this.segmentIndex=n,this._segmentOctant=r,this._isInterior=!e.equals2D(t.getCoordinate(n))};ul.prototype.getCoordinate=function(){return this.coord},ul.prototype.print=function(t){t.print(this.coord),t.print(" seg # = "+this.segmentIndex)},ul.prototype.compareTo=function(t){var e=t;return this.segmentIndexe.segmentIndex?1:this.coord.equals2D(e.coord)?0:al.compare(this._segmentOctant,this.coord,e.coord)},ul.prototype.isEndPoint=function(t){return 0===this.segmentIndex&&!this._isInterior||this.segmentIndex===t},ul.prototype.isInterior=function(){return this._isInterior},ul.prototype.interfaces_=function(){return[xu]},ul.prototype.getClass=function(){return ul};var cl=function(){this._nodeMap=new Gi,this._edge=null;var t=arguments[0];this._edge=t};cl.prototype.getSplitCoordinates=function(){var t=new Nc;this.addEndpoints();for(var e=this.iterator(),n=e.next();e.hasNext();){var r=e.next();this.addEdgeCoordinates(n,r,t),n=r}return t.toCoordinateArray()},cl.prototype.addCollapsedNodes=function(){var t=new bc;this.findCollapsesFromInsertedNodes(t),this.findCollapsesFromExistingVertices(t);for(var e=t.iterator();e.hasNext();){var n=e.next().intValue();this.add(this._edge.getCoordinate(n),n)}},cl.prototype.print=function(t){t.println("Intersections:");for(var e=this.iterator();e.hasNext();){e.next().print(t)}},cl.prototype.findCollapsesFromExistingVertices=function(t){for(var e=0;e=0?e>=0?n>=r?0:1:n>=r?7:6:e>=0?n>=r?3:2:n>=r?4:5}if(arguments[0]instanceof bu&&arguments[1]instanceof bu){var i=arguments[0],o=arguments[1],s=o.x-i.x,a=o.y-i.y;if(0===s&&0===a)throw new _u("Cannot compute the octant for two identical points "+i);return hl.octant(s,a)}};var ll=function(){};ll.prototype.getCoordinates=function(){},ll.prototype.size=function(){},ll.prototype.getCoordinate=function(t){},ll.prototype.isClosed=function(){},ll.prototype.setData=function(t){},ll.prototype.getData=function(){},ll.prototype.interfaces_=function(){return[]},ll.prototype.getClass=function(){return ll};var pl=function(){};pl.prototype.addIntersection=function(t,e){},pl.prototype.interfaces_=function(){return[ll]},pl.prototype.getClass=function(){return pl};var fl=function(){this._nodeList=new cl(this),this._pts=null,this._data=null;var t=arguments[0],e=arguments[1];this._pts=t,this._data=e};fl.prototype.getCoordinates=function(){return this._pts},fl.prototype.size=function(){return this._pts.length},fl.prototype.getCoordinate=function(t){return this._pts[t]},fl.prototype.isClosed=function(){return this._pts[0].equals(this._pts[this._pts.length-1])},fl.prototype.getSegmentOctant=function(t){return t===this._pts.length-1?-1:this.safeOctant(this.getCoordinate(t),this.getCoordinate(t+1))},fl.prototype.setData=function(t){this._data=t},fl.prototype.safeOctant=function(t,e){return t.equals2D(e)?0:hl.octant(t,e)},fl.prototype.getData=function(){return this._data},fl.prototype.addIntersection=function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];this.addIntersectionNode(t,e)}else if(4===arguments.length){var n=arguments[0],r=arguments[1],i=arguments[3],o=new bu(n.getIntersection(i));this.addIntersection(o,r)}},fl.prototype.toString=function(){return Ku.toLineString(new uh(this._pts))},fl.prototype.getNodeList=function(){return this._nodeList},fl.prototype.addIntersectionNode=function(t,e){var n=e,r=n+1;if(r=0&&n>=0?Math.max(e,n):e<=0&&n<=0?Math.max(e,n):0}if(arguments[0]instanceof bu){var r=arguments[0];return sc.orientationIndex(this.p0,this.p1,r)}},gl.prototype.toGeometry=function(t){return t.createLineString([this.p0,this.p1])},gl.prototype.isVertical=function(){return this.p0.x===this.p1.x},gl.prototype.equals=function(t){if(!(t instanceof gl))return!1;var e=t;return this.p0.equals(e.p0)&&this.p1.equals(e.p1)},gl.prototype.intersection=function(t){var e=new rc;return e.computeIntersection(this.p0,this.p1,t.p0,t.p1),e.hasIntersection()?e.getIntersection(0):null},gl.prototype.project=function(){if(arguments[0]instanceof bu){var t=arguments[0];if(t.equals(this.p0)||t.equals(this.p1))return new bu(t);var e=this.projectionFactor(t),n=new bu;return n.x=this.p0.x+e*(this.p1.x-this.p0.x),n.y=this.p0.y+e*(this.p1.y-this.p0.y),n}if(arguments[0]instanceof gl){var r=arguments[0],i=this.projectionFactor(r.p0),o=this.projectionFactor(r.p1);if(i>=1&&o>=1)return null;if(i<=0&&o<=0)return null;var s=this.project(r.p0);i<0&&(s=this.p0),i>1&&(s=this.p1);var a=this.project(r.p1);return o<0&&(a=this.p0),o>1&&(a=this.p1),new gl(s,a)}},gl.prototype.normalize=function(){this.p1.compareTo(this.p0)<0&&this.reverse()},gl.prototype.angle=function(){return Math.atan2(this.p1.y-this.p0.y,this.p1.x-this.p0.x)},gl.prototype.getCoordinate=function(t){return 0===t?this.p0:this.p1},gl.prototype.distancePerpendicular=function(t){return sc.distancePointLinePerpendicular(t,this.p0,this.p1)},gl.prototype.minY=function(){return Math.min(this.p0.y,this.p1.y)},gl.prototype.midPoint=function(){return gl.midPoint(this.p0,this.p1)},gl.prototype.projectionFactor=function(t){if(t.equals(this.p0))return 0;if(t.equals(this.p1))return 1;var e=this.p1.x-this.p0.x,n=this.p1.y-this.p0.y,r=e*e+n*n;if(r<=0)return mu.NaN;return((t.x-this.p0.x)*e+(t.y-this.p0.y)*n)/r},gl.prototype.closestPoints=function(t){var e=this.intersection(t);if(null!==e)return[e,e];var n=new Array(2).fill(null),r=mu.MAX_VALUE,i=null,o=this.closestPoint(t.p0);r=o.distance(t.p0),n[0]=o,n[1]=t.p0;var s=this.closestPoint(t.p1);(i=s.distance(t.p1))0&&e<1)return this.project(t);return this.p0.distance(t)1||mu.isNaN(e))&&(e=1),e},gl.prototype.toString=function(){return"LINESTRING( "+this.p0.x+" "+this.p0.y+", "+this.p1.x+" "+this.p1.y+")"},gl.prototype.isHorizontal=function(){return this.p0.y===this.p1.y},gl.prototype.distance=function(){if(arguments[0]instanceof gl){var t=arguments[0];return sc.distanceLineLine(this.p0,this.p1,t.p0,t.p1)}if(arguments[0]instanceof bu){var e=arguments[0];return sc.distancePointLine(e,this.p0,this.p1)}},gl.prototype.pointAlong=function(t){var e=new bu;return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e},gl.prototype.hashCode=function(){var t=mu.doubleToLongBits(this.p0.x);t^=31*mu.doubleToLongBits(this.p0.y);var e=Math.trunc(t)^Math.trunc(t>>32),n=mu.doubleToLongBits(this.p1.x);n^=31*mu.doubleToLongBits(this.p1.y);return e^(Math.trunc(n)^Math.trunc(n>>32))},gl.prototype.interfaces_=function(){return[xu,Li]},gl.prototype.getClass=function(){return gl},gl.midPoint=function(t,e){return new bu((t.x+e.x)/2,(t.y+e.y)/2)},dl.serialVersionUID.get=function(){return 0x2d2172135f411c00},Object.defineProperties(gl,dl);var yl=function(){this.tempEnv1=new Yu,this.tempEnv2=new Yu,this._overlapSeg1=new gl,this._overlapSeg2=new gl};yl.prototype.overlap=function(){if(2===arguments.length);else if(4===arguments.length){var t=arguments[0],e=arguments[1],n=arguments[2],r=arguments[3];t.getLineSegment(e,this._overlapSeg1),n.getLineSegment(r,this._overlapSeg2),this.overlap(this._overlapSeg1,this._overlapSeg2)}},yl.prototype.interfaces_=function(){return[]},yl.prototype.getClass=function(){return yl};var _l=function(){this._pts=null,this._start=null,this._end=null,this._env=null,this._context=null,this._id=null;var t=arguments[0],e=arguments[1],n=arguments[2],r=arguments[3];this._pts=t,this._start=e,this._end=n,this._context=r};_l.prototype.getLineSegment=function(t,e){e.p0=this._pts[t],e.p1=this._pts[t+1]},_l.prototype.computeSelect=function(t,e,n,r){var i=this._pts[e],o=this._pts[n];if(r.tempEnv1.init(i,o),n-e==1)return r.select(this,e),null;if(!t.intersects(r.tempEnv1))return null;var s=Math.trunc((e+n)/2);e=t.length-1)return t.length-1;for(var r=Bh.quadrant(t[n],t[n+1]),i=e+1;in.getId()&&(n.computeOverlaps(i,t),this._nOverlaps++),this._segInt.isDone())return null}},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},n.SegmentOverlapAction.get=function(){return wl},Object.defineProperties(e,n),e}(xl),wl=function(t){function e(){t.call(this),this._si=null;var e=arguments[0];this._si=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.overlap=function(){if(4!==arguments.length)return t.prototype.overlap.apply(this,arguments);var e=arguments[0],n=arguments[1],r=arguments[2],i=arguments[3],o=e.getContext(),s=r.getContext();this._si.processIntersections(o,n,s,i)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(yl),bl=function t(){if(this._quadrantSegments=t.DEFAULT_QUADRANT_SEGMENTS,this._endCapStyle=t.CAP_ROUND,this._joinStyle=t.JOIN_ROUND,this._mitreLimit=t.DEFAULT_MITRE_LIMIT,this._isSingleSided=!1,this._simplifyFactor=t.DEFAULT_SIMPLIFY_FACTOR,0===arguments.length);else if(1===arguments.length){var e=arguments[0];this.setQuadrantSegments(e)}else if(2===arguments.length){var n=arguments[0],r=arguments[1];this.setQuadrantSegments(n),this.setEndCapStyle(r)}else if(4===arguments.length){var i=arguments[0],o=arguments[1],s=arguments[2],a=arguments[3];this.setQuadrantSegments(i),this.setEndCapStyle(o),this.setJoinStyle(s),this.setMitreLimit(a)}},Il={CAP_ROUND:{configurable:!0},CAP_FLAT:{configurable:!0},CAP_SQUARE:{configurable:!0},JOIN_ROUND:{configurable:!0},JOIN_MITRE:{configurable:!0},JOIN_BEVEL:{configurable:!0},DEFAULT_QUADRANT_SEGMENTS:{configurable:!0},DEFAULT_MITRE_LIMIT:{configurable:!0},DEFAULT_SIMPLIFY_FACTOR:{configurable:!0}};bl.prototype.getEndCapStyle=function(){return this._endCapStyle},bl.prototype.isSingleSided=function(){return this._isSingleSided},bl.prototype.setQuadrantSegments=function(t){this._quadrantSegments=t,0===this._quadrantSegments&&(this._joinStyle=bl.JOIN_BEVEL),this._quadrantSegments<0&&(this._joinStyle=bl.JOIN_MITRE,this._mitreLimit=Math.abs(this._quadrantSegments)),t<=0&&(this._quadrantSegments=1),this._joinStyle!==bl.JOIN_ROUND&&(this._quadrantSegments=bl.DEFAULT_QUADRANT_SEGMENTS)},bl.prototype.getJoinStyle=function(){return this._joinStyle},bl.prototype.setJoinStyle=function(t){this._joinStyle=t},bl.prototype.setSimplifyFactor=function(t){this._simplifyFactor=t<0?0:t},bl.prototype.getSimplifyFactor=function(){return this._simplifyFactor},bl.prototype.getQuadrantSegments=function(){return this._quadrantSegments},bl.prototype.setEndCapStyle=function(t){this._endCapStyle=t},bl.prototype.getMitreLimit=function(){return this._mitreLimit},bl.prototype.setMitreLimit=function(t){this._mitreLimit=t},bl.prototype.setSingleSided=function(t){this._isSingleSided=t},bl.prototype.interfaces_=function(){return[]},bl.prototype.getClass=function(){return bl},bl.bufferDistanceError=function(t){var e=Math.PI/2/t;return 1-Math.cos(e/2)},Il.CAP_ROUND.get=function(){return 1},Il.CAP_FLAT.get=function(){return 2},Il.CAP_SQUARE.get=function(){return 3},Il.JOIN_ROUND.get=function(){return 1},Il.JOIN_MITRE.get=function(){return 2},Il.JOIN_BEVEL.get=function(){return 3},Il.DEFAULT_QUADRANT_SEGMENTS.get=function(){return 8},Il.DEFAULT_MITRE_LIMIT.get=function(){return 5},Il.DEFAULT_SIMPLIFY_FACTOR.get=function(){return.01},Object.defineProperties(bl,Il);var Nl=function(t){this._distanceTol=null,this._isDeleted=null,this._angleOrientation=sc.COUNTERCLOCKWISE,this._inputLine=t||null},Cl={INIT:{configurable:!0},DELETE:{configurable:!0},KEEP:{configurable:!0},NUM_PTS_TO_CHECK:{configurable:!0}};Nl.prototype.isDeletable=function(t,e,n,r){var i=this._inputLine[t],o=this._inputLine[e],s=this._inputLine[n];return!!this.isConcave(i,o,s)&&(!!this.isShallow(i,o,s,r)&&this.isShallowSampled(i,o,t,n,r))},Nl.prototype.deleteShallowConcavities=function(){for(var t=1,e=this.findNextNonDeletedIndex(t),n=this.findNextNonDeletedIndex(e),r=!1;n=0;r--)this.addPt(t[r])},Sl.prototype.isRedundant=function(t){if(this._ptList.size()<1)return!1;var e=this._ptList.get(this._ptList.size()-1);return t.distance(e)Math.PI;)t-=Ll.PI_TIMES_2;for(;t<=-Math.PI;)t+=Ll.PI_TIMES_2;return t},Ll.angle=function(){if(1===arguments.length){var t=arguments[0];return Math.atan2(t.y,t.x)}if(2===arguments.length){var e=arguments[0],n=arguments[1],r=n.x-e.x,i=n.y-e.y;return Math.atan2(i,r)}},Ll.isAcute=function(t,e,n){var r=t.x-e.x,i=t.y-e.y;return r*(n.x-e.x)+i*(n.y-e.y)>0},Ll.isObtuse=function(t,e,n){var r=t.x-e.x,i=t.y-e.y;return r*(n.x-e.x)+i*(n.y-e.y)<0},Ll.interiorAngle=function(t,e,n){var r=Ll.angle(e,t),i=Ll.angle(e,n);return Math.abs(i-r)},Ll.normalizePositive=function(t){if(t<0){for(;t<0;)t+=Ll.PI_TIMES_2;t>=Ll.PI_TIMES_2&&(t=0)}else{for(;t>=Ll.PI_TIMES_2;)t-=Ll.PI_TIMES_2;t<0&&(t=0)}return t},Ll.angleBetween=function(t,e,n){var r=Ll.angle(e,t),i=Ll.angle(e,n);return Ll.diff(r,i)},Ll.diff=function(t,e){var n=null;return(n=tMath.PI&&(n=2*Math.PI-n),n},Ll.toRadians=function(t){return t*Math.PI/180},Ll.getTurn=function(t,e){var n=Math.sin(e-t);return n>0?Ll.COUNTERCLOCKWISE:n<0?Ll.CLOCKWISE:Ll.NONE},Ll.angleBetweenOriented=function(t,e,n){var r=Ll.angle(e,t),i=Ll.angle(e,n)-r;return i<=-Math.PI?i+Ll.PI_TIMES_2:i>Math.PI?i-Ll.PI_TIMES_2:i},Pl.PI_TIMES_2.get=function(){return 2*Math.PI},Pl.PI_OVER_2.get=function(){return Math.PI/2},Pl.PI_OVER_4.get=function(){return Math.PI/4},Pl.COUNTERCLOCKWISE.get=function(){return sc.COUNTERCLOCKWISE},Pl.CLOCKWISE.get=function(){return sc.CLOCKWISE},Pl.NONE.get=function(){return sc.COLLINEAR},Object.defineProperties(Ll,Pl);var Ol=function t(){this._maxCurveSegmentError=0,this._filletAngleQuantum=null,this._closingSegLengthFactor=1,this._segList=null,this._distance=0,this._precisionModel=null,this._bufParams=null,this._li=null,this._s0=null,this._s1=null,this._s2=null,this._seg0=new gl,this._seg1=new gl,this._offset0=new gl,this._offset1=new gl,this._side=0,this._hasNarrowConcaveAngle=!1;var e=arguments[0],n=arguments[1],r=arguments[2];this._precisionModel=e,this._bufParams=n,this._li=new rc,this._filletAngleQuantum=Math.PI/2/n.getQuadrantSegments(),n.getQuadrantSegments()>=8&&n.getJoinStyle()===bl.JOIN_ROUND&&(this._closingSegLengthFactor=t.MAX_CLOSING_SEG_LEN_FACTOR),this.init(r)},Rl={OFFSET_SEGMENT_SEPARATION_FACTOR:{configurable:!0},INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR:{configurable:!0},CURVE_VERTEX_SNAP_DISTANCE_FACTOR:{configurable:!0},MAX_CLOSING_SEG_LEN_FACTOR:{configurable:!0}};Ol.prototype.addNextSegment=function(t,e){if(this._s0=this._s1,this._s1=this._s2,this._s2=t,this._seg0.setCoordinates(this._s0,this._s1),this.computeOffsetSegment(this._seg0,this._side,this._distance,this._offset0),this._seg1.setCoordinates(this._s1,this._s2),this.computeOffsetSegment(this._seg1,this._side,this._distance,this._offset1),this._s1.equals(this._s2))return null;var n=sc.computeOrientation(this._s0,this._s1,this._s2),r=n===sc.CLOCKWISE&&this._side===Nh.LEFT||n===sc.COUNTERCLOCKWISE&&this._side===Nh.RIGHT;0===n?this.addCollinear(e):r?this.addOutsideTurn(n,e):this.addInsideTurn(n,e)},Ol.prototype.addLineEndCap=function(t,e){var n=new gl(t,e),r=new gl;this.computeOffsetSegment(n,Nh.LEFT,this._distance,r);var i=new gl;this.computeOffsetSegment(n,Nh.RIGHT,this._distance,i);var o=e.x-t.x,s=e.y-t.y,a=Math.atan2(s,o);switch(this._bufParams.getEndCapStyle()){case bl.CAP_ROUND:this._segList.addPt(r.p1),this.addFilletArc(e,a+Math.PI/2,a-Math.PI/2,sc.CLOCKWISE,this._distance),this._segList.addPt(i.p1);break;case bl.CAP_FLAT:this._segList.addPt(r.p1),this._segList.addPt(i.p1);break;case bl.CAP_SQUARE:var u=new bu;u.x=Math.abs(this._distance)*Math.cos(a),u.y=Math.abs(this._distance)*Math.sin(a);var c=new bu(r.p1.x+u.x,r.p1.y+u.y),h=new bu(i.p1.x+u.x,i.p1.y+u.y);this._segList.addPt(c),this._segList.addPt(h)}},Ol.prototype.getCoordinates=function(){return this._segList.getCoordinates()},Ol.prototype.addMitreJoin=function(t,e,n,r){var i=!0,o=null;try{o=Uu.intersection(e.p0,e.p1,n.p0,n.p1);(r<=0?1:o.distance(t)/Math.abs(r))>this._bufParams.getMitreLimit()&&(i=!1)}catch(t){if(!(t instanceof ju))throw t;o=new bu(0,0),i=!1}i?this._segList.addPt(o):this.addLimitedMitreJoin(e,n,r,this._bufParams.getMitreLimit())},Ol.prototype.addFilletCorner=function(t,e,n,r,i){var o=e.x-t.x,s=e.y-t.y,a=Math.atan2(s,o),u=n.x-t.x,c=n.y-t.y,h=Math.atan2(c,u);r===sc.CLOCKWISE?a<=h&&(a+=2*Math.PI):a>=h&&(a-=2*Math.PI),this._segList.addPt(e),this.addFilletArc(t,a,h,r,i),this._segList.addPt(n)},Ol.prototype.addOutsideTurn=function(t,e){if(this._offset0.p1.distance(this._offset1.p0)0){var n=new bu((this._closingSegLengthFactor*this._offset0.p1.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset0.p1.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(n);var r=new bu((this._closingSegLengthFactor*this._offset1.p0.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset1.p0.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(r)}else this._segList.addPt(this._s1);this._segList.addPt(this._offset1.p0)}},Ol.prototype.createCircle=function(t){var e=new bu(t.x+this._distance,t.y);this._segList.addPt(e),this.addFilletArc(t,0,2*Math.PI,-1,this._distance),this._segList.closeRing()},Ol.prototype.addBevelJoin=function(t,e){this._segList.addPt(t.p1),this._segList.addPt(e.p0)},Ol.prototype.init=function(t){this._distance=t,this._maxCurveSegmentError=t*(1-Math.cos(this._filletAngleQuantum/2)),this._segList=new Sl,this._segList.setPrecisionModel(this._precisionModel),this._segList.setMinimumVertexDistance(t*Ol.CURVE_VERTEX_SNAP_DISTANCE_FACTOR)},Ol.prototype.addCollinear=function(t){this._li.computeIntersection(this._s0,this._s1,this._s1,this._s2);this._li.getIntersectionNum()>=2&&(this._bufParams.getJoinStyle()===bl.JOIN_BEVEL||this._bufParams.getJoinStyle()===bl.JOIN_MITRE?(t&&this._segList.addPt(this._offset0.p1),this._segList.addPt(this._offset1.p0)):this.addFilletCorner(this._s1,this._offset0.p1,this._offset1.p0,sc.CLOCKWISE,this._distance))},Ol.prototype.closeRing=function(){this._segList.closeRing()},Ol.prototype.hasNarrowConcaveAngle=function(){return this._hasNarrowConcaveAngle},Ol.prototype.interfaces_=function(){return[]},Ol.prototype.getClass=function(){return Ol},Rl.OFFSET_SEGMENT_SEPARATION_FACTOR.get=function(){return.001},Rl.INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR.get=function(){return.001},Rl.CURVE_VERTEX_SNAP_DISTANCE_FACTOR.get=function(){return 1e-6},Rl.MAX_CLOSING_SEG_LEN_FACTOR.get=function(){return 80},Object.defineProperties(Ol,Rl);var Tl=function(){this._distance=0,this._precisionModel=null,this._bufParams=null;var t=arguments[0],e=arguments[1];this._precisionModel=t,this._bufParams=e};Tl.prototype.getOffsetCurve=function(t,e){if(this._distance=e,0===e)return null;var n=e<0,r=Math.abs(e),i=this.getSegGen(r);t.length<=1?this.computePointCurve(t[0],i):this.computeOffsetCurve(t,n,i);var o=i.getCoordinates();return n&&Cc.reverse(o),o},Tl.prototype.computeSingleSidedBufferCurve=function(t,e,n){var r=this.simplifyTolerance(this._distance);if(e){n.addSegments(t,!0);var i=Nl.simplify(t,-r),o=i.length-1;n.initSideSegments(i[o],i[o-1],Nh.LEFT),n.addFirstSegment();for(var s=o-2;s>=0;s--)n.addNextSegment(i[s],!0)}else{n.addSegments(t,!1);var a=Nl.simplify(t,r),u=a.length-1;n.initSideSegments(a[0],a[1],Nh.LEFT),n.addFirstSegment();for(var c=2;c<=u;c++)n.addNextSegment(a[c],!0)}n.addLastSegment(),n.closeRing()},Tl.prototype.computeRingBufferCurve=function(t,e,n){var r=this.simplifyTolerance(this._distance);e===Nh.RIGHT&&(r=-r);var i=Nl.simplify(t,r),o=i.length-1;n.initSideSegments(i[o-1],i[0],e);for(var s=1;s<=o;s++){var a=1!==s;n.addNextSegment(i[s],a)}n.closeRing()},Tl.prototype.computeLineBufferCurve=function(t,e){var n=this.simplifyTolerance(this._distance),r=Nl.simplify(t,n),i=r.length-1;e.initSideSegments(r[0],r[1],Nh.LEFT);for(var o=2;o<=i;o++)e.addNextSegment(r[o],!0);e.addLastSegment(),e.addLineEndCap(r[i-1],r[i]);var s=Nl.simplify(t,-n),a=s.length-1;e.initSideSegments(s[a],s[a-1],Nh.LEFT);for(var u=a-2;u>=0;u--)e.addNextSegment(s[u],!0);e.addLastSegment(),e.addLineEndCap(s[1],s[0]),e.closeRing()},Tl.prototype.computePointCurve=function(t,e){switch(this._bufParams.getEndCapStyle()){case bl.CAP_ROUND:e.createCircle(t);break;case bl.CAP_SQUARE:e.createSquare(t)}},Tl.prototype.getLineCurve=function(t,e){if(this._distance=e,e<0&&!this._bufParams.isSingleSided())return null;if(0===e)return null;var n=Math.abs(e),r=this.getSegGen(n);if(t.length<=1)this.computePointCurve(t[0],r);else if(this._bufParams.isSingleSided()){var i=e<0;this.computeSingleSidedBufferCurve(t,i,r)}else this.computeLineBufferCurve(t,r);return r.getCoordinates()},Tl.prototype.getBufferParameters=function(){return this._bufParams},Tl.prototype.simplifyTolerance=function(t){return t*this._bufParams.getSimplifyFactor()},Tl.prototype.getRingCurve=function(t,e,n){if(this._distance=n,t.length<=2)return this.getLineCurve(t,n);if(0===n)return Tl.copyCoordinates(t);var r=this.getSegGen(n);return this.computeRingBufferCurve(t,e,r),r.getCoordinates()},Tl.prototype.computeOffsetCurve=function(t,e,n){var r=this.simplifyTolerance(this._distance);if(e){var i=Nl.simplify(t,-r),o=i.length-1;n.initSideSegments(i[o],i[o-1],Nh.LEFT),n.addFirstSegment();for(var s=o-2;s>=0;s--)n.addNextSegment(i[s],!0)}else{var a=Nl.simplify(t,r),u=a.length-1;n.initSideSegments(a[0],a[1],Nh.LEFT),n.addFirstSegment();for(var c=2;c<=u;c++)n.addNextSegment(a[c],!0)}n.addLastSegment()},Tl.prototype.getSegGen=function(t){return new Ol(this._precisionModel,this._bufParams,t)},Tl.prototype.interfaces_=function(){return[]},Tl.prototype.getClass=function(){return Tl},Tl.copyCoordinates=function(t){for(var e=new Array(t.length).fill(null),n=0;ni.getMaxY()||this.findStabbedSegments(t,r.getDirectedEdges(),e)}return e}if(3===arguments.length)if(Lu(arguments[2],wc)&&arguments[0]instanceof bu&&arguments[1]instanceof jh)for(var o=arguments[0],s=arguments[1],a=arguments[2],u=s.getEdge().getCoordinates(),c=0;cthis._seg.p1.y&&this._seg.reverse();if(!(Math.max(this._seg.p0.x,this._seg.p1.x)this._seg.p1.y||sc.computeOrientation(this._seg.p0,this._seg.p1,o)===sc.RIGHT)){var h=s.getDepth(Nh.LEFT);this._seg.p0.equals(u[c])||(h=s.getDepth(Nh.RIGHT));var l=new Fl(this._seg,h);a.add(l)}}else if(Lu(arguments[2],wc)&&arguments[0]instanceof bu&&Lu(arguments[1],wc))for(var p=arguments[0],f=arguments[1],g=arguments[2],d=f.iterator();d.hasNext();){var y=d.next();y.isForward()&&this.findStabbedSegments(p,y,g)}},Al.prototype.getDepth=function(t){var e=this.findStabbedSegments(t);if(0===e.size())return 0;return $h.min(e)._leftDepth},Al.prototype.interfaces_=function(){return[]},Al.prototype.getClass=function(){return Al},Dl.DepthSegment.get=function(){return Fl},Object.defineProperties(Al,Dl);var Fl=function(){this._upwardSeg=null,this._leftDepth=null;var t=arguments[0],e=arguments[1];this._upwardSeg=new gl(t),this._leftDepth=e};Fl.prototype.compareTo=function(t){var e=t;if(this._upwardSeg.minX()>=e._upwardSeg.maxX())return 1;if(this._upwardSeg.maxX()<=e._upwardSeg.minX())return-1;var n=this._upwardSeg.orientationIndex(e._upwardSeg);return 0!==n?n:0!=(n=-1*e._upwardSeg.orientationIndex(this._upwardSeg))?n:this._upwardSeg.compareTo(e._upwardSeg)},Fl.prototype.compareX=function(t,e){var n=t.p0.compareTo(e.p0);return 0!==n?n:t.p1.compareTo(e.p1)},Fl.prototype.toString=function(){return this._upwardSeg.toString()},Fl.prototype.interfaces_=function(){return[xu]},Fl.prototype.getClass=function(){return Fl};var ql=function(t,e,n){this.p0=t||null,this.p1=e||null,this.p2=n||null};ql.prototype.area=function(){return ql.area(this.p0,this.p1,this.p2)},ql.prototype.signedArea=function(){return ql.signedArea(this.p0,this.p1,this.p2)},ql.prototype.interpolateZ=function(t){if(null===t)throw new _u("Supplied point is null.");return ql.interpolateZ(t,this.p0,this.p1,this.p2)},ql.prototype.longestSideLength=function(){return ql.longestSideLength(this.p0,this.p1,this.p2)},ql.prototype.isAcute=function(){return ql.isAcute(this.p0,this.p1,this.p2)},ql.prototype.circumcentre=function(){return ql.circumcentre(this.p0,this.p1,this.p2)},ql.prototype.area3D=function(){return ql.area3D(this.p0,this.p1,this.p2)},ql.prototype.centroid=function(){return ql.centroid(this.p0,this.p1,this.p2)},ql.prototype.inCentre=function(){return ql.inCentre(this.p0,this.p1,this.p2)},ql.prototype.interfaces_=function(){return[]},ql.prototype.getClass=function(){return ql},ql.area=function(t,e,n){return Math.abs(((n.x-t.x)*(e.y-t.y)-(e.x-t.x)*(n.y-t.y))/2)},ql.signedArea=function(t,e,n){return((n.x-t.x)*(e.y-t.y)-(e.x-t.x)*(n.y-t.y))/2},ql.det=function(t,e,n,r){return t*r-e*n},ql.interpolateZ=function(t,e,n,r){var i=e.x,o=e.y,s=n.x-i,a=r.x-i,u=n.y-o,c=r.y-o,h=s*c-a*u,l=t.x-i,p=t.y-o,f=(c*l-a*p)/h,g=(-u*l+s*p)/h;return e.z+f*(n.z-e.z)+g*(r.z-e.z)},ql.longestSideLength=function(t,e,n){var r=t.distance(e),i=e.distance(n),o=n.distance(t),s=r;return i>s&&(s=i),o>s&&(s=o),s},ql.isAcute=function(t,e,n){return!!Ll.isAcute(t,e,n)&&(!!Ll.isAcute(e,n,t)&&!!Ll.isAcute(n,t,e))},ql.circumcentre=function(t,e,n){var r=n.x,i=n.y,o=t.x-r,s=t.y-i,a=e.x-r,u=e.y-i,c=2*ql.det(o,s,a,u),h=ql.det(s,o*o+s*s,u,a*a+u*u),l=ql.det(o,o*o+s*s,a,a*a+u*u);return new bu(r-h/c,i+l/c)},ql.perpendicularBisector=function(t,e){var n=e.x-t.x,r=e.y-t.y,i=new Uu(t.x+n/2,t.y+r/2,1),o=new Uu(t.x-r+n/2,t.y+n+r/2,1);return new Uu(i,o)},ql.angleBisector=function(t,e,n){var r=e.distance(t),i=r/(r+e.distance(n)),o=n.x-t.x,s=n.y-t.y;return new bu(t.x+i*o,t.y+i*s)},ql.area3D=function(t,e,n){var r=e.x-t.x,i=e.y-t.y,o=e.z-t.z,s=n.x-t.x,a=n.y-t.y,u=n.z-t.z,c=i*u-o*a,h=o*s-r*u,l=r*a-i*s,p=c*c+h*h+l*l,f=Math.sqrt(p)/2;return f},ql.centroid=function(t,e,n){var r=(t.x+e.x+n.x)/3,i=(t.y+e.y+n.y)/3;return new bu(r,i)},ql.inCentre=function(t,e,n){var r=e.distance(n),i=t.distance(n),o=t.distance(e),s=r+i+o,a=(r*t.x+i*e.x+o*n.x)/s,u=(r*t.y+i*e.y+o*n.y)/s;return new bu(a,u)};var Gl=function(){this._inputGeom=null,this._distance=null,this._curveBuilder=null,this._curveList=new bc;var t=arguments[0],e=arguments[1],n=arguments[2];this._inputGeom=t,this._distance=e,this._curveBuilder=n};Gl.prototype.addPoint=function(t){if(this._distance<=0)return null;var e=t.getCoordinates(),n=this._curveBuilder.getLineCurve(e,this._distance);this.addCurve(n,Su.EXTERIOR,Su.INTERIOR)},Gl.prototype.addPolygon=function(t){var e=this._distance,n=Nh.LEFT;this._distance<0&&(e=-this._distance,n=Nh.RIGHT);var r=t.getExteriorRing(),i=Cc.removeRepeatedPoints(r.getCoordinates());if(this._distance<0&&this.isErodedCompletely(r,this._distance))return null;if(this._distance<=0&&i.length<3)return null;this.addPolygonRing(i,e,n,Su.EXTERIOR,Su.INTERIOR);for(var o=0;o0&&this.isErodedCompletely(s,-this._distance)||this.addPolygonRing(a,e,Nh.opposite(n),Su.INTERIOR,Su.EXTERIOR)}},Gl.prototype.isTriangleErodedCompletely=function(t,e){var n=new ql(t[0],t[1],t[2]),r=n.inCentre();return sc.distancePointLine(r,n.p0,n.p1)=eh.MINIMUM_VALID_SIZE&&sc.isCCW(t)&&(o=i,s=r,n=Nh.opposite(n));var a=this._curveBuilder.getRingCurve(t,n,e);this.addCurve(a,o,s)},Gl.prototype.add=function(t){if(t.isEmpty())return null;t instanceof $c?this.addPolygon(t):t instanceof Jc?this.addLineString(t):t instanceof Kc?this.addPoint(t):t instanceof th?this.addCollection(t):t instanceof Xc?this.addCollection(t):t instanceof nh?this.addCollection(t):t instanceof jc&&this.addCollection(t)},Gl.prototype.isErodedCompletely=function(t,e){var n=t.getCoordinates();if(n.length<4)return e<0;if(4===n.length)return this.isTriangleErodedCompletely(n,e);var r=t.getEnvelopeInternal(),i=Math.min(r.getHeight(),r.getWidth());return e<0&&2*Math.abs(e)>i},Gl.prototype.addCollection=function(t){for(var e=0;e=this._max)throw new Pi;var t=this._parent.getGeometryN(this._index++);return t instanceof jc?(this._subcollectionIterator=new kl(t),this._subcollectionIterator.next()):t},kl.prototype.remove=function(){throw new Error(this.getClass().getName())},kl.prototype.hasNext=function(){if(this._atStart)return!0;if(null!==this._subcollectionIterator){if(this._subcollectionIterator.hasNext())return!0;this._subcollectionIterator=null}return!(this._index>=this._max)},kl.prototype.interfaces_=function(){return[Ec]},kl.prototype.getClass=function(){return kl},kl.isAtomic=function(t){return!(t instanceof jc)};var zl=function(){this._geom=null;var t=arguments[0];this._geom=t};zl.prototype.locate=function(t){return zl.locate(t,this._geom)},zl.prototype.interfaces_=function(){return[Bl]},zl.prototype.getClass=function(){return zl},zl.isPointInRing=function(t,e){return!!e.getEnvelopeInternal().intersects(t)&&sc.isPointInRing(t,e.getCoordinates())},zl.containsPointInPolygon=function(t,e){if(e.isEmpty())return!1;var n=e.getExteriorRing();if(!zl.isPointInRing(t,n))return!1;for(var r=0;r=0;n--){var r=this._edgeList.get(n),i=r.getSym();null===e&&(e=i),null!==t&&i.setNext(t),t=r}e.setNext(t)},e.prototype.computeDepths=function(){if(1===arguments.length){var t=arguments[0],e=this.findIndex(t),n=t.getDepth(Nh.LEFT),r=t.getDepth(Nh.RIGHT),i=this.computeDepths(e+1,this._edgeList.size(),n);if(this.computeDepths(0,e,i)!==r)throw new Mh("depth mismatch at "+t.getCoordinate())}else if(3===arguments.length){for(var o=arguments[0],s=arguments[1],a=arguments[2],u=o;u=0;i--){var o=this._resultAreaEdgeList.get(i),s=o.getSym();switch(null===e&&o.getEdgeRing()===t&&(e=o),r){case this._SCANNING_FOR_INCOMING:if(s.getEdgeRing()!==t)continue;n=s,r=this._LINKING_TO_OUTGOING;break;case this._LINKING_TO_OUTGOING:if(o.getEdgeRing()!==t)continue;n.setNextMin(o),r=this._SCANNING_FOR_INCOMING}}r===this._LINKING_TO_OUTGOING&&(tc.isTrue(null!==e,"found null for first outgoing dirEdge"),tc.isTrue(e.getEdgeRing()===t,"unable to link last incoming dirEdge"),n.setNextMin(e))},e.prototype.getOutgoingDegree=function(){if(0===arguments.length){for(var t=0,e=this.iterator();e.hasNext();){e.next().isInResult()&&t++}return t}if(1===arguments.length){for(var n=arguments[0],r=0,i=this.iterator();i.hasNext();){i.next().getEdgeRing()===n&&r++}return r}},e.prototype.getLabel=function(){return this._label},e.prototype.findCoveredLineEdges=function(){for(var t=Su.NONE,e=this.iterator();e.hasNext();){var n=e.next(),r=n.getSym();if(!n.isLineEdge()){if(n.isInResult()){t=Su.INTERIOR;break}if(r.isInResult()){t=Su.EXTERIOR;break}}}if(t===Su.NONE)return null;for(var i=t,o=this.iterator();o.hasNext();){var s=o.next(),a=s.getSym();s.isLineEdge()?s.getEdge().setCovered(i===Su.INTERIOR):(s.isInResult()&&(i=Su.EXTERIOR),a.isInResult()&&(i=Su.INTERIOR))}},e.prototype.computeLabelling=function(e){t.prototype.computeLabelling.call(this,e),this._label=new Rh(Su.NONE);for(var n=this.iterator();n.hasNext();)for(var r=n.next().getEdge().getLabel(),i=0;i<2;i++){var o=r.getLocation(i);o!==Su.INTERIOR&&o!==Su.BOUNDARY||this._label.setLocation(i,Su.INTERIOR)}},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(jl),Ul=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createNode=function(t){return new qh(t,new Xl)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(Xh),Yl=function t(){this._pts=null,this._orientation=null;var e=arguments[0];this._pts=e,this._orientation=t.orientation(e)};Yl.prototype.compareTo=function(t){var e=t;return Yl.compareOriented(this._pts,this._orientation,e._pts,e._orientation)},Yl.prototype.interfaces_=function(){return[xu]},Yl.prototype.getClass=function(){return Yl},Yl.orientation=function(t){return 1===Cc.increasingDirection(t)},Yl.compareOriented=function(t,e,n,r){for(var i=e?1:-1,o=r?1:-1,s=e?t.length:-1,a=r?n.length:-1,u=e?0:t.length-1,c=r?0:n.length-1;;){var h=t[u].compareTo(n[c]);if(0!==h)return h;var l=(u+=i)===s,p=(c+=o)===a;if(l&&!p)return-1;if(!l&&p)return 1;if(l&&p)return 0}};var Vl=function(){this._edges=new bc,this._ocaMap=new Gi};Vl.prototype.print=function(t){t.print("MULTILINESTRING ( ");for(var e=0;e0&&t.print(","),t.print("(");for(var r=n.getCoordinates(),i=0;i0&&t.print(","),t.print(r[i].x+" "+r[i].y);t.println(")")}t.print(") ")},Vl.prototype.addAll=function(t){for(var e=t.iterator();e.hasNext();)this.add(e.next())},Vl.prototype.findEdgeIndex=function(t){for(var e=0;e0||!e.coord.equals2D(r);i||n--;var o=new Array(n).fill(null),s=0;o[s++]=new bu(t.coord);for(var a=t.segmentIndex+1;a<=e.segmentIndex;a++)o[s++]=this.edge.pts[a];return i&&(o[s]=e.coord),new ep(o,new Rh(this.edge._label))},Zl.prototype.add=function(t,e,n){var r=new Jl(t,e,n),i=this._nodeMap.get(r);return null!==i?i:(this._nodeMap.put(r,r),r)},Zl.prototype.isIntersection=function(t){for(var e=this.iterator();e.hasNext();){if(e.next().coord.equals(t))return!0}return!1},Zl.prototype.interfaces_=function(){return[]},Zl.prototype.getClass=function(){return Zl};var Kl=function(){};Kl.prototype.getChainStartIndices=function(t){var e=0,n=new bc;n.add(new Tu(e));do{var r=this.findChainEnd(t,e);n.add(new Tu(r)),e=r}while(en?e:n},Ql.prototype.getMinX=function(t){var e=this.pts[this.startIndex[t]].x,n=this.pts[this.startIndex[t+1]].x;return ee&&(r=1),this._depth[t][n]=r}}},$l.prototype.getDelta=function(t){return this._depth[t][Nh.RIGHT]-this._depth[t][Nh.LEFT]},$l.prototype.getLocation=function(t,e){return this._depth[t][e]<=0?Su.EXTERIOR:Su.INTERIOR},$l.prototype.toString=function(){return"A: "+this._depth[0][1]+","+this._depth[0][2]+" B: "+this._depth[1][1]+","+this._depth[1][2]},$l.prototype.add=function(){if(1===arguments.length)for(var t=arguments[0],e=0;e<2;e++)for(var n=1;n<3;n++){var r=t.getLocation(e,n);r!==Su.EXTERIOR&&r!==Su.INTERIOR||(this.isNull(e,n)?this._depth[e][n]=$l.depthAtLocation(r):this._depth[e][n]+=$l.depthAtLocation(r))}else if(3===arguments.length){var i=arguments[0],o=arguments[1];arguments[2]===Su.INTERIOR&&this._depth[i][o]++}},$l.prototype.interfaces_=function(){return[]},$l.prototype.getClass=function(){return $l},$l.depthAtLocation=function(t){return t===Su.EXTERIOR?0:t===Su.INTERIOR?1:$l.NULL_VALUE},tp.NULL_VALUE.get=function(){return-1},Object.defineProperties($l,tp);var ep=function(t){function e(){if(t.call(this),this.pts=null,this._env=null,this.eiList=new Zl(this),this._name=null,this._mce=null,this._isIsolated=!0,this._depth=new $l,this._depthDelta=0,1===arguments.length){var n=arguments[0];e.call(this,n,null)}else if(2===arguments.length){var r=arguments[0],i=arguments[1];this.pts=r,this._label=i}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDepth=function(){return this._depth},e.prototype.getCollapsedEdge=function(){var t=new Array(2).fill(null);t[0]=this.pts[0],t[1]=this.pts[1];return new e(t,Rh.toLineLabel(this._label))},e.prototype.isIsolated=function(){return this._isIsolated},e.prototype.getCoordinates=function(){return this.pts},e.prototype.setIsolated=function(t){this._isIsolated=t},e.prototype.setName=function(t){this._name=t},e.prototype.equals=function(t){if(!(t instanceof e))return!1;var n=t;if(this.pts.length!==n.pts.length)return!1;for(var r=!0,i=!0,o=this.pts.length,s=0;s0?this.pts[0]:null;if(1===arguments.length){var t=arguments[0];return this.pts[t]}},e.prototype.print=function(t){t.print("edge "+this._name+": "),t.print("LINESTRING (");for(var e=0;e0&&t.print(","),t.print(this.pts[e].x+" "+this.pts[e].y);t.print(") "+this._label+" "+this._depthDelta)},e.prototype.computeIM=function(t){e.updateIM(this._label,t)},e.prototype.isCollapsed=function(){return!!this._label.isArea()&&(3===this.pts.length&&!!this.pts[0].equals(this.pts[2]))},e.prototype.isClosed=function(){return this.pts[0].equals(this.pts[this.pts.length-1])},e.prototype.getMaximumSegmentIndex=function(){return this.pts.length-1},e.prototype.getDepthDelta=function(){return this._depthDelta},e.prototype.getNumPoints=function(){return this.pts.length},e.prototype.printReverse=function(t){t.print("edge "+this._name+": ");for(var e=this.pts.length-1;e>=0;e--)t.print(this.pts[e]+" ");t.println("")},e.prototype.getMonotoneChainEdge=function(){return null===this._mce&&(this._mce=new Ql(this)),this._mce},e.prototype.getEnvelope=function(){if(null===this._env){this._env=new Yu;for(var t=0;t0&&t.append(","),t.append(this.pts[e].x+" "+this.pts[e].y);return t.append(") "+this._label+" "+this._depthDelta),t.toString()},e.prototype.isPointwiseEqual=function(t){if(this.pts.length!==t.pts.length)return!1;for(var e=0;er||this._maxyo;if(s)return!1;var a=this.intersectsToleranceSquare(t,e);return tc.isTrue(!(s&&a),"Found bad envelope test"),a},sp.prototype.initCorners=function(t){this._minx=t.x-.5,this._maxx=t.x+.5,this._miny=t.y-.5,this._maxy=t.y+.5,this._corner[0]=new bu(this._maxx,this._maxy),this._corner[1]=new bu(this._minx,this._maxy),this._corner[2]=new bu(this._minx,this._miny),this._corner[3]=new bu(this._maxx,this._miny)},sp.prototype.intersects=function(t,e){return 1===this._scaleFactor?this.intersectsScaled(t,e):(this.copyScaled(t,this._p0Scaled),this.copyScaled(e,this._p1Scaled),this.intersectsScaled(this._p0Scaled,this._p1Scaled))},sp.prototype.scale=function(t){return Math.round(t*this._scaleFactor)},sp.prototype.getCoordinate=function(){return this._originalPt},sp.prototype.copyScaled=function(t,e){e.x=this.scale(t.x),e.y=this.scale(t.y)},sp.prototype.getSafeEnvelope=function(){if(null===this._safeEnv){var t=sp.SAFE_ENV_EXPANSION_FACTOR/this._scaleFactor;this._safeEnv=new Yu(this._originalPt.x-t,this._originalPt.x+t,this._originalPt.y-t,this._originalPt.y+t)}return this._safeEnv},sp.prototype.intersectsPixelClosure=function(t,e){return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),!!this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),!!this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),!!this._li.hasIntersection())))},sp.prototype.intersectsToleranceSquare=function(t,e){var n=!1,r=!1;return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!this._li.isProper()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),!!this._li.isProper()||(this._li.hasIntersection()&&(n=!0),this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),!!this._li.isProper()||(this._li.hasIntersection()&&(r=!0),this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),!!this._li.isProper()||(!(!n||!r)||(!!t.equals(this._pt)||!!e.equals(this._pt))))))},sp.prototype.addSnappedNode=function(t,e){var n=t.getCoordinate(e),r=t.getCoordinate(e+1);return!!this.intersects(n,r)&&(t.addIntersection(this.getCoordinate(),e),!0)},sp.prototype.interfaces_=function(){return[]},sp.prototype.getClass=function(){return sp},ap.SAFE_ENV_EXPANSION_FACTOR.get=function(){return.75},Object.defineProperties(sp,ap);var up=function(){this.tempEnv1=new Yu,this.selectedSegment=new gl};up.prototype.select=function(){if(1===arguments.length);else if(2===arguments.length){var t=arguments[0],e=arguments[1];t.getLineSegment(e,this.selectedSegment),this.select(this.selectedSegment)}},up.prototype.interfaces_=function(){return[]},up.prototype.getClass=function(){return up};var cp=function(){this._index=null;var t=arguments[0];this._index=t},hp={HotPixelSnapAction:{configurable:!0}};cp.prototype.snap=function(){if(1===arguments.length){var t=arguments[0];return this.snap(t,null,-1)}if(3===arguments.length){var e=arguments[0],n=arguments[1],r=arguments[2],i=e.getSafeEnvelope(),o=new lp(e,n,r);return this._index.query(i,{interfaces_:function(){return[Jh]},visitItem:function(t){t.select(i,o)}}),o.isNodeAdded()}},cp.prototype.interfaces_=function(){return[]},cp.prototype.getClass=function(){return cp},hp.HotPixelSnapAction.get=function(){return lp},Object.defineProperties(cp,hp);var lp=function(t){function e(){t.call(this),this._hotPixel=null,this._parentEdge=null,this._hotPixelVertexIndex=null,this._isNodeAdded=!1;var e=arguments[0],n=arguments[1],r=arguments[2];this._hotPixel=e,this._parentEdge=n,this._hotPixelVertexIndex=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isNodeAdded=function(){return this._isNodeAdded},e.prototype.select=function(){if(2!==arguments.length)return t.prototype.select.apply(this,arguments);var e=arguments[0],n=arguments[1],r=e.getContext();if(null!==this._parentEdge&&r===this._parentEdge&&n===this._hotPixelVertexIndex)return null;this._isNodeAdded=this._hotPixel.addSnappedNode(r,n)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(up),pp=function(){this._li=null,this._interiorIntersections=null;var t=arguments[0];this._li=t,this._interiorIntersections=new bc};pp.prototype.processIntersections=function(t,e,n,r){if(t===n&&e===r)return null;var i=t.getCoordinates()[e],o=t.getCoordinates()[e+1],s=n.getCoordinates()[r],a=n.getCoordinates()[r+1];if(this._li.computeIntersection(i,o,s,a),this._li.hasIntersection()&&this._li.isInteriorIntersection()){for(var u=0;u=0;e--){try{t.bufferReducedPrecision(e)}catch(e){if(!(e instanceof Mh))throw e;t._saveException=e}if(null!==t._resultGeometry)return null}throw this._saveException}if(1===arguments.length){var n=arguments[0],r=gp.precisionScaleFactor(this._argGeom,this._distance,n),i=new fh(r);this.bufferFixedPrecision(i)}},gp.prototype.computeGeometry=function(){if(this.bufferOriginalPrecision(),null!==this._resultGeometry)return null;var t=this._argGeom.getFactory().getPrecisionModel();t.getType()===fh.FIXED?this.bufferFixedPrecision(t):this.bufferReducedPrecision()},gp.prototype.setQuadrantSegments=function(t){this._bufParams.setQuadrantSegments(t)},gp.prototype.bufferOriginalPrecision=function(){try{var t=new np(this._bufParams);this._resultGeometry=t.buffer(this._argGeom,this._distance)}catch(t){if(!(t instanceof Qu))throw t;this._saveException=t}},gp.prototype.getResultGeometry=function(t){return this._distance=t,this.computeGeometry(),this._resultGeometry},gp.prototype.setEndCapStyle=function(t){this._bufParams.setEndCapStyle(t)},gp.prototype.interfaces_=function(){return[]},gp.prototype.getClass=function(){return gp},gp.bufferOp=function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];return new gp(t).getResultGeometry(e)}if(3===arguments.length){if(Number.isInteger(arguments[2])&&arguments[0]instanceof cc&&"number"==typeof arguments[1]){var n=arguments[0],r=arguments[1],i=arguments[2],o=new gp(n);o.setQuadrantSegments(i);return o.getResultGeometry(r)}if(arguments[2]instanceof bl&&arguments[0]instanceof cc&&"number"==typeof arguments[1]){var s=arguments[0],a=arguments[1],u=arguments[2];return new gp(s,u).getResultGeometry(a)}}else if(4===arguments.length){var c=arguments[0],h=arguments[1],l=arguments[2],p=arguments[3],f=new gp(c);f.setQuadrantSegments(l),f.setEndCapStyle(p);return f.getResultGeometry(h)}},gp.precisionScaleFactor=function(t,e,n){var r=t.getEnvelopeInternal(),i=Pu.max(Math.abs(r.getMaxX()),Math.abs(r.getMaxY()),Math.abs(r.getMinX()),Math.abs(r.getMinY()))+2*(e>0?e:0),o=n-Math.trunc(Math.log(i)/Math.log(10)+1);return Math.pow(10,o)},dp.CAP_ROUND.get=function(){return bl.CAP_ROUND},dp.CAP_BUTT.get=function(){return bl.CAP_FLAT},dp.CAP_FLAT.get=function(){return bl.CAP_FLAT},dp.CAP_SQUARE.get=function(){return bl.CAP_SQUARE},dp.MAX_PRECISION_DIGITS.get=function(){return 12},Object.defineProperties(gp,dp);var yp=function(){this._pt=[new bu,new bu],this._distance=mu.NaN,this._isNull=!0};yp.prototype.getCoordinates=function(){return this._pt},yp.prototype.getCoordinate=function(t){return this._pt[t]},yp.prototype.setMinimum=function(){if(1===arguments.length){var t=arguments[0];this.setMinimum(t._pt[0],t._pt[1])}else if(2===arguments.length){var e=arguments[0],n=arguments[1];if(this._isNull)return this.initialize(e,n),null;var r=e.distance(n);rthis._distance&&this.initialize(e,n,r)}},yp.prototype.interfaces_=function(){return[]},yp.prototype.getClass=function(){return yp};var _p=function(){};_p.prototype.interfaces_=function(){return[]},_p.prototype.getClass=function(){return _p},_p.computeDistance=function(){if(arguments[2]instanceof yp&&arguments[0]instanceof Jc&&arguments[1]instanceof bu)for(var t=arguments[0],e=arguments[1],n=arguments[2],r=t.getCoordinates(),i=new gl,o=0;o0||this._isIn?Su.INTERIOR:Su.EXTERIOR)},Ip.prototype.interfaces_=function(){return[]},Ip.prototype.getClass=function(){return Ip};var Np=function t(){if(this._component=null,this._segIndex=null,this._pt=null,2===arguments.length){var e=arguments[0],n=arguments[1];t.call(this,e,t.INSIDE_AREA,n)}else if(3===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2];this._component=r,this._segIndex=i,this._pt=o}},Cp={INSIDE_AREA:{configurable:!0}};Np.prototype.isInsideArea=function(){return this._segIndex===Np.INSIDE_AREA},Np.prototype.getCoordinate=function(){return this._pt},Np.prototype.getGeometryComponent=function(){return this._component},Np.prototype.getSegmentIndex=function(){return this._segIndex},Np.prototype.interfaces_=function(){return[]},Np.prototype.getClass=function(){return Np},Cp.INSIDE_AREA.get=function(){return-1},Object.defineProperties(Np,Cp);var Sp=function(t){this._pts=t||null};Sp.prototype.filter=function(t){t instanceof Kc&&this._pts.add(t)},Sp.prototype.interfaces_=function(){return[kc]},Sp.prototype.getClass=function(){return Sp},Sp.getPoints=function(){if(1===arguments.length){var t=arguments[0];return t instanceof Kc?$h.singletonList(t):Sp.getPoints(t,new bc)}if(2===arguments.length){var e=arguments[0],n=arguments[1];return e instanceof Kc?n.add(e):e instanceof jc&&e.apply(new Sp(n)),n}};var Mp=function(){this._locations=null;var t=arguments[0];this._locations=t};Mp.prototype.filter=function(t){(t instanceof Kc||t instanceof Jc||t instanceof $c)&&this._locations.add(new Np(t,0,t.getCoordinate()))},Mp.prototype.interfaces_=function(){return[kc]},Mp.prototype.getClass=function(){return Mp},Mp.getLocations=function(t){var e=new bc;return t.apply(new Mp(e)),e};var Lp=function(){if(this._geom=null,this._terminateDistance=0,this._ptLocator=new Ip,this._minDistanceLocation=null,this._minDistance=mu.MAX_VALUE,2===arguments.length){var t=arguments[0],e=arguments[1];this._geom=[t,e],this._terminateDistance=0}else if(3===arguments.length){var n=arguments[0],r=arguments[1],i=arguments[2];this._geom=new Array(2).fill(null),this._geom[0]=n,this._geom[1]=r,this._terminateDistance=i}};Lp.prototype.computeContainmentDistance=function(){if(0===arguments.length){var t=new Array(2).fill(null);if(this.computeContainmentDistance(0,t),this._minDistance<=this._terminateDistance)return null;this.computeContainmentDistance(1,t)}else if(2===arguments.length){var e=arguments[0],n=arguments[1],r=1-e,i=wp.getPolygons(this._geom[e]);if(i.size()>0){var o=Mp.getLocations(this._geom[r]);if(this.computeContainmentDistance(o,i,n),this._minDistance<=this._terminateDistance)return this._minDistanceLocation[r]=n[0],this._minDistanceLocation[e]=n[1],null}}else if(3===arguments.length)if(arguments[2]instanceof Array&&Lu(arguments[0],wc)&&Lu(arguments[1],wc)){for(var s=arguments[0],a=arguments[1],u=arguments[2],c=0;cthis._minDistance)return null;for(var r=t.getCoordinates(),i=e.getCoordinate(),o=0;othis._minDistance)return null;for(var l=u.getCoordinates(),p=c.getCoordinates(),f=0;fthis._distance&&this.initialize(e,n,r)}},Pp.prototype.interfaces_=function(){return[]},Pp.prototype.getClass=function(){return Pp};var Op=function(){};Op.prototype.interfaces_=function(){return[]},Op.prototype.getClass=function(){return Op},Op.computeDistance=function(){if(arguments[2]instanceof Pp&&arguments[0]instanceof Jc&&arguments[1]instanceof bu)for(var t=arguments[0],e=arguments[1],n=arguments[2],r=new gl,i=t.getCoordinates(),o=0;o1||t<=0)throw new _u("Fraction is not in range (0.0 - 1.0]");this._densifyFrac=t},Rp.prototype.compute=function(t,e){this.computeOrientedDistance(t,e,this._ptDist),this.computeOrientedDistance(e,t,this._ptDist)},Rp.prototype.distance=function(){return this.compute(this._g0,this._g1),this._ptDist.getDistance()},Rp.prototype.computeOrientedDistance=function(t,e,n){var r=new Ap(e);if(t.apply(r),n.setMaximum(r.getMaxPointDistance()),this._densifyFrac>0){var i=new Dp(e,this._densifyFrac);t.apply(i),n.setMaximum(i.getMaxPointDistance())}},Rp.prototype.orientedDistance=function(){return this.computeOrientedDistance(this._g0,this._g1,this._ptDist),this._ptDist.getDistance()},Rp.prototype.interfaces_=function(){return[]},Rp.prototype.getClass=function(){return Rp},Rp.distance=function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];return new Rp(t,e).distance()}if(3===arguments.length){var n=arguments[0],r=arguments[1],i=arguments[2],o=new Rp(n,r);return o.setDensifyFraction(i),o.distance()}},Tp.MaxPointDistanceFilter.get=function(){return Ap},Tp.MaxDensifiedByFractionDistanceFilter.get=function(){return Dp},Object.defineProperties(Rp,Tp);var Ap=function(){this._maxPtDist=new Pp,this._minPtDist=new Pp,this._euclideanDist=new Op,this._geom=null;var t=arguments[0];this._geom=t};Ap.prototype.filter=function(t){this._minPtDist.initialize(),Op.computeDistance(this._geom,t,this._minPtDist),this._maxPtDist.setMaximum(this._minPtDist)},Ap.prototype.getMaxPointDistance=function(){return this._maxPtDist},Ap.prototype.interfaces_=function(){return[pc]},Ap.prototype.getClass=function(){return Ap};var Dp=function(){this._maxPtDist=new Pp,this._minPtDist=new Pp,this._geom=null,this._numSubSegs=0;var t=arguments[0],e=arguments[1];this._geom=t,this._numSubSegs=Math.trunc(Math.round(1/e))};Dp.prototype.filter=function(t,e){if(0===e)return null;for(var n=t.getCoordinate(e-1),r=t.getCoordinate(e),i=(r.x-n.x)/this._numSubSegs,o=(r.y-n.y)/this._numSubSegs,s=0;sn){this._isValid=!1;var i=r.getCoordinates();this._errorLocation=i[1],this._errorIndicator=t.getFactory().createLineString(i),this._errMsg="Distance between buffer curve and input is too large ("+this._maxDistanceFound+" at "+Ku.toLineString(i[0],i[1])+")"}},Fp.prototype.isValid=function(){var t=Math.abs(this._bufDistance),e=Fp.MAX_DISTANCE_DIFF_FRAC*t;return this._minValidDistance=t-e,this._maxValidDistance=t+e,!(!this._input.isEmpty()&&!this._result.isEmpty())||(this._bufDistance>0?this.checkPositiveValid():this.checkNegativeValid(),Fp.VERBOSE&&Xu.out.println("Min Dist= "+this._minDistanceFound+" err= "+(1-this._minDistanceFound/this._bufDistance)+" Max Dist= "+this._maxDistanceFound+" err= "+(this._maxDistanceFound/this._bufDistance-1)),this._isValid)},Fp.prototype.checkNegativeValid=function(){if(!(this._input instanceof $c||this._input instanceof nh||this._input instanceof jc))return null;var t=this.getPolygonLines(this._input);if(this.checkMinimumDistance(t,this._result,this._minValidDistance),!this._isValid)return null;this.checkMaximumDistance(t,this._result,this._maxValidDistance)},Fp.prototype.getErrorIndicator=function(){return this._errorIndicator},Fp.prototype.checkMinimumDistance=function(t,e,n){var r=new Lp(t,e,n);if(this._minDistanceFound=r.distance(),this._minDistanceFound0&&t>e&&(this._isValid=!1,this._errorMsg="Area of positive buffer is smaller than input",this._errorIndicator=this._result),this._distance<0&&t=2?null:this._distance>0?null:(this._result.isEmpty()||(this._isValid=!1,this._errorMsg="Result is non-empty",this._errorIndicator=this._result),void this.report("ExpectedEmpty"))},Gp.prototype.report=function(t){if(!Gp.VERBOSE)return null;Xu.out.println("Check "+t+": "+(this._isValid?"passed":"FAILED"))},Gp.prototype.getErrorMessage=function(){return this._errorMsg},Gp.prototype.interfaces_=function(){return[]},Gp.prototype.getClass=function(){return Gp},Gp.isValidMsg=function(t,e,n){var r=new Gp(t,e,n);return r.isValid()?null:r.getErrorMessage()},Gp.isValid=function(t,e,n){return!!new Gp(t,e,n).isValid()},Bp.VERBOSE.get=function(){return!1},Bp.MAX_ENV_DIFF_FRAC.get=function(){return.012},Object.defineProperties(Gp,Bp);var kp=function(){this._pts=null,this._data=null;var t=arguments[0],e=arguments[1];this._pts=t,this._data=e};kp.prototype.getCoordinates=function(){return this._pts},kp.prototype.size=function(){return this._pts.length},kp.prototype.getCoordinate=function(t){return this._pts[t]},kp.prototype.isClosed=function(){return this._pts[0].equals(this._pts[this._pts.length-1])},kp.prototype.getSegmentOctant=function(t){return t===this._pts.length-1?-1:hl.octant(this.getCoordinate(t),this.getCoordinate(t+1))},kp.prototype.setData=function(t){this._data=t},kp.prototype.getData=function(){return this._data},kp.prototype.toString=function(){return Ku.toLineString(new uh(this._pts))},kp.prototype.interfaces_=function(){return[ll]},kp.prototype.getClass=function(){return kp};var zp=function(){this._findAllIntersections=!1,this._isCheckEndSegmentsOnly=!1,this._li=null,this._interiorIntersection=null,this._intSegments=null,this._intersections=new bc,this._intersectionCount=0,this._keepIntersections=!0;var t=arguments[0];this._li=t,this._interiorIntersection=null};zp.prototype.getInteriorIntersection=function(){return this._interiorIntersection},zp.prototype.setCheckEndSegmentsOnly=function(t){this._isCheckEndSegmentsOnly=t},zp.prototype.getIntersectionSegments=function(){return this._intSegments},zp.prototype.count=function(){return this._intersectionCount},zp.prototype.getIntersections=function(){return this._intersections},zp.prototype.setFindAllIntersections=function(t){this._findAllIntersections=t},zp.prototype.setKeepIntersections=function(t){this._keepIntersections=t},zp.prototype.processIntersections=function(t,e,n,r){if(!this._findAllIntersections&&this.hasIntersection())return null;if(t===n&&e===r)return null;if(this._isCheckEndSegmentsOnly){if(!(this.isEndSegment(t,e)||this.isEndSegment(n,r)))return null}var i=t.getCoordinates()[e],o=t.getCoordinates()[e+1],s=n.getCoordinates()[r],a=n.getCoordinates()[r+1];this._li.computeIntersection(i,o,s,a),this._li.hasIntersection()&&this._li.isInteriorIntersection()&&(this._intSegments=new Array(4).fill(null),this._intSegments[0]=i,this._intSegments[1]=o,this._intSegments[2]=s,this._intSegments[3]=a,this._interiorIntersection=this._li.getIntersection(0),this._keepIntersections&&this._intersections.add(this._interiorIntersection),this._intersectionCount++)},zp.prototype.isEndSegment=function(t,e){return 0===e||e>=t.size()-2},zp.prototype.hasIntersection=function(){return null!==this._interiorIntersection},zp.prototype.isDone=function(){return!this._findAllIntersections&&null!==this._interiorIntersection},zp.prototype.interfaces_=function(){return[Hl]},zp.prototype.getClass=function(){return zp},zp.createAllIntersectionsFinder=function(t){var e=new zp(t);return e.setFindAllIntersections(!0),e},zp.createAnyIntersectionFinder=function(t){return new zp(t)},zp.createIntersectionCounter=function(t){var e=new zp(t);return e.setFindAllIntersections(!0),e.setKeepIntersections(!1),e};var jp=function(){this._li=new rc,this._segStrings=null,this._findAllIntersections=!1,this._segInt=null,this._isValid=!0;var t=arguments[0];this._segStrings=t};jp.prototype.execute=function(){if(null!==this._segInt)return null;this.checkInteriorIntersections()},jp.prototype.getIntersections=function(){return this._segInt.getIntersections()},jp.prototype.isValid=function(){return this.execute(),this._isValid},jp.prototype.setFindAllIntersections=function(t){this._findAllIntersections=t},jp.prototype.checkInteriorIntersections=function(){this._isValid=!0,this._segInt=new zp(this._li),this._segInt.setFindAllIntersections(this._findAllIntersections);var t=new El;if(t.setSegmentIntersector(this._segInt),t.computeNodes(this._segStrings),this._segInt.hasIntersection())return this._isValid=!1,null},jp.prototype.checkValid=function(){if(this.execute(),!this._isValid)throw new Mh(this.getErrorMessage(),this._segInt.getInteriorIntersection())},jp.prototype.getErrorMessage=function(){if(this._isValid)return"no intersections found";var t=this._segInt.getIntersectionSegments();return"found non-noded intersection between "+Ku.toLineString(t[0],t[1])+" and "+Ku.toLineString(t[2],t[3])},jp.prototype.interfaces_=function(){return[]},jp.prototype.getClass=function(){return jp},jp.computeIntersections=function(t){var e=new jp(t);return e.setFindAllIntersections(!0),e.isValid(),e.getIntersections()};var Xp=function t(){this._nv=null;var e=arguments[0];this._nv=new jp(t.toSegmentStrings(e))};Xp.prototype.checkValid=function(){this._nv.checkValid()},Xp.prototype.interfaces_=function(){return[]},Xp.prototype.getClass=function(){return Xp},Xp.toSegmentStrings=function(t){for(var e=new bc,n=t.iterator();n.hasNext();){var r=n.next();e.add(new kp(r.getCoordinates(),r))}return e},Xp.checkValid=function(t){new Xp(t).checkValid()};var Up=function(t){this._mapOp=t};Up.prototype.map=function(t){for(var e=new bc,n=0;n0&&r<4&&!this._preserveType?this._factory.createLineString(n):this._factory.createLinearRing(n)},Hp.prototype.interfaces_=function(){return[]},Hp.prototype.getClass=function(){return Hp};var Wp=function t(){if(this._snapTolerance=0,this._srcPts=null,this._seg=new gl,this._allowSnappingToSourceVertices=!1,this._isClosed=!1,arguments[0]instanceof Jc&&"number"==typeof arguments[1]){var e=arguments[0],n=arguments[1];t.call(this,e.getCoordinates(),n)}else if(arguments[0]instanceof Array&&"number"==typeof arguments[1]){var r=arguments[0],i=arguments[1];this._srcPts=r,this._isClosed=t.isClosed(r),this._snapTolerance=i}};Wp.prototype.snapVertices=function(t,e){for(var n=this._isClosed?t.size()-1:t.size(),r=0;r=0&&t.add(o+1,new bu(i),!1)}},Wp.prototype.findSegmentIndexToSnap=function(t,e){for(var n=mu.MAX_VALUE,r=-1,i=0;ie&&(e=r)}return e}if(2===arguments.length){var i=arguments[0],o=arguments[1];return Math.min(Jp.computeOverlaySnapTolerance(i),Jp.computeOverlaySnapTolerance(o))}},Jp.computeSizeBasedSnapTolerance=function(t){var e=t.getEnvelopeInternal();return Math.min(e.getHeight(),e.getWidth())*Jp.SNAP_PRECISION_FACTOR},Jp.snapToSelf=function(t,e,n){return new Jp(t).snapToSelf(e,n)},Zp.SNAP_PRECISION_FACTOR.get=function(){return 1e-9},Object.defineProperties(Jp,Zp);var Kp=function(t){function e(e,n,r){t.call(this),this._snapTolerance=e||null,this._snapPts=n||null,this._isSelfSnap=void 0!==r&&r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.snapLine=function(t,e){var n=new Wp(t,this._snapTolerance);return n.setAllowSnappingToSourceVertices(this._isSelfSnap),n.snapTo(e)},e.prototype.transformCoordinates=function(t,e){var n=t.toCoordinateArray(),r=this.snapLine(n,this._snapPts);return this._factory.getCoordinateSequenceFactory().create(r)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(Hp),Qp=function(){this._isFirst=!0,this._commonMantissaBitsCount=53,this._commonBits=0,this._commonSignExp=null};Qp.prototype.getCommon=function(){return mu.longBitsToDouble(this._commonBits)},Qp.prototype.add=function(t){var e=mu.doubleToLongBits(t);if(this._isFirst)return this._commonBits=e,this._commonSignExp=Qp.signExpBits(this._commonBits),this._isFirst=!1,null;if(Qp.signExpBits(e)!==this._commonSignExp)return this._commonBits=0,null;this._commonMantissaBitsCount=Qp.numCommonMostSigMantissaBits(this._commonBits,e),this._commonBits=Qp.zeroLowerBits(this._commonBits,64-(12+this._commonMantissaBitsCount))},Qp.prototype.toString=function(){if(1===arguments.length){var t=arguments[0],e=mu.longBitsToDouble(t),n="0000000000000000000000000000000000000000000000000000000000000000"+mu.toBinaryString(t),r=n.substring(n.length-64);return r.substring(0,1)+" "+r.substring(1,12)+"(exp) "+r.substring(12)+" [ "+e+" ]"}},Qp.prototype.interfaces_=function(){return[]},Qp.prototype.getClass=function(){return Qp},Qp.getBit=function(t,e){return 0!=(t&1<>52},Qp.zeroLowerBits=function(t,e){return t&~((1<=0;r--){if(Qp.getBit(t,r)!==Qp.getBit(e,r))return n;n++}return 52};var $p=function(){this._commonCoord=null,this._ccFilter=new ef},tf={CommonCoordinateFilter:{configurable:!0},Translater:{configurable:!0}};$p.prototype.addCommonBits=function(t){var e=new nf(this._commonCoord);t.apply(e),t.geometryChanged()},$p.prototype.removeCommonBits=function(t){if(0===this._commonCoord.x&&0===this._commonCoord.y)return t;var e=new bu(this._commonCoord);e.x=-e.x,e.y=-e.y;var n=new nf(e);return t.apply(n),t.geometryChanged(),t},$p.prototype.getCommonCoordinate=function(){return this._commonCoord},$p.prototype.add=function(t){t.apply(this._ccFilter),this._commonCoord=this._ccFilter.getCommonCoordinate()},$p.prototype.interfaces_=function(){return[]},$p.prototype.getClass=function(){return $p},tf.CommonCoordinateFilter.get=function(){return ef},tf.Translater.get=function(){return nf},Object.defineProperties($p,tf);var ef=function(){this._commonBitsX=new Qp,this._commonBitsY=new Qp};ef.prototype.filter=function(t){this._commonBitsX.add(t.x),this._commonBitsY.add(t.y)},ef.prototype.getCommonCoordinate=function(){return new bu(this._commonBitsX.getCommon(),this._commonBitsY.getCommon())},ef.prototype.interfaces_=function(){return[pc]},ef.prototype.getClass=function(){return ef};var nf=function(){this.trans=null;var t=arguments[0];this.trans=t};nf.prototype.filter=function(t,e){var n=t.getOrdinate(e,0)+this.trans.x,r=t.getOrdinate(e,1)+this.trans.y;t.setOrdinate(e,0,n),t.setOrdinate(e,1,r)},nf.prototype.isDone=function(){return!1},nf.prototype.isGeometryChanged=function(){return!0},nf.prototype.interfaces_=function(){return[zc]},nf.prototype.getClass=function(){return nf};var rf=function(t,e){this._geom=new Array(2).fill(null),this._snapTolerance=null,this._cbr=null,this._geom[0]=t,this._geom[1]=e,this.computeSnapTolerance()};rf.prototype.selfSnap=function(t){return new Jp(t).snapTo(t,this._snapTolerance)},rf.prototype.removeCommonBits=function(t){this._cbr=new $p,this._cbr.add(t[0]),this._cbr.add(t[1]);var e=new Array(2).fill(null);return e[0]=this._cbr.removeCommonBits(t[0].copy()),e[1]=this._cbr.removeCommonBits(t[1].copy()),e},rf.prototype.prepareResult=function(t){return this._cbr.addCommonBits(t),t},rf.prototype.getResultGeometry=function(t){var e=this.snap(this._geom),n=Cf.overlayOp(e[0],e[1],t);return this.prepareResult(n)},rf.prototype.checkValid=function(t){t.isValid()||Xu.out.println("Snapped geometry is invalid")},rf.prototype.computeSnapTolerance=function(){this._snapTolerance=Jp.computeOverlaySnapTolerance(this._geom[0],this._geom[1])},rf.prototype.snap=function(t){var e=this.removeCommonBits(t);return Jp.snap(e[0],e[1],this._snapTolerance)},rf.prototype.interfaces_=function(){return[]},rf.prototype.getClass=function(){return rf},rf.overlayOp=function(t,e,n){return new rf(t,e).getResultGeometry(n)},rf.union=function(t,e){return rf.overlayOp(t,e,Cf.UNION)},rf.intersection=function(t,e){return rf.overlayOp(t,e,Cf.INTERSECTION)},rf.symDifference=function(t,e){return rf.overlayOp(t,e,Cf.SYMDIFFERENCE)},rf.difference=function(t,e){return rf.overlayOp(t,e,Cf.DIFFERENCE)};var of=function(t,e){this._geom=new Array(2).fill(null),this._geom[0]=t,this._geom[1]=e};of.prototype.getResultGeometry=function(t){var e=null,n=!1,r=null;try{e=Cf.overlayOp(this._geom[0],this._geom[1],t);n=!0}catch(t){if(!(t instanceof Qu))throw t;r=t}if(!n)try{e=rf.overlayOp(this._geom[0],this._geom[1],t)}catch(t){throw t instanceof Qu?r:t}return e},of.prototype.interfaces_=function(){return[]},of.prototype.getClass=function(){return of},of.overlayOp=function(t,e,n){return new of(t,e).getResultGeometry(n)},of.union=function(t,e){return of.overlayOp(t,e,Cf.UNION)},of.intersection=function(t,e){return of.overlayOp(t,e,Cf.INTERSECTION)},of.symDifference=function(t,e){return of.overlayOp(t,e,Cf.SYMDIFFERENCE)},of.difference=function(t,e){return of.overlayOp(t,e,Cf.DIFFERENCE)};var sf=function(){this.mce=null,this.chainIndex=null;var t=arguments[0],e=arguments[1];this.mce=t,this.chainIndex=e};sf.prototype.computeIntersections=function(t,e){this.mce.computeIntersectsForChain(this.chainIndex,t.mce,t.chainIndex,e)},sf.prototype.interfaces_=function(){return[]},sf.prototype.getClass=function(){return sf};var af=function t(){if(this._label=null,this._xValue=null,this._eventType=null,this._insertEvent=null,this._deleteEventIndex=null,this._obj=null,2===arguments.length){var e=arguments[0],n=arguments[1];this._eventType=t.DELETE,this._xValue=e,this._insertEvent=n}else if(3===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2];this._eventType=t.INSERT,this._label=r,this._xValue=i,this._obj=o}},uf={INSERT:{configurable:!0},DELETE:{configurable:!0}};af.prototype.isDelete=function(){return this._eventType===af.DELETE},af.prototype.setDeleteEventIndex=function(t){this._deleteEventIndex=t},af.prototype.getObject=function(){return this._obj},af.prototype.compareTo=function(t){var e=t;return this._xValuee._xValue?1:this._eventTypee._eventType?1:0},af.prototype.getInsertEvent=function(){return this._insertEvent},af.prototype.isInsert=function(){return this._eventType===af.INSERT},af.prototype.isSameLabel=function(t){return null!==this._label&&this._label===t._label},af.prototype.getDeleteEventIndex=function(){return this._deleteEventIndex},af.prototype.interfaces_=function(){return[xu]},af.prototype.getClass=function(){return af},uf.INSERT.get=function(){return 1},uf.DELETE.get=function(){return 2},Object.defineProperties(af,uf);var cf=function(){};cf.prototype.interfaces_=function(){return[]},cf.prototype.getClass=function(){return cf};var hf=function(){this._hasIntersection=!1,this._hasProper=!1,this._hasProperInterior=!1,this._properIntersectionPoint=null,this._li=null,this._includeProper=null,this._recordIsolated=null,this._isSelfIntersection=null,this._numIntersections=0,this.numTests=0,this._bdyNodes=null,this._isDone=!1,this._isDoneWhenProperInt=!1;var t=arguments[0],e=arguments[1],n=arguments[2];this._li=t,this._includeProper=e,this._recordIsolated=n};hf.prototype.isTrivialIntersection=function(t,e,n,r){if(t===n&&1===this._li.getIntersectionNum()){if(hf.isAdjacentSegments(e,r))return!0;if(t.isClosed()){var i=t.getNumPoints()-1;if(0===e&&r===i||0===r&&e===i)return!0}}return!1},hf.prototype.getProperIntersectionPoint=function(){return this._properIntersectionPoint},hf.prototype.setIsDoneIfProperInt=function(t){this._isDoneWhenProperInt=t},hf.prototype.hasProperInteriorIntersection=function(){return this._hasProperInterior},hf.prototype.isBoundaryPointInternal=function(t,e){for(var n=e.iterator();n.hasNext();){var r=n.next().getCoordinate();if(t.isIntersection(r))return!0}return!1},hf.prototype.hasProperIntersection=function(){return this._hasProper},hf.prototype.hasIntersection=function(){return this._hasIntersection},hf.prototype.isDone=function(){return this._isDone},hf.prototype.isBoundaryPoint=function(t,e){return null!==e&&(!!this.isBoundaryPointInternal(t,e[0])||!!this.isBoundaryPointInternal(t,e[1]))},hf.prototype.setBoundaryNodes=function(t,e){this._bdyNodes=new Array(2).fill(null),this._bdyNodes[0]=t,this._bdyNodes[1]=e},hf.prototype.addIntersections=function(t,e,n,r){if(t===n&&e===r)return null;this.numTests++;var i=t.getCoordinates()[e],o=t.getCoordinates()[e+1],s=n.getCoordinates()[r],a=n.getCoordinates()[r+1];this._li.computeIntersection(i,o,s,a),this._li.hasIntersection()&&(this._recordIsolated&&(t.setIsolated(!1),n.setIsolated(!1)),this._numIntersections++,this.isTrivialIntersection(t,e,n,r)||(this._hasIntersection=!0,!this._includeProper&&this._li.isProper()||(t.addIntersections(this._li,e,0),n.addIntersections(this._li,r,1)),this._li.isProper()&&(this._properIntersectionPoint=this._li.getIntersection(0).copy(),this._hasProper=!0,this._isDoneWhenProperInt&&(this._isDone=!0),this.isBoundaryPoint(this._li,this._bdyNodes)||(this._hasProperInterior=!0))))},hf.prototype.interfaces_=function(){return[]},hf.prototype.getClass=function(){return hf},hf.isAdjacentSegments=function(t,e){return 1===Math.abs(t-e)};var lf=function(t){function e(){t.call(this),this.events=new bc,this.nOverlaps=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.prepareEvents=function(){$h.sort(this.events);for(var t=0;te||this._maxo?1:0},gf.prototype.interfaces_=function(){return[wu]},gf.prototype.getClass=function(){return gf};var df=function(t){function e(){t.call(this),this._item=null;var e=arguments[0],n=arguments[1],r=arguments[2];this._min=e,this._max=n,this._item=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.query=function(t,e,n){if(!this.intersects(t,e))return null;n.visitItem(this._item)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(pf),yf=function(t){function e(){t.call(this),this._node1=null,this._node2=null;var e=arguments[0],n=arguments[1];this._node1=e,this._node2=n,this.buildExtent(this._node1,this._node2)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.buildExtent=function(t,e){this._min=Math.min(t._min,e._min),this._max=Math.max(t._max,e._max)},e.prototype.query=function(t,e,n){if(!this.intersects(t,e))return null;null!==this._node1&&this._node1.query(t,e,n),null!==this._node2&&this._node2.query(t,e,n)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(pf),_f=function(){this._leaves=new bc,this._root=null,this._level=0};_f.prototype.buildTree=function(){$h.sort(this._leaves,new pf.NodeComparator);for(var t=this._leaves,e=null,n=new bc;;){if(this.buildLevel(t,n),1===n.size())return n.get(0);e=t,t=n,n=e}},_f.prototype.insert=function(t,e,n){if(null!==this._root)throw new Error("Index cannot be added to once it has been queried");this._leaves.add(new df(t,e,n))},_f.prototype.query=function(t,e,n){this.init(),this._root.query(t,e,n)},_f.prototype.buildRoot=function(){if(null!==this._root)return null;this._root=this.buildTree()},_f.prototype.printNode=function(t){Xu.out.println(Ku.toLineString(new bu(t._min,this._level),new bu(t._max,this._level)))},_f.prototype.init=function(){if(null!==this._root)return null;this.buildRoot()},_f.prototype.buildLevel=function(t,e){this._level++,e.clear();for(var n=0;n=2,"found LineString with single point"),this.insertBoundaryPoint(this._argIndex,e[0]),this.insertBoundaryPoint(this._argIndex,e[e.length-1])},e.prototype.getInvalidPoint=function(){return this._invalidPoint},e.prototype.getBoundaryPoints=function(){for(var t=this.getBoundaryNodes(),e=new Array(t.size()).fill(null),n=0,r=t.iterator();r.hasNext();){var i=r.next();e[n++]=i.getCoordinate().copy()}return e},e.prototype.getBoundaryNodes=function(){return null===this._boundaryNodes&&(this._boundaryNodes=this._nodes.getBoundaryNodes(this._argIndex)),this._boundaryNodes},e.prototype.addSelfIntersectionNode=function(t,e,n){if(this.isBoundaryNode(t,e))return null;n===Su.BOUNDARY&&this._useBoundaryDeterminationRule?this.insertBoundaryPoint(t,e):this.insertPoint(t,e,n)},e.prototype.addPolygonRing=function(t,e,n){if(t.isEmpty())return null;var r=Cc.removeRepeatedPoints(t.getCoordinates());if(r.length<4)return this._hasTooFewPoints=!0,this._invalidPoint=r[0],null;var i=e,o=n;sc.isCCW(r)&&(i=n,o=e);var s=new ep(r,new Rh(this._argIndex,Su.BOUNDARY,i,o));this._lineEdgeMap.put(t,s),this.insertEdge(s),this.insertPoint(this._argIndex,r[0],Su.BOUNDARY)},e.prototype.insertPoint=function(t,e,n){var r=this._nodes.addNode(e),i=r.getLabel();null===i?r._label=new Rh(t,n):i.setLocation(t,n)},e.prototype.createEdgeSetIntersector=function(){return new lf},e.prototype.addSelfIntersectionNodes=function(t){for(var e=this._edges.iterator();e.hasNext();)for(var n=e.next(),r=n.getLabel().getLocation(t),i=n.eiList.iterator();i.hasNext();){var o=i.next();this.addSelfIntersectionNode(t,o.coord,r)}},e.prototype.add=function(){if(1!==arguments.length)return t.prototype.add.apply(this,arguments);var e=arguments[0];if(e.isEmpty())return null;if(e instanceof nh&&(this._useBoundaryDeterminationRule=!1),e instanceof $c)this.addPolygon(e);else if(e instanceof Jc)this.addLineString(e);else if(e instanceof Kc)this.addPoint(e);else if(e instanceof th)this.addCollection(e);else if(e instanceof Xc)this.addCollection(e);else if(e instanceof nh)this.addCollection(e);else{if(!(e instanceof jc))throw new Error(e.getClass().getName());this.addCollection(e)}},e.prototype.addCollection=function(t){for(var e=0;e50?(null===this._areaPtLocator&&(this._areaPtLocator=new vf(this._parentGeom)),this._areaPtLocator.locate(t)):this._ptLocator.locate(t,this._parentGeom)},e.prototype.findEdge=function(){if(1===arguments.length){var e=arguments[0];return this._lineEdgeMap.get(e)}return t.prototype.findEdge.apply(this,arguments)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e.determineBoundary=function(t,e){return t.isInBoundary(e)?Su.BOUNDARY:Su.INTERIOR},e}(Uh),If=function(){if(this._li=new rc,this._resultPrecisionModel=null,this._arg=null,1===arguments.length){var t=arguments[0];this.setComputationPrecision(t.getPrecisionModel()),this._arg=new Array(1).fill(null),this._arg[0]=new bf(0,t)}else if(2===arguments.length){var e=arguments[0],n=arguments[1],r=fc.OGC_SFS_BOUNDARY_RULE;e.getPrecisionModel().compareTo(n.getPrecisionModel())>=0?this.setComputationPrecision(e.getPrecisionModel()):this.setComputationPrecision(n.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new bf(0,e,r),this._arg[1]=new bf(1,n,r)}else if(3===arguments.length){var i=arguments[0],o=arguments[1],s=arguments[2];i.getPrecisionModel().compareTo(o.getPrecisionModel())>=0?this.setComputationPrecision(i.getPrecisionModel()):this.setComputationPrecision(o.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new bf(0,i,s),this._arg[1]=new bf(1,o,s)}};If.prototype.getArgGeometry=function(t){return this._arg[t].getGeometry()},If.prototype.setComputationPrecision=function(t){this._resultPrecisionModel=t,this._li.setPrecisionModel(this._resultPrecisionModel)},If.prototype.interfaces_=function(){return[]},If.prototype.getClass=function(){return If};var Nf=function(){};Nf.prototype.interfaces_=function(){return[]},Nf.prototype.getClass=function(){return Nf},Nf.map=function(){if(arguments[0]instanceof cc&&Lu(arguments[1],Nf.MapOp)){for(var t=arguments[0],e=arguments[1],n=new bc,r=0;r=t.size()?null:t.get(e)},Tf.union=function(t){return new Tf(t).union()},Af.STRTREE_NODE_CAPACITY.get=function(){return 4},Object.defineProperties(Tf,Af);var Df=function(){};Df.prototype.interfaces_=function(){return[]},Df.prototype.getClass=function(){return Df},Df.union=function(t,e){if(t.isEmpty()||e.isEmpty()){if(t.isEmpty()&&e.isEmpty())return Cf.createEmptyResult(Cf.UNION,t,e,t.getFactory());if(t.isEmpty())return e.copy();if(e.isEmpty())return t.copy()}return t.checkNotGeometryCollection(t),t.checkNotGeometryCollection(e),of.overlayOp(t,e,Cf.UNION)};var Ff=function(){return new Yi};Yi.prototype={constructor:Yi,reset:function(){this.s=this.t=0},add:function(t){Vi(qf,t,this.t),Vi(this,qf.s,this.s),this.s?this.t+=qf.t:this.s=qf.t},valueOf:function(){return this.s}};var qf=new Yi,Gf=1e-6,Bf=Math.PI,kf=Bf/2,zf=Bf/4,jf=2*Bf,Xf=180/Bf,Uf=Bf/180,Yf=Math.abs,Vf=Math.atan,Hf=Math.atan2,Wf=Math.cos,Jf=Math.exp,Zf=Math.log,Kf=Math.sin,Qf=Math.sqrt,$f=Math.tan,tg={Feature:function(t,e){Ji(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r2?t[2]*Uf:0),e.invert=function(e){return e=t.invert(e[0]*Uf,e[1]*Uf),e[0]*=Xf,e[1]*=Xf,e},e},og=function(){var t,e=[];return{point:function(e,n){t.push([e,n])},lineStart:function(){e.push(t=[])},lineEnd:Wi,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var n=e;return e=[],t=null,n}}},sg=function(t,e,n,r,i,o){var s,a=t[0],u=t[1],c=0,h=1,l=e[0]-a,p=e[1]-u;if(s=n-a,l||!(s>0)){if(s/=l,l<0){if(s0){if(s>h)return;s>c&&(c=s)}if(s=i-a,l||!(s<0)){if(s/=l,l<0){if(s>h)return;s>c&&(c=s)}else if(l>0){if(s0)){if(s/=p,p<0){if(s0){if(s>h)return;s>c&&(c=s)}if(s=o-u,p||!(s<0)){if(s/=p,p<0){if(s>h)return;s>c&&(c=s)}else if(p>0){if(s0&&(t[0]=a+c*l,t[1]=u+c*p),h<1&&(e[0]=a+h*l,e[1]=u+h*p),!0}}}}},ag=function(t,e){return Yf(t[0]-e[0])=0;--o)i.point((h=c[o])[0],h[1]);else r(p.x,p.p.x,-1,i);p=p.p}c=(p=p.o).z,f=!f}while(!p.v);i.lineEnd()}}},cg=function(t,e){return te?1:t>=e?0:NaN},hg=(function(t){1===t.length&&(t=function(t){return function(e,n){return cg(t(e),n)}}(t))}(cg),function(t){for(var e,n,r,i=t.length,o=-1,s=0;++o=0;)for(e=(r=t[i]).length;--e>=0;)n[--s]=r[e];return n}),lg=1e9,pg=-lg,fg=Ff(),gg=(Ff(),function(t){return t}),dg=(Ff(),Ff(),1/0),yg=dg,_g=-dg,mg=_g,vg={point:function(t,e){t_g&&(_g=t),emg&&(mg=e)},lineStart:Wi,lineEnd:Wi,polygonStart:Wi,polygonEnd:Wi,result:function(){var t=[[dg,yg],[_g,mg]];return _g=mg=-(yg=dg=1/0),t}},xg=(Ff(),function(t,e,n,r){return function(i,o){function s(e,n){var r=i(e,n);t(e=r[0],n=r[1])&&o.point(e,n)}function a(t,e){var n=i(t,e);y.point(n[0],n[1])}function u(){E.point=a,y.lineStart()}function c(){E.point=s,y.lineEnd()}function h(t,e){d.push([t,e]);var n=i(t,e);v.point(n[0],n[1])}function l(){v.lineStart(),d=[]}function p(){h(d[0][0],d[0][1]),v.lineEnd();var t,e,n,r,i=v.clean(),s=m.result(),a=s.length;if(d.pop(),f.push(d),d=null,a)if(1&i){if(n=s[0],(e=n.length-1)>0){for(x||(o.polygonStart(),x=!0),o.lineStart(),t=0;t1&&2&i&&s.push(s.pop().concat(s.shift())),g.push(s.filter(go))}var f,g,d,y=e(o),_=i.invert(r[0],r[1]),m=og(),v=e(m),x=!1,E={point:s,lineStart:u,lineEnd:c,polygonStart:function(){E.point=h,E.lineStart=l,E.lineEnd=p,g=[],f=[]},polygonEnd:function(){E.point=s,E.lineStart=u,E.lineEnd=c,g=hg(g);var t=function(t,e){var n=e[0],r=e[1],i=[Kf(n),-Wf(n),0],o=0,s=0;fg.reset();for(var a=0,u=t.length;a=0?1:-1,I=b*w,N=I>Bf,C=g*x;if(fg.add(Hf(C*b*Kf(I),d*E+C*Wf(I))),o+=N?w+b*jf:w,N^p>=n^m>=n){var S=eo($i(l),$i(_));io(S);var M=eo(i,S);io(M);var L=(N^w>=0?-1:1)*Hi(M[2]);(r>L||r===L&&(S[0]||S[1]))&&(s+=N^w>=0?1:-1)}}return(o<-Gf||o0?Bf:-Bf,u=Yf(o-n);Yf(u-Bf)0?kf:-kf),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),t.point(o,r),e=0):i!==a&&u>=Bf&&(Yf(n-i)Gf?Vf((Kf(e)*(o=Wf(r))*Kf(n)-Kf(r)*(i=Wf(e))*Kf(t))/(i*o*s)):(e+r)/2}(n,r,o,s),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),e=0),t.point(n=o,r=s),i=a},lineEnd:function(){t.lineEnd(),n=r=NaN},clean:function(){return 2-e}}},function(t,e,n,r){var i;if(null==t)i=n*kf,r.point(-Bf,i),r.point(0,i),r.point(Bf,i),r.point(Bf,0),r.point(Bf,-i),r.point(0,-i),r.point(-Bf,-i),r.point(-Bf,0),r.point(-Bf,i);else if(Yf(t[0]-e[0])>Gf){var o=t[0]o}function r(t,e,n){var r=[1,0,0],i=eo($i(t),$i(e)),s=to(i,i),a=i[0],u=s-a*a;if(!u)return!n&&t;var c=o*s/u,h=-o*a/u,l=eo(r,i),p=ro(r,c);no(p,ro(i,h));var f=l,g=to(p,f),d=to(f,f),y=g*g-d*(to(p,p)-1);if(!(y<0)){var _=Qf(y),m=ro(f,(-g-_)/d);if(no(m,p),m=Qi(m),!n)return m;var v,x=t[0],E=e[0],w=t[1],b=e[1];E0^m[1]<(Yf(m[0]-x)Bf^(x<=m[0]&&m[0]<=E)){var C=ro(f,(-g+_)/d);return no(C,p),[m,Qi(C)]}}}function i(e,n){var r=s?t:Bf-t,i=0;return e<-r?i|=1:e>r&&(i|=2),n<-r?i|=4:n>r&&(i|=8),i}var o=Wf(t),s=o>0,a=Yf(o)>Gf;return xg(n,function(t){var e,o,u,c,h;return{lineStart:function(){c=u=!1,h=1},point:function(l,p){var f,g=[l,p],d=n(l,p),y=s?d?0:i(l,p):d?i(l+(l<0?Bf:-Bf),p):0;if(!e&&(c=u=d)&&t.lineStart(),d!==u&&(!(f=r(e,g))||ag(e,f)||ag(g,f))&&(g[0]+=Gf,g[1]+=Gf,d=n(g[0],g[1])),d!==u)h=0,d?(t.lineStart(),f=r(g,e),t.point(f[0],f[1])):(f=r(e,g),t.point(f[0],f[1]),t.lineEnd()),e=f;else if(a&&e&&s^d){var _;y&o||!(_=r(g,e,!0))||(h=0,s?(t.lineStart(),t.point(_[0][0],_[0][1]),t.point(_[1][0],_[1][1]),t.lineEnd()):(t.point(_[1][0],_[1][1]),t.lineEnd(),t.lineStart(),t.point(_[0][0],_[0][1])))}!d||e&&ag(e,g)||t.point(g[0],g[1]),e=g,u=d,o=y},lineEnd:function(){u&&t.lineEnd(),e=null},clean:function(){return h|(c&&u)<<1}}},function(n,r,i,o){!function(t,e,n,r,i,o){if(n){var s=Wf(e),a=Kf(e),u=r*n;null==i?(i=e+r*jf,o=e-u/2):(i=ho(s,i),o=ho(s,o),(r>0?io)&&(i+=r*jf));for(var c,h=i;r>0?h>o:h4*e&&d--){var x=s+p,E=a+f,w=u+g,b=Qf(x*x+E*E+w*w),I=Hi(w/=b),N=Yf(Yf(w)-1)e||Yf((_*L+m*P)/v-.5)>.3||s*p+a*f+u*g2?t[2]+90:90]):(t=n(),[t[0],t[1],t[2]-90])},n([0,0,90]).scale(159.155)};t.projection=Cs,t.random=gu,t.clusters=du,t.helpers=ko,t.invariant=jo,t.meta=zo,t.isolines=function(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.zProperty||"elevation",i=n.commonProperties||{},o=n.breaksProperties||[];if(W(t,"Point","Input must contain Points"),!e)throw new Error("breaks is required");if(!Array.isArray(e))throw new Error("breaks must be an Array");if(!I(i))throw new Error("commonProperties must be an Object");if(!Array.isArray(o))throw new Error("breaksProperties must be an Array");var s=rt(t,{zProperty:r,flip:!0});return c(function(t,e,n){var r=j(n),i=r[2]-r[0],o=r[3]-r[1],s=r[0],a=r[1],u=e[0].length-1,c=e.length-1,h=i/u,l=o/c,p=function(t){t[0]=t[0]*h+s,t[1]=t[1]*l+a};return t.forEach(function(t){S(t,p)}),t}(function(t,e,n,r,i){for(var o=[],s=1;ss;)r=Math.floor((o+1)*Math.random()),n=i[r],i[r]=i[o],i[o]=n;return i.slice(s)}(t.features,e))},t.envelope=he,t.square=le,t.circle=fe,t.midpoint=function(t,e){return pe(t,qt(t,e)/2,ge(t,e))},t.center=de,t.centerOfMass=_e,t.centroid=ye,t.combine=function(t){function n(t,e,n){n?r[e].coordinates=r[e].coordinates.concat(t.geometry.coordinates):r[e].coordinates.push(t.geometry.coordinates),r[e].properties.push(t.properties)}var r={MultiPoint:{coordinates:[],properties:[]},MultiLineString:{coordinates:[],properties:[]},MultiPolygon:{coordinates:[],properties:[]}},i=Object.keys(r).reduce(function(t,e){return t[e.replace("Multi","")]=e,t},{});return O(t,function(t){t.geometry&&(r[t.geometry.type]?n(t,t.geometry.type,!0):i[t.geometry.type]&&n(t,i[t.geometry.type],!1))}),c(Object.keys(r).filter(function(t){return r[t].coordinates.length}).sort().map(function(t){return e({type:t,coordinates:r[t].coordinates},{collectedProperties:r[t].properties})}))},t.distance=qt,t.explode=me,t.bbox=j,t.tesselate=function(t){if(!t.geometry||"Polygon"!==t.geometry.type&&"MultiPolygon"!==t.geometry.type)throw new Error("input must be a Polygon or MultiPolygon");var e={type:"FeatureCollection",features:[]};return"Polygon"===t.geometry.type?e.features=De(t.geometry.coordinates):t.geometry.coordinates.forEach(function(t){e.features=e.features.concat(De(t))}),e},t.bboxPolygon=ce,t.booleanPointInPolygon=Pt,t.nearestPoint=Fe,t.nearestPointOnLine=on,t.nearestPointToLine=function(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.units,i=n.properties||{};if(!t)throw new Error("points is required");if(!(t=function(t){var e=[];switch(t.geometry?t.geometry.type:t.type){case"GeometryCollection":return A(t,function(t){"Point"===t.type&&e.push({type:"Feature",properties:{},geometry:t})}),{type:"FeatureCollection",features:e};case"FeatureCollection":return t.features=t.features.filter(function(t){return"Point"===t.geometry.type}),t;default:throw new Error("points must be a Point Collection")}}(t)).features.length)throw new Error("points must contain features");if(!e)throw new Error("line is required");if("LineString"!==K(e))throw new Error("line must be a LineString");var o=1/0,s=null;return O(t,function(t){var n=gn(t,e,{units:r});n=0&&c<=1&&(f.onLine1=!0),h>=0&&h<=1&&(f.onLine2=!0),!(!f.onLine1||!f.onLine2)&&[f.x,f.y])}(t[n][0],t[n][1],t[n+1][0],t[n+1][1],e[o][0],e[o][1],e[o+1][0],e[o+1][1]);s&&i.features.push(r([s[0],s[1]]))}})}),i},t.pointOnFeature=yn,t.area=mn,t.along=function(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var i;if("Feature"===t.type)i=t.geometry.coordinates;else{if("LineString"!==t.type)throw new Error("input must be a LineString Feature or Geometry");i=t.coordinates}if(!b(e))throw new Error("distance must be a number");for(var o=0,s=0;s=o&&s===i.length-1);s++){if(o>=e){var a=e-o;if(a){var u=ge(i[s],i[s-1])-180;return pe(i[s],a,u,n)}return r(i[s])}o+=qt(i[s],i[s+1],n)}return r(i[i.length-1])},t.length=bn,t.lineSlice=function(t,e,n){var r=U(n);if("LineString"!==K(n))throw new Error("line must be a LineString");for(var i,o=on(n,t),s=on(n,e),u=[(i=o.properties.index<=s.properties.index?[o,s]:[s,o])[0].geometry.coordinates],c=i[0].properties.index+1;c is required");if("boolean"!=typeof n)throw new Error(" must be a boolean");if("boolean"!=typeof r)throw new Error(" must be a boolean");!1===r&&(t=Gt(t));var i=[];switch(t.type){case"GeometryCollection":return A(t,function(t){sr(t,n)}),t;case"FeatureCollection":return O(t,function(t){O(sr(t,n),function(t){i.push(t)})}),c(i)}return sr(t,n)},t.isobands=function(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.zProperty||"elevation",i=n.commonProperties||{},s=n.breaksProperties||[];if(W(t,"Point","Input must contain Points"),!e)throw new Error("breaks is required");if(!Array.isArray(e))throw new Error("breaks is not an Array");if(!I(i))throw new Error("commonProperties is not an Object");if(!Array.isArray(s))throw new Error("breaksProperties is not an Array");var a=cr(t,{zProperty:r,flip:!0}),u=function(t,e,n){for(var r=[],i=1;i0}(t,e);case"Polygon":return!br(e,t)}break;case"Polygon":switch(e.type){case"Point":return!Pt(e,t);case"LineString":return!br(t,e);case"Polygon":return!function(t,e){for(var n=0;n0)for(var n=0;n0))throw new Error("Invalid maxDistance");if(!(void 0===r||null===r||Math.sign(r)>0))throw new Error("Invalid minPoints");t=Gt(t),r=r||3;var o=new Ha.DBSCAN,s=-1;return o.run(T(t),E(e,i),r,qt).forEach(function(e){s++,e.forEach(function(e){var n=t.features[e];n.properties||(n.properties={}),n.properties.cluster=s,n.properties.dbscan="core"})}),o.noise.forEach(function(e){var n=t.features[e];n.properties||(n.properties={}),n.properties.cluster?n.properties.dbscan="edge":n.properties.dbscan="noise"}),t},t.clustersKmeans=function(t,e){if("object"!=typeof(e=e||{}))throw new Error("options is invalid");var n=e.numberOfClusters,r=e.mutate;W(t,"Point","Input must contain Points");var i=t.features.length;(n=n||Math.round(Math.sqrt(i/2)))>i&&(n=i),!1!==r&&void 0!==r||(t=Gt(t));var o=T(t),s=o.slice(0,n),a=eu(o,n,s),u={};return a.centroids.forEach(function(t,e){u[e]=t}),O(t,function(t,e){var n=a.idxs[e];t.properties.cluster=n,t.properties.centroid=u[n]}),t},t.pointToLineDistance=gn,t.booleanParallel=function(t,e){if(!t)throw new Error("line1 is required");if(!e)throw new Error("line2 is required");if("LineString"!==Dr(t,"line1"))throw new Error("line1 must be a LineString");if("LineString"!==Dr(e,"line2"))throw new Error("line2 must be a LineString");for(var n=en(te(t)).features,r=en(te(e)).features,i=0;i=d;){for(var T=[],A=[],D=g+w,F=0;D<=y;){var q=r([D,O]),G=function(t,e){for(var n=0;n0&&0!==e)if(e>o[o.length-1])e-=o.length;else{var r=Po(e,o);0!==r&&(e-=r)}if(e!==+u){var l=i[e];l&&c&&(void 0!==n&&l.properties[n]!==c.properties[n]||Tr(c,l)&&function(t,e){var n=a(T(t)),r=a(T(e));return nn(n,r).features.length>0}(c,l)&&(i[u]=Mo(c,l),o.push(t.properties.origIndexPosition),o.sort(function(t,e){return t-e}),s.remove(t),i.splice(e,1),c.properties.origIndexPosition=u,s.remove(c,function(t,e){return t.properties.origIndexPosition===e.properties.origIndexPosition}),h=!0))}}),h){if(!c)continue;c.properties.origIndexPosition=u,s.insert(c),u--}}return i.forEach(function(t){delete t.properties.origIndexPosition,delete t.bbox}),r},t.hexGrid=Oo,t.mask=function(t,e){var n=function(t){return o(t&&t.geometry.coordinates||[[[180,90],[-180,90],[-180,-90],[180,-90],[180,90]]])}(e),r=function(t){var e=[],n=[];return F(t,function(t){var r=t.geometry.coordinates,i=r[0],s=r.slice(1);e.push(o([i])),s.forEach(function(t){n.push(o([t]))})}),[c(e),c(n)]}(t),i=r[0],s=r[1];return function(t,e,n){var r=[];return r.push(t.geometry.coordinates[0]),F(e,function(t){r.push(t.geometry.coordinates[0])}),F(n,function(t){r.push(t.geometry.coordinates[0])}),o(r)}(n,i=Ro(i),s=Ro(s))},t.squareGrid=Ao,t.triangleGrid=Do,t.interpolate=function(t,e,n){if("object"!=typeof(n=n||{}))throw new Error("options is invalid");var r=n.gridType,i=n.property,o=n.weight;if(!t)throw new Error("points is required");if(W(t,"Point","input must contain Points"),!e)throw new Error("cellSize is required");if(void 0!==o&&"number"!=typeof o)throw new Error("weight must be a number");i=i||"elevation",r=r||"square",o=o||1;var s,a=j(t);switch(r){case"point":case"points":s=Ln(a,e,n);break;case"square":case"squares":s=Ao(a,e,n);break;case"hex":case"hexes":s=Oo(a,e,n);break;case"triangle":case"triangles":s=Do(a,e,n);break;default:throw new Error("invalid gridType")}var u=[];return O(s,function(e){var s=0,a=0;O(t,function(t){var u,c=qt("point"===r?e:ye(e),t,n);if(void 0!==i&&(u=t.properties[i]),void 0===u&&(u=t.geometry.coordinates[2]),void 0===u)throw new Error("zValue is missing");0===c&&(s=u);var h=1/Math.pow(c,o);a+=h,s+=h*u});var c=Gt(e);c.properties[i]=s/a,u.push(c)}),c(u)},t.pointOnSurface=yn,t.polygonToLineString=kn,t.lineStringToPolygon=jn,t.inside=Pt,t.within=Rt,t.bezier=ue,t.nearest=Fe,t.pointOnLine=on,t.lineDistance=bn,t.radians2degrees=v,t.degrees2radians=x,t.distanceToDegrees=_,t.distanceToRadians=y,t.radiansToDistance=d,t.bearingToAngle=m,t.convertDistance=E,t.toMercator=cn,t.toWgs84=hn,t.randomPosition=_i,t.randomPoint=mi,t.randomPolygon=vi,t.randomLineString=xi,t.getCluster=wi,t.clusterEach=bi,t.clusterReduce=Ii,t.createBins=Ni,t.applyFilter=Ci,t.propertiesContainsFilter=Si,t.filterProperties=Mi,t.earthRadius=Fo,t.factors=qo,t.unitsFactors=Go,t.areaFactors=Bo,t.feature=e,t.geometry=n,t.point=r,t.points=i,t.polygon=o,t.polygons=s,t.lineString=a,t.lineStrings=u,t.featureCollection=c,t.multiLineString=h,t.multiPoint=l,t.multiPolygon=p,t.geometryCollection=f,t.round=g,t.radiansToLength=d,t.lengthToRadians=y,t.lengthToDegrees=_,t.bearingToAzimuth=m,t.radiansToDegrees=v,t.degreesToRadians=x,t.convertLength=E,t.convertArea=w,t.isNumber=b,t.isObject=I,t.validateBBox=N,t.validateId=C,t.getCoord=X,t.getCoords=U,t.containsNumber=Y,t.geojsonType=V,t.featureOf=H,t.collectionOf=W,t.getGeom=J,t.getGeomType=Z,t.getType=K,t.coordEach=S,t.coordReduce=M,t.propEach=L,t.propReduce=P,t.featureEach=O,t.featureReduce=R,t.coordAll=T,t.geomEach=A,t.geomReduce=D,t.flattenEach=F,t.flattenReduce=q,t.segmentEach=G,t.segmentReduce=B,t.lineEach=k,t.lineReduce=z,Object.defineProperty(t,"__esModule",{value:!0})}); /***/ }), -/* 303 */ +/* 304 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2330,16 +2330,16 @@ module.exports = invariant; /***/ }), -/* 304 */ +/* 305 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var constants = __webpack_require__(404); -var client = __webpack_require__(405); -var getUser = __webpack_require__(352); +var invariant = __webpack_require__(304); +var constants = __webpack_require__(405); +var client = __webpack_require__(406); +var getUser = __webpack_require__(353); /** * Services all have the same constructor pattern: you initialize them @@ -2393,9 +2393,9 @@ module.exports = makeService; /***/ }), -/* 305 */, /* 306 */, -/* 307 */ +/* 307 */, +/* 308 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2410,10 +2410,10 @@ module.exports = makeService; var defaultClient, mixin, responsePromise, client; -defaultClient = __webpack_require__(344); -mixin = __webpack_require__(313); -responsePromise = __webpack_require__(320); -client = __webpack_require__(319); +defaultClient = __webpack_require__(345); +mixin = __webpack_require__(314); +responsePromise = __webpack_require__(321); +client = __webpack_require__(320); /** * Interceptors have the ability to intercept the request and/org response @@ -2547,14 +2547,14 @@ module.exports = interceptor; /***/ }), -/* 308 */, -/* 309 */ +/* 309 */, +/* 310 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var corslite = __webpack_require__(399), +var corslite = __webpack_require__(400), strict = __webpack_require__(81).strict, config = __webpack_require__(85); @@ -2587,7 +2587,7 @@ module.exports = function(url, callback) { /***/ }), -/* 310 */ +/* 311 */ /***/ (function(module, exports) { /** @@ -3134,14 +3134,14 @@ module.exports = { /***/ }), -/* 311 */, -/* 312 */ +/* 312 */, +/* 313 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var request = __webpack_require__(309), +var request = __webpack_require__(310), format_url = __webpack_require__(83), util = __webpack_require__(81); @@ -3166,7 +3166,7 @@ module.exports = { /***/ }), -/* 313 */ +/* 314 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3210,10 +3210,10 @@ module.exports = mixin; /***/ }), -/* 314 */, /* 315 */, /* 316 */, -/* 317 */ +/* 317 */, +/* 318 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3232,7 +3232,7 @@ module.exports = new Feedback(); /***/ }), -/* 318 */ +/* 319 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3241,7 +3241,7 @@ module.exports = new Feedback(); // Installs ES6 Promise polyfill if a native Promise is not available if (typeof Promise === 'undefined') { - __webpack_require__(406).polyfill(); + __webpack_require__(407).polyfill(); } module.export = Promise; @@ -3249,7 +3249,7 @@ module.export = Promise; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7)(module))) /***/ }), -/* 319 */ +/* 320 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3310,7 +3310,7 @@ module.exports = function client(impl, target) { /***/ }), -/* 320 */ +/* 321 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3325,7 +3325,7 @@ module.exports = function client(impl, target) { /*jshint latedef: nofunc */ -var normalizeHeaderName = __webpack_require__(345); +var normalizeHeaderName = __webpack_require__(346); function property(promise, name) { return promise.then( @@ -3451,7 +3451,7 @@ module.exports = responsePromise; /***/ }), -/* 321 */ +/* 322 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3466,7 +3466,7 @@ module.exports = responsePromise; var uriEncoder, operations, prefixRE; -uriEncoder = __webpack_require__(414); +uriEncoder = __webpack_require__(415); prefixRE = /^([^:]*):([0-9]+)$/; operations = { @@ -3618,13 +3618,13 @@ module.exports = { /***/ }), -/* 322 */ +/* 323 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariantLocation = __webpack_require__(323); +var invariantLocation = __webpack_require__(324); /** * Format waypionts in a way that's friendly to the directions and surface @@ -3647,13 +3647,13 @@ module.exports = formatPoints; /***/ }), -/* 323 */ +/* 324 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); +var invariant = __webpack_require__(304); /** * Given an object that should be a location, ensure that it has @@ -3677,7 +3677,7 @@ module.exports = invariantLocation; /***/ }), -/* 324 */ +/* 325 */ /***/ (function(module, exports) { /** @@ -3890,7 +3890,6 @@ module.exports = { /***/ }), -/* 325 */, /* 326 */, /* 327 */, /* 328 */, @@ -3898,7 +3897,8 @@ module.exports = { /* 330 */, /* 331 */, /* 332 */, -/* 333 */ +/* 333 */, +/* 334 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/* @@ -13075,17 +13075,17 @@ L.Map.include({ }(window, document)); /***/ }), -/* 334 */ +/* 335 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isArray = __webpack_require__(398), +var isArray = __webpack_require__(399), util = __webpack_require__(81), format_url = __webpack_require__(83), - feedback = __webpack_require__(317), - request = __webpack_require__(309); + feedback = __webpack_require__(318), + request = __webpack_require__(310); // Low-level geocoding interface - wraps specific API calls and their // return values. @@ -13224,14 +13224,14 @@ module.exports = function(url, options) { /***/ }), -/* 335 */ +/* 336 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(81), - Mustache = __webpack_require__(336); + Mustache = __webpack_require__(337); var GridControl = L.Control.extend({ @@ -13429,7 +13429,7 @@ module.exports.gridControl = function(_, options) { /***/ }), -/* 336 */ +/* 337 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @@ -14067,7 +14067,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 337 */ +/* 338 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14075,9 +14075,9 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ var util = __webpack_require__(81), format_url = __webpack_require__(83), - request = __webpack_require__(309), + request = __webpack_require__(310), marker = __webpack_require__(84), - simplestyle = __webpack_require__(338); + simplestyle = __webpack_require__(339); // # featureLayer // @@ -14201,7 +14201,7 @@ module.exports.featureLayer = function(_, options) { /***/ }), -/* 338 */ +/* 339 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14253,7 +14253,7 @@ module.exports = { /***/ }), -/* 339 */ +/* 340 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14327,7 +14327,7 @@ module.exports.legendControl = function(options) { /***/ }), -/* 340 */ +/* 341 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14336,7 +14336,7 @@ module.exports.legendControl = function(options) { var format_url = __webpack_require__(83); var ShareControl = L.Control.extend({ - includes: [__webpack_require__(312)], + includes: [__webpack_require__(313)], options: { position: 'topleft', @@ -14455,7 +14455,7 @@ module.exports.shareControl = function(_, options) { /***/ }), -/* 341 */ +/* 342 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14465,7 +14465,7 @@ var util = __webpack_require__(81); var formatPattern = /\.((?:png|jpg)\d*)(?=$|\?)/; var TileLayer = L.TileLayer.extend({ - includes: [__webpack_require__(312)], + includes: [__webpack_require__(313)], options: { sanitizer: __webpack_require__(82) @@ -14560,7 +14560,7 @@ module.exports.tileLayer = function(_, options) { /***/ }), -/* 342 */ +/* 343 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14682,19 +14682,19 @@ module.exports.infoControl = function(options) { /***/ }), -/* 343 */ +/* 344 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(81), - request = __webpack_require__(309), - grid = __webpack_require__(401); + request = __webpack_require__(310), + grid = __webpack_require__(402); // forked from danzel/L.UTFGrid var GridLayer = L.Class.extend({ - includes: [L.Mixin.Events, __webpack_require__(312)], + includes: [L.Mixin.Events, __webpack_require__(313)], options: { template: function() { return ''; } @@ -14912,7 +14912,7 @@ module.exports.gridLayer = function(_, options) { /***/ }), -/* 344 */ +/* 345 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14983,7 +14983,7 @@ module.exports.gridLayer = function(_, options) { var client, target, platformDefault; -client = __webpack_require__(319); +client = __webpack_require__(320); if (typeof Promise !== 'function' && console && console.log) { console.log('An ES6 Promise implementation is required to use rest.js. See https://github.com/cujojs/when/blob/master/docs/es6-promise-shim.md for using when.js as a Promise polyfill.'); @@ -15035,7 +15035,7 @@ module.exports = client(defaultClient); /***/ }), -/* 345 */ +/* 346 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15070,7 +15070,7 @@ module.exports = normalizeHeaderName; /***/ }), -/* 346 */ +/* 347 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15085,8 +15085,8 @@ module.exports = normalizeHeaderName; var interceptor, UrlBuilder; -interceptor = __webpack_require__(307); -UrlBuilder = __webpack_require__(410); +interceptor = __webpack_require__(308); +UrlBuilder = __webpack_require__(411); function startsWith(str, prefix) { return str.indexOf(prefix) === 0; @@ -15126,7 +15126,7 @@ module.exports = interceptor({ /***/ }), -/* 347 */ +/* 348 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15214,7 +15214,7 @@ module.exports = { /***/ }), -/* 348 */ +/* 349 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15262,7 +15262,7 @@ module.exports = { /***/ }), -/* 349 */ +/* 350 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15277,9 +15277,9 @@ module.exports = { var interceptor, uriTemplate, mixin; -interceptor = __webpack_require__(307); -uriTemplate = __webpack_require__(321); -mixin = __webpack_require__(313); +interceptor = __webpack_require__(308); +uriTemplate = __webpack_require__(322); +mixin = __webpack_require__(314); /** * Applies request params to the path as a URI Template @@ -15315,7 +15315,7 @@ module.exports = interceptor({ /***/ }), -/* 350 */ +/* 351 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15349,24 +15349,24 @@ module.exports = attempt; /***/ }), -/* 351 */ +/* 352 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -exports.decode = exports.parse = __webpack_require__(426); -exports.encode = exports.stringify = __webpack_require__(427); +exports.decode = exports.parse = __webpack_require__(427); +exports.encode = exports.stringify = __webpack_require__(428); /***/ }), -/* 352 */ +/* 353 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var b64 = __webpack_require__(430); +var b64 = __webpack_require__(431); /** * Access tokens actually are data, and using them we can derive @@ -15399,7 +15399,7 @@ module.exports = getUser; /***/ }), -/* 353 */ +/* 354 */ /***/ (function(module, exports) { /* @@ -15446,13 +15446,13 @@ function extend() { /***/ }), -/* 354 */ +/* 355 */ /***/ (function(module, exports, __webpack_require__) { //http://en.wikipedia.org/wiki/Haversine_formula //http://www.movable-type.co.uk/scripts/latlong.html -var getCoord = __webpack_require__(324).getCoord; -var helpers = __webpack_require__(310); +var getCoord = __webpack_require__(325).getCoord; +var helpers = __webpack_require__(311); var point = helpers.point; var distanceToRadians = helpers.distanceToRadians; @@ -15498,7 +15498,7 @@ module.exports = function (origin, distance, bearing, units) { /***/ }), -/* 355 */ +/* 356 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -16499,7 +16499,6 @@ function lineReduce(geojson, callback, initialValue) { /***/ }), -/* 356 */, /* 357 */, /* 358 */, /* 359 */, @@ -16538,35 +16537,36 @@ function lineReduce(geojson, callback, initialValue) { /* 392 */, /* 393 */, /* 394 */, -/* 395 */ +/* 395 */, +/* 396 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = window.L = __webpack_require__(333); +module.exports = window.L = __webpack_require__(334); /***/ }), -/* 396 */ +/* 397 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var geocoderControl = __webpack_require__(397), - gridControl = __webpack_require__(335), - featureLayer = __webpack_require__(337), - legendControl = __webpack_require__(339), - shareControl = __webpack_require__(340), - tileLayer = __webpack_require__(341), - infoControl = __webpack_require__(342), - map = __webpack_require__(400), - gridLayer = __webpack_require__(343), - styleLayer = __webpack_require__(403); +var geocoderControl = __webpack_require__(398), + gridControl = __webpack_require__(336), + featureLayer = __webpack_require__(338), + legendControl = __webpack_require__(340), + shareControl = __webpack_require__(341), + tileLayer = __webpack_require__(342), + infoControl = __webpack_require__(343), + map = __webpack_require__(401), + gridLayer = __webpack_require__(344), + styleLayer = __webpack_require__(404); L.mapbox = module.exports = { VERSION: __webpack_require__(86).version, - geocoder: __webpack_require__(334), + geocoder: __webpack_require__(335), marker: __webpack_require__(84), - simplestyle: __webpack_require__(338), + simplestyle: __webpack_require__(339), tileLayer: tileLayer.tileLayer, TileLayer: tileLayer.TileLayer, styleLayer: styleLayer.styleLayer, @@ -16589,8 +16589,8 @@ L.mapbox = module.exports = { Map: map.Map, config: __webpack_require__(85), sanitize: __webpack_require__(82), - template: __webpack_require__(336).to_html, - feedback: __webpack_require__(317) + template: __webpack_require__(337).to_html, + feedback: __webpack_require__(318) }; @@ -16606,13 +16606,13 @@ window.L.Icon.Default.imagePath = /***/ }), -/* 397 */ +/* 398 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var geocoder = __webpack_require__(334), +var geocoder = __webpack_require__(335), util = __webpack_require__(81); var GeocoderControl = L.Control.extend({ @@ -16817,7 +16817,7 @@ module.exports.geocoderControl = function(_, options) { /***/ }), -/* 398 */ +/* 399 */ /***/ (function(module, exports) { module.exports = Array.isArray || function (arr) { @@ -16826,7 +16826,7 @@ module.exports = Array.isArray || function (arr) { /***/ }), -/* 399 */ +/* 400 */ /***/ (function(module, exports, __webpack_require__) { function corslite(url, callback, cors) { @@ -16925,21 +16925,21 @@ if (true) module.exports = corslite; /***/ }), -/* 400 */ +/* 401 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var tileLayer = __webpack_require__(341).tileLayer, - featureLayer = __webpack_require__(337).featureLayer, - gridLayer = __webpack_require__(343).gridLayer, - gridControl = __webpack_require__(335).gridControl, - infoControl = __webpack_require__(342).infoControl, - shareControl = __webpack_require__(340).shareControl, - legendControl = __webpack_require__(339).legendControl, - mapboxLogoControl = __webpack_require__(402).mapboxLogoControl, - feedback = __webpack_require__(317); +var tileLayer = __webpack_require__(342).tileLayer, + featureLayer = __webpack_require__(338).featureLayer, + gridLayer = __webpack_require__(344).gridLayer, + gridControl = __webpack_require__(336).gridControl, + infoControl = __webpack_require__(343).infoControl, + shareControl = __webpack_require__(341).shareControl, + legendControl = __webpack_require__(340).legendControl, + mapboxLogoControl = __webpack_require__(403).mapboxLogoControl, + feedback = __webpack_require__(318); function withAccessToken(options, accessToken) { if (!accessToken || options.accessToken) @@ -16948,7 +16948,7 @@ function withAccessToken(options, accessToken) { } var LMap = L.Map.extend({ - includes: [__webpack_require__(312)], + includes: [__webpack_require__(313)], options: { tileLayer: {}, @@ -17166,7 +17166,7 @@ module.exports.map = function(element, _, options) { /***/ }), -/* 401 */ +/* 402 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -17189,7 +17189,7 @@ module.exports = function(data) { /***/ }), -/* 402 */ +/* 403 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -17228,7 +17228,7 @@ module.exports.mapboxLogoControl = function(options) { /***/ }), -/* 403 */ +/* 404 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -17236,7 +17236,7 @@ module.exports.mapboxLogoControl = function(options) { var util = __webpack_require__(81); var format_url = __webpack_require__(83); -var request = __webpack_require__(309); +var request = __webpack_require__(310); var StyleLayer = L.TileLayer.extend({ @@ -17316,7 +17316,7 @@ module.exports.styleLayer = function(_, options) { /***/ }), -/* 404 */ +/* 405 */ /***/ (function(module, exports) { @@ -17324,35 +17324,35 @@ module.exports.DEFAULT_ENDPOINT = 'https://api.mapbox.com'; /***/ }), -/* 405 */ +/* 406 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // install ES6 Promise polyfill -__webpack_require__(318); +__webpack_require__(319); -var rest = __webpack_require__(407); +var rest = __webpack_require__(408); // rest.js client with MIME support module.exports = function(config) { return rest - .wrap(__webpack_require__(409)) - .wrap(__webpack_require__(346), { prefix: config.endpoint }) - .wrap(__webpack_require__(411), { mime: 'application/json' }) - .wrap(__webpack_require__(349)) - .wrap(__webpack_require__(420), { + .wrap(__webpack_require__(410)) + .wrap(__webpack_require__(347), { prefix: config.endpoint }) + .wrap(__webpack_require__(412), { mime: 'application/json' }) + .wrap(__webpack_require__(350)) + .wrap(__webpack_require__(421), { params: { access_token: config.accessToken } }) - .wrap(__webpack_require__(421), { access_token: config.accessToken }) - .wrap(__webpack_require__(428)) - .wrap(__webpack_require__(429)); + .wrap(__webpack_require__(422), { access_token: config.accessToken }) + .wrap(__webpack_require__(429)) + .wrap(__webpack_require__(430)); }; /***/ }), -/* 406 */ +/* 407 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process, global) {/*! @@ -18538,7 +18538,7 @@ return Promise$1; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(21), __webpack_require__(5))) /***/ }), -/* 407 */ +/* 408 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -18551,8 +18551,8 @@ return Promise$1; -var rest = __webpack_require__(344), - browser = __webpack_require__(408); +var rest = __webpack_require__(345), + browser = __webpack_require__(409); rest.setPlatformDefaultClient(browser); @@ -18560,7 +18560,7 @@ module.exports = rest; /***/ }), -/* 408 */ +/* 409 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -18575,9 +18575,9 @@ module.exports = rest; var normalizeHeaderName, responsePromise, client, headerSplitRE; -normalizeHeaderName = __webpack_require__(345); -responsePromise = __webpack_require__(320); -client = __webpack_require__(319); +normalizeHeaderName = __webpack_require__(346); +responsePromise = __webpack_require__(321); +client = __webpack_require__(320); // according to the spec, the line break is '\r\n', but doesn't hold true in practice headerSplitRE = /[\r|\n]+/; @@ -18734,7 +18734,7 @@ module.exports = client(function xhr(request) { /***/ }), -/* 409 */ +/* 410 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -18749,7 +18749,7 @@ module.exports = client(function xhr(request) { var interceptor; -interceptor = __webpack_require__(307); +interceptor = __webpack_require__(308); /** * Rejects the response promise based on the status code. @@ -18777,7 +18777,7 @@ module.exports = interceptor({ /***/ }), -/* 410 */ +/* 411 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -18792,8 +18792,8 @@ module.exports = interceptor({ var mixin, xWWWFormURLEncoder, origin, urlRE, absoluteUrlRE, fullyQualifiedUrlRE; -mixin = __webpack_require__(313); -xWWWFormURLEncoder = __webpack_require__(347); +mixin = __webpack_require__(314); +xWWWFormURLEncoder = __webpack_require__(348); urlRE = /([a-z][a-z0-9\+\-\.]*:)\/\/([^@]+@)?(([^:\/]+)(:([0-9]+))?)?(\/[^?#]*)?(\?[^#]*)?(#\S*)?/i; absoluteUrlRE = /^([a-z][a-z0-9\-\+\.]*:\/\/|\/)/i; @@ -19000,7 +19000,7 @@ module.exports = UrlBuilder; /***/ }), -/* 411 */ +/* 412 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19015,10 +19015,10 @@ module.exports = UrlBuilder; var interceptor, mime, registry, noopConverter, missingConverter, attempt; -interceptor = __webpack_require__(307); -mime = __webpack_require__(348); -registry = __webpack_require__(412); -attempt = __webpack_require__(350); +interceptor = __webpack_require__(308); +mime = __webpack_require__(349); +registry = __webpack_require__(413); +attempt = __webpack_require__(351); noopConverter = { read: function (obj) { return obj; }, @@ -19116,7 +19116,7 @@ module.exports = interceptor({ /***/ }), -/* 412 */ +/* 413 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19131,7 +19131,7 @@ module.exports = interceptor({ var mime, registry; -mime = __webpack_require__(348); +mime = __webpack_require__(349); function Registry(mimes) { @@ -19215,11 +19215,11 @@ function Registry(mimes) { registry = new Registry({}); // include provided serializers -registry.register('application/hal', __webpack_require__(413)); -registry.register('application/json', __webpack_require__(417)); -registry.register('application/x-www-form-urlencoded', __webpack_require__(347)); -registry.register('multipart/form-data', __webpack_require__(418)); -registry.register('text/plain', __webpack_require__(419)); +registry.register('application/hal', __webpack_require__(414)); +registry.register('application/json', __webpack_require__(418)); +registry.register('application/x-www-form-urlencoded', __webpack_require__(348)); +registry.register('multipart/form-data', __webpack_require__(419)); +registry.register('text/plain', __webpack_require__(420)); registry.register('+json', registry.delegate('application/json')); @@ -19227,7 +19227,7 @@ module.exports = registry; /***/ }), -/* 413 */ +/* 414 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19242,11 +19242,11 @@ module.exports = registry; var pathPrefix, template, find, lazyPromise, responsePromise; -pathPrefix = __webpack_require__(346); -template = __webpack_require__(349); -find = __webpack_require__(415); -lazyPromise = __webpack_require__(416); -responsePromise = __webpack_require__(320); +pathPrefix = __webpack_require__(347); +template = __webpack_require__(350); +find = __webpack_require__(416); +lazyPromise = __webpack_require__(417); +responsePromise = __webpack_require__(321); function defineProperty(obj, name, value) { Object.defineProperty(obj, name, { @@ -19362,7 +19362,7 @@ module.exports = { /***/ }), -/* 414 */ +/* 415 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19539,7 +19539,7 @@ module.exports = { /***/ }), -/* 415 */ +/* 416 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19577,7 +19577,7 @@ module.exports = { /***/ }), -/* 416 */ +/* 417 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19590,7 +19590,7 @@ module.exports = { -var attempt = __webpack_require__(350); +var attempt = __webpack_require__(351); /** * Create a promise whose work is started only when a handler is registered. @@ -19630,7 +19630,7 @@ module.exports = lazyPromise; /***/ }), -/* 417 */ +/* 418 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19674,7 +19674,7 @@ module.exports = createConverter(); /***/ }), -/* 418 */ +/* 419 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19745,7 +19745,7 @@ module.exports = { /***/ }), -/* 419 */ +/* 420 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19772,7 +19772,7 @@ module.exports = { /***/ }), -/* 420 */ +/* 421 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19787,8 +19787,8 @@ module.exports = { var interceptor, mixinUtil, defaulter; -interceptor = __webpack_require__(307); -mixinUtil = __webpack_require__(313); +interceptor = __webpack_require__(308); +mixinUtil = __webpack_require__(314); defaulter = (function () { @@ -19848,19 +19848,19 @@ module.exports = interceptor({ /***/ }), -/* 421 */ +/* 422 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // install ES6 Promise polyfill -__webpack_require__(318); +__webpack_require__(319); -var interceptor = __webpack_require__(307); -var linkParser = __webpack_require__(422); -var url = __webpack_require__(423); -var querystring = __webpack_require__(351); +var interceptor = __webpack_require__(308); +var linkParser = __webpack_require__(423); +var url = __webpack_require__(424); +var querystring = __webpack_require__(352); var paginator = interceptor({ success: function (response, config) { @@ -19894,7 +19894,7 @@ module.exports = paginator; /***/ }), -/* 422 */ +/* 423 */ /***/ (function(module, exports) { module.exports = (function(){ @@ -21087,7 +21087,7 @@ module.exports = (function(){ /***/ }), -/* 423 */ +/* 424 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -21114,8 +21114,8 @@ module.exports = (function(){ -var punycode = __webpack_require__(424); -var util = __webpack_require__(425); +var punycode = __webpack_require__(425); +var util = __webpack_require__(426); exports.parse = urlParse; exports.resolve = urlResolve; @@ -21190,7 +21190,7 @@ var protocolPattern = /^([a-z0-9.+-]+:)/i, 'gopher:': true, 'file:': true }, - querystring = __webpack_require__(351); + querystring = __webpack_require__(352); function urlParse(url, parseQueryString, slashesDenoteHost) { if (url && util.isObject(url) && url instanceof Url) return url; @@ -21826,7 +21826,7 @@ Url.prototype.parseHost = function() { /***/ }), -/* 424 */ +/* 425 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.4.1 by @mathias */ @@ -22365,7 +22365,7 @@ Url.prototype.parseHost = function() { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7)(module), __webpack_require__(5))) /***/ }), -/* 425 */ +/* 426 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -22388,7 +22388,7 @@ module.exports = { /***/ }), -/* 426 */ +/* 427 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -22479,7 +22479,7 @@ var isArray = Array.isArray || function (xs) { /***/ }), -/* 427 */ +/* 428 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -22571,10 +22571,10 @@ var objectKeys = Object.keys || function (obj) { /***/ }), -/* 428 */ +/* 429 */ /***/ (function(module, exports, __webpack_require__) { -var interceptor = __webpack_require__(307); +var interceptor = __webpack_require__(308); var standardResponse = interceptor({ response: transform, @@ -22596,16 +22596,16 @@ module.exports = standardResponse; /***/ }), -/* 429 */ +/* 430 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // install ES6 Promise polyfill -__webpack_require__(318); +__webpack_require__(319); -var interceptor = __webpack_require__(307); +var interceptor = __webpack_require__(308); var callbackify = interceptor({ success: function (response) { @@ -22634,7 +22634,7 @@ module.exports = callbackify; /***/ }), -/* 430 */ +/* 431 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -22787,14 +22787,14 @@ module.exports = { /***/ }), -/* 431 */ +/* 432 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var makeService = __webpack_require__(305); /** * @class MapboxGeocoding @@ -23065,15 +23065,15 @@ module.exports = MapboxGeocoding; /***/ }), -/* 432 */ +/* 433 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var formatPoints = __webpack_require__(322); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var formatPoints = __webpack_require__(323); +var makeService = __webpack_require__(305); /** * @class MapboxSurface @@ -23170,15 +23170,15 @@ module.exports = MapboxSurface; /***/ }), -/* 433 */ +/* 434 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var formatPoints = __webpack_require__(322); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var formatPoints = __webpack_require__(323); +var makeService = __webpack_require__(305); /** * @class MapboxDirections @@ -23354,14 +23354,14 @@ module.exports = MapboxDirections; /***/ }), -/* 434 */ +/* 435 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var makeService = __webpack_require__(305); /** * @class MapboxUploads @@ -23581,14 +23581,14 @@ MapboxUploads.prototype.deleteUpload = function(upload, callback) { /***/ }), -/* 435 */ +/* 436 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var makeService = __webpack_require__(305); /** * @class MapboxMatching @@ -23723,15 +23723,15 @@ module.exports = MapboxMatching; /***/ }), -/* 436 */ +/* 437 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var hat = __webpack_require__(437); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var hat = __webpack_require__(438); +var makeService = __webpack_require__(305); /** * @class MapboxDatasets @@ -24168,7 +24168,7 @@ MapboxDatasets.prototype.deleteFeature = function(id, dataset, callback) { /***/ }), -/* 437 */ +/* 438 */ /***/ (function(module, exports) { /* eslint-disable */ @@ -24211,15 +24211,15 @@ var hat = module.exports = function (bits, base) { /***/ }), -/* 438 */ +/* 439 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var formatPoints = __webpack_require__(322); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var formatPoints = __webpack_require__(323); +var makeService = __webpack_require__(305); /** * @class MapboxMatrix @@ -24337,14 +24337,14 @@ module.exports = MapboxMatrix; /***/ }), -/* 439 */ +/* 440 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var makeService = __webpack_require__(305); /** * @class MapboxTilestats @@ -24440,15 +24440,15 @@ MapboxTilestats.prototype.putTilestats = function(tileset, statistics, callback) /***/ }), -/* 440 */ +/* 441 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(Buffer) { -var invariant = __webpack_require__(303); -var uriTemplate = __webpack_require__(321); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var uriTemplate = __webpack_require__(322); +var makeService = __webpack_require__(305); /** * @class MapboxStyles @@ -24818,10 +24818,10 @@ MapboxStyles.prototype.embedStyle = function(styleid, options) { return this.endpoint + uriTemplate.expand(API_STYLES_EMBED, params); }; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(441).Buffer)) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(442).Buffer)) /***/ }), -/* 441 */ +/* 442 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -24835,9 +24835,9 @@ MapboxStyles.prototype.embedStyle = function(styleid, options) { -var base64 = __webpack_require__(442) -var ieee754 = __webpack_require__(443) -var isArray = __webpack_require__(444) +var base64 = __webpack_require__(443) +var ieee754 = __webpack_require__(444) +var isArray = __webpack_require__(445) exports.Buffer = Buffer exports.SlowBuffer = SlowBuffer @@ -26618,7 +26618,7 @@ function isnan (val) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) /***/ }), -/* 442 */ +/* 443 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26776,7 +26776,7 @@ function fromByteArray (uint8) { /***/ }), -/* 443 */ +/* 444 */ /***/ (function(module, exports) { exports.read = function (buffer, offset, isLE, mLen, nBytes) { @@ -26866,7 +26866,7 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { /***/ }), -/* 444 */ +/* 445 */ /***/ (function(module, exports) { var toString = {}.toString; @@ -26877,18 +26877,18 @@ module.exports = Array.isArray || function (arr) { /***/ }), -/* 445 */ +/* 446 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var xtend = __webpack_require__(353).extend; -var uriTemplate = __webpack_require__(321); -var encodeOverlay = __webpack_require__(446); -var invariantLocation = __webpack_require__(323); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var xtend = __webpack_require__(354).extend; +var uriTemplate = __webpack_require__(322); +var encodeOverlay = __webpack_require__(447); +var invariantLocation = __webpack_require__(324); +var makeService = __webpack_require__(305); /** * @class MapboxStatic @@ -27096,15 +27096,15 @@ module.exports = MapboxStatic; /***/ }), -/* 446 */ +/* 447 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303), - invariantLocation = __webpack_require__(323), - polyline = __webpack_require__(447); +var invariant = __webpack_require__(304), + invariantLocation = __webpack_require__(324), + polyline = __webpack_require__(448); /** * Given a list of markers, encode them for display @@ -27162,7 +27162,7 @@ module.exports.encodeGeoJSON = encodeGeoJSON; /***/ }), -/* 447 */ +/* 448 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -27254,14 +27254,14 @@ module.exports = polyline; /***/ }), -/* 448 */ +/* 449 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var makeService = __webpack_require__(305); /** * @class MapboxTilesets @@ -27345,14 +27345,14 @@ MapboxTilesets.prototype.listTilesets = function(options, callback) { /***/ }), -/* 449 */ +/* 450 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var makeService = __webpack_require__(305); /** * @class MapboxTokens @@ -27566,13 +27566,13 @@ MapboxTokens.prototype.listScopes = function(callback) { /***/ }), -/* 450 */ +/* 451 */ /***/ (function(module, exports) { module.exports = {"_args":[["mapbox-gl-circle@1.6.5","/var/alchemy/Phraseanet/Phraseanet-production-client"]],"_from":"mapbox-gl-circle@1.6.5","_id":"mapbox-gl-circle@1.6.5","_inBundle":false,"_integrity":"sha512-VHA6lgxZE/WFtBXmMveU2zt7ZeVcBHe42k4U4b8xGEnrDSQs4/++EBPVywEMNqi01XQrbf1eiAhsIDZasR4drw==","_location":"/mapbox-gl-circle","_phantomChildren":{"@mapbox/geojson-area":"0.2.2","@mapbox/gl-matrix":"0.0.1","@mapbox/mapbox-gl-supported":"1.4.0","@mapbox/point-geometry":"0.1.0","@mapbox/shelf-pack":"3.2.0","@mapbox/tiny-sdf":"1.1.0","@mapbox/unitbezier":"0.0.0","@mapbox/vector-tile":"1.3.1","@mapbox/whoots-js":"3.1.0","brfs":"1.6.1","bubleify":"0.7.0","concat-stream":"1.6.2","csscolorparser":"1.0.3","earcut":"2.1.3","geojson-vt":"3.2.1","gray-matter":"3.1.1","grid-index":"1.1.0","jsonlint-lines-primitives":"1.6.0","minimist":"0.0.8","package-json-versionify":"1.0.4","pbf":"3.2.0","quickselect":"1.1.1","rw":"1.3.3","sharkdown":"0.1.1","shuffle-seed":"1.1.6","sort-object":"0.3.2","through2":"2.0.3","tinyqueue":"1.2.3","unassertify":"2.1.1","unflowify":"1.0.1","vt-pbf":"3.1.1","webworkify":"1.5.0"},"_requested":{"type":"version","registry":true,"raw":"mapbox-gl-circle@1.6.5","name":"mapbox-gl-circle","escapedName":"mapbox-gl-circle","rawSpec":"1.6.5","saveSpec":null,"fetchSpec":"1.6.5"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/mapbox-gl-circle/-/mapbox-gl-circle-1.6.5.tgz","_spec":"1.6.5","_where":"/var/alchemy/Phraseanet/Phraseanet-production-client","author":{"name":"Smith Micro Software, Inc."},"browserify":{"transform":["babelify"]},"bugs":{"url":"https://github.com/smithmicro/mapbox-gl-circle/issues"},"dependencies":{"@turf/bbox":"^4.7.3","@turf/bbox-polygon":"^4.7.3","@turf/bearing":"^4.5.2","@turf/circle":"^4.7.3","@turf/destination":"^4.7.3","@turf/distance":"^4.7.3","@turf/helpers":"^4.7.3","@turf/truncate":"^4.7.3","core-util-is":"^1.0.2","debug":"^3.0.0","events":"^1.1.1","fsevents":"^1.1.2","glob":"^7.1.2","inflight":"^1.0.6","inherits":"^2.0.3","jsonparse":"^1.3.1","lodash":"^4.17.5","lodash.debounce":"^4.0.8","mapbox-gl":"^0.44.1","minimatch":"^3.0.4","once":"^1.4.0","punycode":"^2.1.0","readable-stream":"^2.3.3","string_decoder":"^1.0.3","through2":"^2.0.3","util-deprecate":"^1.0.2","wrappy":"^1.0.2","xtend":"^4.0.1","yarn":"^0.27.5"},"description":"A google.maps.Circle replacement for Mapbox GL JS API","devDependencies":{"async-each":"^1.0.1","babel-preset-es2015":"^6.24.1","babelify":"^7.3.0","brfs":"^1.4.4","browserify":"^14.5.0","buble":"^0.15.2","budo":"^10.0.4","documentation":"^5.1.0","eslint":"^4.18.1","eslint-config-google":"^0.9.1","esutils":"^2.0.2","magic-string":"^0.22.4","uglify-js":"^3.3.12","vlq":"^0.2.3","watchify":"^3.10.0"},"directories":{"example":"example","lib":"lib"},"engines":{"node":">=7.6.0","npm":">=5.3.0"},"files":["lib/","example/","dist/"],"homepage":"https://github.com/smithmicro/mapbox-gl-circle#readme","keywords":["mapbox","circle","osm","gl"],"license":"ISC","main":"lib/main.js","name":"mapbox-gl-circle","optionalDependencies":{"core-util-is":"^1.0.2","debug":"^3.0.0","fsevents":"^1.1.2","glob":"^7.1.2","inflight":"^1.0.6","inherits":"^2.0.3","jsonparse":"^1.3.1","minimatch":"^3.0.4","once":"^1.4.0","punycode":"^2.1.0","readable-stream":"^2.3.3","string_decoder":"^1.0.3","through2":"^2.0.3","util-deprecate":"^1.0.2","wrappy":"^1.0.2","xtend":"^4.0.1","yarn":"^0.27.5"},"repository":{"type":"git","url":"git+ssh://git@github.com/smithmicro/mapbox-gl-circle.git"},"scripts":{"browserify":"mkdir -p dist && browserify lib/main.js -o dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.js --debug --delay=0 -v","docs":"documentation lint lib/main.js && documentation readme lib/main.js --access public --section=Usage","lint":"eslint lib","prepare":"mkdir -p dist && browserify --standalone MapboxCircle -t [ babelify --presets [ es2015 ] ] lib/main.js | uglifyjs -c -m > dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.min.js && cp -f dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.min.js dist/mapbox-gl-circle.min.js","start":"budo example/index.js --live --force-default-index --title budo/mapbox-gl-circle --verbose -- -t brfs","watchify":"mkdir -p dist && watchify lib/main.js -o dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.js --debug -v"},"version":"1.6.5"} /***/ }), -/* 451 */ +/* 452 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global, module) {var __WEBPACK_AMD_DEFINE_RESULT__;/** @@ -44692,11 +44692,11 @@ module.exports = {"_args":[["mapbox-gl-circle@1.6.5","/var/alchemy/Phraseanet/Ph /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5), __webpack_require__(7)(module))) /***/ }), -/* 452 */ +/* 453 */ /***/ (function(module, exports, __webpack_require__) { -var destination = __webpack_require__(354); -var polygon = __webpack_require__(310).polygon; +var destination = __webpack_require__(355); +var polygon = __webpack_require__(311).polygon; /** * Takes a {@link Point} and calculates the circle polygon given a radius in degrees, radians, miles, or kilometers; and steps for precision. @@ -44740,10 +44740,10 @@ module.exports = function (center, radius, steps, units, properties) { /***/ }), -/* 453 */ +/* 454 */ /***/ (function(module, exports, __webpack_require__) { -var coordEach = __webpack_require__(355).coordEach; +var coordEach = __webpack_require__(356).coordEach; /** * Takes a set of features, calculates the bbox of all input features, and returns a bounding box. @@ -44772,10 +44772,10 @@ module.exports = function (geojson) { /***/ }), -/* 454 */ +/* 455 */ /***/ (function(module, exports, __webpack_require__) { -var polygon = __webpack_require__(310).polygon; +var polygon = __webpack_require__(311).polygon; /** * Takes a bbox and returns an equivalent {@link Polygon|polygon}. @@ -44808,10 +44808,10 @@ module.exports = function (bbox) { /***/ }), -/* 455 */ +/* 456 */ /***/ (function(module, exports, __webpack_require__) { -var coordEach = __webpack_require__(355).coordEach; +var coordEach = __webpack_require__(356).coordEach; /** * Takes a GeoJSON Feature or FeatureCollection and truncates the precision of the geometry. @@ -44878,11 +44878,11 @@ function truncate(coords, factor, coordinates) { /***/ }), -/* 456 */ +/* 457 */ /***/ (function(module, exports, __webpack_require__) { -var getCoord = __webpack_require__(324).getCoord; -var radiansToDistance = __webpack_require__(310).radiansToDistance; +var getCoord = __webpack_require__(325).getCoord; +var radiansToDistance = __webpack_require__(311).radiansToDistance; //http://en.wikipedia.org/wiki/Haversine_formula //http://www.movable-type.co.uk/scripts/latlong.html @@ -44925,10 +44925,10 @@ module.exports = function (from, to, units) { /***/ }), -/* 457 */ +/* 458 */ /***/ (function(module, exports, __webpack_require__) { -var getCoord = __webpack_require__(324).getCoord; +var getCoord = __webpack_require__(325).getCoord; //http://en.wikipedia.org/wiki/Haversine_formula //http://www.movable-type.co.uk/scripts/latlong.html diff --git a/Phraseanet-production-client/dist/lazy-3.min.js b/Phraseanet-production-client/dist/lazy-3.min.js index 5f5307e1bc..27691efcb2 100644 --- a/Phraseanet-production-client/dist/lazy-3.min.js +++ b/Phraseanet-production-client/dist/lazy-3.min.js @@ -1,19 +1,19 @@ -webpackJsonpapp([3],Array(296).concat([ -/* 296 */ +webpackJsonpapp([3],Array(297).concat([ +/* 297 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var leaflet = __webpack_require__(395); +var leaflet = __webpack_require__(396); -__webpack_require__(396); +__webpack_require__(397); module.exports = leaflet; /***/ }), -/* 297 */ +/* 298 */ /***/ (function(module, exports) { /* @@ -27,7 +27,7 @@ module.exports = leaflet; L.DomEvent.off(this._container,"touchmove",this._onTouchMove),this._detectIE()?(L.DomEvent.off(this._container,"MSPointerDowm",this._onTouchStart),L.DomEvent.off(this._container,"MSPointerUp",this._onTouchEnd),L.DomEvent.off(this._container,"MSPointerMove",this._onTouchMove),L.DomEvent.off(this._container,"MSPointerCancel",this._onTouchCancel)):(L.DomEvent.off(this._container,"touchcancel",this._onTouchCancel),L.DomEvent.off(this._container,"touchleave",this._onTouchLeave))},_touchEvent:function(t,e){var i={};if("undefined"!=typeof t.touches){if(!t.touches.length)return;i=t.touches[0]}else{if("touch"!==t.pointerType)return;if(i=t,!this._filterClick(t))return}var o=this._map.mouseEventToContainerPoint(i),n=this._map.mouseEventToLayerPoint(i),s=this._map.layerPointToLatLng(n);this._map.fire(e,{latlng:s,layerPoint:n,containerPoint:o,pageX:i.pageX,pageY:i.pageY,originalEvent:t})},_filterClick:function(t){var e=t.timeStamp||t.originalEvent.timeStamp,i=L.DomEvent._lastClick&&e-L.DomEvent._lastClick;return i&&i>100&&500>i||t.target._simulatedClick&&!t._simulated?(L.DomEvent.stop(t),!1):(L.DomEvent._lastClick=e,!0)},_onTouchStart:function(t){if(this._map._loaded){var e="touchstart";this._touchEvent(t,e)}},_onTouchEnd:function(t){if(this._map._loaded){var e="touchend";this._touchEvent(t,e)}},_onTouchCancel:function(t){if(this._map._loaded){var e="touchcancel";this._detectIE()&&(e="pointercancel"),this._touchEvent(t,e)}},_onTouchLeave:function(t){if(this._map._loaded){var e="touchleave";this._touchEvent(t,e)}},_onTouchMove:function(t){if(this._map._loaded){var e="touchmove";this._touchEvent(t,e)}},_detectIE:function(){var e=t.navigator.userAgent,i=e.indexOf("MSIE ");if(i>0)return parseInt(e.substring(i+5,e.indexOf(".",i)),10);var o=e.indexOf("Trident/");if(o>0){var n=e.indexOf("rv:");return parseInt(e.substring(n+3,e.indexOf(".",n)),10)}var s=e.indexOf("Edge/");return s>0?parseInt(e.substring(s+5,e.indexOf(".",s)),10):!1}}),L.Map.addInitHook("addHandler","touchExtend",L.Map.TouchExtend),L.Marker.Touch=L.Marker.extend({_initInteraction:function(){if(this.options.clickable){var t=this._icon,e=["dblclick","mousedown","mouseover","mouseout","contextmenu","touchstart","touchend","touchmove"];this._detectIE?e.concat(["MSPointerDown","MSPointerUp","MSPointerMove","MSPointerCancel"]):e.concat(["touchcancel"]),L.DomUtil.addClass(t,"leaflet-clickable"),L.DomEvent.on(t,"click",this._onMouseClick,this),L.DomEvent.on(t,"keypress",this._onKeyPress,this);for(var i=0;i0)return parseInt(e.substring(i+5,e.indexOf(".",i)),10);var o=e.indexOf("Trident/");if(o>0){var n=e.indexOf("rv:");return parseInt(e.substring(n+3,e.indexOf(".",n)),10)}var s=e.indexOf("Edge/");return s>0?parseInt(e.substring(s+5,e.indexOf(".",s)),10):!1}}),L.LatLngUtil={cloneLatLngs:function(t){for(var e=[],i=0,o=t.length;o>i;i++)e.push(this.cloneLatLng(t[i]));return e},cloneLatLng:function(t){return L.latLng(t.lat,t.lng)}},L.GeometryUtil=L.extend(L.GeometryUtil||{},{geodesicArea:function(t){var e,i,o=t.length,n=0,s=L.LatLng.DEG_TO_RAD;if(o>2){for(var a=0;o>a;a++)e=t[a],i=t[(a+1)%o],n+=(i.lng-e.lng)*s*(2+Math.sin(e.lat*s)+Math.sin(i.lat*s));n=6378137*n*6378137/2}return Math.abs(n)},readableArea:function(t,e){var i;return e?i=t>=1e4?(1e-4*t).toFixed(2)+" ha":t.toFixed(2)+" m²":(t/=.836127,i=t>=3097600?(t/3097600).toFixed(2)+" mi²":t>=4840?(t/4840).toFixed(2)+" acres":Math.ceil(t)+" yd²"),i},readableDistance:function(t,e,i){var o;if(e)o=t>1e3?(t/1e3).toFixed(2)+" km":Math.ceil(t)+" m";else if(t*=1.09361,t>1760)o=(t/1760).toFixed(2)+" miles";else{var n=" yd";i&&(t=3*t,n=" ft"),o=Math.ceil(t)+n}return o}}),L.Util.extend(L.LineUtil,{segmentsIntersect:function(t,e,i,o){return this._checkCounterclockwise(t,i,o)!==this._checkCounterclockwise(e,i,o)&&this._checkCounterclockwise(t,e,i)!==this._checkCounterclockwise(t,e,o)},_checkCounterclockwise:function(t,e,i){return(i.y-t.y)*(e.x-t.x)>(e.y-t.y)*(i.x-t.x)}}),L.Polyline.include({intersects:function(){var t,e,i,o=this._originalPoints,n=o?o.length:0;if(this._tooFewPointsForIntersection())return!1;for(t=n-1;t>=3;t--)if(e=o[t-1],i=o[t],this._lineSegmentsIntersectsRange(e,i,t-2))return!0;return!1},newLatLngIntersects:function(t,e){return this._map?this.newPointIntersects(this._map.latLngToLayerPoint(t),e):!1},newPointIntersects:function(t,e){var i=this._originalPoints,o=i?i.length:0,n=i?i[o-1]:null,s=o-2;return this._tooFewPointsForIntersection(1)?!1:this._lineSegmentsIntersectsRange(n,t,s,e?1:0)},_tooFewPointsForIntersection:function(t){var e=this._originalPoints,i=e?e.length:0;return i+=t||0,!this._originalPoints||3>=i},_lineSegmentsIntersectsRange:function(t,e,i,o){var n,s,a=this._originalPoints;o=o||0;for(var r=i;r>o;r--)if(n=a[r-1],s=a[r],L.LineUtil.segmentsIntersect(t,e,n,s))return!0;return!1}}),L.Polygon.include({intersects:function(){var t,e,i,o,n,s=this._originalPoints;return this._tooFewPointsForIntersection()?!1:(t=L.Polyline.prototype.intersects.call(this))?!0:(e=s.length,i=s[0],o=s[e-1],n=e-2,this._lineSegmentsIntersectsRange(o,i,n,1))}}),L.Control.Draw=L.Control.extend({options:{position:"topleft",draw:{},edit:!1},initialize:function(t){if(L.version<"0.7")throw new Error("Leaflet.draw 0.2.3+ requires Leaflet 0.7.0+. Download latest from https://github.com/Leaflet/Leaflet/");L.Control.prototype.initialize.call(this,t);var e;this._toolbars={},L.DrawToolbar&&this.options.draw&&(e=new L.DrawToolbar(this.options.draw),this._toolbars[L.DrawToolbar.TYPE]=e,this._toolbars[L.DrawToolbar.TYPE].on("enable",this._toolbarEnabled,this)),L.EditToolbar&&this.options.edit&&(e=new L.EditToolbar(this.options.edit),this._toolbars[L.EditToolbar.TYPE]=e,this._toolbars[L.EditToolbar.TYPE].on("enable",this._toolbarEnabled,this)),L.toolbar=this},onAdd:function(t){var e,i=L.DomUtil.create("div","leaflet-draw"),o=!1,n="leaflet-draw-toolbar-top";for(var s in this._toolbars)this._toolbars.hasOwnProperty(s)&&(e=this._toolbars[s].addToolbar(t),e&&(o||(L.DomUtil.hasClass(e,n)||L.DomUtil.addClass(e.childNodes[0],n),o=!0),i.appendChild(e)));return i},onRemove:function(){for(var t in this._toolbars)this._toolbars.hasOwnProperty(t)&&this._toolbars[t].removeToolbar()},setDrawingOptions:function(t){for(var e in this._toolbars)this._toolbars[e]instanceof L.DrawToolbar&&this._toolbars[e].setOptions(t)},_toolbarEnabled:function(t){var e=t.target;for(var i in this._toolbars)this._toolbars[i]!==e&&this._toolbars[i].disable()}}),L.Map.mergeOptions({drawControlTooltips:!0,drawControl:!1}),L.Map.addInitHook(function(){this.options.drawControl&&(this.drawControl=new L.Control.Draw,this.addControl(this.drawControl))}),L.Toolbar=L.Class.extend({includes:[L.Mixin.Events],initialize:function(t){L.setOptions(this,t),this._modes={},this._actionButtons=[],this._activeMode=null},enabled:function(){return null!==this._activeMode},disable:function(){this.enabled()&&this._activeMode.handler.disable()},addToolbar:function(t){var e,i=L.DomUtil.create("div","leaflet-draw-section"),o=0,n=this._toolbarClass||"",s=this.getModeHandlers(t);for(this._toolbarContainer=L.DomUtil.create("div","leaflet-draw-toolbar leaflet-bar"),this._map=t,e=0;ee;e++)this._disposeButton(this._actionButtons[e].button,this._actionButtons[e].callback,this);this._actionButtons=[],this._actionsContainer=null},_initModeHandler:function(t,e,i,o,n){var s=t.type;this._modes[s]={},this._modes[s].handler=t,this._modes[s].button=this._createButton({type:s,title:n,className:o+"-"+s,container:e,callback:this._modes[s].handler.enable,context:this._modes[s].handler}),this._modes[s].buttonIndex=i,this._modes[s].handler.on("enabled",this._handlerActivated,this).on("disabled",this._handlerDeactivated,this)},_createButton:function(t){var e=L.DomUtil.create("a",t.className||"",t.container);return e.href="#",t.text&&(e.innerHTML=t.text),t.title&&(e.title=t.title),L.DomEvent.on(e,"click",L.DomEvent.stopPropagation).on(e,"mousedown",L.DomEvent.stopPropagation).on(e,"dblclick",L.DomEvent.stopPropagation).on(e,"click",L.DomEvent.preventDefault).on(e,"click",t.callback,t.context),e},_disposeButton:function(t,e){L.DomEvent.off(t,"click",L.DomEvent.stopPropagation).off(t,"mousedown",L.DomEvent.stopPropagation).off(t,"dblclick",L.DomEvent.stopPropagation).off(t,"click",L.DomEvent.preventDefault).off(t,"click",e)},_handlerActivated:function(t){this.disable(),this._activeMode=this._modes[t.handler],L.DomUtil.addClass(this._activeMode.button,"leaflet-draw-toolbar-button-enabled"),this._showActionsToolbar(),this.fire("enable")},_handlerDeactivated:function(){this._hideActionsToolbar(),L.DomUtil.removeClass(this._activeMode.button,"leaflet-draw-toolbar-button-enabled"),this._activeMode=null,this.fire("disable")},_createActions:function(t){var e,i,o,n,s=this._actionsContainer,a=this.getActions(t),r=a.length;for(i=0,o=this._actionButtons.length;o>i;i++)this._disposeButton(this._actionButtons[i].button,this._actionButtons[i].callback);for(this._actionButtons=[];s.firstChild;)s.removeChild(s.firstChild);for(var h=0;r>h;h++)"enabled"in a[h]&&!a[h].enabled||(e=L.DomUtil.create("li","",s),n=this._createButton({title:a[h].title,text:a[h].text,container:e,callback:a[h].callback,context:a[h].context}),this._actionButtons.push({button:n,callback:a[h].callback}))},_showActionsToolbar:function(){var t=this._activeMode.buttonIndex,e=this._lastButtonIndex,i=this._activeMode.button.offsetTop-1;this._createActions(this._activeMode.handler),this._actionsContainer.style.top=i+"px",0===t&&(L.DomUtil.addClass(this._toolbarContainer,"leaflet-draw-toolbar-notop"),L.DomUtil.addClass(this._actionsContainer,"leaflet-draw-actions-top")),t===e&&(L.DomUtil.addClass(this._toolbarContainer,"leaflet-draw-toolbar-nobottom"),L.DomUtil.addClass(this._actionsContainer,"leaflet-draw-actions-bottom")),this._actionsContainer.style.display="block"},_hideActionsToolbar:function(){this._actionsContainer.style.display="none",L.DomUtil.removeClass(this._toolbarContainer,"leaflet-draw-toolbar-notop"),L.DomUtil.removeClass(this._toolbarContainer,"leaflet-draw-toolbar-nobottom"),L.DomUtil.removeClass(this._actionsContainer,"leaflet-draw-actions-top"),L.DomUtil.removeClass(this._actionsContainer,"leaflet-draw-actions-bottom")}}),L.Tooltip=L.Class.extend({initialize:function(t){this._map=t,this._popupPane=t._panes.popupPane,this._container=t.options.drawControlTooltips?L.DomUtil.create("div","leaflet-draw-tooltip",this._popupPane):null,this._singleLineLabel=!1,this._map.on("mouseout",this._onMouseOut,this)},dispose:function(){this._map.off("mouseout",this._onMouseOut,this),this._container&&(this._popupPane.removeChild(this._container),this._container=null)},updateContent:function(t){return this._container?(t.subtext=t.subtext||"",0!==t.subtext.length||this._singleLineLabel?t.subtext.length>0&&this._singleLineLabel&&(L.DomUtil.removeClass(this._container,"leaflet-draw-tooltip-single"),this._singleLineLabel=!1):(L.DomUtil.addClass(this._container,"leaflet-draw-tooltip-single"),this._singleLineLabel=!0),this._container.innerHTML=(t.subtext.length>0?''+t.subtext+"
":"")+""+t.text+"",this):this},updatePosition:function(t){var e=this._map.latLngToLayerPoint(t),i=this._container;return this._container&&(i.style.visibility="inherit",L.DomUtil.setPosition(i,e)),this},showAsError:function(){return this._container&&L.DomUtil.addClass(this._container,"leaflet-error-draw-tooltip"),this},removeError:function(){return this._container&&L.DomUtil.removeClass(this._container,"leaflet-error-draw-tooltip"),this},_onMouseOut:function(){this._container&&(this._container.style.visibility="hidden")}}),L.DrawToolbar=L.Toolbar.extend({statics:{TYPE:"draw"},options:{polyline:{},polygon:{},rectangle:{},circle:{},marker:{}},initialize:function(t){for(var e in this.options)this.options.hasOwnProperty(e)&&t[e]&&(t[e]=L.extend({},this.options[e],t[e]));this._toolbarClass="leaflet-draw-draw",L.Toolbar.prototype.initialize.call(this,t)},getModeHandlers:function(t){return[{enabled:this.options.polyline,handler:new L.Draw.Polyline(t,this.options.polyline),title:L.drawLocal.draw.toolbar.buttons.polyline},{enabled:this.options.polygon,handler:new L.Draw.Polygon(t,this.options.polygon),title:L.drawLocal.draw.toolbar.buttons.polygon},{enabled:this.options.rectangle,handler:new L.Draw.Rectangle(t,this.options.rectangle),title:L.drawLocal.draw.toolbar.buttons.rectangle},{enabled:this.options.circle,handler:new L.Draw.Circle(t,this.options.circle),title:L.drawLocal.draw.toolbar.buttons.circle},{enabled:this.options.marker,handler:new L.Draw.Marker(t,this.options.marker),title:L.drawLocal.draw.toolbar.buttons.marker}]},getActions:function(t){return[{enabled:t.completeShape,title:L.drawLocal.draw.toolbar.finish.title,text:L.drawLocal.draw.toolbar.finish.text,callback:t.completeShape,context:t},{enabled:t.deleteLastVertex,title:L.drawLocal.draw.toolbar.undo.title,text:L.drawLocal.draw.toolbar.undo.text,callback:t.deleteLastVertex,context:t},{title:L.drawLocal.draw.toolbar.actions.title,text:L.drawLocal.draw.toolbar.actions.text,callback:this.disable,context:this}]},setOptions:function(t){L.setOptions(this,t);for(var e in this._modes)this._modes.hasOwnProperty(e)&&t.hasOwnProperty(e)&&this._modes[e].handler.setOptions(t[e])}}),L.EditToolbar=L.Toolbar.extend({statics:{TYPE:"edit"},options:{edit:{selectedPathOptions:{dashArray:"10, 10",fill:!0,fillColor:"#fe57a1",fillOpacity:.1,maintainColor:!1}},remove:{},featureGroup:null},initialize:function(t){t.edit&&("undefined"==typeof t.edit.selectedPathOptions&&(t.edit.selectedPathOptions=this.options.edit.selectedPathOptions),t.edit.selectedPathOptions=L.extend({},this.options.edit.selectedPathOptions,t.edit.selectedPathOptions)),t.remove&&(t.remove=L.extend({},this.options.remove,t.remove)),this._toolbarClass="leaflet-draw-edit",L.Toolbar.prototype.initialize.call(this,t),this._selectedFeatureCount=0},getModeHandlers:function(t){var e=this.options.featureGroup;return[{enabled:this.options.edit,handler:new L.EditToolbar.Edit(t,{featureGroup:e,selectedPathOptions:this.options.edit.selectedPathOptions}),title:L.drawLocal.edit.toolbar.buttons.edit},{enabled:this.options.remove,handler:new L.EditToolbar.Delete(t,{featureGroup:e}),title:L.drawLocal.edit.toolbar.buttons.remove}]},getActions:function(){return[{title:L.drawLocal.edit.toolbar.actions.save.title,text:L.drawLocal.edit.toolbar.actions.save.text,callback:this._save,context:this},{title:L.drawLocal.edit.toolbar.actions.cancel.title,text:L.drawLocal.edit.toolbar.actions.cancel.text,callback:this.disable,context:this}]},addToolbar:function(t){var e=L.Toolbar.prototype.addToolbar.call(this,t);return this._checkDisabled(),this.options.featureGroup.on("layeradd layerremove",this._checkDisabled,this),e},removeToolbar:function(){this.options.featureGroup.off("layeradd layerremove",this._checkDisabled,this),L.Toolbar.prototype.removeToolbar.call(this)},disable:function(){this.enabled()&&(this._activeMode.handler.revertLayers(),L.Toolbar.prototype.disable.call(this))},_save:function(){this._activeMode.handler.save(),this._activeMode.handler.disable()},_checkDisabled:function(){var t,e=this.options.featureGroup,i=0!==e.getLayers().length;this.options.edit&&(t=this._modes[L.EditToolbar.Edit.TYPE].button,i?L.DomUtil.removeClass(t,"leaflet-disabled"):L.DomUtil.addClass(t,"leaflet-disabled"),t.setAttribute("title",i?L.drawLocal.edit.toolbar.buttons.edit:L.drawLocal.edit.toolbar.buttons.editDisabled)),this.options.remove&&(t=this._modes[L.EditToolbar.Delete.TYPE].button,i?L.DomUtil.removeClass(t,"leaflet-disabled"):L.DomUtil.addClass(t,"leaflet-disabled"),t.setAttribute("title",i?L.drawLocal.edit.toolbar.buttons.remove:L.drawLocal.edit.toolbar.buttons.removeDisabled))}}),L.EditToolbar.Edit=L.Handler.extend({statics:{TYPE:"edit"},includes:L.Mixin.Events,initialize:function(t,e){if(L.Handler.prototype.initialize.call(this,t),L.setOptions(this,e),this._featureGroup=e.featureGroup,!(this._featureGroup instanceof L.FeatureGroup))throw new Error("options.featureGroup must be a L.FeatureGroup");this._uneditedLayerProps={},this.type=L.EditToolbar.Edit.TYPE},enable:function(){!this._enabled&&this._hasAvailableLayers()&&(this.fire("enabled",{handler:this.type}),this._map.fire("draw:editstart",{handler:this.type}),L.Handler.prototype.enable.call(this),this._featureGroup.on("layeradd",this._enableLayerEdit,this).on("layerremove",this._disableLayerEdit,this))},disable:function(){this._enabled&&(this._featureGroup.off("layeradd",this._enableLayerEdit,this).off("layerremove",this._disableLayerEdit,this),L.Handler.prototype.disable.call(this),this._map.fire("draw:editstop",{handler:this.type}),this.fire("disabled",{handler:this.type}))},addHooks:function(){var t=this._map;t&&(t.getContainer().focus(),this._featureGroup.eachLayer(this._enableLayerEdit,this),this._tooltip=new L.Tooltip(this._map),this._updateTooltip(),this._map.on("mousemove",this._onMouseMove,this).on("touchmove",this._onMouseMove,this).on("MSPointerMove",this._onMouseMove,this).on("click",this._editStyle,this).on("draw:editvertex",this._updateTooltip,this))},removeHooks:function(){this._map&&(this._featureGroup.eachLayer(this._disableLayerEdit,this),this._uneditedLayerProps={},this._tooltip.dispose(),this._tooltip=null,this._map.off("mousemove",this._onMouseMove,this).off("touchmove",this._onMouseMove,this).off("MSPointerMove",this._onMouseMove,this))},revertLayers:function(){this._featureGroup.eachLayer(function(t){this._revertLayer(t)},this)},save:function(){var t=new L.LayerGroup;this._featureGroup.eachLayer(function(e){e.edited&&(t.addLayer(e),e.edited=!1)}),this._map.fire("draw:edited",{layers:t})},_backupLayer:function(t){var e=L.Util.stamp(t);this._uneditedLayerProps[e]||(t instanceof L.Polyline||t instanceof L.Polygon||t instanceof L.Rectangle?this._uneditedLayerProps[e]={latlngs:L.LatLngUtil.cloneLatLngs(t.getLatLngs())}:t instanceof L.Circle?this._uneditedLayerProps[e]={latlng:L.LatLngUtil.cloneLatLng(t.getLatLng()),radius:t.getRadius()}:t instanceof L.Marker&&(this._uneditedLayerProps[e]={latlng:L.LatLngUtil.cloneLatLng(t.getLatLng())}))},_getTooltipText:function(){return{text:L.drawLocal.edit.handlers.edit.tooltip.text,subtext:L.drawLocal.edit.handlers.edit.tooltip.subtext}},_updateTooltip:function(){this._tooltip.updateContent(this._getTooltipText())},_revertLayer:function(t){var e=L.Util.stamp(t);t.edited=!1,this._uneditedLayerProps.hasOwnProperty(e)&&(t instanceof L.Polyline||t instanceof L.Polygon||t instanceof L.Rectangle?t.setLatLngs(this._uneditedLayerProps[e].latlngs):t instanceof L.Circle?(t.setLatLng(this._uneditedLayerProps[e].latlng),t.setRadius(this._uneditedLayerProps[e].radius)):t instanceof L.Marker&&t.setLatLng(this._uneditedLayerProps[e].latlng),t.fire("revert-edited",{layer:t}))},_enableLayerEdit:function(t){var e,i=t.layer||t.target||t;this._backupLayer(i),this.options.selectedPathOptions&&(e=L.Util.extend({},this.options.selectedPathOptions),e.maintainColor&&(e.color=i.options.color,e.fillColor=i.options.fillColor),i.options.original=L.extend({},i.options),i.options.editing=e),this.isMarker?(i.dragging.enable(),i.on("dragend",this._onMarkerDragEnd).on("touchmove",this._onTouchMove,this).on("MSPointerMove",this._onTouchMove,this).on("touchend",this._onMarkerDragEnd,this).on("MSPointerUp",this._onMarkerDragEnd,this)):i.editing.enable()},_disableLayerEdit:function(t){var e=t.layer||t.target||t;e.edited=!1,e.editing.disable(),delete e.options.editing,delete e.options.original,this._selectedPathOptions&&(e instanceof L.Marker?this._toggleMarkerHighlight(e):(e.setStyle(e.options.previousOptions),delete e.options.previousOptions)),e instanceof L.Marker?(e.dragging.disable(),e.off("dragend",this._onMarkerDragEnd,this).off("touchmove",this._onTouchMove,this).off("MSPointerMove",this._onTouchMove,this).off("touchend",this._onMarkerDragEnd,this).off("MSPointerUp",this._onMarkerDragEnd,this)):e.editing.disable()},_onMouseMove:function(t){this._tooltip.updatePosition(t.latlng)},_onTouchMove:function(t){var e=t.originalEvent.changedTouches[0],i=this._map.mouseEventToLayerPoint(e),o=this._map.layerPointToLatLng(i);t.target.setLatLng(o)},_hasAvailableLayers:function(){return 0!==this._featureGroup.getLayers().length}}),L.EditToolbar.Delete=L.Handler.extend({statics:{TYPE:"remove"},includes:L.Mixin.Events,initialize:function(t,e){if(L.Handler.prototype.initialize.call(this,t),L.Util.setOptions(this,e),this._deletableLayers=this.options.featureGroup,!(this._deletableLayers instanceof L.FeatureGroup))throw new Error("options.featureGroup must be a L.FeatureGroup");this.type=L.EditToolbar.Delete.TYPE},enable:function(){!this._enabled&&this._hasAvailableLayers()&&(this.fire("enabled",{handler:this.type}),this._map.fire("draw:deletestart",{handler:this.type}),L.Handler.prototype.enable.call(this),this._deletableLayers.on("layeradd",this._enableLayerDelete,this).on("layerremove",this._disableLayerDelete,this))},disable:function(){this._enabled&&(this._deletableLayers.off("layeradd",this._enableLayerDelete,this).off("layerremove",this._disableLayerDelete,this),L.Handler.prototype.disable.call(this),this._map.fire("draw:deletestop",{handler:this.type}),this.fire("disabled",{handler:this.type}))},addHooks:function(){var t=this._map;t&&(t.getContainer().focus(),this._deletableLayers.eachLayer(this._enableLayerDelete,this),this._deletedLayers=new L.LayerGroup,this._tooltip=new L.Tooltip(this._map),this._tooltip.updateContent({text:L.drawLocal.edit.handlers.remove.tooltip.text}),this._map.on("mousemove",this._onMouseMove,this))},removeHooks:function(){this._map&&(this._deletableLayers.eachLayer(this._disableLayerDelete,this),this._deletedLayers=null,this._tooltip.dispose(),this._tooltip=null,this._map.off("mousemove",this._onMouseMove,this))},revertLayers:function(){this._deletedLayers.eachLayer(function(t){this._deletableLayers.addLayer(t),t.fire("revert-deleted",{layer:t})},this)},save:function(){this._map.fire("draw:deleted",{layers:this._deletedLayers})},_enableLayerDelete:function(t){var e=t.layer||t.target||t;e.on("click",this._removeLayer,this)},_disableLayerDelete:function(t){var e=t.layer||t.target||t;e.off("click",this._removeLayer,this),this._deletedLayers.removeLayer(e)},_removeLayer:function(t){var e=t.layer||t.target||t;this._deletableLayers.removeLayer(e),this._deletedLayers.addLayer(e),e.fire("deleted")},_onMouseMove:function(t){this._tooltip.updatePosition(t.latlng)},_hasAvailableLayers:function(){return 0!==this._deletableLayers.getLayers().length}})}(window,document); /***/ }), -/* 298 */ +/* 299 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* @@ -42,7 +42,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ var L; if (true) { // AMD - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(333)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(334)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -562,27 +562,27 @@ for (i = 0, l = classes.length; i < l; i++) { /***/ }), -/* 299 */ +/* 300 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var makeClient = __webpack_require__(304); -var xtend = __webpack_require__(353).extendMutable; -var getUser = __webpack_require__(352); -var MapboxGeocoding = __webpack_require__(431); -var MapboxSurface = __webpack_require__(432); -var MapboxDirections = __webpack_require__(433); -var MapboxUploads = __webpack_require__(434); -var MapboxMatching = __webpack_require__(435); -var MapboxDatasets = __webpack_require__(436); -var MapboxMatrix = __webpack_require__(438); -var MapboxTilestats = __webpack_require__(439); -var MapboxStyles = __webpack_require__(440); -var MapboxStatic = __webpack_require__(445); -var MapboxTilesets = __webpack_require__(448); -var MapboxTokens = __webpack_require__(449); +var makeClient = __webpack_require__(305); +var xtend = __webpack_require__(354).extendMutable; +var getUser = __webpack_require__(353); +var MapboxGeocoding = __webpack_require__(432); +var MapboxSurface = __webpack_require__(433); +var MapboxDirections = __webpack_require__(434); +var MapboxUploads = __webpack_require__(435); +var MapboxMatching = __webpack_require__(436); +var MapboxDatasets = __webpack_require__(437); +var MapboxMatrix = __webpack_require__(439); +var MapboxTilestats = __webpack_require__(440); +var MapboxStyles = __webpack_require__(441); +var MapboxStatic = __webpack_require__(446); +var MapboxTilesets = __webpack_require__(449); +var MapboxTokens = __webpack_require__(450); /** @@ -628,7 +628,7 @@ module.exports = MapboxClient; /***/ }), -/* 300 */ +/* 301 */ /***/ (function(module, exports) { /** @@ -891,23 +891,23 @@ if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { /***/ }), -/* 301 */ +/* 302 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const projectVersion = __webpack_require__(450).version; -const _ = __webpack_require__(451); +const projectVersion = __webpack_require__(451).version; +const _ = __webpack_require__(452); const EventEmitter = __webpack_require__(92); -const turfCircle = __webpack_require__(452); -const turfBbox = __webpack_require__(453); -const turfBboxPoly = __webpack_require__(454); -const turfTruncate = __webpack_require__(455); -const turfDestination = __webpack_require__(354); -const turfDistance = __webpack_require__(456); -const turfBearing = __webpack_require__(457); -const turfHelpers = __webpack_require__(310); +const turfCircle = __webpack_require__(453); +const turfBbox = __webpack_require__(454); +const turfBboxPoly = __webpack_require__(455); +const turfTruncate = __webpack_require__(456); +const turfDestination = __webpack_require__(355); +const turfDistance = __webpack_require__(457); +const turfBearing = __webpack_require__(458); +const turfHelpers = __webpack_require__(311); if (window && typeof window.MapboxCircle === 'function') { throw new TypeError('mapbox-gl-circle-' + window.MapboxCircle.VERSION + ' already loaded'); @@ -2263,14 +2263,14 @@ module.exports = exports = MapboxCircle; /***/ }), -/* 302 */ +/* 303 */ /***/ (function(module, exports, __webpack_require__) { !function(t,e){ true?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.turf={})}(this,function(t){"use strict";function e(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.bbox,i=n.id;if(void 0===t)throw new Error("geometry is required");if(e&&e.constructor!==Object)throw new Error("properties must be an Object");r&&N(r),i&&C(i);var o={type:"Feature"};return i&&(o.id=i),r&&(o.bbox=r),o.properties=e||{},o.geometry=t,o}function n(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var i=n.bbox;if(!t)throw new Error("type is required");if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");i&&N(i);var s;switch(t){case"Point":s=r(e).geometry;break;case"LineString":s=a(e).geometry;break;case"Polygon":s=o(e).geometry;break;case"MultiPoint":s=l(e).geometry;break;case"MultiLineString":s=h(e).geometry;break;case"MultiPolygon":s=p(e).geometry;break;default:throw new Error(t+" is invalid")}return i&&(s.bbox=i),s}function r(t,n,r){if(!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!b(t[0])||!b(t[1]))throw new Error("coordinates must contain numbers");return e({type:"Point",coordinates:t},n,r)}function i(t,e,n){if(!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");return c(t.map(function(t){return r(t,e)}),n)}function o(t,n,r){if(!t)throw new Error("coordinates is required");for(var i=0;i=0))throw new Error("precision must be a positive number");var n=Math.pow(10,e||0);return Math.round(t*n)/n}function d(t,e){if(void 0===t||null===t)throw new Error("radians is required");if(e&&"string"!=typeof e)throw new Error("units must be a string");var n=qo[e||"kilometers"];if(!n)throw new Error(e+" units is invalid");return t*n}function y(t,e){if(void 0===t||null===t)throw new Error("distance is required");if(e&&"string"!=typeof e)throw new Error("units must be a string");var n=qo[e||"kilometers"];if(!n)throw new Error(e+" units is invalid");return t/n}function _(t,e){return v(y(t,e))}function m(t){if(null===t||void 0===t)throw new Error("bearing is required");var e=t%360;return e<0&&(e+=360),e}function v(t){if(null===t||void 0===t)throw new Error("radians is required");return 180*(t%(2*Math.PI))/Math.PI}function x(t){if(null===t||void 0===t)throw new Error("degrees is required");return t%360*Math.PI/180}function E(t,e,n){if(null===t||void 0===t)throw new Error("length is required");if(!(t>=0))throw new Error("length must be a positive number");return d(y(t,e),n||"kilometers")}function w(t,e,n){if(null===t||void 0===t)throw new Error("area is required");if(!(t>=0))throw new Error("area must be a positive number");var r=Bo[e||"meters"];if(!r)throw new Error("invalid original units");var i=Bo[n||"kilometers"];if(!i)throw new Error("invalid final units");return t/r*i}function b(t){return!isNaN(t)&&null!==t&&!Array.isArray(t)}function I(t){return!!t&&t.constructor===Object}function N(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(4!==t.length&&6!==t.length)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach(function(t){if(!b(t))throw new Error("bbox must only contain numbers")})}function C(t){if(!t)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof t))throw new Error("id must be a number or a string")}function S(t,e,n){if(null!==t)for(var r,i,o,s,a,u,c,h,l=0,p=0,f=t.type,g="FeatureCollection"===f,d="Feature"===f,y=g?t.features.length:1,_=0;_t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]1&&b(e[0])&&b(e[1]))return e;throw new Error("Coordinate is not a valid Point")}function U(t){if(!t)throw new Error("obj is required");var e;if(t.length?e=t:t.coordinates?e=t.coordinates:t.geometry&&t.geometry.coordinates&&(e=t.geometry.coordinates),e)return Y(e),e;throw new Error("No valid coordinates")}function Y(t){if(t.length>1&&b(t[0])&&b(t[1]))return!0;if(Array.isArray(t[0])&&t[0].length)return Y(t[0]);throw new Error("coordinates must only contain numbers")}function V(t,e,n){if(!e||!n)throw new Error("type and name required");if(!t||t.type!==e)throw new Error("Invalid input to "+n+": must be a "+e+", given "+t.type)}function H(t,e,n){if(!t)throw new Error("No feature passed");if(!n)throw new Error(".featureOf() requires a name");if(!t||"Feature"!==t.type||!t.geometry)throw new Error("Invalid input to "+n+", Feature with geometry required");if(!t.geometry||t.geometry.type!==e)throw new Error("Invalid input to "+n+": must be a "+e+", given "+t.geometry.type)}function W(t,e,n){if(!t)throw new Error("No featureCollection passed");if(!n)throw new Error(".collectionOf() requires a name");if(!t||"FeatureCollection"!==t.type)throw new Error("Invalid input to "+n+", FeatureCollection required");for(var r=0;r=0&&d>=0&&d=0;h--)if(Math.abs(e[h][0][0]-u)<=1e-7&&Math.abs(e[h][0][1]-c)<=1e-7){for(var l=s.path.length-2;l>=0;--l)e[h].unshift(s.path[l]);a=!0;break}a||(e[n++]=s.path)}})}),e}(function(t,e){for(var n=t.length-1,r=t[0].length-1,i={rows:n,cols:r,cells:[]},o=0;o=e?8:0,a|=c>=e?4:0,a|=h>=e?2:0;var p=!1;if(5===(a|=l>=e?1:0)||10===a){var f=(u+c+h+l)/4;5===a&&fe?1:0};r>n;){if(r-n>600){var o=r-n+1,s=e-n+1,a=Math.log(o),u=.5*Math.exp(2*a/3),c=.5*Math.sqrt(a*u*(o-u)/o)*(s-o/2<0?-1:1);it(t,e,Math.max(n,Math.floor(e-s*u/o+c)),Math.min(r,Math.floor(e+(o-s)*u/o+c)),i)}var h=t[e],l=n,p=r;for(ot(t,n,e),i(t[r],h)>0&&ot(t,n,r);l0;)p--}0===i(t[n],h)?ot(t,n,p):ot(t,++p,r),p<=e&&(n=p+1),e<=p&&(r=p-1)}}function ot(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function st(t,e){if(!(this instanceof st))return new st(t,e);this._maxEntries=Math.max(4,t||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),e&&this._initFormat(e),this.clear()}function at(t,e){ut(t,0,t.children.length,e,t)}function ut(t,e,n,r,i){i||(i=yt(null)),i.minX=1/0,i.minY=1/0,i.maxX=-1/0,i.maxY=-1/0;for(var o,s=e;s=t.minX&&e.maxY>=t.minY}function yt(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function _t(t,e,n,r,i){for(var o,s=[e,n];s.length;)(n=s.pop())-(e=s.pop())<=r||(o=e+Math.ceil((n-e)/r/2)*r,Yo(t,o,e,n,i),s.push(e,o,o,n))}function mt(t,e){return e={exports:{}},t(e,e.exports),e.exports}function vt(t,e){if(!(this instanceof vt))return new vt(t,e);if(this.data=t||[],this.length=this.data.length,this.compare=e||function(t,e){return te?1:0},this.length>0)for(var n=(this.length>>1)-1;n>=0;n--)this._down(n)}function xt(t,e,n){e=Math.max(0,void 0===e?2:e),n=n||0;for(var r,i=function(t){for(var e=t[0],n=t[0],r=t[0],i=t[0],o=0;or[0]&&(r=s),s[1]i[1]&&(i=s)}var a=[e,n,r,i],u=a.slice();for(o=0;oo||a.push({node:h,dist:l})}for(;a.length&&!a.peek().node.children;){var p=a.pop(),f=p.node,g=St(f,e,n),d=St(f,r,i);if(p.dist=e.minX&&t[0]<=e.maxX&&t[1]>=e.minY&&t[1]<=e.maxY}function bt(t,e,n){for(var r=Math.min(t[0],e[0]),i=Math.min(t[1],e[1]),o=Math.max(t[0],e[0]),s=Math.max(t[1],e[1]),a=n.search({minX:r,minY:i,maxX:o,maxY:s}),u=0;u0!=os(t,e,r)>0&&os(n,r,t)>0!=os(n,r,e)>0}(a[u].p,a[u].next.p,t,e))return!1;return!0}function It(t){var e=t.p,n=t.next.p;return t.minX=Math.min(e[0],n[0]),t.minY=Math.min(e[1],n[1]),t.maxX=Math.max(e[0],n[0]),t.maxY=Math.max(e[1],n[1]),t}function Nt(t,e){var n={p:t,prev:null,next:null,minX:0,minY:0,maxX:0,maxY:0};return e?(n.next=e.next,n.prev=e,e.next.prev=n,e.next=n):(n.prev=n,n.next=n),n}function Ct(t,e){var n=t[0]-e[0],r=t[1]-e[1];return n*n+r*r}function St(t,e,n){var r=e[0],i=e[1],o=n[0]-r,s=n[1]-i;if(0!==o||0!==s){var a=((t[0]-r)*o+(t[1]-i)*s)/(o*o+s*s);a>1?(r=n[0],i=n[1]):a>0&&(r+=o*a,i+=s*a)}return o=t[0]-r,s=t[1]-i,o*o+s*s}function Mt(t,e,n,r,i,o,s,a){var u,c,h,l,p=n-t,f=r-e,g=s-i,d=a-o,y=t-i,_=e-o,m=p*p+f*f,v=p*g+f*d,x=g*g+d*d,E=p*y+f*_,w=g*y+d*_,b=m*x-v*v,I=b,N=b;0===b?(c=0,I=1,l=w,N=x):(l=m*w-v*E,(c=v*w-x*E)<0?(c=0,l=w,N=x):c>I&&(c=I,l=w+v,N=x)),l<0?(l=0,-E<0?c=0:-E>m?c=I:(c=-E,I=m)):l>N&&(l=N,-E+v<0?c=0:-E+v>m?c=I:(c=-E+v,I=m)),u=0===c?0:c/I;var C=(1-(h=0===l?0:l/N))*i+h*s-((1-u)*t+u*n),S=(1-h)*o+h*a-((1-u)*e+u*r);return C*C+S*S}function Lt(t,e){if(e=e||{},!I(e))throw new Error("options is invalid");var n=e.concavity||1/0,r=[];if(S(t,function(t){r.push([t[0],t[1]])}),!r.length)return null;var i=ss(r,n);return i.length>3?o([i]):null}function Pt(t,e,n){if("object"!=typeof(n=n||{}))throw new Error("options is invalid");var r=n.ignoreBoundary;if(!t)throw new Error("point is required");if(!e)throw new Error("polygon is required");var i=X(t),o=U(e),s=e.geometry?e.geometry.type:e.type,a=e.bbox;if(a&&!1===function(t,e){return e[0]<=t[0]&&e[1]<=t[1]&&e[2]>=t[0]&&e[3]>=t[1]}(i,a))return!1;"Polygon"===s&&(o=[o]);for(var u=0,c=!1;ut[1]!=c>t[1]&&t[0]<(u-s)*(t[1]-a)/(c-a)+s&&(r=!r)}return r}function Rt(t,e){var n=[];return A(e,function(e){O(t,function(t){Pt(t,e)&&n.push(t)})}),c(n)}function Tt(t,e){if("FeatureCollection"!==t.type)throw new Error("points must be a FeatureCollection");var n=!1;return c(function(t){if(t.length<3)return[];t.sort(Dt);var e,n,r,i,o,s,a=t.length-1,u=t[a].x,c=t[0].x,h=t[a].y,l=h;for(;a--;)t[a].yl&&(l=t[a].y);var p,f=c-u,g=l-h,d=f>g?f:g,y=.5*(c+u),_=.5*(l+h),m=[new At({x:y-20*d,y:_-d,__sentinel:!0},{x:y,y:_+20*d,__sentinel:!0},{x:y+20*d,y:_-d,__sentinel:!0})],v=[],x=[];a=t.length;for(;a--;){for(x.length=0,p=m.length;p--;)(f=t[a].x-m[p].x)>0&&f*f>m[p].r?(v.push(m[p]),m.splice(p,1)):(g=t[a].y-m[p].y,f*f+g*g>m[p].r||(x.push(m[p].a,m[p].b,m[p].b,m[p].c,m[p].c,m[p].a),m.splice(p,1)));for(Ft(x),p=x.length;p;)n=x[--p],e=x[--p],r=t[a],i=n.x-e.x,o=n.y-e.y,s=2*(i*(r.y-n.y)-o*(r.x-n.x)),Math.abs(s)>1e-12&&m.push(new At(e,n,r))}Array.prototype.push.apply(v,m),a=v.length;for(;a--;)(v[a].a.__sentinel||v[a].b.__sentinel||v[a].c.__sentinel)&&v.splice(a,1);return v}(t.features.map(function(t){var r={x:t.geometry.coordinates[0],y:t.geometry.coordinates[1]};return e?r.z=t.properties[e]:3===t.geometry.coordinates.length&&(n=!0,r.z=t.geometry.coordinates[2]),r})).map(function(t){var e=[t.a.x,t.a.y],r=[t.b.x,t.b.y],i=[t.c.x,t.c.y],s={};return n?(e.push(t.a.z),r.push(t.b.z),i.push(t.c.z)):s={a:t.a.z,b:t.b.z,c:t.c.z},o([[e,r,i,e]],s)}))}function At(t,e,n){this.a=t,this.b=e,this.c=n;var r,i,o=e.x-t.x,s=e.y-t.y,a=n.x-t.x,u=n.y-t.y,c=o*(t.x+e.x)+s*(t.y+e.y),h=a*(t.x+n.x)+u*(t.y+n.y),l=2*(o*(n.y-e.y)-s*(n.x-e.x));this.x=(u*c-s*h)/l,this.y=(o*h-a*c)/l,r=this.x-t.x,i=this.y-t.y,this.r=r*r+i*i}function Dt(t,e){return e.x-t.x}function Ft(t){var e,n,r,i,o,s=t.length;t:for(;s;)for(n=t[--s],e=t[--s],r=s;r;)if(o=t[--r],i=t[--r],e===i&&n===o||e===o&&n===i){t.splice(s,2),t.splice(r,2),s-=2;continue t}}function qt(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.units,i=X(t),o=X(e),s=x(o[1]-i[1]),a=x(o[0]-i[0]),u=x(i[1]),c=x(o[1]),h=Math.pow(Math.sin(s/2),2)+Math.pow(Math.sin(a/2),2)*Math.cos(u)*Math.cos(c);return d(2*Math.atan2(Math.sqrt(h),Math.sqrt(1-h)),r)}function Gt(t){if(!t)throw new Error("geojson is required");switch(t.type){case"Feature":return Bt(t);case"FeatureCollection":return function(t){var e={type:"FeatureCollection"};return Object.keys(t).forEach(function(n){switch(n){case"type":case"features":return;default:e[n]=t[n]}}),e.features=t.features.map(function(t){return Bt(t)}),e}(t);case"Point":case"LineString":case"Polygon":case"MultiPoint":case"MultiLineString":case"MultiPolygon":case"GeometryCollection":return zt(t);default:throw new Error("unknown GeoJSON type")}}function Bt(t){var e={type:"Feature"};return Object.keys(t).forEach(function(n){switch(n){case"type":case"properties":case"geometry":return;default:e[n]=t[n]}}),e.properties=kt(t.properties),e.geometry=zt(t.geometry),e}function kt(t){var e={};return t?(Object.keys(t).forEach(function(n){var r=t[n];"object"==typeof r?null===r?e[n]=null:r.length?e[n]=r.map(function(t){return t}):e[n]=kt(r):e[n]=r}),e):e}function zt(t){var e={type:t.type};return t.bbox&&(e.bbox=t.bbox),"GeometryCollection"===t.type?(e.geometries=t.geometries.map(function(t){return zt(t)}),e):(e.coordinates=jt(t.coordinates),e)}function jt(t){return"object"!=typeof t[0]?t.slice():t.map(function(t){return jt(t)})}function Xt(t,e){function n(t,e){e.length&&e.pop();for(var n=c[t<0?~t:t],r=0,i=n.length;r1)for(var s,a,u=1,c=i(r[0]);uc&&(a=r[0],r[0]=r[u],r[u]=a,c=s);return r})}}function Yt(t,e,n){for(var r,i=e+(n---e>>1);e=Math.abs(h)?c>0?o<=r&&r<=a:a<=r&&r<=o:h>0?s<=i&&i<=u:u<=i&&i<=s)}(n,i=e[a+1],r)||o.push(r);return o.push(i),o}function ne(t,e){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r}function re(t,e,n){var r=e.x,i=e.y,o=n.x-r,s=n.y-i;if(0!==o||0!==s){var a=((t.x-r)*o+(t.y-i)*s)/(o*o+s*s);a>1?(r=n.x,i=n.y):a>0&&(r+=o*a,i+=s*a)}return o=t.x-r,s=t.y-i,o*o+s*s}function ie(t,e,n,r,i){for(var o,s=r,a=e+1;as&&(o=a,s=u)}s>r&&(o-e>1&&ie(t,e,o,r,i),i.push(t[o]),n-o>1&&ie(t,o,n,r,i))}function oe(t,e,n){if(t.length<=2)return t;var r=void 0!==e?e*e:1;return t=n?t:function(t,e){for(var n,r=t[0],i=[r],o=1,s=t.length;oe&&(i.push(n),r=n);return r!==n&&i.push(n),i}(t,r),t=function(t,e){var n=t.length-1,r=[t[0]];return ie(t,0,n,e,r),r.push(t[n]),r}(t,r)}function se(t,e,n){return oe(t.map(function(t){return{x:t[0],y:t[1],z:t[2]}}),e,n).map(function(t){return t.z?[t.x,t.y,t.z]:[t.x,t.y]})}function ae(t,e,n){return t.map(function(t){var r=t.map(function(t){return{x:t[0],y:t[1]}});if(r.length<4)throw new Error("invalid polygon");for(var i=oe(r,e,n).map(function(t){return[t.x,t.y]});!function(t){return!(t.length<3||3===t.length&&t[2][0]===t[0][0]&&t[2][1]===t[0][1])}(i);)i=oe(r,e-=.01*e,n).map(function(t){return[t.x,t.y]});return i[i.length-1][0]===i[0][0]&&i[i.length-1][1]===i[0][1]||i.push(i[0]),i})}function ue(t,e){if(e=e||{},!I(e))throw new Error("options is invalid");var n=e.resolution||1e4,r=e.sharpness||.85;if(!t)throw new Error("line is required");if(!b(n))throw new Error("resolution must be an number");if(!b(r))throw new Error("sharpness must be an number");for(var i=[],o=new bs({points:J(t).coordinates.map(function(t){return{x:t[0],y:t[1]}}),duration:n,sharpness:r}),s=0;s=qt(t.slice(0,2),[e,i])){var o=(n+i)/2;return[e,o-(r-e)/2,r,o+(r-e)/2]}var s=(e+r)/2;return[s-(i-n)/2,n,s+(i-n)/2,i]}function pe(t,e,n,i){if(i=i||{},!I(i))throw new Error("options is invalid");var o=i.units,s=i.properties,a=X(t),u=x(a[0]),c=x(a[1]),h=x(n),l=y(e,o),p=Math.asin(Math.sin(c)*Math.cos(l)+Math.cos(c)*Math.sin(l)*Math.cos(h));return r([v(u+Math.atan2(Math.sin(h)*Math.sin(l)*Math.cos(c),Math.cos(l)-Math.sin(c)*Math.sin(p))),v(p)],s)}function fe(t,e,n){var r=(n=n||{}).steps||64,i=n.properties;if(!t)throw new Error("center is required");if(!e)throw new Error("radius is required");if("object"!=typeof n)throw new Error("options must be an object");if("number"!=typeof r)throw new Error("steps must be a number");r=r||64,i=i||t.properties||{};for(var s=[],a=0;a=r.next.y&&r.next.y!==r.y){var a=r.x+(o-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(a<=i&&a>s){if(s=a,a===i){if(o===r.y)return r;if(o===r.next.y)return r.next}n=r.x=r.x&&r.x>=h&&i!==r.x&&Ne(on.x)&&Le(r,t)&&(n=r,p=u),r=r.next;return n}(t,e)){var n=Pe(e,t);Ee(n,n.next)}}(c[i],n),n=Ee(n,n.next);return n}(t,e,o,n)),t.length>80*n){a=c=t[0],u=h=t[1];for(var g=n;gc&&(c=l),p>h&&(h=p);f=0!==(f=Math.max(c-a,h-u))?1/f:0}return we(o,s,n,a,u,f),s}function xe(t,e,n,r,i){var o,s;if(i===Ae(t,e,n,r)>0)for(o=e;o=e;o-=r)s=Oe(o,t[o],t[o+1],s);return s&&Se(s,s.next)&&(Re(s),s=s.next),s}function Ee(t,e){if(!t)return t;e||(e=t);var n,r=t;do{if(n=!1,r.steiner||!Se(r,r.next)&&0!==Ce(r.prev,r,r.next))r=r.next;else{if(Re(r),(r=e=r.prev)===r.next)break;n=!0}}while(n||r!==e);return e}function we(t,e,n,r,i,o,s){if(t){!s&&o&&function(t,e,n,r){var i=t;do{null===i.z&&(i.z=Ie(i.x,i.y,e,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,n,r,i,o,s,a,u,c=1;do{for(n=t,t=null,o=null,s=0;n;){for(s++,r=n,a=0,e=0;e0||u>0&&r;)0!==a&&(0===u||!r||n.z<=r.z)?(i=n,n=n.nextZ,a--):(i=r,r=r.nextZ,u--),o?o.nextZ=i:t=i,i.prevZ=o,o=i;n=r}o.nextZ=null,c*=2}while(s>1)}(i)}(t,r,i,o);for(var a,u,c=t;t.prev!==t.next;)if(a=t.prev,u=t.next,o?function(t,e,n,r){var i=t.prev,o=t,s=t.next;if(Ce(i,o,s)>=0)return!1;var a=i.xo.x?i.x>s.x?i.x:s.x:o.x>s.x?o.x:s.x,h=i.y>o.y?i.y>s.y?i.y:s.y:o.y>s.y?o.y:s.y,l=Ie(a,u,e,n,r),p=Ie(c,h,e,n,r),f=t.nextZ;for(;f&&f.z<=p;){if(f!==t.prev&&f!==t.next&&Ne(i.x,i.y,o.x,o.y,s.x,s.y,f.x,f.y)&&Ce(f.prev,f,f.next)>=0)return!1;f=f.nextZ}f=t.prevZ;for(;f&&f.z>=l;){if(f!==t.prev&&f!==t.next&&Ne(i.x,i.y,o.x,o.y,s.x,s.y,f.x,f.y)&&Ce(f.prev,f,f.next)>=0)return!1;f=f.prevZ}return!0}(t,r,i,o):function(t){var e=t.prev,n=t,r=t.next;if(Ce(e,n,r)>=0)return!1;var i=t.next.next;for(;i!==t.prev;){if(Ne(e.x,e.y,n.x,n.y,r.x,r.y,i.x,i.y)&&Ce(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}(t))e.push(a.i/n),e.push(t.i/n),e.push(u.i/n),Re(t),t=u.next,c=u.next;else if((t=u)===c){s?1===s?we(t=function(t,e,n){var r=t;do{var i=r.prev,o=r.next.next;!Se(i,o)&&Me(i,r,r.next,o)&&Le(i,o)&&Le(o,i)&&(e.push(i.i/n),e.push(r.i/n),e.push(o.i/n),Re(r),Re(r.next),r=t=o),r=r.next}while(r!==t);return r}(t,e,n),e,n,r,i,o,2):2===s&&function(t,e,n,r,i,o){var s=t;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&function(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&Me(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&Le(t,e)&&Le(e,t)&&function(t,e){var n=t,r=!1,i=(t.x+e.x)/2,o=(t.y+e.y)/2;do{n.y>o!=n.next.y>o&&n.next.y!==n.y&&i<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==t);return r}(t,e)}(s,a)){var u=Pe(s,a);return s=Ee(s,s.next),u=Ee(u,u.next),we(s,e,n,r,i,o),void we(u,e,n,r,i,o)}a=a.next}s=s.next}while(s!==t)}(t,e,n,r,i,o):we(Ee(t),e,n,r,i,o,1);break}}}function be(t,e){return t.x-e.x}function Ie(t,e,n,r,i){return t=32767*(t-n)*i,e=32767*(e-r)*i,t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t|e<<1}function Ne(t,e,n,r,i,o,s,a){return(i-s)*(e-a)-(t-s)*(o-a)>=0&&(t-s)*(r-a)-(n-s)*(e-a)>=0&&(n-s)*(o-a)-(i-s)*(r-a)>=0}function Ce(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function Se(t,e){return t.x===e.x&&t.y===e.y}function Me(t,e,n,r){return!!(Se(t,e)&&Se(n,r)||Se(t,r)&&Se(n,e))||Ce(t,e,n)>0!=Ce(t,e,r)>0&&Ce(n,r,t)>0!=Ce(n,r,e)>0}function Le(t,e){return Ce(t.prev,t,t.next)<0?Ce(t,e,t.next)>=0&&Ce(t,t.prev,e)>=0:Ce(t,e,t.prev)<0||Ce(t,t.next,e)<0}function Pe(t,e){var n=new Te(t.i,t.x,t.y),r=new Te(e.i,e.x,e.y),i=t.next,o=e.prev;return t.next=e,e.prev=t,n.next=i,i.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r}function Oe(t,e,n,r){var i=new Te(t,e,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function Re(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Te(t,e,n){this.i=t,this.x=e,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Ae(t,e,n,r){for(var i=0,o=e,s=n-r;o0&&(r+=t[i-1].length,n.holes.push(r))}return n}(t),n=Is(e.vertices,e.holes,2),r=[],i=[];n.forEach(function(t,r){var o=n[r];i.push([e.vertices[2*o],e.vertices[2*o+1]])});for(var s=0;se?1:0})}function Ge(t,e,n,r,i){for(;r>n;){if(r-n>600){var o=r-n+1,s=e-n+1,a=Math.log(o),u=.5*Math.exp(2*a/3),c=.5*Math.sqrt(a*u*(o-u)/o)*(s-o/2<0?-1:1);Ge(t,e,Math.max(n,Math.floor(e-s*u/o+c)),Math.min(r,Math.floor(e+(o-s)*u/o+c)),i)}var h=t[e],l=n,p=r;for(Be(t,n,e),i(t[r],h)>0&&Be(t,n,r);l0;)p--}0===i(t[n],h)?Be(t,n,p):Be(t,++p,r),p<=e&&(n=p+1),e<=p&&(r=p-1)}}function Be(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function ke(t,e){if(!(this instanceof ke))return new ke(t,e);this._maxEntries=Math.max(4,t||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),e&&this._initFormat(e),this.clear()}function ze(t,e){je(t,0,t.children.length,e,t)}function je(t,e,n,r,i){i||(i=Ze(null)),i.minX=1/0,i.minY=1/0,i.maxX=-1/0,i.maxY=-1/0;for(var o,s=e;s=t.minX&&e.maxY>=t.minY}function Ze(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function Ke(t,e,n,r,i){for(var o,s=[e,n];s.length;)(n=s.pop())-(e=s.pop())<=r||(qe(t,o=e+Math.ceil((n-e)/r/2)*r,e,n,i),s.push(e,o,o,n))}function Qe(t){var e=ke(t);return e.insert=function(t){if(Array.isArray(t)){var e=t;(t=$e(e)).bbox=e}else t.bbox=t.bbox?t.bbox:tn(t);return ke.prototype.insert.call(this,t)},e.load=function(t){var e=[];return Array.isArray(t)?t.forEach(function(t){var n=$e(t);n.bbox=t,e.push(n)}):O(t,function(t){t.bbox=t.bbox?t.bbox:tn(t),e.push(t)}),ke.prototype.load.call(this,e)},e.remove=function(t){if(Array.isArray(t)){var e=t;(t=$e(e)).bbox=e}return ke.prototype.remove.call(this,t)},e.clear=function(){return ke.prototype.clear.call(this)},e.search=function(t){return{type:"FeatureCollection",features:ke.prototype.search.call(this,this.toBBox(t))}},e.collides=function(t){return ke.prototype.collides.call(this,this.toBBox(t))},e.all=function(){return{type:"FeatureCollection",features:ke.prototype.all.call(this)}},e.toJSON=function(){return ke.prototype.toJSON.call(this)},e.fromJSON=function(t){return ke.prototype.fromJSON.call(this,t)},e.toBBox=function(t){var e;return e=t.bbox?t.bbox:Array.isArray(t)&&4===t.length?t:tn(t),{minX:e[0],minY:e[1],maxX:e[2],maxY:e[3]}},e}function $e(t){var e=[t[0],t[1]],n=[t[0],t[3]],r=[t[2],t[3]];return{type:"Feature",bbox:t,properties:{},geometry:{type:"Polygon",coordinates:[[e,[t[2],t[1]],r,n,e]]}}}function tn(t){var e=[1/0,1/0,-1/0,-1/0];return S(t,function(t){e[0]>t[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]i?n:i,r>o?r:o]}(t,r),n.push(i),r}),n}(n,t.properties);r.forEach(function(t){t.id=e.length,e.push(t)})})}(t,e)}),c(e)}function nn(t,n){var r={},i=[];if("LineString"===t.type&&(t=e(t)),"LineString"===n.type&&(n=e(n)),"Feature"===t.type&&"Feature"===n.type&&"LineString"===t.geometry.type&&"LineString"===n.geometry.type&&2===t.geometry.coordinates.length&&2===n.geometry.coordinates.length){var o=rn(t,n);return o&&i.push(o),c(i)}var s=Qe();return s.load(en(n)),O(en(t),function(t){O(s.search(t),function(e){var n=rn(t,e);if(n){var o=U(n).join(",");r[o]||(r[o]=!0,i.push(n))}})}),c(i)}function rn(t,e){var n=U(t),i=U(e);if(2!==n.length)throw new Error(" line1 must only contain 2 coordinates");if(2!==i.length)throw new Error(" line2 must only contain 2 coordinates");var o=n[0][0],s=n[0][1],a=n[1][0],u=n[1][1],c=i[0][0],h=i[0][1],l=i[1][0],p=i[1][1],f=(p-h)*(a-o)-(l-c)*(u-s),g=(l-c)*(s-h)-(p-h)*(o-c),d=(a-o)*(s-h)-(u-s)*(o-c);if(0===f)return null;var y=g/f,_=d/f;if(y>=0&&y<=1&&_>=0&&_<=1){return r([o+y*(a-o),s+y*(u-s)])}return null}function on(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var i=t.geometry?t.geometry.type:t.type;if("LineString"!==i&&"MultiLineString"!==i)throw new Error("lines must be LineString or MultiLineString");var o=r([1/0,1/0],{dist:1/0}),s=0;return F(t,function(t){for(var i=U(t),u=0;u0&&((_=y.features[0]).properties.dist=qt(e,_,n),_.properties.location=s+qt(c,_,n)),c.properties.dist180?-(360-i):i}function an(t,e){var n=x(t[1]),r=x(e[1]),i=x(e[0]-t[0]);i>Math.PI&&(i-=2*Math.PI),i<-Math.PI&&(i+=2*Math.PI);var o=Math.log(Math.tan(r/2+Math.PI/4)/Math.tan(n/2+Math.PI/4));return(v(Math.atan2(i,o))+360)%360}function un(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.units;if(!t)throw new Error("from point is required");if(!e)throw new Error("to point is required");var i=X(t),o=X(e);o[0]+=o[0]-i[0]>180?-360:i[0]-o[0]>180?360:0;return E(function(t,e,n){var r=n=void 0===n?Fo:Number(n),i=t[1]*Math.PI/180,o=e[1]*Math.PI/180,s=o-i,a=Math.abs(e[0]-t[0])*Math.PI/180;a>Math.PI&&(a-=2*Math.PI);var u=Math.log(Math.tan(o/2+Math.PI/4)/Math.tan(i/2+Math.PI/4)),c=Math.abs(u)>1e-11?s/u:Math.cos(i);return Math.sqrt(s*s+c*c*a*a)*r}(i,o),"meters",r)}function cn(t,e){return ln(t,"mercator",e)}function hn(t,e){return ln(t,"wgs84",e)}function ln(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.mutate;if(!t)throw new Error("geojson is required");return Array.isArray(t)&&b(t[0])?t="mercator"===e?pn(t):fn(t):(!0!==r&&(t=Gt(t)),S(t,function(t){var n="mercator"===e?pn(t):fn(t);t[0]=n[0],t[1]=n[1]})),t}function pn(t){var e=Math.PI/180,n=20037508.342789244,r=[6378137*(Math.abs(t[0])<=180?t[0]:t[0]-360*function(t){return t<0?-1:t>0?1:0}(t[0]))*e,6378137*Math.log(Math.tan(.25*Math.PI+.5*t[1]*e))];return r[0]>n&&(r[0]=n),r[0]<-n&&(r[0]=-n),r[1]>n&&(r[1]=n),r[1]<-n&&(r[1]=-n),r}function fn(t){var e=180/Math.PI;return[t[0]*e/6378137,(.5*Math.PI-2*Math.atan(Math.exp(-t[1]/6378137)))*e]}function gn(t,n,i){if(i=i||{},!I(i))throw new Error("options is invalid");if(!t)throw new Error("pt is required");if(Array.isArray(t)?t=r(t):"Point"===t.type?t=e(t):H(t,"Point","point"),!n)throw new Error("line is required");Array.isArray(n)?n=a(n):"LineString"===n.type?n=e(n):H(n,"LineString","line");var o=1/0,s=t.geometry.coordinates;return G(n,function(t){var e=t.geometry.coordinates[0],n=t.geometry.coordinates[1],a=function(t,e,n,i){var o=i.mercator,s=!0!==o?qt(e,t,i):dn(e,t,i),a=m(!0!==o?ge(e,t):sn(e,t)),u=m(!0!==o?ge(e,n):sn(e,n)),c=Math.abs(a-u);if(c>90)return s;var h=(u+180)%360,l=m(!0!==o?ge(n,t):sn(n,t)),p=Math.abs(l-h);p>180&&(p=Math.abs(p-360));return p>90?!0!==o?qt(t,n,i):dn(t,n,i):!0!==o?s*Math.sin(x(c)):function(t,e,n,i){var o=0;(Math.abs(t[0])>=180||Math.abs(e[0])>=180||Math.abs(n[0])>=180)&&(o=t[0]>0||e[0]>0||n[0]>0?-180:180);var s=r(n),a=cn([t[0]+o,t[1]]),u=cn([e[0]+o,e[1]]),c=cn([n[0]+o,n[1]]),h=hn(function(t,e,n){var r=t[0],i=t[1],o=e[0],s=e[1],a=n[0],u=n[1],c=o-r,h=s-i,l=((a-r)*c+(u-i)*h)/(c*c+h*h);return[r+l*c,i+l*h]}(a,u,c));return 0!==o&&(h[0]-=o),un(s,h,i)}(e,n,t,i)}(s,e,n,i);o>a&&(o=a)}),o}function dn(t,e,n){var r=n.units,i=0;Math.abs(t[0])>=180&&(i=t[0]>0?-180:180),Math.abs(e[0])>=180&&(i=e[0]>0?-180:180);var o=cn([t[0]+i,t[1]]),s=cn([e[0]+i,e[1]]),a=function(t){return t*t},u=a(o[0]-s[0])+a(o[1]-s[1]);return E(Math.sqrt(u),"meters",r)}function yn(t){for(var n=function(t){if("FeatureCollection"!==t.type)return"Feature"!==t.type?c([e(t)]):c([t]);return t}(t),i=de(n),o=!1,s=0;!o&&s0){e+=Math.abs(En(t[0]));for(var n=1;n2){for(s=0;s=h&&l===i.length-1);l++){if(h>e&&0===o.length){if(!(s=e-h))return o.push(i[l]),a(o);u=ge(i[l],i[l-1])-180,c=pe(i[l],s,u,r),o.push(c.geometry.coordinates)}if(h>=n)return(s=n-h)?(u=ge(i[l],i[l-1])-180,c=pe(i[l],s,u,r),o.push(c.geometry.coordinates),a(o)):(o.push(i[l]),a(o));if(h>=e&&o.push(i[l]),l===i.length-1)return a(o);h+=qt(i[l],i[l+1],r)}return a(i[i.length-1])}function Nn(t,e,n){var r=(n=n||{}).ignoreEndVertices;if(!I(n))throw new Error("invalid options");if(!t)throw new Error("pt is required");if(!e)throw new Error("line is required");for(var i=X(t),o=U(e),s=0;s=Math.abs(f)?p>0?s<=i&&i<=u:u<=i&&i<=s:f>0?a<=o&&o<=c:c<=o&&o<=a;if("start"===r)return Math.abs(p)>=Math.abs(f)?p>0?s0?a=Math.abs(f)?p>0?s<=i&&i0?a<=o&&o=Math.abs(f)?p>0?s0?ae[0])&&(!(t[2]e[1])&&!(t[3] is required");if("number"!=typeof n)throw new Error(" must be a number");if("number"!=typeof r)throw new Error(" must be a number");!1!==i&&void 0!==i||(t=JSON.parse(JSON.stringify(t)));var o=Math.pow(10,n);return S(t,function(t){!function(t,e,n){t.length>n&&t.splice(n,t.length);for(var r=0;r=0==e}function Tn(t,e){if(!t||!e)return!1;if(t.length!=e.length)return!1;for(var n=0,r=t.length;n1&&n.push(a(l)),c(n)}function Fn(t,e){if(!e.features.length)throw new Error("lines must contain features");if(1===e.features.length)return e.features[0];var n,r=1/0;return O(e,function(e){var i=on(e,t).properties.dist;ip&&g.push(pe(t,e,p,s).geometry.coordinates),a(g,h)}function Bn(t){var e=t%360;return e<0&&(e+=360),e}function kn(t,e){if(e=e||{},!I(e))throw new Error("options is invalid");var n=e.properties,r=K(t),i=U(t);if(n=n||t.properties||{},!i.length)throw new Error("polygon must contain coordinates");switch(r){case"Polygon":return zn(i,n);case"MultiPolygon":var o=[];return i.forEach(function(t){o.push(zn(t,n))}),c(o);default:throw new Error("geom "+r+" not supported")}}function zn(t,e){return t.length>1?h(t,e):a(t[0],e)}function jn(t,e){if(e=e||{},!I(e))throw new Error("options is invalid");var n=e.properties,r=e.autoComplete,i=e.orderCoords;if(!t)throw new Error("lines is required");r=void 0===r||r,i=void 0===i||i;switch(K(t)){case"FeatureCollection":case"GeometryCollection":var o=[];return(t.features?t.features:t.geometries).forEach(function(t){o.push(U(Xn(t,{},r,i)))}),p(o,n)}return Xn(t,n,r,i)}function Xn(t,e,n,r){e=e||t.properties||{};var i=U(t),s=K(t);if(!i.length)throw new Error("line must contain coordinates");switch(s){case"LineString":return n&&(i=Un(i)),o([i],e);case"MultiLineString":var u=[],c=0;return i.forEach(function(t){if(n&&(t=Un(t)),r){var e=function(t){var e=t[0],n=t[1],r=t[2],i=t[3];return Math.abs(e-r)*Math.abs(n-i)}(j(a(t)));e>c?(u.unshift(t),c=e):u.push(t)}else u.push(t)}),o(u,e);default:throw new Error("geometry type "+s+" is not supported")}}function Un(t){var e=t[0],n=e[0],r=e[1],i=t[t.length-1],o=i[0],s=i[1];return n===o&&r===s||t.push(e),t}function Yn(t,e,n){var r,i,o,s,a,u=t.length,c=Hn(t[0],e),h=[];for(n||(n=[]),r=1;re[2]&&(n|=2),t[1]e[3]&&(n|=8),n}function Wn(t,e){for(var n=[],r=0;r0&&(i[0][0]===i[i.length-1][0]&&i[0][1]===i[i.length-1][1]||i.push(i[0]),i.length>=4&&n.push(i))}return n}function Jn(t){return"[object Arguments]"===Object.prototype.toString.call(t)}function Zn(t,e,n){return n||(n={}),t===e||(t instanceof Date&&e instanceof Date?t.getTime()===e.getTime():!t||!e||"object"!=typeof t&&"object"!=typeof e?(n.strict,t===e):function(t,e,n){var r,i;if(Kn(t)||Kn(e))return!1;if(t.prototype!==e.prototype)return!1;if(Jn(t))return!!Jn(e)&&(t=Bs.call(t),e=Bs.call(e),Zn(t,e,n));if(Qn(t)){if(!Qn(e))return!1;if(t.length!==e.length)return!1;for(r=0;r=0;r--)if(o[r]!==s[r])return!1;for(r=o.length-1;r>=0;r--)if(i=o[r],!Zn(t[i],e[i],n))return!1;return typeof t==typeof e}(t,e,n))}function Kn(t){return null===t||void 0===t}function Qn(t){return!(!t||"object"!=typeof t||"number"!=typeof t.length)&&("function"==typeof t.copy&&"function"==typeof t.slice&&!(t.length>0&&"number"!=typeof t[0]))}function $n(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.tolerance||0,i=[],o=Qe();o.load(en(t));var s;return G(e,function(t){var e=!1;O(o.search(t),function(n){if(!1===e){var i=U(t).sort(),o=U(n).sort();Zn(i,o)?(e=!0,s=s?tr(s,t):t):(0===r?Nn(i[0],n)&&Nn(i[1],n):on(n,i[0]).properties.dist<=r&&on(n,i[1]).properties.dist<=r)?(e=!0,s=s?tr(s,t):t):(0===r?Nn(o[0],t)&&Nn(o[1],t):on(t,o[0]).properties.dist<=r&&on(t,o[1]).properties.dist<=r)&&(s=s?tr(s,n):n)}}),!1===e&&s&&(i.push(s),s=void 0)}),s&&i.push(s),c(i)}function tr(t,e){var n=U(e),r=U(t),i=r[0],o=r[r.length-1],s=t.geometry.coordinates;return Zn(n[0],i)?s.unshift(n[1]):Zn(n[0],o)?s.push(n[1]):Zn(n[1],i)?s.unshift(n[0]):Zn(n[1],o)&&s.push(n[0]),t}function er(t){var e=t%360;return e<0&&(e+=360),e}function nr(t,e,n,i){if(i=i||{},!I(i))throw new Error("options is invalid");var o=i.units,s=i.properties;if(!t)throw new Error("origin is required");if(void 0===e||null===e)throw new Error("distance is required");if(void 0===n||null===n)throw new Error("bearing is required");if(!(e>=0))throw new Error("distance must be greater than 0");var a=E(e,o,"meters"),u=X(t),c=function(t,e,n,r){r=void 0===r?Fo:Number(r);var i=e/r,o=t[0]*Math.PI/180,s=x(t[1]),a=x(n),u=i*Math.cos(a),c=s+u;Math.abs(c)>Math.PI/2&&(c=c>0?Math.PI-c:-Math.PI-c);var h=Math.log(Math.tan(c/2+Math.PI/4)/Math.tan(s/2+Math.PI/4)),l=Math.abs(h)>1e-11?u/h:Math.cos(s),p=i*Math.sin(a)/l;return[(180*(o+p)/Math.PI+540)%360-180,180*c/Math.PI]}(u,a,n);return c[0]+=c[0]-u[0]>180?-360:u[0]-c[0]>180?360:0,r(c,s)}function rr(t,e,n,r,i,o){for(var s=0;s0?function(t,e,n){return ir(t,e,n)<0}(e,a,i)||(i=a):n>0&&r<=0&&(function(t,e,n){return ir(t,e,n)>0}(e,a,o)||(o=a)),n=r}return[i,o]}function ir(t,e,n){return(e[0]-t[0])*(n[1]-t[1])-(n[0]-t[0])*(e[1]-t[1])}function or(t){if(!t)throw new Error("line is required");var e=t.geometry?t.geometry.type:t.type;if(!Array.isArray(t)&&"LineString"!==e)throw new Error("geometry must be a LineString");for(var n,r,i=U(t),o=0,s=1;s0}function sr(t,e){switch("Feature"===t.type?t.geometry.type:t.type){case"GeometryCollection":return A(t,function(t){sr(t,e)}),t;case"LineString":return ar(U(t),e),t;case"Polygon":return ur(U(t),e),t;case"MultiLineString":return U(t).forEach(function(t){ar(t,e)}),t;case"MultiPolygon":return U(t).forEach(function(t){ur(t,e)}),t;case"Point":case"MultiPoint":return t}}function ar(t,e){or(t)===e&&t.reverse()}function ur(t,e){or(t[0])!==e&&t[0].reverse();for(var n=1;ns?128:64,c|=ls?32:16,c|=ps?8:4;var g=+(c|=fs?2:1),d=0;if(17===c||18===c||33===c||34===c||38===c||68===c||72===c||98===c||102===c||132===c||136===c||137===c||152===c||153===c){var y=(h+l+p+f)/4;d=y>s?2:y0?(c=156,d=4):c=152:33===c?d>0?(c=139,d=4):c=137:72===c?d>0?(c=99,d=4):c=98:132===c&&(d>0?(c=39,d=4):c=38)}if(0!=c&&170!=c){var _,m,v,x,E,w,b,I;_=m=v=x=E=w=b=I=.5;var N=[];1===c?(v=1-lr(e,p,f),I=1-lr(e,h,f),N.push(Sa[c])):169===c?(v=lr(s,f,p),I=lr(s,f,h),N.push(Sa[c])):4===c?(w=1-lr(e,l,p),x=lr(e,f,p),N.push(Na[c])):166===c?(w=lr(s,p,l),x=1-lr(s,p,f),N.push(Na[c])):16===c?(E=lr(e,p,l),m=lr(e,h,l),N.push(Ia[c])):154===c?(E=1-lr(s,l,p),m=1-lr(s,l,h),N.push(Ia[c])):64===c?(b=lr(e,f,h),_=1-lr(e,l,h),N.push(La[c])):106===c?(b=1-lr(s,h,f),_=lr(s,h,l),N.push(La[c])):168===c?(x=lr(s,f,p),v=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),N.push(Ca[c]),N.push(Sa[c])):2===c?(x=1-lr(e,p,f),v=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),N.push(Ca[c]),N.push(Sa[c])):162===c?(E=lr(s,p,l),w=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),N.push(Ca[c]),N.push(Sa[c])):8===c?(E=1-lr(e,l,p),w=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),N.push(Ia[c]),N.push(Na[c])):138===c?(E=1-lr(e,l,p),w=1-lr(s,l,p),_=1-lr(s,l,h),m=1-lr(e,l,h),N.push(Ia[c]),N.push(Na[c])):32===c?(E=lr(s,p,l),w=lr(e,p,l),_=lr(e,h,l),m=lr(s,h,l),N.push(Ia[c]),N.push(Na[c])):42===c?(I=1-lr(s,h,f),b=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l),N.push(Ma[c]),N.push(La[c])):128===c&&(I=lr(e,f,h),b=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h),N.push(Ma[c]),N.push(La[c])),5===c?(w=1-lr(e,l,p),I=1-lr(e,h,f),N.push(Na[c])):165===c?(w=lr(s,p,l),I=lr(s,f,h),N.push(Na[c])):20===c?(x=lr(e,f,p),m=lr(e,h,l),N.push(Ca[c])):150===c?(x=1-lr(s,p,f),m=1-lr(s,l,h),N.push(Ca[c])):80===c?(E=lr(e,p,l),b=lr(e,f,h),N.push(Ia[c])):90===c?(E=1-lr(s,l,p),b=1-lr(s,h,f),N.push(Ia[c])):65===c?(v=1-lr(e,p,f),_=1-lr(e,l,h),N.push(Sa[c])):105===c?(v=lr(s,f,p),_=lr(s,h,l),N.push(Sa[c])):160===c?(E=lr(s,p,l),w=lr(e,p,l),I=lr(e,f,h),b=lr(s,f,h),N.push(Ia[c]),N.push(Na[c])):10===c?(E=1-lr(e,l,p),w=1-lr(s,l,p),I=1-lr(s,h,f),b=1-lr(e,h,f),N.push(Ia[c]),N.push(Na[c])):130===c?(x=1-lr(e,p,f),v=1-lr(s,p,f),_=1-lr(s,l,h),m=1-lr(e,l,h),N.push(Ca[c]),N.push(Sa[c])):40===c?(x=lr(s,f,p),v=lr(e,f,p),_=lr(e,h,l),m=lr(s,h,l),N.push(Ca[c]),N.push(Sa[c])):101===c?(w=lr(s,p,l),_=lr(s,h,l),N.push(Na[c])):69===c?(w=1-lr(e,l,p),_=1-lr(e,l,h),N.push(Na[c])):149===c?(I=lr(s,f,h),m=1-lr(s,l,h),N.push(Ma[c])):21===c?(I=1-lr(e,h,f),m=lr(e,h,l),N.push(Ma[c])):86===c?(x=1-lr(s,p,f),b=1-lr(s,h,f),N.push(Ca[c])):84===c?(x=lr(e,f,p),b=lr(e,f,h),N.push(Ca[c])):89===c?(E=1-lr(s,l,p),v=lr(s,f,p),N.push(Sa[c])):81===c?(E=lr(e,p,l),v=1-lr(e,p,f),N.push(Sa[c])):96===c?(E=lr(s,p,l),w=lr(e,p,l),b=lr(e,f,h),_=lr(s,h,l),N.push(Ia[c]),N.push(Na[c])):74===c?(E=1-lr(e,l,p),w=1-lr(s,l,p),b=1-lr(s,h,f),_=1-lr(e,l,h),N.push(Ia[c]),N.push(Na[c])):24===c?(E=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),m=lr(e,h,l),N.push(Ia[c]),N.push(Sa[c])):146===c?(E=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),m=1-lr(s,l,h),N.push(Ia[c]),N.push(Sa[c])):6===c?(w=1-lr(e,l,p),x=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),N.push(Na[c]),N.push(Ca[c])):164===c?(w=lr(s,p,l),x=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),N.push(Na[c]),N.push(Ca[c])):129===c?(v=1-lr(e,p,f),I=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h),N.push(Sa[c]),N.push(Ma[c])):41===c?(v=lr(s,f,p),I=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l),N.push(Sa[c]),N.push(Ma[c])):66===c?(x=1-lr(e,p,f),v=1-lr(s,p,f),b=1-lr(s,h,f),_=1-lr(e,l,h),N.push(Ca[c]),N.push(Sa[c])):104===c?(x=lr(s,f,p),v=lr(e,f,p),b=lr(e,f,h),_=lr(s,h,l),N.push(Sa[c]),N.push(Pa[c])):144===c?(E=lr(e,p,l),I=lr(e,f,h),b=lr(s,f,h),m=1-lr(s,l,h),N.push(Ia[c]),N.push(La[c])):26===c?(E=1-lr(s,l,p),I=1-lr(s,h,f),b=1-lr(e,h,f),m=lr(e,h,l),N.push(Ia[c]),N.push(La[c])):36===c?(w=lr(s,p,l),x=lr(e,f,p),_=lr(e,h,l),m=lr(s,h,l),N.push(Na[c]),N.push(Ca[c])):134===c?(w=1-lr(e,l,p),x=1-lr(s,p,f),_=1-lr(s,l,h),m=1-lr(e,l,h),N.push(Na[c]),N.push(Ca[c])):9===c?(E=1-lr(e,l,p),w=1-lr(s,l,p),v=lr(s,f,p),I=1-lr(e,h,f),N.push(Ia[c]),N.push(Na[c])):161===c?(E=lr(s,p,l),w=lr(e,p,l),v=1-lr(e,p,f),I=lr(s,f,h),N.push(Ia[c]),N.push(Na[c])):37===c?(w=lr(s,p,l),I=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l),N.push(Na[c]),N.push(Ma[c])):133===c?(w=1-lr(e,l,p),I=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h),N.push(Na[c]),N.push(Ma[c])):148===c?(x=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),m=1-lr(s,l,h),N.push(Ca[c]),N.push(La[c])):22===c?(x=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),m=lr(e,h,l),N.push(Ca[c]),N.push(La[c])):82===c?(E=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),b=1-lr(s,h,f),N.push(Ia[c]),N.push(Sa[c])):88===c?(E=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),b=lr(e,f,h),N.push(Ia[c]),N.push(Sa[c])):73===c?(E=1-lr(e,l,p),w=1-lr(s,l,p),v=lr(s,f,p),_=1-lr(e,l,h),N.push(Ia[c]),N.push(Na[c])):97===c?(E=lr(s,p,l),w=lr(e,p,l),v=1-lr(e,p,f),_=lr(s,h,l),N.push(Ia[c]),N.push(Na[c])):145===c?(E=lr(e,p,l),v=1-lr(e,p,f),I=lr(s,f,h),m=1-lr(s,l,h),N.push(Ia[c]),N.push(Ma[c])):25===c?(E=1-lr(s,l,p),v=lr(s,f,p),I=1-lr(e,h,f),m=lr(e,h,l),N.push(Ia[c]),N.push(Ma[c])):70===c?(w=1-lr(e,l,p),x=1-lr(s,p,f),b=1-lr(s,h,f),_=1-lr(e,l,h),N.push(Na[c]),N.push(Ca[c])):100===c?(w=lr(s,p,l),x=lr(e,f,p),b=lr(e,f,h),_=lr(s,h,l),N.push(Na[c]),N.push(Ca[c])):34===c?(0===d?(E=1-lr(e,l,p),w=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h)):(E=lr(s,p,l),w=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l)),N.push(Ia[c]),N.push(Na[c]),N.push(Ma[c]),N.push(La[c])):35===c?(4===d?(E=1-lr(e,l,p),w=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h)):(E=lr(s,p,l),w=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l)),N.push(Ia[c]),N.push(Na[c]),N.push(Sa[c]),N.push(La[c])):136===c?(0===d?(E=lr(s,p,l),w=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l)):(E=1-lr(e,l,p),w=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h)),N.push(Ia[c]),N.push(Na[c]),N.push(Ma[c]),N.push(La[c])):153===c?(0===d?(E=lr(e,p,l),v=1-lr(e,p,f),I=1-lr(e,h,f),m=lr(e,h,l)):(E=1-lr(s,l,p),v=lr(s,f,p),I=lr(s,f,h),m=1-lr(s,l,h)),N.push(Ia[c]),N.push(Sa[c])):102===c?(0===d?(w=1-lr(e,l,p),x=lr(e,f,p),b=lr(e,f,h),_=1-lr(e,l,h)):(w=lr(s,p,l),x=1-lr(s,p,f),b=1-lr(s,h,f),_=lr(s,h,l)),N.push(Na[c]),N.push(La[c])):155===c?(4===d?(E=lr(e,p,l),v=1-lr(e,p,f),I=1-lr(e,h,f),m=lr(e,h,l)):(E=1-lr(s,l,p),v=lr(s,f,p),I=lr(s,f,h),m=1-lr(s,l,h)),N.push(Ia[c]),N.push(Ma[c])):103===c?(4===d?(w=1-lr(e,l,p),x=lr(e,f,p),b=lr(e,f,h),_=1-lr(e,l,h)):(w=lr(s,p,l),x=1-lr(s,p,f),b=1-lr(s,h,f),_=lr(s,h,l)),N.push(Na[c]),N.push(Ca[c])):152===c?(0===d?(E=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),m=lr(e,h,l)):(E=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),m=1-lr(s,l,h)),N.push(Ia[c]),N.push(Ca[c]),N.push(Sa[c])):156===c?(4===d?(E=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),m=lr(e,h,l)):(E=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),m=1-lr(s,l,h)),N.push(Ia[c]),N.push(Sa[c]),N.push(La[c])):137===c?(0===d?(E=lr(s,p,l),w=lr(e,p,l),v=1-lr(e,p,f),I=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l)):(E=1-lr(e,l,p),w=1-lr(s,l,p),v=lr(s,f,p),I=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h)),N.push(Ia[c]),N.push(Na[c]),N.push(Sa[c])):139===c?(4===d?(E=lr(s,p,l),w=lr(e,p,l),v=1-lr(e,p,f),I=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l)):(E=1-lr(e,l,p),w=1-lr(s,l,p),v=lr(s,f,p),I=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h)),N.push(Ia[c]),N.push(Na[c]),N.push(Ma[c])):98===c?(0===d?(E=1-lr(e,l,p),w=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),b=lr(e,f,h),_=1-lr(e,l,h)):(E=lr(s,p,l),w=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),b=1-lr(s,h,f),_=lr(s,h,l)),N.push(Ia[c]),N.push(Na[c]),N.push(La[c])):99===c?(4===d?(E=1-lr(e,l,p),w=1-lr(s,l,p),x=lr(s,f,p),v=lr(e,f,p),b=lr(e,f,h),_=1-lr(e,l,h)):(E=lr(s,p,l),w=lr(e,p,l),x=1-lr(e,p,f),v=1-lr(s,p,f),b=1-lr(s,h,f),_=lr(s,h,l)),N.push(Ia[c]),N.push(Na[c]),N.push(Sa[c])):38===c?(0===d?(w=1-lr(e,l,p),x=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h)):(w=lr(s,p,l),x=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l)),N.push(Na[c]),N.push(Ma[c]),N.push(La[c])):39===c?(4===d?(w=1-lr(e,l,p),x=lr(e,f,p),I=lr(e,f,h),b=lr(s,f,h),_=1-lr(s,l,h),m=1-lr(e,l,h)):(w=lr(s,p,l),x=1-lr(s,p,f),I=1-lr(s,h,f),b=1-lr(e,h,f),_=lr(e,h,l),m=lr(s,h,l)),N.push(Na[c]),N.push(Ca[c]),N.push(La[c])):85===c&&(E=1,w=0,x=1,v=0,I=0,b=1,_=0,m=1),(_<0||_>1||m<0||m>1||E<0||E>1||x<0||x>1||I<0||I>1||b<0||b>1)&&console.log("MarchingSquaresJS-isoBands: "+c+" "+g+" "+h+","+l+","+p+","+f+" "+d+" "+_+" "+m+" "+E+" "+w+" "+x+" "+v+" "+I+" "+b),o.cells[a][u]={cval:c,cval_real:g,flipped:d,topleft:_,topright:m,righttop:E,rightbottom:w,bottomright:x,bottomleft:v,leftbottom:I,lefttop:b,edges:N}}}}}return o}(t,e,n);return zs.polygons?(zs.verbose&&console.log("MarchingSquaresJS-isoBands: returning single polygons for each grid cell"),u=function(t){var e=[],n=0;return t.cells.forEach(function(t,r){t.forEach(function(t,i){if(void 0!==t){var o=Ra[t.cval](t);"object"==typeof o&&pr(o)?"object"==typeof o[0]&&pr(o[0])?"object"==typeof o[0][0]&&pr(o[0][0])?o.forEach(function(t){t.forEach(function(t){t[0]+=i,t[1]+=r}),e[n++]=t}):(o.forEach(function(t){t[0]+=i,t[1]+=r}),e[n++]=o):console.log("MarchingSquaresJS-isoBands: bandcell polygon with malformed coordinates"):console.log("MarchingSquaresJS-isoBands: bandcell polygon with null coordinates")}})}),e}(c)):(zs.verbose&&console.log("MarchingSquaresJS-isoBands: returning polygon paths for entire data grid"),u=function(t){for(var e=[],n=t.rows,r=t.cols,i=[],o=0;o0){var a=t.cells[o][s],u=function(t){if(t.edges.length>0){var e=t.edges[t.edges.length-1],n=t.cval_real;switch(e){case 0:return n&Xs?{p:[1,t.righttop],x:-1,y:0,o:1}:{p:[t.topleft,1],x:0,y:-1,o:0};case 1:return n&Us?{p:[t.topleft,1],x:0,y:-1,o:0}:{p:[1,t.rightbottom],x:-1,y:0,o:0};case 2:return n&Us?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[t.topleft,1],x:0,y:-1,o:0};case 3:return n&Ys?{p:[t.topleft,1],x:0,y:-1,o:0}:{p:[t.bottomleft,0],x:0,y:1,o:0};case 4:return n&Xs?{p:[1,t.righttop],x:-1,y:0,o:1}:{p:[t.topright,1],x:0,y:-1,o:1};case 5:return n&Us?{p:[t.topright,1],x:0,y:-1,o:1}:{p:[1,t.rightbottom],x:-1,y:0,o:0};case 6:return n&Us?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[t.topright,1],x:0,y:-1,o:1};case 7:return n&Ys?{p:[t.topright,1],x:0,y:-1,o:1}:{p:[t.bottomleft,0],x:0,y:1,o:0};case 8:return n&Us?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[1,t.righttop],x:-1,y:0,o:1};case 9:return n&Ys?{p:[1,t.righttop],x:-1,y:0,o:1}:{p:[t.bottomleft,0],x:0,y:1,o:0};case 10:return n&Ys?{p:[0,t.leftbottom],x:1,y:0,o:0}:{p:[1,t.righttop],x:-1,y:0,o:1};case 11:return n&js?{p:[1,t.righttop],x:-1,y:0,o:1}:{p:[0,t.lefttop],x:1,y:0,o:1};case 12:return n&Us?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[1,t.rightbottom],x:-1,y:0,o:0};case 13:return n&Ys?{p:[1,t.rightbottom],x:-1,y:0,o:0}:{p:[t.bottomleft,0],x:0,y:1,o:0};case 14:return n&Ys?{p:[0,t.leftbottom],x:1,y:0,o:0}:{p:[1,t.rightbottom],x:-1,y:0,o:0};case 15:return n&js?{p:[1,t.rightbottom],x:-1,y:0,o:0}:{p:[0,t.lefttop],x:1,y:0,o:1};case 16:return n&Us?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[0,t.leftbottom],x:1,y:0,o:0};case 17:return n&js?{p:[t.bottomright,0],x:0,y:1,o:1}:{p:[0,t.lefttop],x:1,y:0,o:1};case 18:return n&Ys?{p:[0,t.leftbottom],x:1,y:0,o:0}:{p:[t.bottomleft,0],x:0,y:1,o:0};case 19:return n&js?{p:[t.bottomleft,0],x:0,y:1,o:0}:{p:[0,t.lefttop],x:1,y:0,o:1};case 20:return n&js?{p:[t.topleft,1],x:0,y:-1,o:0}:{p:[0,t.leftbottom],x:1,y:0,o:0};case 21:return n&Xs?{p:[0,t.leftbottom],x:1,y:0,o:0}:{p:[t.topright,1],x:0,y:-1,o:1};case 22:return n&js?{p:[t.topleft,1],x:0,y:-1,o:0}:{p:[0,t.lefttop],x:1,y:0,o:1};case 23:return n&Xs?{p:[0,t.lefttop],x:1,y:0,o:1}:{p:[t.topright,1],x:0,y:-1,o:1};default:console.log("MarchingSquaresJS-isoBands: edge index out of range!"),console.log(t)}}return null}(a),c=null,h=s,l=o;null!==u&&i.push([u.p[0]+h,u.p[1]+l]);do{if(null===(c=function(t,e,n,r){var i,o,s,a,u,c=t.cval;switch(e){case-1:switch(r){case 0:i=Na[c],s=ea[c],a=na[c],u=ra[c];break;default:i=Ia[c],s=Qs[c],a=$s[c],u=ta[c]}break;case 1:switch(r){case 0:i=Ma[c],s=fa[c],a=ga[c],u=da[c];break;default:i=La[c],s=ha[c],a=la[c],u=pa[c]}break;default:switch(n){case-1:switch(r){case 0:i=Pa[c],s=Vs[c],a=Hs[c],u=Ws[c];break;default:i=Oa[c],s=Js[c],a=Zs[c],u=Ks[c]}break;case 1:switch(r){case 0:i=Sa[c],s=ia[c],a=oa[c],u=sa[c];break;default:i=Ca[c],s=aa[c],a=ua[c],u=ca[c]}}}{if(o=t.edges.indexOf(i),void 0===t.edges[o])return null;!function(t,e){delete t.edges[e];for(var n=e+1;n=n||h<0||h>=r||void 0===t.cells[l][h]){h-=c.x,l-=c.y;var p=function(t,e,n,r,i,o){var s=t.cells[n][e],a=s.cval_real,u=e+r,c=n+i,h=[],l=!1;for(;!l;){if(void 0===t.cells[c]||void 0===t.cells[c][u])if(c-=i,u-=r,s=t.cells[c][u],a=s.cval_real,-1===i)if(0===o)if(a&Ys)h.push([u,c]),r=-1,i=0,o=0;else{if(!(a&Us)){h.push([u+s.bottomright,c]),r=0,i=1,o=1,l=!0;break}h.push([u+1,c]),r=1,i=0,o=0}else{if(!(a&Ys)){if(a&Us){h.push([u+s.bottomright,c]),r=0,i=1,o=1,l=!0;break}h.push([u+s.bottomleft,c]),r=0,i=1,o=0,l=!0;break}h.push([u,c]),r=-1,i=0,o=0}else if(1===i)if(0===o){if(!(a&Xs)){if(a&js){h.push([u+s.topleft,c+1]),r=0,i=-1,o=0,l=!0;break}h.push([u+s.topright,c+1]),r=0,i=-1,o=1,l=!0;break}h.push([u+1,c+1]),r=1,i=0,o=1}else h.push([u+1,c+1]),r=1,i=0,o=1;else if(-1===r)if(0===o){if(!(a&js)){if(a&Ys){h.push([u,c+s.leftbottom]),r=1,i=0,o=0,l=!0;break}h.push([u,c+s.lefttop]),r=1,i=0,o=1,l=!0;break}h.push([u,c+1]),r=0,i=1,o=0}else{if(!(a&js)){console.log("MarchingSquaresJS-isoBands: wtf");break}h.push([u,c+1]),r=0,i=1,o=0}else{if(1!==r){console.log("MarchingSquaresJS-isoBands: we came from nowhere!");break}if(0===o){if(!(a&Us)){h.push([u+1,c+s.rightbottom]),r=-1,i=0,o=0,l=!0;break}h.push([u+1,c]),r=0,i=-1,o=1}else{if(!(a&Us)){if(a&Xs){h.push([u+1,c+s.righttop]),r=-1,i=0,o=1;break}h.push([u+1,c+s.rightbottom]),r=-1,i=0,o=0,l=!0;break}h.push([u+1,c]),r=0,i=-1,o=1}}else if(s=t.cells[c][u],a=s.cval_real,-1===r)if(0===o)if(void 0!==t.cells[c-1]&&void 0!==t.cells[c-1][u])r=0,i=-1,o=1;else{if(!(a&Ys)){h.push([u+s.bottomright,c]),r=0,i=1,o=1,l=!0;break}h.push([u,c])}else{if(!(a&js)){console.log("MarchingSquaresJS-isoBands: found entry from top at "+u+","+c);break}console.log("MarchingSquaresJS-isoBands: proceeding in x-direction!")}else if(1===r){if(0===o){console.log("MarchingSquaresJS-isoBands: wtf");break}if(void 0!==t.cells[c+1]&&void 0!==t.cells[c+1][u])r=0,i=1,o=0;else{if(!(a&Xs)){h.push([u+s.topleft,c+1]),r=0,i=-1,o=0,l=!0;break}h.push([u+1,c+1]),r=1,i=0,o=1}}else if(-1===i){if(1!==o){console.log("MarchingSquaresJS-isoBands: wtf");break}if(void 0!==t.cells[c][u+1])r=1,i=0,o=1;else{if(!(a&Us)){h.push([u+1,c+s.righttop]),r=-1,i=0,o=1,l=!0;break}h.push([u+1,c]),r=0,i=-1,o=1}}else{if(1!==i){console.log("MarchingSquaresJS-isoBands: where did we came from???");break}if(0!==o){console.log("MarchingSquaresJS-isoBands: wtf");break}if(void 0!==t.cells[c][u-1])r=-1,i=0,o=0;else{if(!(a&js)){h.push([u,c+s.leftbottom]),r=1,i=0,o=0,l=!0;break}h.push([u,c+1]),r=0,i=1,o=0}}if(u+=r,c+=i,u===e&&c===n)break}return{path:h,i:u,j:c,x:r,y:i,o:o}}(t,h,l,c.x,c.y,c.o);if(null===p)break;p.path.forEach(function(t){i.push(t)}),h=p.i,l=p.j,u=p}}while(void 0!==t.cells[l][h]&&t.cells[l][h].edges.length>0);e.push(i),i=[],t.cells[o][s].edges.length>0&&s--}return e}(c)),"function"==typeof zs.successCallback&&zs.successCallback(u),u}function lr(t,e,n){return(t-e)/(n-e)}function pr(t){return t.constructor.toString().indexOf("Array")>-1}function fr(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.pivot,i=n.mutate;if(!t)throw new Error("geojson is required");if(void 0===e||null===e||isNaN(e))throw new Error("angle is required");return 0===e?t:(r||(r=ye(t)),!1!==i&&void 0!==i||(t=Gt(t)),S(t,function(t){var n=sn(r,t)+e,i=un(r,t),o=U(nr(r,i,n));t[0]=o[0],t[1]=o[1]}),t)}function gr(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.origin,i=n.mutate;if(!t)throw new Error("geojson required");if("number"!=typeof e||0===e)throw new Error("invalid factor");var o=Array.isArray(r)||"object"==typeof r;return!0!==i&&(t=Gt(t)),"FeatureCollection"!==t.type||o?dr(t,e,r):(O(t,function(n,i){t.features[i]=dr(n,e,r)}),t)}function dr(t,e,n){var i="Point"===K(t);return n=function(t,e){void 0!==e&&null!==e||(e="centroid");if(Array.isArray(e)||"object"==typeof e)return X(e);var n=t.bbox?t.bbox:j(t),i=n[0],o=n[1],s=n[2],a=n[3];switch(e){case"sw":case"southwest":case"westsouth":case"bottomleft":return r([i,o]);case"se":case"southeast":case"eastsouth":case"bottomright":return r([s,o]);case"nw":case"northwest":case"westnorth":case"topleft":return r([i,a]);case"ne":case"northeast":case"eastnorth":case"topright":return r([s,a]);case"center":return de(t);case void 0:case null:case"centroid":return ye(t);default:throw new Error("invalid origin")}}(t,n),1===e||i?t:(S(t,function(t){var r=un(n,t),i=sn(n,t),o=U(nr(n,r*e,i));t[0]=o[0],t[1]=o[1],3===t.length&&(t[2]*=e)}),t)}function yr(t){var e=t[0],n=t[1];return[n[0]-e[0],n[1]-e[1]]}function _r(t,e){return t[0]*e[1]-e[0]*t[1]}function mr(t,e){return!function(t,e){return 0===_r(yr(t),yr(e))}(t,e)&&function(t,e){var n=t[0],r=yr(t),i=e[0],o=yr(e),s=_r(r,o);return function(t,e){return[t[0]+e[0],t[1]+e[1]]}(n,function(t,e){return[t*e[0],t*e[1]]}(_r(function(t,e){return[t[0]-e[0],t[1]-e[1]]}(i,n),o)/s,r))}(t,e)}function vr(t,e,n){var r=[],i=_(e,n),o=U(t),s=[];return o.forEach(function(t,e){if(e!==o.length-1){var n=function(t,e,n){var r=Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])),i=t[0]+n*(e[1]-t[1])/r,o=e[0]+n*(e[1]-t[1])/r,s=t[1]+n*(t[0]-e[0])/r,a=e[1]+n*(t[0]-e[0])/r;return[[i,s],[o,a]]}(t,o[e+1],i);if(r.push(n),e>0){var a=r[e-1],u=mr(n,a);!1!==u&&(a[1]=u,n[0]=u),s.push(a[0]),e===o.length-2&&(s.push(n[0]),s.push(n[1]))}2===o.length&&(s.push(n[0]),s.push(n[1]))}}),a(s,t.properties)}function xr(t,e,n){var r=e[0]-t[0],i=e[1]-t[1],o=n[0]-e[0],s=n[1]-e[1];return Math.sign(r*s-o*i)}function Er(t,e){return e.geometry.coordinates[0].every(function(e){return Pt(r(e),t)})}function wr(t,e){for(var n=0;n=Math.abs(s)?o>0?t[0]<=n[0]&&n[0]<=e[0]:e[0]<=n[0]&&n[0]<=t[0]:s>0?t[1]<=n[1]&&n[1]<=e[1]:e[1]<=n[1]&&n[1]<=t[1]}(t.coordinates[n],t.coordinates[n+1],e.coordinates))return!0;return!1}function br(t,e){return nn(e,kn(t)).features.length>0}function Ir(t,e){return!(t[0]>e[0])&&(!(t[2]e[1])&&!(t[3]0}function Mr(t,e){for(var n=!1,i=!1,o=t.coordinates[0].length,s=0;s=Math.abs(a)?s>0?t[0]<=n[0]&&n[0]<=e[0]:e[0]<=n[0]&&n[0]<=t[0]:a>0?t[1]<=n[1]&&n[1]<=e[1]:e[1]<=n[1]&&n[1]<=t[1]:Math.abs(s)>=Math.abs(a)?s>0?t[0]0?t[1]0}function Ar(t,e,n){n=n||[];for(var r=0;r0)){if(o/=p,p<0){if(o0){if(o>l)return;o>h&&(h=o)}if(o=r-u,p||!(o<0)){if(o/=p,p<0){if(o>l)return;o>h&&(h=o)}else if(p>0){if(o0)){if(o/=f,f<0){if(o0){if(o>l)return;o>h&&(h=o)}if(o=i-c,f||!(o<0)){if(o/=f,f<0){if(o>l)return;o>h&&(h=o)}else if(f>0){if(o0||l<1)||(h>0&&(t[0]=[u+h*p,c+h*f]),l<1&&(t[1]=[u+l*p,c+l*f]),!0)}}}}}function Kr(t,e,n,r,i){var o=t[1];if(o)return!0;var s,a,u=t[0],c=t.left,h=t.right,l=c[0],p=c[1],f=h[0],g=h[1],d=(l+f)/2,y=(p+g)/2;if(g===p){if(d=r)return;if(l>f){if(u){if(u[1]>=i)return}else u=[d,n];o=[d,i]}else{if(u){if(u[1]1)if(l>f){if(u){if(u[1]>=i)return}else u=[(n-a)/s,n];o=[(i-a)/s,i]}else{if(u){if(u[1]=r)return}else u=[e,s*e+a];o=[r,s*r+a]}else{if(u){if(u[0]=-pu)){var f=u*u+c*c,g=h*h+l*l,d=(l*f-c*g)/p,y=(u*g-h*f)/p,_=cu.pop()||new function(){Xr(this),this.x=this.y=this.arc=this.site=this.cy=null};_.arc=t,_.site=i,_.x=d+s,_.y=(_.cy=y+a)+Math.sqrt(d*d+y*y),t.circle=_;for(var m=null,v=au._;v;)if(_.ylu)a=a.L;else{if(!((i=o-function(t,e){var n=t.N;if(n)return ai(n,e);var r=t.site;return r[1]===e?r[0]:1/0}(a,s))>lu)){r>-lu?(e=a.P,n=a):i>-lu?(e=a,n=a.N):e=n=a;break}if(!a.R){e=a;break}a=a.R}!function(t){su[t.index]={site:t,halfedges:[]}}(t);var u=ri(t);if(ou.insert(e,u),e||n){if(e===n)return ni(e),n=ri(e.site),ou.insert(u,n),u.edge=n.edge=Hr(e.site,u.site),ei(e),void ei(n);if(n){ni(e),ni(n);var c=e.site,h=c[0],l=c[1],p=t[0]-h,f=t[1]-l,g=n.site,d=g[0]-h,y=g[1]-l,_=2*(p*y-f*d),m=p*p+f*f,v=d*d+y*y,x=[(y*m-f*v)/_+h,(p*v-d*m)/_+l];Jr(n.edge,c,g,x),u.edge=Hr(c,t,null,x),n.edge=Hr(t,g,null,x),ei(e),ei(n)}else u.edge=Hr(e.site,u.site)}}function ai(t,e){var n=t.site,r=n[0],i=n[1],o=i-e;if(!o)return r;var s=t.P;if(!s)return-1/0;var a=(n=s.site)[0],u=n[1],c=u-e;if(!c)return a;var h=a-r,l=1/o-1/c,p=h/c;return l?(-p+Math.sqrt(p*p-2*l*(h*h/(-2*c)-u+c/2+i-o/2)))/l+r:(r+a)/2}function ui(t,e,n){return(t[0]-n[0])*(e[1]-t[1])-(t[0]-e[0])*(n[1]-t[1])}function ci(t,e){return e[1]-t[1]||e[0]-t[0]}function hi(t,e){var n,r,i,o=t.sort(ci).pop();for(uu=[],su=new Array(t.length),ou=new jr,au=new jr;;)if(i=iu,o&&(!i||o[1]lu||Math.abs(i[0][1]-i[1][1])>lu)||delete uu[o]}(s,a,u,c),function(t,e,n,r){var i,o,s,a,u,c,h,l,p,f,g,d,y=su.length,_=!0;for(i=0;ilu||Math.abs(d-p)>lu)&&(u.splice(a,0,uu.push(Wr(s,f,Math.abs(g-t)lu?[t,Math.abs(l-t)lu?[Math.abs(p-r)lu?[n,Math.abs(l-n)lu?[Math.abs(p-e)=-270&&(d=-d),g<-180&&g>=-360&&(y=-y),"degrees"===s){var _=d*Math.cos(l)+y*Math.sin(l),m=y*Math.cos(l)-d*Math.sin(l);d=_,y=m}p.push([d+h[0],y+h[1]])}return p.push(p[0]),"degrees"===s?o([p],c):fr(o([p],c),a,{pivot:u})}function fi(t){var e=t*Math.PI/180;return Math.tan(e)}function gi(t,e){if(e=e||{},!I(e))throw new Error("options is invalid");var n=e.properties,i=e.weight;if(!t)throw new Error("geojson is required");var o=0,s=0,a=0;return A(t,function(t,e,n){var r=n[i];if(r=void 0===r||null===r?1:r,!b(r))throw new Error("weight value must be a number for feature index "+e);(r=Number(r))>0&&S(t,function(t){o+=t[0]*r,s+=t[1]*r,a+=r})}),r([o/a,s/a],n)}function di(t,e,n,i){var o=n.properties.tolerance||.001,s=0,a=0,u=0,c=0;if(O(n,function(e){var n=e.properties.weight,r=void 0===n||null===n?1:n;if(r=Number(r),!b(r))throw new Error("weight value must be a number");if(r>0){c+=1;var i=r*qt(e,t);0===i&&(i=1);var o=r/i;s+=e.geometry.coordinates[0]*o,a+=e.geometry.coordinates[1]*o,u+=o}}),c<1)throw new Error("no features to measure");var h=s/u,l=a/u;return 1===c||0===i||Math.abs(h-e[0])0?t+n[e-1]:t}),h.forEach(function(t){t=2*t*Math.PI/h[h.length-1];var e=Math.random();u.push([e*i*Math.sin(t),e*i*Math.cos(t)])}),u[u.length-1]=u[0],u=u.map(function(t){return function(e){return[e[0]+t[0],e[1]+t[1]]}}(_i(n))),s.push(o([u]))}return c(s)}function xi(t,e){if(e=e||{},!I(e))throw new Error("options is invalid");var n=e.bbox,r=e.num_vertices,i=e.max_length,o=e.max_rotation;void 0!==t&&null!==t||(t=1),(!b(r)||r<2)&&(r=10),b(i)||(i=1e-4),b(o)||(o=Math.PI/8);for(var s=[],u=0;u1?t:null;case"MultiPolygon":var e=[];if(F(t,function(t){mn(t)>1&&e.push(t.geometry.coordinates)}),e.length)return{type:"MultiPolygon",coordinates:e}}}function Yi(){this.reset()}function Vi(t,e,n){var r=t.s=e+n,i=r-e,o=r-i;t.t=e-o+(n-i)}function Hi(t){return t>1?kf:t<-1?-kf:Math.asin(t)}function Wi(){}function Ji(t,e){t&&eg.hasOwnProperty(t.type)&&eg[t.type](t,e)}function Zi(t,e,n){var r,i=-1,o=t.length-n;for(e.lineStart();++iBf?t-jf:t<-Bf?t+jf:t,e]}function so(t,e,n){return(t%=jf)?e||n?rg(uo(t),co(e,n)):uo(t):e||n?co(e,n):oo}function ao(t){return function(e,n){return e+=t,[e>Bf?e-jf:e<-Bf?e+jf:e,n]}}function uo(t){var e=ao(t);return e.invert=ao(-t),e}function co(t,e){function n(t,e){var n=Wf(e),a=Wf(t)*n,u=Kf(t)*n,c=Kf(e),h=c*r+a*i;return[Hf(u*o-h*s,a*r-c*i),Hi(h*o+u*s)]}var r=Wf(t),i=Kf(t),o=Wf(e),s=Kf(e);return n.invert=function(t,e){var n=Wf(e),a=Wf(t)*n,u=Kf(t)*n,c=Kf(e),h=c*o-u*s;return[Hf(u*o+c*s,a*r+h*i),Hi(h*r-a*i)]},n}function ho(t,e){(e=$i(e))[0]-=t,io(e);var n=function(t){return t>1?0:t<-1?Bf:Math.acos(t)}(-e[1]);return((-e[2]<0?-n:n)+jf-Gf)%jf}function lo(t,e,n,r){this.x=t,this.z=e,this.o=n,this.e=r,this.v=!1,this.n=this.p=null}function po(t){if(e=t.length){for(var e,n,r=0,i=t[0];++r0)do{c.point(0===h||3===h?t:n,h>1?r:e)}while((h=(h+a+4)%4)!==l);else c.point(o[0],o[1])}function s(r,i){return Yf(r[0]-t)0?0:3:Yf(r[0]-n)0?2:1:Yf(r[1]-e)0?1:0:i>0?3:2}function a(t,e){return u(t.x,e.x)}function u(t,e){var n=s(t,1),r=s(e,1);return n!==r?n-r:0===n?e[1]-t[1]:1===n?t[0]-e[0]:2===n?t[1]-e[1]:e[0]-t[0]}return function(s){function u(t,e){i(t,e)&&E.point(t,e)}function c(o,s){var a=i(o,s);if(l&&p.push([o,s]),v)f=o,g=s,d=a,v=!1,a&&(E.lineStart(),E.point(o,s));else if(a&&m)E.point(o,s);else{var u=[y=Math.max(pg,Math.min(lg,y)),_=Math.max(pg,Math.min(lg,_))],c=[o=Math.max(pg,Math.min(lg,o)),s=Math.max(pg,Math.min(lg,s))];sg(u,c,t,e,n,r)?(m||(E.lineStart(),E.point(u[0],u[1])),E.point(c[0],c[1]),a||E.lineEnd(),x=!1):a&&(E.lineStart(),E.point(o,s),x=!1)}y=o,_=s,m=a}var h,l,p,f,g,d,y,_,m,v,x,E=s,w=og(),b={point:u,lineStart:function(){b.point=c,l&&l.push(p=[]),v=!0,m=!1,y=_=NaN},lineEnd:function(){h&&(c(f,g),d&&m&&w.rejoin(),h.push(w.result())),b.point=u,m&&E.lineEnd()},polygonStart:function(){E=w,h=[],l=[],x=!0},polygonEnd:function(){var e=function(){for(var e=0,n=0,i=l.length;nr&&(p-o)*(r-s)>(f-s)*(t-o)&&++e:f<=r&&(p-o)*(r-s)<(f-s)*(t-o)&&--e;return e}(),n=x&&e,i=(h=hg(h)).length;(n||i)&&(s.polygonStart(),n&&(s.lineStart(),o(null,null,1,s),s.lineEnd()),i&&ug(h,a,e,o,s),s.polygonEnd()),E=s,h=l=p=null}};return b}}function go(t){return t.length>1}function yo(t,e){return((t=t.x)[0]<0?t[1]-kf-Gf:kf-t[1])-((e=e.x)[0]<0?e[1]-kf-Gf:kf-e[1])}function _o(t){return function(e){var n=new mo;for(var r in t)n[r]=t[r];return n.stream=e,n}}function mo(){}function vo(t,e,n){var r=e[1][0]-e[0][0],i=e[1][1]-e[0][1],o=t.clipExtent&&t.clipExtent();t.scale(150).translate([0,0]),null!=o&&t.clipExtent(null),ng(n,t.stream(vg));var s=vg.result(),a=Math.min(r/(s[1][0]-s[0][0]),i/(s[1][1]-s[0][1])),u=+e[0][0]+(r-a*(s[1][0]+s[0][0]))/2,c=+e[0][1]+(i-a*(s[1][1]+s[0][1]))/2;return null!=o&&t.clipExtent(o),t.scale(150*a).translate([u,c])}function xo(t){return function(t){function e(t){return t=c(t[0]*Uf,t[1]*Uf),[t[0]*d+s,a-t[1]*d]}function n(t,e){return t=o(t,e),[t[0]*d+s,a-t[1]*d]}function r(){c=rg(u=so(x,E,w),o);var t=o(m,v);return s=y-t[0]*d,a=_+t[1]*d,i()}function i(){return f=g=null,e}var o,s,a,u,c,h,l,p,f,g,d=150,y=480,_=250,m=0,v=0,x=0,E=0,w=0,b=null,I=Eg,N=null,C=gg,S=.5,M=Ng(n,S);e.stream=function(t){return f&&g===t?f:f=Cg(I(u,M(C(g=t))))},e.clipAngle=function(t){return arguments.length?(I=+t?wg(b=t*Uf,6*Uf):(b=null,Eg),i()):b*Xf},e.clipExtent=function(t){return arguments.length?(C=null==t?(N=h=l=p=null,gg):fo(N=+t[0][0],h=+t[0][1],l=+t[1][0],p=+t[1][1]),i()):null==N?null:[[N,h],[l,p]]},e.scale=function(t){return arguments.length?(d=+t,r()):d},e.translate=function(t){return arguments.length?(y=+t[0],_=+t[1],r()):[y,_]},e.center=function(t){return arguments.length?(m=t[0]%360*Uf,v=t[1]%360*Uf,r()):[m*Xf,v*Xf]},e.rotate=function(t){return arguments.length?(x=t[0]%360*Uf,E=t[1]%360*Uf,w=t.length>2?t[2]%360*Uf:0,r()):[x*Xf,E*Xf,w*Xf]},e.precision=function(t){return arguments.length?(M=Ng(n,S=t*t),i()):Qf(S)},e.fitExtent=function(t,n){return vo(e,t,n)},e.fitSize=function(t,n){return function(t,e,n){return vo(t,[[0,0],e],n)}(e,t,n)};return function(){return o=t.apply(this,arguments),e.invert=o.invert&&function(t){return(t=c.invert((t[0]-s)/d,(a-t[1])/d))&&[t[0]*Xf,t[1]*Xf]},r()}}(function(){return t})()}function Eo(t,e){return[t,Zf($f((kf+e)/2))]}function wo(t,e){return[Zf($f((kf+e)/2)),-t]}function bo(t,n,r,i){var o=t.properties||{},s="Feature"===t.type?t.geometry:t;if("GeometryCollection"===s.type){var a=[];return A(t,function(t){var e=bo(t,n,r,i);e&&a.push(e)}),c(a)}var u,h=j(t),l=h[1]>50&&h[3]>50;u=l?{type:s.type,coordinates:No(s.coordinates,So(s))}:cn(s);var p=(new bh).read(u),f=d(y(n,r),"meters"),g=gp.bufferOp(p,f);if(g=(new Ih).write(g),!Io(g.coordinates)){var _;return(_=l?{type:g.type,coordinates:Co(g.coordinates,So(s))}:hn(g)).geometry?_:e(_,o)}}function Io(t){return Array.isArray(t[0])?Io(t[0]):isNaN(t[0])}function No(t,e){return"object"!=typeof t[0]?e(t):t.map(function(t){return No(t,e)})}function Co(t,e){return"object"!=typeof t[0]?e.invert(t):t.map(function(t){return Co(t,e)})}function So(t){var e=de(t).geometry.coordinates.reverse(),n=e.map(function(t){return-t});return Sg().center(e).rotate(n).scale(Fo)}function Mo(){for(var t=new bh,e=t.read(JSON.stringify(arguments[0].geometry)),n=1;n=0&&(void 0===i||sm/2;P&&(L-=m/4);for(var O=[],R=[],T=0;T<6;T++){var A=2*Math.PI/6*T;O.push(Math.cos(A)),R.push(Math.sin(A))}for(var D=[],F=0;F<=C;F++)for(var q=0;q<=M;q++){var G=F%2==1;if((0!==q||!G)&&(0!==q||!P)){var B=F*E+a-S,k=q*w+u+L;if(G&&(k-=m/2),!0===i)(function(t,e,n,r,i,s){for(var a=[],u=0;u<6;u++){var c=[];c.push(t),c.push([t[0]+e*i[u],t[1]+n*s[u]]),c.push([t[0]+e*i[(u+1)%6],t[1]+n*s[(u+1)%6]]),c.push(t),a.push(o([c],r))}return a})([B,k],g/2,d/2,r,O,R).forEach(function(t){s?Lo(s,t)&&D.push(t):D.push(t)});else{var z=function(t,e,n,r,i,s){for(var a=[],u=0;u<6;u++){var c=t[0]+e*i[u],h=t[1]+n*s[u];a.push([c,h])}return a.push(a[0].slice()),o([a],r)}([B,k],g/2,d/2,r,O,R);s?Lo(s,z)&&D.push(z):D.push(z)}}}return c(D)}function Ro(t){if(t.features.length<=1)return t;var e=function(t){var e=Vo(),n=[];return F(t,function(t,e){var r=j(t);n.push({minX:r[0],minY:r[1],maxX:r[2],maxY:r[3],geojson:t,index:e})}),e.load(n),e}(t),n=[],r={};return F(t,function(t,i){if(r[i])return!0;for(e.remove({index:i},To),r[i]=!0;;){var o=j(t),s=e.search({minX:o[0],minY:o[1],maxX:o[2],maxY:o[3]});if(s.length>0){var a=s.map(function(t){return r[t.index]=!0,e.remove({index:t.index},To),t.geojson});a.push(t),t=Mo.apply(this,a)}if(0===s.length)break}n.push(t)}),c(n)}function To(t,e){return t.index===e.index}function Ao(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.properties,i=n.mask,s=[];if(null===e||void 0===e)throw new Error("cellSide is required");if(!b(e))throw new Error("cellSide is invalid");if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be array");if(4!==t.length)throw new Error("bbox must contain 4 numbers");if(i&&-1===["Polygon","MultiPolygon"].indexOf(K(i)))throw new Error("options.mask must be a (Multi)Polygon");for(var a=t[0],u=t[1],h=t[2],l=t[3],p=e/qt([a,u],[h,u],n)*(h-a),f=e/qt([a,u],[a,l],n)*(l-u),g=h-a,d=l-u,y=Math.floor(g/p),_=Math.floor(d/f),m=(d-_*f)/2,v=a+(g-y*p)/2,x=0;x=0&&o[e].children.length>this._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(i,o,e)},_split:function(t,e){var n=t[e],r=n.children.length,i=this._minEntries;this._chooseSplitAxis(n,i,r);var o=this._chooseSplitIndex(n,i,r),s=yt(n.children.splice(o,n.children.length-o));s.height=n.height,s.leaf=n.leaf,at(n,this.toBBox),at(s,this.toBBox),e?t[e-1].children.push(s):this._splitRoot(n,s)},_splitRoot:function(t,e){this.data=yt([t,e]),this.data.height=t.height+1,this.data.leaf=!1,at(this.data,this.toBBox)},_chooseSplitIndex:function(t,e,n){var r,i,o,s,a,u,c,h;for(u=c=1/0,r=e;r<=n-e;r++)s=function(t,e){var n=Math.max(t.minX,e.minX),r=Math.max(t.minY,e.minY),i=Math.min(t.maxX,e.maxX),o=Math.min(t.maxY,e.maxY);return Math.max(0,i-n)*Math.max(0,o-r)}(i=ut(t,0,r,this.toBBox),o=ut(t,r,n,this.toBBox)),a=pt(i)+pt(o),s=e;i--)o=t.children[i],ct(u,t.leaf?s(o):o),c+=ft(u);return c},_adjustParentBBoxes:function(t,e,n){for(var r=n;r>=0;r--)ct(e[r],t)},_condense:function(t){for(var e,n=t.length-1;n>=0;n--)0===t[n].children.length?n>0?(e=t[n-1].children).splice(e.indexOf(t[n]),1):this.clear():at(t[n],this.toBBox)},_initFormat:function(t){var e=["return a"," - b",";"];this.compareMinX=new Function("a","b",e.join(t[0])),this.compareMinY=new Function("a","b",e.join(t[1])),this.toBBox=new Function("a","return {minX: a"+t[0]+", minY: a"+t[1]+", maxX: a"+t[2]+", maxY: a"+t[3]+"};")}};var Ho=function(t,e,n){var r=t*e,i=Wo*t,o=i-(i-t),s=t-o,a=Wo*e,u=a-(a-e),c=e-u,h=s*c-(r-o*u-s*u-o*c);return n?(n[0]=h,n[1]=r,n):[h,r]},Wo=+(Math.pow(2,27)+1),Jo=function(t,e){var n=0|t.length,r=0|e.length;if(1===n&&1===r)return function(t,e){var n=t+e,r=n-t,i=t-(n-r)+(e-r);return i?[i,n]:[n]}(t[0],e[0]);var i,o,s=n+r,a=new Array(s),u=0,c=0,h=0,l=Math.abs,p=t[c],f=l(p),g=e[h],d=l(g);f=r?(i=p,(c+=1)=r?(i=p,(c+=1)>1;return["sum(",r(t.slice(0,e)),",",r(t.slice(e)),")"].join("")}function i(t){if(2===t.length)return[["sum(prod(",t[0][0],",",t[1][1],"),prod(-",t[0][1],",",t[1][0],"))"].join("")];for(var o=[],s=0;s0){if(o<=0)return s;r=i+o}else{if(!(i<0))return s;if(o>=0)return s;r=-(i+o)}var u=3.3306690738754716e-16*r;return s>=u||s<=-u?s:a(t,e,n)},function(t,e,n,r){var i=t[0]-r[0],o=e[0]-r[0],s=n[0]-r[0],a=t[1]-r[1],c=e[1]-r[1],h=n[1]-r[1],l=t[2]-r[2],p=e[2]-r[2],f=n[2]-r[2],g=o*h,d=s*c,y=s*a,_=i*h,m=i*c,v=o*a,x=l*(g-d)+p*(y-_)+f*(m-v),E=7.771561172376103e-16*((Math.abs(g)+Math.abs(d))*Math.abs(l)+(Math.abs(y)+Math.abs(_))*Math.abs(p)+(Math.abs(m)+Math.abs(v))*Math.abs(f));return x>E||-x>E?x:u(t,e,n,r)}];!function(){for(;c.length<=s;)c.push(o(c.length));for(var e=[],n=["slow"],r=0;r<=s;++r)e.push("a"+r),n.push("o"+r);var i=["function getOrientation(",e.join(),"){switch(arguments.length){case 0:case 1:return 0;"];for(r=2;r<=s;++r)i.push("case ",r,":return o",r,"(",e.slice(0,r).join(),");");i.push("}var s=new Array(arguments.length);for(var i=0;i1&&es(t[o[c-2]],t[o[c-1]],u)<=0;)c-=1,o.pop();for(o.push(a),c=s.length;c>1&&es(t[s[c-2]],t[s[c-1]],u)>=0;)c-=1,s.pop();s.push(a)}n=new Array(s.length+o.length-2);for(var h=0,l=(r=0,o.length);r0;--p)n[h++]=s[p];return n},es=$o[3],ns=vt,rs=vt;vt.prototype={push:function(t){this.data.push(t),this.length++,this._up(this.length-1)},pop:function(){if(0!==this.length){var t=this.data[0];return this.length--,this.length>0&&(this.data[0]=this.data[this.length],this._down(0)),this.data.pop(),t}},peek:function(){return this.data[0]},_up:function(t){for(var e=this.data,n=this.compare,r=e[t];t>0;){var i=t-1>>1,o=e[i];if(n(r,o)>=0)break;e[t]=o,t=i}e[t]=r},_down:function(t){for(var e=this.data,n=this.compare,r=this.length>>1,i=e[t];t=0)break;e[t]=a,t=o}e[t]=i}},ns.default=rs;var is=function(t,e){for(var n=t[0],r=t[1],i=!1,o=0,s=e.length-1;or!=h>r&&n<(c-a)*(r-u)/(h-u)+a&&(i=!i)}return i},os=$o[3],ss=xt,as=xt;ss.default=as;var us=function(t){return t},cs=function(t){if(null==t)return us;var e,n,r=t.scale[0],i=t.scale[1],o=t.translate[0],s=t.translate[1];return function(t,a){a||(e=n=0);var u=2,c=t.length,h=new Array(c);for(h[0]=(e+=t[0])*r+o,h[1]=(n+=t[1])*i+s;u=t)throw new Error("full hashmap");h=s[c=c+1&u]}return s[c]=r,a[c]=o,o},maybeSet:function(r,o){for(var c=e(r)&u,h=s[c],l=0;h!=i;){if(n(h,r))return a[c];if(++l>=t)throw new Error("full hashmap");h=s[c=c+1&u]}return s[c]=r,a[c]=o,o},get:function(r,o){for(var c=e(r)&u,h=s[c],l=0;h!=i;){if(n(h,r))return a[c];if(++l>=t)break;h=s[c=c+1&u]}return o},keys:function(){for(var t=[],e=0,n=s.length;e>7^_s[2]^_s[3])},vs=function(t){function e(t,e,n,r){if(p[n]!==t){p[n]=t;var i=f[n];if(i>=0){var o=g[n];i===e&&o===r||i===r&&o===e||(++y,d[n]=1)}else f[n]=e,g[n]=r}}function n(t){return ms(u[t])}function r(t,e){return gs(u[t],u[e])}var i,o,s,a,u=t.coordinates,c=t.lines,h=t.rings,l=function(){for(var t=fs(1.4*u.length,n,r,Int32Array,-1,Int32Array),e=new Int32Array(u.length),i=0,o=u.length;i=t)throw new Error("full hashset");u=o[a=a+1&s]}return o[a]=r,!0},has:function(r){for(var a=e(r)&s,u=o[a],c=0;u!=i;){if(n(u,r))return!0;if(++c>=t)break;u=o[a=a+1&s]}return!1},values:function(){for(var t=[],e=0,n=o.length;ea&&(a=e),nu&&(u=n)}function r(t){t.forEach(n)}function i(t){t.forEach(r)}var o=1/0,s=1/0,a=-1/0,u=-1/0,c={GeometryCollection:function(t){t.geometries.forEach(e)},Point:function(t){n(t.coordinates)},MultiPoint:function(t){t.coordinates.forEach(n)},LineString:function(t){r(t.arcs)},MultiLineString:function(t){t.arcs.forEach(r)},Polygon:function(t){t.arcs.forEach(r)},MultiPolygon:function(t){t.arcs.forEach(i)}};for(var h in t)e(t[h]);return a>=o&&u>=s?[o,s,a,u]:void 0}(t=function(t){var e,n={};for(e in t)n[e]=Vt(t[e]);return n}(t)),s=e>0&&o&&function(t,e,n){function r(t){return[Math.round((t[0]-c)*f),Math.round((t[1]-h)*g)]}function i(t,e){for(var n,r,i,o,s,a=-1,u=0,l=t.length,p=new Array(l);++at&&(e.push(r),n=i)}return e},bs.prototype.vector=function(t){var e=this.pos(t+10),n=this.pos(t-10);return{angle:180*Math.atan2(e.y-n.y,e.x-n.x)/3.14,speed:Math.sqrt((n.x-e.x)*(n.x-e.x)+(n.y-e.y)*(n.y-e.y)+(n.z-e.z)*(n.z-e.z))}},bs.prototype.pos=function(t){var e=t-this.delay;e<0&&(e=0),e>this.duration&&(e=this.duration-1);var n=e/this.duration;if(n>=1)return this.points[this.length-1];var r=Math.floor((this.points.length-1)*n);return function(t,e,n,r,i){var o=function(t){var e=t*t;return[e*t,3*e*(1-t),3*t*(1-t)*(1-t),(1-t)*(1-t)*(1-t)]}(t);return{x:i.x*o[0]+r.x*o[1]+n.x*o[2]+e.x*o[3],y:i.y*o[0]+r.y*o[1]+n.y*o[2]+e.y*o[3],z:i.z*o[0]+r.z*o[1]+n.z*o[2]+e.z*o[3]}}((this.length-1)*n-r,this.points[r],this.controls[r][1],this.controls[r+1][0],this.points[r+1])};var Is=ve,Ns=ve;ve.deviation=function(t,e,n,r){var i=e&&e.length,o=i?e[0]*n:t.length,s=Math.abs(Ae(t,0,o,n));if(i)for(var a=0,u=e.length;a0&&(r+=t[i-1].length,n.holes.push(r))}return n},Is.default=Ns,ke.prototype={all:function(){return this._all(this.data,[])},search:function(t){var e=this.data,n=[],r=this.toBBox;if(!Je(t,e))return n;for(var i,o,s,a,u=[];e;){for(i=0,o=e.children.length;i=0&&o[e].children.length>this._maxEntries;)this._split(o,e),e--;this._adjustParentBBoxes(i,o,e)},_split:function(t,e){var n=t[e],r=n.children.length,i=this._minEntries;this._chooseSplitAxis(n,i,r);var o=this._chooseSplitIndex(n,i,r),s=Ze(n.children.splice(o,n.children.length-o));s.height=n.height,s.leaf=n.leaf,ze(n,this.toBBox),ze(s,this.toBBox),e?t[e-1].children.push(s):this._splitRoot(n,s)},_splitRoot:function(t,e){this.data=Ze([t,e]),this.data.height=t.height+1,this.data.leaf=!1,ze(this.data,this.toBBox)},_chooseSplitIndex:function(t,e,n){var r,i,o,s,a,u,c,h;for(u=c=1/0,r=e;r<=n-e;r++)s=function(t,e){var n=Math.max(t.minX,e.minX),r=Math.max(t.minY,e.minY),i=Math.min(t.maxX,e.maxX),o=Math.min(t.maxY,e.maxY);return Math.max(0,i-n)*Math.max(0,o-r)}(i=je(t,0,r,this.toBBox),o=je(t,r,n,this.toBBox)),a=Ve(i)+Ve(o),s=e;i--)o=t.children[i],Xe(u,t.leaf?s(o):o),c+=He(u);return c},_adjustParentBBoxes:function(t,e,n){for(var r=n;r>=0;r--)Xe(e[r],t)},_condense:function(t){for(var e,n=t.length-1;n>=0;n--)0===t[n].children.length?n>0?(e=t[n-1].children).splice(e.indexOf(t[n]),1):this.clear():ze(t[n],this.toBBox)},_initFormat:function(t){var e=["return a"," - b",";"];this.compareMinX=new Function("a","b",e.join(t[0])),this.compareMinY=new Function("a","b",e.join(t[1])),this.toBBox=new Function("a","return {minX: a"+t[0]+", minY: a"+t[1]+", maxX: a"+t[2]+", maxY: a"+t[3]+"};")}};var Cs=Object.freeze({toMercator:cn,toWgs84:hn}),Ss=6378137,Ms=function(t,e,n){function r(t,n,r,i){var u=o[t][n],c=o[t][n+1],h=o[r][i],l=o[r][i+1],p=function(t,e,n,r){if(On(t,n)||On(t,r)||On(e,n)||On(r,n))return null;var i=t[0],o=t[1],s=e[0],a=e[1],u=n[0],c=n[1],h=r[0],l=r[1],p=(i-s)*(c-l)-(o-a)*(u-h);return 0===p?null:[((i*a-o*s)*(u-h)-(i-s)*(u*l-c*h))/p,((i*a-o*s)*(c-l)-(o-a)*(u*l-c*h))/p]}(u,c,h,l);if(null!==p){var f,g;if(f=c[0]!==u[0]?(p[0]-u[0])/(c[0]-u[0]):(p[1]-u[1])/(c[1]-u[1]),g=l[0]!==h[0]?(p[0]-h[0])/(l[0]-h[0]):(p[1]-h[1])/(l[1]-h[1]),!(f>=1||f<=0||g>=1||g<=0)){var d=p,y=!a[d];y&&(a[d]=!0),e?s.push(e(p,t,n,u,c,f,r,i,h,l,g,y)):s.push(p)}}}function i(t,e){var n,r,i,s,a=o[t][e],u=o[t][e+1];return a[0]1)for(e=0;ey[e.isect].coord?-1:1});for(f=[];N.length>0;){var P=N.pop(),O=P.isect,R=P.parent,T=P.winding,A=f.length,D=[y[O].coord],F=O;if(y[O].ringAndEdge1Walkable)var q=y[O].ringAndEdge1,G=y[O].nxtIsectAlongRingAndEdge1;else q=y[O].ringAndEdge2,G=y[O].nxtIsectAlongRingAndEdge2;for(;!Tn(y[O].coord,y[G].coord);){D.push(y[G].coord);var B=void 0;for(a=0;ap&&(d>h&&gh&&du&&(u=y)}var _=[];if(a&&u0&&Math.abs(x-n[v-1][0])>p){var E=parseFloat(n[v-1][0]),w=parseFloat(n[v-1][1]),b=parseFloat(n[v][0]),I=parseFloat(n[v][1]);if(E>-180&&E-180&&n[v-1][0]h&&E<180&&-180===b&&v+1h&&n[v-1][0]<180){m.push([180,n[v][1]]),v++,m.push([n[v][0],n[v][1]]);continue}if(Eh){var N=E;E=b,b=N;var C=w;w=I,I=C}if(E>h&&b=180&&Eh?180:-180,M]),(m=[]).push([n[v-1][0]>h?-180:180,M]),_.push(m)}else m=[],_.push(m);m.push([x,n[v][1]])}else m.push([n[v][0],n[v][1]])}}else{var L=[];_.push(L);for(var P=0;P=0&&i.coordinates[0]-t.coordinates[0]<0)return 1;if(r.coordinates[0]-t.coordinates[0]<0&&i.coordinates[0]-t.coordinates[0]>=0)return-1;if(r.coordinates[0]-t.coordinates[0]==0&&i.coordinates[0]-t.coordinates[0]==0)return r.coordinates[1]-t.coordinates[1]>=0||i.coordinates[1]-t.coordinates[1]>=0?r.coordinates[1]-i.coordinates[1]:i.coordinates[1]-r.coordinates[1];var o=xr(t.coordinates,r.coordinates,i.coordinates);if(o<0)return 1;if(o>0)return-1;return Math.pow(r.coordinates[0]-t.coordinates[0],2)+Math.pow(r.coordinates[1]-t.coordinates[1],2)-(Math.pow(i.coordinates[0]-t.coordinates[0],2)+Math.pow(i.coordinates[1]-t.coordinates[1],2))}),this.outerEdgesSorted=!0)},Ta.prototype.getOuterEdges=function(){return this.sortOuterEdges(),this.outerEdges},Ta.prototype.getOuterEdge=function(t){return this.sortOuterEdges(),this.outerEdges[t]},Ta.prototype.addInnerEdge=function(t){this.innerEdges.push(t)};var Aa=function(t,e){this.from=t,this.to=e,this.next=void 0,this.label=void 0,this.symetric=void 0,this.ring=void 0,this.from.addOuterEdge(this),this.to.addInnerEdge(this)};Aa.prototype.getSymetric=function(){return this.symetric||(this.symetric=new Aa(this.to,this.from),this.symetric.symetric=this),this.symetric},Aa.prototype.deleteEdge=function(){this.from.removeOuterEdge(this),this.to.removeInnerEdge(this)},Aa.prototype.isEqual=function(t){return this.from.id===t.from.id&&this.to.id===t.to.id},Aa.prototype.toString=function(){return"Edge { "+this.from.id+" -> "+this.to.id+" }"},Aa.prototype.toLineString=function(){return a([this.from.coordinates,this.to.coordinates])},Aa.prototype.compareTo=function(t){return xr(t.from.coordinates,t.to.coordinates,this.to.coordinates)};var Da=function(){this.edges=[],this.polygon=void 0,this.envelope=void 0},Fa={length:{configurable:!0}};Da.prototype.push=function(t){this[this.edges.length]=t,this.edges.push(t),this.polygon=this.envelope=void 0},Da.prototype.get=function(t){return this.edges[t]},Fa.length.get=function(){return this.edges.length},Da.prototype.forEach=function(t){this.edges.forEach(t)},Da.prototype.map=function(t){return this.edges.map(t)},Da.prototype.some=function(t){return this.edges.some(t)},Da.prototype.isValid=function(){return!0},Da.prototype.isHole=function(){var t=this,e=this.edges.reduce(function(e,n,r){return n.from.coordinates[1]>t.edges[e].from.coordinates[1]&&(e=r),e},0),n=(0===e?this.length:e)-1,r=(e+1)%this.length,i=xr(this.edges[n].from.coordinates,this.edges[e].from.coordinates,this.edges[r].from.coordinates);return 0===i?this.edges[n].from.coordinates[0]>this.edges[r].from.coordinates[0]:i>0},Da.prototype.toMultiPoint=function(){return l(this.edges.map(function(t){return t.from.coordinates}))},Da.prototype.toPolygon=function(){if(this.polygon)return this.polygon;var t=this.edges.map(function(t){return t.from.coordinates});return t.push(this.edges[0].from.coordinates),this.polygon=o([t])},Da.prototype.getEnvelope=function(){return this.envelope?this.envelope:this.envelope=he(this.toPolygon())},Da.findEdgeRingContaining=function(t,e){var n,i,o=t.getEnvelope();return e.forEach(function(e){var s=e.getEnvelope();if(i&&(n=i.getEnvelope()),!function(t,e){var n=t.geometry.coordinates.map(function(t){return t[0]}),r=t.geometry.coordinates.map(function(t){return t[1]}),i=e.geometry.coordinates.map(function(t){return t[0]}),o=e.geometry.coordinates.map(function(t){return t[1]});return Math.max(null,n)===Math.max(null,i)&&Math.max(null,r)===Math.max(null,o)&&Math.min(null,n)===Math.min(null,i)&&Math.min(null,r)===Math.min(null,o)}(s,o)&&Er(s,o)){var a=t.map(function(t){return t.from.coordinates}).find(function(t){return!e.some(function(e){return function(t,e){return t[0]===e[0]&&t[1]===e[1]}(t,e.from.coordinates)})});a&&e.inside(r(a))&&(i&&!Er(n,s)||(i=e))}}),i},Da.prototype.inside=function(t){return Pt(t,this.toPolygon())},Object.defineProperties(Da.prototype,Fa);var qa=function(){this.edges=[],this.nodes={}};qa.fromGeoJson=function(t){!function(t){if(!t)throw new Error("No geojson passed");if("FeatureCollection"!==t.type&&"GeometryCollection"!==t.type&&"MultiLineString"!==t.type&&"LineString"!==t.type&&"Feature"!==t.type)throw new Error("Invalid input type '"+t.type+"'. Geojson must be FeatureCollection, GeometryCollection, LineString, MultiLineString or Feature")}(t);var e=new qa;return F(t,function(t){H(t,"LineString","Graph::fromGeoJson"),M(t,function(t,n){if(t){var r=e.getNode(t),i=e.getNode(n);e.addEdge(r,i)}return n})}),e},qa.prototype.getNode=function(t){var e=Ta.buildId(t),n=this.nodes[e];return n||(n=this.nodes[e]=new Ta(t)),n},qa.prototype.addEdge=function(t,e){var n=new Aa(t,e),r=n.getSymetric();this.edges.push(n),this.edges.push(r)},qa.prototype.deleteDangles=function(){var t=this;Object.keys(this.nodes).map(function(e){return t.nodes[e]}).forEach(function(e){return t._removeIfDangle(e)})},qa.prototype._removeIfDangle=function(t){var e=this;if(t.innerEdges.length<=1){var n=t.getOuterEdges().map(function(t){return t.to});this.removeNode(t),n.forEach(function(t){return e._removeIfDangle(t)})}},qa.prototype.deleteCutEdges=function(){var t=this;this._computeNextCWEdges(),this._findLabeledEdgeRings(),this.edges.forEach(function(e){e.label===e.symetric.label&&(t.removeEdge(e.symetric),t.removeEdge(e))})},qa.prototype._computeNextCWEdges=function(t){var e=this;void 0===t?Object.keys(this.nodes).forEach(function(t){return e._computeNextCWEdges(e.nodes[t])}):t.getOuterEdges().forEach(function(e,n){t.getOuterEdge((0===n?t.getOuterEdges().length:n)-1).symetric.next=e})},qa.prototype._computeNextCCWEdges=function(t,e){for(var n,r,i=t.getOuterEdges(),o=i.length-1;o>=0;--o){var s=i[o],a=s.symetric,u=void 0,c=void 0;s.label===e&&(u=s),a.label===e&&(c=a),u&&c&&(c&&(r=c),u&&(r&&(r.next=u,r=void 0),n||(n=u)))}r&&(r.next=n)},qa.prototype._findLabeledEdgeRings=function(){var t=[],e=0;return this.edges.forEach(function(n){if(!(n.label>=0)){t.push(n);var r=n;do{r.label=e,r=r.next}while(!n.isEqual(r));e++}}),t},qa.prototype.getEdgeRings=function(){var t=this;this._computeNextCWEdges(),this.edges.forEach(function(t){t.label=void 0}),this._findLabeledEdgeRings().forEach(function(e){t._findIntersectionNodes(e).forEach(function(n){t._computeNextCCWEdges(n,e.label)})});var e=[];return this.edges.forEach(function(n){n.ring||e.push(t._findEdgeRing(n))}),e},qa.prototype._findIntersectionNodes=function(t){var e=[],n=t,r=function(){var r=0;n.from.getOuterEdges().forEach(function(e){e.label===t.label&&++r}),r>1&&e.push(n.from),n=n.next};do{r()}while(!t.isEqual(n));return e},qa.prototype._findEdgeRing=function(t){var e=t,n=new Da;do{n.push(e),e.ring=n,e=e.next}while(!t.isEqual(e));return n},qa.prototype.removeNode=function(t){var e=this;t.getOuterEdges().forEach(function(t){return e.removeEdge(t)}),t.innerEdges.forEach(function(t){return e.removeEdge(t)}),delete this.nodes[t.id]},qa.prototype.removeEdge=function(t){this.edges=this.edges.filter(function(e){return!e.isEqual(t)}),t.deleteEdge()};var Ga=mt(function(t,e){function n(t){var e=[];for(var n in t)e.push(n);return e}(t.exports="function"==typeof Object.keys?Object.keys:n).shim=n}),Ba=(Ga.shim,mt(function(t,e){function n(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function r(t){return t&&"object"==typeof t&&"number"==typeof t.length&&Object.prototype.hasOwnProperty.call(t,"callee")&&!Object.prototype.propertyIsEnumerable.call(t,"callee")||!1}var i="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();(e=t.exports=i?n:r).supported=n,e.unsupported=r})),ka=(Ba.supported,Ba.unsupported,mt(function(t){function e(t){return null===t||void 0===t}function n(t){return!(!t||"object"!=typeof t||"number"!=typeof t.length)&&("function"==typeof t.copy&&"function"==typeof t.slice&&!(t.length>0&&"number"!=typeof t[0]))}var r=Array.prototype.slice,i=t.exports=function(t,o,s){return s||(s={}),t===o||(t instanceof Date&&o instanceof Date?t.getTime()===o.getTime():!t||!o||"object"!=typeof t&&"object"!=typeof o?s.strict?t===o:t==o:function(t,o,s){var a,u;if(e(t)||e(o))return!1;if(t.prototype!==o.prototype)return!1;if(Ba(t))return!!Ba(o)&&(t=r.call(t),o=r.call(o),i(t,o,s));if(n(t)){if(!n(o))return!1;if(t.length!==o.length)return!1;for(a=0;a=0;a--)if(c[a]!=h[a])return!1;for(a=c.length-1;a>=0;a--)if(u=c[a],!i(t[u],o[u],s))return!1;return typeof t==typeof o}(t,o,s))}})),za=function(t){this.precision=t&&t.precision?t.precision:17,this.direction=!(!t||!t.direction)&&t.direction,this.pseudoNode=!(!t||!t.pseudoNode)&&t.pseudoNode,this.objectComparator=t&&t.objectComparator?t.objectComparator:Rr};za.prototype.compare=function(t,e){if(t.type!==e.type||!Or(t,e))return!1;switch(t.type){case"Point":return this.compareCoord(t.coordinates,e.coordinates);case"LineString":return this.compareLine(t.coordinates,e.coordinates,0,!1);case"Polygon":return this.comparePolygon(t,e);case"Feature":return this.compareFeature(t,e);default:if(0===t.type.indexOf("Multi")){var n=this,r=Pr(t),i=Pr(e);return r.every(function(t){return this.some(function(e){return n.compare(t,e)})},i)}}return!1},za.prototype.compareCoord=function(t,e){if(t.length!==e.length)return!1;for(var n=0;n=0&&(n=[].concat(t.slice(r,t.length),t.slice(1,r+1))),n},za.prototype.comparePath=function(t,e){var n=this;return t.every(function(t,e){return n.compareCoord(t,this[e])},e)},za.prototype.comparePolygon=function(t,e){if(this.compareLine(t.coordinates[0],e.coordinates[0],1,!0)){var n=t.coordinates.slice(1,t.coordinates.length),r=e.coordinates.slice(1,e.coordinates.length),i=this;return n.every(function(t){return this.some(function(e){return i.compareLine(t,e,1,!0)})},r)}return!1},za.prototype.compareFeature=function(t,e){return!(t.id!==e.id||!this.objectComparator(t.properties,e.properties)||!this.compareBBox(t,e))&&this.compare(t.geometry,e.geometry)},za.prototype.compareBBox=function(t,e){return!!(!t.bbox&&!e.bbox||t.bbox&&e.bbox&&this.compareCoord(t.bbox,e.bbox))},za.prototype.removePseudo=function(t){return t};var ja=za,Xa=mt(function(t){function e(t,e,n,r){this.dataset=[],this.epsilon=1,this.minPts=2,this.distance=this._euclideanDistance,this.clusters=[],this.noise=[],this._visited=[],this._assigned=[],this._datasetLength=0,this._init(t,e,n,r)}e.prototype.run=function(t,e,n,r){this._init(t,e,n,r);for(var i=0;i=this.minPts&&(e=this._mergeArrays(e,i))}1!==this._assigned[r]&&this._addToCluster(r,t)}},e.prototype._addToCluster=function(t,e){this.clusters[e].push(t),this._assigned[t]=1},e.prototype._regionQuery=function(t){for(var e=[],n=0;n0){for(u=0;u=0);return t},e.prototype.assign=function(){for(var t,e=!1,n=this.dataset.length,r=0;ri&&(n=r):e=this.minPts)return n}},e.prototype._regionQuery=function(t,e){e=e||this.epsilon;for(var n=[],r=0,i=this.dataset.length;r0;r.length0;){var a=t[Math.floor(Math.random()*o)],u=s?a.join("_"):""+a;n[u]||(n[u]=!0,r.push(a))}if(r.length0,s=t[Math.floor(Math.random()*i)];o&&s.join("_");for(r.push(s);r.length0,f=[];if(n)i="kmrand"==n?Qa(t,e):"kmpp"==n?$a(t,e):n;else for(var g={};i.length0;){var u=s.pop();if(u===n)return Fr(u);u.closed=!0;for(var c=t.neighbors(u),h=0,l=c.length;h0&&(this.content[0]=e,this.bubbleUp(0)),t},remove:function(t){var e=this.content.indexOf(t),n=this.content.pop();e!==this.content.length-1&&(this.content[e]=n,this.scoreFunction(n)0;){var n=(t+1>>1)-1,r=this.content[n];if(!(this.scoreFunction(e)=a)return null;var u=t-i.site[0],c=e-i.site[1],h=u*u+c*c;do{i=o.cells[r=s],s=null,i.halfedges.forEach(function(n){var r=o.edges[n],a=r.left;if(a!==i.site&&a||(a=r.right)){var u=t-a[0],c=e-a[1],l=u*u+c*c;le.x?1:this.ye.y?1:0},bu.prototype.clone=function(){},bu.prototype.copy=function(){return new bu(this)},bu.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},bu.prototype.distance3D=function(t){var e=this.x-t.x,n=this.y-t.y,r=this.z-t.z;return Math.sqrt(e*e+n*n+r*r)},bu.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)},bu.prototype.hashCode=function(){var t=17;return t=37*t+bu.hashCode(this.x),t=37*t+bu.hashCode(this.y)},bu.prototype.setCoordinate=function(t){this.x=t.x,this.y=t.y,this.z=t.z},bu.prototype.interfaces_=function(){return[xu,Eu,Li]},bu.prototype.getClass=function(){return bu},bu.hashCode=function(){if(1===arguments.length){var t=arguments[0],e=mu.doubleToLongBits(t);return Math.trunc((e^e)>>>32)}},Iu.DimensionalComparator.get=function(){return Nu},Iu.serialVersionUID.get=function(){return 0x5cbf2c235c7e5800},Iu.NULL_ORDINATE.get=function(){return mu.NaN},Iu.X.get=function(){return 0},Iu.Y.get=function(){return 1},Iu.Z.get=function(){return 2},Object.defineProperties(bu,Iu);var Nu=function(t){if(this._dimensionsToTest=2,0===arguments.length);else if(1===arguments.length){var e=arguments[0];if(2!==e&&3!==e)throw new _u("only 2 or 3 dimensions may be specified");this._dimensionsToTest=e}};Nu.prototype.compare=function(t,e){var n=t,r=e,i=Nu.compare(n.x,r.x);if(0!==i)return i;var o=Nu.compare(n.y,r.y);if(0!==o)return o;if(this._dimensionsToTest<=2)return 0;return Nu.compare(n.z,r.z)},Nu.prototype.interfaces_=function(){return[wu]},Nu.prototype.getClass=function(){return Nu},Nu.compare=function(t,e){return te?1:mu.isNaN(t)?mu.isNaN(e)?0:-1:mu.isNaN(e)?1:0};var Cu=function(){};Cu.prototype.create=function(){},Cu.prototype.interfaces_=function(){return[]},Cu.prototype.getClass=function(){return Cu};var Su=function(){},Mu={INTERIOR:{configurable:!0},BOUNDARY:{configurable:!0},EXTERIOR:{configurable:!0},NONE:{configurable:!0}};Su.prototype.interfaces_=function(){return[]},Su.prototype.getClass=function(){return Su},Su.toLocationSymbol=function(t){switch(t){case Su.EXTERIOR:return"e";case Su.BOUNDARY:return"b";case Su.INTERIOR:return"i";case Su.NONE:return"-"}throw new _u("Unknown location value: "+t)},Mu.INTERIOR.get=function(){return 0},Mu.BOUNDARY.get=function(){return 1},Mu.EXTERIOR.get=function(){return 2},Mu.NONE.get=function(){return-1},Object.defineProperties(Su,Mu);var Lu=function(t,e){return t.interfaces_&&t.interfaces_().indexOf(e)>-1},Pu=function(){},Ou={LOG_10:{configurable:!0}};Pu.prototype.interfaces_=function(){return[]},Pu.prototype.getClass=function(){return Pu},Pu.log10=function(t){var e=Math.log(t);return mu.isInfinite(e)?e:mu.isNaN(e)?e:e/Pu.LOG_10},Pu.min=function(t,e,n,r){var i=t;return en?n:t}if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var r=arguments[0],i=arguments[1],o=arguments[2];return ro?o:r}},Pu.wrap=function(t,e){return t<0?e- -t%e:t%e},Pu.max=function(){if(3===arguments.length){var t=arguments[0],e=arguments[1],n=arguments[2],r=t;return e>r&&(r=e),n>r&&(r=n),r}if(4===arguments.length){var i=arguments[0],o=arguments[1],s=arguments[2],a=arguments[3],u=i;return o>u&&(u=o),s>u&&(u=s),a>u&&(u=a),u}},Pu.average=function(t,e){return(t+e)/2},Ou.LOG_10.get=function(){return Math.log(10)},Object.defineProperties(Pu,Ou);var Ru=function(t){this.str=t};Ru.prototype.append=function(t){this.str+=t},Ru.prototype.setCharAt=function(t,e){this.str=this.str.substr(0,t)+e+this.str.substr(t+1)},Ru.prototype.toString=function(t){return this.str};var Tu=function(t){this.value=t};Tu.prototype.intValue=function(){return this.value},Tu.prototype.compareTo=function(t){return this.valuet?1:0},Tu.isNaN=function(t){return Number.isNaN(t)};var Au=function(){};Au.isWhitespace=function(t){return t<=32&&t>=0||127===t},Au.toUpperCase=function(t){return t.toUpperCase()};var Du=function t(){if(this._hi=0,this._lo=0,0===arguments.length)this.init(0);else if(1===arguments.length){if("number"==typeof arguments[0]){var e=arguments[0];this.init(e)}else if(arguments[0]instanceof t){var n=arguments[0];this.init(n)}else if("string"==typeof arguments[0]){var r=arguments[0];t.call(this,t.parse(r))}}else if(2===arguments.length){var i=arguments[0],o=arguments[1];this.init(i,o)}},Fu={PI:{configurable:!0},TWO_PI:{configurable:!0},PI_2:{configurable:!0},E:{configurable:!0},NaN:{configurable:!0},EPS:{configurable:!0},SPLIT:{configurable:!0},MAX_PRINT_DIGITS:{configurable:!0},TEN:{configurable:!0},ONE:{configurable:!0},SCI_NOT_EXPONENT_CHAR:{configurable:!0},SCI_NOT_ZERO:{configurable:!0}};Du.prototype.le=function(t){return(this._hi9?(h=!0,l="9"):l="0"+c,s.append(l),n=n.subtract(Du.valueOf(c)).multiply(Du.TEN),h&&n.selfAdd(Du.TEN);var p=!0,f=Du.magnitude(n._hi);if(f<0&&Math.abs(f)>=a-u&&(p=!1),!p)break}return e[0]=r,s.toString()},Du.prototype.sqr=function(){return this.multiply(this)},Du.prototype.doubleValue=function(){return this._hi+this._lo},Du.prototype.subtract=function(){if(arguments[0]instanceof Du){var t=arguments[0];return this.add(t.negate())}if("number"==typeof arguments[0]){var e=arguments[0];return this.add(-e)}},Du.prototype.equals=function(){if(1===arguments.length){var t=arguments[0];return this._hi===t._hi&&this._lo===t._lo}},Du.prototype.isZero=function(){return 0===this._hi&&0===this._lo},Du.prototype.selfSubtract=function(){if(arguments[0]instanceof Du){var t=arguments[0];return this.isNaN()?this:this.selfAdd(-t._hi,-t._lo)}if("number"==typeof arguments[0]){var e=arguments[0];return this.isNaN()?this:this.selfAdd(-e,0)}},Du.prototype.getSpecialNumberString=function(){return this.isZero()?"0.0":this.isNaN()?"NaN ":null},Du.prototype.min=function(t){return this.le(t)?this:t},Du.prototype.selfDivide=function(){if(1===arguments.length){if(arguments[0]instanceof Du){var t=arguments[0];return this.selfDivide(t._hi,t._lo)}if("number"==typeof arguments[0]){var e=arguments[0];return this.selfDivide(e,0)}}else if(2===arguments.length){var n=arguments[0],r=arguments[1],i=null,o=null,s=null,a=null,u=null,c=null,h=null,l=null;return u=this._hi/n,c=Du.SPLIT*u,i=c-u,l=Du.SPLIT*n,i=c-i,o=u-i,s=l-n,h=u*n,s=l-s,a=n-s,l=i*s-h+i*a+o*s+o*a,c=(this._hi-h-l+this._lo-u*r)/n,l=u+c,this._hi=l,this._lo=u-l+c,this}},Du.prototype.dump=function(){return"DD<"+this._hi+", "+this._lo+">"},Du.prototype.divide=function(){if(arguments[0]instanceof Du){var t=arguments[0],e=null,n=null,r=null,i=null,o=null,s=null,a=null,u=null;n=(o=this._hi/t._hi)-(e=(s=Du.SPLIT*o)-(e=s-o)),u=e*(r=(u=Du.SPLIT*t._hi)-(r=u-t._hi))-(a=o*t._hi)+e*(i=t._hi-r)+n*r+n*i,s=(this._hi-a-u+this._lo-o*t._lo)/t._hi;return new Du(u=o+s,o-u+s)}if("number"==typeof arguments[0]){var c=arguments[0];return mu.isNaN(c)?Du.createNaN():Du.copy(this).selfDivide(c,0)}},Du.prototype.ge=function(t){return(this._hi>t._hi||this._hi===t._hi)&&this._lo>=t._lo},Du.prototype.pow=function(t){if(0===t)return Du.valueOf(1);var e=new Du(this),n=Du.valueOf(1),r=Math.abs(t);if(r>1)for(;r>0;)r%2==1&&n.selfMultiply(e),(r/=2)>0&&(e=e.sqr());else n=e;return t<0?n.reciprocal():n},Du.prototype.ceil=function(){if(this.isNaN())return Du.NaN;var t=Math.ceil(this._hi),e=0;return t===this._hi&&(e=Math.ceil(this._lo)),new Du(t,e)},Du.prototype.compareTo=function(t){var e=t;return this._hie._hi?1:this._loe._lo?1:0},Du.prototype.rint=function(){if(this.isNaN())return this;return this.add(.5).floor()},Du.prototype.setValue=function(){if(arguments[0]instanceof Du){var t=arguments[0];return this.init(t),this}if("number"==typeof arguments[0]){var e=arguments[0];return this.init(e),this}},Du.prototype.max=function(t){return this.ge(t)?this:t},Du.prototype.sqrt=function(){if(this.isZero())return Du.valueOf(0);if(this.isNegative())return Du.NaN;var t=1/Math.sqrt(this._hi),e=this._hi*t,n=Du.valueOf(e),r=this.subtract(n.sqr())._hi*(.5*t);return n.add(r)},Du.prototype.selfAdd=function(){if(1===arguments.length){if(arguments[0]instanceof Du){var t=arguments[0];return this.selfAdd(t._hi,t._lo)}if("number"==typeof arguments[0]){var e=arguments[0],n=null,r=null,i=null,o=null,s=null,a=null;return i=this._hi+e,s=i-this._hi,o=i-s,o=e-s+(this._hi-o),a=o+this._lo,n=i+a,r=a+(i-n),this._hi=n+r,this._lo=r+(n-this._hi),this}}else if(2===arguments.length){var u=arguments[0],c=arguments[1],h=null,l=null,p=null,f=null,g=null,d=null,y=null;f=this._hi+u,l=this._lo+c,g=f-(d=f-this._hi),p=l-(y=l-this._lo);var _=(h=f+(d=(g=u-d+(this._hi-g))+l))+(d=(p=c-y+(this._lo-p))+(d+(f-h))),m=d+(h-_);return this._hi=_,this._lo=m,this}},Du.prototype.selfMultiply=function(){if(1===arguments.length){if(arguments[0]instanceof Du){var t=arguments[0];return this.selfMultiply(t._hi,t._lo)}if("number"==typeof arguments[0]){var e=arguments[0];return this.selfMultiply(e,0)}}else if(2===arguments.length){var n=arguments[0],r=arguments[1],i=null,o=null,s=null,a=null,u=null,c=null;i=(u=Du.SPLIT*this._hi)-this._hi,c=Du.SPLIT*n,i=u-i,o=this._hi-i,s=c-n;var h=(u=this._hi*n)+(c=i*(s=c-s)-u+i*(a=n-s)+o*s+o*a+(this._hi*r+this._lo*n)),l=c+(i=u-h);return this._hi=h,this._lo=l,this}},Du.prototype.selfSqr=function(){return this.selfMultiply(this)},Du.prototype.floor=function(){if(this.isNaN())return Du.NaN;var t=Math.floor(this._hi),e=0;return t===this._hi&&(e=Math.floor(this._lo)),new Du(t,e)},Du.prototype.negate=function(){return this.isNaN()?this:new Du(-this._hi,-this._lo)},Du.prototype.clone=function(){},Du.prototype.multiply=function(){if(arguments[0]instanceof Du){var t=arguments[0];return t.isNaN()?Du.createNaN():Du.copy(this).selfMultiply(t)}if("number"==typeof arguments[0]){var e=arguments[0];return mu.isNaN(e)?Du.createNaN():Du.copy(this).selfMultiply(e,0)}},Du.prototype.isNaN=function(){return mu.isNaN(this._hi)},Du.prototype.intValue=function(){return Math.trunc(this._hi)},Du.prototype.toString=function(){var t=Du.magnitude(this._hi);return t>=-3&&t<=20?this.toStandardNotation():this.toSciNotation()},Du.prototype.toStandardNotation=function(){var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),n=this.extractSignificantDigits(!0,e),r=e[0]+1,i=n;if("."===n.charAt(0))i="0"+n;else if(r<0)i="0."+Du.stringOfChar("0",-r)+n;else if(-1===n.indexOf(".")){var o=r-n.length;i=n+Du.stringOfChar("0",o)+".0"}return this.isNegative()?"-"+i:i},Du.prototype.reciprocal=function(){var t=null,e=null,n=null,r=null,i=null,o=null,s=null,a=null;e=(i=1/this._hi)-(t=(o=Du.SPLIT*i)-(t=o-i)),n=(a=Du.SPLIT*this._hi)-this._hi;var u=i+(o=(1-(s=i*this._hi)-(a=t*(n=a-n)-s+t*(r=this._hi-n)+e*n+e*r)-i*this._lo)/this._hi);return new Du(u,i-u+o)},Du.prototype.toSciNotation=function(){if(this.isZero())return Du.SCI_NOT_ZERO;var t=this.getSpecialNumberString();if(null!==t)return t;var e=new Array(1).fill(null),n=this.extractSignificantDigits(!1,e),r=Du.SCI_NOT_EXPONENT_CHAR+e[0];if("0"===n.charAt(0))throw new Error("Found leading zero: "+n);var i="";n.length>1&&(i=n.substring(1));var o=n.charAt(0)+"."+i;return this.isNegative()?"-"+o+r:o+r},Du.prototype.abs=function(){return this.isNaN()?Du.NaN:this.isNegative()?this.negate():new Du(this)},Du.prototype.isPositive=function(){return(this._hi>0||0===this._hi)&&this._lo>0},Du.prototype.lt=function(t){return(this._hit._hi||this._hi===t._hi)&&this._lo>t._lo},Du.prototype.isNegative=function(){return(this._hi<0||0===this._hi)&&this._lo<0},Du.prototype.trunc=function(){return this.isNaN()?Du.NaN:this.isPositive()?this.floor():this.ceil()},Du.prototype.signum=function(){return this._hi>0?1:this._hi<0?-1:this._lo>0?1:this._lo<0?-1:0},Du.prototype.interfaces_=function(){return[Li,xu,Eu]},Du.prototype.getClass=function(){return Du},Du.sqr=function(t){return Du.valueOf(t).selfMultiply(t)},Du.valueOf=function(){if("string"==typeof arguments[0]){var t=arguments[0];return Du.parse(t)}if("number"==typeof arguments[0]){var e=arguments[0];return new Du(e)}},Du.sqrt=function(t){return Du.valueOf(t).sqrt()},Du.parse=function(t){for(var e=0,n=t.length;Au.isWhitespace(t.charAt(e));)e++;var r=!1;if(e=n);){var c=t.charAt(e);if(e++,Au.isDigit(c)){var h=c-"0";o.selfMultiply(Du.TEN),o.selfAdd(h),s++}else{if("."!==c){if("e"===c||"E"===c){var l=t.substring(e);try{u=Tu.parseInt(l)}catch(e){throw e instanceof Error?new Error("Invalid exponent "+l+" in string "+t):e}break}throw new Error("Unexpected character '"+c+"' at position "+e+" in string "+t)}a=s}}var p=o,f=s-a-u;if(0===f)p=o;else if(f>0){var g=Du.TEN.pow(f);p=o.divide(g)}else if(f<0){var d=Du.TEN.pow(-f);p=o.multiply(d)}return r?p.negate():p},Du.createNaN=function(){return new Du(mu.NaN,mu.NaN)},Du.copy=function(t){return new Du(t)},Du.magnitude=function(t){var e=Math.abs(t),n=Math.log(e)/Math.log(10),r=Math.trunc(Math.floor(n));return 10*Math.pow(10,r)<=e&&(r+=1),r},Du.stringOfChar=function(t,e){for(var n=new Ru,r=0;r0){if(o<=0)return qu.signum(s);r=i+o}else{if(!(i<0))return qu.signum(s);if(o>=0)return qu.signum(s);r=-i-o}var a=qu.DP_SAFE_EPSILON*r;return s>=a||-s>=a?qu.signum(s):2},qu.signum=function(t){return t>0?1:t<0?-1:0},Gu.DP_SAFE_EPSILON.get=function(){return 1e-15},Object.defineProperties(qu,Gu);var Bu=function(){},ku={X:{configurable:!0},Y:{configurable:!0},Z:{configurable:!0},M:{configurable:!0}};ku.X.get=function(){return 0},ku.Y.get=function(){return 1},ku.Z.get=function(){return 2},ku.M.get=function(){return 3},Bu.prototype.setOrdinate=function(t,e,n){},Bu.prototype.size=function(){},Bu.prototype.getOrdinate=function(t,e){},Bu.prototype.getCoordinate=function(){},Bu.prototype.getCoordinateCopy=function(t){},Bu.prototype.getDimension=function(){},Bu.prototype.getX=function(t){},Bu.prototype.clone=function(){},Bu.prototype.expandEnvelope=function(t){},Bu.prototype.copy=function(){},Bu.prototype.getY=function(t){},Bu.prototype.toCoordinateArray=function(){},Bu.prototype.interfaces_=function(){return[Eu]},Bu.prototype.getClass=function(){return Bu},Object.defineProperties(Bu,ku);var zu=function(){},ju=function(t){function e(){t.call(this,"Projective point not representable on the Cartesian plane.")}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(zu),Xu=function(){};Xu.arraycopy=function(t,e,n,r,i){for(var o=0,s=e;st._minx?this._minx:t._minx,n=this._miny>t._miny?this._miny:t._miny,r=this._maxx=this._minx&&e.getMaxX()<=this._maxx&&e.getMinY()>=this._miny&&e.getMaxY()<=this._maxy)}}else if(2===arguments.length){var n=arguments[0],r=arguments[1];return!this.isNull()&&(n>=this._minx&&n<=this._maxx&&r>=this._miny&&r<=this._maxy)}},Yu.prototype.intersects=function(){if(1===arguments.length){if(arguments[0]instanceof Yu){var t=arguments[0];return!this.isNull()&&!t.isNull()&&!(t._minx>this._maxx||t._maxxthis._maxy||t._maxythis._maxx||nthis._maxy||rthis._maxx&&(this._maxx=e._maxx),e._minythis._maxy&&(this._maxy=e._maxy))}}else if(2===arguments.length){var n=arguments[0],r=arguments[1];this.isNull()?(this._minx=n,this._maxx=n,this._miny=r,this._maxy=r):(nthis._maxx&&(this._maxx=n),rthis._maxy&&(this._maxy=r))}},Yu.prototype.minExtent=function(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return te._minx?1:this._minye._miny?1:this._maxxe._maxx?1:this._maxye._maxy?1:0},Yu.prototype.translate=function(t,e){if(this.isNull())return null;this.init(this.getMinX()+t,this.getMaxX()+t,this.getMinY()+e,this.getMaxY()+e)},Yu.prototype.toString=function(){return"Env["+this._minx+" : "+this._maxx+", "+this._miny+" : "+this._maxy+"]"},Yu.prototype.setToNull=function(){this._minx=0,this._maxx=-1,this._miny=0,this._maxy=-1},Yu.prototype.getHeight=function(){return this.isNull()?0:this._maxy-this._miny},Yu.prototype.maxExtent=function(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return t>e?t:e},Yu.prototype.expandBy=function(){if(1===arguments.length){var t=arguments[0];this.expandBy(t,t)}else if(2===arguments.length){var e=arguments[0],n=arguments[1];if(this.isNull())return null;this._minx-=e,this._maxx+=e,this._miny-=n,this._maxy+=n,(this._minx>this._maxx||this._miny>this._maxy)&&this.setToNull()}},Yu.prototype.contains=function(){if(1===arguments.length){if(arguments[0]instanceof Yu){var t=arguments[0];return this.covers(t)}if(arguments[0]instanceof bu){var e=arguments[0];return this.covers(e)}}else if(2===arguments.length){var n=arguments[0],r=arguments[1];return this.covers(n,r)}},Yu.prototype.centre=function(){return this.isNull()?null:new bu((this.getMinX()+this.getMaxX())/2,(this.getMinY()+this.getMaxY())/2)},Yu.prototype.init=function(){if(0===arguments.length)this.setToNull();else if(1===arguments.length){if(arguments[0]instanceof bu){var t=arguments[0];this.init(t.x,t.x,t.y,t.y)}else if(arguments[0]instanceof Yu){var e=arguments[0];this._minx=e._minx,this._maxx=e._maxx,this._miny=e._miny,this._maxy=e._maxy}}else if(2===arguments.length){var n=arguments[0],r=arguments[1];this.init(n.x,r.x,n.y,r.y)}else if(4===arguments.length){var i=arguments[0],o=arguments[1],s=arguments[2],a=arguments[3];it._maxx&&(e=this._minx-t._maxx);var n=0;return this._maxyt._maxy&&(n=this._miny-t._maxy),0===e?n:0===n?e:Math.sqrt(e*e+n*n)},Yu.prototype.hashCode=function(){var t=17;return t=37*t+bu.hashCode(this._minx),t=37*t+bu.hashCode(this._maxx),t=37*t+bu.hashCode(this._miny),t=37*t+bu.hashCode(this._maxy)},Yu.prototype.interfaces_=function(){return[xu,Li]},Yu.prototype.getClass=function(){return Yu},Yu.intersects=function(){if(3===arguments.length){var t=arguments[0],e=arguments[1],n=arguments[2];return n.x>=(t.xe.x?t.x:e.x)&&n.y>=(t.ye.y?t.y:e.y)}if(4===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2],s=arguments[3],a=Math.min(o.x,s.x),u=Math.max(o.x,s.x),c=Math.min(r.x,i.x),h=Math.max(r.x,i.x);return!(c>u)&&(!(hu)&&!(hthis.getEdgeDistance(t,1)?(this._intLineIndex[t][0]=0,this._intLineIndex[t][1]=1):(this._intLineIndex[t][0]=1,this._intLineIndex[t][1]=0)}},ec.prototype.isProper=function(){return this.hasIntersection()&&this._isProper},ec.prototype.setPrecisionModel=function(t){this._precisionModel=t},ec.prototype.isInteriorIntersection=function(){if(0===arguments.length)return!!this.isInteriorIntersection(0)||!!this.isInteriorIntersection(1);if(1===arguments.length){for(var t=arguments[0],e=0;ei?r:i;else{var s=Math.abs(t.x-e.x),a=Math.abs(t.y-e.y);0!==(o=r>i?s:a)||t.equals(e)||(o=Math.max(s,a))}return tc.isTrue(!(0===o&&!t.equals(e)),"Bad distance calculation"),o},ec.nonRobustComputeEdgeDistance=function(t,e,n){var r=t.x-e.x,i=t.y-e.y,o=Math.sqrt(r*r+i*i);return tc.isTrue(!(0===o&&!t.equals(e)),"Invalid distance calculation"),o},nc.DONT_INTERSECT.get=function(){return 0},nc.DO_INTERSECT.get=function(){return 1},nc.COLLINEAR.get=function(){return 2},nc.NO_INTERSECTION.get=function(){return 0},nc.POINT_INTERSECTION.get=function(){return 1},nc.COLLINEAR_INTERSECTION.get=function(){return 2},Object.defineProperties(ec,nc);var rc=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isInSegmentEnvelopes=function(t){var e=new Yu(this._inputLines[0][0],this._inputLines[0][1]),n=new Yu(this._inputLines[1][0],this._inputLines[1][1]);return e.contains(t)&&n.contains(t)},e.prototype.computeIntersection=function(){if(3!==arguments.length)return t.prototype.computeIntersection.apply(this,arguments);var e=arguments[0],n=arguments[1],r=arguments[2];if(this._isProper=!1,Yu.intersects(n,r,e)&&0===sc.orientationIndex(n,r,e)&&0===sc.orientationIndex(r,n,e))return this._isProper=!0,(e.equals(n)||e.equals(r))&&(this._isProper=!1),this._result=t.POINT_INTERSECTION,null;this._result=t.NO_INTERSECTION},e.prototype.normalizeToMinimum=function(t,e,n,r,i){i.x=this.smallestInAbsValue(t.x,e.x,n.x,r.x),i.y=this.smallestInAbsValue(t.y,e.y,n.y,r.y),t.x-=i.x,t.y-=i.y,e.x-=i.x,e.y-=i.y,n.x-=i.x,n.y-=i.y,r.x-=i.x,r.y-=i.y},e.prototype.safeHCoordinateIntersection=function(t,n,r,i){var o=null;try{o=Uu.intersection(t,n,r,i)}catch(s){if(!(s instanceof ju))throw s;o=e.nearestEndpoint(t,n,r,i)}return o},e.prototype.intersection=function(t,n,r,i){var o=this.intersectionWithNormalization(t,n,r,i);return this.isInSegmentEnvelopes(o)||(o=new bu(e.nearestEndpoint(t,n,r,i))),null!==this._precisionModel&&this._precisionModel.makePrecise(o),o},e.prototype.smallestInAbsValue=function(t,e,n,r){var i=t,o=Math.abs(i);return Math.abs(e)1e-4&&Xu.out.println("Distance = "+i.distance(o))},e.prototype.intersectionWithNormalization=function(t,e,n,r){var i=new bu(t),o=new bu(e),s=new bu(n),a=new bu(r),u=new bu;this.normalizeToEnvCentre(i,o,s,a,u);var c=this.safeHCoordinateIntersection(i,o,s,a);return c.x+=u.x,c.y+=u.y,c},e.prototype.computeCollinearIntersection=function(e,n,r,i){var o=Yu.intersects(e,n,r),s=Yu.intersects(e,n,i),a=Yu.intersects(r,i,e),u=Yu.intersects(r,i,n);return o&&s?(this._intPt[0]=r,this._intPt[1]=i,t.COLLINEAR_INTERSECTION):a&&u?(this._intPt[0]=e,this._intPt[1]=n,t.COLLINEAR_INTERSECTION):o&&a?(this._intPt[0]=r,this._intPt[1]=e,!r.equals(e)||s||u?t.COLLINEAR_INTERSECTION:t.POINT_INTERSECTION):o&&u?(this._intPt[0]=r,this._intPt[1]=n,!r.equals(n)||s||a?t.COLLINEAR_INTERSECTION:t.POINT_INTERSECTION):s&&a?(this._intPt[0]=i,this._intPt[1]=e,!i.equals(e)||o||u?t.COLLINEAR_INTERSECTION:t.POINT_INTERSECTION):s&&u?(this._intPt[0]=i,this._intPt[1]=n,!i.equals(n)||o||a?t.COLLINEAR_INTERSECTION:t.POINT_INTERSECTION):t.NO_INTERSECTION},e.prototype.normalizeToEnvCentre=function(t,e,n,r,i){var o=t.xe.x?t.x:e.x,u=t.y>e.y?t.y:e.y,c=n.xr.x?n.x:r.x,p=n.y>r.y?n.y:r.y,f=((o>c?o:c)+(ah?s:h)+(u0&&s>0||o<0&&s<0)return t.NO_INTERSECTION;var a=sc.orientationIndex(r,i,e),u=sc.orientationIndex(r,i,n);if(a>0&&u>0||a<0&&u<0)return t.NO_INTERSECTION;return 0===o&&0===s&&0===a&&0===u?this.computeCollinearIntersection(e,n,r,i):(0===o||0===s||0===a||0===u?(this._isProper=!1,e.equals2D(r)||e.equals2D(i)?this._intPt[0]=e:n.equals2D(r)||n.equals2D(i)?this._intPt[0]=n:0===o?this._intPt[0]=new bu(r):0===s?this._intPt[0]=new bu(i):0===a?this._intPt[0]=new bu(e):0===u&&(this._intPt[0]=new bu(n))):(this._isProper=!0,this._intPt[0]=this.intersection(e,n,r,i)),t.POINT_INTERSECTION)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e.nearestEndpoint=function(t,e,n,r){var i=t,o=sc.distancePointLine(t,n,r),s=sc.distancePointLine(e,n,r);return s0?n>0?-i:i:n>0?i:-i;if(0===e||0===n)return r>0?t>0?i:-i:t>0?-i:i;if(e>0?r>0?e<=r||(i=-i,o=t,t=n,n=o,o=e,e=r,r=o):e<=-r?(i=-i,n=-n,r=-r):(o=t,t=-n,n=o,o=e,e=-r,r=o):r>0?-e<=r?(i=-i,t=-t,e=-e):(o=-t,t=n,n=o,o=-e,e=r,r=o):e>=r?(t=-t,e=-e,n=-n,r=-r):(i=-i,o=-t,t=-n,n=o,o=-e,e=-r,r=o),t>0){if(!(n>0))return i;if(!(t<=n))return i}else{if(n>0)return-i;if(!(t>=n))return-i;i=-i,t=-t,n=-n}for(;;){if(s=Math.floor(n/t),n-=s*t,(r-=s*e)<0)return-i;if(r>e)return i;if(t>n+n){if(er+r)return-i;n=t-n,r=e-r,i=-i}if(0===r)return 0===n?0:-i;if(0===n)return i;if(s=Math.floor(t/n),t-=s*n,(e-=s*r)<0)return i;if(e>r)return-i;if(n>t+t){if(re+e)return i;t=n-t,e=r-e,i=-i}if(0===e)return 0===t?0:i;if(0===t)return-i}};var oc=function(){this._p=null,this._crossingCount=0,this._isPointOnSegment=!1;var t=arguments[0];this._p=t};oc.prototype.countSegment=function(t,e){if(t.xr&&(n=e.x,r=t.x),this._p.x>=n&&this._p.x<=r&&(this._isPointOnSegment=!0),null}if(t.y>this._p.y&&e.y<=this._p.y||e.y>this._p.y&&t.y<=this._p.y){var i=t.x-this._p.x,o=t.y-this._p.y,s=e.x-this._p.x,a=e.y-this._p.y,u=ic.signOfDet2x2(i,o,s,a);if(0===u)return this._isPointOnSegment=!0,null;a0&&this._crossingCount++}},oc.prototype.isPointInPolygon=function(){return this.getLocation()!==Su.EXTERIOR},oc.prototype.getLocation=function(){return this._isPointOnSegment?Su.BOUNDARY:this._crossingCount%2==1?Su.INTERIOR:Su.EXTERIOR},oc.prototype.isOnSegment=function(){return this._isPointOnSegment},oc.prototype.interfaces_=function(){return[]},oc.prototype.getClass=function(){return oc},oc.locatePointInRing=function(){if(arguments[0]instanceof bu&&Lu(arguments[1],Bu)){for(var t=arguments[0],e=arguments[1],n=new oc(t),r=new bu,i=new bu,o=1;o1||a<0||a>1)&&(i=!0)}}else i=!0;return i?Pu.min(sc.distancePointLine(t,n,r),sc.distancePointLine(e,n,r),sc.distancePointLine(n,t,e),sc.distancePointLine(r,t,e)):0},sc.isPointInRing=function(t,e){return sc.locatePointInRing(t,e)!==Su.EXTERIOR},sc.computeLength=function(t){var e=t.size();if(e<=1)return 0;var n=0,r=new bu;t.getCoordinate(0,r);for(var i=r.x,o=r.y,s=1;sn.y&&(n=o,r=i)}var s=r;do{(s-=1)<0&&(s=e)}while(t[s].equals2D(n)&&s!==r);var a=r;do{a=(a+1)%e}while(t[a].equals2D(n)&&a!==r);var u=t[s],c=t[a];if(u.equals2D(n)||c.equals2D(n)||u.equals2D(c))return!1;var h=sc.computeOrientation(u,n,c),l=!1;return l=0===h?u.x>c.x:h>0,l},sc.locatePointInRing=function(t,e){return oc.locatePointInRing(t,e)},sc.distancePointLinePerpendicular=function(t,e,n){var r=(n.x-e.x)*(n.x-e.x)+(n.y-e.y)*(n.y-e.y),i=((e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y))/r;return Math.abs(i)*Math.sqrt(r)},sc.computeOrientation=function(t,e,n){return sc.orientationIndex(t,e,n)},sc.distancePointLine=function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];if(0===e.length)throw new _u("Line array must contain at least one vertex");for(var n=t.distance(e[0]),r=0;r=1)return o.distance(a);var h=((s.y-o.y)*(a.x-s.x)-(s.x-o.x)*(a.y-s.y))/u;return Math.abs(h)*Math.sqrt(u)}},sc.isOnLine=function(t,e){for(var n=new rc,r=1;r0},yc.prototype.interfaces_=function(){return[fc]},yc.prototype.getClass=function(){return yc};var _c=function(){};_c.prototype.isInBoundary=function(t){return t>1},_c.prototype.interfaces_=function(){return[fc]},_c.prototype.getClass=function(){return _c};var mc=function(){};mc.prototype.isInBoundary=function(t){return 1===t},mc.prototype.interfaces_=function(){return[fc]},mc.prototype.getClass=function(){return mc};var vc=function(){};vc.prototype.add=function(){},vc.prototype.addAll=function(){},vc.prototype.isEmpty=function(){},vc.prototype.iterator=function(){},vc.prototype.size=function(){},vc.prototype.toArray=function(){},vc.prototype.remove=function(){};var xc=function(t){function e(e){t.call(this),this.message=e||""}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var n={name:{configurable:!0}};return n.name.get=function(){return"IndexOutOfBoundsException"},Object.defineProperties(e,n),e}(Error),Ec=function(){};Ec.prototype.hasNext=function(){},Ec.prototype.next=function(){},Ec.prototype.remove=function(){};var wc=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(){},e.prototype.set=function(){},e.prototype.isEmpty=function(){},e}(vc);(Pi.prototype=new Error).name="NoSuchElementException";var bc=function(t){function e(){t.call(this),this.array_=[],arguments[0]instanceof vc&&this.addAll(arguments[0])}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.ensureCapacity=function(){},e.prototype.interfaces_=function(){return[t,vc]},e.prototype.add=function(t){return 1===arguments.length?this.array_.push(t):this.array_.splice(arguments[0],arguments[1]),!0},e.prototype.clear=function(){this.array_=[]},e.prototype.addAll=function(t){for(var e=t.iterator();e.hasNext();)this.add(e.next());return!0},e.prototype.set=function(t,e){var n=this.array_[t];return this.array_[t]=e,n},e.prototype.iterator=function(){return new Ic(this)},e.prototype.get=function(t){if(t<0||t>=this.size())throw new xc;return this.array_[t]},e.prototype.isEmpty=function(){return 0===this.array_.length},e.prototype.size=function(){return this.array_.length},e.prototype.toArray=function(){for(var t=[],e=0,n=this.array_.length;e=1){if(this.get(this.size()-1).equals2D(i))return null}t.prototype.add.call(this,i)}else if(arguments[0]instanceof Object&&"boolean"==typeof arguments[1]){var o=arguments[0],s=arguments[1];return this.add(o,s),!0}}else if(3===arguments.length){if("boolean"==typeof arguments[2]&&arguments[0]instanceof Array&&"boolean"==typeof arguments[1]){var a=arguments[0],u=arguments[1];if(arguments[2])for(var c=0;c=0;h--)this.add(a[h],u);return!0}if("boolean"==typeof arguments[2]&&Number.isInteger(arguments[0])&&arguments[1]instanceof bu){var l=arguments[0],p=arguments[1];if(!arguments[2]){var f=this.size();if(f>0){if(l>0){if(this.get(l-1).equals2D(p))return null}if(l_&&(m=-1);for(var v=y;v!==_;v+=m)this.add(g[v],d);return!0}},e.prototype.closeRing=function(){this.size()>0&&this.add(new bu(this.get(0)),!1)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},Object.defineProperties(e,n),e}(bc),Cc=function(){},Sc={ForwardComparator:{configurable:!0},BidirectionalComparator:{configurable:!0},coordArrayType:{configurable:!0}};Sc.ForwardComparator.get=function(){return Mc},Sc.BidirectionalComparator.get=function(){return Lc},Sc.coordArrayType.get=function(){return new Array(0).fill(null)},Cc.prototype.interfaces_=function(){return[]},Cc.prototype.getClass=function(){return Cc},Cc.isRing=function(t){return!(t.length<4)&&!!t[0].equals2D(t[t.length-1])},Cc.ptNotInList=function(t,e){for(var n=0;n=t?e:[]},Cc.indexOf=function(t,e){for(var n=0;n0)&&(e=t[n]);return e},Cc.extract=function(t,e,n){e=Pu.clamp(e,0,t.length);var r=(n=Pu.clamp(n,-1,t.length))-e+1;n<0&&(r=0),e>=t.length&&(r=0),nr.length)return 1;if(0===n.length)return 0;var i=Cc.compare(n,r);return Cc.isEqualReversed(n,r)?0:i},Lc.prototype.OLDcompare=function(t,e){var n=t,r=e;if(n.lengthr.length)return 1;if(0===n.length)return 0;for(var i=Cc.increasingDirection(n),o=Cc.increasingDirection(r),s=i>0?0:n.length-1,a=o>0?0:n.length-1,u=0;u0))return e.value;e=e.right}}return null},Gi.prototype.put=function(t,e){if(null===this.root_)return this.root_={key:t,value:e,left:null,right:null,parent:null,color:Ac,getValue:function(){return this.value},getKey:function(){return this.key}},this.size_=1,null;var n,r,i=this.root_;do{if(n=i,(r=t.compareTo(i.key))<0)i=i.left;else{if(!(r>0)){var o=i.value;return i.value=e,o}i=i.right}}while(null!==i);var s={key:t,left:null,right:null,value:e,parent:n,color:Ac,getValue:function(){return this.value},getKey:function(){return this.key}};return r<0?n.left=s:n.right=s,this.fixAfterInsertion(s),this.size_++,null},Gi.prototype.fixAfterInsertion=function(t){for(t.color=1;null!=t&&t!==this.root_&&1===t.parent.color;)if(Ai(t)===Fi(Ai(Ai(t)))){var e=qi(Ai(Ai(t)));1===Ti(e)?(Di(Ai(t),Ac),Di(e,Ac),Di(Ai(Ai(t)),1),t=Ai(Ai(t))):(t===qi(Ai(t))&&(t=Ai(t),this.rotateLeft(t)),Di(Ai(t),Ac),Di(Ai(Ai(t)),1),this.rotateRight(Ai(Ai(t))))}else{var n=Fi(Ai(Ai(t)));1===Ti(n)?(Di(Ai(t),Ac),Di(n,Ac),Di(Ai(Ai(t)),1),t=Ai(Ai(t))):(t===Fi(Ai(t))&&(t=Ai(t),this.rotateRight(t)),Di(Ai(t),Ac),Di(Ai(Ai(t)),1),this.rotateLeft(Ai(Ai(t))))}this.root_.color=Ac},Gi.prototype.values=function(){var t=new bc,e=this.getFirstEntry();if(null!==e)for(t.add(e.value);null!==(e=Gi.successor(e));)t.add(e.value);return t},Gi.prototype.entrySet=function(){var t=new Rc,e=this.getFirstEntry();if(null!==e)for(t.add(e);null!==(e=Gi.successor(e));)t.add(e);return t},Gi.prototype.rotateLeft=function(t){if(null!=t){var e=t.right;t.right=e.left,null!=e.left&&(e.left.parent=t),e.parent=t.parent,null===t.parent?this.root_=e:t.parent.left===t?t.parent.left=e:t.parent.right=e,e.left=t,t.parent=e}},Gi.prototype.rotateRight=function(t){if(null!=t){var e=t.left;t.left=e.right,null!=e.right&&(e.right.parent=t),e.parent=t.parent,null===t.parent?this.root_=e:t.parent.right===t?t.parent.right=e:t.parent.left=e,e.right=t,t.parent=e}},Gi.prototype.getFirstEntry=function(){var t=this.root_;if(null!=t)for(;null!=t.left;)t=t.left;return t},Gi.successor=function(t){if(null===t)return null;if(null!==t.right){for(var e=t.right;null!==e.left;)e=e.left;return e}for(var n=t.parent,r=t;null!==n&&r===n.right;)r=n,n=n.parent;return n},Gi.prototype.size=function(){return this.size_};var Dc=function(){};Dc.prototype.interfaces_=function(){return[]},Dc.prototype.getClass=function(){return Dc},Bi.prototype=new Ri,(ki.prototype=new Bi).contains=function(t){for(var e=0,n=this.array_.length;e=0;){var s=i.substring(0,o);r.add(s),o=(i=i.substring(o+n)).indexOf(e)}i.length>0&&r.add(i);for(var a=new Array(r.size()).fill(null),u=0;u0)for(var o=i;o0&&r.append(" ");for(var o=0;o0&&r.append(","),r.append(Vc.toString(t.getOrdinate(i,o)))}return r.append(")"),r.toString()}},Wc.ensureValidRing=function(t,e){var n=e.size();if(0===n)return e;if(n<=3)return Wc.createClosedRing(t,e,4);return e.getOrdinate(0,Bu.X)===e.getOrdinate(n-1,Bu.X)&&e.getOrdinate(0,Bu.Y)===e.getOrdinate(n-1,Bu.Y)?e:Wc.createClosedRing(t,e,n+1)},Wc.createClosedRing=function(t,e,n){var r=t.create(n,e.getDimension()),i=e.size();Wc.copy(e,0,r,0,i);for(var o=i;o0&&Wc.reverse(this._points),null}},e.prototype.getCoordinate=function(){return this.isEmpty()?null:this._points.getCoordinate(0)},e.prototype.getBoundaryDimension=function(){return this.isClosed()?Gc.FALSE:0},e.prototype.isClosed=function(){return!this.isEmpty()&&this.getCoordinateN(0).equals2D(this.getCoordinateN(this.getNumPoints()-1))},e.prototype.getEndPoint=function(){return this.isEmpty()?null:this.getPointN(this.getNumPoints()-1)},e.prototype.getDimension=function(){return 1},e.prototype.getLength=function(){return sc.computeLength(this._points)},e.prototype.getNumPoints=function(){return this._points.size()},e.prototype.reverse=function(){var t=this._points.copy();Wc.reverse(t);return this.getFactory().createLineString(t)},e.prototype.compareToSameClass=function(){if(1===arguments.length){for(var t=arguments[0],e=0,n=0;e= 2)");this._points=t},e.prototype.isCoordinate=function(t){for(var e=0;e=1&&this.getCoordinateSequence().size()= 4)")},e.prototype.getGeometryType=function(){return"LinearRing"},e.prototype.copy=function(){return new e(this._points.copy(),this._factory)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},n.MINIMUM_VALID_SIZE.get=function(){return 4},n.serialVersionUID.get=function(){return-0x3b229e262367a600},Object.defineProperties(e,n),e}(Jc),nh=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var n={serialVersionUID:{configurable:!0}};return e.prototype.getSortIndex=function(){return cc.SORTINDEX_MULTIPOLYGON},e.prototype.equalsExact=function(){if(2===arguments.length){var e=arguments[0],n=arguments[1];return!!this.isEquivalentClass(e)&&t.prototype.equalsExact.call(this,e,n)}return t.prototype.equalsExact.apply(this,arguments)},e.prototype.getBoundaryDimension=function(){return 1},e.prototype.getDimension=function(){return 2},e.prototype.reverse=function(){for(var t=this._geometries.length,e=new Array(t).fill(null),n=0;n0?e.createPoint(n[0]):e.createPoint():t},sh.prototype.interfaces_=function(){return[rh.GeometryEditorOperation]},sh.prototype.getClass=function(){return sh};var ah=function(){};ah.prototype.edit=function(t,e){return t instanceof eh?e.createLinearRing(this.edit(t.getCoordinateSequence(),t)):t instanceof Jc?e.createLineString(this.edit(t.getCoordinateSequence(),t)):t instanceof Kc?e.createPoint(this.edit(t.getCoordinateSequence(),t)):t},ah.prototype.interfaces_=function(){return[rh.GeometryEditorOperation]},ah.prototype.getClass=function(){return ah};var uh=function(){if(this._dimension=3,this._coordinates=null,1===arguments.length){if(arguments[0]instanceof Array)this._coordinates=arguments[0],this._dimension=3;else if(Number.isInteger(arguments[0])){var t=arguments[0];this._coordinates=new Array(t).fill(null);for(var e=0;e0){var t=new Ru(17*this._coordinates.length);t.append("("),t.append(this._coordinates[0]);for(var e=1;e3&&(r=3),r<2?new uh(n):new uh(n,r)}},hh.prototype.interfaces_=function(){return[Cu,Li]},hh.prototype.getClass=function(){return hh},hh.instance=function(){return hh.instanceObject},lh.serialVersionUID.get=function(){return-0x38e49fa6cf6f2e00},lh.instanceObject.get=function(){return new hh},Object.defineProperties(hh,lh);var ph=function(t){function e(){t.call(this),this.map_=new Map}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return this.map_.get(t)||null},e.prototype.put=function(t,e){return this.map_.set(t,e),e},e.prototype.values=function(){for(var t=new bc,e=this.map_.values(),n=e.next();!n.done;)t.add(n.value),n=e.next();return t},e.prototype.entrySet=function(){var t=new Rc;return this.map_.entries().forEach(function(e){return t.add(e)}),t},e.prototype.size=function(){return this.map_.size()},e}(Pc),fh=function t(){if(this._modelType=null,this._scale=null,0===arguments.length)this._modelType=t.FLOATING;else if(1===arguments.length)if(arguments[0]instanceof dh){var e=arguments[0];this._modelType=e,e===t.FIXED&&this.setScale(1)}else if("number"==typeof arguments[0]){var n=arguments[0];this._modelType=t.FIXED,this.setScale(n)}else if(arguments[0]instanceof t){var r=arguments[0];this._modelType=r._modelType,this._scale=r._scale}},gh={serialVersionUID:{configurable:!0},maximumPreciseValue:{configurable:!0}};fh.prototype.equals=function(t){if(!(t instanceof fh))return!1;var e=t;return this._modelType===e._modelType&&this._scale===e._scale},fh.prototype.compareTo=function(t){var e=t,n=this.getMaximumSignificantDigits(),r=e.getMaximumSignificantDigits();return new Tu(n).compareTo(new Tu(r))},fh.prototype.getScale=function(){return this._scale},fh.prototype.isFloating=function(){return this._modelType===fh.FLOATING||this._modelType===fh.FLOATING_SINGLE},fh.prototype.getType=function(){return this._modelType},fh.prototype.toString=function(){var t="UNKNOWN";return this._modelType===fh.FLOATING?t="Floating":this._modelType===fh.FLOATING_SINGLE?t="Floating-Single":this._modelType===fh.FIXED&&(t="Fixed (Scale="+this.getScale()+")"),t},fh.prototype.makePrecise=function(){if("number"==typeof arguments[0]){var t=arguments[0];if(mu.isNaN(t))return t;if(this._modelType===fh.FLOATING_SINGLE){return t}return this._modelType===fh.FIXED?Math.round(t*this._scale)/this._scale:t}if(arguments[0]instanceof bu){var e=arguments[0];if(this._modelType===fh.FLOATING)return null;e.x=this.makePrecise(e.x),e.y=this.makePrecise(e.y)}},fh.prototype.getMaximumSignificantDigits=function(){var t=16;return this._modelType===fh.FLOATING?t=16:this._modelType===fh.FLOATING_SINGLE?t=6:this._modelType===fh.FIXED&&(t=1+Math.trunc(Math.ceil(Math.log(this.getScale())/Math.log(10)))),t},fh.prototype.setScale=function(t){this._scale=Math.abs(t)},fh.prototype.interfaces_=function(){return[Li,xu]},fh.prototype.getClass=function(){return fh},fh.mostPrecise=function(t,e){return t.compareTo(e)>=0?t:e},gh.serialVersionUID.get=function(){return 0x6bee6404e9a25c00},gh.maximumPreciseValue.get=function(){return 9007199254740992},Object.defineProperties(fh,gh);var dh=function t(e){this._name=e||null,t.nameToTypeMap.put(e,this)},yh={serialVersionUID:{configurable:!0},nameToTypeMap:{configurable:!0}};dh.prototype.readResolve=function(){return dh.nameToTypeMap.get(this._name)},dh.prototype.toString=function(){return this._name},dh.prototype.interfaces_=function(){return[Li]},dh.prototype.getClass=function(){return dh},yh.serialVersionUID.get=function(){return-552860263173159e4},yh.nameToTypeMap.get=function(){return new ph},Object.defineProperties(dh,yh),fh.Type=dh,fh.FIXED=new dh("FIXED"),fh.FLOATING=new dh("FLOATING"),fh.FLOATING_SINGLE=new dh("FLOATING SINGLE");var _h=function t(){this._precisionModel=new fh,this._SRID=0,this._coordinateSequenceFactory=t.getDefaultCoordinateSequenceFactory(),0===arguments.length||(1===arguments.length?Lu(arguments[0],Cu)?this._coordinateSequenceFactory=arguments[0]:arguments[0]instanceof fh&&(this._precisionModel=arguments[0]):2===arguments.length?(this._precisionModel=arguments[0],this._SRID=arguments[1]):3===arguments.length&&(this._precisionModel=arguments[0],this._SRID=arguments[1],this._coordinateSequenceFactory=arguments[2]))},mh={serialVersionUID:{configurable:!0}};_h.prototype.toGeometry=function(t){return t.isNull()?this.createPoint(null):t.getMinX()===t.getMaxX()&&t.getMinY()===t.getMaxY()?this.createPoint(new bu(t.getMinX(),t.getMinY())):t.getMinX()===t.getMaxX()||t.getMinY()===t.getMaxY()?this.createLineString([new bu(t.getMinX(),t.getMinY()),new bu(t.getMaxX(),t.getMaxY())]):this.createPolygon(this.createLinearRing([new bu(t.getMinX(),t.getMinY()),new bu(t.getMinX(),t.getMaxY()),new bu(t.getMaxX(),t.getMaxY()),new bu(t.getMaxX(),t.getMinY()),new bu(t.getMinX(),t.getMinY())]),null)},_h.prototype.createLineString=function(t){return t?t instanceof Array?new Jc(this.getCoordinateSequenceFactory().create(t),this):Lu(t,Bu)?new Jc(t,this):void 0:new Jc(this.getCoordinateSequenceFactory().create([]),this)},_h.prototype.createMultiLineString=function(){if(0===arguments.length)return new Xc(null,this);if(1===arguments.length){var t=arguments[0];return new Xc(t,this)}},_h.prototype.buildGeometry=function(t){for(var e=null,n=!1,r=!1,i=t.iterator();i.hasNext();){var o=i.next(),s=o.getClass();null===e&&(e=s),s!==e&&(n=!0),o.isGeometryCollectionOrDerived()&&(r=!0)}if(null===e)return this.createGeometryCollection();if(n||r)return this.createGeometryCollection(_h.toGeometryArray(t));var a=t.iterator().next();if(t.size()>1){if(a instanceof $c)return this.createMultiPolygon(_h.toPolygonArray(t));if(a instanceof Jc)return this.createMultiLineString(_h.toLineStringArray(t));if(a instanceof Kc)return this.createMultiPoint(_h.toPointArray(t));tc.shouldNeverReachHere("Unhandled class: "+a.getClass().getName())}return a},_h.prototype.createMultiPointFromCoords=function(t){return this.createMultiPoint(null!==t?this.getCoordinateSequenceFactory().create(t):null)},_h.prototype.createPoint=function(){if(0===arguments.length)return this.createPoint(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof bu){var t=arguments[0];return this.createPoint(null!==t?this.getCoordinateSequenceFactory().create([t]):null)}if(Lu(arguments[0],Bu)){var e=arguments[0];return new Kc(e,this)}}},_h.prototype.getCoordinateSequenceFactory=function(){return this._coordinateSequenceFactory},_h.prototype.createPolygon=function(){if(0===arguments.length)return new $c(null,null,this);if(1===arguments.length){if(Lu(arguments[0],Bu)){var t=arguments[0];return this.createPolygon(this.createLinearRing(t))}if(arguments[0]instanceof Array){var e=arguments[0];return this.createPolygon(this.createLinearRing(e))}if(arguments[0]instanceof eh){var n=arguments[0];return this.createPolygon(n,null)}}else if(2===arguments.length){var r=arguments[0],i=arguments[1];return new $c(r,i,this)}},_h.prototype.getSRID=function(){return this._SRID},_h.prototype.createGeometryCollection=function(){if(0===arguments.length)return new jc(null,this);if(1===arguments.length){var t=arguments[0];return new jc(t,this)}},_h.prototype.createGeometry=function(t){return new rh(this).edit(t,{edit:function(){if(2===arguments.length){var t=arguments[0];return this._coordinateSequenceFactory.create(t)}}})},_h.prototype.getPrecisionModel=function(){return this._precisionModel},_h.prototype.createLinearRing=function(){if(0===arguments.length)return this.createLinearRing(this.getCoordinateSequenceFactory().create([]));if(1===arguments.length){if(arguments[0]instanceof Array){var t=arguments[0];return this.createLinearRing(null!==t?this.getCoordinateSequenceFactory().create(t):null)}if(Lu(arguments[0],Bu)){var e=arguments[0];return new eh(e,this)}}},_h.prototype.createMultiPolygon=function(){if(0===arguments.length)return new nh(null,this);if(1===arguments.length){var t=arguments[0];return new nh(t,this)}},_h.prototype.createMultiPoint=function(){if(0===arguments.length)return new th(null,this);if(1===arguments.length){if(arguments[0]instanceof Array){var t=arguments[0];return new th(t,this)}if(arguments[0]instanceof Array){var e=arguments[0];return this.createMultiPoint(null!==e?this.getCoordinateSequenceFactory().create(e):null)}if(Lu(arguments[0],Bu)){var n=arguments[0];if(null===n)return this.createMultiPoint(new Array(0).fill(null));for(var r=new Array(n.size()).fill(null),i=0;i=this.size())throw new Error;return this.array_[t]},Xi.prototype.push=function(t){return this.array_.push(t),t},Xi.prototype.pop=function(t){if(0===this.array_.length)throw new ji;return this.array_.pop()},Xi.prototype.peek=function(){if(0===this.array_.length)throw new ji;return this.array_[this.array_.length-1]},Xi.prototype.empty=function(){return 0===this.array_.length},Xi.prototype.isEmpty=function(){return this.empty()},Xi.prototype.search=function(t){return this.array_.indexOf(t)},Xi.prototype.size=function(){return this.array_.length},Xi.prototype.toArray=function(){for(var t=[],e=0,n=this.array_.length;e0&&this._minIndexthis._minCoord.y&&n.y>this._minCoord.y&&r===sc.CLOCKWISE&&(i=!0),i&&(this._minIndex=this._minIndex-1)},Sh.prototype.getRightmostSideOfSegment=function(t,e){var n=t.getEdge().getCoordinates();if(e<0||e+1>=n.length)return-1;if(n[e].y===n[e+1].y)return-1;var r=Nh.LEFT;return n[e].ythis._minCoord.x)&&(this._minDe=t,this._minIndex=n,this._minCoord=e[n])},Sh.prototype.findRightmostEdgeAtNode=function(){var t=this._minDe.getNode().getEdges();this._minDe=t.getRightmostEdge(),this._minDe.isForward()||(this._minDe=this._minDe.getSym(),this._minIndex=this._minDe.getEdge().getCoordinates().length-1)},Sh.prototype.findEdge=function(t){for(var e=t.iterator();e.hasNext();){var n=e.next();n.isForward()&&this.checkForRightmostCoordinate(n)}tc.isTrue(0!==this._minIndex||this._minCoord.equals(this._minDe.getCoordinate()),"inconsistency in rightmost processing"),0===this._minIndex?this.findRightmostEdgeAtNode():this.findRightmostEdgeAtVertex(),this._orientedDe=this._minDe;this.getRightmostSide(this._minDe,this._minIndex)===Nh.LEFT&&(this._orientedDe=this._minDe.getSym())},Sh.prototype.interfaces_=function(){return[]},Sh.prototype.getClass=function(){return Sh};var Mh=function(t){function e(n,r){t.call(this,e.msgWithCoord(n,r)),this.pt=r?new bu(r):null,this.name="TopologyException"}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getCoordinate=function(){return this.pt},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e.msgWithCoord=function(t,e){return e?t:t+" [ "+e+" ]"},e}(Qu),Lh=function(){this.array_=[]};Lh.prototype.addLast=function(t){this.array_.push(t)},Lh.prototype.removeFirst=function(){return this.array_.shift()},Lh.prototype.isEmpty=function(){return 0===this.array_.length};var Ph=function(){this._finder=null,this._dirEdgeList=new bc,this._nodes=new bc,this._rightMostCoord=null,this._env=null,this._finder=new Sh};Ph.prototype.clearVisitedEdges=function(){for(var t=this._dirEdgeList.iterator();t.hasNext();){t.next().setVisited(!1)}},Ph.prototype.getRightmostCoordinate=function(){return this._rightMostCoord},Ph.prototype.computeNodeDepth=function(t){for(var e=null,n=t.getEdges().iterator();n.hasNext();){var r=n.next();if(r.isVisited()||r.getSym().isVisited()){e=r;break}}if(null===e)throw new Mh("unable to find edge to compute depths at "+t.getCoordinate());t.getEdges().computeDepths(e);for(var i=t.getEdges().iterator();i.hasNext();){var o=i.next();o.setVisited(!0),this.copySymDepths(o)}},Ph.prototype.computeDepth=function(t){this.clearVisitedEdges();var e=this._finder.getEdge();e.setEdgeDepths(Nh.RIGHT,t),this.copySymDepths(e),this.computeDepths(e)},Ph.prototype.create=function(t){this.addReachable(t),this._finder.findEdge(this._dirEdgeList),this._rightMostCoord=this._finder.getCoordinate()},Ph.prototype.findResultEdges=function(){for(var t=this._dirEdgeList.iterator();t.hasNext();){var e=t.next();e.getDepth(Nh.RIGHT)>=1&&e.getDepth(Nh.LEFT)<=0&&!e.isInteriorAreaEdge()&&e.setInResult(!0)}},Ph.prototype.computeDepths=function(t){var e=new Rc,n=new Lh,r=t.getNode();for(n.addLast(r),e.add(r),t.setVisited(!0);!n.isEmpty();){var i=n.removeFirst();e.add(i),this.computeNodeDepth(i);for(var o=i.getEdges().iterator();o.hasNext();){var s=o.next().getSym();if(!s.isVisited()){var a=s.getNode();e.contains(a)||(n.addLast(a),e.add(a))}}}},Ph.prototype.compareTo=function(t){var e=t;return this._rightMostCoord.xe._rightMostCoord.x?1:0},Ph.prototype.getEnvelope=function(){if(null===this._env){for(var t=new Yu,e=this._dirEdgeList.iterator();e.hasNext();)for(var n=e.next().getEdge().getCoordinates(),r=0;rthis.location.length){var e=new Array(3).fill(null);e[Nh.ON]=this.location[Nh.ON],e[Nh.LEFT]=Su.NONE,e[Nh.RIGHT]=Su.NONE,this.location=e}for(var n=0;n1&&t.append(Su.toLocationSymbol(this.location[Nh.LEFT])),t.append(Su.toLocationSymbol(this.location[Nh.ON])),this.location.length>1&&t.append(Su.toLocationSymbol(this.location[Nh.RIGHT])),t.toString()},Oh.prototype.setLocations=function(t,e,n){this.location[Nh.ON]=t,this.location[Nh.LEFT]=e,this.location[Nh.RIGHT]=n},Oh.prototype.get=function(t){return t1},Oh.prototype.isAnyNull=function(){for(var t=0;tthis._maxNodeDegree&&(this._maxNodeDegree=e),t=this.getNext(t)}while(t!==this._startDe);this._maxNodeDegree*=2},Th.prototype.addPoints=function(t,e,n){var r=t.getCoordinates();if(e){var i=1;n&&(i=0);for(var o=i;o=0;a--)this._pts.add(r[a])}},Th.prototype.isHole=function(){return this._isHole},Th.prototype.setInResult=function(){var t=this._startDe;do{t.getEdge().setInResult(!0),t=t.getNext()}while(t!==this._startDe)},Th.prototype.containsPoint=function(t){var e=this.getLinearRing();if(!e.getEnvelopeInternal().contains(t))return!1;if(!sc.isPointInRing(t,e.getCoordinates()))return!1;for(var n=this._holes.iterator();n.hasNext();){if(n.next().containsPoint(t))return!1}return!0},Th.prototype.addHole=function(t){this._holes.add(t)},Th.prototype.isShell=function(){return null===this._shell},Th.prototype.getLabel=function(){return this._label},Th.prototype.getEdges=function(){return this._edges},Th.prototype.getMaxNodeDegree=function(){return this._maxNodeDegree<0&&this.computeMaxNodeDegree(),this._maxNodeDegree},Th.prototype.getShell=function(){return this._shell},Th.prototype.mergeLabel=function(){if(1===arguments.length){var t=arguments[0];this.mergeLabel(t,0),this.mergeLabel(t,1)}else if(2===arguments.length){var e=arguments[0],n=arguments[1],r=e.getLocation(n,Nh.RIGHT);if(r===Su.NONE)return null;if(this._label.getLocation(n)===Su.NONE)return this._label.setLocation(n,r),null}},Th.prototype.setShell=function(t){this._shell=t,null!==t&&t.addHole(this)},Th.prototype.toPolygon=function(t){for(var e=new Array(this._holes.size()).fill(null),n=0;n=2,"found partial label"),this.computeIM(t)},Fh.prototype.isInResult=function(){return this._isInResult},Fh.prototype.isVisited=function(){return this._isVisited},Fh.prototype.interfaces_=function(){return[]},Fh.prototype.getClass=function(){return Fh};var qh=function(t){function e(){t.call(this),this._coord=null,this._edges=null;var e=arguments[0],n=arguments[1];this._coord=e,this._edges=n,this._label=new Rh(0,Su.NONE)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isIncidentEdgeInResult=function(){for(var t=this.getEdges().getEdges().iterator();t.hasNext();){if(t.next().getEdge().isInResult())return!0}return!1},e.prototype.isIsolated=function(){return 1===this._label.getGeometryCount()},e.prototype.getCoordinate=function(){return this._coord},e.prototype.print=function(t){t.println("node "+this._coord+" lbl: "+this._label)},e.prototype.computeIM=function(t){},e.prototype.computeMergedLocation=function(t,e){var n=Su.NONE;if(n=this._label.getLocation(e),!t.isNull(e)){var r=t.getLocation(e);n!==Su.BOUNDARY&&(n=r)}return n},e.prototype.setLabel=function(){if(2!==arguments.length)return t.prototype.setLabel.apply(this,arguments);var e=arguments[0],n=arguments[1];null===this._label?this._label=new Rh(e,n):this._label.setLocation(e,n)},e.prototype.getEdges=function(){return this._edges},e.prototype.mergeLabel=function(){if(arguments[0]instanceof e){var t=arguments[0];this.mergeLabel(t._label)}else if(arguments[0]instanceof Rh)for(var n=arguments[0],r=0;r<2;r++){var i=this.computeMergedLocation(n,r);this._label.getLocation(r)===Su.NONE&&this._label.setLocation(r,i)}},e.prototype.add=function(t){this._edges.insert(t),t.setNode(this)},e.prototype.setLabelBoundary=function(t){if(null===this._label)return null;var e=Su.NONE;null!==this._label&&(e=this._label.getLocation(t));var n=null;switch(e){case Su.BOUNDARY:n=Su.INTERIOR;break;case Su.INTERIOR:default:n=Su.BOUNDARY}this._label.setLocation(t,n)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(Fh),Gh=function(){this.nodeMap=new Gi,this.nodeFact=null;var t=arguments[0];this.nodeFact=t};Gh.prototype.find=function(t){return this.nodeMap.get(t)},Gh.prototype.addNode=function(){if(arguments[0]instanceof bu){var t=arguments[0],e=this.nodeMap.get(t);return null===e&&(e=this.nodeFact.createNode(t),this.nodeMap.put(t,e)),e}if(arguments[0]instanceof qh){var n=arguments[0],r=this.nodeMap.get(n.getCoordinate());return null===r?(this.nodeMap.put(n.getCoordinate(),n),n):(r.mergeLabel(n),r)}},Gh.prototype.print=function(t){for(var e=this.iterator();e.hasNext();){e.next().print(t)}},Gh.prototype.iterator=function(){return this.nodeMap.values().iterator()},Gh.prototype.values=function(){return this.nodeMap.values()},Gh.prototype.getBoundaryNodes=function(t){for(var e=new bc,n=this.iterator();n.hasNext();){var r=n.next();r.getLabel().getLocation(t)===Su.BOUNDARY&&e.add(r)}return e},Gh.prototype.add=function(t){var e=t.getCoordinate();this.addNode(e).add(t)},Gh.prototype.interfaces_=function(){return[]},Gh.prototype.getClass=function(){return Gh};var Bh=function(){},kh={NE:{configurable:!0},NW:{configurable:!0},SW:{configurable:!0},SE:{configurable:!0}};Bh.prototype.interfaces_=function(){return[]},Bh.prototype.getClass=function(){return Bh},Bh.isNorthern=function(t){return t===Bh.NE||t===Bh.NW},Bh.isOpposite=function(t,e){if(t===e)return!1;return 2===(t-e+4)%4},Bh.commonHalfPlane=function(t,e){if(t===e)return t;if(2===(t-e+4)%4)return-1;var n=te?t:e)?3:n},Bh.isInHalfPlane=function(t,e){return e===Bh.SE?t===Bh.SE||t===Bh.SW:t===e||t===e+1},Bh.quadrant=function(){if("number"==typeof arguments[0]&&"number"==typeof arguments[1]){var t=arguments[0],e=arguments[1];if(0===t&&0===e)throw new _u("Cannot compute the quadrant for point ( "+t+", "+e+" )");return t>=0?e>=0?Bh.NE:Bh.SE:e>=0?Bh.NW:Bh.SW}if(arguments[0]instanceof bu&&arguments[1]instanceof bu){var n=arguments[0],r=arguments[1];if(r.x===n.x&&r.y===n.y)throw new _u("Cannot compute the quadrant for two identical points "+n);return r.x>=n.x?r.y>=n.y?Bh.NE:Bh.SE:r.y>=n.y?Bh.NW:Bh.SW}},kh.NE.get=function(){return 0},kh.NW.get=function(){return 1},kh.SW.get=function(){return 2},kh.SE.get=function(){return 3},Object.defineProperties(Bh,kh);var zh=function(){if(this._edge=null,this._label=null,this._node=null,this._p0=null,this._p1=null,this._dx=null,this._dy=null,this._quadrant=null,1===arguments.length){var t=arguments[0];this._edge=t}else if(3===arguments.length){var e=arguments[0],n=arguments[1],r=arguments[2];this._edge=e,this.init(n,r),this._label=null}else if(4===arguments.length){var i=arguments[0],o=arguments[1],s=arguments[2],a=arguments[3];this._edge=i,this.init(o,s),this._label=a}};zh.prototype.compareDirection=function(t){return this._dx===t._dx&&this._dy===t._dy?0:this._quadrant>t._quadrant?1:this._quadrant2){o.linkDirectedEdgesForMinimalEdgeRings();var s=o.buildMinimalRings(),a=this.findShell(s);null!==a?(this.placePolygonHoles(a,s),e.add(a)):n.addAll(s)}else r.add(o)}return r},Yh.prototype.containsPoint=function(t){for(var e=this._shellList.iterator();e.hasNext();){if(e.next().containsPoint(t))return!0}return!1},Yh.prototype.buildMaximalEdgeRings=function(t){for(var e=new bc,n=t.iterator();n.hasNext();){var r=n.next();if(r.isInResult()&&r.getLabel().isArea()&&null===r.getEdgeRing()){var i=new Dh(r,this._geometryFactory);e.add(i),i.setInResult()}}return e},Yh.prototype.placePolygonHoles=function(t,e){for(var n=e.iterator();n.hasNext();){var r=n.next();r.isHole()&&r.setShell(t)}},Yh.prototype.getPolygons=function(){return this.computePolygons(this._shellList)},Yh.prototype.findEdgeRingContaining=function(t,e){for(var n=t.getLinearRing(),r=n.getEnvelopeInternal(),i=n.getCoordinateN(0),o=null,s=null,a=e.iterator();a.hasNext();){var u=a.next(),c=u.getLinearRing(),h=c.getEnvelopeInternal();null!==o&&(s=o.getLinearRing().getEnvelopeInternal());var l=!1;h.contains(r)&&sc.isPointInRing(i,c.getCoordinates())&&(l=!0),l&&(null===o||s.contains(h))&&(o=u)}return o},Yh.prototype.findShell=function(t){for(var e=0,n=null,r=t.iterator();r.hasNext();){var i=r.next();i.isHole()||(n=i,e++)}return tc.isTrue(e<=1,"found two shells in MinimalEdgeRing list"),n},Yh.prototype.add=function(){if(1===arguments.length){var t=arguments[0];this.add(t.getEdgeEnds(),t.getNodes())}else if(2===arguments.length){var e=arguments[0],n=arguments[1];Uh.linkResultDirectedEdges(n);var r=this.buildMaximalEdgeRings(e),i=new bc,o=this.buildMinimalEdgeRings(r,this._shellList,i);this.sortShellsAndHoles(o,this._shellList,i),this.placeFreeHoles(this._shellList,i)}},Yh.prototype.interfaces_=function(){return[]},Yh.prototype.getClass=function(){return Yh};var Vh=function(){};Vh.prototype.getBounds=function(){},Vh.prototype.interfaces_=function(){return[]},Vh.prototype.getClass=function(){return Vh};var Hh=function(){this._bounds=null,this._item=null;var t=arguments[0],e=arguments[1];this._bounds=t,this._item=e};Hh.prototype.getItem=function(){return this._item},Hh.prototype.getBounds=function(){return this._bounds},Hh.prototype.interfaces_=function(){return[Vh,Li]},Hh.prototype.getClass=function(){return Hh};var Wh=function(){this._size=null,this._items=null,this._size=0,this._items=new bc,this._items.add(null)};Wh.prototype.poll=function(){if(this.isEmpty())return null;var t=this._items.get(1);return this._items.set(1,this._items.get(this._size)),this._size-=1,this.reorder(1),t},Wh.prototype.size=function(){return this._size},Wh.prototype.reorder=function(t){for(var e=null,n=this._items.get(t);2*t<=this._size&&((e=2*t)!==this._size&&this._items.get(e+1).compareTo(this._items.get(e))<0&&e++,this._items.get(e).compareTo(n)<0);t=e)this._items.set(t,this._items.get(e));this._items.set(t,n)},Wh.prototype.clear=function(){this._size=0,this._items.clear()},Wh.prototype.isEmpty=function(){return 0===this._size},Wh.prototype.add=function(t){this._items.add(null),this._size+=1;var e=this._size;for(this._items.set(0,t);t.compareTo(this._items.get(Math.trunc(e/2)))<0;e/=2)this._items.set(e,this._items.get(Math.trunc(e/2)));this._items.set(e,t)},Wh.prototype.interfaces_=function(){return[]},Wh.prototype.getClass=function(){return Wh};var Jh=function(){};Jh.prototype.visitItem=function(t){},Jh.prototype.interfaces_=function(){return[]},Jh.prototype.getClass=function(){return Jh};var Zh=function(){};Zh.prototype.insert=function(t,e){},Zh.prototype.remove=function(t,e){},Zh.prototype.query=function(){},Zh.prototype.interfaces_=function(){return[]},Zh.prototype.getClass=function(){return Zh};var Kh=function(){if(this._childBoundables=new bc,this._bounds=null,this._level=null,0===arguments.length);else if(1===arguments.length){var t=arguments[0];this._level=t}},Qh={serialVersionUID:{configurable:!0}};Kh.prototype.getLevel=function(){return this._level},Kh.prototype.size=function(){return this._childBoundables.size()},Kh.prototype.getChildBoundables=function(){return this._childBoundables},Kh.prototype.addChildBoundable=function(t){tc.isTrue(null===this._bounds),this._childBoundables.add(t)},Kh.prototype.isEmpty=function(){return this._childBoundables.isEmpty()},Kh.prototype.getBounds=function(){return null===this._bounds&&(this._bounds=this.computeBounds()),this._bounds},Kh.prototype.interfaces_=function(){return[Vh,Li]},Kh.prototype.getClass=function(){return Kh},Qh.serialVersionUID.get=function(){return 0x5a1e55ec41369800},Object.defineProperties(Kh,Qh);var $h=function(){};$h.reverseOrder=function(){return{compare:function(t,e){return e.compareTo(t)}}},$h.min=function(t){return $h.sort(t),t.get(0)},$h.sort=function(t,e){var n=t.toArray();e?qc.sort(n,e):qc.sort(n);for(var r=t.iterator(),i=0,o=n.length;itl.area(this._boundable2)?(this.expand(this._boundable1,this._boundable2,t,e),null):(this.expand(this._boundable2,this._boundable1,t,e),null);if(n)return this.expand(this._boundable1,this._boundable2,t,e),null;if(r)return this.expand(this._boundable2,this._boundable1,t,e),null;throw new _u("neither boundable is composite")},tl.prototype.isLeaves=function(){return!(tl.isComposite(this._boundable1)||tl.isComposite(this._boundable2))},tl.prototype.compareTo=function(t){var e=t;return this._distancee._distance?1:0},tl.prototype.expand=function(t,e,n,r){for(var i=t.getChildBoundables().iterator();i.hasNext();){var o=i.next(),s=new tl(o,e,this._itemDistance);s.getDistance()1,"Node capacity must be greater than 1"),this._nodeCapacity=n}},nl={IntersectsOp:{configurable:!0},serialVersionUID:{configurable:!0},DEFAULT_NODE_CAPACITY:{configurable:!0}};el.prototype.getNodeCapacity=function(){return this._nodeCapacity},el.prototype.lastNode=function(t){return t.get(t.size()-1)},el.prototype.size=function(){if(0===arguments.length)return this.isEmpty()?0:(this.build(),this.size(this._root));if(1===arguments.length){for(var t=0,e=arguments[0].getChildBoundables().iterator();e.hasNext();){var n=e.next();n instanceof Kh?t+=this.size(n):n instanceof Hh&&(t+=1)}return t}},el.prototype.removeItem=function(t,e){for(var n=null,r=t.getChildBoundables().iterator();r.hasNext();){var i=r.next();i instanceof Hh&&i.getItem()===e&&(n=i)}return null!==n&&(t.getChildBoundables().remove(n),!0)},el.prototype.itemsTree=function(){if(0===arguments.length){this.build();var t=this.itemsTree(this._root);return null===t?new bc:t}if(1===arguments.length){for(var e=arguments[0],n=new bc,r=e.getChildBoundables().iterator();r.hasNext();){var i=r.next();if(i instanceof Kh){var o=this.itemsTree(i);null!==o&&n.add(o)}else i instanceof Hh?n.add(i.getItem()):tc.shouldNeverReachHere()}return n.size()<=0?null:n}},el.prototype.insert=function(t,e){tc.isTrue(!this._built,"Cannot insert items into an STR packed R-tree after it has been built."),this._itemBoundables.add(new Hh(t,e))},el.prototype.boundablesAtLevel=function(){if(1===arguments.length){var t=arguments[0],e=new bc;return this.boundablesAtLevel(t,this._root,e),e}if(3===arguments.length){var n=arguments[0],r=arguments[1],i=arguments[2];if(tc.isTrue(n>-2),r.getLevel()===n)return i.add(r),null;for(var o=r.getChildBoundables().iterator();o.hasNext();){var s=o.next();s instanceof Kh?this.boundablesAtLevel(n,s,i):(tc.isTrue(s instanceof Hh),-1===n&&i.add(s))}return null}},el.prototype.query=function(){if(1===arguments.length){var t=arguments[0];this.build();var e=new bc;return this.isEmpty()?e:(this.getIntersectsOp().intersects(this._root.getBounds(),t)&&this.query(t,this._root,e),e)}if(2===arguments.length){var n=arguments[0],r=arguments[1];if(this.build(),this.isEmpty())return null;this.getIntersectsOp().intersects(this._root.getBounds(),n)&&this.query(n,this._root,r)}else if(3===arguments.length)if(Lu(arguments[2],Jh)&&arguments[0]instanceof Object&&arguments[1]instanceof Kh)for(var i=arguments[0],o=arguments[1],s=arguments[2],a=o.getChildBoundables(),u=0;ut&&(t=r)}}return t+1}},el.prototype.createParentBoundables=function(t,e){tc.isTrue(!t.isEmpty());var n=new bc;n.add(this.createNode(e));var r=new bc(t);$h.sort(r,this.getComparator());for(var i=r.iterator();i.hasNext();){var o=i.next();this.lastNode(n).getChildBoundables().size()===this.getNodeCapacity()&&n.add(this.createNode(e)),this.lastNode(n).addChildBoundable(o)}return n},el.prototype.isEmpty=function(){return this._built?this._root.isEmpty():this._itemBoundables.isEmpty()},el.prototype.interfaces_=function(){return[Li]},el.prototype.getClass=function(){return el},el.compareDoubles=function(t,e){return t>e?1:t0);for(var n=new bc,r=0;r0;){var l=h.poll(),p=l.getDistance();if(p>=u)break;l.isLeaves()?(u=p,c=l):l.expandToQueue(h,u)}return[c.getBoundable(0).getItem(),c.getBoundable(1).getItem()]}}else if(3===arguments.length){var f=arguments[0],g=arguments[1],d=arguments[2],y=new Hh(f,g),_=new tl(this.getRoot(),y,d);return this.nearestNeighbour(_)[0]}},e.prototype.interfaces_=function(){return[Zh,Li]},e.prototype.getClass=function(){return e},e.centreX=function(t){return e.avg(t.getMinX(),t.getMaxX())},e.avg=function(t,e){return(t+e)/2},e.centreY=function(t){return e.avg(t.getMinY(),t.getMaxY())},n.STRtreeNode.get=function(){return sl},n.serialVersionUID.get=function(){return 0x39920f7d5f261e0},n.xComparator.get=function(){return{interfaces_:function(){return[wu]},compare:function(n,r){return t.compareDoubles(e.centreX(n.getBounds()),e.centreX(r.getBounds()))}}},n.yComparator.get=function(){return{interfaces_:function(){return[wu]},compare:function(n,r){return t.compareDoubles(e.centreY(n.getBounds()),e.centreY(r.getBounds()))}}},n.intersectsOp.get=function(){return{interfaces_:function(){return[t.IntersectsOp]},intersects:function(t,e){return t.intersects(e)}}},n.DEFAULT_NODE_CAPACITY.get=function(){return 10},Object.defineProperties(e,n),e}(el),sl=function(t){function e(){var e=arguments[0];t.call(this,e)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.computeBounds=function(){for(var t=null,e=this.getChildBoundables().iterator();e.hasNext();){var n=e.next();null===t?t=new Yu(n.getBounds()):t.expandToInclude(n.getBounds())}return t},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(Kh),al=function(){};al.prototype.interfaces_=function(){return[]},al.prototype.getClass=function(){return al},al.relativeSign=function(t,e){return te?1:0},al.compare=function(t,e,n){if(e.equals2D(n))return 0;var r=al.relativeSign(e.x,n.x),i=al.relativeSign(e.y,n.y);switch(t){case 0:return al.compareValue(r,i);case 1:return al.compareValue(i,r);case 2:return al.compareValue(i,-r);case 3:return al.compareValue(-r,i);case 4:return al.compareValue(-r,-i);case 5:return al.compareValue(-i,-r);case 6:return al.compareValue(-i,r);case 7:return al.compareValue(r,-i)}return tc.shouldNeverReachHere("invalid octant value"),0},al.compareValue=function(t,e){return t<0?-1:t>0?1:e<0?-1:e>0?1:0};var ul=function(){this._segString=null,this.coord=null,this.segmentIndex=null,this._segmentOctant=null,this._isInterior=null;var t=arguments[0],e=arguments[1],n=arguments[2],r=arguments[3];this._segString=t,this.coord=new bu(e),this.segmentIndex=n,this._segmentOctant=r,this._isInterior=!e.equals2D(t.getCoordinate(n))};ul.prototype.getCoordinate=function(){return this.coord},ul.prototype.print=function(t){t.print(this.coord),t.print(" seg # = "+this.segmentIndex)},ul.prototype.compareTo=function(t){var e=t;return this.segmentIndexe.segmentIndex?1:this.coord.equals2D(e.coord)?0:al.compare(this._segmentOctant,this.coord,e.coord)},ul.prototype.isEndPoint=function(t){return 0===this.segmentIndex&&!this._isInterior||this.segmentIndex===t},ul.prototype.isInterior=function(){return this._isInterior},ul.prototype.interfaces_=function(){return[xu]},ul.prototype.getClass=function(){return ul};var cl=function(){this._nodeMap=new Gi,this._edge=null;var t=arguments[0];this._edge=t};cl.prototype.getSplitCoordinates=function(){var t=new Nc;this.addEndpoints();for(var e=this.iterator(),n=e.next();e.hasNext();){var r=e.next();this.addEdgeCoordinates(n,r,t),n=r}return t.toCoordinateArray()},cl.prototype.addCollapsedNodes=function(){var t=new bc;this.findCollapsesFromInsertedNodes(t),this.findCollapsesFromExistingVertices(t);for(var e=t.iterator();e.hasNext();){var n=e.next().intValue();this.add(this._edge.getCoordinate(n),n)}},cl.prototype.print=function(t){t.println("Intersections:");for(var e=this.iterator();e.hasNext();){e.next().print(t)}},cl.prototype.findCollapsesFromExistingVertices=function(t){for(var e=0;e=0?e>=0?n>=r?0:1:n>=r?7:6:e>=0?n>=r?3:2:n>=r?4:5}if(arguments[0]instanceof bu&&arguments[1]instanceof bu){var i=arguments[0],o=arguments[1],s=o.x-i.x,a=o.y-i.y;if(0===s&&0===a)throw new _u("Cannot compute the octant for two identical points "+i);return hl.octant(s,a)}};var ll=function(){};ll.prototype.getCoordinates=function(){},ll.prototype.size=function(){},ll.prototype.getCoordinate=function(t){},ll.prototype.isClosed=function(){},ll.prototype.setData=function(t){},ll.prototype.getData=function(){},ll.prototype.interfaces_=function(){return[]},ll.prototype.getClass=function(){return ll};var pl=function(){};pl.prototype.addIntersection=function(t,e){},pl.prototype.interfaces_=function(){return[ll]},pl.prototype.getClass=function(){return pl};var fl=function(){this._nodeList=new cl(this),this._pts=null,this._data=null;var t=arguments[0],e=arguments[1];this._pts=t,this._data=e};fl.prototype.getCoordinates=function(){return this._pts},fl.prototype.size=function(){return this._pts.length},fl.prototype.getCoordinate=function(t){return this._pts[t]},fl.prototype.isClosed=function(){return this._pts[0].equals(this._pts[this._pts.length-1])},fl.prototype.getSegmentOctant=function(t){return t===this._pts.length-1?-1:this.safeOctant(this.getCoordinate(t),this.getCoordinate(t+1))},fl.prototype.setData=function(t){this._data=t},fl.prototype.safeOctant=function(t,e){return t.equals2D(e)?0:hl.octant(t,e)},fl.prototype.getData=function(){return this._data},fl.prototype.addIntersection=function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];this.addIntersectionNode(t,e)}else if(4===arguments.length){var n=arguments[0],r=arguments[1],i=arguments[3],o=new bu(n.getIntersection(i));this.addIntersection(o,r)}},fl.prototype.toString=function(){return Ku.toLineString(new uh(this._pts))},fl.prototype.getNodeList=function(){return this._nodeList},fl.prototype.addIntersectionNode=function(t,e){var n=e,r=n+1;if(r=0&&n>=0?Math.max(e,n):e<=0&&n<=0?Math.max(e,n):0}if(arguments[0]instanceof bu){var r=arguments[0];return sc.orientationIndex(this.p0,this.p1,r)}},gl.prototype.toGeometry=function(t){return t.createLineString([this.p0,this.p1])},gl.prototype.isVertical=function(){return this.p0.x===this.p1.x},gl.prototype.equals=function(t){if(!(t instanceof gl))return!1;var e=t;return this.p0.equals(e.p0)&&this.p1.equals(e.p1)},gl.prototype.intersection=function(t){var e=new rc;return e.computeIntersection(this.p0,this.p1,t.p0,t.p1),e.hasIntersection()?e.getIntersection(0):null},gl.prototype.project=function(){if(arguments[0]instanceof bu){var t=arguments[0];if(t.equals(this.p0)||t.equals(this.p1))return new bu(t);var e=this.projectionFactor(t),n=new bu;return n.x=this.p0.x+e*(this.p1.x-this.p0.x),n.y=this.p0.y+e*(this.p1.y-this.p0.y),n}if(arguments[0]instanceof gl){var r=arguments[0],i=this.projectionFactor(r.p0),o=this.projectionFactor(r.p1);if(i>=1&&o>=1)return null;if(i<=0&&o<=0)return null;var s=this.project(r.p0);i<0&&(s=this.p0),i>1&&(s=this.p1);var a=this.project(r.p1);return o<0&&(a=this.p0),o>1&&(a=this.p1),new gl(s,a)}},gl.prototype.normalize=function(){this.p1.compareTo(this.p0)<0&&this.reverse()},gl.prototype.angle=function(){return Math.atan2(this.p1.y-this.p0.y,this.p1.x-this.p0.x)},gl.prototype.getCoordinate=function(t){return 0===t?this.p0:this.p1},gl.prototype.distancePerpendicular=function(t){return sc.distancePointLinePerpendicular(t,this.p0,this.p1)},gl.prototype.minY=function(){return Math.min(this.p0.y,this.p1.y)},gl.prototype.midPoint=function(){return gl.midPoint(this.p0,this.p1)},gl.prototype.projectionFactor=function(t){if(t.equals(this.p0))return 0;if(t.equals(this.p1))return 1;var e=this.p1.x-this.p0.x,n=this.p1.y-this.p0.y,r=e*e+n*n;if(r<=0)return mu.NaN;return((t.x-this.p0.x)*e+(t.y-this.p0.y)*n)/r},gl.prototype.closestPoints=function(t){var e=this.intersection(t);if(null!==e)return[e,e];var n=new Array(2).fill(null),r=mu.MAX_VALUE,i=null,o=this.closestPoint(t.p0);r=o.distance(t.p0),n[0]=o,n[1]=t.p0;var s=this.closestPoint(t.p1);(i=s.distance(t.p1))0&&e<1)return this.project(t);return this.p0.distance(t)1||mu.isNaN(e))&&(e=1),e},gl.prototype.toString=function(){return"LINESTRING( "+this.p0.x+" "+this.p0.y+", "+this.p1.x+" "+this.p1.y+")"},gl.prototype.isHorizontal=function(){return this.p0.y===this.p1.y},gl.prototype.distance=function(){if(arguments[0]instanceof gl){var t=arguments[0];return sc.distanceLineLine(this.p0,this.p1,t.p0,t.p1)}if(arguments[0]instanceof bu){var e=arguments[0];return sc.distancePointLine(e,this.p0,this.p1)}},gl.prototype.pointAlong=function(t){var e=new bu;return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e},gl.prototype.hashCode=function(){var t=mu.doubleToLongBits(this.p0.x);t^=31*mu.doubleToLongBits(this.p0.y);var e=Math.trunc(t)^Math.trunc(t>>32),n=mu.doubleToLongBits(this.p1.x);n^=31*mu.doubleToLongBits(this.p1.y);return e^(Math.trunc(n)^Math.trunc(n>>32))},gl.prototype.interfaces_=function(){return[xu,Li]},gl.prototype.getClass=function(){return gl},gl.midPoint=function(t,e){return new bu((t.x+e.x)/2,(t.y+e.y)/2)},dl.serialVersionUID.get=function(){return 0x2d2172135f411c00},Object.defineProperties(gl,dl);var yl=function(){this.tempEnv1=new Yu,this.tempEnv2=new Yu,this._overlapSeg1=new gl,this._overlapSeg2=new gl};yl.prototype.overlap=function(){if(2===arguments.length);else if(4===arguments.length){var t=arguments[0],e=arguments[1],n=arguments[2],r=arguments[3];t.getLineSegment(e,this._overlapSeg1),n.getLineSegment(r,this._overlapSeg2),this.overlap(this._overlapSeg1,this._overlapSeg2)}},yl.prototype.interfaces_=function(){return[]},yl.prototype.getClass=function(){return yl};var _l=function(){this._pts=null,this._start=null,this._end=null,this._env=null,this._context=null,this._id=null;var t=arguments[0],e=arguments[1],n=arguments[2],r=arguments[3];this._pts=t,this._start=e,this._end=n,this._context=r};_l.prototype.getLineSegment=function(t,e){e.p0=this._pts[t],e.p1=this._pts[t+1]},_l.prototype.computeSelect=function(t,e,n,r){var i=this._pts[e],o=this._pts[n];if(r.tempEnv1.init(i,o),n-e==1)return r.select(this,e),null;if(!t.intersects(r.tempEnv1))return null;var s=Math.trunc((e+n)/2);e=t.length-1)return t.length-1;for(var r=Bh.quadrant(t[n],t[n+1]),i=e+1;in.getId()&&(n.computeOverlaps(i,t),this._nOverlaps++),this._segInt.isDone())return null}},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},n.SegmentOverlapAction.get=function(){return wl},Object.defineProperties(e,n),e}(xl),wl=function(t){function e(){t.call(this),this._si=null;var e=arguments[0];this._si=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.overlap=function(){if(4!==arguments.length)return t.prototype.overlap.apply(this,arguments);var e=arguments[0],n=arguments[1],r=arguments[2],i=arguments[3],o=e.getContext(),s=r.getContext();this._si.processIntersections(o,n,s,i)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(yl),bl=function t(){if(this._quadrantSegments=t.DEFAULT_QUADRANT_SEGMENTS,this._endCapStyle=t.CAP_ROUND,this._joinStyle=t.JOIN_ROUND,this._mitreLimit=t.DEFAULT_MITRE_LIMIT,this._isSingleSided=!1,this._simplifyFactor=t.DEFAULT_SIMPLIFY_FACTOR,0===arguments.length);else if(1===arguments.length){var e=arguments[0];this.setQuadrantSegments(e)}else if(2===arguments.length){var n=arguments[0],r=arguments[1];this.setQuadrantSegments(n),this.setEndCapStyle(r)}else if(4===arguments.length){var i=arguments[0],o=arguments[1],s=arguments[2],a=arguments[3];this.setQuadrantSegments(i),this.setEndCapStyle(o),this.setJoinStyle(s),this.setMitreLimit(a)}},Il={CAP_ROUND:{configurable:!0},CAP_FLAT:{configurable:!0},CAP_SQUARE:{configurable:!0},JOIN_ROUND:{configurable:!0},JOIN_MITRE:{configurable:!0},JOIN_BEVEL:{configurable:!0},DEFAULT_QUADRANT_SEGMENTS:{configurable:!0},DEFAULT_MITRE_LIMIT:{configurable:!0},DEFAULT_SIMPLIFY_FACTOR:{configurable:!0}};bl.prototype.getEndCapStyle=function(){return this._endCapStyle},bl.prototype.isSingleSided=function(){return this._isSingleSided},bl.prototype.setQuadrantSegments=function(t){this._quadrantSegments=t,0===this._quadrantSegments&&(this._joinStyle=bl.JOIN_BEVEL),this._quadrantSegments<0&&(this._joinStyle=bl.JOIN_MITRE,this._mitreLimit=Math.abs(this._quadrantSegments)),t<=0&&(this._quadrantSegments=1),this._joinStyle!==bl.JOIN_ROUND&&(this._quadrantSegments=bl.DEFAULT_QUADRANT_SEGMENTS)},bl.prototype.getJoinStyle=function(){return this._joinStyle},bl.prototype.setJoinStyle=function(t){this._joinStyle=t},bl.prototype.setSimplifyFactor=function(t){this._simplifyFactor=t<0?0:t},bl.prototype.getSimplifyFactor=function(){return this._simplifyFactor},bl.prototype.getQuadrantSegments=function(){return this._quadrantSegments},bl.prototype.setEndCapStyle=function(t){this._endCapStyle=t},bl.prototype.getMitreLimit=function(){return this._mitreLimit},bl.prototype.setMitreLimit=function(t){this._mitreLimit=t},bl.prototype.setSingleSided=function(t){this._isSingleSided=t},bl.prototype.interfaces_=function(){return[]},bl.prototype.getClass=function(){return bl},bl.bufferDistanceError=function(t){var e=Math.PI/2/t;return 1-Math.cos(e/2)},Il.CAP_ROUND.get=function(){return 1},Il.CAP_FLAT.get=function(){return 2},Il.CAP_SQUARE.get=function(){return 3},Il.JOIN_ROUND.get=function(){return 1},Il.JOIN_MITRE.get=function(){return 2},Il.JOIN_BEVEL.get=function(){return 3},Il.DEFAULT_QUADRANT_SEGMENTS.get=function(){return 8},Il.DEFAULT_MITRE_LIMIT.get=function(){return 5},Il.DEFAULT_SIMPLIFY_FACTOR.get=function(){return.01},Object.defineProperties(bl,Il);var Nl=function(t){this._distanceTol=null,this._isDeleted=null,this._angleOrientation=sc.COUNTERCLOCKWISE,this._inputLine=t||null},Cl={INIT:{configurable:!0},DELETE:{configurable:!0},KEEP:{configurable:!0},NUM_PTS_TO_CHECK:{configurable:!0}};Nl.prototype.isDeletable=function(t,e,n,r){var i=this._inputLine[t],o=this._inputLine[e],s=this._inputLine[n];return!!this.isConcave(i,o,s)&&(!!this.isShallow(i,o,s,r)&&this.isShallowSampled(i,o,t,n,r))},Nl.prototype.deleteShallowConcavities=function(){for(var t=1,e=this.findNextNonDeletedIndex(t),n=this.findNextNonDeletedIndex(e),r=!1;n=0;r--)this.addPt(t[r])},Sl.prototype.isRedundant=function(t){if(this._ptList.size()<1)return!1;var e=this._ptList.get(this._ptList.size()-1);return t.distance(e)Math.PI;)t-=Ll.PI_TIMES_2;for(;t<=-Math.PI;)t+=Ll.PI_TIMES_2;return t},Ll.angle=function(){if(1===arguments.length){var t=arguments[0];return Math.atan2(t.y,t.x)}if(2===arguments.length){var e=arguments[0],n=arguments[1],r=n.x-e.x,i=n.y-e.y;return Math.atan2(i,r)}},Ll.isAcute=function(t,e,n){var r=t.x-e.x,i=t.y-e.y;return r*(n.x-e.x)+i*(n.y-e.y)>0},Ll.isObtuse=function(t,e,n){var r=t.x-e.x,i=t.y-e.y;return r*(n.x-e.x)+i*(n.y-e.y)<0},Ll.interiorAngle=function(t,e,n){var r=Ll.angle(e,t),i=Ll.angle(e,n);return Math.abs(i-r)},Ll.normalizePositive=function(t){if(t<0){for(;t<0;)t+=Ll.PI_TIMES_2;t>=Ll.PI_TIMES_2&&(t=0)}else{for(;t>=Ll.PI_TIMES_2;)t-=Ll.PI_TIMES_2;t<0&&(t=0)}return t},Ll.angleBetween=function(t,e,n){var r=Ll.angle(e,t),i=Ll.angle(e,n);return Ll.diff(r,i)},Ll.diff=function(t,e){var n=null;return(n=tMath.PI&&(n=2*Math.PI-n),n},Ll.toRadians=function(t){return t*Math.PI/180},Ll.getTurn=function(t,e){var n=Math.sin(e-t);return n>0?Ll.COUNTERCLOCKWISE:n<0?Ll.CLOCKWISE:Ll.NONE},Ll.angleBetweenOriented=function(t,e,n){var r=Ll.angle(e,t),i=Ll.angle(e,n)-r;return i<=-Math.PI?i+Ll.PI_TIMES_2:i>Math.PI?i-Ll.PI_TIMES_2:i},Pl.PI_TIMES_2.get=function(){return 2*Math.PI},Pl.PI_OVER_2.get=function(){return Math.PI/2},Pl.PI_OVER_4.get=function(){return Math.PI/4},Pl.COUNTERCLOCKWISE.get=function(){return sc.COUNTERCLOCKWISE},Pl.CLOCKWISE.get=function(){return sc.CLOCKWISE},Pl.NONE.get=function(){return sc.COLLINEAR},Object.defineProperties(Ll,Pl);var Ol=function t(){this._maxCurveSegmentError=0,this._filletAngleQuantum=null,this._closingSegLengthFactor=1,this._segList=null,this._distance=0,this._precisionModel=null,this._bufParams=null,this._li=null,this._s0=null,this._s1=null,this._s2=null,this._seg0=new gl,this._seg1=new gl,this._offset0=new gl,this._offset1=new gl,this._side=0,this._hasNarrowConcaveAngle=!1;var e=arguments[0],n=arguments[1],r=arguments[2];this._precisionModel=e,this._bufParams=n,this._li=new rc,this._filletAngleQuantum=Math.PI/2/n.getQuadrantSegments(),n.getQuadrantSegments()>=8&&n.getJoinStyle()===bl.JOIN_ROUND&&(this._closingSegLengthFactor=t.MAX_CLOSING_SEG_LEN_FACTOR),this.init(r)},Rl={OFFSET_SEGMENT_SEPARATION_FACTOR:{configurable:!0},INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR:{configurable:!0},CURVE_VERTEX_SNAP_DISTANCE_FACTOR:{configurable:!0},MAX_CLOSING_SEG_LEN_FACTOR:{configurable:!0}};Ol.prototype.addNextSegment=function(t,e){if(this._s0=this._s1,this._s1=this._s2,this._s2=t,this._seg0.setCoordinates(this._s0,this._s1),this.computeOffsetSegment(this._seg0,this._side,this._distance,this._offset0),this._seg1.setCoordinates(this._s1,this._s2),this.computeOffsetSegment(this._seg1,this._side,this._distance,this._offset1),this._s1.equals(this._s2))return null;var n=sc.computeOrientation(this._s0,this._s1,this._s2),r=n===sc.CLOCKWISE&&this._side===Nh.LEFT||n===sc.COUNTERCLOCKWISE&&this._side===Nh.RIGHT;0===n?this.addCollinear(e):r?this.addOutsideTurn(n,e):this.addInsideTurn(n,e)},Ol.prototype.addLineEndCap=function(t,e){var n=new gl(t,e),r=new gl;this.computeOffsetSegment(n,Nh.LEFT,this._distance,r);var i=new gl;this.computeOffsetSegment(n,Nh.RIGHT,this._distance,i);var o=e.x-t.x,s=e.y-t.y,a=Math.atan2(s,o);switch(this._bufParams.getEndCapStyle()){case bl.CAP_ROUND:this._segList.addPt(r.p1),this.addFilletArc(e,a+Math.PI/2,a-Math.PI/2,sc.CLOCKWISE,this._distance),this._segList.addPt(i.p1);break;case bl.CAP_FLAT:this._segList.addPt(r.p1),this._segList.addPt(i.p1);break;case bl.CAP_SQUARE:var u=new bu;u.x=Math.abs(this._distance)*Math.cos(a),u.y=Math.abs(this._distance)*Math.sin(a);var c=new bu(r.p1.x+u.x,r.p1.y+u.y),h=new bu(i.p1.x+u.x,i.p1.y+u.y);this._segList.addPt(c),this._segList.addPt(h)}},Ol.prototype.getCoordinates=function(){return this._segList.getCoordinates()},Ol.prototype.addMitreJoin=function(t,e,n,r){var i=!0,o=null;try{o=Uu.intersection(e.p0,e.p1,n.p0,n.p1);(r<=0?1:o.distance(t)/Math.abs(r))>this._bufParams.getMitreLimit()&&(i=!1)}catch(t){if(!(t instanceof ju))throw t;o=new bu(0,0),i=!1}i?this._segList.addPt(o):this.addLimitedMitreJoin(e,n,r,this._bufParams.getMitreLimit())},Ol.prototype.addFilletCorner=function(t,e,n,r,i){var o=e.x-t.x,s=e.y-t.y,a=Math.atan2(s,o),u=n.x-t.x,c=n.y-t.y,h=Math.atan2(c,u);r===sc.CLOCKWISE?a<=h&&(a+=2*Math.PI):a>=h&&(a-=2*Math.PI),this._segList.addPt(e),this.addFilletArc(t,a,h,r,i),this._segList.addPt(n)},Ol.prototype.addOutsideTurn=function(t,e){if(this._offset0.p1.distance(this._offset1.p0)0){var n=new bu((this._closingSegLengthFactor*this._offset0.p1.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset0.p1.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(n);var r=new bu((this._closingSegLengthFactor*this._offset1.p0.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset1.p0.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(r)}else this._segList.addPt(this._s1);this._segList.addPt(this._offset1.p0)}},Ol.prototype.createCircle=function(t){var e=new bu(t.x+this._distance,t.y);this._segList.addPt(e),this.addFilletArc(t,0,2*Math.PI,-1,this._distance),this._segList.closeRing()},Ol.prototype.addBevelJoin=function(t,e){this._segList.addPt(t.p1),this._segList.addPt(e.p0)},Ol.prototype.init=function(t){this._distance=t,this._maxCurveSegmentError=t*(1-Math.cos(this._filletAngleQuantum/2)),this._segList=new Sl,this._segList.setPrecisionModel(this._precisionModel),this._segList.setMinimumVertexDistance(t*Ol.CURVE_VERTEX_SNAP_DISTANCE_FACTOR)},Ol.prototype.addCollinear=function(t){this._li.computeIntersection(this._s0,this._s1,this._s1,this._s2);this._li.getIntersectionNum()>=2&&(this._bufParams.getJoinStyle()===bl.JOIN_BEVEL||this._bufParams.getJoinStyle()===bl.JOIN_MITRE?(t&&this._segList.addPt(this._offset0.p1),this._segList.addPt(this._offset1.p0)):this.addFilletCorner(this._s1,this._offset0.p1,this._offset1.p0,sc.CLOCKWISE,this._distance))},Ol.prototype.closeRing=function(){this._segList.closeRing()},Ol.prototype.hasNarrowConcaveAngle=function(){return this._hasNarrowConcaveAngle},Ol.prototype.interfaces_=function(){return[]},Ol.prototype.getClass=function(){return Ol},Rl.OFFSET_SEGMENT_SEPARATION_FACTOR.get=function(){return.001},Rl.INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR.get=function(){return.001},Rl.CURVE_VERTEX_SNAP_DISTANCE_FACTOR.get=function(){return 1e-6},Rl.MAX_CLOSING_SEG_LEN_FACTOR.get=function(){return 80},Object.defineProperties(Ol,Rl);var Tl=function(){this._distance=0,this._precisionModel=null,this._bufParams=null;var t=arguments[0],e=arguments[1];this._precisionModel=t,this._bufParams=e};Tl.prototype.getOffsetCurve=function(t,e){if(this._distance=e,0===e)return null;var n=e<0,r=Math.abs(e),i=this.getSegGen(r);t.length<=1?this.computePointCurve(t[0],i):this.computeOffsetCurve(t,n,i);var o=i.getCoordinates();return n&&Cc.reverse(o),o},Tl.prototype.computeSingleSidedBufferCurve=function(t,e,n){var r=this.simplifyTolerance(this._distance);if(e){n.addSegments(t,!0);var i=Nl.simplify(t,-r),o=i.length-1;n.initSideSegments(i[o],i[o-1],Nh.LEFT),n.addFirstSegment();for(var s=o-2;s>=0;s--)n.addNextSegment(i[s],!0)}else{n.addSegments(t,!1);var a=Nl.simplify(t,r),u=a.length-1;n.initSideSegments(a[0],a[1],Nh.LEFT),n.addFirstSegment();for(var c=2;c<=u;c++)n.addNextSegment(a[c],!0)}n.addLastSegment(),n.closeRing()},Tl.prototype.computeRingBufferCurve=function(t,e,n){var r=this.simplifyTolerance(this._distance);e===Nh.RIGHT&&(r=-r);var i=Nl.simplify(t,r),o=i.length-1;n.initSideSegments(i[o-1],i[0],e);for(var s=1;s<=o;s++){var a=1!==s;n.addNextSegment(i[s],a)}n.closeRing()},Tl.prototype.computeLineBufferCurve=function(t,e){var n=this.simplifyTolerance(this._distance),r=Nl.simplify(t,n),i=r.length-1;e.initSideSegments(r[0],r[1],Nh.LEFT);for(var o=2;o<=i;o++)e.addNextSegment(r[o],!0);e.addLastSegment(),e.addLineEndCap(r[i-1],r[i]);var s=Nl.simplify(t,-n),a=s.length-1;e.initSideSegments(s[a],s[a-1],Nh.LEFT);for(var u=a-2;u>=0;u--)e.addNextSegment(s[u],!0);e.addLastSegment(),e.addLineEndCap(s[1],s[0]),e.closeRing()},Tl.prototype.computePointCurve=function(t,e){switch(this._bufParams.getEndCapStyle()){case bl.CAP_ROUND:e.createCircle(t);break;case bl.CAP_SQUARE:e.createSquare(t)}},Tl.prototype.getLineCurve=function(t,e){if(this._distance=e,e<0&&!this._bufParams.isSingleSided())return null;if(0===e)return null;var n=Math.abs(e),r=this.getSegGen(n);if(t.length<=1)this.computePointCurve(t[0],r);else if(this._bufParams.isSingleSided()){var i=e<0;this.computeSingleSidedBufferCurve(t,i,r)}else this.computeLineBufferCurve(t,r);return r.getCoordinates()},Tl.prototype.getBufferParameters=function(){return this._bufParams},Tl.prototype.simplifyTolerance=function(t){return t*this._bufParams.getSimplifyFactor()},Tl.prototype.getRingCurve=function(t,e,n){if(this._distance=n,t.length<=2)return this.getLineCurve(t,n);if(0===n)return Tl.copyCoordinates(t);var r=this.getSegGen(n);return this.computeRingBufferCurve(t,e,r),r.getCoordinates()},Tl.prototype.computeOffsetCurve=function(t,e,n){var r=this.simplifyTolerance(this._distance);if(e){var i=Nl.simplify(t,-r),o=i.length-1;n.initSideSegments(i[o],i[o-1],Nh.LEFT),n.addFirstSegment();for(var s=o-2;s>=0;s--)n.addNextSegment(i[s],!0)}else{var a=Nl.simplify(t,r),u=a.length-1;n.initSideSegments(a[0],a[1],Nh.LEFT),n.addFirstSegment();for(var c=2;c<=u;c++)n.addNextSegment(a[c],!0)}n.addLastSegment()},Tl.prototype.getSegGen=function(t){return new Ol(this._precisionModel,this._bufParams,t)},Tl.prototype.interfaces_=function(){return[]},Tl.prototype.getClass=function(){return Tl},Tl.copyCoordinates=function(t){for(var e=new Array(t.length).fill(null),n=0;ni.getMaxY()||this.findStabbedSegments(t,r.getDirectedEdges(),e)}return e}if(3===arguments.length)if(Lu(arguments[2],wc)&&arguments[0]instanceof bu&&arguments[1]instanceof jh)for(var o=arguments[0],s=arguments[1],a=arguments[2],u=s.getEdge().getCoordinates(),c=0;cthis._seg.p1.y&&this._seg.reverse();if(!(Math.max(this._seg.p0.x,this._seg.p1.x)this._seg.p1.y||sc.computeOrientation(this._seg.p0,this._seg.p1,o)===sc.RIGHT)){var h=s.getDepth(Nh.LEFT);this._seg.p0.equals(u[c])||(h=s.getDepth(Nh.RIGHT));var l=new Fl(this._seg,h);a.add(l)}}else if(Lu(arguments[2],wc)&&arguments[0]instanceof bu&&Lu(arguments[1],wc))for(var p=arguments[0],f=arguments[1],g=arguments[2],d=f.iterator();d.hasNext();){var y=d.next();y.isForward()&&this.findStabbedSegments(p,y,g)}},Al.prototype.getDepth=function(t){var e=this.findStabbedSegments(t);if(0===e.size())return 0;return $h.min(e)._leftDepth},Al.prototype.interfaces_=function(){return[]},Al.prototype.getClass=function(){return Al},Dl.DepthSegment.get=function(){return Fl},Object.defineProperties(Al,Dl);var Fl=function(){this._upwardSeg=null,this._leftDepth=null;var t=arguments[0],e=arguments[1];this._upwardSeg=new gl(t),this._leftDepth=e};Fl.prototype.compareTo=function(t){var e=t;if(this._upwardSeg.minX()>=e._upwardSeg.maxX())return 1;if(this._upwardSeg.maxX()<=e._upwardSeg.minX())return-1;var n=this._upwardSeg.orientationIndex(e._upwardSeg);return 0!==n?n:0!=(n=-1*e._upwardSeg.orientationIndex(this._upwardSeg))?n:this._upwardSeg.compareTo(e._upwardSeg)},Fl.prototype.compareX=function(t,e){var n=t.p0.compareTo(e.p0);return 0!==n?n:t.p1.compareTo(e.p1)},Fl.prototype.toString=function(){return this._upwardSeg.toString()},Fl.prototype.interfaces_=function(){return[xu]},Fl.prototype.getClass=function(){return Fl};var ql=function(t,e,n){this.p0=t||null,this.p1=e||null,this.p2=n||null};ql.prototype.area=function(){return ql.area(this.p0,this.p1,this.p2)},ql.prototype.signedArea=function(){return ql.signedArea(this.p0,this.p1,this.p2)},ql.prototype.interpolateZ=function(t){if(null===t)throw new _u("Supplied point is null.");return ql.interpolateZ(t,this.p0,this.p1,this.p2)},ql.prototype.longestSideLength=function(){return ql.longestSideLength(this.p0,this.p1,this.p2)},ql.prototype.isAcute=function(){return ql.isAcute(this.p0,this.p1,this.p2)},ql.prototype.circumcentre=function(){return ql.circumcentre(this.p0,this.p1,this.p2)},ql.prototype.area3D=function(){return ql.area3D(this.p0,this.p1,this.p2)},ql.prototype.centroid=function(){return ql.centroid(this.p0,this.p1,this.p2)},ql.prototype.inCentre=function(){return ql.inCentre(this.p0,this.p1,this.p2)},ql.prototype.interfaces_=function(){return[]},ql.prototype.getClass=function(){return ql},ql.area=function(t,e,n){return Math.abs(((n.x-t.x)*(e.y-t.y)-(e.x-t.x)*(n.y-t.y))/2)},ql.signedArea=function(t,e,n){return((n.x-t.x)*(e.y-t.y)-(e.x-t.x)*(n.y-t.y))/2},ql.det=function(t,e,n,r){return t*r-e*n},ql.interpolateZ=function(t,e,n,r){var i=e.x,o=e.y,s=n.x-i,a=r.x-i,u=n.y-o,c=r.y-o,h=s*c-a*u,l=t.x-i,p=t.y-o,f=(c*l-a*p)/h,g=(-u*l+s*p)/h;return e.z+f*(n.z-e.z)+g*(r.z-e.z)},ql.longestSideLength=function(t,e,n){var r=t.distance(e),i=e.distance(n),o=n.distance(t),s=r;return i>s&&(s=i),o>s&&(s=o),s},ql.isAcute=function(t,e,n){return!!Ll.isAcute(t,e,n)&&(!!Ll.isAcute(e,n,t)&&!!Ll.isAcute(n,t,e))},ql.circumcentre=function(t,e,n){var r=n.x,i=n.y,o=t.x-r,s=t.y-i,a=e.x-r,u=e.y-i,c=2*ql.det(o,s,a,u),h=ql.det(s,o*o+s*s,u,a*a+u*u),l=ql.det(o,o*o+s*s,a,a*a+u*u);return new bu(r-h/c,i+l/c)},ql.perpendicularBisector=function(t,e){var n=e.x-t.x,r=e.y-t.y,i=new Uu(t.x+n/2,t.y+r/2,1),o=new Uu(t.x-r+n/2,t.y+n+r/2,1);return new Uu(i,o)},ql.angleBisector=function(t,e,n){var r=e.distance(t),i=r/(r+e.distance(n)),o=n.x-t.x,s=n.y-t.y;return new bu(t.x+i*o,t.y+i*s)},ql.area3D=function(t,e,n){var r=e.x-t.x,i=e.y-t.y,o=e.z-t.z,s=n.x-t.x,a=n.y-t.y,u=n.z-t.z,c=i*u-o*a,h=o*s-r*u,l=r*a-i*s,p=c*c+h*h+l*l,f=Math.sqrt(p)/2;return f},ql.centroid=function(t,e,n){var r=(t.x+e.x+n.x)/3,i=(t.y+e.y+n.y)/3;return new bu(r,i)},ql.inCentre=function(t,e,n){var r=e.distance(n),i=t.distance(n),o=t.distance(e),s=r+i+o,a=(r*t.x+i*e.x+o*n.x)/s,u=(r*t.y+i*e.y+o*n.y)/s;return new bu(a,u)};var Gl=function(){this._inputGeom=null,this._distance=null,this._curveBuilder=null,this._curveList=new bc;var t=arguments[0],e=arguments[1],n=arguments[2];this._inputGeom=t,this._distance=e,this._curveBuilder=n};Gl.prototype.addPoint=function(t){if(this._distance<=0)return null;var e=t.getCoordinates(),n=this._curveBuilder.getLineCurve(e,this._distance);this.addCurve(n,Su.EXTERIOR,Su.INTERIOR)},Gl.prototype.addPolygon=function(t){var e=this._distance,n=Nh.LEFT;this._distance<0&&(e=-this._distance,n=Nh.RIGHT);var r=t.getExteriorRing(),i=Cc.removeRepeatedPoints(r.getCoordinates());if(this._distance<0&&this.isErodedCompletely(r,this._distance))return null;if(this._distance<=0&&i.length<3)return null;this.addPolygonRing(i,e,n,Su.EXTERIOR,Su.INTERIOR);for(var o=0;o0&&this.isErodedCompletely(s,-this._distance)||this.addPolygonRing(a,e,Nh.opposite(n),Su.INTERIOR,Su.EXTERIOR)}},Gl.prototype.isTriangleErodedCompletely=function(t,e){var n=new ql(t[0],t[1],t[2]),r=n.inCentre();return sc.distancePointLine(r,n.p0,n.p1)=eh.MINIMUM_VALID_SIZE&&sc.isCCW(t)&&(o=i,s=r,n=Nh.opposite(n));var a=this._curveBuilder.getRingCurve(t,n,e);this.addCurve(a,o,s)},Gl.prototype.add=function(t){if(t.isEmpty())return null;t instanceof $c?this.addPolygon(t):t instanceof Jc?this.addLineString(t):t instanceof Kc?this.addPoint(t):t instanceof th?this.addCollection(t):t instanceof Xc?this.addCollection(t):t instanceof nh?this.addCollection(t):t instanceof jc&&this.addCollection(t)},Gl.prototype.isErodedCompletely=function(t,e){var n=t.getCoordinates();if(n.length<4)return e<0;if(4===n.length)return this.isTriangleErodedCompletely(n,e);var r=t.getEnvelopeInternal(),i=Math.min(r.getHeight(),r.getWidth());return e<0&&2*Math.abs(e)>i},Gl.prototype.addCollection=function(t){for(var e=0;e=this._max)throw new Pi;var t=this._parent.getGeometryN(this._index++);return t instanceof jc?(this._subcollectionIterator=new kl(t),this._subcollectionIterator.next()):t},kl.prototype.remove=function(){throw new Error(this.getClass().getName())},kl.prototype.hasNext=function(){if(this._atStart)return!0;if(null!==this._subcollectionIterator){if(this._subcollectionIterator.hasNext())return!0;this._subcollectionIterator=null}return!(this._index>=this._max)},kl.prototype.interfaces_=function(){return[Ec]},kl.prototype.getClass=function(){return kl},kl.isAtomic=function(t){return!(t instanceof jc)};var zl=function(){this._geom=null;var t=arguments[0];this._geom=t};zl.prototype.locate=function(t){return zl.locate(t,this._geom)},zl.prototype.interfaces_=function(){return[Bl]},zl.prototype.getClass=function(){return zl},zl.isPointInRing=function(t,e){return!!e.getEnvelopeInternal().intersects(t)&&sc.isPointInRing(t,e.getCoordinates())},zl.containsPointInPolygon=function(t,e){if(e.isEmpty())return!1;var n=e.getExteriorRing();if(!zl.isPointInRing(t,n))return!1;for(var r=0;r=0;n--){var r=this._edgeList.get(n),i=r.getSym();null===e&&(e=i),null!==t&&i.setNext(t),t=r}e.setNext(t)},e.prototype.computeDepths=function(){if(1===arguments.length){var t=arguments[0],e=this.findIndex(t),n=t.getDepth(Nh.LEFT),r=t.getDepth(Nh.RIGHT),i=this.computeDepths(e+1,this._edgeList.size(),n);if(this.computeDepths(0,e,i)!==r)throw new Mh("depth mismatch at "+t.getCoordinate())}else if(3===arguments.length){for(var o=arguments[0],s=arguments[1],a=arguments[2],u=o;u=0;i--){var o=this._resultAreaEdgeList.get(i),s=o.getSym();switch(null===e&&o.getEdgeRing()===t&&(e=o),r){case this._SCANNING_FOR_INCOMING:if(s.getEdgeRing()!==t)continue;n=s,r=this._LINKING_TO_OUTGOING;break;case this._LINKING_TO_OUTGOING:if(o.getEdgeRing()!==t)continue;n.setNextMin(o),r=this._SCANNING_FOR_INCOMING}}r===this._LINKING_TO_OUTGOING&&(tc.isTrue(null!==e,"found null for first outgoing dirEdge"),tc.isTrue(e.getEdgeRing()===t,"unable to link last incoming dirEdge"),n.setNextMin(e))},e.prototype.getOutgoingDegree=function(){if(0===arguments.length){for(var t=0,e=this.iterator();e.hasNext();){e.next().isInResult()&&t++}return t}if(1===arguments.length){for(var n=arguments[0],r=0,i=this.iterator();i.hasNext();){i.next().getEdgeRing()===n&&r++}return r}},e.prototype.getLabel=function(){return this._label},e.prototype.findCoveredLineEdges=function(){for(var t=Su.NONE,e=this.iterator();e.hasNext();){var n=e.next(),r=n.getSym();if(!n.isLineEdge()){if(n.isInResult()){t=Su.INTERIOR;break}if(r.isInResult()){t=Su.EXTERIOR;break}}}if(t===Su.NONE)return null;for(var i=t,o=this.iterator();o.hasNext();){var s=o.next(),a=s.getSym();s.isLineEdge()?s.getEdge().setCovered(i===Su.INTERIOR):(s.isInResult()&&(i=Su.EXTERIOR),a.isInResult()&&(i=Su.INTERIOR))}},e.prototype.computeLabelling=function(e){t.prototype.computeLabelling.call(this,e),this._label=new Rh(Su.NONE);for(var n=this.iterator();n.hasNext();)for(var r=n.next().getEdge().getLabel(),i=0;i<2;i++){var o=r.getLocation(i);o!==Su.INTERIOR&&o!==Su.BOUNDARY||this._label.setLocation(i,Su.INTERIOR)}},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(jl),Ul=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createNode=function(t){return new qh(t,new Xl)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(Xh),Yl=function t(){this._pts=null,this._orientation=null;var e=arguments[0];this._pts=e,this._orientation=t.orientation(e)};Yl.prototype.compareTo=function(t){var e=t;return Yl.compareOriented(this._pts,this._orientation,e._pts,e._orientation)},Yl.prototype.interfaces_=function(){return[xu]},Yl.prototype.getClass=function(){return Yl},Yl.orientation=function(t){return 1===Cc.increasingDirection(t)},Yl.compareOriented=function(t,e,n,r){for(var i=e?1:-1,o=r?1:-1,s=e?t.length:-1,a=r?n.length:-1,u=e?0:t.length-1,c=r?0:n.length-1;;){var h=t[u].compareTo(n[c]);if(0!==h)return h;var l=(u+=i)===s,p=(c+=o)===a;if(l&&!p)return-1;if(!l&&p)return 1;if(l&&p)return 0}};var Vl=function(){this._edges=new bc,this._ocaMap=new Gi};Vl.prototype.print=function(t){t.print("MULTILINESTRING ( ");for(var e=0;e0&&t.print(","),t.print("(");for(var r=n.getCoordinates(),i=0;i0&&t.print(","),t.print(r[i].x+" "+r[i].y);t.println(")")}t.print(") ")},Vl.prototype.addAll=function(t){for(var e=t.iterator();e.hasNext();)this.add(e.next())},Vl.prototype.findEdgeIndex=function(t){for(var e=0;e0||!e.coord.equals2D(r);i||n--;var o=new Array(n).fill(null),s=0;o[s++]=new bu(t.coord);for(var a=t.segmentIndex+1;a<=e.segmentIndex;a++)o[s++]=this.edge.pts[a];return i&&(o[s]=e.coord),new ep(o,new Rh(this.edge._label))},Zl.prototype.add=function(t,e,n){var r=new Jl(t,e,n),i=this._nodeMap.get(r);return null!==i?i:(this._nodeMap.put(r,r),r)},Zl.prototype.isIntersection=function(t){for(var e=this.iterator();e.hasNext();){if(e.next().coord.equals(t))return!0}return!1},Zl.prototype.interfaces_=function(){return[]},Zl.prototype.getClass=function(){return Zl};var Kl=function(){};Kl.prototype.getChainStartIndices=function(t){var e=0,n=new bc;n.add(new Tu(e));do{var r=this.findChainEnd(t,e);n.add(new Tu(r)),e=r}while(en?e:n},Ql.prototype.getMinX=function(t){var e=this.pts[this.startIndex[t]].x,n=this.pts[this.startIndex[t+1]].x;return ee&&(r=1),this._depth[t][n]=r}}},$l.prototype.getDelta=function(t){return this._depth[t][Nh.RIGHT]-this._depth[t][Nh.LEFT]},$l.prototype.getLocation=function(t,e){return this._depth[t][e]<=0?Su.EXTERIOR:Su.INTERIOR},$l.prototype.toString=function(){return"A: "+this._depth[0][1]+","+this._depth[0][2]+" B: "+this._depth[1][1]+","+this._depth[1][2]},$l.prototype.add=function(){if(1===arguments.length)for(var t=arguments[0],e=0;e<2;e++)for(var n=1;n<3;n++){var r=t.getLocation(e,n);r!==Su.EXTERIOR&&r!==Su.INTERIOR||(this.isNull(e,n)?this._depth[e][n]=$l.depthAtLocation(r):this._depth[e][n]+=$l.depthAtLocation(r))}else if(3===arguments.length){var i=arguments[0],o=arguments[1];arguments[2]===Su.INTERIOR&&this._depth[i][o]++}},$l.prototype.interfaces_=function(){return[]},$l.prototype.getClass=function(){return $l},$l.depthAtLocation=function(t){return t===Su.EXTERIOR?0:t===Su.INTERIOR?1:$l.NULL_VALUE},tp.NULL_VALUE.get=function(){return-1},Object.defineProperties($l,tp);var ep=function(t){function e(){if(t.call(this),this.pts=null,this._env=null,this.eiList=new Zl(this),this._name=null,this._mce=null,this._isIsolated=!0,this._depth=new $l,this._depthDelta=0,1===arguments.length){var n=arguments[0];e.call(this,n,null)}else if(2===arguments.length){var r=arguments[0],i=arguments[1];this.pts=r,this._label=i}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDepth=function(){return this._depth},e.prototype.getCollapsedEdge=function(){var t=new Array(2).fill(null);t[0]=this.pts[0],t[1]=this.pts[1];return new e(t,Rh.toLineLabel(this._label))},e.prototype.isIsolated=function(){return this._isIsolated},e.prototype.getCoordinates=function(){return this.pts},e.prototype.setIsolated=function(t){this._isIsolated=t},e.prototype.setName=function(t){this._name=t},e.prototype.equals=function(t){if(!(t instanceof e))return!1;var n=t;if(this.pts.length!==n.pts.length)return!1;for(var r=!0,i=!0,o=this.pts.length,s=0;s0?this.pts[0]:null;if(1===arguments.length){var t=arguments[0];return this.pts[t]}},e.prototype.print=function(t){t.print("edge "+this._name+": "),t.print("LINESTRING (");for(var e=0;e0&&t.print(","),t.print(this.pts[e].x+" "+this.pts[e].y);t.print(") "+this._label+" "+this._depthDelta)},e.prototype.computeIM=function(t){e.updateIM(this._label,t)},e.prototype.isCollapsed=function(){return!!this._label.isArea()&&(3===this.pts.length&&!!this.pts[0].equals(this.pts[2]))},e.prototype.isClosed=function(){return this.pts[0].equals(this.pts[this.pts.length-1])},e.prototype.getMaximumSegmentIndex=function(){return this.pts.length-1},e.prototype.getDepthDelta=function(){return this._depthDelta},e.prototype.getNumPoints=function(){return this.pts.length},e.prototype.printReverse=function(t){t.print("edge "+this._name+": ");for(var e=this.pts.length-1;e>=0;e--)t.print(this.pts[e]+" ");t.println("")},e.prototype.getMonotoneChainEdge=function(){return null===this._mce&&(this._mce=new Ql(this)),this._mce},e.prototype.getEnvelope=function(){if(null===this._env){this._env=new Yu;for(var t=0;t0&&t.append(","),t.append(this.pts[e].x+" "+this.pts[e].y);return t.append(") "+this._label+" "+this._depthDelta),t.toString()},e.prototype.isPointwiseEqual=function(t){if(this.pts.length!==t.pts.length)return!1;for(var e=0;er||this._maxyo;if(s)return!1;var a=this.intersectsToleranceSquare(t,e);return tc.isTrue(!(s&&a),"Found bad envelope test"),a},sp.prototype.initCorners=function(t){this._minx=t.x-.5,this._maxx=t.x+.5,this._miny=t.y-.5,this._maxy=t.y+.5,this._corner[0]=new bu(this._maxx,this._maxy),this._corner[1]=new bu(this._minx,this._maxy),this._corner[2]=new bu(this._minx,this._miny),this._corner[3]=new bu(this._maxx,this._miny)},sp.prototype.intersects=function(t,e){return 1===this._scaleFactor?this.intersectsScaled(t,e):(this.copyScaled(t,this._p0Scaled),this.copyScaled(e,this._p1Scaled),this.intersectsScaled(this._p0Scaled,this._p1Scaled))},sp.prototype.scale=function(t){return Math.round(t*this._scaleFactor)},sp.prototype.getCoordinate=function(){return this._originalPt},sp.prototype.copyScaled=function(t,e){e.x=this.scale(t.x),e.y=this.scale(t.y)},sp.prototype.getSafeEnvelope=function(){if(null===this._safeEnv){var t=sp.SAFE_ENV_EXPANSION_FACTOR/this._scaleFactor;this._safeEnv=new Yu(this._originalPt.x-t,this._originalPt.x+t,this._originalPt.y-t,this._originalPt.y+t)}return this._safeEnv},sp.prototype.intersectsPixelClosure=function(t,e){return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),!!this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),!!this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),!!this._li.hasIntersection())))},sp.prototype.intersectsToleranceSquare=function(t,e){var n=!1,r=!1;return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!this._li.isProper()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),!!this._li.isProper()||(this._li.hasIntersection()&&(n=!0),this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),!!this._li.isProper()||(this._li.hasIntersection()&&(r=!0),this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),!!this._li.isProper()||(!(!n||!r)||(!!t.equals(this._pt)||!!e.equals(this._pt))))))},sp.prototype.addSnappedNode=function(t,e){var n=t.getCoordinate(e),r=t.getCoordinate(e+1);return!!this.intersects(n,r)&&(t.addIntersection(this.getCoordinate(),e),!0)},sp.prototype.interfaces_=function(){return[]},sp.prototype.getClass=function(){return sp},ap.SAFE_ENV_EXPANSION_FACTOR.get=function(){return.75},Object.defineProperties(sp,ap);var up=function(){this.tempEnv1=new Yu,this.selectedSegment=new gl};up.prototype.select=function(){if(1===arguments.length);else if(2===arguments.length){var t=arguments[0],e=arguments[1];t.getLineSegment(e,this.selectedSegment),this.select(this.selectedSegment)}},up.prototype.interfaces_=function(){return[]},up.prototype.getClass=function(){return up};var cp=function(){this._index=null;var t=arguments[0];this._index=t},hp={HotPixelSnapAction:{configurable:!0}};cp.prototype.snap=function(){if(1===arguments.length){var t=arguments[0];return this.snap(t,null,-1)}if(3===arguments.length){var e=arguments[0],n=arguments[1],r=arguments[2],i=e.getSafeEnvelope(),o=new lp(e,n,r);return this._index.query(i,{interfaces_:function(){return[Jh]},visitItem:function(t){t.select(i,o)}}),o.isNodeAdded()}},cp.prototype.interfaces_=function(){return[]},cp.prototype.getClass=function(){return cp},hp.HotPixelSnapAction.get=function(){return lp},Object.defineProperties(cp,hp);var lp=function(t){function e(){t.call(this),this._hotPixel=null,this._parentEdge=null,this._hotPixelVertexIndex=null,this._isNodeAdded=!1;var e=arguments[0],n=arguments[1],r=arguments[2];this._hotPixel=e,this._parentEdge=n,this._hotPixelVertexIndex=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isNodeAdded=function(){return this._isNodeAdded},e.prototype.select=function(){if(2!==arguments.length)return t.prototype.select.apply(this,arguments);var e=arguments[0],n=arguments[1],r=e.getContext();if(null!==this._parentEdge&&r===this._parentEdge&&n===this._hotPixelVertexIndex)return null;this._isNodeAdded=this._hotPixel.addSnappedNode(r,n)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(up),pp=function(){this._li=null,this._interiorIntersections=null;var t=arguments[0];this._li=t,this._interiorIntersections=new bc};pp.prototype.processIntersections=function(t,e,n,r){if(t===n&&e===r)return null;var i=t.getCoordinates()[e],o=t.getCoordinates()[e+1],s=n.getCoordinates()[r],a=n.getCoordinates()[r+1];if(this._li.computeIntersection(i,o,s,a),this._li.hasIntersection()&&this._li.isInteriorIntersection()){for(var u=0;u=0;e--){try{t.bufferReducedPrecision(e)}catch(e){if(!(e instanceof Mh))throw e;t._saveException=e}if(null!==t._resultGeometry)return null}throw this._saveException}if(1===arguments.length){var n=arguments[0],r=gp.precisionScaleFactor(this._argGeom,this._distance,n),i=new fh(r);this.bufferFixedPrecision(i)}},gp.prototype.computeGeometry=function(){if(this.bufferOriginalPrecision(),null!==this._resultGeometry)return null;var t=this._argGeom.getFactory().getPrecisionModel();t.getType()===fh.FIXED?this.bufferFixedPrecision(t):this.bufferReducedPrecision()},gp.prototype.setQuadrantSegments=function(t){this._bufParams.setQuadrantSegments(t)},gp.prototype.bufferOriginalPrecision=function(){try{var t=new np(this._bufParams);this._resultGeometry=t.buffer(this._argGeom,this._distance)}catch(t){if(!(t instanceof Qu))throw t;this._saveException=t}},gp.prototype.getResultGeometry=function(t){return this._distance=t,this.computeGeometry(),this._resultGeometry},gp.prototype.setEndCapStyle=function(t){this._bufParams.setEndCapStyle(t)},gp.prototype.interfaces_=function(){return[]},gp.prototype.getClass=function(){return gp},gp.bufferOp=function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];return new gp(t).getResultGeometry(e)}if(3===arguments.length){if(Number.isInteger(arguments[2])&&arguments[0]instanceof cc&&"number"==typeof arguments[1]){var n=arguments[0],r=arguments[1],i=arguments[2],o=new gp(n);o.setQuadrantSegments(i);return o.getResultGeometry(r)}if(arguments[2]instanceof bl&&arguments[0]instanceof cc&&"number"==typeof arguments[1]){var s=arguments[0],a=arguments[1],u=arguments[2];return new gp(s,u).getResultGeometry(a)}}else if(4===arguments.length){var c=arguments[0],h=arguments[1],l=arguments[2],p=arguments[3],f=new gp(c);f.setQuadrantSegments(l),f.setEndCapStyle(p);return f.getResultGeometry(h)}},gp.precisionScaleFactor=function(t,e,n){var r=t.getEnvelopeInternal(),i=Pu.max(Math.abs(r.getMaxX()),Math.abs(r.getMaxY()),Math.abs(r.getMinX()),Math.abs(r.getMinY()))+2*(e>0?e:0),o=n-Math.trunc(Math.log(i)/Math.log(10)+1);return Math.pow(10,o)},dp.CAP_ROUND.get=function(){return bl.CAP_ROUND},dp.CAP_BUTT.get=function(){return bl.CAP_FLAT},dp.CAP_FLAT.get=function(){return bl.CAP_FLAT},dp.CAP_SQUARE.get=function(){return bl.CAP_SQUARE},dp.MAX_PRECISION_DIGITS.get=function(){return 12},Object.defineProperties(gp,dp);var yp=function(){this._pt=[new bu,new bu],this._distance=mu.NaN,this._isNull=!0};yp.prototype.getCoordinates=function(){return this._pt},yp.prototype.getCoordinate=function(t){return this._pt[t]},yp.prototype.setMinimum=function(){if(1===arguments.length){var t=arguments[0];this.setMinimum(t._pt[0],t._pt[1])}else if(2===arguments.length){var e=arguments[0],n=arguments[1];if(this._isNull)return this.initialize(e,n),null;var r=e.distance(n);rthis._distance&&this.initialize(e,n,r)}},yp.prototype.interfaces_=function(){return[]},yp.prototype.getClass=function(){return yp};var _p=function(){};_p.prototype.interfaces_=function(){return[]},_p.prototype.getClass=function(){return _p},_p.computeDistance=function(){if(arguments[2]instanceof yp&&arguments[0]instanceof Jc&&arguments[1]instanceof bu)for(var t=arguments[0],e=arguments[1],n=arguments[2],r=t.getCoordinates(),i=new gl,o=0;o0||this._isIn?Su.INTERIOR:Su.EXTERIOR)},Ip.prototype.interfaces_=function(){return[]},Ip.prototype.getClass=function(){return Ip};var Np=function t(){if(this._component=null,this._segIndex=null,this._pt=null,2===arguments.length){var e=arguments[0],n=arguments[1];t.call(this,e,t.INSIDE_AREA,n)}else if(3===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2];this._component=r,this._segIndex=i,this._pt=o}},Cp={INSIDE_AREA:{configurable:!0}};Np.prototype.isInsideArea=function(){return this._segIndex===Np.INSIDE_AREA},Np.prototype.getCoordinate=function(){return this._pt},Np.prototype.getGeometryComponent=function(){return this._component},Np.prototype.getSegmentIndex=function(){return this._segIndex},Np.prototype.interfaces_=function(){return[]},Np.prototype.getClass=function(){return Np},Cp.INSIDE_AREA.get=function(){return-1},Object.defineProperties(Np,Cp);var Sp=function(t){this._pts=t||null};Sp.prototype.filter=function(t){t instanceof Kc&&this._pts.add(t)},Sp.prototype.interfaces_=function(){return[kc]},Sp.prototype.getClass=function(){return Sp},Sp.getPoints=function(){if(1===arguments.length){var t=arguments[0];return t instanceof Kc?$h.singletonList(t):Sp.getPoints(t,new bc)}if(2===arguments.length){var e=arguments[0],n=arguments[1];return e instanceof Kc?n.add(e):e instanceof jc&&e.apply(new Sp(n)),n}};var Mp=function(){this._locations=null;var t=arguments[0];this._locations=t};Mp.prototype.filter=function(t){(t instanceof Kc||t instanceof Jc||t instanceof $c)&&this._locations.add(new Np(t,0,t.getCoordinate()))},Mp.prototype.interfaces_=function(){return[kc]},Mp.prototype.getClass=function(){return Mp},Mp.getLocations=function(t){var e=new bc;return t.apply(new Mp(e)),e};var Lp=function(){if(this._geom=null,this._terminateDistance=0,this._ptLocator=new Ip,this._minDistanceLocation=null,this._minDistance=mu.MAX_VALUE,2===arguments.length){var t=arguments[0],e=arguments[1];this._geom=[t,e],this._terminateDistance=0}else if(3===arguments.length){var n=arguments[0],r=arguments[1],i=arguments[2];this._geom=new Array(2).fill(null),this._geom[0]=n,this._geom[1]=r,this._terminateDistance=i}};Lp.prototype.computeContainmentDistance=function(){if(0===arguments.length){var t=new Array(2).fill(null);if(this.computeContainmentDistance(0,t),this._minDistance<=this._terminateDistance)return null;this.computeContainmentDistance(1,t)}else if(2===arguments.length){var e=arguments[0],n=arguments[1],r=1-e,i=wp.getPolygons(this._geom[e]);if(i.size()>0){var o=Mp.getLocations(this._geom[r]);if(this.computeContainmentDistance(o,i,n),this._minDistance<=this._terminateDistance)return this._minDistanceLocation[r]=n[0],this._minDistanceLocation[e]=n[1],null}}else if(3===arguments.length)if(arguments[2]instanceof Array&&Lu(arguments[0],wc)&&Lu(arguments[1],wc)){for(var s=arguments[0],a=arguments[1],u=arguments[2],c=0;cthis._minDistance)return null;for(var r=t.getCoordinates(),i=e.getCoordinate(),o=0;othis._minDistance)return null;for(var l=u.getCoordinates(),p=c.getCoordinates(),f=0;fthis._distance&&this.initialize(e,n,r)}},Pp.prototype.interfaces_=function(){return[]},Pp.prototype.getClass=function(){return Pp};var Op=function(){};Op.prototype.interfaces_=function(){return[]},Op.prototype.getClass=function(){return Op},Op.computeDistance=function(){if(arguments[2]instanceof Pp&&arguments[0]instanceof Jc&&arguments[1]instanceof bu)for(var t=arguments[0],e=arguments[1],n=arguments[2],r=new gl,i=t.getCoordinates(),o=0;o1||t<=0)throw new _u("Fraction is not in range (0.0 - 1.0]");this._densifyFrac=t},Rp.prototype.compute=function(t,e){this.computeOrientedDistance(t,e,this._ptDist),this.computeOrientedDistance(e,t,this._ptDist)},Rp.prototype.distance=function(){return this.compute(this._g0,this._g1),this._ptDist.getDistance()},Rp.prototype.computeOrientedDistance=function(t,e,n){var r=new Ap(e);if(t.apply(r),n.setMaximum(r.getMaxPointDistance()),this._densifyFrac>0){var i=new Dp(e,this._densifyFrac);t.apply(i),n.setMaximum(i.getMaxPointDistance())}},Rp.prototype.orientedDistance=function(){return this.computeOrientedDistance(this._g0,this._g1,this._ptDist),this._ptDist.getDistance()},Rp.prototype.interfaces_=function(){return[]},Rp.prototype.getClass=function(){return Rp},Rp.distance=function(){if(2===arguments.length){var t=arguments[0],e=arguments[1];return new Rp(t,e).distance()}if(3===arguments.length){var n=arguments[0],r=arguments[1],i=arguments[2],o=new Rp(n,r);return o.setDensifyFraction(i),o.distance()}},Tp.MaxPointDistanceFilter.get=function(){return Ap},Tp.MaxDensifiedByFractionDistanceFilter.get=function(){return Dp},Object.defineProperties(Rp,Tp);var Ap=function(){this._maxPtDist=new Pp,this._minPtDist=new Pp,this._euclideanDist=new Op,this._geom=null;var t=arguments[0];this._geom=t};Ap.prototype.filter=function(t){this._minPtDist.initialize(),Op.computeDistance(this._geom,t,this._minPtDist),this._maxPtDist.setMaximum(this._minPtDist)},Ap.prototype.getMaxPointDistance=function(){return this._maxPtDist},Ap.prototype.interfaces_=function(){return[pc]},Ap.prototype.getClass=function(){return Ap};var Dp=function(){this._maxPtDist=new Pp,this._minPtDist=new Pp,this._geom=null,this._numSubSegs=0;var t=arguments[0],e=arguments[1];this._geom=t,this._numSubSegs=Math.trunc(Math.round(1/e))};Dp.prototype.filter=function(t,e){if(0===e)return null;for(var n=t.getCoordinate(e-1),r=t.getCoordinate(e),i=(r.x-n.x)/this._numSubSegs,o=(r.y-n.y)/this._numSubSegs,s=0;sn){this._isValid=!1;var i=r.getCoordinates();this._errorLocation=i[1],this._errorIndicator=t.getFactory().createLineString(i),this._errMsg="Distance between buffer curve and input is too large ("+this._maxDistanceFound+" at "+Ku.toLineString(i[0],i[1])+")"}},Fp.prototype.isValid=function(){var t=Math.abs(this._bufDistance),e=Fp.MAX_DISTANCE_DIFF_FRAC*t;return this._minValidDistance=t-e,this._maxValidDistance=t+e,!(!this._input.isEmpty()&&!this._result.isEmpty())||(this._bufDistance>0?this.checkPositiveValid():this.checkNegativeValid(),Fp.VERBOSE&&Xu.out.println("Min Dist= "+this._minDistanceFound+" err= "+(1-this._minDistanceFound/this._bufDistance)+" Max Dist= "+this._maxDistanceFound+" err= "+(this._maxDistanceFound/this._bufDistance-1)),this._isValid)},Fp.prototype.checkNegativeValid=function(){if(!(this._input instanceof $c||this._input instanceof nh||this._input instanceof jc))return null;var t=this.getPolygonLines(this._input);if(this.checkMinimumDistance(t,this._result,this._minValidDistance),!this._isValid)return null;this.checkMaximumDistance(t,this._result,this._maxValidDistance)},Fp.prototype.getErrorIndicator=function(){return this._errorIndicator},Fp.prototype.checkMinimumDistance=function(t,e,n){var r=new Lp(t,e,n);if(this._minDistanceFound=r.distance(),this._minDistanceFound0&&t>e&&(this._isValid=!1,this._errorMsg="Area of positive buffer is smaller than input",this._errorIndicator=this._result),this._distance<0&&t=2?null:this._distance>0?null:(this._result.isEmpty()||(this._isValid=!1,this._errorMsg="Result is non-empty",this._errorIndicator=this._result),void this.report("ExpectedEmpty"))},Gp.prototype.report=function(t){if(!Gp.VERBOSE)return null;Xu.out.println("Check "+t+": "+(this._isValid?"passed":"FAILED"))},Gp.prototype.getErrorMessage=function(){return this._errorMsg},Gp.prototype.interfaces_=function(){return[]},Gp.prototype.getClass=function(){return Gp},Gp.isValidMsg=function(t,e,n){var r=new Gp(t,e,n);return r.isValid()?null:r.getErrorMessage()},Gp.isValid=function(t,e,n){return!!new Gp(t,e,n).isValid()},Bp.VERBOSE.get=function(){return!1},Bp.MAX_ENV_DIFF_FRAC.get=function(){return.012},Object.defineProperties(Gp,Bp);var kp=function(){this._pts=null,this._data=null;var t=arguments[0],e=arguments[1];this._pts=t,this._data=e};kp.prototype.getCoordinates=function(){return this._pts},kp.prototype.size=function(){return this._pts.length},kp.prototype.getCoordinate=function(t){return this._pts[t]},kp.prototype.isClosed=function(){return this._pts[0].equals(this._pts[this._pts.length-1])},kp.prototype.getSegmentOctant=function(t){return t===this._pts.length-1?-1:hl.octant(this.getCoordinate(t),this.getCoordinate(t+1))},kp.prototype.setData=function(t){this._data=t},kp.prototype.getData=function(){return this._data},kp.prototype.toString=function(){return Ku.toLineString(new uh(this._pts))},kp.prototype.interfaces_=function(){return[ll]},kp.prototype.getClass=function(){return kp};var zp=function(){this._findAllIntersections=!1,this._isCheckEndSegmentsOnly=!1,this._li=null,this._interiorIntersection=null,this._intSegments=null,this._intersections=new bc,this._intersectionCount=0,this._keepIntersections=!0;var t=arguments[0];this._li=t,this._interiorIntersection=null};zp.prototype.getInteriorIntersection=function(){return this._interiorIntersection},zp.prototype.setCheckEndSegmentsOnly=function(t){this._isCheckEndSegmentsOnly=t},zp.prototype.getIntersectionSegments=function(){return this._intSegments},zp.prototype.count=function(){return this._intersectionCount},zp.prototype.getIntersections=function(){return this._intersections},zp.prototype.setFindAllIntersections=function(t){this._findAllIntersections=t},zp.prototype.setKeepIntersections=function(t){this._keepIntersections=t},zp.prototype.processIntersections=function(t,e,n,r){if(!this._findAllIntersections&&this.hasIntersection())return null;if(t===n&&e===r)return null;if(this._isCheckEndSegmentsOnly){if(!(this.isEndSegment(t,e)||this.isEndSegment(n,r)))return null}var i=t.getCoordinates()[e],o=t.getCoordinates()[e+1],s=n.getCoordinates()[r],a=n.getCoordinates()[r+1];this._li.computeIntersection(i,o,s,a),this._li.hasIntersection()&&this._li.isInteriorIntersection()&&(this._intSegments=new Array(4).fill(null),this._intSegments[0]=i,this._intSegments[1]=o,this._intSegments[2]=s,this._intSegments[3]=a,this._interiorIntersection=this._li.getIntersection(0),this._keepIntersections&&this._intersections.add(this._interiorIntersection),this._intersectionCount++)},zp.prototype.isEndSegment=function(t,e){return 0===e||e>=t.size()-2},zp.prototype.hasIntersection=function(){return null!==this._interiorIntersection},zp.prototype.isDone=function(){return!this._findAllIntersections&&null!==this._interiorIntersection},zp.prototype.interfaces_=function(){return[Hl]},zp.prototype.getClass=function(){return zp},zp.createAllIntersectionsFinder=function(t){var e=new zp(t);return e.setFindAllIntersections(!0),e},zp.createAnyIntersectionFinder=function(t){return new zp(t)},zp.createIntersectionCounter=function(t){var e=new zp(t);return e.setFindAllIntersections(!0),e.setKeepIntersections(!1),e};var jp=function(){this._li=new rc,this._segStrings=null,this._findAllIntersections=!1,this._segInt=null,this._isValid=!0;var t=arguments[0];this._segStrings=t};jp.prototype.execute=function(){if(null!==this._segInt)return null;this.checkInteriorIntersections()},jp.prototype.getIntersections=function(){return this._segInt.getIntersections()},jp.prototype.isValid=function(){return this.execute(),this._isValid},jp.prototype.setFindAllIntersections=function(t){this._findAllIntersections=t},jp.prototype.checkInteriorIntersections=function(){this._isValid=!0,this._segInt=new zp(this._li),this._segInt.setFindAllIntersections(this._findAllIntersections);var t=new El;if(t.setSegmentIntersector(this._segInt),t.computeNodes(this._segStrings),this._segInt.hasIntersection())return this._isValid=!1,null},jp.prototype.checkValid=function(){if(this.execute(),!this._isValid)throw new Mh(this.getErrorMessage(),this._segInt.getInteriorIntersection())},jp.prototype.getErrorMessage=function(){if(this._isValid)return"no intersections found";var t=this._segInt.getIntersectionSegments();return"found non-noded intersection between "+Ku.toLineString(t[0],t[1])+" and "+Ku.toLineString(t[2],t[3])},jp.prototype.interfaces_=function(){return[]},jp.prototype.getClass=function(){return jp},jp.computeIntersections=function(t){var e=new jp(t);return e.setFindAllIntersections(!0),e.isValid(),e.getIntersections()};var Xp=function t(){this._nv=null;var e=arguments[0];this._nv=new jp(t.toSegmentStrings(e))};Xp.prototype.checkValid=function(){this._nv.checkValid()},Xp.prototype.interfaces_=function(){return[]},Xp.prototype.getClass=function(){return Xp},Xp.toSegmentStrings=function(t){for(var e=new bc,n=t.iterator();n.hasNext();){var r=n.next();e.add(new kp(r.getCoordinates(),r))}return e},Xp.checkValid=function(t){new Xp(t).checkValid()};var Up=function(t){this._mapOp=t};Up.prototype.map=function(t){for(var e=new bc,n=0;n0&&r<4&&!this._preserveType?this._factory.createLineString(n):this._factory.createLinearRing(n)},Hp.prototype.interfaces_=function(){return[]},Hp.prototype.getClass=function(){return Hp};var Wp=function t(){if(this._snapTolerance=0,this._srcPts=null,this._seg=new gl,this._allowSnappingToSourceVertices=!1,this._isClosed=!1,arguments[0]instanceof Jc&&"number"==typeof arguments[1]){var e=arguments[0],n=arguments[1];t.call(this,e.getCoordinates(),n)}else if(arguments[0]instanceof Array&&"number"==typeof arguments[1]){var r=arguments[0],i=arguments[1];this._srcPts=r,this._isClosed=t.isClosed(r),this._snapTolerance=i}};Wp.prototype.snapVertices=function(t,e){for(var n=this._isClosed?t.size()-1:t.size(),r=0;r=0&&t.add(o+1,new bu(i),!1)}},Wp.prototype.findSegmentIndexToSnap=function(t,e){for(var n=mu.MAX_VALUE,r=-1,i=0;ie&&(e=r)}return e}if(2===arguments.length){var i=arguments[0],o=arguments[1];return Math.min(Jp.computeOverlaySnapTolerance(i),Jp.computeOverlaySnapTolerance(o))}},Jp.computeSizeBasedSnapTolerance=function(t){var e=t.getEnvelopeInternal();return Math.min(e.getHeight(),e.getWidth())*Jp.SNAP_PRECISION_FACTOR},Jp.snapToSelf=function(t,e,n){return new Jp(t).snapToSelf(e,n)},Zp.SNAP_PRECISION_FACTOR.get=function(){return 1e-9},Object.defineProperties(Jp,Zp);var Kp=function(t){function e(e,n,r){t.call(this),this._snapTolerance=e||null,this._snapPts=n||null,this._isSelfSnap=void 0!==r&&r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.snapLine=function(t,e){var n=new Wp(t,this._snapTolerance);return n.setAllowSnappingToSourceVertices(this._isSelfSnap),n.snapTo(e)},e.prototype.transformCoordinates=function(t,e){var n=t.toCoordinateArray(),r=this.snapLine(n,this._snapPts);return this._factory.getCoordinateSequenceFactory().create(r)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(Hp),Qp=function(){this._isFirst=!0,this._commonMantissaBitsCount=53,this._commonBits=0,this._commonSignExp=null};Qp.prototype.getCommon=function(){return mu.longBitsToDouble(this._commonBits)},Qp.prototype.add=function(t){var e=mu.doubleToLongBits(t);if(this._isFirst)return this._commonBits=e,this._commonSignExp=Qp.signExpBits(this._commonBits),this._isFirst=!1,null;if(Qp.signExpBits(e)!==this._commonSignExp)return this._commonBits=0,null;this._commonMantissaBitsCount=Qp.numCommonMostSigMantissaBits(this._commonBits,e),this._commonBits=Qp.zeroLowerBits(this._commonBits,64-(12+this._commonMantissaBitsCount))},Qp.prototype.toString=function(){if(1===arguments.length){var t=arguments[0],e=mu.longBitsToDouble(t),n="0000000000000000000000000000000000000000000000000000000000000000"+mu.toBinaryString(t),r=n.substring(n.length-64);return r.substring(0,1)+" "+r.substring(1,12)+"(exp) "+r.substring(12)+" [ "+e+" ]"}},Qp.prototype.interfaces_=function(){return[]},Qp.prototype.getClass=function(){return Qp},Qp.getBit=function(t,e){return 0!=(t&1<>52},Qp.zeroLowerBits=function(t,e){return t&~((1<=0;r--){if(Qp.getBit(t,r)!==Qp.getBit(e,r))return n;n++}return 52};var $p=function(){this._commonCoord=null,this._ccFilter=new ef},tf={CommonCoordinateFilter:{configurable:!0},Translater:{configurable:!0}};$p.prototype.addCommonBits=function(t){var e=new nf(this._commonCoord);t.apply(e),t.geometryChanged()},$p.prototype.removeCommonBits=function(t){if(0===this._commonCoord.x&&0===this._commonCoord.y)return t;var e=new bu(this._commonCoord);e.x=-e.x,e.y=-e.y;var n=new nf(e);return t.apply(n),t.geometryChanged(),t},$p.prototype.getCommonCoordinate=function(){return this._commonCoord},$p.prototype.add=function(t){t.apply(this._ccFilter),this._commonCoord=this._ccFilter.getCommonCoordinate()},$p.prototype.interfaces_=function(){return[]},$p.prototype.getClass=function(){return $p},tf.CommonCoordinateFilter.get=function(){return ef},tf.Translater.get=function(){return nf},Object.defineProperties($p,tf);var ef=function(){this._commonBitsX=new Qp,this._commonBitsY=new Qp};ef.prototype.filter=function(t){this._commonBitsX.add(t.x),this._commonBitsY.add(t.y)},ef.prototype.getCommonCoordinate=function(){return new bu(this._commonBitsX.getCommon(),this._commonBitsY.getCommon())},ef.prototype.interfaces_=function(){return[pc]},ef.prototype.getClass=function(){return ef};var nf=function(){this.trans=null;var t=arguments[0];this.trans=t};nf.prototype.filter=function(t,e){var n=t.getOrdinate(e,0)+this.trans.x,r=t.getOrdinate(e,1)+this.trans.y;t.setOrdinate(e,0,n),t.setOrdinate(e,1,r)},nf.prototype.isDone=function(){return!1},nf.prototype.isGeometryChanged=function(){return!0},nf.prototype.interfaces_=function(){return[zc]},nf.prototype.getClass=function(){return nf};var rf=function(t,e){this._geom=new Array(2).fill(null),this._snapTolerance=null,this._cbr=null,this._geom[0]=t,this._geom[1]=e,this.computeSnapTolerance()};rf.prototype.selfSnap=function(t){return new Jp(t).snapTo(t,this._snapTolerance)},rf.prototype.removeCommonBits=function(t){this._cbr=new $p,this._cbr.add(t[0]),this._cbr.add(t[1]);var e=new Array(2).fill(null);return e[0]=this._cbr.removeCommonBits(t[0].copy()),e[1]=this._cbr.removeCommonBits(t[1].copy()),e},rf.prototype.prepareResult=function(t){return this._cbr.addCommonBits(t),t},rf.prototype.getResultGeometry=function(t){var e=this.snap(this._geom),n=Cf.overlayOp(e[0],e[1],t);return this.prepareResult(n)},rf.prototype.checkValid=function(t){t.isValid()||Xu.out.println("Snapped geometry is invalid")},rf.prototype.computeSnapTolerance=function(){this._snapTolerance=Jp.computeOverlaySnapTolerance(this._geom[0],this._geom[1])},rf.prototype.snap=function(t){var e=this.removeCommonBits(t);return Jp.snap(e[0],e[1],this._snapTolerance)},rf.prototype.interfaces_=function(){return[]},rf.prototype.getClass=function(){return rf},rf.overlayOp=function(t,e,n){return new rf(t,e).getResultGeometry(n)},rf.union=function(t,e){return rf.overlayOp(t,e,Cf.UNION)},rf.intersection=function(t,e){return rf.overlayOp(t,e,Cf.INTERSECTION)},rf.symDifference=function(t,e){return rf.overlayOp(t,e,Cf.SYMDIFFERENCE)},rf.difference=function(t,e){return rf.overlayOp(t,e,Cf.DIFFERENCE)};var of=function(t,e){this._geom=new Array(2).fill(null),this._geom[0]=t,this._geom[1]=e};of.prototype.getResultGeometry=function(t){var e=null,n=!1,r=null;try{e=Cf.overlayOp(this._geom[0],this._geom[1],t);n=!0}catch(t){if(!(t instanceof Qu))throw t;r=t}if(!n)try{e=rf.overlayOp(this._geom[0],this._geom[1],t)}catch(t){throw t instanceof Qu?r:t}return e},of.prototype.interfaces_=function(){return[]},of.prototype.getClass=function(){return of},of.overlayOp=function(t,e,n){return new of(t,e).getResultGeometry(n)},of.union=function(t,e){return of.overlayOp(t,e,Cf.UNION)},of.intersection=function(t,e){return of.overlayOp(t,e,Cf.INTERSECTION)},of.symDifference=function(t,e){return of.overlayOp(t,e,Cf.SYMDIFFERENCE)},of.difference=function(t,e){return of.overlayOp(t,e,Cf.DIFFERENCE)};var sf=function(){this.mce=null,this.chainIndex=null;var t=arguments[0],e=arguments[1];this.mce=t,this.chainIndex=e};sf.prototype.computeIntersections=function(t,e){this.mce.computeIntersectsForChain(this.chainIndex,t.mce,t.chainIndex,e)},sf.prototype.interfaces_=function(){return[]},sf.prototype.getClass=function(){return sf};var af=function t(){if(this._label=null,this._xValue=null,this._eventType=null,this._insertEvent=null,this._deleteEventIndex=null,this._obj=null,2===arguments.length){var e=arguments[0],n=arguments[1];this._eventType=t.DELETE,this._xValue=e,this._insertEvent=n}else if(3===arguments.length){var r=arguments[0],i=arguments[1],o=arguments[2];this._eventType=t.INSERT,this._label=r,this._xValue=i,this._obj=o}},uf={INSERT:{configurable:!0},DELETE:{configurable:!0}};af.prototype.isDelete=function(){return this._eventType===af.DELETE},af.prototype.setDeleteEventIndex=function(t){this._deleteEventIndex=t},af.prototype.getObject=function(){return this._obj},af.prototype.compareTo=function(t){var e=t;return this._xValuee._xValue?1:this._eventTypee._eventType?1:0},af.prototype.getInsertEvent=function(){return this._insertEvent},af.prototype.isInsert=function(){return this._eventType===af.INSERT},af.prototype.isSameLabel=function(t){return null!==this._label&&this._label===t._label},af.prototype.getDeleteEventIndex=function(){return this._deleteEventIndex},af.prototype.interfaces_=function(){return[xu]},af.prototype.getClass=function(){return af},uf.INSERT.get=function(){return 1},uf.DELETE.get=function(){return 2},Object.defineProperties(af,uf);var cf=function(){};cf.prototype.interfaces_=function(){return[]},cf.prototype.getClass=function(){return cf};var hf=function(){this._hasIntersection=!1,this._hasProper=!1,this._hasProperInterior=!1,this._properIntersectionPoint=null,this._li=null,this._includeProper=null,this._recordIsolated=null,this._isSelfIntersection=null,this._numIntersections=0,this.numTests=0,this._bdyNodes=null,this._isDone=!1,this._isDoneWhenProperInt=!1;var t=arguments[0],e=arguments[1],n=arguments[2];this._li=t,this._includeProper=e,this._recordIsolated=n};hf.prototype.isTrivialIntersection=function(t,e,n,r){if(t===n&&1===this._li.getIntersectionNum()){if(hf.isAdjacentSegments(e,r))return!0;if(t.isClosed()){var i=t.getNumPoints()-1;if(0===e&&r===i||0===r&&e===i)return!0}}return!1},hf.prototype.getProperIntersectionPoint=function(){return this._properIntersectionPoint},hf.prototype.setIsDoneIfProperInt=function(t){this._isDoneWhenProperInt=t},hf.prototype.hasProperInteriorIntersection=function(){return this._hasProperInterior},hf.prototype.isBoundaryPointInternal=function(t,e){for(var n=e.iterator();n.hasNext();){var r=n.next().getCoordinate();if(t.isIntersection(r))return!0}return!1},hf.prototype.hasProperIntersection=function(){return this._hasProper},hf.prototype.hasIntersection=function(){return this._hasIntersection},hf.prototype.isDone=function(){return this._isDone},hf.prototype.isBoundaryPoint=function(t,e){return null!==e&&(!!this.isBoundaryPointInternal(t,e[0])||!!this.isBoundaryPointInternal(t,e[1]))},hf.prototype.setBoundaryNodes=function(t,e){this._bdyNodes=new Array(2).fill(null),this._bdyNodes[0]=t,this._bdyNodes[1]=e},hf.prototype.addIntersections=function(t,e,n,r){if(t===n&&e===r)return null;this.numTests++;var i=t.getCoordinates()[e],o=t.getCoordinates()[e+1],s=n.getCoordinates()[r],a=n.getCoordinates()[r+1];this._li.computeIntersection(i,o,s,a),this._li.hasIntersection()&&(this._recordIsolated&&(t.setIsolated(!1),n.setIsolated(!1)),this._numIntersections++,this.isTrivialIntersection(t,e,n,r)||(this._hasIntersection=!0,!this._includeProper&&this._li.isProper()||(t.addIntersections(this._li,e,0),n.addIntersections(this._li,r,1)),this._li.isProper()&&(this._properIntersectionPoint=this._li.getIntersection(0).copy(),this._hasProper=!0,this._isDoneWhenProperInt&&(this._isDone=!0),this.isBoundaryPoint(this._li,this._bdyNodes)||(this._hasProperInterior=!0))))},hf.prototype.interfaces_=function(){return[]},hf.prototype.getClass=function(){return hf},hf.isAdjacentSegments=function(t,e){return 1===Math.abs(t-e)};var lf=function(t){function e(){t.call(this),this.events=new bc,this.nOverlaps=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.prepareEvents=function(){$h.sort(this.events);for(var t=0;te||this._maxo?1:0},gf.prototype.interfaces_=function(){return[wu]},gf.prototype.getClass=function(){return gf};var df=function(t){function e(){t.call(this),this._item=null;var e=arguments[0],n=arguments[1],r=arguments[2];this._min=e,this._max=n,this._item=r}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.query=function(t,e,n){if(!this.intersects(t,e))return null;n.visitItem(this._item)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(pf),yf=function(t){function e(){t.call(this),this._node1=null,this._node2=null;var e=arguments[0],n=arguments[1];this._node1=e,this._node2=n,this.buildExtent(this._node1,this._node2)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.buildExtent=function(t,e){this._min=Math.min(t._min,e._min),this._max=Math.max(t._max,e._max)},e.prototype.query=function(t,e,n){if(!this.intersects(t,e))return null;null!==this._node1&&this._node1.query(t,e,n),null!==this._node2&&this._node2.query(t,e,n)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(pf),_f=function(){this._leaves=new bc,this._root=null,this._level=0};_f.prototype.buildTree=function(){$h.sort(this._leaves,new pf.NodeComparator);for(var t=this._leaves,e=null,n=new bc;;){if(this.buildLevel(t,n),1===n.size())return n.get(0);e=t,t=n,n=e}},_f.prototype.insert=function(t,e,n){if(null!==this._root)throw new Error("Index cannot be added to once it has been queried");this._leaves.add(new df(t,e,n))},_f.prototype.query=function(t,e,n){this.init(),this._root.query(t,e,n)},_f.prototype.buildRoot=function(){if(null!==this._root)return null;this._root=this.buildTree()},_f.prototype.printNode=function(t){Xu.out.println(Ku.toLineString(new bu(t._min,this._level),new bu(t._max,this._level)))},_f.prototype.init=function(){if(null!==this._root)return null;this.buildRoot()},_f.prototype.buildLevel=function(t,e){this._level++,e.clear();for(var n=0;n=2,"found LineString with single point"),this.insertBoundaryPoint(this._argIndex,e[0]),this.insertBoundaryPoint(this._argIndex,e[e.length-1])},e.prototype.getInvalidPoint=function(){return this._invalidPoint},e.prototype.getBoundaryPoints=function(){for(var t=this.getBoundaryNodes(),e=new Array(t.size()).fill(null),n=0,r=t.iterator();r.hasNext();){var i=r.next();e[n++]=i.getCoordinate().copy()}return e},e.prototype.getBoundaryNodes=function(){return null===this._boundaryNodes&&(this._boundaryNodes=this._nodes.getBoundaryNodes(this._argIndex)),this._boundaryNodes},e.prototype.addSelfIntersectionNode=function(t,e,n){if(this.isBoundaryNode(t,e))return null;n===Su.BOUNDARY&&this._useBoundaryDeterminationRule?this.insertBoundaryPoint(t,e):this.insertPoint(t,e,n)},e.prototype.addPolygonRing=function(t,e,n){if(t.isEmpty())return null;var r=Cc.removeRepeatedPoints(t.getCoordinates());if(r.length<4)return this._hasTooFewPoints=!0,this._invalidPoint=r[0],null;var i=e,o=n;sc.isCCW(r)&&(i=n,o=e);var s=new ep(r,new Rh(this._argIndex,Su.BOUNDARY,i,o));this._lineEdgeMap.put(t,s),this.insertEdge(s),this.insertPoint(this._argIndex,r[0],Su.BOUNDARY)},e.prototype.insertPoint=function(t,e,n){var r=this._nodes.addNode(e),i=r.getLabel();null===i?r._label=new Rh(t,n):i.setLocation(t,n)},e.prototype.createEdgeSetIntersector=function(){return new lf},e.prototype.addSelfIntersectionNodes=function(t){for(var e=this._edges.iterator();e.hasNext();)for(var n=e.next(),r=n.getLabel().getLocation(t),i=n.eiList.iterator();i.hasNext();){var o=i.next();this.addSelfIntersectionNode(t,o.coord,r)}},e.prototype.add=function(){if(1!==arguments.length)return t.prototype.add.apply(this,arguments);var e=arguments[0];if(e.isEmpty())return null;if(e instanceof nh&&(this._useBoundaryDeterminationRule=!1),e instanceof $c)this.addPolygon(e);else if(e instanceof Jc)this.addLineString(e);else if(e instanceof Kc)this.addPoint(e);else if(e instanceof th)this.addCollection(e);else if(e instanceof Xc)this.addCollection(e);else if(e instanceof nh)this.addCollection(e);else{if(!(e instanceof jc))throw new Error(e.getClass().getName());this.addCollection(e)}},e.prototype.addCollection=function(t){for(var e=0;e50?(null===this._areaPtLocator&&(this._areaPtLocator=new vf(this._parentGeom)),this._areaPtLocator.locate(t)):this._ptLocator.locate(t,this._parentGeom)},e.prototype.findEdge=function(){if(1===arguments.length){var e=arguments[0];return this._lineEdgeMap.get(e)}return t.prototype.findEdge.apply(this,arguments)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e.determineBoundary=function(t,e){return t.isInBoundary(e)?Su.BOUNDARY:Su.INTERIOR},e}(Uh),If=function(){if(this._li=new rc,this._resultPrecisionModel=null,this._arg=null,1===arguments.length){var t=arguments[0];this.setComputationPrecision(t.getPrecisionModel()),this._arg=new Array(1).fill(null),this._arg[0]=new bf(0,t)}else if(2===arguments.length){var e=arguments[0],n=arguments[1],r=fc.OGC_SFS_BOUNDARY_RULE;e.getPrecisionModel().compareTo(n.getPrecisionModel())>=0?this.setComputationPrecision(e.getPrecisionModel()):this.setComputationPrecision(n.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new bf(0,e,r),this._arg[1]=new bf(1,n,r)}else if(3===arguments.length){var i=arguments[0],o=arguments[1],s=arguments[2];i.getPrecisionModel().compareTo(o.getPrecisionModel())>=0?this.setComputationPrecision(i.getPrecisionModel()):this.setComputationPrecision(o.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new bf(0,i,s),this._arg[1]=new bf(1,o,s)}};If.prototype.getArgGeometry=function(t){return this._arg[t].getGeometry()},If.prototype.setComputationPrecision=function(t){this._resultPrecisionModel=t,this._li.setPrecisionModel(this._resultPrecisionModel)},If.prototype.interfaces_=function(){return[]},If.prototype.getClass=function(){return If};var Nf=function(){};Nf.prototype.interfaces_=function(){return[]},Nf.prototype.getClass=function(){return Nf},Nf.map=function(){if(arguments[0]instanceof cc&&Lu(arguments[1],Nf.MapOp)){for(var t=arguments[0],e=arguments[1],n=new bc,r=0;r=t.size()?null:t.get(e)},Tf.union=function(t){return new Tf(t).union()},Af.STRTREE_NODE_CAPACITY.get=function(){return 4},Object.defineProperties(Tf,Af);var Df=function(){};Df.prototype.interfaces_=function(){return[]},Df.prototype.getClass=function(){return Df},Df.union=function(t,e){if(t.isEmpty()||e.isEmpty()){if(t.isEmpty()&&e.isEmpty())return Cf.createEmptyResult(Cf.UNION,t,e,t.getFactory());if(t.isEmpty())return e.copy();if(e.isEmpty())return t.copy()}return t.checkNotGeometryCollection(t),t.checkNotGeometryCollection(e),of.overlayOp(t,e,Cf.UNION)};var Ff=function(){return new Yi};Yi.prototype={constructor:Yi,reset:function(){this.s=this.t=0},add:function(t){Vi(qf,t,this.t),Vi(this,qf.s,this.s),this.s?this.t+=qf.t:this.s=qf.t},valueOf:function(){return this.s}};var qf=new Yi,Gf=1e-6,Bf=Math.PI,kf=Bf/2,zf=Bf/4,jf=2*Bf,Xf=180/Bf,Uf=Bf/180,Yf=Math.abs,Vf=Math.atan,Hf=Math.atan2,Wf=Math.cos,Jf=Math.exp,Zf=Math.log,Kf=Math.sin,Qf=Math.sqrt,$f=Math.tan,tg={Feature:function(t,e){Ji(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++r2?t[2]*Uf:0),e.invert=function(e){return e=t.invert(e[0]*Uf,e[1]*Uf),e[0]*=Xf,e[1]*=Xf,e},e},og=function(){var t,e=[];return{point:function(e,n){t.push([e,n])},lineStart:function(){e.push(t=[])},lineEnd:Wi,rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))},result:function(){var n=e;return e=[],t=null,n}}},sg=function(t,e,n,r,i,o){var s,a=t[0],u=t[1],c=0,h=1,l=e[0]-a,p=e[1]-u;if(s=n-a,l||!(s>0)){if(s/=l,l<0){if(s0){if(s>h)return;s>c&&(c=s)}if(s=i-a,l||!(s<0)){if(s/=l,l<0){if(s>h)return;s>c&&(c=s)}else if(l>0){if(s0)){if(s/=p,p<0){if(s0){if(s>h)return;s>c&&(c=s)}if(s=o-u,p||!(s<0)){if(s/=p,p<0){if(s>h)return;s>c&&(c=s)}else if(p>0){if(s0&&(t[0]=a+c*l,t[1]=u+c*p),h<1&&(e[0]=a+h*l,e[1]=u+h*p),!0}}}}},ag=function(t,e){return Yf(t[0]-e[0])=0;--o)i.point((h=c[o])[0],h[1]);else r(p.x,p.p.x,-1,i);p=p.p}c=(p=p.o).z,f=!f}while(!p.v);i.lineEnd()}}},cg=function(t,e){return te?1:t>=e?0:NaN},hg=(function(t){1===t.length&&(t=function(t){return function(e,n){return cg(t(e),n)}}(t))}(cg),function(t){for(var e,n,r,i=t.length,o=-1,s=0;++o=0;)for(e=(r=t[i]).length;--e>=0;)n[--s]=r[e];return n}),lg=1e9,pg=-lg,fg=Ff(),gg=(Ff(),function(t){return t}),dg=(Ff(),Ff(),1/0),yg=dg,_g=-dg,mg=_g,vg={point:function(t,e){t_g&&(_g=t),emg&&(mg=e)},lineStart:Wi,lineEnd:Wi,polygonStart:Wi,polygonEnd:Wi,result:function(){var t=[[dg,yg],[_g,mg]];return _g=mg=-(yg=dg=1/0),t}},xg=(Ff(),function(t,e,n,r){return function(i,o){function s(e,n){var r=i(e,n);t(e=r[0],n=r[1])&&o.point(e,n)}function a(t,e){var n=i(t,e);y.point(n[0],n[1])}function u(){E.point=a,y.lineStart()}function c(){E.point=s,y.lineEnd()}function h(t,e){d.push([t,e]);var n=i(t,e);v.point(n[0],n[1])}function l(){v.lineStart(),d=[]}function p(){h(d[0][0],d[0][1]),v.lineEnd();var t,e,n,r,i=v.clean(),s=m.result(),a=s.length;if(d.pop(),f.push(d),d=null,a)if(1&i){if(n=s[0],(e=n.length-1)>0){for(x||(o.polygonStart(),x=!0),o.lineStart(),t=0;t1&&2&i&&s.push(s.pop().concat(s.shift())),g.push(s.filter(go))}var f,g,d,y=e(o),_=i.invert(r[0],r[1]),m=og(),v=e(m),x=!1,E={point:s,lineStart:u,lineEnd:c,polygonStart:function(){E.point=h,E.lineStart=l,E.lineEnd=p,g=[],f=[]},polygonEnd:function(){E.point=s,E.lineStart=u,E.lineEnd=c,g=hg(g);var t=function(t,e){var n=e[0],r=e[1],i=[Kf(n),-Wf(n),0],o=0,s=0;fg.reset();for(var a=0,u=t.length;a=0?1:-1,I=b*w,N=I>Bf,C=g*x;if(fg.add(Hf(C*b*Kf(I),d*E+C*Wf(I))),o+=N?w+b*jf:w,N^p>=n^m>=n){var S=eo($i(l),$i(_));io(S);var M=eo(i,S);io(M);var L=(N^w>=0?-1:1)*Hi(M[2]);(r>L||r===L&&(S[0]||S[1]))&&(s+=N^w>=0?1:-1)}}return(o<-Gf||o0?Bf:-Bf,u=Yf(o-n);Yf(u-Bf)0?kf:-kf),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),t.point(o,r),e=0):i!==a&&u>=Bf&&(Yf(n-i)Gf?Vf((Kf(e)*(o=Wf(r))*Kf(n)-Kf(r)*(i=Wf(e))*Kf(t))/(i*o*s)):(e+r)/2}(n,r,o,s),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),e=0),t.point(n=o,r=s),i=a},lineEnd:function(){t.lineEnd(),n=r=NaN},clean:function(){return 2-e}}},function(t,e,n,r){var i;if(null==t)i=n*kf,r.point(-Bf,i),r.point(0,i),r.point(Bf,i),r.point(Bf,0),r.point(Bf,-i),r.point(0,-i),r.point(-Bf,-i),r.point(-Bf,0),r.point(-Bf,i);else if(Yf(t[0]-e[0])>Gf){var o=t[0]o}function r(t,e,n){var r=[1,0,0],i=eo($i(t),$i(e)),s=to(i,i),a=i[0],u=s-a*a;if(!u)return!n&&t;var c=o*s/u,h=-o*a/u,l=eo(r,i),p=ro(r,c);no(p,ro(i,h));var f=l,g=to(p,f),d=to(f,f),y=g*g-d*(to(p,p)-1);if(!(y<0)){var _=Qf(y),m=ro(f,(-g-_)/d);if(no(m,p),m=Qi(m),!n)return m;var v,x=t[0],E=e[0],w=t[1],b=e[1];E0^m[1]<(Yf(m[0]-x)Bf^(x<=m[0]&&m[0]<=E)){var C=ro(f,(-g+_)/d);return no(C,p),[m,Qi(C)]}}}function i(e,n){var r=s?t:Bf-t,i=0;return e<-r?i|=1:e>r&&(i|=2),n<-r?i|=4:n>r&&(i|=8),i}var o=Wf(t),s=o>0,a=Yf(o)>Gf;return xg(n,function(t){var e,o,u,c,h;return{lineStart:function(){c=u=!1,h=1},point:function(l,p){var f,g=[l,p],d=n(l,p),y=s?d?0:i(l,p):d?i(l+(l<0?Bf:-Bf),p):0;if(!e&&(c=u=d)&&t.lineStart(),d!==u&&(!(f=r(e,g))||ag(e,f)||ag(g,f))&&(g[0]+=Gf,g[1]+=Gf,d=n(g[0],g[1])),d!==u)h=0,d?(t.lineStart(),f=r(g,e),t.point(f[0],f[1])):(f=r(e,g),t.point(f[0],f[1]),t.lineEnd()),e=f;else if(a&&e&&s^d){var _;y&o||!(_=r(g,e,!0))||(h=0,s?(t.lineStart(),t.point(_[0][0],_[0][1]),t.point(_[1][0],_[1][1]),t.lineEnd()):(t.point(_[1][0],_[1][1]),t.lineEnd(),t.lineStart(),t.point(_[0][0],_[0][1])))}!d||e&&ag(e,g)||t.point(g[0],g[1]),e=g,u=d,o=y},lineEnd:function(){u&&t.lineEnd(),e=null},clean:function(){return h|(c&&u)<<1}}},function(n,r,i,o){!function(t,e,n,r,i,o){if(n){var s=Wf(e),a=Kf(e),u=r*n;null==i?(i=e+r*jf,o=e-u/2):(i=ho(s,i),o=ho(s,o),(r>0?io)&&(i+=r*jf));for(var c,h=i;r>0?h>o:h4*e&&d--){var x=s+p,E=a+f,w=u+g,b=Qf(x*x+E*E+w*w),I=Hi(w/=b),N=Yf(Yf(w)-1)e||Yf((_*L+m*P)/v-.5)>.3||s*p+a*f+u*g2?t[2]+90:90]):(t=n(),[t[0],t[1],t[2]-90])},n([0,0,90]).scale(159.155)};t.projection=Cs,t.random=gu,t.clusters=du,t.helpers=ko,t.invariant=jo,t.meta=zo,t.isolines=function(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.zProperty||"elevation",i=n.commonProperties||{},o=n.breaksProperties||[];if(W(t,"Point","Input must contain Points"),!e)throw new Error("breaks is required");if(!Array.isArray(e))throw new Error("breaks must be an Array");if(!I(i))throw new Error("commonProperties must be an Object");if(!Array.isArray(o))throw new Error("breaksProperties must be an Array");var s=rt(t,{zProperty:r,flip:!0});return c(function(t,e,n){var r=j(n),i=r[2]-r[0],o=r[3]-r[1],s=r[0],a=r[1],u=e[0].length-1,c=e.length-1,h=i/u,l=o/c,p=function(t){t[0]=t[0]*h+s,t[1]=t[1]*l+a};return t.forEach(function(t){S(t,p)}),t}(function(t,e,n,r,i){for(var o=[],s=1;ss;)r=Math.floor((o+1)*Math.random()),n=i[r],i[r]=i[o],i[o]=n;return i.slice(s)}(t.features,e))},t.envelope=he,t.square=le,t.circle=fe,t.midpoint=function(t,e){return pe(t,qt(t,e)/2,ge(t,e))},t.center=de,t.centerOfMass=_e,t.centroid=ye,t.combine=function(t){function n(t,e,n){n?r[e].coordinates=r[e].coordinates.concat(t.geometry.coordinates):r[e].coordinates.push(t.geometry.coordinates),r[e].properties.push(t.properties)}var r={MultiPoint:{coordinates:[],properties:[]},MultiLineString:{coordinates:[],properties:[]},MultiPolygon:{coordinates:[],properties:[]}},i=Object.keys(r).reduce(function(t,e){return t[e.replace("Multi","")]=e,t},{});return O(t,function(t){t.geometry&&(r[t.geometry.type]?n(t,t.geometry.type,!0):i[t.geometry.type]&&n(t,i[t.geometry.type],!1))}),c(Object.keys(r).filter(function(t){return r[t].coordinates.length}).sort().map(function(t){return e({type:t,coordinates:r[t].coordinates},{collectedProperties:r[t].properties})}))},t.distance=qt,t.explode=me,t.bbox=j,t.tesselate=function(t){if(!t.geometry||"Polygon"!==t.geometry.type&&"MultiPolygon"!==t.geometry.type)throw new Error("input must be a Polygon or MultiPolygon");var e={type:"FeatureCollection",features:[]};return"Polygon"===t.geometry.type?e.features=De(t.geometry.coordinates):t.geometry.coordinates.forEach(function(t){e.features=e.features.concat(De(t))}),e},t.bboxPolygon=ce,t.booleanPointInPolygon=Pt,t.nearestPoint=Fe,t.nearestPointOnLine=on,t.nearestPointToLine=function(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.units,i=n.properties||{};if(!t)throw new Error("points is required");if(!(t=function(t){var e=[];switch(t.geometry?t.geometry.type:t.type){case"GeometryCollection":return A(t,function(t){"Point"===t.type&&e.push({type:"Feature",properties:{},geometry:t})}),{type:"FeatureCollection",features:e};case"FeatureCollection":return t.features=t.features.filter(function(t){return"Point"===t.geometry.type}),t;default:throw new Error("points must be a Point Collection")}}(t)).features.length)throw new Error("points must contain features");if(!e)throw new Error("line is required");if("LineString"!==K(e))throw new Error("line must be a LineString");var o=1/0,s=null;return O(t,function(t){var n=gn(t,e,{units:r});n=0&&c<=1&&(f.onLine1=!0),h>=0&&h<=1&&(f.onLine2=!0),!(!f.onLine1||!f.onLine2)&&[f.x,f.y])}(t[n][0],t[n][1],t[n+1][0],t[n+1][1],e[o][0],e[o][1],e[o+1][0],e[o+1][1]);s&&i.features.push(r([s[0],s[1]]))}})}),i},t.pointOnFeature=yn,t.area=mn,t.along=function(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var i;if("Feature"===t.type)i=t.geometry.coordinates;else{if("LineString"!==t.type)throw new Error("input must be a LineString Feature or Geometry");i=t.coordinates}if(!b(e))throw new Error("distance must be a number");for(var o=0,s=0;s=o&&s===i.length-1);s++){if(o>=e){var a=e-o;if(a){var u=ge(i[s],i[s-1])-180;return pe(i[s],a,u,n)}return r(i[s])}o+=qt(i[s],i[s+1],n)}return r(i[i.length-1])},t.length=bn,t.lineSlice=function(t,e,n){var r=U(n);if("LineString"!==K(n))throw new Error("line must be a LineString");for(var i,o=on(n,t),s=on(n,e),u=[(i=o.properties.index<=s.properties.index?[o,s]:[s,o])[0].geometry.coordinates],c=i[0].properties.index+1;c is required");if("boolean"!=typeof n)throw new Error(" must be a boolean");if("boolean"!=typeof r)throw new Error(" must be a boolean");!1===r&&(t=Gt(t));var i=[];switch(t.type){case"GeometryCollection":return A(t,function(t){sr(t,n)}),t;case"FeatureCollection":return O(t,function(t){O(sr(t,n),function(t){i.push(t)})}),c(i)}return sr(t,n)},t.isobands=function(t,e,n){if(n=n||{},!I(n))throw new Error("options is invalid");var r=n.zProperty||"elevation",i=n.commonProperties||{},s=n.breaksProperties||[];if(W(t,"Point","Input must contain Points"),!e)throw new Error("breaks is required");if(!Array.isArray(e))throw new Error("breaks is not an Array");if(!I(i))throw new Error("commonProperties is not an Object");if(!Array.isArray(s))throw new Error("breaksProperties is not an Array");var a=cr(t,{zProperty:r,flip:!0}),u=function(t,e,n){for(var r=[],i=1;i0}(t,e);case"Polygon":return!br(e,t)}break;case"Polygon":switch(e.type){case"Point":return!Pt(e,t);case"LineString":return!br(t,e);case"Polygon":return!function(t,e){for(var n=0;n0)for(var n=0;n0))throw new Error("Invalid maxDistance");if(!(void 0===r||null===r||Math.sign(r)>0))throw new Error("Invalid minPoints");t=Gt(t),r=r||3;var o=new Ha.DBSCAN,s=-1;return o.run(T(t),E(e,i),r,qt).forEach(function(e){s++,e.forEach(function(e){var n=t.features[e];n.properties||(n.properties={}),n.properties.cluster=s,n.properties.dbscan="core"})}),o.noise.forEach(function(e){var n=t.features[e];n.properties||(n.properties={}),n.properties.cluster?n.properties.dbscan="edge":n.properties.dbscan="noise"}),t},t.clustersKmeans=function(t,e){if("object"!=typeof(e=e||{}))throw new Error("options is invalid");var n=e.numberOfClusters,r=e.mutate;W(t,"Point","Input must contain Points");var i=t.features.length;(n=n||Math.round(Math.sqrt(i/2)))>i&&(n=i),!1!==r&&void 0!==r||(t=Gt(t));var o=T(t),s=o.slice(0,n),a=eu(o,n,s),u={};return a.centroids.forEach(function(t,e){u[e]=t}),O(t,function(t,e){var n=a.idxs[e];t.properties.cluster=n,t.properties.centroid=u[n]}),t},t.pointToLineDistance=gn,t.booleanParallel=function(t,e){if(!t)throw new Error("line1 is required");if(!e)throw new Error("line2 is required");if("LineString"!==Dr(t,"line1"))throw new Error("line1 must be a LineString");if("LineString"!==Dr(e,"line2"))throw new Error("line2 must be a LineString");for(var n=en(te(t)).features,r=en(te(e)).features,i=0;i=d;){for(var T=[],A=[],D=g+w,F=0;D<=y;){var q=r([D,O]),G=function(t,e){for(var n=0;n0&&0!==e)if(e>o[o.length-1])e-=o.length;else{var r=Po(e,o);0!==r&&(e-=r)}if(e!==+u){var l=i[e];l&&c&&(void 0!==n&&l.properties[n]!==c.properties[n]||Tr(c,l)&&function(t,e){var n=a(T(t)),r=a(T(e));return nn(n,r).features.length>0}(c,l)&&(i[u]=Mo(c,l),o.push(t.properties.origIndexPosition),o.sort(function(t,e){return t-e}),s.remove(t),i.splice(e,1),c.properties.origIndexPosition=u,s.remove(c,function(t,e){return t.properties.origIndexPosition===e.properties.origIndexPosition}),h=!0))}}),h){if(!c)continue;c.properties.origIndexPosition=u,s.insert(c),u--}}return i.forEach(function(t){delete t.properties.origIndexPosition,delete t.bbox}),r},t.hexGrid=Oo,t.mask=function(t,e){var n=function(t){return o(t&&t.geometry.coordinates||[[[180,90],[-180,90],[-180,-90],[180,-90],[180,90]]])}(e),r=function(t){var e=[],n=[];return F(t,function(t){var r=t.geometry.coordinates,i=r[0],s=r.slice(1);e.push(o([i])),s.forEach(function(t){n.push(o([t]))})}),[c(e),c(n)]}(t),i=r[0],s=r[1];return function(t,e,n){var r=[];return r.push(t.geometry.coordinates[0]),F(e,function(t){r.push(t.geometry.coordinates[0])}),F(n,function(t){r.push(t.geometry.coordinates[0])}),o(r)}(n,i=Ro(i),s=Ro(s))},t.squareGrid=Ao,t.triangleGrid=Do,t.interpolate=function(t,e,n){if("object"!=typeof(n=n||{}))throw new Error("options is invalid");var r=n.gridType,i=n.property,o=n.weight;if(!t)throw new Error("points is required");if(W(t,"Point","input must contain Points"),!e)throw new Error("cellSize is required");if(void 0!==o&&"number"!=typeof o)throw new Error("weight must be a number");i=i||"elevation",r=r||"square",o=o||1;var s,a=j(t);switch(r){case"point":case"points":s=Ln(a,e,n);break;case"square":case"squares":s=Ao(a,e,n);break;case"hex":case"hexes":s=Oo(a,e,n);break;case"triangle":case"triangles":s=Do(a,e,n);break;default:throw new Error("invalid gridType")}var u=[];return O(s,function(e){var s=0,a=0;O(t,function(t){var u,c=qt("point"===r?e:ye(e),t,n);if(void 0!==i&&(u=t.properties[i]),void 0===u&&(u=t.geometry.coordinates[2]),void 0===u)throw new Error("zValue is missing");0===c&&(s=u);var h=1/Math.pow(c,o);a+=h,s+=h*u});var c=Gt(e);c.properties[i]=s/a,u.push(c)}),c(u)},t.pointOnSurface=yn,t.polygonToLineString=kn,t.lineStringToPolygon=jn,t.inside=Pt,t.within=Rt,t.bezier=ue,t.nearest=Fe,t.pointOnLine=on,t.lineDistance=bn,t.radians2degrees=v,t.degrees2radians=x,t.distanceToDegrees=_,t.distanceToRadians=y,t.radiansToDistance=d,t.bearingToAngle=m,t.convertDistance=E,t.toMercator=cn,t.toWgs84=hn,t.randomPosition=_i,t.randomPoint=mi,t.randomPolygon=vi,t.randomLineString=xi,t.getCluster=wi,t.clusterEach=bi,t.clusterReduce=Ii,t.createBins=Ni,t.applyFilter=Ci,t.propertiesContainsFilter=Si,t.filterProperties=Mi,t.earthRadius=Fo,t.factors=qo,t.unitsFactors=Go,t.areaFactors=Bo,t.feature=e,t.geometry=n,t.point=r,t.points=i,t.polygon=o,t.polygons=s,t.lineString=a,t.lineStrings=u,t.featureCollection=c,t.multiLineString=h,t.multiPoint=l,t.multiPolygon=p,t.geometryCollection=f,t.round=g,t.radiansToLength=d,t.lengthToRadians=y,t.lengthToDegrees=_,t.bearingToAzimuth=m,t.radiansToDegrees=v,t.degreesToRadians=x,t.convertLength=E,t.convertArea=w,t.isNumber=b,t.isObject=I,t.validateBBox=N,t.validateId=C,t.getCoord=X,t.getCoords=U,t.containsNumber=Y,t.geojsonType=V,t.featureOf=H,t.collectionOf=W,t.getGeom=J,t.getGeomType=Z,t.getType=K,t.coordEach=S,t.coordReduce=M,t.propEach=L,t.propReduce=P,t.featureEach=O,t.featureReduce=R,t.coordAll=T,t.geomEach=A,t.geomReduce=D,t.flattenEach=F,t.flattenReduce=q,t.segmentEach=G,t.segmentReduce=B,t.lineEach=k,t.lineReduce=z,Object.defineProperty(t,"__esModule",{value:!0})}); /***/ }), -/* 303 */ +/* 304 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2330,16 +2330,16 @@ module.exports = invariant; /***/ }), -/* 304 */ +/* 305 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var constants = __webpack_require__(404); -var client = __webpack_require__(405); -var getUser = __webpack_require__(352); +var invariant = __webpack_require__(304); +var constants = __webpack_require__(405); +var client = __webpack_require__(406); +var getUser = __webpack_require__(353); /** * Services all have the same constructor pattern: you initialize them @@ -2393,9 +2393,9 @@ module.exports = makeService; /***/ }), -/* 305 */, /* 306 */, -/* 307 */ +/* 307 */, +/* 308 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2410,10 +2410,10 @@ module.exports = makeService; var defaultClient, mixin, responsePromise, client; -defaultClient = __webpack_require__(344); -mixin = __webpack_require__(313); -responsePromise = __webpack_require__(320); -client = __webpack_require__(319); +defaultClient = __webpack_require__(345); +mixin = __webpack_require__(314); +responsePromise = __webpack_require__(321); +client = __webpack_require__(320); /** * Interceptors have the ability to intercept the request and/org response @@ -2547,14 +2547,14 @@ module.exports = interceptor; /***/ }), -/* 308 */, -/* 309 */ +/* 309 */, +/* 310 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var corslite = __webpack_require__(399), +var corslite = __webpack_require__(400), strict = __webpack_require__(81).strict, config = __webpack_require__(85); @@ -2587,7 +2587,7 @@ module.exports = function(url, callback) { /***/ }), -/* 310 */ +/* 311 */ /***/ (function(module, exports) { /** @@ -3134,14 +3134,14 @@ module.exports = { /***/ }), -/* 311 */, -/* 312 */ +/* 312 */, +/* 313 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var request = __webpack_require__(309), +var request = __webpack_require__(310), format_url = __webpack_require__(83), util = __webpack_require__(81); @@ -3166,7 +3166,7 @@ module.exports = { /***/ }), -/* 313 */ +/* 314 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3210,10 +3210,10 @@ module.exports = mixin; /***/ }), -/* 314 */, /* 315 */, /* 316 */, -/* 317 */ +/* 317 */, +/* 318 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3232,7 +3232,7 @@ module.exports = new Feedback(); /***/ }), -/* 318 */ +/* 319 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3241,7 +3241,7 @@ module.exports = new Feedback(); // Installs ES6 Promise polyfill if a native Promise is not available if (typeof Promise === 'undefined') { - __webpack_require__(406).polyfill(); + __webpack_require__(407).polyfill(); } module.export = Promise; @@ -3249,7 +3249,7 @@ module.export = Promise; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7)(module))) /***/ }), -/* 319 */ +/* 320 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3310,7 +3310,7 @@ module.exports = function client(impl, target) { /***/ }), -/* 320 */ +/* 321 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3325,7 +3325,7 @@ module.exports = function client(impl, target) { /*jshint latedef: nofunc */ -var normalizeHeaderName = __webpack_require__(345); +var normalizeHeaderName = __webpack_require__(346); function property(promise, name) { return promise.then( @@ -3451,7 +3451,7 @@ module.exports = responsePromise; /***/ }), -/* 321 */ +/* 322 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3466,7 +3466,7 @@ module.exports = responsePromise; var uriEncoder, operations, prefixRE; -uriEncoder = __webpack_require__(414); +uriEncoder = __webpack_require__(415); prefixRE = /^([^:]*):([0-9]+)$/; operations = { @@ -3618,13 +3618,13 @@ module.exports = { /***/ }), -/* 322 */ +/* 323 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariantLocation = __webpack_require__(323); +var invariantLocation = __webpack_require__(324); /** * Format waypionts in a way that's friendly to the directions and surface @@ -3647,13 +3647,13 @@ module.exports = formatPoints; /***/ }), -/* 323 */ +/* 324 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); +var invariant = __webpack_require__(304); /** * Given an object that should be a location, ensure that it has @@ -3677,7 +3677,7 @@ module.exports = invariantLocation; /***/ }), -/* 324 */ +/* 325 */ /***/ (function(module, exports) { /** @@ -3890,7 +3890,6 @@ module.exports = { /***/ }), -/* 325 */, /* 326 */, /* 327 */, /* 328 */, @@ -3898,7 +3897,8 @@ module.exports = { /* 330 */, /* 331 */, /* 332 */, -/* 333 */ +/* 333 */, +/* 334 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/* @@ -13075,17 +13075,17 @@ L.Map.include({ }(window, document)); /***/ }), -/* 334 */ +/* 335 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var isArray = __webpack_require__(398), +var isArray = __webpack_require__(399), util = __webpack_require__(81), format_url = __webpack_require__(83), - feedback = __webpack_require__(317), - request = __webpack_require__(309); + feedback = __webpack_require__(318), + request = __webpack_require__(310); // Low-level geocoding interface - wraps specific API calls and their // return values. @@ -13224,14 +13224,14 @@ module.exports = function(url, options) { /***/ }), -/* 335 */ +/* 336 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(81), - Mustache = __webpack_require__(336); + Mustache = __webpack_require__(337); var GridControl = L.Control.extend({ @@ -13429,7 +13429,7 @@ module.exports.gridControl = function(_, options) { /***/ }), -/* 336 */ +/* 337 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! @@ -14067,7 +14067,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 337 */ +/* 338 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14075,9 +14075,9 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ var util = __webpack_require__(81), format_url = __webpack_require__(83), - request = __webpack_require__(309), + request = __webpack_require__(310), marker = __webpack_require__(84), - simplestyle = __webpack_require__(338); + simplestyle = __webpack_require__(339); // # featureLayer // @@ -14201,7 +14201,7 @@ module.exports.featureLayer = function(_, options) { /***/ }), -/* 338 */ +/* 339 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14253,7 +14253,7 @@ module.exports = { /***/ }), -/* 339 */ +/* 340 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14327,7 +14327,7 @@ module.exports.legendControl = function(options) { /***/ }), -/* 340 */ +/* 341 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14336,7 +14336,7 @@ module.exports.legendControl = function(options) { var format_url = __webpack_require__(83); var ShareControl = L.Control.extend({ - includes: [__webpack_require__(312)], + includes: [__webpack_require__(313)], options: { position: 'topleft', @@ -14455,7 +14455,7 @@ module.exports.shareControl = function(_, options) { /***/ }), -/* 341 */ +/* 342 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14465,7 +14465,7 @@ var util = __webpack_require__(81); var formatPattern = /\.((?:png|jpg)\d*)(?=$|\?)/; var TileLayer = L.TileLayer.extend({ - includes: [__webpack_require__(312)], + includes: [__webpack_require__(313)], options: { sanitizer: __webpack_require__(82) @@ -14560,7 +14560,7 @@ module.exports.tileLayer = function(_, options) { /***/ }), -/* 342 */ +/* 343 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14682,19 +14682,19 @@ module.exports.infoControl = function(options) { /***/ }), -/* 343 */ +/* 344 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var util = __webpack_require__(81), - request = __webpack_require__(309), - grid = __webpack_require__(401); + request = __webpack_require__(310), + grid = __webpack_require__(402); // forked from danzel/L.UTFGrid var GridLayer = L.Class.extend({ - includes: [L.Mixin.Events, __webpack_require__(312)], + includes: [L.Mixin.Events, __webpack_require__(313)], options: { template: function() { return ''; } @@ -14912,7 +14912,7 @@ module.exports.gridLayer = function(_, options) { /***/ }), -/* 344 */ +/* 345 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -14983,7 +14983,7 @@ module.exports.gridLayer = function(_, options) { var client, target, platformDefault; -client = __webpack_require__(319); +client = __webpack_require__(320); if (typeof Promise !== 'function' && console && console.log) { console.log('An ES6 Promise implementation is required to use rest.js. See https://github.com/cujojs/when/blob/master/docs/es6-promise-shim.md for using when.js as a Promise polyfill.'); @@ -15035,7 +15035,7 @@ module.exports = client(defaultClient); /***/ }), -/* 345 */ +/* 346 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15070,7 +15070,7 @@ module.exports = normalizeHeaderName; /***/ }), -/* 346 */ +/* 347 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15085,8 +15085,8 @@ module.exports = normalizeHeaderName; var interceptor, UrlBuilder; -interceptor = __webpack_require__(307); -UrlBuilder = __webpack_require__(410); +interceptor = __webpack_require__(308); +UrlBuilder = __webpack_require__(411); function startsWith(str, prefix) { return str.indexOf(prefix) === 0; @@ -15126,7 +15126,7 @@ module.exports = interceptor({ /***/ }), -/* 347 */ +/* 348 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15214,7 +15214,7 @@ module.exports = { /***/ }), -/* 348 */ +/* 349 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15262,7 +15262,7 @@ module.exports = { /***/ }), -/* 349 */ +/* 350 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15277,9 +15277,9 @@ module.exports = { var interceptor, uriTemplate, mixin; -interceptor = __webpack_require__(307); -uriTemplate = __webpack_require__(321); -mixin = __webpack_require__(313); +interceptor = __webpack_require__(308); +uriTemplate = __webpack_require__(322); +mixin = __webpack_require__(314); /** * Applies request params to the path as a URI Template @@ -15315,7 +15315,7 @@ module.exports = interceptor({ /***/ }), -/* 350 */ +/* 351 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -15349,24 +15349,24 @@ module.exports = attempt; /***/ }), -/* 351 */ +/* 352 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -exports.decode = exports.parse = __webpack_require__(426); -exports.encode = exports.stringify = __webpack_require__(427); +exports.decode = exports.parse = __webpack_require__(427); +exports.encode = exports.stringify = __webpack_require__(428); /***/ }), -/* 352 */ +/* 353 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var b64 = __webpack_require__(430); +var b64 = __webpack_require__(431); /** * Access tokens actually are data, and using them we can derive @@ -15399,7 +15399,7 @@ module.exports = getUser; /***/ }), -/* 353 */ +/* 354 */ /***/ (function(module, exports) { /* @@ -15446,13 +15446,13 @@ function extend() { /***/ }), -/* 354 */ +/* 355 */ /***/ (function(module, exports, __webpack_require__) { //http://en.wikipedia.org/wiki/Haversine_formula //http://www.movable-type.co.uk/scripts/latlong.html -var getCoord = __webpack_require__(324).getCoord; -var helpers = __webpack_require__(310); +var getCoord = __webpack_require__(325).getCoord; +var helpers = __webpack_require__(311); var point = helpers.point; var distanceToRadians = helpers.distanceToRadians; @@ -15498,7 +15498,7 @@ module.exports = function (origin, distance, bearing, units) { /***/ }), -/* 355 */ +/* 356 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -16499,7 +16499,6 @@ function lineReduce(geojson, callback, initialValue) { /***/ }), -/* 356 */, /* 357 */, /* 358 */, /* 359 */, @@ -16538,35 +16537,36 @@ function lineReduce(geojson, callback, initialValue) { /* 392 */, /* 393 */, /* 394 */, -/* 395 */ +/* 395 */, +/* 396 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = window.L = __webpack_require__(333); +module.exports = window.L = __webpack_require__(334); /***/ }), -/* 396 */ +/* 397 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var geocoderControl = __webpack_require__(397), - gridControl = __webpack_require__(335), - featureLayer = __webpack_require__(337), - legendControl = __webpack_require__(339), - shareControl = __webpack_require__(340), - tileLayer = __webpack_require__(341), - infoControl = __webpack_require__(342), - map = __webpack_require__(400), - gridLayer = __webpack_require__(343), - styleLayer = __webpack_require__(403); +var geocoderControl = __webpack_require__(398), + gridControl = __webpack_require__(336), + featureLayer = __webpack_require__(338), + legendControl = __webpack_require__(340), + shareControl = __webpack_require__(341), + tileLayer = __webpack_require__(342), + infoControl = __webpack_require__(343), + map = __webpack_require__(401), + gridLayer = __webpack_require__(344), + styleLayer = __webpack_require__(404); L.mapbox = module.exports = { VERSION: __webpack_require__(86).version, - geocoder: __webpack_require__(334), + geocoder: __webpack_require__(335), marker: __webpack_require__(84), - simplestyle: __webpack_require__(338), + simplestyle: __webpack_require__(339), tileLayer: tileLayer.tileLayer, TileLayer: tileLayer.TileLayer, styleLayer: styleLayer.styleLayer, @@ -16589,8 +16589,8 @@ L.mapbox = module.exports = { Map: map.Map, config: __webpack_require__(85), sanitize: __webpack_require__(82), - template: __webpack_require__(336).to_html, - feedback: __webpack_require__(317) + template: __webpack_require__(337).to_html, + feedback: __webpack_require__(318) }; @@ -16606,13 +16606,13 @@ window.L.Icon.Default.imagePath = /***/ }), -/* 397 */ +/* 398 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var geocoder = __webpack_require__(334), +var geocoder = __webpack_require__(335), util = __webpack_require__(81); var GeocoderControl = L.Control.extend({ @@ -16817,7 +16817,7 @@ module.exports.geocoderControl = function(_, options) { /***/ }), -/* 398 */ +/* 399 */ /***/ (function(module, exports) { module.exports = Array.isArray || function (arr) { @@ -16826,7 +16826,7 @@ module.exports = Array.isArray || function (arr) { /***/ }), -/* 399 */ +/* 400 */ /***/ (function(module, exports, __webpack_require__) { function corslite(url, callback, cors) { @@ -16925,21 +16925,21 @@ if (true) module.exports = corslite; /***/ }), -/* 400 */ +/* 401 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var tileLayer = __webpack_require__(341).tileLayer, - featureLayer = __webpack_require__(337).featureLayer, - gridLayer = __webpack_require__(343).gridLayer, - gridControl = __webpack_require__(335).gridControl, - infoControl = __webpack_require__(342).infoControl, - shareControl = __webpack_require__(340).shareControl, - legendControl = __webpack_require__(339).legendControl, - mapboxLogoControl = __webpack_require__(402).mapboxLogoControl, - feedback = __webpack_require__(317); +var tileLayer = __webpack_require__(342).tileLayer, + featureLayer = __webpack_require__(338).featureLayer, + gridLayer = __webpack_require__(344).gridLayer, + gridControl = __webpack_require__(336).gridControl, + infoControl = __webpack_require__(343).infoControl, + shareControl = __webpack_require__(341).shareControl, + legendControl = __webpack_require__(340).legendControl, + mapboxLogoControl = __webpack_require__(403).mapboxLogoControl, + feedback = __webpack_require__(318); function withAccessToken(options, accessToken) { if (!accessToken || options.accessToken) @@ -16948,7 +16948,7 @@ function withAccessToken(options, accessToken) { } var LMap = L.Map.extend({ - includes: [__webpack_require__(312)], + includes: [__webpack_require__(313)], options: { tileLayer: {}, @@ -17166,7 +17166,7 @@ module.exports.map = function(element, _, options) { /***/ }), -/* 401 */ +/* 402 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -17189,7 +17189,7 @@ module.exports = function(data) { /***/ }), -/* 402 */ +/* 403 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -17228,7 +17228,7 @@ module.exports.mapboxLogoControl = function(options) { /***/ }), -/* 403 */ +/* 404 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -17236,7 +17236,7 @@ module.exports.mapboxLogoControl = function(options) { var util = __webpack_require__(81); var format_url = __webpack_require__(83); -var request = __webpack_require__(309); +var request = __webpack_require__(310); var StyleLayer = L.TileLayer.extend({ @@ -17316,7 +17316,7 @@ module.exports.styleLayer = function(_, options) { /***/ }), -/* 404 */ +/* 405 */ /***/ (function(module, exports) { @@ -17324,35 +17324,35 @@ module.exports.DEFAULT_ENDPOINT = 'https://api.mapbox.com'; /***/ }), -/* 405 */ +/* 406 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // install ES6 Promise polyfill -__webpack_require__(318); +__webpack_require__(319); -var rest = __webpack_require__(407); +var rest = __webpack_require__(408); // rest.js client with MIME support module.exports = function(config) { return rest - .wrap(__webpack_require__(409)) - .wrap(__webpack_require__(346), { prefix: config.endpoint }) - .wrap(__webpack_require__(411), { mime: 'application/json' }) - .wrap(__webpack_require__(349)) - .wrap(__webpack_require__(420), { + .wrap(__webpack_require__(410)) + .wrap(__webpack_require__(347), { prefix: config.endpoint }) + .wrap(__webpack_require__(412), { mime: 'application/json' }) + .wrap(__webpack_require__(350)) + .wrap(__webpack_require__(421), { params: { access_token: config.accessToken } }) - .wrap(__webpack_require__(421), { access_token: config.accessToken }) - .wrap(__webpack_require__(428)) - .wrap(__webpack_require__(429)); + .wrap(__webpack_require__(422), { access_token: config.accessToken }) + .wrap(__webpack_require__(429)) + .wrap(__webpack_require__(430)); }; /***/ }), -/* 406 */ +/* 407 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process, global) {/*! @@ -18538,7 +18538,7 @@ return Promise$1; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(21), __webpack_require__(5))) /***/ }), -/* 407 */ +/* 408 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -18551,8 +18551,8 @@ return Promise$1; -var rest = __webpack_require__(344), - browser = __webpack_require__(408); +var rest = __webpack_require__(345), + browser = __webpack_require__(409); rest.setPlatformDefaultClient(browser); @@ -18560,7 +18560,7 @@ module.exports = rest; /***/ }), -/* 408 */ +/* 409 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -18575,9 +18575,9 @@ module.exports = rest; var normalizeHeaderName, responsePromise, client, headerSplitRE; -normalizeHeaderName = __webpack_require__(345); -responsePromise = __webpack_require__(320); -client = __webpack_require__(319); +normalizeHeaderName = __webpack_require__(346); +responsePromise = __webpack_require__(321); +client = __webpack_require__(320); // according to the spec, the line break is '\r\n', but doesn't hold true in practice headerSplitRE = /[\r|\n]+/; @@ -18734,7 +18734,7 @@ module.exports = client(function xhr(request) { /***/ }), -/* 409 */ +/* 410 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -18749,7 +18749,7 @@ module.exports = client(function xhr(request) { var interceptor; -interceptor = __webpack_require__(307); +interceptor = __webpack_require__(308); /** * Rejects the response promise based on the status code. @@ -18777,7 +18777,7 @@ module.exports = interceptor({ /***/ }), -/* 410 */ +/* 411 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -18792,8 +18792,8 @@ module.exports = interceptor({ var mixin, xWWWFormURLEncoder, origin, urlRE, absoluteUrlRE, fullyQualifiedUrlRE; -mixin = __webpack_require__(313); -xWWWFormURLEncoder = __webpack_require__(347); +mixin = __webpack_require__(314); +xWWWFormURLEncoder = __webpack_require__(348); urlRE = /([a-z][a-z0-9\+\-\.]*:)\/\/([^@]+@)?(([^:\/]+)(:([0-9]+))?)?(\/[^?#]*)?(\?[^#]*)?(#\S*)?/i; absoluteUrlRE = /^([a-z][a-z0-9\-\+\.]*:\/\/|\/)/i; @@ -19000,7 +19000,7 @@ module.exports = UrlBuilder; /***/ }), -/* 411 */ +/* 412 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19015,10 +19015,10 @@ module.exports = UrlBuilder; var interceptor, mime, registry, noopConverter, missingConverter, attempt; -interceptor = __webpack_require__(307); -mime = __webpack_require__(348); -registry = __webpack_require__(412); -attempt = __webpack_require__(350); +interceptor = __webpack_require__(308); +mime = __webpack_require__(349); +registry = __webpack_require__(413); +attempt = __webpack_require__(351); noopConverter = { read: function (obj) { return obj; }, @@ -19116,7 +19116,7 @@ module.exports = interceptor({ /***/ }), -/* 412 */ +/* 413 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19131,7 +19131,7 @@ module.exports = interceptor({ var mime, registry; -mime = __webpack_require__(348); +mime = __webpack_require__(349); function Registry(mimes) { @@ -19215,11 +19215,11 @@ function Registry(mimes) { registry = new Registry({}); // include provided serializers -registry.register('application/hal', __webpack_require__(413)); -registry.register('application/json', __webpack_require__(417)); -registry.register('application/x-www-form-urlencoded', __webpack_require__(347)); -registry.register('multipart/form-data', __webpack_require__(418)); -registry.register('text/plain', __webpack_require__(419)); +registry.register('application/hal', __webpack_require__(414)); +registry.register('application/json', __webpack_require__(418)); +registry.register('application/x-www-form-urlencoded', __webpack_require__(348)); +registry.register('multipart/form-data', __webpack_require__(419)); +registry.register('text/plain', __webpack_require__(420)); registry.register('+json', registry.delegate('application/json')); @@ -19227,7 +19227,7 @@ module.exports = registry; /***/ }), -/* 413 */ +/* 414 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19242,11 +19242,11 @@ module.exports = registry; var pathPrefix, template, find, lazyPromise, responsePromise; -pathPrefix = __webpack_require__(346); -template = __webpack_require__(349); -find = __webpack_require__(415); -lazyPromise = __webpack_require__(416); -responsePromise = __webpack_require__(320); +pathPrefix = __webpack_require__(347); +template = __webpack_require__(350); +find = __webpack_require__(416); +lazyPromise = __webpack_require__(417); +responsePromise = __webpack_require__(321); function defineProperty(obj, name, value) { Object.defineProperty(obj, name, { @@ -19362,7 +19362,7 @@ module.exports = { /***/ }), -/* 414 */ +/* 415 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19539,7 +19539,7 @@ module.exports = { /***/ }), -/* 415 */ +/* 416 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19577,7 +19577,7 @@ module.exports = { /***/ }), -/* 416 */ +/* 417 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19590,7 +19590,7 @@ module.exports = { -var attempt = __webpack_require__(350); +var attempt = __webpack_require__(351); /** * Create a promise whose work is started only when a handler is registered. @@ -19630,7 +19630,7 @@ module.exports = lazyPromise; /***/ }), -/* 417 */ +/* 418 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19674,7 +19674,7 @@ module.exports = createConverter(); /***/ }), -/* 418 */ +/* 419 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19745,7 +19745,7 @@ module.exports = { /***/ }), -/* 419 */ +/* 420 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19772,7 +19772,7 @@ module.exports = { /***/ }), -/* 420 */ +/* 421 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -19787,8 +19787,8 @@ module.exports = { var interceptor, mixinUtil, defaulter; -interceptor = __webpack_require__(307); -mixinUtil = __webpack_require__(313); +interceptor = __webpack_require__(308); +mixinUtil = __webpack_require__(314); defaulter = (function () { @@ -19848,19 +19848,19 @@ module.exports = interceptor({ /***/ }), -/* 421 */ +/* 422 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // install ES6 Promise polyfill -__webpack_require__(318); +__webpack_require__(319); -var interceptor = __webpack_require__(307); -var linkParser = __webpack_require__(422); -var url = __webpack_require__(423); -var querystring = __webpack_require__(351); +var interceptor = __webpack_require__(308); +var linkParser = __webpack_require__(423); +var url = __webpack_require__(424); +var querystring = __webpack_require__(352); var paginator = interceptor({ success: function (response, config) { @@ -19894,7 +19894,7 @@ module.exports = paginator; /***/ }), -/* 422 */ +/* 423 */ /***/ (function(module, exports) { module.exports = (function(){ @@ -21087,7 +21087,7 @@ module.exports = (function(){ /***/ }), -/* 423 */ +/* 424 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -21114,8 +21114,8 @@ module.exports = (function(){ -var punycode = __webpack_require__(424); -var util = __webpack_require__(425); +var punycode = __webpack_require__(425); +var util = __webpack_require__(426); exports.parse = urlParse; exports.resolve = urlResolve; @@ -21190,7 +21190,7 @@ var protocolPattern = /^([a-z0-9.+-]+:)/i, 'gopher:': true, 'file:': true }, - querystring = __webpack_require__(351); + querystring = __webpack_require__(352); function urlParse(url, parseQueryString, slashesDenoteHost) { if (url && util.isObject(url) && url instanceof Url) return url; @@ -21826,7 +21826,7 @@ Url.prototype.parseHost = function() { /***/ }), -/* 424 */ +/* 425 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.4.1 by @mathias */ @@ -22365,7 +22365,7 @@ Url.prototype.parseHost = function() { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7)(module), __webpack_require__(5))) /***/ }), -/* 425 */ +/* 426 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -22388,7 +22388,7 @@ module.exports = { /***/ }), -/* 426 */ +/* 427 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -22479,7 +22479,7 @@ var isArray = Array.isArray || function (xs) { /***/ }), -/* 427 */ +/* 428 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -22571,10 +22571,10 @@ var objectKeys = Object.keys || function (obj) { /***/ }), -/* 428 */ +/* 429 */ /***/ (function(module, exports, __webpack_require__) { -var interceptor = __webpack_require__(307); +var interceptor = __webpack_require__(308); var standardResponse = interceptor({ response: transform, @@ -22596,16 +22596,16 @@ module.exports = standardResponse; /***/ }), -/* 429 */ +/* 430 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // install ES6 Promise polyfill -__webpack_require__(318); +__webpack_require__(319); -var interceptor = __webpack_require__(307); +var interceptor = __webpack_require__(308); var callbackify = interceptor({ success: function (response) { @@ -22634,7 +22634,7 @@ module.exports = callbackify; /***/ }), -/* 430 */ +/* 431 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -22787,14 +22787,14 @@ module.exports = { /***/ }), -/* 431 */ +/* 432 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var makeService = __webpack_require__(305); /** * @class MapboxGeocoding @@ -23065,15 +23065,15 @@ module.exports = MapboxGeocoding; /***/ }), -/* 432 */ +/* 433 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var formatPoints = __webpack_require__(322); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var formatPoints = __webpack_require__(323); +var makeService = __webpack_require__(305); /** * @class MapboxSurface @@ -23170,15 +23170,15 @@ module.exports = MapboxSurface; /***/ }), -/* 433 */ +/* 434 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var formatPoints = __webpack_require__(322); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var formatPoints = __webpack_require__(323); +var makeService = __webpack_require__(305); /** * @class MapboxDirections @@ -23354,14 +23354,14 @@ module.exports = MapboxDirections; /***/ }), -/* 434 */ +/* 435 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var makeService = __webpack_require__(305); /** * @class MapboxUploads @@ -23581,14 +23581,14 @@ MapboxUploads.prototype.deleteUpload = function(upload, callback) { /***/ }), -/* 435 */ +/* 436 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var makeService = __webpack_require__(305); /** * @class MapboxMatching @@ -23723,15 +23723,15 @@ module.exports = MapboxMatching; /***/ }), -/* 436 */ +/* 437 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var hat = __webpack_require__(437); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var hat = __webpack_require__(438); +var makeService = __webpack_require__(305); /** * @class MapboxDatasets @@ -24168,7 +24168,7 @@ MapboxDatasets.prototype.deleteFeature = function(id, dataset, callback) { /***/ }), -/* 437 */ +/* 438 */ /***/ (function(module, exports) { /* eslint-disable */ @@ -24211,15 +24211,15 @@ var hat = module.exports = function (bits, base) { /***/ }), -/* 438 */ +/* 439 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var formatPoints = __webpack_require__(322); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var formatPoints = __webpack_require__(323); +var makeService = __webpack_require__(305); /** * @class MapboxMatrix @@ -24337,14 +24337,14 @@ module.exports = MapboxMatrix; /***/ }), -/* 439 */ +/* 440 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var makeService = __webpack_require__(305); /** * @class MapboxTilestats @@ -24440,15 +24440,15 @@ MapboxTilestats.prototype.putTilestats = function(tileset, statistics, callback) /***/ }), -/* 440 */ +/* 441 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(Buffer) { -var invariant = __webpack_require__(303); -var uriTemplate = __webpack_require__(321); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var uriTemplate = __webpack_require__(322); +var makeService = __webpack_require__(305); /** * @class MapboxStyles @@ -24818,10 +24818,10 @@ MapboxStyles.prototype.embedStyle = function(styleid, options) { return this.endpoint + uriTemplate.expand(API_STYLES_EMBED, params); }; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(441).Buffer)) +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(442).Buffer)) /***/ }), -/* 441 */ +/* 442 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -24835,9 +24835,9 @@ MapboxStyles.prototype.embedStyle = function(styleid, options) { -var base64 = __webpack_require__(442) -var ieee754 = __webpack_require__(443) -var isArray = __webpack_require__(444) +var base64 = __webpack_require__(443) +var ieee754 = __webpack_require__(444) +var isArray = __webpack_require__(445) exports.Buffer = Buffer exports.SlowBuffer = SlowBuffer @@ -26618,7 +26618,7 @@ function isnan (val) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5))) /***/ }), -/* 442 */ +/* 443 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -26776,7 +26776,7 @@ function fromByteArray (uint8) { /***/ }), -/* 443 */ +/* 444 */ /***/ (function(module, exports) { exports.read = function (buffer, offset, isLE, mLen, nBytes) { @@ -26866,7 +26866,7 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { /***/ }), -/* 444 */ +/* 445 */ /***/ (function(module, exports) { var toString = {}.toString; @@ -26877,18 +26877,18 @@ module.exports = Array.isArray || function (arr) { /***/ }), -/* 445 */ +/* 446 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var xtend = __webpack_require__(353).extend; -var uriTemplate = __webpack_require__(321); -var encodeOverlay = __webpack_require__(446); -var invariantLocation = __webpack_require__(323); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var xtend = __webpack_require__(354).extend; +var uriTemplate = __webpack_require__(322); +var encodeOverlay = __webpack_require__(447); +var invariantLocation = __webpack_require__(324); +var makeService = __webpack_require__(305); /** * @class MapboxStatic @@ -27096,15 +27096,15 @@ module.exports = MapboxStatic; /***/ }), -/* 446 */ +/* 447 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303), - invariantLocation = __webpack_require__(323), - polyline = __webpack_require__(447); +var invariant = __webpack_require__(304), + invariantLocation = __webpack_require__(324), + polyline = __webpack_require__(448); /** * Given a list of markers, encode them for display @@ -27162,7 +27162,7 @@ module.exports.encodeGeoJSON = encodeGeoJSON; /***/ }), -/* 447 */ +/* 448 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -27254,14 +27254,14 @@ module.exports = polyline; /***/ }), -/* 448 */ +/* 449 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var makeService = __webpack_require__(305); /** * @class MapboxTilesets @@ -27345,14 +27345,14 @@ MapboxTilesets.prototype.listTilesets = function(options, callback) { /***/ }), -/* 449 */ +/* 450 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -var invariant = __webpack_require__(303); -var makeService = __webpack_require__(304); +var invariant = __webpack_require__(304); +var makeService = __webpack_require__(305); /** * @class MapboxTokens @@ -27566,13 +27566,13 @@ MapboxTokens.prototype.listScopes = function(callback) { /***/ }), -/* 450 */ +/* 451 */ /***/ (function(module, exports) { module.exports = {"_args":[["mapbox-gl-circle@1.6.5","/var/alchemy/Phraseanet/Phraseanet-production-client"]],"_from":"mapbox-gl-circle@1.6.5","_id":"mapbox-gl-circle@1.6.5","_inBundle":false,"_integrity":"sha512-VHA6lgxZE/WFtBXmMveU2zt7ZeVcBHe42k4U4b8xGEnrDSQs4/++EBPVywEMNqi01XQrbf1eiAhsIDZasR4drw==","_location":"/mapbox-gl-circle","_phantomChildren":{"@mapbox/geojson-area":"0.2.2","@mapbox/gl-matrix":"0.0.1","@mapbox/mapbox-gl-supported":"1.4.0","@mapbox/point-geometry":"0.1.0","@mapbox/shelf-pack":"3.2.0","@mapbox/tiny-sdf":"1.1.0","@mapbox/unitbezier":"0.0.0","@mapbox/vector-tile":"1.3.1","@mapbox/whoots-js":"3.1.0","brfs":"1.6.1","bubleify":"0.7.0","concat-stream":"1.6.2","csscolorparser":"1.0.3","earcut":"2.1.3","geojson-vt":"3.2.1","gray-matter":"3.1.1","grid-index":"1.1.0","jsonlint-lines-primitives":"1.6.0","minimist":"0.0.8","package-json-versionify":"1.0.4","pbf":"3.2.0","quickselect":"1.1.1","rw":"1.3.3","sharkdown":"0.1.1","shuffle-seed":"1.1.6","sort-object":"0.3.2","through2":"2.0.3","tinyqueue":"1.2.3","unassertify":"2.1.1","unflowify":"1.0.1","vt-pbf":"3.1.1","webworkify":"1.5.0"},"_requested":{"type":"version","registry":true,"raw":"mapbox-gl-circle@1.6.5","name":"mapbox-gl-circle","escapedName":"mapbox-gl-circle","rawSpec":"1.6.5","saveSpec":null,"fetchSpec":"1.6.5"},"_requiredBy":["/"],"_resolved":"https://registry.npmjs.org/mapbox-gl-circle/-/mapbox-gl-circle-1.6.5.tgz","_spec":"1.6.5","_where":"/var/alchemy/Phraseanet/Phraseanet-production-client","author":{"name":"Smith Micro Software, Inc."},"browserify":{"transform":["babelify"]},"bugs":{"url":"https://github.com/smithmicro/mapbox-gl-circle/issues"},"dependencies":{"@turf/bbox":"^4.7.3","@turf/bbox-polygon":"^4.7.3","@turf/bearing":"^4.5.2","@turf/circle":"^4.7.3","@turf/destination":"^4.7.3","@turf/distance":"^4.7.3","@turf/helpers":"^4.7.3","@turf/truncate":"^4.7.3","core-util-is":"^1.0.2","debug":"^3.0.0","events":"^1.1.1","fsevents":"^1.1.2","glob":"^7.1.2","inflight":"^1.0.6","inherits":"^2.0.3","jsonparse":"^1.3.1","lodash":"^4.17.5","lodash.debounce":"^4.0.8","mapbox-gl":"^0.44.1","minimatch":"^3.0.4","once":"^1.4.0","punycode":"^2.1.0","readable-stream":"^2.3.3","string_decoder":"^1.0.3","through2":"^2.0.3","util-deprecate":"^1.0.2","wrappy":"^1.0.2","xtend":"^4.0.1","yarn":"^0.27.5"},"description":"A google.maps.Circle replacement for Mapbox GL JS API","devDependencies":{"async-each":"^1.0.1","babel-preset-es2015":"^6.24.1","babelify":"^7.3.0","brfs":"^1.4.4","browserify":"^14.5.0","buble":"^0.15.2","budo":"^10.0.4","documentation":"^5.1.0","eslint":"^4.18.1","eslint-config-google":"^0.9.1","esutils":"^2.0.2","magic-string":"^0.22.4","uglify-js":"^3.3.12","vlq":"^0.2.3","watchify":"^3.10.0"},"directories":{"example":"example","lib":"lib"},"engines":{"node":">=7.6.0","npm":">=5.3.0"},"files":["lib/","example/","dist/"],"homepage":"https://github.com/smithmicro/mapbox-gl-circle#readme","keywords":["mapbox","circle","osm","gl"],"license":"ISC","main":"lib/main.js","name":"mapbox-gl-circle","optionalDependencies":{"core-util-is":"^1.0.2","debug":"^3.0.0","fsevents":"^1.1.2","glob":"^7.1.2","inflight":"^1.0.6","inherits":"^2.0.3","jsonparse":"^1.3.1","minimatch":"^3.0.4","once":"^1.4.0","punycode":"^2.1.0","readable-stream":"^2.3.3","string_decoder":"^1.0.3","through2":"^2.0.3","util-deprecate":"^1.0.2","wrappy":"^1.0.2","xtend":"^4.0.1","yarn":"^0.27.5"},"repository":{"type":"git","url":"git+ssh://git@github.com/smithmicro/mapbox-gl-circle.git"},"scripts":{"browserify":"mkdir -p dist && browserify lib/main.js -o dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.js --debug --delay=0 -v","docs":"documentation lint lib/main.js && documentation readme lib/main.js --access public --section=Usage","lint":"eslint lib","prepare":"mkdir -p dist && browserify --standalone MapboxCircle -t [ babelify --presets [ es2015 ] ] lib/main.js | uglifyjs -c -m > dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.min.js && cp -f dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.min.js dist/mapbox-gl-circle.min.js","start":"budo example/index.js --live --force-default-index --title budo/mapbox-gl-circle --verbose -- -t brfs","watchify":"mkdir -p dist && watchify lib/main.js -o dist/mapbox-gl-circle-${BUILD_VERSION:-dev}.js --debug -v"},"version":"1.6.5"} /***/ }), -/* 451 */ +/* 452 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global, module) {var __WEBPACK_AMD_DEFINE_RESULT__;/** @@ -44692,11 +44692,11 @@ module.exports = {"_args":[["mapbox-gl-circle@1.6.5","/var/alchemy/Phraseanet/Ph /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5), __webpack_require__(7)(module))) /***/ }), -/* 452 */ +/* 453 */ /***/ (function(module, exports, __webpack_require__) { -var destination = __webpack_require__(354); -var polygon = __webpack_require__(310).polygon; +var destination = __webpack_require__(355); +var polygon = __webpack_require__(311).polygon; /** * Takes a {@link Point} and calculates the circle polygon given a radius in degrees, radians, miles, or kilometers; and steps for precision. @@ -44740,10 +44740,10 @@ module.exports = function (center, radius, steps, units, properties) { /***/ }), -/* 453 */ +/* 454 */ /***/ (function(module, exports, __webpack_require__) { -var coordEach = __webpack_require__(355).coordEach; +var coordEach = __webpack_require__(356).coordEach; /** * Takes a set of features, calculates the bbox of all input features, and returns a bounding box. @@ -44772,10 +44772,10 @@ module.exports = function (geojson) { /***/ }), -/* 454 */ +/* 455 */ /***/ (function(module, exports, __webpack_require__) { -var polygon = __webpack_require__(310).polygon; +var polygon = __webpack_require__(311).polygon; /** * Takes a bbox and returns an equivalent {@link Polygon|polygon}. @@ -44808,10 +44808,10 @@ module.exports = function (bbox) { /***/ }), -/* 455 */ +/* 456 */ /***/ (function(module, exports, __webpack_require__) { -var coordEach = __webpack_require__(355).coordEach; +var coordEach = __webpack_require__(356).coordEach; /** * Takes a GeoJSON Feature or FeatureCollection and truncates the precision of the geometry. @@ -44878,11 +44878,11 @@ function truncate(coords, factor, coordinates) { /***/ }), -/* 456 */ +/* 457 */ /***/ (function(module, exports, __webpack_require__) { -var getCoord = __webpack_require__(324).getCoord; -var radiansToDistance = __webpack_require__(310).radiansToDistance; +var getCoord = __webpack_require__(325).getCoord; +var radiansToDistance = __webpack_require__(311).radiansToDistance; //http://en.wikipedia.org/wiki/Haversine_formula //http://www.movable-type.co.uk/scripts/latlong.html @@ -44925,10 +44925,10 @@ module.exports = function (from, to, units) { /***/ }), -/* 457 */ +/* 458 */ /***/ (function(module, exports, __webpack_require__) { -var getCoord = __webpack_require__(324).getCoord; +var getCoord = __webpack_require__(325).getCoord; //http://en.wikipedia.org/wiki/Haversine_formula //http://www.movable-type.co.uk/scripts/latlong.html diff --git a/Phraseanet-production-client/dist/lightbox-mobile.js b/Phraseanet-production-client/dist/lightbox-mobile.js index 6c3c2fa7ed..45211b6d77 100644 --- a/Phraseanet-production-client/dist/lightbox-mobile.js +++ b/Phraseanet-production-client/dist/lightbox-mobile.js @@ -70,7 +70,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = "/assets/production/"; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 258); +/******/ return __webpack_require__(__webpack_require__.s = 259); /******/ }) /************************************************************************/ /******/ ({ @@ -5688,13 +5688,13 @@ var ResourceStore = function (_EventEmitter) { /***/ }), -/***/ 258: +/***/ 259: /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function($) { -var _bootstrap = __webpack_require__(259); +var _bootstrap = __webpack_require__(260); var _bootstrap2 = _interopRequireDefault(_bootstrap); @@ -5761,462 +5761,139 @@ module.exports = lightboxMobileApplication; /***/ }), -/***/ 259: -/***/ (function(module, exports, __webpack_require__) { +/***/ 26: +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__logger__ = __webpack_require__(3); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__EventEmitter__ = __webpack_require__(6); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__postProcessor__ = __webpack_require__(12); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__compatibility_v1__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils__ = __webpack_require__(10); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -// import lightbox from './../components/lightbox/index'; -// import mainMenu from './../components/mainMenu'; - +function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } -var _jquery = __webpack_require__(0); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var _jquery2 = _interopRequireDefault(_jquery); +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } -var _configService = __webpack_require__(16); +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } -var _configService2 = _interopRequireDefault(_configService); -var _locale = __webpack_require__(20); -var _locale2 = _interopRequireDefault(_locale); -var _config = __webpack_require__(260); -var _config2 = _interopRequireDefault(_config); -var _emitter = __webpack_require__(15); -var _emitter2 = _interopRequireDefault(_emitter); +var Translator = function (_EventEmitter) { + _inherits(Translator, _EventEmitter); -var _lodash = __webpack_require__(4); + function Translator(services) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; -var _lodash2 = _interopRequireDefault(_lodash); + _classCallCheck(this, Translator); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var _this = _possibleConstructorReturn(this, _EventEmitter.call(this)); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + __WEBPACK_IMPORTED_MODULE_4__utils__["a" /* copy */](['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector'], services, _this); -__webpack_require__(14); -__webpack_require__(19); + _this.options = options; + _this.logger = __WEBPACK_IMPORTED_MODULE_0__logger__["a" /* default */].create('translator'); + return _this; + } -var Bootstrap = function () { - function Bootstrap(userConfig) { - var _this = this; + Translator.prototype.changeLanguage = function changeLanguage(lng) { + if (lng) this.language = lng; + }; - _classCallCheck(this, Bootstrap); + Translator.prototype.exists = function exists(key) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { interpolation: {} }; - var configuration = (0, _lodash2.default)({}, _config2.default, userConfig); + if (this.options.compatibilityAPI === 'v1') { + options = __WEBPACK_IMPORTED_MODULE_3__compatibility_v1__["d" /* convertTOptions */](options); + } - this.appEvents = new _emitter2.default(); - this.configService = new _configService2.default(configuration); - this.validatorLoaded = false; - this.localeService = new _locale2.default({ - configService: this.configService - }); + return this.resolve(key, options) !== undefined; + }; - this.localeService.fetchTranslations().then(function () { - _this.onConfigReady(); - }); + Translator.prototype.extractFromKey = function extractFromKey(key, options) { + var nsSeparator = options.nsSeparator || this.options.nsSeparator; + if (nsSeparator === undefined) nsSeparator = ':'; + var keySeparator = options.keySeparator || this.options.keySeparator || '.'; - return this; + var namespaces = options.ns || this.options.defaultNS; + if (nsSeparator && key.indexOf(nsSeparator) > -1) { + var parts = key.split(nsSeparator); + if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift(); + key = parts.join(keySeparator); } + if (typeof namespaces === 'string') namespaces = [namespaces]; - _createClass(Bootstrap, [{ - key: 'onConfigReady', - value: function onConfigReady() { - var _this2 = this; + return { + key: key, + namespaces: namespaces + }; + }; - this.appServices = { - configService: this.configService, - localeService: this.localeService, - appEvents: this.appEvents - }; + Translator.prototype.translate = function translate(keys) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - window.bodySize = { - x: 0, - y: 0 - }; + if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) !== 'object') { + /* eslint prefer-rest-params: 0 */ + options = this.options.overloadTranslationOptionHandler(arguments); + } else if (this.options.compatibilityAPI === 'v1') { + options = __WEBPACK_IMPORTED_MODULE_3__compatibility_v1__["d" /* convertTOptions */](options); + } - /** - * add components - */ + // non valid keys handling + if (keys === undefined || keys === null || keys === '') return ''; + if (typeof keys === 'number') keys = String(keys); + if (typeof keys === 'string') keys = [keys]; - (0, _jquery2.default)(document).ready(function () { - // let $body = $('body'); - // window.bodySize.y = $body.height(); - // window.bodySize.x = $body.width(); - // - // this.appLightbox = lightbox(this.appServices); - // this.appLightbox.initialize({$container: $body}); - //mainMenu(this.appServices).initialize({$container: $body}); - _this2.mobileValidator(); - // this.isReleasable = this.configService.get('releasable'); - // - // if (this.isReleasable !== null) { - // this.appLightbox.setReleasable(this.isReleasable); - // } - }); - } - }, { - key: 'mobileValidator', - value: function mobileValidator() { - var _this4 = this; + // separators + var keySeparator = options.keySeparator || this.options.keySeparator || '.'; - display_basket(); + // get namespace(s) - /*Get status before send validation*/ - function _getReseaseStatus(el) { - _jquery2.default.ajax({ - url: '/lightbox/ajax/GET_ELEMENTS/' + (0, _jquery2.default)('#basket_validation_id').val() + '/', - dataType: 'json', - error: function error(data) { - (0, _jquery2.default)('.loader', el).css({ - visibility: 'hidden' - }); - }, - timeout: function timeout(data) { - (0, _jquery2.default)('.loader', el).css({ - visibility: 'hidden' - }); - }, - success: function success(data) { - (0, _jquery2.default)('.loader', el).css({ - visibility: 'hidden' - }); - if (data.datas) { - if (data.datas) { - if (data.datas.counts.nul == 0) { - _setRelease((0, _jquery2.default)(this)); - } else { - console.log(data.datas.counts); - (0, _jquery2.default)("#FeedbackRelease .record_accepted").html(data.datas.counts.yes); - (0, _jquery2.default)("#FeedbackRelease .record_refused").html(data.datas.counts.no); - (0, _jquery2.default)("#FeedbackRelease .record_null").html(data.datas.counts.nul); - (0, _jquery2.default)("#FeedbackRelease").modal("show"); - } - } - } + var _extractFromKey = this.extractFromKey(keys[keys.length - 1], options), + key = _extractFromKey.key, + namespaces = _extractFromKey.namespaces; - return; - } - }); - } + var namespace = namespaces[namespaces.length - 1]; - /*Send validation*/ - function _setRelease(el) { - var _this3 = this; + // return key on CIMode + var lng = options.lng || this.language; + var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode; + if (lng && lng.toLowerCase() === 'cimode') { + if (appendNamespaceToCIMode) { + var nsSeparator = options.nsSeparator || this.options.nsSeparator; + return namespace + nsSeparator + key; + } - _jquery2.default.ajax({ - type: 'POST', - url: '/lightbox/ajax/SET_RELEASE/' + (0, _jquery2.default)('#basket_validation_id').val() + '/', - dataType: 'json', - error: function error(data) { - (0, _jquery2.default)('.loader', el).css({ - visibility: 'hidden' - }); - }, - timeout: function timeout(data) { - (0, _jquery2.default)('.loader', el).css({ - visibility: 'hidden' - }); - }, - success: function success(data) { - (0, _jquery2.default)('.loader', el).css({ - visibility: 'hidden' - }); - if (data.datas) { - // alert(data.datas); - window.location.href = "/lightbox"; - } - if (!data.error) { - _this3.isReleasable = false; - //this.appLightbox.setReleasable(this.isReleasable); - } + return key; + } - return; - } - }); - }; + // resolve from store + var res = this.resolve(keys, options); - (0, _jquery2.default)('body').on('touchstart click', '.confirm_report', function (event) { - event.preventDefault(); - var $el = (0, _jquery2.default)(event.currentTarget); - _getReseaseStatus($el); + var resType = Object.prototype.toString.apply(res); + var noObject = ['[object Number]', '[object Function]', '[object RegExp]']; + var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays; - return false; - }); - (0, _jquery2.default)('body').on('touchstart click', '#validate-release', function (event) { - event.preventDefault(); - (0, _jquery2.default)("#FeedbackRelease").modal("hide"); - _setRelease((0, _jquery2.default)(_this4)); - console.log('validation is done'); + // object + if (res && typeof res !== 'string' && noObject.indexOf(resType) < 0 && !(joinArrays && resType === '[object Array]')) { + if (!options.returnObjects && !this.options.returnObjects) { + this.logger.warn('accessing an object - but returnObjects options is not enabled!'); + return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(key, res, options) : 'key \'' + key + ' (' + this.language + ')\' returned an object instead of string.'; + } - return false; - }); - - (0, _jquery2.default)('body').on('touchstart click', '.agreement_radio', function (event) { - event.preventDefault(); - //$('.agreement_radio').on('mousedown', (event) => { - var $el = (0, _jquery2.default)(event.currentTarget); - var sselcont_id = $el.attr('for').split('_').pop(); - var agreement = (0, _jquery2.default)('#' + $el.attr('for')).val() === 'yes' ? '1' : '-1'; - - _jquery2.default.mobile.loading(); - - _jquery2.default.ajax({ - type: 'POST', - url: '/lightbox/ajax/SET_ELEMENT_AGREEMENT/' + sselcont_id + '/', - dataType: 'json', - data: { - agreement: agreement - }, - error: function error(datas) { - console.log('error'); - _jquery2.default.mobile.loading(); - }, - timeout: function timeout(datas) { - console.log('error'); - _jquery2.default.mobile.loading(); - }, - success: function success(datas) { - if (!datas.error) { - if (agreement === 1) { - (0, _jquery2.default)('.valid_choice_' + sselcont_id).removeClass('disagree').addClass('agree'); - } else { - (0, _jquery2.default)('.valid_choice_' + sselcont_id).removeClass('agree').addClass('disagree'); - } - _jquery2.default.mobile.loading(); - if (datas.error) { - alert(datas.datas); - return; - } - _this4.isReleasable = datas.release; - //this.appLightbox.setReleasable(this.isReleasable); - window.location.reload(); - } else { - console.log(datas.datas); - } - return; - } - }); - //return false; - }); - - (0, _jquery2.default)('body').on('touchstart click', '.note_area_validate', function (event) { - - var $el = (0, _jquery2.default)(event.currentTarget); - var sselcont_id = $el.closest('form').find('input[name="sselcont_id"]').val(); - - _jquery2.default.mobile.loading(); - _jquery2.default.ajax({ - type: 'POST', - url: '/lightbox/ajax/SET_NOTE/' + sselcont_id + '/', - dataType: 'json', - data: { - note: (0, _jquery2.default)('#note_form_' + sselcont_id).find('textarea').val() - }, - error: function error(datas) { - console.log('error'); - _jquery2.default.mobile.loading(); - }, - timeout: function timeout(datas) { - console.log('error'); - _jquery2.default.mobile.loading(); - }, - success: function success(datas) { - _jquery2.default.mobile.loading(); - if (datas.error) { - console.log(datas.datas); - return; - } - - (0, _jquery2.default)('#notes_' + sselcont_id).empty().append(datas.datas); - window.location.reload(); - return; - } - }); - return false; - }); - - function display_basket() { - var sc_wrapper = (0, _jquery2.default)('#sc_wrapper'); - - (0, _jquery2.default)('.basket_element', sc_wrapper).parent().bind('click', function (event) { - scid_click(event, this); - adjust_visibility(this); - return false; - }); - - (0, _jquery2.default)('.agree_button, .disagree_button', sc_wrapper).bind('click', function (event) { - - var sselcont_id = (0, _jquery2.default)(this).closest('.basket_element').attr('id').split('_').pop(); - - var agreement = (0, _jquery2.default)(this).hasClass('agree_button') ? '1' : '-1'; - - set_agreement(event, (0, _jquery2.default)(this), sselcont_id, agreement); - return false; - }).addClass('clickable'); - - var n = (0, _jquery2.default)('.basket_element', sc_wrapper).length; - (0, _jquery2.default)('#sc_container').width(n * (0, _jquery2.default)('.basket_element_wrapper:first', sc_wrapper).outerWidth() + 1); - } - - this.validatorLoaded = true; - } - }]); - - return Bootstrap; -}(); - -var bootstrap = function bootstrap(userConfig) { - return new Bootstrap(userConfig); -}; - -exports.default = bootstrap; - -/***/ }), - -/***/ 26: -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__logger__ = __webpack_require__(3); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__EventEmitter__ = __webpack_require__(6); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__postProcessor__ = __webpack_require__(12); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__compatibility_v1__ = __webpack_require__(13); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils__ = __webpack_require__(10); -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } - - - - - - - -var Translator = function (_EventEmitter) { - _inherits(Translator, _EventEmitter); - - function Translator(services) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - _classCallCheck(this, Translator); - - var _this = _possibleConstructorReturn(this, _EventEmitter.call(this)); - - __WEBPACK_IMPORTED_MODULE_4__utils__["a" /* copy */](['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector'], services, _this); - - _this.options = options; - _this.logger = __WEBPACK_IMPORTED_MODULE_0__logger__["a" /* default */].create('translator'); - return _this; - } - - Translator.prototype.changeLanguage = function changeLanguage(lng) { - if (lng) this.language = lng; - }; - - Translator.prototype.exists = function exists(key) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { interpolation: {} }; - - if (this.options.compatibilityAPI === 'v1') { - options = __WEBPACK_IMPORTED_MODULE_3__compatibility_v1__["d" /* convertTOptions */](options); - } - - return this.resolve(key, options) !== undefined; - }; - - Translator.prototype.extractFromKey = function extractFromKey(key, options) { - var nsSeparator = options.nsSeparator || this.options.nsSeparator; - if (nsSeparator === undefined) nsSeparator = ':'; - var keySeparator = options.keySeparator || this.options.keySeparator || '.'; - - var namespaces = options.ns || this.options.defaultNS; - if (nsSeparator && key.indexOf(nsSeparator) > -1) { - var parts = key.split(nsSeparator); - if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift(); - key = parts.join(keySeparator); - } - if (typeof namespaces === 'string') namespaces = [namespaces]; - - return { - key: key, - namespaces: namespaces - }; - }; - - Translator.prototype.translate = function translate(keys) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) !== 'object') { - /* eslint prefer-rest-params: 0 */ - options = this.options.overloadTranslationOptionHandler(arguments); - } else if (this.options.compatibilityAPI === 'v1') { - options = __WEBPACK_IMPORTED_MODULE_3__compatibility_v1__["d" /* convertTOptions */](options); - } - - // non valid keys handling - if (keys === undefined || keys === null || keys === '') return ''; - if (typeof keys === 'number') keys = String(keys); - if (typeof keys === 'string') keys = [keys]; - - // separators - var keySeparator = options.keySeparator || this.options.keySeparator || '.'; - - // get namespace(s) - - var _extractFromKey = this.extractFromKey(keys[keys.length - 1], options), - key = _extractFromKey.key, - namespaces = _extractFromKey.namespaces; - - var namespace = namespaces[namespaces.length - 1]; - - // return key on CIMode - var lng = options.lng || this.language; - var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode; - if (lng && lng.toLowerCase() === 'cimode') { - if (appendNamespaceToCIMode) { - var nsSeparator = options.nsSeparator || this.options.nsSeparator; - return namespace + nsSeparator + key; - } - - return key; - } - - // resolve from store - var res = this.resolve(keys, options); - - var resType = Object.prototype.toString.apply(res); - var noObject = ['[object Number]', '[object Function]', '[object RegExp]']; - var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays; - - // object - if (res && typeof res !== 'string' && noObject.indexOf(resType) < 0 && !(joinArrays && resType === '[object Array]')) { - if (!options.returnObjects && !this.options.returnObjects) { - this.logger.warn('accessing an object - but returnObjects options is not enabled!'); - return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(key, res, options) : 'key \'' + key + ' (' + this.language + ')\' returned an object instead of string.'; - } - - // if we got a separator we loop over children - else we just return object as is - // as having it set to false means no hierarchy so no lookup for nested values - if (options.keySeparator || this.options.keySeparator) { - var copy = resType === '[object Array]' ? [] : {}; // apply child translation on a copy + // if we got a separator we loop over children - else we just return object as is + // as having it set to false means no hierarchy so no lookup for nested values + if (options.keySeparator || this.options.keySeparator) { + var copy = resType === '[object Array]' ? [] : {}; // apply child translation on a copy /* eslint no-restricted-syntax: 0 */ for (var m in res) { @@ -6396,6 +6073,329 @@ var Translator = function (_EventEmitter) { "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); +// import lightbox from './../components/lightbox/index'; +// import mainMenu from './../components/mainMenu'; + + +var _jquery = __webpack_require__(0); + +var _jquery2 = _interopRequireDefault(_jquery); + +var _configService = __webpack_require__(16); + +var _configService2 = _interopRequireDefault(_configService); + +var _locale = __webpack_require__(20); + +var _locale2 = _interopRequireDefault(_locale); + +var _config = __webpack_require__(261); + +var _config2 = _interopRequireDefault(_config); + +var _emitter = __webpack_require__(15); + +var _emitter2 = _interopRequireDefault(_emitter); + +var _lodash = __webpack_require__(4); + +var _lodash2 = _interopRequireDefault(_lodash); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +__webpack_require__(14); +__webpack_require__(19); + +var Bootstrap = function () { + function Bootstrap(userConfig) { + var _this = this; + + _classCallCheck(this, Bootstrap); + + var configuration = (0, _lodash2.default)({}, _config2.default, userConfig); + + this.appEvents = new _emitter2.default(); + this.configService = new _configService2.default(configuration); + this.validatorLoaded = false; + this.localeService = new _locale2.default({ + configService: this.configService + }); + + this.localeService.fetchTranslations().then(function () { + _this.onConfigReady(); + }); + + return this; + } + + _createClass(Bootstrap, [{ + key: 'onConfigReady', + value: function onConfigReady() { + var _this2 = this; + + this.appServices = { + configService: this.configService, + localeService: this.localeService, + appEvents: this.appEvents + }; + + window.bodySize = { + x: 0, + y: 0 + }; + + /** + * add components + */ + + (0, _jquery2.default)(document).ready(function () { + // let $body = $('body'); + // window.bodySize.y = $body.height(); + // window.bodySize.x = $body.width(); + // + // this.appLightbox = lightbox(this.appServices); + // this.appLightbox.initialize({$container: $body}); + //mainMenu(this.appServices).initialize({$container: $body}); + _this2.mobileValidator(); + // this.isReleasable = this.configService.get('releasable'); + // + // if (this.isReleasable !== null) { + // this.appLightbox.setReleasable(this.isReleasable); + // } + }); + } + }, { + key: 'mobileValidator', + value: function mobileValidator() { + var _this4 = this; + + display_basket(); + + /*Get status before send validation*/ + function _getReseaseStatus(el) { + _jquery2.default.ajax({ + url: '/lightbox/ajax/GET_ELEMENTS/' + (0, _jquery2.default)('#basket_validation_id').val() + '/', + dataType: 'json', + error: function error(data) { + (0, _jquery2.default)('.loader', el).css({ + visibility: 'hidden' + }); + }, + timeout: function timeout(data) { + (0, _jquery2.default)('.loader', el).css({ + visibility: 'hidden' + }); + }, + success: function success(data) { + (0, _jquery2.default)('.loader', el).css({ + visibility: 'hidden' + }); + if (data.datas) { + if (data.datas) { + if (data.datas.counts.nul == 0) { + _setRelease((0, _jquery2.default)(this)); + } else { + console.log(data.datas.counts); + (0, _jquery2.default)("#FeedbackRelease .record_accepted").html(data.datas.counts.yes); + (0, _jquery2.default)("#FeedbackRelease .record_refused").html(data.datas.counts.no); + (0, _jquery2.default)("#FeedbackRelease .record_null").html(data.datas.counts.nul); + (0, _jquery2.default)("#FeedbackRelease").modal("show"); + } + } + } + + return; + } + }); + } + + /*Send validation*/ + function _setRelease(el) { + var _this3 = this; + + _jquery2.default.ajax({ + type: 'POST', + url: '/lightbox/ajax/SET_RELEASE/' + (0, _jquery2.default)('#basket_validation_id').val() + '/', + dataType: 'json', + error: function error(data) { + (0, _jquery2.default)('.loader', el).css({ + visibility: 'hidden' + }); + }, + timeout: function timeout(data) { + (0, _jquery2.default)('.loader', el).css({ + visibility: 'hidden' + }); + }, + success: function success(data) { + (0, _jquery2.default)('.loader', el).css({ + visibility: 'hidden' + }); + if (data.datas) { + // alert(data.datas); + window.location.href = "/lightbox"; + } + if (!data.error) { + _this3.isReleasable = false; + //this.appLightbox.setReleasable(this.isReleasable); + } + + return; + } + }); + }; + + (0, _jquery2.default)('body').on('touchstart click', '.confirm_report', function (event) { + event.preventDefault(); + var $el = (0, _jquery2.default)(event.currentTarget); + _getReseaseStatus($el); + + return false; + }); + (0, _jquery2.default)('body').on('touchstart click', '#validate-release', function (event) { + event.preventDefault(); + (0, _jquery2.default)("#FeedbackRelease").modal("hide"); + _setRelease((0, _jquery2.default)(_this4)); + console.log('validation is done'); + + return false; + }); + + (0, _jquery2.default)('body').on('touchstart click', '.agreement_radio', function (event) { + event.preventDefault(); + //$('.agreement_radio').on('mousedown', (event) => { + var $el = (0, _jquery2.default)(event.currentTarget); + var sselcont_id = $el.attr('for').split('_').pop(); + var agreement = (0, _jquery2.default)('#' + $el.attr('for')).val() === 'yes' ? '1' : '-1'; + + _jquery2.default.mobile.loading(); + + _jquery2.default.ajax({ + type: 'POST', + url: '/lightbox/ajax/SET_ELEMENT_AGREEMENT/' + sselcont_id + '/', + dataType: 'json', + data: { + agreement: agreement + }, + error: function error(datas) { + console.log('error'); + _jquery2.default.mobile.loading(); + }, + timeout: function timeout(datas) { + console.log('error'); + _jquery2.default.mobile.loading(); + }, + success: function success(datas) { + if (!datas.error) { + if (agreement === 1) { + (0, _jquery2.default)('.valid_choice_' + sselcont_id).removeClass('disagree').addClass('agree'); + } else { + (0, _jquery2.default)('.valid_choice_' + sselcont_id).removeClass('agree').addClass('disagree'); + } + _jquery2.default.mobile.loading(); + if (datas.error) { + alert(datas.datas); + return; + } + _this4.isReleasable = datas.release; + //this.appLightbox.setReleasable(this.isReleasable); + window.location.reload(); + } else { + console.log(datas.datas); + } + return; + } + }); + //return false; + }); + + (0, _jquery2.default)('body').on('touchstart click', '.note_area_validate', function (event) { + + var $el = (0, _jquery2.default)(event.currentTarget); + var sselcont_id = $el.closest('form').find('input[name="sselcont_id"]').val(); + + _jquery2.default.mobile.loading(); + _jquery2.default.ajax({ + type: 'POST', + url: '/lightbox/ajax/SET_NOTE/' + sselcont_id + '/', + dataType: 'json', + data: { + note: (0, _jquery2.default)('#note_form_' + sselcont_id).find('textarea').val() + }, + error: function error(datas) { + console.log('error'); + _jquery2.default.mobile.loading(); + }, + timeout: function timeout(datas) { + console.log('error'); + _jquery2.default.mobile.loading(); + }, + success: function success(datas) { + _jquery2.default.mobile.loading(); + if (datas.error) { + console.log(datas.datas); + return; + } + + (0, _jquery2.default)('#notes_' + sselcont_id).empty().append(datas.datas); + window.location.reload(); + return; + } + }); + return false; + }); + + function display_basket() { + var sc_wrapper = (0, _jquery2.default)('#sc_wrapper'); + + (0, _jquery2.default)('.basket_element', sc_wrapper).parent().bind('click', function (event) { + scid_click(event, this); + adjust_visibility(this); + return false; + }); + + (0, _jquery2.default)('.agree_button, .disagree_button', sc_wrapper).bind('click', function (event) { + + var sselcont_id = (0, _jquery2.default)(this).closest('.basket_element').attr('id').split('_').pop(); + + var agreement = (0, _jquery2.default)(this).hasClass('agree_button') ? '1' : '-1'; + + set_agreement(event, (0, _jquery2.default)(this), sselcont_id, agreement); + return false; + }).addClass('clickable'); + + var n = (0, _jquery2.default)('.basket_element', sc_wrapper).length; + (0, _jquery2.default)('#sc_container').width(n * (0, _jquery2.default)('.basket_element_wrapper:first', sc_wrapper).outerWidth() + 1); + } + + this.validatorLoaded = true; + } + }]); + + return Bootstrap; +}(); + +var bootstrap = function bootstrap(userConfig) { + return new Bootstrap(userConfig); +}; + +exports.default = bootstrap; + +/***/ }), + +/***/ 261: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/Phraseanet-production-client/dist/lightbox-mobile.min.js b/Phraseanet-production-client/dist/lightbox-mobile.min.js index 6c3c2fa7ed..45211b6d77 100644 --- a/Phraseanet-production-client/dist/lightbox-mobile.min.js +++ b/Phraseanet-production-client/dist/lightbox-mobile.min.js @@ -70,7 +70,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = "/assets/production/"; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 258); +/******/ return __webpack_require__(__webpack_require__.s = 259); /******/ }) /************************************************************************/ /******/ ({ @@ -5688,13 +5688,13 @@ var ResourceStore = function (_EventEmitter) { /***/ }), -/***/ 258: +/***/ 259: /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function($) { -var _bootstrap = __webpack_require__(259); +var _bootstrap = __webpack_require__(260); var _bootstrap2 = _interopRequireDefault(_bootstrap); @@ -5761,462 +5761,139 @@ module.exports = lightboxMobileApplication; /***/ }), -/***/ 259: -/***/ (function(module, exports, __webpack_require__) { +/***/ 26: +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__logger__ = __webpack_require__(3); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__EventEmitter__ = __webpack_require__(6); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__postProcessor__ = __webpack_require__(12); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__compatibility_v1__ = __webpack_require__(13); +/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils__ = __webpack_require__(10); +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); -// import lightbox from './../components/lightbox/index'; -// import mainMenu from './../components/mainMenu'; - +function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } -var _jquery = __webpack_require__(0); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var _jquery2 = _interopRequireDefault(_jquery); +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } -var _configService = __webpack_require__(16); +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } -var _configService2 = _interopRequireDefault(_configService); -var _locale = __webpack_require__(20); -var _locale2 = _interopRequireDefault(_locale); -var _config = __webpack_require__(260); -var _config2 = _interopRequireDefault(_config); -var _emitter = __webpack_require__(15); -var _emitter2 = _interopRequireDefault(_emitter); +var Translator = function (_EventEmitter) { + _inherits(Translator, _EventEmitter); -var _lodash = __webpack_require__(4); + function Translator(services) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; -var _lodash2 = _interopRequireDefault(_lodash); + _classCallCheck(this, Translator); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + var _this = _possibleConstructorReturn(this, _EventEmitter.call(this)); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + __WEBPACK_IMPORTED_MODULE_4__utils__["a" /* copy */](['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector'], services, _this); -__webpack_require__(14); -__webpack_require__(19); + _this.options = options; + _this.logger = __WEBPACK_IMPORTED_MODULE_0__logger__["a" /* default */].create('translator'); + return _this; + } -var Bootstrap = function () { - function Bootstrap(userConfig) { - var _this = this; + Translator.prototype.changeLanguage = function changeLanguage(lng) { + if (lng) this.language = lng; + }; - _classCallCheck(this, Bootstrap); + Translator.prototype.exists = function exists(key) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { interpolation: {} }; - var configuration = (0, _lodash2.default)({}, _config2.default, userConfig); + if (this.options.compatibilityAPI === 'v1') { + options = __WEBPACK_IMPORTED_MODULE_3__compatibility_v1__["d" /* convertTOptions */](options); + } - this.appEvents = new _emitter2.default(); - this.configService = new _configService2.default(configuration); - this.validatorLoaded = false; - this.localeService = new _locale2.default({ - configService: this.configService - }); + return this.resolve(key, options) !== undefined; + }; - this.localeService.fetchTranslations().then(function () { - _this.onConfigReady(); - }); + Translator.prototype.extractFromKey = function extractFromKey(key, options) { + var nsSeparator = options.nsSeparator || this.options.nsSeparator; + if (nsSeparator === undefined) nsSeparator = ':'; + var keySeparator = options.keySeparator || this.options.keySeparator || '.'; - return this; + var namespaces = options.ns || this.options.defaultNS; + if (nsSeparator && key.indexOf(nsSeparator) > -1) { + var parts = key.split(nsSeparator); + if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift(); + key = parts.join(keySeparator); } + if (typeof namespaces === 'string') namespaces = [namespaces]; - _createClass(Bootstrap, [{ - key: 'onConfigReady', - value: function onConfigReady() { - var _this2 = this; + return { + key: key, + namespaces: namespaces + }; + }; - this.appServices = { - configService: this.configService, - localeService: this.localeService, - appEvents: this.appEvents - }; + Translator.prototype.translate = function translate(keys) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - window.bodySize = { - x: 0, - y: 0 - }; + if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) !== 'object') { + /* eslint prefer-rest-params: 0 */ + options = this.options.overloadTranslationOptionHandler(arguments); + } else if (this.options.compatibilityAPI === 'v1') { + options = __WEBPACK_IMPORTED_MODULE_3__compatibility_v1__["d" /* convertTOptions */](options); + } - /** - * add components - */ + // non valid keys handling + if (keys === undefined || keys === null || keys === '') return ''; + if (typeof keys === 'number') keys = String(keys); + if (typeof keys === 'string') keys = [keys]; - (0, _jquery2.default)(document).ready(function () { - // let $body = $('body'); - // window.bodySize.y = $body.height(); - // window.bodySize.x = $body.width(); - // - // this.appLightbox = lightbox(this.appServices); - // this.appLightbox.initialize({$container: $body}); - //mainMenu(this.appServices).initialize({$container: $body}); - _this2.mobileValidator(); - // this.isReleasable = this.configService.get('releasable'); - // - // if (this.isReleasable !== null) { - // this.appLightbox.setReleasable(this.isReleasable); - // } - }); - } - }, { - key: 'mobileValidator', - value: function mobileValidator() { - var _this4 = this; + // separators + var keySeparator = options.keySeparator || this.options.keySeparator || '.'; - display_basket(); + // get namespace(s) - /*Get status before send validation*/ - function _getReseaseStatus(el) { - _jquery2.default.ajax({ - url: '/lightbox/ajax/GET_ELEMENTS/' + (0, _jquery2.default)('#basket_validation_id').val() + '/', - dataType: 'json', - error: function error(data) { - (0, _jquery2.default)('.loader', el).css({ - visibility: 'hidden' - }); - }, - timeout: function timeout(data) { - (0, _jquery2.default)('.loader', el).css({ - visibility: 'hidden' - }); - }, - success: function success(data) { - (0, _jquery2.default)('.loader', el).css({ - visibility: 'hidden' - }); - if (data.datas) { - if (data.datas) { - if (data.datas.counts.nul == 0) { - _setRelease((0, _jquery2.default)(this)); - } else { - console.log(data.datas.counts); - (0, _jquery2.default)("#FeedbackRelease .record_accepted").html(data.datas.counts.yes); - (0, _jquery2.default)("#FeedbackRelease .record_refused").html(data.datas.counts.no); - (0, _jquery2.default)("#FeedbackRelease .record_null").html(data.datas.counts.nul); - (0, _jquery2.default)("#FeedbackRelease").modal("show"); - } - } - } + var _extractFromKey = this.extractFromKey(keys[keys.length - 1], options), + key = _extractFromKey.key, + namespaces = _extractFromKey.namespaces; - return; - } - }); - } + var namespace = namespaces[namespaces.length - 1]; - /*Send validation*/ - function _setRelease(el) { - var _this3 = this; + // return key on CIMode + var lng = options.lng || this.language; + var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode; + if (lng && lng.toLowerCase() === 'cimode') { + if (appendNamespaceToCIMode) { + var nsSeparator = options.nsSeparator || this.options.nsSeparator; + return namespace + nsSeparator + key; + } - _jquery2.default.ajax({ - type: 'POST', - url: '/lightbox/ajax/SET_RELEASE/' + (0, _jquery2.default)('#basket_validation_id').val() + '/', - dataType: 'json', - error: function error(data) { - (0, _jquery2.default)('.loader', el).css({ - visibility: 'hidden' - }); - }, - timeout: function timeout(data) { - (0, _jquery2.default)('.loader', el).css({ - visibility: 'hidden' - }); - }, - success: function success(data) { - (0, _jquery2.default)('.loader', el).css({ - visibility: 'hidden' - }); - if (data.datas) { - // alert(data.datas); - window.location.href = "/lightbox"; - } - if (!data.error) { - _this3.isReleasable = false; - //this.appLightbox.setReleasable(this.isReleasable); - } + return key; + } - return; - } - }); - }; + // resolve from store + var res = this.resolve(keys, options); - (0, _jquery2.default)('body').on('touchstart click', '.confirm_report', function (event) { - event.preventDefault(); - var $el = (0, _jquery2.default)(event.currentTarget); - _getReseaseStatus($el); + var resType = Object.prototype.toString.apply(res); + var noObject = ['[object Number]', '[object Function]', '[object RegExp]']; + var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays; - return false; - }); - (0, _jquery2.default)('body').on('touchstart click', '#validate-release', function (event) { - event.preventDefault(); - (0, _jquery2.default)("#FeedbackRelease").modal("hide"); - _setRelease((0, _jquery2.default)(_this4)); - console.log('validation is done'); + // object + if (res && typeof res !== 'string' && noObject.indexOf(resType) < 0 && !(joinArrays && resType === '[object Array]')) { + if (!options.returnObjects && !this.options.returnObjects) { + this.logger.warn('accessing an object - but returnObjects options is not enabled!'); + return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(key, res, options) : 'key \'' + key + ' (' + this.language + ')\' returned an object instead of string.'; + } - return false; - }); - - (0, _jquery2.default)('body').on('touchstart click', '.agreement_radio', function (event) { - event.preventDefault(); - //$('.agreement_radio').on('mousedown', (event) => { - var $el = (0, _jquery2.default)(event.currentTarget); - var sselcont_id = $el.attr('for').split('_').pop(); - var agreement = (0, _jquery2.default)('#' + $el.attr('for')).val() === 'yes' ? '1' : '-1'; - - _jquery2.default.mobile.loading(); - - _jquery2.default.ajax({ - type: 'POST', - url: '/lightbox/ajax/SET_ELEMENT_AGREEMENT/' + sselcont_id + '/', - dataType: 'json', - data: { - agreement: agreement - }, - error: function error(datas) { - console.log('error'); - _jquery2.default.mobile.loading(); - }, - timeout: function timeout(datas) { - console.log('error'); - _jquery2.default.mobile.loading(); - }, - success: function success(datas) { - if (!datas.error) { - if (agreement === 1) { - (0, _jquery2.default)('.valid_choice_' + sselcont_id).removeClass('disagree').addClass('agree'); - } else { - (0, _jquery2.default)('.valid_choice_' + sselcont_id).removeClass('agree').addClass('disagree'); - } - _jquery2.default.mobile.loading(); - if (datas.error) { - alert(datas.datas); - return; - } - _this4.isReleasable = datas.release; - //this.appLightbox.setReleasable(this.isReleasable); - window.location.reload(); - } else { - console.log(datas.datas); - } - return; - } - }); - //return false; - }); - - (0, _jquery2.default)('body').on('touchstart click', '.note_area_validate', function (event) { - - var $el = (0, _jquery2.default)(event.currentTarget); - var sselcont_id = $el.closest('form').find('input[name="sselcont_id"]').val(); - - _jquery2.default.mobile.loading(); - _jquery2.default.ajax({ - type: 'POST', - url: '/lightbox/ajax/SET_NOTE/' + sselcont_id + '/', - dataType: 'json', - data: { - note: (0, _jquery2.default)('#note_form_' + sselcont_id).find('textarea').val() - }, - error: function error(datas) { - console.log('error'); - _jquery2.default.mobile.loading(); - }, - timeout: function timeout(datas) { - console.log('error'); - _jquery2.default.mobile.loading(); - }, - success: function success(datas) { - _jquery2.default.mobile.loading(); - if (datas.error) { - console.log(datas.datas); - return; - } - - (0, _jquery2.default)('#notes_' + sselcont_id).empty().append(datas.datas); - window.location.reload(); - return; - } - }); - return false; - }); - - function display_basket() { - var sc_wrapper = (0, _jquery2.default)('#sc_wrapper'); - - (0, _jquery2.default)('.basket_element', sc_wrapper).parent().bind('click', function (event) { - scid_click(event, this); - adjust_visibility(this); - return false; - }); - - (0, _jquery2.default)('.agree_button, .disagree_button', sc_wrapper).bind('click', function (event) { - - var sselcont_id = (0, _jquery2.default)(this).closest('.basket_element').attr('id').split('_').pop(); - - var agreement = (0, _jquery2.default)(this).hasClass('agree_button') ? '1' : '-1'; - - set_agreement(event, (0, _jquery2.default)(this), sselcont_id, agreement); - return false; - }).addClass('clickable'); - - var n = (0, _jquery2.default)('.basket_element', sc_wrapper).length; - (0, _jquery2.default)('#sc_container').width(n * (0, _jquery2.default)('.basket_element_wrapper:first', sc_wrapper).outerWidth() + 1); - } - - this.validatorLoaded = true; - } - }]); - - return Bootstrap; -}(); - -var bootstrap = function bootstrap(userConfig) { - return new Bootstrap(userConfig); -}; - -exports.default = bootstrap; - -/***/ }), - -/***/ 26: -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__logger__ = __webpack_require__(3); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__EventEmitter__ = __webpack_require__(6); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__postProcessor__ = __webpack_require__(12); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__compatibility_v1__ = __webpack_require__(13); -/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__utils__ = __webpack_require__(10); -var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass); } - - - - - - - -var Translator = function (_EventEmitter) { - _inherits(Translator, _EventEmitter); - - function Translator(services) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - _classCallCheck(this, Translator); - - var _this = _possibleConstructorReturn(this, _EventEmitter.call(this)); - - __WEBPACK_IMPORTED_MODULE_4__utils__["a" /* copy */](['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector'], services, _this); - - _this.options = options; - _this.logger = __WEBPACK_IMPORTED_MODULE_0__logger__["a" /* default */].create('translator'); - return _this; - } - - Translator.prototype.changeLanguage = function changeLanguage(lng) { - if (lng) this.language = lng; - }; - - Translator.prototype.exists = function exists(key) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { interpolation: {} }; - - if (this.options.compatibilityAPI === 'v1') { - options = __WEBPACK_IMPORTED_MODULE_3__compatibility_v1__["d" /* convertTOptions */](options); - } - - return this.resolve(key, options) !== undefined; - }; - - Translator.prototype.extractFromKey = function extractFromKey(key, options) { - var nsSeparator = options.nsSeparator || this.options.nsSeparator; - if (nsSeparator === undefined) nsSeparator = ':'; - var keySeparator = options.keySeparator || this.options.keySeparator || '.'; - - var namespaces = options.ns || this.options.defaultNS; - if (nsSeparator && key.indexOf(nsSeparator) > -1) { - var parts = key.split(nsSeparator); - if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift(); - key = parts.join(keySeparator); - } - if (typeof namespaces === 'string') namespaces = [namespaces]; - - return { - key: key, - namespaces: namespaces - }; - }; - - Translator.prototype.translate = function translate(keys) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) !== 'object') { - /* eslint prefer-rest-params: 0 */ - options = this.options.overloadTranslationOptionHandler(arguments); - } else if (this.options.compatibilityAPI === 'v1') { - options = __WEBPACK_IMPORTED_MODULE_3__compatibility_v1__["d" /* convertTOptions */](options); - } - - // non valid keys handling - if (keys === undefined || keys === null || keys === '') return ''; - if (typeof keys === 'number') keys = String(keys); - if (typeof keys === 'string') keys = [keys]; - - // separators - var keySeparator = options.keySeparator || this.options.keySeparator || '.'; - - // get namespace(s) - - var _extractFromKey = this.extractFromKey(keys[keys.length - 1], options), - key = _extractFromKey.key, - namespaces = _extractFromKey.namespaces; - - var namespace = namespaces[namespaces.length - 1]; - - // return key on CIMode - var lng = options.lng || this.language; - var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode; - if (lng && lng.toLowerCase() === 'cimode') { - if (appendNamespaceToCIMode) { - var nsSeparator = options.nsSeparator || this.options.nsSeparator; - return namespace + nsSeparator + key; - } - - return key; - } - - // resolve from store - var res = this.resolve(keys, options); - - var resType = Object.prototype.toString.apply(res); - var noObject = ['[object Number]', '[object Function]', '[object RegExp]']; - var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays; - - // object - if (res && typeof res !== 'string' && noObject.indexOf(resType) < 0 && !(joinArrays && resType === '[object Array]')) { - if (!options.returnObjects && !this.options.returnObjects) { - this.logger.warn('accessing an object - but returnObjects options is not enabled!'); - return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(key, res, options) : 'key \'' + key + ' (' + this.language + ')\' returned an object instead of string.'; - } - - // if we got a separator we loop over children - else we just return object as is - // as having it set to false means no hierarchy so no lookup for nested values - if (options.keySeparator || this.options.keySeparator) { - var copy = resType === '[object Array]' ? [] : {}; // apply child translation on a copy + // if we got a separator we loop over children - else we just return object as is + // as having it set to false means no hierarchy so no lookup for nested values + if (options.keySeparator || this.options.keySeparator) { + var copy = resType === '[object Array]' ? [] : {}; // apply child translation on a copy /* eslint no-restricted-syntax: 0 */ for (var m in res) { @@ -6396,6 +6073,329 @@ var Translator = function (_EventEmitter) { "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); +// import lightbox from './../components/lightbox/index'; +// import mainMenu from './../components/mainMenu'; + + +var _jquery = __webpack_require__(0); + +var _jquery2 = _interopRequireDefault(_jquery); + +var _configService = __webpack_require__(16); + +var _configService2 = _interopRequireDefault(_configService); + +var _locale = __webpack_require__(20); + +var _locale2 = _interopRequireDefault(_locale); + +var _config = __webpack_require__(261); + +var _config2 = _interopRequireDefault(_config); + +var _emitter = __webpack_require__(15); + +var _emitter2 = _interopRequireDefault(_emitter); + +var _lodash = __webpack_require__(4); + +var _lodash2 = _interopRequireDefault(_lodash); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +__webpack_require__(14); +__webpack_require__(19); + +var Bootstrap = function () { + function Bootstrap(userConfig) { + var _this = this; + + _classCallCheck(this, Bootstrap); + + var configuration = (0, _lodash2.default)({}, _config2.default, userConfig); + + this.appEvents = new _emitter2.default(); + this.configService = new _configService2.default(configuration); + this.validatorLoaded = false; + this.localeService = new _locale2.default({ + configService: this.configService + }); + + this.localeService.fetchTranslations().then(function () { + _this.onConfigReady(); + }); + + return this; + } + + _createClass(Bootstrap, [{ + key: 'onConfigReady', + value: function onConfigReady() { + var _this2 = this; + + this.appServices = { + configService: this.configService, + localeService: this.localeService, + appEvents: this.appEvents + }; + + window.bodySize = { + x: 0, + y: 0 + }; + + /** + * add components + */ + + (0, _jquery2.default)(document).ready(function () { + // let $body = $('body'); + // window.bodySize.y = $body.height(); + // window.bodySize.x = $body.width(); + // + // this.appLightbox = lightbox(this.appServices); + // this.appLightbox.initialize({$container: $body}); + //mainMenu(this.appServices).initialize({$container: $body}); + _this2.mobileValidator(); + // this.isReleasable = this.configService.get('releasable'); + // + // if (this.isReleasable !== null) { + // this.appLightbox.setReleasable(this.isReleasable); + // } + }); + } + }, { + key: 'mobileValidator', + value: function mobileValidator() { + var _this4 = this; + + display_basket(); + + /*Get status before send validation*/ + function _getReseaseStatus(el) { + _jquery2.default.ajax({ + url: '/lightbox/ajax/GET_ELEMENTS/' + (0, _jquery2.default)('#basket_validation_id').val() + '/', + dataType: 'json', + error: function error(data) { + (0, _jquery2.default)('.loader', el).css({ + visibility: 'hidden' + }); + }, + timeout: function timeout(data) { + (0, _jquery2.default)('.loader', el).css({ + visibility: 'hidden' + }); + }, + success: function success(data) { + (0, _jquery2.default)('.loader', el).css({ + visibility: 'hidden' + }); + if (data.datas) { + if (data.datas) { + if (data.datas.counts.nul == 0) { + _setRelease((0, _jquery2.default)(this)); + } else { + console.log(data.datas.counts); + (0, _jquery2.default)("#FeedbackRelease .record_accepted").html(data.datas.counts.yes); + (0, _jquery2.default)("#FeedbackRelease .record_refused").html(data.datas.counts.no); + (0, _jquery2.default)("#FeedbackRelease .record_null").html(data.datas.counts.nul); + (0, _jquery2.default)("#FeedbackRelease").modal("show"); + } + } + } + + return; + } + }); + } + + /*Send validation*/ + function _setRelease(el) { + var _this3 = this; + + _jquery2.default.ajax({ + type: 'POST', + url: '/lightbox/ajax/SET_RELEASE/' + (0, _jquery2.default)('#basket_validation_id').val() + '/', + dataType: 'json', + error: function error(data) { + (0, _jquery2.default)('.loader', el).css({ + visibility: 'hidden' + }); + }, + timeout: function timeout(data) { + (0, _jquery2.default)('.loader', el).css({ + visibility: 'hidden' + }); + }, + success: function success(data) { + (0, _jquery2.default)('.loader', el).css({ + visibility: 'hidden' + }); + if (data.datas) { + // alert(data.datas); + window.location.href = "/lightbox"; + } + if (!data.error) { + _this3.isReleasable = false; + //this.appLightbox.setReleasable(this.isReleasable); + } + + return; + } + }); + }; + + (0, _jquery2.default)('body').on('touchstart click', '.confirm_report', function (event) { + event.preventDefault(); + var $el = (0, _jquery2.default)(event.currentTarget); + _getReseaseStatus($el); + + return false; + }); + (0, _jquery2.default)('body').on('touchstart click', '#validate-release', function (event) { + event.preventDefault(); + (0, _jquery2.default)("#FeedbackRelease").modal("hide"); + _setRelease((0, _jquery2.default)(_this4)); + console.log('validation is done'); + + return false; + }); + + (0, _jquery2.default)('body').on('touchstart click', '.agreement_radio', function (event) { + event.preventDefault(); + //$('.agreement_radio').on('mousedown', (event) => { + var $el = (0, _jquery2.default)(event.currentTarget); + var sselcont_id = $el.attr('for').split('_').pop(); + var agreement = (0, _jquery2.default)('#' + $el.attr('for')).val() === 'yes' ? '1' : '-1'; + + _jquery2.default.mobile.loading(); + + _jquery2.default.ajax({ + type: 'POST', + url: '/lightbox/ajax/SET_ELEMENT_AGREEMENT/' + sselcont_id + '/', + dataType: 'json', + data: { + agreement: agreement + }, + error: function error(datas) { + console.log('error'); + _jquery2.default.mobile.loading(); + }, + timeout: function timeout(datas) { + console.log('error'); + _jquery2.default.mobile.loading(); + }, + success: function success(datas) { + if (!datas.error) { + if (agreement === 1) { + (0, _jquery2.default)('.valid_choice_' + sselcont_id).removeClass('disagree').addClass('agree'); + } else { + (0, _jquery2.default)('.valid_choice_' + sselcont_id).removeClass('agree').addClass('disagree'); + } + _jquery2.default.mobile.loading(); + if (datas.error) { + alert(datas.datas); + return; + } + _this4.isReleasable = datas.release; + //this.appLightbox.setReleasable(this.isReleasable); + window.location.reload(); + } else { + console.log(datas.datas); + } + return; + } + }); + //return false; + }); + + (0, _jquery2.default)('body').on('touchstart click', '.note_area_validate', function (event) { + + var $el = (0, _jquery2.default)(event.currentTarget); + var sselcont_id = $el.closest('form').find('input[name="sselcont_id"]').val(); + + _jquery2.default.mobile.loading(); + _jquery2.default.ajax({ + type: 'POST', + url: '/lightbox/ajax/SET_NOTE/' + sselcont_id + '/', + dataType: 'json', + data: { + note: (0, _jquery2.default)('#note_form_' + sselcont_id).find('textarea').val() + }, + error: function error(datas) { + console.log('error'); + _jquery2.default.mobile.loading(); + }, + timeout: function timeout(datas) { + console.log('error'); + _jquery2.default.mobile.loading(); + }, + success: function success(datas) { + _jquery2.default.mobile.loading(); + if (datas.error) { + console.log(datas.datas); + return; + } + + (0, _jquery2.default)('#notes_' + sselcont_id).empty().append(datas.datas); + window.location.reload(); + return; + } + }); + return false; + }); + + function display_basket() { + var sc_wrapper = (0, _jquery2.default)('#sc_wrapper'); + + (0, _jquery2.default)('.basket_element', sc_wrapper).parent().bind('click', function (event) { + scid_click(event, this); + adjust_visibility(this); + return false; + }); + + (0, _jquery2.default)('.agree_button, .disagree_button', sc_wrapper).bind('click', function (event) { + + var sselcont_id = (0, _jquery2.default)(this).closest('.basket_element').attr('id').split('_').pop(); + + var agreement = (0, _jquery2.default)(this).hasClass('agree_button') ? '1' : '-1'; + + set_agreement(event, (0, _jquery2.default)(this), sselcont_id, agreement); + return false; + }).addClass('clickable'); + + var n = (0, _jquery2.default)('.basket_element', sc_wrapper).length; + (0, _jquery2.default)('#sc_container').width(n * (0, _jquery2.default)('.basket_element_wrapper:first', sc_wrapper).outerWidth() + 1); + } + + this.validatorLoaded = true; + } + }]); + + return Bootstrap; +}(); + +var bootstrap = function bootstrap(userConfig) { + return new Bootstrap(userConfig); +}; + +exports.default = bootstrap; + +/***/ }), + +/***/ 261: +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/Phraseanet-production-client/dist/lightbox.js b/Phraseanet-production-client/dist/lightbox.js index aac0a3a98f..36695eceac 100644 --- a/Phraseanet-production-client/dist/lightbox.js +++ b/Phraseanet-production-client/dist/lightbox.js @@ -17,13 +17,13 @@ module.exports = __WEBPACK_EXTERNAL_MODULE_0__; /***/ }), -/***/ 253: +/***/ 254: /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function($) { -var _bootstrap = __webpack_require__(254); +var _bootstrap = __webpack_require__(255); var _bootstrap2 = _interopRequireDefault(_bootstrap); @@ -63,7 +63,7 @@ module.exports = lightboxApplication; /***/ }), -/***/ 254: +/***/ 255: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -87,7 +87,7 @@ var _locale = __webpack_require__(20); var _locale2 = _interopRequireDefault(_locale); -var _config = __webpack_require__(255); +var _config = __webpack_require__(256); var _config2 = _interopRequireDefault(_config); @@ -95,7 +95,7 @@ var _emitter = __webpack_require__(15); var _emitter2 = _interopRequireDefault(_emitter); -var _index = __webpack_require__(256); +var _index = __webpack_require__(257); var _index2 = _interopRequireDefault(_index); @@ -190,7 +190,7 @@ exports.default = bootstrap; /***/ }), -/***/ 255: +/***/ 256: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -209,7 +209,7 @@ exports.default = defaultConfig; /***/ }), -/***/ 256: +/***/ 257: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -227,7 +227,7 @@ var _utils = __webpack_require__(57); var _utils2 = _interopRequireDefault(_utils); -var _download = __webpack_require__(257); +var _download = __webpack_require__(258); var _download2 = _interopRequireDefault(_download); @@ -1194,7 +1194,7 @@ exports.default = lightbox; /***/ }), -/***/ 257: +/***/ 258: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1615,5 +1615,5 @@ exports.default = download; /***/ }) -},[253]); +},[254]); }); \ No newline at end of file diff --git a/Phraseanet-production-client/dist/lightbox.min.js b/Phraseanet-production-client/dist/lightbox.min.js index aac0a3a98f..36695eceac 100644 --- a/Phraseanet-production-client/dist/lightbox.min.js +++ b/Phraseanet-production-client/dist/lightbox.min.js @@ -17,13 +17,13 @@ module.exports = __WEBPACK_EXTERNAL_MODULE_0__; /***/ }), -/***/ 253: +/***/ 254: /***/ (function(module, exports, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function($) { -var _bootstrap = __webpack_require__(254); +var _bootstrap = __webpack_require__(255); var _bootstrap2 = _interopRequireDefault(_bootstrap); @@ -63,7 +63,7 @@ module.exports = lightboxApplication; /***/ }), -/***/ 254: +/***/ 255: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -87,7 +87,7 @@ var _locale = __webpack_require__(20); var _locale2 = _interopRequireDefault(_locale); -var _config = __webpack_require__(255); +var _config = __webpack_require__(256); var _config2 = _interopRequireDefault(_config); @@ -95,7 +95,7 @@ var _emitter = __webpack_require__(15); var _emitter2 = _interopRequireDefault(_emitter); -var _index = __webpack_require__(256); +var _index = __webpack_require__(257); var _index2 = _interopRequireDefault(_index); @@ -190,7 +190,7 @@ exports.default = bootstrap; /***/ }), -/***/ 255: +/***/ 256: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -209,7 +209,7 @@ exports.default = defaultConfig; /***/ }), -/***/ 256: +/***/ 257: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -227,7 +227,7 @@ var _utils = __webpack_require__(57); var _utils2 = _interopRequireDefault(_utils); -var _download = __webpack_require__(257); +var _download = __webpack_require__(258); var _download2 = _interopRequireDefault(_download); @@ -1194,7 +1194,7 @@ exports.default = lightbox; /***/ }), -/***/ 257: +/***/ 258: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -1615,5 +1615,5 @@ exports.default = download; /***/ }) -},[253]); +},[254]); }); \ No newline at end of file diff --git a/Phraseanet-production-client/dist/permaview.js b/Phraseanet-production-client/dist/permaview.js index a2897844a4..3852cf13d9 100644 --- a/Phraseanet-production-client/dist/permaview.js +++ b/Phraseanet-production-client/dist/permaview.js @@ -70,7 +70,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = "/assets/production/"; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 261); +/******/ return __webpack_require__(__webpack_require__.s = 262); /******/ }) /************************************************************************/ /******/ ({ @@ -3081,19 +3081,19 @@ exports.default = ApplicationConfigService; /***/ }), -/***/ 261: +/***/ 262: /***/ (function(module, exports, __webpack_require__) { "use strict"; -var _bootstrap = __webpack_require__(262); +var _bootstrap = __webpack_require__(263); var _bootstrap2 = _interopRequireDefault(_bootstrap); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -__webpack_require__(264); +__webpack_require__(265); var PermaviewApplication = { @@ -3108,7 +3108,7 @@ module.exports = PermaviewApplication; /***/ }), -/***/ 262: +/***/ 263: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3122,7 +3122,7 @@ var _configService = __webpack_require__(16); var _configService2 = _interopRequireDefault(_configService); -var _config = __webpack_require__(263); +var _config = __webpack_require__(264); var _config2 = _interopRequireDefault(_config); @@ -3158,7 +3158,7 @@ exports.default = bootstrap; /***/ }), -/***/ 263: +/***/ 264: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3187,7 +3187,7 @@ exports.default = defaultConfig; /***/ }), -/***/ 264: +/***/ 265: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin diff --git a/Phraseanet-production-client/dist/permaview.min.js b/Phraseanet-production-client/dist/permaview.min.js index a2897844a4..3852cf13d9 100644 --- a/Phraseanet-production-client/dist/permaview.min.js +++ b/Phraseanet-production-client/dist/permaview.min.js @@ -70,7 +70,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = "/assets/production/"; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 261); +/******/ return __webpack_require__(__webpack_require__.s = 262); /******/ }) /************************************************************************/ /******/ ({ @@ -3081,19 +3081,19 @@ exports.default = ApplicationConfigService; /***/ }), -/***/ 261: +/***/ 262: /***/ (function(module, exports, __webpack_require__) { "use strict"; -var _bootstrap = __webpack_require__(262); +var _bootstrap = __webpack_require__(263); var _bootstrap2 = _interopRequireDefault(_bootstrap); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -__webpack_require__(264); +__webpack_require__(265); var PermaviewApplication = { @@ -3108,7 +3108,7 @@ module.exports = PermaviewApplication; /***/ }), -/***/ 262: +/***/ 263: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3122,7 +3122,7 @@ var _configService = __webpack_require__(16); var _configService2 = _interopRequireDefault(_configService); -var _config = __webpack_require__(263); +var _config = __webpack_require__(264); var _config2 = _interopRequireDefault(_config); @@ -3158,7 +3158,7 @@ exports.default = bootstrap; /***/ }), -/***/ 263: +/***/ 264: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3187,7 +3187,7 @@ exports.default = defaultConfig; /***/ }), -/***/ 264: +/***/ 265: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin diff --git a/Phraseanet-production-client/dist/production.js b/Phraseanet-production-client/dist/production.js index 0ea0d75acd..4f2e56c610 100644 --- a/Phraseanet-production-client/dist/production.js +++ b/Phraseanet-production-client/dist/production.js @@ -1881,14 +1881,14 @@ var leafletMap = function leafletMap(services) { } __webpack_require__.e/* require.ensure */(3).then((function () { // select geocoding provider: - mapbox = __webpack_require__(296); - leafletDraw = __webpack_require__(297); - __webpack_require__(298); + mapbox = __webpack_require__(297); + leafletDraw = __webpack_require__(298); + __webpack_require__(299); mapboxgl = __webpack_require__(71); - var MapboxClient = __webpack_require__(299); - var MapboxLanguage = __webpack_require__(300); - MapboxCircle = __webpack_require__(301); - turf = __webpack_require__(302); + var MapboxClient = __webpack_require__(300); + var MapboxLanguage = __webpack_require__(301); + MapboxCircle = __webpack_require__(302); + turf = __webpack_require__(303); $container.empty().append('
'); @@ -4966,11 +4966,11 @@ var _mainMenu = __webpack_require__(78); var _mainMenu2 = _interopRequireDefault(_mainMenu); -var _keyboard = __webpack_require__(217); +var _keyboard = __webpack_require__(218); var _keyboard2 = _interopRequireDefault(_keyboard); -var _cgu = __webpack_require__(218); +var _cgu = __webpack_require__(219); var _cgu2 = _interopRequireDefault(_cgu); @@ -4982,19 +4982,19 @@ var _export = __webpack_require__(76); var _export2 = _interopRequireDefault(_export); -var _share = __webpack_require__(219); +var _share = __webpack_require__(220); var _share2 = _interopRequireDefault(_share); -var _index = __webpack_require__(220); +var _index = __webpack_require__(221); var _index2 = _interopRequireDefault(_index); -var _addToBasket = __webpack_require__(227); +var _addToBasket = __webpack_require__(228); var _addToBasket2 = _interopRequireDefault(_addToBasket); -var _removeFromBasket = __webpack_require__(228); +var _removeFromBasket = __webpack_require__(229); var _removeFromBasket2 = _interopRequireDefault(_removeFromBasket); @@ -5002,7 +5002,7 @@ var _print = __webpack_require__(77); var _print2 = _interopRequireDefault(_print); -var _preferences = __webpack_require__(229); +var _preferences = __webpack_require__(230); var _preferences2 = _interopRequireDefault(_preferences); @@ -5010,7 +5010,7 @@ var _order = __webpack_require__(79); var _order2 = _interopRequireDefault(_order); -var _recordPreview = __webpack_require__(233); +var _recordPreview = __webpack_require__(234); var _recordPreview2 = _interopRequireDefault(_recordPreview); @@ -5018,7 +5018,7 @@ var _alert = __webpack_require__(47); var _alert2 = _interopRequireDefault(_alert); -var _uploader = __webpack_require__(237); +var _uploader = __webpack_require__(238); var _uploader2 = _interopRequireDefault(_uploader); @@ -7425,6 +7425,10 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); +var _pusherJs = __webpack_require__(210); + +var _pusherJs2 = _interopRequireDefault(_pusherJs); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var humane = __webpack_require__(9); @@ -7701,7 +7705,31 @@ var exportRecord = function exportRecord(services) { (0, _jquery2.default)('#sendmail form').submit(); humane.infoLarge((0, _jquery2.default)('#export-send-mail-notif').val()); - $dialog.close(); + // $dialog.close(); + + + // Enable pusher logging - don't include this in production + _pusherJs2.default.logToConsole = true; + var pusher = new _pusherJs2.default('07b97d8d50b1f2b3d515', { + cluster: 'eu' + }); + var channel = pusher.subscribe("my-channel"); + pusher.connection.bind("state_change", function (states) { + // states = {previous: 'oldState', current: 'newState'} + console.log("========== connection changed : ========== ", states); + }); + channel.bind("my-event", function (data) { + // Method to be dispatched on trigger. + console.log("========== received from pusher : ========== ", data); + channel.unbind("my-event"); + console.log("========== channel unbinded ========== "); + channel.disconnect(); + console.log("========== channel disconnected ========== "); + pusher.unsubscribe("my-channel"); + console.log("========== pusher unsubscribed ========== "); + pusher.disconnect(); + console.log("========== pusher disconnected ========== "); + }); }); (0, _jquery2.default)('.datepicker', $dialog.getDomElement()).datepicker({ @@ -7933,7 +7961,7 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _orderItem = __webpack_require__(232); +var _orderItem = __webpack_require__(233); var _orderItem2 = _interopRequireDefault(_orderItem); @@ -9166,14 +9194,14 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -__webpack_require__(246); - __webpack_require__(247); + __webpack_require__(248); __webpack_require__(249); __webpack_require__(250); __webpack_require__(251); __webpack_require__(252); +__webpack_require__(253); _jquery2.default.widget.bridge('uitooltip', _jquery2.default.fn.tooltip); //window.btn = $.fn.button.noConflict(); // reverts $.fn.button to jqueryui btn @@ -9568,7 +9596,7 @@ var _configService = __webpack_require__(16); var _configService2 = _interopRequireDefault(_configService); -var _config = __webpack_require__(238); +var _config = __webpack_require__(239); var _config2 = _interopRequireDefault(_config); @@ -9576,15 +9604,15 @@ var _emitter = __webpack_require__(15); var _emitter2 = _interopRequireDefault(_emitter); -var _user = __webpack_require__(239); +var _user = __webpack_require__(240); var _user2 = _interopRequireDefault(_user); -var _basket = __webpack_require__(240); +var _basket = __webpack_require__(241); var _basket2 = _interopRequireDefault(_basket); -var _search = __webpack_require__(241); +var _search = __webpack_require__(242); var _search2 = _interopRequireDefault(_search); @@ -9607,7 +9635,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var humane = __webpack_require__(9); -__webpack_require__(245); +__webpack_require__(246); var Bootstrap = function () { function Bootstrap(userConfig) { @@ -21582,7 +21610,7 @@ var _export = __webpack_require__(76); var _export2 = _interopRequireDefault(_export); -var _property = __webpack_require__(210); +var _property = __webpack_require__(211); var _property2 = _interopRequireDefault(_property); @@ -21590,15 +21618,15 @@ var _sharebasketModal = __webpack_require__(61); var _sharebasketModal2 = _interopRequireDefault(_sharebasketModal); -var _pushbasketModal = __webpack_require__(211); +var _pushbasketModal = __webpack_require__(212); var _pushbasketModal2 = _interopRequireDefault(_pushbasketModal); -var _publish = __webpack_require__(212); +var _publish = __webpack_require__(213); var _publish2 = _interopRequireDefault(_publish); -var _index = __webpack_require__(213); +var _index = __webpack_require__(214); var _index2 = _interopRequireDefault(_index); @@ -21606,7 +21634,7 @@ var _print = __webpack_require__(77); var _print2 = _interopRequireDefault(_print); -var _bridge = __webpack_require__(215); +var _bridge = __webpack_require__(216); var _bridge2 = _interopRequireDefault(_bridge); @@ -62423,274 +62451,4819 @@ exports.default = deleteRecord; /* 210 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _jquery = __webpack_require__(0); - -var _jquery2 = _interopRequireDefault(_jquery); - -var _dialog = __webpack_require__(1); - -var _dialog2 = _interopRequireDefault(_dialog); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +/*! + * Pusher JavaScript Library v8.3.0 + * https://pusher.com/ + * + * Copyright 2020, Pusher + * Released under the MIT licence. + */ -var propertyRecord = function propertyRecord(services) { - var configService = services.configService, - localeService = services.localeService, - appEvents = services.appEvents; +(function webpackUniversalModuleDefinition(root, factory) { + if(true) + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["Pusher"] = factory(); + else + root["Pusher"] = factory(); +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 2); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { - var url = configService.get('baseUrl'); +"use strict"; - var openModal = function openModal(datas) { - return doProperty(datas); +// Copyright (C) 2016 Dmitry Chestnykh +// MIT License. See LICENSE file for details. +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); }; - - var doProperty = function doProperty(datas) { - var $dialog = _dialog2.default.create(services, { - size: 'Medium', - title: (0, _jquery2.default)('#property-title').val() - }); - - _jquery2.default.ajax({ - type: 'GET', - data: datas, - url: url + 'prod/records/property/', - success: function success(data) { - $dialog.setContent(data); - _onPropertyReady($dialog); + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Package base64 implements Base64 encoding and decoding. + */ +// Invalid character used in decoding to indicate +// that the character to decode is out of range of +// alphabet and cannot be decoded. +var INVALID_BYTE = 256; +/** + * Implements standard Base64 encoding. + * + * Operates in constant time. + */ +var Coder = /** @class */ (function () { + // TODO(dchest): methods to encode chunk-by-chunk. + function Coder(_paddingCharacter) { + if (_paddingCharacter === void 0) { _paddingCharacter = "="; } + this._paddingCharacter = _paddingCharacter; + } + Coder.prototype.encodedLength = function (length) { + if (!this._paddingCharacter) { + return (length * 8 + 5) / 6 | 0; + } + return (length + 2) / 3 * 4 | 0; + }; + Coder.prototype.encode = function (data) { + var out = ""; + var i = 0; + for (; i < data.length - 2; i += 3) { + var c = (data[i] << 16) | (data[i + 1] << 8) | (data[i + 2]); + out += this._encodeByte((c >>> 3 * 6) & 63); + out += this._encodeByte((c >>> 2 * 6) & 63); + out += this._encodeByte((c >>> 1 * 6) & 63); + out += this._encodeByte((c >>> 0 * 6) & 63); + } + var left = data.length - i; + if (left > 0) { + var c = (data[i] << 16) | (left === 2 ? data[i + 1] << 8 : 0); + out += this._encodeByte((c >>> 3 * 6) & 63); + out += this._encodeByte((c >>> 2 * 6) & 63); + if (left === 2) { + out += this._encodeByte((c >>> 1 * 6) & 63); } - }); - - return true; + else { + out += this._paddingCharacter || ""; + } + out += this._paddingCharacter || ""; + } + return out; }; - - var _onPropertyReady = function _onPropertyReady($dialog) { - (0, _jquery2.default)('#tabs-records-property').tabs({ - beforeLoad: function beforeLoad(event, ui) { - - ui.ajaxSettings.data = { - lst: (0, _jquery2.default)('input[name=original_selection]', (0, _jquery2.default)(this)).val() - }; - - // load template only once - if (ui.tab.data('loaded')) { - event.preventDefault(); - return; + Coder.prototype.maxDecodedLength = function (length) { + if (!this._paddingCharacter) { + return (length * 6 + 7) / 8 | 0; + } + return length / 4 * 3 | 0; + }; + Coder.prototype.decodedLength = function (s) { + return this.maxDecodedLength(s.length - this._getPaddingLength(s)); + }; + Coder.prototype.decode = function (s) { + if (s.length === 0) { + return new Uint8Array(0); + } + var paddingLength = this._getPaddingLength(s); + var length = s.length - paddingLength; + var out = new Uint8Array(this.maxDecodedLength(length)); + var op = 0; + var i = 0; + var haveBad = 0; + var v0 = 0, v1 = 0, v2 = 0, v3 = 0; + for (; i < length - 4; i += 4) { + v0 = this._decodeChar(s.charCodeAt(i + 0)); + v1 = this._decodeChar(s.charCodeAt(i + 1)); + v2 = this._decodeChar(s.charCodeAt(i + 2)); + v3 = this._decodeChar(s.charCodeAt(i + 3)); + out[op++] = (v0 << 2) | (v1 >>> 4); + out[op++] = (v1 << 4) | (v2 >>> 2); + out[op++] = (v2 << 6) | v3; + haveBad |= v0 & INVALID_BYTE; + haveBad |= v1 & INVALID_BYTE; + haveBad |= v2 & INVALID_BYTE; + haveBad |= v3 & INVALID_BYTE; + } + if (i < length - 1) { + v0 = this._decodeChar(s.charCodeAt(i)); + v1 = this._decodeChar(s.charCodeAt(i + 1)); + out[op++] = (v0 << 2) | (v1 >>> 4); + haveBad |= v0 & INVALID_BYTE; + haveBad |= v1 & INVALID_BYTE; + } + if (i < length - 2) { + v2 = this._decodeChar(s.charCodeAt(i + 2)); + out[op++] = (v1 << 4) | (v2 >>> 2); + haveBad |= v2 & INVALID_BYTE; + } + if (i < length - 3) { + v3 = this._decodeChar(s.charCodeAt(i + 3)); + out[op++] = (v2 << 6) | v3; + haveBad |= v3 & INVALID_BYTE; + } + if (haveBad !== 0) { + throw new Error("Base64Coder: incorrect characters for decoding"); + } + return out; + }; + // Standard encoding have the following encoded/decoded ranges, + // which we need to convert between. + // + // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 + / + // Index: 0 - 25 26 - 51 52 - 61 62 63 + // ASCII: 65 - 90 97 - 122 48 - 57 43 47 + // + // Encode 6 bits in b into a new character. + Coder.prototype._encodeByte = function (b) { + // Encoding uses constant time operations as follows: + // + // 1. Define comparison of A with B using (A - B) >>> 8: + // if A > B, then result is positive integer + // if A <= B, then result is 0 + // + // 2. Define selection of C or 0 using bitwise AND: X & C: + // if X == 0, then result is 0 + // if X != 0, then result is C + // + // 3. Start with the smallest comparison (b >= 0), which is always + // true, so set the result to the starting ASCII value (65). + // + // 4. Continue comparing b to higher ASCII values, and selecting + // zero if comparison isn't true, otherwise selecting a value + // to add to result, which: + // + // a) undoes the previous addition + // b) provides new value to add + // + var result = b; + // b >= 0 + result += 65; + // b > 25 + result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97); + // b > 51 + result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48); + // b > 61 + result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 43); + // b > 62 + result += ((62 - b) >>> 8) & ((62 - 43) - 63 + 47); + return String.fromCharCode(result); + }; + // Decode a character code into a byte. + // Must return 256 if character is out of alphabet range. + Coder.prototype._decodeChar = function (c) { + // Decoding works similar to encoding: using the same comparison + // function, but now it works on ranges: result is always incremented + // by value, but this value becomes zero if the range is not + // satisfied. + // + // Decoding starts with invalid value, 256, which is then + // subtracted when the range is satisfied. If none of the ranges + // apply, the function returns 256, which is then checked by + // the caller to throw error. + var result = INVALID_BYTE; // start with invalid character + // c == 43 (c > 42 and c < 44) + result += (((42 - c) & (c - 44)) >>> 8) & (-INVALID_BYTE + c - 43 + 62); + // c == 47 (c > 46 and c < 48) + result += (((46 - c) & (c - 48)) >>> 8) & (-INVALID_BYTE + c - 47 + 63); + // c > 47 and c < 58 + result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52); + // c > 64 and c < 91 + result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0); + // c > 96 and c < 123 + result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26); + return result; + }; + Coder.prototype._getPaddingLength = function (s) { + var paddingLength = 0; + if (this._paddingCharacter) { + for (var i = s.length - 1; i >= 0; i--) { + if (s[i] !== this._paddingCharacter) { + break; } - - ui.jqXHR.success(function () { - ui.tab.data('loaded', true); - ui.tab.find('span').html(''); - typeTabContent($dialog, '#' + ui.tab.attr('aria-controls')); - }); - - ui.tab.find('span').html('' + localeService.t('loading') + ''); - }, - load: function load(event, ui) { - ui.tab.find('span').empty(); + paddingLength++; } - }); - propertyTabContent($dialog); + if (s.length < 4 || paddingLength > 2) { + throw new Error("Base64Coder: incorrect padding"); + } + } + return paddingLength; }; - /** - * Property Tab - * @param $dialogBox - */ - var propertyTabContent = function propertyTabContent($dialog) { - - var $propertyContainer = (0, _jquery2.default)('#property-status'); - - $propertyContainer.on('click', 'button.cancel', function () { - $dialog.close(); - }); - - $propertyContainer.on('click', 'button.submiter', function () { - var $this = (0, _jquery2.default)(this); - var form = (0, _jquery2.default)(this).closest('form'); - var loader = form.find('form-action-loader'); - - _jquery2.default.ajax({ - type: form.attr('method'), - url: form.attr('action'), - data: form.serializeArray(), - dataType: 'json', - beforeSend: function beforeSend() { - $this.attr('disabled', true); - loader.show(); - }, - success: function success(data) { - $dialog.close(); - }, - complete: function complete() { - $this.attr('disabled', false); - loader.hide(); - } - }); - }); + return Coder; +}()); +exports.Coder = Coder; +var stdCoder = new Coder(); +function encode(data) { + return stdCoder.encode(data); +} +exports.encode = encode; +function decode(s) { + return stdCoder.decode(s); +} +exports.decode = decode; +/** + * Implements URL-safe Base64 encoding. + * (Same as Base64, but '+' is replaced with '-', and '/' with '_'). + * + * Operates in constant time. + */ +var URLSafeCoder = /** @class */ (function (_super) { + __extends(URLSafeCoder, _super); + function URLSafeCoder() { + return _super !== null && _super.apply(this, arguments) || this; + } + // URL-safe encoding have the following encoded/decoded ranges: + // + // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 - _ + // Index: 0 - 25 26 - 51 52 - 61 62 63 + // ASCII: 65 - 90 97 - 122 48 - 57 45 95 + // + URLSafeCoder.prototype._encodeByte = function (b) { + var result = b; + // b >= 0 + result += 65; + // b > 25 + result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97); + // b > 51 + result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48); + // b > 61 + result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 45); + // b > 62 + result += ((62 - b) >>> 8) & ((62 - 45) - 63 + 95); + return String.fromCharCode(result); }; - /** - * Type Tab - * @param $dialog - * @param typeContainerId - */ - var typeTabContent = function typeTabContent($dialog, typeContainerId) { - - var $typeContainer = (0, _jquery2.default)(typeContainerId); - - $typeContainer.on('click', 'button.cancel', function () { - $dialog.close(); - }); - $typeContainer.on('click', 'button.submiter', function () { - var $this = (0, _jquery2.default)(this); - var form = (0, _jquery2.default)(this).closest('form'); - var loader = form.find('form-action-loader'); - - _jquery2.default.ajax({ - type: form.attr('method'), - url: form.attr('action'), - data: form.serializeArray(), - dataType: 'json', - beforeSend: function beforeSend() { - $this.attr('disabled', true); - loader.show(); - }, - success: function success(data) { - $dialog.close(); - }, - complete: function complete() { - $this.attr('disabled', false); - loader.hide(); - } - }); - }); + URLSafeCoder.prototype._decodeChar = function (c) { + var result = INVALID_BYTE; + // c == 45 (c > 44 and c < 46) + result += (((44 - c) & (c - 46)) >>> 8) & (-INVALID_BYTE + c - 45 + 62); + // c == 95 (c > 94 and c < 96) + result += (((94 - c) & (c - 96)) >>> 8) & (-INVALID_BYTE + c - 95 + 63); + // c > 47 and c < 58 + result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52); + // c > 64 and c < 91 + result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0); + // c > 96 and c < 123 + result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26); + return result; }; - - return { openModal: openModal }; + return URLSafeCoder; +}(Coder)); +exports.URLSafeCoder = URLSafeCoder; +var urlSafeCoder = new URLSafeCoder(); +function encodeURLSafe(data) { + return urlSafeCoder.encode(data); +} +exports.encodeURLSafe = encodeURLSafe; +function decodeURLSafe(s) { + return urlSafeCoder.decode(s); +} +exports.decodeURLSafe = decodeURLSafe; +exports.encodedLength = function (length) { + return stdCoder.encodedLength(length); +}; +exports.maxDecodedLength = function (length) { + return stdCoder.maxDecodedLength(length); +}; +exports.decodedLength = function (s) { + return stdCoder.decodedLength(s); }; -exports.default = propertyRecord; /***/ }), -/* 211 */ +/* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +// Copyright (C) 2016 Dmitry Chestnykh +// MIT License. See LICENSE file for details. +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Package utf8 implements UTF-8 encoding and decoding. + */ +var INVALID_UTF16 = "utf8: invalid string"; +var INVALID_UTF8 = "utf8: invalid source encoding"; +/** + * Encodes the given string into UTF-8 byte array. + * Throws if the source string has invalid UTF-16 encoding. + */ +function encode(s) { + // Calculate result length and allocate output array. + // encodedLength() also validates string and throws errors, + // so we don't need repeat validation here. + var arr = new Uint8Array(encodedLength(s)); + var pos = 0; + for (var i = 0; i < s.length; i++) { + var c = s.charCodeAt(i); + if (c < 0x80) { + arr[pos++] = c; + } + else if (c < 0x800) { + arr[pos++] = 0xc0 | c >> 6; + arr[pos++] = 0x80 | c & 0x3f; + } + else if (c < 0xd800) { + arr[pos++] = 0xe0 | c >> 12; + arr[pos++] = 0x80 | (c >> 6) & 0x3f; + arr[pos++] = 0x80 | c & 0x3f; + } + else { + i++; // get one more character + c = (c & 0x3ff) << 10; + c |= s.charCodeAt(i) & 0x3ff; + c += 0x10000; + arr[pos++] = 0xf0 | c >> 18; + arr[pos++] = 0x80 | (c >> 12) & 0x3f; + arr[pos++] = 0x80 | (c >> 6) & 0x3f; + arr[pos++] = 0x80 | c & 0x3f; + } + } + return arr; +} +exports.encode = encode; +/** + * Returns the number of bytes required to encode the given string into UTF-8. + * Throws if the source string has invalid UTF-16 encoding. + */ +function encodedLength(s) { + var result = 0; + for (var i = 0; i < s.length; i++) { + var c = s.charCodeAt(i); + if (c < 0x80) { + result += 1; + } + else if (c < 0x800) { + result += 2; + } + else if (c < 0xd800) { + result += 3; + } + else if (c <= 0xdfff) { + if (i >= s.length - 1) { + throw new Error(INVALID_UTF16); + } + i++; // "eat" next character + result += 4; + } + else { + throw new Error(INVALID_UTF16); + } + } + return result; +} +exports.encodedLength = encodedLength; +/** + * Decodes the given byte array from UTF-8 into a string. + * Throws if encoding is invalid. + */ +function decode(arr) { + var chars = []; + for (var i = 0; i < arr.length; i++) { + var b = arr[i]; + if (b & 0x80) { + var min = void 0; + if (b < 0xe0) { + // Need 1 more byte. + if (i >= arr.length) { + throw new Error(INVALID_UTF8); + } + var n1 = arr[++i]; + if ((n1 & 0xc0) !== 0x80) { + throw new Error(INVALID_UTF8); + } + b = (b & 0x1f) << 6 | (n1 & 0x3f); + min = 0x80; + } + else if (b < 0xf0) { + // Need 2 more bytes. + if (i >= arr.length - 1) { + throw new Error(INVALID_UTF8); + } + var n1 = arr[++i]; + var n2 = arr[++i]; + if ((n1 & 0xc0) !== 0x80 || (n2 & 0xc0) !== 0x80) { + throw new Error(INVALID_UTF8); + } + b = (b & 0x0f) << 12 | (n1 & 0x3f) << 6 | (n2 & 0x3f); + min = 0x800; + } + else if (b < 0xf8) { + // Need 3 more bytes. + if (i >= arr.length - 2) { + throw new Error(INVALID_UTF8); + } + var n1 = arr[++i]; + var n2 = arr[++i]; + var n3 = arr[++i]; + if ((n1 & 0xc0) !== 0x80 || (n2 & 0xc0) !== 0x80 || (n3 & 0xc0) !== 0x80) { + throw new Error(INVALID_UTF8); + } + b = (b & 0x0f) << 18 | (n1 & 0x3f) << 12 | (n2 & 0x3f) << 6 | (n3 & 0x3f); + min = 0x10000; + } + else { + throw new Error(INVALID_UTF8); + } + if (b < min || (b >= 0xd800 && b <= 0xdfff)) { + throw new Error(INVALID_UTF8); + } + if (b >= 0x10000) { + // Surrogate pair. + if (b > 0x10ffff) { + throw new Error(INVALID_UTF8); + } + b -= 0x10000; + chars.push(String.fromCharCode(0xd800 | (b >> 10))); + b = 0xdc00 | (b & 0x3ff); + } + } + chars.push(String.fromCharCode(b)); + } + return chars.join(""); +} +exports.decode = decode; -Object.defineProperty(exports, "__esModule", { - value: true -}); -var _jquery = __webpack_require__(0); +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { -var _jquery2 = _interopRequireDefault(_jquery); +// required so we don't have to do require('pusher').default etc. +module.exports = __webpack_require__(3).default; -var _dialog = __webpack_require__(1); -var _dialog2 = _interopRequireDefault(_dialog); +/***/ }), +/* 3 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -var _index = __webpack_require__(62); +"use strict"; +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); + +// CONCATENATED MODULE: ./src/runtimes/web/dom/script_receiver_factory.ts +class ScriptReceiverFactory { + constructor(prefix, name) { + this.lastId = 0; + this.prefix = prefix; + this.name = name; + } + create(callback) { + this.lastId++; + var number = this.lastId; + var id = this.prefix + number; + var name = this.name + '[' + number + ']'; + var called = false; + var callbackWrapper = function () { + if (!called) { + callback.apply(null, arguments); + called = true; + } + }; + this[number] = callbackWrapper; + return { number: number, id: id, name: name, callback: callbackWrapper }; + } + remove(receiver) { + delete this[receiver.number]; + } +} +var ScriptReceivers = new ScriptReceiverFactory('_pusher_script_', 'Pusher.ScriptReceivers'); + +// CONCATENATED MODULE: ./src/core/defaults.ts +var Defaults = { + VERSION: "8.3.0", + PROTOCOL: 7, + wsPort: 80, + wssPort: 443, + wsPath: '', + httpHost: 'sockjs.pusher.com', + httpPort: 80, + httpsPort: 443, + httpPath: '/pusher', + stats_host: 'stats.pusher.com', + authEndpoint: '/pusher/auth', + authTransport: 'ajax', + activityTimeout: 120000, + pongTimeout: 30000, + unavailableTimeout: 10000, + userAuthentication: { + endpoint: '/pusher/user-auth', + transport: 'ajax' + }, + channelAuthorization: { + endpoint: '/pusher/auth', + transport: 'ajax' + }, + cdn_http: "http://js.pusher.com", + cdn_https: "https://js.pusher.com", + dependency_suffix: "" +}; +/* harmony default export */ var defaults = (Defaults); -var _index2 = _interopRequireDefault(_index); +// CONCATENATED MODULE: ./src/runtimes/web/dom/dependency_loader.ts -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var pushbasketModal = function pushbasketModal(services, datas) { - var configService = services.configService, - localeService = services.localeService, - appEvents = services.appEvents; +class dependency_loader_DependencyLoader { + constructor(options) { + this.options = options; + this.receivers = options.receivers || ScriptReceivers; + this.loading = {}; + } + load(name, options, callback) { + var self = this; + if (self.loading[name] && self.loading[name].length > 0) { + self.loading[name].push(callback); + } + else { + self.loading[name] = [callback]; + var request = runtime.createScriptRequest(self.getPath(name, options)); + var receiver = self.receivers.create(function (error) { + self.receivers.remove(receiver); + if (self.loading[name]) { + var callbacks = self.loading[name]; + delete self.loading[name]; + var successCallback = function (wasSuccessful) { + if (!wasSuccessful) { + request.cleanup(); + } + }; + for (var i = 0; i < callbacks.length; i++) { + callbacks[i](error, successCallback); + } + } + }); + request.send(receiver); + } + } + getRoot(options) { + var cdn; + var protocol = runtime.getDocument().location.protocol; + if ((options && options.useTLS) || protocol === 'https:') { + cdn = this.options.cdn_https; + } + else { + cdn = this.options.cdn_http; + } + return cdn.replace(/\/*$/, '') + '/' + this.options.version; + } + getPath(name, options) { + return this.getRoot(options) + '/' + name + this.options.suffix + '.js'; + } +} - var url = configService.get('baseUrl'); +// CONCATENATED MODULE: ./src/runtimes/web/dom/dependencies.ts - var openModal = function openModal(datas) { - var $dialog = _dialog2.default.create(services, { - size: 'Full', - title: localeService.t('push') - }); - // add classes to the whoe dialog (including title) - $dialog.getDomElement().closest('.ui-dialog').addClass('whole_dialog_container').addClass('Push'); +var DependenciesReceivers = new ScriptReceiverFactory('_pusher_dependencies', 'Pusher.DependenciesReceivers'); +var Dependencies = new dependency_loader_DependencyLoader({ + cdn_http: defaults.cdn_http, + cdn_https: defaults.cdn_https, + version: defaults.VERSION, + suffix: defaults.dependency_suffix, + receivers: DependenciesReceivers +}); - _jquery2.default.post(url + 'prod/push/sendform/', datas, function (data) { - $dialog.setContent(data); - _onDialogReady(); - return; - }); +// CONCATENATED MODULE: ./src/core/utils/url_store.ts +const urlStore = { + baseUrl: 'https://pusher.com', + urls: { + authenticationEndpoint: { + path: '/docs/channels/server_api/authenticating_users' + }, + authorizationEndpoint: { + path: '/docs/channels/server_api/authorizing-users/' + }, + javascriptQuickStart: { + path: '/docs/javascript_quick_start' + }, + triggeringClientEvents: { + path: '/docs/client_api_guide/client_events#trigger-events' + }, + encryptedChannelSupport: { + fullUrl: 'https://github.com/pusher/pusher-js/tree/cc491015371a4bde5743d1c87a0fbac0feb53195#encrypted-channel-support' + } + } +}; +const buildLogSuffix = function (key) { + const urlPrefix = 'See:'; + const urlObj = urlStore.urls[key]; + if (!urlObj) + return ''; + let url; + if (urlObj.fullUrl) { + url = urlObj.fullUrl; + } + else if (urlObj.path) { + url = urlStore.baseUrl + urlObj.path; + } + if (!url) + return ''; + return `${urlPrefix} ${url}`; +}; +/* harmony default export */ var url_store = ({ buildLogSuffix }); - return true; - }; +// CONCATENATED MODULE: ./src/core/auth/options.ts +var AuthRequestType; +(function (AuthRequestType) { + AuthRequestType["UserAuthentication"] = "user-authentication"; + AuthRequestType["ChannelAuthorization"] = "channel-authorization"; +})(AuthRequestType || (AuthRequestType = {})); - var _onDialogReady = function _onDialogReady() { - (0, _index2.default)(services).initialize({ - container: { - containerId: '#PushBox', - context: 'Push' - }, - listManager: { - containerId: '#ListManager' - } - }); - }; +// CONCATENATED MODULE: ./src/core/errors.ts +class BadEventName extends Error { + constructor(msg) { + super(msg); + Object.setPrototypeOf(this, new.target.prototype); + } +} +class BadChannelName extends Error { + constructor(msg) { + super(msg); + Object.setPrototypeOf(this, new.target.prototype); + } +} +class RequestTimedOut extends Error { + constructor(msg) { + super(msg); + Object.setPrototypeOf(this, new.target.prototype); + } +} +class TransportPriorityTooLow extends Error { + constructor(msg) { + super(msg); + Object.setPrototypeOf(this, new.target.prototype); + } +} +class TransportClosed extends Error { + constructor(msg) { + super(msg); + Object.setPrototypeOf(this, new.target.prototype); + } +} +class UnsupportedFeature extends Error { + constructor(msg) { + super(msg); + Object.setPrototypeOf(this, new.target.prototype); + } +} +class UnsupportedTransport extends Error { + constructor(msg) { + super(msg); + Object.setPrototypeOf(this, new.target.prototype); + } +} +class UnsupportedStrategy extends Error { + constructor(msg) { + super(msg); + Object.setPrototypeOf(this, new.target.prototype); + } +} +class HTTPAuthError extends Error { + constructor(status, msg) { + super(msg); + this.status = status; + Object.setPrototypeOf(this, new.target.prototype); + } +} - return { openModal: openModal }; -}; +// CONCATENATED MODULE: ./src/runtimes/isomorphic/auth/xhr_auth.ts -exports.default = pushbasketModal; -/***/ }), -/* 212 */ -/***/ (function(module, exports, __webpack_require__) { -"use strict"; +const ajax = function (context, query, authOptions, authRequestType, callback) { + const xhr = runtime.createXHR(); + xhr.open('POST', authOptions.endpoint, true); + xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); + for (var headerName in authOptions.headers) { + xhr.setRequestHeader(headerName, authOptions.headers[headerName]); + } + if (authOptions.headersProvider != null) { + let dynamicHeaders = authOptions.headersProvider(); + for (var headerName in dynamicHeaders) { + xhr.setRequestHeader(headerName, dynamicHeaders[headerName]); + } + } + xhr.onreadystatechange = function () { + if (xhr.readyState === 4) { + if (xhr.status === 200) { + let data; + let parsed = false; + try { + data = JSON.parse(xhr.responseText); + parsed = true; + } + catch (e) { + callback(new HTTPAuthError(200, `JSON returned from ${authRequestType.toString()} endpoint was invalid, yet status code was 200. Data was: ${xhr.responseText}`), null); + } + if (parsed) { + callback(null, data); + } + } + else { + let suffix = ''; + switch (authRequestType) { + case AuthRequestType.UserAuthentication: + suffix = url_store.buildLogSuffix('authenticationEndpoint'); + break; + case AuthRequestType.ChannelAuthorization: + suffix = `Clients must be authorized to join private or presence channels. ${url_store.buildLogSuffix('authorizationEndpoint')}`; + break; + } + callback(new HTTPAuthError(xhr.status, `Unable to retrieve auth string from ${authRequestType.toString()} endpoint - ` + + `received status: ${xhr.status} from ${authOptions.endpoint}. ${suffix}`), null); + } + } + }; + xhr.send(query); + return xhr; +}; +/* harmony default export */ var xhr_auth = (ajax); -Object.defineProperty(exports, "__esModule", { - value: true -}); +// CONCATENATED MODULE: ./src/core/base64.ts +function encode(s) { + return btoa(utob(s)); +} +var fromCharCode = String.fromCharCode; +var b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; +var b64tab = {}; +for (var base64_i = 0, l = b64chars.length; base64_i < l; base64_i++) { + b64tab[b64chars.charAt(base64_i)] = base64_i; +} +var cb_utob = function (c) { + var cc = c.charCodeAt(0); + return cc < 0x80 + ? c + : cc < 0x800 + ? fromCharCode(0xc0 | (cc >>> 6)) + fromCharCode(0x80 | (cc & 0x3f)) + : fromCharCode(0xe0 | ((cc >>> 12) & 0x0f)) + + fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) + + fromCharCode(0x80 | (cc & 0x3f)); +}; +var utob = function (u) { + return u.replace(/[^\x00-\x7F]/g, cb_utob); +}; +var cb_encode = function (ccc) { + var padlen = [0, 2, 1][ccc.length % 3]; + var ord = (ccc.charCodeAt(0) << 16) | + ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8) | + (ccc.length > 2 ? ccc.charCodeAt(2) : 0); + var chars = [ + b64chars.charAt(ord >>> 18), + b64chars.charAt((ord >>> 12) & 63), + padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63), + padlen >= 1 ? '=' : b64chars.charAt(ord & 63) + ]; + return chars.join(''); +}; +var btoa = window.btoa || + function (b) { + return b.replace(/[\s\S]{1,3}/g, cb_encode); + }; -var _jquery = __webpack_require__(0); +// CONCATENATED MODULE: ./src/core/utils/timers/abstract_timer.ts +class Timer { + constructor(set, clear, delay, callback) { + this.clear = clear; + this.timer = set(() => { + if (this.timer) { + this.timer = callback(this.timer); + } + }, delay); + } + isRunning() { + return this.timer !== null; + } + ensureAborted() { + if (this.timer) { + this.clear(this.timer); + this.timer = null; + } + } +} +/* harmony default export */ var abstract_timer = (Timer); -var _jquery2 = _interopRequireDefault(_jquery); +// CONCATENATED MODULE: ./src/core/utils/timers/index.ts -var _dialog = __webpack_require__(1); +function timers_clearTimeout(timer) { + window.clearTimeout(timer); +} +function timers_clearInterval(timer) { + window.clearInterval(timer); +} +class timers_OneOffTimer extends abstract_timer { + constructor(delay, callback) { + super(setTimeout, timers_clearTimeout, delay, function (timer) { + callback(); + return null; + }); + } +} +class timers_PeriodicTimer extends abstract_timer { + constructor(delay, callback) { + super(setInterval, timers_clearInterval, delay, function (timer) { + callback(); + return timer; + }); + } +} -var _dialog2 = _interopRequireDefault(_dialog); +// CONCATENATED MODULE: ./src/core/util.ts -var _publication = __webpack_require__(58); +var Util = { + now() { + if (Date.now) { + return Date.now(); + } + else { + return new Date().valueOf(); + } + }, + defer(callback) { + return new timers_OneOffTimer(0, callback); + }, + method(name, ...args) { + var boundArguments = Array.prototype.slice.call(arguments, 1); + return function (object) { + return object[name].apply(object, boundArguments.concat(arguments)); + }; + } +}; +/* harmony default export */ var util = (Util); -var _publication2 = _interopRequireDefault(_publication); +// CONCATENATED MODULE: ./src/core/utils/collections.ts -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var recordPublishModal = function recordPublishModal(services, datas) { - var configService = services.configService, - localeService = services.localeService, - appEvents = services.appEvents; +function extend(target, ...sources) { + for (var i = 0; i < sources.length; i++) { + var extensions = sources[i]; + for (var property in extensions) { + if (extensions[property] && + extensions[property].constructor && + extensions[property].constructor === Object) { + target[property] = extend(target[property] || {}, extensions[property]); + } + else { + target[property] = extensions[property]; + } + } + } + return target; +} +function stringify() { + var m = ['Pusher']; + for (var i = 0; i < arguments.length; i++) { + if (typeof arguments[i] === 'string') { + m.push(arguments[i]); + } + else { + m.push(safeJSONStringify(arguments[i])); + } + } + return m.join(' : '); +} +function arrayIndexOf(array, item) { + var nativeIndexOf = Array.prototype.indexOf; + if (array === null) { + return -1; + } + if (nativeIndexOf && array.indexOf === nativeIndexOf) { + return array.indexOf(item); + } + for (var i = 0, l = array.length; i < l; i++) { + if (array[i] === item) { + return i; + } + } + return -1; +} +function objectApply(object, f) { + for (var key in object) { + if (Object.prototype.hasOwnProperty.call(object, key)) { + f(object[key], key, object); + } + } +} +function keys(object) { + var keys = []; + objectApply(object, function (_, key) { + keys.push(key); + }); + return keys; +} +function values(object) { + var values = []; + objectApply(object, function (value) { + values.push(value); + }); + return values; +} +function apply(array, f, context) { + for (var i = 0; i < array.length; i++) { + f.call(context || window, array[i], i, array); + } +} +function map(array, f) { + var result = []; + for (var i = 0; i < array.length; i++) { + result.push(f(array[i], i, array, result)); + } + return result; +} +function mapObject(object, f) { + var result = {}; + objectApply(object, function (value, key) { + result[key] = f(value); + }); + return result; +} +function filter(array, test) { + test = + test || + function (value) { + return !!value; + }; + var result = []; + for (var i = 0; i < array.length; i++) { + if (test(array[i], i, array, result)) { + result.push(array[i]); + } + } + return result; +} +function filterObject(object, test) { + var result = {}; + objectApply(object, function (value, key) { + if ((test && test(value, key, object, result)) || Boolean(value)) { + result[key] = value; + } + }); + return result; +} +function flatten(object) { + var result = []; + objectApply(object, function (value, key) { + result.push([key, value]); + }); + return result; +} +function any(array, test) { + for (var i = 0; i < array.length; i++) { + if (test(array[i], i, array)) { + return true; + } + } + return false; +} +function collections_all(array, test) { + for (var i = 0; i < array.length; i++) { + if (!test(array[i], i, array)) { + return false; + } + } + return true; +} +function encodeParamsObject(data) { + return mapObject(data, function (value) { + if (typeof value === 'object') { + value = safeJSONStringify(value); + } + return encodeURIComponent(encode(value.toString())); + }); +} +function buildQueryString(data) { + var params = filterObject(data, function (value) { + return value !== undefined; + }); + var query = map(flatten(encodeParamsObject(params)), util.method('join', '=')).join('&'); + return query; +} +function decycleObject(object) { + var objects = [], paths = []; + return (function derez(value, path) { + var i, name, nu; + switch (typeof value) { + case 'object': + if (!value) { + return null; + } + for (i = 0; i < objects.length; i += 1) { + if (objects[i] === value) { + return { $ref: paths[i] }; + } + } + objects.push(value); + paths.push(path); + if (Object.prototype.toString.apply(value) === '[object Array]') { + nu = []; + for (i = 0; i < value.length; i += 1) { + nu[i] = derez(value[i], path + '[' + i + ']'); + } + } + else { + nu = {}; + for (name in value) { + if (Object.prototype.hasOwnProperty.call(value, name)) { + nu[name] = derez(value[name], path + '[' + JSON.stringify(name) + ']'); + } + } + } + return nu; + case 'number': + case 'string': + case 'boolean': + return value; + } + })(object, '$'); +} +function safeJSONStringify(source) { + try { + return JSON.stringify(source); + } + catch (e) { + return JSON.stringify(decycleObject(source)); + } +} - var url = configService.get('baseUrl'); +// CONCATENATED MODULE: ./src/core/logger.ts - var openModal = function openModal(datas) { - _jquery2.default.post(url + 'prod/feeds/requestavailable/', datas, function (data) { +class logger_Logger { + constructor() { + this.globalLog = (message) => { + if (window.console && window.console.log) { + window.console.log(message); + } + }; + } + debug(...args) { + this.log(this.globalLog, args); + } + warn(...args) { + this.log(this.globalLogWarn, args); + } + error(...args) { + this.log(this.globalLogError, args); + } + globalLogWarn(message) { + if (window.console && window.console.warn) { + window.console.warn(message); + } + else { + this.globalLog(message); + } + } + globalLogError(message) { + if (window.console && window.console.error) { + window.console.error(message); + } + else { + this.globalLogWarn(message); + } + } + log(defaultLoggingFunction, ...args) { + var message = stringify.apply(this, arguments); + if (core_pusher.log) { + core_pusher.log(message); + } + else if (core_pusher.logToConsole) { + const log = defaultLoggingFunction.bind(this); + log(message); + } + } +} +/* harmony default export */ var logger = (new logger_Logger()); - return (0, _publication2.default)(services).openModal(data); - }); +// CONCATENATED MODULE: ./src/runtimes/web/auth/jsonp_auth.ts - return true; +var jsonp = function (context, query, authOptions, authRequestType, callback) { + if (authOptions.headers !== undefined || + authOptions.headersProvider != null) { + logger.warn(`To send headers with the ${authRequestType.toString()} request, you must use AJAX, rather than JSONP.`); + } + var callbackName = context.nextAuthCallbackID.toString(); + context.nextAuthCallbackID++; + var document = context.getDocument(); + var script = document.createElement('script'); + context.auth_callbacks[callbackName] = function (data) { + callback(null, data); }; - - return { openModal: openModal }; + var callback_name = "Pusher.auth_callbacks['" + callbackName + "']"; + script.src = + authOptions.endpoint + + '?callback=' + + encodeURIComponent(callback_name) + + '&' + + query; + var head = document.getElementsByTagName('head')[0] || document.documentElement; + head.insertBefore(script, head.firstChild); }; +/* harmony default export */ var jsonp_auth = (jsonp); + +// CONCATENATED MODULE: ./src/runtimes/web/dom/script_request.ts +class ScriptRequest { + constructor(src) { + this.src = src; + } + send(receiver) { + var self = this; + var errorString = 'Error loading ' + self.src; + self.script = document.createElement('script'); + self.script.id = receiver.id; + self.script.src = self.src; + self.script.type = 'text/javascript'; + self.script.charset = 'UTF-8'; + if (self.script.addEventListener) { + self.script.onerror = function () { + receiver.callback(errorString); + }; + self.script.onload = function () { + receiver.callback(null); + }; + } + else { + self.script.onreadystatechange = function () { + if (self.script.readyState === 'loaded' || + self.script.readyState === 'complete') { + receiver.callback(null); + } + }; + } + if (self.script.async === undefined && + document.attachEvent && + /opera/i.test(navigator.userAgent)) { + self.errorScript = document.createElement('script'); + self.errorScript.id = receiver.id + '_error'; + self.errorScript.text = receiver.name + "('" + errorString + "');"; + self.script.async = self.errorScript.async = false; + } + else { + self.script.async = true; + } + var head = document.getElementsByTagName('head')[0]; + head.insertBefore(self.script, head.firstChild); + if (self.errorScript) { + head.insertBefore(self.errorScript, self.script.nextSibling); + } + } + cleanup() { + if (this.script) { + this.script.onload = this.script.onerror = null; + this.script.onreadystatechange = null; + } + if (this.script && this.script.parentNode) { + this.script.parentNode.removeChild(this.script); + } + if (this.errorScript && this.errorScript.parentNode) { + this.errorScript.parentNode.removeChild(this.errorScript); + } + this.script = null; + this.errorScript = null; + } +} + +// CONCATENATED MODULE: ./src/runtimes/web/dom/jsonp_request.ts + + +class jsonp_request_JSONPRequest { + constructor(url, data) { + this.url = url; + this.data = data; + } + send(receiver) { + if (this.request) { + return; + } + var query = buildQueryString(this.data); + var url = this.url + '/' + receiver.number + '?' + query; + this.request = runtime.createScriptRequest(url); + this.request.send(receiver); + } + cleanup() { + if (this.request) { + this.request.cleanup(); + } + } +} + +// CONCATENATED MODULE: ./src/runtimes/web/timeline/jsonp_timeline.ts + + +var getAgent = function (sender, useTLS) { + return function (data, callback) { + var scheme = 'http' + (useTLS ? 's' : '') + '://'; + var url = scheme + (sender.host || sender.options.host) + sender.options.path; + var request = runtime.createJSONPRequest(url, data); + var receiver = runtime.ScriptReceivers.create(function (error, result) { + ScriptReceivers.remove(receiver); + request.cleanup(); + if (result && result.host) { + sender.host = result.host; + } + if (callback) { + callback(error, result); + } + }); + request.send(receiver); + }; +}; +var jsonp_timeline_jsonp = { + name: 'jsonp', + getAgent +}; +/* harmony default export */ var jsonp_timeline = (jsonp_timeline_jsonp); + +// CONCATENATED MODULE: ./src/core/transports/url_schemes.ts + +function getGenericURL(baseScheme, params, path) { + var scheme = baseScheme + (params.useTLS ? 's' : ''); + var host = params.useTLS ? params.hostTLS : params.hostNonTLS; + return scheme + '://' + host + path; +} +function getGenericPath(key, queryString) { + var path = '/app/' + key; + var query = '?protocol=' + + defaults.PROTOCOL + + '&client=js' + + '&version=' + + defaults.VERSION + + (queryString ? '&' + queryString : ''); + return path + query; +} +var ws = { + getInitial: function (key, params) { + var path = (params.httpPath || '') + getGenericPath(key, 'flash=false'); + return getGenericURL('ws', params, path); + } +}; +var http = { + getInitial: function (key, params) { + var path = (params.httpPath || '/pusher') + getGenericPath(key); + return getGenericURL('http', params, path); + } +}; +var sockjs = { + getInitial: function (key, params) { + return getGenericURL('http', params, params.httpPath || '/pusher'); + }, + getPath: function (key, params) { + return getGenericPath(key); + } +}; + +// CONCATENATED MODULE: ./src/core/events/callback_registry.ts + +class callback_registry_CallbackRegistry { + constructor() { + this._callbacks = {}; + } + get(name) { + return this._callbacks[prefix(name)]; + } + add(name, callback, context) { + var prefixedEventName = prefix(name); + this._callbacks[prefixedEventName] = + this._callbacks[prefixedEventName] || []; + this._callbacks[prefixedEventName].push({ + fn: callback, + context: context + }); + } + remove(name, callback, context) { + if (!name && !callback && !context) { + this._callbacks = {}; + return; + } + var names = name ? [prefix(name)] : keys(this._callbacks); + if (callback || context) { + this.removeCallback(names, callback, context); + } + else { + this.removeAllCallbacks(names); + } + } + removeCallback(names, callback, context) { + apply(names, function (name) { + this._callbacks[name] = filter(this._callbacks[name] || [], function (binding) { + return ((callback && callback !== binding.fn) || + (context && context !== binding.context)); + }); + if (this._callbacks[name].length === 0) { + delete this._callbacks[name]; + } + }, this); + } + removeAllCallbacks(names) { + apply(names, function (name) { + delete this._callbacks[name]; + }, this); + } +} +function prefix(name) { + return '_' + name; +} + +// CONCATENATED MODULE: ./src/core/events/dispatcher.ts + + +class dispatcher_Dispatcher { + constructor(failThrough) { + this.callbacks = new callback_registry_CallbackRegistry(); + this.global_callbacks = []; + this.failThrough = failThrough; + } + bind(eventName, callback, context) { + this.callbacks.add(eventName, callback, context); + return this; + } + bind_global(callback) { + this.global_callbacks.push(callback); + return this; + } + unbind(eventName, callback, context) { + this.callbacks.remove(eventName, callback, context); + return this; + } + unbind_global(callback) { + if (!callback) { + this.global_callbacks = []; + return this; + } + this.global_callbacks = filter(this.global_callbacks || [], c => c !== callback); + return this; + } + unbind_all() { + this.unbind(); + this.unbind_global(); + return this; + } + emit(eventName, data, metadata) { + for (var i = 0; i < this.global_callbacks.length; i++) { + this.global_callbacks[i](eventName, data); + } + var callbacks = this.callbacks.get(eventName); + var args = []; + if (metadata) { + args.push(data, metadata); + } + else if (data) { + args.push(data); + } + if (callbacks && callbacks.length > 0) { + for (var i = 0; i < callbacks.length; i++) { + callbacks[i].fn.apply(callbacks[i].context || window, args); + } + } + else if (this.failThrough) { + this.failThrough(eventName, data); + } + return this; + } +} + +// CONCATENATED MODULE: ./src/core/transports/transport_connection.ts + + + + + +class transport_connection_TransportConnection extends dispatcher_Dispatcher { + constructor(hooks, name, priority, key, options) { + super(); + this.initialize = runtime.transportConnectionInitializer; + this.hooks = hooks; + this.name = name; + this.priority = priority; + this.key = key; + this.options = options; + this.state = 'new'; + this.timeline = options.timeline; + this.activityTimeout = options.activityTimeout; + this.id = this.timeline.generateUniqueID(); + } + handlesActivityChecks() { + return Boolean(this.hooks.handlesActivityChecks); + } + supportsPing() { + return Boolean(this.hooks.supportsPing); + } + connect() { + if (this.socket || this.state !== 'initialized') { + return false; + } + var url = this.hooks.urls.getInitial(this.key, this.options); + try { + this.socket = this.hooks.getSocket(url, this.options); + } + catch (e) { + util.defer(() => { + this.onError(e); + this.changeState('closed'); + }); + return false; + } + this.bindListeners(); + logger.debug('Connecting', { transport: this.name, url }); + this.changeState('connecting'); + return true; + } + close() { + if (this.socket) { + this.socket.close(); + return true; + } + else { + return false; + } + } + send(data) { + if (this.state === 'open') { + util.defer(() => { + if (this.socket) { + this.socket.send(data); + } + }); + return true; + } + else { + return false; + } + } + ping() { + if (this.state === 'open' && this.supportsPing()) { + this.socket.ping(); + } + } + onOpen() { + if (this.hooks.beforeOpen) { + this.hooks.beforeOpen(this.socket, this.hooks.urls.getPath(this.key, this.options)); + } + this.changeState('open'); + this.socket.onopen = undefined; + } + onError(error) { + this.emit('error', { type: 'WebSocketError', error: error }); + this.timeline.error(this.buildTimelineMessage({ error: error.toString() })); + } + onClose(closeEvent) { + if (closeEvent) { + this.changeState('closed', { + code: closeEvent.code, + reason: closeEvent.reason, + wasClean: closeEvent.wasClean + }); + } + else { + this.changeState('closed'); + } + this.unbindListeners(); + this.socket = undefined; + } + onMessage(message) { + this.emit('message', message); + } + onActivity() { + this.emit('activity'); + } + bindListeners() { + this.socket.onopen = () => { + this.onOpen(); + }; + this.socket.onerror = error => { + this.onError(error); + }; + this.socket.onclose = closeEvent => { + this.onClose(closeEvent); + }; + this.socket.onmessage = message => { + this.onMessage(message); + }; + if (this.supportsPing()) { + this.socket.onactivity = () => { + this.onActivity(); + }; + } + } + unbindListeners() { + if (this.socket) { + this.socket.onopen = undefined; + this.socket.onerror = undefined; + this.socket.onclose = undefined; + this.socket.onmessage = undefined; + if (this.supportsPing()) { + this.socket.onactivity = undefined; + } + } + } + changeState(state, params) { + this.state = state; + this.timeline.info(this.buildTimelineMessage({ + state: state, + params: params + })); + this.emit(state, params); + } + buildTimelineMessage(message) { + return extend({ cid: this.id }, message); + } +} + +// CONCATENATED MODULE: ./src/core/transports/transport.ts + +class transport_Transport { + constructor(hooks) { + this.hooks = hooks; + } + isSupported(environment) { + return this.hooks.isSupported(environment); + } + createConnection(name, priority, key, options) { + return new transport_connection_TransportConnection(this.hooks, name, priority, key, options); + } +} + +// CONCATENATED MODULE: ./src/runtimes/isomorphic/transports/transports.ts + + + + +var WSTransport = new transport_Transport({ + urls: ws, + handlesActivityChecks: false, + supportsPing: false, + isInitialized: function () { + return Boolean(runtime.getWebSocketAPI()); + }, + isSupported: function () { + return Boolean(runtime.getWebSocketAPI()); + }, + getSocket: function (url) { + return runtime.createWebSocket(url); + } +}); +var httpConfiguration = { + urls: http, + handlesActivityChecks: false, + supportsPing: true, + isInitialized: function () { + return true; + } +}; +var streamingConfiguration = extend({ + getSocket: function (url) { + return runtime.HTTPFactory.createStreamingSocket(url); + } +}, httpConfiguration); +var pollingConfiguration = extend({ + getSocket: function (url) { + return runtime.HTTPFactory.createPollingSocket(url); + } +}, httpConfiguration); +var xhrConfiguration = { + isSupported: function () { + return runtime.isXHRSupported(); + } +}; +var XHRStreamingTransport = new transport_Transport((extend({}, streamingConfiguration, xhrConfiguration))); +var XHRPollingTransport = new transport_Transport(extend({}, pollingConfiguration, xhrConfiguration)); +var Transports = { + ws: WSTransport, + xhr_streaming: XHRStreamingTransport, + xhr_polling: XHRPollingTransport +}; +/* harmony default export */ var transports = (Transports); + +// CONCATENATED MODULE: ./src/runtimes/web/transports/transports.ts + + + + + + +var SockJSTransport = new transport_Transport({ + file: 'sockjs', + urls: sockjs, + handlesActivityChecks: true, + supportsPing: false, + isSupported: function () { + return true; + }, + isInitialized: function () { + return window.SockJS !== undefined; + }, + getSocket: function (url, options) { + return new window.SockJS(url, null, { + js_path: Dependencies.getPath('sockjs', { + useTLS: options.useTLS + }), + ignore_null_origin: options.ignoreNullOrigin + }); + }, + beforeOpen: function (socket, path) { + socket.send(JSON.stringify({ + path: path + })); + } +}); +var xdrConfiguration = { + isSupported: function (environment) { + var yes = runtime.isXDRSupported(environment.useTLS); + return yes; + } +}; +var XDRStreamingTransport = new transport_Transport((extend({}, streamingConfiguration, xdrConfiguration))); +var XDRPollingTransport = new transport_Transport(extend({}, pollingConfiguration, xdrConfiguration)); +transports.xdr_streaming = XDRStreamingTransport; +transports.xdr_polling = XDRPollingTransport; +transports.sockjs = SockJSTransport; +/* harmony default export */ var transports_transports = (transports); + +// CONCATENATED MODULE: ./src/runtimes/web/net_info.ts + +class net_info_NetInfo extends dispatcher_Dispatcher { + constructor() { + super(); + var self = this; + if (window.addEventListener !== undefined) { + window.addEventListener('online', function () { + self.emit('online'); + }, false); + window.addEventListener('offline', function () { + self.emit('offline'); + }, false); + } + } + isOnline() { + if (window.navigator.onLine === undefined) { + return true; + } + else { + return window.navigator.onLine; + } + } +} +var net_info_Network = new net_info_NetInfo(); + +// CONCATENATED MODULE: ./src/core/transports/assistant_to_the_transport_manager.ts + + +class assistant_to_the_transport_manager_AssistantToTheTransportManager { + constructor(manager, transport, options) { + this.manager = manager; + this.transport = transport; + this.minPingDelay = options.minPingDelay; + this.maxPingDelay = options.maxPingDelay; + this.pingDelay = undefined; + } + createConnection(name, priority, key, options) { + options = extend({}, options, { + activityTimeout: this.pingDelay + }); + var connection = this.transport.createConnection(name, priority, key, options); + var openTimestamp = null; + var onOpen = function () { + connection.unbind('open', onOpen); + connection.bind('closed', onClosed); + openTimestamp = util.now(); + }; + var onClosed = closeEvent => { + connection.unbind('closed', onClosed); + if (closeEvent.code === 1002 || closeEvent.code === 1003) { + this.manager.reportDeath(); + } + else if (!closeEvent.wasClean && openTimestamp) { + var lifespan = util.now() - openTimestamp; + if (lifespan < 2 * this.maxPingDelay) { + this.manager.reportDeath(); + this.pingDelay = Math.max(lifespan / 2, this.minPingDelay); + } + } + }; + connection.bind('open', onOpen); + return connection; + } + isSupported(environment) { + return this.manager.isAlive() && this.transport.isSupported(environment); + } +} + +// CONCATENATED MODULE: ./src/core/connection/protocol/protocol.ts +const Protocol = { + decodeMessage: function (messageEvent) { + try { + var messageData = JSON.parse(messageEvent.data); + var pusherEventData = messageData.data; + if (typeof pusherEventData === 'string') { + try { + pusherEventData = JSON.parse(messageData.data); + } + catch (e) { } + } + var pusherEvent = { + event: messageData.event, + channel: messageData.channel, + data: pusherEventData + }; + if (messageData.user_id) { + pusherEvent.user_id = messageData.user_id; + } + return pusherEvent; + } + catch (e) { + throw { type: 'MessageParseError', error: e, data: messageEvent.data }; + } + }, + encodeMessage: function (event) { + return JSON.stringify(event); + }, + processHandshake: function (messageEvent) { + var message = Protocol.decodeMessage(messageEvent); + if (message.event === 'pusher:connection_established') { + if (!message.data.activity_timeout) { + throw 'No activity timeout specified in handshake'; + } + return { + action: 'connected', + id: message.data.socket_id, + activityTimeout: message.data.activity_timeout * 1000 + }; + } + else if (message.event === 'pusher:error') { + return { + action: this.getCloseAction(message.data), + error: this.getCloseError(message.data) + }; + } + else { + throw 'Invalid handshake'; + } + }, + getCloseAction: function (closeEvent) { + if (closeEvent.code < 4000) { + if (closeEvent.code >= 1002 && closeEvent.code <= 1004) { + return 'backoff'; + } + else { + return null; + } + } + else if (closeEvent.code === 4000) { + return 'tls_only'; + } + else if (closeEvent.code < 4100) { + return 'refused'; + } + else if (closeEvent.code < 4200) { + return 'backoff'; + } + else if (closeEvent.code < 4300) { + return 'retry'; + } + else { + return 'refused'; + } + }, + getCloseError: function (closeEvent) { + if (closeEvent.code !== 1000 && closeEvent.code !== 1001) { + return { + type: 'PusherError', + data: { + code: closeEvent.code, + message: closeEvent.reason || closeEvent.message + } + }; + } + else { + return null; + } + } +}; +/* harmony default export */ var protocol_protocol = (Protocol); + +// CONCATENATED MODULE: ./src/core/connection/connection.ts + + + + +class connection_Connection extends dispatcher_Dispatcher { + constructor(id, transport) { + super(); + this.id = id; + this.transport = transport; + this.activityTimeout = transport.activityTimeout; + this.bindListeners(); + } + handlesActivityChecks() { + return this.transport.handlesActivityChecks(); + } + send(data) { + return this.transport.send(data); + } + send_event(name, data, channel) { + var event = { event: name, data: data }; + if (channel) { + event.channel = channel; + } + logger.debug('Event sent', event); + return this.send(protocol_protocol.encodeMessage(event)); + } + ping() { + if (this.transport.supportsPing()) { + this.transport.ping(); + } + else { + this.send_event('pusher:ping', {}); + } + } + close() { + this.transport.close(); + } + bindListeners() { + var listeners = { + message: (messageEvent) => { + var pusherEvent; + try { + pusherEvent = protocol_protocol.decodeMessage(messageEvent); + } + catch (e) { + this.emit('error', { + type: 'MessageParseError', + error: e, + data: messageEvent.data + }); + } + if (pusherEvent !== undefined) { + logger.debug('Event recd', pusherEvent); + switch (pusherEvent.event) { + case 'pusher:error': + this.emit('error', { + type: 'PusherError', + data: pusherEvent.data + }); + break; + case 'pusher:ping': + this.emit('ping'); + break; + case 'pusher:pong': + this.emit('pong'); + break; + } + this.emit('message', pusherEvent); + } + }, + activity: () => { + this.emit('activity'); + }, + error: error => { + this.emit('error', error); + }, + closed: closeEvent => { + unbindListeners(); + if (closeEvent && closeEvent.code) { + this.handleCloseEvent(closeEvent); + } + this.transport = null; + this.emit('closed'); + } + }; + var unbindListeners = () => { + objectApply(listeners, (listener, event) => { + this.transport.unbind(event, listener); + }); + }; + objectApply(listeners, (listener, event) => { + this.transport.bind(event, listener); + }); + } + handleCloseEvent(closeEvent) { + var action = protocol_protocol.getCloseAction(closeEvent); + var error = protocol_protocol.getCloseError(closeEvent); + if (error) { + this.emit('error', error); + } + if (action) { + this.emit(action, { action: action, error: error }); + } + } +} + +// CONCATENATED MODULE: ./src/core/connection/handshake/index.ts + + + +class handshake_Handshake { + constructor(transport, callback) { + this.transport = transport; + this.callback = callback; + this.bindListeners(); + } + close() { + this.unbindListeners(); + this.transport.close(); + } + bindListeners() { + this.onMessage = m => { + this.unbindListeners(); + var result; + try { + result = protocol_protocol.processHandshake(m); + } + catch (e) { + this.finish('error', { error: e }); + this.transport.close(); + return; + } + if (result.action === 'connected') { + this.finish('connected', { + connection: new connection_Connection(result.id, this.transport), + activityTimeout: result.activityTimeout + }); + } + else { + this.finish(result.action, { error: result.error }); + this.transport.close(); + } + }; + this.onClosed = closeEvent => { + this.unbindListeners(); + var action = protocol_protocol.getCloseAction(closeEvent) || 'backoff'; + var error = protocol_protocol.getCloseError(closeEvent); + this.finish(action, { error: error }); + }; + this.transport.bind('message', this.onMessage); + this.transport.bind('closed', this.onClosed); + } + unbindListeners() { + this.transport.unbind('message', this.onMessage); + this.transport.unbind('closed', this.onClosed); + } + finish(action, params) { + this.callback(extend({ transport: this.transport, action: action }, params)); + } +} + +// CONCATENATED MODULE: ./src/core/timeline/timeline_sender.ts + +class timeline_sender_TimelineSender { + constructor(timeline, options) { + this.timeline = timeline; + this.options = options || {}; + } + send(useTLS, callback) { + if (this.timeline.isEmpty()) { + return; + } + this.timeline.send(runtime.TimelineTransport.getAgent(this, useTLS), callback); + } +} + +// CONCATENATED MODULE: ./src/core/channels/channel.ts + + + + + +class channel_Channel extends dispatcher_Dispatcher { + constructor(name, pusher) { + super(function (event, data) { + logger.debug('No callbacks on ' + name + ' for ' + event); + }); + this.name = name; + this.pusher = pusher; + this.subscribed = false; + this.subscriptionPending = false; + this.subscriptionCancelled = false; + } + authorize(socketId, callback) { + return callback(null, { auth: '' }); + } + trigger(event, data) { + if (event.indexOf('client-') !== 0) { + throw new BadEventName("Event '" + event + "' does not start with 'client-'"); + } + if (!this.subscribed) { + var suffix = url_store.buildLogSuffix('triggeringClientEvents'); + logger.warn(`Client event triggered before channel 'subscription_succeeded' event . ${suffix}`); + } + return this.pusher.send_event(event, data, this.name); + } + disconnect() { + this.subscribed = false; + this.subscriptionPending = false; + } + handleEvent(event) { + var eventName = event.event; + var data = event.data; + if (eventName === 'pusher_internal:subscription_succeeded') { + this.handleSubscriptionSucceededEvent(event); + } + else if (eventName === 'pusher_internal:subscription_count') { + this.handleSubscriptionCountEvent(event); + } + else if (eventName.indexOf('pusher_internal:') !== 0) { + var metadata = {}; + this.emit(eventName, data, metadata); + } + } + handleSubscriptionSucceededEvent(event) { + this.subscriptionPending = false; + this.subscribed = true; + if (this.subscriptionCancelled) { + this.pusher.unsubscribe(this.name); + } + else { + this.emit('pusher:subscription_succeeded', event.data); + } + } + handleSubscriptionCountEvent(event) { + if (event.data.subscription_count) { + this.subscriptionCount = event.data.subscription_count; + } + this.emit('pusher:subscription_count', event.data); + } + subscribe() { + if (this.subscribed) { + return; + } + this.subscriptionPending = true; + this.subscriptionCancelled = false; + this.authorize(this.pusher.connection.socket_id, (error, data) => { + if (error) { + this.subscriptionPending = false; + logger.error(error.toString()); + this.emit('pusher:subscription_error', Object.assign({}, { + type: 'AuthError', + error: error.message + }, error instanceof HTTPAuthError ? { status: error.status } : {})); + } + else { + this.pusher.send_event('pusher:subscribe', { + auth: data.auth, + channel_data: data.channel_data, + channel: this.name + }); + } + }); + } + unsubscribe() { + this.subscribed = false; + this.pusher.send_event('pusher:unsubscribe', { + channel: this.name + }); + } + cancelSubscription() { + this.subscriptionCancelled = true; + } + reinstateSubscription() { + this.subscriptionCancelled = false; + } +} + +// CONCATENATED MODULE: ./src/core/channels/private_channel.ts + +class private_channel_PrivateChannel extends channel_Channel { + authorize(socketId, callback) { + return this.pusher.config.channelAuthorizer({ + channelName: this.name, + socketId: socketId + }, callback); + } +} + +// CONCATENATED MODULE: ./src/core/channels/members.ts + +class members_Members { + constructor() { + this.reset(); + } + get(id) { + if (Object.prototype.hasOwnProperty.call(this.members, id)) { + return { + id: id, + info: this.members[id] + }; + } + else { + return null; + } + } + each(callback) { + objectApply(this.members, (member, id) => { + callback(this.get(id)); + }); + } + setMyID(id) { + this.myID = id; + } + onSubscription(subscriptionData) { + this.members = subscriptionData.presence.hash; + this.count = subscriptionData.presence.count; + this.me = this.get(this.myID); + } + addMember(memberData) { + if (this.get(memberData.user_id) === null) { + this.count++; + } + this.members[memberData.user_id] = memberData.user_info; + return this.get(memberData.user_id); + } + removeMember(memberData) { + var member = this.get(memberData.user_id); + if (member) { + delete this.members[memberData.user_id]; + this.count--; + } + return member; + } + reset() { + this.members = {}; + this.count = 0; + this.myID = null; + this.me = null; + } +} + +// CONCATENATED MODULE: ./src/core/channels/presence_channel.ts +var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + +class presence_channel_PresenceChannel extends private_channel_PrivateChannel { + constructor(name, pusher) { + super(name, pusher); + this.members = new members_Members(); + } + authorize(socketId, callback) { + super.authorize(socketId, (error, authData) => __awaiter(this, void 0, void 0, function* () { + if (!error) { + authData = authData; + if (authData.channel_data != null) { + var channelData = JSON.parse(authData.channel_data); + this.members.setMyID(channelData.user_id); + } + else { + yield this.pusher.user.signinDonePromise; + if (this.pusher.user.user_data != null) { + this.members.setMyID(this.pusher.user.user_data.id); + } + else { + let suffix = url_store.buildLogSuffix('authorizationEndpoint'); + logger.error(`Invalid auth response for channel '${this.name}', ` + + `expected 'channel_data' field. ${suffix}, ` + + `or the user should be signed in.`); + callback('Invalid auth response'); + return; + } + } + } + callback(error, authData); + })); + } + handleEvent(event) { + var eventName = event.event; + if (eventName.indexOf('pusher_internal:') === 0) { + this.handleInternalEvent(event); + } + else { + var data = event.data; + var metadata = {}; + if (event.user_id) { + metadata.user_id = event.user_id; + } + this.emit(eventName, data, metadata); + } + } + handleInternalEvent(event) { + var eventName = event.event; + var data = event.data; + switch (eventName) { + case 'pusher_internal:subscription_succeeded': + this.handleSubscriptionSucceededEvent(event); + break; + case 'pusher_internal:subscription_count': + this.handleSubscriptionCountEvent(event); + break; + case 'pusher_internal:member_added': + var addedMember = this.members.addMember(data); + this.emit('pusher:member_added', addedMember); + break; + case 'pusher_internal:member_removed': + var removedMember = this.members.removeMember(data); + if (removedMember) { + this.emit('pusher:member_removed', removedMember); + } + break; + } + } + handleSubscriptionSucceededEvent(event) { + this.subscriptionPending = false; + this.subscribed = true; + if (this.subscriptionCancelled) { + this.pusher.unsubscribe(this.name); + } + else { + this.members.onSubscription(event.data); + this.emit('pusher:subscription_succeeded', this.members); + } + } + disconnect() { + this.members.reset(); + super.disconnect(); + } +} + +// EXTERNAL MODULE: ./node_modules/@stablelib/utf8/lib/utf8.js +var utf8 = __webpack_require__(1); + +// EXTERNAL MODULE: ./node_modules/@stablelib/base64/lib/base64.js +var base64 = __webpack_require__(0); + +// CONCATENATED MODULE: ./src/core/channels/encrypted_channel.ts + + + + + +class encrypted_channel_EncryptedChannel extends private_channel_PrivateChannel { + constructor(name, pusher, nacl) { + super(name, pusher); + this.key = null; + this.nacl = nacl; + } + authorize(socketId, callback) { + super.authorize(socketId, (error, authData) => { + if (error) { + callback(error, authData); + return; + } + let sharedSecret = authData['shared_secret']; + if (!sharedSecret) { + callback(new Error(`No shared_secret key in auth payload for encrypted channel: ${this.name}`), null); + return; + } + this.key = Object(base64["decode"])(sharedSecret); + delete authData['shared_secret']; + callback(null, authData); + }); + } + trigger(event, data) { + throw new UnsupportedFeature('Client events are not currently supported for encrypted channels'); + } + handleEvent(event) { + var eventName = event.event; + var data = event.data; + if (eventName.indexOf('pusher_internal:') === 0 || + eventName.indexOf('pusher:') === 0) { + super.handleEvent(event); + return; + } + this.handleEncryptedEvent(eventName, data); + } + handleEncryptedEvent(event, data) { + if (!this.key) { + logger.debug('Received encrypted event before key has been retrieved from the authEndpoint'); + return; + } + if (!data.ciphertext || !data.nonce) { + logger.error('Unexpected format for encrypted event, expected object with `ciphertext` and `nonce` fields, got: ' + + data); + return; + } + let cipherText = Object(base64["decode"])(data.ciphertext); + if (cipherText.length < this.nacl.secretbox.overheadLength) { + logger.error(`Expected encrypted event ciphertext length to be ${this.nacl.secretbox.overheadLength}, got: ${cipherText.length}`); + return; + } + let nonce = Object(base64["decode"])(data.nonce); + if (nonce.length < this.nacl.secretbox.nonceLength) { + logger.error(`Expected encrypted event nonce length to be ${this.nacl.secretbox.nonceLength}, got: ${nonce.length}`); + return; + } + let bytes = this.nacl.secretbox.open(cipherText, nonce, this.key); + if (bytes === null) { + logger.debug('Failed to decrypt an event, probably because it was encrypted with a different key. Fetching a new key from the authEndpoint...'); + this.authorize(this.pusher.connection.socket_id, (error, authData) => { + if (error) { + logger.error(`Failed to make a request to the authEndpoint: ${authData}. Unable to fetch new key, so dropping encrypted event`); + return; + } + bytes = this.nacl.secretbox.open(cipherText, nonce, this.key); + if (bytes === null) { + logger.error(`Failed to decrypt event with new key. Dropping encrypted event`); + return; + } + this.emit(event, this.getDataToEmit(bytes)); + return; + }); + return; + } + this.emit(event, this.getDataToEmit(bytes)); + } + getDataToEmit(bytes) { + let raw = Object(utf8["decode"])(bytes); + try { + return JSON.parse(raw); + } + catch (_a) { + return raw; + } + } +} + +// CONCATENATED MODULE: ./src/core/connection/connection_manager.ts + + + + + +class connection_manager_ConnectionManager extends dispatcher_Dispatcher { + constructor(key, options) { + super(); + this.state = 'initialized'; + this.connection = null; + this.key = key; + this.options = options; + this.timeline = this.options.timeline; + this.usingTLS = this.options.useTLS; + this.errorCallbacks = this.buildErrorCallbacks(); + this.connectionCallbacks = this.buildConnectionCallbacks(this.errorCallbacks); + this.handshakeCallbacks = this.buildHandshakeCallbacks(this.errorCallbacks); + var Network = runtime.getNetwork(); + Network.bind('online', () => { + this.timeline.info({ netinfo: 'online' }); + if (this.state === 'connecting' || this.state === 'unavailable') { + this.retryIn(0); + } + }); + Network.bind('offline', () => { + this.timeline.info({ netinfo: 'offline' }); + if (this.connection) { + this.sendActivityCheck(); + } + }); + this.updateStrategy(); + } + connect() { + if (this.connection || this.runner) { + return; + } + if (!this.strategy.isSupported()) { + this.updateState('failed'); + return; + } + this.updateState('connecting'); + this.startConnecting(); + this.setUnavailableTimer(); + } + send(data) { + if (this.connection) { + return this.connection.send(data); + } + else { + return false; + } + } + send_event(name, data, channel) { + if (this.connection) { + return this.connection.send_event(name, data, channel); + } + else { + return false; + } + } + disconnect() { + this.disconnectInternally(); + this.updateState('disconnected'); + } + isUsingTLS() { + return this.usingTLS; + } + startConnecting() { + var callback = (error, handshake) => { + if (error) { + this.runner = this.strategy.connect(0, callback); + } + else { + if (handshake.action === 'error') { + this.emit('error', { + type: 'HandshakeError', + error: handshake.error + }); + this.timeline.error({ handshakeError: handshake.error }); + } + else { + this.abortConnecting(); + this.handshakeCallbacks[handshake.action](handshake); + } + } + }; + this.runner = this.strategy.connect(0, callback); + } + abortConnecting() { + if (this.runner) { + this.runner.abort(); + this.runner = null; + } + } + disconnectInternally() { + this.abortConnecting(); + this.clearRetryTimer(); + this.clearUnavailableTimer(); + if (this.connection) { + var connection = this.abandonConnection(); + connection.close(); + } + } + updateStrategy() { + this.strategy = this.options.getStrategy({ + key: this.key, + timeline: this.timeline, + useTLS: this.usingTLS + }); + } + retryIn(delay) { + this.timeline.info({ action: 'retry', delay: delay }); + if (delay > 0) { + this.emit('connecting_in', Math.round(delay / 1000)); + } + this.retryTimer = new timers_OneOffTimer(delay || 0, () => { + this.disconnectInternally(); + this.connect(); + }); + } + clearRetryTimer() { + if (this.retryTimer) { + this.retryTimer.ensureAborted(); + this.retryTimer = null; + } + } + setUnavailableTimer() { + this.unavailableTimer = new timers_OneOffTimer(this.options.unavailableTimeout, () => { + this.updateState('unavailable'); + }); + } + clearUnavailableTimer() { + if (this.unavailableTimer) { + this.unavailableTimer.ensureAborted(); + } + } + sendActivityCheck() { + this.stopActivityCheck(); + this.connection.ping(); + this.activityTimer = new timers_OneOffTimer(this.options.pongTimeout, () => { + this.timeline.error({ pong_timed_out: this.options.pongTimeout }); + this.retryIn(0); + }); + } + resetActivityCheck() { + this.stopActivityCheck(); + if (this.connection && !this.connection.handlesActivityChecks()) { + this.activityTimer = new timers_OneOffTimer(this.activityTimeout, () => { + this.sendActivityCheck(); + }); + } + } + stopActivityCheck() { + if (this.activityTimer) { + this.activityTimer.ensureAborted(); + } + } + buildConnectionCallbacks(errorCallbacks) { + return extend({}, errorCallbacks, { + message: message => { + this.resetActivityCheck(); + this.emit('message', message); + }, + ping: () => { + this.send_event('pusher:pong', {}); + }, + activity: () => { + this.resetActivityCheck(); + }, + error: error => { + this.emit('error', error); + }, + closed: () => { + this.abandonConnection(); + if (this.shouldRetry()) { + this.retryIn(1000); + } + } + }); + } + buildHandshakeCallbacks(errorCallbacks) { + return extend({}, errorCallbacks, { + connected: (handshake) => { + this.activityTimeout = Math.min(this.options.activityTimeout, handshake.activityTimeout, handshake.connection.activityTimeout || Infinity); + this.clearUnavailableTimer(); + this.setConnection(handshake.connection); + this.socket_id = this.connection.id; + this.updateState('connected', { socket_id: this.socket_id }); + } + }); + } + buildErrorCallbacks() { + let withErrorEmitted = callback => { + return (result) => { + if (result.error) { + this.emit('error', { type: 'WebSocketError', error: result.error }); + } + callback(result); + }; + }; + return { + tls_only: withErrorEmitted(() => { + this.usingTLS = true; + this.updateStrategy(); + this.retryIn(0); + }), + refused: withErrorEmitted(() => { + this.disconnect(); + }), + backoff: withErrorEmitted(() => { + this.retryIn(1000); + }), + retry: withErrorEmitted(() => { + this.retryIn(0); + }) + }; + } + setConnection(connection) { + this.connection = connection; + for (var event in this.connectionCallbacks) { + this.connection.bind(event, this.connectionCallbacks[event]); + } + this.resetActivityCheck(); + } + abandonConnection() { + if (!this.connection) { + return; + } + this.stopActivityCheck(); + for (var event in this.connectionCallbacks) { + this.connection.unbind(event, this.connectionCallbacks[event]); + } + var connection = this.connection; + this.connection = null; + return connection; + } + updateState(newState, data) { + var previousState = this.state; + this.state = newState; + if (previousState !== newState) { + var newStateDescription = newState; + if (newStateDescription === 'connected') { + newStateDescription += ' with new socket ID ' + data.socket_id; + } + logger.debug('State changed', previousState + ' -> ' + newStateDescription); + this.timeline.info({ state: newState, params: data }); + this.emit('state_change', { previous: previousState, current: newState }); + this.emit(newState, data); + } + } + shouldRetry() { + return this.state === 'connecting' || this.state === 'connected'; + } +} + +// CONCATENATED MODULE: ./src/core/channels/channels.ts + + + + +class channels_Channels { + constructor() { + this.channels = {}; + } + add(name, pusher) { + if (!this.channels[name]) { + this.channels[name] = createChannel(name, pusher); + } + return this.channels[name]; + } + all() { + return values(this.channels); + } + find(name) { + return this.channels[name]; + } + remove(name) { + var channel = this.channels[name]; + delete this.channels[name]; + return channel; + } + disconnect() { + objectApply(this.channels, function (channel) { + channel.disconnect(); + }); + } +} +function createChannel(name, pusher) { + if (name.indexOf('private-encrypted-') === 0) { + if (pusher.config.nacl) { + return factory.createEncryptedChannel(name, pusher, pusher.config.nacl); + } + let errMsg = 'Tried to subscribe to a private-encrypted- channel but no nacl implementation available'; + let suffix = url_store.buildLogSuffix('encryptedChannelSupport'); + throw new UnsupportedFeature(`${errMsg}. ${suffix}`); + } + else if (name.indexOf('private-') === 0) { + return factory.createPrivateChannel(name, pusher); + } + else if (name.indexOf('presence-') === 0) { + return factory.createPresenceChannel(name, pusher); + } + else if (name.indexOf('#') === 0) { + throw new BadChannelName('Cannot create a channel with name "' + name + '".'); + } + else { + return factory.createChannel(name, pusher); + } +} + +// CONCATENATED MODULE: ./src/core/utils/factory.ts + + + + + + + + + +var Factory = { + createChannels() { + return new channels_Channels(); + }, + createConnectionManager(key, options) { + return new connection_manager_ConnectionManager(key, options); + }, + createChannel(name, pusher) { + return new channel_Channel(name, pusher); + }, + createPrivateChannel(name, pusher) { + return new private_channel_PrivateChannel(name, pusher); + }, + createPresenceChannel(name, pusher) { + return new presence_channel_PresenceChannel(name, pusher); + }, + createEncryptedChannel(name, pusher, nacl) { + return new encrypted_channel_EncryptedChannel(name, pusher, nacl); + }, + createTimelineSender(timeline, options) { + return new timeline_sender_TimelineSender(timeline, options); + }, + createHandshake(transport, callback) { + return new handshake_Handshake(transport, callback); + }, + createAssistantToTheTransportManager(manager, transport, options) { + return new assistant_to_the_transport_manager_AssistantToTheTransportManager(manager, transport, options); + } +}; +/* harmony default export */ var factory = (Factory); + +// CONCATENATED MODULE: ./src/core/transports/transport_manager.ts + +class transport_manager_TransportManager { + constructor(options) { + this.options = options || {}; + this.livesLeft = this.options.lives || Infinity; + } + getAssistant(transport) { + return factory.createAssistantToTheTransportManager(this, transport, { + minPingDelay: this.options.minPingDelay, + maxPingDelay: this.options.maxPingDelay + }); + } + isAlive() { + return this.livesLeft > 0; + } + reportDeath() { + this.livesLeft -= 1; + } +} + +// CONCATENATED MODULE: ./src/core/strategies/sequential_strategy.ts + + + +class sequential_strategy_SequentialStrategy { + constructor(strategies, options) { + this.strategies = strategies; + this.loop = Boolean(options.loop); + this.failFast = Boolean(options.failFast); + this.timeout = options.timeout; + this.timeoutLimit = options.timeoutLimit; + } + isSupported() { + return any(this.strategies, util.method('isSupported')); + } + connect(minPriority, callback) { + var strategies = this.strategies; + var current = 0; + var timeout = this.timeout; + var runner = null; + var tryNextStrategy = (error, handshake) => { + if (handshake) { + callback(null, handshake); + } + else { + current = current + 1; + if (this.loop) { + current = current % strategies.length; + } + if (current < strategies.length) { + if (timeout) { + timeout = timeout * 2; + if (this.timeoutLimit) { + timeout = Math.min(timeout, this.timeoutLimit); + } + } + runner = this.tryStrategy(strategies[current], minPriority, { timeout, failFast: this.failFast }, tryNextStrategy); + } + else { + callback(true); + } + } + }; + runner = this.tryStrategy(strategies[current], minPriority, { timeout: timeout, failFast: this.failFast }, tryNextStrategy); + return { + abort: function () { + runner.abort(); + }, + forceMinPriority: function (p) { + minPriority = p; + if (runner) { + runner.forceMinPriority(p); + } + } + }; + } + tryStrategy(strategy, minPriority, options, callback) { + var timer = null; + var runner = null; + if (options.timeout > 0) { + timer = new timers_OneOffTimer(options.timeout, function () { + runner.abort(); + callback(true); + }); + } + runner = strategy.connect(minPriority, function (error, handshake) { + if (error && timer && timer.isRunning() && !options.failFast) { + return; + } + if (timer) { + timer.ensureAborted(); + } + callback(error, handshake); + }); + return { + abort: function () { + if (timer) { + timer.ensureAborted(); + } + runner.abort(); + }, + forceMinPriority: function (p) { + runner.forceMinPriority(p); + } + }; + } +} + +// CONCATENATED MODULE: ./src/core/strategies/best_connected_ever_strategy.ts + + +class best_connected_ever_strategy_BestConnectedEverStrategy { + constructor(strategies) { + this.strategies = strategies; + } + isSupported() { + return any(this.strategies, util.method('isSupported')); + } + connect(minPriority, callback) { + return connect(this.strategies, minPriority, function (i, runners) { + return function (error, handshake) { + runners[i].error = error; + if (error) { + if (allRunnersFailed(runners)) { + callback(true); + } + return; + } + apply(runners, function (runner) { + runner.forceMinPriority(handshake.transport.priority); + }); + callback(null, handshake); + }; + }); + } +} +function connect(strategies, minPriority, callbackBuilder) { + var runners = map(strategies, function (strategy, i, _, rs) { + return strategy.connect(minPriority, callbackBuilder(i, rs)); + }); + return { + abort: function () { + apply(runners, abortRunner); + }, + forceMinPriority: function (p) { + apply(runners, function (runner) { + runner.forceMinPriority(p); + }); + } + }; +} +function allRunnersFailed(runners) { + return collections_all(runners, function (runner) { + return Boolean(runner.error); + }); +} +function abortRunner(runner) { + if (!runner.error && !runner.aborted) { + runner.abort(); + runner.aborted = true; + } +} + +// CONCATENATED MODULE: ./src/core/strategies/websocket_prioritized_cached_strategy.ts + + + + +class websocket_prioritized_cached_strategy_WebSocketPrioritizedCachedStrategy { + constructor(strategy, transports, options) { + this.strategy = strategy; + this.transports = transports; + this.ttl = options.ttl || 1800 * 1000; + this.usingTLS = options.useTLS; + this.timeline = options.timeline; + } + isSupported() { + return this.strategy.isSupported(); + } + connect(minPriority, callback) { + var usingTLS = this.usingTLS; + var info = fetchTransportCache(usingTLS); + var cacheSkipCount = info && info.cacheSkipCount ? info.cacheSkipCount : 0; + var strategies = [this.strategy]; + if (info && info.timestamp + this.ttl >= util.now()) { + var transport = this.transports[info.transport]; + if (transport) { + if (['ws', 'wss'].includes(info.transport) || cacheSkipCount > 3) { + this.timeline.info({ + cached: true, + transport: info.transport, + latency: info.latency + }); + strategies.push(new sequential_strategy_SequentialStrategy([transport], { + timeout: info.latency * 2 + 1000, + failFast: true + })); + } + else { + cacheSkipCount++; + } + } + } + var startTimestamp = util.now(); + var runner = strategies + .pop() + .connect(minPriority, function cb(error, handshake) { + if (error) { + flushTransportCache(usingTLS); + if (strategies.length > 0) { + startTimestamp = util.now(); + runner = strategies.pop().connect(minPriority, cb); + } + else { + callback(error); + } + } + else { + storeTransportCache(usingTLS, handshake.transport.name, util.now() - startTimestamp, cacheSkipCount); + callback(null, handshake); + } + }); + return { + abort: function () { + runner.abort(); + }, + forceMinPriority: function (p) { + minPriority = p; + if (runner) { + runner.forceMinPriority(p); + } + } + }; + } +} +function getTransportCacheKey(usingTLS) { + return 'pusherTransport' + (usingTLS ? 'TLS' : 'NonTLS'); +} +function fetchTransportCache(usingTLS) { + var storage = runtime.getLocalStorage(); + if (storage) { + try { + var serializedCache = storage[getTransportCacheKey(usingTLS)]; + if (serializedCache) { + return JSON.parse(serializedCache); + } + } + catch (e) { + flushTransportCache(usingTLS); + } + } + return null; +} +function storeTransportCache(usingTLS, transport, latency, cacheSkipCount) { + var storage = runtime.getLocalStorage(); + if (storage) { + try { + storage[getTransportCacheKey(usingTLS)] = safeJSONStringify({ + timestamp: util.now(), + transport: transport, + latency: latency, + cacheSkipCount: cacheSkipCount + }); + } + catch (e) { + } + } +} +function flushTransportCache(usingTLS) { + var storage = runtime.getLocalStorage(); + if (storage) { + try { + delete storage[getTransportCacheKey(usingTLS)]; + } + catch (e) { + } + } +} + +// CONCATENATED MODULE: ./src/core/strategies/delayed_strategy.ts + +class delayed_strategy_DelayedStrategy { + constructor(strategy, { delay: number }) { + this.strategy = strategy; + this.options = { delay: number }; + } + isSupported() { + return this.strategy.isSupported(); + } + connect(minPriority, callback) { + var strategy = this.strategy; + var runner; + var timer = new timers_OneOffTimer(this.options.delay, function () { + runner = strategy.connect(minPriority, callback); + }); + return { + abort: function () { + timer.ensureAborted(); + if (runner) { + runner.abort(); + } + }, + forceMinPriority: function (p) { + minPriority = p; + if (runner) { + runner.forceMinPriority(p); + } + } + }; + } +} + +// CONCATENATED MODULE: ./src/core/strategies/if_strategy.ts +class IfStrategy { + constructor(test, trueBranch, falseBranch) { + this.test = test; + this.trueBranch = trueBranch; + this.falseBranch = falseBranch; + } + isSupported() { + var branch = this.test() ? this.trueBranch : this.falseBranch; + return branch.isSupported(); + } + connect(minPriority, callback) { + var branch = this.test() ? this.trueBranch : this.falseBranch; + return branch.connect(minPriority, callback); + } +} + +// CONCATENATED MODULE: ./src/core/strategies/first_connected_strategy.ts +class FirstConnectedStrategy { + constructor(strategy) { + this.strategy = strategy; + } + isSupported() { + return this.strategy.isSupported(); + } + connect(minPriority, callback) { + var runner = this.strategy.connect(minPriority, function (error, handshake) { + if (handshake) { + runner.abort(); + } + callback(error, handshake); + }); + return runner; + } +} + +// CONCATENATED MODULE: ./src/runtimes/web/default_strategy.ts + + + + + + + +function testSupportsStrategy(strategy) { + return function () { + return strategy.isSupported(); + }; +} +var getDefaultStrategy = function (config, baseOptions, defineTransport) { + var definedTransports = {}; + function defineTransportStrategy(name, type, priority, options, manager) { + var transport = defineTransport(config, name, type, priority, options, manager); + definedTransports[name] = transport; + return transport; + } + var ws_options = Object.assign({}, baseOptions, { + hostNonTLS: config.wsHost + ':' + config.wsPort, + hostTLS: config.wsHost + ':' + config.wssPort, + httpPath: config.wsPath + }); + var wss_options = Object.assign({}, ws_options, { + useTLS: true + }); + var sockjs_options = Object.assign({}, baseOptions, { + hostNonTLS: config.httpHost + ':' + config.httpPort, + hostTLS: config.httpHost + ':' + config.httpsPort, + httpPath: config.httpPath + }); + var timeouts = { + loop: true, + timeout: 15000, + timeoutLimit: 60000 + }; + var ws_manager = new transport_manager_TransportManager({ + minPingDelay: 10000, + maxPingDelay: config.activityTimeout + }); + var streaming_manager = new transport_manager_TransportManager({ + lives: 2, + minPingDelay: 10000, + maxPingDelay: config.activityTimeout + }); + var ws_transport = defineTransportStrategy('ws', 'ws', 3, ws_options, ws_manager); + var wss_transport = defineTransportStrategy('wss', 'ws', 3, wss_options, ws_manager); + var sockjs_transport = defineTransportStrategy('sockjs', 'sockjs', 1, sockjs_options); + var xhr_streaming_transport = defineTransportStrategy('xhr_streaming', 'xhr_streaming', 1, sockjs_options, streaming_manager); + var xdr_streaming_transport = defineTransportStrategy('xdr_streaming', 'xdr_streaming', 1, sockjs_options, streaming_manager); + var xhr_polling_transport = defineTransportStrategy('xhr_polling', 'xhr_polling', 1, sockjs_options); + var xdr_polling_transport = defineTransportStrategy('xdr_polling', 'xdr_polling', 1, sockjs_options); + var ws_loop = new sequential_strategy_SequentialStrategy([ws_transport], timeouts); + var wss_loop = new sequential_strategy_SequentialStrategy([wss_transport], timeouts); + var sockjs_loop = new sequential_strategy_SequentialStrategy([sockjs_transport], timeouts); + var streaming_loop = new sequential_strategy_SequentialStrategy([ + new IfStrategy(testSupportsStrategy(xhr_streaming_transport), xhr_streaming_transport, xdr_streaming_transport) + ], timeouts); + var polling_loop = new sequential_strategy_SequentialStrategy([ + new IfStrategy(testSupportsStrategy(xhr_polling_transport), xhr_polling_transport, xdr_polling_transport) + ], timeouts); + var http_loop = new sequential_strategy_SequentialStrategy([ + new IfStrategy(testSupportsStrategy(streaming_loop), new best_connected_ever_strategy_BestConnectedEverStrategy([ + streaming_loop, + new delayed_strategy_DelayedStrategy(polling_loop, { delay: 4000 }) + ]), polling_loop) + ], timeouts); + var http_fallback_loop = new IfStrategy(testSupportsStrategy(http_loop), http_loop, sockjs_loop); + var wsStrategy; + if (baseOptions.useTLS) { + wsStrategy = new best_connected_ever_strategy_BestConnectedEverStrategy([ + ws_loop, + new delayed_strategy_DelayedStrategy(http_fallback_loop, { delay: 2000 }) + ]); + } + else { + wsStrategy = new best_connected_ever_strategy_BestConnectedEverStrategy([ + ws_loop, + new delayed_strategy_DelayedStrategy(wss_loop, { delay: 2000 }), + new delayed_strategy_DelayedStrategy(http_fallback_loop, { delay: 5000 }) + ]); + } + return new websocket_prioritized_cached_strategy_WebSocketPrioritizedCachedStrategy(new FirstConnectedStrategy(new IfStrategy(testSupportsStrategy(ws_transport), wsStrategy, http_fallback_loop)), definedTransports, { + ttl: 1800000, + timeline: baseOptions.timeline, + useTLS: baseOptions.useTLS + }); +}; +/* harmony default export */ var default_strategy = (getDefaultStrategy); + +// CONCATENATED MODULE: ./src/runtimes/web/transports/transport_connection_initializer.ts + +/* harmony default export */ var transport_connection_initializer = (function () { + var self = this; + self.timeline.info(self.buildTimelineMessage({ + transport: self.name + (self.options.useTLS ? 's' : '') + })); + if (self.hooks.isInitialized()) { + self.changeState('initialized'); + } + else if (self.hooks.file) { + self.changeState('initializing'); + Dependencies.load(self.hooks.file, { useTLS: self.options.useTLS }, function (error, callback) { + if (self.hooks.isInitialized()) { + self.changeState('initialized'); + callback(true); + } + else { + if (error) { + self.onError(error); + } + self.onClose(); + callback(false); + } + }); + } + else { + self.onClose(); + } +}); + +// CONCATENATED MODULE: ./src/runtimes/web/http/http_xdomain_request.ts + +var http_xdomain_request_hooks = { + getRequest: function (socket) { + var xdr = new window.XDomainRequest(); + xdr.ontimeout = function () { + socket.emit('error', new RequestTimedOut()); + socket.close(); + }; + xdr.onerror = function (e) { + socket.emit('error', e); + socket.close(); + }; + xdr.onprogress = function () { + if (xdr.responseText && xdr.responseText.length > 0) { + socket.onChunk(200, xdr.responseText); + } + }; + xdr.onload = function () { + if (xdr.responseText && xdr.responseText.length > 0) { + socket.onChunk(200, xdr.responseText); + } + socket.emit('finished', 200); + socket.close(); + }; + return xdr; + }, + abortRequest: function (xdr) { + xdr.ontimeout = xdr.onerror = xdr.onprogress = xdr.onload = null; + xdr.abort(); + } +}; +/* harmony default export */ var http_xdomain_request = (http_xdomain_request_hooks); + +// CONCATENATED MODULE: ./src/core/http/http_request.ts + + +const MAX_BUFFER_LENGTH = 256 * 1024; +class http_request_HTTPRequest extends dispatcher_Dispatcher { + constructor(hooks, method, url) { + super(); + this.hooks = hooks; + this.method = method; + this.url = url; + } + start(payload) { + this.position = 0; + this.xhr = this.hooks.getRequest(this); + this.unloader = () => { + this.close(); + }; + runtime.addUnloadListener(this.unloader); + this.xhr.open(this.method, this.url, true); + if (this.xhr.setRequestHeader) { + this.xhr.setRequestHeader('Content-Type', 'application/json'); + } + this.xhr.send(payload); + } + close() { + if (this.unloader) { + runtime.removeUnloadListener(this.unloader); + this.unloader = null; + } + if (this.xhr) { + this.hooks.abortRequest(this.xhr); + this.xhr = null; + } + } + onChunk(status, data) { + while (true) { + var chunk = this.advanceBuffer(data); + if (chunk) { + this.emit('chunk', { status: status, data: chunk }); + } + else { + break; + } + } + if (this.isBufferTooLong(data)) { + this.emit('buffer_too_long'); + } + } + advanceBuffer(buffer) { + var unreadData = buffer.slice(this.position); + var endOfLinePosition = unreadData.indexOf('\n'); + if (endOfLinePosition !== -1) { + this.position += endOfLinePosition + 1; + return unreadData.slice(0, endOfLinePosition); + } + else { + return null; + } + } + isBufferTooLong(buffer) { + return this.position === buffer.length && buffer.length > MAX_BUFFER_LENGTH; + } +} + +// CONCATENATED MODULE: ./src/core/http/state.ts +var State; +(function (State) { + State[State["CONNECTING"] = 0] = "CONNECTING"; + State[State["OPEN"] = 1] = "OPEN"; + State[State["CLOSED"] = 3] = "CLOSED"; +})(State || (State = {})); +/* harmony default export */ var state = (State); + +// CONCATENATED MODULE: ./src/core/http/http_socket.ts + + + +var autoIncrement = 1; +class http_socket_HTTPSocket { + constructor(hooks, url) { + this.hooks = hooks; + this.session = randomNumber(1000) + '/' + randomString(8); + this.location = getLocation(url); + this.readyState = state.CONNECTING; + this.openStream(); + } + send(payload) { + return this.sendRaw(JSON.stringify([payload])); + } + ping() { + this.hooks.sendHeartbeat(this); + } + close(code, reason) { + this.onClose(code, reason, true); + } + sendRaw(payload) { + if (this.readyState === state.OPEN) { + try { + runtime.createSocketRequest('POST', getUniqueURL(getSendURL(this.location, this.session))).start(payload); + return true; + } + catch (e) { + return false; + } + } + else { + return false; + } + } + reconnect() { + this.closeStream(); + this.openStream(); + } + onClose(code, reason, wasClean) { + this.closeStream(); + this.readyState = state.CLOSED; + if (this.onclose) { + this.onclose({ + code: code, + reason: reason, + wasClean: wasClean + }); + } + } + onChunk(chunk) { + if (chunk.status !== 200) { + return; + } + if (this.readyState === state.OPEN) { + this.onActivity(); + } + var payload; + var type = chunk.data.slice(0, 1); + switch (type) { + case 'o': + payload = JSON.parse(chunk.data.slice(1) || '{}'); + this.onOpen(payload); + break; + case 'a': + payload = JSON.parse(chunk.data.slice(1) || '[]'); + for (var i = 0; i < payload.length; i++) { + this.onEvent(payload[i]); + } + break; + case 'm': + payload = JSON.parse(chunk.data.slice(1) || 'null'); + this.onEvent(payload); + break; + case 'h': + this.hooks.onHeartbeat(this); + break; + case 'c': + payload = JSON.parse(chunk.data.slice(1) || '[]'); + this.onClose(payload[0], payload[1], true); + break; + } + } + onOpen(options) { + if (this.readyState === state.CONNECTING) { + if (options && options.hostname) { + this.location.base = replaceHost(this.location.base, options.hostname); + } + this.readyState = state.OPEN; + if (this.onopen) { + this.onopen(); + } + } + else { + this.onClose(1006, 'Server lost session', true); + } + } + onEvent(event) { + if (this.readyState === state.OPEN && this.onmessage) { + this.onmessage({ data: event }); + } + } + onActivity() { + if (this.onactivity) { + this.onactivity(); + } + } + onError(error) { + if (this.onerror) { + this.onerror(error); + } + } + openStream() { + this.stream = runtime.createSocketRequest('POST', getUniqueURL(this.hooks.getReceiveURL(this.location, this.session))); + this.stream.bind('chunk', chunk => { + this.onChunk(chunk); + }); + this.stream.bind('finished', status => { + this.hooks.onFinished(this, status); + }); + this.stream.bind('buffer_too_long', () => { + this.reconnect(); + }); + try { + this.stream.start(); + } + catch (error) { + util.defer(() => { + this.onError(error); + this.onClose(1006, 'Could not start streaming', false); + }); + } + } + closeStream() { + if (this.stream) { + this.stream.unbind_all(); + this.stream.close(); + this.stream = null; + } + } +} +function getLocation(url) { + var parts = /([^\?]*)\/*(\??.*)/.exec(url); + return { + base: parts[1], + queryString: parts[2] + }; +} +function getSendURL(url, session) { + return url.base + '/' + session + '/xhr_send'; +} +function getUniqueURL(url) { + var separator = url.indexOf('?') === -1 ? '?' : '&'; + return url + separator + 't=' + +new Date() + '&n=' + autoIncrement++; +} +function replaceHost(url, hostname) { + var urlParts = /(https?:\/\/)([^\/:]+)((\/|:)?.*)/.exec(url); + return urlParts[1] + hostname + urlParts[3]; +} +function randomNumber(max) { + return runtime.randomInt(max); +} +function randomString(length) { + var result = []; + for (var i = 0; i < length; i++) { + result.push(randomNumber(32).toString(32)); + } + return result.join(''); +} +/* harmony default export */ var http_socket = (http_socket_HTTPSocket); + +// CONCATENATED MODULE: ./src/core/http/http_streaming_socket.ts +var http_streaming_socket_hooks = { + getReceiveURL: function (url, session) { + return url.base + '/' + session + '/xhr_streaming' + url.queryString; + }, + onHeartbeat: function (socket) { + socket.sendRaw('[]'); + }, + sendHeartbeat: function (socket) { + socket.sendRaw('[]'); + }, + onFinished: function (socket, status) { + socket.onClose(1006, 'Connection interrupted (' + status + ')', false); + } +}; +/* harmony default export */ var http_streaming_socket = (http_streaming_socket_hooks); + +// CONCATENATED MODULE: ./src/core/http/http_polling_socket.ts +var http_polling_socket_hooks = { + getReceiveURL: function (url, session) { + return url.base + '/' + session + '/xhr' + url.queryString; + }, + onHeartbeat: function () { + }, + sendHeartbeat: function (socket) { + socket.sendRaw('[]'); + }, + onFinished: function (socket, status) { + if (status === 200) { + socket.reconnect(); + } + else { + socket.onClose(1006, 'Connection interrupted (' + status + ')', false); + } + } +}; +/* harmony default export */ var http_polling_socket = (http_polling_socket_hooks); + +// CONCATENATED MODULE: ./src/runtimes/isomorphic/http/http_xhr_request.ts + +var http_xhr_request_hooks = { + getRequest: function (socket) { + var Constructor = runtime.getXHRAPI(); + var xhr = new Constructor(); + xhr.onreadystatechange = xhr.onprogress = function () { + switch (xhr.readyState) { + case 3: + if (xhr.responseText && xhr.responseText.length > 0) { + socket.onChunk(xhr.status, xhr.responseText); + } + break; + case 4: + if (xhr.responseText && xhr.responseText.length > 0) { + socket.onChunk(xhr.status, xhr.responseText); + } + socket.emit('finished', xhr.status); + socket.close(); + break; + } + }; + return xhr; + }, + abortRequest: function (xhr) { + xhr.onreadystatechange = null; + xhr.abort(); + } +}; +/* harmony default export */ var http_xhr_request = (http_xhr_request_hooks); + +// CONCATENATED MODULE: ./src/runtimes/isomorphic/http/http.ts + + + + + +var HTTP = { + createStreamingSocket(url) { + return this.createSocket(http_streaming_socket, url); + }, + createPollingSocket(url) { + return this.createSocket(http_polling_socket, url); + }, + createSocket(hooks, url) { + return new http_socket(hooks, url); + }, + createXHR(method, url) { + return this.createRequest(http_xhr_request, method, url); + }, + createRequest(hooks, method, url) { + return new http_request_HTTPRequest(hooks, method, url); + } +}; +/* harmony default export */ var http_http = (HTTP); + +// CONCATENATED MODULE: ./src/runtimes/web/http/http.ts + + +http_http.createXDR = function (method, url) { + return this.createRequest(http_xdomain_request, method, url); +}; +/* harmony default export */ var web_http_http = (http_http); + +// CONCATENATED MODULE: ./src/runtimes/web/runtime.ts + + + + + + + + + + + + +var Runtime = { + nextAuthCallbackID: 1, + auth_callbacks: {}, + ScriptReceivers: ScriptReceivers, + DependenciesReceivers: DependenciesReceivers, + getDefaultStrategy: default_strategy, + Transports: transports_transports, + transportConnectionInitializer: transport_connection_initializer, + HTTPFactory: web_http_http, + TimelineTransport: jsonp_timeline, + getXHRAPI() { + return window.XMLHttpRequest; + }, + getWebSocketAPI() { + return window.WebSocket || window.MozWebSocket; + }, + setup(PusherClass) { + window.Pusher = PusherClass; + var initializeOnDocumentBody = () => { + this.onDocumentBody(PusherClass.ready); + }; + if (!window.JSON) { + Dependencies.load('json2', {}, initializeOnDocumentBody); + } + else { + initializeOnDocumentBody(); + } + }, + getDocument() { + return document; + }, + getProtocol() { + return this.getDocument().location.protocol; + }, + getAuthorizers() { + return { ajax: xhr_auth, jsonp: jsonp_auth }; + }, + onDocumentBody(callback) { + if (document.body) { + callback(); + } + else { + setTimeout(() => { + this.onDocumentBody(callback); + }, 0); + } + }, + createJSONPRequest(url, data) { + return new jsonp_request_JSONPRequest(url, data); + }, + createScriptRequest(src) { + return new ScriptRequest(src); + }, + getLocalStorage() { + try { + return window.localStorage; + } + catch (e) { + return undefined; + } + }, + createXHR() { + if (this.getXHRAPI()) { + return this.createXMLHttpRequest(); + } + else { + return this.createMicrosoftXHR(); + } + }, + createXMLHttpRequest() { + var Constructor = this.getXHRAPI(); + return new Constructor(); + }, + createMicrosoftXHR() { + return new ActiveXObject('Microsoft.XMLHTTP'); + }, + getNetwork() { + return net_info_Network; + }, + createWebSocket(url) { + var Constructor = this.getWebSocketAPI(); + return new Constructor(url); + }, + createSocketRequest(method, url) { + if (this.isXHRSupported()) { + return this.HTTPFactory.createXHR(method, url); + } + else if (this.isXDRSupported(url.indexOf('https:') === 0)) { + return this.HTTPFactory.createXDR(method, url); + } + else { + throw 'Cross-origin HTTP requests are not supported'; + } + }, + isXHRSupported() { + var Constructor = this.getXHRAPI(); + return (Boolean(Constructor) && new Constructor().withCredentials !== undefined); + }, + isXDRSupported(useTLS) { + var protocol = useTLS ? 'https:' : 'http:'; + var documentProtocol = this.getProtocol(); + return (Boolean(window['XDomainRequest']) && documentProtocol === protocol); + }, + addUnloadListener(listener) { + if (window.addEventListener !== undefined) { + window.addEventListener('unload', listener, false); + } + else if (window.attachEvent !== undefined) { + window.attachEvent('onunload', listener); + } + }, + removeUnloadListener(listener) { + if (window.addEventListener !== undefined) { + window.removeEventListener('unload', listener, false); + } + else if (window.detachEvent !== undefined) { + window.detachEvent('onunload', listener); + } + }, + randomInt(max) { + const random = function () { + const crypto = window.crypto || window['msCrypto']; + const random = crypto.getRandomValues(new Uint32Array(1))[0]; + return random / Math.pow(2, 32); + }; + return Math.floor(random() * max); + } +}; +/* harmony default export */ var runtime = (Runtime); + +// CONCATENATED MODULE: ./src/core/timeline/level.ts +var TimelineLevel; +(function (TimelineLevel) { + TimelineLevel[TimelineLevel["ERROR"] = 3] = "ERROR"; + TimelineLevel[TimelineLevel["INFO"] = 6] = "INFO"; + TimelineLevel[TimelineLevel["DEBUG"] = 7] = "DEBUG"; +})(TimelineLevel || (TimelineLevel = {})); +/* harmony default export */ var timeline_level = (TimelineLevel); + +// CONCATENATED MODULE: ./src/core/timeline/timeline.ts + + + +class timeline_Timeline { + constructor(key, session, options) { + this.key = key; + this.session = session; + this.events = []; + this.options = options || {}; + this.sent = 0; + this.uniqueID = 0; + } + log(level, event) { + if (level <= this.options.level) { + this.events.push(extend({}, event, { timestamp: util.now() })); + if (this.options.limit && this.events.length > this.options.limit) { + this.events.shift(); + } + } + } + error(event) { + this.log(timeline_level.ERROR, event); + } + info(event) { + this.log(timeline_level.INFO, event); + } + debug(event) { + this.log(timeline_level.DEBUG, event); + } + isEmpty() { + return this.events.length === 0; + } + send(sendfn, callback) { + var data = extend({ + session: this.session, + bundle: this.sent + 1, + key: this.key, + lib: 'js', + version: this.options.version, + cluster: this.options.cluster, + features: this.options.features, + timeline: this.events + }, this.options.params); + this.events = []; + sendfn(data, (error, result) => { + if (!error) { + this.sent++; + } + if (callback) { + callback(error, result); + } + }); + return true; + } + generateUniqueID() { + this.uniqueID++; + return this.uniqueID; + } +} + +// CONCATENATED MODULE: ./src/core/strategies/transport_strategy.ts + + + + +class transport_strategy_TransportStrategy { + constructor(name, priority, transport, options) { + this.name = name; + this.priority = priority; + this.transport = transport; + this.options = options || {}; + } + isSupported() { + return this.transport.isSupported({ + useTLS: this.options.useTLS + }); + } + connect(minPriority, callback) { + if (!this.isSupported()) { + return failAttempt(new UnsupportedStrategy(), callback); + } + else if (this.priority < minPriority) { + return failAttempt(new TransportPriorityTooLow(), callback); + } + var connected = false; + var transport = this.transport.createConnection(this.name, this.priority, this.options.key, this.options); + var handshake = null; + var onInitialized = function () { + transport.unbind('initialized', onInitialized); + transport.connect(); + }; + var onOpen = function () { + handshake = factory.createHandshake(transport, function (result) { + connected = true; + unbindListeners(); + callback(null, result); + }); + }; + var onError = function (error) { + unbindListeners(); + callback(error); + }; + var onClosed = function () { + unbindListeners(); + var serializedTransport; + serializedTransport = safeJSONStringify(transport); + callback(new TransportClosed(serializedTransport)); + }; + var unbindListeners = function () { + transport.unbind('initialized', onInitialized); + transport.unbind('open', onOpen); + transport.unbind('error', onError); + transport.unbind('closed', onClosed); + }; + transport.bind('initialized', onInitialized); + transport.bind('open', onOpen); + transport.bind('error', onError); + transport.bind('closed', onClosed); + transport.initialize(); + return { + abort: () => { + if (connected) { + return; + } + unbindListeners(); + if (handshake) { + handshake.close(); + } + else { + transport.close(); + } + }, + forceMinPriority: p => { + if (connected) { + return; + } + if (this.priority < p) { + if (handshake) { + handshake.close(); + } + else { + transport.close(); + } + } + } + }; + } +} +function failAttempt(error, callback) { + util.defer(function () { + callback(error); + }); + return { + abort: function () { }, + forceMinPriority: function () { } + }; +} + +// CONCATENATED MODULE: ./src/core/strategies/strategy_builder.ts + + + + + +const { Transports: strategy_builder_Transports } = runtime; +var strategy_builder_defineTransport = function (config, name, type, priority, options, manager) { + var transportClass = strategy_builder_Transports[type]; + if (!transportClass) { + throw new UnsupportedTransport(type); + } + var enabled = (!config.enabledTransports || + arrayIndexOf(config.enabledTransports, name) !== -1) && + (!config.disabledTransports || + arrayIndexOf(config.disabledTransports, name) === -1); + var transport; + if (enabled) { + options = Object.assign({ ignoreNullOrigin: config.ignoreNullOrigin }, options); + transport = new transport_strategy_TransportStrategy(name, priority, manager ? manager.getAssistant(transportClass) : transportClass, options); + } + else { + transport = strategy_builder_UnsupportedStrategy; + } + return transport; +}; +var strategy_builder_UnsupportedStrategy = { + isSupported: function () { + return false; + }, + connect: function (_, callback) { + var deferred = util.defer(function () { + callback(new UnsupportedStrategy()); + }); + return { + abort: function () { + deferred.ensureAborted(); + }, + forceMinPriority: function () { } + }; + } +}; + +// CONCATENATED MODULE: ./src/core/options.ts + +function validateOptions(options) { + if (options == null) { + throw 'You must pass an options object'; + } + if (options.cluster == null) { + throw 'Options object must provide a cluster'; + } + if ('disableStats' in options) { + logger.warn('The disableStats option is deprecated in favor of enableStats'); + } +} + +// CONCATENATED MODULE: ./src/core/auth/user_authenticator.ts + + +const composeChannelQuery = (params, authOptions) => { + var query = 'socket_id=' + encodeURIComponent(params.socketId); + for (var key in authOptions.params) { + query += + '&' + + encodeURIComponent(key) + + '=' + + encodeURIComponent(authOptions.params[key]); + } + if (authOptions.paramsProvider != null) { + let dynamicParams = authOptions.paramsProvider(); + for (var key in dynamicParams) { + query += + '&' + + encodeURIComponent(key) + + '=' + + encodeURIComponent(dynamicParams[key]); + } + } + return query; +}; +const UserAuthenticator = (authOptions) => { + if (typeof runtime.getAuthorizers()[authOptions.transport] === 'undefined') { + throw `'${authOptions.transport}' is not a recognized auth transport`; + } + return (params, callback) => { + const query = composeChannelQuery(params, authOptions); + runtime.getAuthorizers()[authOptions.transport](runtime, query, authOptions, AuthRequestType.UserAuthentication, callback); + }; +}; +/* harmony default export */ var user_authenticator = (UserAuthenticator); + +// CONCATENATED MODULE: ./src/core/auth/channel_authorizer.ts + + +const channel_authorizer_composeChannelQuery = (params, authOptions) => { + var query = 'socket_id=' + encodeURIComponent(params.socketId); + query += '&channel_name=' + encodeURIComponent(params.channelName); + for (var key in authOptions.params) { + query += + '&' + + encodeURIComponent(key) + + '=' + + encodeURIComponent(authOptions.params[key]); + } + if (authOptions.paramsProvider != null) { + let dynamicParams = authOptions.paramsProvider(); + for (var key in dynamicParams) { + query += + '&' + + encodeURIComponent(key) + + '=' + + encodeURIComponent(dynamicParams[key]); + } + } + return query; +}; +const ChannelAuthorizer = (authOptions) => { + if (typeof runtime.getAuthorizers()[authOptions.transport] === 'undefined') { + throw `'${authOptions.transport}' is not a recognized auth transport`; + } + return (params, callback) => { + const query = channel_authorizer_composeChannelQuery(params, authOptions); + runtime.getAuthorizers()[authOptions.transport](runtime, query, authOptions, AuthRequestType.ChannelAuthorization, callback); + }; +}; +/* harmony default export */ var channel_authorizer = (ChannelAuthorizer); + +// CONCATENATED MODULE: ./src/core/auth/deprecated_channel_authorizer.ts +const ChannelAuthorizerProxy = (pusher, authOptions, channelAuthorizerGenerator) => { + const deprecatedAuthorizerOptions = { + authTransport: authOptions.transport, + authEndpoint: authOptions.endpoint, + auth: { + params: authOptions.params, + headers: authOptions.headers + } + }; + return (params, callback) => { + const channel = pusher.channel(params.channelName); + const channelAuthorizer = channelAuthorizerGenerator(channel, deprecatedAuthorizerOptions); + channelAuthorizer.authorize(params.socketId, callback); + }; +}; + +// CONCATENATED MODULE: ./src/core/config.ts + + + + + +function getConfig(opts, pusher) { + let config = { + activityTimeout: opts.activityTimeout || defaults.activityTimeout, + cluster: opts.cluster, + httpPath: opts.httpPath || defaults.httpPath, + httpPort: opts.httpPort || defaults.httpPort, + httpsPort: opts.httpsPort || defaults.httpsPort, + pongTimeout: opts.pongTimeout || defaults.pongTimeout, + statsHost: opts.statsHost || defaults.stats_host, + unavailableTimeout: opts.unavailableTimeout || defaults.unavailableTimeout, + wsPath: opts.wsPath || defaults.wsPath, + wsPort: opts.wsPort || defaults.wsPort, + wssPort: opts.wssPort || defaults.wssPort, + enableStats: getEnableStatsConfig(opts), + httpHost: getHttpHost(opts), + useTLS: shouldUseTLS(opts), + wsHost: getWebsocketHost(opts), + userAuthenticator: buildUserAuthenticator(opts), + channelAuthorizer: buildChannelAuthorizer(opts, pusher) + }; + if ('disabledTransports' in opts) + config.disabledTransports = opts.disabledTransports; + if ('enabledTransports' in opts) + config.enabledTransports = opts.enabledTransports; + if ('ignoreNullOrigin' in opts) + config.ignoreNullOrigin = opts.ignoreNullOrigin; + if ('timelineParams' in opts) + config.timelineParams = opts.timelineParams; + if ('nacl' in opts) { + config.nacl = opts.nacl; + } + return config; +} +function getHttpHost(opts) { + if (opts.httpHost) { + return opts.httpHost; + } + if (opts.cluster) { + return `sockjs-${opts.cluster}.pusher.com`; + } + return defaults.httpHost; +} +function getWebsocketHost(opts) { + if (opts.wsHost) { + return opts.wsHost; + } + return getWebsocketHostFromCluster(opts.cluster); +} +function getWebsocketHostFromCluster(cluster) { + return `ws-${cluster}.pusher.com`; +} +function shouldUseTLS(opts) { + if (runtime.getProtocol() === 'https:') { + return true; + } + else if (opts.forceTLS === false) { + return false; + } + return true; +} +function getEnableStatsConfig(opts) { + if ('enableStats' in opts) { + return opts.enableStats; + } + if ('disableStats' in opts) { + return !opts.disableStats; + } + return false; +} +function buildUserAuthenticator(opts) { + const userAuthentication = Object.assign(Object.assign({}, defaults.userAuthentication), opts.userAuthentication); + if ('customHandler' in userAuthentication && + userAuthentication['customHandler'] != null) { + return userAuthentication['customHandler']; + } + return user_authenticator(userAuthentication); +} +function buildChannelAuth(opts, pusher) { + let channelAuthorization; + if ('channelAuthorization' in opts) { + channelAuthorization = Object.assign(Object.assign({}, defaults.channelAuthorization), opts.channelAuthorization); + } + else { + channelAuthorization = { + transport: opts.authTransport || defaults.authTransport, + endpoint: opts.authEndpoint || defaults.authEndpoint + }; + if ('auth' in opts) { + if ('params' in opts.auth) + channelAuthorization.params = opts.auth.params; + if ('headers' in opts.auth) + channelAuthorization.headers = opts.auth.headers; + } + if ('authorizer' in opts) + channelAuthorization.customHandler = ChannelAuthorizerProxy(pusher, channelAuthorization, opts.authorizer); + } + return channelAuthorization; +} +function buildChannelAuthorizer(opts, pusher) { + const channelAuthorization = buildChannelAuth(opts, pusher); + if ('customHandler' in channelAuthorization && + channelAuthorization['customHandler'] != null) { + return channelAuthorization['customHandler']; + } + return channel_authorizer(channelAuthorization); +} + +// CONCATENATED MODULE: ./src/core/watchlist.ts + + +class watchlist_WatchlistFacade extends dispatcher_Dispatcher { + constructor(pusher) { + super(function (eventName, data) { + logger.debug(`No callbacks on watchlist events for ${eventName}`); + }); + this.pusher = pusher; + this.bindWatchlistInternalEvent(); + } + handleEvent(pusherEvent) { + pusherEvent.data.events.forEach(watchlistEvent => { + this.emit(watchlistEvent.name, watchlistEvent); + }); + } + bindWatchlistInternalEvent() { + this.pusher.connection.bind('message', pusherEvent => { + var eventName = pusherEvent.event; + if (eventName === 'pusher_internal:watchlist_events') { + this.handleEvent(pusherEvent); + } + }); + } +} + +// CONCATENATED MODULE: ./src/core/utils/flat_promise.ts +function flatPromise() { + let resolve, reject; + const promise = new Promise((res, rej) => { + resolve = res; + reject = rej; + }); + return { promise, resolve, reject }; +} +/* harmony default export */ var flat_promise = (flatPromise); + +// CONCATENATED MODULE: ./src/core/user.ts + + + + + +class user_UserFacade extends dispatcher_Dispatcher { + constructor(pusher) { + super(function (eventName, data) { + logger.debug('No callbacks on user for ' + eventName); + }); + this.signin_requested = false; + this.user_data = null; + this.serverToUserChannel = null; + this.signinDonePromise = null; + this._signinDoneResolve = null; + this._onAuthorize = (err, authData) => { + if (err) { + logger.warn(`Error during signin: ${err}`); + this._cleanup(); + return; + } + this.pusher.send_event('pusher:signin', { + auth: authData.auth, + user_data: authData.user_data + }); + }; + this.pusher = pusher; + this.pusher.connection.bind('state_change', ({ previous, current }) => { + if (previous !== 'connected' && current === 'connected') { + this._signin(); + } + if (previous === 'connected' && current !== 'connected') { + this._cleanup(); + this._newSigninPromiseIfNeeded(); + } + }); + this.watchlist = new watchlist_WatchlistFacade(pusher); + this.pusher.connection.bind('message', event => { + var eventName = event.event; + if (eventName === 'pusher:signin_success') { + this._onSigninSuccess(event.data); + } + if (this.serverToUserChannel && + this.serverToUserChannel.name === event.channel) { + this.serverToUserChannel.handleEvent(event); + } + }); + } + signin() { + if (this.signin_requested) { + return; + } + this.signin_requested = true; + this._signin(); + } + _signin() { + if (!this.signin_requested) { + return; + } + this._newSigninPromiseIfNeeded(); + if (this.pusher.connection.state !== 'connected') { + return; + } + this.pusher.config.userAuthenticator({ + socketId: this.pusher.connection.socket_id + }, this._onAuthorize); + } + _onSigninSuccess(data) { + try { + this.user_data = JSON.parse(data.user_data); + } + catch (e) { + logger.error(`Failed parsing user data after signin: ${data.user_data}`); + this._cleanup(); + return; + } + if (typeof this.user_data.id !== 'string' || this.user_data.id === '') { + logger.error(`user_data doesn't contain an id. user_data: ${this.user_data}`); + this._cleanup(); + return; + } + this._signinDoneResolve(); + this._subscribeChannels(); + } + _subscribeChannels() { + const ensure_subscribed = channel => { + if (channel.subscriptionPending && channel.subscriptionCancelled) { + channel.reinstateSubscription(); + } + else if (!channel.subscriptionPending && + this.pusher.connection.state === 'connected') { + channel.subscribe(); + } + }; + this.serverToUserChannel = new channel_Channel(`#server-to-user-${this.user_data.id}`, this.pusher); + this.serverToUserChannel.bind_global((eventName, data) => { + if (eventName.indexOf('pusher_internal:') === 0 || + eventName.indexOf('pusher:') === 0) { + return; + } + this.emit(eventName, data); + }); + ensure_subscribed(this.serverToUserChannel); + } + _cleanup() { + this.user_data = null; + if (this.serverToUserChannel) { + this.serverToUserChannel.unbind_all(); + this.serverToUserChannel.disconnect(); + this.serverToUserChannel = null; + } + if (this.signin_requested) { + this._signinDoneResolve(); + } + } + _newSigninPromiseIfNeeded() { + if (!this.signin_requested) { + return; + } + if (this.signinDonePromise && !this.signinDonePromise.done) { + return; + } + const { promise, resolve, reject: _ } = flat_promise(); + promise.done = false; + const setDone = () => { + promise.done = true; + }; + promise.then(setDone).catch(setDone); + this.signinDonePromise = promise; + this._signinDoneResolve = resolve; + } +} + +// CONCATENATED MODULE: ./src/core/pusher.ts + + + + + + + + + + + + + +class pusher_Pusher { + static ready() { + pusher_Pusher.isReady = true; + for (var i = 0, l = pusher_Pusher.instances.length; i < l; i++) { + pusher_Pusher.instances[i].connect(); + } + } + static getClientFeatures() { + return keys(filterObject({ ws: runtime.Transports.ws }, function (t) { + return t.isSupported({}); + })); + } + constructor(app_key, options) { + checkAppKey(app_key); + validateOptions(options); + this.key = app_key; + this.config = getConfig(options, this); + this.channels = factory.createChannels(); + this.global_emitter = new dispatcher_Dispatcher(); + this.sessionID = runtime.randomInt(1000000000); + this.timeline = new timeline_Timeline(this.key, this.sessionID, { + cluster: this.config.cluster, + features: pusher_Pusher.getClientFeatures(), + params: this.config.timelineParams || {}, + limit: 50, + level: timeline_level.INFO, + version: defaults.VERSION + }); + if (this.config.enableStats) { + this.timelineSender = factory.createTimelineSender(this.timeline, { + host: this.config.statsHost, + path: '/timeline/v2/' + runtime.TimelineTransport.name + }); + } + var getStrategy = (options) => { + return runtime.getDefaultStrategy(this.config, options, strategy_builder_defineTransport); + }; + this.connection = factory.createConnectionManager(this.key, { + getStrategy: getStrategy, + timeline: this.timeline, + activityTimeout: this.config.activityTimeout, + pongTimeout: this.config.pongTimeout, + unavailableTimeout: this.config.unavailableTimeout, + useTLS: Boolean(this.config.useTLS) + }); + this.connection.bind('connected', () => { + this.subscribeAll(); + if (this.timelineSender) { + this.timelineSender.send(this.connection.isUsingTLS()); + } + }); + this.connection.bind('message', event => { + var eventName = event.event; + var internal = eventName.indexOf('pusher_internal:') === 0; + if (event.channel) { + var channel = this.channel(event.channel); + if (channel) { + channel.handleEvent(event); + } + } + if (!internal) { + this.global_emitter.emit(event.event, event.data); + } + }); + this.connection.bind('connecting', () => { + this.channels.disconnect(); + }); + this.connection.bind('disconnected', () => { + this.channels.disconnect(); + }); + this.connection.bind('error', err => { + logger.warn(err); + }); + pusher_Pusher.instances.push(this); + this.timeline.info({ instances: pusher_Pusher.instances.length }); + this.user = new user_UserFacade(this); + if (pusher_Pusher.isReady) { + this.connect(); + } + } + channel(name) { + return this.channels.find(name); + } + allChannels() { + return this.channels.all(); + } + connect() { + this.connection.connect(); + if (this.timelineSender) { + if (!this.timelineSenderTimer) { + var usingTLS = this.connection.isUsingTLS(); + var timelineSender = this.timelineSender; + this.timelineSenderTimer = new timers_PeriodicTimer(60000, function () { + timelineSender.send(usingTLS); + }); + } + } + } + disconnect() { + this.connection.disconnect(); + if (this.timelineSenderTimer) { + this.timelineSenderTimer.ensureAborted(); + this.timelineSenderTimer = null; + } + } + bind(event_name, callback, context) { + this.global_emitter.bind(event_name, callback, context); + return this; + } + unbind(event_name, callback, context) { + this.global_emitter.unbind(event_name, callback, context); + return this; + } + bind_global(callback) { + this.global_emitter.bind_global(callback); + return this; + } + unbind_global(callback) { + this.global_emitter.unbind_global(callback); + return this; + } + unbind_all(callback) { + this.global_emitter.unbind_all(); + return this; + } + subscribeAll() { + var channelName; + for (channelName in this.channels.channels) { + if (this.channels.channels.hasOwnProperty(channelName)) { + this.subscribe(channelName); + } + } + } + subscribe(channel_name) { + var channel = this.channels.add(channel_name, this); + if (channel.subscriptionPending && channel.subscriptionCancelled) { + channel.reinstateSubscription(); + } + else if (!channel.subscriptionPending && + this.connection.state === 'connected') { + channel.subscribe(); + } + return channel; + } + unsubscribe(channel_name) { + var channel = this.channels.find(channel_name); + if (channel && channel.subscriptionPending) { + channel.cancelSubscription(); + } + else { + channel = this.channels.remove(channel_name); + if (channel && channel.subscribed) { + channel.unsubscribe(); + } + } + } + send_event(event_name, data, channel) { + return this.connection.send_event(event_name, data, channel); + } + shouldUseTLS() { + return this.config.useTLS; + } + signin() { + this.user.signin(); + } +} +pusher_Pusher.instances = []; +pusher_Pusher.isReady = false; +pusher_Pusher.logToConsole = false; +pusher_Pusher.Runtime = runtime; +pusher_Pusher.ScriptReceivers = runtime.ScriptReceivers; +pusher_Pusher.DependenciesReceivers = runtime.DependenciesReceivers; +pusher_Pusher.auth_callbacks = runtime.auth_callbacks; +/* harmony default export */ var core_pusher = __webpack_exports__["default"] = (pusher_Pusher); +function checkAppKey(key) { + if (key === null || key === undefined) { + throw 'You must pass your app key when you instantiate Pusher.'; + } +} +runtime.setup(pusher_Pusher); + + +/***/ }) +/******/ ]); +}); +//# sourceMappingURL=pusher.js.map + +/***/ }), +/* 211 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _jquery = __webpack_require__(0); + +var _jquery2 = _interopRequireDefault(_jquery); + +var _dialog = __webpack_require__(1); + +var _dialog2 = _interopRequireDefault(_dialog); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var propertyRecord = function propertyRecord(services) { + var configService = services.configService, + localeService = services.localeService, + appEvents = services.appEvents; + + var url = configService.get('baseUrl'); + + var openModal = function openModal(datas) { + return doProperty(datas); + }; + + var doProperty = function doProperty(datas) { + var $dialog = _dialog2.default.create(services, { + size: 'Medium', + title: (0, _jquery2.default)('#property-title').val() + }); + + _jquery2.default.ajax({ + type: 'GET', + data: datas, + url: url + 'prod/records/property/', + success: function success(data) { + $dialog.setContent(data); + _onPropertyReady($dialog); + } + }); + + return true; + }; + + var _onPropertyReady = function _onPropertyReady($dialog) { + (0, _jquery2.default)('#tabs-records-property').tabs({ + beforeLoad: function beforeLoad(event, ui) { + + ui.ajaxSettings.data = { + lst: (0, _jquery2.default)('input[name=original_selection]', (0, _jquery2.default)(this)).val() + }; + + // load template only once + if (ui.tab.data('loaded')) { + event.preventDefault(); + return; + } + + ui.jqXHR.success(function () { + ui.tab.data('loaded', true); + ui.tab.find('span').html(''); + typeTabContent($dialog, '#' + ui.tab.attr('aria-controls')); + }); + + ui.tab.find('span').html('' + localeService.t('loading') + ''); + }, + load: function load(event, ui) { + ui.tab.find('span').empty(); + } + }); + propertyTabContent($dialog); + }; + /** + * Property Tab + * @param $dialogBox + */ + var propertyTabContent = function propertyTabContent($dialog) { + + var $propertyContainer = (0, _jquery2.default)('#property-status'); + + $propertyContainer.on('click', 'button.cancel', function () { + $dialog.close(); + }); + + $propertyContainer.on('click', 'button.submiter', function () { + var $this = (0, _jquery2.default)(this); + var form = (0, _jquery2.default)(this).closest('form'); + var loader = form.find('form-action-loader'); + + _jquery2.default.ajax({ + type: form.attr('method'), + url: form.attr('action'), + data: form.serializeArray(), + dataType: 'json', + beforeSend: function beforeSend() { + $this.attr('disabled', true); + loader.show(); + }, + success: function success(data) { + $dialog.close(); + }, + complete: function complete() { + $this.attr('disabled', false); + loader.hide(); + } + }); + }); + }; + /** + * Type Tab + * @param $dialog + * @param typeContainerId + */ + var typeTabContent = function typeTabContent($dialog, typeContainerId) { + + var $typeContainer = (0, _jquery2.default)(typeContainerId); + + $typeContainer.on('click', 'button.cancel', function () { + $dialog.close(); + }); + $typeContainer.on('click', 'button.submiter', function () { + var $this = (0, _jquery2.default)(this); + var form = (0, _jquery2.default)(this).closest('form'); + var loader = form.find('form-action-loader'); + + _jquery2.default.ajax({ + type: form.attr('method'), + url: form.attr('action'), + data: form.serializeArray(), + dataType: 'json', + beforeSend: function beforeSend() { + $this.attr('disabled', true); + loader.show(); + }, + success: function success(data) { + $dialog.close(); + }, + complete: function complete() { + $this.attr('disabled', false); + loader.hide(); + } + }); + }); + }; + + return { openModal: openModal }; +}; + +exports.default = propertyRecord; + +/***/ }), +/* 212 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _jquery = __webpack_require__(0); + +var _jquery2 = _interopRequireDefault(_jquery); + +var _dialog = __webpack_require__(1); + +var _dialog2 = _interopRequireDefault(_dialog); + +var _index = __webpack_require__(62); + +var _index2 = _interopRequireDefault(_index); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var pushbasketModal = function pushbasketModal(services, datas) { + var configService = services.configService, + localeService = services.localeService, + appEvents = services.appEvents; + + var url = configService.get('baseUrl'); + + var openModal = function openModal(datas) { + + var $dialog = _dialog2.default.create(services, { + size: 'Full', + title: localeService.t('push') + }); + + // add classes to the whoe dialog (including title) + $dialog.getDomElement().closest('.ui-dialog').addClass('whole_dialog_container').addClass('Push'); + + _jquery2.default.post(url + 'prod/push/sendform/', datas, function (data) { + $dialog.setContent(data); + _onDialogReady(); + return; + }); + + return true; + }; + + var _onDialogReady = function _onDialogReady() { + (0, _index2.default)(services).initialize({ + container: { + containerId: '#PushBox', + context: 'Push' + }, + listManager: { + containerId: '#ListManager' + } + }); + }; + + return { openModal: openModal }; +}; + +exports.default = pushbasketModal; -exports.default = recordPublishModal; - /***/ }), /* 213 */ /***/ (function(module, exports, __webpack_require__) { @@ -62710,7 +67283,54 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); -var _sharingManager = __webpack_require__(214); +var _publication = __webpack_require__(58); + +var _publication2 = _interopRequireDefault(_publication); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var recordPublishModal = function recordPublishModal(services, datas) { + var configService = services.configService, + localeService = services.localeService, + appEvents = services.appEvents; + + var url = configService.get('baseUrl'); + + var openModal = function openModal(datas) { + + _jquery2.default.post(url + 'prod/feeds/requestavailable/', datas, function (data) { + + return (0, _publication2.default)(services).openModal(data); + }); + + return true; + }; + + return { openModal: openModal }; +}; + +exports.default = recordPublishModal; + +/***/ }), +/* 214 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _jquery = __webpack_require__(0); + +var _jquery2 = _interopRequireDefault(_jquery); + +var _dialog = __webpack_require__(1); + +var _dialog2 = _interopRequireDefault(_dialog); + +var _sharingManager = __webpack_require__(215); var _sharingManager2 = _interopRequireDefault(_sharingManager); @@ -62830,7 +67450,7 @@ var recordToolsModal = function recordToolsModal(services, datas) { exports.default = recordToolsModal; /***/ }), -/* 214 */ +/* 215 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -62902,7 +67522,7 @@ var sharingManager = function sharingManager(services, datas) { exports.default = sharingManager; /***/ }), -/* 215 */ +/* 216 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -62920,7 +67540,7 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); -var _index = __webpack_require__(216); +var _index = __webpack_require__(217); var _index2 = _interopRequireDefault(_index); @@ -62958,7 +67578,7 @@ var bridgeRecord = function bridgeRecord(services) { exports.default = bridgeRecord; /***/ }), -/* 216 */ +/* 217 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63297,7 +67917,7 @@ var recordBridge = function recordBridge(services) { exports.default = recordBridge; /***/ }), -/* 217 */ +/* 218 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63375,7 +67995,7 @@ var keyboard = function keyboard(services) { exports.default = keyboard; /***/ }), -/* 218 */ +/* 219 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63463,7 +68083,7 @@ var cgu = function cgu(services) { exports.default = cgu; /***/ }), -/* 219 */ +/* 220 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63562,7 +68182,7 @@ var shareRecord = function shareRecord(services) { exports.default = shareRecord; /***/ }), -/* 220 */ +/* 221 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63580,15 +68200,15 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); -var _videoScreenCapture = __webpack_require__(221); +var _videoScreenCapture = __webpack_require__(222); var _videoScreenCapture2 = _interopRequireDefault(_videoScreenCapture); -var _videoRangeCapture = __webpack_require__(224); +var _videoRangeCapture = __webpack_require__(225); var _videoRangeCapture2 = _interopRequireDefault(_videoRangeCapture); -var _videoSubtitleCapture = __webpack_require__(225); +var _videoSubtitleCapture = __webpack_require__(226); var _videoSubtitleCapture2 = _interopRequireDefault(_videoSubtitleCapture); @@ -63600,7 +68220,7 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -__webpack_require__(226); +__webpack_require__(227); var humane = __webpack_require__(9); @@ -63691,7 +68311,7 @@ var recordVideoEditorModal = function recordVideoEditorModal(services, datas) { exports.default = recordVideoEditorModal; /***/ }), -/* 221 */ +/* 222 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63709,7 +68329,7 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); -var _screenCapture = __webpack_require__(222); +var _screenCapture = __webpack_require__(223); var _screenCapture2 = _interopRequireDefault(_screenCapture); @@ -64031,7 +68651,7 @@ var videoScreenCapture = function videoScreenCapture(services, datas) { exports.default = videoScreenCapture; /***/ }), -/* 222 */ +/* 223 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64041,7 +68661,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _canvaImage = __webpack_require__(223); +var _canvaImage = __webpack_require__(224); var _canvaImage2 = _interopRequireDefault(_canvaImage); @@ -64268,7 +68888,7 @@ var ScreenCapture = function ScreenCapture(videoId, canvaId, outputOptions) { exports.default = ScreenCapture; /***/ }), -/* 223 */ +/* 224 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64367,7 +68987,7 @@ Canva.prototype = { exports.default = Canva; /***/ }), -/* 224 */ +/* 225 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64459,7 +69079,7 @@ var videoRangeCapture = function videoRangeCapture(services, datas) { exports.default = videoRangeCapture; /***/ }), -/* 225 */ +/* 226 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64900,13 +69520,13 @@ var videoSubtitleCapture = function videoSubtitleCapture(services, datas) { exports.default = videoSubtitleCapture; /***/ }), -/* 226 */ +/* 227 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), -/* 227 */ +/* 228 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64947,7 +69567,7 @@ var addToBasket = function addToBasket(services) { exports.default = addToBasket; /***/ }), -/* 228 */ +/* 229 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64986,7 +69606,7 @@ var removeFromBasket = function removeFromBasket(services) { exports.default = removeFromBasket; /***/ }), -/* 229 */ +/* 230 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65008,8 +69628,8 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var highlight = __webpack_require__(230); -var colorpicker = __webpack_require__(231); +var highlight = __webpack_require__(231); +var colorpicker = __webpack_require__(232); var preferences = function preferences(services) { var configService = services.configService, localeService = services.localeService, @@ -65324,7 +69944,7 @@ var preferences = function preferences(services) { exports.default = preferences; /***/ }), -/* 230 */ +/* 231 */ /***/ (function(module, exports, __webpack_require__) { /*** IMPORTS FROM imports-loader ***/ @@ -65361,7 +69981,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de /***/ }), -/* 231 */ +/* 232 */ /***/ (function(module, exports, __webpack_require__) { /*** IMPORTS FROM imports-loader ***/ @@ -65847,7 +70467,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de /***/ }), -/* 232 */ +/* 233 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66769,7 +71389,7 @@ var orderItem = function orderItem(services) { exports.default = orderItem; /***/ }), -/* 233 */ +/* 234 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66807,9 +71427,9 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -__webpack_require__(234); +__webpack_require__(235); -var image_enhancer = __webpack_require__(235); +var image_enhancer = __webpack_require__(236); __webpack_require__(14); var previewRecordService = function previewRecordService(services) { var configService = services.configService, @@ -67583,13 +72203,13 @@ var previewRecordService = function previewRecordService(services) { exports.default = previewRecordService; /***/ }), -/* 234 */ +/* 235 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), -/* 235 */ +/* 236 */ /***/ (function(module, exports, __webpack_require__) { /*** IMPORTS FROM imports-loader ***/ @@ -67605,7 +72225,7 @@ var _jquery2 = _interopRequireDefault(_jquery); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -__webpack_require__(236); +__webpack_require__(237); (function ($) { @@ -67834,13 +72454,13 @@ __webpack_require__(236); /***/ }), -/* 236 */ +/* 237 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), -/* 237 */ +/* 238 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68397,7 +73017,7 @@ var uploader = function uploader(services) { exports.default = uploader; /***/ }), -/* 238 */ +/* 239 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68425,7 +73045,7 @@ var defaultConfig = { exports.default = defaultConfig; /***/ }), -/* 239 */ +/* 240 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68500,7 +73120,7 @@ var user = function user(services) { exports.default = user; /***/ }), -/* 240 */ +/* 241 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68555,7 +73175,7 @@ var basket = function basket() { exports.default = basket; /***/ }), -/* 241 */ +/* 242 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68593,7 +73213,7 @@ var _selectable = __webpack_require__(22); var _selectable2 = _interopRequireDefault(_selectable); -var _searchForm = __webpack_require__(242); +var _searchForm = __webpack_require__(243); var _searchForm2 = _interopRequireDefault(_searchForm); @@ -69301,7 +73921,7 @@ var search = function search(services) { exports.default = search; /***/ }), -/* 242 */ +/* 243 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -69339,11 +73959,11 @@ var _selectable = __webpack_require__(22); var _selectable2 = _interopRequireDefault(_selectable); -var _searchAdvancedForm = __webpack_require__(243); +var _searchAdvancedForm = __webpack_require__(244); var _searchAdvancedForm2 = _interopRequireDefault(_searchAdvancedForm); -var _searchGeoForm = __webpack_require__(244); +var _searchGeoForm = __webpack_require__(245); var _searchGeoForm2 = _interopRequireDefault(_searchGeoForm); @@ -69508,7 +74128,7 @@ var searchForm = function searchForm(services) { exports.default = searchForm; /***/ }), -/* 243 */ +/* 244 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70200,7 +74820,7 @@ var searchAdvancedForm = function searchAdvancedForm(services) { exports.default = searchAdvancedForm; /***/ }), -/* 244 */ +/* 245 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70425,7 +75045,7 @@ var searchGeoForm = function searchGeoForm(services) { exports.default = searchGeoForm; /***/ }), -/* 245 */ +/* 246 */ /***/ (function(module, exports, __webpack_require__) { /*** IMPORTS FROM imports-loader ***/ @@ -70567,13 +75187,13 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de /***/ }), -/* 246 */ +/* 247 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), -/* 247 */ +/* 248 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(jQuery) {/* Arabic Translation for jQuery UI date picker plugin. */ @@ -70603,7 +75223,7 @@ jQuery(function($){ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 248 */ +/* 249 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(jQuery) {/* German initialisation for the jQuery UI date picker plugin. */ @@ -70633,7 +75253,7 @@ jQuery(function($){ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 249 */ +/* 250 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(jQuery) {/* Inicialización en español para la extensión 'UI date picker' para jQuery. */ @@ -70663,7 +75283,7 @@ jQuery(function($){ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 250 */ +/* 251 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(jQuery) {/* French initialisation for the jQuery UI date picker plugin. */ @@ -70695,7 +75315,7 @@ jQuery(function($){ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 251 */ +/* 252 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(jQuery) {/* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */ @@ -70725,7 +75345,7 @@ jQuery(function($){ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 252 */ +/* 253 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(jQuery) {/* English/UK initialisation for the jQuery UI date picker plugin. */ diff --git a/Phraseanet-production-client/dist/production.min.js b/Phraseanet-production-client/dist/production.min.js index 0ea0d75acd..4f2e56c610 100644 --- a/Phraseanet-production-client/dist/production.min.js +++ b/Phraseanet-production-client/dist/production.min.js @@ -1881,14 +1881,14 @@ var leafletMap = function leafletMap(services) { } __webpack_require__.e/* require.ensure */(3).then((function () { // select geocoding provider: - mapbox = __webpack_require__(296); - leafletDraw = __webpack_require__(297); - __webpack_require__(298); + mapbox = __webpack_require__(297); + leafletDraw = __webpack_require__(298); + __webpack_require__(299); mapboxgl = __webpack_require__(71); - var MapboxClient = __webpack_require__(299); - var MapboxLanguage = __webpack_require__(300); - MapboxCircle = __webpack_require__(301); - turf = __webpack_require__(302); + var MapboxClient = __webpack_require__(300); + var MapboxLanguage = __webpack_require__(301); + MapboxCircle = __webpack_require__(302); + turf = __webpack_require__(303); $container.empty().append('
'); @@ -4966,11 +4966,11 @@ var _mainMenu = __webpack_require__(78); var _mainMenu2 = _interopRequireDefault(_mainMenu); -var _keyboard = __webpack_require__(217); +var _keyboard = __webpack_require__(218); var _keyboard2 = _interopRequireDefault(_keyboard); -var _cgu = __webpack_require__(218); +var _cgu = __webpack_require__(219); var _cgu2 = _interopRequireDefault(_cgu); @@ -4982,19 +4982,19 @@ var _export = __webpack_require__(76); var _export2 = _interopRequireDefault(_export); -var _share = __webpack_require__(219); +var _share = __webpack_require__(220); var _share2 = _interopRequireDefault(_share); -var _index = __webpack_require__(220); +var _index = __webpack_require__(221); var _index2 = _interopRequireDefault(_index); -var _addToBasket = __webpack_require__(227); +var _addToBasket = __webpack_require__(228); var _addToBasket2 = _interopRequireDefault(_addToBasket); -var _removeFromBasket = __webpack_require__(228); +var _removeFromBasket = __webpack_require__(229); var _removeFromBasket2 = _interopRequireDefault(_removeFromBasket); @@ -5002,7 +5002,7 @@ var _print = __webpack_require__(77); var _print2 = _interopRequireDefault(_print); -var _preferences = __webpack_require__(229); +var _preferences = __webpack_require__(230); var _preferences2 = _interopRequireDefault(_preferences); @@ -5010,7 +5010,7 @@ var _order = __webpack_require__(79); var _order2 = _interopRequireDefault(_order); -var _recordPreview = __webpack_require__(233); +var _recordPreview = __webpack_require__(234); var _recordPreview2 = _interopRequireDefault(_recordPreview); @@ -5018,7 +5018,7 @@ var _alert = __webpack_require__(47); var _alert2 = _interopRequireDefault(_alert); -var _uploader = __webpack_require__(237); +var _uploader = __webpack_require__(238); var _uploader2 = _interopRequireDefault(_uploader); @@ -7425,6 +7425,10 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); +var _pusherJs = __webpack_require__(210); + +var _pusherJs2 = _interopRequireDefault(_pusherJs); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var humane = __webpack_require__(9); @@ -7701,7 +7705,31 @@ var exportRecord = function exportRecord(services) { (0, _jquery2.default)('#sendmail form').submit(); humane.infoLarge((0, _jquery2.default)('#export-send-mail-notif').val()); - $dialog.close(); + // $dialog.close(); + + + // Enable pusher logging - don't include this in production + _pusherJs2.default.logToConsole = true; + var pusher = new _pusherJs2.default('07b97d8d50b1f2b3d515', { + cluster: 'eu' + }); + var channel = pusher.subscribe("my-channel"); + pusher.connection.bind("state_change", function (states) { + // states = {previous: 'oldState', current: 'newState'} + console.log("========== connection changed : ========== ", states); + }); + channel.bind("my-event", function (data) { + // Method to be dispatched on trigger. + console.log("========== received from pusher : ========== ", data); + channel.unbind("my-event"); + console.log("========== channel unbinded ========== "); + channel.disconnect(); + console.log("========== channel disconnected ========== "); + pusher.unsubscribe("my-channel"); + console.log("========== pusher unsubscribed ========== "); + pusher.disconnect(); + console.log("========== pusher disconnected ========== "); + }); }); (0, _jquery2.default)('.datepicker', $dialog.getDomElement()).datepicker({ @@ -7933,7 +7961,7 @@ var _jquery = __webpack_require__(0); var _jquery2 = _interopRequireDefault(_jquery); -var _orderItem = __webpack_require__(232); +var _orderItem = __webpack_require__(233); var _orderItem2 = _interopRequireDefault(_orderItem); @@ -9166,14 +9194,14 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -__webpack_require__(246); - __webpack_require__(247); + __webpack_require__(248); __webpack_require__(249); __webpack_require__(250); __webpack_require__(251); __webpack_require__(252); +__webpack_require__(253); _jquery2.default.widget.bridge('uitooltip', _jquery2.default.fn.tooltip); //window.btn = $.fn.button.noConflict(); // reverts $.fn.button to jqueryui btn @@ -9568,7 +9596,7 @@ var _configService = __webpack_require__(16); var _configService2 = _interopRequireDefault(_configService); -var _config = __webpack_require__(238); +var _config = __webpack_require__(239); var _config2 = _interopRequireDefault(_config); @@ -9576,15 +9604,15 @@ var _emitter = __webpack_require__(15); var _emitter2 = _interopRequireDefault(_emitter); -var _user = __webpack_require__(239); +var _user = __webpack_require__(240); var _user2 = _interopRequireDefault(_user); -var _basket = __webpack_require__(240); +var _basket = __webpack_require__(241); var _basket2 = _interopRequireDefault(_basket); -var _search = __webpack_require__(241); +var _search = __webpack_require__(242); var _search2 = _interopRequireDefault(_search); @@ -9607,7 +9635,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var humane = __webpack_require__(9); -__webpack_require__(245); +__webpack_require__(246); var Bootstrap = function () { function Bootstrap(userConfig) { @@ -21582,7 +21610,7 @@ var _export = __webpack_require__(76); var _export2 = _interopRequireDefault(_export); -var _property = __webpack_require__(210); +var _property = __webpack_require__(211); var _property2 = _interopRequireDefault(_property); @@ -21590,15 +21618,15 @@ var _sharebasketModal = __webpack_require__(61); var _sharebasketModal2 = _interopRequireDefault(_sharebasketModal); -var _pushbasketModal = __webpack_require__(211); +var _pushbasketModal = __webpack_require__(212); var _pushbasketModal2 = _interopRequireDefault(_pushbasketModal); -var _publish = __webpack_require__(212); +var _publish = __webpack_require__(213); var _publish2 = _interopRequireDefault(_publish); -var _index = __webpack_require__(213); +var _index = __webpack_require__(214); var _index2 = _interopRequireDefault(_index); @@ -21606,7 +21634,7 @@ var _print = __webpack_require__(77); var _print2 = _interopRequireDefault(_print); -var _bridge = __webpack_require__(215); +var _bridge = __webpack_require__(216); var _bridge2 = _interopRequireDefault(_bridge); @@ -62423,274 +62451,4819 @@ exports.default = deleteRecord; /* 210 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _jquery = __webpack_require__(0); - -var _jquery2 = _interopRequireDefault(_jquery); - -var _dialog = __webpack_require__(1); - -var _dialog2 = _interopRequireDefault(_dialog); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +/*! + * Pusher JavaScript Library v8.3.0 + * https://pusher.com/ + * + * Copyright 2020, Pusher + * Released under the MIT licence. + */ -var propertyRecord = function propertyRecord(services) { - var configService = services.configService, - localeService = services.localeService, - appEvents = services.appEvents; +(function webpackUniversalModuleDefinition(root, factory) { + if(true) + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["Pusher"] = factory(); + else + root["Pusher"] = factory(); +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 2); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { - var url = configService.get('baseUrl'); +"use strict"; - var openModal = function openModal(datas) { - return doProperty(datas); +// Copyright (C) 2016 Dmitry Chestnykh +// MIT License. See LICENSE file for details. +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); }; - - var doProperty = function doProperty(datas) { - var $dialog = _dialog2.default.create(services, { - size: 'Medium', - title: (0, _jquery2.default)('#property-title').val() - }); - - _jquery2.default.ajax({ - type: 'GET', - data: datas, - url: url + 'prod/records/property/', - success: function success(data) { - $dialog.setContent(data); - _onPropertyReady($dialog); + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Package base64 implements Base64 encoding and decoding. + */ +// Invalid character used in decoding to indicate +// that the character to decode is out of range of +// alphabet and cannot be decoded. +var INVALID_BYTE = 256; +/** + * Implements standard Base64 encoding. + * + * Operates in constant time. + */ +var Coder = /** @class */ (function () { + // TODO(dchest): methods to encode chunk-by-chunk. + function Coder(_paddingCharacter) { + if (_paddingCharacter === void 0) { _paddingCharacter = "="; } + this._paddingCharacter = _paddingCharacter; + } + Coder.prototype.encodedLength = function (length) { + if (!this._paddingCharacter) { + return (length * 8 + 5) / 6 | 0; + } + return (length + 2) / 3 * 4 | 0; + }; + Coder.prototype.encode = function (data) { + var out = ""; + var i = 0; + for (; i < data.length - 2; i += 3) { + var c = (data[i] << 16) | (data[i + 1] << 8) | (data[i + 2]); + out += this._encodeByte((c >>> 3 * 6) & 63); + out += this._encodeByte((c >>> 2 * 6) & 63); + out += this._encodeByte((c >>> 1 * 6) & 63); + out += this._encodeByte((c >>> 0 * 6) & 63); + } + var left = data.length - i; + if (left > 0) { + var c = (data[i] << 16) | (left === 2 ? data[i + 1] << 8 : 0); + out += this._encodeByte((c >>> 3 * 6) & 63); + out += this._encodeByte((c >>> 2 * 6) & 63); + if (left === 2) { + out += this._encodeByte((c >>> 1 * 6) & 63); } - }); - - return true; + else { + out += this._paddingCharacter || ""; + } + out += this._paddingCharacter || ""; + } + return out; }; - - var _onPropertyReady = function _onPropertyReady($dialog) { - (0, _jquery2.default)('#tabs-records-property').tabs({ - beforeLoad: function beforeLoad(event, ui) { - - ui.ajaxSettings.data = { - lst: (0, _jquery2.default)('input[name=original_selection]', (0, _jquery2.default)(this)).val() - }; - - // load template only once - if (ui.tab.data('loaded')) { - event.preventDefault(); - return; + Coder.prototype.maxDecodedLength = function (length) { + if (!this._paddingCharacter) { + return (length * 6 + 7) / 8 | 0; + } + return length / 4 * 3 | 0; + }; + Coder.prototype.decodedLength = function (s) { + return this.maxDecodedLength(s.length - this._getPaddingLength(s)); + }; + Coder.prototype.decode = function (s) { + if (s.length === 0) { + return new Uint8Array(0); + } + var paddingLength = this._getPaddingLength(s); + var length = s.length - paddingLength; + var out = new Uint8Array(this.maxDecodedLength(length)); + var op = 0; + var i = 0; + var haveBad = 0; + var v0 = 0, v1 = 0, v2 = 0, v3 = 0; + for (; i < length - 4; i += 4) { + v0 = this._decodeChar(s.charCodeAt(i + 0)); + v1 = this._decodeChar(s.charCodeAt(i + 1)); + v2 = this._decodeChar(s.charCodeAt(i + 2)); + v3 = this._decodeChar(s.charCodeAt(i + 3)); + out[op++] = (v0 << 2) | (v1 >>> 4); + out[op++] = (v1 << 4) | (v2 >>> 2); + out[op++] = (v2 << 6) | v3; + haveBad |= v0 & INVALID_BYTE; + haveBad |= v1 & INVALID_BYTE; + haveBad |= v2 & INVALID_BYTE; + haveBad |= v3 & INVALID_BYTE; + } + if (i < length - 1) { + v0 = this._decodeChar(s.charCodeAt(i)); + v1 = this._decodeChar(s.charCodeAt(i + 1)); + out[op++] = (v0 << 2) | (v1 >>> 4); + haveBad |= v0 & INVALID_BYTE; + haveBad |= v1 & INVALID_BYTE; + } + if (i < length - 2) { + v2 = this._decodeChar(s.charCodeAt(i + 2)); + out[op++] = (v1 << 4) | (v2 >>> 2); + haveBad |= v2 & INVALID_BYTE; + } + if (i < length - 3) { + v3 = this._decodeChar(s.charCodeAt(i + 3)); + out[op++] = (v2 << 6) | v3; + haveBad |= v3 & INVALID_BYTE; + } + if (haveBad !== 0) { + throw new Error("Base64Coder: incorrect characters for decoding"); + } + return out; + }; + // Standard encoding have the following encoded/decoded ranges, + // which we need to convert between. + // + // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 + / + // Index: 0 - 25 26 - 51 52 - 61 62 63 + // ASCII: 65 - 90 97 - 122 48 - 57 43 47 + // + // Encode 6 bits in b into a new character. + Coder.prototype._encodeByte = function (b) { + // Encoding uses constant time operations as follows: + // + // 1. Define comparison of A with B using (A - B) >>> 8: + // if A > B, then result is positive integer + // if A <= B, then result is 0 + // + // 2. Define selection of C or 0 using bitwise AND: X & C: + // if X == 0, then result is 0 + // if X != 0, then result is C + // + // 3. Start with the smallest comparison (b >= 0), which is always + // true, so set the result to the starting ASCII value (65). + // + // 4. Continue comparing b to higher ASCII values, and selecting + // zero if comparison isn't true, otherwise selecting a value + // to add to result, which: + // + // a) undoes the previous addition + // b) provides new value to add + // + var result = b; + // b >= 0 + result += 65; + // b > 25 + result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97); + // b > 51 + result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48); + // b > 61 + result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 43); + // b > 62 + result += ((62 - b) >>> 8) & ((62 - 43) - 63 + 47); + return String.fromCharCode(result); + }; + // Decode a character code into a byte. + // Must return 256 if character is out of alphabet range. + Coder.prototype._decodeChar = function (c) { + // Decoding works similar to encoding: using the same comparison + // function, but now it works on ranges: result is always incremented + // by value, but this value becomes zero if the range is not + // satisfied. + // + // Decoding starts with invalid value, 256, which is then + // subtracted when the range is satisfied. If none of the ranges + // apply, the function returns 256, which is then checked by + // the caller to throw error. + var result = INVALID_BYTE; // start with invalid character + // c == 43 (c > 42 and c < 44) + result += (((42 - c) & (c - 44)) >>> 8) & (-INVALID_BYTE + c - 43 + 62); + // c == 47 (c > 46 and c < 48) + result += (((46 - c) & (c - 48)) >>> 8) & (-INVALID_BYTE + c - 47 + 63); + // c > 47 and c < 58 + result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52); + // c > 64 and c < 91 + result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0); + // c > 96 and c < 123 + result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26); + return result; + }; + Coder.prototype._getPaddingLength = function (s) { + var paddingLength = 0; + if (this._paddingCharacter) { + for (var i = s.length - 1; i >= 0; i--) { + if (s[i] !== this._paddingCharacter) { + break; } - - ui.jqXHR.success(function () { - ui.tab.data('loaded', true); - ui.tab.find('span').html(''); - typeTabContent($dialog, '#' + ui.tab.attr('aria-controls')); - }); - - ui.tab.find('span').html('' + localeService.t('loading') + ''); - }, - load: function load(event, ui) { - ui.tab.find('span').empty(); + paddingLength++; } - }); - propertyTabContent($dialog); + if (s.length < 4 || paddingLength > 2) { + throw new Error("Base64Coder: incorrect padding"); + } + } + return paddingLength; }; - /** - * Property Tab - * @param $dialogBox - */ - var propertyTabContent = function propertyTabContent($dialog) { - - var $propertyContainer = (0, _jquery2.default)('#property-status'); - - $propertyContainer.on('click', 'button.cancel', function () { - $dialog.close(); - }); - - $propertyContainer.on('click', 'button.submiter', function () { - var $this = (0, _jquery2.default)(this); - var form = (0, _jquery2.default)(this).closest('form'); - var loader = form.find('form-action-loader'); - - _jquery2.default.ajax({ - type: form.attr('method'), - url: form.attr('action'), - data: form.serializeArray(), - dataType: 'json', - beforeSend: function beforeSend() { - $this.attr('disabled', true); - loader.show(); - }, - success: function success(data) { - $dialog.close(); - }, - complete: function complete() { - $this.attr('disabled', false); - loader.hide(); - } - }); - }); + return Coder; +}()); +exports.Coder = Coder; +var stdCoder = new Coder(); +function encode(data) { + return stdCoder.encode(data); +} +exports.encode = encode; +function decode(s) { + return stdCoder.decode(s); +} +exports.decode = decode; +/** + * Implements URL-safe Base64 encoding. + * (Same as Base64, but '+' is replaced with '-', and '/' with '_'). + * + * Operates in constant time. + */ +var URLSafeCoder = /** @class */ (function (_super) { + __extends(URLSafeCoder, _super); + function URLSafeCoder() { + return _super !== null && _super.apply(this, arguments) || this; + } + // URL-safe encoding have the following encoded/decoded ranges: + // + // ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 - _ + // Index: 0 - 25 26 - 51 52 - 61 62 63 + // ASCII: 65 - 90 97 - 122 48 - 57 45 95 + // + URLSafeCoder.prototype._encodeByte = function (b) { + var result = b; + // b >= 0 + result += 65; + // b > 25 + result += ((25 - b) >>> 8) & ((0 - 65) - 26 + 97); + // b > 51 + result += ((51 - b) >>> 8) & ((26 - 97) - 52 + 48); + // b > 61 + result += ((61 - b) >>> 8) & ((52 - 48) - 62 + 45); + // b > 62 + result += ((62 - b) >>> 8) & ((62 - 45) - 63 + 95); + return String.fromCharCode(result); }; - /** - * Type Tab - * @param $dialog - * @param typeContainerId - */ - var typeTabContent = function typeTabContent($dialog, typeContainerId) { - - var $typeContainer = (0, _jquery2.default)(typeContainerId); - - $typeContainer.on('click', 'button.cancel', function () { - $dialog.close(); - }); - $typeContainer.on('click', 'button.submiter', function () { - var $this = (0, _jquery2.default)(this); - var form = (0, _jquery2.default)(this).closest('form'); - var loader = form.find('form-action-loader'); - - _jquery2.default.ajax({ - type: form.attr('method'), - url: form.attr('action'), - data: form.serializeArray(), - dataType: 'json', - beforeSend: function beforeSend() { - $this.attr('disabled', true); - loader.show(); - }, - success: function success(data) { - $dialog.close(); - }, - complete: function complete() { - $this.attr('disabled', false); - loader.hide(); - } - }); - }); + URLSafeCoder.prototype._decodeChar = function (c) { + var result = INVALID_BYTE; + // c == 45 (c > 44 and c < 46) + result += (((44 - c) & (c - 46)) >>> 8) & (-INVALID_BYTE + c - 45 + 62); + // c == 95 (c > 94 and c < 96) + result += (((94 - c) & (c - 96)) >>> 8) & (-INVALID_BYTE + c - 95 + 63); + // c > 47 and c < 58 + result += (((47 - c) & (c - 58)) >>> 8) & (-INVALID_BYTE + c - 48 + 52); + // c > 64 and c < 91 + result += (((64 - c) & (c - 91)) >>> 8) & (-INVALID_BYTE + c - 65 + 0); + // c > 96 and c < 123 + result += (((96 - c) & (c - 123)) >>> 8) & (-INVALID_BYTE + c - 97 + 26); + return result; }; - - return { openModal: openModal }; + return URLSafeCoder; +}(Coder)); +exports.URLSafeCoder = URLSafeCoder; +var urlSafeCoder = new URLSafeCoder(); +function encodeURLSafe(data) { + return urlSafeCoder.encode(data); +} +exports.encodeURLSafe = encodeURLSafe; +function decodeURLSafe(s) { + return urlSafeCoder.decode(s); +} +exports.decodeURLSafe = decodeURLSafe; +exports.encodedLength = function (length) { + return stdCoder.encodedLength(length); +}; +exports.maxDecodedLength = function (length) { + return stdCoder.maxDecodedLength(length); +}; +exports.decodedLength = function (s) { + return stdCoder.decodedLength(s); }; -exports.default = propertyRecord; /***/ }), -/* 211 */ +/* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +// Copyright (C) 2016 Dmitry Chestnykh +// MIT License. See LICENSE file for details. +Object.defineProperty(exports, "__esModule", { value: true }); +/** + * Package utf8 implements UTF-8 encoding and decoding. + */ +var INVALID_UTF16 = "utf8: invalid string"; +var INVALID_UTF8 = "utf8: invalid source encoding"; +/** + * Encodes the given string into UTF-8 byte array. + * Throws if the source string has invalid UTF-16 encoding. + */ +function encode(s) { + // Calculate result length and allocate output array. + // encodedLength() also validates string and throws errors, + // so we don't need repeat validation here. + var arr = new Uint8Array(encodedLength(s)); + var pos = 0; + for (var i = 0; i < s.length; i++) { + var c = s.charCodeAt(i); + if (c < 0x80) { + arr[pos++] = c; + } + else if (c < 0x800) { + arr[pos++] = 0xc0 | c >> 6; + arr[pos++] = 0x80 | c & 0x3f; + } + else if (c < 0xd800) { + arr[pos++] = 0xe0 | c >> 12; + arr[pos++] = 0x80 | (c >> 6) & 0x3f; + arr[pos++] = 0x80 | c & 0x3f; + } + else { + i++; // get one more character + c = (c & 0x3ff) << 10; + c |= s.charCodeAt(i) & 0x3ff; + c += 0x10000; + arr[pos++] = 0xf0 | c >> 18; + arr[pos++] = 0x80 | (c >> 12) & 0x3f; + arr[pos++] = 0x80 | (c >> 6) & 0x3f; + arr[pos++] = 0x80 | c & 0x3f; + } + } + return arr; +} +exports.encode = encode; +/** + * Returns the number of bytes required to encode the given string into UTF-8. + * Throws if the source string has invalid UTF-16 encoding. + */ +function encodedLength(s) { + var result = 0; + for (var i = 0; i < s.length; i++) { + var c = s.charCodeAt(i); + if (c < 0x80) { + result += 1; + } + else if (c < 0x800) { + result += 2; + } + else if (c < 0xd800) { + result += 3; + } + else if (c <= 0xdfff) { + if (i >= s.length - 1) { + throw new Error(INVALID_UTF16); + } + i++; // "eat" next character + result += 4; + } + else { + throw new Error(INVALID_UTF16); + } + } + return result; +} +exports.encodedLength = encodedLength; +/** + * Decodes the given byte array from UTF-8 into a string. + * Throws if encoding is invalid. + */ +function decode(arr) { + var chars = []; + for (var i = 0; i < arr.length; i++) { + var b = arr[i]; + if (b & 0x80) { + var min = void 0; + if (b < 0xe0) { + // Need 1 more byte. + if (i >= arr.length) { + throw new Error(INVALID_UTF8); + } + var n1 = arr[++i]; + if ((n1 & 0xc0) !== 0x80) { + throw new Error(INVALID_UTF8); + } + b = (b & 0x1f) << 6 | (n1 & 0x3f); + min = 0x80; + } + else if (b < 0xf0) { + // Need 2 more bytes. + if (i >= arr.length - 1) { + throw new Error(INVALID_UTF8); + } + var n1 = arr[++i]; + var n2 = arr[++i]; + if ((n1 & 0xc0) !== 0x80 || (n2 & 0xc0) !== 0x80) { + throw new Error(INVALID_UTF8); + } + b = (b & 0x0f) << 12 | (n1 & 0x3f) << 6 | (n2 & 0x3f); + min = 0x800; + } + else if (b < 0xf8) { + // Need 3 more bytes. + if (i >= arr.length - 2) { + throw new Error(INVALID_UTF8); + } + var n1 = arr[++i]; + var n2 = arr[++i]; + var n3 = arr[++i]; + if ((n1 & 0xc0) !== 0x80 || (n2 & 0xc0) !== 0x80 || (n3 & 0xc0) !== 0x80) { + throw new Error(INVALID_UTF8); + } + b = (b & 0x0f) << 18 | (n1 & 0x3f) << 12 | (n2 & 0x3f) << 6 | (n3 & 0x3f); + min = 0x10000; + } + else { + throw new Error(INVALID_UTF8); + } + if (b < min || (b >= 0xd800 && b <= 0xdfff)) { + throw new Error(INVALID_UTF8); + } + if (b >= 0x10000) { + // Surrogate pair. + if (b > 0x10ffff) { + throw new Error(INVALID_UTF8); + } + b -= 0x10000; + chars.push(String.fromCharCode(0xd800 | (b >> 10))); + b = 0xdc00 | (b & 0x3ff); + } + } + chars.push(String.fromCharCode(b)); + } + return chars.join(""); +} +exports.decode = decode; -Object.defineProperty(exports, "__esModule", { - value: true -}); -var _jquery = __webpack_require__(0); +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { -var _jquery2 = _interopRequireDefault(_jquery); +// required so we don't have to do require('pusher').default etc. +module.exports = __webpack_require__(3).default; -var _dialog = __webpack_require__(1); -var _dialog2 = _interopRequireDefault(_dialog); +/***/ }), +/* 3 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -var _index = __webpack_require__(62); +"use strict"; +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); + +// CONCATENATED MODULE: ./src/runtimes/web/dom/script_receiver_factory.ts +class ScriptReceiverFactory { + constructor(prefix, name) { + this.lastId = 0; + this.prefix = prefix; + this.name = name; + } + create(callback) { + this.lastId++; + var number = this.lastId; + var id = this.prefix + number; + var name = this.name + '[' + number + ']'; + var called = false; + var callbackWrapper = function () { + if (!called) { + callback.apply(null, arguments); + called = true; + } + }; + this[number] = callbackWrapper; + return { number: number, id: id, name: name, callback: callbackWrapper }; + } + remove(receiver) { + delete this[receiver.number]; + } +} +var ScriptReceivers = new ScriptReceiverFactory('_pusher_script_', 'Pusher.ScriptReceivers'); + +// CONCATENATED MODULE: ./src/core/defaults.ts +var Defaults = { + VERSION: "8.3.0", + PROTOCOL: 7, + wsPort: 80, + wssPort: 443, + wsPath: '', + httpHost: 'sockjs.pusher.com', + httpPort: 80, + httpsPort: 443, + httpPath: '/pusher', + stats_host: 'stats.pusher.com', + authEndpoint: '/pusher/auth', + authTransport: 'ajax', + activityTimeout: 120000, + pongTimeout: 30000, + unavailableTimeout: 10000, + userAuthentication: { + endpoint: '/pusher/user-auth', + transport: 'ajax' + }, + channelAuthorization: { + endpoint: '/pusher/auth', + transport: 'ajax' + }, + cdn_http: "http://js.pusher.com", + cdn_https: "https://js.pusher.com", + dependency_suffix: "" +}; +/* harmony default export */ var defaults = (Defaults); -var _index2 = _interopRequireDefault(_index); +// CONCATENATED MODULE: ./src/runtimes/web/dom/dependency_loader.ts -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var pushbasketModal = function pushbasketModal(services, datas) { - var configService = services.configService, - localeService = services.localeService, - appEvents = services.appEvents; +class dependency_loader_DependencyLoader { + constructor(options) { + this.options = options; + this.receivers = options.receivers || ScriptReceivers; + this.loading = {}; + } + load(name, options, callback) { + var self = this; + if (self.loading[name] && self.loading[name].length > 0) { + self.loading[name].push(callback); + } + else { + self.loading[name] = [callback]; + var request = runtime.createScriptRequest(self.getPath(name, options)); + var receiver = self.receivers.create(function (error) { + self.receivers.remove(receiver); + if (self.loading[name]) { + var callbacks = self.loading[name]; + delete self.loading[name]; + var successCallback = function (wasSuccessful) { + if (!wasSuccessful) { + request.cleanup(); + } + }; + for (var i = 0; i < callbacks.length; i++) { + callbacks[i](error, successCallback); + } + } + }); + request.send(receiver); + } + } + getRoot(options) { + var cdn; + var protocol = runtime.getDocument().location.protocol; + if ((options && options.useTLS) || protocol === 'https:') { + cdn = this.options.cdn_https; + } + else { + cdn = this.options.cdn_http; + } + return cdn.replace(/\/*$/, '') + '/' + this.options.version; + } + getPath(name, options) { + return this.getRoot(options) + '/' + name + this.options.suffix + '.js'; + } +} - var url = configService.get('baseUrl'); +// CONCATENATED MODULE: ./src/runtimes/web/dom/dependencies.ts - var openModal = function openModal(datas) { - var $dialog = _dialog2.default.create(services, { - size: 'Full', - title: localeService.t('push') - }); - // add classes to the whoe dialog (including title) - $dialog.getDomElement().closest('.ui-dialog').addClass('whole_dialog_container').addClass('Push'); +var DependenciesReceivers = new ScriptReceiverFactory('_pusher_dependencies', 'Pusher.DependenciesReceivers'); +var Dependencies = new dependency_loader_DependencyLoader({ + cdn_http: defaults.cdn_http, + cdn_https: defaults.cdn_https, + version: defaults.VERSION, + suffix: defaults.dependency_suffix, + receivers: DependenciesReceivers +}); - _jquery2.default.post(url + 'prod/push/sendform/', datas, function (data) { - $dialog.setContent(data); - _onDialogReady(); - return; - }); +// CONCATENATED MODULE: ./src/core/utils/url_store.ts +const urlStore = { + baseUrl: 'https://pusher.com', + urls: { + authenticationEndpoint: { + path: '/docs/channels/server_api/authenticating_users' + }, + authorizationEndpoint: { + path: '/docs/channels/server_api/authorizing-users/' + }, + javascriptQuickStart: { + path: '/docs/javascript_quick_start' + }, + triggeringClientEvents: { + path: '/docs/client_api_guide/client_events#trigger-events' + }, + encryptedChannelSupport: { + fullUrl: 'https://github.com/pusher/pusher-js/tree/cc491015371a4bde5743d1c87a0fbac0feb53195#encrypted-channel-support' + } + } +}; +const buildLogSuffix = function (key) { + const urlPrefix = 'See:'; + const urlObj = urlStore.urls[key]; + if (!urlObj) + return ''; + let url; + if (urlObj.fullUrl) { + url = urlObj.fullUrl; + } + else if (urlObj.path) { + url = urlStore.baseUrl + urlObj.path; + } + if (!url) + return ''; + return `${urlPrefix} ${url}`; +}; +/* harmony default export */ var url_store = ({ buildLogSuffix }); - return true; - }; +// CONCATENATED MODULE: ./src/core/auth/options.ts +var AuthRequestType; +(function (AuthRequestType) { + AuthRequestType["UserAuthentication"] = "user-authentication"; + AuthRequestType["ChannelAuthorization"] = "channel-authorization"; +})(AuthRequestType || (AuthRequestType = {})); - var _onDialogReady = function _onDialogReady() { - (0, _index2.default)(services).initialize({ - container: { - containerId: '#PushBox', - context: 'Push' - }, - listManager: { - containerId: '#ListManager' - } - }); - }; +// CONCATENATED MODULE: ./src/core/errors.ts +class BadEventName extends Error { + constructor(msg) { + super(msg); + Object.setPrototypeOf(this, new.target.prototype); + } +} +class BadChannelName extends Error { + constructor(msg) { + super(msg); + Object.setPrototypeOf(this, new.target.prototype); + } +} +class RequestTimedOut extends Error { + constructor(msg) { + super(msg); + Object.setPrototypeOf(this, new.target.prototype); + } +} +class TransportPriorityTooLow extends Error { + constructor(msg) { + super(msg); + Object.setPrototypeOf(this, new.target.prototype); + } +} +class TransportClosed extends Error { + constructor(msg) { + super(msg); + Object.setPrototypeOf(this, new.target.prototype); + } +} +class UnsupportedFeature extends Error { + constructor(msg) { + super(msg); + Object.setPrototypeOf(this, new.target.prototype); + } +} +class UnsupportedTransport extends Error { + constructor(msg) { + super(msg); + Object.setPrototypeOf(this, new.target.prototype); + } +} +class UnsupportedStrategy extends Error { + constructor(msg) { + super(msg); + Object.setPrototypeOf(this, new.target.prototype); + } +} +class HTTPAuthError extends Error { + constructor(status, msg) { + super(msg); + this.status = status; + Object.setPrototypeOf(this, new.target.prototype); + } +} - return { openModal: openModal }; -}; +// CONCATENATED MODULE: ./src/runtimes/isomorphic/auth/xhr_auth.ts -exports.default = pushbasketModal; -/***/ }), -/* 212 */ -/***/ (function(module, exports, __webpack_require__) { -"use strict"; +const ajax = function (context, query, authOptions, authRequestType, callback) { + const xhr = runtime.createXHR(); + xhr.open('POST', authOptions.endpoint, true); + xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); + for (var headerName in authOptions.headers) { + xhr.setRequestHeader(headerName, authOptions.headers[headerName]); + } + if (authOptions.headersProvider != null) { + let dynamicHeaders = authOptions.headersProvider(); + for (var headerName in dynamicHeaders) { + xhr.setRequestHeader(headerName, dynamicHeaders[headerName]); + } + } + xhr.onreadystatechange = function () { + if (xhr.readyState === 4) { + if (xhr.status === 200) { + let data; + let parsed = false; + try { + data = JSON.parse(xhr.responseText); + parsed = true; + } + catch (e) { + callback(new HTTPAuthError(200, `JSON returned from ${authRequestType.toString()} endpoint was invalid, yet status code was 200. Data was: ${xhr.responseText}`), null); + } + if (parsed) { + callback(null, data); + } + } + else { + let suffix = ''; + switch (authRequestType) { + case AuthRequestType.UserAuthentication: + suffix = url_store.buildLogSuffix('authenticationEndpoint'); + break; + case AuthRequestType.ChannelAuthorization: + suffix = `Clients must be authorized to join private or presence channels. ${url_store.buildLogSuffix('authorizationEndpoint')}`; + break; + } + callback(new HTTPAuthError(xhr.status, `Unable to retrieve auth string from ${authRequestType.toString()} endpoint - ` + + `received status: ${xhr.status} from ${authOptions.endpoint}. ${suffix}`), null); + } + } + }; + xhr.send(query); + return xhr; +}; +/* harmony default export */ var xhr_auth = (ajax); -Object.defineProperty(exports, "__esModule", { - value: true -}); +// CONCATENATED MODULE: ./src/core/base64.ts +function encode(s) { + return btoa(utob(s)); +} +var fromCharCode = String.fromCharCode; +var b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; +var b64tab = {}; +for (var base64_i = 0, l = b64chars.length; base64_i < l; base64_i++) { + b64tab[b64chars.charAt(base64_i)] = base64_i; +} +var cb_utob = function (c) { + var cc = c.charCodeAt(0); + return cc < 0x80 + ? c + : cc < 0x800 + ? fromCharCode(0xc0 | (cc >>> 6)) + fromCharCode(0x80 | (cc & 0x3f)) + : fromCharCode(0xe0 | ((cc >>> 12) & 0x0f)) + + fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) + + fromCharCode(0x80 | (cc & 0x3f)); +}; +var utob = function (u) { + return u.replace(/[^\x00-\x7F]/g, cb_utob); +}; +var cb_encode = function (ccc) { + var padlen = [0, 2, 1][ccc.length % 3]; + var ord = (ccc.charCodeAt(0) << 16) | + ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8) | + (ccc.length > 2 ? ccc.charCodeAt(2) : 0); + var chars = [ + b64chars.charAt(ord >>> 18), + b64chars.charAt((ord >>> 12) & 63), + padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63), + padlen >= 1 ? '=' : b64chars.charAt(ord & 63) + ]; + return chars.join(''); +}; +var btoa = window.btoa || + function (b) { + return b.replace(/[\s\S]{1,3}/g, cb_encode); + }; -var _jquery = __webpack_require__(0); +// CONCATENATED MODULE: ./src/core/utils/timers/abstract_timer.ts +class Timer { + constructor(set, clear, delay, callback) { + this.clear = clear; + this.timer = set(() => { + if (this.timer) { + this.timer = callback(this.timer); + } + }, delay); + } + isRunning() { + return this.timer !== null; + } + ensureAborted() { + if (this.timer) { + this.clear(this.timer); + this.timer = null; + } + } +} +/* harmony default export */ var abstract_timer = (Timer); -var _jquery2 = _interopRequireDefault(_jquery); +// CONCATENATED MODULE: ./src/core/utils/timers/index.ts -var _dialog = __webpack_require__(1); +function timers_clearTimeout(timer) { + window.clearTimeout(timer); +} +function timers_clearInterval(timer) { + window.clearInterval(timer); +} +class timers_OneOffTimer extends abstract_timer { + constructor(delay, callback) { + super(setTimeout, timers_clearTimeout, delay, function (timer) { + callback(); + return null; + }); + } +} +class timers_PeriodicTimer extends abstract_timer { + constructor(delay, callback) { + super(setInterval, timers_clearInterval, delay, function (timer) { + callback(); + return timer; + }); + } +} -var _dialog2 = _interopRequireDefault(_dialog); +// CONCATENATED MODULE: ./src/core/util.ts -var _publication = __webpack_require__(58); +var Util = { + now() { + if (Date.now) { + return Date.now(); + } + else { + return new Date().valueOf(); + } + }, + defer(callback) { + return new timers_OneOffTimer(0, callback); + }, + method(name, ...args) { + var boundArguments = Array.prototype.slice.call(arguments, 1); + return function (object) { + return object[name].apply(object, boundArguments.concat(arguments)); + }; + } +}; +/* harmony default export */ var util = (Util); -var _publication2 = _interopRequireDefault(_publication); +// CONCATENATED MODULE: ./src/core/utils/collections.ts -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var recordPublishModal = function recordPublishModal(services, datas) { - var configService = services.configService, - localeService = services.localeService, - appEvents = services.appEvents; +function extend(target, ...sources) { + for (var i = 0; i < sources.length; i++) { + var extensions = sources[i]; + for (var property in extensions) { + if (extensions[property] && + extensions[property].constructor && + extensions[property].constructor === Object) { + target[property] = extend(target[property] || {}, extensions[property]); + } + else { + target[property] = extensions[property]; + } + } + } + return target; +} +function stringify() { + var m = ['Pusher']; + for (var i = 0; i < arguments.length; i++) { + if (typeof arguments[i] === 'string') { + m.push(arguments[i]); + } + else { + m.push(safeJSONStringify(arguments[i])); + } + } + return m.join(' : '); +} +function arrayIndexOf(array, item) { + var nativeIndexOf = Array.prototype.indexOf; + if (array === null) { + return -1; + } + if (nativeIndexOf && array.indexOf === nativeIndexOf) { + return array.indexOf(item); + } + for (var i = 0, l = array.length; i < l; i++) { + if (array[i] === item) { + return i; + } + } + return -1; +} +function objectApply(object, f) { + for (var key in object) { + if (Object.prototype.hasOwnProperty.call(object, key)) { + f(object[key], key, object); + } + } +} +function keys(object) { + var keys = []; + objectApply(object, function (_, key) { + keys.push(key); + }); + return keys; +} +function values(object) { + var values = []; + objectApply(object, function (value) { + values.push(value); + }); + return values; +} +function apply(array, f, context) { + for (var i = 0; i < array.length; i++) { + f.call(context || window, array[i], i, array); + } +} +function map(array, f) { + var result = []; + for (var i = 0; i < array.length; i++) { + result.push(f(array[i], i, array, result)); + } + return result; +} +function mapObject(object, f) { + var result = {}; + objectApply(object, function (value, key) { + result[key] = f(value); + }); + return result; +} +function filter(array, test) { + test = + test || + function (value) { + return !!value; + }; + var result = []; + for (var i = 0; i < array.length; i++) { + if (test(array[i], i, array, result)) { + result.push(array[i]); + } + } + return result; +} +function filterObject(object, test) { + var result = {}; + objectApply(object, function (value, key) { + if ((test && test(value, key, object, result)) || Boolean(value)) { + result[key] = value; + } + }); + return result; +} +function flatten(object) { + var result = []; + objectApply(object, function (value, key) { + result.push([key, value]); + }); + return result; +} +function any(array, test) { + for (var i = 0; i < array.length; i++) { + if (test(array[i], i, array)) { + return true; + } + } + return false; +} +function collections_all(array, test) { + for (var i = 0; i < array.length; i++) { + if (!test(array[i], i, array)) { + return false; + } + } + return true; +} +function encodeParamsObject(data) { + return mapObject(data, function (value) { + if (typeof value === 'object') { + value = safeJSONStringify(value); + } + return encodeURIComponent(encode(value.toString())); + }); +} +function buildQueryString(data) { + var params = filterObject(data, function (value) { + return value !== undefined; + }); + var query = map(flatten(encodeParamsObject(params)), util.method('join', '=')).join('&'); + return query; +} +function decycleObject(object) { + var objects = [], paths = []; + return (function derez(value, path) { + var i, name, nu; + switch (typeof value) { + case 'object': + if (!value) { + return null; + } + for (i = 0; i < objects.length; i += 1) { + if (objects[i] === value) { + return { $ref: paths[i] }; + } + } + objects.push(value); + paths.push(path); + if (Object.prototype.toString.apply(value) === '[object Array]') { + nu = []; + for (i = 0; i < value.length; i += 1) { + nu[i] = derez(value[i], path + '[' + i + ']'); + } + } + else { + nu = {}; + for (name in value) { + if (Object.prototype.hasOwnProperty.call(value, name)) { + nu[name] = derez(value[name], path + '[' + JSON.stringify(name) + ']'); + } + } + } + return nu; + case 'number': + case 'string': + case 'boolean': + return value; + } + })(object, '$'); +} +function safeJSONStringify(source) { + try { + return JSON.stringify(source); + } + catch (e) { + return JSON.stringify(decycleObject(source)); + } +} - var url = configService.get('baseUrl'); +// CONCATENATED MODULE: ./src/core/logger.ts - var openModal = function openModal(datas) { - _jquery2.default.post(url + 'prod/feeds/requestavailable/', datas, function (data) { +class logger_Logger { + constructor() { + this.globalLog = (message) => { + if (window.console && window.console.log) { + window.console.log(message); + } + }; + } + debug(...args) { + this.log(this.globalLog, args); + } + warn(...args) { + this.log(this.globalLogWarn, args); + } + error(...args) { + this.log(this.globalLogError, args); + } + globalLogWarn(message) { + if (window.console && window.console.warn) { + window.console.warn(message); + } + else { + this.globalLog(message); + } + } + globalLogError(message) { + if (window.console && window.console.error) { + window.console.error(message); + } + else { + this.globalLogWarn(message); + } + } + log(defaultLoggingFunction, ...args) { + var message = stringify.apply(this, arguments); + if (core_pusher.log) { + core_pusher.log(message); + } + else if (core_pusher.logToConsole) { + const log = defaultLoggingFunction.bind(this); + log(message); + } + } +} +/* harmony default export */ var logger = (new logger_Logger()); - return (0, _publication2.default)(services).openModal(data); - }); +// CONCATENATED MODULE: ./src/runtimes/web/auth/jsonp_auth.ts - return true; +var jsonp = function (context, query, authOptions, authRequestType, callback) { + if (authOptions.headers !== undefined || + authOptions.headersProvider != null) { + logger.warn(`To send headers with the ${authRequestType.toString()} request, you must use AJAX, rather than JSONP.`); + } + var callbackName = context.nextAuthCallbackID.toString(); + context.nextAuthCallbackID++; + var document = context.getDocument(); + var script = document.createElement('script'); + context.auth_callbacks[callbackName] = function (data) { + callback(null, data); }; - - return { openModal: openModal }; + var callback_name = "Pusher.auth_callbacks['" + callbackName + "']"; + script.src = + authOptions.endpoint + + '?callback=' + + encodeURIComponent(callback_name) + + '&' + + query; + var head = document.getElementsByTagName('head')[0] || document.documentElement; + head.insertBefore(script, head.firstChild); }; +/* harmony default export */ var jsonp_auth = (jsonp); + +// CONCATENATED MODULE: ./src/runtimes/web/dom/script_request.ts +class ScriptRequest { + constructor(src) { + this.src = src; + } + send(receiver) { + var self = this; + var errorString = 'Error loading ' + self.src; + self.script = document.createElement('script'); + self.script.id = receiver.id; + self.script.src = self.src; + self.script.type = 'text/javascript'; + self.script.charset = 'UTF-8'; + if (self.script.addEventListener) { + self.script.onerror = function () { + receiver.callback(errorString); + }; + self.script.onload = function () { + receiver.callback(null); + }; + } + else { + self.script.onreadystatechange = function () { + if (self.script.readyState === 'loaded' || + self.script.readyState === 'complete') { + receiver.callback(null); + } + }; + } + if (self.script.async === undefined && + document.attachEvent && + /opera/i.test(navigator.userAgent)) { + self.errorScript = document.createElement('script'); + self.errorScript.id = receiver.id + '_error'; + self.errorScript.text = receiver.name + "('" + errorString + "');"; + self.script.async = self.errorScript.async = false; + } + else { + self.script.async = true; + } + var head = document.getElementsByTagName('head')[0]; + head.insertBefore(self.script, head.firstChild); + if (self.errorScript) { + head.insertBefore(self.errorScript, self.script.nextSibling); + } + } + cleanup() { + if (this.script) { + this.script.onload = this.script.onerror = null; + this.script.onreadystatechange = null; + } + if (this.script && this.script.parentNode) { + this.script.parentNode.removeChild(this.script); + } + if (this.errorScript && this.errorScript.parentNode) { + this.errorScript.parentNode.removeChild(this.errorScript); + } + this.script = null; + this.errorScript = null; + } +} + +// CONCATENATED MODULE: ./src/runtimes/web/dom/jsonp_request.ts + + +class jsonp_request_JSONPRequest { + constructor(url, data) { + this.url = url; + this.data = data; + } + send(receiver) { + if (this.request) { + return; + } + var query = buildQueryString(this.data); + var url = this.url + '/' + receiver.number + '?' + query; + this.request = runtime.createScriptRequest(url); + this.request.send(receiver); + } + cleanup() { + if (this.request) { + this.request.cleanup(); + } + } +} + +// CONCATENATED MODULE: ./src/runtimes/web/timeline/jsonp_timeline.ts + + +var getAgent = function (sender, useTLS) { + return function (data, callback) { + var scheme = 'http' + (useTLS ? 's' : '') + '://'; + var url = scheme + (sender.host || sender.options.host) + sender.options.path; + var request = runtime.createJSONPRequest(url, data); + var receiver = runtime.ScriptReceivers.create(function (error, result) { + ScriptReceivers.remove(receiver); + request.cleanup(); + if (result && result.host) { + sender.host = result.host; + } + if (callback) { + callback(error, result); + } + }); + request.send(receiver); + }; +}; +var jsonp_timeline_jsonp = { + name: 'jsonp', + getAgent +}; +/* harmony default export */ var jsonp_timeline = (jsonp_timeline_jsonp); + +// CONCATENATED MODULE: ./src/core/transports/url_schemes.ts + +function getGenericURL(baseScheme, params, path) { + var scheme = baseScheme + (params.useTLS ? 's' : ''); + var host = params.useTLS ? params.hostTLS : params.hostNonTLS; + return scheme + '://' + host + path; +} +function getGenericPath(key, queryString) { + var path = '/app/' + key; + var query = '?protocol=' + + defaults.PROTOCOL + + '&client=js' + + '&version=' + + defaults.VERSION + + (queryString ? '&' + queryString : ''); + return path + query; +} +var ws = { + getInitial: function (key, params) { + var path = (params.httpPath || '') + getGenericPath(key, 'flash=false'); + return getGenericURL('ws', params, path); + } +}; +var http = { + getInitial: function (key, params) { + var path = (params.httpPath || '/pusher') + getGenericPath(key); + return getGenericURL('http', params, path); + } +}; +var sockjs = { + getInitial: function (key, params) { + return getGenericURL('http', params, params.httpPath || '/pusher'); + }, + getPath: function (key, params) { + return getGenericPath(key); + } +}; + +// CONCATENATED MODULE: ./src/core/events/callback_registry.ts + +class callback_registry_CallbackRegistry { + constructor() { + this._callbacks = {}; + } + get(name) { + return this._callbacks[prefix(name)]; + } + add(name, callback, context) { + var prefixedEventName = prefix(name); + this._callbacks[prefixedEventName] = + this._callbacks[prefixedEventName] || []; + this._callbacks[prefixedEventName].push({ + fn: callback, + context: context + }); + } + remove(name, callback, context) { + if (!name && !callback && !context) { + this._callbacks = {}; + return; + } + var names = name ? [prefix(name)] : keys(this._callbacks); + if (callback || context) { + this.removeCallback(names, callback, context); + } + else { + this.removeAllCallbacks(names); + } + } + removeCallback(names, callback, context) { + apply(names, function (name) { + this._callbacks[name] = filter(this._callbacks[name] || [], function (binding) { + return ((callback && callback !== binding.fn) || + (context && context !== binding.context)); + }); + if (this._callbacks[name].length === 0) { + delete this._callbacks[name]; + } + }, this); + } + removeAllCallbacks(names) { + apply(names, function (name) { + delete this._callbacks[name]; + }, this); + } +} +function prefix(name) { + return '_' + name; +} + +// CONCATENATED MODULE: ./src/core/events/dispatcher.ts + + +class dispatcher_Dispatcher { + constructor(failThrough) { + this.callbacks = new callback_registry_CallbackRegistry(); + this.global_callbacks = []; + this.failThrough = failThrough; + } + bind(eventName, callback, context) { + this.callbacks.add(eventName, callback, context); + return this; + } + bind_global(callback) { + this.global_callbacks.push(callback); + return this; + } + unbind(eventName, callback, context) { + this.callbacks.remove(eventName, callback, context); + return this; + } + unbind_global(callback) { + if (!callback) { + this.global_callbacks = []; + return this; + } + this.global_callbacks = filter(this.global_callbacks || [], c => c !== callback); + return this; + } + unbind_all() { + this.unbind(); + this.unbind_global(); + return this; + } + emit(eventName, data, metadata) { + for (var i = 0; i < this.global_callbacks.length; i++) { + this.global_callbacks[i](eventName, data); + } + var callbacks = this.callbacks.get(eventName); + var args = []; + if (metadata) { + args.push(data, metadata); + } + else if (data) { + args.push(data); + } + if (callbacks && callbacks.length > 0) { + for (var i = 0; i < callbacks.length; i++) { + callbacks[i].fn.apply(callbacks[i].context || window, args); + } + } + else if (this.failThrough) { + this.failThrough(eventName, data); + } + return this; + } +} + +// CONCATENATED MODULE: ./src/core/transports/transport_connection.ts + + + + + +class transport_connection_TransportConnection extends dispatcher_Dispatcher { + constructor(hooks, name, priority, key, options) { + super(); + this.initialize = runtime.transportConnectionInitializer; + this.hooks = hooks; + this.name = name; + this.priority = priority; + this.key = key; + this.options = options; + this.state = 'new'; + this.timeline = options.timeline; + this.activityTimeout = options.activityTimeout; + this.id = this.timeline.generateUniqueID(); + } + handlesActivityChecks() { + return Boolean(this.hooks.handlesActivityChecks); + } + supportsPing() { + return Boolean(this.hooks.supportsPing); + } + connect() { + if (this.socket || this.state !== 'initialized') { + return false; + } + var url = this.hooks.urls.getInitial(this.key, this.options); + try { + this.socket = this.hooks.getSocket(url, this.options); + } + catch (e) { + util.defer(() => { + this.onError(e); + this.changeState('closed'); + }); + return false; + } + this.bindListeners(); + logger.debug('Connecting', { transport: this.name, url }); + this.changeState('connecting'); + return true; + } + close() { + if (this.socket) { + this.socket.close(); + return true; + } + else { + return false; + } + } + send(data) { + if (this.state === 'open') { + util.defer(() => { + if (this.socket) { + this.socket.send(data); + } + }); + return true; + } + else { + return false; + } + } + ping() { + if (this.state === 'open' && this.supportsPing()) { + this.socket.ping(); + } + } + onOpen() { + if (this.hooks.beforeOpen) { + this.hooks.beforeOpen(this.socket, this.hooks.urls.getPath(this.key, this.options)); + } + this.changeState('open'); + this.socket.onopen = undefined; + } + onError(error) { + this.emit('error', { type: 'WebSocketError', error: error }); + this.timeline.error(this.buildTimelineMessage({ error: error.toString() })); + } + onClose(closeEvent) { + if (closeEvent) { + this.changeState('closed', { + code: closeEvent.code, + reason: closeEvent.reason, + wasClean: closeEvent.wasClean + }); + } + else { + this.changeState('closed'); + } + this.unbindListeners(); + this.socket = undefined; + } + onMessage(message) { + this.emit('message', message); + } + onActivity() { + this.emit('activity'); + } + bindListeners() { + this.socket.onopen = () => { + this.onOpen(); + }; + this.socket.onerror = error => { + this.onError(error); + }; + this.socket.onclose = closeEvent => { + this.onClose(closeEvent); + }; + this.socket.onmessage = message => { + this.onMessage(message); + }; + if (this.supportsPing()) { + this.socket.onactivity = () => { + this.onActivity(); + }; + } + } + unbindListeners() { + if (this.socket) { + this.socket.onopen = undefined; + this.socket.onerror = undefined; + this.socket.onclose = undefined; + this.socket.onmessage = undefined; + if (this.supportsPing()) { + this.socket.onactivity = undefined; + } + } + } + changeState(state, params) { + this.state = state; + this.timeline.info(this.buildTimelineMessage({ + state: state, + params: params + })); + this.emit(state, params); + } + buildTimelineMessage(message) { + return extend({ cid: this.id }, message); + } +} + +// CONCATENATED MODULE: ./src/core/transports/transport.ts + +class transport_Transport { + constructor(hooks) { + this.hooks = hooks; + } + isSupported(environment) { + return this.hooks.isSupported(environment); + } + createConnection(name, priority, key, options) { + return new transport_connection_TransportConnection(this.hooks, name, priority, key, options); + } +} + +// CONCATENATED MODULE: ./src/runtimes/isomorphic/transports/transports.ts + + + + +var WSTransport = new transport_Transport({ + urls: ws, + handlesActivityChecks: false, + supportsPing: false, + isInitialized: function () { + return Boolean(runtime.getWebSocketAPI()); + }, + isSupported: function () { + return Boolean(runtime.getWebSocketAPI()); + }, + getSocket: function (url) { + return runtime.createWebSocket(url); + } +}); +var httpConfiguration = { + urls: http, + handlesActivityChecks: false, + supportsPing: true, + isInitialized: function () { + return true; + } +}; +var streamingConfiguration = extend({ + getSocket: function (url) { + return runtime.HTTPFactory.createStreamingSocket(url); + } +}, httpConfiguration); +var pollingConfiguration = extend({ + getSocket: function (url) { + return runtime.HTTPFactory.createPollingSocket(url); + } +}, httpConfiguration); +var xhrConfiguration = { + isSupported: function () { + return runtime.isXHRSupported(); + } +}; +var XHRStreamingTransport = new transport_Transport((extend({}, streamingConfiguration, xhrConfiguration))); +var XHRPollingTransport = new transport_Transport(extend({}, pollingConfiguration, xhrConfiguration)); +var Transports = { + ws: WSTransport, + xhr_streaming: XHRStreamingTransport, + xhr_polling: XHRPollingTransport +}; +/* harmony default export */ var transports = (Transports); + +// CONCATENATED MODULE: ./src/runtimes/web/transports/transports.ts + + + + + + +var SockJSTransport = new transport_Transport({ + file: 'sockjs', + urls: sockjs, + handlesActivityChecks: true, + supportsPing: false, + isSupported: function () { + return true; + }, + isInitialized: function () { + return window.SockJS !== undefined; + }, + getSocket: function (url, options) { + return new window.SockJS(url, null, { + js_path: Dependencies.getPath('sockjs', { + useTLS: options.useTLS + }), + ignore_null_origin: options.ignoreNullOrigin + }); + }, + beforeOpen: function (socket, path) { + socket.send(JSON.stringify({ + path: path + })); + } +}); +var xdrConfiguration = { + isSupported: function (environment) { + var yes = runtime.isXDRSupported(environment.useTLS); + return yes; + } +}; +var XDRStreamingTransport = new transport_Transport((extend({}, streamingConfiguration, xdrConfiguration))); +var XDRPollingTransport = new transport_Transport(extend({}, pollingConfiguration, xdrConfiguration)); +transports.xdr_streaming = XDRStreamingTransport; +transports.xdr_polling = XDRPollingTransport; +transports.sockjs = SockJSTransport; +/* harmony default export */ var transports_transports = (transports); + +// CONCATENATED MODULE: ./src/runtimes/web/net_info.ts + +class net_info_NetInfo extends dispatcher_Dispatcher { + constructor() { + super(); + var self = this; + if (window.addEventListener !== undefined) { + window.addEventListener('online', function () { + self.emit('online'); + }, false); + window.addEventListener('offline', function () { + self.emit('offline'); + }, false); + } + } + isOnline() { + if (window.navigator.onLine === undefined) { + return true; + } + else { + return window.navigator.onLine; + } + } +} +var net_info_Network = new net_info_NetInfo(); + +// CONCATENATED MODULE: ./src/core/transports/assistant_to_the_transport_manager.ts + + +class assistant_to_the_transport_manager_AssistantToTheTransportManager { + constructor(manager, transport, options) { + this.manager = manager; + this.transport = transport; + this.minPingDelay = options.minPingDelay; + this.maxPingDelay = options.maxPingDelay; + this.pingDelay = undefined; + } + createConnection(name, priority, key, options) { + options = extend({}, options, { + activityTimeout: this.pingDelay + }); + var connection = this.transport.createConnection(name, priority, key, options); + var openTimestamp = null; + var onOpen = function () { + connection.unbind('open', onOpen); + connection.bind('closed', onClosed); + openTimestamp = util.now(); + }; + var onClosed = closeEvent => { + connection.unbind('closed', onClosed); + if (closeEvent.code === 1002 || closeEvent.code === 1003) { + this.manager.reportDeath(); + } + else if (!closeEvent.wasClean && openTimestamp) { + var lifespan = util.now() - openTimestamp; + if (lifespan < 2 * this.maxPingDelay) { + this.manager.reportDeath(); + this.pingDelay = Math.max(lifespan / 2, this.minPingDelay); + } + } + }; + connection.bind('open', onOpen); + return connection; + } + isSupported(environment) { + return this.manager.isAlive() && this.transport.isSupported(environment); + } +} + +// CONCATENATED MODULE: ./src/core/connection/protocol/protocol.ts +const Protocol = { + decodeMessage: function (messageEvent) { + try { + var messageData = JSON.parse(messageEvent.data); + var pusherEventData = messageData.data; + if (typeof pusherEventData === 'string') { + try { + pusherEventData = JSON.parse(messageData.data); + } + catch (e) { } + } + var pusherEvent = { + event: messageData.event, + channel: messageData.channel, + data: pusherEventData + }; + if (messageData.user_id) { + pusherEvent.user_id = messageData.user_id; + } + return pusherEvent; + } + catch (e) { + throw { type: 'MessageParseError', error: e, data: messageEvent.data }; + } + }, + encodeMessage: function (event) { + return JSON.stringify(event); + }, + processHandshake: function (messageEvent) { + var message = Protocol.decodeMessage(messageEvent); + if (message.event === 'pusher:connection_established') { + if (!message.data.activity_timeout) { + throw 'No activity timeout specified in handshake'; + } + return { + action: 'connected', + id: message.data.socket_id, + activityTimeout: message.data.activity_timeout * 1000 + }; + } + else if (message.event === 'pusher:error') { + return { + action: this.getCloseAction(message.data), + error: this.getCloseError(message.data) + }; + } + else { + throw 'Invalid handshake'; + } + }, + getCloseAction: function (closeEvent) { + if (closeEvent.code < 4000) { + if (closeEvent.code >= 1002 && closeEvent.code <= 1004) { + return 'backoff'; + } + else { + return null; + } + } + else if (closeEvent.code === 4000) { + return 'tls_only'; + } + else if (closeEvent.code < 4100) { + return 'refused'; + } + else if (closeEvent.code < 4200) { + return 'backoff'; + } + else if (closeEvent.code < 4300) { + return 'retry'; + } + else { + return 'refused'; + } + }, + getCloseError: function (closeEvent) { + if (closeEvent.code !== 1000 && closeEvent.code !== 1001) { + return { + type: 'PusherError', + data: { + code: closeEvent.code, + message: closeEvent.reason || closeEvent.message + } + }; + } + else { + return null; + } + } +}; +/* harmony default export */ var protocol_protocol = (Protocol); + +// CONCATENATED MODULE: ./src/core/connection/connection.ts + + + + +class connection_Connection extends dispatcher_Dispatcher { + constructor(id, transport) { + super(); + this.id = id; + this.transport = transport; + this.activityTimeout = transport.activityTimeout; + this.bindListeners(); + } + handlesActivityChecks() { + return this.transport.handlesActivityChecks(); + } + send(data) { + return this.transport.send(data); + } + send_event(name, data, channel) { + var event = { event: name, data: data }; + if (channel) { + event.channel = channel; + } + logger.debug('Event sent', event); + return this.send(protocol_protocol.encodeMessage(event)); + } + ping() { + if (this.transport.supportsPing()) { + this.transport.ping(); + } + else { + this.send_event('pusher:ping', {}); + } + } + close() { + this.transport.close(); + } + bindListeners() { + var listeners = { + message: (messageEvent) => { + var pusherEvent; + try { + pusherEvent = protocol_protocol.decodeMessage(messageEvent); + } + catch (e) { + this.emit('error', { + type: 'MessageParseError', + error: e, + data: messageEvent.data + }); + } + if (pusherEvent !== undefined) { + logger.debug('Event recd', pusherEvent); + switch (pusherEvent.event) { + case 'pusher:error': + this.emit('error', { + type: 'PusherError', + data: pusherEvent.data + }); + break; + case 'pusher:ping': + this.emit('ping'); + break; + case 'pusher:pong': + this.emit('pong'); + break; + } + this.emit('message', pusherEvent); + } + }, + activity: () => { + this.emit('activity'); + }, + error: error => { + this.emit('error', error); + }, + closed: closeEvent => { + unbindListeners(); + if (closeEvent && closeEvent.code) { + this.handleCloseEvent(closeEvent); + } + this.transport = null; + this.emit('closed'); + } + }; + var unbindListeners = () => { + objectApply(listeners, (listener, event) => { + this.transport.unbind(event, listener); + }); + }; + objectApply(listeners, (listener, event) => { + this.transport.bind(event, listener); + }); + } + handleCloseEvent(closeEvent) { + var action = protocol_protocol.getCloseAction(closeEvent); + var error = protocol_protocol.getCloseError(closeEvent); + if (error) { + this.emit('error', error); + } + if (action) { + this.emit(action, { action: action, error: error }); + } + } +} + +// CONCATENATED MODULE: ./src/core/connection/handshake/index.ts + + + +class handshake_Handshake { + constructor(transport, callback) { + this.transport = transport; + this.callback = callback; + this.bindListeners(); + } + close() { + this.unbindListeners(); + this.transport.close(); + } + bindListeners() { + this.onMessage = m => { + this.unbindListeners(); + var result; + try { + result = protocol_protocol.processHandshake(m); + } + catch (e) { + this.finish('error', { error: e }); + this.transport.close(); + return; + } + if (result.action === 'connected') { + this.finish('connected', { + connection: new connection_Connection(result.id, this.transport), + activityTimeout: result.activityTimeout + }); + } + else { + this.finish(result.action, { error: result.error }); + this.transport.close(); + } + }; + this.onClosed = closeEvent => { + this.unbindListeners(); + var action = protocol_protocol.getCloseAction(closeEvent) || 'backoff'; + var error = protocol_protocol.getCloseError(closeEvent); + this.finish(action, { error: error }); + }; + this.transport.bind('message', this.onMessage); + this.transport.bind('closed', this.onClosed); + } + unbindListeners() { + this.transport.unbind('message', this.onMessage); + this.transport.unbind('closed', this.onClosed); + } + finish(action, params) { + this.callback(extend({ transport: this.transport, action: action }, params)); + } +} + +// CONCATENATED MODULE: ./src/core/timeline/timeline_sender.ts + +class timeline_sender_TimelineSender { + constructor(timeline, options) { + this.timeline = timeline; + this.options = options || {}; + } + send(useTLS, callback) { + if (this.timeline.isEmpty()) { + return; + } + this.timeline.send(runtime.TimelineTransport.getAgent(this, useTLS), callback); + } +} + +// CONCATENATED MODULE: ./src/core/channels/channel.ts + + + + + +class channel_Channel extends dispatcher_Dispatcher { + constructor(name, pusher) { + super(function (event, data) { + logger.debug('No callbacks on ' + name + ' for ' + event); + }); + this.name = name; + this.pusher = pusher; + this.subscribed = false; + this.subscriptionPending = false; + this.subscriptionCancelled = false; + } + authorize(socketId, callback) { + return callback(null, { auth: '' }); + } + trigger(event, data) { + if (event.indexOf('client-') !== 0) { + throw new BadEventName("Event '" + event + "' does not start with 'client-'"); + } + if (!this.subscribed) { + var suffix = url_store.buildLogSuffix('triggeringClientEvents'); + logger.warn(`Client event triggered before channel 'subscription_succeeded' event . ${suffix}`); + } + return this.pusher.send_event(event, data, this.name); + } + disconnect() { + this.subscribed = false; + this.subscriptionPending = false; + } + handleEvent(event) { + var eventName = event.event; + var data = event.data; + if (eventName === 'pusher_internal:subscription_succeeded') { + this.handleSubscriptionSucceededEvent(event); + } + else if (eventName === 'pusher_internal:subscription_count') { + this.handleSubscriptionCountEvent(event); + } + else if (eventName.indexOf('pusher_internal:') !== 0) { + var metadata = {}; + this.emit(eventName, data, metadata); + } + } + handleSubscriptionSucceededEvent(event) { + this.subscriptionPending = false; + this.subscribed = true; + if (this.subscriptionCancelled) { + this.pusher.unsubscribe(this.name); + } + else { + this.emit('pusher:subscription_succeeded', event.data); + } + } + handleSubscriptionCountEvent(event) { + if (event.data.subscription_count) { + this.subscriptionCount = event.data.subscription_count; + } + this.emit('pusher:subscription_count', event.data); + } + subscribe() { + if (this.subscribed) { + return; + } + this.subscriptionPending = true; + this.subscriptionCancelled = false; + this.authorize(this.pusher.connection.socket_id, (error, data) => { + if (error) { + this.subscriptionPending = false; + logger.error(error.toString()); + this.emit('pusher:subscription_error', Object.assign({}, { + type: 'AuthError', + error: error.message + }, error instanceof HTTPAuthError ? { status: error.status } : {})); + } + else { + this.pusher.send_event('pusher:subscribe', { + auth: data.auth, + channel_data: data.channel_data, + channel: this.name + }); + } + }); + } + unsubscribe() { + this.subscribed = false; + this.pusher.send_event('pusher:unsubscribe', { + channel: this.name + }); + } + cancelSubscription() { + this.subscriptionCancelled = true; + } + reinstateSubscription() { + this.subscriptionCancelled = false; + } +} + +// CONCATENATED MODULE: ./src/core/channels/private_channel.ts + +class private_channel_PrivateChannel extends channel_Channel { + authorize(socketId, callback) { + return this.pusher.config.channelAuthorizer({ + channelName: this.name, + socketId: socketId + }, callback); + } +} + +// CONCATENATED MODULE: ./src/core/channels/members.ts + +class members_Members { + constructor() { + this.reset(); + } + get(id) { + if (Object.prototype.hasOwnProperty.call(this.members, id)) { + return { + id: id, + info: this.members[id] + }; + } + else { + return null; + } + } + each(callback) { + objectApply(this.members, (member, id) => { + callback(this.get(id)); + }); + } + setMyID(id) { + this.myID = id; + } + onSubscription(subscriptionData) { + this.members = subscriptionData.presence.hash; + this.count = subscriptionData.presence.count; + this.me = this.get(this.myID); + } + addMember(memberData) { + if (this.get(memberData.user_id) === null) { + this.count++; + } + this.members[memberData.user_id] = memberData.user_info; + return this.get(memberData.user_id); + } + removeMember(memberData) { + var member = this.get(memberData.user_id); + if (member) { + delete this.members[memberData.user_id]; + this.count--; + } + return member; + } + reset() { + this.members = {}; + this.count = 0; + this.myID = null; + this.me = null; + } +} + +// CONCATENATED MODULE: ./src/core/channels/presence_channel.ts +var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + +class presence_channel_PresenceChannel extends private_channel_PrivateChannel { + constructor(name, pusher) { + super(name, pusher); + this.members = new members_Members(); + } + authorize(socketId, callback) { + super.authorize(socketId, (error, authData) => __awaiter(this, void 0, void 0, function* () { + if (!error) { + authData = authData; + if (authData.channel_data != null) { + var channelData = JSON.parse(authData.channel_data); + this.members.setMyID(channelData.user_id); + } + else { + yield this.pusher.user.signinDonePromise; + if (this.pusher.user.user_data != null) { + this.members.setMyID(this.pusher.user.user_data.id); + } + else { + let suffix = url_store.buildLogSuffix('authorizationEndpoint'); + logger.error(`Invalid auth response for channel '${this.name}', ` + + `expected 'channel_data' field. ${suffix}, ` + + `or the user should be signed in.`); + callback('Invalid auth response'); + return; + } + } + } + callback(error, authData); + })); + } + handleEvent(event) { + var eventName = event.event; + if (eventName.indexOf('pusher_internal:') === 0) { + this.handleInternalEvent(event); + } + else { + var data = event.data; + var metadata = {}; + if (event.user_id) { + metadata.user_id = event.user_id; + } + this.emit(eventName, data, metadata); + } + } + handleInternalEvent(event) { + var eventName = event.event; + var data = event.data; + switch (eventName) { + case 'pusher_internal:subscription_succeeded': + this.handleSubscriptionSucceededEvent(event); + break; + case 'pusher_internal:subscription_count': + this.handleSubscriptionCountEvent(event); + break; + case 'pusher_internal:member_added': + var addedMember = this.members.addMember(data); + this.emit('pusher:member_added', addedMember); + break; + case 'pusher_internal:member_removed': + var removedMember = this.members.removeMember(data); + if (removedMember) { + this.emit('pusher:member_removed', removedMember); + } + break; + } + } + handleSubscriptionSucceededEvent(event) { + this.subscriptionPending = false; + this.subscribed = true; + if (this.subscriptionCancelled) { + this.pusher.unsubscribe(this.name); + } + else { + this.members.onSubscription(event.data); + this.emit('pusher:subscription_succeeded', this.members); + } + } + disconnect() { + this.members.reset(); + super.disconnect(); + } +} + +// EXTERNAL MODULE: ./node_modules/@stablelib/utf8/lib/utf8.js +var utf8 = __webpack_require__(1); + +// EXTERNAL MODULE: ./node_modules/@stablelib/base64/lib/base64.js +var base64 = __webpack_require__(0); + +// CONCATENATED MODULE: ./src/core/channels/encrypted_channel.ts + + + + + +class encrypted_channel_EncryptedChannel extends private_channel_PrivateChannel { + constructor(name, pusher, nacl) { + super(name, pusher); + this.key = null; + this.nacl = nacl; + } + authorize(socketId, callback) { + super.authorize(socketId, (error, authData) => { + if (error) { + callback(error, authData); + return; + } + let sharedSecret = authData['shared_secret']; + if (!sharedSecret) { + callback(new Error(`No shared_secret key in auth payload for encrypted channel: ${this.name}`), null); + return; + } + this.key = Object(base64["decode"])(sharedSecret); + delete authData['shared_secret']; + callback(null, authData); + }); + } + trigger(event, data) { + throw new UnsupportedFeature('Client events are not currently supported for encrypted channels'); + } + handleEvent(event) { + var eventName = event.event; + var data = event.data; + if (eventName.indexOf('pusher_internal:') === 0 || + eventName.indexOf('pusher:') === 0) { + super.handleEvent(event); + return; + } + this.handleEncryptedEvent(eventName, data); + } + handleEncryptedEvent(event, data) { + if (!this.key) { + logger.debug('Received encrypted event before key has been retrieved from the authEndpoint'); + return; + } + if (!data.ciphertext || !data.nonce) { + logger.error('Unexpected format for encrypted event, expected object with `ciphertext` and `nonce` fields, got: ' + + data); + return; + } + let cipherText = Object(base64["decode"])(data.ciphertext); + if (cipherText.length < this.nacl.secretbox.overheadLength) { + logger.error(`Expected encrypted event ciphertext length to be ${this.nacl.secretbox.overheadLength}, got: ${cipherText.length}`); + return; + } + let nonce = Object(base64["decode"])(data.nonce); + if (nonce.length < this.nacl.secretbox.nonceLength) { + logger.error(`Expected encrypted event nonce length to be ${this.nacl.secretbox.nonceLength}, got: ${nonce.length}`); + return; + } + let bytes = this.nacl.secretbox.open(cipherText, nonce, this.key); + if (bytes === null) { + logger.debug('Failed to decrypt an event, probably because it was encrypted with a different key. Fetching a new key from the authEndpoint...'); + this.authorize(this.pusher.connection.socket_id, (error, authData) => { + if (error) { + logger.error(`Failed to make a request to the authEndpoint: ${authData}. Unable to fetch new key, so dropping encrypted event`); + return; + } + bytes = this.nacl.secretbox.open(cipherText, nonce, this.key); + if (bytes === null) { + logger.error(`Failed to decrypt event with new key. Dropping encrypted event`); + return; + } + this.emit(event, this.getDataToEmit(bytes)); + return; + }); + return; + } + this.emit(event, this.getDataToEmit(bytes)); + } + getDataToEmit(bytes) { + let raw = Object(utf8["decode"])(bytes); + try { + return JSON.parse(raw); + } + catch (_a) { + return raw; + } + } +} + +// CONCATENATED MODULE: ./src/core/connection/connection_manager.ts + + + + + +class connection_manager_ConnectionManager extends dispatcher_Dispatcher { + constructor(key, options) { + super(); + this.state = 'initialized'; + this.connection = null; + this.key = key; + this.options = options; + this.timeline = this.options.timeline; + this.usingTLS = this.options.useTLS; + this.errorCallbacks = this.buildErrorCallbacks(); + this.connectionCallbacks = this.buildConnectionCallbacks(this.errorCallbacks); + this.handshakeCallbacks = this.buildHandshakeCallbacks(this.errorCallbacks); + var Network = runtime.getNetwork(); + Network.bind('online', () => { + this.timeline.info({ netinfo: 'online' }); + if (this.state === 'connecting' || this.state === 'unavailable') { + this.retryIn(0); + } + }); + Network.bind('offline', () => { + this.timeline.info({ netinfo: 'offline' }); + if (this.connection) { + this.sendActivityCheck(); + } + }); + this.updateStrategy(); + } + connect() { + if (this.connection || this.runner) { + return; + } + if (!this.strategy.isSupported()) { + this.updateState('failed'); + return; + } + this.updateState('connecting'); + this.startConnecting(); + this.setUnavailableTimer(); + } + send(data) { + if (this.connection) { + return this.connection.send(data); + } + else { + return false; + } + } + send_event(name, data, channel) { + if (this.connection) { + return this.connection.send_event(name, data, channel); + } + else { + return false; + } + } + disconnect() { + this.disconnectInternally(); + this.updateState('disconnected'); + } + isUsingTLS() { + return this.usingTLS; + } + startConnecting() { + var callback = (error, handshake) => { + if (error) { + this.runner = this.strategy.connect(0, callback); + } + else { + if (handshake.action === 'error') { + this.emit('error', { + type: 'HandshakeError', + error: handshake.error + }); + this.timeline.error({ handshakeError: handshake.error }); + } + else { + this.abortConnecting(); + this.handshakeCallbacks[handshake.action](handshake); + } + } + }; + this.runner = this.strategy.connect(0, callback); + } + abortConnecting() { + if (this.runner) { + this.runner.abort(); + this.runner = null; + } + } + disconnectInternally() { + this.abortConnecting(); + this.clearRetryTimer(); + this.clearUnavailableTimer(); + if (this.connection) { + var connection = this.abandonConnection(); + connection.close(); + } + } + updateStrategy() { + this.strategy = this.options.getStrategy({ + key: this.key, + timeline: this.timeline, + useTLS: this.usingTLS + }); + } + retryIn(delay) { + this.timeline.info({ action: 'retry', delay: delay }); + if (delay > 0) { + this.emit('connecting_in', Math.round(delay / 1000)); + } + this.retryTimer = new timers_OneOffTimer(delay || 0, () => { + this.disconnectInternally(); + this.connect(); + }); + } + clearRetryTimer() { + if (this.retryTimer) { + this.retryTimer.ensureAborted(); + this.retryTimer = null; + } + } + setUnavailableTimer() { + this.unavailableTimer = new timers_OneOffTimer(this.options.unavailableTimeout, () => { + this.updateState('unavailable'); + }); + } + clearUnavailableTimer() { + if (this.unavailableTimer) { + this.unavailableTimer.ensureAborted(); + } + } + sendActivityCheck() { + this.stopActivityCheck(); + this.connection.ping(); + this.activityTimer = new timers_OneOffTimer(this.options.pongTimeout, () => { + this.timeline.error({ pong_timed_out: this.options.pongTimeout }); + this.retryIn(0); + }); + } + resetActivityCheck() { + this.stopActivityCheck(); + if (this.connection && !this.connection.handlesActivityChecks()) { + this.activityTimer = new timers_OneOffTimer(this.activityTimeout, () => { + this.sendActivityCheck(); + }); + } + } + stopActivityCheck() { + if (this.activityTimer) { + this.activityTimer.ensureAborted(); + } + } + buildConnectionCallbacks(errorCallbacks) { + return extend({}, errorCallbacks, { + message: message => { + this.resetActivityCheck(); + this.emit('message', message); + }, + ping: () => { + this.send_event('pusher:pong', {}); + }, + activity: () => { + this.resetActivityCheck(); + }, + error: error => { + this.emit('error', error); + }, + closed: () => { + this.abandonConnection(); + if (this.shouldRetry()) { + this.retryIn(1000); + } + } + }); + } + buildHandshakeCallbacks(errorCallbacks) { + return extend({}, errorCallbacks, { + connected: (handshake) => { + this.activityTimeout = Math.min(this.options.activityTimeout, handshake.activityTimeout, handshake.connection.activityTimeout || Infinity); + this.clearUnavailableTimer(); + this.setConnection(handshake.connection); + this.socket_id = this.connection.id; + this.updateState('connected', { socket_id: this.socket_id }); + } + }); + } + buildErrorCallbacks() { + let withErrorEmitted = callback => { + return (result) => { + if (result.error) { + this.emit('error', { type: 'WebSocketError', error: result.error }); + } + callback(result); + }; + }; + return { + tls_only: withErrorEmitted(() => { + this.usingTLS = true; + this.updateStrategy(); + this.retryIn(0); + }), + refused: withErrorEmitted(() => { + this.disconnect(); + }), + backoff: withErrorEmitted(() => { + this.retryIn(1000); + }), + retry: withErrorEmitted(() => { + this.retryIn(0); + }) + }; + } + setConnection(connection) { + this.connection = connection; + for (var event in this.connectionCallbacks) { + this.connection.bind(event, this.connectionCallbacks[event]); + } + this.resetActivityCheck(); + } + abandonConnection() { + if (!this.connection) { + return; + } + this.stopActivityCheck(); + for (var event in this.connectionCallbacks) { + this.connection.unbind(event, this.connectionCallbacks[event]); + } + var connection = this.connection; + this.connection = null; + return connection; + } + updateState(newState, data) { + var previousState = this.state; + this.state = newState; + if (previousState !== newState) { + var newStateDescription = newState; + if (newStateDescription === 'connected') { + newStateDescription += ' with new socket ID ' + data.socket_id; + } + logger.debug('State changed', previousState + ' -> ' + newStateDescription); + this.timeline.info({ state: newState, params: data }); + this.emit('state_change', { previous: previousState, current: newState }); + this.emit(newState, data); + } + } + shouldRetry() { + return this.state === 'connecting' || this.state === 'connected'; + } +} + +// CONCATENATED MODULE: ./src/core/channels/channels.ts + + + + +class channels_Channels { + constructor() { + this.channels = {}; + } + add(name, pusher) { + if (!this.channels[name]) { + this.channels[name] = createChannel(name, pusher); + } + return this.channels[name]; + } + all() { + return values(this.channels); + } + find(name) { + return this.channels[name]; + } + remove(name) { + var channel = this.channels[name]; + delete this.channels[name]; + return channel; + } + disconnect() { + objectApply(this.channels, function (channel) { + channel.disconnect(); + }); + } +} +function createChannel(name, pusher) { + if (name.indexOf('private-encrypted-') === 0) { + if (pusher.config.nacl) { + return factory.createEncryptedChannel(name, pusher, pusher.config.nacl); + } + let errMsg = 'Tried to subscribe to a private-encrypted- channel but no nacl implementation available'; + let suffix = url_store.buildLogSuffix('encryptedChannelSupport'); + throw new UnsupportedFeature(`${errMsg}. ${suffix}`); + } + else if (name.indexOf('private-') === 0) { + return factory.createPrivateChannel(name, pusher); + } + else if (name.indexOf('presence-') === 0) { + return factory.createPresenceChannel(name, pusher); + } + else if (name.indexOf('#') === 0) { + throw new BadChannelName('Cannot create a channel with name "' + name + '".'); + } + else { + return factory.createChannel(name, pusher); + } +} + +// CONCATENATED MODULE: ./src/core/utils/factory.ts + + + + + + + + + +var Factory = { + createChannels() { + return new channels_Channels(); + }, + createConnectionManager(key, options) { + return new connection_manager_ConnectionManager(key, options); + }, + createChannel(name, pusher) { + return new channel_Channel(name, pusher); + }, + createPrivateChannel(name, pusher) { + return new private_channel_PrivateChannel(name, pusher); + }, + createPresenceChannel(name, pusher) { + return new presence_channel_PresenceChannel(name, pusher); + }, + createEncryptedChannel(name, pusher, nacl) { + return new encrypted_channel_EncryptedChannel(name, pusher, nacl); + }, + createTimelineSender(timeline, options) { + return new timeline_sender_TimelineSender(timeline, options); + }, + createHandshake(transport, callback) { + return new handshake_Handshake(transport, callback); + }, + createAssistantToTheTransportManager(manager, transport, options) { + return new assistant_to_the_transport_manager_AssistantToTheTransportManager(manager, transport, options); + } +}; +/* harmony default export */ var factory = (Factory); + +// CONCATENATED MODULE: ./src/core/transports/transport_manager.ts + +class transport_manager_TransportManager { + constructor(options) { + this.options = options || {}; + this.livesLeft = this.options.lives || Infinity; + } + getAssistant(transport) { + return factory.createAssistantToTheTransportManager(this, transport, { + minPingDelay: this.options.minPingDelay, + maxPingDelay: this.options.maxPingDelay + }); + } + isAlive() { + return this.livesLeft > 0; + } + reportDeath() { + this.livesLeft -= 1; + } +} + +// CONCATENATED MODULE: ./src/core/strategies/sequential_strategy.ts + + + +class sequential_strategy_SequentialStrategy { + constructor(strategies, options) { + this.strategies = strategies; + this.loop = Boolean(options.loop); + this.failFast = Boolean(options.failFast); + this.timeout = options.timeout; + this.timeoutLimit = options.timeoutLimit; + } + isSupported() { + return any(this.strategies, util.method('isSupported')); + } + connect(minPriority, callback) { + var strategies = this.strategies; + var current = 0; + var timeout = this.timeout; + var runner = null; + var tryNextStrategy = (error, handshake) => { + if (handshake) { + callback(null, handshake); + } + else { + current = current + 1; + if (this.loop) { + current = current % strategies.length; + } + if (current < strategies.length) { + if (timeout) { + timeout = timeout * 2; + if (this.timeoutLimit) { + timeout = Math.min(timeout, this.timeoutLimit); + } + } + runner = this.tryStrategy(strategies[current], minPriority, { timeout, failFast: this.failFast }, tryNextStrategy); + } + else { + callback(true); + } + } + }; + runner = this.tryStrategy(strategies[current], minPriority, { timeout: timeout, failFast: this.failFast }, tryNextStrategy); + return { + abort: function () { + runner.abort(); + }, + forceMinPriority: function (p) { + minPriority = p; + if (runner) { + runner.forceMinPriority(p); + } + } + }; + } + tryStrategy(strategy, minPriority, options, callback) { + var timer = null; + var runner = null; + if (options.timeout > 0) { + timer = new timers_OneOffTimer(options.timeout, function () { + runner.abort(); + callback(true); + }); + } + runner = strategy.connect(minPriority, function (error, handshake) { + if (error && timer && timer.isRunning() && !options.failFast) { + return; + } + if (timer) { + timer.ensureAborted(); + } + callback(error, handshake); + }); + return { + abort: function () { + if (timer) { + timer.ensureAborted(); + } + runner.abort(); + }, + forceMinPriority: function (p) { + runner.forceMinPriority(p); + } + }; + } +} + +// CONCATENATED MODULE: ./src/core/strategies/best_connected_ever_strategy.ts + + +class best_connected_ever_strategy_BestConnectedEverStrategy { + constructor(strategies) { + this.strategies = strategies; + } + isSupported() { + return any(this.strategies, util.method('isSupported')); + } + connect(minPriority, callback) { + return connect(this.strategies, minPriority, function (i, runners) { + return function (error, handshake) { + runners[i].error = error; + if (error) { + if (allRunnersFailed(runners)) { + callback(true); + } + return; + } + apply(runners, function (runner) { + runner.forceMinPriority(handshake.transport.priority); + }); + callback(null, handshake); + }; + }); + } +} +function connect(strategies, minPriority, callbackBuilder) { + var runners = map(strategies, function (strategy, i, _, rs) { + return strategy.connect(minPriority, callbackBuilder(i, rs)); + }); + return { + abort: function () { + apply(runners, abortRunner); + }, + forceMinPriority: function (p) { + apply(runners, function (runner) { + runner.forceMinPriority(p); + }); + } + }; +} +function allRunnersFailed(runners) { + return collections_all(runners, function (runner) { + return Boolean(runner.error); + }); +} +function abortRunner(runner) { + if (!runner.error && !runner.aborted) { + runner.abort(); + runner.aborted = true; + } +} + +// CONCATENATED MODULE: ./src/core/strategies/websocket_prioritized_cached_strategy.ts + + + + +class websocket_prioritized_cached_strategy_WebSocketPrioritizedCachedStrategy { + constructor(strategy, transports, options) { + this.strategy = strategy; + this.transports = transports; + this.ttl = options.ttl || 1800 * 1000; + this.usingTLS = options.useTLS; + this.timeline = options.timeline; + } + isSupported() { + return this.strategy.isSupported(); + } + connect(minPriority, callback) { + var usingTLS = this.usingTLS; + var info = fetchTransportCache(usingTLS); + var cacheSkipCount = info && info.cacheSkipCount ? info.cacheSkipCount : 0; + var strategies = [this.strategy]; + if (info && info.timestamp + this.ttl >= util.now()) { + var transport = this.transports[info.transport]; + if (transport) { + if (['ws', 'wss'].includes(info.transport) || cacheSkipCount > 3) { + this.timeline.info({ + cached: true, + transport: info.transport, + latency: info.latency + }); + strategies.push(new sequential_strategy_SequentialStrategy([transport], { + timeout: info.latency * 2 + 1000, + failFast: true + })); + } + else { + cacheSkipCount++; + } + } + } + var startTimestamp = util.now(); + var runner = strategies + .pop() + .connect(minPriority, function cb(error, handshake) { + if (error) { + flushTransportCache(usingTLS); + if (strategies.length > 0) { + startTimestamp = util.now(); + runner = strategies.pop().connect(minPriority, cb); + } + else { + callback(error); + } + } + else { + storeTransportCache(usingTLS, handshake.transport.name, util.now() - startTimestamp, cacheSkipCount); + callback(null, handshake); + } + }); + return { + abort: function () { + runner.abort(); + }, + forceMinPriority: function (p) { + minPriority = p; + if (runner) { + runner.forceMinPriority(p); + } + } + }; + } +} +function getTransportCacheKey(usingTLS) { + return 'pusherTransport' + (usingTLS ? 'TLS' : 'NonTLS'); +} +function fetchTransportCache(usingTLS) { + var storage = runtime.getLocalStorage(); + if (storage) { + try { + var serializedCache = storage[getTransportCacheKey(usingTLS)]; + if (serializedCache) { + return JSON.parse(serializedCache); + } + } + catch (e) { + flushTransportCache(usingTLS); + } + } + return null; +} +function storeTransportCache(usingTLS, transport, latency, cacheSkipCount) { + var storage = runtime.getLocalStorage(); + if (storage) { + try { + storage[getTransportCacheKey(usingTLS)] = safeJSONStringify({ + timestamp: util.now(), + transport: transport, + latency: latency, + cacheSkipCount: cacheSkipCount + }); + } + catch (e) { + } + } +} +function flushTransportCache(usingTLS) { + var storage = runtime.getLocalStorage(); + if (storage) { + try { + delete storage[getTransportCacheKey(usingTLS)]; + } + catch (e) { + } + } +} + +// CONCATENATED MODULE: ./src/core/strategies/delayed_strategy.ts + +class delayed_strategy_DelayedStrategy { + constructor(strategy, { delay: number }) { + this.strategy = strategy; + this.options = { delay: number }; + } + isSupported() { + return this.strategy.isSupported(); + } + connect(minPriority, callback) { + var strategy = this.strategy; + var runner; + var timer = new timers_OneOffTimer(this.options.delay, function () { + runner = strategy.connect(minPriority, callback); + }); + return { + abort: function () { + timer.ensureAborted(); + if (runner) { + runner.abort(); + } + }, + forceMinPriority: function (p) { + minPriority = p; + if (runner) { + runner.forceMinPriority(p); + } + } + }; + } +} + +// CONCATENATED MODULE: ./src/core/strategies/if_strategy.ts +class IfStrategy { + constructor(test, trueBranch, falseBranch) { + this.test = test; + this.trueBranch = trueBranch; + this.falseBranch = falseBranch; + } + isSupported() { + var branch = this.test() ? this.trueBranch : this.falseBranch; + return branch.isSupported(); + } + connect(minPriority, callback) { + var branch = this.test() ? this.trueBranch : this.falseBranch; + return branch.connect(minPriority, callback); + } +} + +// CONCATENATED MODULE: ./src/core/strategies/first_connected_strategy.ts +class FirstConnectedStrategy { + constructor(strategy) { + this.strategy = strategy; + } + isSupported() { + return this.strategy.isSupported(); + } + connect(minPriority, callback) { + var runner = this.strategy.connect(minPriority, function (error, handshake) { + if (handshake) { + runner.abort(); + } + callback(error, handshake); + }); + return runner; + } +} + +// CONCATENATED MODULE: ./src/runtimes/web/default_strategy.ts + + + + + + + +function testSupportsStrategy(strategy) { + return function () { + return strategy.isSupported(); + }; +} +var getDefaultStrategy = function (config, baseOptions, defineTransport) { + var definedTransports = {}; + function defineTransportStrategy(name, type, priority, options, manager) { + var transport = defineTransport(config, name, type, priority, options, manager); + definedTransports[name] = transport; + return transport; + } + var ws_options = Object.assign({}, baseOptions, { + hostNonTLS: config.wsHost + ':' + config.wsPort, + hostTLS: config.wsHost + ':' + config.wssPort, + httpPath: config.wsPath + }); + var wss_options = Object.assign({}, ws_options, { + useTLS: true + }); + var sockjs_options = Object.assign({}, baseOptions, { + hostNonTLS: config.httpHost + ':' + config.httpPort, + hostTLS: config.httpHost + ':' + config.httpsPort, + httpPath: config.httpPath + }); + var timeouts = { + loop: true, + timeout: 15000, + timeoutLimit: 60000 + }; + var ws_manager = new transport_manager_TransportManager({ + minPingDelay: 10000, + maxPingDelay: config.activityTimeout + }); + var streaming_manager = new transport_manager_TransportManager({ + lives: 2, + minPingDelay: 10000, + maxPingDelay: config.activityTimeout + }); + var ws_transport = defineTransportStrategy('ws', 'ws', 3, ws_options, ws_manager); + var wss_transport = defineTransportStrategy('wss', 'ws', 3, wss_options, ws_manager); + var sockjs_transport = defineTransportStrategy('sockjs', 'sockjs', 1, sockjs_options); + var xhr_streaming_transport = defineTransportStrategy('xhr_streaming', 'xhr_streaming', 1, sockjs_options, streaming_manager); + var xdr_streaming_transport = defineTransportStrategy('xdr_streaming', 'xdr_streaming', 1, sockjs_options, streaming_manager); + var xhr_polling_transport = defineTransportStrategy('xhr_polling', 'xhr_polling', 1, sockjs_options); + var xdr_polling_transport = defineTransportStrategy('xdr_polling', 'xdr_polling', 1, sockjs_options); + var ws_loop = new sequential_strategy_SequentialStrategy([ws_transport], timeouts); + var wss_loop = new sequential_strategy_SequentialStrategy([wss_transport], timeouts); + var sockjs_loop = new sequential_strategy_SequentialStrategy([sockjs_transport], timeouts); + var streaming_loop = new sequential_strategy_SequentialStrategy([ + new IfStrategy(testSupportsStrategy(xhr_streaming_transport), xhr_streaming_transport, xdr_streaming_transport) + ], timeouts); + var polling_loop = new sequential_strategy_SequentialStrategy([ + new IfStrategy(testSupportsStrategy(xhr_polling_transport), xhr_polling_transport, xdr_polling_transport) + ], timeouts); + var http_loop = new sequential_strategy_SequentialStrategy([ + new IfStrategy(testSupportsStrategy(streaming_loop), new best_connected_ever_strategy_BestConnectedEverStrategy([ + streaming_loop, + new delayed_strategy_DelayedStrategy(polling_loop, { delay: 4000 }) + ]), polling_loop) + ], timeouts); + var http_fallback_loop = new IfStrategy(testSupportsStrategy(http_loop), http_loop, sockjs_loop); + var wsStrategy; + if (baseOptions.useTLS) { + wsStrategy = new best_connected_ever_strategy_BestConnectedEverStrategy([ + ws_loop, + new delayed_strategy_DelayedStrategy(http_fallback_loop, { delay: 2000 }) + ]); + } + else { + wsStrategy = new best_connected_ever_strategy_BestConnectedEverStrategy([ + ws_loop, + new delayed_strategy_DelayedStrategy(wss_loop, { delay: 2000 }), + new delayed_strategy_DelayedStrategy(http_fallback_loop, { delay: 5000 }) + ]); + } + return new websocket_prioritized_cached_strategy_WebSocketPrioritizedCachedStrategy(new FirstConnectedStrategy(new IfStrategy(testSupportsStrategy(ws_transport), wsStrategy, http_fallback_loop)), definedTransports, { + ttl: 1800000, + timeline: baseOptions.timeline, + useTLS: baseOptions.useTLS + }); +}; +/* harmony default export */ var default_strategy = (getDefaultStrategy); + +// CONCATENATED MODULE: ./src/runtimes/web/transports/transport_connection_initializer.ts + +/* harmony default export */ var transport_connection_initializer = (function () { + var self = this; + self.timeline.info(self.buildTimelineMessage({ + transport: self.name + (self.options.useTLS ? 's' : '') + })); + if (self.hooks.isInitialized()) { + self.changeState('initialized'); + } + else if (self.hooks.file) { + self.changeState('initializing'); + Dependencies.load(self.hooks.file, { useTLS: self.options.useTLS }, function (error, callback) { + if (self.hooks.isInitialized()) { + self.changeState('initialized'); + callback(true); + } + else { + if (error) { + self.onError(error); + } + self.onClose(); + callback(false); + } + }); + } + else { + self.onClose(); + } +}); + +// CONCATENATED MODULE: ./src/runtimes/web/http/http_xdomain_request.ts + +var http_xdomain_request_hooks = { + getRequest: function (socket) { + var xdr = new window.XDomainRequest(); + xdr.ontimeout = function () { + socket.emit('error', new RequestTimedOut()); + socket.close(); + }; + xdr.onerror = function (e) { + socket.emit('error', e); + socket.close(); + }; + xdr.onprogress = function () { + if (xdr.responseText && xdr.responseText.length > 0) { + socket.onChunk(200, xdr.responseText); + } + }; + xdr.onload = function () { + if (xdr.responseText && xdr.responseText.length > 0) { + socket.onChunk(200, xdr.responseText); + } + socket.emit('finished', 200); + socket.close(); + }; + return xdr; + }, + abortRequest: function (xdr) { + xdr.ontimeout = xdr.onerror = xdr.onprogress = xdr.onload = null; + xdr.abort(); + } +}; +/* harmony default export */ var http_xdomain_request = (http_xdomain_request_hooks); + +// CONCATENATED MODULE: ./src/core/http/http_request.ts + + +const MAX_BUFFER_LENGTH = 256 * 1024; +class http_request_HTTPRequest extends dispatcher_Dispatcher { + constructor(hooks, method, url) { + super(); + this.hooks = hooks; + this.method = method; + this.url = url; + } + start(payload) { + this.position = 0; + this.xhr = this.hooks.getRequest(this); + this.unloader = () => { + this.close(); + }; + runtime.addUnloadListener(this.unloader); + this.xhr.open(this.method, this.url, true); + if (this.xhr.setRequestHeader) { + this.xhr.setRequestHeader('Content-Type', 'application/json'); + } + this.xhr.send(payload); + } + close() { + if (this.unloader) { + runtime.removeUnloadListener(this.unloader); + this.unloader = null; + } + if (this.xhr) { + this.hooks.abortRequest(this.xhr); + this.xhr = null; + } + } + onChunk(status, data) { + while (true) { + var chunk = this.advanceBuffer(data); + if (chunk) { + this.emit('chunk', { status: status, data: chunk }); + } + else { + break; + } + } + if (this.isBufferTooLong(data)) { + this.emit('buffer_too_long'); + } + } + advanceBuffer(buffer) { + var unreadData = buffer.slice(this.position); + var endOfLinePosition = unreadData.indexOf('\n'); + if (endOfLinePosition !== -1) { + this.position += endOfLinePosition + 1; + return unreadData.slice(0, endOfLinePosition); + } + else { + return null; + } + } + isBufferTooLong(buffer) { + return this.position === buffer.length && buffer.length > MAX_BUFFER_LENGTH; + } +} + +// CONCATENATED MODULE: ./src/core/http/state.ts +var State; +(function (State) { + State[State["CONNECTING"] = 0] = "CONNECTING"; + State[State["OPEN"] = 1] = "OPEN"; + State[State["CLOSED"] = 3] = "CLOSED"; +})(State || (State = {})); +/* harmony default export */ var state = (State); + +// CONCATENATED MODULE: ./src/core/http/http_socket.ts + + + +var autoIncrement = 1; +class http_socket_HTTPSocket { + constructor(hooks, url) { + this.hooks = hooks; + this.session = randomNumber(1000) + '/' + randomString(8); + this.location = getLocation(url); + this.readyState = state.CONNECTING; + this.openStream(); + } + send(payload) { + return this.sendRaw(JSON.stringify([payload])); + } + ping() { + this.hooks.sendHeartbeat(this); + } + close(code, reason) { + this.onClose(code, reason, true); + } + sendRaw(payload) { + if (this.readyState === state.OPEN) { + try { + runtime.createSocketRequest('POST', getUniqueURL(getSendURL(this.location, this.session))).start(payload); + return true; + } + catch (e) { + return false; + } + } + else { + return false; + } + } + reconnect() { + this.closeStream(); + this.openStream(); + } + onClose(code, reason, wasClean) { + this.closeStream(); + this.readyState = state.CLOSED; + if (this.onclose) { + this.onclose({ + code: code, + reason: reason, + wasClean: wasClean + }); + } + } + onChunk(chunk) { + if (chunk.status !== 200) { + return; + } + if (this.readyState === state.OPEN) { + this.onActivity(); + } + var payload; + var type = chunk.data.slice(0, 1); + switch (type) { + case 'o': + payload = JSON.parse(chunk.data.slice(1) || '{}'); + this.onOpen(payload); + break; + case 'a': + payload = JSON.parse(chunk.data.slice(1) || '[]'); + for (var i = 0; i < payload.length; i++) { + this.onEvent(payload[i]); + } + break; + case 'm': + payload = JSON.parse(chunk.data.slice(1) || 'null'); + this.onEvent(payload); + break; + case 'h': + this.hooks.onHeartbeat(this); + break; + case 'c': + payload = JSON.parse(chunk.data.slice(1) || '[]'); + this.onClose(payload[0], payload[1], true); + break; + } + } + onOpen(options) { + if (this.readyState === state.CONNECTING) { + if (options && options.hostname) { + this.location.base = replaceHost(this.location.base, options.hostname); + } + this.readyState = state.OPEN; + if (this.onopen) { + this.onopen(); + } + } + else { + this.onClose(1006, 'Server lost session', true); + } + } + onEvent(event) { + if (this.readyState === state.OPEN && this.onmessage) { + this.onmessage({ data: event }); + } + } + onActivity() { + if (this.onactivity) { + this.onactivity(); + } + } + onError(error) { + if (this.onerror) { + this.onerror(error); + } + } + openStream() { + this.stream = runtime.createSocketRequest('POST', getUniqueURL(this.hooks.getReceiveURL(this.location, this.session))); + this.stream.bind('chunk', chunk => { + this.onChunk(chunk); + }); + this.stream.bind('finished', status => { + this.hooks.onFinished(this, status); + }); + this.stream.bind('buffer_too_long', () => { + this.reconnect(); + }); + try { + this.stream.start(); + } + catch (error) { + util.defer(() => { + this.onError(error); + this.onClose(1006, 'Could not start streaming', false); + }); + } + } + closeStream() { + if (this.stream) { + this.stream.unbind_all(); + this.stream.close(); + this.stream = null; + } + } +} +function getLocation(url) { + var parts = /([^\?]*)\/*(\??.*)/.exec(url); + return { + base: parts[1], + queryString: parts[2] + }; +} +function getSendURL(url, session) { + return url.base + '/' + session + '/xhr_send'; +} +function getUniqueURL(url) { + var separator = url.indexOf('?') === -1 ? '?' : '&'; + return url + separator + 't=' + +new Date() + '&n=' + autoIncrement++; +} +function replaceHost(url, hostname) { + var urlParts = /(https?:\/\/)([^\/:]+)((\/|:)?.*)/.exec(url); + return urlParts[1] + hostname + urlParts[3]; +} +function randomNumber(max) { + return runtime.randomInt(max); +} +function randomString(length) { + var result = []; + for (var i = 0; i < length; i++) { + result.push(randomNumber(32).toString(32)); + } + return result.join(''); +} +/* harmony default export */ var http_socket = (http_socket_HTTPSocket); + +// CONCATENATED MODULE: ./src/core/http/http_streaming_socket.ts +var http_streaming_socket_hooks = { + getReceiveURL: function (url, session) { + return url.base + '/' + session + '/xhr_streaming' + url.queryString; + }, + onHeartbeat: function (socket) { + socket.sendRaw('[]'); + }, + sendHeartbeat: function (socket) { + socket.sendRaw('[]'); + }, + onFinished: function (socket, status) { + socket.onClose(1006, 'Connection interrupted (' + status + ')', false); + } +}; +/* harmony default export */ var http_streaming_socket = (http_streaming_socket_hooks); + +// CONCATENATED MODULE: ./src/core/http/http_polling_socket.ts +var http_polling_socket_hooks = { + getReceiveURL: function (url, session) { + return url.base + '/' + session + '/xhr' + url.queryString; + }, + onHeartbeat: function () { + }, + sendHeartbeat: function (socket) { + socket.sendRaw('[]'); + }, + onFinished: function (socket, status) { + if (status === 200) { + socket.reconnect(); + } + else { + socket.onClose(1006, 'Connection interrupted (' + status + ')', false); + } + } +}; +/* harmony default export */ var http_polling_socket = (http_polling_socket_hooks); + +// CONCATENATED MODULE: ./src/runtimes/isomorphic/http/http_xhr_request.ts + +var http_xhr_request_hooks = { + getRequest: function (socket) { + var Constructor = runtime.getXHRAPI(); + var xhr = new Constructor(); + xhr.onreadystatechange = xhr.onprogress = function () { + switch (xhr.readyState) { + case 3: + if (xhr.responseText && xhr.responseText.length > 0) { + socket.onChunk(xhr.status, xhr.responseText); + } + break; + case 4: + if (xhr.responseText && xhr.responseText.length > 0) { + socket.onChunk(xhr.status, xhr.responseText); + } + socket.emit('finished', xhr.status); + socket.close(); + break; + } + }; + return xhr; + }, + abortRequest: function (xhr) { + xhr.onreadystatechange = null; + xhr.abort(); + } +}; +/* harmony default export */ var http_xhr_request = (http_xhr_request_hooks); + +// CONCATENATED MODULE: ./src/runtimes/isomorphic/http/http.ts + + + + + +var HTTP = { + createStreamingSocket(url) { + return this.createSocket(http_streaming_socket, url); + }, + createPollingSocket(url) { + return this.createSocket(http_polling_socket, url); + }, + createSocket(hooks, url) { + return new http_socket(hooks, url); + }, + createXHR(method, url) { + return this.createRequest(http_xhr_request, method, url); + }, + createRequest(hooks, method, url) { + return new http_request_HTTPRequest(hooks, method, url); + } +}; +/* harmony default export */ var http_http = (HTTP); + +// CONCATENATED MODULE: ./src/runtimes/web/http/http.ts + + +http_http.createXDR = function (method, url) { + return this.createRequest(http_xdomain_request, method, url); +}; +/* harmony default export */ var web_http_http = (http_http); + +// CONCATENATED MODULE: ./src/runtimes/web/runtime.ts + + + + + + + + + + + + +var Runtime = { + nextAuthCallbackID: 1, + auth_callbacks: {}, + ScriptReceivers: ScriptReceivers, + DependenciesReceivers: DependenciesReceivers, + getDefaultStrategy: default_strategy, + Transports: transports_transports, + transportConnectionInitializer: transport_connection_initializer, + HTTPFactory: web_http_http, + TimelineTransport: jsonp_timeline, + getXHRAPI() { + return window.XMLHttpRequest; + }, + getWebSocketAPI() { + return window.WebSocket || window.MozWebSocket; + }, + setup(PusherClass) { + window.Pusher = PusherClass; + var initializeOnDocumentBody = () => { + this.onDocumentBody(PusherClass.ready); + }; + if (!window.JSON) { + Dependencies.load('json2', {}, initializeOnDocumentBody); + } + else { + initializeOnDocumentBody(); + } + }, + getDocument() { + return document; + }, + getProtocol() { + return this.getDocument().location.protocol; + }, + getAuthorizers() { + return { ajax: xhr_auth, jsonp: jsonp_auth }; + }, + onDocumentBody(callback) { + if (document.body) { + callback(); + } + else { + setTimeout(() => { + this.onDocumentBody(callback); + }, 0); + } + }, + createJSONPRequest(url, data) { + return new jsonp_request_JSONPRequest(url, data); + }, + createScriptRequest(src) { + return new ScriptRequest(src); + }, + getLocalStorage() { + try { + return window.localStorage; + } + catch (e) { + return undefined; + } + }, + createXHR() { + if (this.getXHRAPI()) { + return this.createXMLHttpRequest(); + } + else { + return this.createMicrosoftXHR(); + } + }, + createXMLHttpRequest() { + var Constructor = this.getXHRAPI(); + return new Constructor(); + }, + createMicrosoftXHR() { + return new ActiveXObject('Microsoft.XMLHTTP'); + }, + getNetwork() { + return net_info_Network; + }, + createWebSocket(url) { + var Constructor = this.getWebSocketAPI(); + return new Constructor(url); + }, + createSocketRequest(method, url) { + if (this.isXHRSupported()) { + return this.HTTPFactory.createXHR(method, url); + } + else if (this.isXDRSupported(url.indexOf('https:') === 0)) { + return this.HTTPFactory.createXDR(method, url); + } + else { + throw 'Cross-origin HTTP requests are not supported'; + } + }, + isXHRSupported() { + var Constructor = this.getXHRAPI(); + return (Boolean(Constructor) && new Constructor().withCredentials !== undefined); + }, + isXDRSupported(useTLS) { + var protocol = useTLS ? 'https:' : 'http:'; + var documentProtocol = this.getProtocol(); + return (Boolean(window['XDomainRequest']) && documentProtocol === protocol); + }, + addUnloadListener(listener) { + if (window.addEventListener !== undefined) { + window.addEventListener('unload', listener, false); + } + else if (window.attachEvent !== undefined) { + window.attachEvent('onunload', listener); + } + }, + removeUnloadListener(listener) { + if (window.addEventListener !== undefined) { + window.removeEventListener('unload', listener, false); + } + else if (window.detachEvent !== undefined) { + window.detachEvent('onunload', listener); + } + }, + randomInt(max) { + const random = function () { + const crypto = window.crypto || window['msCrypto']; + const random = crypto.getRandomValues(new Uint32Array(1))[0]; + return random / Math.pow(2, 32); + }; + return Math.floor(random() * max); + } +}; +/* harmony default export */ var runtime = (Runtime); + +// CONCATENATED MODULE: ./src/core/timeline/level.ts +var TimelineLevel; +(function (TimelineLevel) { + TimelineLevel[TimelineLevel["ERROR"] = 3] = "ERROR"; + TimelineLevel[TimelineLevel["INFO"] = 6] = "INFO"; + TimelineLevel[TimelineLevel["DEBUG"] = 7] = "DEBUG"; +})(TimelineLevel || (TimelineLevel = {})); +/* harmony default export */ var timeline_level = (TimelineLevel); + +// CONCATENATED MODULE: ./src/core/timeline/timeline.ts + + + +class timeline_Timeline { + constructor(key, session, options) { + this.key = key; + this.session = session; + this.events = []; + this.options = options || {}; + this.sent = 0; + this.uniqueID = 0; + } + log(level, event) { + if (level <= this.options.level) { + this.events.push(extend({}, event, { timestamp: util.now() })); + if (this.options.limit && this.events.length > this.options.limit) { + this.events.shift(); + } + } + } + error(event) { + this.log(timeline_level.ERROR, event); + } + info(event) { + this.log(timeline_level.INFO, event); + } + debug(event) { + this.log(timeline_level.DEBUG, event); + } + isEmpty() { + return this.events.length === 0; + } + send(sendfn, callback) { + var data = extend({ + session: this.session, + bundle: this.sent + 1, + key: this.key, + lib: 'js', + version: this.options.version, + cluster: this.options.cluster, + features: this.options.features, + timeline: this.events + }, this.options.params); + this.events = []; + sendfn(data, (error, result) => { + if (!error) { + this.sent++; + } + if (callback) { + callback(error, result); + } + }); + return true; + } + generateUniqueID() { + this.uniqueID++; + return this.uniqueID; + } +} + +// CONCATENATED MODULE: ./src/core/strategies/transport_strategy.ts + + + + +class transport_strategy_TransportStrategy { + constructor(name, priority, transport, options) { + this.name = name; + this.priority = priority; + this.transport = transport; + this.options = options || {}; + } + isSupported() { + return this.transport.isSupported({ + useTLS: this.options.useTLS + }); + } + connect(minPriority, callback) { + if (!this.isSupported()) { + return failAttempt(new UnsupportedStrategy(), callback); + } + else if (this.priority < minPriority) { + return failAttempt(new TransportPriorityTooLow(), callback); + } + var connected = false; + var transport = this.transport.createConnection(this.name, this.priority, this.options.key, this.options); + var handshake = null; + var onInitialized = function () { + transport.unbind('initialized', onInitialized); + transport.connect(); + }; + var onOpen = function () { + handshake = factory.createHandshake(transport, function (result) { + connected = true; + unbindListeners(); + callback(null, result); + }); + }; + var onError = function (error) { + unbindListeners(); + callback(error); + }; + var onClosed = function () { + unbindListeners(); + var serializedTransport; + serializedTransport = safeJSONStringify(transport); + callback(new TransportClosed(serializedTransport)); + }; + var unbindListeners = function () { + transport.unbind('initialized', onInitialized); + transport.unbind('open', onOpen); + transport.unbind('error', onError); + transport.unbind('closed', onClosed); + }; + transport.bind('initialized', onInitialized); + transport.bind('open', onOpen); + transport.bind('error', onError); + transport.bind('closed', onClosed); + transport.initialize(); + return { + abort: () => { + if (connected) { + return; + } + unbindListeners(); + if (handshake) { + handshake.close(); + } + else { + transport.close(); + } + }, + forceMinPriority: p => { + if (connected) { + return; + } + if (this.priority < p) { + if (handshake) { + handshake.close(); + } + else { + transport.close(); + } + } + } + }; + } +} +function failAttempt(error, callback) { + util.defer(function () { + callback(error); + }); + return { + abort: function () { }, + forceMinPriority: function () { } + }; +} + +// CONCATENATED MODULE: ./src/core/strategies/strategy_builder.ts + + + + + +const { Transports: strategy_builder_Transports } = runtime; +var strategy_builder_defineTransport = function (config, name, type, priority, options, manager) { + var transportClass = strategy_builder_Transports[type]; + if (!transportClass) { + throw new UnsupportedTransport(type); + } + var enabled = (!config.enabledTransports || + arrayIndexOf(config.enabledTransports, name) !== -1) && + (!config.disabledTransports || + arrayIndexOf(config.disabledTransports, name) === -1); + var transport; + if (enabled) { + options = Object.assign({ ignoreNullOrigin: config.ignoreNullOrigin }, options); + transport = new transport_strategy_TransportStrategy(name, priority, manager ? manager.getAssistant(transportClass) : transportClass, options); + } + else { + transport = strategy_builder_UnsupportedStrategy; + } + return transport; +}; +var strategy_builder_UnsupportedStrategy = { + isSupported: function () { + return false; + }, + connect: function (_, callback) { + var deferred = util.defer(function () { + callback(new UnsupportedStrategy()); + }); + return { + abort: function () { + deferred.ensureAborted(); + }, + forceMinPriority: function () { } + }; + } +}; + +// CONCATENATED MODULE: ./src/core/options.ts + +function validateOptions(options) { + if (options == null) { + throw 'You must pass an options object'; + } + if (options.cluster == null) { + throw 'Options object must provide a cluster'; + } + if ('disableStats' in options) { + logger.warn('The disableStats option is deprecated in favor of enableStats'); + } +} + +// CONCATENATED MODULE: ./src/core/auth/user_authenticator.ts + + +const composeChannelQuery = (params, authOptions) => { + var query = 'socket_id=' + encodeURIComponent(params.socketId); + for (var key in authOptions.params) { + query += + '&' + + encodeURIComponent(key) + + '=' + + encodeURIComponent(authOptions.params[key]); + } + if (authOptions.paramsProvider != null) { + let dynamicParams = authOptions.paramsProvider(); + for (var key in dynamicParams) { + query += + '&' + + encodeURIComponent(key) + + '=' + + encodeURIComponent(dynamicParams[key]); + } + } + return query; +}; +const UserAuthenticator = (authOptions) => { + if (typeof runtime.getAuthorizers()[authOptions.transport] === 'undefined') { + throw `'${authOptions.transport}' is not a recognized auth transport`; + } + return (params, callback) => { + const query = composeChannelQuery(params, authOptions); + runtime.getAuthorizers()[authOptions.transport](runtime, query, authOptions, AuthRequestType.UserAuthentication, callback); + }; +}; +/* harmony default export */ var user_authenticator = (UserAuthenticator); + +// CONCATENATED MODULE: ./src/core/auth/channel_authorizer.ts + + +const channel_authorizer_composeChannelQuery = (params, authOptions) => { + var query = 'socket_id=' + encodeURIComponent(params.socketId); + query += '&channel_name=' + encodeURIComponent(params.channelName); + for (var key in authOptions.params) { + query += + '&' + + encodeURIComponent(key) + + '=' + + encodeURIComponent(authOptions.params[key]); + } + if (authOptions.paramsProvider != null) { + let dynamicParams = authOptions.paramsProvider(); + for (var key in dynamicParams) { + query += + '&' + + encodeURIComponent(key) + + '=' + + encodeURIComponent(dynamicParams[key]); + } + } + return query; +}; +const ChannelAuthorizer = (authOptions) => { + if (typeof runtime.getAuthorizers()[authOptions.transport] === 'undefined') { + throw `'${authOptions.transport}' is not a recognized auth transport`; + } + return (params, callback) => { + const query = channel_authorizer_composeChannelQuery(params, authOptions); + runtime.getAuthorizers()[authOptions.transport](runtime, query, authOptions, AuthRequestType.ChannelAuthorization, callback); + }; +}; +/* harmony default export */ var channel_authorizer = (ChannelAuthorizer); + +// CONCATENATED MODULE: ./src/core/auth/deprecated_channel_authorizer.ts +const ChannelAuthorizerProxy = (pusher, authOptions, channelAuthorizerGenerator) => { + const deprecatedAuthorizerOptions = { + authTransport: authOptions.transport, + authEndpoint: authOptions.endpoint, + auth: { + params: authOptions.params, + headers: authOptions.headers + } + }; + return (params, callback) => { + const channel = pusher.channel(params.channelName); + const channelAuthorizer = channelAuthorizerGenerator(channel, deprecatedAuthorizerOptions); + channelAuthorizer.authorize(params.socketId, callback); + }; +}; + +// CONCATENATED MODULE: ./src/core/config.ts + + + + + +function getConfig(opts, pusher) { + let config = { + activityTimeout: opts.activityTimeout || defaults.activityTimeout, + cluster: opts.cluster, + httpPath: opts.httpPath || defaults.httpPath, + httpPort: opts.httpPort || defaults.httpPort, + httpsPort: opts.httpsPort || defaults.httpsPort, + pongTimeout: opts.pongTimeout || defaults.pongTimeout, + statsHost: opts.statsHost || defaults.stats_host, + unavailableTimeout: opts.unavailableTimeout || defaults.unavailableTimeout, + wsPath: opts.wsPath || defaults.wsPath, + wsPort: opts.wsPort || defaults.wsPort, + wssPort: opts.wssPort || defaults.wssPort, + enableStats: getEnableStatsConfig(opts), + httpHost: getHttpHost(opts), + useTLS: shouldUseTLS(opts), + wsHost: getWebsocketHost(opts), + userAuthenticator: buildUserAuthenticator(opts), + channelAuthorizer: buildChannelAuthorizer(opts, pusher) + }; + if ('disabledTransports' in opts) + config.disabledTransports = opts.disabledTransports; + if ('enabledTransports' in opts) + config.enabledTransports = opts.enabledTransports; + if ('ignoreNullOrigin' in opts) + config.ignoreNullOrigin = opts.ignoreNullOrigin; + if ('timelineParams' in opts) + config.timelineParams = opts.timelineParams; + if ('nacl' in opts) { + config.nacl = opts.nacl; + } + return config; +} +function getHttpHost(opts) { + if (opts.httpHost) { + return opts.httpHost; + } + if (opts.cluster) { + return `sockjs-${opts.cluster}.pusher.com`; + } + return defaults.httpHost; +} +function getWebsocketHost(opts) { + if (opts.wsHost) { + return opts.wsHost; + } + return getWebsocketHostFromCluster(opts.cluster); +} +function getWebsocketHostFromCluster(cluster) { + return `ws-${cluster}.pusher.com`; +} +function shouldUseTLS(opts) { + if (runtime.getProtocol() === 'https:') { + return true; + } + else if (opts.forceTLS === false) { + return false; + } + return true; +} +function getEnableStatsConfig(opts) { + if ('enableStats' in opts) { + return opts.enableStats; + } + if ('disableStats' in opts) { + return !opts.disableStats; + } + return false; +} +function buildUserAuthenticator(opts) { + const userAuthentication = Object.assign(Object.assign({}, defaults.userAuthentication), opts.userAuthentication); + if ('customHandler' in userAuthentication && + userAuthentication['customHandler'] != null) { + return userAuthentication['customHandler']; + } + return user_authenticator(userAuthentication); +} +function buildChannelAuth(opts, pusher) { + let channelAuthorization; + if ('channelAuthorization' in opts) { + channelAuthorization = Object.assign(Object.assign({}, defaults.channelAuthorization), opts.channelAuthorization); + } + else { + channelAuthorization = { + transport: opts.authTransport || defaults.authTransport, + endpoint: opts.authEndpoint || defaults.authEndpoint + }; + if ('auth' in opts) { + if ('params' in opts.auth) + channelAuthorization.params = opts.auth.params; + if ('headers' in opts.auth) + channelAuthorization.headers = opts.auth.headers; + } + if ('authorizer' in opts) + channelAuthorization.customHandler = ChannelAuthorizerProxy(pusher, channelAuthorization, opts.authorizer); + } + return channelAuthorization; +} +function buildChannelAuthorizer(opts, pusher) { + const channelAuthorization = buildChannelAuth(opts, pusher); + if ('customHandler' in channelAuthorization && + channelAuthorization['customHandler'] != null) { + return channelAuthorization['customHandler']; + } + return channel_authorizer(channelAuthorization); +} + +// CONCATENATED MODULE: ./src/core/watchlist.ts + + +class watchlist_WatchlistFacade extends dispatcher_Dispatcher { + constructor(pusher) { + super(function (eventName, data) { + logger.debug(`No callbacks on watchlist events for ${eventName}`); + }); + this.pusher = pusher; + this.bindWatchlistInternalEvent(); + } + handleEvent(pusherEvent) { + pusherEvent.data.events.forEach(watchlistEvent => { + this.emit(watchlistEvent.name, watchlistEvent); + }); + } + bindWatchlistInternalEvent() { + this.pusher.connection.bind('message', pusherEvent => { + var eventName = pusherEvent.event; + if (eventName === 'pusher_internal:watchlist_events') { + this.handleEvent(pusherEvent); + } + }); + } +} + +// CONCATENATED MODULE: ./src/core/utils/flat_promise.ts +function flatPromise() { + let resolve, reject; + const promise = new Promise((res, rej) => { + resolve = res; + reject = rej; + }); + return { promise, resolve, reject }; +} +/* harmony default export */ var flat_promise = (flatPromise); + +// CONCATENATED MODULE: ./src/core/user.ts + + + + + +class user_UserFacade extends dispatcher_Dispatcher { + constructor(pusher) { + super(function (eventName, data) { + logger.debug('No callbacks on user for ' + eventName); + }); + this.signin_requested = false; + this.user_data = null; + this.serverToUserChannel = null; + this.signinDonePromise = null; + this._signinDoneResolve = null; + this._onAuthorize = (err, authData) => { + if (err) { + logger.warn(`Error during signin: ${err}`); + this._cleanup(); + return; + } + this.pusher.send_event('pusher:signin', { + auth: authData.auth, + user_data: authData.user_data + }); + }; + this.pusher = pusher; + this.pusher.connection.bind('state_change', ({ previous, current }) => { + if (previous !== 'connected' && current === 'connected') { + this._signin(); + } + if (previous === 'connected' && current !== 'connected') { + this._cleanup(); + this._newSigninPromiseIfNeeded(); + } + }); + this.watchlist = new watchlist_WatchlistFacade(pusher); + this.pusher.connection.bind('message', event => { + var eventName = event.event; + if (eventName === 'pusher:signin_success') { + this._onSigninSuccess(event.data); + } + if (this.serverToUserChannel && + this.serverToUserChannel.name === event.channel) { + this.serverToUserChannel.handleEvent(event); + } + }); + } + signin() { + if (this.signin_requested) { + return; + } + this.signin_requested = true; + this._signin(); + } + _signin() { + if (!this.signin_requested) { + return; + } + this._newSigninPromiseIfNeeded(); + if (this.pusher.connection.state !== 'connected') { + return; + } + this.pusher.config.userAuthenticator({ + socketId: this.pusher.connection.socket_id + }, this._onAuthorize); + } + _onSigninSuccess(data) { + try { + this.user_data = JSON.parse(data.user_data); + } + catch (e) { + logger.error(`Failed parsing user data after signin: ${data.user_data}`); + this._cleanup(); + return; + } + if (typeof this.user_data.id !== 'string' || this.user_data.id === '') { + logger.error(`user_data doesn't contain an id. user_data: ${this.user_data}`); + this._cleanup(); + return; + } + this._signinDoneResolve(); + this._subscribeChannels(); + } + _subscribeChannels() { + const ensure_subscribed = channel => { + if (channel.subscriptionPending && channel.subscriptionCancelled) { + channel.reinstateSubscription(); + } + else if (!channel.subscriptionPending && + this.pusher.connection.state === 'connected') { + channel.subscribe(); + } + }; + this.serverToUserChannel = new channel_Channel(`#server-to-user-${this.user_data.id}`, this.pusher); + this.serverToUserChannel.bind_global((eventName, data) => { + if (eventName.indexOf('pusher_internal:') === 0 || + eventName.indexOf('pusher:') === 0) { + return; + } + this.emit(eventName, data); + }); + ensure_subscribed(this.serverToUserChannel); + } + _cleanup() { + this.user_data = null; + if (this.serverToUserChannel) { + this.serverToUserChannel.unbind_all(); + this.serverToUserChannel.disconnect(); + this.serverToUserChannel = null; + } + if (this.signin_requested) { + this._signinDoneResolve(); + } + } + _newSigninPromiseIfNeeded() { + if (!this.signin_requested) { + return; + } + if (this.signinDonePromise && !this.signinDonePromise.done) { + return; + } + const { promise, resolve, reject: _ } = flat_promise(); + promise.done = false; + const setDone = () => { + promise.done = true; + }; + promise.then(setDone).catch(setDone); + this.signinDonePromise = promise; + this._signinDoneResolve = resolve; + } +} + +// CONCATENATED MODULE: ./src/core/pusher.ts + + + + + + + + + + + + + +class pusher_Pusher { + static ready() { + pusher_Pusher.isReady = true; + for (var i = 0, l = pusher_Pusher.instances.length; i < l; i++) { + pusher_Pusher.instances[i].connect(); + } + } + static getClientFeatures() { + return keys(filterObject({ ws: runtime.Transports.ws }, function (t) { + return t.isSupported({}); + })); + } + constructor(app_key, options) { + checkAppKey(app_key); + validateOptions(options); + this.key = app_key; + this.config = getConfig(options, this); + this.channels = factory.createChannels(); + this.global_emitter = new dispatcher_Dispatcher(); + this.sessionID = runtime.randomInt(1000000000); + this.timeline = new timeline_Timeline(this.key, this.sessionID, { + cluster: this.config.cluster, + features: pusher_Pusher.getClientFeatures(), + params: this.config.timelineParams || {}, + limit: 50, + level: timeline_level.INFO, + version: defaults.VERSION + }); + if (this.config.enableStats) { + this.timelineSender = factory.createTimelineSender(this.timeline, { + host: this.config.statsHost, + path: '/timeline/v2/' + runtime.TimelineTransport.name + }); + } + var getStrategy = (options) => { + return runtime.getDefaultStrategy(this.config, options, strategy_builder_defineTransport); + }; + this.connection = factory.createConnectionManager(this.key, { + getStrategy: getStrategy, + timeline: this.timeline, + activityTimeout: this.config.activityTimeout, + pongTimeout: this.config.pongTimeout, + unavailableTimeout: this.config.unavailableTimeout, + useTLS: Boolean(this.config.useTLS) + }); + this.connection.bind('connected', () => { + this.subscribeAll(); + if (this.timelineSender) { + this.timelineSender.send(this.connection.isUsingTLS()); + } + }); + this.connection.bind('message', event => { + var eventName = event.event; + var internal = eventName.indexOf('pusher_internal:') === 0; + if (event.channel) { + var channel = this.channel(event.channel); + if (channel) { + channel.handleEvent(event); + } + } + if (!internal) { + this.global_emitter.emit(event.event, event.data); + } + }); + this.connection.bind('connecting', () => { + this.channels.disconnect(); + }); + this.connection.bind('disconnected', () => { + this.channels.disconnect(); + }); + this.connection.bind('error', err => { + logger.warn(err); + }); + pusher_Pusher.instances.push(this); + this.timeline.info({ instances: pusher_Pusher.instances.length }); + this.user = new user_UserFacade(this); + if (pusher_Pusher.isReady) { + this.connect(); + } + } + channel(name) { + return this.channels.find(name); + } + allChannels() { + return this.channels.all(); + } + connect() { + this.connection.connect(); + if (this.timelineSender) { + if (!this.timelineSenderTimer) { + var usingTLS = this.connection.isUsingTLS(); + var timelineSender = this.timelineSender; + this.timelineSenderTimer = new timers_PeriodicTimer(60000, function () { + timelineSender.send(usingTLS); + }); + } + } + } + disconnect() { + this.connection.disconnect(); + if (this.timelineSenderTimer) { + this.timelineSenderTimer.ensureAborted(); + this.timelineSenderTimer = null; + } + } + bind(event_name, callback, context) { + this.global_emitter.bind(event_name, callback, context); + return this; + } + unbind(event_name, callback, context) { + this.global_emitter.unbind(event_name, callback, context); + return this; + } + bind_global(callback) { + this.global_emitter.bind_global(callback); + return this; + } + unbind_global(callback) { + this.global_emitter.unbind_global(callback); + return this; + } + unbind_all(callback) { + this.global_emitter.unbind_all(); + return this; + } + subscribeAll() { + var channelName; + for (channelName in this.channels.channels) { + if (this.channels.channels.hasOwnProperty(channelName)) { + this.subscribe(channelName); + } + } + } + subscribe(channel_name) { + var channel = this.channels.add(channel_name, this); + if (channel.subscriptionPending && channel.subscriptionCancelled) { + channel.reinstateSubscription(); + } + else if (!channel.subscriptionPending && + this.connection.state === 'connected') { + channel.subscribe(); + } + return channel; + } + unsubscribe(channel_name) { + var channel = this.channels.find(channel_name); + if (channel && channel.subscriptionPending) { + channel.cancelSubscription(); + } + else { + channel = this.channels.remove(channel_name); + if (channel && channel.subscribed) { + channel.unsubscribe(); + } + } + } + send_event(event_name, data, channel) { + return this.connection.send_event(event_name, data, channel); + } + shouldUseTLS() { + return this.config.useTLS; + } + signin() { + this.user.signin(); + } +} +pusher_Pusher.instances = []; +pusher_Pusher.isReady = false; +pusher_Pusher.logToConsole = false; +pusher_Pusher.Runtime = runtime; +pusher_Pusher.ScriptReceivers = runtime.ScriptReceivers; +pusher_Pusher.DependenciesReceivers = runtime.DependenciesReceivers; +pusher_Pusher.auth_callbacks = runtime.auth_callbacks; +/* harmony default export */ var core_pusher = __webpack_exports__["default"] = (pusher_Pusher); +function checkAppKey(key) { + if (key === null || key === undefined) { + throw 'You must pass your app key when you instantiate Pusher.'; + } +} +runtime.setup(pusher_Pusher); + + +/***/ }) +/******/ ]); +}); +//# sourceMappingURL=pusher.js.map + +/***/ }), +/* 211 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _jquery = __webpack_require__(0); + +var _jquery2 = _interopRequireDefault(_jquery); + +var _dialog = __webpack_require__(1); + +var _dialog2 = _interopRequireDefault(_dialog); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var propertyRecord = function propertyRecord(services) { + var configService = services.configService, + localeService = services.localeService, + appEvents = services.appEvents; + + var url = configService.get('baseUrl'); + + var openModal = function openModal(datas) { + return doProperty(datas); + }; + + var doProperty = function doProperty(datas) { + var $dialog = _dialog2.default.create(services, { + size: 'Medium', + title: (0, _jquery2.default)('#property-title').val() + }); + + _jquery2.default.ajax({ + type: 'GET', + data: datas, + url: url + 'prod/records/property/', + success: function success(data) { + $dialog.setContent(data); + _onPropertyReady($dialog); + } + }); + + return true; + }; + + var _onPropertyReady = function _onPropertyReady($dialog) { + (0, _jquery2.default)('#tabs-records-property').tabs({ + beforeLoad: function beforeLoad(event, ui) { + + ui.ajaxSettings.data = { + lst: (0, _jquery2.default)('input[name=original_selection]', (0, _jquery2.default)(this)).val() + }; + + // load template only once + if (ui.tab.data('loaded')) { + event.preventDefault(); + return; + } + + ui.jqXHR.success(function () { + ui.tab.data('loaded', true); + ui.tab.find('span').html(''); + typeTabContent($dialog, '#' + ui.tab.attr('aria-controls')); + }); + + ui.tab.find('span').html('' + localeService.t('loading') + ''); + }, + load: function load(event, ui) { + ui.tab.find('span').empty(); + } + }); + propertyTabContent($dialog); + }; + /** + * Property Tab + * @param $dialogBox + */ + var propertyTabContent = function propertyTabContent($dialog) { + + var $propertyContainer = (0, _jquery2.default)('#property-status'); + + $propertyContainer.on('click', 'button.cancel', function () { + $dialog.close(); + }); + + $propertyContainer.on('click', 'button.submiter', function () { + var $this = (0, _jquery2.default)(this); + var form = (0, _jquery2.default)(this).closest('form'); + var loader = form.find('form-action-loader'); + + _jquery2.default.ajax({ + type: form.attr('method'), + url: form.attr('action'), + data: form.serializeArray(), + dataType: 'json', + beforeSend: function beforeSend() { + $this.attr('disabled', true); + loader.show(); + }, + success: function success(data) { + $dialog.close(); + }, + complete: function complete() { + $this.attr('disabled', false); + loader.hide(); + } + }); + }); + }; + /** + * Type Tab + * @param $dialog + * @param typeContainerId + */ + var typeTabContent = function typeTabContent($dialog, typeContainerId) { + + var $typeContainer = (0, _jquery2.default)(typeContainerId); + + $typeContainer.on('click', 'button.cancel', function () { + $dialog.close(); + }); + $typeContainer.on('click', 'button.submiter', function () { + var $this = (0, _jquery2.default)(this); + var form = (0, _jquery2.default)(this).closest('form'); + var loader = form.find('form-action-loader'); + + _jquery2.default.ajax({ + type: form.attr('method'), + url: form.attr('action'), + data: form.serializeArray(), + dataType: 'json', + beforeSend: function beforeSend() { + $this.attr('disabled', true); + loader.show(); + }, + success: function success(data) { + $dialog.close(); + }, + complete: function complete() { + $this.attr('disabled', false); + loader.hide(); + } + }); + }); + }; + + return { openModal: openModal }; +}; + +exports.default = propertyRecord; + +/***/ }), +/* 212 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _jquery = __webpack_require__(0); + +var _jquery2 = _interopRequireDefault(_jquery); + +var _dialog = __webpack_require__(1); + +var _dialog2 = _interopRequireDefault(_dialog); + +var _index = __webpack_require__(62); + +var _index2 = _interopRequireDefault(_index); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var pushbasketModal = function pushbasketModal(services, datas) { + var configService = services.configService, + localeService = services.localeService, + appEvents = services.appEvents; + + var url = configService.get('baseUrl'); + + var openModal = function openModal(datas) { + + var $dialog = _dialog2.default.create(services, { + size: 'Full', + title: localeService.t('push') + }); + + // add classes to the whoe dialog (including title) + $dialog.getDomElement().closest('.ui-dialog').addClass('whole_dialog_container').addClass('Push'); + + _jquery2.default.post(url + 'prod/push/sendform/', datas, function (data) { + $dialog.setContent(data); + _onDialogReady(); + return; + }); + + return true; + }; + + var _onDialogReady = function _onDialogReady() { + (0, _index2.default)(services).initialize({ + container: { + containerId: '#PushBox', + context: 'Push' + }, + listManager: { + containerId: '#ListManager' + } + }); + }; + + return { openModal: openModal }; +}; + +exports.default = pushbasketModal; -exports.default = recordPublishModal; - /***/ }), /* 213 */ /***/ (function(module, exports, __webpack_require__) { @@ -62710,7 +67283,54 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); -var _sharingManager = __webpack_require__(214); +var _publication = __webpack_require__(58); + +var _publication2 = _interopRequireDefault(_publication); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var recordPublishModal = function recordPublishModal(services, datas) { + var configService = services.configService, + localeService = services.localeService, + appEvents = services.appEvents; + + var url = configService.get('baseUrl'); + + var openModal = function openModal(datas) { + + _jquery2.default.post(url + 'prod/feeds/requestavailable/', datas, function (data) { + + return (0, _publication2.default)(services).openModal(data); + }); + + return true; + }; + + return { openModal: openModal }; +}; + +exports.default = recordPublishModal; + +/***/ }), +/* 214 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _jquery = __webpack_require__(0); + +var _jquery2 = _interopRequireDefault(_jquery); + +var _dialog = __webpack_require__(1); + +var _dialog2 = _interopRequireDefault(_dialog); + +var _sharingManager = __webpack_require__(215); var _sharingManager2 = _interopRequireDefault(_sharingManager); @@ -62830,7 +67450,7 @@ var recordToolsModal = function recordToolsModal(services, datas) { exports.default = recordToolsModal; /***/ }), -/* 214 */ +/* 215 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -62902,7 +67522,7 @@ var sharingManager = function sharingManager(services, datas) { exports.default = sharingManager; /***/ }), -/* 215 */ +/* 216 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -62920,7 +67540,7 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); -var _index = __webpack_require__(216); +var _index = __webpack_require__(217); var _index2 = _interopRequireDefault(_index); @@ -62958,7 +67578,7 @@ var bridgeRecord = function bridgeRecord(services) { exports.default = bridgeRecord; /***/ }), -/* 216 */ +/* 217 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63297,7 +67917,7 @@ var recordBridge = function recordBridge(services) { exports.default = recordBridge; /***/ }), -/* 217 */ +/* 218 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63375,7 +67995,7 @@ var keyboard = function keyboard(services) { exports.default = keyboard; /***/ }), -/* 218 */ +/* 219 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63463,7 +68083,7 @@ var cgu = function cgu(services) { exports.default = cgu; /***/ }), -/* 219 */ +/* 220 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63562,7 +68182,7 @@ var shareRecord = function shareRecord(services) { exports.default = shareRecord; /***/ }), -/* 220 */ +/* 221 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63580,15 +68200,15 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); -var _videoScreenCapture = __webpack_require__(221); +var _videoScreenCapture = __webpack_require__(222); var _videoScreenCapture2 = _interopRequireDefault(_videoScreenCapture); -var _videoRangeCapture = __webpack_require__(224); +var _videoRangeCapture = __webpack_require__(225); var _videoRangeCapture2 = _interopRequireDefault(_videoRangeCapture); -var _videoSubtitleCapture = __webpack_require__(225); +var _videoSubtitleCapture = __webpack_require__(226); var _videoSubtitleCapture2 = _interopRequireDefault(_videoSubtitleCapture); @@ -63600,7 +68220,7 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -__webpack_require__(226); +__webpack_require__(227); var humane = __webpack_require__(9); @@ -63691,7 +68311,7 @@ var recordVideoEditorModal = function recordVideoEditorModal(services, datas) { exports.default = recordVideoEditorModal; /***/ }), -/* 221 */ +/* 222 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -63709,7 +68329,7 @@ var _dialog = __webpack_require__(1); var _dialog2 = _interopRequireDefault(_dialog); -var _screenCapture = __webpack_require__(222); +var _screenCapture = __webpack_require__(223); var _screenCapture2 = _interopRequireDefault(_screenCapture); @@ -64031,7 +68651,7 @@ var videoScreenCapture = function videoScreenCapture(services, datas) { exports.default = videoScreenCapture; /***/ }), -/* 222 */ +/* 223 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64041,7 +68661,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _canvaImage = __webpack_require__(223); +var _canvaImage = __webpack_require__(224); var _canvaImage2 = _interopRequireDefault(_canvaImage); @@ -64268,7 +68888,7 @@ var ScreenCapture = function ScreenCapture(videoId, canvaId, outputOptions) { exports.default = ScreenCapture; /***/ }), -/* 223 */ +/* 224 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64367,7 +68987,7 @@ Canva.prototype = { exports.default = Canva; /***/ }), -/* 224 */ +/* 225 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64459,7 +69079,7 @@ var videoRangeCapture = function videoRangeCapture(services, datas) { exports.default = videoRangeCapture; /***/ }), -/* 225 */ +/* 226 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64900,13 +69520,13 @@ var videoSubtitleCapture = function videoSubtitleCapture(services, datas) { exports.default = videoSubtitleCapture; /***/ }), -/* 226 */ +/* 227 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), -/* 227 */ +/* 228 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64947,7 +69567,7 @@ var addToBasket = function addToBasket(services) { exports.default = addToBasket; /***/ }), -/* 228 */ +/* 229 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -64986,7 +69606,7 @@ var removeFromBasket = function removeFromBasket(services) { exports.default = removeFromBasket; /***/ }), -/* 229 */ +/* 230 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -65008,8 +69628,8 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var highlight = __webpack_require__(230); -var colorpicker = __webpack_require__(231); +var highlight = __webpack_require__(231); +var colorpicker = __webpack_require__(232); var preferences = function preferences(services) { var configService = services.configService, localeService = services.localeService, @@ -65324,7 +69944,7 @@ var preferences = function preferences(services) { exports.default = preferences; /***/ }), -/* 230 */ +/* 231 */ /***/ (function(module, exports, __webpack_require__) { /*** IMPORTS FROM imports-loader ***/ @@ -65361,7 +69981,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de /***/ }), -/* 231 */ +/* 232 */ /***/ (function(module, exports, __webpack_require__) { /*** IMPORTS FROM imports-loader ***/ @@ -65847,7 +70467,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de /***/ }), -/* 232 */ +/* 233 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66769,7 +71389,7 @@ var orderItem = function orderItem(services) { exports.default = orderItem; /***/ }), -/* 233 */ +/* 234 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -66807,9 +71427,9 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -__webpack_require__(234); +__webpack_require__(235); -var image_enhancer = __webpack_require__(235); +var image_enhancer = __webpack_require__(236); __webpack_require__(14); var previewRecordService = function previewRecordService(services) { var configService = services.configService, @@ -67583,13 +72203,13 @@ var previewRecordService = function previewRecordService(services) { exports.default = previewRecordService; /***/ }), -/* 234 */ +/* 235 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), -/* 235 */ +/* 236 */ /***/ (function(module, exports, __webpack_require__) { /*** IMPORTS FROM imports-loader ***/ @@ -67605,7 +72225,7 @@ var _jquery2 = _interopRequireDefault(_jquery); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -__webpack_require__(236); +__webpack_require__(237); (function ($) { @@ -67834,13 +72454,13 @@ __webpack_require__(236); /***/ }), -/* 236 */ +/* 237 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), -/* 237 */ +/* 238 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68397,7 +73017,7 @@ var uploader = function uploader(services) { exports.default = uploader; /***/ }), -/* 238 */ +/* 239 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68425,7 +73045,7 @@ var defaultConfig = { exports.default = defaultConfig; /***/ }), -/* 239 */ +/* 240 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68500,7 +73120,7 @@ var user = function user(services) { exports.default = user; /***/ }), -/* 240 */ +/* 241 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68555,7 +73175,7 @@ var basket = function basket() { exports.default = basket; /***/ }), -/* 241 */ +/* 242 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -68593,7 +73213,7 @@ var _selectable = __webpack_require__(22); var _selectable2 = _interopRequireDefault(_selectable); -var _searchForm = __webpack_require__(242); +var _searchForm = __webpack_require__(243); var _searchForm2 = _interopRequireDefault(_searchForm); @@ -69301,7 +73921,7 @@ var search = function search(services) { exports.default = search; /***/ }), -/* 242 */ +/* 243 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -69339,11 +73959,11 @@ var _selectable = __webpack_require__(22); var _selectable2 = _interopRequireDefault(_selectable); -var _searchAdvancedForm = __webpack_require__(243); +var _searchAdvancedForm = __webpack_require__(244); var _searchAdvancedForm2 = _interopRequireDefault(_searchAdvancedForm); -var _searchGeoForm = __webpack_require__(244); +var _searchGeoForm = __webpack_require__(245); var _searchGeoForm2 = _interopRequireDefault(_searchGeoForm); @@ -69508,7 +74128,7 @@ var searchForm = function searchForm(services) { exports.default = searchForm; /***/ }), -/* 243 */ +/* 244 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70200,7 +74820,7 @@ var searchAdvancedForm = function searchAdvancedForm(services) { exports.default = searchAdvancedForm; /***/ }), -/* 244 */ +/* 245 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -70425,7 +75045,7 @@ var searchGeoForm = function searchGeoForm(services) { exports.default = searchGeoForm; /***/ }), -/* 245 */ +/* 246 */ /***/ (function(module, exports, __webpack_require__) { /*** IMPORTS FROM imports-loader ***/ @@ -70567,13 +75187,13 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de /***/ }), -/* 246 */ +/* 247 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), -/* 247 */ +/* 248 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(jQuery) {/* Arabic Translation for jQuery UI date picker plugin. */ @@ -70603,7 +75223,7 @@ jQuery(function($){ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 248 */ +/* 249 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(jQuery) {/* German initialisation for the jQuery UI date picker plugin. */ @@ -70633,7 +75253,7 @@ jQuery(function($){ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 249 */ +/* 250 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(jQuery) {/* Inicialización en español para la extensión 'UI date picker' para jQuery. */ @@ -70663,7 +75283,7 @@ jQuery(function($){ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 250 */ +/* 251 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(jQuery) {/* French initialisation for the jQuery UI date picker plugin. */ @@ -70695,7 +75315,7 @@ jQuery(function($){ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 251 */ +/* 252 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(jQuery) {/* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */ @@ -70725,7 +75345,7 @@ jQuery(function($){ /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 252 */ +/* 253 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(jQuery) {/* English/UK initialisation for the jQuery UI date picker plugin. */ diff --git a/Phraseanet-production-client/dist/skin-000000.js b/Phraseanet-production-client/dist/skin-000000.js index 4e9d3c9209..08fd4f34aa 100644 --- a/Phraseanet-production-client/dist/skin-000000.js +++ b/Phraseanet-production-client/dist/skin-000000.js @@ -70,20 +70,20 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = "/assets/production/"; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 287); +/******/ return __webpack_require__(__webpack_require__.s = 288); /******/ }) /************************************************************************/ /******/ ({ -/***/ 287: +/***/ 288: /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(288); +module.exports = __webpack_require__(289); /***/ }), -/***/ 288: +/***/ 289: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -92,11 +92,11 @@ module.exports = __webpack_require__(288); /** * Skin entry point (only for webpack generation of css) */ -__webpack_require__(289); +__webpack_require__(290); /***/ }), -/***/ 289: +/***/ 290: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin diff --git a/Phraseanet-production-client/dist/skin-000000.min.js b/Phraseanet-production-client/dist/skin-000000.min.js index 4e9d3c9209..08fd4f34aa 100644 --- a/Phraseanet-production-client/dist/skin-000000.min.js +++ b/Phraseanet-production-client/dist/skin-000000.min.js @@ -70,20 +70,20 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = "/assets/production/"; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 287); +/******/ return __webpack_require__(__webpack_require__.s = 288); /******/ }) /************************************************************************/ /******/ ({ -/***/ 287: +/***/ 288: /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(288); +module.exports = __webpack_require__(289); /***/ }), -/***/ 288: +/***/ 289: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -92,11 +92,11 @@ module.exports = __webpack_require__(288); /** * Skin entry point (only for webpack generation of css) */ -__webpack_require__(289); +__webpack_require__(290); /***/ }), -/***/ 289: +/***/ 290: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin diff --git a/Phraseanet-production-client/dist/skin-959595.js b/Phraseanet-production-client/dist/skin-959595.js index 08c9f28ae3..d2f97c96e7 100644 --- a/Phraseanet-production-client/dist/skin-959595.js +++ b/Phraseanet-production-client/dist/skin-959595.js @@ -70,20 +70,20 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = "/assets/production/"; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 290); +/******/ return __webpack_require__(__webpack_require__.s = 291); /******/ }) /************************************************************************/ /******/ ({ -/***/ 290: +/***/ 291: /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(291); +module.exports = __webpack_require__(292); /***/ }), -/***/ 291: +/***/ 292: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -92,11 +92,11 @@ module.exports = __webpack_require__(291); /** * Skin entry point (only for webpack generation of css) */ -__webpack_require__(292); +__webpack_require__(293); /***/ }), -/***/ 292: +/***/ 293: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin diff --git a/Phraseanet-production-client/dist/skin-959595.min.js b/Phraseanet-production-client/dist/skin-959595.min.js index 08c9f28ae3..d2f97c96e7 100644 --- a/Phraseanet-production-client/dist/skin-959595.min.js +++ b/Phraseanet-production-client/dist/skin-959595.min.js @@ -70,20 +70,20 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = "/assets/production/"; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 290); +/******/ return __webpack_require__(__webpack_require__.s = 291); /******/ }) /************************************************************************/ /******/ ({ -/***/ 290: +/***/ 291: /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(291); +module.exports = __webpack_require__(292); /***/ }), -/***/ 291: +/***/ 292: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -92,11 +92,11 @@ module.exports = __webpack_require__(291); /** * Skin entry point (only for webpack generation of css) */ -__webpack_require__(292); +__webpack_require__(293); /***/ }), -/***/ 292: +/***/ 293: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin diff --git a/Phraseanet-production-client/dist/skin-FFFFFF.js b/Phraseanet-production-client/dist/skin-FFFFFF.js index 8a2a7465fc..efaf80f975 100644 --- a/Phraseanet-production-client/dist/skin-FFFFFF.js +++ b/Phraseanet-production-client/dist/skin-FFFFFF.js @@ -70,20 +70,20 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = "/assets/production/"; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 293); +/******/ return __webpack_require__(__webpack_require__.s = 294); /******/ }) /************************************************************************/ /******/ ({ -/***/ 293: +/***/ 294: /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(294); +module.exports = __webpack_require__(295); /***/ }), -/***/ 294: +/***/ 295: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -92,11 +92,11 @@ module.exports = __webpack_require__(294); /** * Skin entry point (only for webpack generation of css) */ -__webpack_require__(295); +__webpack_require__(296); /***/ }), -/***/ 295: +/***/ 296: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin diff --git a/Phraseanet-production-client/dist/skin-FFFFFF.min.js b/Phraseanet-production-client/dist/skin-FFFFFF.min.js index 8a2a7465fc..efaf80f975 100644 --- a/Phraseanet-production-client/dist/skin-FFFFFF.min.js +++ b/Phraseanet-production-client/dist/skin-FFFFFF.min.js @@ -70,20 +70,20 @@ return /******/ (function(modules) { // webpackBootstrap /******/ __webpack_require__.p = "/assets/production/"; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 293); +/******/ return __webpack_require__(__webpack_require__.s = 294); /******/ }) /************************************************************************/ /******/ ({ -/***/ 293: +/***/ 294: /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__(294); +module.exports = __webpack_require__(295); /***/ }), -/***/ 294: +/***/ 295: /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -92,11 +92,11 @@ module.exports = __webpack_require__(294); /** * Skin entry point (only for webpack generation of css) */ -__webpack_require__(295); +__webpack_require__(296); /***/ }), -/***/ 295: +/***/ 296: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin diff --git a/Phraseanet-production-client/package-lock.json b/Phraseanet-production-client/package-lock.json index baed536794..7c4102f221 100644 --- a/Phraseanet-production-client/package-lock.json +++ b/Phraseanet-production-client/package-lock.json @@ -15005,6 +15005,21 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, + "pusher-js": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/pusher-js/-/pusher-js-8.3.0.tgz", + "integrity": "sha512-6GohP06WlVeomAQQe9qWh1IDzd3+InluWt+ZUOcecVK1SEQkg6a8uYVsvxSJm7cbccfmHhE0jDkmhKIhue8vmA==", + "requires": { + "tweetnacl": "^1.0.3" + }, + "dependencies": { + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + } + } + }, "pym.js": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/pym.js/-/pym.js-1.3.2.tgz", diff --git a/Phraseanet-production-client/package.json b/Phraseanet-production-client/package.json index b5c84e18d3..4b0909e594 100644 --- a/Phraseanet-production-client/package.json +++ b/Phraseanet-production-client/package.json @@ -155,6 +155,7 @@ "mapbox-gl-circle": "^1.6.5", "mapbox.js": "^2.4.0", "nouislider": "^9.2.0", + "pusher-js": "^8.3.0", "pym.js": "^1.3.1", "rx": "^4.1.0", "sprintf-js": "^1.1.1", diff --git a/Phraseanet-production-client/src/components/record/export.js b/Phraseanet-production-client/src/components/record/export.js index ada1d1fe66..bc2feb0226 100644 --- a/Phraseanet-production-client/src/components/record/export.js +++ b/Phraseanet-production-client/src/components/record/export.js @@ -1,5 +1,6 @@ import $ from 'jquery'; import dialog from './../../phraseanet-common/components/dialog'; +import Pusher from 'pusher-js'; const humane = require('humane-js'); const exportRecord = services => { @@ -317,7 +318,34 @@ const exportRecord = services => { $('#sendmail form').submit(); humane.infoLarge($('#export-send-mail-notif').val()); - $dialog.close(); + // $dialog.close(); + + + + // Enable pusher logging - don't include this in production + Pusher.logToConsole = true; + const pusher = new Pusher('07b97d8d50b1f2b3d515', { + cluster: 'eu' + }); + const channel = pusher.subscribe("my-channel"); + pusher.connection.bind("state_change", function (states) { + // states = {previous: 'oldState', current: 'newState'} + console.log("========== connection changed : ========== ", states); + }); + channel.bind("my-event", (data) => { + // Method to be dispatched on trigger. + console.log("========== received from pusher : ========== ", data); + channel.unbind("my-event"); + console.log("========== channel unbinded ========== "); + channel.disconnect(); + console.log("========== channel disconnected ========== "); + pusher.unsubscribe("my-channel"); + console.log("========== pusher unsubscribed ========== "); + pusher.disconnect() + console.log("========== pusher disconnected ========== "); + }); + + }); $('.datepicker', $dialog.getDomElement()).datepicker({ diff --git a/composer.json b/composer.json index 08eef8c780..66a8c37f85 100644 --- a/composer.json +++ b/composer.json @@ -133,7 +133,8 @@ "paragonie/random-lib": "^2.0", "czproject/git-php": "^3.17", "php-amqplib/php-amqplib": "^2.9", - "guzzlehttp/guzzle": " 6.3.3" + "guzzlehttp/guzzle": " 6.3.3", + "pusher/pusher-php-server": "^3.4" }, "require-dev": { "mikey179/vfsstream": "~1.5", diff --git a/composer.lock b/composer.lock index 039f1fcf64..b2ad56e736 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "12f2708ee329327ead6eac100cdf302e", + "content-hash": "d7daa273b758edaa29ff17868a7f1750", "packages": [ { "name": "alchemy-fr/tcpdf-clone", @@ -5810,6 +5810,64 @@ ], "time": "2016-10-10T12:19:37+00:00" }, + { + "name": "pusher/pusher-php-server", + "version": "v3.4.1", + "source": { + "type": "git", + "url": "https://github.com/pusher/pusher-http-php.git", + "reference": "a5fcdc65efd8d9a8291efbe01d326ec7ef5d5cee" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pusher/pusher-http-php/zipball/a5fcdc65efd8d9a8291efbe01d326ec7ef5d5cee", + "reference": "a5fcdc65efd8d9a8291efbe01d326ec7ef5d5cee", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "paragonie/sodium_compat": "^1.6", + "php": ">=5.4 <7.4", + "psr/log": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4-dev" + } + }, + "autoload": { + "psr-4": { + "Pusher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Library for interacting with the Pusher REST API", + "keywords": [ + "events", + "messaging", + "php-pusher-server", + "publish", + "push", + "pusher", + "real time", + "real-time", + "realtime", + "rest", + "trigger" + ], + "support": { + "issues": "https://github.com/pusher/pusher-http-php/issues", + "source": "https://github.com/pusher/pusher-http-php/tree/master" + }, + "time": "2019-03-19T11:19:11+00:00" + }, { "name": "ramsey/uuid", "version": "3.5.2", @@ -8736,5 +8794,5 @@ "ext-intl": "*" }, "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.1.0" } diff --git a/lib/Alchemy/Phrasea/Controller/Prod/DoDownloadController.php b/lib/Alchemy/Phrasea/Controller/Prod/DoDownloadController.php index 66a14d57fc..5dbb643b52 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/DoDownloadController.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/DoDownloadController.php @@ -71,6 +71,7 @@ public function prepareDownload(Request $request, Token $token) } return new Response($this->render( + /** @uses templates/web/prod/actions/Download/prepare.html.twig */ '/prod/actions/Download/prepare.html.twig', [ 'module_name' => $this->app->trans('Export'), 'module' => $this->app->trans('Export'), diff --git a/lib/Alchemy/Phrasea/Controller/Prod/DownloadController.php b/lib/Alchemy/Phrasea/Controller/Prod/DownloadController.php index c575c86431..d5105adfc1 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/DownloadController.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/DownloadController.php @@ -58,6 +58,7 @@ public function checkDownload(Request $request) $this->getAuthenticatedUser(), $ssttid, $lst, $subdefs, $download->getExportName()) ); + /** @see DoDownloadController::prepareDownload */ return $this->app->redirectPath('prepare_download', ['token' => $token->getValue()]); } diff --git a/lib/Alchemy/Phrasea/Controller/Prod/ExportController.php b/lib/Alchemy/Phrasea/Controller/Prod/ExportController.php index 4ef91b65c5..e939b86ac9 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/ExportController.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/ExportController.php @@ -154,6 +154,64 @@ public function exportFtp(Request $request) } } + /** + * Async Export + * + * @param Request $request + * @return JsonResponse + */ + public function exportAsync(Request $request) + { + if (!$this->isCrsfValid($request, 'prodExportEmail')) { + return $this->app->json(['message' => 'invalid export mail form'], 403); + } + + set_time_limit(0); + session_write_close(); + ignore_user_abort(true); + + $lst = $request->request->get('lst', ''); + $ssttid = $request->request->get('ssttid', ''); + + //prepare export + $download = new \set_export($this->app, $lst, $ssttid); + $list = $download->prepare_export( + $this->getAuthenticatedUser(), + $this->getFilesystem(), + (array) $request->request->get('obj'), + $request->request->get("type") == "title" ? : false, + $request->request->get('businessfields'), + $request->request->get('stamp_choice') === "NO_STAMP" ? \set_export::NO_STAMP : \set_export::STAMP_ASYNC, + true + ); + + $list['export_name'] = sprintf("%s.zip", $download->getExportName()); + + $token = $this->getTokenManipulator()->createEmailExportToken(serialize($list)); + + $tokenValue = $token->getValue(); + + $url = $this->app->url('prepare_download', ['token' => $token->getValue(), 'anonymous' => false, 'type' => \Session_Logger::EVENT_EXPORTMAIL]); + + $params = [ + 'url' => $url, + 'textmail' => $request->request->get('textmail'), + 'reading_confirm' => !!$request->request->get('reading_confirm', false), + 'ssttid' => $ssttid = $request->request->get('ssttid', ''), + 'lst' => $lst = $request->request->get('lst', ''), + ]; + + $this->dispatch(PhraseaEvents::EXPORT_ASYNC_CREATE, new ExportAsyncEvent( + $tokenValue, + $params + )); + + return $this->app->json([ + 'success' => true, + 'message' => '' + ]); + } + /** * Export document by mail * diff --git a/lib/Alchemy/Phrasea/ControllerProvider/Prod/DoDownload.php b/lib/Alchemy/Phrasea/ControllerProvider/Prod/DoDownload.php index e776e53152..2459930dfc 100644 --- a/lib/Alchemy/Phrasea/ControllerProvider/Prod/DoDownload.php +++ b/lib/Alchemy/Phrasea/ControllerProvider/Prod/DoDownload.php @@ -46,16 +46,19 @@ public function connect(Application $app) { $controllers = $this->createCollection($app); + /** @uses DoDownloadController::prepareDownload */ $controllers->get('/{token}/prepare/', 'controller.prod.do-download:prepareDownload') ->before($app['middleware.token.converter']) ->bind('prepare_download') ->assert('token', '[a-zA-Z0-9]{8,32}'); + /** @uses DoDownloadController::downloadDocuments */ $controllers->match('/{token}/get/', 'controller.prod.do-download:downloadDocuments') ->before($app['middleware.token.converter']) ->bind('document_download') ->assert('token', '[a-zA-Z0-9]{8,32}'); + /** @uses DoDownloadController::downloadExecute */ $controllers->post('/{token}/execute/', 'controller.prod.do-download:downloadExecute') ->before($app['middleware.token.converter']) ->bind('execute_download') diff --git a/lib/Alchemy/Phrasea/ControllerProvider/Prod/Download.php b/lib/Alchemy/Phrasea/ControllerProvider/Prod/Download.php index 04df8b9010..dca334df5b 100644 --- a/lib/Alchemy/Phrasea/ControllerProvider/Prod/Download.php +++ b/lib/Alchemy/Phrasea/ControllerProvider/Prod/Download.php @@ -45,6 +45,7 @@ public function connect(Application $app) $controllers->before(new OAuthListener(['exit_not_present' => false])); $this->getFirewall($app)->addMandatoryAuthentication($controllers); + /** @uses DownloadController::checkDownload */ $controllers->post('/', 'controller.prod.download:checkDownload') ->bind('check_download'); diff --git a/lib/Alchemy/Phrasea/ControllerProvider/Prod/Export.php b/lib/Alchemy/Phrasea/ControllerProvider/Prod/Export.php index d830c12daf..a952f3eba1 100644 --- a/lib/Alchemy/Phrasea/ControllerProvider/Prod/Export.php +++ b/lib/Alchemy/Phrasea/ControllerProvider/Prod/Export.php @@ -49,15 +49,23 @@ public function connect(Application $app) $controllers->before(new OAuthListener(['exit_not_present' => false])); $this->getFirewall($app)->addMandatoryAuthentication($controllers); + /** @uses ExportController::displayMultiExport */ $controllers->post('/multi-export/', 'controller.prod.export:displayMultiExport') ->bind('export_multi_export'); + /** @uses ExportController::exportMail */ $controllers->post('/mail/', 'controller.prod.export:exportMail') ->bind('export_mail'); + /** @uses ExportController::exportAsync */ + $controllers->post('/async/', 'controller.prod.export:exportAsync') + ->bind('export_async'); + + /** @uses ExportController::exportFtp */ $controllers->post('/ftp/', 'controller.prod.export:exportFtp') ->bind('export_ftp'); + /** @uses ExportController::testFtpConnexion */ $controllers->post('/ftp/test/', 'controller.prod.export:testFtpConnexion') ->bind('export_ftp_test'); diff --git a/lib/Alchemy/Phrasea/Twig/PhraseanetExtension.php b/lib/Alchemy/Phrasea/Twig/PhraseanetExtension.php index a1936c09ed..ff80e50df9 100644 --- a/lib/Alchemy/Phrasea/Twig/PhraseanetExtension.php +++ b/lib/Alchemy/Phrasea/Twig/PhraseanetExtension.php @@ -62,7 +62,7 @@ public function getGlobals() { return [ // change this version when you change JS file to force the navigation to reload js file - 'assetFileVersion' => 93 + 'assetFileVersion' => 94 ]; } diff --git a/lib/Alchemy/Phrasea/WorkerManager/Worker/ExportMailWorker.php b/lib/Alchemy/Phrasea/WorkerManager/Worker/ExportMailWorker.php index f3faaad652..f60849dbfd 100644 --- a/lib/Alchemy/Phrasea/WorkerManager/Worker/ExportMailWorker.php +++ b/lib/Alchemy/Phrasea/WorkerManager/Worker/ExportMailWorker.php @@ -18,6 +18,7 @@ use Alchemy\Phrasea\WorkerManager\Event\ExportMailFailureEvent; use Alchemy\Phrasea\WorkerManager\Event\WorkerEvents; use Alchemy\Phrasea\WorkerManager\Queue\MessagePublisher; +use Pusher\Pusher; class ExportMailWorker implements WorkerInterface { @@ -227,6 +228,19 @@ public function process(array $payload) $em->flush(); } + sleep(30); + $options = array( + 'cluster' => 'eu', + 'useTLS' => true + ); + $pusher = new Pusher( + '07b97d8d50b1f2b3d515', + 'c441cc58dbf1f51f3e0c', + '1682224', + $options + ); + $data['message'] = 'hello world'; + $pusher->trigger('my-channel', 'my-event', $data); } /** diff --git a/templates/web/common/dialog_export.html.twig b/templates/web/common/dialog_export.html.twig index b99a837708..466f50db13 100644 --- a/templates/web/common/dialog_export.html.twig +++ b/templates/web/common/dialog_export.html.twig @@ -95,6 +95,7 @@
    {% if download.get_total_download() > 0 %}
  • {{ 'export:: telechargement' | trans }}
  • +
  • async
  • {{ 'export:: envoi par mail' | trans }}
  • {% endif %} {% if download.get_total_order() > 0 %} @@ -108,6 +109,7 @@

    {{ 'export:: telechargement' | trans }}

    + {# \Alchemy\Phrasea\Controller\Prod\DownloadController::checkDownload #}
    @@ -175,12 +177,13 @@

    {{ 'export:: envoi par mail' | trans }}

    + {# \Alchemy\Phrasea\Controller\Prod\ExportController::exportMail #} -
    - {{ 'export:email:info:: email addresses separated by commas' | trans }} -
    +
    + {{ 'export:email:info:: email addresses separated by commas' | trans }} +
    {{ 'export::mail: destinataire' | trans }} @@ -189,10 +192,10 @@ {% set my_email = app.getAuthenticatedUser().getEmail() %}
    {% if my_email != '' %} - + {% else %}
    +
    +
    +

    async

    +
    + + +
    + {% for name, values in download.get_display_download() %} + {% if values.available > 0 %} +
    + + {% if values.refused|length > 0 %} + + {% endif %} +
    + {% endif %} + {% endfor %} +
    + {% if download.has_business_fields_access() %} + + {% endif %} + {{ _self.choose_title('sendmail', choose_export_title, default_export_title) }} + + {% if app['conf'].get(['registry', 'actions', 'tou-validation-required-for-export']) == true %} +
    + +
    + {% endif %} +
    + + + +
    + +
    +
    +
    {% endif %} {% if download.get_total_order() > 0 %}