diff --git a/app/Console/Commands/DevInstall.php b/app/Console/Commands/DevInstall.php index 6fc7e852..0537e7a6 100644 --- a/app/Console/Commands/DevInstall.php +++ b/app/Console/Commands/DevInstall.php @@ -48,7 +48,7 @@ class DevInstall extends Command # $this->info('Importing sample data'); - \Artisan::call('phpvms:import', [ + \Artisan::call('phpvms:yaml-import', [ 'files' => ['app/Database/seeds/sample.yml'], ]); diff --git a/app/Http/Resources/Pirep.php b/app/Http/Resources/Pirep.php index 4da52e84..1aa99a18 100644 --- a/app/Http/Resources/Pirep.php +++ b/app/Http/Resources/Pirep.php @@ -2,6 +2,7 @@ namespace App\Http\Resources; +use App\Models\Enums\PirepStatus; use App\Support\Units\Distance; use App\Support\Units\Fuel; use Illuminate\Http\Resources\Json\Resource; @@ -40,9 +41,12 @@ class Pirep extends Resource if($this->block_off_time) $pirep['block_off_time'] = $this->block_off_time->toIso8601ZuluString(); + $pirep['status_text'] = PirepStatus::label($this->status); + $pirep['airline'] = new Airline($this->airline); $pirep['dpt_airport'] = new Airport($this->dpt_airport); $pirep['arr_airport'] = new Airport($this->arr_airport); + $pirep['position'] = new Acars($this->position); $pirep['comments'] = PirepComment::collection($this->comments); $pirep['user'] = [ diff --git a/app/Models/GeoJson.php b/app/Models/GeoJson.php index 3593cce3..3ca051df 100644 --- a/app/Models/GeoJson.php +++ b/app/Models/GeoJson.php @@ -34,8 +34,14 @@ class GeoJson */ public function addPoint($lat, $lon, array $attrs) { + $point = [$lon, $lat]; $this->line_coords[] = [$lon, $lat]; - $this->point_coords[] = new Feature(new Point([$lon, $lat]), $attrs); + + if(array_key_exists('alt', $attrs)) { + $point[] = $attrs['alt']; + } + + $this->point_coords[] = new Feature(new Point($point), $attrs); ++$this->counter; } diff --git a/app/Models/Pirep.php b/app/Models/Pirep.php index 8c147b68..bee9a0c8 100644 --- a/app/Models/Pirep.php +++ b/app/Models/Pirep.php @@ -43,6 +43,7 @@ use PhpUnitsOfMeasure\Exception\NonStringUnitName; * @property Carbon created_at * @property Carbon updated_at * @property bool state + * @property Acars position * @package App\Models */ class Pirep extends Model @@ -177,6 +178,19 @@ class Pirep extends Model return null; } + /** + * Return the block on time + * @return Carbon + */ + public function getSubmittedAtAttribute() + { + if (array_key_exists('submitted_at', $this->attributes)) { + return new Carbon($this->attributes['submitted_at']); + } + + return null; + } + /** * Return a new Length unit so conversions can be made * @return int|Distance diff --git a/app/Routes/api.php b/app/Routes/api.php index 6c67b283..1509416b 100755 --- a/app/Routes/api.php +++ b/app/Routes/api.php @@ -5,6 +5,7 @@ */ Route::group([], function () { Route::get('acars', 'AcarsController@index'); + Route::get('pireps/{pirep_id}', 'PirepController@get'); Route::get('pireps/{pirep_id}/acars/geojson', 'PirepController@acars_geojson'); Route::get('news', 'NewsController@index'); @@ -32,7 +33,6 @@ Route::group(['middleware' => ['api.auth']], function () { Route::get('flights/{id}', 'FlightController@get'); Route::get('flights/{id}/route', 'FlightController@route'); - Route::get('pireps/{pirep_id}', 'PirepController@get'); Route::put('pireps/{pirep_id}', 'PirepController@update'); /* diff --git a/app/Services/GeoService.php b/app/Services/GeoService.php index 51516fe2..351a0cfa 100644 --- a/app/Services/GeoService.php +++ b/app/Services/GeoService.php @@ -190,12 +190,17 @@ class GeoService extends Service foreach ($pirep->acars as $point) { $route->addPoint($point->lat, $point->lon, [ 'pirep_id' => $pirep->id, - 'name' => $point->altitude, - 'popup' => $counter.'
GS: '.$point->gs.'
Alt: '.$point->altitude, + 'name' => '', + 'alt' => $point->altitude, + 'popup' => 'GS: '.$point->gs.'
Alt: '.$point->altitude, ]); } return [ + 'position' => [ + 'lat' => $pirep->position->lat, + 'lon' => $pirep->position->lon, + ], 'line' => $route->getLine(), 'points' => $route->getPoints() ]; @@ -225,7 +230,7 @@ class GeoService extends Service 'gs' => $point->gs, 'alt' => $point->altitude, 'heading' => $point->heading ?: 0, - 'popup' => $pirep->ident.'
GS: '.$point->gs.'
Alt: '.$point->altitude, + //'popup' => $pirep->ident.'
GS: '.$point->gs.'
Alt: '.$point->altitude, ]); } diff --git a/package.json b/package.json index fddad366..c470432c 100755 --- a/package.json +++ b/package.json @@ -2,12 +2,12 @@ "private": true, "scripts": { "dev": "yarn run development", - "development": "NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", - "watch": "NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", "watch-poll": "yarn run watch -- --watch-poll", - "hot": "NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", + "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", "prod": "yarns run production", - "production": "NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" + "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" }, "dependencies": { "Leaflet.Geodesic": "git+https://git@github.com/henrythasler/Leaflet.Geodesic.git", diff --git a/public/assets/admin/css/vendor.css b/public/assets/admin/css/vendor.css index 36bf5cd2..535bbe1f 100644 --- a/public/assets/admin/css/vendor.css +++ b/public/assets/admin/css/vendor.css @@ -10838,6 +10838,246 @@ button.close { .select2-container--classic.select2-container--open .select2-dropdown { border-color: #5897fb; } +@charset "UTF-8"; + +/*! + * Pikaday + * Copyright © 2014 David Bushell | BSD & MIT license | http://dbushell.com/ + */ + +.pika-single { + z-index: 9999; + display: block; + position: relative; + color: #333; + background: #fff; + border: 1px solid #ccc; + border-bottom-color: #bbb; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +/* +clear child float (pika-lendar), using the famous micro clearfix hack +http://nicolasgallagher.com/micro-clearfix-hack/ +*/ +.pika-single:before, +.pika-single:after { + content: " "; + display: table; +} +.pika-single:after { clear: both } +.pika-single { *zoom: 1 } + +.pika-single.is-hidden { + display: none; +} + +.pika-single.is-bound { + position: absolute; + box-shadow: 0 5px 15px -5px rgba(0,0,0,.5); +} + +.pika-lendar { + float: left; + width: 240px; + margin: 8px; +} + +.pika-title { + position: relative; + text-align: center; +} + +.pika-label { + display: inline-block; + *display: inline; + position: relative; + z-index: 9999; + overflow: hidden; + margin: 0; + padding: 5px 3px; + font-size: 14px; + line-height: 20px; + font-weight: bold; + background-color: #fff; +} +.pika-title select { + cursor: pointer; + position: absolute; + z-index: 9998; + margin: 0; + left: 0; + top: 5px; + filter: alpha(opacity=0); + opacity: 0; +} + +.pika-prev, +.pika-next { + display: block; + cursor: pointer; + position: relative; + outline: none; + border: 0; + padding: 0; + width: 20px; + height: 30px; + /* hide text using text-indent trick, using width value (it's enough) */ + text-indent: 20px; + white-space: nowrap; + overflow: hidden; + background-color: transparent; + background-position: center center; + background-repeat: no-repeat; + background-size: 75% 75%; + opacity: .5; + *position: absolute; + *top: 0; +} + +.pika-prev:hover, +.pika-next:hover { + opacity: 1; +} + +.pika-prev, +.is-rtl .pika-next { + float: left; + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg=='); + *left: 0; +} + +.pika-next, +.is-rtl .pika-prev { + float: right; + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII='); + *right: 0; +} + +.pika-prev.is-disabled, +.pika-next.is-disabled { + cursor: default; + opacity: .2; +} + +.pika-select { + display: inline-block; + *display: inline; +} + +.pika-table { + width: 100%; + border-collapse: collapse; + border-spacing: 0; + border: 0; +} + +.pika-table th, +.pika-table td { + width: 14.285714285714286%; + padding: 0; +} + +.pika-table th { + color: #999; + font-size: 12px; + line-height: 25px; + font-weight: bold; + text-align: center; +} + +.pika-button { + cursor: pointer; + display: block; + box-sizing: border-box; + -moz-box-sizing: border-box; + outline: none; + border: 0; + margin: 0; + width: 100%; + padding: 5px; + color: #666; + font-size: 12px; + line-height: 15px; + text-align: right; + background: #f5f5f5; +} + +.pika-week { + font-size: 11px; + color: #999; +} + +.is-today .pika-button { + color: #33aaff; + font-weight: bold; +} + +.is-selected .pika-button, +.has-event .pika-button { + color: #fff; + font-weight: bold; + background: #33aaff; + box-shadow: inset 0 1px 3px #178fe5; + border-radius: 3px; +} + +.has-event .pika-button { + background: #005da9; + box-shadow: inset 0 1px 3px #0076c9; +} + +.is-disabled .pika-button, +.is-inrange .pika-button { + background: #D5E9F7; +} + +.is-startrange .pika-button { + color: #fff; + background: #6CB31D; + box-shadow: none; + border-radius: 3px; +} + +.is-endrange .pika-button { + color: #fff; + background: #33aaff; + box-shadow: none; + border-radius: 3px; +} + +.is-disabled .pika-button { + pointer-events: none; + cursor: default; + color: #999; + opacity: .3; +} + +.is-outside-current-month .pika-button { + color: #999; + opacity: .3; +} + +.is-selection-disabled { + pointer-events: none; + cursor: default; +} + +.pika-button:hover, +.pika-row.pick-whole-week:hover .pika-button { + color: #fff; + background: #ff8000; + box-shadow: none; + border-radius: 3px; +} + +/* styling for abbr */ +.pika-table abbr { + border-bottom: none; + cursor: help; +} + + /*! X-editable - v1.5.1 * In-place editing with Twitter Bootstrap, jQuery UI or pure jQuery * http://github.com/vitalets/x-editable diff --git a/public/assets/admin/js/app.js b/public/assets/admin/js/app.js index c6c8d461..49d4dce0 100644 --- a/public/assets/admin/js/app.js +++ b/public/assets/admin/js/app.js @@ -303,14 +303,14 @@ eval("// shim for using process in browser\nvar process = module.exports = {};\n /***/ "./resources/js/admin/app.js": /***/ (function(module, exports, __webpack_require__) { -eval("/**\n * Admin stuff needed\n */\n\n__webpack_require__(\"./resources/js/bootstrap.js\");\n\n// Import the mapping function\nwindow.phpvms.map = __webpack_require__(\"./resources/js/maps/index.js\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvYWRtaW4vYXBwLmpzP2ExNzUiXSwibmFtZXMiOlsicmVxdWlyZSIsIndpbmRvdyIsInBocHZtcyIsIm1hcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7QUFJQSxtQkFBQUEsQ0FBUSw2QkFBUjs7QUFFQTtBQUNBQyxPQUFPQyxNQUFQLENBQWNDLEdBQWQsR0FBb0IsbUJBQUFILENBQVEsOEJBQVIsQ0FBcEIiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvYWRtaW4vYXBwLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBZG1pbiBzdHVmZiBuZWVkZWRcbiAqL1xuXG5yZXF1aXJlKCcuLy4uL2Jvb3RzdHJhcCcpO1xuXG4vLyBJbXBvcnQgdGhlIG1hcHBpbmcgZnVuY3Rpb25cbndpbmRvdy5waHB2bXMubWFwID0gcmVxdWlyZSgnLi4vbWFwcy9pbmRleCcpO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcmVzb3VyY2VzL2pzL2FkbWluL2FwcC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/admin/app.js\n"); +eval("/**\r\n * Admin stuff needed\r\n */\n\n__webpack_require__(\"./resources/js/bootstrap.js\");\n\n// Import the mapping function\nwindow.phpvms.map = __webpack_require__(\"./resources/js/maps/index.js\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvYWRtaW4vYXBwLmpzP2ExNzUiXSwibmFtZXMiOlsicmVxdWlyZSIsIndpbmRvdyIsInBocHZtcyIsIm1hcCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7QUFJQSxtQkFBQUEsQ0FBUSw2QkFBUjs7QUFFQTtBQUNBQyxPQUFPQyxNQUFQLENBQWNDLEdBQWQsR0FBb0IsbUJBQUFILENBQVEsOEJBQVIsQ0FBcEIiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvYWRtaW4vYXBwLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEFkbWluIHN0dWZmIG5lZWRlZFxyXG4gKi9cclxuXHJcbnJlcXVpcmUoJy4vLi4vYm9vdHN0cmFwJyk7XHJcblxyXG4vLyBJbXBvcnQgdGhlIG1hcHBpbmcgZnVuY3Rpb25cclxud2luZG93LnBocHZtcy5tYXAgPSByZXF1aXJlKCcuLi9tYXBzL2luZGV4Jyk7XHJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9qcy9hZG1pbi9hcHAuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/admin/app.js\n"); /***/ }), /***/ "./resources/js/bootstrap.js": /***/ (function(module, exports, __webpack_require__) { -eval("/**\n * Bootstrap any Javascript libraries required\n */\n\nwindow.axios = __webpack_require__(\"./node_modules/axios/index.js\");\n\n/**\n * Container for phpVMS specific functions\n */\nwindow.phpvms = {};\n\n/**\n * Configure Axios with both the csrf token and the API key\n */\n\nvar base_url = document.head.querySelector('meta[name=\"base-url\"]');\nif (base_url) {\n window.axios.default.baseURL = base_url;\n}\n\nwindow.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\nvar token = document.head.querySelector('meta[name=\"csrf-token\"]');\n\nif (token) {\n window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;\n /*window.jquery.ajaxSetup({\n 'X-CSRF-TOKEN': token.content\n })*/\n} else {\n console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');\n}\n\nvar api_key = document.head.querySelector('meta[name=\"api-key\"]');\nif (api_key) {\n window.axios.defaults.headers.common['x-api-key'] = api_key.content;\n window.PHPVMS_USER_API_KEY = api_key.content;\n} else {\n window.PHPVMS_USER_API_KEY = false;\n console.error('API Key not found!');\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvYm9vdHN0cmFwLmpzPzBlNTgiXSwibmFtZXMiOlsid2luZG93IiwiYXhpb3MiLCJyZXF1aXJlIiwicGhwdm1zIiwiYmFzZV91cmwiLCJkb2N1bWVudCIsImhlYWQiLCJxdWVyeVNlbGVjdG9yIiwiZGVmYXVsdCIsImJhc2VVUkwiLCJkZWZhdWx0cyIsImhlYWRlcnMiLCJjb21tb24iLCJ0b2tlbiIsImNvbnRlbnQiLCJjb25zb2xlIiwiZXJyb3IiLCJhcGlfa2V5IiwiUEhQVk1TX1VTRVJfQVBJX0tFWSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7QUFJQUEsT0FBT0MsS0FBUCxHQUFlLG1CQUFBQyxDQUFRLCtCQUFSLENBQWY7O0FBRUE7OztBQUdBRixPQUFPRyxNQUFQLEdBQWdCLEVBQWhCOztBQUVBOzs7O0FBSUEsSUFBTUMsV0FBV0MsU0FBU0MsSUFBVCxDQUFjQyxhQUFkLENBQTRCLHVCQUE1QixDQUFqQjtBQUNBLElBQUdILFFBQUgsRUFBYTtBQUNYSixTQUFPQyxLQUFQLENBQWFPLE9BQWIsQ0FBcUJDLE9BQXJCLEdBQStCTCxRQUEvQjtBQUNEOztBQUVESixPQUFPQyxLQUFQLENBQWFTLFFBQWIsQ0FBc0JDLE9BQXRCLENBQThCQyxNQUE5QixDQUFxQyxrQkFBckMsSUFBMkQsZ0JBQTNEO0FBQ0EsSUFBTUMsUUFBUVIsU0FBU0MsSUFBVCxDQUFjQyxhQUFkLENBQTRCLHlCQUE1QixDQUFkOztBQUVBLElBQUlNLEtBQUosRUFBVztBQUNUYixTQUFPQyxLQUFQLENBQWFTLFFBQWIsQ0FBc0JDLE9BQXRCLENBQThCQyxNQUE5QixDQUFxQyxjQUFyQyxJQUF1REMsTUFBTUMsT0FBN0Q7QUFDQTs7O0FBR0QsQ0FMRCxNQUtPO0FBQ0xDLFVBQVFDLEtBQVIsQ0FBYyx1RUFBZDtBQUNEOztBQUVELElBQU1DLFVBQVVaLFNBQVNDLElBQVQsQ0FBY0MsYUFBZCxDQUE0QixzQkFBNUIsQ0FBaEI7QUFDQSxJQUFJVSxPQUFKLEVBQWE7QUFDWGpCLFNBQU9DLEtBQVAsQ0FBYVMsUUFBYixDQUFzQkMsT0FBdEIsQ0FBOEJDLE1BQTlCLENBQXFDLFdBQXJDLElBQW9ESyxRQUFRSCxPQUE1RDtBQUNBZCxTQUFPa0IsbUJBQVAsR0FBNkJELFFBQVFILE9BQXJDO0FBQ0QsQ0FIRCxNQUdPO0FBQ0xkLFNBQU9rQixtQkFBUCxHQUE2QixLQUE3QjtBQUNBSCxVQUFRQyxLQUFSLENBQWMsb0JBQWQ7QUFDRCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9ib290c3RyYXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJvb3RzdHJhcCBhbnkgSmF2YXNjcmlwdCBsaWJyYXJpZXMgcmVxdWlyZWRcbiAqL1xuXG53aW5kb3cuYXhpb3MgPSByZXF1aXJlKCdheGlvcycpO1xuXG4vKipcbiAqIENvbnRhaW5lciBmb3IgcGhwVk1TIHNwZWNpZmljIGZ1bmN0aW9uc1xuICovXG53aW5kb3cucGhwdm1zID0ge307XG5cbi8qKlxuICogQ29uZmlndXJlIEF4aW9zIHdpdGggYm90aCB0aGUgY3NyZiB0b2tlbiBhbmQgdGhlIEFQSSBrZXlcbiAqL1xuXG5jb25zdCBiYXNlX3VybCA9IGRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3RvcignbWV0YVtuYW1lPVwiYmFzZS11cmxcIl0nKTtcbmlmKGJhc2VfdXJsKSB7XG4gIHdpbmRvdy5heGlvcy5kZWZhdWx0LmJhc2VVUkwgPSBiYXNlX3VybDtcbn1cblxud2luZG93LmF4aW9zLmRlZmF1bHRzLmhlYWRlcnMuY29tbW9uWydYLVJlcXVlc3RlZC1XaXRoJ10gPSAnWE1MSHR0cFJlcXVlc3QnO1xuY29uc3QgdG9rZW4gPSBkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT1cImNzcmYtdG9rZW5cIl0nKTtcblxuaWYgKHRva2VuKSB7XG4gIHdpbmRvdy5heGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsnWC1DU1JGLVRPS0VOJ10gPSB0b2tlbi5jb250ZW50XG4gIC8qd2luZG93LmpxdWVyeS5hamF4U2V0dXAoe1xuICAgICdYLUNTUkYtVE9LRU4nOiB0b2tlbi5jb250ZW50XG4gIH0pKi9cbn0gZWxzZSB7XG4gIGNvbnNvbGUuZXJyb3IoJ0NTUkYgdG9rZW4gbm90IGZvdW5kOiBodHRwczovL2xhcmF2ZWwuY29tL2RvY3MvY3NyZiNjc3JmLXgtY3NyZi10b2tlbicpXG59XG5cbmNvbnN0IGFwaV9rZXkgPSBkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT1cImFwaS1rZXlcIl0nKTtcbmlmIChhcGlfa2V5KSB7XG4gIHdpbmRvdy5heGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsneC1hcGkta2V5J10gPSBhcGlfa2V5LmNvbnRlbnQ7XG4gIHdpbmRvdy5QSFBWTVNfVVNFUl9BUElfS0VZID0gYXBpX2tleS5jb250ZW50XG59IGVsc2Uge1xuICB3aW5kb3cuUEhQVk1TX1VTRVJfQVBJX0tFWSA9IGZhbHNlO1xuICBjb25zb2xlLmVycm9yKCdBUEkgS2V5IG5vdCBmb3VuZCEnKVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcmVzb3VyY2VzL2pzL2Jvb3RzdHJhcC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/bootstrap.js\n"); +eval("/**\r\n * Bootstrap any Javascript libraries required\r\n */\n\nwindow.axios = __webpack_require__(\"./node_modules/axios/index.js\");\n\n/**\r\n * Container for phpVMS specific functions\r\n */\nwindow.phpvms = {};\n\n/**\r\n * Configure Axios with both the csrf token and the API key\r\n */\n\nvar base_url = document.head.querySelector('meta[name=\"base-url\"]');\nif (base_url) {\n window.axios.default.baseURL = base_url;\n}\n\nwindow.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\nvar token = document.head.querySelector('meta[name=\"csrf-token\"]');\n\nif (token) {\n window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;\n /*window.jquery.ajaxSetup({\r\n 'X-CSRF-TOKEN': token.content\r\n })*/\n} else {\n console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');\n}\n\nvar api_key = document.head.querySelector('meta[name=\"api-key\"]');\nif (api_key) {\n window.axios.defaults.headers.common['x-api-key'] = api_key.content;\n window.PHPVMS_USER_API_KEY = api_key.content;\n} else {\n window.PHPVMS_USER_API_KEY = false;\n console.error('API Key not found!');\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvYm9vdHN0cmFwLmpzPzBlNTgiXSwibmFtZXMiOlsid2luZG93IiwiYXhpb3MiLCJyZXF1aXJlIiwicGhwdm1zIiwiYmFzZV91cmwiLCJkb2N1bWVudCIsImhlYWQiLCJxdWVyeVNlbGVjdG9yIiwiZGVmYXVsdCIsImJhc2VVUkwiLCJkZWZhdWx0cyIsImhlYWRlcnMiLCJjb21tb24iLCJ0b2tlbiIsImNvbnRlbnQiLCJjb25zb2xlIiwiZXJyb3IiLCJhcGlfa2V5IiwiUEhQVk1TX1VTRVJfQVBJX0tFWSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7QUFJQUEsT0FBT0MsS0FBUCxHQUFlLG1CQUFBQyxDQUFRLCtCQUFSLENBQWY7O0FBRUE7OztBQUdBRixPQUFPRyxNQUFQLEdBQWdCLEVBQWhCOztBQUVBOzs7O0FBSUEsSUFBTUMsV0FBV0MsU0FBU0MsSUFBVCxDQUFjQyxhQUFkLENBQTRCLHVCQUE1QixDQUFqQjtBQUNBLElBQUdILFFBQUgsRUFBYTtBQUNYSixTQUFPQyxLQUFQLENBQWFPLE9BQWIsQ0FBcUJDLE9BQXJCLEdBQStCTCxRQUEvQjtBQUNEOztBQUVESixPQUFPQyxLQUFQLENBQWFTLFFBQWIsQ0FBc0JDLE9BQXRCLENBQThCQyxNQUE5QixDQUFxQyxrQkFBckMsSUFBMkQsZ0JBQTNEO0FBQ0EsSUFBTUMsUUFBUVIsU0FBU0MsSUFBVCxDQUFjQyxhQUFkLENBQTRCLHlCQUE1QixDQUFkOztBQUVBLElBQUlNLEtBQUosRUFBVztBQUNUYixTQUFPQyxLQUFQLENBQWFTLFFBQWIsQ0FBc0JDLE9BQXRCLENBQThCQyxNQUE5QixDQUFxQyxjQUFyQyxJQUF1REMsTUFBTUMsT0FBN0Q7QUFDQTs7O0FBR0QsQ0FMRCxNQUtPO0FBQ0xDLFVBQVFDLEtBQVIsQ0FBYyx1RUFBZDtBQUNEOztBQUVELElBQU1DLFVBQVVaLFNBQVNDLElBQVQsQ0FBY0MsYUFBZCxDQUE0QixzQkFBNUIsQ0FBaEI7QUFDQSxJQUFJVSxPQUFKLEVBQWE7QUFDWGpCLFNBQU9DLEtBQVAsQ0FBYVMsUUFBYixDQUFzQkMsT0FBdEIsQ0FBOEJDLE1BQTlCLENBQXFDLFdBQXJDLElBQW9ESyxRQUFRSCxPQUE1RDtBQUNBZCxTQUFPa0IsbUJBQVAsR0FBNkJELFFBQVFILE9BQXJDO0FBQ0QsQ0FIRCxNQUdPO0FBQ0xkLFNBQU9rQixtQkFBUCxHQUE2QixLQUE3QjtBQUNBSCxVQUFRQyxLQUFSLENBQWMsb0JBQWQ7QUFDRCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9ib290c3RyYXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQm9vdHN0cmFwIGFueSBKYXZhc2NyaXB0IGxpYnJhcmllcyByZXF1aXJlZFxyXG4gKi9cclxuXHJcbndpbmRvdy5heGlvcyA9IHJlcXVpcmUoJ2F4aW9zJyk7XHJcblxyXG4vKipcclxuICogQ29udGFpbmVyIGZvciBwaHBWTVMgc3BlY2lmaWMgZnVuY3Rpb25zXHJcbiAqL1xyXG53aW5kb3cucGhwdm1zID0ge307XHJcblxyXG4vKipcclxuICogQ29uZmlndXJlIEF4aW9zIHdpdGggYm90aCB0aGUgY3NyZiB0b2tlbiBhbmQgdGhlIEFQSSBrZXlcclxuICovXHJcblxyXG5jb25zdCBiYXNlX3VybCA9IGRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3RvcignbWV0YVtuYW1lPVwiYmFzZS11cmxcIl0nKTtcclxuaWYoYmFzZV91cmwpIHtcclxuICB3aW5kb3cuYXhpb3MuZGVmYXVsdC5iYXNlVVJMID0gYmFzZV91cmw7XHJcbn1cclxuXHJcbndpbmRvdy5heGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsnWC1SZXF1ZXN0ZWQtV2l0aCddID0gJ1hNTEh0dHBSZXF1ZXN0JztcclxuY29uc3QgdG9rZW4gPSBkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT1cImNzcmYtdG9rZW5cIl0nKTtcclxuXHJcbmlmICh0b2tlbikge1xyXG4gIHdpbmRvdy5heGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsnWC1DU1JGLVRPS0VOJ10gPSB0b2tlbi5jb250ZW50XHJcbiAgLyp3aW5kb3cuanF1ZXJ5LmFqYXhTZXR1cCh7XHJcbiAgICAnWC1DU1JGLVRPS0VOJzogdG9rZW4uY29udGVudFxyXG4gIH0pKi9cclxufSBlbHNlIHtcclxuICBjb25zb2xlLmVycm9yKCdDU1JGIHRva2VuIG5vdCBmb3VuZDogaHR0cHM6Ly9sYXJhdmVsLmNvbS9kb2NzL2NzcmYjY3NyZi14LWNzcmYtdG9rZW4nKVxyXG59XHJcblxyXG5jb25zdCBhcGlfa2V5ID0gZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9XCJhcGkta2V5XCJdJyk7XHJcbmlmIChhcGlfa2V5KSB7XHJcbiAgd2luZG93LmF4aW9zLmRlZmF1bHRzLmhlYWRlcnMuY29tbW9uWyd4LWFwaS1rZXknXSA9IGFwaV9rZXkuY29udGVudDtcclxuICB3aW5kb3cuUEhQVk1TX1VTRVJfQVBJX0tFWSA9IGFwaV9rZXkuY29udGVudFxyXG59IGVsc2Uge1xyXG4gIHdpbmRvdy5QSFBWTVNfVVNFUl9BUElfS0VZID0gZmFsc2U7XHJcbiAgY29uc29sZS5lcnJvcignQVBJIEtleSBub3QgZm91bmQhJylcclxufVxyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9yZXNvdXJjZXMvanMvYm9vdHN0cmFwLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/bootstrap.js\n"); /***/ }), @@ -318,7 +318,7 @@ eval("/**\n * Bootstrap any Javascript libraries required\n */\n\nwindow.axios = /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpack_require__(\"./resources/js/maps/base_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(\"./resources/js/maps/helpers.js\");\n\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n\n\n\n/**\n * Render a map with the airspace, etc around a given set of coords\n * e.g, the airport map\n * @param opts\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n opts = Object.assign({\n render_elem: 'map',\n overlay_elem: '',\n lat: 0,\n lon: 0,\n zoom: 12,\n layers: [],\n set_marker: true,\n marker_popup: '',\n\n // Passed from the config/maps.php file\n metar_wms: {\n url: '',\n params: {}\n }\n }, opts);\n\n var map = Object(__WEBPACK_IMPORTED_MODULE_0__base_map__[\"a\" /* default */])(opts);\n var coords = [opts.lat, opts.lon];\n console.log('Applying coords', coords);\n\n map.setView(coords, opts.zoom);\n if (opts.set_marker === true) {\n leaflet.marker(coords).addTo(map).bindPopup(opts.marker_popup);\n }\n\n if (opts.metar_wms.url !== '') {\n Object(__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* addWMSLayer */])(map, opts.metar_wms);\n }\n\n return map;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9haXJzcGFjZV9tYXAuanM/NGZiMCJdLCJuYW1lcyI6WyJsZWFmbGV0IiwicmVxdWlyZSIsIm9wdHMiLCJPYmplY3QiLCJhc3NpZ24iLCJyZW5kZXJfZWxlbSIsIm92ZXJsYXlfZWxlbSIsImxhdCIsImxvbiIsInpvb20iLCJsYXllcnMiLCJzZXRfbWFya2VyIiwibWFya2VyX3BvcHVwIiwibWV0YXJfd21zIiwidXJsIiwicGFyYW1zIiwibWFwIiwiZHJhd19iYXNlX21hcCIsImNvb3JkcyIsImNvbnNvbGUiLCJsb2ciLCJzZXRWaWV3IiwibWFya2VyIiwiYWRkVG8iLCJiaW5kUG9wdXAiLCJhZGRXTVNMYXllciJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsSUFBTUEsVUFBVSxtQkFBQUMsQ0FBUSw0Q0FBUixDQUFoQjs7QUFFQTtBQUNBOztBQUVBOzs7OztBQUtBLHlEQUFlLFVBQUNDLElBQUQsRUFBVTtBQUN2QkEsU0FBT0MsT0FBT0MsTUFBUCxDQUFjO0FBQ25CQyxpQkFBYSxLQURNO0FBRW5CQyxrQkFBYyxFQUZLO0FBR25CQyxTQUFLLENBSGM7QUFJbkJDLFNBQUssQ0FKYztBQUtuQkMsVUFBTSxFQUxhO0FBTW5CQyxZQUFRLEVBTlc7QUFPbkJDLGdCQUFZLElBUE87QUFRbkJDLGtCQUFjLEVBUks7O0FBVW5CO0FBQ0FDLGVBQVc7QUFDUEMsV0FBSyxFQURFO0FBRVBDLGNBQVE7QUFGRDtBQVhRLEdBQWQsRUFlSmIsSUFmSSxDQUFQOztBQWlCQSxNQUFJYyxNQUFNLGtFQUFBQyxDQUFjZixJQUFkLENBQVY7QUFDQSxNQUFNZ0IsU0FBUyxDQUFDaEIsS0FBS0ssR0FBTixFQUFXTCxLQUFLTSxHQUFoQixDQUFmO0FBQ0FXLFVBQVFDLEdBQVIsQ0FBWSxpQkFBWixFQUErQkYsTUFBL0I7O0FBRUFGLE1BQUlLLE9BQUosQ0FBWUgsTUFBWixFQUFvQmhCLEtBQUtPLElBQXpCO0FBQ0EsTUFBSVAsS0FBS1MsVUFBTCxLQUFvQixJQUF4QixFQUE4QjtBQUM1QlgsWUFBUXNCLE1BQVIsQ0FBZUosTUFBZixFQUF1QkssS0FBdkIsQ0FBNkJQLEdBQTdCLEVBQWtDUSxTQUFsQyxDQUE0Q3RCLEtBQUtVLFlBQWpEO0FBQ0Q7O0FBRUQsTUFBR1YsS0FBS1csU0FBTCxDQUFlQyxHQUFmLEtBQXVCLEVBQTFCLEVBQThCO0FBQzFCVyxJQUFBLHFFQUFBQSxDQUFZVCxHQUFaLEVBQWlCZCxLQUFLVyxTQUF0QjtBQUNIOztBQUVELFNBQU9HLEdBQVA7QUFDRCxDQWhDRCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9tYXBzL2FpcnNwYWNlX21hcC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuY29uc3QgbGVhZmxldCA9IHJlcXVpcmUoJ2xlYWZsZXQnKTtcblxuaW1wb3J0IGRyYXdfYmFzZV9tYXAgZnJvbSAnLi9iYXNlX21hcCdcbmltcG9ydCB7IGFkZFdNU0xheWVyIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuLyoqXG4gKiBSZW5kZXIgYSBtYXAgd2l0aCB0aGUgYWlyc3BhY2UsIGV0YyBhcm91bmQgYSBnaXZlbiBzZXQgb2YgY29vcmRzXG4gKiBlLmcsIHRoZSBhaXJwb3J0IG1hcFxuICogQHBhcmFtIG9wdHNcbiAqL1xuZXhwb3J0IGRlZmF1bHQgKG9wdHMpID0+IHtcbiAgb3B0cyA9IE9iamVjdC5hc3NpZ24oe1xuICAgIHJlbmRlcl9lbGVtOiAnbWFwJyxcbiAgICBvdmVybGF5X2VsZW06ICcnLFxuICAgIGxhdDogMCxcbiAgICBsb246IDAsXG4gICAgem9vbTogMTIsXG4gICAgbGF5ZXJzOiBbXSxcbiAgICBzZXRfbWFya2VyOiB0cnVlLFxuICAgIG1hcmtlcl9wb3B1cDogJycsXG5cbiAgICAvLyBQYXNzZWQgZnJvbSB0aGUgY29uZmlnL21hcHMucGhwIGZpbGVcbiAgICBtZXRhcl93bXM6IHtcbiAgICAgICAgdXJsOiAnJyxcbiAgICAgICAgcGFyYW1zOiB7fVxuICAgIH0sXG4gIH0sIG9wdHMpO1xuXG4gIGxldCBtYXAgPSBkcmF3X2Jhc2VfbWFwKG9wdHMpO1xuICBjb25zdCBjb29yZHMgPSBbb3B0cy5sYXQsIG9wdHMubG9uXTtcbiAgY29uc29sZS5sb2coJ0FwcGx5aW5nIGNvb3JkcycsIGNvb3Jkcyk7XG5cbiAgbWFwLnNldFZpZXcoY29vcmRzLCBvcHRzLnpvb20pO1xuICBpZiAob3B0cy5zZXRfbWFya2VyID09PSB0cnVlKSB7XG4gICAgbGVhZmxldC5tYXJrZXIoY29vcmRzKS5hZGRUbyhtYXApLmJpbmRQb3B1cChvcHRzLm1hcmtlcl9wb3B1cCk7XG4gIH1cblxuICBpZihvcHRzLm1ldGFyX3dtcy51cmwgIT09ICcnKSB7XG4gICAgICBhZGRXTVNMYXllcihtYXAsIG9wdHMubWV0YXJfd21zKTtcbiAgfVxuXG4gIHJldHVybiBtYXA7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcmVzb3VyY2VzL2pzL21hcHMvYWlyc3BhY2VfbWFwLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/maps/airspace_map.js\n"); +eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpack_require__(\"./resources/js/maps/base_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(\"./resources/js/maps/helpers.js\");\n\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n\n\n\n/**\r\n * Render a map with the airspace, etc around a given set of coords\r\n * e.g, the airport map\r\n * @param opts\r\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n opts = Object.assign({\n render_elem: 'map',\n overlay_elem: '',\n lat: 0,\n lon: 0,\n zoom: 12,\n layers: [],\n set_marker: true,\n marker_popup: '',\n\n // Passed from the config/maps.php file\n metar_wms: {\n url: '',\n params: {}\n }\n }, opts);\n\n var map = Object(__WEBPACK_IMPORTED_MODULE_0__base_map__[\"a\" /* default */])(opts);\n var coords = [opts.lat, opts.lon];\n console.log('Applying coords', coords);\n\n map.setView(coords, opts.zoom);\n if (opts.set_marker === true) {\n leaflet.marker(coords).addTo(map).bindPopup(opts.marker_popup);\n }\n\n if (opts.metar_wms.url !== '') {\n Object(__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* addWMSLayer */])(map, opts.metar_wms);\n }\n\n return map;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9haXJzcGFjZV9tYXAuanM/NGZiMCJdLCJuYW1lcyI6WyJsZWFmbGV0IiwicmVxdWlyZSIsIm9wdHMiLCJPYmplY3QiLCJhc3NpZ24iLCJyZW5kZXJfZWxlbSIsIm92ZXJsYXlfZWxlbSIsImxhdCIsImxvbiIsInpvb20iLCJsYXllcnMiLCJzZXRfbWFya2VyIiwibWFya2VyX3BvcHVwIiwibWV0YXJfd21zIiwidXJsIiwicGFyYW1zIiwibWFwIiwiZHJhd19iYXNlX21hcCIsImNvb3JkcyIsImNvbnNvbGUiLCJsb2ciLCJzZXRWaWV3IiwibWFya2VyIiwiYWRkVG8iLCJiaW5kUG9wdXAiLCJhZGRXTVNMYXllciJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsSUFBTUEsVUFBVSxtQkFBQUMsQ0FBUSw0Q0FBUixDQUFoQjs7QUFFQTtBQUNBOztBQUVBOzs7OztBQUtBLHlEQUFlLFVBQUNDLElBQUQsRUFBVTtBQUN2QkEsU0FBT0MsT0FBT0MsTUFBUCxDQUFjO0FBQ25CQyxpQkFBYSxLQURNO0FBRW5CQyxrQkFBYyxFQUZLO0FBR25CQyxTQUFLLENBSGM7QUFJbkJDLFNBQUssQ0FKYztBQUtuQkMsVUFBTSxFQUxhO0FBTW5CQyxZQUFRLEVBTlc7QUFPbkJDLGdCQUFZLElBUE87QUFRbkJDLGtCQUFjLEVBUks7O0FBVW5CO0FBQ0FDLGVBQVc7QUFDUEMsV0FBSyxFQURFO0FBRVBDLGNBQVE7QUFGRDtBQVhRLEdBQWQsRUFlSmIsSUFmSSxDQUFQOztBQWlCQSxNQUFJYyxNQUFNLGtFQUFBQyxDQUFjZixJQUFkLENBQVY7QUFDQSxNQUFNZ0IsU0FBUyxDQUFDaEIsS0FBS0ssR0FBTixFQUFXTCxLQUFLTSxHQUFoQixDQUFmO0FBQ0FXLFVBQVFDLEdBQVIsQ0FBWSxpQkFBWixFQUErQkYsTUFBL0I7O0FBRUFGLE1BQUlLLE9BQUosQ0FBWUgsTUFBWixFQUFvQmhCLEtBQUtPLElBQXpCO0FBQ0EsTUFBSVAsS0FBS1MsVUFBTCxLQUFvQixJQUF4QixFQUE4QjtBQUM1QlgsWUFBUXNCLE1BQVIsQ0FBZUosTUFBZixFQUF1QkssS0FBdkIsQ0FBNkJQLEdBQTdCLEVBQWtDUSxTQUFsQyxDQUE0Q3RCLEtBQUtVLFlBQWpEO0FBQ0Q7O0FBRUQsTUFBR1YsS0FBS1csU0FBTCxDQUFlQyxHQUFmLEtBQXVCLEVBQTFCLEVBQThCO0FBQzFCVyxJQUFBLHFFQUFBQSxDQUFZVCxHQUFaLEVBQWlCZCxLQUFLVyxTQUF0QjtBQUNIOztBQUVELFNBQU9HLEdBQVA7QUFDRCxDQWhDRCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9tYXBzL2FpcnNwYWNlX21hcC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5jb25zdCBsZWFmbGV0ID0gcmVxdWlyZSgnbGVhZmxldCcpO1xyXG5cclxuaW1wb3J0IGRyYXdfYmFzZV9tYXAgZnJvbSAnLi9iYXNlX21hcCdcclxuaW1wb3J0IHsgYWRkV01TTGF5ZXIgfSBmcm9tICcuL2hlbHBlcnMnO1xyXG5cclxuLyoqXHJcbiAqIFJlbmRlciBhIG1hcCB3aXRoIHRoZSBhaXJzcGFjZSwgZXRjIGFyb3VuZCBhIGdpdmVuIHNldCBvZiBjb29yZHNcclxuICogZS5nLCB0aGUgYWlycG9ydCBtYXBcclxuICogQHBhcmFtIG9wdHNcclxuICovXHJcbmV4cG9ydCBkZWZhdWx0IChvcHRzKSA9PiB7XHJcbiAgb3B0cyA9IE9iamVjdC5hc3NpZ24oe1xyXG4gICAgcmVuZGVyX2VsZW06ICdtYXAnLFxyXG4gICAgb3ZlcmxheV9lbGVtOiAnJyxcclxuICAgIGxhdDogMCxcclxuICAgIGxvbjogMCxcclxuICAgIHpvb206IDEyLFxyXG4gICAgbGF5ZXJzOiBbXSxcclxuICAgIHNldF9tYXJrZXI6IHRydWUsXHJcbiAgICBtYXJrZXJfcG9wdXA6ICcnLFxyXG5cclxuICAgIC8vIFBhc3NlZCBmcm9tIHRoZSBjb25maWcvbWFwcy5waHAgZmlsZVxyXG4gICAgbWV0YXJfd21zOiB7XHJcbiAgICAgICAgdXJsOiAnJyxcclxuICAgICAgICBwYXJhbXM6IHt9XHJcbiAgICB9LFxyXG4gIH0sIG9wdHMpO1xyXG5cclxuICBsZXQgbWFwID0gZHJhd19iYXNlX21hcChvcHRzKTtcclxuICBjb25zdCBjb29yZHMgPSBbb3B0cy5sYXQsIG9wdHMubG9uXTtcclxuICBjb25zb2xlLmxvZygnQXBwbHlpbmcgY29vcmRzJywgY29vcmRzKTtcclxuXHJcbiAgbWFwLnNldFZpZXcoY29vcmRzLCBvcHRzLnpvb20pO1xyXG4gIGlmIChvcHRzLnNldF9tYXJrZXIgPT09IHRydWUpIHtcclxuICAgIGxlYWZsZXQubWFya2VyKGNvb3JkcykuYWRkVG8obWFwKS5iaW5kUG9wdXAob3B0cy5tYXJrZXJfcG9wdXApO1xyXG4gIH1cclxuXHJcbiAgaWYob3B0cy5tZXRhcl93bXMudXJsICE9PSAnJykge1xyXG4gICAgICBhZGRXTVNMYXllcihtYXAsIG9wdHMubWV0YXJfd21zKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBtYXA7XHJcbn07XHJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9qcy9tYXBzL2FpcnNwYWNlX21hcC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/maps/airspace_map.js\n"); /***/ }), @@ -326,7 +326,7 @@ eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpa /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n\n opts = Object.assign({\n render_elem: 'map',\n center: [29.98139, -95.33374],\n zoom: 5,\n maxZoom: 10,\n layers: [],\n set_marker: false\n }, opts);\n\n var feature_groups = [];\n /*var openaip_airspace_labels = new leaflet.TileLayer.WMS(\n \"http://{s}.tile.maps.openaip.net/geowebcache/service/wms\", {\n maxZoom: 14,\n minZoom: 12,\n layers: 'openaip_approved_airspaces_labels',\n tileSize: 1024,\n detectRetina: true,\n subdomains: '12',\n format: 'image/png',\n transparent: true\n });\n openaip_airspace_labels.addTo(map);*/\n\n var opencyclemap_phys_osm = new leaflet.TileLayer('http://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey=f09a38fa87514de4890fc96e7fe8ecb1', {\n maxZoom: 14,\n minZoom: 4,\n format: 'image/png',\n transparent: true\n });\n\n feature_groups.push(opencyclemap_phys_osm);\n\n /*const openaip_cached_basemap = new leaflet.TileLayer(\"http://{s}.tile.maps.openaip.net/geowebcache/service/tms/1.0.0/openaip_basemap@EPSG%3A900913@png/{z}/{x}/{y}.png\", {\n maxZoom: 14,\n minZoom: 4,\n tms: true,\n detectRetina: true,\n subdomains: '12',\n format: 'image/png',\n transparent: true\n });\n feature_groups.push(openaip_cached_basemap);\n */\n\n var openaip_basemap_phys_osm = leaflet.featureGroup(feature_groups);\n\n var map = leaflet.map('map', {\n layers: [openaip_basemap_phys_osm],\n center: opts.center,\n zoom: opts.zoom,\n scrollWheelZoom: false\n });\n\n var attrib = leaflet.control.attribution({ position: 'bottomleft' });\n attrib.addAttribution('Thunderforest');\n attrib.addAttribution('openAIP');\n attrib.addAttribution('OpenStreetMap contributors');\n attrib.addAttribution('OpenWeatherMap');\n\n attrib.addTo(map);\n\n return map;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9iYXNlX21hcC5qcz80MzA3Il0sIm5hbWVzIjpbImxlYWZsZXQiLCJyZXF1aXJlIiwib3B0cyIsIk9iamVjdCIsImFzc2lnbiIsInJlbmRlcl9lbGVtIiwiY2VudGVyIiwiem9vbSIsIm1heFpvb20iLCJsYXllcnMiLCJzZXRfbWFya2VyIiwiZmVhdHVyZV9ncm91cHMiLCJvcGVuY3ljbGVtYXBfcGh5c19vc20iLCJUaWxlTGF5ZXIiLCJtaW5ab29tIiwiZm9ybWF0IiwidHJhbnNwYXJlbnQiLCJwdXNoIiwib3BlbmFpcF9iYXNlbWFwX3BoeXNfb3NtIiwiZmVhdHVyZUdyb3VwIiwibWFwIiwic2Nyb2xsV2hlZWxab29tIiwiYXR0cmliIiwiY29udHJvbCIsImF0dHJpYnV0aW9uIiwicG9zaXRpb24iLCJhZGRBdHRyaWJ1dGlvbiIsImFkZFRvIl0sIm1hcHBpbmdzIjoiO0FBQ0EsSUFBTUEsVUFBVSxtQkFBQUMsQ0FBUSw0Q0FBUixDQUFoQjs7QUFFQSx5REFBZSxVQUFDQyxJQUFELEVBQVU7O0FBRXZCQSxTQUFPQyxPQUFPQyxNQUFQLENBQWM7QUFDbkJDLGlCQUFhLEtBRE07QUFFbkJDLFlBQVEsQ0FBQyxRQUFELEVBQVcsQ0FBQyxRQUFaLENBRlc7QUFHbkJDLFVBQU0sQ0FIYTtBQUluQkMsYUFBUyxFQUpVO0FBS25CQyxZQUFRLEVBTFc7QUFNbkJDLGdCQUFZO0FBTk8sR0FBZCxFQU9KUixJQVBJLENBQVA7O0FBU0EsTUFBSVMsaUJBQWlCLEVBQXJCO0FBQ0E7Ozs7Ozs7Ozs7Ozs7QUFjQSxNQUFNQyx3QkFBd0IsSUFBSVosUUFBUWEsU0FBWixDQUM1QixxR0FENEIsRUFDMkU7QUFDckdMLGFBQVMsRUFENEY7QUFFckdNLGFBQVMsQ0FGNEY7QUFHckdDLFlBQVEsV0FINkY7QUFJckdDLGlCQUFhO0FBSndGLEdBRDNFLENBQTlCOztBQVFBTCxpQkFBZU0sSUFBZixDQUFvQkwscUJBQXBCOztBQUVBOzs7Ozs7Ozs7Ozs7QUFhQSxNQUFNTSwyQkFBMkJsQixRQUFRbUIsWUFBUixDQUFxQlIsY0FBckIsQ0FBakM7O0FBRUEsTUFBSVMsTUFBTXBCLFFBQVFvQixHQUFSLENBQVksS0FBWixFQUFtQjtBQUMzQlgsWUFBUSxDQUFDUyx3QkFBRCxDQURtQjtBQUUzQlosWUFBUUosS0FBS0ksTUFGYztBQUczQkMsVUFBTUwsS0FBS0ssSUFIZ0I7QUFJM0JjLHFCQUFpQjtBQUpVLEdBQW5CLENBQVY7O0FBT0EsTUFBTUMsU0FBU3RCLFFBQVF1QixPQUFSLENBQWdCQyxXQUFoQixDQUE0QixFQUFDQyxVQUFVLFlBQVgsRUFBNUIsQ0FBZjtBQUNBSCxTQUFPSSxjQUFQLENBQXNCLG9GQUF0QjtBQUNBSixTQUFPSSxjQUFQLENBQXNCLHdFQUF0QjtBQUNBSixTQUFPSSxjQUFQLENBQXNCLDJHQUF0QjtBQUNBSixTQUFPSSxjQUFQLENBQXNCLHNGQUF0Qjs7QUFFQUosU0FBT0ssS0FBUCxDQUFhUCxHQUFiOztBQUVBLFNBQU9BLEdBQVA7QUFDRCxDQW5FRCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9tYXBzL2Jhc2VfbWFwLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5jb25zdCBsZWFmbGV0ID0gcmVxdWlyZSgnbGVhZmxldCcpO1xuXG5leHBvcnQgZGVmYXVsdCAob3B0cykgPT4ge1xuXG4gIG9wdHMgPSBPYmplY3QuYXNzaWduKHtcbiAgICByZW5kZXJfZWxlbTogJ21hcCcsXG4gICAgY2VudGVyOiBbMjkuOTgxMzksIC05NS4zMzM3NF0sXG4gICAgem9vbTogNSxcbiAgICBtYXhab29tOiAxMCxcbiAgICBsYXllcnM6IFtdLFxuICAgIHNldF9tYXJrZXI6IGZhbHNlLFxuICB9LCBvcHRzKTtcblxuICBsZXQgZmVhdHVyZV9ncm91cHMgPSBbXTtcbiAgLyp2YXIgb3BlbmFpcF9haXJzcGFjZV9sYWJlbHMgPSBuZXcgbGVhZmxldC5UaWxlTGF5ZXIuV01TKFxuICAgICAgXCJodHRwOi8ve3N9LnRpbGUubWFwcy5vcGVuYWlwLm5ldC9nZW93ZWJjYWNoZS9zZXJ2aWNlL3dtc1wiLCB7XG4gICAgICAgICAgbWF4Wm9vbTogMTQsXG4gICAgICAgICAgbWluWm9vbTogMTIsXG4gICAgICAgICAgbGF5ZXJzOiAnb3BlbmFpcF9hcHByb3ZlZF9haXJzcGFjZXNfbGFiZWxzJyxcbiAgICAgICAgICB0aWxlU2l6ZTogMTAyNCxcbiAgICAgICAgICBkZXRlY3RSZXRpbmE6IHRydWUsXG4gICAgICAgICAgc3ViZG9tYWluczogJzEyJyxcbiAgICAgICAgICBmb3JtYXQ6ICdpbWFnZS9wbmcnLFxuICAgICAgICAgIHRyYW5zcGFyZW50OiB0cnVlXG4gICAgICB9KTtcblxuICBvcGVuYWlwX2FpcnNwYWNlX2xhYmVscy5hZGRUbyhtYXApOyovXG5cbiAgY29uc3Qgb3BlbmN5Y2xlbWFwX3BoeXNfb3NtID0gbmV3IGxlYWZsZXQuVGlsZUxheWVyKFxuICAgICdodHRwOi8ve3N9LnRpbGUudGh1bmRlcmZvcmVzdC5jb20vbGFuZHNjYXBlL3t6fS97eH0ve3l9LnBuZz9hcGlrZXk9ZjA5YTM4ZmE4NzUxNGRlNDg5MGZjOTZlN2ZlOGVjYjEnLCB7XG4gICAgICBtYXhab29tOiAxNCxcbiAgICAgIG1pblpvb206IDQsXG4gICAgICBmb3JtYXQ6ICdpbWFnZS9wbmcnLFxuICAgICAgdHJhbnNwYXJlbnQ6IHRydWVcbiAgICB9KVxuXG4gIGZlYXR1cmVfZ3JvdXBzLnB1c2gob3BlbmN5Y2xlbWFwX3BoeXNfb3NtKVxuXG4gIC8qY29uc3Qgb3BlbmFpcF9jYWNoZWRfYmFzZW1hcCA9IG5ldyBsZWFmbGV0LlRpbGVMYXllcihcImh0dHA6Ly97c30udGlsZS5tYXBzLm9wZW5haXAubmV0L2dlb3dlYmNhY2hlL3NlcnZpY2UvdG1zLzEuMC4wL29wZW5haXBfYmFzZW1hcEBFUFNHJTNBOTAwOTEzQHBuZy97en0ve3h9L3t5fS5wbmdcIiwge1xuICAgICAgbWF4Wm9vbTogMTQsXG4gICAgICBtaW5ab29tOiA0LFxuICAgICAgdG1zOiB0cnVlLFxuICAgICAgZGV0ZWN0UmV0aW5hOiB0cnVlLFxuICAgICAgc3ViZG9tYWluczogJzEyJyxcbiAgICAgIGZvcm1hdDogJ2ltYWdlL3BuZycsXG4gICAgICB0cmFuc3BhcmVudDogdHJ1ZVxuICB9KTtcblxuICBmZWF0dXJlX2dyb3Vwcy5wdXNoKG9wZW5haXBfY2FjaGVkX2Jhc2VtYXApO1xuICAqL1xuXG4gIGNvbnN0IG9wZW5haXBfYmFzZW1hcF9waHlzX29zbSA9IGxlYWZsZXQuZmVhdHVyZUdyb3VwKGZlYXR1cmVfZ3JvdXBzKTtcblxuICBsZXQgbWFwID0gbGVhZmxldC5tYXAoJ21hcCcsIHtcbiAgICBsYXllcnM6IFtvcGVuYWlwX2Jhc2VtYXBfcGh5c19vc21dLFxuICAgIGNlbnRlcjogb3B0cy5jZW50ZXIsXG4gICAgem9vbTogb3B0cy56b29tLFxuICAgIHNjcm9sbFdoZWVsWm9vbTogZmFsc2UsXG4gIH0pO1xuXG4gIGNvbnN0IGF0dHJpYiA9IGxlYWZsZXQuY29udHJvbC5hdHRyaWJ1dGlvbih7cG9zaXRpb246ICdib3R0b21sZWZ0J30pXG4gIGF0dHJpYi5hZGRBdHRyaWJ1dGlvbignPGEgaHJlZj1cImh0dHBzOi8vd3d3LnRodW5kZXJmb3Jlc3QuY29tXCIgdGFyZ2V0PVwiX2JsYW5rXCIgc3R5bGU9XCJcIj5UaHVuZGVyZm9yZXN0PC9hPicpXG4gIGF0dHJpYi5hZGRBdHRyaWJ1dGlvbignPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm9wZW5haXAubmV0XCIgdGFyZ2V0PVwiX2JsYW5rXCIgc3R5bGU9XCJcIj5vcGVuQUlQPC9hPicpXG4gIGF0dHJpYi5hZGRBdHRyaWJ1dGlvbignPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiIHRhcmdldD1cIl9ibGFua1wiIHN0eWxlPVwiXCI+T3BlblN0cmVldE1hcDwvYT4gY29udHJpYnV0b3JzJylcbiAgYXR0cmliLmFkZEF0dHJpYnV0aW9uKCc8YSBocmVmPVwiaHR0cHM6Ly93d3cub3BlbndlYXRoZXJtYXAub3JnXCIgdGFyZ2V0PVwiX2JsYW5rXCIgc3R5bGU9XCJcIj5PcGVuV2VhdGhlck1hcDwvYT4nKVxuXG4gIGF0dHJpYi5hZGRUbyhtYXApXG5cbiAgcmV0dXJuIG1hcFxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9qcy9tYXBzL2Jhc2VfbWFwLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/maps/base_map.js\n"); +eval("var leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n\n opts = Object.assign({\n render_elem: 'map',\n center: [29.98139, -95.33374],\n zoom: 5,\n maxZoom: 10,\n layers: [],\n set_marker: false\n }, opts);\n\n var feature_groups = [];\n /*var openaip_airspace_labels = new leaflet.TileLayer.WMS(\r\n \"http://{s}.tile.maps.openaip.net/geowebcache/service/wms\", {\r\n maxZoom: 14,\r\n minZoom: 12,\r\n layers: 'openaip_approved_airspaces_labels',\r\n tileSize: 1024,\r\n detectRetina: true,\r\n subdomains: '12',\r\n format: 'image/png',\r\n transparent: true\r\n });\r\n openaip_airspace_labels.addTo(map);*/\n\n var opencyclemap_phys_osm = new leaflet.TileLayer('http://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey=f09a38fa87514de4890fc96e7fe8ecb1', {\n maxZoom: 14,\n minZoom: 4,\n format: 'image/png',\n transparent: true\n });\n\n feature_groups.push(opencyclemap_phys_osm);\n\n /*const openaip_cached_basemap = new leaflet.TileLayer(\"http://{s}.tile.maps.openaip.net/geowebcache/service/tms/1.0.0/openaip_basemap@EPSG%3A900913@png/{z}/{x}/{y}.png\", {\r\n maxZoom: 14,\r\n minZoom: 4,\r\n tms: true,\r\n detectRetina: true,\r\n subdomains: '12',\r\n format: 'image/png',\r\n transparent: true\r\n });\r\n feature_groups.push(openaip_cached_basemap);\r\n */\n\n var openaip_basemap_phys_osm = leaflet.featureGroup(feature_groups);\n\n var map = leaflet.map('map', {\n layers: [openaip_basemap_phys_osm],\n center: opts.center,\n zoom: opts.zoom,\n scrollWheelZoom: false\n });\n\n var attrib = leaflet.control.attribution({ position: 'bottomleft' });\n attrib.addAttribution('Thunderforest');\n attrib.addAttribution('openAIP');\n attrib.addAttribution('OpenStreetMap contributors');\n attrib.addAttribution('OpenWeatherMap');\n\n attrib.addTo(map);\n\n return map;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9iYXNlX21hcC5qcz80MzA3Il0sIm5hbWVzIjpbImxlYWZsZXQiLCJyZXF1aXJlIiwib3B0cyIsIk9iamVjdCIsImFzc2lnbiIsInJlbmRlcl9lbGVtIiwiY2VudGVyIiwiem9vbSIsIm1heFpvb20iLCJsYXllcnMiLCJzZXRfbWFya2VyIiwiZmVhdHVyZV9ncm91cHMiLCJvcGVuY3ljbGVtYXBfcGh5c19vc20iLCJUaWxlTGF5ZXIiLCJtaW5ab29tIiwiZm9ybWF0IiwidHJhbnNwYXJlbnQiLCJwdXNoIiwib3BlbmFpcF9iYXNlbWFwX3BoeXNfb3NtIiwiZmVhdHVyZUdyb3VwIiwibWFwIiwic2Nyb2xsV2hlZWxab29tIiwiYXR0cmliIiwiY29udHJvbCIsImF0dHJpYnV0aW9uIiwicG9zaXRpb24iLCJhZGRBdHRyaWJ1dGlvbiIsImFkZFRvIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFNQSxVQUFVLG1CQUFBQyxDQUFRLDRDQUFSLENBQWhCOztBQUVBLHlEQUFlLFVBQUNDLElBQUQsRUFBVTs7QUFFckJBLFdBQU9DLE9BQU9DLE1BQVAsQ0FBYztBQUNqQkMscUJBQWEsS0FESTtBQUVqQkMsZ0JBQVEsQ0FBQyxRQUFELEVBQVcsQ0FBQyxRQUFaLENBRlM7QUFHakJDLGNBQU0sQ0FIVztBQUlqQkMsaUJBQVMsRUFKUTtBQUtqQkMsZ0JBQVEsRUFMUztBQU1qQkMsb0JBQVk7QUFOSyxLQUFkLEVBT0pSLElBUEksQ0FBUDs7QUFTQSxRQUFJUyxpQkFBaUIsRUFBckI7QUFDQTs7Ozs7Ozs7Ozs7OztBQWNBLFFBQU1DLHdCQUF3QixJQUFJWixRQUFRYSxTQUFaLENBQzFCLHFHQUQwQixFQUM2RTtBQUNuR0wsaUJBQVMsRUFEMEY7QUFFbkdNLGlCQUFTLENBRjBGO0FBR25HQyxnQkFBUSxXQUgyRjtBQUluR0MscUJBQWE7QUFKc0YsS0FEN0UsQ0FBOUI7O0FBUUFMLG1CQUFlTSxJQUFmLENBQW9CTCxxQkFBcEI7O0FBRUE7Ozs7Ozs7Ozs7OztBQWFBLFFBQU1NLDJCQUEyQmxCLFFBQVFtQixZQUFSLENBQXFCUixjQUFyQixDQUFqQzs7QUFFQSxRQUFJUyxNQUFNcEIsUUFBUW9CLEdBQVIsQ0FBWSxLQUFaLEVBQW1CO0FBQ3pCWCxnQkFBUSxDQUFDUyx3QkFBRCxDQURpQjtBQUV6QlosZ0JBQVFKLEtBQUtJLE1BRlk7QUFHekJDLGNBQU1MLEtBQUtLLElBSGM7QUFJekJjLHlCQUFpQjtBQUpRLEtBQW5CLENBQVY7O0FBT0EsUUFBTUMsU0FBU3RCLFFBQVF1QixPQUFSLENBQWdCQyxXQUFoQixDQUE0QixFQUFDQyxVQUFVLFlBQVgsRUFBNUIsQ0FBZjtBQUNBSCxXQUFPSSxjQUFQLENBQXNCLG9GQUF0QjtBQUNBSixXQUFPSSxjQUFQLENBQXNCLHdFQUF0QjtBQUNBSixXQUFPSSxjQUFQLENBQXNCLDJHQUF0QjtBQUNBSixXQUFPSSxjQUFQLENBQXNCLHNGQUF0Qjs7QUFFQUosV0FBT0ssS0FBUCxDQUFhUCxHQUFiOztBQUVBLFdBQU9BLEdBQVA7QUFDSCxDQW5FRCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9tYXBzL2Jhc2VfbWFwLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbGVhZmxldCA9IHJlcXVpcmUoJ2xlYWZsZXQnKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IChvcHRzKSA9PiB7XHJcblxyXG4gICAgb3B0cyA9IE9iamVjdC5hc3NpZ24oe1xyXG4gICAgICAgIHJlbmRlcl9lbGVtOiAnbWFwJyxcclxuICAgICAgICBjZW50ZXI6IFsyOS45ODEzOSwgLTk1LjMzMzc0XSxcclxuICAgICAgICB6b29tOiA1LFxyXG4gICAgICAgIG1heFpvb206IDEwLFxyXG4gICAgICAgIGxheWVyczogW10sXHJcbiAgICAgICAgc2V0X21hcmtlcjogZmFsc2UsXHJcbiAgICB9LCBvcHRzKTtcclxuXHJcbiAgICBsZXQgZmVhdHVyZV9ncm91cHMgPSBbXTtcclxuICAgIC8qdmFyIG9wZW5haXBfYWlyc3BhY2VfbGFiZWxzID0gbmV3IGxlYWZsZXQuVGlsZUxheWVyLldNUyhcclxuICAgICAgICBcImh0dHA6Ly97c30udGlsZS5tYXBzLm9wZW5haXAubmV0L2dlb3dlYmNhY2hlL3NlcnZpY2Uvd21zXCIsIHtcclxuICAgICAgICAgICAgbWF4Wm9vbTogMTQsXHJcbiAgICAgICAgICAgIG1pblpvb206IDEyLFxyXG4gICAgICAgICAgICBsYXllcnM6ICdvcGVuYWlwX2FwcHJvdmVkX2FpcnNwYWNlc19sYWJlbHMnLFxyXG4gICAgICAgICAgICB0aWxlU2l6ZTogMTAyNCxcclxuICAgICAgICAgICAgZGV0ZWN0UmV0aW5hOiB0cnVlLFxyXG4gICAgICAgICAgICBzdWJkb21haW5zOiAnMTInLFxyXG4gICAgICAgICAgICBmb3JtYXQ6ICdpbWFnZS9wbmcnLFxyXG4gICAgICAgICAgICB0cmFuc3BhcmVudDogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIG9wZW5haXBfYWlyc3BhY2VfbGFiZWxzLmFkZFRvKG1hcCk7Ki9cclxuXHJcbiAgICBjb25zdCBvcGVuY3ljbGVtYXBfcGh5c19vc20gPSBuZXcgbGVhZmxldC5UaWxlTGF5ZXIoXHJcbiAgICAgICAgJ2h0dHA6Ly97c30udGlsZS50aHVuZGVyZm9yZXN0LmNvbS9sYW5kc2NhcGUve3p9L3t4fS97eX0ucG5nP2FwaWtleT1mMDlhMzhmYTg3NTE0ZGU0ODkwZmM5NmU3ZmU4ZWNiMScsIHtcclxuICAgICAgICAgICAgbWF4Wm9vbTogMTQsXHJcbiAgICAgICAgICAgIG1pblpvb206IDQsXHJcbiAgICAgICAgICAgIGZvcm1hdDogJ2ltYWdlL3BuZycsXHJcbiAgICAgICAgICAgIHRyYW5zcGFyZW50OiB0cnVlXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICBmZWF0dXJlX2dyb3Vwcy5wdXNoKG9wZW5jeWNsZW1hcF9waHlzX29zbSlcclxuXHJcbiAgICAvKmNvbnN0IG9wZW5haXBfY2FjaGVkX2Jhc2VtYXAgPSBuZXcgbGVhZmxldC5UaWxlTGF5ZXIoXCJodHRwOi8ve3N9LnRpbGUubWFwcy5vcGVuYWlwLm5ldC9nZW93ZWJjYWNoZS9zZXJ2aWNlL3Rtcy8xLjAuMC9vcGVuYWlwX2Jhc2VtYXBARVBTRyUzQTkwMDkxM0Bwbmcve3p9L3t4fS97eX0ucG5nXCIsIHtcclxuICAgICAgICBtYXhab29tOiAxNCxcclxuICAgICAgICBtaW5ab29tOiA0LFxyXG4gICAgICAgIHRtczogdHJ1ZSxcclxuICAgICAgICBkZXRlY3RSZXRpbmE6IHRydWUsXHJcbiAgICAgICAgc3ViZG9tYWluczogJzEyJyxcclxuICAgICAgICBmb3JtYXQ6ICdpbWFnZS9wbmcnLFxyXG4gICAgICAgIHRyYW5zcGFyZW50OiB0cnVlXHJcbiAgICB9KTtcclxuXHJcbiAgICBmZWF0dXJlX2dyb3Vwcy5wdXNoKG9wZW5haXBfY2FjaGVkX2Jhc2VtYXApO1xyXG4gICAgKi9cclxuXHJcbiAgICBjb25zdCBvcGVuYWlwX2Jhc2VtYXBfcGh5c19vc20gPSBsZWFmbGV0LmZlYXR1cmVHcm91cChmZWF0dXJlX2dyb3Vwcyk7XHJcblxyXG4gICAgbGV0IG1hcCA9IGxlYWZsZXQubWFwKCdtYXAnLCB7XHJcbiAgICAgICAgbGF5ZXJzOiBbb3BlbmFpcF9iYXNlbWFwX3BoeXNfb3NtXSxcclxuICAgICAgICBjZW50ZXI6IG9wdHMuY2VudGVyLFxyXG4gICAgICAgIHpvb206IG9wdHMuem9vbSxcclxuICAgICAgICBzY3JvbGxXaGVlbFpvb206IGZhbHNlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgYXR0cmliID0gbGVhZmxldC5jb250cm9sLmF0dHJpYnV0aW9uKHtwb3NpdGlvbjogJ2JvdHRvbWxlZnQnfSlcclxuICAgIGF0dHJpYi5hZGRBdHRyaWJ1dGlvbignPGEgaHJlZj1cImh0dHBzOi8vd3d3LnRodW5kZXJmb3Jlc3QuY29tXCIgdGFyZ2V0PVwiX2JsYW5rXCIgc3R5bGU9XCJcIj5UaHVuZGVyZm9yZXN0PC9hPicpXHJcbiAgICBhdHRyaWIuYWRkQXR0cmlidXRpb24oJzxhIGhyZWY9XCJodHRwczovL3d3dy5vcGVuYWlwLm5ldFwiIHRhcmdldD1cIl9ibGFua1wiIHN0eWxlPVwiXCI+b3BlbkFJUDwvYT4nKVxyXG4gICAgYXR0cmliLmFkZEF0dHJpYnV0aW9uKCc8YSBocmVmPVwiaHR0cHM6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0XCIgdGFyZ2V0PVwiX2JsYW5rXCIgc3R5bGU9XCJcIj5PcGVuU3RyZWV0TWFwPC9hPiBjb250cmlidXRvcnMnKVxyXG4gICAgYXR0cmliLmFkZEF0dHJpYnV0aW9uKCc8YSBocmVmPVwiaHR0cHM6Ly93d3cub3BlbndlYXRoZXJtYXAub3JnXCIgdGFyZ2V0PVwiX2JsYW5rXCIgc3R5bGU9XCJcIj5PcGVuV2VhdGhlck1hcDwvYT4nKVxyXG5cclxuICAgIGF0dHJpYi5hZGRUbyhtYXApXHJcblxyXG4gICAgcmV0dXJuIG1hcFxyXG59O1xyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9yZXNvdXJjZXMvanMvbWFwcy9iYXNlX21hcC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/maps/base_map.js\n"); /***/ }), @@ -334,7 +334,7 @@ eval("\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet- /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return PLAN_ROUTE_COLOR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ACTUAL_ROUTE_COLOR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return CIRCLE_COLOR; });\nvar PLAN_ROUTE_COLOR = '#043758',\n ACTUAL_ROUTE_COLOR = '#067ec1',\n CIRCLE_COLOR = '#056093';//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9jb25maWcuanM/NzdmNyJdLCJuYW1lcyI6WyJQTEFOX1JPVVRFX0NPTE9SIiwiQUNUVUFMX1JPVVRFX0NPTE9SIiwiQ0lSQ0xFX0NPTE9SIl0sIm1hcHBpbmdzIjoiOzs7QUFBTyxJQUNIQSxtQkFBbUIsU0FEaEI7QUFBQSxJQUVIQyxxQkFBcUIsU0FGbEI7QUFBQSxJQUdIQyxlQUFlLFNBSFoiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvbWFwcy9jb25maWcuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgbGV0XG4gICAgUExBTl9ST1VURV9DT0xPUiA9ICcjMDQzNzU4JyxcbiAgICBBQ1RVQUxfUk9VVEVfQ09MT1IgPSAnIzA2N2VjMScsXG4gICAgQ0lSQ0xFX0NPTE9SID0gJyMwNTYwOTMnO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcmVzb3VyY2VzL2pzL21hcHMvY29uZmlnLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/maps/config.js\n"); +eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return PLAN_ROUTE_COLOR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ACTUAL_ROUTE_COLOR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return CIRCLE_COLOR; });\nvar PLAN_ROUTE_COLOR = '#043758',\n ACTUAL_ROUTE_COLOR = '#067ec1',\n CIRCLE_COLOR = '#056093';//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9jb25maWcuanM/NzdmNyJdLCJuYW1lcyI6WyJQTEFOX1JPVVRFX0NPTE9SIiwiQUNUVUFMX1JPVVRFX0NPTE9SIiwiQ0lSQ0xFX0NPTE9SIl0sIm1hcHBpbmdzIjoiOzs7QUFBTyxJQUNIQSxtQkFBbUIsU0FEaEI7QUFBQSxJQUVIQyxxQkFBcUIsU0FGbEI7QUFBQSxJQUdIQyxlQUFlLFNBSFoiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvbWFwcy9jb25maWcuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgbGV0XHJcbiAgICBQTEFOX1JPVVRFX0NPTE9SID0gJyMwNDM3NTgnLFxyXG4gICAgQUNUVUFMX1JPVVRFX0NPTE9SID0gJyMwNjdlYzEnLFxyXG4gICAgQ0lSQ0xFX0NPTE9SID0gJyMwNTYwOTMnO1xyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9yZXNvdXJjZXMvanMvbWFwcy9jb25maWcuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/maps/config.js\n"); /***/ }), @@ -342,7 +342,7 @@ eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = addWMSLayer;\n/* unused harmony export showFeaturePopup */\n\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n/**\n * Add a WMS layer to a map. opts must be:\n * {\n * url: '',\n * params: {}\n * }\n * @param map\n * @param opts\n */\nfunction addWMSLayer(map, opts) {\n\n if (opts.url === '') {\n return;\n }\n\n opts.params = Object.assign({\n format: 'image/png',\n transparent: true,\n maxZoom: 14,\n minZoom: 4\n }, opts.params);\n\n var mlayer = leaflet.tileLayer.wms(opts.url, opts.params);\n\n mlayer.addTo(map);\n\n return mlayer;\n}\n\n/**\n * Show a popup\n * @param feature\n * @param layer\n */\nfunction showFeaturePopup(feature, layer) {\n var popup_html = '';\n if (feature.properties && feature.properties.popup) {\n popup_html += feature.properties.popup;\n }\n\n layer.bindPopup(popup_html);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9oZWxwZXJzLmpzPzNjZDUiXSwibmFtZXMiOlsibGVhZmxldCIsInJlcXVpcmUiLCJhZGRXTVNMYXllciIsIm1hcCIsIm9wdHMiLCJ1cmwiLCJwYXJhbXMiLCJPYmplY3QiLCJhc3NpZ24iLCJmb3JtYXQiLCJ0cmFuc3BhcmVudCIsIm1heFpvb20iLCJtaW5ab29tIiwibWxheWVyIiwidGlsZUxheWVyIiwid21zIiwiYWRkVG8iLCJzaG93RmVhdHVyZVBvcHVwIiwiZmVhdHVyZSIsImxheWVyIiwicG9wdXBfaHRtbCIsInByb3BlcnRpZXMiLCJwb3B1cCIsImJpbmRQb3B1cCJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsSUFBTUEsVUFBVSxtQkFBQUMsQ0FBUSw0Q0FBUixDQUFoQjs7QUFFQTs7Ozs7Ozs7O0FBU08sU0FBU0MsV0FBVCxDQUFxQkMsR0FBckIsRUFBMEJDLElBQTFCLEVBQWdDOztBQUVuQyxRQUFHQSxLQUFLQyxHQUFMLEtBQWEsRUFBaEIsRUFBb0I7QUFDaEI7QUFDSDs7QUFFREQsU0FBS0UsTUFBTCxHQUFjQyxPQUFPQyxNQUFQLENBQWM7QUFDeEJDLGdCQUFRLFdBRGdCO0FBRXhCQyxxQkFBYSxJQUZXO0FBR3hCQyxpQkFBUyxFQUhlO0FBSXhCQyxpQkFBUztBQUplLEtBQWQsRUFLWFIsS0FBS0UsTUFMTSxDQUFkOztBQU9BLFFBQU1PLFNBQVNiLFFBQVFjLFNBQVIsQ0FBa0JDLEdBQWxCLENBQ1hYLEtBQUtDLEdBRE0sRUFDREQsS0FBS0UsTUFESixDQUFmOztBQUlBTyxXQUFPRyxLQUFQLENBQWFiLEdBQWI7O0FBRUEsV0FBT1UsTUFBUDtBQUNIOztBQUVEOzs7OztBQUtPLFNBQVNJLGdCQUFULENBQTBCQyxPQUExQixFQUFtQ0MsS0FBbkMsRUFBMEM7QUFDN0MsUUFBSUMsYUFBYSxFQUFqQjtBQUNBLFFBQUlGLFFBQVFHLFVBQVIsSUFBc0JILFFBQVFHLFVBQVIsQ0FBbUJDLEtBQTdDLEVBQW9EO0FBQ2hERixzQkFBY0YsUUFBUUcsVUFBUixDQUFtQkMsS0FBakM7QUFDSDs7QUFFREgsVUFBTUksU0FBTixDQUFnQkgsVUFBaEI7QUFDSCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9tYXBzL2hlbHBlcnMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmNvbnN0IGxlYWZsZXQgPSByZXF1aXJlKCdsZWFmbGV0Jyk7XG5cbi8qKlxuICogQWRkIGEgV01TIGxheWVyIHRvIGEgbWFwLiBvcHRzIG11c3QgYmU6XG4gKiB7XG4gKiAgdXJsOiAnJyxcbiAqICBwYXJhbXM6IHt9XG4gKiAgfVxuICogQHBhcmFtIG1hcFxuICogQHBhcmFtIG9wdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFdNU0xheWVyKG1hcCwgb3B0cykge1xuXG4gICAgaWYob3B0cy51cmwgPT09ICcnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvcHRzLnBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICBmb3JtYXQ6ICdpbWFnZS9wbmcnLFxuICAgICAgICB0cmFuc3BhcmVudDogdHJ1ZSxcbiAgICAgICAgbWF4Wm9vbTogMTQsXG4gICAgICAgIG1pblpvb206IDQsXG4gICAgfSwgb3B0cy5wYXJhbXMpO1xuXG4gICAgY29uc3QgbWxheWVyID0gbGVhZmxldC50aWxlTGF5ZXIud21zKFxuICAgICAgICBvcHRzLnVybCwgb3B0cy5wYXJhbXNcbiAgICApO1xuXG4gICAgbWxheWVyLmFkZFRvKG1hcCk7XG5cbiAgICByZXR1cm4gbWxheWVyO1xufVxuXG4vKipcbiAqIFNob3cgYSBwb3B1cFxuICogQHBhcmFtIGZlYXR1cmVcbiAqIEBwYXJhbSBsYXllclxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvd0ZlYXR1cmVQb3B1cChmZWF0dXJlLCBsYXllcikge1xuICAgIGxldCBwb3B1cF9odG1sID0gJyc7XG4gICAgaWYgKGZlYXR1cmUucHJvcGVydGllcyAmJiBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXApIHtcbiAgICAgICAgcG9wdXBfaHRtbCArPSBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXBcbiAgICB9XG5cbiAgICBsYXllci5iaW5kUG9wdXAocG9wdXBfaHRtbClcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9qcy9tYXBzL2hlbHBlcnMuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/maps/helpers.js\n"); +eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = addWMSLayer;\n/* unused harmony export showFeaturePopup */\n\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n/**\r\n * Add a WMS layer to a map. opts must be:\r\n * {\r\n * url: '',\r\n * params: {}\r\n * }\r\n * @param map\r\n * @param opts\r\n */\nfunction addWMSLayer(map, opts) {\n\n if (opts.url === '') {\n return;\n }\n\n opts.params = Object.assign({\n format: 'image/png',\n transparent: true,\n maxZoom: 14,\n minZoom: 4\n }, opts.params);\n\n var mlayer = leaflet.tileLayer.wms(opts.url, opts.params);\n\n mlayer.addTo(map);\n\n return mlayer;\n}\n\n/**\r\n * Show a popup\r\n * @param feature\r\n * @param layer\r\n */\nfunction showFeaturePopup(feature, layer) {\n var popup_html = '';\n if (feature.properties && feature.properties.popup) {\n popup_html += feature.properties.popup;\n }\n\n layer.bindPopup(popup_html);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9oZWxwZXJzLmpzPzNjZDUiXSwibmFtZXMiOlsibGVhZmxldCIsInJlcXVpcmUiLCJhZGRXTVNMYXllciIsIm1hcCIsIm9wdHMiLCJ1cmwiLCJwYXJhbXMiLCJPYmplY3QiLCJhc3NpZ24iLCJmb3JtYXQiLCJ0cmFuc3BhcmVudCIsIm1heFpvb20iLCJtaW5ab29tIiwibWxheWVyIiwidGlsZUxheWVyIiwid21zIiwiYWRkVG8iLCJzaG93RmVhdHVyZVBvcHVwIiwiZmVhdHVyZSIsImxheWVyIiwicG9wdXBfaHRtbCIsInByb3BlcnRpZXMiLCJwb3B1cCIsImJpbmRQb3B1cCJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsSUFBTUEsVUFBVSxtQkFBQUMsQ0FBUSw0Q0FBUixDQUFoQjs7QUFFQTs7Ozs7Ozs7O0FBU08sU0FBU0MsV0FBVCxDQUFxQkMsR0FBckIsRUFBMEJDLElBQTFCLEVBQWdDOztBQUVuQyxRQUFHQSxLQUFLQyxHQUFMLEtBQWEsRUFBaEIsRUFBb0I7QUFDaEI7QUFDSDs7QUFFREQsU0FBS0UsTUFBTCxHQUFjQyxPQUFPQyxNQUFQLENBQWM7QUFDeEJDLGdCQUFRLFdBRGdCO0FBRXhCQyxxQkFBYSxJQUZXO0FBR3hCQyxpQkFBUyxFQUhlO0FBSXhCQyxpQkFBUztBQUplLEtBQWQsRUFLWFIsS0FBS0UsTUFMTSxDQUFkOztBQU9BLFFBQU1PLFNBQVNiLFFBQVFjLFNBQVIsQ0FBa0JDLEdBQWxCLENBQ1hYLEtBQUtDLEdBRE0sRUFDREQsS0FBS0UsTUFESixDQUFmOztBQUlBTyxXQUFPRyxLQUFQLENBQWFiLEdBQWI7O0FBRUEsV0FBT1UsTUFBUDtBQUNIOztBQUVEOzs7OztBQUtPLFNBQVNJLGdCQUFULENBQTBCQyxPQUExQixFQUFtQ0MsS0FBbkMsRUFBMEM7QUFDN0MsUUFBSUMsYUFBYSxFQUFqQjtBQUNBLFFBQUlGLFFBQVFHLFVBQVIsSUFBc0JILFFBQVFHLFVBQVIsQ0FBbUJDLEtBQTdDLEVBQW9EO0FBQ2hERixzQkFBY0YsUUFBUUcsVUFBUixDQUFtQkMsS0FBakM7QUFDSDs7QUFFREgsVUFBTUksU0FBTixDQUFnQkgsVUFBaEI7QUFDSCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9tYXBzL2hlbHBlcnMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuY29uc3QgbGVhZmxldCA9IHJlcXVpcmUoJ2xlYWZsZXQnKTtcclxuXHJcbi8qKlxyXG4gKiBBZGQgYSBXTVMgbGF5ZXIgdG8gYSBtYXAuIG9wdHMgbXVzdCBiZTpcclxuICoge1xyXG4gKiAgdXJsOiAnJyxcclxuICogIHBhcmFtczoge31cclxuICogIH1cclxuICogQHBhcmFtIG1hcFxyXG4gKiBAcGFyYW0gb3B0c1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFdNU0xheWVyKG1hcCwgb3B0cykge1xyXG5cclxuICAgIGlmKG9wdHMudXJsID09PSAnJykge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvcHRzLnBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe1xyXG4gICAgICAgIGZvcm1hdDogJ2ltYWdlL3BuZycsXHJcbiAgICAgICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICAgICAgbWF4Wm9vbTogMTQsXHJcbiAgICAgICAgbWluWm9vbTogNCxcclxuICAgIH0sIG9wdHMucGFyYW1zKTtcclxuXHJcbiAgICBjb25zdCBtbGF5ZXIgPSBsZWFmbGV0LnRpbGVMYXllci53bXMoXHJcbiAgICAgICAgb3B0cy51cmwsIG9wdHMucGFyYW1zXHJcbiAgICApO1xyXG5cclxuICAgIG1sYXllci5hZGRUbyhtYXApO1xyXG5cclxuICAgIHJldHVybiBtbGF5ZXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTaG93IGEgcG9wdXBcclxuICogQHBhcmFtIGZlYXR1cmVcclxuICogQHBhcmFtIGxheWVyXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2hvd0ZlYXR1cmVQb3B1cChmZWF0dXJlLCBsYXllcikge1xyXG4gICAgbGV0IHBvcHVwX2h0bWwgPSAnJztcclxuICAgIGlmIChmZWF0dXJlLnByb3BlcnRpZXMgJiYgZmVhdHVyZS5wcm9wZXJ0aWVzLnBvcHVwKSB7XHJcbiAgICAgICAgcG9wdXBfaHRtbCArPSBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXBcclxuICAgIH1cclxuXHJcbiAgICBsYXllci5iaW5kUG9wdXAocG9wdXBfaHRtbClcclxufVxyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9yZXNvdXJjZXMvanMvbWFwcy9oZWxwZXJzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/maps/helpers.js\n"); /***/ }), @@ -350,7 +350,7 @@ eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = addWMSLayer; /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__airspace_map__ = __webpack_require__(\"./resources/js/maps/airspace_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__live_map__ = __webpack_require__(\"./resources/js/maps/live_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__route_map__ = __webpack_require__(\"./resources/js/maps/route_map.js\");\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"render_airspace_map\", function() { return __WEBPACK_IMPORTED_MODULE_0__airspace_map__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"render_live_map\", function() { return __WEBPACK_IMPORTED_MODULE_1__live_map__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"render_route_map\", function() { return __WEBPACK_IMPORTED_MODULE_2__route_map__[\"a\"]; });\n/**\n * All of the functionality required for maps\n */\n\nwindow.L = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n__webpack_require__(\"./node_modules/Leaflet.Geodesic/Leaflet.Geodesic.js\");\n__webpack_require__(\"./node_modules/leaflet-rotatedmarker/leaflet.rotatedMarker.js\");\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9pbmRleC5qcz85MmYwIl0sIm5hbWVzIjpbIndpbmRvdyIsIkwiLCJyZXF1aXJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUFBOzs7O0FBSUFBLE9BQU9DLENBQVAsR0FBVyxtQkFBQUMsQ0FBUSw0Q0FBUixDQUFYO0FBQ0EsbUJBQUFBLENBQVEscURBQVI7QUFDQSxtQkFBQUEsQ0FBUSwrREFBUjs7QUFFQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvbWFwcy9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWxsIG9mIHRoZSBmdW5jdGlvbmFsaXR5IHJlcXVpcmVkIGZvciBtYXBzXG4gKi9cblxud2luZG93LkwgPSByZXF1aXJlKCdsZWFmbGV0Jyk7XG5yZXF1aXJlKCdMZWFmbGV0Lkdlb2Rlc2ljJyk7XG5yZXF1aXJlKCdsZWFmbGV0LXJvdGF0ZWRtYXJrZXInKTtcblxuaW1wb3J0IHJlbmRlcl9haXJzcGFjZV9tYXAgZnJvbSAnLi9haXJzcGFjZV9tYXAnXG5pbXBvcnQgcmVuZGVyX2xpdmVfbWFwIGZyb20gJy4vbGl2ZV9tYXAnXG5pbXBvcnQgcmVuZGVyX3JvdXRlX21hcCBmcm9tICcuL3JvdXRlX21hcCdcblxuZXhwb3J0IHtcbiAgcmVuZGVyX2FpcnNwYWNlX21hcCxcbiAgcmVuZGVyX2xpdmVfbWFwLFxuICByZW5kZXJfcm91dGVfbWFwLFxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcmVzb3VyY2VzL2pzL21hcHMvaW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/maps/index.js\n"); +eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__airspace_map__ = __webpack_require__(\"./resources/js/maps/airspace_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__live_map__ = __webpack_require__(\"./resources/js/maps/live_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__route_map__ = __webpack_require__(\"./resources/js/maps/route_map.js\");\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"render_airspace_map\", function() { return __WEBPACK_IMPORTED_MODULE_0__airspace_map__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"render_live_map\", function() { return __WEBPACK_IMPORTED_MODULE_1__live_map__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"render_route_map\", function() { return __WEBPACK_IMPORTED_MODULE_2__route_map__[\"a\"]; });\n/**\r\n * All of the functionality required for maps\r\n */\n\nwindow.L = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n__webpack_require__(\"./node_modules/Leaflet.Geodesic/Leaflet.Geodesic.js\");\n__webpack_require__(\"./node_modules/leaflet-rotatedmarker/leaflet.rotatedMarker.js\");\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9pbmRleC5qcz85MmYwIl0sIm5hbWVzIjpbIndpbmRvdyIsIkwiLCJyZXF1aXJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUFBOzs7O0FBSUFBLE9BQU9DLENBQVAsR0FBVyxtQkFBQUMsQ0FBUSw0Q0FBUixDQUFYO0FBQ0EsbUJBQUFBLENBQVEscURBQVI7QUFDQSxtQkFBQUEsQ0FBUSwrREFBUjs7QUFFQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvbWFwcy9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBBbGwgb2YgdGhlIGZ1bmN0aW9uYWxpdHkgcmVxdWlyZWQgZm9yIG1hcHNcclxuICovXHJcblxyXG53aW5kb3cuTCA9IHJlcXVpcmUoJ2xlYWZsZXQnKTtcclxucmVxdWlyZSgnTGVhZmxldC5HZW9kZXNpYycpO1xyXG5yZXF1aXJlKCdsZWFmbGV0LXJvdGF0ZWRtYXJrZXInKTtcclxuXHJcbmltcG9ydCByZW5kZXJfYWlyc3BhY2VfbWFwIGZyb20gJy4vYWlyc3BhY2VfbWFwJ1xyXG5pbXBvcnQgcmVuZGVyX2xpdmVfbWFwIGZyb20gJy4vbGl2ZV9tYXAnXHJcbmltcG9ydCByZW5kZXJfcm91dGVfbWFwIGZyb20gJy4vcm91dGVfbWFwJ1xyXG5cclxuZXhwb3J0IHtcclxuICByZW5kZXJfYWlyc3BhY2VfbWFwLFxyXG4gIHJlbmRlcl9saXZlX21hcCxcclxuICByZW5kZXJfcm91dGVfbWFwLFxyXG59XHJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9qcy9tYXBzL2luZGV4LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/maps/index.js\n"); /***/ }), @@ -358,7 +358,7 @@ eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true } /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpack_require__(\"./resources/js/maps/base_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__config__ = __webpack_require__(\"./resources/js/maps/config.js\");\n\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n\n\n\n/**\n * Render the live map\n * @param opts\n * @private\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n\n opts = Object.assign({\n update_uri: '/api/acars',\n pirep_uri: '/api/pireps/{id}/acars',\n positions: null,\n render_elem: 'map',\n aircraft_icon: '/assets/img/acars/aircraft.png'\n }, opts);\n\n var map = Object(__WEBPACK_IMPORTED_MODULE_0__base_map__[\"a\" /* default */])(opts);\n var aircraftIcon = leaflet.icon({\n iconUrl: opts.aircraft_icon,\n iconSize: [42, 42],\n iconAnchor: [21, 21]\n });\n\n var layerFlights = null;\n var layerSelFlight = null;\n var layerSelFlightFeature = null;\n var layerSelFlightLayer = null;\n\n /**\n * When a flight is clicked on, show the path, etc for that flight\n * @param feature\n * @param layer\n */\n var onFlightClick = function onFlightClick(feature, layer) {\n\n var uri = opts.pirep_uri.replace('{id}', feature.properties.pirep_id);\n\n var flight_route = $.ajax({\n url: uri,\n dataType: 'json',\n error: console.log\n });\n\n $.when(flight_route).done(function (routeJson) {\n if (layerSelFlight !== null) {\n map.removeLayer(layerSelFlight);\n }\n\n layerSelFlight = leaflet.geodesic([], {\n weight: 7,\n opacity: 0.9,\n color: __WEBPACK_IMPORTED_MODULE_1__config__[\"a\" /* ACTUAL_ROUTE_COLOR */],\n wrap: false\n }).addTo(map);\n\n layerSelFlight.geoJson(routeJson.line);\n\n layerSelFlightFeature = feature;\n layerSelFlightLayer = layer;\n //map.fitBounds(layerSelFlight.getBounds());\n });\n };\n\n var updateMap = function updateMap() {\n\n console.log('reloading flights from acars...');\n\n /**\n * AJAX UPDATE\n */\n\n var flights = $.ajax({\n url: opts.update_uri,\n dataType: 'json',\n error: console.log\n });\n\n $.when(flights).done(function (flightGeoJson) {\n\n if (layerFlights !== null) {\n layerFlights.clearLayers();\n }\n\n layerFlights = leaflet.geoJSON(flightGeoJson, {\n onEachFeature: function onEachFeature(feature, layer) {\n\n layer.on({\n click: function click(e) {\n onFlightClick(feature, layer);\n }\n });\n\n var popup_html = '';\n if (feature.properties && feature.properties.popup) {\n popup_html += feature.properties.popup;\n }\n\n layer.bindPopup(popup_html);\n },\n pointToLayer: function pointToLayer(feature, latlon) {\n return leaflet.marker(latlon, {\n icon: aircraftIcon,\n rotationAngle: feature.properties.heading\n });\n }\n });\n\n layerFlights.addTo(map);\n\n if (layerSelFlight !== null) {\n onFlightClick(layerSelFlightFeature, layerSelFlightLayer);\n }\n });\n };\n\n updateMap();\n setInterval(updateMap, 10000);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9saXZlX21hcC5qcz9lN2Y2Il0sIm5hbWVzIjpbImxlYWZsZXQiLCJyZXF1aXJlIiwib3B0cyIsIk9iamVjdCIsImFzc2lnbiIsInVwZGF0ZV91cmkiLCJwaXJlcF91cmkiLCJwb3NpdGlvbnMiLCJyZW5kZXJfZWxlbSIsImFpcmNyYWZ0X2ljb24iLCJtYXAiLCJkcmF3X2Jhc2VfbWFwIiwiYWlyY3JhZnRJY29uIiwiaWNvbiIsImljb25VcmwiLCJpY29uU2l6ZSIsImljb25BbmNob3IiLCJsYXllckZsaWdodHMiLCJsYXllclNlbEZsaWdodCIsImxheWVyU2VsRmxpZ2h0RmVhdHVyZSIsImxheWVyU2VsRmxpZ2h0TGF5ZXIiLCJvbkZsaWdodENsaWNrIiwiZmVhdHVyZSIsImxheWVyIiwidXJpIiwicmVwbGFjZSIsInByb3BlcnRpZXMiLCJwaXJlcF9pZCIsImZsaWdodF9yb3V0ZSIsIiQiLCJhamF4IiwidXJsIiwiZGF0YVR5cGUiLCJlcnJvciIsImNvbnNvbGUiLCJsb2ciLCJ3aGVuIiwiZG9uZSIsInJvdXRlSnNvbiIsInJlbW92ZUxheWVyIiwiZ2VvZGVzaWMiLCJ3ZWlnaHQiLCJvcGFjaXR5IiwiY29sb3IiLCJ3cmFwIiwiYWRkVG8iLCJnZW9Kc29uIiwibGluZSIsInVwZGF0ZU1hcCIsImZsaWdodHMiLCJmbGlnaHRHZW9Kc29uIiwiY2xlYXJMYXllcnMiLCJnZW9KU09OIiwib25FYWNoRmVhdHVyZSIsIm9uIiwiY2xpY2siLCJlIiwicG9wdXBfaHRtbCIsInBvcHVwIiwiYmluZFBvcHVwIiwicG9pbnRUb0xheWVyIiwibGF0bG9uIiwibWFya2VyIiwicm90YXRpb25BbmdsZSIsImhlYWRpbmciLCJzZXRJbnRlcnZhbCJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsSUFBTUEsVUFBVSxtQkFBQUMsQ0FBUSw0Q0FBUixDQUFoQjs7QUFFQTtBQUNBOztBQUVBOzs7OztBQUtBLHlEQUFlLFVBQUNDLElB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bUJ1QyxNQUFuQixFQUEyQjtBQUN2QyxpQkFBTzdELFFBQVE4RCxNQUFSLENBQWVELE1BQWYsRUFBdUI7QUFDNUJoRCxrQkFBTUQsWUFEc0I7QUFFNUJtRCwyQkFBZXpDLFFBQVFJLFVBQVIsQ0FBbUJzQztBQUZOLFdBQXZCLENBQVA7QUFJRDtBQXJCMkMsT0FBL0IsQ0FBZjs7QUF3QkEvQyxtQkFBYTRCLEtBQWIsQ0FBbUJuQyxHQUFuQjs7QUFFQSxVQUFJUSxtQkFBbUIsSUFBdkIsRUFBNkI7QUFDM0JHLHNCQUFjRixxQkFBZCxFQUFxQ0MsbUJBQXJDO0FBQ0Q7QUFDRixLQW5DRDtBQW9DRCxHQWxERDs7QUFvREE0QjtBQUNBaUIsY0FBWWpCLFNBQVosRUFBdUIsS0FBdkI7QUFDRCxDQS9HRCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9tYXBzL2xpdmVfbWFwLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5jb25zdCBsZWFmbGV0ID0gcmVxdWlyZSgnbGVhZmxldCcpO1xuXG5pbXBvcnQgZHJhd19iYXNlX21hcCBmcm9tICcuL2Jhc2VfbWFwJ1xuaW1wb3J0IHsgQUNUVUFMX1JPVVRFX0NPTE9SIH0gZnJvbSAnLi9jb25maWcnXG5cbi8qKlxuICogUmVuZGVyIHRoZSBsaXZlIG1hcFxuICogQHBhcmFtIG9wdHNcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBkZWZhdWx0IChvcHRzKSA9PiB7XG5cbiAgb3B0cyA9IE9iamVjdC5hc3NpZ24oe1xuICAgIHVwZGF0ZV91cmk6ICcvYXBpL2FjYXJzJyxcbiAgICBwaXJlcF91cmk6ICcvYXBpL3BpcmVwcy97aWR9L2FjYXJzJyxcbiAgICBwb3NpdGlvbnM6IG51bGwsXG4gICAgcmVuZGVyX2VsZW06ICdtYXAnLFxuICAgIGFpcmNyYWZ0X2ljb246ICcvYXNzZXRzL2ltZy9hY2Fycy9haXJjcmFmdC5wbmcnLFxuICB9LCBvcHRzKTtcblxuICBjb25zdCBtYXAgPSBkcmF3X2Jhc2VfbWFwKG9wdHMpO1xuICBjb25zdCBhaXJjcmFmdEljb24gPSBsZWFmbGV0Lmljb24oe1xuICAgIGljb25Vcmw6IG9wdHMuYWlyY3JhZnRfaWNvbixcbiAgICBpY29uU2l6ZTogWzQyLCA0Ml0sXG4gICAgaWNvbkFuY2hvcjogWzIxLCAyMV0sXG4gIH0pXG5cbiAgbGV0IGxheWVyRmxpZ2h0cyA9IG51bGxcbiAgbGV0IGxheWVyU2VsRmxpZ2h0ID0gbnVsbFxuICBsZXQgbGF5ZXJTZWxGbGlnaHRGZWF0dXJlID0gbnVsbFxuICBsZXQgbGF5ZXJTZWxGbGlnaHRMYXllciA9IG51bGxcblxuICAvKipcbiAgICogV2hlbiBhIGZsaWdodCBpcyBjbGlja2VkIG9uLCBzaG93IHRoZSBwYXRoLCBldGMgZm9yIHRoYXQgZmxpZ2h0XG4gICAqIEBwYXJhbSBmZWF0dXJlXG4gICAqIEBwYXJhbSBsYXllclxuICAgKi9cbiAgY29uc3Qgb25GbGlnaHRDbGljayA9IChmZWF0dXJlLCBsYXllcikgPT4ge1xuXG4gICAgY29uc3QgdXJpID0gb3B0cy5waXJlcF91cmkucmVwbGFjZSgne2lkfScsIGZlYXR1cmUucHJvcGVydGllcy5waXJlcF9pZClcblxuICAgIGNvbnN0IGZsaWdodF9yb3V0ZSA9ICQuYWpheCh7XG4gICAgICB1cmw6IHVyaSxcbiAgICAgIGRhdGFUeXBlOiAnanNvbicsXG4gICAgICBlcnJvcjogY29uc29sZS5sb2dcbiAgICB9KVxuXG4gICAgJC53aGVuKGZsaWdodF9yb3V0ZSkuZG9uZSgocm91dGVKc29uKSA9PiB7XG4gICAgICBpZiAobGF5ZXJTZWxGbGlnaHQgIT09IG51bGwpIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKGxheWVyU2VsRmxpZ2h0KVxuICAgICAgfVxuXG4gICAgICBsYXllclNlbEZsaWdodCA9IGxlYWZsZXQuZ2VvZGVzaWMoW10sIHtcbiAgICAgICAgd2VpZ2h0OiA3LFxuICAgICAgICBvcGFjaXR5OiAwLjksXG4gICAgICAgIGNvbG9yOiBBQ1RVQUxfUk9VVEVfQ09MT1IsXG4gICAgICAgIHdyYXA6IGZhbHNlLFxuICAgICAgfSkuYWRkVG8obWFwKVxuXG4gICAgICBsYXllclNlbEZsaWdodC5nZW9Kc29uKHJvdXRlSnNvbi5saW5lKVxuXG4gICAgICBsYXllclNlbEZsaWdodEZlYXR1cmUgPSBmZWF0dXJlXG4gICAgICBsYXllclNlbEZsaWdodExheWVyID0gbGF5ZXJcbiAgICAgIC8vbWFwLmZpdEJvdW5kcyhsYXllclNlbEZsaWdodC5nZXRCb3VuZHMoKSk7XG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IHVwZGF0ZU1hcCA9ICgpID0+IHtcblxuICAgIGNvbnNvbGUubG9nKCdyZWxvYWRpbmcgZmxpZ2h0cyBmcm9tIGFjYXJzLi4uJylcblxuICAgIC8qKlxuICAgICAqIEFKQVggVVBEQVRFXG4gICAgICovXG5cbiAgICBsZXQgZmxpZ2h0cyA9ICQuYWpheCh7XG4gICAgICB1cmw6IG9wdHMudXBkYXRlX3VyaSxcbiAgICAgIGRhdGFUeXBlOiAnanNvbicsXG4gICAgICBlcnJvcjogY29uc29sZS5sb2dcbiAgICB9KVxuXG4gICAgJC53aGVuKGZsaWdodHMpLmRvbmUoZnVuY3Rpb24gKGZsaWdodEdlb0pzb24pIHtcblxuICAgICAgaWYgKGxheWVyRmxpZ2h0cyAhPT0gbnVsbCkge1xuICAgICAgICBsYXllckZsaWdodHMuY2xlYXJMYXllcnMoKVxuICAgICAgfVxuXG4gICAgICBsYXllckZsaWdodHMgPSBsZWFmbGV0Lmdlb0pTT04oZmxpZ2h0R2VvSnNvbiwge1xuICAgICAgICBvbkVhY2hGZWF0dXJlOiAoZmVhdHVyZSwgbGF5ZXIpID0+IHtcblxuICAgICAgICAgIGxheWVyLm9uKHtcbiAgICAgICAgICAgIGNsaWNrOiAoZSkgPT4ge1xuICAgICAgICAgICAgICBvbkZsaWdodENsaWNrKGZlYXR1cmUsIGxheWVyKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBsZXQgcG9wdXBfaHRtbCA9ICcnXG4gICAgICAgICAgaWYgKGZlYXR1cmUucHJvcGVydGllcyAmJiBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXApIHtcbiAgICAgICAgICAgIHBvcHVwX2h0bWwgKz0gZmVhdHVyZS5wcm9wZXJ0aWVzLnBvcHVwXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGF5ZXIuYmluZFBvcHVwKHBvcHVwX2h0bWwpXG4gICAgICAgIH0sXG4gICAgICAgIHBvaW50VG9MYXllcjogZnVuY3Rpb24gKGZlYXR1cmUsIGxhdGxvbikge1xuICAgICAgICAgIHJldHVybiBsZWFmbGV0Lm1hcmtlcihsYXRsb24sIHtcbiAgICAgICAgICAgIGljb246IGFpcmNyYWZ0SWNvbixcbiAgICAgICAgICAgIHJvdGF0aW9uQW5nbGU6IGZlYXR1cmUucHJvcGVydGllcy5oZWFkaW5nXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgbGF5ZXJGbGlnaHRzLmFkZFRvKG1hcClcblxuICAgICAgaWYgKGxheWVyU2VsRmxpZ2h0ICE9PSBudWxsKSB7XG4gICAgICAgIG9uRmxpZ2h0Q2xpY2sobGF5ZXJTZWxGbGlnaHRGZWF0dXJlLCBsYXllclNlbEZsaWdodExheWVyKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICB1cGRhdGVNYXAoKVxuICBzZXRJbnRlcnZhbCh1cGRhdGVNYXAsIDEwMDAwKVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9qcy9tYXBzL2xpdmVfbWFwLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/maps/live_map.js\n"); +eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpack_require__(\"./resources/js/maps/base_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__config__ = __webpack_require__(\"./resources/js/maps/config.js\");\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n\n\n\n/**\r\n * Render the live map\r\n * @param opts\r\n * @private\r\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n\n opts = Object.assign({\n update_uri: '/api/acars',\n pirep_uri: '/api/pireps/{id}',\n positions: null,\n render_elem: 'map',\n aircraft_icon: '/assets/img/acars/aircraft.png',\n units: 'nmi'\n }, opts);\n\n var map = Object(__WEBPACK_IMPORTED_MODULE_0__base_map__[\"a\" /* default */])(opts);\n var aircraftIcon = leaflet.icon({\n iconUrl: opts.aircraft_icon,\n iconSize: [42, 42],\n iconAnchor: [21, 21]\n });\n\n var pannedToCenter = false;\n var layerFlights = null;\n var layerSelFlight = null;\n var layerSelFlightFeature = null;\n var layerSelFlightLayer = null;\n\n /**\r\n * When a flight is clicked on, show the path, etc for that flight\r\n * @param feature\r\n * @param layer\r\n */\n var onFlightClick = function onFlightClick(feature, layer) {\n\n var pirep_uri = opts.pirep_uri.replace('{id}', feature.properties.pirep_id);\n var geojson_uri = opts.pirep_uri.replace('{id}', feature.properties.pirep_id) + \"/acars/geojson\";\n\n var pirep_info = $.ajax({\n url: pirep_uri,\n dataType: 'json',\n error: console.log\n });\n\n var flight_route = $.ajax({\n url: geojson_uri,\n dataType: 'json',\n error: console.log\n });\n\n // Load up the PIREP info\n $.when(flight_route).done(function (routeJson) {\n if (layerSelFlight !== null) {\n map.removeLayer(layerSelFlight);\n }\n\n layerSelFlight = leaflet.geodesic([], {\n weight: 7,\n opacity: 0.9,\n color: __WEBPACK_IMPORTED_MODULE_1__config__[\"a\" /* ACTUAL_ROUTE_COLOR */],\n wrap: false\n }).addTo(map);\n\n layerSelFlight.geoJson(routeJson.line);\n layerSelFlightFeature = feature;\n layerSelFlightLayer = layer;\n\n // Center on it, but only do it once, in case the map is moved\n if (!pannedToCenter) {\n map.panTo({ lat: routeJson.position.lat, lng: routeJson.position.lon });\n pannedToCenter = true;\n }\n });\n\n //\n // When the PIREP info is done loading, show the bottom bar\n //\n $.when(pirep_info).done(function (pirep) {\n pirep = pirep.data;\n\n var dist = void 0,\n planned_dist = void 0;\n if (opts.units === 'nmi') {\n dist = pirep.distance.nmi;\n planned_dist = pirep.planned_distance.nmi;\n } else if (opts.units === 'mi') {\n dist = pirep.distance.mi;\n planned_dist = pirep.planned_distance.mi;\n } else if (opts.units === 'km') {\n dist = pirep.distance.km;\n planned_dist = pirep.planned_distance.km;\n }\n\n // Parse flight time\n var hours = Math.floor(pirep.flight_time / 60);\n var mins = pirep.flight_time % 60;\n\n $('#map_flight_id').text(pirep.airline.icao + pirep.flight_number);\n $('#map_flight_info').text(pirep.dpt_airport.name + ' (' + pirep.dpt_airport.icao + ') to ' + pirep.arr_airport.name + ' (' + pirep.arr_airport.icao + ')');\n\n $('#map_flight_stats_middle').html('Status: ' + pirep.status_text + '
' + 'Flight Time: ' + hours + 'h ' + mins + 'm
' + 'Distance: ' + dist + ' / ' + planned_dist + opts.units + '
');\n\n // Show flight stat info\n $('#map_flight_stats_right').html('Ground Speed: ' + pirep.position.gs + '
' + 'Altitude: ' + pirep.position.altitude + '
' + 'Heading: ' + pirep.position.heading + '');\n\n $('#map-info-bar').show();\n });\n };\n\n var updateMap = function updateMap() {\n\n console.log('reloading flights from acars...');\n\n /**\r\n * AJAX UPDATE\r\n */\n\n var flights = $.ajax({\n url: opts.update_uri,\n dataType: 'json',\n error: console.log\n });\n\n $.when(flights).done(function (flightGeoJson) {\n\n if (layerFlights !== null) {\n layerFlights.clearLayers();\n }\n\n layerFlights = leaflet.geoJSON(flightGeoJson, {\n onEachFeature: function onEachFeature(feature, layer) {\n layer.on({\n click: function click(e) {\n pannedToCenter = false;\n onFlightClick(feature, layer);\n }\n });\n\n var popup_html = '';\n if (feature.properties && feature.properties.popup !== '' && feature.properties.popup !== undefined) {\n popup_html += feature.properties.popup;\n layer.bindPopup(popup_html);\n }\n },\n pointToLayer: function pointToLayer(feature, latlon) {\n return leaflet.marker(latlon, {\n icon: aircraftIcon,\n rotationAngle: feature.properties.heading\n });\n }\n });\n\n layerFlights.addTo(map);\n\n // Reload the clicked-flight information\n if (layerSelFlight !== null) {\n onFlightClick(layerSelFlightFeature, layerSelFlightLayer);\n }\n });\n };\n\n updateMap();\n setInterval(updateMap, 10000);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9saXZlX21hcC5qcz9lN2Y2Il0sIm5hbWVzIjpbImxlYWZsZXQiLCJyZXF1aXJlIiwib3B0cyIsIk9iamVjdCIsImFzc2lnbiIsInVwZGF0ZV91cmkiLCJwaXJlcF91cmkiLCJwb3NpdGlvbnMiLCJyZW5kZXJfZWxlbSIsImFpcmNyYWZ0X2ljb24iLCJ1bml0cyIsIm1hcCIsImRyYXdfYmFzZV9tYXAiLCJhaXJjcmFmdEljb24iLCJpY29uIiwiaWNvblVybCIsImljb25TaXplIiwiaWNvbkFuY2hvciIsInBhbm5lZFRvQ2VudGVyIiwibGF5ZXJGbGlnaHRzIiwibGF5ZXJTZWxGbGlnaHQiLCJsYXllclNlbEZsaWdodEZlYXR1cmUiLCJsYXllclNlbEZsaWdodExheWVyIiwib25GbGlnaHRDbGljayIsImZlYXR1cmUiLCJsYXllciIsInJlcGxhY2UiLCJwcm9wZXJ0aWVzIiwicGlyZXBfaWQiLCJnZW9qc29uX3VyaSIsInBpcmVwX2luZm8iLCIkIiwiYWpheCIsInVybCIsImRhdGFUeXBlIiwiZXJyb3IiLCJjb25zb2xlIiwibG9nIiwiZmxpZ2h0X3JvdXRlIiwid2hlbiIsImRvbmUiLCJyb3V0ZUpzb24iLCJyZW1vdmVMYXllciIsImdlb2Rlc2ljIiwid2VpZ2h0Iiwib3BhY2l0eSIsImNvbG9yIiwid3JhcCIsImFkZFRvIiwiZ2VvSnNvbiIsImxpbmUiLCJwYW5UbyIsImxhdCIsInBvc2l0aW9uIiwibG5nIiwibG9uIiwicGlyZXAiLCJkYXRhIiwiZGlzdCIsInBsYW5uZWRfZGlzdCIsImRpc3RhbmNlIiwibm1pIiwicGxhbm5lZF9kaXN0YW5jZSIsIm1pIiwia20iLCJob3VycyIsIk1hdGgiLCJmbG9vciIsImZsaWdodF90aW1lIiwibWlucyIsInRleHQiLCJhaXJsaW5lIiwiaWNhbyIsImZsaWdodF9udW1iZXIiLCJkcHRfYWlycG9ydCIsIm5hbWUiLCJhcnJfYWlycG9ydCIsImh0bWwiLCJzdGF0dXNfdGV4dCIsImdzIiwiYWx0aXR1ZGUiLCJoZWFkaW5nIiwic2hvdyIsInVwZGF0ZU1hcCIsImZsaWdodHMiLCJmbGlnaHRHZW9Kc29uIiwiY2xlYXJMYXllcnMiLCJnZW9KU09OIiwib25FYWNoRmVhdHVyZSIsIm9uIiwiY2xpY2siLCJlIiwicG9wdXBfaHRtbCIsInBvcHVwIiwidW5kZWZpbmVkIiwiYmluZFBvcHVwIiwicG9pbnRUb0xheWVyIiwibGF0bG9uIiwibWFya2VyIiwicm90YXRpb25BbmdsZSIsInNldEludGVydmFsIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQSxJQUFNQSxVQUFVLG1CQUFBQyxDQUFRLDRDQUFSLENBQWhCOztBQUVBO0FBQ0E7O0FBRUE7Ozs7O0FBS0EseURBQWUsVUFBQ0MsSUFBRCxFQUFVOztBQUVyQkEsV0FBT0MsT0FBT0MsTUFBUCxDQUFjO0FBQ2pCQyxvQkFBWSxZQURLO0FBRWpCQyxtQkFBVyxrQkFGTTtBQUdqQkMsbUJBQVcsSUFITTtBQUlqQkMscUJBQWEsS0FKSTtBQUtqQkMsdUJBQWUsZ0NBTEU7QUFNakJDLGVBQU87QUFOVSxLQUFkLEVBT0pSLElBUEksQ0FBUDs7QUFTQSxRQUFNUyxNQUFNLGtFQUFBQyxDQUFjVixJQUFkLENBQVo7QUFDQSxRQUFNVyxlQUFlYixRQUFRYyxJQUFSLENBQWE7QUFDOUJDLGlCQUFTYixLQUFLTyxhQURnQjtBQUU5Qk8sa0JBQVUsQ0FBQyxFQUFELEVBQUssRUFBTCxDQUZvQjtBQUc5QkMsb0JBQVksQ0FBQyxFQUFELEVBQUssRUFBTDtBQUhrQixLQUFiLENBQXJCOztBQU1BLFFBQUlDLGlCQUFpQixLQUFyQjtBQUNBLFFBQUlDLGVBQWUsSUFBbkI7QUFDQSxRQUFJQyxpQkFBaUIsSUFBckI7QUFDQSxRQUFJQyx3QkFBd0IsSUFBNUI7QUFDQSxRQUFJQyxzQkFBc0IsSUFBMUI7O0FBRUE7Ozs7O0FBS0EsUUFBTUMsZ0JBQWdCLFNBQWhCQSxhQUFnQixDQUFDQyxPQUFELEVBQVVDLEtBQVYsRUFBb0I7O0FBRXRDLFlBQU1u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QWUsdUJBQUNoRSxPQUFELEVBQVVDLEtBQVYsRUFBb0I7QUFDL0JBLDBCQUFNZ0UsRUFBTixDQUFTO0FBQ0xDLCtCQUFPLGVBQUNDLENBQUQsRUFBTztBQUNWekUsNkNBQWlCLEtBQWpCO0FBQ0FLLDBDQUFjQyxPQUFkLEVBQXVCQyxLQUF2QjtBQUNIO0FBSkkscUJBQVQ7O0FBT0Esd0JBQUltRSxhQUFhLEVBQWpCO0FBQ0Esd0JBQUlwRSxRQUFRRyxVQUFSLElBQXVCSCxRQUFRRyxVQUFSLENBQW1Ca0UsS0FBbkIsS0FBNkIsRUFBN0IsSUFBbUNyRSxRQUFRRyxVQUFSLENBQW1Ca0UsS0FBbkIsS0FBNkJDLFNBQTNGLEVBQXVHO0FBQ25HRixzQ0FBY3BFLFFBQVFHLFVBQVIsQ0FBbUJrRSxLQUFqQztBQUNBcEUsOEJBQU1zRSxTQUFOLENBQWdCSCxVQUFoQjtBQUNIO0FBQ0osaUJBZHlDO0FBZTFDSSw4QkFBYyxzQkFBVXhFLE9BQVYsRUFBbUJ5RSxNQUFuQixFQUEyQjtBQUNyQywyQkFBT2pHLFFBQVFrRyxNQUFSLENBQWVELE1BQWYsRUFBdUI7QUFDMUJuRiw4QkFBTUQsWUFEb0I7QUFFMUJzRix1Q0FBZTNFLFFBQVFHLFVBQVIsQ0FBbUJzRDtBQUZSLHFCQUF2QixDQUFQO0FBSUg7QUFwQnlDLGFBQS9CLENBQWY7O0FBdUJBOUQseUJBQWE2QixLQUFiLENBQW1CckMsR0FBbkI7O0FBRUE7QUFDQSxnQkFBSVMsbUJBQW1CLElBQXZCLEVBQTZCO0FBQ3pCRyw4QkFBY0YscUJBQWQsRUFBcUNDLG1CQUFyQztBQUNIO0FBQ0osU0FuQ0Q7QUFvQ0gsS0FsREQ7O0FBb0RBNkQ7QUFDQWlCLGdCQUFZakIsU0FBWixFQUF1QixLQUF2QjtBQUNILENBeEtEIiwiZmlsZSI6Ii4vcmVzb3VyY2VzL2pzL21hcHMvbGl2ZV9tYXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBsZWFmbGV0ID0gcmVxdWlyZSgnbGVhZmxldCcpO1xyXG5cclxuaW1wb3J0IGRyYXdfYmFzZV9tYXAgZnJvbSAnLi9iYXNlX21hcCdcclxuaW1wb3J0IHtBQ1RVQUxfUk9VVEVfQ09MT1J9IGZyb20gJy4vY29uZmlnJ1xyXG5cclxuLyoqXHJcbiAqIFJlbmRlciB0aGUgbGl2ZSBtYXBcclxuICogQHBhcmFtIG9wdHNcclxuICogQHByaXZhdGVcclxuICovXHJcbmV4cG9ydCBkZWZhdWx0IChvcHRzKSA9PiB7XHJcblxyXG4gICAgb3B0cyA9IE9iamVjdC5hc3NpZ24oe1xyXG4gICAgICAgIHVwZGF0ZV91cmk6ICcvYXBpL2FjYXJzJyxcclxuICAgICAgICBwaXJlcF91cmk6ICcvYXBpL3BpcmVwcy97aWR9JyxcclxuICAgICAgICBwb3NpdGlvbnM6IG51bGwsXHJcbiAgICAgICAgcmVuZGVyX2VsZW06ICdtYXAnLFxyXG4gICAgICAgIGFpcmNyYWZ0X2ljb246ICcvYXNzZXRzL2ltZy9hY2Fycy9haXJjcmFmdC5wbmcnLFxyXG4gICAgICAgIHVuaXRzOiAnbm1pJyxcclxuICAgIH0sIG9wdHMpO1xyXG5cclxuICAgIGNvbnN0IG1hcCA9IGRyYXdfYmFzZV9tYXAob3B0cyk7XHJcbiAgICBjb25zdCBhaXJjcmFmdEljb24gPSBsZWFmbGV0Lmljb24oe1xyXG4gICAgICAgIGljb25Vcmw6IG9wdHMuYWlyY3JhZnRfaWNvbixcclxuICAgICAgICBpY29uU2l6ZTogWzQyLCA0Ml0sXHJcbiAgICAgICAgaWNvbkFuY2hvcjogWzIxLCAyMV0sXHJcbiAgICB9KTtcclxuXHJcbiAgICBsZXQgcGFubmVkVG9DZW50ZXIgPSBmYWxzZTtcclxuICAgIGxldCBsYXllckZsaWdodHMgPSBudWxsO1xyXG4gICAgbGV0IGxheWVyU2VsRmxpZ2h0ID0gbnVsbDtcclxuICAgIGxldCBsYXllclNlbEZsaWdodEZlYXR1cmUgPSBudWxsO1xyXG4gICAgbGV0IGxheWVyU2VsRmxpZ2h0TGF5ZXIgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hlbiBhIGZsaWdodCBpcyBjbGlja2VkIG9uLCBzaG93IHRoZSBwYXRoLCBldGMgZm9yIHRoYXQgZmxpZ2h0XHJcbiAgICAgKiBAcGFyYW0gZmVhdHVyZVxyXG4gICAgICogQHBhcmFtIGxheWVyXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IG9uRmxpZ2h0Q2xpY2sgPSAoZmVhdHVyZSwgbGF5ZXIpID0+IHtcclxuXHJcbiAgICAgICAgY29uc3QgcGlyZXBfdXJpID0gb3B0cy5waXJlcF91cmkucmVwbGFjZSgne2lkfScsIGZlYXR1cmUucHJvcGVydGllcy5waXJlcF9pZCk7XHJcbiAgICAgICAgY29uc3QgZ2VvanNvbl91cmkgPSBvcHRzLnBpcmVwX3VyaS5yZXBsYWNlKCd7aWR9JywgZmVhdHVyZS5wcm9wZXJ0aWVzLnBpcmVwX2lkKSArIFwiL2FjYXJzL2dlb2pzb25cIjtcclxuXHJcbiAgICAgICAgY29uc3QgcGlyZXBfaW5mbyA9ICQuYWpheCh7XHJcbiAgICAgICAgICAgIHVybDogcGlyZXBfdXJpLFxyXG4gICAgICAgICAgICBkYXRhVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICBlcnJvcjogY29uc29sZS5sb2dcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgZmxpZ2h0X3JvdXRlID0gJC5hamF4KHtcclxuICAgICAgICAgICAgdXJsOiBnZW9qc29uX3VyaSxcclxuICAgICAgICAgICAgZGF0YVR5cGU6ICdqc29uJyxcclxuICAgICAgICAgICAgZXJyb3I6IGNvbnNvbGUubG9nXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIExvYWQgdXAgdGhlIFBJUkVQIGluZm9cclxuICAgICAgICAkLndoZW4oZmxpZ2h0X3JvdXRlKS5kb25lKChyb3V0ZUpzb24pID0+IHtcclxuICAgICAgICAgICAgaWYgKGxheWVyU2VsRmxpZ2h0ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXJTZWxGbGlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsYXllclNlbEZsaWdodCA9IGxlYWZsZXQuZ2VvZGVzaWMoW10sIHtcclxuICAgICAgICAgICAgICAgIHdlaWdodDogNyxcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuOSxcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBBQ1RVQUxfUk9VVEVfQ09MT1IsXHJcbiAgICAgICAgICAgICAgICB3cmFwOiBmYWxzZSxcclxuICAgICAgICAgICAgfSkuYWRkVG8obWFwKTtcclxuXHJcbiAgICAgICAgICAgIGxheWVyU2VsRmxpZ2h0Lmdlb0pzb24ocm91dGVKc29uLmxpbmUpO1xyXG4gICAgICAgICAgICBsYXllclNlbEZsaWdodEZlYXR1cmUgPSBmZWF0dXJlO1xyXG4gICAgICAgICAgICBsYXllclNlbEZsaWdodExheWVyID0gbGF5ZXI7XHJcblxyXG4gICAgICAgICAgICAvLyBDZW50ZXIgb24gaXQsIGJ1dCBvbmx5IGRvIGl0IG9uY2UsIGluIGNhc2UgdGhlIG1hcCBpcyBtb3ZlZFxyXG4gICAgICAgICAgICBpZighcGFubmVkVG9DZW50ZXIpIHtcclxuICAgICAgICAgICAgICAgIG1hcC5wYW5Ubyh7bGF0OiByb3V0ZUpzb24ucG9zaXRpb24ubGF0LCBsbmc6IHJvdXRlSnNvbi5wb3NpdGlvbi5sb259KTtcclxuICAgICAgICAgICAgICAgIHBhbm5lZFRvQ2VudGVyID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFdoZW4gdGhlIFBJUkVQIGluZm8gaXMgZG9uZSBsb2FkaW5nLCBzaG93IHRoZSBib3R0b20gYmFyXHJcbiAgICAgICAgLy9cclxuICAgICAgICAkLndoZW4ocGlyZXBfaW5mbykuZG9uZShwaXJlcCA9PiB7IHBpcmVwID0gcGlyZXAuZGF0YTtcclxuXHJcbiAgICAgICAgICAgIGxldCBkaXN0LCBwbGFubmVkX2Rpc3Q7XHJcbiAgICAgICAgICAgIGlmKG9wdHMudW5pdHMgPT09ICdubWknKSB7XHJcbiAgICAgICAgICAgICAgICBkaXN0ID0gcGlyZXAuZGlzdGFuY2Uubm1pO1xyXG4gICAgICAgICAgICAgICAgcGxhbm5lZF9kaXN0ID0gcGlyZXAucGxhbm5lZF9kaXN0YW5jZS5ubWk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZihvcHRzLnVuaXRzID09PSAnbWknKSB7XHJcbiAgICAgICAgICAgICAgICBkaXN0ID0gcGlyZXAuZGlzdGFuY2UubWk7XHJcbiAgICAgICAgICAgICAgICBwbGFubmVkX2Rpc3QgPSBwaXJlcC5wbGFubmVkX2Rpc3RhbmNlLm1pO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYob3B0cy51bml0cyA9PT0gJ2ttJykge1xyXG4gICAgICAgICAgICAgICAgZGlzdCA9IHBpcmVwLmRpc3RhbmNlLmttO1xyXG4gICAgICAgICAgICAgICAgcGxhbm5lZF9kaXN0ID0gcGlyZXAucGxhbm5lZF9kaXN0YW5jZS5rbTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gUGFyc2UgZmxpZ2h0IHRpbWVcclxuICAgICAgICAgICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKHBpcmVwLmZsaWdodF90aW1lIC8gNjApO1xyXG4gICAgICAgICAgICBjb25zdCBtaW5zID0gcGlyZXAuZmxpZ2h0X3RpbWUgJSA2MDtcclxuXHJcbiAgICAgICAgICAgICQoJyNtYXBfZmxpZ2h0X2lkJykudGV4dChwaXJlcC5haXJsaW5lLmljYW8gKyBwaXJlcC5mbGlnaHRfbnVtYmVyKTtcclxuICAgICAgICAgICAgJCgnI21hcF9mbGlnaHRfaW5mbycpLnRleHQoXHJcbiAgICAgICAgICAgICAgICBwaXJlcC5kcHRfYWlycG9ydC5uYW1lICsgJyAoJyArIHBpcmVwLmRwdF9haXJwb3J0LmljYW8gKyAnKSB0byAnICtcclxuICAgICAgICAgICAgICAgIHBpcmVwLmFycl9haXJwb3J0Lm5hbWUgKyAnICgnICsgcGlyZXAuYXJyX2FpcnBvcnQuaWNhbyArICcpJ1xyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgJCgnI21hcF9mbGlnaHRfc3RhdHNfbWlkZGxlJykuaHRtbChcclxuICAgICAgICAgICAgICAgICdTdGF0dXM6IDxzdHJvbmc+JyArIHBpcmVwLnN0YXR1c190ZXh0ICsgJzwvc3Ryb25nPjxiciAvPicgK1xyXG4gICAgICAgICAgICAgICAgJ0ZsaWdodCBUaW1lOiA8c3Ryb25nPicgKyBob3VycyArICdoICcgKyBtaW5zICsgJ208L3N0cm9uZz48YnIgLz4nICtcclxuICAgICAgICAgICAgICAgICdEaXN0YW5jZTogPHN0cm9uZz4nICsgZGlzdCArICc8L3N0cm9uZz4gLyAnICsgcGxhbm5lZF9kaXN0ICsgb3B0cy51bml0cyArICc8YnIgLz4nXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAvLyBTaG93IGZsaWdodCBzdGF0IGluZm9cclxuICAgICAgICAgICAgJCgnI21hcF9mbGlnaHRfc3RhdHNfcmlnaHQnKS5odG1sKFxyXG4gICAgICAgICAgICAgICAgJ0dyb3VuZCBTcGVlZDogPHN0cm9uZz4nICsgcGlyZXAucG9zaXRpb24uZ3MgKyAnPC9zdHJvbmc+PGJyIC8+JyArXHJcbiAgICAgICAgICAgICAgICAnQWx0aXR1ZGU6IDxzdHJvbmc+JyArIHBpcmVwLnBvc2l0aW9uLmFsdGl0dWRlICsgJzwvc3Ryb25nPjxiciAvPicgICtcclxuICAgICAgICAgICAgICAgICdIZWFkaW5nOiA8c3Ryb25nPicgKyBwaXJlcC5wb3NpdGlvbi5oZWFkaW5nICsgJzwvc3Ryb25nPidcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICQoJyNtYXAtaW5mby1iYXInKS5zaG93KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHVwZGF0ZU1hcCA9ICgpID0+IHtcclxuXHJcbiAgICAgICAgY29uc29sZS5sb2coJ3JlbG9hZGluZyBmbGlnaHRzIGZyb20gYWNhcnMuLi4nKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQUpBWCBVUERBVEVcclxuICAgICAgICAgKi9cclxuXHJcbiAgICAgICAgbGV0IGZsaWdodHMgPSAkLmFqYXgoe1xyXG4gICAgICAgICAgICB1cmw6IG9wdHMudXBkYXRlX3VyaSxcclxuICAgICAgICAgICAgZGF0YVR5cGU6ICdqc29uJyxcclxuICAgICAgICAgICAgZXJyb3I6IGNvbnNvbGUubG9nXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICQud2hlbihmbGlnaHRzKS5kb25lKGZ1bmN0aW9uIChmbGlnaHRHZW9Kc29uKSB7XHJcblxyXG4gICAgICAgICAgICBpZiAobGF5ZXJGbGlnaHRzICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBsYXllckZsaWdodHMuY2xlYXJMYXllcnMoKVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsYXllckZsaWdodHMgPSBsZWFmbGV0Lmdlb0pTT04oZmxpZ2h0R2VvSnNvbiwge1xyXG4gICAgICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogKGZlYXR1cmUsIGxheWVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGF5ZXIub24oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGljazogKGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbm5lZFRvQ2VudGVyID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZsaWdodENsaWNrKGZlYXR1cmUsIGxheWVyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwb3B1cF9odG1sID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZlYXR1cmUucHJvcGVydGllcyAmJiAoZmVhdHVyZS5wcm9wZXJ0aWVzLnBvcHVwICE9PSAnJyAmJiBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXAgIT09IHVuZGVmaW5lZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9wdXBfaHRtbCArPSBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyLmJpbmRQb3B1cChwb3B1cF9odG1sKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgcG9pbnRUb0xheWVyOiBmdW5jdGlvbiAoZmVhdHVyZSwgbGF0bG9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlYWZsZXQubWFya2VyKGxhdGxvbiwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBhaXJjcmFmdEljb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uQW5nbGU6IGZlYXR1cmUucHJvcGVydGllcy5oZWFkaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBsYXllckZsaWdodHMuYWRkVG8obWFwKTtcclxuXHJcbiAgICAgICAgICAgIC8vIFJlbG9hZCB0aGUgY2xpY2tlZC1mbGlnaHQgaW5mb3JtYXRpb25cclxuICAgICAgICAgICAgaWYgKGxheWVyU2VsRmxpZ2h0ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBvbkZsaWdodENsaWNrKGxheWVyU2VsRmxpZ2h0RmVhdHVyZSwgbGF5ZXJTZWxGbGlnaHRMYXllcilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9O1xyXG5cclxuICAgIHVwZGF0ZU1hcCgpO1xyXG4gICAgc2V0SW50ZXJ2YWwodXBkYXRlTWFwLCAxMDAwMClcclxufTtcclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcmVzb3VyY2VzL2pzL21hcHMvbGl2ZV9tYXAuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/maps/live_map.js\n"); /***/ }), @@ -366,7 +366,7 @@ eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpa /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* unused harmony export onFeaturePointClick */\n/* unused harmony export pointToLayer */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpack_require__(\"./resources/js/maps/base_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(\"./resources/js/maps/helpers.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__config__ = __webpack_require__(\"./resources/js/maps/config.js\");\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n\n\n\n\n\n/**\n * Show some popup text when a feature is clicked on\n * @param feature\n * @param layer\n */\nvar onFeaturePointClick = function onFeaturePointClick(feature, layer) {\n var popup_html = '';\n if (feature.properties && feature.properties.popup) {\n popup_html += feature.properties.popup;\n }\n\n layer.bindPopup(popup_html);\n};\n\n/**\n * Show each point as a marker\n * @param feature\n * @param latlng\n * @returns {*}\n */\nvar pointToLayer = function pointToLayer(feature, latlng) {\n return leaflet.circleMarker(latlng, {\n radius: 5,\n fillColor: __WEBPACK_IMPORTED_MODULE_2__config__[\"b\" /* CIRCLE_COLOR */],\n color: '#000',\n weight: 1,\n opacity: 1,\n fillOpacity: 0.8\n });\n};\n\n/**\n *\n * @param opts\n * @private\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n\n opts = Object.assign({\n\n route_points: null,\n planned_route_line: null,\n actual_route_points: null,\n actual_route_line: null,\n render_elem: 'map',\n live_map: false,\n aircraft_icon: '/assets/img/acars/aircraft.png',\n metar_wms: {\n url: '',\n params: {}\n }\n }, opts);\n\n var aircraftIcon = leaflet.icon({\n iconUrl: opts.aircraft_icon,\n iconSize: [42, 42],\n iconAnchor: [21, 21]\n });\n\n var map = Object(__WEBPACK_IMPORTED_MODULE_0__base_map__[\"a\" /* default */])(opts);\n var layerLiveFlight = void 0;\n\n if (opts.metar_wms.url !== '') {\n Object(__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* addWMSLayer */])(map, opts.metar_wms);\n }\n\n var geodesicLayer = leaflet.geodesic([], {\n weight: 4,\n opacity: 0.9,\n color: __WEBPACK_IMPORTED_MODULE_2__config__[\"c\" /* PLAN_ROUTE_COLOR */],\n steps: 50,\n wrap: false\n }).addTo(map);\n\n geodesicLayer.geoJson(opts.planned_route_line);\n\n try {\n map.fitBounds(geodesicLayer.getBounds());\n } catch (e) {\n console.log(e);\n }\n\n // Draw the route points after\n if (opts.route_points !== null) {\n var route_points = leaflet.geoJSON(opts.route_points, {\n onEachFeature: onFeaturePointClick,\n pointToLayer: pointToLayer,\n style: {\n 'color': __WEBPACK_IMPORTED_MODULE_2__config__[\"c\" /* PLAN_ROUTE_COLOR */],\n 'weight': 3,\n 'opacity': 0.65\n }\n });\n\n route_points.addTo(map);\n }\n\n /**\n * draw the actual route\n */\n\n if (opts.actual_route_line !== null && opts.actual_route_line.features.length > 0) {\n var _geodesicLayer = leaflet.geodesic([], {\n weight: 3,\n opacity: 0.9,\n color: __WEBPACK_IMPORTED_MODULE_2__config__[\"a\" /* ACTUAL_ROUTE_COLOR */],\n steps: 50,\n wrap: false\n }).addTo(map);\n\n _geodesicLayer.geoJson(opts.actual_route_line);\n\n try {\n map.fitBounds(_geodesicLayer.getBounds());\n } catch (e) {\n console.log(e);\n }\n }\n\n if (opts.actual_route_points !== null && opts.actual_route_points.features.length > 0) {\n var _route_points = leaflet.geoJSON(opts.actual_route_points, {\n onEachFeature: onFeaturePointClick,\n pointToLayer: pointToLayer,\n style: {\n 'color': __WEBPACK_IMPORTED_MODULE_2__config__[\"a\" /* ACTUAL_ROUTE_COLOR */],\n 'weight': 3,\n 'opacity': 0.65\n }\n });\n\n _route_points.addTo(map);\n }\n\n /**\n *\n */\n var liveFlight = function liveFlight() {\n var uri = opts.pirep_uri;\n var live_route = $.ajax({\n url: uri,\n dataType: 'json',\n error: console.log\n });\n\n $.when(live_route).done(function (routeJson) {\n layerLiveFlight = leaflet.geoJSON(routeJson, {\n pointToLayer: function pointToLayer(feature, latlon) {\n return leaflet.marker(latlon, {\n icon: aircraftIcon,\n rotationAngle: feature.properties.heading\n });\n }\n });\n\n layerLiveFlight.addTo(map);\n });\n };\n\n setInterval(liveFlight, 10000);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9yb3V0ZV9tYXAuanM/YTc0NSJdLCJuYW1lcyI6WyJsZWFmbGV0IiwicmVxdWlyZSIsIm9uRmVhdHVyZVBvaW50Q2xpY2siLCJmZWF0dXJlIiwibGF5ZXIiLCJwb3B1cF9odG1sIiwicHJvcGVydGllcyIsInBvcHVwIiwiYmluZFBvcHVwIiwicG9pbnRUb0xheWVyIiwibGF0bG5nIiwiY2lyY2xlTWFya2VyIiwicmFkaXVzIiwiZmlsbENvbG9yIiwiY29sb3IiLCJ3ZWlnaHQiLCJvcGFjaXR5IiwiZmlsbE9wYWNpdHkiLCJvcHRzIiwiT2JqZWN0IiwiYXNzaWduIiwicm91dGVfcG9pbnRzIiwicGxhbm5lZF9yb3V0ZV9saW5lIiwiYWN0dWFsX3JvdXRlX3BvaW50cyIsImFjdHVhbF9yb3V0ZV9saW5lIiwicmVuZGVyX2VsZW0iLCJsaXZlX21hcCIsImFpcmNyYWZ0X2ljb24iLCJtZXRhcl93bXMiLCJ1cmwiLCJwYXJhbXMiLCJhaXJjcmFmdEljb24iLCJpY29uIiwiaWNvblVybCIsImljb25TaXplIiwiaWNvbkFuY2hvciIsIm1hcCIsImRyYXdfYmFzZV9tYXAiLCJsYXllckxpdmVGbGlnaHQiLCJhZGRXTVNMYXllciIsImdlb2Rlc2ljTGF5ZXIiLCJnZW9kZXNpYyIsInN0ZXBzIiwid3JhcCIsImFkZFRvIiwiZ2VvSnNvbiIsImZpdEJvdW5kcyIsImdldEJvdW5kcyIsImUiLCJjb25zb2xlIiwibG9nIiwiZ2VvSlNPTiIsIm9uRWFjaEZlYXR1cmUiLCJzdHlsZSIsImZlYXR1cmVzIiwibGVuZ3RoIiwibGl2ZUZsaWdodCIsInVyaSIsInBpcmVwX3VyaSIsImxpdmVfcm91dGUiLCIkIiwiYWpheCIsImRhdGFUeXBlIiwiZXJyb3IiLCJ3aGVuIiwiZG9uZSIsInJvdXRlSnNvbiIsImxhdGxvbiIsIm1hcmtlciIsInJvdGF0aW9uQW5nbGUiLCJoZWFkaW5nIiwic2V0SW50ZXJ2YWwiXSwibWFwcGluZ3Mi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QVUsVUFBRUksSUFBRixDQUFPTCxVQUFQLEVBQW1CTSxJQUFuQixDQUF3QixVQUFDQyxTQUFELEVBQWU7QUFDbkM1Qiw4QkFBa0J0QyxRQUFRbUQsT0FBUixDQUFnQmUsU0FBaEIsRUFBMkI7QUFDekN6RCw4QkFBYyxzQkFBVU4sT0FBVixFQUFtQmdFLE1BQW5CLEVBQTJCO0FBQ3JDLDJCQUFPbkUsUUFBUW9FLE1BQVIsQ0FBZUQsTUFBZixFQUF1QjtBQUMxQm5DLDhCQUFNRCxZQURvQjtBQUUxQnNDLHVDQUFlbEUsUUFBUUcsVUFBUixDQUFtQmdFO0FBRlIscUJBQXZCLENBQVA7QUFJSDtBQU53QyxhQUEzQixDQUFsQjs7QUFTQWhDLDRCQUFnQk0sS0FBaEIsQ0FBc0JSLEdBQXRCO0FBQ0gsU0FYRDtBQVlILEtBcEJEOztBQXNCQW1DLGdCQUFZZixVQUFaLEVBQXdCLEtBQXhCO0FBQ0gsQ0EzSEQiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvbWFwcy9yb3V0ZV9tYXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBsZWFmbGV0ID0gcmVxdWlyZSgnbGVhZmxldCcpO1xuXG5pbXBvcnQgZHJhd19iYXNlX21hcCBmcm9tICcuL2Jhc2VfbWFwJ1xuaW1wb3J0IHthZGRXTVNMYXllcn0gZnJvbSAnLi9oZWxwZXJzJztcblxuaW1wb3J0IHtBQ1RVQUxfUk9VVEVfQ09MT1IsIENJUkNMRV9DT0xPUiwgUExBTl9ST1VURV9DT0xPUn0gZnJvbSAnLi9jb25maWcnXG5cbi8qKlxuICogU2hvdyBzb21lIHBvcHVwIHRleHQgd2hlbiBhIGZlYXR1cmUgaXMgY2xpY2tlZCBvblxuICogQHBhcmFtIGZlYXR1cmVcbiAqIEBwYXJhbSBsYXllclxuICovXG5leHBvcnQgY29uc3Qgb25GZWF0dXJlUG9pbnRDbGljayA9IChmZWF0dXJlLCBsYXllcikgPT4ge1xuICAgIGxldCBwb3B1cF9odG1sID0gJyc7XG4gICAgaWYgKGZlYXR1cmUucHJvcGVydGllcyAmJiBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXApIHtcbiAgICAgICAgcG9wdXBfaHRtbCArPSBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXBcbiAgICB9XG5cbiAgICBsYXllci5iaW5kUG9wdXAocG9wdXBfaHRtbClcbn07XG5cbi8qKlxuICogU2hvdyBlYWNoIHBvaW50IGFzIGEgbWFya2VyXG4gKiBAcGFyYW0gZmVhdHVyZVxuICogQHBhcmFtIGxhdGxuZ1xuICogQHJldHVybnMgeyp9XG4gKi9cbmV4cG9ydCBjb25zdCBwb2ludFRvTGF5ZXIgPSAoZmVhdHVyZSwgbGF0bG5nKSA9PiB7XG4gICAgcmV0dXJuIGxlYWZsZXQuY2lyY2xlTWFya2VyKGxhdGxuZywge1xuICAgICAgICByYWRpdXM6IDUsXG4gICAgICAgIGZpbGxDb2xvcjogQ0lSQ0xFX0NPTE9SLFxuICAgICAgICBjb2xvcjogJyMwMDAnLFxuICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgIGZpbGxPcGFjaXR5OiAwLjhcbiAgICB9KVxufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0gb3B0c1xuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGRlZmF1bHQgKG9wdHMpID0+IHtcblxuICAgIG9wdHMgPSBPYmplY3QuYXNzaWduKHtcblxuICAgICAgICByb3V0ZV9wb2ludHM6IG51bGwsXG4gICAgICAgIHBsYW5uZWRfcm91dGVfbGluZTogbnVsbCxcbiAgICAgICAgYWN0dWFsX3JvdXRlX3BvaW50czogbnVsbCxcbiAgICAgICAgYWN0dWFsX3JvdXRlX2xpbmU6IG51bGwsXG4gICAgICAgIHJlbmRlcl9lbGVtOiAnbWFwJyxcbiAgICAgICAgbGl2ZV9tYXA6IGZhbHNlLFxuICAgICAgICBhaXJjcmFmdF9pY29uOiAnL2Fzc2V0cy9pbWcvYWNhcnMvYWlyY3JhZnQucG5nJyxcbiAgICAgICAgbWV0YXJfd21zOiB7XG4gICAgICAgICAgICB1cmw6ICcnLFxuICAgICAgICAgICAgcGFyYW1zOiB7fVxuICAgICAgICB9LFxuICAgIH0sIG9wdHMpO1xuXG4gICAgY29uc3QgYWlyY3JhZnRJY29uID0gbGVhZmxldC5pY29uKHtcbiAgICAgICAgaWNvblVybDogb3B0cy5haXJjcmFmdF9pY29uLFxuICAgICAgICBpY29uU2l6ZTogWzQyLCA0Ml0sXG4gICAgICAgIGljb25BbmNob3I6IFsyMSwgMjFdLFxuICAgIH0pO1xuXG4gICAgbGV0IG1hcCA9IGRyYXdfYmFzZV9tYXAob3B0cyk7XG4gICAgbGV0IGxheWVyTGl2ZUZsaWdodDtcblxuICAgIGlmIChvcHRzLm1ldGFyX3dtcy51cmwgIT09ICcnKSB7XG4gICAgICAgIGFkZFdNU0xheWVyKG1hcCwgb3B0cy5tZXRhcl93bXMpO1xuICAgIH1cblxuICAgIGxldCBnZW9kZXNpY0xheWVyID0gbGVhZmxldC5nZW9kZXNpYyhbXSwge1xuICAgICAgICB3ZWlnaHQ6IDQsXG4gICAgICAgIG9wYWNpdHk6IDAuOSxcbiAgICAgICAgY29sb3I6IFBMQU5fUk9VVEVfQ09MT1IsXG4gICAgICAgIHN0ZXBzOiA1MCxcbiAgICAgICAgd3JhcDogZmFsc2UsXG4gICAgfSkuYWRkVG8obWFwKTtcblxuICAgIGdlb2Rlc2ljTGF5ZXIuZ2VvSnNvbihvcHRzLnBsYW5uZWRfcm91dGVfbGluZSk7XG5cbiAgICB0cnkge1xuICAgICAgICBtYXAuZml0Qm91bmRzKGdlb2Rlc2ljTGF5ZXIuZ2V0Qm91bmRzKCkpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhlKVxuICAgIH1cblxuICAgIC8vIERyYXcgdGhlIHJvdXRlIHBvaW50cyBhZnRlclxuICAgIGlmIChvcHRzLnJvdXRlX3BvaW50cyAhPT0gbnVsbCkge1xuICAgICAgICBsZXQgcm91dGVfcG9pbnRzID0gbGVhZmxldC5nZW9KU09OKG9wdHMucm91dGVfcG9pbnRzLCB7XG4gICAgICAgICAgICBvbkVhY2hGZWF0dXJlOiBvbkZlYXR1cmVQb2ludENsaWNrLFxuICAgICAgICAgICAgcG9pbnRUb0xheWVyOiBwb2ludFRvTGF5ZXIsXG4gICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICdjb2xvcic6IFBMQU5fUk9VVEVfQ09MT1IsXG4gICAgICAgICAgICAgICAgJ3dlaWdodCc6IDMsXG4gICAgICAgICAgICAgICAgJ29wYWNpdHknOiAwLjY1LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcm91dGVfcG9pbnRzLmFkZFRvKG1hcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZHJhdyB0aGUgYWN0dWFsIHJvdXRlXG4gICAgICovXG5cbiAgICBpZiAob3B0cy5hY3R1YWxfcm91dGVfbGluZSAhPT0gbnVsbCAmJiBvcHRzLmFjdHVhbF9yb3V0ZV9saW5lLmZlYXR1cmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbGV0IGdlb2Rlc2ljTGF5ZXIgPSBsZWFmbGV0Lmdlb2Rlc2ljKFtdLCB7XG4gICAgICAgICAgICB3ZWlnaHQ6IDMsXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjksXG4gICAgICAgICAgICBjb2xvcjogQUNUVUFMX1JPVVRFX0NPTE9SLFxuICAgICAgICAgICAgc3RlcHM6IDUwLFxuICAgICAgICAgICAgd3JhcDogZmFsc2UsXG4gICAgICAgIH0pLmFkZFRvKG1hcCk7XG5cbiAgICAgICAgZ2VvZGVzaWNMYXllci5nZW9Kc29uKG9wdHMuYWN0dWFsX3JvdXRlX2xpbmUpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBtYXAuZml0Qm91bmRzKGdlb2Rlc2ljTGF5ZXIuZ2V0Qm91bmRzKCkpXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3B0cy5hY3R1YWxfcm91dGVfcG9pbnRzICE9PSBudWxsICYmIG9wdHMuYWN0dWFsX3JvdXRlX3BvaW50cy5mZWF0dXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGxldCByb3V0ZV9wb2ludHMgPSBsZWFmbGV0Lmdlb0pTT04ob3B0cy5hY3R1YWxfcm91dGVfcG9pbnRzLCB7XG4gICAgICAgICAgICBvbkVhY2hGZWF0dXJlOiBvbkZlYXR1cmVQb2ludENsaWNrLFxuICAgICAgICAgICAgcG9pbnRUb0xheWVyOiBwb2ludFRvTGF5ZXIsXG4gICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICdjb2xvcic6IEFDVFVBTF9ST1VURV9DT0xPUixcbiAgICAgICAgICAgICAgICAnd2VpZ2h0JzogMyxcbiAgICAgICAgICAgICAgICAnb3BhY2l0eSc6IDAuNjUsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICByb3V0ZV9wb2ludHMuYWRkVG8obWFwKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgY29uc3QgbGl2ZUZsaWdodCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgdXJpID0gb3B0cy5waXJlcF91cmk7XG4gICAgICAgIGNvbnN0IGxpdmVfcm91dGUgPSAkLmFqYXgoe1xuICAgICAgICAgICAgdXJsOiB1cmksXG4gICAgICAgICAgICBkYXRhVHlwZTogJ2pzb24nLFxuICAgICAgICAgICAgZXJyb3I6IGNvbnNvbGUubG9nXG4gICAgICAgIH0pO1xuXG4gICAgICAgICQud2hlbihsaXZlX3JvdXRlKS5kb25lKChyb3V0ZUpzb24pID0+IHtcbiAgICAgICAgICAgIGxheWVyTGl2ZUZsaWdodCA9IGxlYWZsZXQuZ2VvSlNPTihyb3V0ZUpzb24sIHtcbiAgICAgICAgICAgICAgICBwb2ludFRvTGF5ZXI6IGZ1bmN0aW9uIChmZWF0dXJlLCBsYXRsb24pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlYWZsZXQubWFya2VyKGxhdGxvbiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogYWlyY3JhZnRJY29uLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb25BbmdsZTogZmVhdHVyZS5wcm9wZXJ0aWVzLmhlYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBsYXllckxpdmVGbGlnaHQuYWRkVG8obWFwKVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgc2V0SW50ZXJ2YWwobGl2ZUZsaWdodCwgMTAwMDApO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9qcy9tYXBzL3JvdXRlX21hcC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/maps/route_map.js\n"); +eval("/* unused harmony export onFeaturePointClick */\n/* unused harmony export pointToLayer */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpack_require__(\"./resources/js/maps/base_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(\"./resources/js/maps/helpers.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__config__ = __webpack_require__(\"./resources/js/maps/config.js\");\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n\n\n\n\n\n/**\r\n * Show some popup text when a feature is clicked on\r\n * @param feature\r\n * @param layer\r\n */\nvar onFeaturePointClick = function onFeaturePointClick(feature, layer) {\n var popup_html = '';\n if (feature.properties && feature.properties.popup) {\n popup_html += feature.properties.popup;\n }\n\n layer.bindPopup(popup_html);\n};\n\n/**\r\n * Show each point as a marker\r\n * @param feature\r\n * @param latlng\r\n * @returns {*}\r\n */\nvar pointToLayer = function pointToLayer(feature, latlng) {\n return leaflet.circleMarker(latlng, {\n radius: 5,\n fillColor: __WEBPACK_IMPORTED_MODULE_2__config__[\"b\" /* CIRCLE_COLOR */],\n color: '#000',\n weight: 1,\n opacity: 1,\n fillOpacity: 0.8\n });\n};\n\n/**\r\n *\r\n * @param opts\r\n * @private\r\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n\n opts = Object.assign({\n\n route_points: null,\n planned_route_line: null,\n actual_route_points: null,\n actual_route_line: null,\n render_elem: 'map',\n live_map: false,\n aircraft_icon: '/assets/img/acars/aircraft.png',\n metar_wms: {\n url: '',\n params: {}\n }\n }, opts);\n\n var aircraftIcon = leaflet.icon({\n iconUrl: opts.aircraft_icon,\n iconSize: [42, 42],\n iconAnchor: [21, 21]\n });\n\n var map = Object(__WEBPACK_IMPORTED_MODULE_0__base_map__[\"a\" /* default */])(opts);\n var layerLiveFlight = void 0;\n\n if (opts.metar_wms.url !== '') {\n Object(__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* addWMSLayer */])(map, opts.metar_wms);\n }\n\n var geodesicLayer = leaflet.geodesic([], {\n weight: 4,\n opacity: 0.9,\n color: __WEBPACK_IMPORTED_MODULE_2__config__[\"c\" /* PLAN_ROUTE_COLOR */],\n steps: 50,\n wrap: false\n }).addTo(map);\n\n geodesicLayer.geoJson(opts.planned_route_line);\n\n try {\n map.fitBounds(geodesicLayer.getBounds());\n } catch (e) {\n console.log(e);\n }\n\n // Draw the route points after\n if (opts.route_points !== null) {\n var route_points = leaflet.geoJSON(opts.route_points, {\n onEachFeature: onFeaturePointClick,\n pointToLayer: pointToLayer,\n style: {\n 'color': __WEBPACK_IMPORTED_MODULE_2__config__[\"c\" /* PLAN_ROUTE_COLOR */],\n 'weight': 3,\n 'opacity': 0.65\n }\n });\n\n route_points.addTo(map);\n }\n\n /**\r\n * draw the actual route\r\n */\n\n if (opts.actual_route_line !== null && opts.actual_route_line.features.length > 0) {\n var _geodesicLayer = leaflet.geodesic([], {\n weight: 3,\n opacity: 0.9,\n color: __WEBPACK_IMPORTED_MODULE_2__config__[\"a\" /* ACTUAL_ROUTE_COLOR */],\n steps: 50,\n wrap: false\n }).addTo(map);\n\n _geodesicLayer.geoJson(opts.actual_route_line);\n\n try {\n map.fitBounds(_geodesicLayer.getBounds());\n } catch (e) {\n console.log(e);\n }\n }\n\n if (opts.actual_route_points !== null && opts.actual_route_points.features.length > 0) {\n var _route_points = leaflet.geoJSON(opts.actual_route_points, {\n onEachFeature: onFeaturePointClick,\n pointToLayer: pointToLayer,\n style: {\n 'color': __WEBPACK_IMPORTED_MODULE_2__config__[\"a\" /* ACTUAL_ROUTE_COLOR */],\n 'weight': 3,\n 'opacity': 0.65\n }\n });\n\n _route_points.addTo(map);\n }\n\n /**\r\n *\r\n */\n var liveFlight = function liveFlight() {\n var uri = opts.pirep_uri;\n var live_route = $.ajax({\n url: uri,\n dataType: 'json',\n error: console.log\n });\n\n $.when(live_route).done(function (routeJson) {\n layerLiveFlight = leaflet.geoJSON(routeJson, {\n pointToLayer: function pointToLayer(feature, latlon) {\n return leaflet.marker(latlon, {\n icon: aircraftIcon,\n rotationAngle: feature.properties.heading\n });\n }\n });\n\n layerLiveFlight.addTo(map);\n });\n };\n\n setInterval(liveFlight, 10000);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9yb3V0ZV9tYXAuanM/YTc0NSJdLCJuYW1lcyI6WyJsZWFmbGV0IiwicmVxdWlyZSIsIm9uRmVhdHVyZVBvaW50Q2xpY2siLCJmZWF0dXJlIiwibGF5ZXIiLCJwb3B1cF9odG1sIiwicHJvcGVydGllcyIsInBvcHVwIiwiYmluZFBvcHVwIiwicG9pbnRUb0xheWVyIiwibGF0bG5nIiwiY2lyY2xlTWFya2VyIiwicmFkaXVzIiwiZmlsbENvbG9yIiwiY29sb3IiLCJ3ZWlnaHQiLCJvcGFjaXR5IiwiZmlsbE9wYWNpdHkiLCJvcHRzIiwiT2JqZWN0IiwiYXNzaWduIiwicm91dGVfcG9pbnRzIiwicGxhbm5lZF9yb3V0ZV9saW5lIiwiYWN0dWFsX3JvdXRlX3BvaW50cyIsImFjdHVhbF9yb3V0ZV9saW5lIiwicmVuZGVyX2VsZW0iLCJsaXZlX21hcCIsImFpcmNyYWZ0X2ljb24iLCJtZXRhcl93bXMiLCJ1cmwiLCJwYXJhbXMiLCJhaXJjcmFmdEljb24iLCJpY29uIiwiaWNvblVybCIsImljb25TaXplIiwiaWNvbkFuY2hvciIsIm1hcCIsImRyYXdfYmFzZV9tYXAiLCJsYXllckxpdmVGbGlnaHQiLCJhZGRXTVNMYXllciIsImdlb2Rlc2ljTGF5ZXIiLCJnZW9kZXNpYyIsInN0ZXBzIiwid3JhcCIsImFkZFRvIiwiZ2VvSnNvbiIsImZpdEJvdW5kcyIsImdldEJvdW5kcyIsImUiLCJjb25zb2xlIiwibG9nIiwiZ2VvSlNPTiIsIm9uRWFjaEZlYXR1cmUiLCJzdHlsZSIsImZlYXR1cmVzIiwibGVuZ3RoIiwibGl2ZUZsaWdodCIsInVyaSIsInBpcmVwX3VyaSIsImxpdmVfcm91dGUiLCIkIiwiYWpheCIsImRhdGFUeXBlIiwiZXJyb3IiLCJ3aGVuIiwiZG9uZSIsInJvdXRlSnNvbiIsImxhdGxvbiIsIm1hcmtlciIsInJvdGF0aW9uQW5nbGUiLCJoZWFkaW5nIiwic2V0SW50ZXJ2YWwiXSwibWFwcGluZ3Mi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QVUsVUFBRUksSUFBRixDQUFPTCxVQUFQLEVBQW1CTSxJQUFuQixDQUF3QixVQUFDQyxTQUFELEVBQWU7QUFDbkM1Qiw4QkFBa0J0QyxRQUFRbUQsT0FBUixDQUFnQmUsU0FBaEIsRUFBMkI7QUFDekN6RCw4QkFBYyxzQkFBVU4sT0FBVixFQUFtQmdFLE1BQW5CLEVBQTJCO0FBQ3JDLDJCQUFPbkUsUUFBUW9FLE1BQVIsQ0FBZUQsTUFBZixFQUF1QjtBQUMxQm5DLDhCQUFNRCxZQURvQjtBQUUxQnNDLHVDQUFlbEUsUUFBUUcsVUFBUixDQUFtQmdFO0FBRlIscUJBQXZCLENBQVA7QUFJSDtBQU53QyxhQUEzQixDQUFsQjs7QUFTQWhDLDRCQUFnQk0sS0FBaEIsQ0FBc0JSLEdBQXRCO0FBQ0gsU0FYRDtBQVlILEtBcEJEOztBQXNCQW1DLGdCQUFZZixVQUFaLEVBQXdCLEtBQXhCO0FBQ0gsQ0EzSEQiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvbWFwcy9yb3V0ZV9tYXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBsZWFmbGV0ID0gcmVxdWlyZSgnbGVhZmxldCcpO1xyXG5cclxuaW1wb3J0IGRyYXdfYmFzZV9tYXAgZnJvbSAnLi9iYXNlX21hcCdcclxuaW1wb3J0IHthZGRXTVNMYXllcn0gZnJvbSAnLi9oZWxwZXJzJztcclxuXHJcbmltcG9ydCB7QUNUVUFMX1JPVVRFX0NPTE9SLCBDSVJDTEVfQ09MT1IsIFBMQU5fUk9VVEVfQ09MT1J9IGZyb20gJy4vY29uZmlnJ1xyXG5cclxuLyoqXHJcbiAqIFNob3cgc29tZSBwb3B1cCB0ZXh0IHdoZW4gYSBmZWF0dXJlIGlzIGNsaWNrZWQgb25cclxuICogQHBhcmFtIGZlYXR1cmVcclxuICogQHBhcmFtIGxheWVyXHJcbiAqL1xyXG5leHBvcnQgY29uc3Qgb25GZWF0dXJlUG9pbnRDbGljayA9IChmZWF0dXJlLCBsYXllcikgPT4ge1xyXG4gICAgbGV0IHBvcHVwX2h0bWwgPSAnJztcclxuICAgIGlmIChmZWF0dXJlLnByb3BlcnRpZXMgJiYgZmVhdHVyZS5wcm9wZXJ0aWVzLnBvcHVwKSB7XHJcbiAgICAgICAgcG9wdXBfaHRtbCArPSBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXBcclxuICAgIH1cclxuXHJcbiAgICBsYXllci5iaW5kUG9wdXAocG9wdXBfaHRtbClcclxufTtcclxuXHJcbi8qKlxyXG4gKiBTaG93IGVhY2ggcG9pbnQgYXMgYSBtYXJrZXJcclxuICogQHBhcmFtIGZlYXR1cmVcclxuICogQHBhcmFtIGxhdGxuZ1xyXG4gKiBAcmV0dXJucyB7Kn1cclxuICovXHJcbmV4cG9ydCBjb25zdCBwb2ludFRvTGF5ZXIgPSAoZmVhdHVyZSwgbGF0bG5nKSA9PiB7XHJcbiAgICByZXR1cm4gbGVhZmxldC5jaXJjbGVNYXJrZXIobGF0bG5nLCB7XHJcbiAgICAgICAgcmFkaXVzOiA1LFxyXG4gICAgICAgIGZpbGxDb2xvcjogQ0lSQ0xFX0NPTE9SLFxyXG4gICAgICAgIGNvbG9yOiAnIzAwMCcsXHJcbiAgICAgICAgd2VpZ2h0OiAxLFxyXG4gICAgICAgIG9wYWNpdHk6IDEsXHJcbiAgICAgICAgZmlsbE9wYWNpdHk6IDAuOFxyXG4gICAgfSlcclxufVxyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSBvcHRzXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5leHBvcnQgZGVmYXVsdCAob3B0cykgPT4ge1xyXG5cclxuICAgIG9wdHMgPSBPYmplY3QuYXNzaWduKHtcclxuXHJcbiAgICAgICAgcm91dGVfcG9pbnRzOiBudWxsLFxyXG4gICAgICAgIHBsYW5uZWRfcm91dGVfbGluZTogbnVsbCxcclxuICAgICAgICBhY3R1YWxfcm91dGVfcG9pbnRzOiBudWxsLFxyXG4gICAgICAgIGFjdHVhbF9yb3V0ZV9saW5lOiBudWxsLFxyXG4gICAgICAgIHJlbmRlcl9lbGVtOiAnbWFwJyxcclxuICAgICAgICBsaXZlX21hcDogZmFsc2UsXHJcbiAgICAgICAgYWlyY3JhZnRfaWNvbjogJy9hc3NldHMvaW1nL2FjYXJzL2FpcmNyYWZ0LnBuZycsXHJcbiAgICAgICAgbWV0YXJfd21zOiB7XHJcbiAgICAgICAgICAgIHVybDogJycsXHJcbiAgICAgICAgICAgIHBhcmFtczoge31cclxuICAgICAgICB9LFxyXG4gICAgfSwgb3B0cyk7XHJcblxyXG4gICAgY29uc3QgYWlyY3JhZnRJY29uID0gbGVhZmxldC5pY29uKHtcclxuICAgICAgICBpY29uVXJsOiBvcHRzLmFpcmNyYWZ0X2ljb24sXHJcbiAgICAgICAgaWNvblNpemU6IFs0MiwgNDJdLFxyXG4gICAgICAgIGljb25BbmNob3I6IFsyMSwgMjFdLFxyXG4gICAgfSk7XHJcblxyXG4gICAgbGV0IG1hcCA9IGRyYXdfYmFzZV9tYXAob3B0cyk7XHJcbiAgICBsZXQgbGF5ZXJMaXZlRmxpZ2h0O1xyXG5cclxuICAgIGlmIChvcHRzLm1ldGFyX3dtcy51cmwgIT09ICcnKSB7XHJcbiAgICAgICAgYWRkV01TTGF5ZXIobWFwLCBvcHRzLm1ldGFyX3dtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGdlb2Rlc2ljTGF5ZXIgPSBsZWFmbGV0Lmdlb2Rlc2ljKFtdLCB7XHJcbiAgICAgICAgd2VpZ2h0OiA0LFxyXG4gICAgICAgIG9wYWNpdHk6IDAuOSxcclxuICAgICAgICBjb2xvcjogUExBTl9ST1VURV9DT0xPUixcclxuICAgICAgICBzdGVwczogNTAsXHJcbiAgICAgICAgd3JhcDogZmFsc2UsXHJcbiAgICB9KS5hZGRUbyhtYXApO1xyXG5cclxuICAgIGdlb2Rlc2ljTGF5ZXIuZ2VvSnNvbihvcHRzLnBsYW5uZWRfcm91dGVfbGluZSk7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgICBtYXAuZml0Qm91bmRzKGdlb2Rlc2ljTGF5ZXIuZ2V0Qm91bmRzKCkpXHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZSlcclxuICAgIH1cclxuXHJcbiAgICAvLyBEcmF3IHRoZSByb3V0ZSBwb2ludHMgYWZ0ZXJcclxuICAgIGlmIChvcHRzLnJvdXRlX3BvaW50cyAhPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCByb3V0ZV9wb2ludHMgPSBsZWFmbGV0Lmdlb0pTT04ob3B0cy5yb3V0ZV9wb2ludHMsIHtcclxuICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogb25GZWF0dXJlUG9pbnRDbGljayxcclxuICAgICAgICAgICAgcG9pbnRUb0xheWVyOiBwb2ludFRvTGF5ZXIsXHJcbiAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICAnY29sb3InOiBQTEFOX1JPVVRFX0NPTE9SLFxyXG4gICAgICAgICAgICAgICAgJ3dlaWdodCc6IDMsXHJcbiAgICAgICAgICAgICAgICAnb3BhY2l0eSc6IDAuNjUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJvdXRlX3BvaW50cy5hZGRUbyhtYXApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZHJhdyB0aGUgYWN0dWFsIHJvdXRlXHJcbiAgICAgKi9cclxuXHJcbiAgICBpZiAob3B0cy5hY3R1YWxfcm91dGVfbGluZSAhPT0gbnVsbCAmJiBvcHRzLmFjdHVhbF9yb3V0ZV9saW5lLmZlYXR1cmVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBsZXQgZ2VvZGVzaWNMYXllciA9IGxlYWZsZXQuZ2VvZGVzaWMoW10sIHtcclxuICAgICAgICAgICAgd2VpZ2h0OiAzLFxyXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjksXHJcbiAgICAgICAgICAgIGNvbG9yOiBBQ1RVQUxfUk9VVEVfQ09MT1IsXHJcbiAgICAgICAgICAgIHN0ZXBzOiA1MCxcclxuICAgICAgICAgICAgd3JhcDogZmFsc2UsXHJcbiAgICAgICAgfSkuYWRkVG8obWFwKTtcclxuXHJcbiAgICAgICAgZ2VvZGVzaWNMYXllci5nZW9Kc29uKG9wdHMuYWN0dWFsX3JvdXRlX2xpbmUpO1xyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBtYXAuZml0Qm91bmRzKGdlb2Rlc2ljTGF5ZXIuZ2V0Qm91bmRzKCkpXHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlKVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0cy5hY3R1YWxfcm91dGVfcG9pbnRzICE9PSBudWxsICYmIG9wdHMuYWN0dWFsX3JvdXRlX3BvaW50cy5mZWF0dXJlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgbGV0IHJvdXRlX3BvaW50cyA9IGxlYWZsZXQuZ2VvSlNPTihvcHRzLmFjdHVhbF9yb3V0ZV9wb2ludHMsIHtcclxuICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogb25GZWF0dXJlUG9pbnRDbGljayxcclxuICAgICAgICAgICAgcG9pbnRUb0xheWVyOiBwb2ludFRvTGF5ZXIsXHJcbiAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICAnY29sb3InOiBBQ1RVQUxfUk9VVEVfQ09MT1IsXHJcbiAgICAgICAgICAgICAgICAnd2VpZ2h0JzogMyxcclxuICAgICAgICAgICAgICAgICdvcGFjaXR5JzogMC42NSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcm91dGVfcG9pbnRzLmFkZFRvKG1hcClcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGxpdmVGbGlnaHQgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdXJpID0gb3B0cy5waXJlcF91cmk7XHJcbiAgICAgICAgY29uc3QgbGl2ZV9yb3V0ZSA9ICQuYWpheCh7XHJcbiAgICAgICAgICAgIHVybDogdXJpLFxyXG4gICAgICAgICAgICBkYXRhVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICBlcnJvcjogY29uc29sZS5sb2dcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgJC53aGVuKGxpdmVfcm91dGUpLmRvbmUoKHJvdXRlSnNvbikgPT4ge1xyXG4gICAgICAgICAgICBsYXllckxpdmVGbGlnaHQgPSBsZWFmbGV0Lmdlb0pTT04ocm91dGVKc29uLCB7XHJcbiAgICAgICAgICAgICAgICBwb2ludFRvTGF5ZXI6IGZ1bmN0aW9uIChmZWF0dXJlLCBsYXRsb24pIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGVhZmxldC5tYXJrZXIobGF0bG9uLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246IGFpcmNyYWZ0SWNvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb25BbmdsZTogZmVhdHVyZS5wcm9wZXJ0aWVzLmhlYWRpbmdcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxheWVyTGl2ZUZsaWdodC5hZGRUbyhtYXApXHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHNldEludGVydmFsKGxpdmVGbGlnaHQsIDEwMDAwKTtcclxufTtcclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcmVzb3VyY2VzL2pzL21hcHMvcm91dGVfbWFwLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/maps/route_map.js\n"); /***/ }), diff --git a/public/assets/admin/js/vendor.js b/public/assets/admin/js/vendor.js index c42f0e17..1ee244d1 100644 --- a/public/assets/admin/js/vendor.js +++ b/public/assets/admin/js/vendor.js @@ -44514,6 +44514,1252 @@ S2.define('jquery.select2',[ } })(window.jQuery || window.Zepto); +/*! + * Pikaday + * + * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/dbushell/Pikaday + */ + +(function (root, factory) +{ + 'use strict'; + + var moment; + if (typeof exports === 'object') { + // CommonJS module + // Load moment.js as an optional dependency + try { moment = require('moment'); } catch (e) {} + module.exports = factory(moment); + } else if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(function (req) + { + // Load moment.js as an optional dependency + var id = 'moment'; + try { moment = req(id); } catch (e) {} + return factory(moment); + }); + } else { + root.Pikaday = factory(root.moment); + } +}(this, function (moment) +{ + 'use strict'; + + /** + * feature detection and helper functions + */ + var hasMoment = typeof moment === 'function', + + hasEventListeners = !!window.addEventListener, + + document = window.document, + + sto = window.setTimeout, + + addEvent = function(el, e, callback, capture) + { + if (hasEventListeners) { + el.addEventListener(e, callback, !!capture); + } else { + el.attachEvent('on' + e, callback); + } + }, + + removeEvent = function(el, e, callback, capture) + { + if (hasEventListeners) { + el.removeEventListener(e, callback, !!capture); + } else { + el.detachEvent('on' + e, callback); + } + }, + + trim = function(str) + { + return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g,''); + }, + + hasClass = function(el, cn) + { + return (' ' + el.className + ' ').indexOf(' ' + cn + ' ') !== -1; + }, + + addClass = function(el, cn) + { + if (!hasClass(el, cn)) { + el.className = (el.className === '') ? cn : el.className + ' ' + cn; + } + }, + + removeClass = function(el, cn) + { + el.className = trim((' ' + el.className + ' ').replace(' ' + cn + ' ', ' ')); + }, + + isArray = function(obj) + { + return (/Array/).test(Object.prototype.toString.call(obj)); + }, + + isDate = function(obj) + { + return (/Date/).test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime()); + }, + + isWeekend = function(date) + { + var day = date.getDay(); + return day === 0 || day === 6; + }, + + isLeapYear = function(year) + { + // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951 + return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; + }, + + getDaysInMonth = function(year, month) + { + return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]; + }, + + setToStartOfDay = function(date) + { + if (isDate(date)) date.setHours(0,0,0,0); + }, + + compareDates = function(a,b) + { + // weak date comparison (use setToStartOfDay(date) to ensure correct result) + return a.getTime() === b.getTime(); + }, + + extend = function(to, from, overwrite) + { + var prop, hasProp; + for (prop in from) { + hasProp = to[prop] !== undefined; + if (hasProp && typeof from[prop] === 'object' && from[prop] !== null && from[prop].nodeName === undefined) { + if (isDate(from[prop])) { + if (overwrite) { + to[prop] = new Date(from[prop].getTime()); + } + } + else if (isArray(from[prop])) { + if (overwrite) { + to[prop] = from[prop].slice(0); + } + } else { + to[prop] = extend({}, from[prop], overwrite); + } + } else if (overwrite || !hasProp) { + to[prop] = from[prop]; + } + } + return to; + }, + + fireEvent = function(el, eventName, data) + { + var ev; + + if (document.createEvent) { + ev = document.createEvent('HTMLEvents'); + ev.initEvent(eventName, true, false); + ev = extend(ev, data); + el.dispatchEvent(ev); + } else if (document.createEventObject) { + ev = document.createEventObject(); + ev = extend(ev, data); + el.fireEvent('on' + eventName, ev); + } + }, + + adjustCalendar = function(calendar) { + if (calendar.month < 0) { + calendar.year -= Math.ceil(Math.abs(calendar.month)/12); + calendar.month += 12; + } + if (calendar.month > 11) { + calendar.year += Math.floor(Math.abs(calendar.month)/12); + calendar.month -= 12; + } + return calendar; + }, + + /** + * defaults and localisation + */ + defaults = { + + // bind the picker to a form field + field: null, + + // automatically show/hide the picker on `field` focus (default `true` if `field` is set) + bound: undefined, + + // position of the datepicker, relative to the field (default to bottom & left) + // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position) + position: 'bottom left', + + // automatically fit in the viewport even if it means repositioning from the position option + reposition: true, + + // the default output format for `.toString()` and `field` value + format: 'YYYY-MM-DD', + + // the toString function which gets passed a current date object and format + // and returns a string + toString: null, + + // used to create date object from current input string + parse: null, + + // the initial date to view when first opened + defaultDate: null, + + // make the `defaultDate` the initial selected value + setDefaultDate: false, + + // first day of week (0: Sunday, 1: Monday etc) + firstDay: 0, + + // the default flag for moment's strict date parsing + formatStrict: false, + + // the minimum/earliest date that can be selected + minDate: null, + // the maximum/latest date that can be selected + maxDate: null, + + // number of years either side, or array of upper/lower range + yearRange: 10, + + // show week numbers at head of row + showWeekNumber: false, + + // Week picker mode + pickWholeWeek: false, + + // used internally (don't config outside) + minYear: 0, + maxYear: 9999, + minMonth: undefined, + maxMonth: undefined, + + startRange: null, + endRange: null, + + isRTL: false, + + // Additional text to append to the year in the calendar title + yearSuffix: '', + + // Render the month after year in the calendar title + showMonthAfterYear: false, + + // Render days of the calendar grid that fall in the next or previous month + showDaysInNextAndPreviousMonths: false, + + // Allows user to select days that fall in the next or previous month + enableSelectionDaysInNextAndPreviousMonths: false, + + // how many months are visible + numberOfMonths: 1, + + // when numberOfMonths is used, this will help you to choose where the main calendar will be (default `left`, can be set to `right`) + // only used for the first display or when a selected date is not visible + mainCalendar: 'left', + + // Specify a DOM element to render the calendar in + container: undefined, + + // Blur field when date is selected + blurFieldOnSelect : true, + + // internationalization + i18n: { + previousMonth : 'Previous Month', + nextMonth : 'Next Month', + months : ['January','February','March','April','May','June','July','August','September','October','November','December'], + weekdays : ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'], + weekdaysShort : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'] + }, + + // Theme Classname + theme: null, + + // events array + events: [], + + // callback function + onSelect: null, + onOpen: null, + onClose: null, + onDraw: null, + + // Enable keyboard input + keyboardInput: true + }, + + + /** + * templating functions to abstract HTML rendering + */ + renderDayName = function(opts, day, abbr) + { + day += opts.firstDay; + while (day >= 7) { + day -= 7; + } + return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day]; + }, + + renderDay = function(opts) + { + var arr = []; + var ariaSelected = 'false'; + if (opts.isEmpty) { + if (opts.showDaysInNextAndPreviousMonths) { + arr.push('is-outside-current-month'); + + if(!opts.enableSelectionDaysInNextAndPreviousMonths) { + arr.push('is-selection-disabled'); + } + + } else { + return ''; + } + } + if (opts.isDisabled) { + arr.push('is-disabled'); + } + if (opts.isToday) { + arr.push('is-today'); + } + if (opts.isSelected) { + arr.push('is-selected'); + ariaSelected = 'true'; + } + if (opts.hasEvent) { + arr.push('has-event'); + } + if (opts.isInRange) { + arr.push('is-inrange'); + } + if (opts.isStartRange) { + arr.push('is-startrange'); + } + if (opts.isEndRange) { + arr.push('is-endrange'); + } + return '' + + '' + + ''; + }, + + renderWeek = function (d, m, y) { + // Lifted from http://javascript.about.com/library/blweekyear.htm, lightly modified. + var onejan = new Date(y, 0, 1), + weekNum = Math.ceil((((new Date(y, m, d) - onejan) / 86400000) + onejan.getDay()+1)/7); + return '' + weekNum + ''; + }, + + renderRow = function(days, isRTL, pickWholeWeek, isRowSelected) + { + return '' + (isRTL ? days.reverse() : days).join('') + ''; + }, + + renderBody = function(rows) + { + return '' + rows.join('') + ''; + }, + + renderHead = function(opts) + { + var i, arr = []; + if (opts.showWeekNumber) { + arr.push(''); + } + for (i = 0; i < 7; i++) { + arr.push('' + renderDayName(opts, i, true) + ''); + } + return '' + (opts.isRTL ? arr.reverse() : arr).join('') + ''; + }, + + renderTitle = function(instance, c, year, month, refYear, randId) + { + var i, j, arr, + opts = instance._o, + isMinYear = year === opts.minYear, + isMaxYear = year === opts.maxYear, + html = '
', + monthHtml, + yearHtml, + prev = true, + next = true; + + for (arr = [], i = 0; i < 12; i++) { + arr.push(''); + } + + monthHtml = '
' + opts.i18n.months[month] + '
'; + + if (isArray(opts.yearRange)) { + i = opts.yearRange[0]; + j = opts.yearRange[1] + 1; + } else { + i = year - opts.yearRange; + j = 1 + year + opts.yearRange; + } + + for (arr = []; i < j && i <= opts.maxYear; i++) { + if (i >= opts.minYear) { + arr.push(''); + } + } + yearHtml = '
' + year + opts.yearSuffix + '
'; + + if (opts.showMonthAfterYear) { + html += yearHtml + monthHtml; + } else { + html += monthHtml + yearHtml; + } + + if (isMinYear && (month === 0 || opts.minMonth >= month)) { + prev = false; + } + + if (isMaxYear && (month === 11 || opts.maxMonth <= month)) { + next = false; + } + + if (c === 0) { + html += ''; + } + if (c === (instance._o.numberOfMonths - 1) ) { + html += ''; + } + + return html += '
'; + }, + + renderTable = function(opts, data, randId) + { + return '' + renderHead(opts) + renderBody(data) + '
'; + }, + + + /** + * Pikaday constructor + */ + Pikaday = function(options) + { + var self = this, + opts = self.config(options); + + self._onMouseDown = function(e) + { + if (!self._v) { + return; + } + e = e || window.event; + var target = e.target || e.srcElement; + if (!target) { + return; + } + + if (!hasClass(target, 'is-disabled')) { + if (hasClass(target, 'pika-button') && !hasClass(target, 'is-empty') && !hasClass(target.parentNode, 'is-disabled')) { + self.setDate(new Date(target.getAttribute('data-pika-year'), target.getAttribute('data-pika-month'), target.getAttribute('data-pika-day'))); + if (opts.bound) { + sto(function() { + self.hide(); + if (opts.blurFieldOnSelect && opts.field) { + opts.field.blur(); + } + }, 100); + } + } + else if (hasClass(target, 'pika-prev')) { + self.prevMonth(); + } + else if (hasClass(target, 'pika-next')) { + self.nextMonth(); + } + } + if (!hasClass(target, 'pika-select')) { + // if this is touch event prevent mouse events emulation + if (e.preventDefault) { + e.preventDefault(); + } else { + e.returnValue = false; + return false; + } + } else { + self._c = true; + } + }; + + self._onChange = function(e) + { + e = e || window.event; + var target = e.target || e.srcElement; + if (!target) { + return; + } + if (hasClass(target, 'pika-select-month')) { + self.gotoMonth(target.value); + } + else if (hasClass(target, 'pika-select-year')) { + self.gotoYear(target.value); + } + }; + + self._onKeyChange = function(e) + { + e = e || window.event; + + if (self.isVisible()) { + + switch(e.keyCode){ + case 13: + case 27: + if (opts.field) { + opts.field.blur(); + } + break; + case 37: + e.preventDefault(); + self.adjustDate('subtract', 1); + break; + case 38: + self.adjustDate('subtract', 7); + break; + case 39: + self.adjustDate('add', 1); + break; + case 40: + self.adjustDate('add', 7); + break; + } + } + }; + + self._onInputChange = function(e) + { + var date; + + if (e.firedBy === self) { + return; + } + if (opts.parse) { + date = opts.parse(opts.field.value, opts.format); + } else if (hasMoment) { + date = moment(opts.field.value, opts.format, opts.formatStrict); + date = (date && date.isValid()) ? date.toDate() : null; + } + else { + date = new Date(Date.parse(opts.field.value)); + } + if (isDate(date)) { + self.setDate(date); + } + if (!self._v) { + self.show(); + } + }; + + self._onInputFocus = function() + { + self.show(); + }; + + self._onInputClick = function() + { + self.show(); + }; + + self._onInputBlur = function() + { + // IE allows pika div to gain focus; catch blur the input field + var pEl = document.activeElement; + do { + if (hasClass(pEl, 'pika-single')) { + return; + } + } + while ((pEl = pEl.parentNode)); + + if (!self._c) { + self._b = sto(function() { + self.hide(); + }, 50); + } + self._c = false; + }; + + self._onClick = function(e) + { + e = e || window.event; + var target = e.target || e.srcElement, + pEl = target; + if (!target) { + return; + } + if (!hasEventListeners && hasClass(target, 'pika-select')) { + if (!target.onchange) { + target.setAttribute('onchange', 'return;'); + addEvent(target, 'change', self._onChange); + } + } + do { + if (hasClass(pEl, 'pika-single') || pEl === opts.trigger) { + return; + } + } + while ((pEl = pEl.parentNode)); + if (self._v && target !== opts.trigger && pEl !== opts.trigger) { + self.hide(); + } + }; + + self.el = document.createElement('div'); + self.el.className = 'pika-single' + (opts.isRTL ? ' is-rtl' : '') + (opts.theme ? ' ' + opts.theme : ''); + + addEvent(self.el, 'mousedown', self._onMouseDown, true); + addEvent(self.el, 'touchend', self._onMouseDown, true); + addEvent(self.el, 'change', self._onChange); + + if (opts.keyboardInput) { + addEvent(document, 'keydown', self._onKeyChange); + } + + if (opts.field) { + if (opts.container) { + opts.container.appendChild(self.el); + } else if (opts.bound) { + document.body.appendChild(self.el); + } else { + opts.field.parentNode.insertBefore(self.el, opts.field.nextSibling); + } + addEvent(opts.field, 'change', self._onInputChange); + + if (!opts.defaultDate) { + if (hasMoment && opts.field.value) { + opts.defaultDate = moment(opts.field.value, opts.format).toDate(); + } else { + opts.defaultDate = new Date(Date.parse(opts.field.value)); + } + opts.setDefaultDate = true; + } + } + + var defDate = opts.defaultDate; + + if (isDate(defDate)) { + if (opts.setDefaultDate) { + self.setDate(defDate, true); + } else { + self.gotoDate(defDate); + } + } else { + self.gotoDate(new Date()); + } + + if (opts.bound) { + this.hide(); + self.el.className += ' is-bound'; + addEvent(opts.trigger, 'click', self._onInputClick); + addEvent(opts.trigger, 'focus', self._onInputFocus); + addEvent(opts.trigger, 'blur', self._onInputBlur); + } else { + this.show(); + } + }; + + + /** + * public Pikaday API + */ + Pikaday.prototype = { + + + /** + * configure functionality + */ + config: function(options) + { + if (!this._o) { + this._o = extend({}, defaults, true); + } + + var opts = extend(this._o, options, true); + + opts.isRTL = !!opts.isRTL; + + opts.field = (opts.field && opts.field.nodeName) ? opts.field : null; + + opts.theme = (typeof opts.theme) === 'string' && opts.theme ? opts.theme : null; + + opts.bound = !!(opts.bound !== undefined ? opts.field && opts.bound : opts.field); + + opts.trigger = (opts.trigger && opts.trigger.nodeName) ? opts.trigger : opts.field; + + opts.disableWeekends = !!opts.disableWeekends; + + opts.disableDayFn = (typeof opts.disableDayFn) === 'function' ? opts.disableDayFn : null; + + var nom = parseInt(opts.numberOfMonths, 10) || 1; + opts.numberOfMonths = nom > 4 ? 4 : nom; + + if (!isDate(opts.minDate)) { + opts.minDate = false; + } + if (!isDate(opts.maxDate)) { + opts.maxDate = false; + } + if ((opts.minDate && opts.maxDate) && opts.maxDate < opts.minDate) { + opts.maxDate = opts.minDate = false; + } + if (opts.minDate) { + this.setMinDate(opts.minDate); + } + if (opts.maxDate) { + this.setMaxDate(opts.maxDate); + } + + if (isArray(opts.yearRange)) { + var fallback = new Date().getFullYear() - 10; + opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback; + opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback; + } else { + opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange; + if (opts.yearRange > 100) { + opts.yearRange = 100; + } + } + + return opts; + }, + + /** + * return a formatted string of the current selection (using Moment.js if available) + */ + toString: function(format) + { + format = format || this._o.format; + if (!isDate(this._d)) { + return ''; + } + if (this._o.toString) { + return this._o.toString(this._d, format); + } + if (hasMoment) { + return moment(this._d).format(format); + } + return this._d.toDateString(); + }, + + /** + * return a Moment.js object of the current selection (if available) + */ + getMoment: function() + { + return hasMoment ? moment(this._d) : null; + }, + + /** + * set the current selection from a Moment.js object (if available) + */ + setMoment: function(date, preventOnSelect) + { + if (hasMoment && moment.isMoment(date)) { + this.setDate(date.toDate(), preventOnSelect); + } + }, + + /** + * return a Date object of the current selection + */ + getDate: function() + { + return isDate(this._d) ? new Date(this._d.getTime()) : null; + }, + + /** + * set the current selection + */ + setDate: function(date, preventOnSelect) + { + if (!date) { + this._d = null; + + if (this._o.field) { + this._o.field.value = ''; + fireEvent(this._o.field, 'change', { firedBy: this }); + } + + return this.draw(); + } + if (typeof date === 'string') { + date = new Date(Date.parse(date)); + } + if (!isDate(date)) { + return; + } + + var min = this._o.minDate, + max = this._o.maxDate; + + if (isDate(min) && date < min) { + date = min; + } else if (isDate(max) && date > max) { + date = max; + } + + this._d = new Date(date.getTime()); + setToStartOfDay(this._d); + this.gotoDate(this._d); + + if (this._o.field) { + this._o.field.value = this.toString(); + fireEvent(this._o.field, 'change', { firedBy: this }); + } + if (!preventOnSelect && typeof this._o.onSelect === 'function') { + this._o.onSelect.call(this, this.getDate()); + } + }, + + /** + * change view to a specific date + */ + gotoDate: function(date) + { + var newCalendar = true; + + if (!isDate(date)) { + return; + } + + if (this.calendars) { + var firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1), + lastVisibleDate = new Date(this.calendars[this.calendars.length-1].year, this.calendars[this.calendars.length-1].month, 1), + visibleDate = date.getTime(); + // get the end of the month + lastVisibleDate.setMonth(lastVisibleDate.getMonth()+1); + lastVisibleDate.setDate(lastVisibleDate.getDate()-1); + newCalendar = (visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate); + } + + if (newCalendar) { + this.calendars = [{ + month: date.getMonth(), + year: date.getFullYear() + }]; + if (this._o.mainCalendar === 'right') { + this.calendars[0].month += 1 - this._o.numberOfMonths; + } + } + + this.adjustCalendars(); + }, + + adjustDate: function(sign, days) { + + var day = this.getDate() || new Date(); + var difference = parseInt(days)*24*60*60*1000; + + var newDay; + + if (sign === 'add') { + newDay = new Date(day.valueOf() + difference); + } else if (sign === 'subtract') { + newDay = new Date(day.valueOf() - difference); + } + + this.setDate(newDay); + }, + + adjustCalendars: function() { + this.calendars[0] = adjustCalendar(this.calendars[0]); + for (var c = 1; c < this._o.numberOfMonths; c++) { + this.calendars[c] = adjustCalendar({ + month: this.calendars[0].month + c, + year: this.calendars[0].year + }); + } + this.draw(); + }, + + gotoToday: function() + { + this.gotoDate(new Date()); + }, + + /** + * change view to a specific month (zero-index, e.g. 0: January) + */ + gotoMonth: function(month) + { + if (!isNaN(month)) { + this.calendars[0].month = parseInt(month, 10); + this.adjustCalendars(); + } + }, + + nextMonth: function() + { + this.calendars[0].month++; + this.adjustCalendars(); + }, + + prevMonth: function() + { + this.calendars[0].month--; + this.adjustCalendars(); + }, + + /** + * change view to a specific full year (e.g. "2012") + */ + gotoYear: function(year) + { + if (!isNaN(year)) { + this.calendars[0].year = parseInt(year, 10); + this.adjustCalendars(); + } + }, + + /** + * change the minDate + */ + setMinDate: function(value) + { + if(value instanceof Date) { + setToStartOfDay(value); + this._o.minDate = value; + this._o.minYear = value.getFullYear(); + this._o.minMonth = value.getMonth(); + } else { + this._o.minDate = defaults.minDate; + this._o.minYear = defaults.minYear; + this._o.minMonth = defaults.minMonth; + this._o.startRange = defaults.startRange; + } + + this.draw(); + }, + + /** + * change the maxDate + */ + setMaxDate: function(value) + { + if(value instanceof Date) { + setToStartOfDay(value); + this._o.maxDate = value; + this._o.maxYear = value.getFullYear(); + this._o.maxMonth = value.getMonth(); + } else { + this._o.maxDate = defaults.maxDate; + this._o.maxYear = defaults.maxYear; + this._o.maxMonth = defaults.maxMonth; + this._o.endRange = defaults.endRange; + } + + this.draw(); + }, + + setStartRange: function(value) + { + this._o.startRange = value; + }, + + setEndRange: function(value) + { + this._o.endRange = value; + }, + + /** + * refresh the HTML + */ + draw: function(force) + { + if (!this._v && !force) { + return; + } + var opts = this._o, + minYear = opts.minYear, + maxYear = opts.maxYear, + minMonth = opts.minMonth, + maxMonth = opts.maxMonth, + html = '', + randId; + + if (this._y <= minYear) { + this._y = minYear; + if (!isNaN(minMonth) && this._m < minMonth) { + this._m = minMonth; + } + } + if (this._y >= maxYear) { + this._y = maxYear; + if (!isNaN(maxMonth) && this._m > maxMonth) { + this._m = maxMonth; + } + } + + randId = 'pika-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2); + + for (var c = 0; c < opts.numberOfMonths; c++) { + html += '
' + renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId) + '
'; + } + + this.el.innerHTML = html; + + if (opts.bound) { + if(opts.field.type !== 'hidden') { + sto(function() { + opts.trigger.focus(); + }, 1); + } + } + + if (typeof this._o.onDraw === 'function') { + this._o.onDraw(this); + } + + if (opts.bound) { + // let the screen reader user know to use arrow keys + opts.field.setAttribute('aria-label', 'Use the arrow keys to pick a date'); + } + }, + + adjustPosition: function() + { + var field, pEl, width, height, viewportWidth, viewportHeight, scrollTop, left, top, clientRect; + + if (this._o.container) return; + + this.el.style.position = 'absolute'; + + field = this._o.trigger; + pEl = field; + width = this.el.offsetWidth; + height = this.el.offsetHeight; + viewportWidth = window.innerWidth || document.documentElement.clientWidth; + viewportHeight = window.innerHeight || document.documentElement.clientHeight; + scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop; + + if (typeof field.getBoundingClientRect === 'function') { + clientRect = field.getBoundingClientRect(); + left = clientRect.left + window.pageXOffset; + top = clientRect.bottom + window.pageYOffset; + } else { + left = pEl.offsetLeft; + top = pEl.offsetTop + pEl.offsetHeight; + while((pEl = pEl.offsetParent)) { + left += pEl.offsetLeft; + top += pEl.offsetTop; + } + } + + // default position is bottom & left + if ((this._o.reposition && left + width > viewportWidth) || + ( + this._o.position.indexOf('right') > -1 && + left - width + field.offsetWidth > 0 + ) + ) { + left = left - width + field.offsetWidth; + } + if ((this._o.reposition && top + height > viewportHeight + scrollTop) || + ( + this._o.position.indexOf('top') > -1 && + top - height - field.offsetHeight > 0 + ) + ) { + top = top - height - field.offsetHeight; + } + + this.el.style.left = left + 'px'; + this.el.style.top = top + 'px'; + }, + + /** + * render HTML for a particular month + */ + render: function(year, month, randId) + { + var opts = this._o, + now = new Date(), + days = getDaysInMonth(year, month), + before = new Date(year, month, 1).getDay(), + data = [], + row = []; + setToStartOfDay(now); + if (opts.firstDay > 0) { + before -= opts.firstDay; + if (before < 0) { + before += 7; + } + } + var previousMonth = month === 0 ? 11 : month - 1, + nextMonth = month === 11 ? 0 : month + 1, + yearOfPreviousMonth = month === 0 ? year - 1 : year, + yearOfNextMonth = month === 11 ? year + 1 : year, + daysInPreviousMonth = getDaysInMonth(yearOfPreviousMonth, previousMonth); + var cells = days + before, + after = cells; + while(after > 7) { + after -= 7; + } + cells += 7 - after; + var isWeekSelected = false; + for (var i = 0, r = 0; i < cells; i++) + { + var day = new Date(year, month, 1 + (i - before)), + isSelected = isDate(this._d) ? compareDates(day, this._d) : false, + isToday = compareDates(day, now), + hasEvent = opts.events.indexOf(day.toDateString()) !== -1 ? true : false, + isEmpty = i < before || i >= (days + before), + dayNumber = 1 + (i - before), + monthNumber = month, + yearNumber = year, + isStartRange = opts.startRange && compareDates(opts.startRange, day), + isEndRange = opts.endRange && compareDates(opts.endRange, day), + isInRange = opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange, + isDisabled = (opts.minDate && day < opts.minDate) || + (opts.maxDate && day > opts.maxDate) || + (opts.disableWeekends && isWeekend(day)) || + (opts.disableDayFn && opts.disableDayFn(day)); + + if (isEmpty) { + if (i < before) { + dayNumber = daysInPreviousMonth + dayNumber; + monthNumber = previousMonth; + yearNumber = yearOfPreviousMonth; + } else { + dayNumber = dayNumber - days; + monthNumber = nextMonth; + yearNumber = yearOfNextMonth; + } + } + + var dayConfig = { + day: dayNumber, + month: monthNumber, + year: yearNumber, + hasEvent: hasEvent, + isSelected: isSelected, + isToday: isToday, + isDisabled: isDisabled, + isEmpty: isEmpty, + isStartRange: isStartRange, + isEndRange: isEndRange, + isInRange: isInRange, + showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths, + enableSelectionDaysInNextAndPreviousMonths: opts.enableSelectionDaysInNextAndPreviousMonths + }; + + if (opts.pickWholeWeek && isSelected) { + isWeekSelected = true; + } + + row.push(renderDay(dayConfig)); + + if (++r === 7) { + if (opts.showWeekNumber) { + row.unshift(renderWeek(i - before, month, year)); + } + data.push(renderRow(row, opts.isRTL, opts.pickWholeWeek, isWeekSelected)); + row = []; + r = 0; + isWeekSelected = false; + } + } + return renderTable(opts, data, randId); + }, + + isVisible: function() + { + return this._v; + }, + + show: function() + { + if (!this.isVisible()) { + this._v = true; + this.draw(); + removeClass(this.el, 'is-hidden'); + if (this._o.bound) { + addEvent(document, 'click', this._onClick); + this.adjustPosition(); + } + if (typeof this._o.onOpen === 'function') { + this._o.onOpen.call(this); + } + } + }, + + hide: function() + { + var v = this._v; + if (v !== false) { + if (this._o.bound) { + removeEvent(document, 'click', this._onClick); + } + this.el.style.position = 'static'; // reset + this.el.style.left = 'auto'; + this.el.style.top = 'auto'; + addClass(this.el, 'is-hidden'); + this._v = false; + if (v !== undefined && typeof this._o.onClose === 'function') { + this._o.onClose.call(this); + } + } + }, + + /** + * GAME OVER + */ + destroy: function() + { + var opts = this._o; + + this.hide(); + removeEvent(this.el, 'mousedown', this._onMouseDown, true); + removeEvent(this.el, 'touchend', this._onMouseDown, true); + removeEvent(this.el, 'change', this._onChange); + if (opts.keyboardInput) { + removeEvent(document, 'keydown', this._onKeyChange); + } + if (opts.field) { + removeEvent(opts.field, 'change', this._onInputChange); + if (opts.bound) { + removeEvent(opts.trigger, 'click', this._onInputClick); + removeEvent(opts.trigger, 'focus', this._onInputFocus); + removeEvent(opts.trigger, 'blur', this._onInputBlur); + } + } + if (this.el.parentNode) { + this.el.parentNode.removeChild(this.el); + } + } + + }; + + return Pikaday; +})); + /*! X-editable - v1.5.1 * In-place editing with Twitter Bootstrap, jQuery UI or pure jQuery * http://github.com/vitalets/x-editable diff --git a/public/assets/frontend/css/now-ui-kit.css b/public/assets/frontend/css/now-ui-kit.css index a253d6c9..b8e20a7c 100644 --- a/public/assets/frontend/css/now-ui-kit.css +++ b/public/assets/frontend/css/now-ui-kit.css @@ -1,28 +1,28 @@ -/*! - - ========================================================= - * Now-ui-kit - v1.0.0 - ========================================================= - - * Product Page: http://www.creative-tim.com/product/now-ui-kit - * Copyright 2017 Creative Tim (http://www.creative-tim.com) - * Licensed under MIT (https://github.com/creativetimofficial/now-ui-kit/blob/master/LICENSE.md) - - * Designed by www.invisionapp.com Coded by www.creative-tim.com - - ========================================================= - - * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - +/*! + + ========================================================= + * Now-ui-kit - v1.0.0 + ========================================================= + + * Product Page: http://www.creative-tim.com/product/now-ui-kit + * Copyright 2017 Creative Tim (http://www.creative-tim.com) + * Licensed under MIT (https://github.com/creativetimofficial/now-ui-kit/blob/master/LICENSE.md) + + * Designed by www.invisionapp.com Coded by www.creative-tim.com + + ========================================================= + + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + */ /* brand Colors */ /* light colors */ -/* ======================================================================== - * bootstrap-switch - v3.3.2 - * http://www.bootstrap-switch.org - * ======================================================================== - * Copyright 2012-2013 Mattia Larentis - * http://www.apache.org/licenses/LICENSE-2.0 +/* ======================================================================== + * bootstrap-switch - v3.3.2 + * http://www.bootstrap-switch.org + * ======================================================================== + * Copyright 2012-2013 Mattia Larentis + * http://www.apache.org/licenses/LICENSE-2.0 */ .bootstrap-switch { display: inline-block; @@ -293,9 +293,9 @@ } /*! nouislider - 9.1.0 - 2016-12-10 16:00:32 */ -/* Functional styling; - * These styles are required for noUiSlider to function. - * You don't need to change these rules to apply your design. +/* Functional styling; + * These styles are required for noUiSlider to function. + * You don't need to change these rules to apply your design. */ .noUi-target, .noUi-target * { @@ -353,8 +353,8 @@ cursor: inherit !important; } -/* Painting and performance; - * Browsers can paint handles in their own layer. +/* Painting and performance; + * Browsers can paint handles in their own layer. */ .noUi-base, .noUi-handle { @@ -362,7 +362,7 @@ transform: translate3d(0, 0, 0); } -/* Slider size and handle placement; +/* Slider size and handle placement; */ .noUi-horizontal { height: 1px; @@ -391,7 +391,7 @@ top: -17px; } -/* Styling; +/* Styling; */ .noUi-target { background-color: rgba(182, 182, 182, 0.3); @@ -405,7 +405,7 @@ transition: background 450ms; } -/* Handles and cursors; +/* Handles and cursors; */ .noUi-draggable { cursor: ew-resize; @@ -419,8 +419,8 @@ border-radius: 3px; background: #FFF; cursor: default; - -webkit-box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB; - box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB; + -webkit-box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB; + box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB; -webkit-transition: 300ms ease 0s; -moz-transition: 300ms ease 0s; -ms-transition: 300ms ease 0s; @@ -433,7 +433,7 @@ transform: scale3d(1.5, 1.5, 1); } -/* Disabled state; +/* Disabled state; */ [disabled] .noUi-connect { background: #B8B8B8; @@ -445,8 +445,8 @@ cursor: not-allowed; } -/* Base; - * +/* Base; + * */ .noUi-pips, .noUi-pips * { @@ -459,8 +459,8 @@ color: #999; } -/* Values; - * +/* Values; + * */ .noUi-value { position: absolute; @@ -472,8 +472,8 @@ font-size: 10px; } -/* Markings; - * +/* Markings; + * */ .noUi-marker { position: absolute; @@ -488,8 +488,8 @@ background: #AAA; } -/* Horizontal layout; - * +/* Horizontal layout; + * */ .noUi-pips-horizontal { padding: 10px 0; @@ -518,8 +518,8 @@ height: 15px; } -/* Vertical layout; - * +/* Vertical layout; + * */ .noUi-pips-vertical { padding: 0 10px; @@ -645,10 +645,10 @@ background-color: #FF3636; } -/*! - * Datepicker for Bootstrap v1.7.0-dev (https://github.com/uxsolutions/bootstrap-datepicker) - * - * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) +/*! + * Datepicker for Bootstrap v1.7.0-dev (https://github.com/uxsolutions/bootstrap-datepicker) + * + * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) */ .datepicker { padding: 8px 6px; @@ -2198,17 +2198,17 @@ fieldset[disabled] background-color: #E3E3E3; } -/*.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { - border-right: 0 none; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child) { - border-left: 0 none; +/*.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { + border-right: 0 none; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child) { + border-left: 0 none; }*/ .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { background-color: #E3E3E3; @@ -3755,12 +3755,12 @@ img { box-shadow: 0px 5px 25px 0px rgba(0, 0, 0, 0.2); } -/* -------------------------------- - -Nucleo Outline Web Font - nucleoapp.com/ -License - nucleoapp.com/license/ -Created using IcoMoon - icomoon.io - +/* -------------------------------- + +Nucleo Outline Web Font - nucleoapp.com/ +License - nucleoapp.com/license/ +Created using IcoMoon - icomoon.io + -------------------------------- */ @font-face { font-family: 'Nucleo Outline'; @@ -3770,8 +3770,8 @@ Created using IcoMoon - icomoon.io font-style: normal; } -/*------------------------ - base class definition +/*------------------------ + base class definition -------------------------*/ .now-ui-icons { display: inline-block; @@ -3784,11 +3784,11 @@ Created using IcoMoon - icomoon.io -moz-osx-font-smoothing: grayscale; } -/*------------------------ - change icon size +/*------------------------ + change icon size -------------------------*/ -/*---------------------------------- - add a square/circle background +/*---------------------------------- + add a square/circle background -----------------------------------*/ .now-ui-icons.circle { padding: 0.33333333em; @@ -3800,8 +3800,8 @@ Created using IcoMoon - icomoon.io border-radius: 50%; } -/*------------------------ - list icons +/*------------------------ + list icons -------------------------*/ .nc-icon-ul { padding-left: 0; @@ -3825,8 +3825,8 @@ Created using IcoMoon - icomoon.io left: -1.9047619em; } -/*------------------------ - spinning icons +/*------------------------ + spinning icons -------------------------*/ .now-ui-icons.spin { -webkit-animation: nc-icon-spin 2s infinite linear; @@ -3853,11 +3853,11 @@ Created using IcoMoon - icomoon.io } } -/*------------------------ - rotated/flipped icons +/*------------------------ + rotated/flipped icons -------------------------*/ -/*------------------------ - font icons +/*------------------------ + font icons -------------------------*/ .now-ui-icons.ui-1_check:before { content: "\EA22"; @@ -5668,21 +5668,21 @@ Created using IcoMoon - icomoon.io } } -/*.separator{ - content: "Separator"; - color: #FFFFFF; - display: block; - width: 100%; - padding: 20px; -} -.separator-line{ - background-color: #EEE; - height: 1px; - width: 100%; - display: block; -} -.separator.separator-gray{ - background-color: #EEEEEE; +/*.separator{ + content: "Separator"; + color: #FFFFFF; + display: block; + width: 100%; + padding: 20px; +} +.separator-line{ + background-color: #EEE; + height: 1px; + width: 100%; + display: block; +} +.separator.separator-gray{ + background-color: #EEEEEE; }*/ .social-buttons-demo .btn { margin-right: 5px; diff --git a/public/assets/frontend/js/app.js b/public/assets/frontend/js/app.js index a74b4ff3..6b4c0020 100644 --- a/public/assets/frontend/js/app.js +++ b/public/assets/frontend/js/app.js @@ -303,14 +303,14 @@ eval("// shim for using process in browser\nvar process = module.exports = {};\n /***/ "./resources/js/bootstrap.js": /***/ (function(module, exports, __webpack_require__) { -eval("/**\n * Bootstrap any Javascript libraries required\n */\n\nwindow.axios = __webpack_require__(\"./node_modules/axios/index.js\");\n\n/**\n * Container for phpVMS specific functions\n */\nwindow.phpvms = {};\n\n/**\n * Configure Axios with both the csrf token and the API key\n */\n\nvar base_url = document.head.querySelector('meta[name=\"base-url\"]');\nif (base_url) {\n window.axios.default.baseURL = base_url;\n}\n\nwindow.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\nvar token = document.head.querySelector('meta[name=\"csrf-token\"]');\n\nif (token) {\n window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;\n /*window.jquery.ajaxSetup({\n 'X-CSRF-TOKEN': token.content\n })*/\n} else {\n console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');\n}\n\nvar api_key = document.head.querySelector('meta[name=\"api-key\"]');\nif (api_key) {\n window.axios.defaults.headers.common['x-api-key'] = api_key.content;\n window.PHPVMS_USER_API_KEY = api_key.content;\n} else {\n window.PHPVMS_USER_API_KEY = false;\n console.error('API Key not found!');\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvYm9vdHN0cmFwLmpzPzBlNTgiXSwibmFtZXMiOlsid2luZG93IiwiYXhpb3MiLCJyZXF1aXJlIiwicGhwdm1zIiwiYmFzZV91cmwiLCJkb2N1bWVudCIsImhlYWQiLCJxdWVyeVNlbGVjdG9yIiwiZGVmYXVsdCIsImJhc2VVUkwiLCJkZWZhdWx0cyIsImhlYWRlcnMiLCJjb21tb24iLCJ0b2tlbiIsImNvbnRlbnQiLCJjb25zb2xlIiwiZXJyb3IiLCJhcGlfa2V5IiwiUEhQVk1TX1VTRVJfQVBJX0tFWSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7QUFJQUEsT0FBT0MsS0FBUCxHQUFlLG1CQUFBQyxDQUFRLCtCQUFSLENBQWY7O0FBRUE7OztBQUdBRixPQUFPRyxNQUFQLEdBQWdCLEVBQWhCOztBQUVBOzs7O0FBSUEsSUFBTUMsV0FBV0MsU0FBU0MsSUFBVCxDQUFjQyxhQUFkLENBQTRCLHVCQUE1QixDQUFqQjtBQUNBLElBQUdILFFBQUgsRUFBYTtBQUNYSixTQUFPQyxLQUFQLENBQWFPLE9BQWIsQ0FBcUJDLE9BQXJCLEdBQStCTCxRQUEvQjtBQUNEOztBQUVESixPQUFPQyxLQUFQLENBQWFTLFFBQWIsQ0FBc0JDLE9BQXRCLENBQThCQyxNQUE5QixDQUFxQyxrQkFBckMsSUFBMkQsZ0JBQTNEO0FBQ0EsSUFBTUMsUUFBUVIsU0FBU0MsSUFBVCxDQUFjQyxhQUFkLENBQTRCLHlCQUE1QixDQUFkOztBQUVBLElBQUlNLEtBQUosRUFBVztBQUNUYixTQUFPQyxLQUFQLENBQWFTLFFBQWIsQ0FBc0JDLE9BQXRCLENBQThCQyxNQUE5QixDQUFxQyxjQUFyQyxJQUF1REMsTUFBTUMsT0FBN0Q7QUFDQTs7O0FBR0QsQ0FMRCxNQUtPO0FBQ0xDLFVBQVFDLEtBQVIsQ0FBYyx1RUFBZDtBQUNEOztBQUVELElBQU1DLFVBQVVaLFNBQVNDLElBQVQsQ0FBY0MsYUFBZCxDQUE0QixzQkFBNUIsQ0FBaEI7QUFDQSxJQUFJVSxPQUFKLEVBQWE7QUFDWGpCLFNBQU9DLEtBQVAsQ0FBYVMsUUFBYixDQUFzQkMsT0FBdEIsQ0FBOEJDLE1BQTlCLENBQXFDLFdBQXJDLElBQW9ESyxRQUFRSCxPQUE1RDtBQUNBZCxTQUFPa0IsbUJBQVAsR0FBNkJELFFBQVFILE9BQXJDO0FBQ0QsQ0FIRCxNQUdPO0FBQ0xkLFNBQU9rQixtQkFBUCxHQUE2QixLQUE3QjtBQUNBSCxVQUFRQyxLQUFSLENBQWMsb0JBQWQ7QUFDRCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9ib290c3RyYXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJvb3RzdHJhcCBhbnkgSmF2YXNjcmlwdCBsaWJyYXJpZXMgcmVxdWlyZWRcbiAqL1xuXG53aW5kb3cuYXhpb3MgPSByZXF1aXJlKCdheGlvcycpO1xuXG4vKipcbiAqIENvbnRhaW5lciBmb3IgcGhwVk1TIHNwZWNpZmljIGZ1bmN0aW9uc1xuICovXG53aW5kb3cucGhwdm1zID0ge307XG5cbi8qKlxuICogQ29uZmlndXJlIEF4aW9zIHdpdGggYm90aCB0aGUgY3NyZiB0b2tlbiBhbmQgdGhlIEFQSSBrZXlcbiAqL1xuXG5jb25zdCBiYXNlX3VybCA9IGRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3RvcignbWV0YVtuYW1lPVwiYmFzZS11cmxcIl0nKTtcbmlmKGJhc2VfdXJsKSB7XG4gIHdpbmRvdy5heGlvcy5kZWZhdWx0LmJhc2VVUkwgPSBiYXNlX3VybDtcbn1cblxud2luZG93LmF4aW9zLmRlZmF1bHRzLmhlYWRlcnMuY29tbW9uWydYLVJlcXVlc3RlZC1XaXRoJ10gPSAnWE1MSHR0cFJlcXVlc3QnO1xuY29uc3QgdG9rZW4gPSBkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT1cImNzcmYtdG9rZW5cIl0nKTtcblxuaWYgKHRva2VuKSB7XG4gIHdpbmRvdy5heGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsnWC1DU1JGLVRPS0VOJ10gPSB0b2tlbi5jb250ZW50XG4gIC8qd2luZG93LmpxdWVyeS5hamF4U2V0dXAoe1xuICAgICdYLUNTUkYtVE9LRU4nOiB0b2tlbi5jb250ZW50XG4gIH0pKi9cbn0gZWxzZSB7XG4gIGNvbnNvbGUuZXJyb3IoJ0NTUkYgdG9rZW4gbm90IGZvdW5kOiBodHRwczovL2xhcmF2ZWwuY29tL2RvY3MvY3NyZiNjc3JmLXgtY3NyZi10b2tlbicpXG59XG5cbmNvbnN0IGFwaV9rZXkgPSBkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT1cImFwaS1rZXlcIl0nKTtcbmlmIChhcGlfa2V5KSB7XG4gIHdpbmRvdy5heGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsneC1hcGkta2V5J10gPSBhcGlfa2V5LmNvbnRlbnQ7XG4gIHdpbmRvdy5QSFBWTVNfVVNFUl9BUElfS0VZID0gYXBpX2tleS5jb250ZW50XG59IGVsc2Uge1xuICB3aW5kb3cuUEhQVk1TX1VTRVJfQVBJX0tFWSA9IGZhbHNlO1xuICBjb25zb2xlLmVycm9yKCdBUEkgS2V5IG5vdCBmb3VuZCEnKVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcmVzb3VyY2VzL2pzL2Jvb3RzdHJhcC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/bootstrap.js\n"); +eval("/**\r\n * Bootstrap any Javascript libraries required\r\n */\n\nwindow.axios = __webpack_require__(\"./node_modules/axios/index.js\");\n\n/**\r\n * Container for phpVMS specific functions\r\n */\nwindow.phpvms = {};\n\n/**\r\n * Configure Axios with both the csrf token and the API key\r\n */\n\nvar base_url = document.head.querySelector('meta[name=\"base-url\"]');\nif (base_url) {\n window.axios.default.baseURL = base_url;\n}\n\nwindow.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\nvar token = document.head.querySelector('meta[name=\"csrf-token\"]');\n\nif (token) {\n window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;\n /*window.jquery.ajaxSetup({\r\n 'X-CSRF-TOKEN': token.content\r\n })*/\n} else {\n console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');\n}\n\nvar api_key = document.head.querySelector('meta[name=\"api-key\"]');\nif (api_key) {\n window.axios.defaults.headers.common['x-api-key'] = api_key.content;\n window.PHPVMS_USER_API_KEY = api_key.content;\n} else {\n window.PHPVMS_USER_API_KEY = false;\n console.error('API Key not found!');\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvYm9vdHN0cmFwLmpzPzBlNTgiXSwibmFtZXMiOlsid2luZG93IiwiYXhpb3MiLCJyZXF1aXJlIiwicGhwdm1zIiwiYmFzZV91cmwiLCJkb2N1bWVudCIsImhlYWQiLCJxdWVyeVNlbGVjdG9yIiwiZGVmYXVsdCIsImJhc2VVUkwiLCJkZWZhdWx0cyIsImhlYWRlcnMiLCJjb21tb24iLCJ0b2tlbiIsImNvbnRlbnQiLCJjb25zb2xlIiwiZXJyb3IiLCJhcGlfa2V5IiwiUEhQVk1TX1VTRVJfQVBJX0tFWSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7QUFJQUEsT0FBT0MsS0FBUCxHQUFlLG1CQUFBQyxDQUFRLCtCQUFSLENBQWY7O0FBRUE7OztBQUdBRixPQUFPRyxNQUFQLEdBQWdCLEVBQWhCOztBQUVBOzs7O0FBSUEsSUFBTUMsV0FBV0MsU0FBU0MsSUFBVCxDQUFjQyxhQUFkLENBQTRCLHVCQUE1QixDQUFqQjtBQUNBLElBQUdILFFBQUgsRUFBYTtBQUNYSixTQUFPQyxLQUFQLENBQWFPLE9BQWIsQ0FBcUJDLE9BQXJCLEdBQStCTCxRQUEvQjtBQUNEOztBQUVESixPQUFPQyxLQUFQLENBQWFTLFFBQWIsQ0FBc0JDLE9BQXRCLENBQThCQyxNQUE5QixDQUFxQyxrQkFBckMsSUFBMkQsZ0JBQTNEO0FBQ0EsSUFBTUMsUUFBUVIsU0FBU0MsSUFBVCxDQUFjQyxhQUFkLENBQTRCLHlCQUE1QixDQUFkOztBQUVBLElBQUlNLEtBQUosRUFBVztBQUNUYixTQUFPQyxLQUFQLENBQWFTLFFBQWIsQ0FBc0JDLE9BQXRCLENBQThCQyxNQUE5QixDQUFxQyxjQUFyQyxJQUF1REMsTUFBTUMsT0FBN0Q7QUFDQTs7O0FBR0QsQ0FMRCxNQUtPO0FBQ0xDLFVBQVFDLEtBQVIsQ0FBYyx1RUFBZDtBQUNEOztBQUVELElBQU1DLFVBQVVaLFNBQVNDLElBQVQsQ0FBY0MsYUFBZCxDQUE0QixzQkFBNUIsQ0FBaEI7QUFDQSxJQUFJVSxPQUFKLEVBQWE7QUFDWGpCLFNBQU9DLEtBQVAsQ0FBYVMsUUFBYixDQUFzQkMsT0FBdEIsQ0FBOEJDLE1BQTlCLENBQXFDLFdBQXJDLElBQW9ESyxRQUFRSCxPQUE1RDtBQUNBZCxTQUFPa0IsbUJBQVAsR0FBNkJELFFBQVFILE9BQXJDO0FBQ0QsQ0FIRCxNQUdPO0FBQ0xkLFNBQU9rQixtQkFBUCxHQUE2QixLQUE3QjtBQUNBSCxVQUFRQyxLQUFSLENBQWMsb0JBQWQ7QUFDRCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9ib290c3RyYXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQm9vdHN0cmFwIGFueSBKYXZhc2NyaXB0IGxpYnJhcmllcyByZXF1aXJlZFxyXG4gKi9cclxuXHJcbndpbmRvdy5heGlvcyA9IHJlcXVpcmUoJ2F4aW9zJyk7XHJcblxyXG4vKipcclxuICogQ29udGFpbmVyIGZvciBwaHBWTVMgc3BlY2lmaWMgZnVuY3Rpb25zXHJcbiAqL1xyXG53aW5kb3cucGhwdm1zID0ge307XHJcblxyXG4vKipcclxuICogQ29uZmlndXJlIEF4aW9zIHdpdGggYm90aCB0aGUgY3NyZiB0b2tlbiBhbmQgdGhlIEFQSSBrZXlcclxuICovXHJcblxyXG5jb25zdCBiYXNlX3VybCA9IGRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3RvcignbWV0YVtuYW1lPVwiYmFzZS11cmxcIl0nKTtcclxuaWYoYmFzZV91cmwpIHtcclxuICB3aW5kb3cuYXhpb3MuZGVmYXVsdC5iYXNlVVJMID0gYmFzZV91cmw7XHJcbn1cclxuXHJcbndpbmRvdy5heGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsnWC1SZXF1ZXN0ZWQtV2l0aCddID0gJ1hNTEh0dHBSZXF1ZXN0JztcclxuY29uc3QgdG9rZW4gPSBkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT1cImNzcmYtdG9rZW5cIl0nKTtcclxuXHJcbmlmICh0b2tlbikge1xyXG4gIHdpbmRvdy5heGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsnWC1DU1JGLVRPS0VOJ10gPSB0b2tlbi5jb250ZW50XHJcbiAgLyp3aW5kb3cuanF1ZXJ5LmFqYXhTZXR1cCh7XHJcbiAgICAnWC1DU1JGLVRPS0VOJzogdG9rZW4uY29udGVudFxyXG4gIH0pKi9cclxufSBlbHNlIHtcclxuICBjb25zb2xlLmVycm9yKCdDU1JGIHRva2VuIG5vdCBmb3VuZDogaHR0cHM6Ly9sYXJhdmVsLmNvbS9kb2NzL2NzcmYjY3NyZi14LWNzcmYtdG9rZW4nKVxyXG59XHJcblxyXG5jb25zdCBhcGlfa2V5ID0gZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9XCJhcGkta2V5XCJdJyk7XHJcbmlmIChhcGlfa2V5KSB7XHJcbiAgd2luZG93LmF4aW9zLmRlZmF1bHRzLmhlYWRlcnMuY29tbW9uWyd4LWFwaS1rZXknXSA9IGFwaV9rZXkuY29udGVudDtcclxuICB3aW5kb3cuUEhQVk1TX1VTRVJfQVBJX0tFWSA9IGFwaV9rZXkuY29udGVudFxyXG59IGVsc2Uge1xyXG4gIHdpbmRvdy5QSFBWTVNfVVNFUl9BUElfS0VZID0gZmFsc2U7XHJcbiAgY29uc29sZS5lcnJvcignQVBJIEtleSBub3QgZm91bmQhJylcclxufVxyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9yZXNvdXJjZXMvanMvYm9vdHN0cmFwLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/bootstrap.js\n"); /***/ }), /***/ "./resources/js/frontend/app.js": /***/ (function(module, exports, __webpack_require__) { -eval("\n__webpack_require__(\"./resources/js/bootstrap.js\");\n\n// Import the mapping function\nwindow.phpvms.map = __webpack_require__(\"./resources/js/maps/index.js\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvZnJvbnRlbmQvYXBwLmpzPzYwZTgiXSwibmFtZXMiOlsicmVxdWlyZSIsIndpbmRvdyIsInBocHZtcyIsIm1hcCJdLCJtYXBwaW5ncyI6IjtBQUNBLG1CQUFBQSxDQUFRLDZCQUFSOztBQUVBO0FBQ0FDLE9BQU9DLE1BQVAsQ0FBY0MsR0FBZCxHQUFvQixtQkFBQUgsQ0FBUSw4QkFBUixDQUFwQiIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9mcm9udGVuZC9hcHAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcbnJlcXVpcmUoJy4vLi4vYm9vdHN0cmFwJyk7XG5cbi8vIEltcG9ydCB0aGUgbWFwcGluZyBmdW5jdGlvblxud2luZG93LnBocHZtcy5tYXAgPSByZXF1aXJlKCcuLi9tYXBzL2luZGV4Jyk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9yZXNvdXJjZXMvanMvZnJvbnRlbmQvYXBwLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/frontend/app.js\n"); +eval("\n__webpack_require__(\"./resources/js/bootstrap.js\");\n\n// Import the mapping function\nwindow.phpvms.map = __webpack_require__(\"./resources/js/maps/index.js\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvZnJvbnRlbmQvYXBwLmpzPzYwZTgiXSwibmFtZXMiOlsicmVxdWlyZSIsIndpbmRvdyIsInBocHZtcyIsIm1hcCJdLCJtYXBwaW5ncyI6IjtBQUNBLG1CQUFBQSxDQUFRLDZCQUFSOztBQUVBO0FBQ0FDLE9BQU9DLE1BQVAsQ0FBY0MsR0FBZCxHQUFvQixtQkFBQUgsQ0FBUSw4QkFBUixDQUFwQiIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9mcm9udGVuZC9hcHAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxucmVxdWlyZSgnLi8uLi9ib290c3RyYXAnKTtcclxuXHJcbi8vIEltcG9ydCB0aGUgbWFwcGluZyBmdW5jdGlvblxyXG53aW5kb3cucGhwdm1zLm1hcCA9IHJlcXVpcmUoJy4uL21hcHMvaW5kZXgnKTtcclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcmVzb3VyY2VzL2pzL2Zyb250ZW5kL2FwcC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/frontend/app.js\n"); /***/ }), @@ -318,7 +318,7 @@ eval("\n__webpack_require__(\"./resources/js/bootstrap.js\");\n\n// Import the m /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpack_require__(\"./resources/js/maps/base_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(\"./resources/js/maps/helpers.js\");\n\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n\n\n\n/**\n * Render a map with the airspace, etc around a given set of coords\n * e.g, the airport map\n * @param opts\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n opts = Object.assign({\n render_elem: 'map',\n overlay_elem: '',\n lat: 0,\n lon: 0,\n zoom: 12,\n layers: [],\n set_marker: true,\n marker_popup: '',\n\n // Passed from the config/maps.php file\n metar_wms: {\n url: '',\n params: {}\n }\n }, opts);\n\n var map = Object(__WEBPACK_IMPORTED_MODULE_0__base_map__[\"a\" /* default */])(opts);\n var coords = [opts.lat, opts.lon];\n console.log('Applying coords', coords);\n\n map.setView(coords, opts.zoom);\n if (opts.set_marker === true) {\n leaflet.marker(coords).addTo(map).bindPopup(opts.marker_popup);\n }\n\n if (opts.metar_wms.url !== '') {\n Object(__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* addWMSLayer */])(map, opts.metar_wms);\n }\n\n return map;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9haXJzcGFjZV9tYXAuanM/NGZiMCJdLCJuYW1lcyI6WyJsZWFmbGV0IiwicmVxdWlyZSIsIm9wdHMiLCJPYmplY3QiLCJhc3NpZ24iLCJyZW5kZXJfZWxlbSIsIm92ZXJsYXlfZWxlbSIsImxhdCIsImxvbiIsInpvb20iLCJsYXllcnMiLCJzZXRfbWFya2VyIiwibWFya2VyX3BvcHVwIiwibWV0YXJfd21zIiwidXJsIiwicGFyYW1zIiwibWFwIiwiZHJhd19iYXNlX21hcCIsImNvb3JkcyIsImNvbnNvbGUiLCJsb2ciLCJzZXRWaWV3IiwibWFya2VyIiwiYWRkVG8iLCJiaW5kUG9wdXAiLCJhZGRXTVNMYXllciJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsSUFBTUEsVUFBVSxtQkFBQUMsQ0FBUSw0Q0FBUixDQUFoQjs7QUFFQTtBQUNBOztBQUVBOzs7OztBQUtBLHlEQUFlLFVBQUNDLElBQUQsRUFBVTtBQUN2QkEsU0FBT0MsT0FBT0MsTUFBUCxDQUFjO0FBQ25CQyxpQkFBYSxLQURNO0FBRW5CQyxrQkFBYyxFQUZLO0FBR25CQyxTQUFLLENBSGM7QUFJbkJDLFNBQUssQ0FKYztBQUtuQkMsVUFBTSxFQUxhO0FBTW5CQyxZQUFRLEVBTlc7QUFPbkJDLGdCQUFZLElBUE87QUFRbkJDLGtCQUFjLEVBUks7O0FBVW5CO0FBQ0FDLGVBQVc7QUFDUEMsV0FBSyxFQURFO0FBRVBDLGNBQVE7QUFGRDtBQVhRLEdBQWQsRUFlSmIsSUFmSSxDQUFQOztBQWlCQSxNQUFJYyxNQUFNLGtFQUFBQyxDQUFjZixJQUFkLENBQVY7QUFDQSxNQUFNZ0IsU0FBUyxDQUFDaEIsS0FBS0ssR0FBTixFQUFXTCxLQUFLTSxHQUFoQixDQUFmO0FBQ0FXLFVBQVFDLEdBQVIsQ0FBWSxpQkFBWixFQUErQkYsTUFBL0I7O0FBRUFGLE1BQUlLLE9BQUosQ0FBWUgsTUFBWixFQUFvQmhCLEtBQUtPLElBQXpCO0FBQ0EsTUFBSVAsS0FBS1MsVUFBTCxLQUFvQixJQUF4QixFQUE4QjtBQUM1QlgsWUFBUXNCLE1BQVIsQ0FBZUosTUFBZixFQUF1QkssS0FBdkIsQ0FBNkJQLEdBQTdCLEVBQWtDUSxTQUFsQyxDQUE0Q3RCLEtBQUtVLFlBQWpEO0FBQ0Q7O0FBRUQsTUFBR1YsS0FBS1csU0FBTCxDQUFlQyxHQUFmLEtBQXVCLEVBQTFCLEVBQThCO0FBQzFCVyxJQUFBLHFFQUFBQSxDQUFZVCxHQUFaLEVBQWlCZCxLQUFLVyxTQUF0QjtBQUNIOztBQUVELFNBQU9HLEdBQVA7QUFDRCxDQWhDRCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9tYXBzL2FpcnNwYWNlX21hcC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuY29uc3QgbGVhZmxldCA9IHJlcXVpcmUoJ2xlYWZsZXQnKTtcblxuaW1wb3J0IGRyYXdfYmFzZV9tYXAgZnJvbSAnLi9iYXNlX21hcCdcbmltcG9ydCB7IGFkZFdNU0xheWVyIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuLyoqXG4gKiBSZW5kZXIgYSBtYXAgd2l0aCB0aGUgYWlyc3BhY2UsIGV0YyBhcm91bmQgYSBnaXZlbiBzZXQgb2YgY29vcmRzXG4gKiBlLmcsIHRoZSBhaXJwb3J0IG1hcFxuICogQHBhcmFtIG9wdHNcbiAqL1xuZXhwb3J0IGRlZmF1bHQgKG9wdHMpID0+IHtcbiAgb3B0cyA9IE9iamVjdC5hc3NpZ24oe1xuICAgIHJlbmRlcl9lbGVtOiAnbWFwJyxcbiAgICBvdmVybGF5X2VsZW06ICcnLFxuICAgIGxhdDogMCxcbiAgICBsb246IDAsXG4gICAgem9vbTogMTIsXG4gICAgbGF5ZXJzOiBbXSxcbiAgICBzZXRfbWFya2VyOiB0cnVlLFxuICAgIG1hcmtlcl9wb3B1cDogJycsXG5cbiAgICAvLyBQYXNzZWQgZnJvbSB0aGUgY29uZmlnL21hcHMucGhwIGZpbGVcbiAgICBtZXRhcl93bXM6IHtcbiAgICAgICAgdXJsOiAnJyxcbiAgICAgICAgcGFyYW1zOiB7fVxuICAgIH0sXG4gIH0sIG9wdHMpO1xuXG4gIGxldCBtYXAgPSBkcmF3X2Jhc2VfbWFwKG9wdHMpO1xuICBjb25zdCBjb29yZHMgPSBbb3B0cy5sYXQsIG9wdHMubG9uXTtcbiAgY29uc29sZS5sb2coJ0FwcGx5aW5nIGNvb3JkcycsIGNvb3Jkcyk7XG5cbiAgbWFwLnNldFZpZXcoY29vcmRzLCBvcHRzLnpvb20pO1xuICBpZiAob3B0cy5zZXRfbWFya2VyID09PSB0cnVlKSB7XG4gICAgbGVhZmxldC5tYXJrZXIoY29vcmRzKS5hZGRUbyhtYXApLmJpbmRQb3B1cChvcHRzLm1hcmtlcl9wb3B1cCk7XG4gIH1cblxuICBpZihvcHRzLm1ldGFyX3dtcy51cmwgIT09ICcnKSB7XG4gICAgICBhZGRXTVNMYXllcihtYXAsIG9wdHMubWV0YXJfd21zKTtcbiAgfVxuXG4gIHJldHVybiBtYXA7XG59O1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcmVzb3VyY2VzL2pzL21hcHMvYWlyc3BhY2VfbWFwLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/maps/airspace_map.js\n"); +eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpack_require__(\"./resources/js/maps/base_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(\"./resources/js/maps/helpers.js\");\n\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n\n\n\n/**\r\n * Render a map with the airspace, etc around a given set of coords\r\n * e.g, the airport map\r\n * @param opts\r\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n opts = Object.assign({\n render_elem: 'map',\n overlay_elem: '',\n lat: 0,\n lon: 0,\n zoom: 12,\n layers: [],\n set_marker: true,\n marker_popup: '',\n\n // Passed from the config/maps.php file\n metar_wms: {\n url: '',\n params: {}\n }\n }, opts);\n\n var map = Object(__WEBPACK_IMPORTED_MODULE_0__base_map__[\"a\" /* default */])(opts);\n var coords = [opts.lat, opts.lon];\n console.log('Applying coords', coords);\n\n map.setView(coords, opts.zoom);\n if (opts.set_marker === true) {\n leaflet.marker(coords).addTo(map).bindPopup(opts.marker_popup);\n }\n\n if (opts.metar_wms.url !== '') {\n Object(__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* addWMSLayer */])(map, opts.metar_wms);\n }\n\n return map;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9haXJzcGFjZV9tYXAuanM/NGZiMCJdLCJuYW1lcyI6WyJsZWFmbGV0IiwicmVxdWlyZSIsIm9wdHMiLCJPYmplY3QiLCJhc3NpZ24iLCJyZW5kZXJfZWxlbSIsIm92ZXJsYXlfZWxlbSIsImxhdCIsImxvbiIsInpvb20iLCJsYXllcnMiLCJzZXRfbWFya2VyIiwibWFya2VyX3BvcHVwIiwibWV0YXJfd21zIiwidXJsIiwicGFyYW1zIiwibWFwIiwiZHJhd19iYXNlX21hcCIsImNvb3JkcyIsImNvbnNvbGUiLCJsb2ciLCJzZXRWaWV3IiwibWFya2VyIiwiYWRkVG8iLCJiaW5kUG9wdXAiLCJhZGRXTVNMYXllciJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsSUFBTUEsVUFBVSxtQkFBQUMsQ0FBUSw0Q0FBUixDQUFoQjs7QUFFQTtBQUNBOztBQUVBOzs7OztBQUtBLHlEQUFlLFVBQUNDLElBQUQsRUFBVTtBQUN2QkEsU0FBT0MsT0FBT0MsTUFBUCxDQUFjO0FBQ25CQyxpQkFBYSxLQURNO0FBRW5CQyxrQkFBYyxFQUZLO0FBR25CQyxTQUFLLENBSGM7QUFJbkJDLFNBQUssQ0FKYztBQUtuQkMsVUFBTSxFQUxhO0FBTW5CQyxZQUFRLEVBTlc7QUFPbkJDLGdCQUFZLElBUE87QUFRbkJDLGtCQUFjLEVBUks7O0FBVW5CO0FBQ0FDLGVBQVc7QUFDUEMsV0FBSyxFQURFO0FBRVBDLGNBQVE7QUFGRDtBQVhRLEdBQWQsRUFlSmIsSUFmSSxDQUFQOztBQWlCQSxNQUFJYyxNQUFNLGtFQUFBQyxDQUFjZixJQUFkLENBQVY7QUFDQSxNQUFNZ0IsU0FBUyxDQUFDaEIsS0FBS0ssR0FBTixFQUFXTCxLQUFLTSxHQUFoQixDQUFmO0FBQ0FXLFVBQVFDLEdBQVIsQ0FBWSxpQkFBWixFQUErQkYsTUFBL0I7O0FBRUFGLE1BQUlLLE9BQUosQ0FBWUgsTUFBWixFQUFvQmhCLEtBQUtPLElBQXpCO0FBQ0EsTUFBSVAsS0FBS1MsVUFBTCxLQUFvQixJQUF4QixFQUE4QjtBQUM1QlgsWUFBUXNCLE1BQVIsQ0FBZUosTUFBZixFQUF1QkssS0FBdkIsQ0FBNkJQLEdBQTdCLEVBQWtDUSxTQUFsQyxDQUE0Q3RCLEtBQUtVLFlBQWpEO0FBQ0Q7O0FBRUQsTUFBR1YsS0FBS1csU0FBTCxDQUFlQyxHQUFmLEtBQXVCLEVBQTFCLEVBQThCO0FBQzFCVyxJQUFBLHFFQUFBQSxDQUFZVCxHQUFaLEVBQWlCZCxLQUFLVyxTQUF0QjtBQUNIOztBQUVELFNBQU9HLEdBQVA7QUFDRCxDQWhDRCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9tYXBzL2FpcnNwYWNlX21hcC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5jb25zdCBsZWFmbGV0ID0gcmVxdWlyZSgnbGVhZmxldCcpO1xyXG5cclxuaW1wb3J0IGRyYXdfYmFzZV9tYXAgZnJvbSAnLi9iYXNlX21hcCdcclxuaW1wb3J0IHsgYWRkV01TTGF5ZXIgfSBmcm9tICcuL2hlbHBlcnMnO1xyXG5cclxuLyoqXHJcbiAqIFJlbmRlciBhIG1hcCB3aXRoIHRoZSBhaXJzcGFjZSwgZXRjIGFyb3VuZCBhIGdpdmVuIHNldCBvZiBjb29yZHNcclxuICogZS5nLCB0aGUgYWlycG9ydCBtYXBcclxuICogQHBhcmFtIG9wdHNcclxuICovXHJcbmV4cG9ydCBkZWZhdWx0IChvcHRzKSA9PiB7XHJcbiAgb3B0cyA9IE9iamVjdC5hc3NpZ24oe1xyXG4gICAgcmVuZGVyX2VsZW06ICdtYXAnLFxyXG4gICAgb3ZlcmxheV9lbGVtOiAnJyxcclxuICAgIGxhdDogMCxcclxuICAgIGxvbjogMCxcclxuICAgIHpvb206IDEyLFxyXG4gICAgbGF5ZXJzOiBbXSxcclxuICAgIHNldF9tYXJrZXI6IHRydWUsXHJcbiAgICBtYXJrZXJfcG9wdXA6ICcnLFxyXG5cclxuICAgIC8vIFBhc3NlZCBmcm9tIHRoZSBjb25maWcvbWFwcy5waHAgZmlsZVxyXG4gICAgbWV0YXJfd21zOiB7XHJcbiAgICAgICAgdXJsOiAnJyxcclxuICAgICAgICBwYXJhbXM6IHt9XHJcbiAgICB9LFxyXG4gIH0sIG9wdHMpO1xyXG5cclxuICBsZXQgbWFwID0gZHJhd19iYXNlX21hcChvcHRzKTtcclxuICBjb25zdCBjb29yZHMgPSBbb3B0cy5sYXQsIG9wdHMubG9uXTtcclxuICBjb25zb2xlLmxvZygnQXBwbHlpbmcgY29vcmRzJywgY29vcmRzKTtcclxuXHJcbiAgbWFwLnNldFZpZXcoY29vcmRzLCBvcHRzLnpvb20pO1xyXG4gIGlmIChvcHRzLnNldF9tYXJrZXIgPT09IHRydWUpIHtcclxuICAgIGxlYWZsZXQubWFya2VyKGNvb3JkcykuYWRkVG8obWFwKS5iaW5kUG9wdXAob3B0cy5tYXJrZXJfcG9wdXApO1xyXG4gIH1cclxuXHJcbiAgaWYob3B0cy5tZXRhcl93bXMudXJsICE9PSAnJykge1xyXG4gICAgICBhZGRXTVNMYXllcihtYXAsIG9wdHMubWV0YXJfd21zKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBtYXA7XHJcbn07XHJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9qcy9tYXBzL2FpcnNwYWNlX21hcC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/maps/airspace_map.js\n"); /***/ }), @@ -326,7 +326,7 @@ eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpa /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n\n opts = Object.assign({\n render_elem: 'map',\n center: [29.98139, -95.33374],\n zoom: 5,\n maxZoom: 10,\n layers: [],\n set_marker: false\n }, opts);\n\n var feature_groups = [];\n /*var openaip_airspace_labels = new leaflet.TileLayer.WMS(\n \"http://{s}.tile.maps.openaip.net/geowebcache/service/wms\", {\n maxZoom: 14,\n minZoom: 12,\n layers: 'openaip_approved_airspaces_labels',\n tileSize: 1024,\n detectRetina: true,\n subdomains: '12',\n format: 'image/png',\n transparent: true\n });\n openaip_airspace_labels.addTo(map);*/\n\n var opencyclemap_phys_osm = new leaflet.TileLayer('http://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey=f09a38fa87514de4890fc96e7fe8ecb1', {\n maxZoom: 14,\n minZoom: 4,\n format: 'image/png',\n transparent: true\n });\n\n feature_groups.push(opencyclemap_phys_osm);\n\n /*const openaip_cached_basemap = new leaflet.TileLayer(\"http://{s}.tile.maps.openaip.net/geowebcache/service/tms/1.0.0/openaip_basemap@EPSG%3A900913@png/{z}/{x}/{y}.png\", {\n maxZoom: 14,\n minZoom: 4,\n tms: true,\n detectRetina: true,\n subdomains: '12',\n format: 'image/png',\n transparent: true\n });\n feature_groups.push(openaip_cached_basemap);\n */\n\n var openaip_basemap_phys_osm = leaflet.featureGroup(feature_groups);\n\n var map = leaflet.map('map', {\n layers: [openaip_basemap_phys_osm],\n center: opts.center,\n zoom: opts.zoom,\n scrollWheelZoom: false\n });\n\n var attrib = leaflet.control.attribution({ position: 'bottomleft' });\n attrib.addAttribution('Thunderforest');\n attrib.addAttribution('openAIP');\n attrib.addAttribution('OpenStreetMap contributors');\n attrib.addAttribution('OpenWeatherMap');\n\n attrib.addTo(map);\n\n return map;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9iYXNlX21hcC5qcz80MzA3Il0sIm5hbWVzIjpbImxlYWZsZXQiLCJyZXF1aXJlIiwib3B0cyIsIk9iamVjdCIsImFzc2lnbiIsInJlbmRlcl9lbGVtIiwiY2VudGVyIiwiem9vbSIsIm1heFpvb20iLCJsYXllcnMiLCJzZXRfbWFya2VyIiwiZmVhdHVyZV9ncm91cHMiLCJvcGVuY3ljbGVtYXBfcGh5c19vc20iLCJUaWxlTGF5ZXIiLCJtaW5ab29tIiwiZm9ybWF0IiwidHJhbnNwYXJlbnQiLCJwdXNoIiwib3BlbmFpcF9iYXNlbWFwX3BoeXNfb3NtIiwiZmVhdHVyZUdyb3VwIiwibWFwIiwic2Nyb2xsV2hlZWxab29tIiwiYXR0cmliIiwiY29udHJvbCIsImF0dHJpYnV0aW9uIiwicG9zaXRpb24iLCJhZGRBdHRyaWJ1dGlvbiIsImFkZFRvIl0sIm1hcHBpbmdzIjoiO0FBQ0EsSUFBTUEsVUFBVSxtQkFBQUMsQ0FBUSw0Q0FBUixDQUFoQjs7QUFFQSx5REFBZSxVQUFDQyxJQUFELEVBQVU7O0FBRXZCQSxTQUFPQyxPQUFPQyxNQUFQLENBQWM7QUFDbkJDLGlCQUFhLEtBRE07QUFFbkJDLFlBQVEsQ0FBQyxRQUFELEVBQVcsQ0FBQyxRQUFaLENBRlc7QUFHbkJDLFVBQU0sQ0FIYTtBQUluQkMsYUFBUyxFQUpVO0FBS25CQyxZQUFRLEVBTFc7QUFNbkJDLGdCQUFZO0FBTk8sR0FBZCxFQU9KUixJQVBJLENBQVA7O0FBU0EsTUFBSVMsaUJBQWlCLEVBQXJCO0FBQ0E7Ozs7Ozs7Ozs7Ozs7QUFjQSxNQUFNQyx3QkFBd0IsSUFBSVosUUFBUWEsU0FBWixDQUM1QixxR0FENEIsRUFDMkU7QUFDckdMLGFBQVMsRUFENEY7QUFFckdNLGFBQVMsQ0FGNEY7QUFHckdDLFlBQVEsV0FINkY7QUFJckdDLGlCQUFhO0FBSndGLEdBRDNFLENBQTlCOztBQVFBTCxpQkFBZU0sSUFBZixDQUFvQkwscUJBQXBCOztBQUVBOzs7Ozs7Ozs7Ozs7QUFhQSxNQUFNTSwyQkFBMkJsQixRQUFRbUIsWUFBUixDQUFxQlIsY0FBckIsQ0FBakM7O0FBRUEsTUFBSVMsTUFBTXBCLFFBQVFvQixHQUFSLENBQVksS0FBWixFQUFtQjtBQUMzQlgsWUFBUSxDQUFDUyx3QkFBRCxDQURtQjtBQUUzQlosWUFBUUosS0FBS0ksTUFGYztBQUczQkMsVUFBTUwsS0FBS0ssSUFIZ0I7QUFJM0JjLHFCQUFpQjtBQUpVLEdBQW5CLENBQVY7O0FBT0EsTUFBTUMsU0FBU3RCLFFBQVF1QixPQUFSLENBQWdCQyxXQUFoQixDQUE0QixFQUFDQyxVQUFVLFlBQVgsRUFBNUIsQ0FBZjtBQUNBSCxTQUFPSSxjQUFQLENBQXNCLG9GQUF0QjtBQUNBSixTQUFPSSxjQUFQLENBQXNCLHdFQUF0QjtBQUNBSixTQUFPSSxjQUFQLENBQXNCLDJHQUF0QjtBQUNBSixTQUFPSSxjQUFQLENBQXNCLHNGQUF0Qjs7QUFFQUosU0FBT0ssS0FBUCxDQUFhUCxHQUFiOztBQUVBLFNBQU9BLEdBQVA7QUFDRCxDQW5FRCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9tYXBzL2Jhc2VfbWFwLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5jb25zdCBsZWFmbGV0ID0gcmVxdWlyZSgnbGVhZmxldCcpO1xuXG5leHBvcnQgZGVmYXVsdCAob3B0cykgPT4ge1xuXG4gIG9wdHMgPSBPYmplY3QuYXNzaWduKHtcbiAgICByZW5kZXJfZWxlbTogJ21hcCcsXG4gICAgY2VudGVyOiBbMjkuOTgxMzksIC05NS4zMzM3NF0sXG4gICAgem9vbTogNSxcbiAgICBtYXhab29tOiAxMCxcbiAgICBsYXllcnM6IFtdLFxuICAgIHNldF9tYXJrZXI6IGZhbHNlLFxuICB9LCBvcHRzKTtcblxuICBsZXQgZmVhdHVyZV9ncm91cHMgPSBbXTtcbiAgLyp2YXIgb3BlbmFpcF9haXJzcGFjZV9sYWJlbHMgPSBuZXcgbGVhZmxldC5UaWxlTGF5ZXIuV01TKFxuICAgICAgXCJodHRwOi8ve3N9LnRpbGUubWFwcy5vcGVuYWlwLm5ldC9nZW93ZWJjYWNoZS9zZXJ2aWNlL3dtc1wiLCB7XG4gICAgICAgICAgbWF4Wm9vbTogMTQsXG4gICAgICAgICAgbWluWm9vbTogMTIsXG4gICAgICAgICAgbGF5ZXJzOiAnb3BlbmFpcF9hcHByb3ZlZF9haXJzcGFjZXNfbGFiZWxzJyxcbiAgICAgICAgICB0aWxlU2l6ZTogMTAyNCxcbiAgICAgICAgICBkZXRlY3RSZXRpbmE6IHRydWUsXG4gICAgICAgICAgc3ViZG9tYWluczogJzEyJyxcbiAgICAgICAgICBmb3JtYXQ6ICdpbWFnZS9wbmcnLFxuICAgICAgICAgIHRyYW5zcGFyZW50OiB0cnVlXG4gICAgICB9KTtcblxuICBvcGVuYWlwX2FpcnNwYWNlX2xhYmVscy5hZGRUbyhtYXApOyovXG5cbiAgY29uc3Qgb3BlbmN5Y2xlbWFwX3BoeXNfb3NtID0gbmV3IGxlYWZsZXQuVGlsZUxheWVyKFxuICAgICdodHRwOi8ve3N9LnRpbGUudGh1bmRlcmZvcmVzdC5jb20vbGFuZHNjYXBlL3t6fS97eH0ve3l9LnBuZz9hcGlrZXk9ZjA5YTM4ZmE4NzUxNGRlNDg5MGZjOTZlN2ZlOGVjYjEnLCB7XG4gICAgICBtYXhab29tOiAxNCxcbiAgICAgIG1pblpvb206IDQsXG4gICAgICBmb3JtYXQ6ICdpbWFnZS9wbmcnLFxuICAgICAgdHJhbnNwYXJlbnQ6IHRydWVcbiAgICB9KVxuXG4gIGZlYXR1cmVfZ3JvdXBzLnB1c2gob3BlbmN5Y2xlbWFwX3BoeXNfb3NtKVxuXG4gIC8qY29uc3Qgb3BlbmFpcF9jYWNoZWRfYmFzZW1hcCA9IG5ldyBsZWFmbGV0LlRpbGVMYXllcihcImh0dHA6Ly97c30udGlsZS5tYXBzLm9wZW5haXAubmV0L2dlb3dlYmNhY2hlL3NlcnZpY2UvdG1zLzEuMC4wL29wZW5haXBfYmFzZW1hcEBFUFNHJTNBOTAwOTEzQHBuZy97en0ve3h9L3t5fS5wbmdcIiwge1xuICAgICAgbWF4Wm9vbTogMTQsXG4gICAgICBtaW5ab29tOiA0LFxuICAgICAgdG1zOiB0cnVlLFxuICAgICAgZGV0ZWN0UmV0aW5hOiB0cnVlLFxuICAgICAgc3ViZG9tYWluczogJzEyJyxcbiAgICAgIGZvcm1hdDogJ2ltYWdlL3BuZycsXG4gICAgICB0cmFuc3BhcmVudDogdHJ1ZVxuICB9KTtcblxuICBmZWF0dXJlX2dyb3Vwcy5wdXNoKG9wZW5haXBfY2FjaGVkX2Jhc2VtYXApO1xuICAqL1xuXG4gIGNvbnN0IG9wZW5haXBfYmFzZW1hcF9waHlzX29zbSA9IGxlYWZsZXQuZmVhdHVyZUdyb3VwKGZlYXR1cmVfZ3JvdXBzKTtcblxuICBsZXQgbWFwID0gbGVhZmxldC5tYXAoJ21hcCcsIHtcbiAgICBsYXllcnM6IFtvcGVuYWlwX2Jhc2VtYXBfcGh5c19vc21dLFxuICAgIGNlbnRlcjogb3B0cy5jZW50ZXIsXG4gICAgem9vbTogb3B0cy56b29tLFxuICAgIHNjcm9sbFdoZWVsWm9vbTogZmFsc2UsXG4gIH0pO1xuXG4gIGNvbnN0IGF0dHJpYiA9IGxlYWZsZXQuY29udHJvbC5hdHRyaWJ1dGlvbih7cG9zaXRpb246ICdib3R0b21sZWZ0J30pXG4gIGF0dHJpYi5hZGRBdHRyaWJ1dGlvbignPGEgaHJlZj1cImh0dHBzOi8vd3d3LnRodW5kZXJmb3Jlc3QuY29tXCIgdGFyZ2V0PVwiX2JsYW5rXCIgc3R5bGU9XCJcIj5UaHVuZGVyZm9yZXN0PC9hPicpXG4gIGF0dHJpYi5hZGRBdHRyaWJ1dGlvbignPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm9wZW5haXAubmV0XCIgdGFyZ2V0PVwiX2JsYW5rXCIgc3R5bGU9XCJcIj5vcGVuQUlQPC9hPicpXG4gIGF0dHJpYi5hZGRBdHRyaWJ1dGlvbignPGEgaHJlZj1cImh0dHBzOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiIHRhcmdldD1cIl9ibGFua1wiIHN0eWxlPVwiXCI+T3BlblN0cmVldE1hcDwvYT4gY29udHJpYnV0b3JzJylcbiAgYXR0cmliLmFkZEF0dHJpYnV0aW9uKCc8YSBocmVmPVwiaHR0cHM6Ly93d3cub3BlbndlYXRoZXJtYXAub3JnXCIgdGFyZ2V0PVwiX2JsYW5rXCIgc3R5bGU9XCJcIj5PcGVuV2VhdGhlck1hcDwvYT4nKVxuXG4gIGF0dHJpYi5hZGRUbyhtYXApXG5cbiAgcmV0dXJuIG1hcFxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9qcy9tYXBzL2Jhc2VfbWFwLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/maps/base_map.js\n"); +eval("var leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n\n opts = Object.assign({\n render_elem: 'map',\n center: [29.98139, -95.33374],\n zoom: 5,\n maxZoom: 10,\n layers: [],\n set_marker: false\n }, opts);\n\n var feature_groups = [];\n /*var openaip_airspace_labels = new leaflet.TileLayer.WMS(\r\n \"http://{s}.tile.maps.openaip.net/geowebcache/service/wms\", {\r\n maxZoom: 14,\r\n minZoom: 12,\r\n layers: 'openaip_approved_airspaces_labels',\r\n tileSize: 1024,\r\n detectRetina: true,\r\n subdomains: '12',\r\n format: 'image/png',\r\n transparent: true\r\n });\r\n openaip_airspace_labels.addTo(map);*/\n\n var opencyclemap_phys_osm = new leaflet.TileLayer('http://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey=f09a38fa87514de4890fc96e7fe8ecb1', {\n maxZoom: 14,\n minZoom: 4,\n format: 'image/png',\n transparent: true\n });\n\n feature_groups.push(opencyclemap_phys_osm);\n\n /*const openaip_cached_basemap = new leaflet.TileLayer(\"http://{s}.tile.maps.openaip.net/geowebcache/service/tms/1.0.0/openaip_basemap@EPSG%3A900913@png/{z}/{x}/{y}.png\", {\r\n maxZoom: 14,\r\n minZoom: 4,\r\n tms: true,\r\n detectRetina: true,\r\n subdomains: '12',\r\n format: 'image/png',\r\n transparent: true\r\n });\r\n feature_groups.push(openaip_cached_basemap);\r\n */\n\n var openaip_basemap_phys_osm = leaflet.featureGroup(feature_groups);\n\n var map = leaflet.map('map', {\n layers: [openaip_basemap_phys_osm],\n center: opts.center,\n zoom: opts.zoom,\n scrollWheelZoom: false\n });\n\n var attrib = leaflet.control.attribution({ position: 'bottomleft' });\n attrib.addAttribution('Thunderforest');\n attrib.addAttribution('openAIP');\n attrib.addAttribution('OpenStreetMap contributors');\n attrib.addAttribution('OpenWeatherMap');\n\n attrib.addTo(map);\n\n return map;\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9iYXNlX21hcC5qcz80MzA3Il0sIm5hbWVzIjpbImxlYWZsZXQiLCJyZXF1aXJlIiwib3B0cyIsIk9iamVjdCIsImFzc2lnbiIsInJlbmRlcl9lbGVtIiwiY2VudGVyIiwiem9vbSIsIm1heFpvb20iLCJsYXllcnMiLCJzZXRfbWFya2VyIiwiZmVhdHVyZV9ncm91cHMiLCJvcGVuY3ljbGVtYXBfcGh5c19vc20iLCJUaWxlTGF5ZXIiLCJtaW5ab29tIiwiZm9ybWF0IiwidHJhbnNwYXJlbnQiLCJwdXNoIiwib3BlbmFpcF9iYXNlbWFwX3BoeXNfb3NtIiwiZmVhdHVyZUdyb3VwIiwibWFwIiwic2Nyb2xsV2hlZWxab29tIiwiYXR0cmliIiwiY29udHJvbCIsImF0dHJpYnV0aW9uIiwicG9zaXRpb24iLCJhZGRBdHRyaWJ1dGlvbiIsImFkZFRvIl0sIm1hcHBpbmdzIjoiQUFBQSxJQUFNQSxVQUFVLG1CQUFBQyxDQUFRLDRDQUFSLENBQWhCOztBQUVBLHlEQUFlLFVBQUNDLElBQUQsRUFBVTs7QUFFckJBLFdBQU9DLE9BQU9DLE1BQVAsQ0FBYztBQUNqQkMscUJBQWEsS0FESTtBQUVqQkMsZ0JBQVEsQ0FBQyxRQUFELEVBQVcsQ0FBQyxRQUFaLENBRlM7QUFHakJDLGNBQU0sQ0FIVztBQUlqQkMsaUJBQVMsRUFKUTtBQUtqQkMsZ0JBQVEsRUFMUztBQU1qQkMsb0JBQVk7QUFOSyxLQUFkLEVBT0pSLElBUEksQ0FBUDs7QUFTQSxRQUFJUyxpQkFBaUIsRUFBckI7QUFDQTs7Ozs7Ozs7Ozs7OztBQWNBLFFBQU1DLHdCQUF3QixJQUFJWixRQUFRYSxTQUFaLENBQzFCLHFHQUQwQixFQUM2RTtBQUNuR0wsaUJBQVMsRUFEMEY7QUFFbkdNLGlCQUFTLENBRjBGO0FBR25HQyxnQkFBUSxXQUgyRjtBQUluR0MscUJBQWE7QUFKc0YsS0FEN0UsQ0FBOUI7O0FBUUFMLG1CQUFlTSxJQUFmLENBQW9CTCxxQkFBcEI7O0FBRUE7Ozs7Ozs7Ozs7OztBQWFBLFFBQU1NLDJCQUEyQmxCLFFBQVFtQixZQUFSLENBQXFCUixjQUFyQixDQUFqQzs7QUFFQSxRQUFJUyxNQUFNcEIsUUFBUW9CLEdBQVIsQ0FBWSxLQUFaLEVBQW1CO0FBQ3pCWCxnQkFBUSxDQUFDUyx3QkFBRCxDQURpQjtBQUV6QlosZ0JBQVFKLEtBQUtJLE1BRlk7QUFHekJDLGNBQU1MLEtBQUtLLElBSGM7QUFJekJjLHlCQUFpQjtBQUpRLEtBQW5CLENBQVY7O0FBT0EsUUFBTUMsU0FBU3RCLFFBQVF1QixPQUFSLENBQWdCQyxXQUFoQixDQUE0QixFQUFDQyxVQUFVLFlBQVgsRUFBNUIsQ0FBZjtBQUNBSCxXQUFPSSxjQUFQLENBQXNCLG9GQUF0QjtBQUNBSixXQUFPSSxjQUFQLENBQXNCLHdFQUF0QjtBQUNBSixXQUFPSSxjQUFQLENBQXNCLDJHQUF0QjtBQUNBSixXQUFPSSxjQUFQLENBQXNCLHNGQUF0Qjs7QUFFQUosV0FBT0ssS0FBUCxDQUFhUCxHQUFiOztBQUVBLFdBQU9BLEdBQVA7QUFDSCxDQW5FRCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9tYXBzL2Jhc2VfbWFwLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbGVhZmxldCA9IHJlcXVpcmUoJ2xlYWZsZXQnKTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IChvcHRzKSA9PiB7XHJcblxyXG4gICAgb3B0cyA9IE9iamVjdC5hc3NpZ24oe1xyXG4gICAgICAgIHJlbmRlcl9lbGVtOiAnbWFwJyxcclxuICAgICAgICBjZW50ZXI6IFsyOS45ODEzOSwgLTk1LjMzMzc0XSxcclxuICAgICAgICB6b29tOiA1LFxyXG4gICAgICAgIG1heFpvb206IDEwLFxyXG4gICAgICAgIGxheWVyczogW10sXHJcbiAgICAgICAgc2V0X21hcmtlcjogZmFsc2UsXHJcbiAgICB9LCBvcHRzKTtcclxuXHJcbiAgICBsZXQgZmVhdHVyZV9ncm91cHMgPSBbXTtcclxuICAgIC8qdmFyIG9wZW5haXBfYWlyc3BhY2VfbGFiZWxzID0gbmV3IGxlYWZsZXQuVGlsZUxheWVyLldNUyhcclxuICAgICAgICBcImh0dHA6Ly97c30udGlsZS5tYXBzLm9wZW5haXAubmV0L2dlb3dlYmNhY2hlL3NlcnZpY2Uvd21zXCIsIHtcclxuICAgICAgICAgICAgbWF4Wm9vbTogMTQsXHJcbiAgICAgICAgICAgIG1pblpvb206IDEyLFxyXG4gICAgICAgICAgICBsYXllcnM6ICdvcGVuYWlwX2FwcHJvdmVkX2FpcnNwYWNlc19sYWJlbHMnLFxyXG4gICAgICAgICAgICB0aWxlU2l6ZTogMTAyNCxcclxuICAgICAgICAgICAgZGV0ZWN0UmV0aW5hOiB0cnVlLFxyXG4gICAgICAgICAgICBzdWJkb21haW5zOiAnMTInLFxyXG4gICAgICAgICAgICBmb3JtYXQ6ICdpbWFnZS9wbmcnLFxyXG4gICAgICAgICAgICB0cmFuc3BhcmVudDogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIG9wZW5haXBfYWlyc3BhY2VfbGFiZWxzLmFkZFRvKG1hcCk7Ki9cclxuXHJcbiAgICBjb25zdCBvcGVuY3ljbGVtYXBfcGh5c19vc20gPSBuZXcgbGVhZmxldC5UaWxlTGF5ZXIoXHJcbiAgICAgICAgJ2h0dHA6Ly97c30udGlsZS50aHVuZGVyZm9yZXN0LmNvbS9sYW5kc2NhcGUve3p9L3t4fS97eX0ucG5nP2FwaWtleT1mMDlhMzhmYTg3NTE0ZGU0ODkwZmM5NmU3ZmU4ZWNiMScsIHtcclxuICAgICAgICAgICAgbWF4Wm9vbTogMTQsXHJcbiAgICAgICAgICAgIG1pblpvb206IDQsXHJcbiAgICAgICAgICAgIGZvcm1hdDogJ2ltYWdlL3BuZycsXHJcbiAgICAgICAgICAgIHRyYW5zcGFyZW50OiB0cnVlXHJcbiAgICAgICAgfSlcclxuXHJcbiAgICBmZWF0dXJlX2dyb3Vwcy5wdXNoKG9wZW5jeWNsZW1hcF9waHlzX29zbSlcclxuXHJcbiAgICAvKmNvbnN0IG9wZW5haXBfY2FjaGVkX2Jhc2VtYXAgPSBuZXcgbGVhZmxldC5UaWxlTGF5ZXIoXCJodHRwOi8ve3N9LnRpbGUubWFwcy5vcGVuYWlwLm5ldC9nZW93ZWJjYWNoZS9zZXJ2aWNlL3Rtcy8xLjAuMC9vcGVuYWlwX2Jhc2VtYXBARVBTRyUzQTkwMDkxM0Bwbmcve3p9L3t4fS97eX0ucG5nXCIsIHtcclxuICAgICAgICBtYXhab29tOiAxNCxcclxuICAgICAgICBtaW5ab29tOiA0LFxyXG4gICAgICAgIHRtczogdHJ1ZSxcclxuICAgICAgICBkZXRlY3RSZXRpbmE6IHRydWUsXHJcbiAgICAgICAgc3ViZG9tYWluczogJzEyJyxcclxuICAgICAgICBmb3JtYXQ6ICdpbWFnZS9wbmcnLFxyXG4gICAgICAgIHRyYW5zcGFyZW50OiB0cnVlXHJcbiAgICB9KTtcclxuXHJcbiAgICBmZWF0dXJlX2dyb3Vwcy5wdXNoKG9wZW5haXBfY2FjaGVkX2Jhc2VtYXApO1xyXG4gICAgKi9cclxuXHJcbiAgICBjb25zdCBvcGVuYWlwX2Jhc2VtYXBfcGh5c19vc20gPSBsZWFmbGV0LmZlYXR1cmVHcm91cChmZWF0dXJlX2dyb3Vwcyk7XHJcblxyXG4gICAgbGV0IG1hcCA9IGxlYWZsZXQubWFwKCdtYXAnLCB7XHJcbiAgICAgICAgbGF5ZXJzOiBbb3BlbmFpcF9iYXNlbWFwX3BoeXNfb3NtXSxcclxuICAgICAgICBjZW50ZXI6IG9wdHMuY2VudGVyLFxyXG4gICAgICAgIHpvb206IG9wdHMuem9vbSxcclxuICAgICAgICBzY3JvbGxXaGVlbFpvb206IGZhbHNlLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgYXR0cmliID0gbGVhZmxldC5jb250cm9sLmF0dHJpYnV0aW9uKHtwb3NpdGlvbjogJ2JvdHRvbWxlZnQnfSlcclxuICAgIGF0dHJpYi5hZGRBdHRyaWJ1dGlvbignPGEgaHJlZj1cImh0dHBzOi8vd3d3LnRodW5kZXJmb3Jlc3QuY29tXCIgdGFyZ2V0PVwiX2JsYW5rXCIgc3R5bGU9XCJcIj5UaHVuZGVyZm9yZXN0PC9hPicpXHJcbiAgICBhdHRyaWIuYWRkQXR0cmlidXRpb24oJzxhIGhyZWY9XCJodHRwczovL3d3dy5vcGVuYWlwLm5ldFwiIHRhcmdldD1cIl9ibGFua1wiIHN0eWxlPVwiXCI+b3BlbkFJUDwvYT4nKVxyXG4gICAgYXR0cmliLmFkZEF0dHJpYnV0aW9uKCc8YSBocmVmPVwiaHR0cHM6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0XCIgdGFyZ2V0PVwiX2JsYW5rXCIgc3R5bGU9XCJcIj5PcGVuU3RyZWV0TWFwPC9hPiBjb250cmlidXRvcnMnKVxyXG4gICAgYXR0cmliLmFkZEF0dHJpYnV0aW9uKCc8YSBocmVmPVwiaHR0cHM6Ly93d3cub3BlbndlYXRoZXJtYXAub3JnXCIgdGFyZ2V0PVwiX2JsYW5rXCIgc3R5bGU9XCJcIj5PcGVuV2VhdGhlck1hcDwvYT4nKVxyXG5cclxuICAgIGF0dHJpYi5hZGRUbyhtYXApXHJcblxyXG4gICAgcmV0dXJuIG1hcFxyXG59O1xyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9yZXNvdXJjZXMvanMvbWFwcy9iYXNlX21hcC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/maps/base_map.js\n"); /***/ }), @@ -334,7 +334,7 @@ eval("\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet- /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return PLAN_ROUTE_COLOR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ACTUAL_ROUTE_COLOR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return CIRCLE_COLOR; });\nvar PLAN_ROUTE_COLOR = '#043758',\n ACTUAL_ROUTE_COLOR = '#067ec1',\n CIRCLE_COLOR = '#056093';//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9jb25maWcuanM/NzdmNyJdLCJuYW1lcyI6WyJQTEFOX1JPVVRFX0NPTE9SIiwiQUNUVUFMX1JPVVRFX0NPTE9SIiwiQ0lSQ0xFX0NPTE9SIl0sIm1hcHBpbmdzIjoiOzs7QUFBTyxJQUNIQSxtQkFBbUIsU0FEaEI7QUFBQSxJQUVIQyxxQkFBcUIsU0FGbEI7QUFBQSxJQUdIQyxlQUFlLFNBSFoiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvbWFwcy9jb25maWcuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgbGV0XG4gICAgUExBTl9ST1VURV9DT0xPUiA9ICcjMDQzNzU4JyxcbiAgICBBQ1RVQUxfUk9VVEVfQ09MT1IgPSAnIzA2N2VjMScsXG4gICAgQ0lSQ0xFX0NPTE9SID0gJyMwNTYwOTMnO1xuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcmVzb3VyY2VzL2pzL21hcHMvY29uZmlnLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/maps/config.js\n"); +eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return PLAN_ROUTE_COLOR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ACTUAL_ROUTE_COLOR; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return CIRCLE_COLOR; });\nvar PLAN_ROUTE_COLOR = '#043758',\n ACTUAL_ROUTE_COLOR = '#067ec1',\n CIRCLE_COLOR = '#056093';//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9jb25maWcuanM/NzdmNyJdLCJuYW1lcyI6WyJQTEFOX1JPVVRFX0NPTE9SIiwiQUNUVUFMX1JPVVRFX0NPTE9SIiwiQ0lSQ0xFX0NPTE9SIl0sIm1hcHBpbmdzIjoiOzs7QUFBTyxJQUNIQSxtQkFBbUIsU0FEaEI7QUFBQSxJQUVIQyxxQkFBcUIsU0FGbEI7QUFBQSxJQUdIQyxlQUFlLFNBSFoiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvbWFwcy9jb25maWcuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgbGV0XHJcbiAgICBQTEFOX1JPVVRFX0NPTE9SID0gJyMwNDM3NTgnLFxyXG4gICAgQUNUVUFMX1JPVVRFX0NPTE9SID0gJyMwNjdlYzEnLFxyXG4gICAgQ0lSQ0xFX0NPTE9SID0gJyMwNTYwOTMnO1xyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9yZXNvdXJjZXMvanMvbWFwcy9jb25maWcuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/maps/config.js\n"); /***/ }), @@ -342,7 +342,7 @@ eval("/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = addWMSLayer;\n/* unused harmony export showFeaturePopup */\n\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n/**\n * Add a WMS layer to a map. opts must be:\n * {\n * url: '',\n * params: {}\n * }\n * @param map\n * @param opts\n */\nfunction addWMSLayer(map, opts) {\n\n if (opts.url === '') {\n return;\n }\n\n opts.params = Object.assign({\n format: 'image/png',\n transparent: true,\n maxZoom: 14,\n minZoom: 4\n }, opts.params);\n\n var mlayer = leaflet.tileLayer.wms(opts.url, opts.params);\n\n mlayer.addTo(map);\n\n return mlayer;\n}\n\n/**\n * Show a popup\n * @param feature\n * @param layer\n */\nfunction showFeaturePopup(feature, layer) {\n var popup_html = '';\n if (feature.properties && feature.properties.popup) {\n popup_html += feature.properties.popup;\n }\n\n layer.bindPopup(popup_html);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9oZWxwZXJzLmpzPzNjZDUiXSwibmFtZXMiOlsibGVhZmxldCIsInJlcXVpcmUiLCJhZGRXTVNMYXllciIsIm1hcCIsIm9wdHMiLCJ1cmwiLCJwYXJhbXMiLCJPYmplY3QiLCJhc3NpZ24iLCJmb3JtYXQiLCJ0cmFuc3BhcmVudCIsIm1heFpvb20iLCJtaW5ab29tIiwibWxheWVyIiwidGlsZUxheWVyIiwid21zIiwiYWRkVG8iLCJzaG93RmVhdHVyZVBvcHVwIiwiZmVhdHVyZSIsImxheWVyIiwicG9wdXBfaHRtbCIsInByb3BlcnRpZXMiLCJwb3B1cCIsImJpbmRQb3B1cCJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsSUFBTUEsVUFBVSxtQkFBQUMsQ0FBUSw0Q0FBUixDQUFoQjs7QUFFQTs7Ozs7Ozs7O0FBU08sU0FBU0MsV0FBVCxDQUFxQkMsR0FBckIsRUFBMEJDLElBQTFCLEVBQWdDOztBQUVuQyxRQUFHQSxLQUFLQyxHQUFMLEtBQWEsRUFBaEIsRUFBb0I7QUFDaEI7QUFDSDs7QUFFREQsU0FBS0UsTUFBTCxHQUFjQyxPQUFPQyxNQUFQLENBQWM7QUFDeEJDLGdCQUFRLFdBRGdCO0FBRXhCQyxxQkFBYSxJQUZXO0FBR3hCQyxpQkFBUyxFQUhlO0FBSXhCQyxpQkFBUztBQUplLEtBQWQsRUFLWFIsS0FBS0UsTUFMTSxDQUFkOztBQU9BLFFBQU1PLFNBQVNiLFFBQVFjLFNBQVIsQ0FBa0JDLEdBQWxCLENBQ1hYLEtBQUtDLEdBRE0sRUFDREQsS0FBS0UsTUFESixDQUFmOztBQUlBTyxXQUFPRyxLQUFQLENBQWFiLEdBQWI7O0FBRUEsV0FBT1UsTUFBUDtBQUNIOztBQUVEOzs7OztBQUtPLFNBQVNJLGdCQUFULENBQTBCQyxPQUExQixFQUFtQ0MsS0FBbkMsRUFBMEM7QUFDN0MsUUFBSUMsYUFBYSxFQUFqQjtBQUNBLFFBQUlGLFFBQVFHLFVBQVIsSUFBc0JILFFBQVFHLFVBQVIsQ0FBbUJDLEtBQTdDLEVBQW9EO0FBQ2hERixzQkFBY0YsUUFBUUcsVUFBUixDQUFtQkMsS0FBakM7QUFDSDs7QUFFREgsVUFBTUksU0FBTixDQUFnQkgsVUFBaEI7QUFDSCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9tYXBzL2hlbHBlcnMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmNvbnN0IGxlYWZsZXQgPSByZXF1aXJlKCdsZWFmbGV0Jyk7XG5cbi8qKlxuICogQWRkIGEgV01TIGxheWVyIHRvIGEgbWFwLiBvcHRzIG11c3QgYmU6XG4gKiB7XG4gKiAgdXJsOiAnJyxcbiAqICBwYXJhbXM6IHt9XG4gKiAgfVxuICogQHBhcmFtIG1hcFxuICogQHBhcmFtIG9wdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFdNU0xheWVyKG1hcCwgb3B0cykge1xuXG4gICAgaWYob3B0cy51cmwgPT09ICcnKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvcHRzLnBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICBmb3JtYXQ6ICdpbWFnZS9wbmcnLFxuICAgICAgICB0cmFuc3BhcmVudDogdHJ1ZSxcbiAgICAgICAgbWF4Wm9vbTogMTQsXG4gICAgICAgIG1pblpvb206IDQsXG4gICAgfSwgb3B0cy5wYXJhbXMpO1xuXG4gICAgY29uc3QgbWxheWVyID0gbGVhZmxldC50aWxlTGF5ZXIud21zKFxuICAgICAgICBvcHRzLnVybCwgb3B0cy5wYXJhbXNcbiAgICApO1xuXG4gICAgbWxheWVyLmFkZFRvKG1hcCk7XG5cbiAgICByZXR1cm4gbWxheWVyO1xufVxuXG4vKipcbiAqIFNob3cgYSBwb3B1cFxuICogQHBhcmFtIGZlYXR1cmVcbiAqIEBwYXJhbSBsYXllclxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvd0ZlYXR1cmVQb3B1cChmZWF0dXJlLCBsYXllcikge1xuICAgIGxldCBwb3B1cF9odG1sID0gJyc7XG4gICAgaWYgKGZlYXR1cmUucHJvcGVydGllcyAmJiBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXApIHtcbiAgICAgICAgcG9wdXBfaHRtbCArPSBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXBcbiAgICB9XG5cbiAgICBsYXllci5iaW5kUG9wdXAocG9wdXBfaHRtbClcbn1cblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9qcy9tYXBzL2hlbHBlcnMuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/maps/helpers.js\n"); +eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = addWMSLayer;\n/* unused harmony export showFeaturePopup */\n\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n/**\r\n * Add a WMS layer to a map. opts must be:\r\n * {\r\n * url: '',\r\n * params: {}\r\n * }\r\n * @param map\r\n * @param opts\r\n */\nfunction addWMSLayer(map, opts) {\n\n if (opts.url === '') {\n return;\n }\n\n opts.params = Object.assign({\n format: 'image/png',\n transparent: true,\n maxZoom: 14,\n minZoom: 4\n }, opts.params);\n\n var mlayer = leaflet.tileLayer.wms(opts.url, opts.params);\n\n mlayer.addTo(map);\n\n return mlayer;\n}\n\n/**\r\n * Show a popup\r\n * @param feature\r\n * @param layer\r\n */\nfunction showFeaturePopup(feature, layer) {\n var popup_html = '';\n if (feature.properties && feature.properties.popup) {\n popup_html += feature.properties.popup;\n }\n\n layer.bindPopup(popup_html);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9oZWxwZXJzLmpzPzNjZDUiXSwibmFtZXMiOlsibGVhZmxldCIsInJlcXVpcmUiLCJhZGRXTVNMYXllciIsIm1hcCIsIm9wdHMiLCJ1cmwiLCJwYXJhbXMiLCJPYmplY3QiLCJhc3NpZ24iLCJmb3JtYXQiLCJ0cmFuc3BhcmVudCIsIm1heFpvb20iLCJtaW5ab29tIiwibWxheWVyIiwidGlsZUxheWVyIiwid21zIiwiYWRkVG8iLCJzaG93RmVhdHVyZVBvcHVwIiwiZmVhdHVyZSIsImxheWVyIiwicG9wdXBfaHRtbCIsInByb3BlcnRpZXMiLCJwb3B1cCIsImJpbmRQb3B1cCJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsSUFBTUEsVUFBVSxtQkFBQUMsQ0FBUSw0Q0FBUixDQUFoQjs7QUFFQTs7Ozs7Ozs7O0FBU08sU0FBU0MsV0FBVCxDQUFxQkMsR0FBckIsRUFBMEJDLElBQTFCLEVBQWdDOztBQUVuQyxRQUFHQSxLQUFLQyxHQUFMLEtBQWEsRUFBaEIsRUFBb0I7QUFDaEI7QUFDSDs7QUFFREQsU0FBS0UsTUFBTCxHQUFjQyxPQUFPQyxNQUFQLENBQWM7QUFDeEJDLGdCQUFRLFdBRGdCO0FBRXhCQyxxQkFBYSxJQUZXO0FBR3hCQyxpQkFBUyxFQUhlO0FBSXhCQyxpQkFBUztBQUplLEtBQWQsRUFLWFIsS0FBS0UsTUFMTSxDQUFkOztBQU9BLFFBQU1PLFNBQVNiLFFBQVFjLFNBQVIsQ0FBa0JDLEdBQWxCLENBQ1hYLEtBQUtDLEdBRE0sRUFDREQsS0FBS0UsTUFESixDQUFmOztBQUlBTyxXQUFPRyxLQUFQLENBQWFiLEdBQWI7O0FBRUEsV0FBT1UsTUFBUDtBQUNIOztBQUVEOzs7OztBQUtPLFNBQVNJLGdCQUFULENBQTBCQyxPQUExQixFQUFtQ0MsS0FBbkMsRUFBMEM7QUFDN0MsUUFBSUMsYUFBYSxFQUFqQjtBQUNBLFFBQUlGLFFBQVFHLFVBQVIsSUFBc0JILFFBQVFHLFVBQVIsQ0FBbUJDLEtBQTdDLEVBQW9EO0FBQ2hERixzQkFBY0YsUUFBUUcsVUFBUixDQUFtQkMsS0FBakM7QUFDSDs7QUFFREgsVUFBTUksU0FBTixDQUFnQkgsVUFBaEI7QUFDSCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9tYXBzL2hlbHBlcnMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuY29uc3QgbGVhZmxldCA9IHJlcXVpcmUoJ2xlYWZsZXQnKTtcclxuXHJcbi8qKlxyXG4gKiBBZGQgYSBXTVMgbGF5ZXIgdG8gYSBtYXAuIG9wdHMgbXVzdCBiZTpcclxuICoge1xyXG4gKiAgdXJsOiAnJyxcclxuICogIHBhcmFtczoge31cclxuICogIH1cclxuICogQHBhcmFtIG1hcFxyXG4gKiBAcGFyYW0gb3B0c1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZFdNU0xheWVyKG1hcCwgb3B0cykge1xyXG5cclxuICAgIGlmKG9wdHMudXJsID09PSAnJykge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBvcHRzLnBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe1xyXG4gICAgICAgIGZvcm1hdDogJ2ltYWdlL3BuZycsXHJcbiAgICAgICAgdHJhbnNwYXJlbnQ6IHRydWUsXHJcbiAgICAgICAgbWF4Wm9vbTogMTQsXHJcbiAgICAgICAgbWluWm9vbTogNCxcclxuICAgIH0sIG9wdHMucGFyYW1zKTtcclxuXHJcbiAgICBjb25zdCBtbGF5ZXIgPSBsZWFmbGV0LnRpbGVMYXllci53bXMoXHJcbiAgICAgICAgb3B0cy51cmwsIG9wdHMucGFyYW1zXHJcbiAgICApO1xyXG5cclxuICAgIG1sYXllci5hZGRUbyhtYXApO1xyXG5cclxuICAgIHJldHVybiBtbGF5ZXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTaG93IGEgcG9wdXBcclxuICogQHBhcmFtIGZlYXR1cmVcclxuICogQHBhcmFtIGxheWVyXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2hvd0ZlYXR1cmVQb3B1cChmZWF0dXJlLCBsYXllcikge1xyXG4gICAgbGV0IHBvcHVwX2h0bWwgPSAnJztcclxuICAgIGlmIChmZWF0dXJlLnByb3BlcnRpZXMgJiYgZmVhdHVyZS5wcm9wZXJ0aWVzLnBvcHVwKSB7XHJcbiAgICAgICAgcG9wdXBfaHRtbCArPSBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXBcclxuICAgIH1cclxuXHJcbiAgICBsYXllci5iaW5kUG9wdXAocG9wdXBfaHRtbClcclxufVxyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9yZXNvdXJjZXMvanMvbWFwcy9oZWxwZXJzLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/maps/helpers.js\n"); /***/ }), @@ -350,7 +350,7 @@ eval("/* harmony export (immutable) */ __webpack_exports__[\"a\"] = addWMSLayer; /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__airspace_map__ = __webpack_require__(\"./resources/js/maps/airspace_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__live_map__ = __webpack_require__(\"./resources/js/maps/live_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__route_map__ = __webpack_require__(\"./resources/js/maps/route_map.js\");\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"render_airspace_map\", function() { return __WEBPACK_IMPORTED_MODULE_0__airspace_map__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"render_live_map\", function() { return __WEBPACK_IMPORTED_MODULE_1__live_map__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"render_route_map\", function() { return __WEBPACK_IMPORTED_MODULE_2__route_map__[\"a\"]; });\n/**\n * All of the functionality required for maps\n */\n\nwindow.L = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n__webpack_require__(\"./node_modules/Leaflet.Geodesic/Leaflet.Geodesic.js\");\n__webpack_require__(\"./node_modules/leaflet-rotatedmarker/leaflet.rotatedMarker.js\");\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9pbmRleC5qcz85MmYwIl0sIm5hbWVzIjpbIndpbmRvdyIsIkwiLCJyZXF1aXJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUFBOzs7O0FBSUFBLE9BQU9DLENBQVAsR0FBVyxtQkFBQUMsQ0FBUSw0Q0FBUixDQUFYO0FBQ0EsbUJBQUFBLENBQVEscURBQVI7QUFDQSxtQkFBQUEsQ0FBUSwrREFBUjs7QUFFQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvbWFwcy9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWxsIG9mIHRoZSBmdW5jdGlvbmFsaXR5IHJlcXVpcmVkIGZvciBtYXBzXG4gKi9cblxud2luZG93LkwgPSByZXF1aXJlKCdsZWFmbGV0Jyk7XG5yZXF1aXJlKCdMZWFmbGV0Lkdlb2Rlc2ljJyk7XG5yZXF1aXJlKCdsZWFmbGV0LXJvdGF0ZWRtYXJrZXInKTtcblxuaW1wb3J0IHJlbmRlcl9haXJzcGFjZV9tYXAgZnJvbSAnLi9haXJzcGFjZV9tYXAnXG5pbXBvcnQgcmVuZGVyX2xpdmVfbWFwIGZyb20gJy4vbGl2ZV9tYXAnXG5pbXBvcnQgcmVuZGVyX3JvdXRlX21hcCBmcm9tICcuL3JvdXRlX21hcCdcblxuZXhwb3J0IHtcbiAgcmVuZGVyX2FpcnNwYWNlX21hcCxcbiAgcmVuZGVyX2xpdmVfbWFwLFxuICByZW5kZXJfcm91dGVfbWFwLFxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcmVzb3VyY2VzL2pzL21hcHMvaW5kZXguanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/maps/index.js\n"); +eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__airspace_map__ = __webpack_require__(\"./resources/js/maps/airspace_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__live_map__ = __webpack_require__(\"./resources/js/maps/live_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__route_map__ = __webpack_require__(\"./resources/js/maps/route_map.js\");\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"render_airspace_map\", function() { return __WEBPACK_IMPORTED_MODULE_0__airspace_map__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"render_live_map\", function() { return __WEBPACK_IMPORTED_MODULE_1__live_map__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"render_route_map\", function() { return __WEBPACK_IMPORTED_MODULE_2__route_map__[\"a\"]; });\n/**\r\n * All of the functionality required for maps\r\n */\n\nwindow.L = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n__webpack_require__(\"./node_modules/Leaflet.Geodesic/Leaflet.Geodesic.js\");\n__webpack_require__(\"./node_modules/leaflet-rotatedmarker/leaflet.rotatedMarker.js\");\n\n\n\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9pbmRleC5qcz85MmYwIl0sIm5hbWVzIjpbIndpbmRvdyIsIkwiLCJyZXF1aXJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUFBOzs7O0FBSUFBLE9BQU9DLENBQVAsR0FBVyxtQkFBQUMsQ0FBUSw0Q0FBUixDQUFYO0FBQ0EsbUJBQUFBLENBQVEscURBQVI7QUFDQSxtQkFBQUEsQ0FBUSwrREFBUjs7QUFFQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvbWFwcy9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBBbGwgb2YgdGhlIGZ1bmN0aW9uYWxpdHkgcmVxdWlyZWQgZm9yIG1hcHNcclxuICovXHJcblxyXG53aW5kb3cuTCA9IHJlcXVpcmUoJ2xlYWZsZXQnKTtcclxucmVxdWlyZSgnTGVhZmxldC5HZW9kZXNpYycpO1xyXG5yZXF1aXJlKCdsZWFmbGV0LXJvdGF0ZWRtYXJrZXInKTtcclxuXHJcbmltcG9ydCByZW5kZXJfYWlyc3BhY2VfbWFwIGZyb20gJy4vYWlyc3BhY2VfbWFwJ1xyXG5pbXBvcnQgcmVuZGVyX2xpdmVfbWFwIGZyb20gJy4vbGl2ZV9tYXAnXHJcbmltcG9ydCByZW5kZXJfcm91dGVfbWFwIGZyb20gJy4vcm91dGVfbWFwJ1xyXG5cclxuZXhwb3J0IHtcclxuICByZW5kZXJfYWlyc3BhY2VfbWFwLFxyXG4gIHJlbmRlcl9saXZlX21hcCxcclxuICByZW5kZXJfcm91dGVfbWFwLFxyXG59XHJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9qcy9tYXBzL2luZGV4LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/maps/index.js\n"); /***/ }), @@ -358,7 +358,7 @@ eval("Object.defineProperty(__webpack_exports__, \"__esModule\", { value: true } /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpack_require__(\"./resources/js/maps/base_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__config__ = __webpack_require__(\"./resources/js/maps/config.js\");\n\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n\n\n\n/**\n * Render the live map\n * @param opts\n * @private\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n\n opts = Object.assign({\n update_uri: '/api/acars',\n pirep_uri: '/api/pireps/{id}/acars',\n positions: null,\n render_elem: 'map',\n aircraft_icon: '/assets/img/acars/aircraft.png'\n }, opts);\n\n var map = Object(__WEBPACK_IMPORTED_MODULE_0__base_map__[\"a\" /* default */])(opts);\n var aircraftIcon = leaflet.icon({\n iconUrl: opts.aircraft_icon,\n iconSize: [42, 42],\n iconAnchor: [21, 21]\n });\n\n var layerFlights = null;\n var layerSelFlight = null;\n var layerSelFlightFeature = null;\n var layerSelFlightLayer = null;\n\n /**\n * When a flight is clicked on, show the path, etc for that flight\n * @param feature\n * @param layer\n */\n var onFlightClick = function onFlightClick(feature, layer) {\n\n var uri = opts.pirep_uri.replace('{id}', feature.properties.pirep_id);\n\n var flight_route = $.ajax({\n url: uri,\n dataType: 'json',\n error: console.log\n });\n\n $.when(flight_route).done(function (routeJson) {\n if (layerSelFlight !== null) {\n map.removeLayer(layerSelFlight);\n }\n\n layerSelFlight = leaflet.geodesic([], {\n weight: 7,\n opacity: 0.9,\n color: __WEBPACK_IMPORTED_MODULE_1__config__[\"a\" /* ACTUAL_ROUTE_COLOR */],\n wrap: false\n }).addTo(map);\n\n layerSelFlight.geoJson(routeJson.line);\n\n layerSelFlightFeature = feature;\n layerSelFlightLayer = layer;\n //map.fitBounds(layerSelFlight.getBounds());\n });\n };\n\n var updateMap = function updateMap() {\n\n console.log('reloading flights from acars...');\n\n /**\n * AJAX UPDATE\n */\n\n var flights = $.ajax({\n url: opts.update_uri,\n dataType: 'json',\n error: console.log\n });\n\n $.when(flights).done(function (flightGeoJson) {\n\n if (layerFlights !== null) {\n layerFlights.clearLayers();\n }\n\n layerFlights = leaflet.geoJSON(flightGeoJson, {\n onEachFeature: function onEachFeature(feature, layer) {\n\n layer.on({\n click: function click(e) {\n onFlightClick(feature, layer);\n }\n });\n\n var popup_html = '';\n if (feature.properties && feature.properties.popup) {\n popup_html += feature.properties.popup;\n }\n\n layer.bindPopup(popup_html);\n },\n pointToLayer: function pointToLayer(feature, latlon) {\n return leaflet.marker(latlon, {\n icon: aircraftIcon,\n rotationAngle: feature.properties.heading\n });\n }\n });\n\n layerFlights.addTo(map);\n\n if (layerSelFlight !== null) {\n onFlightClick(layerSelFlightFeature, layerSelFlightLayer);\n }\n });\n };\n\n updateMap();\n setInterval(updateMap, 10000);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9saXZlX21hcC5qcz9lN2Y2Il0sIm5hbWVzIjpbImxlYWZsZXQiLCJyZXF1aXJlIiwib3B0cyIsIk9iamVjdCIsImFzc2lnbiIsInVwZGF0ZV91cmkiLCJwaXJlcF91cmkiLCJwb3NpdGlvbnMiLCJyZW5kZXJfZWxlbSIsImFpcmNyYWZ0X2ljb24iLCJtYXAiLCJkcmF3X2Jhc2VfbWFwIiwiYWlyY3JhZnRJY29uIiwiaWNvbiIsImljb25VcmwiLCJpY29uU2l6ZSIsImljb25BbmNob3IiLCJsYXllckZsaWdodHMiLCJsYXllclNlbEZsaWdodCIsImxheWVyU2VsRmxpZ2h0RmVhdHVyZSIsImxheWVyU2VsRmxpZ2h0TGF5ZXIiLCJvbkZsaWdodENsaWNrIiwiZmVhdHVyZSIsImxheWVyIiwidXJpIiwicmVwbGFjZSIsInByb3BlcnRpZXMiLCJwaXJlcF9pZCIsImZsaWdodF9yb3V0ZSIsIiQiLCJhamF4IiwidXJsIiwiZGF0YVR5cGUiLCJlcnJvciIsImNvbnNvbGUiLCJsb2ciLCJ3aGVuIiwiZG9uZSIsInJvdXRlSnNvbiIsInJlbW92ZUxheWVyIiwiZ2VvZGVzaWMiLCJ3ZWlnaHQiLCJvcGFjaXR5IiwiY29sb3IiLCJ3cmFwIiwiYWRkVG8iLCJnZW9Kc29uIiwibGluZSIsInVwZGF0ZU1hcCIsImZsaWdodHMiLCJmbGlnaHRHZW9Kc29uIiwiY2xlYXJMYXllcnMiLCJnZW9KU09OIiwib25FYWNoRmVhdHVyZSIsIm9uIiwiY2xpY2siLCJlIiwicG9wdXBfaHRtbCIsInBvcHVwIiwiYmluZFBvcHVwIiwicG9pbnRUb0xheWVyIiwibGF0bG9uIiwibWFya2VyIiwicm90YXRpb25BbmdsZSIsImhlYWRpbmciLCJzZXRJbnRlcnZhbCJdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsSUFBTUEsVUFBVSxtQkFBQUMsQ0FBUSw0Q0FBUixDQUFoQjs7QUFFQTtBQUNBOztBQUVBOzs7OztBQUtBLHlEQUFlLFVBQUNDLElB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bUJ1QyxNQUFuQixFQUEyQjtBQUN2QyxpQkFBTzdELFFBQVE4RCxNQUFSLENBQWVELE1BQWYsRUFBdUI7QUFDNUJoRCxrQkFBTUQsWUFEc0I7QUFFNUJtRCwyQkFBZXpDLFFBQVFJLFVBQVIsQ0FBbUJzQztBQUZOLFdBQXZCLENBQVA7QUFJRDtBQXJCMkMsT0FBL0IsQ0FBZjs7QUF3QkEvQyxtQkFBYTRCLEtBQWIsQ0FBbUJuQyxHQUFuQjs7QUFFQSxVQUFJUSxtQkFBbUIsSUFBdkIsRUFBNkI7QUFDM0JHLHNCQUFjRixxQkFBZCxFQUFxQ0MsbUJBQXJDO0FBQ0Q7QUFDRixLQW5DRDtBQW9DRCxHQWxERDs7QUFvREE0QjtBQUNBaUIsY0FBWWpCLFNBQVosRUFBdUIsS0FBdkI7QUFDRCxDQS9HRCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9tYXBzL2xpdmVfbWFwLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG5jb25zdCBsZWFmbGV0ID0gcmVxdWlyZSgnbGVhZmxldCcpO1xuXG5pbXBvcnQgZHJhd19iYXNlX21hcCBmcm9tICcuL2Jhc2VfbWFwJ1xuaW1wb3J0IHsgQUNUVUFMX1JPVVRFX0NPTE9SIH0gZnJvbSAnLi9jb25maWcnXG5cbi8qKlxuICogUmVuZGVyIHRoZSBsaXZlIG1hcFxuICogQHBhcmFtIG9wdHNcbiAqIEBwcml2YXRlXG4gKi9cbmV4cG9ydCBkZWZhdWx0IChvcHRzKSA9PiB7XG5cbiAgb3B0cyA9IE9iamVjdC5hc3NpZ24oe1xuICAgIHVwZGF0ZV91cmk6ICcvYXBpL2FjYXJzJyxcbiAgICBwaXJlcF91cmk6ICcvYXBpL3BpcmVwcy97aWR9L2FjYXJzJyxcbiAgICBwb3NpdGlvbnM6IG51bGwsXG4gICAgcmVuZGVyX2VsZW06ICdtYXAnLFxuICAgIGFpcmNyYWZ0X2ljb246ICcvYXNzZXRzL2ltZy9hY2Fycy9haXJjcmFmdC5wbmcnLFxuICB9LCBvcHRzKTtcblxuICBjb25zdCBtYXAgPSBkcmF3X2Jhc2VfbWFwKG9wdHMpO1xuICBjb25zdCBhaXJjcmFmdEljb24gPSBsZWFmbGV0Lmljb24oe1xuICAgIGljb25Vcmw6IG9wdHMuYWlyY3JhZnRfaWNvbixcbiAgICBpY29uU2l6ZTogWzQyLCA0Ml0sXG4gICAgaWNvbkFuY2hvcjogWzIxLCAyMV0sXG4gIH0pXG5cbiAgbGV0IGxheWVyRmxpZ2h0cyA9IG51bGxcbiAgbGV0IGxheWVyU2VsRmxpZ2h0ID0gbnVsbFxuICBsZXQgbGF5ZXJTZWxGbGlnaHRGZWF0dXJlID0gbnVsbFxuICBsZXQgbGF5ZXJTZWxGbGlnaHRMYXllciA9IG51bGxcblxuICAvKipcbiAgICogV2hlbiBhIGZsaWdodCBpcyBjbGlja2VkIG9uLCBzaG93IHRoZSBwYXRoLCBldGMgZm9yIHRoYXQgZmxpZ2h0XG4gICAqIEBwYXJhbSBmZWF0dXJlXG4gICAqIEBwYXJhbSBsYXllclxuICAgKi9cbiAgY29uc3Qgb25GbGlnaHRDbGljayA9IChmZWF0dXJlLCBsYXllcikgPT4ge1xuXG4gICAgY29uc3QgdXJpID0gb3B0cy5waXJlcF91cmkucmVwbGFjZSgne2lkfScsIGZlYXR1cmUucHJvcGVydGllcy5waXJlcF9pZClcblxuICAgIGNvbnN0IGZsaWdodF9yb3V0ZSA9ICQuYWpheCh7XG4gICAgICB1cmw6IHVyaSxcbiAgICAgIGRhdGFUeXBlOiAnanNvbicsXG4gICAgICBlcnJvcjogY29uc29sZS5sb2dcbiAgICB9KVxuXG4gICAgJC53aGVuKGZsaWdodF9yb3V0ZSkuZG9uZSgocm91dGVKc29uKSA9PiB7XG4gICAgICBpZiAobGF5ZXJTZWxGbGlnaHQgIT09IG51bGwpIHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKGxheWVyU2VsRmxpZ2h0KVxuICAgICAgfVxuXG4gICAgICBsYXllclNlbEZsaWdodCA9IGxlYWZsZXQuZ2VvZGVzaWMoW10sIHtcbiAgICAgICAgd2VpZ2h0OiA3LFxuICAgICAgICBvcGFjaXR5OiAwLjksXG4gICAgICAgIGNvbG9yOiBBQ1RVQUxfUk9VVEVfQ09MT1IsXG4gICAgICAgIHdyYXA6IGZhbHNlLFxuICAgICAgfSkuYWRkVG8obWFwKVxuXG4gICAgICBsYXllclNlbEZsaWdodC5nZW9Kc29uKHJvdXRlSnNvbi5saW5lKVxuXG4gICAgICBsYXllclNlbEZsaWdodEZlYXR1cmUgPSBmZWF0dXJlXG4gICAgICBsYXllclNlbEZsaWdodExheWVyID0gbGF5ZXJcbiAgICAgIC8vbWFwLmZpdEJvdW5kcyhsYXllclNlbEZsaWdodC5nZXRCb3VuZHMoKSk7XG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IHVwZGF0ZU1hcCA9ICgpID0+IHtcblxuICAgIGNvbnNvbGUubG9nKCdyZWxvYWRpbmcgZmxpZ2h0cyBmcm9tIGFjYXJzLi4uJylcblxuICAgIC8qKlxuICAgICAqIEFKQVggVVBEQVRFXG4gICAgICovXG5cbiAgICBsZXQgZmxpZ2h0cyA9ICQuYWpheCh7XG4gICAgICB1cmw6IG9wdHMudXBkYXRlX3VyaSxcbiAgICAgIGRhdGFUeXBlOiAnanNvbicsXG4gICAgICBlcnJvcjogY29uc29sZS5sb2dcbiAgICB9KVxuXG4gICAgJC53aGVuKGZsaWdodHMpLmRvbmUoZnVuY3Rpb24gKGZsaWdodEdlb0pzb24pIHtcblxuICAgICAgaWYgKGxheWVyRmxpZ2h0cyAhPT0gbnVsbCkge1xuICAgICAgICBsYXllckZsaWdodHMuY2xlYXJMYXllcnMoKVxuICAgICAgfVxuXG4gICAgICBsYXllckZsaWdodHMgPSBsZWFmbGV0Lmdlb0pTT04oZmxpZ2h0R2VvSnNvbiwge1xuICAgICAgICBvbkVhY2hGZWF0dXJlOiAoZmVhdHVyZSwgbGF5ZXIpID0+IHtcblxuICAgICAgICAgIGxheWVyLm9uKHtcbiAgICAgICAgICAgIGNsaWNrOiAoZSkgPT4ge1xuICAgICAgICAgICAgICBvbkZsaWdodENsaWNrKGZlYXR1cmUsIGxheWVyKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBsZXQgcG9wdXBfaHRtbCA9ICcnXG4gICAgICAgICAgaWYgKGZlYXR1cmUucHJvcGVydGllcyAmJiBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXApIHtcbiAgICAgICAgICAgIHBvcHVwX2h0bWwgKz0gZmVhdHVyZS5wcm9wZXJ0aWVzLnBvcHVwXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGF5ZXIuYmluZFBvcHVwKHBvcHVwX2h0bWwpXG4gICAgICAgIH0sXG4gICAgICAgIHBvaW50VG9MYXllcjogZnVuY3Rpb24gKGZlYXR1cmUsIGxhdGxvbikge1xuICAgICAgICAgIHJldHVybiBsZWFmbGV0Lm1hcmtlcihsYXRsb24sIHtcbiAgICAgICAgICAgIGljb246IGFpcmNyYWZ0SWNvbixcbiAgICAgICAgICAgIHJvdGF0aW9uQW5nbGU6IGZlYXR1cmUucHJvcGVydGllcy5oZWFkaW5nXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgbGF5ZXJGbGlnaHRzLmFkZFRvKG1hcClcblxuICAgICAgaWYgKGxheWVyU2VsRmxpZ2h0ICE9PSBudWxsKSB7XG4gICAgICAgIG9uRmxpZ2h0Q2xpY2sobGF5ZXJTZWxGbGlnaHRGZWF0dXJlLCBsYXllclNlbEZsaWdodExheWVyKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICB1cGRhdGVNYXAoKVxuICBzZXRJbnRlcnZhbCh1cGRhdGVNYXAsIDEwMDAwKVxufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9qcy9tYXBzL2xpdmVfbWFwLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/maps/live_map.js\n"); +eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpack_require__(\"./resources/js/maps/base_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__config__ = __webpack_require__(\"./resources/js/maps/config.js\");\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n\n\n\n/**\r\n * Render the live map\r\n * @param opts\r\n * @private\r\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n\n opts = Object.assign({\n update_uri: '/api/acars',\n pirep_uri: '/api/pireps/{id}',\n positions: null,\n render_elem: 'map',\n aircraft_icon: '/assets/img/acars/aircraft.png',\n units: 'nmi'\n }, opts);\n\n var map = Object(__WEBPACK_IMPORTED_MODULE_0__base_map__[\"a\" /* default */])(opts);\n var aircraftIcon = leaflet.icon({\n iconUrl: opts.aircraft_icon,\n iconSize: [42, 42],\n iconAnchor: [21, 21]\n });\n\n var pannedToCenter = false;\n var layerFlights = null;\n var layerSelFlight = null;\n var layerSelFlightFeature = null;\n var layerSelFlightLayer = null;\n\n /**\r\n * When a flight is clicked on, show the path, etc for that flight\r\n * @param feature\r\n * @param layer\r\n */\n var onFlightClick = function onFlightClick(feature, layer) {\n\n var pirep_uri = opts.pirep_uri.replace('{id}', feature.properties.pirep_id);\n var geojson_uri = opts.pirep_uri.replace('{id}', feature.properties.pirep_id) + \"/acars/geojson\";\n\n var pirep_info = $.ajax({\n url: pirep_uri,\n dataType: 'json',\n error: console.log\n });\n\n var flight_route = $.ajax({\n url: geojson_uri,\n dataType: 'json',\n error: console.log\n });\n\n // Load up the PIREP info\n $.when(flight_route).done(function (routeJson) {\n if (layerSelFlight !== null) {\n map.removeLayer(layerSelFlight);\n }\n\n layerSelFlight = leaflet.geodesic([], {\n weight: 7,\n opacity: 0.9,\n color: __WEBPACK_IMPORTED_MODULE_1__config__[\"a\" /* ACTUAL_ROUTE_COLOR */],\n wrap: false\n }).addTo(map);\n\n layerSelFlight.geoJson(routeJson.line);\n layerSelFlightFeature = feature;\n layerSelFlightLayer = layer;\n\n // Center on it, but only do it once, in case the map is moved\n if (!pannedToCenter) {\n map.panTo({ lat: routeJson.position.lat, lng: routeJson.position.lon });\n pannedToCenter = true;\n }\n });\n\n //\n // When the PIREP info is done loading, show the bottom bar\n //\n $.when(pirep_info).done(function (pirep) {\n pirep = pirep.data;\n\n var dist = void 0,\n planned_dist = void 0;\n if (opts.units === 'nmi') {\n dist = pirep.distance.nmi;\n planned_dist = pirep.planned_distance.nmi;\n } else if (opts.units === 'mi') {\n dist = pirep.distance.mi;\n planned_dist = pirep.planned_distance.mi;\n } else if (opts.units === 'km') {\n dist = pirep.distance.km;\n planned_dist = pirep.planned_distance.km;\n }\n\n // Parse flight time\n var hours = Math.floor(pirep.flight_time / 60);\n var mins = pirep.flight_time % 60;\n\n $('#map_flight_id').text(pirep.airline.icao + pirep.flight_number);\n $('#map_flight_info').text(pirep.dpt_airport.name + ' (' + pirep.dpt_airport.icao + ') to ' + pirep.arr_airport.name + ' (' + pirep.arr_airport.icao + ')');\n\n $('#map_flight_stats_middle').html('Status: ' + pirep.status_text + '
' + 'Flight Time: ' + hours + 'h ' + mins + 'm
' + 'Distance: ' + dist + ' / ' + planned_dist + opts.units + '
');\n\n // Show flight stat info\n $('#map_flight_stats_right').html('Ground Speed: ' + pirep.position.gs + '
' + 'Altitude: ' + pirep.position.altitude + '
' + 'Heading: ' + pirep.position.heading + '');\n\n $('#map-info-bar').show();\n });\n };\n\n var updateMap = function updateMap() {\n\n console.log('reloading flights from acars...');\n\n /**\r\n * AJAX UPDATE\r\n */\n\n var flights = $.ajax({\n url: opts.update_uri,\n dataType: 'json',\n error: console.log\n });\n\n $.when(flights).done(function (flightGeoJson) {\n\n if (layerFlights !== null) {\n layerFlights.clearLayers();\n }\n\n layerFlights = leaflet.geoJSON(flightGeoJson, {\n onEachFeature: function onEachFeature(feature, layer) {\n layer.on({\n click: function click(e) {\n pannedToCenter = false;\n onFlightClick(feature, layer);\n }\n });\n\n var popup_html = '';\n if (feature.properties && feature.properties.popup !== '' && feature.properties.popup !== undefined) {\n popup_html += feature.properties.popup;\n layer.bindPopup(popup_html);\n }\n },\n pointToLayer: function pointToLayer(feature, latlon) {\n return leaflet.marker(latlon, {\n icon: aircraftIcon,\n rotationAngle: feature.properties.heading\n });\n }\n });\n\n layerFlights.addTo(map);\n\n // Reload the clicked-flight information\n if (layerSelFlight !== null) {\n onFlightClick(layerSelFlightFeature, layerSelFlightLayer);\n }\n });\n };\n\n updateMap();\n setInterval(updateMap, 10000);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9saXZlX21hcC5qcz9lN2Y2Il0sIm5hbWVzIjpbImxlYWZsZXQiLCJyZXF1aXJlIiwib3B0cyIsIk9iamVjdCIsImFzc2lnbiIsInVwZGF0ZV91cmkiLCJwaXJlcF91cmkiLCJwb3NpdGlvbnMiLCJyZW5kZXJfZWxlbSIsImFpcmNyYWZ0X2ljb24iLCJ1bml0cyIsIm1hcCIsImRyYXdfYmFzZV9tYXAiLCJhaXJjcmFmdEljb24iLCJpY29uIiwiaWNvblVybCIsImljb25TaXplIiwiaWNvbkFuY2hvciIsInBhbm5lZFRvQ2VudGVyIiwibGF5ZXJGbGlnaHRzIiwibGF5ZXJTZWxGbGlnaHQiLCJsYXllclNlbEZsaWdodEZlYXR1cmUiLCJsYXllclNlbEZsaWdodExheWVyIiwib25GbGlnaHRDbGljayIsImZlYXR1cmUiLCJsYXllciIsInJlcGxhY2UiLCJwcm9wZXJ0aWVzIiwicGlyZXBfaWQiLCJnZW9qc29uX3VyaSIsInBpcmVwX2luZm8iLCIkIiwiYWpheCIsInVybCIsImRhdGFUeXBlIiwiZXJyb3IiLCJjb25zb2xlIiwibG9nIiwiZmxpZ2h0X3JvdXRlIiwid2hlbiIsImRvbmUiLCJyb3V0ZUpzb24iLCJyZW1vdmVMYXllciIsImdlb2Rlc2ljIiwid2VpZ2h0Iiwib3BhY2l0eSIsImNvbG9yIiwid3JhcCIsImFkZFRvIiwiZ2VvSnNvbiIsImxpbmUiLCJwYW5UbyIsImxhdCIsInBvc2l0aW9uIiwibG5nIiwibG9uIiwicGlyZXAiLCJkYXRhIiwiZGlzdCIsInBsYW5uZWRfZGlzdCIsImRpc3RhbmNlIiwibm1pIiwicGxhbm5lZF9kaXN0YW5jZSIsIm1pIiwia20iLCJob3VycyIsIk1hdGgiLCJmbG9vciIsImZsaWdodF90aW1lIiwibWlucyIsInRleHQiLCJhaXJsaW5lIiwiaWNhbyIsImZsaWdodF9udW1iZXIiLCJkcHRfYWlycG9ydCIsIm5hbWUiLCJhcnJfYWlycG9ydCIsImh0bWwiLCJzdGF0dXNfdGV4dCIsImdzIiwiYWx0aXR1ZGUiLCJoZWFkaW5nIiwic2hvdyIsInVwZGF0ZU1hcCIsImZsaWdodHMiLCJmbGlnaHRHZW9Kc29uIiwiY2xlYXJMYXllcnMiLCJnZW9KU09OIiwib25FYWNoRmVhdHVyZSIsIm9uIiwiY2xpY2siLCJlIiwicG9wdXBfaHRtbCIsInBvcHVwIiwidW5kZWZpbmVkIiwiYmluZFBvcHVwIiwicG9pbnRUb0xheWVyIiwibGF0bG9uIiwibWFya2VyIiwicm90YXRpb25BbmdsZSIsInNldEludGVydmFsIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQSxJQUFNQSxVQUFVLG1CQUFBQyxDQUFRLDRDQUFSLENBQWhCOztBQUVBO0FBQ0E7O0FBRUE7Ozs7O0FBS0EseURBQWUsVUFBQ0MsSUFBRCxFQUFVOztBQUVyQkEsV0FBT0MsT0FBT0MsTUFBUCxDQUFjO0FBQ2pCQyxvQkFBWSxZQURLO0FBRWpCQyxtQkFBVyxrQkFGTTtBQUdqQkMsbUJBQVcsSUFITTtBQUlqQkMscUJBQWEsS0FKSTtBQUtqQkMsdUJBQWUsZ0NBTEU7QUFNakJDLGVBQU87QUFOVSxLQUFkLEVBT0pSLElBUEksQ0FBUDs7QUFTQSxRQUFNUyxNQUFNLGtFQUFBQyxDQUFjVixJQUFkLENBQVo7QUFDQSxRQUFNVyxlQUFlYixRQUFRYyxJQUFSLENBQWE7QUFDOUJDLGlCQUFTYixLQUFLTyxhQURnQjtBQUU5Qk8sa0JBQVUsQ0FBQyxFQUFELEVBQUssRUFBTCxDQUZvQjtBQUc5QkMsb0JBQVksQ0FBQyxFQUFELEVBQUssRUFBTDtBQUhrQixLQUFiLENBQXJCOztBQU1BLFFBQUlDLGlCQUFpQixLQUFyQjtBQUNBLFFBQUlDLGVBQWUsSUFBbkI7QUFDQSxRQUFJQyxpQkFBaUIsSUFBckI7QUFDQSxRQUFJQyx3QkFBd0IsSUFBNUI7QUFDQSxRQUFJQyxzQkFBc0IsSUFBMUI7O0FBRUE7Ozs7O0FBS0EsUUFBTUMsZ0JBQWdCLFNBQWhCQSxhQUFnQixDQUFDQyxPQUFELEVBQVVDLEtBQVYsRUFBb0I7O0FBRXRDLFlBQU1u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QWUsdUJBQUNoRSxPQUFELEVBQVVDLEtBQVYsRUFBb0I7QUFDL0JBLDBCQUFNZ0UsRUFBTixDQUFTO0FBQ0xDLCtCQUFPLGVBQUNDLENBQUQsRUFBTztBQUNWekUsNkNBQWlCLEtBQWpCO0FBQ0FLLDBDQUFjQyxPQUFkLEVBQXVCQyxLQUF2QjtBQUNIO0FBSkkscUJBQVQ7O0FBT0Esd0JBQUltRSxhQUFhLEVBQWpCO0FBQ0Esd0JBQUlwRSxRQUFRRyxVQUFSLElBQXVCSCxRQUFRRyxVQUFSLENBQW1Ca0UsS0FBbkIsS0FBNkIsRUFBN0IsSUFBbUNyRSxRQUFRRyxVQUFSLENBQW1Ca0UsS0FBbkIsS0FBNkJDLFNBQTNGLEVBQXVHO0FBQ25HRixzQ0FBY3BFLFFBQVFHLFVBQVIsQ0FBbUJrRSxLQUFqQztBQUNBcEUsOEJBQU1zRSxTQUFOLENBQWdCSCxVQUFoQjtBQUNIO0FBQ0osaUJBZHlDO0FBZTFDSSw4QkFBYyxzQkFBVXhFLE9BQVYsRUFBbUJ5RSxNQUFuQixFQUEyQjtBQUNyQywyQkFBT2pHLFFBQVFrRyxNQUFSLENBQWVELE1BQWYsRUFBdUI7QUFDMUJuRiw4QkFBTUQsWUFEb0I7QUFFMUJzRix1Q0FBZTNFLFFBQVFHLFVBQVIsQ0FBbUJzRDtBQUZSLHFCQUF2QixDQUFQO0FBSUg7QUFwQnlDLGFBQS9CLENBQWY7O0FBdUJBOUQseUJBQWE2QixLQUFiLENBQW1CckMsR0FBbkI7O0FBRUE7QUFDQSxnQkFBSVMsbUJBQW1CLElBQXZCLEVBQTZCO0FBQ3pCRyw4QkFBY0YscUJBQWQsRUFBcUNDLG1CQUFyQztBQUNIO0FBQ0osU0FuQ0Q7QUFvQ0gsS0FsREQ7O0FBb0RBNkQ7QUFDQWlCLGdCQUFZakIsU0FBWixFQUF1QixLQUF2QjtBQUNILENBeEtEIiwiZmlsZSI6Ii4vcmVzb3VyY2VzL2pzL21hcHMvbGl2ZV9tYXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBsZWFmbGV0ID0gcmVxdWlyZSgnbGVhZmxldCcpO1xyXG5cclxuaW1wb3J0IGRyYXdfYmFzZV9tYXAgZnJvbSAnLi9iYXNlX21hcCdcclxuaW1wb3J0IHtBQ1RVQUxfUk9VVEVfQ09MT1J9IGZyb20gJy4vY29uZmlnJ1xyXG5cclxuLyoqXHJcbiAqIFJlbmRlciB0aGUgbGl2ZSBtYXBcclxuICogQHBhcmFtIG9wdHNcclxuICogQHByaXZhdGVcclxuICovXHJcbmV4cG9ydCBkZWZhdWx0IChvcHRzKSA9PiB7XHJcblxyXG4gICAgb3B0cyA9IE9iamVjdC5hc3NpZ24oe1xyXG4gICAgICAgIHVwZGF0ZV91cmk6ICcvYXBpL2FjYXJzJyxcclxuICAgICAgICBwaXJlcF91cmk6ICcvYXBpL3BpcmVwcy97aWR9JyxcclxuICAgICAgICBwb3NpdGlvbnM6IG51bGwsXHJcbiAgICAgICAgcmVuZGVyX2VsZW06ICdtYXAnLFxyXG4gICAgICAgIGFpcmNyYWZ0X2ljb246ICcvYXNzZXRzL2ltZy9hY2Fycy9haXJjcmFmdC5wbmcnLFxyXG4gICAgICAgIHVuaXRzOiAnbm1pJyxcclxuICAgIH0sIG9wdHMpO1xyXG5cclxuICAgIGNvbnN0IG1hcCA9IGRyYXdfYmFzZV9tYXAob3B0cyk7XHJcbiAgICBjb25zdCBhaXJjcmFmdEljb24gPSBsZWFmbGV0Lmljb24oe1xyXG4gICAgICAgIGljb25Vcmw6IG9wdHMuYWlyY3JhZnRfaWNvbixcclxuICAgICAgICBpY29uU2l6ZTogWzQyLCA0Ml0sXHJcbiAgICAgICAgaWNvbkFuY2hvcjogWzIxLCAyMV0sXHJcbiAgICB9KTtcclxuXHJcbiAgICBsZXQgcGFubmVkVG9DZW50ZXIgPSBmYWxzZTtcclxuICAgIGxldCBsYXllckZsaWdodHMgPSBudWxsO1xyXG4gICAgbGV0IGxheWVyU2VsRmxpZ2h0ID0gbnVsbDtcclxuICAgIGxldCBsYXllclNlbEZsaWdodEZlYXR1cmUgPSBudWxsO1xyXG4gICAgbGV0IGxheWVyU2VsRmxpZ2h0TGF5ZXIgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hlbiBhIGZsaWdodCBpcyBjbGlja2VkIG9uLCBzaG93IHRoZSBwYXRoLCBldGMgZm9yIHRoYXQgZmxpZ2h0XHJcbiAgICAgKiBAcGFyYW0gZmVhdHVyZVxyXG4gICAgICogQHBhcmFtIGxheWVyXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IG9uRmxpZ2h0Q2xpY2sgPSAoZmVhdHVyZSwgbGF5ZXIpID0+IHtcclxuXHJcbiAgICAgICAgY29uc3QgcGlyZXBfdXJpID0gb3B0cy5waXJlcF91cmkucmVwbGFjZSgne2lkfScsIGZlYXR1cmUucHJvcGVydGllcy5waXJlcF9pZCk7XHJcbiAgICAgICAgY29uc3QgZ2VvanNvbl91cmkgPSBvcHRzLnBpcmVwX3VyaS5yZXBsYWNlKCd7aWR9JywgZmVhdHVyZS5wcm9wZXJ0aWVzLnBpcmVwX2lkKSArIFwiL2FjYXJzL2dlb2pzb25cIjtcclxuXHJcbiAgICAgICAgY29uc3QgcGlyZXBfaW5mbyA9ICQuYWpheCh7XHJcbiAgICAgICAgICAgIHVybDogcGlyZXBfdXJpLFxyXG4gICAgICAgICAgICBkYXRhVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICBlcnJvcjogY29uc29sZS5sb2dcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgZmxpZ2h0X3JvdXRlID0gJC5hamF4KHtcclxuICAgICAgICAgICAgdXJsOiBnZW9qc29uX3VyaSxcclxuICAgICAgICAgICAgZGF0YVR5cGU6ICdqc29uJyxcclxuICAgICAgICAgICAgZXJyb3I6IGNvbnNvbGUubG9nXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIExvYWQgdXAgdGhlIFBJUkVQIGluZm9cclxuICAgICAgICAkLndoZW4oZmxpZ2h0X3JvdXRlKS5kb25lKChyb3V0ZUpzb24pID0+IHtcclxuICAgICAgICAgICAgaWYgKGxheWVyU2VsRmxpZ2h0ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBtYXAucmVtb3ZlTGF5ZXIobGF5ZXJTZWxGbGlnaHQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsYXllclNlbEZsaWdodCA9IGxlYWZsZXQuZ2VvZGVzaWMoW10sIHtcclxuICAgICAgICAgICAgICAgIHdlaWdodDogNyxcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuOSxcclxuICAgICAgICAgICAgICAgIGNvbG9yOiBBQ1RVQUxfUk9VVEVfQ09MT1IsXHJcbiAgICAgICAgICAgICAgICB3cmFwOiBmYWxzZSxcclxuICAgICAgICAgICAgfSkuYWRkVG8obWFwKTtcclxuXHJcbiAgICAgICAgICAgIGxheWVyU2VsRmxpZ2h0Lmdlb0pzb24ocm91dGVKc29uLmxpbmUpO1xyXG4gICAgICAgICAgICBsYXllclNlbEZsaWdodEZlYXR1cmUgPSBmZWF0dXJlO1xyXG4gICAgICAgICAgICBsYXllclNlbEZsaWdodExheWVyID0gbGF5ZXI7XHJcblxyXG4gICAgICAgICAgICAvLyBDZW50ZXIgb24gaXQsIGJ1dCBvbmx5IGRvIGl0IG9uY2UsIGluIGNhc2UgdGhlIG1hcCBpcyBtb3ZlZFxyXG4gICAgICAgICAgICBpZighcGFubmVkVG9DZW50ZXIpIHtcclxuICAgICAgICAgICAgICAgIG1hcC5wYW5Ubyh7bGF0OiByb3V0ZUpzb24ucG9zaXRpb24ubGF0LCBsbmc6IHJvdXRlSnNvbi5wb3NpdGlvbi5sb259KTtcclxuICAgICAgICAgICAgICAgIHBhbm5lZFRvQ2VudGVyID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvL1xyXG4gICAgICAgIC8vIFdoZW4gdGhlIFBJUkVQIGluZm8gaXMgZG9uZSBsb2FkaW5nLCBzaG93IHRoZSBib3R0b20gYmFyXHJcbiAgICAgICAgLy9cclxuICAgICAgICAkLndoZW4ocGlyZXBfaW5mbykuZG9uZShwaXJlcCA9PiB7IHBpcmVwID0gcGlyZXAuZGF0YTtcclxuXHJcbiAgICAgICAgICAgIGxldCBkaXN0LCBwbGFubmVkX2Rpc3Q7XHJcbiAgICAgICAgICAgIGlmKG9wdHMudW5pdHMgPT09ICdubWknKSB7XHJcbiAgICAgICAgICAgICAgICBkaXN0ID0gcGlyZXAuZGlzdGFuY2Uubm1pO1xyXG4gICAgICAgICAgICAgICAgcGxhbm5lZF9kaXN0ID0gcGlyZXAucGxhbm5lZF9kaXN0YW5jZS5ubWk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZihvcHRzLnVuaXRzID09PSAnbWknKSB7XHJcbiAgICAgICAgICAgICAgICBkaXN0ID0gcGlyZXAuZGlzdGFuY2UubWk7XHJcbiAgICAgICAgICAgICAgICBwbGFubmVkX2Rpc3QgPSBwaXJlcC5wbGFubmVkX2Rpc3RhbmNlLm1pO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYob3B0cy51bml0cyA9PT0gJ2ttJykge1xyXG4gICAgICAgICAgICAgICAgZGlzdCA9IHBpcmVwLmRpc3RhbmNlLmttO1xyXG4gICAgICAgICAgICAgICAgcGxhbm5lZF9kaXN0ID0gcGlyZXAucGxhbm5lZF9kaXN0YW5jZS5rbTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gUGFyc2UgZmxpZ2h0IHRpbWVcclxuICAgICAgICAgICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKHBpcmVwLmZsaWdodF90aW1lIC8gNjApO1xyXG4gICAgICAgICAgICBjb25zdCBtaW5zID0gcGlyZXAuZmxpZ2h0X3RpbWUgJSA2MDtcclxuXHJcbiAgICAgICAgICAgICQoJyNtYXBfZmxpZ2h0X2lkJykudGV4dChwaXJlcC5haXJsaW5lLmljYW8gKyBwaXJlcC5mbGlnaHRfbnVtYmVyKTtcclxuICAgICAgICAgICAgJCgnI21hcF9mbGlnaHRfaW5mbycpLnRleHQoXHJcbiAgICAgICAgICAgICAgICBwaXJlcC5kcHRfYWlycG9ydC5uYW1lICsgJyAoJyArIHBpcmVwLmRwdF9haXJwb3J0LmljYW8gKyAnKSB0byAnICtcclxuICAgICAgICAgICAgICAgIHBpcmVwLmFycl9haXJwb3J0Lm5hbWUgKyAnICgnICsgcGlyZXAuYXJyX2FpcnBvcnQuaWNhbyArICcpJ1xyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgJCgnI21hcF9mbGlnaHRfc3RhdHNfbWlkZGxlJykuaHRtbChcclxuICAgICAgICAgICAgICAgICdTdGF0dXM6IDxzdHJvbmc+JyArIHBpcmVwLnN0YXR1c190ZXh0ICsgJzwvc3Ryb25nPjxiciAvPicgK1xyXG4gICAgICAgICAgICAgICAgJ0ZsaWdodCBUaW1lOiA8c3Ryb25nPicgKyBob3VycyArICdoICcgKyBtaW5zICsgJ208L3N0cm9uZz48YnIgLz4nICtcclxuICAgICAgICAgICAgICAgICdEaXN0YW5jZTogPHN0cm9uZz4nICsgZGlzdCArICc8L3N0cm9uZz4gLyAnICsgcGxhbm5lZF9kaXN0ICsgb3B0cy51bml0cyArICc8YnIgLz4nXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAvLyBTaG93IGZsaWdodCBzdGF0IGluZm9cclxuICAgICAgICAgICAgJCgnI21hcF9mbGlnaHRfc3RhdHNfcmlnaHQnKS5odG1sKFxyXG4gICAgICAgICAgICAgICAgJ0dyb3VuZCBTcGVlZDogPHN0cm9uZz4nICsgcGlyZXAucG9zaXRpb24uZ3MgKyAnPC9zdHJvbmc+PGJyIC8+JyArXHJcbiAgICAgICAgICAgICAgICAnQWx0aXR1ZGU6IDxzdHJvbmc+JyArIHBpcmVwLnBvc2l0aW9uLmFsdGl0dWRlICsgJzwvc3Ryb25nPjxiciAvPicgICtcclxuICAgICAgICAgICAgICAgICdIZWFkaW5nOiA8c3Ryb25nPicgKyBwaXJlcC5wb3NpdGlvbi5oZWFkaW5nICsgJzwvc3Ryb25nPidcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICQoJyNtYXAtaW5mby1iYXInKS5zaG93KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHVwZGF0ZU1hcCA9ICgpID0+IHtcclxuXHJcbiAgICAgICAgY29uc29sZS5sb2coJ3JlbG9hZGluZyBmbGlnaHRzIGZyb20gYWNhcnMuLi4nKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQUpBWCBVUERBVEVcclxuICAgICAgICAgKi9cclxuXHJcbiAgICAgICAgbGV0IGZsaWdodHMgPSAkLmFqYXgoe1xyXG4gICAgICAgICAgICB1cmw6IG9wdHMudXBkYXRlX3VyaSxcclxuICAgICAgICAgICAgZGF0YVR5cGU6ICdqc29uJyxcclxuICAgICAgICAgICAgZXJyb3I6IGNvbnNvbGUubG9nXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICQud2hlbihmbGlnaHRzKS5kb25lKGZ1bmN0aW9uIChmbGlnaHRHZW9Kc29uKSB7XHJcblxyXG4gICAgICAgICAgICBpZiAobGF5ZXJGbGlnaHRzICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBsYXllckZsaWdodHMuY2xlYXJMYXllcnMoKVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsYXllckZsaWdodHMgPSBsZWFmbGV0Lmdlb0pTT04oZmxpZ2h0R2VvSnNvbiwge1xyXG4gICAgICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogKGZlYXR1cmUsIGxheWVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGF5ZXIub24oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGljazogKGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhbm5lZFRvQ2VudGVyID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZsaWdodENsaWNrKGZlYXR1cmUsIGxheWVyKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwb3B1cF9odG1sID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZlYXR1cmUucHJvcGVydGllcyAmJiAoZmVhdHVyZS5wcm9wZXJ0aWVzLnBvcHVwICE9PSAnJyAmJiBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXAgIT09IHVuZGVmaW5lZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcG9wdXBfaHRtbCArPSBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyLmJpbmRQb3B1cChwb3B1cF9odG1sKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgcG9pbnRUb0xheWVyOiBmdW5jdGlvbiAoZmVhdHVyZSwgbGF0bG9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlYWZsZXQubWFya2VyKGxhdGxvbiwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBhaXJjcmFmdEljb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uQW5nbGU6IGZlYXR1cmUucHJvcGVydGllcy5oZWFkaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBsYXllckZsaWdodHMuYWRkVG8obWFwKTtcclxuXHJcbiAgICAgICAgICAgIC8vIFJlbG9hZCB0aGUgY2xpY2tlZC1mbGlnaHQgaW5mb3JtYXRpb25cclxuICAgICAgICAgICAgaWYgKGxheWVyU2VsRmxpZ2h0ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBvbkZsaWdodENsaWNrKGxheWVyU2VsRmxpZ2h0RmVhdHVyZSwgbGF5ZXJTZWxGbGlnaHRMYXllcilcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9O1xyXG5cclxuICAgIHVwZGF0ZU1hcCgpO1xyXG4gICAgc2V0SW50ZXJ2YWwodXBkYXRlTWFwLCAxMDAwMClcclxufTtcclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcmVzb3VyY2VzL2pzL21hcHMvbGl2ZV9tYXAuanMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/maps/live_map.js\n"); /***/ }), @@ -366,7 +366,7 @@ eval("/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpa /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("/* unused harmony export onFeaturePointClick */\n/* unused harmony export pointToLayer */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpack_require__(\"./resources/js/maps/base_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(\"./resources/js/maps/helpers.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__config__ = __webpack_require__(\"./resources/js/maps/config.js\");\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n\n\n\n\n\n/**\n * Show some popup text when a feature is clicked on\n * @param feature\n * @param layer\n */\nvar onFeaturePointClick = function onFeaturePointClick(feature, layer) {\n var popup_html = '';\n if (feature.properties && feature.properties.popup) {\n popup_html += feature.properties.popup;\n }\n\n layer.bindPopup(popup_html);\n};\n\n/**\n * Show each point as a marker\n * @param feature\n * @param latlng\n * @returns {*}\n */\nvar pointToLayer = function pointToLayer(feature, latlng) {\n return leaflet.circleMarker(latlng, {\n radius: 5,\n fillColor: __WEBPACK_IMPORTED_MODULE_2__config__[\"b\" /* CIRCLE_COLOR */],\n color: '#000',\n weight: 1,\n opacity: 1,\n fillOpacity: 0.8\n });\n};\n\n/**\n *\n * @param opts\n * @private\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n\n opts = Object.assign({\n\n route_points: null,\n planned_route_line: null,\n actual_route_points: null,\n actual_route_line: null,\n render_elem: 'map',\n live_map: false,\n aircraft_icon: '/assets/img/acars/aircraft.png',\n metar_wms: {\n url: '',\n params: {}\n }\n }, opts);\n\n var aircraftIcon = leaflet.icon({\n iconUrl: opts.aircraft_icon,\n iconSize: [42, 42],\n iconAnchor: [21, 21]\n });\n\n var map = Object(__WEBPACK_IMPORTED_MODULE_0__base_map__[\"a\" /* default */])(opts);\n var layerLiveFlight = void 0;\n\n if (opts.metar_wms.url !== '') {\n Object(__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* addWMSLayer */])(map, opts.metar_wms);\n }\n\n var geodesicLayer = leaflet.geodesic([], {\n weight: 4,\n opacity: 0.9,\n color: __WEBPACK_IMPORTED_MODULE_2__config__[\"c\" /* PLAN_ROUTE_COLOR */],\n steps: 50,\n wrap: false\n }).addTo(map);\n\n geodesicLayer.geoJson(opts.planned_route_line);\n\n try {\n map.fitBounds(geodesicLayer.getBounds());\n } catch (e) {\n console.log(e);\n }\n\n // Draw the route points after\n if (opts.route_points !== null) {\n var route_points = leaflet.geoJSON(opts.route_points, {\n onEachFeature: onFeaturePointClick,\n pointToLayer: pointToLayer,\n style: {\n 'color': __WEBPACK_IMPORTED_MODULE_2__config__[\"c\" /* PLAN_ROUTE_COLOR */],\n 'weight': 3,\n 'opacity': 0.65\n }\n });\n\n route_points.addTo(map);\n }\n\n /**\n * draw the actual route\n */\n\n if (opts.actual_route_line !== null && opts.actual_route_line.features.length > 0) {\n var _geodesicLayer = leaflet.geodesic([], {\n weight: 3,\n opacity: 0.9,\n color: __WEBPACK_IMPORTED_MODULE_2__config__[\"a\" /* ACTUAL_ROUTE_COLOR */],\n steps: 50,\n wrap: false\n }).addTo(map);\n\n _geodesicLayer.geoJson(opts.actual_route_line);\n\n try {\n map.fitBounds(_geodesicLayer.getBounds());\n } catch (e) {\n console.log(e);\n }\n }\n\n if (opts.actual_route_points !== null && opts.actual_route_points.features.length > 0) {\n var _route_points = leaflet.geoJSON(opts.actual_route_points, {\n onEachFeature: onFeaturePointClick,\n pointToLayer: pointToLayer,\n style: {\n 'color': __WEBPACK_IMPORTED_MODULE_2__config__[\"a\" /* ACTUAL_ROUTE_COLOR */],\n 'weight': 3,\n 'opacity': 0.65\n }\n });\n\n _route_points.addTo(map);\n }\n\n /**\n *\n */\n var liveFlight = function liveFlight() {\n var uri = opts.pirep_uri;\n var live_route = $.ajax({\n url: uri,\n dataType: 'json',\n error: console.log\n });\n\n $.when(live_route).done(function (routeJson) {\n layerLiveFlight = leaflet.geoJSON(routeJson, {\n pointToLayer: function pointToLayer(feature, latlon) {\n return leaflet.marker(latlon, {\n icon: aircraftIcon,\n rotationAngle: feature.properties.heading\n });\n }\n });\n\n layerLiveFlight.addTo(map);\n });\n };\n\n setInterval(liveFlight, 10000);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9yb3V0ZV9tYXAuanM/YTc0NSJdLCJuYW1lcyI6WyJsZWFmbGV0IiwicmVxdWlyZSIsIm9uRmVhdHVyZVBvaW50Q2xpY2siLCJmZWF0dXJlIiwibGF5ZXIiLCJwb3B1cF9odG1sIiwicHJvcGVydGllcyIsInBvcHVwIiwiYmluZFBvcHVwIiwicG9pbnRUb0xheWVyIiwibGF0bG5nIiwiY2lyY2xlTWFya2VyIiwicmFkaXVzIiwiZmlsbENvbG9yIiwiY29sb3IiLCJ3ZWlnaHQiLCJvcGFjaXR5IiwiZmlsbE9wYWNpdHkiLCJvcHRzIiwiT2JqZWN0IiwiYXNzaWduIiwicm91dGVfcG9pbnRzIiwicGxhbm5lZF9yb3V0ZV9saW5lIiwiYWN0dWFsX3JvdXRlX3BvaW50cyIsImFjdHVhbF9yb3V0ZV9saW5lIiwicmVuZGVyX2VsZW0iLCJsaXZlX21hcCIsImFpcmNyYWZ0X2ljb24iLCJtZXRhcl93bXMiLCJ1cmwiLCJwYXJhbXMiLCJhaXJjcmFmdEljb24iLCJpY29uIiwiaWNvblVybCIsImljb25TaXplIiwiaWNvbkFuY2hvciIsIm1hcCIsImRyYXdfYmFzZV9tYXAiLCJsYXllckxpdmVGbGlnaHQiLCJhZGRXTVNMYXllciIsImdlb2Rlc2ljTGF5ZXIiLCJnZW9kZXNpYyIsInN0ZXBzIiwid3JhcCIsImFkZFRvIiwiZ2VvSnNvbiIsImZpdEJvdW5kcyIsImdldEJvdW5kcyIsImUiLCJjb25zb2xlIiwibG9nIiwiZ2VvSlNPTiIsIm9uRWFjaEZlYXR1cmUiLCJzdHlsZSIsImZlYXR1cmVzIiwibGVuZ3RoIiwibGl2ZUZsaWdodCIsInVyaSIsInBpcmVwX3VyaSIsImxpdmVfcm91dGUiLCIkIiwiYWpheCIsImRhdGFUeXBlIiwiZXJyb3IiLCJ3aGVuIiwiZG9uZSIsInJvdXRlSnNvbiIsImxhdGxvbiIsIm1hcmtlciIsInJvdGF0aW9uQW5nbGUiLCJoZWFkaW5nIiwic2V0SW50ZXJ2YWwiXSwibWFwcGluZ3Mi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QVUsVUFBRUksSUFBRixDQUFPTCxVQUFQLEVBQW1CTSxJQUFuQixDQUF3QixVQUFDQyxTQUFELEVBQWU7QUFDbkM1Qiw4QkFBa0J0QyxRQUFRbUQsT0FBUixDQUFnQmUsU0FBaEIsRUFBMkI7QUFDekN6RCw4QkFBYyxzQkFBVU4sT0FBVixFQUFtQmdFLE1BQW5CLEVBQTJCO0FBQ3JDLDJCQUFPbkUsUUFBUW9FLE1BQVIsQ0FBZUQsTUFBZixFQUF1QjtBQUMxQm5DLDhCQUFNRCxZQURvQjtBQUUxQnNDLHVDQUFlbEUsUUFBUUcsVUFBUixDQUFtQmdFO0FBRlIscUJBQXZCLENBQVA7QUFJSDtBQU53QyxhQUEzQixDQUFsQjs7QUFTQWhDLDRCQUFnQk0sS0FBaEIsQ0FBc0JSLEdBQXRCO0FBQ0gsU0FYRDtBQVlILEtBcEJEOztBQXNCQW1DLGdCQUFZZixVQUFaLEVBQXdCLEtBQXhCO0FBQ0gsQ0EzSEQiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvbWFwcy9yb3V0ZV9tYXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBsZWFmbGV0ID0gcmVxdWlyZSgnbGVhZmxldCcpO1xuXG5pbXBvcnQgZHJhd19iYXNlX21hcCBmcm9tICcuL2Jhc2VfbWFwJ1xuaW1wb3J0IHthZGRXTVNMYXllcn0gZnJvbSAnLi9oZWxwZXJzJztcblxuaW1wb3J0IHtBQ1RVQUxfUk9VVEVfQ09MT1IsIENJUkNMRV9DT0xPUiwgUExBTl9ST1VURV9DT0xPUn0gZnJvbSAnLi9jb25maWcnXG5cbi8qKlxuICogU2hvdyBzb21lIHBvcHVwIHRleHQgd2hlbiBhIGZlYXR1cmUgaXMgY2xpY2tlZCBvblxuICogQHBhcmFtIGZlYXR1cmVcbiAqIEBwYXJhbSBsYXllclxuICovXG5leHBvcnQgY29uc3Qgb25GZWF0dXJlUG9pbnRDbGljayA9IChmZWF0dXJlLCBsYXllcikgPT4ge1xuICAgIGxldCBwb3B1cF9odG1sID0gJyc7XG4gICAgaWYgKGZlYXR1cmUucHJvcGVydGllcyAmJiBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXApIHtcbiAgICAgICAgcG9wdXBfaHRtbCArPSBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXBcbiAgICB9XG5cbiAgICBsYXllci5iaW5kUG9wdXAocG9wdXBfaHRtbClcbn07XG5cbi8qKlxuICogU2hvdyBlYWNoIHBvaW50IGFzIGEgbWFya2VyXG4gKiBAcGFyYW0gZmVhdHVyZVxuICogQHBhcmFtIGxhdGxuZ1xuICogQHJldHVybnMgeyp9XG4gKi9cbmV4cG9ydCBjb25zdCBwb2ludFRvTGF5ZXIgPSAoZmVhdHVyZSwgbGF0bG5nKSA9PiB7XG4gICAgcmV0dXJuIGxlYWZsZXQuY2lyY2xlTWFya2VyKGxhdGxuZywge1xuICAgICAgICByYWRpdXM6IDUsXG4gICAgICAgIGZpbGxDb2xvcjogQ0lSQ0xFX0NPTE9SLFxuICAgICAgICBjb2xvcjogJyMwMDAnLFxuICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgIGZpbGxPcGFjaXR5OiAwLjhcbiAgICB9KVxufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0gb3B0c1xuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGRlZmF1bHQgKG9wdHMpID0+IHtcblxuICAgIG9wdHMgPSBPYmplY3QuYXNzaWduKHtcblxuICAgICAgICByb3V0ZV9wb2ludHM6IG51bGwsXG4gICAgICAgIHBsYW5uZWRfcm91dGVfbGluZTogbnVsbCxcbiAgICAgICAgYWN0dWFsX3JvdXRlX3BvaW50czogbnVsbCxcbiAgICAgICAgYWN0dWFsX3JvdXRlX2xpbmU6IG51bGwsXG4gICAgICAgIHJlbmRlcl9lbGVtOiAnbWFwJyxcbiAgICAgICAgbGl2ZV9tYXA6IGZhbHNlLFxuICAgICAgICBhaXJjcmFmdF9pY29uOiAnL2Fzc2V0cy9pbWcvYWNhcnMvYWlyY3JhZnQucG5nJyxcbiAgICAgICAgbWV0YXJfd21zOiB7XG4gICAgICAgICAgICB1cmw6ICcnLFxuICAgICAgICAgICAgcGFyYW1zOiB7fVxuICAgICAgICB9LFxuICAgIH0sIG9wdHMpO1xuXG4gICAgY29uc3QgYWlyY3JhZnRJY29uID0gbGVhZmxldC5pY29uKHtcbiAgICAgICAgaWNvblVybDogb3B0cy5haXJjcmFmdF9pY29uLFxuICAgICAgICBpY29uU2l6ZTogWzQyLCA0Ml0sXG4gICAgICAgIGljb25BbmNob3I6IFsyMSwgMjFdLFxuICAgIH0pO1xuXG4gICAgbGV0IG1hcCA9IGRyYXdfYmFzZV9tYXAob3B0cyk7XG4gICAgbGV0IGxheWVyTGl2ZUZsaWdodDtcblxuICAgIGlmIChvcHRzLm1ldGFyX3dtcy51cmwgIT09ICcnKSB7XG4gICAgICAgIGFkZFdNU0xheWVyKG1hcCwgb3B0cy5tZXRhcl93bXMpO1xuICAgIH1cblxuICAgIGxldCBnZW9kZXNpY0xheWVyID0gbGVhZmxldC5nZW9kZXNpYyhbXSwge1xuICAgICAgICB3ZWlnaHQ6IDQsXG4gICAgICAgIG9wYWNpdHk6IDAuOSxcbiAgICAgICAgY29sb3I6IFBMQU5fUk9VVEVfQ09MT1IsXG4gICAgICAgIHN0ZXBzOiA1MCxcbiAgICAgICAgd3JhcDogZmFsc2UsXG4gICAgfSkuYWRkVG8obWFwKTtcblxuICAgIGdlb2Rlc2ljTGF5ZXIuZ2VvSnNvbihvcHRzLnBsYW5uZWRfcm91dGVfbGluZSk7XG5cbiAgICB0cnkge1xuICAgICAgICBtYXAuZml0Qm91bmRzKGdlb2Rlc2ljTGF5ZXIuZ2V0Qm91bmRzKCkpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhlKVxuICAgIH1cblxuICAgIC8vIERyYXcgdGhlIHJvdXRlIHBvaW50cyBhZnRlclxuICAgIGlmIChvcHRzLnJvdXRlX3BvaW50cyAhPT0gbnVsbCkge1xuICAgICAgICBsZXQgcm91dGVfcG9pbnRzID0gbGVhZmxldC5nZW9KU09OKG9wdHMucm91dGVfcG9pbnRzLCB7XG4gICAgICAgICAgICBvbkVhY2hGZWF0dXJlOiBvbkZlYXR1cmVQb2ludENsaWNrLFxuICAgICAgICAgICAgcG9pbnRUb0xheWVyOiBwb2ludFRvTGF5ZXIsXG4gICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICdjb2xvcic6IFBMQU5fUk9VVEVfQ09MT1IsXG4gICAgICAgICAgICAgICAgJ3dlaWdodCc6IDMsXG4gICAgICAgICAgICAgICAgJ29wYWNpdHknOiAwLjY1LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcm91dGVfcG9pbnRzLmFkZFRvKG1hcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZHJhdyB0aGUgYWN0dWFsIHJvdXRlXG4gICAgICovXG5cbiAgICBpZiAob3B0cy5hY3R1YWxfcm91dGVfbGluZSAhPT0gbnVsbCAmJiBvcHRzLmFjdHVhbF9yb3V0ZV9saW5lLmZlYXR1cmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbGV0IGdlb2Rlc2ljTGF5ZXIgPSBsZWFmbGV0Lmdlb2Rlc2ljKFtdLCB7XG4gICAgICAgICAgICB3ZWlnaHQ6IDMsXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjksXG4gICAgICAgICAgICBjb2xvcjogQUNUVUFMX1JPVVRFX0NPTE9SLFxuICAgICAgICAgICAgc3RlcHM6IDUwLFxuICAgICAgICAgICAgd3JhcDogZmFsc2UsXG4gICAgICAgIH0pLmFkZFRvKG1hcCk7XG5cbiAgICAgICAgZ2VvZGVzaWNMYXllci5nZW9Kc29uKG9wdHMuYWN0dWFsX3JvdXRlX2xpbmUpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBtYXAuZml0Qm91bmRzKGdlb2Rlc2ljTGF5ZXIuZ2V0Qm91bmRzKCkpXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3B0cy5hY3R1YWxfcm91dGVfcG9pbnRzICE9PSBudWxsICYmIG9wdHMuYWN0dWFsX3JvdXRlX3BvaW50cy5mZWF0dXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGxldCByb3V0ZV9wb2ludHMgPSBsZWFmbGV0Lmdlb0pTT04ob3B0cy5hY3R1YWxfcm91dGVfcG9pbnRzLCB7XG4gICAgICAgICAgICBvbkVhY2hGZWF0dXJlOiBvbkZlYXR1cmVQb2ludENsaWNrLFxuICAgICAgICAgICAgcG9pbnRUb0xheWVyOiBwb2ludFRvTGF5ZXIsXG4gICAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgICAgICdjb2xvcic6IEFDVFVBTF9ST1VURV9DT0xPUixcbiAgICAgICAgICAgICAgICAnd2VpZ2h0JzogMyxcbiAgICAgICAgICAgICAgICAnb3BhY2l0eSc6IDAuNjUsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICByb3V0ZV9wb2ludHMuYWRkVG8obWFwKVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICovXG4gICAgY29uc3QgbGl2ZUZsaWdodCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgdXJpID0gb3B0cy5waXJlcF91cmk7XG4gICAgICAgIGNvbnN0IGxpdmVfcm91dGUgPSAkLmFqYXgoe1xuICAgICAgICAgICAgdXJsOiB1cmksXG4gICAgICAgICAgICBkYXRhVHlwZTogJ2pzb24nLFxuICAgICAgICAgICAgZXJyb3I6IGNvbnNvbGUubG9nXG4gICAgICAgIH0pO1xuXG4gICAgICAgICQud2hlbihsaXZlX3JvdXRlKS5kb25lKChyb3V0ZUpzb24pID0+IHtcbiAgICAgICAgICAgIGxheWVyTGl2ZUZsaWdodCA9IGxlYWZsZXQuZ2VvSlNPTihyb3V0ZUpzb24sIHtcbiAgICAgICAgICAgICAgICBwb2ludFRvTGF5ZXI6IGZ1bmN0aW9uIChmZWF0dXJlLCBsYXRsb24pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlYWZsZXQubWFya2VyKGxhdGxvbiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogYWlyY3JhZnRJY29uLFxuICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb25BbmdsZTogZmVhdHVyZS5wcm9wZXJ0aWVzLmhlYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBsYXllckxpdmVGbGlnaHQuYWRkVG8obWFwKVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgc2V0SW50ZXJ2YWwobGl2ZUZsaWdodCwgMTAwMDApO1xufTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9qcy9tYXBzL3JvdXRlX21hcC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/maps/route_map.js\n"); +eval("/* unused harmony export onFeaturePointClick */\n/* unused harmony export pointToLayer */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__base_map__ = __webpack_require__(\"./resources/js/maps/base_map.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__helpers__ = __webpack_require__(\"./resources/js/maps/helpers.js\");\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__config__ = __webpack_require__(\"./resources/js/maps/config.js\");\nvar leaflet = __webpack_require__(\"./node_modules/leaflet/dist/leaflet-src.js\");\n\n\n\n\n\n\n/**\r\n * Show some popup text when a feature is clicked on\r\n * @param feature\r\n * @param layer\r\n */\nvar onFeaturePointClick = function onFeaturePointClick(feature, layer) {\n var popup_html = '';\n if (feature.properties && feature.properties.popup) {\n popup_html += feature.properties.popup;\n }\n\n layer.bindPopup(popup_html);\n};\n\n/**\r\n * Show each point as a marker\r\n * @param feature\r\n * @param latlng\r\n * @returns {*}\r\n */\nvar pointToLayer = function pointToLayer(feature, latlng) {\n return leaflet.circleMarker(latlng, {\n radius: 5,\n fillColor: __WEBPACK_IMPORTED_MODULE_2__config__[\"b\" /* CIRCLE_COLOR */],\n color: '#000',\n weight: 1,\n opacity: 1,\n fillOpacity: 0.8\n });\n};\n\n/**\r\n *\r\n * @param opts\r\n * @private\r\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (opts) {\n\n opts = Object.assign({\n\n route_points: null,\n planned_route_line: null,\n actual_route_points: null,\n actual_route_line: null,\n render_elem: 'map',\n live_map: false,\n aircraft_icon: '/assets/img/acars/aircraft.png',\n metar_wms: {\n url: '',\n params: {}\n }\n }, opts);\n\n var aircraftIcon = leaflet.icon({\n iconUrl: opts.aircraft_icon,\n iconSize: [42, 42],\n iconAnchor: [21, 21]\n });\n\n var map = Object(__WEBPACK_IMPORTED_MODULE_0__base_map__[\"a\" /* default */])(opts);\n var layerLiveFlight = void 0;\n\n if (opts.metar_wms.url !== '') {\n Object(__WEBPACK_IMPORTED_MODULE_1__helpers__[\"a\" /* addWMSLayer */])(map, opts.metar_wms);\n }\n\n var geodesicLayer = leaflet.geodesic([], {\n weight: 4,\n opacity: 0.9,\n color: __WEBPACK_IMPORTED_MODULE_2__config__[\"c\" /* PLAN_ROUTE_COLOR */],\n steps: 50,\n wrap: false\n }).addTo(map);\n\n geodesicLayer.geoJson(opts.planned_route_line);\n\n try {\n map.fitBounds(geodesicLayer.getBounds());\n } catch (e) {\n console.log(e);\n }\n\n // Draw the route points after\n if (opts.route_points !== null) {\n var route_points = leaflet.geoJSON(opts.route_points, {\n onEachFeature: onFeaturePointClick,\n pointToLayer: pointToLayer,\n style: {\n 'color': __WEBPACK_IMPORTED_MODULE_2__config__[\"c\" /* PLAN_ROUTE_COLOR */],\n 'weight': 3,\n 'opacity': 0.65\n }\n });\n\n route_points.addTo(map);\n }\n\n /**\r\n * draw the actual route\r\n */\n\n if (opts.actual_route_line !== null && opts.actual_route_line.features.length > 0) {\n var _geodesicLayer = leaflet.geodesic([], {\n weight: 3,\n opacity: 0.9,\n color: __WEBPACK_IMPORTED_MODULE_2__config__[\"a\" /* ACTUAL_ROUTE_COLOR */],\n steps: 50,\n wrap: false\n }).addTo(map);\n\n _geodesicLayer.geoJson(opts.actual_route_line);\n\n try {\n map.fitBounds(_geodesicLayer.getBounds());\n } catch (e) {\n console.log(e);\n }\n }\n\n if (opts.actual_route_points !== null && opts.actual_route_points.features.length > 0) {\n var _route_points = leaflet.geoJSON(opts.actual_route_points, {\n onEachFeature: onFeaturePointClick,\n pointToLayer: pointToLayer,\n style: {\n 'color': __WEBPACK_IMPORTED_MODULE_2__config__[\"a\" /* ACTUAL_ROUTE_COLOR */],\n 'weight': 3,\n 'opacity': 0.65\n }\n });\n\n _route_points.addTo(map);\n }\n\n /**\r\n *\r\n */\n var liveFlight = function liveFlight() {\n var uri = opts.pirep_uri;\n var live_route = $.ajax({\n url: uri,\n dataType: 'json',\n error: console.log\n });\n\n $.when(live_route).done(function (routeJson) {\n layerLiveFlight = leaflet.geoJSON(routeJson, {\n pointToLayer: function pointToLayer(feature, latlon) {\n return leaflet.marker(latlon, {\n icon: aircraftIcon,\n rotationAngle: feature.properties.heading\n });\n }\n });\n\n layerLiveFlight.addTo(map);\n });\n };\n\n setInterval(liveFlight, 10000);\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvbWFwcy9yb3V0ZV9tYXAuanM/YTc0NSJdLCJuYW1lcyI6WyJsZWFmbGV0IiwicmVxdWlyZSIsIm9uRmVhdHVyZVBvaW50Q2xpY2siLCJmZWF0dXJlIiwibGF5ZXIiLCJwb3B1cF9odG1sIiwicHJvcGVydGllcyIsInBvcHVwIiwiYmluZFBvcHVwIiwicG9pbnRUb0xheWVyIiwibGF0bG5nIiwiY2lyY2xlTWFya2VyIiwicmFkaXVzIiwiZmlsbENvbG9yIiwiY29sb3IiLCJ3ZWlnaHQiLCJvcGFjaXR5IiwiZmlsbE9wYWNpdHkiLCJvcHRzIiwiT2JqZWN0IiwiYXNzaWduIiwicm91dGVfcG9pbnRzIiwicGxhbm5lZF9yb3V0ZV9saW5lIiwiYWN0dWFsX3JvdXRlX3BvaW50cyIsImFjdHVhbF9yb3V0ZV9saW5lIiwicmVuZGVyX2VsZW0iLCJsaXZlX21hcCIsImFpcmNyYWZ0X2ljb24iLCJtZXRhcl93bXMiLCJ1cmwiLCJwYXJhbXMiLCJhaXJjcmFmdEljb24iLCJpY29uIiwiaWNvblVybCIsImljb25TaXplIiwiaWNvbkFuY2hvciIsIm1hcCIsImRyYXdfYmFzZV9tYXAiLCJsYXllckxpdmVGbGlnaHQiLCJhZGRXTVNMYXllciIsImdlb2Rlc2ljTGF5ZXIiLCJnZW9kZXNpYyIsInN0ZXBzIiwid3JhcCIsImFkZFRvIiwiZ2VvSnNvbiIsImZpdEJvdW5kcyIsImdldEJvdW5kcyIsImUiLCJjb25zb2xlIiwibG9nIiwiZ2VvSlNPTiIsIm9uRWFjaEZlYXR1cmUiLCJzdHlsZSIsImZlYXR1cmVzIiwibGVuZ3RoIiwibGl2ZUZsaWdodCIsInVyaSIsInBpcmVwX3VyaSIsImxpdmVfcm91dGUiLCIkIiwiYWpheCIsImRhdGFUeXBlIiwiZXJyb3IiLCJ3aGVuIiwiZG9uZSIsInJvdXRlSnNvbiIsImxhdGxvbiIsIm1hcmtlciIsInJvdGF0aW9uQW5nbGUiLCJoZWFkaW5nIiwic2V0SW50ZXJ2YWwiXSwibWFwcGluZ3Mi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QVUsVUFBRUksSUFBRixDQUFPTCxVQUFQLEVBQW1CTSxJQUFuQixDQUF3QixVQUFDQyxTQUFELEVBQWU7QUFDbkM1Qiw4QkFBa0J0QyxRQUFRbUQsT0FBUixDQUFnQmUsU0FBaEIsRUFBMkI7QUFDekN6RCw4QkFBYyxzQkFBVU4sT0FBVixFQUFtQmdFLE1BQW5CLEVBQTJCO0FBQ3JDLDJCQUFPbkUsUUFBUW9FLE1BQVIsQ0FBZUQsTUFBZixFQUF1QjtBQUMxQm5DLDhCQUFNRCxZQURvQjtBQUUxQnNDLHVDQUFlbEUsUUFBUUcsVUFBUixDQUFtQmdFO0FBRlIscUJBQXZCLENBQVA7QUFJSDtBQU53QyxhQUEzQixDQUFsQjs7QUFTQWhDLDRCQUFnQk0sS0FBaEIsQ0FBc0JSLEdBQXRCO0FBQ0gsU0FYRDtBQVlILEtBcEJEOztBQXNCQW1DLGdCQUFZZixVQUFaLEVBQXdCLEtBQXhCO0FBQ0gsQ0EzSEQiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvbWFwcy9yb3V0ZV9tYXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBsZWFmbGV0ID0gcmVxdWlyZSgnbGVhZmxldCcpO1xyXG5cclxuaW1wb3J0IGRyYXdfYmFzZV9tYXAgZnJvbSAnLi9iYXNlX21hcCdcclxuaW1wb3J0IHthZGRXTVNMYXllcn0gZnJvbSAnLi9oZWxwZXJzJztcclxuXHJcbmltcG9ydCB7QUNUVUFMX1JPVVRFX0NPTE9SLCBDSVJDTEVfQ09MT1IsIFBMQU5fUk9VVEVfQ09MT1J9IGZyb20gJy4vY29uZmlnJ1xyXG5cclxuLyoqXHJcbiAqIFNob3cgc29tZSBwb3B1cCB0ZXh0IHdoZW4gYSBmZWF0dXJlIGlzIGNsaWNrZWQgb25cclxuICogQHBhcmFtIGZlYXR1cmVcclxuICogQHBhcmFtIGxheWVyXHJcbiAqL1xyXG5leHBvcnQgY29uc3Qgb25GZWF0dXJlUG9pbnRDbGljayA9IChmZWF0dXJlLCBsYXllcikgPT4ge1xyXG4gICAgbGV0IHBvcHVwX2h0bWwgPSAnJztcclxuICAgIGlmIChmZWF0dXJlLnByb3BlcnRpZXMgJiYgZmVhdHVyZS5wcm9wZXJ0aWVzLnBvcHVwKSB7XHJcbiAgICAgICAgcG9wdXBfaHRtbCArPSBmZWF0dXJlLnByb3BlcnRpZXMucG9wdXBcclxuICAgIH1cclxuXHJcbiAgICBsYXllci5iaW5kUG9wdXAocG9wdXBfaHRtbClcclxufTtcclxuXHJcbi8qKlxyXG4gKiBTaG93IGVhY2ggcG9pbnQgYXMgYSBtYXJrZXJcclxuICogQHBhcmFtIGZlYXR1cmVcclxuICogQHBhcmFtIGxhdGxuZ1xyXG4gKiBAcmV0dXJucyB7Kn1cclxuICovXHJcbmV4cG9ydCBjb25zdCBwb2ludFRvTGF5ZXIgPSAoZmVhdHVyZSwgbGF0bG5nKSA9PiB7XHJcbiAgICByZXR1cm4gbGVhZmxldC5jaXJjbGVNYXJrZXIobGF0bG5nLCB7XHJcbiAgICAgICAgcmFkaXVzOiA1LFxyXG4gICAgICAgIGZpbGxDb2xvcjogQ0lSQ0xFX0NPTE9SLFxyXG4gICAgICAgIGNvbG9yOiAnIzAwMCcsXHJcbiAgICAgICAgd2VpZ2h0OiAxLFxyXG4gICAgICAgIG9wYWNpdHk6IDEsXHJcbiAgICAgICAgZmlsbE9wYWNpdHk6IDAuOFxyXG4gICAgfSlcclxufVxyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSBvcHRzXHJcbiAqIEBwcml2YXRlXHJcbiAqL1xyXG5leHBvcnQgZGVmYXVsdCAob3B0cykgPT4ge1xyXG5cclxuICAgIG9wdHMgPSBPYmplY3QuYXNzaWduKHtcclxuXHJcbiAgICAgICAgcm91dGVfcG9pbnRzOiBudWxsLFxyXG4gICAgICAgIHBsYW5uZWRfcm91dGVfbGluZTogbnVsbCxcclxuICAgICAgICBhY3R1YWxfcm91dGVfcG9pbnRzOiBudWxsLFxyXG4gICAgICAgIGFjdHVhbF9yb3V0ZV9saW5lOiBudWxsLFxyXG4gICAgICAgIHJlbmRlcl9lbGVtOiAnbWFwJyxcclxuICAgICAgICBsaXZlX21hcDogZmFsc2UsXHJcbiAgICAgICAgYWlyY3JhZnRfaWNvbjogJy9hc3NldHMvaW1nL2FjYXJzL2FpcmNyYWZ0LnBuZycsXHJcbiAgICAgICAgbWV0YXJfd21zOiB7XHJcbiAgICAgICAgICAgIHVybDogJycsXHJcbiAgICAgICAgICAgIHBhcmFtczoge31cclxuICAgICAgICB9LFxyXG4gICAgfSwgb3B0cyk7XHJcblxyXG4gICAgY29uc3QgYWlyY3JhZnRJY29uID0gbGVhZmxldC5pY29uKHtcclxuICAgICAgICBpY29uVXJsOiBvcHRzLmFpcmNyYWZ0X2ljb24sXHJcbiAgICAgICAgaWNvblNpemU6IFs0MiwgNDJdLFxyXG4gICAgICAgIGljb25BbmNob3I6IFsyMSwgMjFdLFxyXG4gICAgfSk7XHJcblxyXG4gICAgbGV0IG1hcCA9IGRyYXdfYmFzZV9tYXAob3B0cyk7XHJcbiAgICBsZXQgbGF5ZXJMaXZlRmxpZ2h0O1xyXG5cclxuICAgIGlmIChvcHRzLm1ldGFyX3dtcy51cmwgIT09ICcnKSB7XHJcbiAgICAgICAgYWRkV01TTGF5ZXIobWFwLCBvcHRzLm1ldGFyX3dtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGdlb2Rlc2ljTGF5ZXIgPSBsZWFmbGV0Lmdlb2Rlc2ljKFtdLCB7XHJcbiAgICAgICAgd2VpZ2h0OiA0LFxyXG4gICAgICAgIG9wYWNpdHk6IDAuOSxcclxuICAgICAgICBjb2xvcjogUExBTl9ST1VURV9DT0xPUixcclxuICAgICAgICBzdGVwczogNTAsXHJcbiAgICAgICAgd3JhcDogZmFsc2UsXHJcbiAgICB9KS5hZGRUbyhtYXApO1xyXG5cclxuICAgIGdlb2Rlc2ljTGF5ZXIuZ2VvSnNvbihvcHRzLnBsYW5uZWRfcm91dGVfbGluZSk7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgICBtYXAuZml0Qm91bmRzKGdlb2Rlc2ljTGF5ZXIuZ2V0Qm91bmRzKCkpXHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZSlcclxuICAgIH1cclxuXHJcbiAgICAvLyBEcmF3IHRoZSByb3V0ZSBwb2ludHMgYWZ0ZXJcclxuICAgIGlmIChvcHRzLnJvdXRlX3BvaW50cyAhPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCByb3V0ZV9wb2ludHMgPSBsZWFmbGV0Lmdlb0pTT04ob3B0cy5yb3V0ZV9wb2ludHMsIHtcclxuICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogb25GZWF0dXJlUG9pbnRDbGljayxcclxuICAgICAgICAgICAgcG9pbnRUb0xheWVyOiBwb2ludFRvTGF5ZXIsXHJcbiAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICAnY29sb3InOiBQTEFOX1JPVVRFX0NPTE9SLFxyXG4gICAgICAgICAgICAgICAgJ3dlaWdodCc6IDMsXHJcbiAgICAgICAgICAgICAgICAnb3BhY2l0eSc6IDAuNjUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJvdXRlX3BvaW50cy5hZGRUbyhtYXApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogZHJhdyB0aGUgYWN0dWFsIHJvdXRlXHJcbiAgICAgKi9cclxuXHJcbiAgICBpZiAob3B0cy5hY3R1YWxfcm91dGVfbGluZSAhPT0gbnVsbCAmJiBvcHRzLmFjdHVhbF9yb3V0ZV9saW5lLmZlYXR1cmVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBsZXQgZ2VvZGVzaWNMYXllciA9IGxlYWZsZXQuZ2VvZGVzaWMoW10sIHtcclxuICAgICAgICAgICAgd2VpZ2h0OiAzLFxyXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjksXHJcbiAgICAgICAgICAgIGNvbG9yOiBBQ1RVQUxfUk9VVEVfQ09MT1IsXHJcbiAgICAgICAgICAgIHN0ZXBzOiA1MCxcclxuICAgICAgICAgICAgd3JhcDogZmFsc2UsXHJcbiAgICAgICAgfSkuYWRkVG8obWFwKTtcclxuXHJcbiAgICAgICAgZ2VvZGVzaWNMYXllci5nZW9Kc29uKG9wdHMuYWN0dWFsX3JvdXRlX2xpbmUpO1xyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBtYXAuZml0Qm91bmRzKGdlb2Rlc2ljTGF5ZXIuZ2V0Qm91bmRzKCkpXHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhlKVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0cy5hY3R1YWxfcm91dGVfcG9pbnRzICE9PSBudWxsICYmIG9wdHMuYWN0dWFsX3JvdXRlX3BvaW50cy5mZWF0dXJlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgbGV0IHJvdXRlX3BvaW50cyA9IGxlYWZsZXQuZ2VvSlNPTihvcHRzLmFjdHVhbF9yb3V0ZV9wb2ludHMsIHtcclxuICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogb25GZWF0dXJlUG9pbnRDbGljayxcclxuICAgICAgICAgICAgcG9pbnRUb0xheWVyOiBwb2ludFRvTGF5ZXIsXHJcbiAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgICAnY29sb3InOiBBQ1RVQUxfUk9VVEVfQ09MT1IsXHJcbiAgICAgICAgICAgICAgICAnd2VpZ2h0JzogMyxcclxuICAgICAgICAgICAgICAgICdvcGFjaXR5JzogMC42NSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcm91dGVfcG9pbnRzLmFkZFRvKG1hcClcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqXHJcbiAgICAgKi9cclxuICAgIGNvbnN0IGxpdmVGbGlnaHQgPSAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdXJpID0gb3B0cy5waXJlcF91cmk7XHJcbiAgICAgICAgY29uc3QgbGl2ZV9yb3V0ZSA9ICQuYWpheCh7XHJcbiAgICAgICAgICAgIHVybDogdXJpLFxyXG4gICAgICAgICAgICBkYXRhVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICBlcnJvcjogY29uc29sZS5sb2dcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgJC53aGVuKGxpdmVfcm91dGUpLmRvbmUoKHJvdXRlSnNvbikgPT4ge1xyXG4gICAgICAgICAgICBsYXllckxpdmVGbGlnaHQgPSBsZWFmbGV0Lmdlb0pTT04ocm91dGVKc29uLCB7XHJcbiAgICAgICAgICAgICAgICBwb2ludFRvTGF5ZXI6IGZ1bmN0aW9uIChmZWF0dXJlLCBsYXRsb24pIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGVhZmxldC5tYXJrZXIobGF0bG9uLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246IGFpcmNyYWZ0SWNvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRpb25BbmdsZTogZmVhdHVyZS5wcm9wZXJ0aWVzLmhlYWRpbmdcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxheWVyTGl2ZUZsaWdodC5hZGRUbyhtYXApXHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHNldEludGVydmFsKGxpdmVGbGlnaHQsIDEwMDAwKTtcclxufTtcclxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcmVzb3VyY2VzL2pzL21hcHMvcm91dGVfbWFwLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/maps/route_map.js\n"); /***/ }), diff --git a/public/assets/installer/css/vendor.css b/public/assets/installer/css/vendor.css index 7b87e764..a4f79ae6 100644 --- a/public/assets/installer/css/vendor.css +++ b/public/assets/installer/css/vendor.css @@ -6799,31 +6799,31 @@ button.close { } /*# sourceMappingURL=bootstrap.css.map */ -/*! - - ========================================================= - * Now-ui-kit - v1.0.0 - ========================================================= - - * Product Page: http://www.creative-tim.com/product/now-ui-kit - * Copyright 2017 Creative Tim (http://www.creative-tim.com) - * Licensed under MIT (https://github.com/creativetimofficial/now-ui-kit/blob/master/LICENSE.md) - - * Designed by www.invisionapp.com Coded by www.creative-tim.com - - ========================================================= - - * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - +/*! + + ========================================================= + * Now-ui-kit - v1.0.0 + ========================================================= + + * Product Page: http://www.creative-tim.com/product/now-ui-kit + * Copyright 2017 Creative Tim (http://www.creative-tim.com) + * Licensed under MIT (https://github.com/creativetimofficial/now-ui-kit/blob/master/LICENSE.md) + + * Designed by www.invisionapp.com Coded by www.creative-tim.com + + ========================================================= + + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + */ /* brand Colors */ /* light colors */ -/* ======================================================================== - * bootstrap-switch - v3.3.2 - * http://www.bootstrap-switch.org - * ======================================================================== - * Copyright 2012-2013 Mattia Larentis - * http://www.apache.org/licenses/LICENSE-2.0 +/* ======================================================================== + * bootstrap-switch - v3.3.2 + * http://www.bootstrap-switch.org + * ======================================================================== + * Copyright 2012-2013 Mattia Larentis + * http://www.apache.org/licenses/LICENSE-2.0 */ .bootstrap-switch { display: inline-block; @@ -7094,9 +7094,9 @@ button.close { } /*! nouislider - 9.1.0 - 2016-12-10 16:00:32 */ -/* Functional styling; - * These styles are required for noUiSlider to function. - * You don't need to change these rules to apply your design. +/* Functional styling; + * These styles are required for noUiSlider to function. + * You don't need to change these rules to apply your design. */ .noUi-target, .noUi-target * { @@ -7154,8 +7154,8 @@ button.close { cursor: inherit !important; } -/* Painting and performance; - * Browsers can paint handles in their own layer. +/* Painting and performance; + * Browsers can paint handles in their own layer. */ .noUi-base, .noUi-handle { @@ -7163,7 +7163,7 @@ button.close { transform: translate3d(0, 0, 0); } -/* Slider size and handle placement; +/* Slider size and handle placement; */ .noUi-horizontal { height: 1px; @@ -7192,7 +7192,7 @@ button.close { top: -17px; } -/* Styling; +/* Styling; */ .noUi-target { background-color: rgba(182, 182, 182, 0.3); @@ -7206,7 +7206,7 @@ button.close { transition: background 450ms; } -/* Handles and cursors; +/* Handles and cursors; */ .noUi-draggable { cursor: ew-resize; @@ -7220,8 +7220,8 @@ button.close { border-radius: 3px; background: #FFF; cursor: default; - -webkit-box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB; - box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB; + -webkit-box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB; + box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB; -webkit-transition: 300ms ease 0s; -moz-transition: 300ms ease 0s; -ms-transition: 300ms ease 0s; @@ -7234,7 +7234,7 @@ button.close { transform: scale3d(1.5, 1.5, 1); } -/* Disabled state; +/* Disabled state; */ [disabled] .noUi-connect { background: #B8B8B8; @@ -7246,8 +7246,8 @@ button.close { cursor: not-allowed; } -/* Base; - * +/* Base; + * */ .noUi-pips, .noUi-pips * { @@ -7260,8 +7260,8 @@ button.close { color: #999; } -/* Values; - * +/* Values; + * */ .noUi-value { position: absolute; @@ -7273,8 +7273,8 @@ button.close { font-size: 10px; } -/* Markings; - * +/* Markings; + * */ .noUi-marker { position: absolute; @@ -7289,8 +7289,8 @@ button.close { background: #AAA; } -/* Horizontal layout; - * +/* Horizontal layout; + * */ .noUi-pips-horizontal { padding: 10px 0; @@ -7319,8 +7319,8 @@ button.close { height: 15px; } -/* Vertical layout; - * +/* Vertical layout; + * */ .noUi-pips-vertical { padding: 0 10px; @@ -7446,10 +7446,10 @@ button.close { background-color: #FF3636; } -/*! - * Datepicker for Bootstrap v1.7.0-dev (https://github.com/uxsolutions/bootstrap-datepicker) - * - * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) +/*! + * Datepicker for Bootstrap v1.7.0-dev (https://github.com/uxsolutions/bootstrap-datepicker) + * + * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) */ .datepicker { padding: 8px 6px; @@ -8999,17 +8999,17 @@ fieldset[disabled] background-color: #E3E3E3; } -/*.input-group .form-control:first-child, -.input-group-addon:first-child, -.input-group-btn:first-child > .dropdown-toggle, -.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { - border-right: 0 none; -} -.input-group .form-control:last-child, -.input-group-addon:last-child, -.input-group-btn:last-child > .dropdown-toggle, -.input-group-btn:first-child > .btn:not(:first-child) { - border-left: 0 none; +/*.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { + border-right: 0 none; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child) { + border-left: 0 none; }*/ .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { background-color: #E3E3E3; @@ -10556,12 +10556,12 @@ img { box-shadow: 0px 5px 25px 0px rgba(0, 0, 0, 0.2); } -/* -------------------------------- - -Nucleo Outline Web Font - nucleoapp.com/ -License - nucleoapp.com/license/ -Created using IcoMoon - icomoon.io - +/* -------------------------------- + +Nucleo Outline Web Font - nucleoapp.com/ +License - nucleoapp.com/license/ +Created using IcoMoon - icomoon.io + -------------------------------- */ @font-face { font-family: 'Nucleo Outline'; @@ -10571,8 +10571,8 @@ Created using IcoMoon - icomoon.io font-style: normal; } -/*------------------------ - base class definition +/*------------------------ + base class definition -------------------------*/ .now-ui-icons { display: inline-block; @@ -10585,11 +10585,11 @@ Created using IcoMoon - icomoon.io -moz-osx-font-smoothing: grayscale; } -/*------------------------ - change icon size +/*------------------------ + change icon size -------------------------*/ -/*---------------------------------- - add a square/circle background +/*---------------------------------- + add a square/circle background -----------------------------------*/ .now-ui-icons.circle { padding: 0.33333333em; @@ -10601,8 +10601,8 @@ Created using IcoMoon - icomoon.io border-radius: 50%; } -/*------------------------ - list icons +/*------------------------ + list icons -------------------------*/ .nc-icon-ul { padding-left: 0; @@ -10626,8 +10626,8 @@ Created using IcoMoon - icomoon.io left: -1.9047619em; } -/*------------------------ - spinning icons +/*------------------------ + spinning icons -------------------------*/ .now-ui-icons.spin { -webkit-animation: nc-icon-spin 2s infinite linear; @@ -10654,11 +10654,11 @@ Created using IcoMoon - icomoon.io } } -/*------------------------ - rotated/flipped icons +/*------------------------ + rotated/flipped icons -------------------------*/ -/*------------------------ - font icons +/*------------------------ + font icons -------------------------*/ .now-ui-icons.ui-1_check:before { content: "\EA22"; @@ -12469,21 +12469,21 @@ Created using IcoMoon - icomoon.io } } -/*.separator{ - content: "Separator"; - color: #FFFFFF; - display: block; - width: 100%; - padding: 20px; -} -.separator-line{ - background-color: #EEE; - height: 1px; - width: 100%; - display: block; -} -.separator.separator-gray{ - background-color: #EEEEEE; +/*.separator{ + content: "Separator"; + color: #FFFFFF; + display: block; + width: 100%; + padding: 20px; +} +.separator-line{ + background-color: #EEE; + height: 1px; + width: 100%; + display: block; +} +.separator.separator-gray{ + background-color: #EEEEEE; }*/ .social-buttons-demo .btn { margin-right: 5px; diff --git a/public/assets/installer/js/app.js b/public/assets/installer/js/app.js index 237432de..859734f5 100644 --- a/public/assets/installer/js/app.js +++ b/public/assets/installer/js/app.js @@ -281,14 +281,14 @@ eval("// shim for using process in browser\nvar process = module.exports = {};\n /***/ "./resources/js/bootstrap.js": /***/ (function(module, exports, __webpack_require__) { -eval("/**\n * Bootstrap any Javascript libraries required\n */\n\nwindow.axios = __webpack_require__(\"./node_modules/axios/index.js\");\n\n/**\n * Container for phpVMS specific functions\n */\nwindow.phpvms = {};\n\n/**\n * Configure Axios with both the csrf token and the API key\n */\n\nvar base_url = document.head.querySelector('meta[name=\"base-url\"]');\nif (base_url) {\n window.axios.default.baseURL = base_url;\n}\n\nwindow.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\nvar token = document.head.querySelector('meta[name=\"csrf-token\"]');\n\nif (token) {\n window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;\n /*window.jquery.ajaxSetup({\n 'X-CSRF-TOKEN': token.content\n })*/\n} else {\n console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');\n}\n\nvar api_key = document.head.querySelector('meta[name=\"api-key\"]');\nif (api_key) {\n window.axios.defaults.headers.common['x-api-key'] = api_key.content;\n window.PHPVMS_USER_API_KEY = api_key.content;\n} else {\n window.PHPVMS_USER_API_KEY = false;\n console.error('API Key not found!');\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvYm9vdHN0cmFwLmpzPzBlNTgiXSwibmFtZXMiOlsid2luZG93IiwiYXhpb3MiLCJyZXF1aXJlIiwicGhwdm1zIiwiYmFzZV91cmwiLCJkb2N1bWVudCIsImhlYWQiLCJxdWVyeVNlbGVjdG9yIiwiZGVmYXVsdCIsImJhc2VVUkwiLCJkZWZhdWx0cyIsImhlYWRlcnMiLCJjb21tb24iLCJ0b2tlbiIsImNvbnRlbnQiLCJjb25zb2xlIiwiZXJyb3IiLCJhcGlfa2V5IiwiUEhQVk1TX1VTRVJfQVBJX0tFWSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7QUFJQUEsT0FBT0MsS0FBUCxHQUFlLG1CQUFBQyxDQUFRLCtCQUFSLENBQWY7O0FBRUE7OztBQUdBRixPQUFPRyxNQUFQLEdBQWdCLEVBQWhCOztBQUVBOzs7O0FBSUEsSUFBTUMsV0FBV0MsU0FBU0MsSUFBVCxDQUFjQyxhQUFkLENBQTRCLHVCQUE1QixDQUFqQjtBQUNBLElBQUdILFFBQUgsRUFBYTtBQUNYSixTQUFPQyxLQUFQLENBQWFPLE9BQWIsQ0FBcUJDLE9BQXJCLEdBQStCTCxRQUEvQjtBQUNEOztBQUVESixPQUFPQyxLQUFQLENBQWFTLFFBQWIsQ0FBc0JDLE9BQXRCLENBQThCQyxNQUE5QixDQUFxQyxrQkFBckMsSUFBMkQsZ0JBQTNEO0FBQ0EsSUFBTUMsUUFBUVIsU0FBU0MsSUFBVCxDQUFjQyxhQUFkLENBQTRCLHlCQUE1QixDQUFkOztBQUVBLElBQUlNLEtBQUosRUFBVztBQUNUYixTQUFPQyxLQUFQLENBQWFTLFFBQWIsQ0FBc0JDLE9BQXRCLENBQThCQyxNQUE5QixDQUFxQyxjQUFyQyxJQUF1REMsTUFBTUMsT0FBN0Q7QUFDQTs7O0FBR0QsQ0FMRCxNQUtPO0FBQ0xDLFVBQVFDLEtBQVIsQ0FBYyx1RUFBZDtBQUNEOztBQUVELElBQU1DLFVBQVVaLFNBQVNDLElBQVQsQ0FBY0MsYUFBZCxDQUE0QixzQkFBNUIsQ0FBaEI7QUFDQSxJQUFJVSxPQUFKLEVBQWE7QUFDWGpCLFNBQU9DLEtBQVAsQ0FBYVMsUUFBYixDQUFzQkMsT0FBdEIsQ0FBOEJDLE1BQTlCLENBQXFDLFdBQXJDLElBQW9ESyxRQUFRSCxPQUE1RDtBQUNBZCxTQUFPa0IsbUJBQVAsR0FBNkJELFFBQVFILE9BQXJDO0FBQ0QsQ0FIRCxNQUdPO0FBQ0xkLFNBQU9rQixtQkFBUCxHQUE2QixLQUE3QjtBQUNBSCxVQUFRQyxLQUFSLENBQWMsb0JBQWQ7QUFDRCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9ib290c3RyYXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJvb3RzdHJhcCBhbnkgSmF2YXNjcmlwdCBsaWJyYXJpZXMgcmVxdWlyZWRcbiAqL1xuXG53aW5kb3cuYXhpb3MgPSByZXF1aXJlKCdheGlvcycpO1xuXG4vKipcbiAqIENvbnRhaW5lciBmb3IgcGhwVk1TIHNwZWNpZmljIGZ1bmN0aW9uc1xuICovXG53aW5kb3cucGhwdm1zID0ge307XG5cbi8qKlxuICogQ29uZmlndXJlIEF4aW9zIHdpdGggYm90aCB0aGUgY3NyZiB0b2tlbiBhbmQgdGhlIEFQSSBrZXlcbiAqL1xuXG5jb25zdCBiYXNlX3VybCA9IGRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3RvcignbWV0YVtuYW1lPVwiYmFzZS11cmxcIl0nKTtcbmlmKGJhc2VfdXJsKSB7XG4gIHdpbmRvdy5heGlvcy5kZWZhdWx0LmJhc2VVUkwgPSBiYXNlX3VybDtcbn1cblxud2luZG93LmF4aW9zLmRlZmF1bHRzLmhlYWRlcnMuY29tbW9uWydYLVJlcXVlc3RlZC1XaXRoJ10gPSAnWE1MSHR0cFJlcXVlc3QnO1xuY29uc3QgdG9rZW4gPSBkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT1cImNzcmYtdG9rZW5cIl0nKTtcblxuaWYgKHRva2VuKSB7XG4gIHdpbmRvdy5heGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsnWC1DU1JGLVRPS0VOJ10gPSB0b2tlbi5jb250ZW50XG4gIC8qd2luZG93LmpxdWVyeS5hamF4U2V0dXAoe1xuICAgICdYLUNTUkYtVE9LRU4nOiB0b2tlbi5jb250ZW50XG4gIH0pKi9cbn0gZWxzZSB7XG4gIGNvbnNvbGUuZXJyb3IoJ0NTUkYgdG9rZW4gbm90IGZvdW5kOiBodHRwczovL2xhcmF2ZWwuY29tL2RvY3MvY3NyZiNjc3JmLXgtY3NyZi10b2tlbicpXG59XG5cbmNvbnN0IGFwaV9rZXkgPSBkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT1cImFwaS1rZXlcIl0nKTtcbmlmIChhcGlfa2V5KSB7XG4gIHdpbmRvdy5heGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsneC1hcGkta2V5J10gPSBhcGlfa2V5LmNvbnRlbnQ7XG4gIHdpbmRvdy5QSFBWTVNfVVNFUl9BUElfS0VZID0gYXBpX2tleS5jb250ZW50XG59IGVsc2Uge1xuICB3aW5kb3cuUEhQVk1TX1VTRVJfQVBJX0tFWSA9IGZhbHNlO1xuICBjb25zb2xlLmVycm9yKCdBUEkgS2V5IG5vdCBmb3VuZCEnKVxufVxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vcmVzb3VyY2VzL2pzL2Jvb3RzdHJhcC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/bootstrap.js\n"); +eval("/**\r\n * Bootstrap any Javascript libraries required\r\n */\n\nwindow.axios = __webpack_require__(\"./node_modules/axios/index.js\");\n\n/**\r\n * Container for phpVMS specific functions\r\n */\nwindow.phpvms = {};\n\n/**\r\n * Configure Axios with both the csrf token and the API key\r\n */\n\nvar base_url = document.head.querySelector('meta[name=\"base-url\"]');\nif (base_url) {\n window.axios.default.baseURL = base_url;\n}\n\nwindow.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\nvar token = document.head.querySelector('meta[name=\"csrf-token\"]');\n\nif (token) {\n window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;\n /*window.jquery.ajaxSetup({\r\n 'X-CSRF-TOKEN': token.content\r\n })*/\n} else {\n console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');\n}\n\nvar api_key = document.head.querySelector('meta[name=\"api-key\"]');\nif (api_key) {\n window.axios.defaults.headers.common['x-api-key'] = api_key.content;\n window.PHPVMS_USER_API_KEY = api_key.content;\n} else {\n window.PHPVMS_USER_API_KEY = false;\n console.error('API Key not found!');\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvYm9vdHN0cmFwLmpzPzBlNTgiXSwibmFtZXMiOlsid2luZG93IiwiYXhpb3MiLCJyZXF1aXJlIiwicGhwdm1zIiwiYmFzZV91cmwiLCJkb2N1bWVudCIsImhlYWQiLCJxdWVyeVNlbGVjdG9yIiwiZGVmYXVsdCIsImJhc2VVUkwiLCJkZWZhdWx0cyIsImhlYWRlcnMiLCJjb21tb24iLCJ0b2tlbiIsImNvbnRlbnQiLCJjb25zb2xlIiwiZXJyb3IiLCJhcGlfa2V5IiwiUEhQVk1TX1VTRVJfQVBJX0tFWSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7QUFJQUEsT0FBT0MsS0FBUCxHQUFlLG1CQUFBQyxDQUFRLCtCQUFSLENBQWY7O0FBRUE7OztBQUdBRixPQUFPRyxNQUFQLEdBQWdCLEVBQWhCOztBQUVBOzs7O0FBSUEsSUFBTUMsV0FBV0MsU0FBU0MsSUFBVCxDQUFjQyxhQUFkLENBQTRCLHVCQUE1QixDQUFqQjtBQUNBLElBQUdILFFBQUgsRUFBYTtBQUNYSixTQUFPQyxLQUFQLENBQWFPLE9BQWIsQ0FBcUJDLE9BQXJCLEdBQStCTCxRQUEvQjtBQUNEOztBQUVESixPQUFPQyxLQUFQLENBQWFTLFFBQWIsQ0FBc0JDLE9BQXRCLENBQThCQyxNQUE5QixDQUFxQyxrQkFBckMsSUFBMkQsZ0JBQTNEO0FBQ0EsSUFBTUMsUUFBUVIsU0FBU0MsSUFBVCxDQUFjQyxhQUFkLENBQTRCLHlCQUE1QixDQUFkOztBQUVBLElBQUlNLEtBQUosRUFBVztBQUNUYixTQUFPQyxLQUFQLENBQWFTLFFBQWIsQ0FBc0JDLE9BQXRCLENBQThCQyxNQUE5QixDQUFxQyxjQUFyQyxJQUF1REMsTUFBTUMsT0FBN0Q7QUFDQTs7O0FBR0QsQ0FMRCxNQUtPO0FBQ0xDLFVBQVFDLEtBQVIsQ0FBYyx1RUFBZDtBQUNEOztBQUVELElBQU1DLFVBQVVaLFNBQVNDLElBQVQsQ0FBY0MsYUFBZCxDQUE0QixzQkFBNUIsQ0FBaEI7QUFDQSxJQUFJVSxPQUFKLEVBQWE7QUFDWGpCLFNBQU9DLEtBQVAsQ0FBYVMsUUFBYixDQUFzQkMsT0FBdEIsQ0FBOEJDLE1BQTlCLENBQXFDLFdBQXJDLElBQW9ESyxRQUFRSCxPQUE1RDtBQUNBZCxTQUFPa0IsbUJBQVAsR0FBNkJELFFBQVFILE9BQXJDO0FBQ0QsQ0FIRCxNQUdPO0FBQ0xkLFNBQU9rQixtQkFBUCxHQUE2QixLQUE3QjtBQUNBSCxVQUFRQyxLQUFSLENBQWMsb0JBQWQ7QUFDRCIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy9ib290c3RyYXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQm9vdHN0cmFwIGFueSBKYXZhc2NyaXB0IGxpYnJhcmllcyByZXF1aXJlZFxyXG4gKi9cclxuXHJcbndpbmRvdy5heGlvcyA9IHJlcXVpcmUoJ2F4aW9zJyk7XHJcblxyXG4vKipcclxuICogQ29udGFpbmVyIGZvciBwaHBWTVMgc3BlY2lmaWMgZnVuY3Rpb25zXHJcbiAqL1xyXG53aW5kb3cucGhwdm1zID0ge307XHJcblxyXG4vKipcclxuICogQ29uZmlndXJlIEF4aW9zIHdpdGggYm90aCB0aGUgY3NyZiB0b2tlbiBhbmQgdGhlIEFQSSBrZXlcclxuICovXHJcblxyXG5jb25zdCBiYXNlX3VybCA9IGRvY3VtZW50LmhlYWQucXVlcnlTZWxlY3RvcignbWV0YVtuYW1lPVwiYmFzZS11cmxcIl0nKTtcclxuaWYoYmFzZV91cmwpIHtcclxuICB3aW5kb3cuYXhpb3MuZGVmYXVsdC5iYXNlVVJMID0gYmFzZV91cmw7XHJcbn1cclxuXHJcbndpbmRvdy5heGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsnWC1SZXF1ZXN0ZWQtV2l0aCddID0gJ1hNTEh0dHBSZXF1ZXN0JztcclxuY29uc3QgdG9rZW4gPSBkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3IoJ21ldGFbbmFtZT1cImNzcmYtdG9rZW5cIl0nKTtcclxuXHJcbmlmICh0b2tlbikge1xyXG4gIHdpbmRvdy5heGlvcy5kZWZhdWx0cy5oZWFkZXJzLmNvbW1vblsnWC1DU1JGLVRPS0VOJ10gPSB0b2tlbi5jb250ZW50XHJcbiAgLyp3aW5kb3cuanF1ZXJ5LmFqYXhTZXR1cCh7XHJcbiAgICAnWC1DU1JGLVRPS0VOJzogdG9rZW4uY29udGVudFxyXG4gIH0pKi9cclxufSBlbHNlIHtcclxuICBjb25zb2xlLmVycm9yKCdDU1JGIHRva2VuIG5vdCBmb3VuZDogaHR0cHM6Ly9sYXJhdmVsLmNvbS9kb2NzL2NzcmYjY3NyZi14LWNzcmYtdG9rZW4nKVxyXG59XHJcblxyXG5jb25zdCBhcGlfa2V5ID0gZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yKCdtZXRhW25hbWU9XCJhcGkta2V5XCJdJyk7XHJcbmlmIChhcGlfa2V5KSB7XHJcbiAgd2luZG93LmF4aW9zLmRlZmF1bHRzLmhlYWRlcnMuY29tbW9uWyd4LWFwaS1rZXknXSA9IGFwaV9rZXkuY29udGVudDtcclxuICB3aW5kb3cuUEhQVk1TX1VTRVJfQVBJX0tFWSA9IGFwaV9rZXkuY29udGVudFxyXG59IGVsc2Uge1xyXG4gIHdpbmRvdy5QSFBWTVNfVVNFUl9BUElfS0VZID0gZmFsc2U7XHJcbiAgY29uc29sZS5lcnJvcignQVBJIEtleSBub3QgZm91bmQhJylcclxufVxyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9yZXNvdXJjZXMvanMvYm9vdHN0cmFwLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/bootstrap.js\n"); /***/ }), /***/ "./resources/js/installer/app.js": /***/ (function(module, exports, __webpack_require__) { -eval("/**\n * Admin stuff needed\n */\n\n__webpack_require__(\"./resources/js/bootstrap.js\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvaW5zdGFsbGVyL2FwcC5qcz8wNTdjIl0sIm5hbWVzIjpbInJlcXVpcmUiXSwibWFwcGluZ3MiOiJBQUFBOzs7O0FBSUEsbUJBQUFBLENBQVEsNkJBQVIiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvaW5zdGFsbGVyL2FwcC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWRtaW4gc3R1ZmYgbmVlZGVkXG4gKi9cblxucmVxdWlyZSgnLi8uLi9ib290c3RyYXAnKTtcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3Jlc291cmNlcy9qcy9pbnN0YWxsZXIvYXBwLmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/installer/app.js\n"); +eval("/**\r\n * Admin stuff needed\r\n */\n\n__webpack_require__(\"./resources/js/bootstrap.js\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvaW5zdGFsbGVyL2FwcC5qcz8wNTdjIl0sIm5hbWVzIjpbInJlcXVpcmUiXSwibWFwcGluZ3MiOiJBQUFBOzs7O0FBSUEsbUJBQUFBLENBQVEsNkJBQVIiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvaW5zdGFsbGVyL2FwcC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBBZG1pbiBzdHVmZiBuZWVkZWRcclxuICovXHJcblxyXG5yZXF1aXJlKCcuLy4uL2Jvb3RzdHJhcCcpO1xyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9yZXNvdXJjZXMvanMvaW5zdGFsbGVyL2FwcC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/installer/app.js\n"); /***/ }), diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 09d6486b..a3159cfb 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,20 +1,20 @@ { - "/assets/frontend/js/app.js": "/assets/frontend/js/app.js?id=cd886ba18357a1c96ec0", - "/assets/frontend/css/now-ui-kit.css": "/assets/frontend/css/now-ui-kit.css?id=b0a0f05b94a4486db4f2", - "/assets/admin/css/vendor.min.css": "/assets/admin/css/vendor.min.css?id=cc80aec3cf1646f83d8d", - "/assets/admin/js/app.js": "/assets/admin/js/app.js?id=559d5e8e5d6ecc64a3af", - "/assets/installer/js/app.js": "/assets/installer/js/app.js?id=c65781eda730445d666e", + "/assets/frontend/js/app.js": "/assets/frontend/js/app.js?id=df652ba09d3074d46cd0", + "/assets/frontend/css/now-ui-kit.css": "/assets/frontend/css/now-ui-kit.css?id=70c0f73b28bc686d7791", + "/assets/admin/css/vendor.min.css": "/assets/admin/css/vendor.min.css?id=42f138d32d03b309dec7", + "/assets/admin/js/app.js": "/assets/admin/js/app.js?id=cf0b6af9aeb25fe3fbcd", + "/assets/installer/js/app.js": "/assets/installer/js/app.js?id=27b9f2ce0b268e658f01", "/assets/fonts/glyphicons-halflings-regular.woff2": "/assets/fonts/glyphicons-halflings-regular.woff2?id=b5b5055c6d812c0f9f0d", "/assets/admin/fonts/glyphicons-halflings-regular.woff2": "/assets/admin/fonts/glyphicons-halflings-regular.woff2?id=b5b5055c6d812c0f9f0d", "/assets/admin/img/clear.png": "/assets/admin/img/clear.png?id=0e92f4c3efc6988a3c96", "/assets/admin/img/loading.gif": "/assets/admin/img/loading.gif?id=90a4b76b4f11558691f6", "/assets/global/js/jquery.js": "/assets/global/js/jquery.js?id=6a07da9fae934baf3f74", - "/assets/admin/css/vendor.css": "/assets/admin/css/vendor.css?id=d4c03403265f42272050", - "/assets/admin/js/vendor.js": "/assets/admin/js/vendor.js?id=aa7db4bedfe23409f625", + "/assets/admin/css/vendor.css": "/assets/admin/css/vendor.css?id=f139af0f666d5cefde4d", + "/assets/admin/js/vendor.js": "/assets/admin/js/vendor.js?id=5130233c88c71fc60135", "/assets/admin/css/blue.png": "/assets/admin/css/blue.png?id=753a3c0dec86d3a38d9c", "/assets/admin/css/blue@2x.png": "/assets/admin/css/blue@2x.png?id=97da23d47b838cbd4bef", "/assets/global/js/vendor.js": "/assets/global/js/vendor.js?id=6436d215691e8f38eb12", "/assets/global/css/vendor.css": "/assets/global/css/vendor.css?id=115d5c4f2370ae94a962", - "/assets/installer/css/vendor.css": "/assets/installer/css/vendor.css?id=cd76d2d9611b9a13d644", + "/assets/installer/css/vendor.css": "/assets/installer/css/vendor.css?id=344796a10af1741dc754", "/assets/installer/js/vendor.js": "/assets/installer/js/vendor.js?id=01249af00bd2c1267e15" } \ No newline at end of file diff --git a/resources/js/maps/base_map.js b/resources/js/maps/base_map.js index 208d5daf..42f85ada 100644 --- a/resources/js/maps/base_map.js +++ b/resources/js/maps/base_map.js @@ -1,71 +1,70 @@ - const leaflet = require('leaflet'); export default (opts) => { - opts = Object.assign({ - render_elem: 'map', - center: [29.98139, -95.33374], - zoom: 5, - maxZoom: 10, - layers: [], - set_marker: false, - }, opts); + opts = Object.assign({ + render_elem: 'map', + center: [29.98139, -95.33374], + zoom: 5, + maxZoom: 10, + layers: [], + set_marker: false, + }, opts); - let feature_groups = []; - /*var openaip_airspace_labels = new leaflet.TileLayer.WMS( - "http://{s}.tile.maps.openaip.net/geowebcache/service/wms", { - maxZoom: 14, - minZoom: 12, - layers: 'openaip_approved_airspaces_labels', - tileSize: 1024, - detectRetina: true, - subdomains: '12', - format: 'image/png', - transparent: true - }); + let feature_groups = []; + /*var openaip_airspace_labels = new leaflet.TileLayer.WMS( + "http://{s}.tile.maps.openaip.net/geowebcache/service/wms", { + maxZoom: 14, + minZoom: 12, + layers: 'openaip_approved_airspaces_labels', + tileSize: 1024, + detectRetina: true, + subdomains: '12', + format: 'image/png', + transparent: true + }); - openaip_airspace_labels.addTo(map);*/ + openaip_airspace_labels.addTo(map);*/ - const opencyclemap_phys_osm = new leaflet.TileLayer( - 'http://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey=f09a38fa87514de4890fc96e7fe8ecb1', { - maxZoom: 14, - minZoom: 4, - format: 'image/png', - transparent: true - }) + const opencyclemap_phys_osm = new leaflet.TileLayer( + 'http://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey=f09a38fa87514de4890fc96e7fe8ecb1', { + maxZoom: 14, + minZoom: 4, + format: 'image/png', + transparent: true + }) - feature_groups.push(opencyclemap_phys_osm) + feature_groups.push(opencyclemap_phys_osm) - /*const openaip_cached_basemap = new leaflet.TileLayer("http://{s}.tile.maps.openaip.net/geowebcache/service/tms/1.0.0/openaip_basemap@EPSG%3A900913@png/{z}/{x}/{y}.png", { - maxZoom: 14, - minZoom: 4, - tms: true, - detectRetina: true, - subdomains: '12', - format: 'image/png', - transparent: true - }); + /*const openaip_cached_basemap = new leaflet.TileLayer("http://{s}.tile.maps.openaip.net/geowebcache/service/tms/1.0.0/openaip_basemap@EPSG%3A900913@png/{z}/{x}/{y}.png", { + maxZoom: 14, + minZoom: 4, + tms: true, + detectRetina: true, + subdomains: '12', + format: 'image/png', + transparent: true + }); - feature_groups.push(openaip_cached_basemap); - */ + feature_groups.push(openaip_cached_basemap); + */ - const openaip_basemap_phys_osm = leaflet.featureGroup(feature_groups); + const openaip_basemap_phys_osm = leaflet.featureGroup(feature_groups); - let map = leaflet.map('map', { - layers: [openaip_basemap_phys_osm], - center: opts.center, - zoom: opts.zoom, - scrollWheelZoom: false, - }); + let map = leaflet.map('map', { + layers: [openaip_basemap_phys_osm], + center: opts.center, + zoom: opts.zoom, + scrollWheelZoom: false, + }); - const attrib = leaflet.control.attribution({position: 'bottomleft'}) - attrib.addAttribution('Thunderforest') - attrib.addAttribution('openAIP') - attrib.addAttribution('OpenStreetMap contributors') - attrib.addAttribution('OpenWeatherMap') + const attrib = leaflet.control.attribution({position: 'bottomleft'}) + attrib.addAttribution('Thunderforest') + attrib.addAttribution('openAIP') + attrib.addAttribution('OpenStreetMap contributors') + attrib.addAttribution('OpenWeatherMap') - attrib.addTo(map) + attrib.addTo(map) - return map + return map }; diff --git a/resources/js/maps/live_map.js b/resources/js/maps/live_map.js index 5528639b..cbf208be 100644 --- a/resources/js/maps/live_map.js +++ b/resources/js/maps/live_map.js @@ -1,8 +1,7 @@ - const leaflet = require('leaflet'); import draw_base_map from './base_map' -import { ACTUAL_ROUTE_COLOR } from './config' +import {ACTUAL_ROUTE_COLOR} from './config' /** * Render the live map @@ -11,113 +10,170 @@ import { ACTUAL_ROUTE_COLOR } from './config' */ export default (opts) => { - opts = Object.assign({ - update_uri: '/api/acars', - pirep_uri: '/api/pireps/{id}/acars', - positions: null, - render_elem: 'map', - aircraft_icon: '/assets/img/acars/aircraft.png', - }, opts); + opts = Object.assign({ + update_uri: '/api/acars', + pirep_uri: '/api/pireps/{id}', + positions: null, + render_elem: 'map', + aircraft_icon: '/assets/img/acars/aircraft.png', + units: 'nmi', + }, opts); - const map = draw_base_map(opts); - const aircraftIcon = leaflet.icon({ - iconUrl: opts.aircraft_icon, - iconSize: [42, 42], - iconAnchor: [21, 21], - }) + const map = draw_base_map(opts); + const aircraftIcon = leaflet.icon({ + iconUrl: opts.aircraft_icon, + iconSize: [42, 42], + iconAnchor: [21, 21], + }); - let layerFlights = null - let layerSelFlight = null - let layerSelFlightFeature = null - let layerSelFlightLayer = null - - /** - * When a flight is clicked on, show the path, etc for that flight - * @param feature - * @param layer - */ - const onFlightClick = (feature, layer) => { - - const uri = opts.pirep_uri.replace('{id}', feature.properties.pirep_id) - - const flight_route = $.ajax({ - url: uri, - dataType: 'json', - error: console.log - }) - - $.when(flight_route).done((routeJson) => { - if (layerSelFlight !== null) { - map.removeLayer(layerSelFlight) - } - - layerSelFlight = leaflet.geodesic([], { - weight: 7, - opacity: 0.9, - color: ACTUAL_ROUTE_COLOR, - wrap: false, - }).addTo(map) - - layerSelFlight.geoJson(routeJson.line) - - layerSelFlightFeature = feature - layerSelFlightLayer = layer - //map.fitBounds(layerSelFlight.getBounds()); - }) - } - - const updateMap = () => { - - console.log('reloading flights from acars...') + let pannedToCenter = false; + let layerFlights = null; + let layerSelFlight = null; + let layerSelFlightFeature = null; + let layerSelFlightLayer = null; /** - * AJAX UPDATE + * When a flight is clicked on, show the path, etc for that flight + * @param feature + * @param layer */ + const onFlightClick = (feature, layer) => { - let flights = $.ajax({ - url: opts.update_uri, - dataType: 'json', - error: console.log - }) + const pirep_uri = opts.pirep_uri.replace('{id}', feature.properties.pirep_id); + const geojson_uri = opts.pirep_uri.replace('{id}', feature.properties.pirep_id) + "/acars/geojson"; - $.when(flights).done(function (flightGeoJson) { + const pirep_info = $.ajax({ + url: pirep_uri, + dataType: 'json', + error: console.log + }); - if (layerFlights !== null) { - layerFlights.clearLayers() - } + const flight_route = $.ajax({ + url: geojson_uri, + dataType: 'json', + error: console.log + }); - layerFlights = leaflet.geoJSON(flightGeoJson, { - onEachFeature: (feature, layer) => { - - layer.on({ - click: (e) => { - onFlightClick(feature, layer) + // Load up the PIREP info + $.when(flight_route).done((routeJson) => { + if (layerSelFlight !== null) { + map.removeLayer(layerSelFlight); } - }) - let popup_html = '' - if (feature.properties && feature.properties.popup) { - popup_html += feature.properties.popup - } + layerSelFlight = leaflet.geodesic([], { + weight: 7, + opacity: 0.9, + color: ACTUAL_ROUTE_COLOR, + wrap: false, + }).addTo(map); - layer.bindPopup(popup_html) - }, - pointToLayer: function (feature, latlon) { - return leaflet.marker(latlon, { - icon: aircraftIcon, - rotationAngle: feature.properties.heading - }) - } - }) + layerSelFlight.geoJson(routeJson.line); + layerSelFlightFeature = feature; + layerSelFlightLayer = layer; - layerFlights.addTo(map) + // Center on it, but only do it once, in case the map is moved + if(!pannedToCenter) { + map.panTo({lat: routeJson.position.lat, lng: routeJson.position.lon}); + pannedToCenter = true; + } + }); - if (layerSelFlight !== null) { - onFlightClick(layerSelFlightFeature, layerSelFlightLayer) - } - }) - } + // + // When the PIREP info is done loading, show the bottom bar + // + $.when(pirep_info).done(pirep => { pirep = pirep.data; - updateMap() - setInterval(updateMap, 10000) + let dist, planned_dist; + if(opts.units === 'nmi') { + dist = pirep.distance.nmi; + planned_dist = pirep.planned_distance.nmi; + } else if(opts.units === 'mi') { + dist = pirep.distance.mi; + planned_dist = pirep.planned_distance.mi; + } else if(opts.units === 'km') { + dist = pirep.distance.km; + planned_dist = pirep.planned_distance.km; + } + + // Parse flight time + const hours = Math.floor(pirep.flight_time / 60); + const mins = pirep.flight_time % 60; + + $('#map_flight_id').text(pirep.airline.icao + pirep.flight_number); + $('#map_flight_info').text( + pirep.dpt_airport.name + ' (' + pirep.dpt_airport.icao + ') to ' + + pirep.arr_airport.name + ' (' + pirep.arr_airport.icao + ')' + ); + + $('#map_flight_stats_middle').html( + 'Status: ' + pirep.status_text + '
' + + 'Flight Time: ' + hours + 'h ' + mins + 'm
' + + 'Distance: ' + dist + ' / ' + planned_dist + opts.units + '
' + ); + + // Show flight stat info + $('#map_flight_stats_right').html( + 'Ground Speed: ' + pirep.position.gs + '
' + + 'Altitude: ' + pirep.position.altitude + '
' + + 'Heading: ' + pirep.position.heading + '' + ); + + $('#map-info-bar').show(); + }); + }; + + const updateMap = () => { + + console.log('reloading flights from acars...'); + + /** + * AJAX UPDATE + */ + + let flights = $.ajax({ + url: opts.update_uri, + dataType: 'json', + error: console.log + }); + + $.when(flights).done(function (flightGeoJson) { + + if (layerFlights !== null) { + layerFlights.clearLayers() + } + + layerFlights = leaflet.geoJSON(flightGeoJson, { + onEachFeature: (feature, layer) => { + layer.on({ + click: (e) => { + pannedToCenter = false; + onFlightClick(feature, layer) + } + }); + + let popup_html = ''; + if (feature.properties && (feature.properties.popup !== '' && feature.properties.popup !== undefined)) { + popup_html += feature.properties.popup; + layer.bindPopup(popup_html); + } + }, + pointToLayer: function (feature, latlon) { + return leaflet.marker(latlon, { + icon: aircraftIcon, + rotationAngle: feature.properties.heading + }) + } + }); + + layerFlights.addTo(map); + + // Reload the clicked-flight information + if (layerSelFlight !== null) { + onFlightClick(layerSelFlightFeature, layerSelFlightLayer) + } + }) + }; + + updateMap(); + setInterval(updateMap, 10000) }; diff --git a/resources/views/layouts/default/widgets/live_map.blade.php b/resources/views/layouts/default/widgets/live_map.blade.php index ec5f3d30..fcd38ab4 100644 --- a/resources/views/layouts/default/widgets/live_map.blade.php +++ b/resources/views/layouts/default/widgets/live_map.blade.php @@ -1,7 +1,30 @@
-
+ +
+ + +
@@ -33,8 +56,9 @@ @endsection