{"version":3,"file":"rm2.js","mappings":"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","sources":["webpack://rmap2/webpack/universalModuleDefinition","webpack://rmap2/./node_modules/@mapbox/mapbox-gl-sync-move/index.js","webpack://rmap2/./node_modules/@maplibre/maplibre-gl-compare/index.js","webpack://rmap2/./node_modules/events/events.js","webpack://rmap2/./node_modules/guid-typescript/dist/guid.js","webpack://rmap2/./node_modules/jquery-i18next/dist/commonjs/index.js","webpack://rmap2/./node_modules/jquery-i18next/index.js","webpack://rmap2/./node_modules/proj4/lib/constants/values.js","webpack://rmap2/./node_modules/proj4/lib/constants/PrimeMeridian.js","webpack://rmap2/./node_modules/proj4/lib/constants/units.js","webpack://rmap2/./node_modules/proj4/lib/match.js","webpack://rmap2/./node_modules/proj4/lib/projString.js","webpack://rmap2/./node_modules/wkt-parser/parser.js","webpack://rmap2/./node_modules/wkt-parser/process.js","webpack://rmap2/./node_modules/wkt-parser/index.js","webpack://rmap2/./node_modules/proj4/lib/defs.js","webpack://rmap2/./node_modules/proj4/lib/global.js","webpack://rmap2/./node_modules/proj4/lib/parseCode.js","webpack://rmap2/./node_modules/proj4/lib/extend.js","webpack://rmap2/./node_modules/proj4/lib/common/msfnz.js","webpack://rmap2/./node_modules/proj4/lib/common/sign.js","webpack://rmap2/./node_modules/proj4/lib/common/adjust_lon.js","webpack://rmap2/./node_modules/proj4/lib/common/tsfnz.js","webpack://rmap2/./node_modules/proj4/lib/common/phi2z.js","webpack://rmap2/./node_modules/proj4/lib/projections/longlat.js","webpack://rmap2/./node_modules/proj4/lib/projections.js","webpack://rmap2/./node_modules/proj4/lib/projections/merc.js","webpack://rmap2/./node_modules/proj4/lib/constants/Ellipsoid.js","webpack://rmap2/./node_modules/proj4/lib/constants/Datum.js","webpack://rmap2/./node_modules/proj4/lib/datum.js","webpack://rmap2/./node_modules/proj4/lib/nadgrid.js","webpack://rmap2/./node_modules/proj4/lib/Proj.js","webpack://rmap2/./node_modules/proj4/lib/deriveConstants.js","webpack://rmap2/./node_modules/proj4/lib/datumUtils.js","webpack://rmap2/./node_modules/proj4/lib/datum_transform.js","webpack://rmap2/./node_modules/proj4/lib/adjust_axis.js","webpack://rmap2/./node_modules/proj4/lib/common/toPoint.js","webpack://rmap2/./node_modules/proj4/lib/checkSanity.js","webpack://rmap2/./node_modules/proj4/lib/transform.js","webpack://rmap2/./node_modules/proj4/lib/core.js","webpack://rmap2/./node_modules/mgrs/mgrs.js","webpack://rmap2/./node_modules/proj4/lib/Point.js","webpack://rmap2/./node_modules/proj4/lib/common/pj_enfn.js","webpack://rmap2/./node_modules/proj4/lib/common/pj_mlfn.js","webpack://rmap2/./node_modules/proj4/lib/common/pj_inv_mlfn.js","webpack://rmap2/./node_modules/proj4/lib/projections/tmerc.js","webpack://rmap2/./node_modules/proj4/lib/common/sinh.js","webpack://rmap2/./node_modules/proj4/lib/common/hypot.js","webpack://rmap2/./node_modules/proj4/lib/common/asinhy.js","webpack://rmap2/./node_modules/proj4/lib/common/log1py.js","webpack://rmap2/./node_modules/proj4/lib/common/gatg.js","webpack://rmap2/./node_modules/proj4/lib/common/clens_cmplx.js","webpack://rmap2/./node_modules/proj4/lib/common/cosh.js","webpack://rmap2/./node_modules/proj4/lib/projections/etmerc.js","webpack://rmap2/./node_modules/proj4/lib/common/clens.js","webpack://rmap2/./node_modules/proj4/lib/projections/utm.js","webpack://rmap2/./node_modules/proj4/lib/common/adjust_zone.js","webpack://rmap2/./node_modules/proj4/lib/common/srat.js","webpack://rmap2/./node_modules/proj4/lib/projections/gauss.js","webpack://rmap2/./node_modules/proj4/lib/projections/sterea.js","webpack://rmap2/./node_modules/proj4/lib/projections/stere.js","webpack://rmap2/./node_modules/proj4/lib/projections/somerc.js","webpack://rmap2/./node_modules/proj4/lib/projections/omerc.js","webpack://rmap2/./node_modules/proj4/lib/projections/lcc.js","webpack://rmap2/./node_modules/proj4/lib/projections/krovak.js","webpack://rmap2/./node_modules/proj4/lib/common/mlfn.js","webpack://rmap2/./node_modules/proj4/lib/common/e0fn.js","webpack://rmap2/./node_modules/proj4/lib/common/e1fn.js","webpack://rmap2/./node_modules/proj4/lib/common/e2fn.js","webpack://rmap2/./node_modules/proj4/lib/common/e3fn.js","webpack://rmap2/./node_modules/proj4/lib/common/gN.js","webpack://rmap2/./node_modules/proj4/lib/common/adjust_lat.js","webpack://rmap2/./node_modules/proj4/lib/common/imlfn.js","webpack://rmap2/./node_modules/proj4/lib/projections/cass.js","webpack://rmap2/./node_modules/proj4/lib/common/qsfnz.js","webpack://rmap2/./node_modules/proj4/lib/projections/laea.js","webpack://rmap2/./node_modules/proj4/lib/common/asinz.js","webpack://rmap2/./node_modules/proj4/lib/projections/aea.js","webpack://rmap2/./node_modules/proj4/lib/projections/gnom.js","webpack://rmap2/./node_modules/proj4/lib/projections/cea.js","webpack://rmap2/./node_modules/proj4/lib/common/iqsfnz.js","webpack://rmap2/./node_modules/proj4/lib/projections/eqc.js","webpack://rmap2/./node_modules/proj4/lib/projections/poly.js","webpack://rmap2/./node_modules/proj4/lib/projections/nzmg.js","webpack://rmap2/./node_modules/proj4/lib/projections/mill.js","webpack://rmap2/./node_modules/proj4/lib/projections/sinu.js","webpack://rmap2/./node_modules/proj4/lib/projections/moll.js","webpack://rmap2/./node_modules/proj4/lib/projections/eqdc.js","webpack://rmap2/./node_modules/proj4/lib/projections/vandg.js","webpack://rmap2/./node_modules/proj4/lib/projections/aeqd.js","webpack://rmap2/./node_modules/proj4/lib/projections/ortho.js","webpack://rmap2/./node_modules/proj4/lib/projections/qsc.js","webpack://rmap2/./node_modules/proj4/lib/projections/robin.js","webpack://rmap2/./node_modules/proj4/lib/projections/geocent.js","webpack://rmap2/./node_modules/proj4/lib/projections/tpers.js","webpack://rmap2/./node_modules/proj4/lib/projections/geos.js","webpack://rmap2/./node_modules/proj4/lib/index.js","webpack://rmap2/./node_modules/proj4/projs.js","webpack://rmap2/./node_modules/rbush/rbush.min.js","webpack://rmap2/./node_modules/reproject/index.js","webpack://rmap2/./node_modules/wkt/index.js","webpack://rmap2/./node_modules/maplibre-gl/dist/maplibre-gl.js","webpack://rmap2/webpack/bootstrap","webpack://rmap2/webpack/runtime/compat get default export","webpack://rmap2/webpack/runtime/define property getters","webpack://rmap2/webpack/runtime/hasOwnProperty shorthand","webpack://rmap2/webpack/runtime/make namespace object","webpack://rmap2/./node_modules/mustache/mustache.mjs","webpack://rmap2/./src/rm2/model/RM2Event.ts","webpack://rmap2/./src/rm2/model/RM2Projection.ts","webpack://rmap2/./node_modules/@turf/helpers/dist/es/index.js","webpack://rmap2/./node_modules/@turf/clone/dist/es/index.js","webpack://rmap2/./node_modules/@turf/meta/dist/es/index.js","webpack://rmap2/./node_modules/@turf/bbox/dist/es/index.js","webpack://rmap2/./node_modules/@turf/envelope/dist/es/index.js","webpack://rmap2/./node_modules/@turf/bbox-polygon/dist/es/index.js","webpack://rmap2/./node_modules/@turf/centroid/dist/es/index.js","webpack://rmap2/./node_modules/@turf/flatten/dist/es/index.js","webpack://rmap2/./node_modules/@turf/invariant/dist/es/index.js","webpack://rmap2/./node_modules/@turf/distance/dist/es/index.js","webpack://rmap2/./src/rm2/model/RM2Geometry.ts","webpack://rmap2/./src/rm2/model/RM2CameraChangeOptions.ts","webpack://rmap2/./src/rm2/templates/popup-templates.ts","webpack://rmap2/./src/rm2/services/RM2Service.ts","webpack://rmap2/./src/rm2/popup/RM2Popup.ts","webpack://rmap2/./src/rm2/popup/RM2PopupOptions.ts","webpack://rmap2/./src/rm2/map-controls/RM2MapControls.ts","webpack://rmap2/./src/rm2/highlights/RM2HighlightOptions.ts","webpack://rmap2/./src/rm2/model/RM2Feature.ts","webpack://rmap2/./src/rm2/services/RM2NominatimService.ts","webpack://rmap2/./node_modules/@turf/bearing/dist/es/index.js","webpack://rmap2/./node_modules/@turf/destination/dist/es/index.js","webpack://rmap2/./node_modules/@turf/line-slice-along/dist/es/index.js","webpack://rmap2/./node_modules/@turf/line-chunk/dist/es/index.js","webpack://rmap2/./node_modules/@turf/length/dist/es/index.js","webpack://rmap2/./src/rm2/model/RouteStatus.ts","webpack://rmap2/./src/rm2/services/RM2RoutingService.ts","webpack://rmap2/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://rmap2/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://rmap2/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://rmap2/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://rmap2/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://rmap2/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://rmap2/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://rmap2/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://rmap2/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://rmap2/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://rmap2/./node_modules/@babel/runtime/helpers/esm/toArray.js","webpack://rmap2/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://rmap2/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://rmap2/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://rmap2/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://rmap2/./node_modules/i18next/dist/esm/i18next.js","webpack://rmap2/./node_modules/i18next-xhr-backend/dist/esm/i18nextXHRBackend.js","webpack://rmap2/./src/rm2/services/RM2LocalizationService.ts","webpack://rmap2/./node_modules/tslib/tslib.es6.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/util/isFunction.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/Subscription.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/config.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/util/noop.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/NotificationFactories.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/util/errorContext.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/Subscriber.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/symbol/observable.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/util/identity.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/util/pipe.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/Observable.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/Subject.js","webpack://rmap2/./src/rm2/highlights/RM2Highlights.ts","webpack://rmap2/./src/rm2/map-controls/map-picker-control/RM2MapPickerControlOptions.ts","webpack://rmap2/./src/rm2/map-controls/map-picker-control/RM2MapPickerControl.ts","webpack://rmap2/./src/rm2/geolocation/RM2GeolocationOptions.ts","webpack://rmap2/./src/rm2/geolocation/RM2Geolocation.ts","webpack://rmap2/./src/rm2/model/style-metadata/RM2LayerGroup.ts","webpack://rmap2/./src/rm2/map-controls/legend-control/RM2LegendControl.ts","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/scheduler/Action.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/Scheduler.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/scheduler/async.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/util/lift.js","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js","webpack://rmap2/./src/rm2/map-controls/routing-control/RM2RoutingControlOptions.ts","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/operators/debounceTime.js","webpack://rmap2/./src/rm2/services/RM2StaticService.ts","webpack://rmap2/./src/rm2/map-controls/routing-control/RM2RoutingControl.ts","webpack://rmap2/./src/rm2/map-controls/promet-si-control/RM2PrometSiControlOptions.ts","webpack://rmap2/./src/rm2/model/RM2Theme.ts","webpack://rmap2/./src/rm2/map-controls/promet-si-control/promet-si-expand-map-control/RM2PrometSiExpandMapControl.ts","webpack://rmap2/./src/rm2/map-controls/promet-si-control/RM2PrometSiControl.ts","webpack://rmap2/./src/rm2/map-controls/promet-si-control/templates/rmb-click-template.ts","webpack://rmap2/./src/rm2/map-controls/promet-si-control/templates/container-template.ts","webpack://rmap2/./src/rm2/map-controls/promet-si-control/templates/legend-template.ts","webpack://rmap2/./src/rm2/map-controls/promet-si-control/templates/search-results-template.ts","webpack://rmap2/./src/rm2/map-controls/promet-si-control/templates/routing-header-template.ts","webpack://rmap2/./src/rm2/map-controls/promet-si-control/templates/route-tab-template.ts","webpack://rmap2/./src/rm2/map-controls/promet-si-control/templates/error-template.ts","webpack://rmap2/./src/rm2/model/style-metadata/RM2StyleMetadata.ts","webpack://rmap2/./src/rm2/model/style-metadata/RM2LayerMetadata.ts","webpack://rmap2/./src/rm2/model/RM2Layer.ts","webpack://rmap2/./src/rm2/map-controls/nap-control/RM2NAPControlOptions.ts","webpack://rmap2/./src/rm2/map-controls/nap-control/RM2NAPControl.ts","webpack://rmap2/./src/rm2/map-controls/nap-control/templates/filter-template.ts","webpack://rmap2/./src/rm2/map-controls/nap-control/templates/details-template.ts","webpack://rmap2/./src/rm2/map/RM2Map.ts","webpack://rmap2/./node_modules/rxjs/dist/esm5/internal/ReplaySubject.js","webpack://rmap2/./src/map-container.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"rmap2\"] = factory();\n\telse\n\t\troot[\"rmap2\"] = factory();\n})(self, () => {\nreturn ","function moveToMapPosition (master, clones) {\n var center = master.getCenter();\n var zoom = master.getZoom();\n var bearing = master.getBearing();\n var pitch = master.getPitch();\n\n clones.forEach(function (clone) {\n clone.jumpTo({\n center: center,\n zoom: zoom,\n bearing: bearing,\n pitch: pitch\n });\n });\n}\n\n// Sync movements of two maps.\n//\n// All interactions that result in movement end up firing\n// a \"move\" event. The trick here, though, is to\n// ensure that movements don't cycle from one map\n// to the other and back again, because such a cycle\n// - could cause an infinite loop\n// - prematurely halts prolonged movements like\n// double-click zooming, box-zooming, and flying\nfunction syncMaps () {\n var maps;\n var argLen = arguments.length;\n if (argLen === 1) {\n maps = arguments[0];\n } else {\n maps = [];\n for (var i = 0; i < argLen; i++) {\n maps.push(arguments[i]);\n }\n }\n\n // Create all the movement functions, because if they're created every time\n // they wouldn't be the same and couldn't be removed.\n var fns = [];\n maps.forEach(function (map, index) {\n fns[index] = sync.bind(null, map, maps.filter(function (o, i) { return i !== index; }));\n });\n\n function on () {\n maps.forEach(function (map, index) {\n map.on('move', fns[index]);\n });\n }\n\n function off () {\n maps.forEach(function (map, index) {\n map.off('move', fns[index]);\n });\n }\n\n // When one map moves, we turn off the movement listeners\n // on all the maps, move it, then turn the listeners on again\n function sync (master, clones) {\n off();\n moveToMapPosition(master, clones);\n on();\n }\n\n on();\n return function(){ off(); fns = []; };\n}\n\nmodule.exports = syncMaps;\n","\"use strict\";\n\nvar syncMove = require(\"@mapbox/mapbox-gl-sync-move\");\nvar EventEmitter = require(\"events\").EventEmitter;\n\n/**\n * @param {Object} a The first MapLibre GL Map\n * @param {Object} b The second MapLibre GL Map\n * @param {string|HTMLElement} container An HTML Element, or an element selector string for the compare container. It should be a wrapper around the two map Elements.\n * @param {Object} options\n * @param {string} [options.orientation=vertical] The orientation of the compare slider. `vertical` creates a vertical slider bar to compare one map on the left (map A) with another map on the right (map B). `horizontal` creates a horizontal slider bar to compare on mop on the top (map A) and another map on the bottom (map B).\n * @param {boolean} [options.mousemove=false] If `true` the compare slider will move with the cursor, otherwise the slider will need to be dragged to move.\n * @example\n * var compare = new maplibregl.Compare(beforeMap, afterMap, '#wrapper', {\n * orientation: 'vertical',\n * mousemove: true\n * });\n * @see [Swipe between maps](https://maplibre.org/maplibre-gl-js-docs/plugins/)\n */\nfunction Compare(a, b, container, options) {\n this.options = options ? options : {};\n this._mapA = a;\n this._mapB = b;\n this._horizontal = this.options.orientation === \"horizontal\";\n this._onDown = this._onDown.bind(this);\n this._onMove = this._onMove.bind(this);\n this._onMouseUp = this._onMouseUp.bind(this);\n this._onTouchEnd = this._onTouchEnd.bind(this);\n this._ev = new EventEmitter();\n this._swiper = document.createElement(\"div\");\n this._swiper.className = this._horizontal\n ? \"compare-swiper-horizontal\"\n : \"compare-swiper-vertical\";\n\n this._controlContainer = document.createElement(\"div\");\n this._controlContainer.className = this._horizontal\n ? \"maplibregl-compare maplibregl-compare-horizontal\"\n : \"maplibregl-compare\";\n this._controlContainer.className = this._controlContainer.className;\n this._controlContainer.appendChild(this._swiper);\n\n if (typeof container === \"string\" && document.body.querySelectorAll) {\n // get container with a selector\n var appendTarget = document.body.querySelectorAll(container)[0];\n if (!appendTarget) {\n throw new Error(\"Cannot find element with specified container selector.\");\n }\n appendTarget.appendChild(this._controlContainer);\n } else if (container instanceof Element && container.appendChild) {\n // get container directly\n container.appendChild(this._controlContainer);\n } else {\n throw new Error(\n \"Invalid container specified. Must be CSS selector or HTML element.\"\n );\n }\n\n this._bounds = b.getContainer().getBoundingClientRect();\n var swiperPosition =\n (this._horizontal ? this._bounds.height : this._bounds.width) / 2;\n\n this._setPosition(swiperPosition);\n\n this._clearSync = syncMove(a, b);\n this._onResize = function () {\n this._bounds = b.getContainer().getBoundingClientRect();\n if (this.currentPosition) this._setPosition(this.currentPosition);\n }.bind(this);\n\n b.on(\"resize\", this._onResize);\n\n if (this.options && this.options.mousemove) {\n a.getContainer().addEventListener(\"mousemove\", this._onMove);\n b.getContainer().addEventListener(\"mousemove\", this._onMove);\n }\n\n this._swiper.addEventListener(\"mousedown\", this._onDown);\n this._swiper.addEventListener(\"touchstart\", this._onDown);\n}\n\nCompare.prototype = {\n _setPointerEvents: function (v) {\n this._controlContainer.style.pointerEvents = v;\n this._swiper.style.pointerEvents = v;\n },\n\n _onDown: function (e) {\n if (e.touches) {\n document.addEventListener(\"touchmove\", this._onMove);\n document.addEventListener(\"touchend\", this._onTouchEnd);\n } else {\n document.addEventListener(\"mousemove\", this._onMove);\n document.addEventListener(\"mouseup\", this._onMouseUp);\n }\n },\n\n _setPosition: function (x) {\n x = Math.min(\n x,\n this._horizontal ? this._bounds.height : this._bounds.width\n );\n var pos = this._horizontal\n ? \"translate(0, \" + x + \"px)\"\n : \"translate(\" + x + \"px, 0)\";\n this._controlContainer.style.transform = pos;\n this._controlContainer.style.WebkitTransform = pos;\n var clipA = this._horizontal\n ? \"rect(0, 999em, \" + x + \"px, 0)\"\n : \"rect(0, \" + x + \"px, \" + this._bounds.height + \"px, 0)\";\n var clipB = this._horizontal\n ? \"rect(\" + x + \"px, 999em, \" + this._bounds.height + \"px,0)\"\n : \"rect(0, 999em, \" + this._bounds.height + \"px,\" + x + \"px)\";\n\n this._mapA.getContainer().style.clip = clipA;\n this._mapB.getContainer().style.clip = clipB;\n this.currentPosition = x;\n },\n\n _onMove: function (e) {\n if (this.options && this.options.mousemove) {\n this._setPointerEvents(e.touches ? \"auto\" : \"none\");\n }\n\n this._horizontal\n ? this._setPosition(this._getY(e))\n : this._setPosition(this._getX(e));\n },\n\n _onMouseUp: function () {\n document.removeEventListener(\"mousemove\", this._onMove);\n document.removeEventListener(\"mouseup\", this._onMouseUp);\n this.fire(\"slideend\", { currentPosition: this.currentPosition });\n },\n\n _onTouchEnd: function () {\n document.removeEventListener(\"touchmove\", this._onMove);\n document.removeEventListener(\"touchend\", this._onTouchEnd);\n this.fire(\"slideend\", { currentPosition: this.currentPosition });\n },\n\n _getX: function (e) {\n e = e.touches ? e.touches[0] : e;\n var x = e.clientX - this._bounds.left;\n if (x < 0) x = 0;\n if (x > this._bounds.width) x = this._bounds.width;\n return x;\n },\n\n _getY: function (e) {\n e = e.touches ? e.touches[0] : e;\n var y = e.clientY - this._bounds.top;\n if (y < 0) y = 0;\n if (y > this._bounds.height) y = this._bounds.height;\n return y;\n },\n\n /**\n * Set the position of the slider.\n *\n * @param {number} x Slider position in pixels from left/top.\n */\n setSlider: function (x) {\n this._setPosition(x);\n },\n\n /**\n * Adds a listener for events of a specified type.\n *\n * @param {string} type The event type to listen for; one of `slideend`.\n * @param {Function} listener The function to be called when the event is fired.\n * @returns {Compare} `this`\n */\n on: function (type, fn) {\n this._ev.on(type, fn);\n return this;\n },\n\n /**\n * Fire an event of a specified type.\n *\n * @param {string} type The event type to fire; one of `slideend`.\n * @param {Object} data Data passed to the event listener.\n * @returns {Compare} `this`\n */\n fire: function (type, data) {\n this._ev.emit(type, data);\n return this;\n },\n\n /**\n * Removes an event listener previously added with `Compare#on`.\n *\n * @param {string} type The event type previously used to install the listener.\n * @param {Function} listener The function previously installed as a listener.\n * @returns {Compare} `this`\n */\n off: function (type, fn) {\n this._ev.removeListener(type, fn);\n return this;\n },\n\n remove: function () {\n this._clearSync();\n this._mapB.off(\"resize\", this._onResize);\n var aContainer = this._mapA.getContainer();\n\n if (!!aContainer) {\n aContainer.style.clip = null;\n aContainer.removeEventListener(\"mousemove\", this._onMove);\n }\n\n var bContainer = this._mapB.getContainer();\n\n if (!!bContainer) {\n bContainer.style.clip = null;\n bContainer.removeEventListener(\"mousemove\", this._onMove);\n }\n\n this._swiper.removeEventListener(\"mousedown\", this._onDown);\n this._swiper.removeEventListener(\"touchstart\", this._onDown);\n this._controlContainer.remove();\n },\n};\n\nif (window.maplibregl) {\n maplibregl.Compare = Compare;\n} else if (typeof module !== \"undefined\") {\n module.exports = Compare;\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","\"use strict\";\r\nexports.__esModule = true;\r\nvar Guid = /** @class */ (function () {\r\n function Guid(guid) {\r\n if (!guid) {\r\n throw new TypeError(\"Invalid argument; `value` has no value.\");\r\n }\r\n this.value = Guid.EMPTY;\r\n if (guid && Guid.isGuid(guid)) {\r\n this.value = guid;\r\n }\r\n }\r\n Guid.isGuid = function (guid) {\r\n var value = guid.toString();\r\n return guid && (guid instanceof Guid || Guid.validator.test(value));\r\n };\r\n Guid.create = function () {\r\n return new Guid([Guid.gen(2), Guid.gen(1), Guid.gen(1), Guid.gen(1), Guid.gen(3)].join(\"-\"));\r\n };\r\n Guid.createEmpty = function () {\r\n return new Guid(\"emptyguid\");\r\n };\r\n Guid.parse = function (guid) {\r\n return new Guid(guid);\r\n };\r\n Guid.raw = function () {\r\n return [Guid.gen(2), Guid.gen(1), Guid.gen(1), Guid.gen(1), Guid.gen(3)].join(\"-\");\r\n };\r\n Guid.gen = function (count) {\r\n var out = \"\";\r\n for (var i = 0; i < count; i++) {\r\n // tslint:disable-next-line:no-bitwise\r\n out += (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n }\r\n return out;\r\n };\r\n Guid.prototype.equals = function (other) {\r\n // Comparing string `value` against provided `guid` will auto-call\r\n // toString on `guid` for comparison\r\n return Guid.isGuid(other) && this.value === other.toString();\r\n };\r\n Guid.prototype.isEmpty = function () {\r\n return this.value === Guid.EMPTY;\r\n };\r\n Guid.prototype.toString = function () {\r\n return this.value;\r\n };\r\n Guid.prototype.toJSON = function () {\r\n return {\r\n value: this.value\r\n };\r\n };\r\n Guid.validator = new RegExp(\"^[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$\", \"i\");\r\n Guid.EMPTY = \"00000000-0000-0000-0000-000000000000\";\r\n return Guid;\r\n}());\r\nexports.Guid = Guid;\r\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar defaults = {\n tName: 't',\n i18nName: 'i18n',\n handleName: 'localize',\n selectorAttr: 'data-i18n',\n targetAttr: 'i18n-target',\n optionsAttr: 'i18n-options',\n useOptionsAttr: false,\n parseDefaultValueFromContent: true\n};\n\nfunction init(i18next, $) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n\n options = _extends({}, defaults, options);\n\n function parse(ele, key, opts) {\n if (key.length === 0) return;\n\n var attr = 'text';\n\n if (key.indexOf('[') === 0) {\n var parts = key.split(']');\n key = parts[1];\n attr = parts[0].substr(1, parts[0].length - 1);\n }\n\n if (key.indexOf(';') === key.length - 1) {\n key = key.substr(0, key.length - 2);\n }\n\n function extendDefault(o, val) {\n if (!options.parseDefaultValueFromContent) return o;\n return _extends({}, o, { defaultValue: val });\n }\n\n if (attr === 'html') {\n ele.html(i18next.t(key, extendDefault(opts, ele.html())));\n } else if (attr === 'text') {\n ele.text(i18next.t(key, extendDefault(opts, ele.text())));\n } else if (attr === 'prepend') {\n ele.prepend(i18next.t(key, extendDefault(opts, ele.html())));\n } else if (attr === 'append') {\n ele.append(i18next.t(key, extendDefault(opts, ele.html())));\n } else if (attr.indexOf('data-') === 0) {\n var dataAttr = attr.substr('data-'.length);\n var translated = i18next.t(key, extendDefault(opts, ele.data(dataAttr)));\n\n // we change into the data cache\n ele.data(dataAttr, translated);\n // we change into the dom\n ele.attr(attr, translated);\n } else {\n ele.attr(attr, i18next.t(key, extendDefault(opts, ele.attr(attr))));\n }\n }\n\n function localize(ele, opts) {\n var key = ele.attr(options.selectorAttr);\n if (!key && typeof key !== 'undefined' && key !== false) key = ele.text() || ele.val();\n if (!key) return;\n\n var target = ele,\n targetSelector = ele.data(options.targetAttr);\n\n if (targetSelector) target = ele.find(targetSelector) || ele;\n\n if (!opts && options.useOptionsAttr === true) opts = ele.data(options.optionsAttr);\n\n opts = opts || {};\n\n if (key.indexOf(';') >= 0) {\n var keys = key.split(';');\n\n $.each(keys, function (m, k) {\n // .trim(): Trim the comma-separated parameters on the data-i18n attribute.\n if (k !== '') parse(target, k.trim(), opts);\n });\n } else {\n parse(target, key, opts);\n }\n\n if (options.useOptionsAttr === true) {\n var clone = {};\n clone = _extends({ clone: clone }, opts);\n\n delete clone.lng;\n ele.data(options.optionsAttr, clone);\n }\n }\n\n function handle(opts) {\n return this.each(function () {\n // localize element itself\n localize($(this), opts);\n\n // localize children\n var elements = $(this).find('[' + options.selectorAttr + ']');\n elements.each(function () {\n localize($(this), opts);\n });\n });\n };\n\n // $.t $.i18n shortcut\n $[options.tName] = i18next.t.bind(i18next);\n $[options.i18nName] = i18next;\n\n // selector function $(mySelector).localize(opts);\n $.fn[options.handleName] = handle;\n}\n\nexports.default = {\n init: init\n};","module.exports = require('./dist/commonjs/index.js').default;\n","export var PJD_3PARAM = 1;\nexport var PJD_7PARAM = 2;\nexport var PJD_GRIDSHIFT = 3;\nexport var PJD_WGS84 = 4; // WGS84 or equivalent\nexport var PJD_NODATUM = 5; // WGS84 or equivalent\nexport var SRS_WGS84_SEMIMAJOR = 6378137.0; // only used in grid shift transforms\nexport var SRS_WGS84_SEMIMINOR = 6356752.314; // only used in grid shift transforms\nexport var SRS_WGS84_ESQUARED = 0.0066943799901413165; // only used in grid shift transforms\nexport var SEC_TO_RAD = 4.84813681109535993589914102357e-6;\nexport var HALF_PI = Math.PI/2;\n// ellipoid pj_set_ell.c\nexport var SIXTH = 0.1666666666666666667;\n/* 1/6 */\nexport var RA4 = 0.04722222222222222222;\n/* 17/360 */\nexport var RA6 = 0.02215608465608465608;\nexport var EPSLN = 1.0e-10;\n// you'd think you could use Number.EPSILON above but that makes\n// Mollweide get into an infinate loop.\n\nexport var D2R = 0.01745329251994329577;\nexport var R2D = 57.29577951308232088;\nexport var FORTPI = Math.PI/4;\nexport var TWO_PI = Math.PI * 2;\n// SPI is slightly greater than Math.PI, so values that exceed the -180..180\n// degree range by a tiny amount don't get wrapped. This prevents points that\n// have drifted from their original location along the 180th meridian (due to\n// floating point error) from changing their sign.\nexport var SPI = 3.14159265359;\n","var exports = {};\nexport {exports as default};\n\nexports.greenwich = 0.0; //\"0dE\",\nexports.lisbon = -9.131906111111; //\"9d07'54.862\\\"W\",\nexports.paris = 2.337229166667; //\"2d20'14.025\\\"E\",\nexports.bogota = -74.080916666667; //\"74d04'51.3\\\"W\",\nexports.madrid = -3.687938888889; //\"3d41'16.58\\\"W\",\nexports.rome = 12.452333333333; //\"12d27'8.4\\\"E\",\nexports.bern = 7.439583333333; //\"7d26'22.5\\\"E\",\nexports.jakarta = 106.807719444444; //\"106d48'27.79\\\"E\",\nexports.ferro = -17.666666666667; //\"17d40'W\",\nexports.brussels = 4.367975; //\"4d22'4.71\\\"E\",\nexports.stockholm = 18.058277777778; //\"18d3'29.8\\\"E\",\nexports.athens = 23.7163375; //\"23d42'58.815\\\"E\",\nexports.oslo = 10.722916666667; //\"10d43'22.5\\\"E\"\n","export default {\n ft: {to_meter: 0.3048},\n 'us-ft': {to_meter: 1200 / 3937}\n};\n","var ignoredChar = /[\\s_\\-\\/\\(\\)]/g;\nexport default function match(obj, key) {\n if (obj[key]) {\n return obj[key];\n }\n var keys = Object.keys(obj);\n var lkey = key.toLowerCase().replace(ignoredChar, '');\n var i = -1;\n var testkey, processedKey;\n while (++i < keys.length) {\n testkey = keys[i];\n processedKey = testkey.toLowerCase().replace(ignoredChar, '');\n if (processedKey === lkey) {\n return obj[testkey];\n }\n }\n}\n","import {D2R} from './constants/values';\nimport PrimeMeridian from './constants/PrimeMeridian';\nimport units from './constants/units';\nimport match from './match';\n\nexport default function(defData) {\n var self = {};\n var paramObj = defData.split('+').map(function(v) {\n return v.trim();\n }).filter(function(a) {\n return a;\n }).reduce(function(p, a) {\n var split = a.split('=');\n split.push(true);\n p[split[0].toLowerCase()] = split[1];\n return p;\n }, {});\n var paramName, paramVal, paramOutname;\n var params = {\n proj: 'projName',\n datum: 'datumCode',\n rf: function(v) {\n self.rf = parseFloat(v);\n },\n lat_0: function(v) {\n self.lat0 = v * D2R;\n },\n lat_1: function(v) {\n self.lat1 = v * D2R;\n },\n lat_2: function(v) {\n self.lat2 = v * D2R;\n },\n lat_ts: function(v) {\n self.lat_ts = v * D2R;\n },\n lon_0: function(v) {\n self.long0 = v * D2R;\n },\n lon_1: function(v) {\n self.long1 = v * D2R;\n },\n lon_2: function(v) {\n self.long2 = v * D2R;\n },\n alpha: function(v) {\n self.alpha = parseFloat(v) * D2R;\n },\n gamma: function(v) {\n self.rectified_grid_angle = parseFloat(v);\n },\n lonc: function(v) {\n self.longc = v * D2R;\n },\n x_0: function(v) {\n self.x0 = parseFloat(v);\n },\n y_0: function(v) {\n self.y0 = parseFloat(v);\n },\n k_0: function(v) {\n self.k0 = parseFloat(v);\n },\n k: function(v) {\n self.k0 = parseFloat(v);\n },\n a: function(v) {\n self.a = parseFloat(v);\n },\n b: function(v) {\n self.b = parseFloat(v);\n },\n r_a: function() {\n self.R_A = true;\n },\n zone: function(v) {\n self.zone = parseInt(v, 10);\n },\n south: function() {\n self.utmSouth = true;\n },\n towgs84: function(v) {\n self.datum_params = v.split(\",\").map(function(a) {\n return parseFloat(a);\n });\n },\n to_meter: function(v) {\n self.to_meter = parseFloat(v);\n },\n units: function(v) {\n self.units = v;\n var unit = match(units, v);\n if (unit) {\n self.to_meter = unit.to_meter;\n }\n },\n from_greenwich: function(v) {\n self.from_greenwich = v * D2R;\n },\n pm: function(v) {\n var pm = match(PrimeMeridian, v);\n self.from_greenwich = (pm ? pm : parseFloat(v)) * D2R;\n },\n nadgrids: function(v) {\n if (v === '@null') {\n self.datumCode = 'none';\n }\n else {\n self.nadgrids = v;\n }\n },\n axis: function(v) {\n var legalAxis = \"ewnsud\";\n if (v.length === 3 && legalAxis.indexOf(v.substr(0, 1)) !== -1 && legalAxis.indexOf(v.substr(1, 1)) !== -1 && legalAxis.indexOf(v.substr(2, 1)) !== -1) {\n self.axis = v;\n }\n },\n approx: function() {\n self.approx = true;\n }\n };\n for (paramName in paramObj) {\n paramVal = paramObj[paramName];\n if (paramName in params) {\n paramOutname = params[paramName];\n if (typeof paramOutname === 'function') {\n paramOutname(paramVal);\n }\n else {\n self[paramOutname] = paramVal;\n }\n }\n else {\n self[paramName] = paramVal;\n }\n }\n if(typeof self.datumCode === 'string' && self.datumCode !== \"WGS84\"){\n self.datumCode = self.datumCode.toLowerCase();\n }\n return self;\n}\n","export default parseString;\n\nvar NEUTRAL = 1;\nvar KEYWORD = 2;\nvar NUMBER = 3;\nvar QUOTED = 4;\nvar AFTERQUOTE = 5;\nvar ENDED = -1;\nvar whitespace = /\\s/;\nvar latin = /[A-Za-z]/;\nvar keyword = /[A-Za-z84_]/;\nvar endThings = /[,\\]]/;\nvar digets = /[\\d\\.E\\-\\+]/;\n// const ignoredChar = /[\\s_\\-\\/\\(\\)]/g;\nfunction Parser(text) {\n if (typeof text !== 'string') {\n throw new Error('not a string');\n }\n this.text = text.trim();\n this.level = 0;\n this.place = 0;\n this.root = null;\n this.stack = [];\n this.currentObject = null;\n this.state = NEUTRAL;\n}\nParser.prototype.readCharicter = function() {\n var char = this.text[this.place++];\n if (this.state !== QUOTED) {\n while (whitespace.test(char)) {\n if (this.place >= this.text.length) {\n return;\n }\n char = this.text[this.place++];\n }\n }\n switch (this.state) {\n case NEUTRAL:\n return this.neutral(char);\n case KEYWORD:\n return this.keyword(char)\n case QUOTED:\n return this.quoted(char);\n case AFTERQUOTE:\n return this.afterquote(char);\n case NUMBER:\n return this.number(char);\n case ENDED:\n return;\n }\n};\nParser.prototype.afterquote = function(char) {\n if (char === '\"') {\n this.word += '\"';\n this.state = QUOTED;\n return;\n }\n if (endThings.test(char)) {\n this.word = this.word.trim();\n this.afterItem(char);\n return;\n }\n throw new Error('havn\\'t handled \"' +char + '\" in afterquote yet, index ' + this.place);\n};\nParser.prototype.afterItem = function(char) {\n if (char === ',') {\n if (this.word !== null) {\n this.currentObject.push(this.word);\n }\n this.word = null;\n this.state = NEUTRAL;\n return;\n }\n if (char === ']') {\n this.level--;\n if (this.word !== null) {\n this.currentObject.push(this.word);\n this.word = null;\n }\n this.state = NEUTRAL;\n this.currentObject = this.stack.pop();\n if (!this.currentObject) {\n this.state = ENDED;\n }\n\n return;\n }\n};\nParser.prototype.number = function(char) {\n if (digets.test(char)) {\n this.word += char;\n return;\n }\n if (endThings.test(char)) {\n this.word = parseFloat(this.word);\n this.afterItem(char);\n return;\n }\n throw new Error('havn\\'t handled \"' +char + '\" in number yet, index ' + this.place);\n};\nParser.prototype.quoted = function(char) {\n if (char === '\"') {\n this.state = AFTERQUOTE;\n return;\n }\n this.word += char;\n return;\n};\nParser.prototype.keyword = function(char) {\n if (keyword.test(char)) {\n this.word += char;\n return;\n }\n if (char === '[') {\n var newObjects = [];\n newObjects.push(this.word);\n this.level++;\n if (this.root === null) {\n this.root = newObjects;\n } else {\n this.currentObject.push(newObjects);\n }\n this.stack.push(this.currentObject);\n this.currentObject = newObjects;\n this.state = NEUTRAL;\n return;\n }\n if (endThings.test(char)) {\n this.afterItem(char);\n return;\n }\n throw new Error('havn\\'t handled \"' +char + '\" in keyword yet, index ' + this.place);\n};\nParser.prototype.neutral = function(char) {\n if (latin.test(char)) {\n this.word = char;\n this.state = KEYWORD;\n return;\n }\n if (char === '\"') {\n this.word = '';\n this.state = QUOTED;\n return;\n }\n if (digets.test(char)) {\n this.word = char;\n this.state = NUMBER;\n return;\n }\n if (endThings.test(char)) {\n this.afterItem(char);\n return;\n }\n throw new Error('havn\\'t handled \"' +char + '\" in neutral yet, index ' + this.place);\n};\nParser.prototype.output = function() {\n while (this.place < this.text.length) {\n this.readCharicter();\n }\n if (this.state === ENDED) {\n return this.root;\n }\n throw new Error('unable to parse string \"' +this.text + '\". State is ' + this.state);\n};\n\nfunction parseString(txt) {\n var parser = new Parser(txt);\n return parser.output();\n}\n","\n\nfunction mapit(obj, key, value) {\n if (Array.isArray(key)) {\n value.unshift(key);\n key = null;\n }\n var thing = key ? {} : obj;\n\n var out = value.reduce(function(newObj, item) {\n sExpr(item, newObj);\n return newObj\n }, thing);\n if (key) {\n obj[key] = out;\n }\n}\n\nexport function sExpr(v, obj) {\n if (!Array.isArray(v)) {\n obj[v] = true;\n return;\n }\n var key = v.shift();\n if (key === 'PARAMETER') {\n key = v.shift();\n }\n if (v.length === 1) {\n if (Array.isArray(v[0])) {\n obj[key] = {};\n sExpr(v[0], obj[key]);\n return;\n }\n obj[key] = v[0];\n return;\n }\n if (!v.length) {\n obj[key] = true;\n return;\n }\n if (key === 'TOWGS84') {\n obj[key] = v;\n return;\n }\n if (key === 'AXIS') {\n if (!(key in obj)) {\n obj[key] = [];\n }\n obj[key].push(v);\n return;\n }\n if (!Array.isArray(key)) {\n obj[key] = {};\n }\n\n var i;\n switch (key) {\n case 'UNIT':\n case 'PRIMEM':\n case 'VERT_DATUM':\n obj[key] = {\n name: v[0].toLowerCase(),\n convert: v[1]\n };\n if (v.length === 3) {\n sExpr(v[2], obj[key]);\n }\n return;\n case 'SPHEROID':\n case 'ELLIPSOID':\n obj[key] = {\n name: v[0],\n a: v[1],\n rf: v[2]\n };\n if (v.length === 4) {\n sExpr(v[3], obj[key]);\n }\n return;\n case 'PROJECTEDCRS':\n case 'PROJCRS':\n case 'GEOGCS':\n case 'GEOCCS':\n case 'PROJCS':\n case 'LOCAL_CS':\n case 'GEODCRS':\n case 'GEODETICCRS':\n case 'GEODETICDATUM':\n case 'EDATUM':\n case 'ENGINEERINGDATUM':\n case 'VERT_CS':\n case 'VERTCRS':\n case 'VERTICALCRS':\n case 'COMPD_CS':\n case 'COMPOUNDCRS':\n case 'ENGINEERINGCRS':\n case 'ENGCRS':\n case 'FITTED_CS':\n case 'LOCAL_DATUM':\n case 'DATUM':\n v[0] = ['name', v[0]];\n mapit(obj, key, v);\n return;\n default:\n i = -1;\n while (++i < v.length) {\n if (!Array.isArray(v[i])) {\n return sExpr(v, obj[key]);\n }\n }\n return mapit(obj, key, v);\n }\n}\n","var D2R = 0.01745329251994329577;\nimport parser from './parser';\nimport {sExpr} from './process';\n\n\n\nfunction rename(obj, params) {\n var outName = params[0];\n var inName = params[1];\n if (!(outName in obj) && (inName in obj)) {\n obj[outName] = obj[inName];\n if (params.length === 3) {\n obj[outName] = params[2](obj[outName]);\n }\n }\n}\n\nfunction d2r(input) {\n return input * D2R;\n}\n\nfunction cleanWKT(wkt) {\n if (wkt.type === 'GEOGCS') {\n wkt.projName = 'longlat';\n } else if (wkt.type === 'LOCAL_CS') {\n wkt.projName = 'identity';\n wkt.local = true;\n } else {\n if (typeof wkt.PROJECTION === 'object') {\n wkt.projName = Object.keys(wkt.PROJECTION)[0];\n } else {\n wkt.projName = wkt.PROJECTION;\n }\n }\n if (wkt.AXIS) {\n var axisOrder = '';\n for (var i = 0, ii = wkt.AXIS.length; i < ii; ++i) {\n var axis = [wkt.AXIS[i][0].toLowerCase(), wkt.AXIS[i][1].toLowerCase()];\n if (axis[0].indexOf('north') !== -1 || ((axis[0] === 'y' || axis[0] === 'lat') && axis[1] === 'north')) {\n axisOrder += 'n';\n } else if (axis[0].indexOf('south') !== -1 || ((axis[0] === 'y' || axis[0] === 'lat') && axis[1] === 'south')) {\n axisOrder += 's';\n } else if (axis[0].indexOf('east') !== -1 || ((axis[0] === 'x' || axis[0] === 'lon') && axis[1] === 'east')) {\n axisOrder += 'e';\n } else if (axis[0].indexOf('west') !== -1 || ((axis[0] === 'x' || axis[0] === 'lon') && axis[1] === 'west')) {\n axisOrder += 'w';\n }\n }\n if (axisOrder.length === 2) {\n axisOrder += 'u';\n }\n if (axisOrder.length === 3) {\n wkt.axis = axisOrder;\n }\n }\n if (wkt.UNIT) {\n wkt.units = wkt.UNIT.name.toLowerCase();\n if (wkt.units === 'metre') {\n wkt.units = 'meter';\n }\n if (wkt.UNIT.convert) {\n if (wkt.type === 'GEOGCS') {\n if (wkt.DATUM && wkt.DATUM.SPHEROID) {\n wkt.to_meter = wkt.UNIT.convert*wkt.DATUM.SPHEROID.a;\n }\n } else {\n wkt.to_meter = wkt.UNIT.convert;\n }\n }\n }\n var geogcs = wkt.GEOGCS;\n if (wkt.type === 'GEOGCS') {\n geogcs = wkt;\n }\n if (geogcs) {\n //if(wkt.GEOGCS.PRIMEM&&wkt.GEOGCS.PRIMEM.convert){\n // wkt.from_greenwich=wkt.GEOGCS.PRIMEM.convert*D2R;\n //}\n if (geogcs.DATUM) {\n wkt.datumCode = geogcs.DATUM.name.toLowerCase();\n } else {\n wkt.datumCode = geogcs.name.toLowerCase();\n }\n if (wkt.datumCode.slice(0, 2) === 'd_') {\n wkt.datumCode = wkt.datumCode.slice(2);\n }\n if (wkt.datumCode === 'new_zealand_geodetic_datum_1949' || wkt.datumCode === 'new_zealand_1949') {\n wkt.datumCode = 'nzgd49';\n }\n if (wkt.datumCode === 'wgs_1984' || wkt.datumCode === 'world_geodetic_system_1984') {\n if (wkt.PROJECTION === 'Mercator_Auxiliary_Sphere') {\n wkt.sphere = true;\n }\n wkt.datumCode = 'wgs84';\n }\n if (wkt.datumCode.slice(-6) === '_ferro') {\n wkt.datumCode = wkt.datumCode.slice(0, - 6);\n }\n if (wkt.datumCode.slice(-8) === '_jakarta') {\n wkt.datumCode = wkt.datumCode.slice(0, - 8);\n }\n if (~wkt.datumCode.indexOf('belge')) {\n wkt.datumCode = 'rnb72';\n }\n if (geogcs.DATUM && geogcs.DATUM.SPHEROID) {\n wkt.ellps = geogcs.DATUM.SPHEROID.name.replace('_19', '').replace(/[Cc]larke\\_18/, 'clrk');\n if (wkt.ellps.toLowerCase().slice(0, 13) === 'international') {\n wkt.ellps = 'intl';\n }\n\n wkt.a = geogcs.DATUM.SPHEROID.a;\n wkt.rf = parseFloat(geogcs.DATUM.SPHEROID.rf, 10);\n }\n\n if (geogcs.DATUM && geogcs.DATUM.TOWGS84) {\n wkt.datum_params = geogcs.DATUM.TOWGS84;\n }\n if (~wkt.datumCode.indexOf('osgb_1936')) {\n wkt.datumCode = 'osgb36';\n }\n if (~wkt.datumCode.indexOf('osni_1952')) {\n wkt.datumCode = 'osni52';\n }\n if (~wkt.datumCode.indexOf('tm65')\n || ~wkt.datumCode.indexOf('geodetic_datum_of_1965')) {\n wkt.datumCode = 'ire65';\n }\n if (wkt.datumCode === 'ch1903+') {\n wkt.datumCode = 'ch1903';\n }\n if (~wkt.datumCode.indexOf('israel')) {\n wkt.datumCode = 'isr93';\n }\n }\n if (wkt.b && !isFinite(wkt.b)) {\n wkt.b = wkt.a;\n }\n\n function toMeter(input) {\n var ratio = wkt.to_meter || 1;\n return input * ratio;\n }\n var renamer = function(a) {\n return rename(wkt, a);\n };\n var list = [\n ['standard_parallel_1', 'Standard_Parallel_1'],\n ['standard_parallel_1', 'Latitude of 1st standard parallel'],\n ['standard_parallel_2', 'Standard_Parallel_2'],\n ['standard_parallel_2', 'Latitude of 2nd standard parallel'],\n ['false_easting', 'False_Easting'],\n ['false_easting', 'False easting'],\n ['false-easting', 'Easting at false origin'],\n ['false_northing', 'False_Northing'],\n ['false_northing', 'False northing'],\n ['false_northing', 'Northing at false origin'],\n ['central_meridian', 'Central_Meridian'],\n ['central_meridian', 'Longitude of natural origin'],\n ['central_meridian', 'Longitude of false origin'],\n ['latitude_of_origin', 'Latitude_Of_Origin'],\n ['latitude_of_origin', 'Central_Parallel'],\n ['latitude_of_origin', 'Latitude of natural origin'],\n ['latitude_of_origin', 'Latitude of false origin'],\n ['scale_factor', 'Scale_Factor'],\n ['k0', 'scale_factor'],\n ['latitude_of_center', 'Latitude_Of_Center'],\n ['latitude_of_center', 'Latitude_of_center'],\n ['lat0', 'latitude_of_center', d2r],\n ['longitude_of_center', 'Longitude_Of_Center'],\n ['longitude_of_center', 'Longitude_of_center'],\n ['longc', 'longitude_of_center', d2r],\n ['x0', 'false_easting', toMeter],\n ['y0', 'false_northing', toMeter],\n ['long0', 'central_meridian', d2r],\n ['lat0', 'latitude_of_origin', d2r],\n ['lat0', 'standard_parallel_1', d2r],\n ['lat1', 'standard_parallel_1', d2r],\n ['lat2', 'standard_parallel_2', d2r],\n ['azimuth', 'Azimuth'],\n ['alpha', 'azimuth', d2r],\n ['srsCode', 'name']\n ];\n list.forEach(renamer);\n if (!wkt.long0 && wkt.longc && (wkt.projName === 'Albers_Conic_Equal_Area' || wkt.projName === 'Lambert_Azimuthal_Equal_Area')) {\n wkt.long0 = wkt.longc;\n }\n if (!wkt.lat_ts && wkt.lat1 && (wkt.projName === 'Stereographic_South_Pole' || wkt.projName === 'Polar Stereographic (variant B)')) {\n wkt.lat0 = d2r(wkt.lat1 > 0 ? 90 : -90);\n wkt.lat_ts = wkt.lat1;\n }\n}\nexport default function(wkt) {\n var lisp = parser(wkt);\n var type = lisp.shift();\n var name = lisp.shift();\n lisp.unshift(['name', name]);\n lisp.unshift(['type', type]);\n var obj = {};\n sExpr(lisp, obj);\n cleanWKT(obj);\n return obj;\n}\n","import globals from './global';\nimport parseProj from './projString';\nimport wkt from 'wkt-parser';\n\nfunction defs(name) {\n /*global console*/\n var that = this;\n if (arguments.length === 2) {\n var def = arguments[1];\n if (typeof def === 'string') {\n if (def.charAt(0) === '+') {\n defs[name] = parseProj(arguments[1]);\n }\n else {\n defs[name] = wkt(arguments[1]);\n }\n } else {\n defs[name] = def;\n }\n }\n else if (arguments.length === 1) {\n if (Array.isArray(name)) {\n return name.map(function(v) {\n if (Array.isArray(v)) {\n defs.apply(that, v);\n }\n else {\n defs(v);\n }\n });\n }\n else if (typeof name === 'string') {\n if (name in defs) {\n return defs[name];\n }\n }\n else if ('EPSG' in name) {\n defs['EPSG:' + name.EPSG] = name;\n }\n else if ('ESRI' in name) {\n defs['ESRI:' + name.ESRI] = name;\n }\n else if ('IAU2000' in name) {\n defs['IAU2000:' + name.IAU2000] = name;\n }\n else {\n console.log(name);\n }\n return;\n }\n\n\n}\nglobals(defs);\nexport default defs;\n","export default function(defs) {\n defs('EPSG:4326', \"+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees\");\n defs('EPSG:4269', \"+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees\");\n defs('EPSG:3857', \"+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs\");\n\n defs.WGS84 = defs['EPSG:4326'];\n defs['EPSG:3785'] = defs['EPSG:3857']; // maintain backward compat, official code is 3857\n defs.GOOGLE = defs['EPSG:3857'];\n defs['EPSG:900913'] = defs['EPSG:3857'];\n defs['EPSG:102113'] = defs['EPSG:3857'];\n}\n","import defs from './defs';\nimport wkt from 'wkt-parser';\nimport projStr from './projString';\nimport match from './match';\nfunction testObj(code){\n return typeof code === 'string';\n}\nfunction testDef(code){\n return code in defs;\n}\nvar codeWords = ['PROJECTEDCRS', 'PROJCRS', 'GEOGCS','GEOCCS','PROJCS','LOCAL_CS', 'GEODCRS', 'GEODETICCRS', 'GEODETICDATUM', 'ENGCRS', 'ENGINEERINGCRS'];\nfunction testWKT(code){\n return codeWords.some(function (word) {\n return code.indexOf(word) > -1;\n });\n}\nvar codes = ['3857', '900913', '3785', '102113'];\nfunction checkMercator(item) {\n var auth = match(item, 'authority');\n if (!auth) {\n return;\n }\n var code = match(auth, 'epsg');\n return code && codes.indexOf(code) > -1;\n}\nfunction checkProjStr(item) {\n var ext = match(item, 'extension');\n if (!ext) {\n return;\n }\n return match(ext, 'proj4');\n}\nfunction testProj(code){\n return code[0] === '+';\n}\nfunction parse(code){\n if (testObj(code)) {\n //check to see if this is a WKT string\n if (testDef(code)) {\n return defs[code];\n }\n if (testWKT(code)) {\n var out = wkt(code);\n // test of spetial case, due to this being a very common and often malformed\n if (checkMercator(out)) {\n return defs['EPSG:3857'];\n }\n var maybeProjStr = checkProjStr(out);\n if (maybeProjStr) {\n return projStr(maybeProjStr);\n }\n return out;\n }\n if (testProj(code)) {\n return projStr(code);\n }\n }else{\n return code;\n }\n}\n\nexport default parse;\n","export default function(destination, source) {\n destination = destination || {};\n var value, property;\n if (!source) {\n return destination;\n }\n for (property in source) {\n value = source[property];\n if (value !== undefined) {\n destination[property] = value;\n }\n }\n return destination;\n}\n","export default function(eccent, sinphi, cosphi) {\n var con = eccent * sinphi;\n return cosphi / (Math.sqrt(1 - con * con));\n}","export default function(x) {\n return x<0 ? -1 : 1;\n}","\nimport {TWO_PI, SPI} from '../constants/values';\nimport sign from './sign';\n\nexport default function(x) {\n return (Math.abs(x) <= SPI) ? x : (x - (sign(x) * TWO_PI));\n}\n","import {HALF_PI} from '../constants/values';\n\nexport default function(eccent, phi, sinphi) {\n var con = eccent * sinphi;\n var com = 0.5 * eccent;\n con = Math.pow(((1 - con) / (1 + con)), com);\n return (Math.tan(0.5 * (HALF_PI - phi)) / con);\n}\n","import {HALF_PI} from '../constants/values';\n\nexport default function(eccent, ts) {\n var eccnth = 0.5 * eccent;\n var con, dphi;\n var phi = HALF_PI - 2 * Math.atan(ts);\n for (var i = 0; i <= 15; i++) {\n con = eccent * Math.sin(phi);\n dphi = HALF_PI - 2 * Math.atan(ts * (Math.pow(((1 - con) / (1 + con)), eccnth))) - phi;\n phi += dphi;\n if (Math.abs(dphi) <= 0.0000000001) {\n return phi;\n }\n }\n //console.log(\"phi2z has NoConvergence\");\n return -9999;\n}\n","export function init() {\n //no-op for longlat\n}\n\nfunction identity(pt) {\n return pt;\n}\nexport {identity as forward};\nexport {identity as inverse};\nexport var names = [\"longlat\", \"identity\"];\nexport default {\n init: init,\n forward: identity,\n inverse: identity,\n names: names\n};\n","import merc from \"./projections/merc\";\nimport longlat from \"./projections/longlat\";\nvar projs = [merc, longlat];\nvar names = {};\nvar projStore = [];\n\nfunction add(proj, i) {\n var len = projStore.length;\n if (!proj.names) {\n console.log(i);\n return true;\n }\n projStore[len] = proj;\n proj.names.forEach(function(n) {\n names[n.toLowerCase()] = len;\n });\n return this;\n}\n\nexport {add};\n\nexport function get(name) {\n if (!name) {\n return false;\n }\n var n = name.toLowerCase();\n if (typeof names[n] !== 'undefined' && projStore[names[n]]) {\n return projStore[names[n]];\n }\n}\n\nexport function start() {\n projs.forEach(add);\n}\nexport default {\n start: start,\n add: add,\n get: get\n};\n","import msfnz from '../common/msfnz';\n\nimport adjust_lon from '../common/adjust_lon';\nimport tsfnz from '../common/tsfnz';\nimport phi2z from '../common/phi2z';\nimport {FORTPI, R2D, EPSLN, HALF_PI} from '../constants/values';\nexport function init() {\n var con = this.b / this.a;\n this.es = 1 - con * con;\n if(!('x0' in this)){\n this.x0 = 0;\n }\n if(!('y0' in this)){\n this.y0 = 0;\n }\n this.e = Math.sqrt(this.es);\n if (this.lat_ts) {\n if (this.sphere) {\n this.k0 = Math.cos(this.lat_ts);\n }\n else {\n this.k0 = msfnz(this.e, Math.sin(this.lat_ts), Math.cos(this.lat_ts));\n }\n }\n else {\n if (!this.k0) {\n if (this.k) {\n this.k0 = this.k;\n }\n else {\n this.k0 = 1;\n }\n }\n }\n}\n\n/* Mercator forward equations--mapping lat,long to x,y\n --------------------------------------------------*/\n\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n // convert to radians\n if (lat * R2D > 90 && lat * R2D < -90 && lon * R2D > 180 && lon * R2D < -180) {\n return null;\n }\n\n var x, y;\n if (Math.abs(Math.abs(lat) - HALF_PI) <= EPSLN) {\n return null;\n }\n else {\n if (this.sphere) {\n x = this.x0 + this.a * this.k0 * adjust_lon(lon - this.long0);\n y = this.y0 + this.a * this.k0 * Math.log(Math.tan(FORTPI + 0.5 * lat));\n }\n else {\n var sinphi = Math.sin(lat);\n var ts = tsfnz(this.e, lat, sinphi);\n x = this.x0 + this.a * this.k0 * adjust_lon(lon - this.long0);\n y = this.y0 - this.a * this.k0 * Math.log(ts);\n }\n p.x = x;\n p.y = y;\n return p;\n }\n}\n\n/* Mercator inverse equations--mapping x,y to lat/long\n --------------------------------------------------*/\nexport function inverse(p) {\n\n var x = p.x - this.x0;\n var y = p.y - this.y0;\n var lon, lat;\n\n if (this.sphere) {\n lat = HALF_PI - 2 * Math.atan(Math.exp(-y / (this.a * this.k0)));\n }\n else {\n var ts = Math.exp(-y / (this.a * this.k0));\n lat = phi2z(this.e, ts);\n if (lat === -9999) {\n return null;\n }\n }\n lon = adjust_lon(this.long0 + x / (this.a * this.k0));\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Mercator\", \"Popular Visualisation Pseudo Mercator\", \"Mercator_1SP\", \"Mercator_Auxiliary_Sphere\", \"merc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","var exports = {};\nexport {exports as default};\nexports.MERIT = {\n a: 6378137.0,\n rf: 298.257,\n ellipseName: \"MERIT 1983\"\n};\n\nexports.SGS85 = {\n a: 6378136.0,\n rf: 298.257,\n ellipseName: \"Soviet Geodetic System 85\"\n};\n\nexports.GRS80 = {\n a: 6378137.0,\n rf: 298.257222101,\n ellipseName: \"GRS 1980(IUGG, 1980)\"\n};\n\nexports.IAU76 = {\n a: 6378140.0,\n rf: 298.257,\n ellipseName: \"IAU 1976\"\n};\n\nexports.airy = {\n a: 6377563.396,\n b: 6356256.910,\n ellipseName: \"Airy 1830\"\n};\n\nexports.APL4 = {\n a: 6378137,\n rf: 298.25,\n ellipseName: \"Appl. Physics. 1965\"\n};\n\nexports.NWL9D = {\n a: 6378145.0,\n rf: 298.25,\n ellipseName: \"Naval Weapons Lab., 1965\"\n};\n\nexports.mod_airy = {\n a: 6377340.189,\n b: 6356034.446,\n ellipseName: \"Modified Airy\"\n};\n\nexports.andrae = {\n a: 6377104.43,\n rf: 300.0,\n ellipseName: \"Andrae 1876 (Den., Iclnd.)\"\n};\n\nexports.aust_SA = {\n a: 6378160.0,\n rf: 298.25,\n ellipseName: \"Australian Natl & S. Amer. 1969\"\n};\n\nexports.GRS67 = {\n a: 6378160.0,\n rf: 298.2471674270,\n ellipseName: \"GRS 67(IUGG 1967)\"\n};\n\nexports.bessel = {\n a: 6377397.155,\n rf: 299.1528128,\n ellipseName: \"Bessel 1841\"\n};\n\nexports.bess_nam = {\n a: 6377483.865,\n rf: 299.1528128,\n ellipseName: \"Bessel 1841 (Namibia)\"\n};\n\nexports.clrk66 = {\n a: 6378206.4,\n b: 6356583.8,\n ellipseName: \"Clarke 1866\"\n};\n\nexports.clrk80 = {\n a: 6378249.145,\n rf: 293.4663,\n ellipseName: \"Clarke 1880 mod.\"\n};\n\nexports.clrk58 = {\n a: 6378293.645208759,\n rf: 294.2606763692654,\n ellipseName: \"Clarke 1858\"\n};\n\nexports.CPM = {\n a: 6375738.7,\n rf: 334.29,\n ellipseName: \"Comm. des Poids et Mesures 1799\"\n};\n\nexports.delmbr = {\n a: 6376428.0,\n rf: 311.5,\n ellipseName: \"Delambre 1810 (Belgium)\"\n};\n\nexports.engelis = {\n a: 6378136.05,\n rf: 298.2566,\n ellipseName: \"Engelis 1985\"\n};\n\nexports.evrst30 = {\n a: 6377276.345,\n rf: 300.8017,\n ellipseName: \"Everest 1830\"\n};\n\nexports.evrst48 = {\n a: 6377304.063,\n rf: 300.8017,\n ellipseName: \"Everest 1948\"\n};\n\nexports.evrst56 = {\n a: 6377301.243,\n rf: 300.8017,\n ellipseName: \"Everest 1956\"\n};\n\nexports.evrst69 = {\n a: 6377295.664,\n rf: 300.8017,\n ellipseName: \"Everest 1969\"\n};\n\nexports.evrstSS = {\n a: 6377298.556,\n rf: 300.8017,\n ellipseName: \"Everest (Sabah & Sarawak)\"\n};\n\nexports.fschr60 = {\n a: 6378166.0,\n rf: 298.3,\n ellipseName: \"Fischer (Mercury Datum) 1960\"\n};\n\nexports.fschr60m = {\n a: 6378155.0,\n rf: 298.3,\n ellipseName: \"Fischer 1960\"\n};\n\nexports.fschr68 = {\n a: 6378150.0,\n rf: 298.3,\n ellipseName: \"Fischer 1968\"\n};\n\nexports.helmert = {\n a: 6378200.0,\n rf: 298.3,\n ellipseName: \"Helmert 1906\"\n};\n\nexports.hough = {\n a: 6378270.0,\n rf: 297.0,\n ellipseName: \"Hough\"\n};\n\nexports.intl = {\n a: 6378388.0,\n rf: 297.0,\n ellipseName: \"International 1909 (Hayford)\"\n};\n\nexports.kaula = {\n a: 6378163.0,\n rf: 298.24,\n ellipseName: \"Kaula 1961\"\n};\n\nexports.lerch = {\n a: 6378139.0,\n rf: 298.257,\n ellipseName: \"Lerch 1979\"\n};\n\nexports.mprts = {\n a: 6397300.0,\n rf: 191.0,\n ellipseName: \"Maupertius 1738\"\n};\n\nexports.new_intl = {\n a: 6378157.5,\n b: 6356772.2,\n ellipseName: \"New International 1967\"\n};\n\nexports.plessis = {\n a: 6376523.0,\n rf: 6355863.0,\n ellipseName: \"Plessis 1817 (France)\"\n};\n\nexports.krass = {\n a: 6378245.0,\n rf: 298.3,\n ellipseName: \"Krassovsky, 1942\"\n};\n\nexports.SEasia = {\n a: 6378155.0,\n b: 6356773.3205,\n ellipseName: \"Southeast Asia\"\n};\n\nexports.walbeck = {\n a: 6376896.0,\n b: 6355834.8467,\n ellipseName: \"Walbeck\"\n};\n\nexports.WGS60 = {\n a: 6378165.0,\n rf: 298.3,\n ellipseName: \"WGS 60\"\n};\n\nexports.WGS66 = {\n a: 6378145.0,\n rf: 298.25,\n ellipseName: \"WGS 66\"\n};\n\nexports.WGS7 = {\n a: 6378135.0,\n rf: 298.26,\n ellipseName: \"WGS 72\"\n};\n\nexport var WGS84 = exports.WGS84 = {\n a: 6378137.0,\n rf: 298.257223563,\n ellipseName: \"WGS 84\"\n};\n\nexports.sphere = {\n a: 6370997.0,\n b: 6370997.0,\n ellipseName: \"Normal Sphere (r=6370997)\"\n};\n","var exports = {};\nexport {exports as default};\nexports.wgs84 = {\n towgs84: \"0,0,0\",\n ellipse: \"WGS84\",\n datumName: \"WGS84\"\n};\n\nexports.ch1903 = {\n towgs84: \"674.374,15.056,405.346\",\n ellipse: \"bessel\",\n datumName: \"swiss\"\n};\n\nexports.ggrs87 = {\n towgs84: \"-199.87,74.79,246.62\",\n ellipse: \"GRS80\",\n datumName: \"Greek_Geodetic_Reference_System_1987\"\n};\n\nexports.nad83 = {\n towgs84: \"0,0,0\",\n ellipse: \"GRS80\",\n datumName: \"North_American_Datum_1983\"\n};\n\nexports.nad27 = {\n nadgrids: \"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat\",\n ellipse: \"clrk66\",\n datumName: \"North_American_Datum_1927\"\n};\n\nexports.potsdam = {\n towgs84: \"598.1,73.7,418.2,0.202,0.045,-2.455,6.7\",\n ellipse: \"bessel\",\n datumName: \"Potsdam Rauenberg 1950 DHDN\"\n};\n\nexports.carthage = {\n towgs84: \"-263.0,6.0,431.0\",\n ellipse: \"clark80\",\n datumName: \"Carthage 1934 Tunisia\"\n};\n\nexports.hermannskogel = {\n towgs84: \"577.326,90.129,463.919,5.137,1.474,5.297,2.4232\",\n ellipse: \"bessel\",\n datumName: \"Hermannskogel\"\n};\n\nexports.osni52 = {\n towgs84: \"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15\",\n ellipse: \"airy\",\n datumName: \"Irish National\"\n};\n\nexports.ire65 = {\n towgs84: \"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15\",\n ellipse: \"mod_airy\",\n datumName: \"Ireland 1965\"\n};\n\nexports.rassadiran = {\n towgs84: \"-133.63,-157.5,-158.62\",\n ellipse: \"intl\",\n datumName: \"Rassadiran\"\n};\n\nexports.nzgd49 = {\n towgs84: \"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993\",\n ellipse: \"intl\",\n datumName: \"New Zealand Geodetic Datum 1949\"\n};\n\nexports.osgb36 = {\n towgs84: \"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894\",\n ellipse: \"airy\",\n datumName: \"Airy 1830\"\n};\n\nexports.s_jtsk = {\n towgs84: \"589,76,480\",\n ellipse: 'bessel',\n datumName: 'S-JTSK (Ferro)'\n};\n\nexports.beduaram = {\n towgs84: '-106,-87,188',\n ellipse: 'clrk80',\n datumName: 'Beduaram'\n};\n\nexports.gunung_segara = {\n towgs84: '-403,684,41',\n ellipse: 'bessel',\n datumName: 'Gunung Segara Jakarta'\n};\n\nexports.rnb72 = {\n towgs84: \"106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1\",\n ellipse: \"intl\",\n datumName: \"Reseau National Belge 1972\"\n};\n","import {PJD_3PARAM, PJD_7PARAM, PJD_GRIDSHIFT, PJD_WGS84, PJD_NODATUM, SEC_TO_RAD} from './constants/values';\n\nfunction datum(datumCode, datum_params, a, b, es, ep2, nadgrids) {\n var out = {};\n\n if (datumCode === undefined || datumCode === 'none') {\n out.datum_type = PJD_NODATUM;\n } else {\n out.datum_type = PJD_WGS84;\n }\n\n if (datum_params) {\n out.datum_params = datum_params.map(parseFloat);\n if (out.datum_params[0] !== 0 || out.datum_params[1] !== 0 || out.datum_params[2] !== 0) {\n out.datum_type = PJD_3PARAM;\n }\n if (out.datum_params.length > 3) {\n if (out.datum_params[3] !== 0 || out.datum_params[4] !== 0 || out.datum_params[5] !== 0 || out.datum_params[6] !== 0) {\n out.datum_type = PJD_7PARAM;\n out.datum_params[3] *= SEC_TO_RAD;\n out.datum_params[4] *= SEC_TO_RAD;\n out.datum_params[5] *= SEC_TO_RAD;\n out.datum_params[6] = (out.datum_params[6] / 1000000.0) + 1.0;\n }\n }\n }\n\n if (nadgrids) {\n out.datum_type = PJD_GRIDSHIFT;\n out.grids = nadgrids;\n }\n out.a = a; //datum object also uses these values\n out.b = b;\n out.es = es;\n out.ep2 = ep2;\n return out;\n}\n\nexport default datum;\n","/**\n * Resources for details of NTv2 file formats:\n * - https://web.archive.org/web/20140127204822if_/http://www.mgs.gov.on.ca:80/stdprodconsume/groups/content/@mgs/@iandit/documents/resourcelist/stel02_047447.pdf\n * - http://mimaka.com/help/gs/html/004_NTV2%20Data%20Format.htm\n */\n\nvar loadedNadgrids = {};\n\n/**\n * Load a binary NTv2 file (.gsb) to a key that can be used in a proj string like +nadgrids=. Pass the NTv2 file\n * as an ArrayBuffer.\n */\nexport default function nadgrid(key, data) {\n var view = new DataView(data);\n var isLittleEndian = detectLittleEndian(view);\n var header = readHeader(view, isLittleEndian);\n if (header.nSubgrids > 1) {\n console.log('Only single NTv2 subgrids are currently supported, subsequent sub grids are ignored');\n }\n var subgrids = readSubgrids(view, header, isLittleEndian);\n var nadgrid = {header: header, subgrids: subgrids};\n loadedNadgrids[key] = nadgrid;\n return nadgrid;\n}\n\n/**\n * Given a proj4 value for nadgrids, return an array of loaded grids\n */\nexport function getNadgrids(nadgrids) {\n // Format details: http://proj.maptools.org/gen_parms.html\n if (nadgrids === undefined) { return null; }\n var grids = nadgrids.split(',');\n return grids.map(parseNadgridString);\n}\n\nfunction parseNadgridString(value) {\n if (value.length === 0) {\n return null;\n }\n var optional = value[0] === '@';\n if (optional) {\n value = value.slice(1);\n }\n if (value === 'null') {\n return {name: 'null', mandatory: !optional, grid: null, isNull: true};\n }\n return {\n name: value,\n mandatory: !optional,\n grid: loadedNadgrids[value] || null,\n isNull: false\n };\n}\n\nfunction secondsToRadians(seconds) {\n return (seconds / 3600) * Math.PI / 180;\n}\n\nfunction detectLittleEndian(view) {\n var nFields = view.getInt32(8, false);\n if (nFields === 11) {\n return false;\n }\n nFields = view.getInt32(8, true);\n if (nFields !== 11) {\n console.warn('Failed to detect nadgrid endian-ness, defaulting to little-endian');\n }\n return true;\n}\n\nfunction readHeader(view, isLittleEndian) {\n return {\n nFields: view.getInt32(8, isLittleEndian),\n nSubgridFields: view.getInt32(24, isLittleEndian),\n nSubgrids: view.getInt32(40, isLittleEndian),\n shiftType: decodeString(view, 56, 56 + 8).trim(),\n fromSemiMajorAxis: view.getFloat64(120, isLittleEndian),\n fromSemiMinorAxis: view.getFloat64(136, isLittleEndian),\n toSemiMajorAxis: view.getFloat64(152, isLittleEndian),\n toSemiMinorAxis: view.getFloat64(168, isLittleEndian),\n };\n}\n\nfunction decodeString(view, start, end) {\n return String.fromCharCode.apply(null, new Uint8Array(view.buffer.slice(start, end)));\n}\n\nfunction readSubgrids(view, header, isLittleEndian) {\n var gridOffset = 176;\n var grids = [];\n for (var i = 0; i < header.nSubgrids; i++) {\n var subHeader = readGridHeader(view, gridOffset, isLittleEndian);\n var nodes = readGridNodes(view, gridOffset, subHeader, isLittleEndian);\n var lngColumnCount = Math.round(\n 1 + (subHeader.upperLongitude - subHeader.lowerLongitude) / subHeader.longitudeInterval);\n var latColumnCount = Math.round(\n 1 + (subHeader.upperLatitude - subHeader.lowerLatitude) / subHeader.latitudeInterval);\n // Proj4 operates on radians whereas the coordinates are in seconds in the grid\n grids.push({\n ll: [secondsToRadians(subHeader.lowerLongitude), secondsToRadians(subHeader.lowerLatitude)],\n del: [secondsToRadians(subHeader.longitudeInterval), secondsToRadians(subHeader.latitudeInterval)],\n lim: [lngColumnCount, latColumnCount],\n count: subHeader.gridNodeCount,\n cvs: mapNodes(nodes)\n });\n }\n return grids;\n}\n\nfunction mapNodes(nodes) {\n return nodes.map(function (r) {return [secondsToRadians(r.longitudeShift), secondsToRadians(r.latitudeShift)];});\n}\n\nfunction readGridHeader(view, offset, isLittleEndian) {\n return {\n name: decodeString(view, offset + 8, offset + 16).trim(),\n parent: decodeString(view, offset + 24, offset + 24 + 8).trim(),\n lowerLatitude: view.getFloat64(offset + 72, isLittleEndian),\n upperLatitude: view.getFloat64(offset + 88, isLittleEndian),\n lowerLongitude: view.getFloat64(offset + 104, isLittleEndian),\n upperLongitude: view.getFloat64(offset + 120, isLittleEndian),\n latitudeInterval: view.getFloat64(offset + 136, isLittleEndian),\n longitudeInterval: view.getFloat64(offset + 152, isLittleEndian),\n gridNodeCount: view.getInt32(offset + 168, isLittleEndian)\n };\n}\n\nfunction readGridNodes(view, offset, gridHeader, isLittleEndian) {\n var nodesOffset = offset + 176;\n var gridRecordLength = 16;\n var gridShiftRecords = [];\n for (var i = 0; i < gridHeader.gridNodeCount; i++) {\n var record = {\n latitudeShift: view.getFloat32(nodesOffset + i * gridRecordLength, isLittleEndian),\n longitudeShift: view.getFloat32(nodesOffset + i * gridRecordLength + 4, isLittleEndian),\n latitudeAccuracy: view.getFloat32(nodesOffset + i * gridRecordLength + 8, isLittleEndian),\n longitudeAccuracy: view.getFloat32(nodesOffset + i * gridRecordLength + 12, isLittleEndian),\n };\n gridShiftRecords.push(record);\n }\n return gridShiftRecords;\n}\n","import parseCode from './parseCode';\nimport extend from './extend';\nimport projections from './projections';\nimport {sphere as dc_sphere, eccentricity as dc_eccentricity} from './deriveConstants';\nimport Datum from './constants/Datum';\nimport datum from './datum';\nimport match from './match';\nimport {getNadgrids} from \"./nadgrid\";\n\nfunction Projection(srsCode,callback) {\n if (!(this instanceof Projection)) {\n return new Projection(srsCode);\n }\n callback = callback || function(error){\n if(error){\n throw error;\n }\n };\n var json = parseCode(srsCode);\n if(typeof json !== 'object'){\n callback(srsCode);\n return;\n }\n var ourProj = Projection.projections.get(json.projName);\n if(!ourProj){\n callback(srsCode);\n return;\n }\n if (json.datumCode && json.datumCode !== 'none') {\n var datumDef = match(Datum, json.datumCode);\n if (datumDef) {\n json.datum_params = json.datum_params || (datumDef.towgs84 ? datumDef.towgs84.split(',') : null);\n json.ellps = datumDef.ellipse;\n json.datumName = datumDef.datumName ? datumDef.datumName : json.datumCode;\n }\n }\n json.k0 = json.k0 || 1.0;\n json.axis = json.axis || 'enu';\n json.ellps = json.ellps || 'wgs84';\n json.lat1 = json.lat1 || json.lat0; // Lambert_Conformal_Conic_1SP, for example, needs this\n\n var sphere_ = dc_sphere(json.a, json.b, json.rf, json.ellps, json.sphere);\n var ecc = dc_eccentricity(sphere_.a, sphere_.b, sphere_.rf, json.R_A);\n var nadgrids = getNadgrids(json.nadgrids);\n var datumObj = json.datum || datum(json.datumCode, json.datum_params, sphere_.a, sphere_.b, ecc.es, ecc.ep2,\n nadgrids);\n\n extend(this, json); // transfer everything over from the projection because we don't know what we'll need\n extend(this, ourProj); // transfer all the methods from the projection\n\n // copy the 4 things over we calculated in deriveConstants.sphere\n this.a = sphere_.a;\n this.b = sphere_.b;\n this.rf = sphere_.rf;\n this.sphere = sphere_.sphere;\n\n // copy the 3 things we calculated in deriveConstants.eccentricity\n this.es = ecc.es;\n this.e = ecc.e;\n this.ep2 = ecc.ep2;\n\n // add in the datum object\n this.datum = datumObj;\n\n // init the projection\n this.init();\n\n // legecy callback from back in the day when it went to spatialreference.org\n callback(null, this);\n\n}\nProjection.projections = projections;\nProjection.projections.start();\nexport default Projection;\n","import {SIXTH, RA4, RA6, EPSLN} from './constants/values';\nimport {default as Ellipsoid, WGS84} from './constants/Ellipsoid';\nimport match from './match';\n\nexport function eccentricity(a, b, rf, R_A) {\n var a2 = a * a; // used in geocentric\n var b2 = b * b; // used in geocentric\n var es = (a2 - b2) / a2; // e ^ 2\n var e = 0;\n if (R_A) {\n a *= 1 - es * (SIXTH + es * (RA4 + es * RA6));\n a2 = a * a;\n es = 0;\n } else {\n e = Math.sqrt(es); // eccentricity\n }\n var ep2 = (a2 - b2) / b2; // used in geocentric\n return {\n es: es,\n e: e,\n ep2: ep2\n };\n}\nexport function sphere(a, b, rf, ellps, sphere) {\n if (!a) { // do we have an ellipsoid?\n var ellipse = match(Ellipsoid, ellps);\n if (!ellipse) {\n ellipse = WGS84;\n }\n a = ellipse.a;\n b = ellipse.b;\n rf = ellipse.rf;\n }\n\n if (rf && !b) {\n b = (1.0 - 1.0 / rf) * a;\n }\n if (rf === 0 || Math.abs(a - b) < EPSLN) {\n sphere = true;\n b = a;\n }\n return {\n a: a,\n b: b,\n rf: rf,\n sphere: sphere\n };\n}\n","'use strict';\nimport {PJD_3PARAM, PJD_7PARAM, HALF_PI} from './constants/values';\nexport function compareDatums(source, dest) {\n if (source.datum_type !== dest.datum_type) {\n return false; // false, datums are not equal\n } else if (source.a !== dest.a || Math.abs(source.es - dest.es) > 0.000000000050) {\n // the tolerance for es is to ensure that GRS80 and WGS84\n // are considered identical\n return false;\n } else if (source.datum_type === PJD_3PARAM) {\n return (source.datum_params[0] === dest.datum_params[0] && source.datum_params[1] === dest.datum_params[1] && source.datum_params[2] === dest.datum_params[2]);\n } else if (source.datum_type === PJD_7PARAM) {\n return (source.datum_params[0] === dest.datum_params[0] && source.datum_params[1] === dest.datum_params[1] && source.datum_params[2] === dest.datum_params[2] && source.datum_params[3] === dest.datum_params[3] && source.datum_params[4] === dest.datum_params[4] && source.datum_params[5] === dest.datum_params[5] && source.datum_params[6] === dest.datum_params[6]);\n } else {\n return true; // datums are equal\n }\n} // cs_compare_datums()\n\n/*\n * The function Convert_Geodetic_To_Geocentric converts geodetic coordinates\n * (latitude, longitude, and height) to geocentric coordinates (X, Y, Z),\n * according to the current ellipsoid parameters.\n *\n * Latitude : Geodetic latitude in radians (input)\n * Longitude : Geodetic longitude in radians (input)\n * Height : Geodetic height, in meters (input)\n * X : Calculated Geocentric X coordinate, in meters (output)\n * Y : Calculated Geocentric Y coordinate, in meters (output)\n * Z : Calculated Geocentric Z coordinate, in meters (output)\n *\n */\nexport function geodeticToGeocentric(p, es, a) {\n var Longitude = p.x;\n var Latitude = p.y;\n var Height = p.z ? p.z : 0; //Z value not always supplied\n\n var Rn; /* Earth radius at location */\n var Sin_Lat; /* Math.sin(Latitude) */\n var Sin2_Lat; /* Square of Math.sin(Latitude) */\n var Cos_Lat; /* Math.cos(Latitude) */\n\n /*\n ** Don't blow up if Latitude is just a little out of the value\n ** range as it may just be a rounding issue. Also removed longitude\n ** test, it should be wrapped by Math.cos() and Math.sin(). NFW for PROJ.4, Sep/2001.\n */\n if (Latitude < -HALF_PI && Latitude > -1.001 * HALF_PI) {\n Latitude = -HALF_PI;\n } else if (Latitude > HALF_PI && Latitude < 1.001 * HALF_PI) {\n Latitude = HALF_PI;\n } else if (Latitude < -HALF_PI) {\n /* Latitude out of range */\n //..reportError('geocent:lat out of range:' + Latitude);\n return { x: -Infinity, y: -Infinity, z: p.z };\n } else if (Latitude > HALF_PI) {\n /* Latitude out of range */\n return { x: Infinity, y: Infinity, z: p.z };\n }\n\n if (Longitude > Math.PI) {\n Longitude -= (2 * Math.PI);\n }\n Sin_Lat = Math.sin(Latitude);\n Cos_Lat = Math.cos(Latitude);\n Sin2_Lat = Sin_Lat * Sin_Lat;\n Rn = a / (Math.sqrt(1.0e0 - es * Sin2_Lat));\n return {\n x: (Rn + Height) * Cos_Lat * Math.cos(Longitude),\n y: (Rn + Height) * Cos_Lat * Math.sin(Longitude),\n z: ((Rn * (1 - es)) + Height) * Sin_Lat\n };\n} // cs_geodetic_to_geocentric()\n\nexport function geocentricToGeodetic(p, es, a, b) {\n /* local defintions and variables */\n /* end-criterium of loop, accuracy of sin(Latitude) */\n var genau = 1e-12;\n var genau2 = (genau * genau);\n var maxiter = 30;\n\n var P; /* distance between semi-minor axis and location */\n var RR; /* distance between center and location */\n var CT; /* sin of geocentric latitude */\n var ST; /* cos of geocentric latitude */\n var RX;\n var RK;\n var RN; /* Earth radius at location */\n var CPHI0; /* cos of start or old geodetic latitude in iterations */\n var SPHI0; /* sin of start or old geodetic latitude in iterations */\n var CPHI; /* cos of searched geodetic latitude */\n var SPHI; /* sin of searched geodetic latitude */\n var SDPHI; /* end-criterium: addition-theorem of sin(Latitude(iter)-Latitude(iter-1)) */\n var iter; /* # of continous iteration, max. 30 is always enough (s.a.) */\n\n var X = p.x;\n var Y = p.y;\n var Z = p.z ? p.z : 0.0; //Z value not always supplied\n var Longitude;\n var Latitude;\n var Height;\n\n P = Math.sqrt(X * X + Y * Y);\n RR = Math.sqrt(X * X + Y * Y + Z * Z);\n\n /* special cases for latitude and longitude */\n if (P / a < genau) {\n\n /* special case, if P=0. (X=0., Y=0.) */\n Longitude = 0.0;\n\n /* if (X,Y,Z)=(0.,0.,0.) then Height becomes semi-minor axis\n * of ellipsoid (=center of mass), Latitude becomes PI/2 */\n if (RR / a < genau) {\n Latitude = HALF_PI;\n Height = -b;\n return {\n x: p.x,\n y: p.y,\n z: p.z\n };\n }\n } else {\n /* ellipsoidal (geodetic) longitude\n * interval: -PI < Longitude <= +PI */\n Longitude = Math.atan2(Y, X);\n }\n\n /* --------------------------------------------------------------\n * Following iterative algorithm was developped by\n * \"Institut for Erdmessung\", University of Hannover, July 1988.\n * Internet: www.ife.uni-hannover.de\n * Iterative computation of CPHI,SPHI and Height.\n * Iteration of CPHI and SPHI to 10**-12 radian resp.\n * 2*10**-7 arcsec.\n * --------------------------------------------------------------\n */\n CT = Z / RR;\n ST = P / RR;\n RX = 1.0 / Math.sqrt(1.0 - es * (2.0 - es) * ST * ST);\n CPHI0 = ST * (1.0 - es) * RX;\n SPHI0 = CT * RX;\n iter = 0;\n\n /* loop to find sin(Latitude) resp. Latitude\n * until |sin(Latitude(iter)-Latitude(iter-1))| < genau */\n do {\n iter++;\n RN = a / Math.sqrt(1.0 - es * SPHI0 * SPHI0);\n\n /* ellipsoidal (geodetic) height */\n Height = P * CPHI0 + Z * SPHI0 - RN * (1.0 - es * SPHI0 * SPHI0);\n\n RK = es * RN / (RN + Height);\n RX = 1.0 / Math.sqrt(1.0 - RK * (2.0 - RK) * ST * ST);\n CPHI = ST * (1.0 - RK) * RX;\n SPHI = CT * RX;\n SDPHI = SPHI * CPHI0 - CPHI * SPHI0;\n CPHI0 = CPHI;\n SPHI0 = SPHI;\n }\n while (SDPHI * SDPHI > genau2 && iter < maxiter);\n\n /* ellipsoidal (geodetic) latitude */\n Latitude = Math.atan(SPHI / Math.abs(CPHI));\n return {\n x: Longitude,\n y: Latitude,\n z: Height\n };\n} // cs_geocentric_to_geodetic()\n\n/****************************************************************/\n// pj_geocentic_to_wgs84( p )\n// p = point to transform in geocentric coordinates (x,y,z)\n\n\n/** point object, nothing fancy, just allows values to be\n passed back and forth by reference rather than by value.\n Other point classes may be used as long as they have\n x and y properties, which will get modified in the transform method.\n*/\nexport function geocentricToWgs84(p, datum_type, datum_params) {\n\n if (datum_type === PJD_3PARAM) {\n // if( x[io] === HUGE_VAL )\n // continue;\n return {\n x: p.x + datum_params[0],\n y: p.y + datum_params[1],\n z: p.z + datum_params[2],\n };\n } else if (datum_type === PJD_7PARAM) {\n var Dx_BF = datum_params[0];\n var Dy_BF = datum_params[1];\n var Dz_BF = datum_params[2];\n var Rx_BF = datum_params[3];\n var Ry_BF = datum_params[4];\n var Rz_BF = datum_params[5];\n var M_BF = datum_params[6];\n // if( x[io] === HUGE_VAL )\n // continue;\n return {\n x: M_BF * (p.x - Rz_BF * p.y + Ry_BF * p.z) + Dx_BF,\n y: M_BF * (Rz_BF * p.x + p.y - Rx_BF * p.z) + Dy_BF,\n z: M_BF * (-Ry_BF * p.x + Rx_BF * p.y + p.z) + Dz_BF\n };\n }\n} // cs_geocentric_to_wgs84\n\n/****************************************************************/\n// pj_geocentic_from_wgs84()\n// coordinate system definition,\n// point to transform in geocentric coordinates (x,y,z)\nexport function geocentricFromWgs84(p, datum_type, datum_params) {\n\n if (datum_type === PJD_3PARAM) {\n //if( x[io] === HUGE_VAL )\n // continue;\n return {\n x: p.x - datum_params[0],\n y: p.y - datum_params[1],\n z: p.z - datum_params[2],\n };\n\n } else if (datum_type === PJD_7PARAM) {\n var Dx_BF = datum_params[0];\n var Dy_BF = datum_params[1];\n var Dz_BF = datum_params[2];\n var Rx_BF = datum_params[3];\n var Ry_BF = datum_params[4];\n var Rz_BF = datum_params[5];\n var M_BF = datum_params[6];\n var x_tmp = (p.x - Dx_BF) / M_BF;\n var y_tmp = (p.y - Dy_BF) / M_BF;\n var z_tmp = (p.z - Dz_BF) / M_BF;\n //if( x[io] === HUGE_VAL )\n // continue;\n\n return {\n x: x_tmp + Rz_BF * y_tmp - Ry_BF * z_tmp,\n y: -Rz_BF * x_tmp + y_tmp + Rx_BF * z_tmp,\n z: Ry_BF * x_tmp - Rx_BF * y_tmp + z_tmp\n };\n } //cs_geocentric_from_wgs84()\n}\n","import {\n PJD_3PARAM,\n PJD_7PARAM,\n PJD_GRIDSHIFT,\n PJD_NODATUM,\n R2D,\n SRS_WGS84_ESQUARED,\n SRS_WGS84_SEMIMAJOR, SRS_WGS84_SEMIMINOR\n} from './constants/values';\n\nimport {geodeticToGeocentric, geocentricToGeodetic, geocentricToWgs84, geocentricFromWgs84, compareDatums} from './datumUtils';\nimport adjust_lon from \"./common/adjust_lon\";\nfunction checkParams(type) {\n return (type === PJD_3PARAM || type === PJD_7PARAM);\n}\n\nexport default function(source, dest, point) {\n // Short cut if the datums are identical.\n if (compareDatums(source, dest)) {\n return point; // in this case, zero is sucess,\n // whereas cs_compare_datums returns 1 to indicate TRUE\n // confusing, should fix this\n }\n\n // Explicitly skip datum transform by setting 'datum=none' as parameter for either source or dest\n if (source.datum_type === PJD_NODATUM || dest.datum_type === PJD_NODATUM) {\n return point;\n }\n\n // If this datum requires grid shifts, then apply it to geodetic coordinates.\n var source_a = source.a;\n var source_es = source.es;\n if (source.datum_type === PJD_GRIDSHIFT) {\n var gridShiftCode = applyGridShift(source, false, point);\n if (gridShiftCode !== 0) {\n return undefined;\n }\n source_a = SRS_WGS84_SEMIMAJOR;\n source_es = SRS_WGS84_ESQUARED;\n }\n\n var dest_a = dest.a;\n var dest_b = dest.b;\n var dest_es = dest.es;\n if (dest.datum_type === PJD_GRIDSHIFT) {\n dest_a = SRS_WGS84_SEMIMAJOR;\n dest_b = SRS_WGS84_SEMIMINOR;\n dest_es = SRS_WGS84_ESQUARED;\n }\n\n // Do we need to go through geocentric coordinates?\n if (source_es === dest_es && source_a === dest_a && !checkParams(source.datum_type) && !checkParams(dest.datum_type)) {\n return point;\n }\n\n // Convert to geocentric coordinates.\n point = geodeticToGeocentric(point, source_es, source_a);\n // Convert between datums\n if (checkParams(source.datum_type)) {\n point = geocentricToWgs84(point, source.datum_type, source.datum_params);\n }\n if (checkParams(dest.datum_type)) {\n point = geocentricFromWgs84(point, dest.datum_type, dest.datum_params);\n }\n point = geocentricToGeodetic(point, dest_es, dest_a, dest_b);\n\n if (dest.datum_type === PJD_GRIDSHIFT) {\n var destGridShiftResult = applyGridShift(dest, true, point);\n if (destGridShiftResult !== 0) {\n return undefined;\n }\n }\n\n return point;\n}\n\nexport function applyGridShift(source, inverse, point) {\n if (source.grids === null || source.grids.length === 0) {\n console.log('Grid shift grids not found');\n return -1;\n }\n var input = {x: -point.x, y: point.y};\n var output = {x: Number.NaN, y: Number.NaN};\n var onlyMandatoryGrids = false;\n var attemptedGrids = [];\n for (var i = 0; i < source.grids.length; i++) {\n var grid = source.grids[i];\n attemptedGrids.push(grid.name);\n if (grid.isNull) {\n output = input;\n break;\n }\n onlyMandatoryGrids = grid.mandatory;\n if (grid.grid === null) {\n if (grid.mandatory) {\n console.log(\"Unable to find mandatory grid '\" + grid.name + \"'\");\n return -1;\n }\n continue;\n }\n var subgrid = grid.grid.subgrids[0];\n // skip tables that don't match our point at all\n var epsilon = (Math.abs(subgrid.del[1]) + Math.abs(subgrid.del[0])) / 10000.0;\n var minX = subgrid.ll[0] - epsilon;\n var minY = subgrid.ll[1] - epsilon;\n var maxX = subgrid.ll[0] + (subgrid.lim[0] - 1) * subgrid.del[0] + epsilon;\n var maxY = subgrid.ll[1] + (subgrid.lim[1] - 1) * subgrid.del[1] + epsilon;\n if (minY > input.y || minX > input.x || maxY < input.y || maxX < input.x ) {\n continue;\n }\n output = applySubgridShift(input, inverse, subgrid);\n if (!isNaN(output.x)) {\n break;\n }\n }\n if (isNaN(output.x)) {\n console.log(\"Failed to find a grid shift table for location '\"+\n -input.x * R2D + \" \" + input.y * R2D + \" tried: '\" + attemptedGrids + \"'\");\n return -1;\n }\n point.x = -output.x;\n point.y = output.y;\n return 0;\n}\n\nfunction applySubgridShift(pin, inverse, ct) {\n var val = {x: Number.NaN, y: Number.NaN};\n if (isNaN(pin.x)) { return val; }\n var tb = {x: pin.x, y: pin.y};\n tb.x -= ct.ll[0];\n tb.y -= ct.ll[1];\n tb.x = adjust_lon(tb.x - Math.PI) + Math.PI;\n var t = nadInterpolate(tb, ct);\n if (inverse) {\n if (isNaN(t.x)) {\n return val;\n }\n t.x = tb.x - t.x;\n t.y = tb.y - t.y;\n var i = 9, tol = 1e-12;\n var dif, del;\n do {\n del = nadInterpolate(t, ct);\n if (isNaN(del.x)) {\n console.log(\"Inverse grid shift iteration failed, presumably at grid edge. Using first approximation.\");\n break;\n }\n dif = {x: tb.x - (del.x + t.x), y: tb.y - (del.y + t.y)};\n t.x += dif.x;\n t.y += dif.y;\n } while (i-- && Math.abs(dif.x) > tol && Math.abs(dif.y) > tol);\n if (i < 0) {\n console.log(\"Inverse grid shift iterator failed to converge.\");\n return val;\n }\n val.x = adjust_lon(t.x + ct.ll[0]);\n val.y = t.y + ct.ll[1];\n } else {\n if (!isNaN(t.x)) {\n val.x = pin.x + t.x;\n val.y = pin.y + t.y;\n }\n }\n return val;\n}\n\nfunction nadInterpolate(pin, ct) {\n var t = {x: pin.x / ct.del[0], y: pin.y / ct.del[1]};\n var indx = {x: Math.floor(t.x), y: Math.floor(t.y)};\n var frct = {x: t.x - 1.0 * indx.x, y: t.y - 1.0 * indx.y};\n var val= {x: Number.NaN, y: Number.NaN};\n var inx;\n if (indx.x < 0 || indx.x >= ct.lim[0]) {\n return val;\n }\n if (indx.y < 0 || indx.y >= ct.lim[1]) {\n return val;\n }\n inx = (indx.y * ct.lim[0]) + indx.x;\n var f00 = {x: ct.cvs[inx][0], y: ct.cvs[inx][1]};\n inx++;\n var f10= {x: ct.cvs[inx][0], y: ct.cvs[inx][1]};\n inx += ct.lim[0];\n var f11 = {x: ct.cvs[inx][0], y: ct.cvs[inx][1]};\n inx--;\n var f01 = {x: ct.cvs[inx][0], y: ct.cvs[inx][1]};\n var m11 = frct.x * frct.y, m10 = frct.x * (1.0 - frct.y),\n m00 = (1.0 - frct.x) * (1.0 - frct.y), m01 = (1.0 - frct.x) * frct.y;\n val.x = (m00 * f00.x + m10 * f10.x + m01 * f01.x + m11 * f11.x);\n val.y = (m00 * f00.y + m10 * f10.y + m01 * f01.y + m11 * f11.y);\n return val;\n}\n","export default function(crs, denorm, point) {\n var xin = point.x,\n yin = point.y,\n zin = point.z || 0.0;\n var v, t, i;\n var out = {};\n for (i = 0; i < 3; i++) {\n if (denorm && i === 2 && point.z === undefined) {\n continue;\n }\n if (i === 0) {\n v = xin;\n if (\"ew\".indexOf(crs.axis[i]) !== -1) {\n t = 'x';\n } else {\n t = 'y';\n }\n\n }\n else if (i === 1) {\n v = yin;\n if (\"ns\".indexOf(crs.axis[i]) !== -1) {\n t = 'y';\n } else {\n t = 'x';\n }\n }\n else {\n v = zin;\n t = 'z';\n }\n switch (crs.axis[i]) {\n case 'e':\n out[t] = v;\n break;\n case 'w':\n out[t] = -v;\n break;\n case 'n':\n out[t] = v;\n break;\n case 's':\n out[t] = -v;\n break;\n case 'u':\n if (point[t] !== undefined) {\n out.z = v;\n }\n break;\n case 'd':\n if (point[t] !== undefined) {\n out.z = -v;\n }\n break;\n default:\n //console.log(\"ERROR: unknow axis (\"+crs.axis[i]+\") - check definition of \"+crs.projName);\n return null;\n }\n }\n return out;\n}\n","export default function (array){\n var out = {\n x: array[0],\n y: array[1]\n };\n if (array.length>2) {\n out.z = array[2];\n }\n if (array.length>3) {\n out.m = array[3];\n }\n return out;\n}","export default function (point) {\n checkCoord(point.x);\n checkCoord(point.y);\n}\nfunction checkCoord(num) {\n if (typeof Number.isFinite === 'function') {\n if (Number.isFinite(num)) {\n return;\n }\n throw new TypeError('coordinates must be finite numbers');\n }\n if (typeof num !== 'number' || num !== num || !isFinite(num)) {\n throw new TypeError('coordinates must be finite numbers');\n }\n}\n","import {D2R, R2D, PJD_3PARAM, PJD_7PARAM} from './constants/values';\nimport datum_transform from './datum_transform';\nimport adjust_axis from './adjust_axis';\nimport proj from './Proj';\nimport toPoint from './common/toPoint';\nimport checkSanity from './checkSanity';\n\nfunction checkNotWGS(source, dest) {\n return ((source.datum.datum_type === PJD_3PARAM || source.datum.datum_type === PJD_7PARAM) && dest.datumCode !== 'WGS84') || ((dest.datum.datum_type === PJD_3PARAM || dest.datum.datum_type === PJD_7PARAM) && source.datumCode !== 'WGS84');\n}\n\nexport default function transform(source, dest, point, enforceAxis) {\n var wgs84;\n if (Array.isArray(point)) {\n point = toPoint(point);\n }\n checkSanity(point);\n // Workaround for datum shifts towgs84, if either source or destination projection is not wgs84\n if (source.datum && dest.datum && checkNotWGS(source, dest)) {\n wgs84 = new proj('WGS84');\n point = transform(source, wgs84, point, enforceAxis);\n source = wgs84;\n }\n // DGR, 2010/11/12\n if (enforceAxis && source.axis !== 'enu') {\n point = adjust_axis(source, false, point);\n }\n // Transform source points to long/lat, if they aren't already.\n if (source.projName === 'longlat') {\n point = {\n x: point.x * D2R,\n y: point.y * D2R,\n z: point.z || 0\n };\n } else {\n if (source.to_meter) {\n point = {\n x: point.x * source.to_meter,\n y: point.y * source.to_meter,\n z: point.z || 0\n };\n }\n point = source.inverse(point); // Convert Cartesian to longlat\n if (!point) {\n return;\n }\n }\n // Adjust for the prime meridian if necessary\n if (source.from_greenwich) {\n point.x += source.from_greenwich;\n }\n\n // Convert datums if needed, and if possible.\n point = datum_transform(source.datum, dest.datum, point);\n if (!point) {\n return;\n }\n\n // Adjust for the prime meridian if necessary\n if (dest.from_greenwich) {\n point = {\n x: point.x - dest.from_greenwich,\n y: point.y,\n z: point.z || 0\n };\n }\n\n if (dest.projName === 'longlat') {\n // convert radians to decimal degrees\n point = {\n x: point.x * R2D,\n y: point.y * R2D,\n z: point.z || 0\n };\n } else { // else project\n point = dest.forward(point);\n if (dest.to_meter) {\n point = {\n x: point.x / dest.to_meter,\n y: point.y / dest.to_meter,\n z: point.z || 0\n };\n }\n }\n\n // DGR, 2010/11/12\n if (enforceAxis && dest.axis !== 'enu') {\n return adjust_axis(dest, true, point);\n }\n\n return point;\n}\n","import proj from './Proj';\nimport transform from './transform';\nvar wgs84 = proj('WGS84');\n\nfunction transformer(from, to, coords, enforceAxis) {\n var transformedArray, out, keys;\n if (Array.isArray(coords)) {\n transformedArray = transform(from, to, coords, enforceAxis) || {x: NaN, y: NaN};\n if (coords.length > 2) {\n if ((typeof from.name !== 'undefined' && from.name === 'geocent') || (typeof to.name !== 'undefined' && to.name === 'geocent')) {\n if (typeof transformedArray.z === 'number') {\n return [transformedArray.x, transformedArray.y, transformedArray.z].concat(coords.splice(3));\n } else {\n return [transformedArray.x, transformedArray.y, coords[2]].concat(coords.splice(3));\n }\n } else {\n return [transformedArray.x, transformedArray.y].concat(coords.splice(2));\n }\n } else {\n return [transformedArray.x, transformedArray.y];\n }\n } else {\n out = transform(from, to, coords, enforceAxis);\n keys = Object.keys(coords);\n if (keys.length === 2) {\n return out;\n }\n keys.forEach(function (key) {\n if ((typeof from.name !== 'undefined' && from.name === 'geocent') || (typeof to.name !== 'undefined' && to.name === 'geocent')) {\n if (key === 'x' || key === 'y' || key === 'z') {\n return;\n }\n } else {\n if (key === 'x' || key === 'y') {\n return;\n }\n }\n out[key] = coords[key];\n });\n return out;\n }\n}\n\nfunction checkProj(item) {\n if (item instanceof proj) {\n return item;\n }\n if (item.oProj) {\n return item.oProj;\n }\n return proj(item);\n}\n\nfunction proj4(fromProj, toProj, coord) {\n fromProj = checkProj(fromProj);\n var single = false;\n var obj;\n if (typeof toProj === 'undefined') {\n toProj = fromProj;\n fromProj = wgs84;\n single = true;\n } else if (typeof toProj.x !== 'undefined' || Array.isArray(toProj)) {\n coord = toProj;\n toProj = fromProj;\n fromProj = wgs84;\n single = true;\n }\n toProj = checkProj(toProj);\n if (coord) {\n return transformer(fromProj, toProj, coord);\n } else {\n obj = {\n forward: function (coords, enforceAxis) {\n return transformer(fromProj, toProj, coords, enforceAxis);\n },\n inverse: function (coords, enforceAxis) {\n return transformer(toProj, fromProj, coords, enforceAxis);\n }\n };\n if (single) {\n obj.oProj = toProj;\n }\n return obj;\n }\n}\nexport default proj4;","\n\n\n/**\n * UTM zones are grouped, and assigned to one of a group of 6\n * sets.\n *\n * {int} @private\n */\nvar NUM_100K_SETS = 6;\n\n/**\n * The column letters (for easting) of the lower left value, per\n * set.\n *\n * {string} @private\n */\nvar SET_ORIGIN_COLUMN_LETTERS = 'AJSAJS';\n\n/**\n * The row letters (for northing) of the lower left value, per\n * set.\n *\n * {string} @private\n */\nvar SET_ORIGIN_ROW_LETTERS = 'AFAFAF';\n\nvar A = 65; // A\nvar I = 73; // I\nvar O = 79; // O\nvar V = 86; // V\nvar Z = 90; // Z\nexport default {\n forward: forward,\n inverse: inverse,\n toPoint: toPoint\n};\n/**\n * Conversion of lat/lon to MGRS.\n *\n * @param {object} ll Object literal with lat and lon properties on a\n * WGS84 ellipsoid.\n * @param {int} accuracy Accuracy in digits (5 for 1 m, 4 for 10 m, 3 for\n * 100 m, 2 for 1000 m or 1 for 10000 m). Optional, default is 5.\n * @return {string} the MGRS string for the given location and accuracy.\n */\nexport function forward(ll, accuracy) {\n accuracy = accuracy || 5; // default accuracy 1m\n return encode(LLtoUTM({\n lat: ll[1],\n lon: ll[0]\n }), accuracy);\n};\n\n/**\n * Conversion of MGRS to lat/lon.\n *\n * @param {string} mgrs MGRS string.\n * @return {array} An array with left (longitude), bottom (latitude), right\n * (longitude) and top (latitude) values in WGS84, representing the\n * bounding box for the provided MGRS reference.\n */\nexport function inverse(mgrs) {\n var bbox = UTMtoLL(decode(mgrs.toUpperCase()));\n if (bbox.lat && bbox.lon) {\n return [bbox.lon, bbox.lat, bbox.lon, bbox.lat];\n }\n return [bbox.left, bbox.bottom, bbox.right, bbox.top];\n};\n\nexport function toPoint(mgrs) {\n var bbox = UTMtoLL(decode(mgrs.toUpperCase()));\n if (bbox.lat && bbox.lon) {\n return [bbox.lon, bbox.lat];\n }\n return [(bbox.left + bbox.right) / 2, (bbox.top + bbox.bottom) / 2];\n};\n/**\n * Conversion from degrees to radians.\n *\n * @private\n * @param {number} deg the angle in degrees.\n * @return {number} the angle in radians.\n */\nfunction degToRad(deg) {\n return (deg * (Math.PI / 180.0));\n}\n\n/**\n * Conversion from radians to degrees.\n *\n * @private\n * @param {number} rad the angle in radians.\n * @return {number} the angle in degrees.\n */\nfunction radToDeg(rad) {\n return (180.0 * (rad / Math.PI));\n}\n\n/**\n * Converts a set of Longitude and Latitude co-ordinates to UTM\n * using the WGS84 ellipsoid.\n *\n * @private\n * @param {object} ll Object literal with lat and lon properties\n * representing the WGS84 coordinate to be converted.\n * @return {object} Object literal containing the UTM value with easting,\n * northing, zoneNumber and zoneLetter properties, and an optional\n * accuracy property in digits. Returns null if the conversion failed.\n */\nfunction LLtoUTM(ll) {\n var Lat = ll.lat;\n var Long = ll.lon;\n var a = 6378137.0; //ellip.radius;\n var eccSquared = 0.00669438; //ellip.eccsq;\n var k0 = 0.9996;\n var LongOrigin;\n var eccPrimeSquared;\n var N, T, C, A, M;\n var LatRad = degToRad(Lat);\n var LongRad = degToRad(Long);\n var LongOriginRad;\n var ZoneNumber;\n // (int)\n ZoneNumber = Math.floor((Long + 180) / 6) + 1;\n\n //Make sure the longitude 180.00 is in Zone 60\n if (Long === 180) {\n ZoneNumber = 60;\n }\n\n // Special zone for Norway\n if (Lat >= 56.0 && Lat < 64.0 && Long >= 3.0 && Long < 12.0) {\n ZoneNumber = 32;\n }\n\n // Special zones for Svalbard\n if (Lat >= 72.0 && Lat < 84.0) {\n if (Long >= 0.0 && Long < 9.0) {\n ZoneNumber = 31;\n }\n else if (Long >= 9.0 && Long < 21.0) {\n ZoneNumber = 33;\n }\n else if (Long >= 21.0 && Long < 33.0) {\n ZoneNumber = 35;\n }\n else if (Long >= 33.0 && Long < 42.0) {\n ZoneNumber = 37;\n }\n }\n\n LongOrigin = (ZoneNumber - 1) * 6 - 180 + 3; //+3 puts origin\n // in middle of\n // zone\n LongOriginRad = degToRad(LongOrigin);\n\n eccPrimeSquared = (eccSquared) / (1 - eccSquared);\n\n N = a / Math.sqrt(1 - eccSquared * Math.sin(LatRad) * Math.sin(LatRad));\n T = Math.tan(LatRad) * Math.tan(LatRad);\n C = eccPrimeSquared * Math.cos(LatRad) * Math.cos(LatRad);\n A = Math.cos(LatRad) * (LongRad - LongOriginRad);\n\n M = a * ((1 - eccSquared / 4 - 3 * eccSquared * eccSquared / 64 - 5 * eccSquared * eccSquared * eccSquared / 256) * LatRad - (3 * eccSquared / 8 + 3 * eccSquared * eccSquared / 32 + 45 * eccSquared * eccSquared * eccSquared / 1024) * Math.sin(2 * LatRad) + (15 * eccSquared * eccSquared / 256 + 45 * eccSquared * eccSquared * eccSquared / 1024) * Math.sin(4 * LatRad) - (35 * eccSquared * eccSquared * eccSquared / 3072) * Math.sin(6 * LatRad));\n\n var UTMEasting = (k0 * N * (A + (1 - T + C) * A * A * A / 6.0 + (5 - 18 * T + T * T + 72 * C - 58 * eccPrimeSquared) * A * A * A * A * A / 120.0) + 500000.0);\n\n var UTMNorthing = (k0 * (M + N * Math.tan(LatRad) * (A * A / 2 + (5 - T + 9 * C + 4 * C * C) * A * A * A * A / 24.0 + (61 - 58 * T + T * T + 600 * C - 330 * eccPrimeSquared) * A * A * A * A * A * A / 720.0)));\n if (Lat < 0.0) {\n UTMNorthing += 10000000.0; //10000000 meter offset for\n // southern hemisphere\n }\n\n return {\n northing: Math.round(UTMNorthing),\n easting: Math.round(UTMEasting),\n zoneNumber: ZoneNumber,\n zoneLetter: getLetterDesignator(Lat)\n };\n}\n\n/**\n * Converts UTM coords to lat/long, using the WGS84 ellipsoid. This is a convenience\n * class where the Zone can be specified as a single string eg.\"60N\" which\n * is then broken down into the ZoneNumber and ZoneLetter.\n *\n * @private\n * @param {object} utm An object literal with northing, easting, zoneNumber\n * and zoneLetter properties. If an optional accuracy property is\n * provided (in meters), a bounding box will be returned instead of\n * latitude and longitude.\n * @return {object} An object literal containing either lat and lon values\n * (if no accuracy was provided), or top, right, bottom and left values\n * for the bounding box calculated according to the provided accuracy.\n * Returns null if the conversion failed.\n */\nfunction UTMtoLL(utm) {\n\n var UTMNorthing = utm.northing;\n var UTMEasting = utm.easting;\n var zoneLetter = utm.zoneLetter;\n var zoneNumber = utm.zoneNumber;\n // check the ZoneNummber is valid\n if (zoneNumber < 0 || zoneNumber > 60) {\n return null;\n }\n\n var k0 = 0.9996;\n var a = 6378137.0; //ellip.radius;\n var eccSquared = 0.00669438; //ellip.eccsq;\n var eccPrimeSquared;\n var e1 = (1 - Math.sqrt(1 - eccSquared)) / (1 + Math.sqrt(1 - eccSquared));\n var N1, T1, C1, R1, D, M;\n var LongOrigin;\n var mu, phi1Rad;\n\n // remove 500,000 meter offset for longitude\n var x = UTMEasting - 500000.0;\n var y = UTMNorthing;\n\n // We must know somehow if we are in the Northern or Southern\n // hemisphere, this is the only time we use the letter So even\n // if the Zone letter isn't exactly correct it should indicate\n // the hemisphere correctly\n if (zoneLetter < 'N') {\n y -= 10000000.0; // remove 10,000,000 meter offset used\n // for southern hemisphere\n }\n\n // There are 60 zones with zone 1 being at West -180 to -174\n LongOrigin = (zoneNumber - 1) * 6 - 180 + 3; // +3 puts origin\n // in middle of\n // zone\n\n eccPrimeSquared = (eccSquared) / (1 - eccSquared);\n\n M = y / k0;\n mu = M / (a * (1 - eccSquared / 4 - 3 * eccSquared * eccSquared / 64 - 5 * eccSquared * eccSquared * eccSquared / 256));\n\n phi1Rad = mu + (3 * e1 / 2 - 27 * e1 * e1 * e1 / 32) * Math.sin(2 * mu) + (21 * e1 * e1 / 16 - 55 * e1 * e1 * e1 * e1 / 32) * Math.sin(4 * mu) + (151 * e1 * e1 * e1 / 96) * Math.sin(6 * mu);\n // double phi1 = ProjMath.radToDeg(phi1Rad);\n\n N1 = a / Math.sqrt(1 - eccSquared * Math.sin(phi1Rad) * Math.sin(phi1Rad));\n T1 = Math.tan(phi1Rad) * Math.tan(phi1Rad);\n C1 = eccPrimeSquared * Math.cos(phi1Rad) * Math.cos(phi1Rad);\n R1 = a * (1 - eccSquared) / Math.pow(1 - eccSquared * Math.sin(phi1Rad) * Math.sin(phi1Rad), 1.5);\n D = x / (N1 * k0);\n\n var lat = phi1Rad - (N1 * Math.tan(phi1Rad) / R1) * (D * D / 2 - (5 + 3 * T1 + 10 * C1 - 4 * C1 * C1 - 9 * eccPrimeSquared) * D * D * D * D / 24 + (61 + 90 * T1 + 298 * C1 + 45 * T1 * T1 - 252 * eccPrimeSquared - 3 * C1 * C1) * D * D * D * D * D * D / 720);\n lat = radToDeg(lat);\n\n var lon = (D - (1 + 2 * T1 + C1) * D * D * D / 6 + (5 - 2 * C1 + 28 * T1 - 3 * C1 * C1 + 8 * eccPrimeSquared + 24 * T1 * T1) * D * D * D * D * D / 120) / Math.cos(phi1Rad);\n lon = LongOrigin + radToDeg(lon);\n\n var result;\n if (utm.accuracy) {\n var topRight = UTMtoLL({\n northing: utm.northing + utm.accuracy,\n easting: utm.easting + utm.accuracy,\n zoneLetter: utm.zoneLetter,\n zoneNumber: utm.zoneNumber\n });\n result = {\n top: topRight.lat,\n right: topRight.lon,\n bottom: lat,\n left: lon\n };\n }\n else {\n result = {\n lat: lat,\n lon: lon\n };\n }\n return result;\n}\n\n/**\n * Calculates the MGRS letter designator for the given latitude.\n *\n * @private\n * @param {number} lat The latitude in WGS84 to get the letter designator\n * for.\n * @return {char} The letter designator.\n */\nfunction getLetterDesignator(lat) {\n //This is here as an error flag to show that the Latitude is\n //outside MGRS limits\n var LetterDesignator = 'Z';\n\n if ((84 >= lat) && (lat >= 72)) {\n LetterDesignator = 'X';\n }\n else if ((72 > lat) && (lat >= 64)) {\n LetterDesignator = 'W';\n }\n else if ((64 > lat) && (lat >= 56)) {\n LetterDesignator = 'V';\n }\n else if ((56 > lat) && (lat >= 48)) {\n LetterDesignator = 'U';\n }\n else if ((48 > lat) && (lat >= 40)) {\n LetterDesignator = 'T';\n }\n else if ((40 > lat) && (lat >= 32)) {\n LetterDesignator = 'S';\n }\n else if ((32 > lat) && (lat >= 24)) {\n LetterDesignator = 'R';\n }\n else if ((24 > lat) && (lat >= 16)) {\n LetterDesignator = 'Q';\n }\n else if ((16 > lat) && (lat >= 8)) {\n LetterDesignator = 'P';\n }\n else if ((8 > lat) && (lat >= 0)) {\n LetterDesignator = 'N';\n }\n else if ((0 > lat) && (lat >= -8)) {\n LetterDesignator = 'M';\n }\n else if ((-8 > lat) && (lat >= -16)) {\n LetterDesignator = 'L';\n }\n else if ((-16 > lat) && (lat >= -24)) {\n LetterDesignator = 'K';\n }\n else if ((-24 > lat) && (lat >= -32)) {\n LetterDesignator = 'J';\n }\n else if ((-32 > lat) && (lat >= -40)) {\n LetterDesignator = 'H';\n }\n else if ((-40 > lat) && (lat >= -48)) {\n LetterDesignator = 'G';\n }\n else if ((-48 > lat) && (lat >= -56)) {\n LetterDesignator = 'F';\n }\n else if ((-56 > lat) && (lat >= -64)) {\n LetterDesignator = 'E';\n }\n else if ((-64 > lat) && (lat >= -72)) {\n LetterDesignator = 'D';\n }\n else if ((-72 > lat) && (lat >= -80)) {\n LetterDesignator = 'C';\n }\n return LetterDesignator;\n}\n\n/**\n * Encodes a UTM location as MGRS string.\n *\n * @private\n * @param {object} utm An object literal with easting, northing,\n * zoneLetter, zoneNumber\n * @param {number} accuracy Accuracy in digits (1-5).\n * @return {string} MGRS string for the given UTM location.\n */\nfunction encode(utm, accuracy) {\n // prepend with leading zeroes\n var seasting = \"00000\" + utm.easting,\n snorthing = \"00000\" + utm.northing;\n\n return utm.zoneNumber + utm.zoneLetter + get100kID(utm.easting, utm.northing, utm.zoneNumber) + seasting.substr(seasting.length - 5, accuracy) + snorthing.substr(snorthing.length - 5, accuracy);\n}\n\n/**\n * Get the two letter 100k designator for a given UTM easting,\n * northing and zone number value.\n *\n * @private\n * @param {number} easting\n * @param {number} northing\n * @param {number} zoneNumber\n * @return the two letter 100k designator for the given UTM location.\n */\nfunction get100kID(easting, northing, zoneNumber) {\n var setParm = get100kSetForZone(zoneNumber);\n var setColumn = Math.floor(easting / 100000);\n var setRow = Math.floor(northing / 100000) % 20;\n return getLetter100kID(setColumn, setRow, setParm);\n}\n\n/**\n * Given a UTM zone number, figure out the MGRS 100K set it is in.\n *\n * @private\n * @param {number} i An UTM zone number.\n * @return {number} the 100k set the UTM zone is in.\n */\nfunction get100kSetForZone(i) {\n var setParm = i % NUM_100K_SETS;\n if (setParm === 0) {\n setParm = NUM_100K_SETS;\n }\n\n return setParm;\n}\n\n/**\n * Get the two-letter MGRS 100k designator given information\n * translated from the UTM northing, easting and zone number.\n *\n * @private\n * @param {number} column the column index as it relates to the MGRS\n * 100k set spreadsheet, created from the UTM easting.\n * Values are 1-8.\n * @param {number} row the row index as it relates to the MGRS 100k set\n * spreadsheet, created from the UTM northing value. Values\n * are from 0-19.\n * @param {number} parm the set block, as it relates to the MGRS 100k set\n * spreadsheet, created from the UTM zone. Values are from\n * 1-60.\n * @return two letter MGRS 100k code.\n */\nfunction getLetter100kID(column, row, parm) {\n // colOrigin and rowOrigin are the letters at the origin of the set\n var index = parm - 1;\n var colOrigin = SET_ORIGIN_COLUMN_LETTERS.charCodeAt(index);\n var rowOrigin = SET_ORIGIN_ROW_LETTERS.charCodeAt(index);\n\n // colInt and rowInt are the letters to build to return\n var colInt = colOrigin + column - 1;\n var rowInt = rowOrigin + row;\n var rollover = false;\n\n if (colInt > Z) {\n colInt = colInt - Z + A - 1;\n rollover = true;\n }\n\n if (colInt === I || (colOrigin < I && colInt > I) || ((colInt > I || colOrigin < I) && rollover)) {\n colInt++;\n }\n\n if (colInt === O || (colOrigin < O && colInt > O) || ((colInt > O || colOrigin < O) && rollover)) {\n colInt++;\n\n if (colInt === I) {\n colInt++;\n }\n }\n\n if (colInt > Z) {\n colInt = colInt - Z + A - 1;\n }\n\n if (rowInt > V) {\n rowInt = rowInt - V + A - 1;\n rollover = true;\n }\n else {\n rollover = false;\n }\n\n if (((rowInt === I) || ((rowOrigin < I) && (rowInt > I))) || (((rowInt > I) || (rowOrigin < I)) && rollover)) {\n rowInt++;\n }\n\n if (((rowInt === O) || ((rowOrigin < O) && (rowInt > O))) || (((rowInt > O) || (rowOrigin < O)) && rollover)) {\n rowInt++;\n\n if (rowInt === I) {\n rowInt++;\n }\n }\n\n if (rowInt > V) {\n rowInt = rowInt - V + A - 1;\n }\n\n var twoLetter = String.fromCharCode(colInt) + String.fromCharCode(rowInt);\n return twoLetter;\n}\n\n/**\n * Decode the UTM parameters from a MGRS string.\n *\n * @private\n * @param {string} mgrsString an UPPERCASE coordinate string is expected.\n * @return {object} An object literal with easting, northing, zoneLetter,\n * zoneNumber and accuracy (in meters) properties.\n */\nfunction decode(mgrsString) {\n\n if (mgrsString && mgrsString.length === 0) {\n throw (\"MGRSPoint coverting from nothing\");\n }\n\n var length = mgrsString.length;\n\n var hunK = null;\n var sb = \"\";\n var testChar;\n var i = 0;\n\n // get Zone number\n while (!(/[A-Z]/).test(testChar = mgrsString.charAt(i))) {\n if (i >= 2) {\n throw (\"MGRSPoint bad conversion from: \" + mgrsString);\n }\n sb += testChar;\n i++;\n }\n\n var zoneNumber = parseInt(sb, 10);\n\n if (i === 0 || i + 3 > length) {\n // A good MGRS string has to be 4-5 digits long,\n // ##AAA/#AAA at least.\n throw (\"MGRSPoint bad conversion from: \" + mgrsString);\n }\n\n var zoneLetter = mgrsString.charAt(i++);\n\n // Should we check the zone letter here? Why not.\n if (zoneLetter <= 'A' || zoneLetter === 'B' || zoneLetter === 'Y' || zoneLetter >= 'Z' || zoneLetter === 'I' || zoneLetter === 'O') {\n throw (\"MGRSPoint zone letter \" + zoneLetter + \" not handled: \" + mgrsString);\n }\n\n hunK = mgrsString.substring(i, i += 2);\n\n var set = get100kSetForZone(zoneNumber);\n\n var east100k = getEastingFromChar(hunK.charAt(0), set);\n var north100k = getNorthingFromChar(hunK.charAt(1), set);\n\n // We have a bug where the northing may be 2000000 too low.\n // How\n // do we know when to roll over?\n\n while (north100k < getMinNorthing(zoneLetter)) {\n north100k += 2000000;\n }\n\n // calculate the char index for easting/northing separator\n var remainder = length - i;\n\n if (remainder % 2 !== 0) {\n throw (\"MGRSPoint has to have an even number \\nof digits after the zone letter and two 100km letters - front \\nhalf for easting meters, second half for \\nnorthing meters\" + mgrsString);\n }\n\n var sep = remainder / 2;\n\n var sepEasting = 0.0;\n var sepNorthing = 0.0;\n var accuracyBonus, sepEastingString, sepNorthingString, easting, northing;\n if (sep > 0) {\n accuracyBonus = 100000.0 / Math.pow(10, sep);\n sepEastingString = mgrsString.substring(i, i + sep);\n sepEasting = parseFloat(sepEastingString) * accuracyBonus;\n sepNorthingString = mgrsString.substring(i + sep);\n sepNorthing = parseFloat(sepNorthingString) * accuracyBonus;\n }\n\n easting = sepEasting + east100k;\n northing = sepNorthing + north100k;\n\n return {\n easting: easting,\n northing: northing,\n zoneLetter: zoneLetter,\n zoneNumber: zoneNumber,\n accuracy: accuracyBonus\n };\n}\n\n/**\n * Given the first letter from a two-letter MGRS 100k zone, and given the\n * MGRS table set for the zone number, figure out the easting value that\n * should be added to the other, secondary easting value.\n *\n * @private\n * @param {char} e The first letter from a two-letter MGRS 100´k zone.\n * @param {number} set The MGRS table set for the zone number.\n * @return {number} The easting value for the given letter and set.\n */\nfunction getEastingFromChar(e, set) {\n // colOrigin is the letter at the origin of the set for the\n // column\n var curCol = SET_ORIGIN_COLUMN_LETTERS.charCodeAt(set - 1);\n var eastingValue = 100000.0;\n var rewindMarker = false;\n\n while (curCol !== e.charCodeAt(0)) {\n curCol++;\n if (curCol === I) {\n curCol++;\n }\n if (curCol === O) {\n curCol++;\n }\n if (curCol > Z) {\n if (rewindMarker) {\n throw (\"Bad character: \" + e);\n }\n curCol = A;\n rewindMarker = true;\n }\n eastingValue += 100000.0;\n }\n\n return eastingValue;\n}\n\n/**\n * Given the second letter from a two-letter MGRS 100k zone, and given the\n * MGRS table set for the zone number, figure out the northing value that\n * should be added to the other, secondary northing value. You have to\n * remember that Northings are determined from the equator, and the vertical\n * cycle of letters mean a 2000000 additional northing meters. This happens\n * approx. every 18 degrees of latitude. This method does *NOT* count any\n * additional northings. You have to figure out how many 2000000 meters need\n * to be added for the zone letter of the MGRS coordinate.\n *\n * @private\n * @param {char} n Second letter of the MGRS 100k zone\n * @param {number} set The MGRS table set number, which is dependent on the\n * UTM zone number.\n * @return {number} The northing value for the given letter and set.\n */\nfunction getNorthingFromChar(n, set) {\n\n if (n > 'V') {\n throw (\"MGRSPoint given invalid Northing \" + n);\n }\n\n // rowOrigin is the letter at the origin of the set for the\n // column\n var curRow = SET_ORIGIN_ROW_LETTERS.charCodeAt(set - 1);\n var northingValue = 0.0;\n var rewindMarker = false;\n\n while (curRow !== n.charCodeAt(0)) {\n curRow++;\n if (curRow === I) {\n curRow++;\n }\n if (curRow === O) {\n curRow++;\n }\n // fixing a bug making whole application hang in this loop\n // when 'n' is a wrong character\n if (curRow > V) {\n if (rewindMarker) { // making sure that this loop ends\n throw (\"Bad character: \" + n);\n }\n curRow = A;\n rewindMarker = true;\n }\n northingValue += 100000.0;\n }\n\n return northingValue;\n}\n\n/**\n * The function getMinNorthing returns the minimum northing value of a MGRS\n * zone.\n *\n * Ported from Geotrans' c Lattitude_Band_Value structure table.\n *\n * @private\n * @param {char} zoneLetter The MGRS zone to get the min northing for.\n * @return {number}\n */\nfunction getMinNorthing(zoneLetter) {\n var northing;\n switch (zoneLetter) {\n case 'C':\n northing = 1100000.0;\n break;\n case 'D':\n northing = 2000000.0;\n break;\n case 'E':\n northing = 2800000.0;\n break;\n case 'F':\n northing = 3700000.0;\n break;\n case 'G':\n northing = 4600000.0;\n break;\n case 'H':\n northing = 5500000.0;\n break;\n case 'J':\n northing = 6400000.0;\n break;\n case 'K':\n northing = 7300000.0;\n break;\n case 'L':\n northing = 8200000.0;\n break;\n case 'M':\n northing = 9100000.0;\n break;\n case 'N':\n northing = 0.0;\n break;\n case 'P':\n northing = 800000.0;\n break;\n case 'Q':\n northing = 1700000.0;\n break;\n case 'R':\n northing = 2600000.0;\n break;\n case 'S':\n northing = 3500000.0;\n break;\n case 'T':\n northing = 4400000.0;\n break;\n case 'U':\n northing = 5300000.0;\n break;\n case 'V':\n northing = 6200000.0;\n break;\n case 'W':\n northing = 7000000.0;\n break;\n case 'X':\n northing = 7900000.0;\n break;\n default:\n northing = -1.0;\n }\n if (northing >= 0.0) {\n return northing;\n }\n else {\n throw (\"Invalid zone letter: \" + zoneLetter);\n }\n\n}\n","import {toPoint, forward} from 'mgrs';\n\nfunction Point(x, y, z) {\n if (!(this instanceof Point)) {\n return new Point(x, y, z);\n }\n if (Array.isArray(x)) {\n this.x = x[0];\n this.y = x[1];\n this.z = x[2] || 0.0;\n } else if(typeof x === 'object') {\n this.x = x.x;\n this.y = x.y;\n this.z = x.z || 0.0;\n } else if (typeof x === 'string' && typeof y === 'undefined') {\n var coords = x.split(',');\n this.x = parseFloat(coords[0], 10);\n this.y = parseFloat(coords[1], 10);\n this.z = parseFloat(coords[2], 10) || 0.0;\n } else {\n this.x = x;\n this.y = y;\n this.z = z || 0.0;\n }\n console.warn('proj4.Point will be removed in version 3, use proj4.toPoint');\n}\n\nPoint.fromMGRS = function(mgrsStr) {\n return new Point(toPoint(mgrsStr));\n};\nPoint.prototype.toMGRS = function(accuracy) {\n return forward([this.x, this.y], accuracy);\n};\nexport default Point;\n","var C00 = 1;\nvar C02 = 0.25;\nvar C04 = 0.046875;\nvar C06 = 0.01953125;\nvar C08 = 0.01068115234375;\nvar C22 = 0.75;\nvar C44 = 0.46875;\nvar C46 = 0.01302083333333333333;\nvar C48 = 0.00712076822916666666;\nvar C66 = 0.36458333333333333333;\nvar C68 = 0.00569661458333333333;\nvar C88 = 0.3076171875;\n\nexport default function(es) {\n var en = [];\n en[0] = C00 - es * (C02 + es * (C04 + es * (C06 + es * C08)));\n en[1] = es * (C22 - es * (C04 + es * (C06 + es * C08)));\n var t = es * es;\n en[2] = t * (C44 - es * (C46 + es * C48));\n t *= es;\n en[3] = t * (C66 - es * C68);\n en[4] = t * es * C88;\n return en;\n}","export default function(phi, sphi, cphi, en) {\n cphi *= sphi;\n sphi *= sphi;\n return (en[0] * phi - cphi * (en[1] + sphi * (en[2] + sphi * (en[3] + sphi * en[4]))));\n}","import pj_mlfn from \"./pj_mlfn\";\nimport {EPSLN} from '../constants/values';\n\nvar MAX_ITER = 20;\n\nexport default function(arg, es, en) {\n var k = 1 / (1 - es);\n var phi = arg;\n for (var i = MAX_ITER; i; --i) { /* rarely goes over 2 iterations */\n var s = Math.sin(phi);\n var t = 1 - es * s * s;\n //t = this.pj_mlfn(phi, s, Math.cos(phi), en) - arg;\n //phi -= t * (t * Math.sqrt(t)) * k;\n t = (pj_mlfn(phi, s, Math.cos(phi), en) - arg) * (t * Math.sqrt(t)) * k;\n phi -= t;\n if (Math.abs(t) < EPSLN) {\n return phi;\n }\n }\n //..reportError(\"cass:pj_inv_mlfn: Convergence error\");\n return phi;\n}\n","// Heavily based on this tmerc projection implementation\n// https://github.com/mbloch/mapshaper-proj/blob/master/src/projections/tmerc.js\n\nimport pj_enfn from '../common/pj_enfn';\nimport pj_mlfn from '../common/pj_mlfn';\nimport pj_inv_mlfn from '../common/pj_inv_mlfn';\nimport adjust_lon from '../common/adjust_lon';\n\nimport {EPSLN, HALF_PI} from '../constants/values';\nimport sign from '../common/sign';\n\nexport function init() {\n this.x0 = this.x0 !== undefined ? this.x0 : 0;\n this.y0 = this.y0 !== undefined ? this.y0 : 0;\n this.long0 = this.long0 !== undefined ? this.long0 : 0;\n this.lat0 = this.lat0 !== undefined ? this.lat0 : 0;\n\n if (this.es) {\n this.en = pj_enfn(this.es);\n this.ml0 = pj_mlfn(this.lat0, Math.sin(this.lat0), Math.cos(this.lat0), this.en);\n }\n}\n\n/**\n Transverse Mercator Forward - long/lat to x/y\n long/lat in radians\n */\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n\n var delta_lon = adjust_lon(lon - this.long0);\n var con;\n var x, y;\n var sin_phi = Math.sin(lat);\n var cos_phi = Math.cos(lat);\n\n if (!this.es) {\n var b = cos_phi * Math.sin(delta_lon);\n\n if ((Math.abs(Math.abs(b) - 1)) < EPSLN) {\n return (93);\n }\n else {\n x = 0.5 * this.a * this.k0 * Math.log((1 + b) / (1 - b)) + this.x0;\n y = cos_phi * Math.cos(delta_lon) / Math.sqrt(1 - Math.pow(b, 2));\n b = Math.abs(y);\n\n if (b >= 1) {\n if ((b - 1) > EPSLN) {\n return (93);\n }\n else {\n y = 0;\n }\n }\n else {\n y = Math.acos(y);\n }\n\n if (lat < 0) {\n y = -y;\n }\n\n y = this.a * this.k0 * (y - this.lat0) + this.y0;\n }\n }\n else {\n var al = cos_phi * delta_lon;\n var als = Math.pow(al, 2);\n var c = this.ep2 * Math.pow(cos_phi, 2);\n var cs = Math.pow(c, 2);\n var tq = Math.abs(cos_phi) > EPSLN ? Math.tan(lat) : 0;\n var t = Math.pow(tq, 2);\n var ts = Math.pow(t, 2);\n con = 1 - this.es * Math.pow(sin_phi, 2);\n al = al / Math.sqrt(con);\n var ml = pj_mlfn(lat, sin_phi, cos_phi, this.en);\n\n x = this.a * (this.k0 * al * (1 +\n als / 6 * (1 - t + c +\n als / 20 * (5 - 18 * t + ts + 14 * c - 58 * t * c +\n als / 42 * (61 + 179 * ts - ts * t - 479 * t))))) +\n this.x0;\n\n y = this.a * (this.k0 * (ml - this.ml0 +\n sin_phi * delta_lon * al / 2 * (1 +\n als / 12 * (5 - t + 9 * c + 4 * cs +\n als / 30 * (61 + ts - 58 * t + 270 * c - 330 * t * c +\n als / 56 * (1385 + 543 * ts - ts * t - 3111 * t)))))) +\n this.y0;\n }\n\n p.x = x;\n p.y = y;\n\n return p;\n}\n\n/**\n Transverse Mercator Inverse - x/y to long/lat\n */\nexport function inverse(p) {\n var con, phi;\n var lat, lon;\n var x = (p.x - this.x0) * (1 / this.a);\n var y = (p.y - this.y0) * (1 / this.a);\n\n if (!this.es) {\n var f = Math.exp(x / this.k0);\n var g = 0.5 * (f - 1 / f);\n var temp = this.lat0 + y / this.k0;\n var h = Math.cos(temp);\n con = Math.sqrt((1 - Math.pow(h, 2)) / (1 + Math.pow(g, 2)));\n lat = Math.asin(con);\n\n if (y < 0) {\n lat = -lat;\n }\n\n if ((g === 0) && (h === 0)) {\n lon = 0;\n }\n else {\n lon = adjust_lon(Math.atan2(g, h) + this.long0);\n }\n }\n else { // ellipsoidal form\n con = this.ml0 + y / this.k0;\n phi = pj_inv_mlfn(con, this.es, this.en);\n\n if (Math.abs(phi) < HALF_PI) {\n var sin_phi = Math.sin(phi);\n var cos_phi = Math.cos(phi);\n var tan_phi = Math.abs(cos_phi) > EPSLN ? Math.tan(phi) : 0;\n var c = this.ep2 * Math.pow(cos_phi, 2);\n var cs = Math.pow(c, 2);\n var t = Math.pow(tan_phi, 2);\n var ts = Math.pow(t, 2);\n con = 1 - this.es * Math.pow(sin_phi, 2);\n var d = x * Math.sqrt(con) / this.k0;\n var ds = Math.pow(d, 2);\n con = con * tan_phi;\n\n lat = phi - (con * ds / (1 - this.es)) * 0.5 * (1 -\n ds / 12 * (5 + 3 * t - 9 * c * t + c - 4 * cs -\n ds / 30 * (61 + 90 * t - 252 * c * t + 45 * ts + 46 * c -\n ds / 56 * (1385 + 3633 * t + 4095 * ts + 1574 * ts * t))));\n\n lon = adjust_lon(this.long0 + (d * (1 -\n ds / 6 * (1 + 2 * t + c -\n ds / 20 * (5 + 28 * t + 24 * ts + 8 * c * t + 6 * c -\n ds / 42 * (61 + 662 * t + 1320 * ts + 720 * ts * t)))) / cos_phi));\n }\n else {\n lat = HALF_PI * sign(y);\n lon = 0;\n }\n }\n\n p.x = lon;\n p.y = lat;\n\n return p;\n}\n\nexport var names = [\"Fast_Transverse_Mercator\", \"Fast Transverse Mercator\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","export default function(x) {\n var r = Math.exp(x);\n r = (r - 1 / r) / 2;\n return r;\n}","export default function(x, y) {\n x = Math.abs(x);\n y = Math.abs(y);\n var a = Math.max(x, y);\n var b = Math.min(x, y) / (a ? a : 1);\n\n return a * Math.sqrt(1 + Math.pow(b, 2));\n}\n","import hypot from './hypot';\nimport log1py from './log1py';\n\nexport default function(x) {\n var y = Math.abs(x);\n y = log1py(y * (1 + y / (hypot(1, y) + 1)));\n\n return x < 0 ? -y : y;\n}\n","export default function(x) {\n var y = 1 + x;\n var z = y - 1;\n\n return z === 0 ? x : x * Math.log(y) / z;\n}\n","export default function(pp, B) {\n var cos_2B = 2 * Math.cos(2 * B);\n var i = pp.length - 1;\n var h1 = pp[i];\n var h2 = 0;\n var h;\n\n while (--i >= 0) {\n h = -h2 + cos_2B * h1 + pp[i];\n h2 = h1;\n h1 = h;\n }\n\n return (B + h * Math.sin(2 * B));\n}\n","import sinh from './sinh';\nimport cosh from './cosh';\n\nexport default function(pp, arg_r, arg_i) {\n var sin_arg_r = Math.sin(arg_r);\n var cos_arg_r = Math.cos(arg_r);\n var sinh_arg_i = sinh(arg_i);\n var cosh_arg_i = cosh(arg_i);\n var r = 2 * cos_arg_r * cosh_arg_i;\n var i = -2 * sin_arg_r * sinh_arg_i;\n var j = pp.length - 1;\n var hr = pp[j];\n var hi1 = 0;\n var hr1 = 0;\n var hi = 0;\n var hr2;\n var hi2;\n\n while (--j >= 0) {\n hr2 = hr1;\n hi2 = hi1;\n hr1 = hr;\n hi1 = hi;\n hr = -hr2 + r * hr1 - i * hi1 + pp[j];\n hi = -hi2 + i * hr1 + r * hi1;\n }\n\n r = sin_arg_r * cosh_arg_i;\n i = cos_arg_r * sinh_arg_i;\n\n return [r * hr - i * hi, r * hi + i * hr];\n}\n","export default function(x) {\n var r = Math.exp(x);\n r = (r + 1 / r) / 2;\n return r;\n}","// Heavily based on this etmerc projection implementation\n// https://github.com/mbloch/mapshaper-proj/blob/master/src/projections/etmerc.js\n\nimport tmerc from '../projections/tmerc';\nimport sinh from '../common/sinh';\nimport hypot from '../common/hypot';\nimport asinhy from '../common/asinhy';\nimport gatg from '../common/gatg';\nimport clens from '../common/clens';\nimport clens_cmplx from '../common/clens_cmplx';\nimport adjust_lon from '../common/adjust_lon';\n\nexport function init() {\n if (!this.approx && (isNaN(this.es) || this.es <= 0)) {\n throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION[\"Fast_Transverse_Mercator\"] in the WKT.');\n }\n if (this.approx) {\n // When '+approx' is set, use tmerc instead\n tmerc.init.apply(this);\n this.forward = tmerc.forward;\n this.inverse = tmerc.inverse;\n }\n\n this.x0 = this.x0 !== undefined ? this.x0 : 0;\n this.y0 = this.y0 !== undefined ? this.y0 : 0;\n this.long0 = this.long0 !== undefined ? this.long0 : 0;\n this.lat0 = this.lat0 !== undefined ? this.lat0 : 0;\n\n this.cgb = [];\n this.cbg = [];\n this.utg = [];\n this.gtu = [];\n\n var f = this.es / (1 + Math.sqrt(1 - this.es));\n var n = f / (2 - f);\n var np = n;\n\n this.cgb[0] = n * (2 + n * (-2 / 3 + n * (-2 + n * (116 / 45 + n * (26 / 45 + n * (-2854 / 675 ))))));\n this.cbg[0] = n * (-2 + n * ( 2 / 3 + n * ( 4 / 3 + n * (-82 / 45 + n * (32 / 45 + n * (4642 / 4725))))));\n\n np = np * n;\n this.cgb[1] = np * (7 / 3 + n * (-8 / 5 + n * (-227 / 45 + n * (2704 / 315 + n * (2323 / 945)))));\n this.cbg[1] = np * (5 / 3 + n * (-16 / 15 + n * ( -13 / 9 + n * (904 / 315 + n * (-1522 / 945)))));\n\n np = np * n;\n this.cgb[2] = np * (56 / 15 + n * (-136 / 35 + n * (-1262 / 105 + n * (73814 / 2835))));\n this.cbg[2] = np * (-26 / 15 + n * (34 / 21 + n * (8 / 5 + n * (-12686 / 2835))));\n\n np = np * n;\n this.cgb[3] = np * (4279 / 630 + n * (-332 / 35 + n * (-399572 / 14175)));\n this.cbg[3] = np * (1237 / 630 + n * (-12 / 5 + n * ( -24832 / 14175)));\n\n np = np * n;\n this.cgb[4] = np * (4174 / 315 + n * (-144838 / 6237));\n this.cbg[4] = np * (-734 / 315 + n * (109598 / 31185));\n\n np = np * n;\n this.cgb[5] = np * (601676 / 22275);\n this.cbg[5] = np * (444337 / 155925);\n\n np = Math.pow(n, 2);\n this.Qn = this.k0 / (1 + n) * (1 + np * (1 / 4 + np * (1 / 64 + np / 256)));\n\n this.utg[0] = n * (-0.5 + n * ( 2 / 3 + n * (-37 / 96 + n * ( 1 / 360 + n * (81 / 512 + n * (-96199 / 604800))))));\n this.gtu[0] = n * (0.5 + n * (-2 / 3 + n * (5 / 16 + n * (41 / 180 + n * (-127 / 288 + n * (7891 / 37800))))));\n\n this.utg[1] = np * (-1 / 48 + n * (-1 / 15 + n * (437 / 1440 + n * (-46 / 105 + n * (1118711 / 3870720)))));\n this.gtu[1] = np * (13 / 48 + n * (-3 / 5 + n * (557 / 1440 + n * (281 / 630 + n * (-1983433 / 1935360)))));\n\n np = np * n;\n this.utg[2] = np * (-17 / 480 + n * (37 / 840 + n * (209 / 4480 + n * (-5569 / 90720 ))));\n this.gtu[2] = np * (61 / 240 + n * (-103 / 140 + n * (15061 / 26880 + n * (167603 / 181440))));\n\n np = np * n;\n this.utg[3] = np * (-4397 / 161280 + n * (11 / 504 + n * (830251 / 7257600)));\n this.gtu[3] = np * (49561 / 161280 + n * (-179 / 168 + n * (6601661 / 7257600)));\n\n np = np * n;\n this.utg[4] = np * (-4583 / 161280 + n * (108847 / 3991680));\n this.gtu[4] = np * (34729 / 80640 + n * (-3418889 / 1995840));\n\n np = np * n;\n this.utg[5] = np * (-20648693 / 638668800);\n this.gtu[5] = np * (212378941 / 319334400);\n\n var Z = gatg(this.cbg, this.lat0);\n this.Zb = -this.Qn * (Z + clens(this.gtu, 2 * Z));\n}\n\nexport function forward(p) {\n var Ce = adjust_lon(p.x - this.long0);\n var Cn = p.y;\n\n Cn = gatg(this.cbg, Cn);\n var sin_Cn = Math.sin(Cn);\n var cos_Cn = Math.cos(Cn);\n var sin_Ce = Math.sin(Ce);\n var cos_Ce = Math.cos(Ce);\n\n Cn = Math.atan2(sin_Cn, cos_Ce * cos_Cn);\n Ce = Math.atan2(sin_Ce * cos_Cn, hypot(sin_Cn, cos_Cn * cos_Ce));\n Ce = asinhy(Math.tan(Ce));\n\n var tmp = clens_cmplx(this.gtu, 2 * Cn, 2 * Ce);\n\n Cn = Cn + tmp[0];\n Ce = Ce + tmp[1];\n\n var x;\n var y;\n\n if (Math.abs(Ce) <= 2.623395162778) {\n x = this.a * (this.Qn * Ce) + this.x0;\n y = this.a * (this.Qn * Cn + this.Zb) + this.y0;\n }\n else {\n x = Infinity;\n y = Infinity;\n }\n\n p.x = x;\n p.y = y;\n\n return p;\n}\n\nexport function inverse(p) {\n var Ce = (p.x - this.x0) * (1 / this.a);\n var Cn = (p.y - this.y0) * (1 / this.a);\n\n Cn = (Cn - this.Zb) / this.Qn;\n Ce = Ce / this.Qn;\n\n var lon;\n var lat;\n\n if (Math.abs(Ce) <= 2.623395162778) {\n var tmp = clens_cmplx(this.utg, 2 * Cn, 2 * Ce);\n\n Cn = Cn + tmp[0];\n Ce = Ce + tmp[1];\n Ce = Math.atan(sinh(Ce));\n\n var sin_Cn = Math.sin(Cn);\n var cos_Cn = Math.cos(Cn);\n var sin_Ce = Math.sin(Ce);\n var cos_Ce = Math.cos(Ce);\n\n Cn = Math.atan2(sin_Cn * cos_Ce, hypot(sin_Ce, cos_Ce * cos_Cn));\n Ce = Math.atan2(sin_Ce, cos_Ce * cos_Cn);\n\n lon = adjust_lon(Ce + this.long0);\n lat = gatg(this.cgb, Cn);\n }\n else {\n lon = Infinity;\n lat = Infinity;\n }\n\n p.x = lon;\n p.y = lat;\n\n return p;\n}\n\nexport var names = [\"Extended_Transverse_Mercator\", \"Extended Transverse Mercator\", \"etmerc\", \"Transverse_Mercator\", \"Transverse Mercator\", \"tmerc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","export default function(pp, arg_r) {\n var r = 2 * Math.cos(arg_r);\n var i = pp.length - 1;\n var hr1 = pp[i];\n var hr2 = 0;\n var hr;\n\n while (--i >= 0) {\n hr = -hr2 + r * hr1 + pp[i];\n hr2 = hr1;\n hr1 = hr;\n }\n\n return Math.sin(arg_r) * hr;\n}\n","import adjust_zone from '../common/adjust_zone';\nimport etmerc from './etmerc';\nexport var dependsOn = 'etmerc';\nimport {D2R} from '../constants/values';\n\n\nexport function init() {\n var zone = adjust_zone(this.zone, this.long0);\n if (zone === undefined) {\n throw new Error('unknown utm zone');\n }\n this.lat0 = 0;\n this.long0 = ((6 * Math.abs(zone)) - 183) * D2R;\n this.x0 = 500000;\n this.y0 = this.utmSouth ? 10000000 : 0;\n this.k0 = 0.9996;\n\n etmerc.init.apply(this);\n this.forward = etmerc.forward;\n this.inverse = etmerc.inverse;\n}\n\nexport var names = [\"Universal Transverse Mercator System\", \"utm\"];\nexport default {\n init: init,\n names: names,\n dependsOn: dependsOn\n};\n","import adjust_lon from './adjust_lon';\n\nexport default function(zone, lon) {\n if (zone === undefined) {\n zone = Math.floor((adjust_lon(lon) + Math.PI) * 30 / Math.PI) + 1;\n\n if (zone < 0) {\n return 0;\n } else if (zone > 60) {\n return 60;\n }\n }\n return zone;\n}\n","export default function(esinp, exp) {\n return (Math.pow((1 - esinp) / (1 + esinp), exp));\n}","import srat from '../common/srat';\nvar MAX_ITER = 20;\nimport {HALF_PI, FORTPI} from '../constants/values';\n\nexport function init() {\n var sphi = Math.sin(this.lat0);\n var cphi = Math.cos(this.lat0);\n cphi *= cphi;\n this.rc = Math.sqrt(1 - this.es) / (1 - this.es * sphi * sphi);\n this.C = Math.sqrt(1 + this.es * cphi * cphi / (1 - this.es));\n this.phic0 = Math.asin(sphi / this.C);\n this.ratexp = 0.5 * this.C * this.e;\n this.K = Math.tan(0.5 * this.phic0 + FORTPI) / (Math.pow(Math.tan(0.5 * this.lat0 + FORTPI), this.C) * srat(this.e * sphi, this.ratexp));\n}\n\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n\n p.y = 2 * Math.atan(this.K * Math.pow(Math.tan(0.5 * lat + FORTPI), this.C) * srat(this.e * Math.sin(lat), this.ratexp)) - HALF_PI;\n p.x = this.C * lon;\n return p;\n}\n\nexport function inverse(p) {\n var DEL_TOL = 1e-14;\n var lon = p.x / this.C;\n var lat = p.y;\n var num = Math.pow(Math.tan(0.5 * lat + FORTPI) / this.K, 1 / this.C);\n for (var i = MAX_ITER; i > 0; --i) {\n lat = 2 * Math.atan(num * srat(this.e * Math.sin(p.y), - 0.5 * this.e)) - HALF_PI;\n if (Math.abs(lat - p.y) < DEL_TOL) {\n break;\n }\n p.y = lat;\n }\n /* convergence failed */\n if (!i) {\n return null;\n }\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"gauss\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import gauss from './gauss';\nimport adjust_lon from '../common/adjust_lon';\n\nexport function init() {\n gauss.init.apply(this);\n if (!this.rc) {\n return;\n }\n this.sinc0 = Math.sin(this.phic0);\n this.cosc0 = Math.cos(this.phic0);\n this.R2 = 2 * this.rc;\n if (!this.title) {\n this.title = \"Oblique Stereographic Alternative\";\n }\n}\n\nexport function forward(p) {\n var sinc, cosc, cosl, k;\n p.x = adjust_lon(p.x - this.long0);\n gauss.forward.apply(this, [p]);\n sinc = Math.sin(p.y);\n cosc = Math.cos(p.y);\n cosl = Math.cos(p.x);\n k = this.k0 * this.R2 / (1 + this.sinc0 * sinc + this.cosc0 * cosc * cosl);\n p.x = k * cosc * Math.sin(p.x);\n p.y = k * (this.cosc0 * sinc - this.sinc0 * cosc * cosl);\n p.x = this.a * p.x + this.x0;\n p.y = this.a * p.y + this.y0;\n return p;\n}\n\nexport function inverse(p) {\n var sinc, cosc, lon, lat, rho;\n p.x = (p.x - this.x0) / this.a;\n p.y = (p.y - this.y0) / this.a;\n\n p.x /= this.k0;\n p.y /= this.k0;\n if ((rho = Math.sqrt(p.x * p.x + p.y * p.y))) {\n var c = 2 * Math.atan2(rho, this.R2);\n sinc = Math.sin(c);\n cosc = Math.cos(c);\n lat = Math.asin(cosc * this.sinc0 + p.y * sinc * this.cosc0 / rho);\n lon = Math.atan2(p.x * sinc, rho * this.cosc0 * cosc - p.y * this.sinc0 * sinc);\n }\n else {\n lat = this.phic0;\n lon = 0;\n }\n\n p.x = lon;\n p.y = lat;\n gauss.inverse.apply(this, [p]);\n p.x = adjust_lon(p.x + this.long0);\n return p;\n}\n\nexport var names = [\"Stereographic_North_Pole\", \"Oblique_Stereographic\", \"Polar_Stereographic\", \"sterea\",\"Oblique Stereographic Alternative\",\"Double_Stereographic\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import {EPSLN, HALF_PI} from '../constants/values';\n\nimport sign from '../common/sign';\nimport msfnz from '../common/msfnz';\nimport tsfnz from '../common/tsfnz';\nimport phi2z from '../common/phi2z';\nimport adjust_lon from '../common/adjust_lon';\n\nexport function ssfn_(phit, sinphi, eccen) {\n sinphi *= eccen;\n return (Math.tan(0.5 * (HALF_PI + phit)) * Math.pow((1 - sinphi) / (1 + sinphi), 0.5 * eccen));\n}\n\nexport function init() {\n this.coslat0 = Math.cos(this.lat0);\n this.sinlat0 = Math.sin(this.lat0);\n if (this.sphere) {\n if (this.k0 === 1 && !isNaN(this.lat_ts) && Math.abs(this.coslat0) <= EPSLN) {\n this.k0 = 0.5 * (1 + sign(this.lat0) * Math.sin(this.lat_ts));\n }\n }\n else {\n if (Math.abs(this.coslat0) <= EPSLN) {\n if (this.lat0 > 0) {\n //North pole\n //trace('stere:north pole');\n this.con = 1;\n }\n else {\n //South pole\n //trace('stere:south pole');\n this.con = -1;\n }\n }\n this.cons = Math.sqrt(Math.pow(1 + this.e, 1 + this.e) * Math.pow(1 - this.e, 1 - this.e));\n if (this.k0 === 1 && !isNaN(this.lat_ts) && Math.abs(this.coslat0) <= EPSLN) {\n this.k0 = 0.5 * this.cons * msfnz(this.e, Math.sin(this.lat_ts), Math.cos(this.lat_ts)) / tsfnz(this.e, this.con * this.lat_ts, this.con * Math.sin(this.lat_ts));\n }\n this.ms1 = msfnz(this.e, this.sinlat0, this.coslat0);\n this.X0 = 2 * Math.atan(this.ssfn_(this.lat0, this.sinlat0, this.e)) - HALF_PI;\n this.cosX0 = Math.cos(this.X0);\n this.sinX0 = Math.sin(this.X0);\n }\n}\n\n// Stereographic forward equations--mapping lat,long to x,y\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n var sinlat = Math.sin(lat);\n var coslat = Math.cos(lat);\n var A, X, sinX, cosX, ts, rh;\n var dlon = adjust_lon(lon - this.long0);\n\n if (Math.abs(Math.abs(lon - this.long0) - Math.PI) <= EPSLN && Math.abs(lat + this.lat0) <= EPSLN) {\n //case of the origine point\n //trace('stere:this is the origin point');\n p.x = NaN;\n p.y = NaN;\n return p;\n }\n if (this.sphere) {\n //trace('stere:sphere case');\n A = 2 * this.k0 / (1 + this.sinlat0 * sinlat + this.coslat0 * coslat * Math.cos(dlon));\n p.x = this.a * A * coslat * Math.sin(dlon) + this.x0;\n p.y = this.a * A * (this.coslat0 * sinlat - this.sinlat0 * coslat * Math.cos(dlon)) + this.y0;\n return p;\n }\n else {\n X = 2 * Math.atan(this.ssfn_(lat, sinlat, this.e)) - HALF_PI;\n cosX = Math.cos(X);\n sinX = Math.sin(X);\n if (Math.abs(this.coslat0) <= EPSLN) {\n ts = tsfnz(this.e, lat * this.con, this.con * sinlat);\n rh = 2 * this.a * this.k0 * ts / this.cons;\n p.x = this.x0 + rh * Math.sin(lon - this.long0);\n p.y = this.y0 - this.con * rh * Math.cos(lon - this.long0);\n //trace(p.toString());\n return p;\n }\n else if (Math.abs(this.sinlat0) < EPSLN) {\n //Eq\n //trace('stere:equateur');\n A = 2 * this.a * this.k0 / (1 + cosX * Math.cos(dlon));\n p.y = A * sinX;\n }\n else {\n //other case\n //trace('stere:normal case');\n A = 2 * this.a * this.k0 * this.ms1 / (this.cosX0 * (1 + this.sinX0 * sinX + this.cosX0 * cosX * Math.cos(dlon)));\n p.y = A * (this.cosX0 * sinX - this.sinX0 * cosX * Math.cos(dlon)) + this.y0;\n }\n p.x = A * cosX * Math.sin(dlon) + this.x0;\n }\n //trace(p.toString());\n return p;\n}\n\n//* Stereographic inverse equations--mapping x,y to lat/long\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n var lon, lat, ts, ce, Chi;\n var rh = Math.sqrt(p.x * p.x + p.y * p.y);\n if (this.sphere) {\n var c = 2 * Math.atan(rh / (2 * this.a * this.k0));\n lon = this.long0;\n lat = this.lat0;\n if (rh <= EPSLN) {\n p.x = lon;\n p.y = lat;\n return p;\n }\n lat = Math.asin(Math.cos(c) * this.sinlat0 + p.y * Math.sin(c) * this.coslat0 / rh);\n if (Math.abs(this.coslat0) < EPSLN) {\n if (this.lat0 > 0) {\n lon = adjust_lon(this.long0 + Math.atan2(p.x, - 1 * p.y));\n }\n else {\n lon = adjust_lon(this.long0 + Math.atan2(p.x, p.y));\n }\n }\n else {\n lon = adjust_lon(this.long0 + Math.atan2(p.x * Math.sin(c), rh * this.coslat0 * Math.cos(c) - p.y * this.sinlat0 * Math.sin(c)));\n }\n p.x = lon;\n p.y = lat;\n return p;\n }\n else {\n if (Math.abs(this.coslat0) <= EPSLN) {\n if (rh <= EPSLN) {\n lat = this.lat0;\n lon = this.long0;\n p.x = lon;\n p.y = lat;\n //trace(p.toString());\n return p;\n }\n p.x *= this.con;\n p.y *= this.con;\n ts = rh * this.cons / (2 * this.a * this.k0);\n lat = this.con * phi2z(this.e, ts);\n lon = this.con * adjust_lon(this.con * this.long0 + Math.atan2(p.x, - 1 * p.y));\n }\n else {\n ce = 2 * Math.atan(rh * this.cosX0 / (2 * this.a * this.k0 * this.ms1));\n lon = this.long0;\n if (rh <= EPSLN) {\n Chi = this.X0;\n }\n else {\n Chi = Math.asin(Math.cos(ce) * this.sinX0 + p.y * Math.sin(ce) * this.cosX0 / rh);\n lon = adjust_lon(this.long0 + Math.atan2(p.x * Math.sin(ce), rh * this.cosX0 * Math.cos(ce) - p.y * this.sinX0 * Math.sin(ce)));\n }\n lat = -1 * phi2z(this.e, Math.tan(0.5 * (HALF_PI + Chi)));\n }\n }\n p.x = lon;\n p.y = lat;\n\n //trace(p.toString());\n return p;\n\n}\n\nexport var names = [\"stere\", \"Stereographic_South_Pole\", \"Polar Stereographic (variant B)\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names,\n ssfn_: ssfn_\n};\n","/*\n references:\n Formules et constantes pour le Calcul pour la\n projection cylindrique conforme à axe oblique et pour la transformation entre\n des systèmes de référence.\n http://www.swisstopo.admin.ch/internet/swisstopo/fr/home/topics/survey/sys/refsys/switzerland.parsysrelated1.31216.downloadList.77004.DownloadFile.tmp/swissprojectionfr.pdf\n */\n\nexport function init() {\n var phy0 = this.lat0;\n this.lambda0 = this.long0;\n var sinPhy0 = Math.sin(phy0);\n var semiMajorAxis = this.a;\n var invF = this.rf;\n var flattening = 1 / invF;\n var e2 = 2 * flattening - Math.pow(flattening, 2);\n var e = this.e = Math.sqrt(e2);\n this.R = this.k0 * semiMajorAxis * Math.sqrt(1 - e2) / (1 - e2 * Math.pow(sinPhy0, 2));\n this.alpha = Math.sqrt(1 + e2 / (1 - e2) * Math.pow(Math.cos(phy0), 4));\n this.b0 = Math.asin(sinPhy0 / this.alpha);\n var k1 = Math.log(Math.tan(Math.PI / 4 + this.b0 / 2));\n var k2 = Math.log(Math.tan(Math.PI / 4 + phy0 / 2));\n var k3 = Math.log((1 + e * sinPhy0) / (1 - e * sinPhy0));\n this.K = k1 - this.alpha * k2 + this.alpha * e / 2 * k3;\n}\n\nexport function forward(p) {\n var Sa1 = Math.log(Math.tan(Math.PI / 4 - p.y / 2));\n var Sa2 = this.e / 2 * Math.log((1 + this.e * Math.sin(p.y)) / (1 - this.e * Math.sin(p.y)));\n var S = -this.alpha * (Sa1 + Sa2) + this.K;\n\n // spheric latitude\n var b = 2 * (Math.atan(Math.exp(S)) - Math.PI / 4);\n\n // spheric longitude\n var I = this.alpha * (p.x - this.lambda0);\n\n // psoeudo equatorial rotation\n var rotI = Math.atan(Math.sin(I) / (Math.sin(this.b0) * Math.tan(b) + Math.cos(this.b0) * Math.cos(I)));\n\n var rotB = Math.asin(Math.cos(this.b0) * Math.sin(b) - Math.sin(this.b0) * Math.cos(b) * Math.cos(I));\n\n p.y = this.R / 2 * Math.log((1 + Math.sin(rotB)) / (1 - Math.sin(rotB))) + this.y0;\n p.x = this.R * rotI + this.x0;\n return p;\n}\n\nexport function inverse(p) {\n var Y = p.x - this.x0;\n var X = p.y - this.y0;\n\n var rotI = Y / this.R;\n var rotB = 2 * (Math.atan(Math.exp(X / this.R)) - Math.PI / 4);\n\n var b = Math.asin(Math.cos(this.b0) * Math.sin(rotB) + Math.sin(this.b0) * Math.cos(rotB) * Math.cos(rotI));\n var I = Math.atan(Math.sin(rotI) / (Math.cos(this.b0) * Math.cos(rotI) - Math.sin(this.b0) * Math.tan(rotB)));\n\n var lambda = this.lambda0 + I / this.alpha;\n\n var S = 0;\n var phy = b;\n var prevPhy = -1000;\n var iteration = 0;\n while (Math.abs(phy - prevPhy) > 0.0000001) {\n if (++iteration > 20) {\n //...reportError(\"omercFwdInfinity\");\n return;\n }\n //S = Math.log(Math.tan(Math.PI / 4 + phy / 2));\n S = 1 / this.alpha * (Math.log(Math.tan(Math.PI / 4 + b / 2)) - this.K) + this.e * Math.log(Math.tan(Math.PI / 4 + Math.asin(this.e * Math.sin(phy)) / 2));\n prevPhy = phy;\n phy = 2 * Math.atan(Math.exp(S)) - Math.PI / 2;\n }\n\n p.x = lambda;\n p.y = phy;\n return p;\n}\n\nexport var names = [\"somerc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import tsfnz from '../common/tsfnz';\nimport adjust_lon from '../common/adjust_lon';\nimport phi2z from '../common/phi2z';\nimport { D2R, EPSLN, HALF_PI, TWO_PI, FORTPI } from '../constants/values';\n\nvar TOL = 1e-7;\n\nfunction isTypeA(P) {\n var typeAProjections = ['Hotine_Oblique_Mercator','Hotine_Oblique_Mercator_Azimuth_Natural_Origin'];\n var projectionName = typeof P.PROJECTION === \"object\" ? Object.keys(P.PROJECTION)[0] : P.PROJECTION;\n \n return 'no_uoff' in P || 'no_off' in P || typeAProjections.indexOf(projectionName) !== -1;\n}\n\n\n/* Initialize the Oblique Mercator projection\n ------------------------------------------*/\nexport function init() { \n var con, com, cosph0, D, F, H, L, sinph0, p, J, gamma = 0,\n gamma0, lamc = 0, lam1 = 0, lam2 = 0, phi1 = 0, phi2 = 0, alpha_c = 0, AB;\n \n // only Type A uses the no_off or no_uoff property\n // https://github.com/OSGeo/proj.4/issues/104\n this.no_off = isTypeA(this);\n this.no_rot = 'no_rot' in this;\n \n var alp = false;\n if (\"alpha\" in this) {\n alp = true;\n }\n\n var gam = false;\n if (\"rectified_grid_angle\" in this) {\n gam = true;\n }\n\n if (alp) {\n alpha_c = this.alpha;\n }\n \n if (gam) {\n gamma = (this.rectified_grid_angle * D2R);\n }\n \n if (alp || gam) {\n lamc = this.longc;\n } else {\n lam1 = this.long1;\n phi1 = this.lat1;\n lam2 = this.long2;\n phi2 = this.lat2;\n \n if (Math.abs(phi1 - phi2) <= TOL || (con = Math.abs(phi1)) <= TOL ||\n Math.abs(con - HALF_PI) <= TOL || Math.abs(Math.abs(this.lat0) - HALF_PI) <= TOL ||\n Math.abs(Math.abs(phi2) - HALF_PI) <= TOL) {\n throw new Error();\n }\n }\n \n var one_es = 1.0 - this.es;\n com = Math.sqrt(one_es);\n \n if (Math.abs(this.lat0) > EPSLN) {\n sinph0 = Math.sin(this.lat0);\n cosph0 = Math.cos(this.lat0);\n con = 1 - this.es * sinph0 * sinph0;\n this.B = cosph0 * cosph0;\n this.B = Math.sqrt(1 + this.es * this.B * this.B / one_es);\n this.A = this.B * this.k0 * com / con;\n D = this.B * com / (cosph0 * Math.sqrt(con));\n F = D * D -1;\n \n if (F <= 0) {\n F = 0;\n } else {\n F = Math.sqrt(F);\n if (this.lat0 < 0) {\n F = -F;\n }\n }\n \n this.E = F += D;\n this.E *= Math.pow(tsfnz(this.e, this.lat0, sinph0), this.B);\n } else {\n this.B = 1 / com;\n this.A = this.k0;\n this.E = D = F = 1;\n }\n \n if (alp || gam) {\n if (alp) {\n gamma0 = Math.asin(Math.sin(alpha_c) / D);\n if (!gam) {\n gamma = alpha_c;\n }\n } else {\n gamma0 = gamma;\n alpha_c = Math.asin(D * Math.sin(gamma0));\n }\n this.lam0 = lamc - Math.asin(0.5 * (F - 1 / F) * Math.tan(gamma0)) / this.B;\n } else {\n H = Math.pow(tsfnz(this.e, phi1, Math.sin(phi1)), this.B);\n L = Math.pow(tsfnz(this.e, phi2, Math.sin(phi2)), this.B);\n F = this.E / H;\n p = (L - H) / (L + H);\n J = this.E * this.E;\n J = (J - L * H) / (J + L * H);\n con = lam1 - lam2;\n \n if (con < -Math.pi) {\n lam2 -=TWO_PI;\n } else if (con > Math.pi) {\n lam2 += TWO_PI;\n }\n \n this.lam0 = adjust_lon(0.5 * (lam1 + lam2) - Math.atan(J * Math.tan(0.5 * this.B * (lam1 - lam2)) / p) / this.B);\n gamma0 = Math.atan(2 * Math.sin(this.B * adjust_lon(lam1 - this.lam0)) / (F - 1 / F));\n gamma = alpha_c = Math.asin(D * Math.sin(gamma0));\n }\n \n this.singam = Math.sin(gamma0);\n this.cosgam = Math.cos(gamma0);\n this.sinrot = Math.sin(gamma);\n this.cosrot = Math.cos(gamma);\n \n this.rB = 1 / this.B;\n this.ArB = this.A * this.rB;\n this.BrA = 1 / this.ArB;\n AB = this.A * this.B;\n \n if (this.no_off) {\n this.u_0 = 0;\n } else {\n this.u_0 = Math.abs(this.ArB * Math.atan(Math.sqrt(D * D - 1) / Math.cos(alpha_c)));\n \n if (this.lat0 < 0) {\n this.u_0 = - this.u_0;\n } \n }\n \n F = 0.5 * gamma0;\n this.v_pole_n = this.ArB * Math.log(Math.tan(FORTPI - F));\n this.v_pole_s = this.ArB * Math.log(Math.tan(FORTPI + F));\n}\n\n\n/* Oblique Mercator forward equations--mapping lat,long to x,y\n ----------------------------------------------------------*/\nexport function forward(p) {\n var coords = {};\n var S, T, U, V, W, temp, u, v;\n p.x = p.x - this.lam0;\n \n if (Math.abs(Math.abs(p.y) - HALF_PI) > EPSLN) {\n W = this.E / Math.pow(tsfnz(this.e, p.y, Math.sin(p.y)), this.B);\n \n temp = 1 / W;\n S = 0.5 * (W - temp);\n T = 0.5 * (W + temp);\n V = Math.sin(this.B * p.x);\n U = (S * this.singam - V * this.cosgam) / T;\n \n if (Math.abs(Math.abs(U) - 1.0) < EPSLN) {\n throw new Error();\n }\n \n v = 0.5 * this.ArB * Math.log((1 - U)/(1 + U));\n temp = Math.cos(this.B * p.x);\n \n if (Math.abs(temp) < TOL) {\n u = this.A * p.x;\n } else {\n u = this.ArB * Math.atan2((S * this.cosgam + V * this.singam), temp);\n } \n } else {\n v = p.y > 0 ? this.v_pole_n : this.v_pole_s;\n u = this.ArB * p.y;\n }\n \n if (this.no_rot) {\n coords.x = u;\n coords.y = v;\n } else {\n u -= this.u_0;\n coords.x = v * this.cosrot + u * this.sinrot;\n coords.y = u * this.cosrot - v * this.sinrot;\n }\n \n coords.x = (this.a * coords.x + this.x0);\n coords.y = (this.a * coords.y + this.y0);\n \n return coords;\n}\n\nexport function inverse(p) {\n var u, v, Qp, Sp, Tp, Vp, Up;\n var coords = {};\n \n p.x = (p.x - this.x0) * (1.0 / this.a);\n p.y = (p.y - this.y0) * (1.0 / this.a);\n\n if (this.no_rot) {\n v = p.y;\n u = p.x;\n } else {\n v = p.x * this.cosrot - p.y * this.sinrot;\n u = p.y * this.cosrot + p.x * this.sinrot + this.u_0;\n }\n \n Qp = Math.exp(-this.BrA * v);\n Sp = 0.5 * (Qp - 1 / Qp);\n Tp = 0.5 * (Qp + 1 / Qp);\n Vp = Math.sin(this.BrA * u);\n Up = (Vp * this.cosgam + Sp * this.singam) / Tp;\n \n if (Math.abs(Math.abs(Up) - 1) < EPSLN) {\n coords.x = 0;\n coords.y = Up < 0 ? -HALF_PI : HALF_PI;\n } else {\n coords.y = this.E / Math.sqrt((1 + Up) / (1 - Up));\n coords.y = phi2z(this.e, Math.pow(coords.y, 1 / this.B));\n \n if (coords.y === Infinity) {\n throw new Error();\n }\n \n coords.x = -this.rB * Math.atan2((Sp * this.cosgam - Vp * this.singam), Math.cos(this.BrA * u));\n }\n \n coords.x += this.lam0;\n \n return coords;\n}\n\nexport var names = [\"Hotine_Oblique_Mercator\", \"Hotine Oblique Mercator\", \"Hotine_Oblique_Mercator_Azimuth_Natural_Origin\", \"Hotine_Oblique_Mercator_Two_Point_Natural_Origin\", \"Hotine_Oblique_Mercator_Azimuth_Center\", \"Oblique_Mercator\", \"omerc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import msfnz from '../common/msfnz';\nimport tsfnz from '../common/tsfnz';\nimport sign from '../common/sign';\nimport adjust_lon from '../common/adjust_lon';\nimport phi2z from '../common/phi2z';\nimport {HALF_PI, EPSLN} from '../constants/values';\nexport function init() {\n \n //double lat0; /* the reference latitude */\n //double long0; /* the reference longitude */\n //double lat1; /* first standard parallel */\n //double lat2; /* second standard parallel */\n //double r_maj; /* major axis */\n //double r_min; /* minor axis */\n //double false_east; /* x offset in meters */\n //double false_north; /* y offset in meters */\n \n //the above value can be set with proj4.defs\n //example: proj4.defs(\"EPSG:2154\",\"+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs\");\n\n if (!this.lat2) {\n this.lat2 = this.lat1;\n } //if lat2 is not defined\n if (!this.k0) {\n this.k0 = 1;\n }\n this.x0 = this.x0 || 0;\n this.y0 = this.y0 || 0;\n // Standard Parallels cannot be equal and on opposite sides of the equator\n if (Math.abs(this.lat1 + this.lat2) < EPSLN) {\n return;\n }\n\n var temp = this.b / this.a;\n this.e = Math.sqrt(1 - temp * temp);\n\n var sin1 = Math.sin(this.lat1);\n var cos1 = Math.cos(this.lat1);\n var ms1 = msfnz(this.e, sin1, cos1);\n var ts1 = tsfnz(this.e, this.lat1, sin1);\n\n var sin2 = Math.sin(this.lat2);\n var cos2 = Math.cos(this.lat2);\n var ms2 = msfnz(this.e, sin2, cos2);\n var ts2 = tsfnz(this.e, this.lat2, sin2);\n\n var ts0 = tsfnz(this.e, this.lat0, Math.sin(this.lat0));\n\n if (Math.abs(this.lat1 - this.lat2) > EPSLN) {\n this.ns = Math.log(ms1 / ms2) / Math.log(ts1 / ts2);\n }\n else {\n this.ns = sin1;\n }\n if (isNaN(this.ns)) {\n this.ns = sin1;\n }\n this.f0 = ms1 / (this.ns * Math.pow(ts1, this.ns));\n this.rh = this.a * this.f0 * Math.pow(ts0, this.ns);\n if (!this.title) {\n this.title = \"Lambert Conformal Conic\";\n }\n}\n\n// Lambert Conformal conic forward equations--mapping lat,long to x,y\n// -----------------------------------------------------------------\nexport function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n // singular cases :\n if (Math.abs(2 * Math.abs(lat) - Math.PI) <= EPSLN) {\n lat = sign(lat) * (HALF_PI - 2 * EPSLN);\n }\n\n var con = Math.abs(Math.abs(lat) - HALF_PI);\n var ts, rh1;\n if (con > EPSLN) {\n ts = tsfnz(this.e, lat, Math.sin(lat));\n rh1 = this.a * this.f0 * Math.pow(ts, this.ns);\n }\n else {\n con = lat * this.ns;\n if (con <= 0) {\n return null;\n }\n rh1 = 0;\n }\n var theta = this.ns * adjust_lon(lon - this.long0);\n p.x = this.k0 * (rh1 * Math.sin(theta)) + this.x0;\n p.y = this.k0 * (this.rh - rh1 * Math.cos(theta)) + this.y0;\n\n return p;\n}\n\n// Lambert Conformal Conic inverse equations--mapping x,y to lat/long\n// -----------------------------------------------------------------\nexport function inverse(p) {\n\n var rh1, con, ts;\n var lat, lon;\n var x = (p.x - this.x0) / this.k0;\n var y = (this.rh - (p.y - this.y0) / this.k0);\n if (this.ns > 0) {\n rh1 = Math.sqrt(x * x + y * y);\n con = 1;\n }\n else {\n rh1 = -Math.sqrt(x * x + y * y);\n con = -1;\n }\n var theta = 0;\n if (rh1 !== 0) {\n theta = Math.atan2((con * x), (con * y));\n }\n if ((rh1 !== 0) || (this.ns > 0)) {\n con = 1 / this.ns;\n ts = Math.pow((rh1 / (this.a * this.f0)), con);\n lat = phi2z(this.e, ts);\n if (lat === -9999) {\n return null;\n }\n }\n else {\n lat = -HALF_PI;\n }\n lon = adjust_lon(theta / this.ns + this.long0);\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\n \"Lambert Tangential Conformal Conic Projection\",\n \"Lambert_Conformal_Conic\",\n \"Lambert_Conformal_Conic_1SP\",\n \"Lambert_Conformal_Conic_2SP\",\n \"lcc\",\n \"Lambert Conic Conformal (1SP)\",\n \"Lambert Conic Conformal (2SP)\"\n];\n\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\n\nexport function init() {\n this.a = 6377397.155;\n this.es = 0.006674372230614;\n this.e = Math.sqrt(this.es);\n if (!this.lat0) {\n this.lat0 = 0.863937979737193;\n }\n if (!this.long0) {\n this.long0 = 0.7417649320975901 - 0.308341501185665;\n }\n /* if scale not set default to 0.9999 */\n if (!this.k0) {\n this.k0 = 0.9999;\n }\n this.s45 = 0.785398163397448; /* 45 */\n this.s90 = 2 * this.s45;\n this.fi0 = this.lat0;\n this.e2 = this.es;\n this.e = Math.sqrt(this.e2);\n this.alfa = Math.sqrt(1 + (this.e2 * Math.pow(Math.cos(this.fi0), 4)) / (1 - this.e2));\n this.uq = 1.04216856380474;\n this.u0 = Math.asin(Math.sin(this.fi0) / this.alfa);\n this.g = Math.pow((1 + this.e * Math.sin(this.fi0)) / (1 - this.e * Math.sin(this.fi0)), this.alfa * this.e / 2);\n this.k = Math.tan(this.u0 / 2 + this.s45) / Math.pow(Math.tan(this.fi0 / 2 + this.s45), this.alfa) * this.g;\n this.k1 = this.k0;\n this.n0 = this.a * Math.sqrt(1 - this.e2) / (1 - this.e2 * Math.pow(Math.sin(this.fi0), 2));\n this.s0 = 1.37008346281555;\n this.n = Math.sin(this.s0);\n this.ro0 = this.k1 * this.n0 / Math.tan(this.s0);\n this.ad = this.s90 - this.uq;\n}\n\n/* ellipsoid */\n/* calculate xy from lat/lon */\n/* Constants, identical to inverse transform function */\nexport function forward(p) {\n var gfi, u, deltav, s, d, eps, ro;\n var lon = p.x;\n var lat = p.y;\n var delta_lon = adjust_lon(lon - this.long0);\n /* Transformation */\n gfi = Math.pow(((1 + this.e * Math.sin(lat)) / (1 - this.e * Math.sin(lat))), (this.alfa * this.e / 2));\n u = 2 * (Math.atan(this.k * Math.pow(Math.tan(lat / 2 + this.s45), this.alfa) / gfi) - this.s45);\n deltav = -delta_lon * this.alfa;\n s = Math.asin(Math.cos(this.ad) * Math.sin(u) + Math.sin(this.ad) * Math.cos(u) * Math.cos(deltav));\n d = Math.asin(Math.cos(u) * Math.sin(deltav) / Math.cos(s));\n eps = this.n * d;\n ro = this.ro0 * Math.pow(Math.tan(this.s0 / 2 + this.s45), this.n) / Math.pow(Math.tan(s / 2 + this.s45), this.n);\n p.y = ro * Math.cos(eps) / 1;\n p.x = ro * Math.sin(eps) / 1;\n\n if (!this.czech) {\n p.y *= -1;\n p.x *= -1;\n }\n return (p);\n}\n\n/* calculate lat/lon from xy */\nexport function inverse(p) {\n var u, deltav, s, d, eps, ro, fi1;\n var ok;\n\n /* Transformation */\n /* revert y, x*/\n var tmp = p.x;\n p.x = p.y;\n p.y = tmp;\n if (!this.czech) {\n p.y *= -1;\n p.x *= -1;\n }\n ro = Math.sqrt(p.x * p.x + p.y * p.y);\n eps = Math.atan2(p.y, p.x);\n d = eps / Math.sin(this.s0);\n s = 2 * (Math.atan(Math.pow(this.ro0 / ro, 1 / this.n) * Math.tan(this.s0 / 2 + this.s45)) - this.s45);\n u = Math.asin(Math.cos(this.ad) * Math.sin(s) - Math.sin(this.ad) * Math.cos(s) * Math.cos(d));\n deltav = Math.asin(Math.cos(s) * Math.sin(d) / Math.cos(u));\n p.x = this.long0 - deltav / this.alfa;\n fi1 = u;\n ok = 0;\n var iter = 0;\n do {\n p.y = 2 * (Math.atan(Math.pow(this.k, - 1 / this.alfa) * Math.pow(Math.tan(u / 2 + this.s45), 1 / this.alfa) * Math.pow((1 + this.e * Math.sin(fi1)) / (1 - this.e * Math.sin(fi1)), this.e / 2)) - this.s45);\n if (Math.abs(fi1 - p.y) < 0.0000000001) {\n ok = 1;\n }\n fi1 = p.y;\n iter += 1;\n } while (ok === 0 && iter < 15);\n if (iter >= 15) {\n return null;\n }\n\n return (p);\n}\n\nexport var names = [\"Krovak\", \"krovak\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","export default function(e0, e1, e2, e3, phi) {\n return (e0 * phi - e1 * Math.sin(2 * phi) + e2 * Math.sin(4 * phi) - e3 * Math.sin(6 * phi));\n}","export default function(x) {\n return (1 - 0.25 * x * (1 + x / 16 * (3 + 1.25 * x)));\n}","export default function(x) {\n return (0.375 * x * (1 + 0.25 * x * (1 + 0.46875 * x)));\n}","export default function(x) {\n return (0.05859375 * x * x * (1 + 0.75 * x));\n}","export default function(x) {\n return (x * x * x * (35 / 3072));\n}","export default function(a, e, sinphi) {\n var temp = e * sinphi;\n return a / Math.sqrt(1 - temp * temp);\n}","import {HALF_PI} from '../constants/values';\nimport sign from './sign';\n\nexport default function(x) {\n return (Math.abs(x) < HALF_PI) ? x : (x - (sign(x) * Math.PI));\n}\n","export default function(ml, e0, e1, e2, e3) {\n var phi;\n var dphi;\n\n phi = ml / e0;\n for (var i = 0; i < 15; i++) {\n dphi = (ml - (e0 * phi - e1 * Math.sin(2 * phi) + e2 * Math.sin(4 * phi) - e3 * Math.sin(6 * phi))) / (e0 - 2 * e1 * Math.cos(2 * phi) + 4 * e2 * Math.cos(4 * phi) - 6 * e3 * Math.cos(6 * phi));\n phi += dphi;\n if (Math.abs(dphi) <= 0.0000000001) {\n return phi;\n }\n }\n\n //..reportError(\"IMLFN-CONV:Latitude failed to converge after 15 iterations\");\n return NaN;\n}","import mlfn from '../common/mlfn';\nimport e0fn from '../common/e0fn';\nimport e1fn from '../common/e1fn';\nimport e2fn from '../common/e2fn';\nimport e3fn from '../common/e3fn';\nimport gN from '../common/gN';\nimport adjust_lon from '../common/adjust_lon';\nimport adjust_lat from '../common/adjust_lat';\nimport imlfn from '../common/imlfn';\nimport {HALF_PI, EPSLN} from '../constants/values';\n\nexport function init() {\n if (!this.sphere) {\n this.e0 = e0fn(this.es);\n this.e1 = e1fn(this.es);\n this.e2 = e2fn(this.es);\n this.e3 = e3fn(this.es);\n this.ml0 = this.a * mlfn(this.e0, this.e1, this.e2, this.e3, this.lat0);\n }\n}\n\n/* Cassini forward equations--mapping lat,long to x,y\n -----------------------------------------------------------------------*/\nexport function forward(p) {\n\n /* Forward equations\n -----------------*/\n var x, y;\n var lam = p.x;\n var phi = p.y;\n lam = adjust_lon(lam - this.long0);\n\n if (this.sphere) {\n x = this.a * Math.asin(Math.cos(phi) * Math.sin(lam));\n y = this.a * (Math.atan2(Math.tan(phi), Math.cos(lam)) - this.lat0);\n }\n else {\n //ellipsoid\n var sinphi = Math.sin(phi);\n var cosphi = Math.cos(phi);\n var nl = gN(this.a, this.e, sinphi);\n var tl = Math.tan(phi) * Math.tan(phi);\n var al = lam * Math.cos(phi);\n var asq = al * al;\n var cl = this.es * cosphi * cosphi / (1 - this.es);\n var ml = this.a * mlfn(this.e0, this.e1, this.e2, this.e3, phi);\n\n x = nl * al * (1 - asq * tl * (1 / 6 - (8 - tl + 8 * cl) * asq / 120));\n y = ml - this.ml0 + nl * sinphi / cosphi * asq * (0.5 + (5 - tl + 6 * cl) * asq / 24);\n\n\n }\n\n p.x = x + this.x0;\n p.y = y + this.y0;\n return p;\n}\n\n/* Inverse equations\n -----------------*/\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n var x = p.x / this.a;\n var y = p.y / this.a;\n var phi, lam;\n\n if (this.sphere) {\n var dd = y + this.lat0;\n phi = Math.asin(Math.sin(dd) * Math.cos(x));\n lam = Math.atan2(Math.tan(x), Math.cos(dd));\n }\n else {\n /* ellipsoid */\n var ml1 = this.ml0 / this.a + y;\n var phi1 = imlfn(ml1, this.e0, this.e1, this.e2, this.e3);\n if (Math.abs(Math.abs(phi1) - HALF_PI) <= EPSLN) {\n p.x = this.long0;\n p.y = HALF_PI;\n if (y < 0) {\n p.y *= -1;\n }\n return p;\n }\n var nl1 = gN(this.a, this.e, Math.sin(phi1));\n\n var rl1 = nl1 * nl1 * nl1 / this.a / this.a * (1 - this.es);\n var tl1 = Math.pow(Math.tan(phi1), 2);\n var dl = x * this.a / nl1;\n var dsq = dl * dl;\n phi = phi1 - nl1 * Math.tan(phi1) / rl1 * dl * dl * (0.5 - (1 + 3 * tl1) * dl * dl / 24);\n lam = dl * (1 - dsq * (tl1 / 3 + (1 + 3 * tl1) * tl1 * dsq / 15)) / Math.cos(phi1);\n\n }\n\n p.x = adjust_lon(lam + this.long0);\n p.y = adjust_lat(phi);\n return p;\n\n}\n\nexport var names = [\"Cassini\", \"Cassini_Soldner\", \"cass\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","export default function(eccent, sinphi) {\n var con;\n if (eccent > 1.0e-7) {\n con = eccent * sinphi;\n return ((1 - eccent * eccent) * (sinphi / (1 - con * con) - (0.5 / eccent) * Math.log((1 - con) / (1 + con))));\n }\n else {\n return (2 * sinphi);\n }\n}","\nimport {HALF_PI, EPSLN, FORTPI} from '../constants/values';\n\nimport qsfnz from '../common/qsfnz';\nimport adjust_lon from '../common/adjust_lon';\n\n/*\n reference\n \"New Equal-Area Map Projections for Noncircular Regions\", John P. Snyder,\n The American Cartographer, Vol 15, No. 4, October 1988, pp. 341-355.\n */\n\nexport var S_POLE = 1;\n\nexport var N_POLE = 2;\nexport var EQUIT = 3;\nexport var OBLIQ = 4;\n\n/* Initialize the Lambert Azimuthal Equal Area projection\n ------------------------------------------------------*/\nexport function init() {\n var t = Math.abs(this.lat0);\n if (Math.abs(t - HALF_PI) < EPSLN) {\n this.mode = this.lat0 < 0 ? this.S_POLE : this.N_POLE;\n }\n else if (Math.abs(t) < EPSLN) {\n this.mode = this.EQUIT;\n }\n else {\n this.mode = this.OBLIQ;\n }\n if (this.es > 0) {\n var sinphi;\n\n this.qp = qsfnz(this.e, 1);\n this.mmf = 0.5 / (1 - this.es);\n this.apa = authset(this.es);\n switch (this.mode) {\n case this.N_POLE:\n this.dd = 1;\n break;\n case this.S_POLE:\n this.dd = 1;\n break;\n case this.EQUIT:\n this.rq = Math.sqrt(0.5 * this.qp);\n this.dd = 1 / this.rq;\n this.xmf = 1;\n this.ymf = 0.5 * this.qp;\n break;\n case this.OBLIQ:\n this.rq = Math.sqrt(0.5 * this.qp);\n sinphi = Math.sin(this.lat0);\n this.sinb1 = qsfnz(this.e, sinphi) / this.qp;\n this.cosb1 = Math.sqrt(1 - this.sinb1 * this.sinb1);\n this.dd = Math.cos(this.lat0) / (Math.sqrt(1 - this.es * sinphi * sinphi) * this.rq * this.cosb1);\n this.ymf = (this.xmf = this.rq) / this.dd;\n this.xmf *= this.dd;\n break;\n }\n }\n else {\n if (this.mode === this.OBLIQ) {\n this.sinph0 = Math.sin(this.lat0);\n this.cosph0 = Math.cos(this.lat0);\n }\n }\n}\n\n/* Lambert Azimuthal Equal Area forward equations--mapping lat,long to x,y\n -----------------------------------------------------------------------*/\nexport function forward(p) {\n\n /* Forward equations\n -----------------*/\n var x, y, coslam, sinlam, sinphi, q, sinb, cosb, b, cosphi;\n var lam = p.x;\n var phi = p.y;\n\n lam = adjust_lon(lam - this.long0);\n if (this.sphere) {\n sinphi = Math.sin(phi);\n cosphi = Math.cos(phi);\n coslam = Math.cos(lam);\n if (this.mode === this.OBLIQ || this.mode === this.EQUIT) {\n y = (this.mode === this.EQUIT) ? 1 + cosphi * coslam : 1 + this.sinph0 * sinphi + this.cosph0 * cosphi * coslam;\n if (y <= EPSLN) {\n return null;\n }\n y = Math.sqrt(2 / y);\n x = y * cosphi * Math.sin(lam);\n y *= (this.mode === this.EQUIT) ? sinphi : this.cosph0 * sinphi - this.sinph0 * cosphi * coslam;\n }\n else if (this.mode === this.N_POLE || this.mode === this.S_POLE) {\n if (this.mode === this.N_POLE) {\n coslam = -coslam;\n }\n if (Math.abs(phi + this.lat0) < EPSLN) {\n return null;\n }\n y = FORTPI - phi * 0.5;\n y = 2 * ((this.mode === this.S_POLE) ? Math.cos(y) : Math.sin(y));\n x = y * Math.sin(lam);\n y *= coslam;\n }\n }\n else {\n sinb = 0;\n cosb = 0;\n b = 0;\n coslam = Math.cos(lam);\n sinlam = Math.sin(lam);\n sinphi = Math.sin(phi);\n q = qsfnz(this.e, sinphi);\n if (this.mode === this.OBLIQ || this.mode === this.EQUIT) {\n sinb = q / this.qp;\n cosb = Math.sqrt(1 - sinb * sinb);\n }\n switch (this.mode) {\n case this.OBLIQ:\n b = 1 + this.sinb1 * sinb + this.cosb1 * cosb * coslam;\n break;\n case this.EQUIT:\n b = 1 + cosb * coslam;\n break;\n case this.N_POLE:\n b = HALF_PI + phi;\n q = this.qp - q;\n break;\n case this.S_POLE:\n b = phi - HALF_PI;\n q = this.qp + q;\n break;\n }\n if (Math.abs(b) < EPSLN) {\n return null;\n }\n switch (this.mode) {\n case this.OBLIQ:\n case this.EQUIT:\n b = Math.sqrt(2 / b);\n if (this.mode === this.OBLIQ) {\n y = this.ymf * b * (this.cosb1 * sinb - this.sinb1 * cosb * coslam);\n }\n else {\n y = (b = Math.sqrt(2 / (1 + cosb * coslam))) * sinb * this.ymf;\n }\n x = this.xmf * b * cosb * sinlam;\n break;\n case this.N_POLE:\n case this.S_POLE:\n if (q >= 0) {\n x = (b = Math.sqrt(q)) * sinlam;\n y = coslam * ((this.mode === this.S_POLE) ? b : -b);\n }\n else {\n x = y = 0;\n }\n break;\n }\n }\n\n p.x = this.a * x + this.x0;\n p.y = this.a * y + this.y0;\n return p;\n}\n\n/* Inverse equations\n -----------------*/\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n var x = p.x / this.a;\n var y = p.y / this.a;\n var lam, phi, cCe, sCe, q, rho, ab;\n if (this.sphere) {\n var cosz = 0,\n rh, sinz = 0;\n\n rh = Math.sqrt(x * x + y * y);\n phi = rh * 0.5;\n if (phi > 1) {\n return null;\n }\n phi = 2 * Math.asin(phi);\n if (this.mode === this.OBLIQ || this.mode === this.EQUIT) {\n sinz = Math.sin(phi);\n cosz = Math.cos(phi);\n }\n switch (this.mode) {\n case this.EQUIT:\n phi = (Math.abs(rh) <= EPSLN) ? 0 : Math.asin(y * sinz / rh);\n x *= sinz;\n y = cosz * rh;\n break;\n case this.OBLIQ:\n phi = (Math.abs(rh) <= EPSLN) ? this.lat0 : Math.asin(cosz * this.sinph0 + y * sinz * this.cosph0 / rh);\n x *= sinz * this.cosph0;\n y = (cosz - Math.sin(phi) * this.sinph0) * rh;\n break;\n case this.N_POLE:\n y = -y;\n phi = HALF_PI - phi;\n break;\n case this.S_POLE:\n phi -= HALF_PI;\n break;\n }\n lam = (y === 0 && (this.mode === this.EQUIT || this.mode === this.OBLIQ)) ? 0 : Math.atan2(x, y);\n }\n else {\n ab = 0;\n if (this.mode === this.OBLIQ || this.mode === this.EQUIT) {\n x /= this.dd;\n y *= this.dd;\n rho = Math.sqrt(x * x + y * y);\n if (rho < EPSLN) {\n p.x = this.long0;\n p.y = this.lat0;\n return p;\n }\n sCe = 2 * Math.asin(0.5 * rho / this.rq);\n cCe = Math.cos(sCe);\n x *= (sCe = Math.sin(sCe));\n if (this.mode === this.OBLIQ) {\n ab = cCe * this.sinb1 + y * sCe * this.cosb1 / rho;\n q = this.qp * ab;\n y = rho * this.cosb1 * cCe - y * this.sinb1 * sCe;\n }\n else {\n ab = y * sCe / rho;\n q = this.qp * ab;\n y = rho * cCe;\n }\n }\n else if (this.mode === this.N_POLE || this.mode === this.S_POLE) {\n if (this.mode === this.N_POLE) {\n y = -y;\n }\n q = (x * x + y * y);\n if (!q) {\n p.x = this.long0;\n p.y = this.lat0;\n return p;\n }\n ab = 1 - q / this.qp;\n if (this.mode === this.S_POLE) {\n ab = -ab;\n }\n }\n lam = Math.atan2(x, y);\n phi = authlat(Math.asin(ab), this.apa);\n }\n\n p.x = adjust_lon(this.long0 + lam);\n p.y = phi;\n return p;\n}\n\n/* determine latitude from authalic latitude */\nvar P00 = 0.33333333333333333333;\n\nvar P01 = 0.17222222222222222222;\nvar P02 = 0.10257936507936507936;\nvar P10 = 0.06388888888888888888;\nvar P11 = 0.06640211640211640211;\nvar P20 = 0.01641501294219154443;\n\nfunction authset(es) {\n var t;\n var APA = [];\n APA[0] = es * P00;\n t = es * es;\n APA[0] += t * P01;\n APA[1] = t * P10;\n t *= es;\n APA[0] += t * P02;\n APA[1] += t * P11;\n APA[2] = t * P20;\n return APA;\n}\n\nfunction authlat(beta, APA) {\n var t = beta + beta;\n return (beta + APA[0] * Math.sin(t) + APA[1] * Math.sin(t + t) + APA[2] * Math.sin(t + t + t));\n}\n\nexport var names = [\"Lambert Azimuthal Equal Area\", \"Lambert_Azimuthal_Equal_Area\", \"laea\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names,\n S_POLE: S_POLE,\n N_POLE: N_POLE,\n EQUIT: EQUIT,\n OBLIQ: OBLIQ\n};\n","export default function(x) {\n if (Math.abs(x) > 1) {\n x = (x > 1) ? 1 : -1;\n }\n return Math.asin(x);\n}","import msfnz from '../common/msfnz';\nimport qsfnz from '../common/qsfnz';\nimport adjust_lon from '../common/adjust_lon';\nimport asinz from '../common/asinz';\nimport {EPSLN} from '../constants/values';\n\nexport function init() {\n\n if (Math.abs(this.lat1 + this.lat2) < EPSLN) {\n return;\n }\n this.temp = this.b / this.a;\n this.es = 1 - Math.pow(this.temp, 2);\n this.e3 = Math.sqrt(this.es);\n\n this.sin_po = Math.sin(this.lat1);\n this.cos_po = Math.cos(this.lat1);\n this.t1 = this.sin_po;\n this.con = this.sin_po;\n this.ms1 = msfnz(this.e3, this.sin_po, this.cos_po);\n this.qs1 = qsfnz(this.e3, this.sin_po, this.cos_po);\n\n this.sin_po = Math.sin(this.lat2);\n this.cos_po = Math.cos(this.lat2);\n this.t2 = this.sin_po;\n this.ms2 = msfnz(this.e3, this.sin_po, this.cos_po);\n this.qs2 = qsfnz(this.e3, this.sin_po, this.cos_po);\n\n this.sin_po = Math.sin(this.lat0);\n this.cos_po = Math.cos(this.lat0);\n this.t3 = this.sin_po;\n this.qs0 = qsfnz(this.e3, this.sin_po, this.cos_po);\n\n if (Math.abs(this.lat1 - this.lat2) > EPSLN) {\n this.ns0 = (this.ms1 * this.ms1 - this.ms2 * this.ms2) / (this.qs2 - this.qs1);\n }\n else {\n this.ns0 = this.con;\n }\n this.c = this.ms1 * this.ms1 + this.ns0 * this.qs1;\n this.rh = this.a * Math.sqrt(this.c - this.ns0 * this.qs0) / this.ns0;\n}\n\n/* Albers Conical Equal Area forward equations--mapping lat,long to x,y\n -------------------------------------------------------------------*/\nexport function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n this.sin_phi = Math.sin(lat);\n this.cos_phi = Math.cos(lat);\n\n var qs = qsfnz(this.e3, this.sin_phi, this.cos_phi);\n var rh1 = this.a * Math.sqrt(this.c - this.ns0 * qs) / this.ns0;\n var theta = this.ns0 * adjust_lon(lon - this.long0);\n var x = rh1 * Math.sin(theta) + this.x0;\n var y = this.rh - rh1 * Math.cos(theta) + this.y0;\n\n p.x = x;\n p.y = y;\n return p;\n}\n\nexport function inverse(p) {\n var rh1, qs, con, theta, lon, lat;\n\n p.x -= this.x0;\n p.y = this.rh - p.y + this.y0;\n if (this.ns0 >= 0) {\n rh1 = Math.sqrt(p.x * p.x + p.y * p.y);\n con = 1;\n }\n else {\n rh1 = -Math.sqrt(p.x * p.x + p.y * p.y);\n con = -1;\n }\n theta = 0;\n if (rh1 !== 0) {\n theta = Math.atan2(con * p.x, con * p.y);\n }\n con = rh1 * this.ns0 / this.a;\n if (this.sphere) {\n lat = Math.asin((this.c - con * con) / (2 * this.ns0));\n }\n else {\n qs = (this.c - con * con) / this.ns0;\n lat = this.phi1z(this.e3, qs);\n }\n\n lon = adjust_lon(theta / this.ns0 + this.long0);\n p.x = lon;\n p.y = lat;\n return p;\n}\n\n/* Function to compute phi1, the latitude for the inverse of the\n Albers Conical Equal-Area projection.\n-------------------------------------------*/\nexport function phi1z(eccent, qs) {\n var sinphi, cosphi, con, com, dphi;\n var phi = asinz(0.5 * qs);\n if (eccent < EPSLN) {\n return phi;\n }\n\n var eccnts = eccent * eccent;\n for (var i = 1; i <= 25; i++) {\n sinphi = Math.sin(phi);\n cosphi = Math.cos(phi);\n con = eccent * sinphi;\n com = 1 - con * con;\n dphi = 0.5 * com * com / cosphi * (qs / (1 - eccnts) - sinphi / com + 0.5 / eccent * Math.log((1 - con) / (1 + con)));\n phi = phi + dphi;\n if (Math.abs(dphi) <= 1e-7) {\n return phi;\n }\n }\n return null;\n}\n\nexport var names = [\"Albers_Conic_Equal_Area\", \"Albers\", \"aea\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names,\n phi1z: phi1z\n};\n","import adjust_lon from '../common/adjust_lon';\nimport asinz from '../common/asinz';\nimport {EPSLN} from '../constants/values';\n\n/*\n reference:\n Wolfram Mathworld \"Gnomonic Projection\"\n http://mathworld.wolfram.com/GnomonicProjection.html\n Accessed: 12th November 2009\n */\nexport function init() {\n\n /* Place parameters in static storage for common use\n -------------------------------------------------*/\n this.sin_p14 = Math.sin(this.lat0);\n this.cos_p14 = Math.cos(this.lat0);\n // Approximation for projecting points to the horizon (infinity)\n this.infinity_dist = 1000 * this.a;\n this.rc = 1;\n}\n\n/* Gnomonic forward equations--mapping lat,long to x,y\n ---------------------------------------------------*/\nexport function forward(p) {\n var sinphi, cosphi; /* sin and cos value */\n var dlon; /* delta longitude value */\n var coslon; /* cos of longitude */\n var ksp; /* scale factor */\n var g;\n var x, y;\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\n -----------------*/\n dlon = adjust_lon(lon - this.long0);\n\n sinphi = Math.sin(lat);\n cosphi = Math.cos(lat);\n\n coslon = Math.cos(dlon);\n g = this.sin_p14 * sinphi + this.cos_p14 * cosphi * coslon;\n ksp = 1;\n if ((g > 0) || (Math.abs(g) <= EPSLN)) {\n x = this.x0 + this.a * ksp * cosphi * Math.sin(dlon) / g;\n y = this.y0 + this.a * ksp * (this.cos_p14 * sinphi - this.sin_p14 * cosphi * coslon) / g;\n }\n else {\n\n // Point is in the opposing hemisphere and is unprojectable\n // We still need to return a reasonable point, so we project\n // to infinity, on a bearing\n // equivalent to the northern hemisphere equivalent\n // This is a reasonable approximation for short shapes and lines that\n // straddle the horizon.\n\n x = this.x0 + this.infinity_dist * cosphi * Math.sin(dlon);\n y = this.y0 + this.infinity_dist * (this.cos_p14 * sinphi - this.sin_p14 * cosphi * coslon);\n\n }\n p.x = x;\n p.y = y;\n return p;\n}\n\nexport function inverse(p) {\n var rh; /* Rho */\n var sinc, cosc;\n var c;\n var lon, lat;\n\n /* Inverse equations\n -----------------*/\n p.x = (p.x - this.x0) / this.a;\n p.y = (p.y - this.y0) / this.a;\n\n p.x /= this.k0;\n p.y /= this.k0;\n\n if ((rh = Math.sqrt(p.x * p.x + p.y * p.y))) {\n c = Math.atan2(rh, this.rc);\n sinc = Math.sin(c);\n cosc = Math.cos(c);\n\n lat = asinz(cosc * this.sin_p14 + (p.y * sinc * this.cos_p14) / rh);\n lon = Math.atan2(p.x * sinc, rh * this.cos_p14 * cosc - p.y * this.sin_p14 * sinc);\n lon = adjust_lon(this.long0 + lon);\n }\n else {\n lat = this.phic0;\n lon = 0;\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"gnom\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\nimport qsfnz from '../common/qsfnz';\nimport msfnz from '../common/msfnz';\nimport iqsfnz from '../common/iqsfnz';\n\n/*\n reference:\n \"Cartographic Projection Procedures for the UNIX Environment-\n A User's Manual\" by Gerald I. Evenden,\n USGS Open File Report 90-284and Release 4 Interim Reports (2003)\n*/\nexport function init() {\n //no-op\n if (!this.sphere) {\n this.k0 = msfnz(this.e, Math.sin(this.lat_ts), Math.cos(this.lat_ts));\n }\n}\n\n/* Cylindrical Equal Area forward equations--mapping lat,long to x,y\n ------------------------------------------------------------*/\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n var x, y;\n /* Forward equations\n -----------------*/\n var dlon = adjust_lon(lon - this.long0);\n if (this.sphere) {\n x = this.x0 + this.a * dlon * Math.cos(this.lat_ts);\n y = this.y0 + this.a * Math.sin(lat) / Math.cos(this.lat_ts);\n }\n else {\n var qs = qsfnz(this.e, Math.sin(lat));\n x = this.x0 + this.a * this.k0 * dlon;\n y = this.y0 + this.a * qs * 0.5 / this.k0;\n }\n\n p.x = x;\n p.y = y;\n return p;\n}\n\n/* Cylindrical Equal Area inverse equations--mapping x,y to lat/long\n ------------------------------------------------------------*/\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n var lon, lat;\n\n if (this.sphere) {\n lon = adjust_lon(this.long0 + (p.x / this.a) / Math.cos(this.lat_ts));\n lat = Math.asin((p.y / this.a) * Math.cos(this.lat_ts));\n }\n else {\n lat = iqsfnz(this.e, 2 * p.y * this.k0 / this.a);\n lon = adjust_lon(this.long0 + p.x / (this.a * this.k0));\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"cea\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import {HALF_PI} from '../constants/values';\n\nexport default function(eccent, q) {\n var temp = 1 - (1 - eccent * eccent) / (2 * eccent) * Math.log((1 - eccent) / (1 + eccent));\n if (Math.abs(Math.abs(q) - temp) < 1.0E-6) {\n if (q < 0) {\n return (-1 * HALF_PI);\n }\n else {\n return HALF_PI;\n }\n }\n //var phi = 0.5* q/(1-eccent*eccent);\n var phi = Math.asin(0.5 * q);\n var dphi;\n var sin_phi;\n var cos_phi;\n var con;\n for (var i = 0; i < 30; i++) {\n sin_phi = Math.sin(phi);\n cos_phi = Math.cos(phi);\n con = eccent * sin_phi;\n dphi = Math.pow(1 - con * con, 2) / (2 * cos_phi) * (q / (1 - eccent * eccent) - sin_phi / (1 - con * con) + 0.5 / eccent * Math.log((1 - con) / (1 + con)));\n phi += dphi;\n if (Math.abs(dphi) <= 0.0000000001) {\n return phi;\n }\n }\n\n //console.log(\"IQSFN-CONV:Latitude failed to converge after 30 iterations\");\n return NaN;\n}\n","import adjust_lon from '../common/adjust_lon';\nimport adjust_lat from '../common/adjust_lat';\n\nexport function init() {\n\n this.x0 = this.x0 || 0;\n this.y0 = this.y0 || 0;\n this.lat0 = this.lat0 || 0;\n this.long0 = this.long0 || 0;\n this.lat_ts = this.lat_ts || 0;\n this.title = this.title || \"Equidistant Cylindrical (Plate Carre)\";\n\n this.rc = Math.cos(this.lat_ts);\n}\n\n// forward equations--mapping lat,long to x,y\n// -----------------------------------------------------------------\nexport function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n var dlon = adjust_lon(lon - this.long0);\n var dlat = adjust_lat(lat - this.lat0);\n p.x = this.x0 + (this.a * dlon * this.rc);\n p.y = this.y0 + (this.a * dlat);\n return p;\n}\n\n// inverse equations--mapping x,y to lat/long\n// -----------------------------------------------------------------\nexport function inverse(p) {\n\n var x = p.x;\n var y = p.y;\n\n p.x = adjust_lon(this.long0 + ((x - this.x0) / (this.a * this.rc)));\n p.y = adjust_lat(this.lat0 + ((y - this.y0) / (this.a)));\n return p;\n}\n\nexport var names = [\"Equirectangular\", \"Equidistant_Cylindrical\", \"eqc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import e0fn from '../common/e0fn';\nimport e1fn from '../common/e1fn';\nimport e2fn from '../common/e2fn';\nimport e3fn from '../common/e3fn';\nimport adjust_lon from '../common/adjust_lon';\nimport adjust_lat from '../common/adjust_lat';\nimport mlfn from '../common/mlfn';\nimport {EPSLN} from '../constants/values';\n\nimport gN from '../common/gN';\nvar MAX_ITER = 20;\n\nexport function init() {\n /* Place parameters in static storage for common use\n -------------------------------------------------*/\n this.temp = this.b / this.a;\n this.es = 1 - Math.pow(this.temp, 2); // devait etre dans tmerc.js mais n y est pas donc je commente sinon retour de valeurs nulles\n this.e = Math.sqrt(this.es);\n this.e0 = e0fn(this.es);\n this.e1 = e1fn(this.es);\n this.e2 = e2fn(this.es);\n this.e3 = e3fn(this.es);\n this.ml0 = this.a * mlfn(this.e0, this.e1, this.e2, this.e3, this.lat0); //si que des zeros le calcul ne se fait pas\n}\n\n/* Polyconic forward equations--mapping lat,long to x,y\n ---------------------------------------------------*/\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n var x, y, el;\n var dlon = adjust_lon(lon - this.long0);\n el = dlon * Math.sin(lat);\n if (this.sphere) {\n if (Math.abs(lat) <= EPSLN) {\n x = this.a * dlon;\n y = -1 * this.a * this.lat0;\n }\n else {\n x = this.a * Math.sin(el) / Math.tan(lat);\n y = this.a * (adjust_lat(lat - this.lat0) + (1 - Math.cos(el)) / Math.tan(lat));\n }\n }\n else {\n if (Math.abs(lat) <= EPSLN) {\n x = this.a * dlon;\n y = -1 * this.ml0;\n }\n else {\n var nl = gN(this.a, this.e, Math.sin(lat)) / Math.tan(lat);\n x = nl * Math.sin(el);\n y = this.a * mlfn(this.e0, this.e1, this.e2, this.e3, lat) - this.ml0 + nl * (1 - Math.cos(el));\n }\n\n }\n p.x = x + this.x0;\n p.y = y + this.y0;\n return p;\n}\n\n/* Inverse equations\n -----------------*/\nexport function inverse(p) {\n var lon, lat, x, y, i;\n var al, bl;\n var phi, dphi;\n x = p.x - this.x0;\n y = p.y - this.y0;\n\n if (this.sphere) {\n if (Math.abs(y + this.a * this.lat0) <= EPSLN) {\n lon = adjust_lon(x / this.a + this.long0);\n lat = 0;\n }\n else {\n al = this.lat0 + y / this.a;\n bl = x * x / this.a / this.a + al * al;\n phi = al;\n var tanphi;\n for (i = MAX_ITER; i; --i) {\n tanphi = Math.tan(phi);\n dphi = -1 * (al * (phi * tanphi + 1) - phi - 0.5 * (phi * phi + bl) * tanphi) / ((phi - al) / tanphi - 1);\n phi += dphi;\n if (Math.abs(dphi) <= EPSLN) {\n lat = phi;\n break;\n }\n }\n lon = adjust_lon(this.long0 + (Math.asin(x * Math.tan(phi) / this.a)) / Math.sin(lat));\n }\n }\n else {\n if (Math.abs(y + this.ml0) <= EPSLN) {\n lat = 0;\n lon = adjust_lon(this.long0 + x / this.a);\n }\n else {\n\n al = (this.ml0 + y) / this.a;\n bl = x * x / this.a / this.a + al * al;\n phi = al;\n var cl, mln, mlnp, ma;\n var con;\n for (i = MAX_ITER; i; --i) {\n con = this.e * Math.sin(phi);\n cl = Math.sqrt(1 - con * con) * Math.tan(phi);\n mln = this.a * mlfn(this.e0, this.e1, this.e2, this.e3, phi);\n mlnp = this.e0 - 2 * this.e1 * Math.cos(2 * phi) + 4 * this.e2 * Math.cos(4 * phi) - 6 * this.e3 * Math.cos(6 * phi);\n ma = mln / this.a;\n dphi = (al * (cl * ma + 1) - ma - 0.5 * cl * (ma * ma + bl)) / (this.es * Math.sin(2 * phi) * (ma * ma + bl - 2 * al * ma) / (4 * cl) + (al - ma) * (cl * mlnp - 2 / Math.sin(2 * phi)) - mlnp);\n phi -= dphi;\n if (Math.abs(dphi) <= EPSLN) {\n lat = phi;\n break;\n }\n }\n\n //lat=phi4z(this.e,this.e0,this.e1,this.e2,this.e3,al,bl,0,0);\n cl = Math.sqrt(1 - this.es * Math.pow(Math.sin(lat), 2)) * Math.tan(lat);\n lon = adjust_lon(this.long0 + Math.asin(x * cl / this.a) / Math.sin(lat));\n }\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Polyconic\", \"poly\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import {SEC_TO_RAD} from '../constants/values';\n\n/*\n reference\n Department of Land and Survey Technical Circular 1973/32\n http://www.linz.govt.nz/docs/miscellaneous/nz-map-definition.pdf\n OSG Technical Report 4.1\n http://www.linz.govt.nz/docs/miscellaneous/nzmg.pdf\n */\n\n/**\n * iterations: Number of iterations to refine inverse transform.\n * 0 -> km accuracy\n * 1 -> m accuracy -- suitable for most mapping applications\n * 2 -> mm accuracy\n */\nexport var iterations = 1;\n\nexport function init() {\n this.A = [];\n this.A[1] = 0.6399175073;\n this.A[2] = -0.1358797613;\n this.A[3] = 0.063294409;\n this.A[4] = -0.02526853;\n this.A[5] = 0.0117879;\n this.A[6] = -0.0055161;\n this.A[7] = 0.0026906;\n this.A[8] = -0.001333;\n this.A[9] = 0.00067;\n this.A[10] = -0.00034;\n\n this.B_re = [];\n this.B_im = [];\n this.B_re[1] = 0.7557853228;\n this.B_im[1] = 0;\n this.B_re[2] = 0.249204646;\n this.B_im[2] = 0.003371507;\n this.B_re[3] = -0.001541739;\n this.B_im[3] = 0.041058560;\n this.B_re[4] = -0.10162907;\n this.B_im[4] = 0.01727609;\n this.B_re[5] = -0.26623489;\n this.B_im[5] = -0.36249218;\n this.B_re[6] = -0.6870983;\n this.B_im[6] = -1.1651967;\n\n this.C_re = [];\n this.C_im = [];\n this.C_re[1] = 1.3231270439;\n this.C_im[1] = 0;\n this.C_re[2] = -0.577245789;\n this.C_im[2] = -0.007809598;\n this.C_re[3] = 0.508307513;\n this.C_im[3] = -0.112208952;\n this.C_re[4] = -0.15094762;\n this.C_im[4] = 0.18200602;\n this.C_re[5] = 1.01418179;\n this.C_im[5] = 1.64497696;\n this.C_re[6] = 1.9660549;\n this.C_im[6] = 2.5127645;\n\n this.D = [];\n this.D[1] = 1.5627014243;\n this.D[2] = 0.5185406398;\n this.D[3] = -0.03333098;\n this.D[4] = -0.1052906;\n this.D[5] = -0.0368594;\n this.D[6] = 0.007317;\n this.D[7] = 0.01220;\n this.D[8] = 0.00394;\n this.D[9] = -0.0013;\n}\n\n/**\n New Zealand Map Grid Forward - long/lat to x/y\n long/lat in radians\n */\nexport function forward(p) {\n var n;\n var lon = p.x;\n var lat = p.y;\n\n var delta_lat = lat - this.lat0;\n var delta_lon = lon - this.long0;\n\n // 1. Calculate d_phi and d_psi ... // and d_lambda\n // For this algorithm, delta_latitude is in seconds of arc x 10-5, so we need to scale to those units. Longitude is radians.\n var d_phi = delta_lat / SEC_TO_RAD * 1E-5;\n var d_lambda = delta_lon;\n var d_phi_n = 1; // d_phi^0\n\n var d_psi = 0;\n for (n = 1; n <= 10; n++) {\n d_phi_n = d_phi_n * d_phi;\n d_psi = d_psi + this.A[n] * d_phi_n;\n }\n\n // 2. Calculate theta\n var th_re = d_psi;\n var th_im = d_lambda;\n\n // 3. Calculate z\n var th_n_re = 1;\n var th_n_im = 0; // theta^0\n var th_n_re1;\n var th_n_im1;\n\n var z_re = 0;\n var z_im = 0;\n for (n = 1; n <= 6; n++) {\n th_n_re1 = th_n_re * th_re - th_n_im * th_im;\n th_n_im1 = th_n_im * th_re + th_n_re * th_im;\n th_n_re = th_n_re1;\n th_n_im = th_n_im1;\n z_re = z_re + this.B_re[n] * th_n_re - this.B_im[n] * th_n_im;\n z_im = z_im + this.B_im[n] * th_n_re + this.B_re[n] * th_n_im;\n }\n\n // 4. Calculate easting and northing\n p.x = (z_im * this.a) + this.x0;\n p.y = (z_re * this.a) + this.y0;\n\n return p;\n}\n\n/**\n New Zealand Map Grid Inverse - x/y to long/lat\n */\nexport function inverse(p) {\n var n;\n var x = p.x;\n var y = p.y;\n\n var delta_x = x - this.x0;\n var delta_y = y - this.y0;\n\n // 1. Calculate z\n var z_re = delta_y / this.a;\n var z_im = delta_x / this.a;\n\n // 2a. Calculate theta - first approximation gives km accuracy\n var z_n_re = 1;\n var z_n_im = 0; // z^0\n var z_n_re1;\n var z_n_im1;\n\n var th_re = 0;\n var th_im = 0;\n for (n = 1; n <= 6; n++) {\n z_n_re1 = z_n_re * z_re - z_n_im * z_im;\n z_n_im1 = z_n_im * z_re + z_n_re * z_im;\n z_n_re = z_n_re1;\n z_n_im = z_n_im1;\n th_re = th_re + this.C_re[n] * z_n_re - this.C_im[n] * z_n_im;\n th_im = th_im + this.C_im[n] * z_n_re + this.C_re[n] * z_n_im;\n }\n\n // 2b. Iterate to refine the accuracy of the calculation\n // 0 iterations gives km accuracy\n // 1 iteration gives m accuracy -- good enough for most mapping applications\n // 2 iterations bives mm accuracy\n for (var i = 0; i < this.iterations; i++) {\n var th_n_re = th_re;\n var th_n_im = th_im;\n var th_n_re1;\n var th_n_im1;\n\n var num_re = z_re;\n var num_im = z_im;\n for (n = 2; n <= 6; n++) {\n th_n_re1 = th_n_re * th_re - th_n_im * th_im;\n th_n_im1 = th_n_im * th_re + th_n_re * th_im;\n th_n_re = th_n_re1;\n th_n_im = th_n_im1;\n num_re = num_re + (n - 1) * (this.B_re[n] * th_n_re - this.B_im[n] * th_n_im);\n num_im = num_im + (n - 1) * (this.B_im[n] * th_n_re + this.B_re[n] * th_n_im);\n }\n\n th_n_re = 1;\n th_n_im = 0;\n var den_re = this.B_re[1];\n var den_im = this.B_im[1];\n for (n = 2; n <= 6; n++) {\n th_n_re1 = th_n_re * th_re - th_n_im * th_im;\n th_n_im1 = th_n_im * th_re + th_n_re * th_im;\n th_n_re = th_n_re1;\n th_n_im = th_n_im1;\n den_re = den_re + n * (this.B_re[n] * th_n_re - this.B_im[n] * th_n_im);\n den_im = den_im + n * (this.B_im[n] * th_n_re + this.B_re[n] * th_n_im);\n }\n\n // Complex division\n var den2 = den_re * den_re + den_im * den_im;\n th_re = (num_re * den_re + num_im * den_im) / den2;\n th_im = (num_im * den_re - num_re * den_im) / den2;\n }\n\n // 3. Calculate d_phi ... // and d_lambda\n var d_psi = th_re;\n var d_lambda = th_im;\n var d_psi_n = 1; // d_psi^0\n\n var d_phi = 0;\n for (n = 1; n <= 9; n++) {\n d_psi_n = d_psi_n * d_psi;\n d_phi = d_phi + this.D[n] * d_psi_n;\n }\n\n // 4. Calculate latitude and longitude\n // d_phi is calcuated in second of arc * 10^-5, so we need to scale back to radians. d_lambda is in radians.\n var lat = this.lat0 + (d_phi * SEC_TO_RAD * 1E5);\n var lon = this.long0 + d_lambda;\n\n p.x = lon;\n p.y = lat;\n\n return p;\n}\n\nexport var names = [\"New_Zealand_Map_Grid\", \"nzmg\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\n\n/*\n reference\n \"New Equal-Area Map Projections for Noncircular Regions\", John P. Snyder,\n The American Cartographer, Vol 15, No. 4, October 1988, pp. 341-355.\n */\n\n\n/* Initialize the Miller Cylindrical projection\n -------------------------------------------*/\nexport function init() {\n //no-op\n}\n\n/* Miller Cylindrical forward equations--mapping lat,long to x,y\n ------------------------------------------------------------*/\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\n -----------------*/\n var dlon = adjust_lon(lon - this.long0);\n var x = this.x0 + this.a * dlon;\n var y = this.y0 + this.a * Math.log(Math.tan((Math.PI / 4) + (lat / 2.5))) * 1.25;\n\n p.x = x;\n p.y = y;\n return p;\n}\n\n/* Miller Cylindrical inverse equations--mapping x,y to lat/long\n ------------------------------------------------------------*/\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n\n var lon = adjust_lon(this.long0 + p.x / this.a);\n var lat = 2.5 * (Math.atan(Math.exp(0.8 * p.y / this.a)) - Math.PI / 4);\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Miller_Cylindrical\", \"mill\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\nimport adjust_lat from '../common/adjust_lat';\nimport pj_enfn from '../common/pj_enfn';\nvar MAX_ITER = 20;\nimport pj_mlfn from '../common/pj_mlfn';\nimport pj_inv_mlfn from '../common/pj_inv_mlfn';\nimport {EPSLN, HALF_PI} from '../constants/values';\n\nimport asinz from '../common/asinz';\n\n\nexport function init() {\n /* Place parameters in static storage for common use\n -------------------------------------------------*/\n\n\n if (!this.sphere) {\n this.en = pj_enfn(this.es);\n }\n else {\n this.n = 1;\n this.m = 0;\n this.es = 0;\n this.C_y = Math.sqrt((this.m + 1) / this.n);\n this.C_x = this.C_y / (this.m + 1);\n }\n\n}\n\n/* Sinusoidal forward equations--mapping lat,long to x,y\n -----------------------------------------------------*/\nexport function forward(p) {\n var x, y;\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\n -----------------*/\n lon = adjust_lon(lon - this.long0);\n\n if (this.sphere) {\n if (!this.m) {\n lat = this.n !== 1 ? Math.asin(this.n * Math.sin(lat)) : lat;\n }\n else {\n var k = this.n * Math.sin(lat);\n for (var i = MAX_ITER; i; --i) {\n var V = (this.m * lat + Math.sin(lat) - k) / (this.m + Math.cos(lat));\n lat -= V;\n if (Math.abs(V) < EPSLN) {\n break;\n }\n }\n }\n x = this.a * this.C_x * lon * (this.m + Math.cos(lat));\n y = this.a * this.C_y * lat;\n\n }\n else {\n\n var s = Math.sin(lat);\n var c = Math.cos(lat);\n y = this.a * pj_mlfn(lat, s, c, this.en);\n x = this.a * lon * c / Math.sqrt(1 - this.es * s * s);\n }\n\n p.x = x;\n p.y = y;\n return p;\n}\n\nexport function inverse(p) {\n var lat, temp, lon, s;\n\n p.x -= this.x0;\n lon = p.x / this.a;\n p.y -= this.y0;\n lat = p.y / this.a;\n\n if (this.sphere) {\n lat /= this.C_y;\n lon = lon / (this.C_x * (this.m + Math.cos(lat)));\n if (this.m) {\n lat = asinz((this.m * lat + Math.sin(lat)) / this.n);\n }\n else if (this.n !== 1) {\n lat = asinz(Math.sin(lat) / this.n);\n }\n lon = adjust_lon(lon + this.long0);\n lat = adjust_lat(lat);\n }\n else {\n lat = pj_inv_mlfn(p.y / this.a, this.es, this.en);\n s = Math.abs(lat);\n if (s < HALF_PI) {\n s = Math.sin(lat);\n temp = this.long0 + p.x * Math.sqrt(1 - this.es * s * s) / (this.a * Math.cos(lat));\n //temp = this.long0 + p.x / (this.a * Math.cos(lat));\n lon = adjust_lon(temp);\n }\n else if ((s - EPSLN) < HALF_PI) {\n lon = this.long0;\n }\n }\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Sinusoidal\", \"sinu\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\nexport function init() {}\nimport {EPSLN} from '../constants/values';\n/* Mollweide forward equations--mapping lat,long to x,y\n ----------------------------------------------------*/\nexport function forward(p) {\n\n /* Forward equations\n -----------------*/\n var lon = p.x;\n var lat = p.y;\n\n var delta_lon = adjust_lon(lon - this.long0);\n var theta = lat;\n var con = Math.PI * Math.sin(lat);\n\n /* Iterate using the Newton-Raphson method to find theta\n -----------------------------------------------------*/\n while (true) {\n var delta_theta = -(theta + Math.sin(theta) - con) / (1 + Math.cos(theta));\n theta += delta_theta;\n if (Math.abs(delta_theta) < EPSLN) {\n break;\n }\n }\n theta /= 2;\n\n /* If the latitude is 90 deg, force the x coordinate to be \"0 + false easting\"\n this is done here because of precision problems with \"cos(theta)\"\n --------------------------------------------------------------------------*/\n if (Math.PI / 2 - Math.abs(lat) < EPSLN) {\n delta_lon = 0;\n }\n var x = 0.900316316158 * this.a * delta_lon * Math.cos(theta) + this.x0;\n var y = 1.4142135623731 * this.a * Math.sin(theta) + this.y0;\n\n p.x = x;\n p.y = y;\n return p;\n}\n\nexport function inverse(p) {\n var theta;\n var arg;\n\n /* Inverse equations\n -----------------*/\n p.x -= this.x0;\n p.y -= this.y0;\n arg = p.y / (1.4142135623731 * this.a);\n\n /* Because of division by zero problems, 'arg' can not be 1. Therefore\n a number very close to one is used instead.\n -------------------------------------------------------------------*/\n if (Math.abs(arg) > 0.999999999999) {\n arg = 0.999999999999;\n }\n theta = Math.asin(arg);\n var lon = adjust_lon(this.long0 + (p.x / (0.900316316158 * this.a * Math.cos(theta))));\n if (lon < (-Math.PI)) {\n lon = -Math.PI;\n }\n if (lon > Math.PI) {\n lon = Math.PI;\n }\n arg = (2 * theta + Math.sin(2 * theta)) / Math.PI;\n if (Math.abs(arg) > 1) {\n arg = 1;\n }\n var lat = Math.asin(arg);\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Mollweide\", \"moll\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import e0fn from '../common/e0fn';\nimport e1fn from '../common/e1fn';\nimport e2fn from '../common/e2fn';\nimport e3fn from '../common/e3fn';\nimport msfnz from '../common/msfnz';\nimport mlfn from '../common/mlfn';\nimport adjust_lon from '../common/adjust_lon';\nimport adjust_lat from '../common/adjust_lat';\nimport imlfn from '../common/imlfn';\nimport {EPSLN} from '../constants/values';\n\nexport function init() {\n\n /* Place parameters in static storage for common use\n -------------------------------------------------*/\n // Standard Parallels cannot be equal and on opposite sides of the equator\n if (Math.abs(this.lat1 + this.lat2) < EPSLN) {\n return;\n }\n this.lat2 = this.lat2 || this.lat1;\n this.temp = this.b / this.a;\n this.es = 1 - Math.pow(this.temp, 2);\n this.e = Math.sqrt(this.es);\n this.e0 = e0fn(this.es);\n this.e1 = e1fn(this.es);\n this.e2 = e2fn(this.es);\n this.e3 = e3fn(this.es);\n\n this.sinphi = Math.sin(this.lat1);\n this.cosphi = Math.cos(this.lat1);\n\n this.ms1 = msfnz(this.e, this.sinphi, this.cosphi);\n this.ml1 = mlfn(this.e0, this.e1, this.e2, this.e3, this.lat1);\n\n if (Math.abs(this.lat1 - this.lat2) < EPSLN) {\n this.ns = this.sinphi;\n }\n else {\n this.sinphi = Math.sin(this.lat2);\n this.cosphi = Math.cos(this.lat2);\n this.ms2 = msfnz(this.e, this.sinphi, this.cosphi);\n this.ml2 = mlfn(this.e0, this.e1, this.e2, this.e3, this.lat2);\n this.ns = (this.ms1 - this.ms2) / (this.ml2 - this.ml1);\n }\n this.g = this.ml1 + this.ms1 / this.ns;\n this.ml0 = mlfn(this.e0, this.e1, this.e2, this.e3, this.lat0);\n this.rh = this.a * (this.g - this.ml0);\n}\n\n/* Equidistant Conic forward equations--mapping lat,long to x,y\n -----------------------------------------------------------*/\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n var rh1;\n\n /* Forward equations\n -----------------*/\n if (this.sphere) {\n rh1 = this.a * (this.g - lat);\n }\n else {\n var ml = mlfn(this.e0, this.e1, this.e2, this.e3, lat);\n rh1 = this.a * (this.g - ml);\n }\n var theta = this.ns * adjust_lon(lon - this.long0);\n var x = this.x0 + rh1 * Math.sin(theta);\n var y = this.y0 + this.rh - rh1 * Math.cos(theta);\n p.x = x;\n p.y = y;\n return p;\n}\n\n/* Inverse equations\n -----------------*/\nexport function inverse(p) {\n p.x -= this.x0;\n p.y = this.rh - p.y + this.y0;\n var con, rh1, lat, lon;\n if (this.ns >= 0) {\n rh1 = Math.sqrt(p.x * p.x + p.y * p.y);\n con = 1;\n }\n else {\n rh1 = -Math.sqrt(p.x * p.x + p.y * p.y);\n con = -1;\n }\n var theta = 0;\n if (rh1 !== 0) {\n theta = Math.atan2(con * p.x, con * p.y);\n }\n\n if (this.sphere) {\n lon = adjust_lon(this.long0 + theta / this.ns);\n lat = adjust_lat(this.g - rh1 / this.a);\n p.x = lon;\n p.y = lat;\n return p;\n }\n else {\n var ml = this.g - rh1 / this.a;\n lat = imlfn(ml, this.e0, this.e1, this.e2, this.e3);\n lon = adjust_lon(this.long0 + theta / this.ns);\n p.x = lon;\n p.y = lat;\n return p;\n }\n\n}\n\nexport var names = [\"Equidistant_Conic\", \"eqdc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\n\nimport {HALF_PI, EPSLN} from '../constants/values';\n\nimport asinz from '../common/asinz';\n\n/* Initialize the Van Der Grinten projection\n ----------------------------------------*/\nexport function init() {\n //this.R = 6370997; //Radius of earth\n this.R = this.a;\n}\n\nexport function forward(p) {\n\n var lon = p.x;\n var lat = p.y;\n\n /* Forward equations\n -----------------*/\n var dlon = adjust_lon(lon - this.long0);\n var x, y;\n\n if (Math.abs(lat) <= EPSLN) {\n x = this.x0 + this.R * dlon;\n y = this.y0;\n }\n var theta = asinz(2 * Math.abs(lat / Math.PI));\n if ((Math.abs(dlon) <= EPSLN) || (Math.abs(Math.abs(lat) - HALF_PI) <= EPSLN)) {\n x = this.x0;\n if (lat >= 0) {\n y = this.y0 + Math.PI * this.R * Math.tan(0.5 * theta);\n }\n else {\n y = this.y0 + Math.PI * this.R * -Math.tan(0.5 * theta);\n }\n // return(OK);\n }\n var al = 0.5 * Math.abs((Math.PI / dlon) - (dlon / Math.PI));\n var asq = al * al;\n var sinth = Math.sin(theta);\n var costh = Math.cos(theta);\n\n var g = costh / (sinth + costh - 1);\n var gsq = g * g;\n var m = g * (2 / sinth - 1);\n var msq = m * m;\n var con = Math.PI * this.R * (al * (g - msq) + Math.sqrt(asq * (g - msq) * (g - msq) - (msq + asq) * (gsq - msq))) / (msq + asq);\n if (dlon < 0) {\n con = -con;\n }\n x = this.x0 + con;\n //con = Math.abs(con / (Math.PI * this.R));\n var q = asq + g;\n con = Math.PI * this.R * (m * q - al * Math.sqrt((msq + asq) * (asq + 1) - q * q)) / (msq + asq);\n if (lat >= 0) {\n //y = this.y0 + Math.PI * this.R * Math.sqrt(1 - con * con - 2 * al * con);\n y = this.y0 + con;\n }\n else {\n //y = this.y0 - Math.PI * this.R * Math.sqrt(1 - con * con - 2 * al * con);\n y = this.y0 - con;\n }\n p.x = x;\n p.y = y;\n return p;\n}\n\n/* Van Der Grinten inverse equations--mapping x,y to lat/long\n ---------------------------------------------------------*/\nexport function inverse(p) {\n var lon, lat;\n var xx, yy, xys, c1, c2, c3;\n var a1;\n var m1;\n var con;\n var th1;\n var d;\n\n /* inverse equations\n -----------------*/\n p.x -= this.x0;\n p.y -= this.y0;\n con = Math.PI * this.R;\n xx = p.x / con;\n yy = p.y / con;\n xys = xx * xx + yy * yy;\n c1 = -Math.abs(yy) * (1 + xys);\n c2 = c1 - 2 * yy * yy + xx * xx;\n c3 = -2 * c1 + 1 + 2 * yy * yy + xys * xys;\n d = yy * yy / c3 + (2 * c2 * c2 * c2 / c3 / c3 / c3 - 9 * c1 * c2 / c3 / c3) / 27;\n a1 = (c1 - c2 * c2 / 3 / c3) / c3;\n m1 = 2 * Math.sqrt(-a1 / 3);\n con = ((3 * d) / a1) / m1;\n if (Math.abs(con) > 1) {\n if (con >= 0) {\n con = 1;\n }\n else {\n con = -1;\n }\n }\n th1 = Math.acos(con) / 3;\n if (p.y >= 0) {\n lat = (-m1 * Math.cos(th1 + Math.PI / 3) - c2 / 3 / c3) * Math.PI;\n }\n else {\n lat = -(-m1 * Math.cos(th1 + Math.PI / 3) - c2 / 3 / c3) * Math.PI;\n }\n\n if (Math.abs(xx) < EPSLN) {\n lon = this.long0;\n }\n else {\n lon = adjust_lon(this.long0 + Math.PI * (xys - 1 + Math.sqrt(1 + 2 * (xx * xx - yy * yy) + xys * xys)) / 2 / xx);\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"Van_der_Grinten_I\", \"VanDerGrinten\", \"vandg\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\nimport {HALF_PI, EPSLN} from '../constants/values';\n\nimport mlfn from '../common/mlfn';\nimport e0fn from '../common/e0fn';\nimport e1fn from '../common/e1fn';\nimport e2fn from '../common/e2fn';\nimport e3fn from '../common/e3fn';\nimport gN from '../common/gN';\nimport asinz from '../common/asinz';\nimport imlfn from '../common/imlfn';\n\n\n\nexport function init() {\n this.sin_p12 = Math.sin(this.lat0);\n this.cos_p12 = Math.cos(this.lat0);\n}\n\nexport function forward(p) {\n var lon = p.x;\n var lat = p.y;\n var sinphi = Math.sin(p.y);\n var cosphi = Math.cos(p.y);\n var dlon = adjust_lon(lon - this.long0);\n var e0, e1, e2, e3, Mlp, Ml, tanphi, Nl1, Nl, psi, Az, G, H, GH, Hs, c, kp, cos_c, s, s2, s3, s4, s5;\n if (this.sphere) {\n if (Math.abs(this.sin_p12 - 1) <= EPSLN) {\n //North Pole case\n p.x = this.x0 + this.a * (HALF_PI - lat) * Math.sin(dlon);\n p.y = this.y0 - this.a * (HALF_PI - lat) * Math.cos(dlon);\n return p;\n }\n else if (Math.abs(this.sin_p12 + 1) <= EPSLN) {\n //South Pole case\n p.x = this.x0 + this.a * (HALF_PI + lat) * Math.sin(dlon);\n p.y = this.y0 + this.a * (HALF_PI + lat) * Math.cos(dlon);\n return p;\n }\n else {\n //default case\n cos_c = this.sin_p12 * sinphi + this.cos_p12 * cosphi * Math.cos(dlon);\n c = Math.acos(cos_c);\n kp = c ? c / Math.sin(c) : 1;\n p.x = this.x0 + this.a * kp * cosphi * Math.sin(dlon);\n p.y = this.y0 + this.a * kp * (this.cos_p12 * sinphi - this.sin_p12 * cosphi * Math.cos(dlon));\n return p;\n }\n }\n else {\n e0 = e0fn(this.es);\n e1 = e1fn(this.es);\n e2 = e2fn(this.es);\n e3 = e3fn(this.es);\n if (Math.abs(this.sin_p12 - 1) <= EPSLN) {\n //North Pole case\n Mlp = this.a * mlfn(e0, e1, e2, e3, HALF_PI);\n Ml = this.a * mlfn(e0, e1, e2, e3, lat);\n p.x = this.x0 + (Mlp - Ml) * Math.sin(dlon);\n p.y = this.y0 - (Mlp - Ml) * Math.cos(dlon);\n return p;\n }\n else if (Math.abs(this.sin_p12 + 1) <= EPSLN) {\n //South Pole case\n Mlp = this.a * mlfn(e0, e1, e2, e3, HALF_PI);\n Ml = this.a * mlfn(e0, e1, e2, e3, lat);\n p.x = this.x0 + (Mlp + Ml) * Math.sin(dlon);\n p.y = this.y0 + (Mlp + Ml) * Math.cos(dlon);\n return p;\n }\n else {\n //Default case\n tanphi = sinphi / cosphi;\n Nl1 = gN(this.a, this.e, this.sin_p12);\n Nl = gN(this.a, this.e, sinphi);\n psi = Math.atan((1 - this.es) * tanphi + this.es * Nl1 * this.sin_p12 / (Nl * cosphi));\n Az = Math.atan2(Math.sin(dlon), this.cos_p12 * Math.tan(psi) - this.sin_p12 * Math.cos(dlon));\n if (Az === 0) {\n s = Math.asin(this.cos_p12 * Math.sin(psi) - this.sin_p12 * Math.cos(psi));\n }\n else if (Math.abs(Math.abs(Az) - Math.PI) <= EPSLN) {\n s = -Math.asin(this.cos_p12 * Math.sin(psi) - this.sin_p12 * Math.cos(psi));\n }\n else {\n s = Math.asin(Math.sin(dlon) * Math.cos(psi) / Math.sin(Az));\n }\n G = this.e * this.sin_p12 / Math.sqrt(1 - this.es);\n H = this.e * this.cos_p12 * Math.cos(Az) / Math.sqrt(1 - this.es);\n GH = G * H;\n Hs = H * H;\n s2 = s * s;\n s3 = s2 * s;\n s4 = s3 * s;\n s5 = s4 * s;\n c = Nl1 * s * (1 - s2 * Hs * (1 - Hs) / 6 + s3 / 8 * GH * (1 - 2 * Hs) + s4 / 120 * (Hs * (4 - 7 * Hs) - 3 * G * G * (1 - 7 * Hs)) - s5 / 48 * GH);\n p.x = this.x0 + c * Math.sin(Az);\n p.y = this.y0 + c * Math.cos(Az);\n return p;\n }\n }\n\n\n}\n\nexport function inverse(p) {\n p.x -= this.x0;\n p.y -= this.y0;\n var rh, z, sinz, cosz, lon, lat, con, e0, e1, e2, e3, Mlp, M, N1, psi, Az, cosAz, tmp, A, B, D, Ee, F, sinpsi;\n if (this.sphere) {\n rh = Math.sqrt(p.x * p.x + p.y * p.y);\n if (rh > (2 * HALF_PI * this.a)) {\n return;\n }\n z = rh / this.a;\n\n sinz = Math.sin(z);\n cosz = Math.cos(z);\n\n lon = this.long0;\n if (Math.abs(rh) <= EPSLN) {\n lat = this.lat0;\n }\n else {\n lat = asinz(cosz * this.sin_p12 + (p.y * sinz * this.cos_p12) / rh);\n con = Math.abs(this.lat0) - HALF_PI;\n if (Math.abs(con) <= EPSLN) {\n if (this.lat0 >= 0) {\n lon = adjust_lon(this.long0 + Math.atan2(p.x, - p.y));\n }\n else {\n lon = adjust_lon(this.long0 - Math.atan2(-p.x, p.y));\n }\n }\n else {\n /*con = cosz - this.sin_p12 * Math.sin(lat);\n if ((Math.abs(con) < EPSLN) && (Math.abs(p.x) < EPSLN)) {\n //no-op, just keep the lon value as is\n } else {\n var temp = Math.atan2((p.x * sinz * this.cos_p12), (con * rh));\n lon = adjust_lon(this.long0 + Math.atan2((p.x * sinz * this.cos_p12), (con * rh)));\n }*/\n lon = adjust_lon(this.long0 + Math.atan2(p.x * sinz, rh * this.cos_p12 * cosz - p.y * this.sin_p12 * sinz));\n }\n }\n\n p.x = lon;\n p.y = lat;\n return p;\n }\n else {\n e0 = e0fn(this.es);\n e1 = e1fn(this.es);\n e2 = e2fn(this.es);\n e3 = e3fn(this.es);\n if (Math.abs(this.sin_p12 - 1) <= EPSLN) {\n //North pole case\n Mlp = this.a * mlfn(e0, e1, e2, e3, HALF_PI);\n rh = Math.sqrt(p.x * p.x + p.y * p.y);\n M = Mlp - rh;\n lat = imlfn(M / this.a, e0, e1, e2, e3);\n lon = adjust_lon(this.long0 + Math.atan2(p.x, - 1 * p.y));\n p.x = lon;\n p.y = lat;\n return p;\n }\n else if (Math.abs(this.sin_p12 + 1) <= EPSLN) {\n //South pole case\n Mlp = this.a * mlfn(e0, e1, e2, e3, HALF_PI);\n rh = Math.sqrt(p.x * p.x + p.y * p.y);\n M = rh - Mlp;\n\n lat = imlfn(M / this.a, e0, e1, e2, e3);\n lon = adjust_lon(this.long0 + Math.atan2(p.x, p.y));\n p.x = lon;\n p.y = lat;\n return p;\n }\n else {\n //default case\n rh = Math.sqrt(p.x * p.x + p.y * p.y);\n Az = Math.atan2(p.x, p.y);\n N1 = gN(this.a, this.e, this.sin_p12);\n cosAz = Math.cos(Az);\n tmp = this.e * this.cos_p12 * cosAz;\n A = -tmp * tmp / (1 - this.es);\n B = 3 * this.es * (1 - A) * this.sin_p12 * this.cos_p12 * cosAz / (1 - this.es);\n D = rh / N1;\n Ee = D - A * (1 + A) * Math.pow(D, 3) / 6 - B * (1 + 3 * A) * Math.pow(D, 4) / 24;\n F = 1 - A * Ee * Ee / 2 - D * Ee * Ee * Ee / 6;\n psi = Math.asin(this.sin_p12 * Math.cos(Ee) + this.cos_p12 * Math.sin(Ee) * cosAz);\n lon = adjust_lon(this.long0 + Math.asin(Math.sin(Az) * Math.sin(Ee) / Math.cos(psi)));\n sinpsi = Math.sin(psi);\n lat = Math.atan2((sinpsi - this.es * F * this.sin_p12) * Math.tan(psi), sinpsi * (1 - this.es));\n p.x = lon;\n p.y = lat;\n return p;\n }\n }\n\n}\n\nexport var names = [\"Azimuthal_Equidistant\", \"aeqd\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import adjust_lon from '../common/adjust_lon';\nimport asinz from '../common/asinz';\nimport {EPSLN, HALF_PI} from '../constants/values';\n\nexport function init() {\n //double temp; /* temporary variable */\n\n /* Place parameters in static storage for common use\n -------------------------------------------------*/\n this.sin_p14 = Math.sin(this.lat0);\n this.cos_p14 = Math.cos(this.lat0);\n}\n\n/* Orthographic forward equations--mapping lat,long to x,y\n ---------------------------------------------------*/\nexport function forward(p) {\n var sinphi, cosphi; /* sin and cos value */\n var dlon; /* delta longitude value */\n var coslon; /* cos of longitude */\n var ksp; /* scale factor */\n var g, x, y;\n var lon = p.x;\n var lat = p.y;\n /* Forward equations\n -----------------*/\n dlon = adjust_lon(lon - this.long0);\n\n sinphi = Math.sin(lat);\n cosphi = Math.cos(lat);\n\n coslon = Math.cos(dlon);\n g = this.sin_p14 * sinphi + this.cos_p14 * cosphi * coslon;\n ksp = 1;\n if ((g > 0) || (Math.abs(g) <= EPSLN)) {\n x = this.a * ksp * cosphi * Math.sin(dlon);\n y = this.y0 + this.a * ksp * (this.cos_p14 * sinphi - this.sin_p14 * cosphi * coslon);\n }\n p.x = x;\n p.y = y;\n return p;\n}\n\nexport function inverse(p) {\n var rh; /* height above ellipsoid */\n var z; /* angle */\n var sinz, cosz; /* sin of z and cos of z */\n var con;\n var lon, lat;\n /* Inverse equations\n -----------------*/\n p.x -= this.x0;\n p.y -= this.y0;\n rh = Math.sqrt(p.x * p.x + p.y * p.y);\n z = asinz(rh / this.a);\n\n sinz = Math.sin(z);\n cosz = Math.cos(z);\n\n lon = this.long0;\n if (Math.abs(rh) <= EPSLN) {\n lat = this.lat0;\n p.x = lon;\n p.y = lat;\n return p;\n }\n lat = asinz(cosz * this.sin_p14 + (p.y * sinz * this.cos_p14) / rh);\n con = Math.abs(this.lat0) - HALF_PI;\n if (Math.abs(con) <= EPSLN) {\n if (this.lat0 >= 0) {\n lon = adjust_lon(this.long0 + Math.atan2(p.x, - p.y));\n }\n else {\n lon = adjust_lon(this.long0 - Math.atan2(-p.x, p.y));\n }\n p.x = lon;\n p.y = lat;\n return p;\n }\n lon = adjust_lon(this.long0 + Math.atan2((p.x * sinz), rh * this.cos_p14 * cosz - p.y * this.sin_p14 * sinz));\n p.x = lon;\n p.y = lat;\n return p;\n}\n\nexport var names = [\"ortho\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","// QSC projection rewritten from the original PROJ4\n// https://github.com/OSGeo/proj.4/blob/master/src/PJ_qsc.c\n\nimport {EPSLN, TWO_PI, SPI, HALF_PI, FORTPI} from '../constants/values';\n\n/* constants */\nvar FACE_ENUM = {\n FRONT: 1,\n RIGHT: 2,\n BACK: 3,\n LEFT: 4,\n TOP: 5,\n BOTTOM: 6\n};\n\nvar AREA_ENUM = {\n AREA_0: 1,\n AREA_1: 2,\n AREA_2: 3,\n AREA_3: 4\n};\n\nexport function init() {\n\n this.x0 = this.x0 || 0;\n this.y0 = this.y0 || 0;\n this.lat0 = this.lat0 || 0;\n this.long0 = this.long0 || 0;\n this.lat_ts = this.lat_ts || 0;\n this.title = this.title || \"Quadrilateralized Spherical Cube\";\n\n /* Determine the cube face from the center of projection. */\n if (this.lat0 >= HALF_PI - FORTPI / 2.0) {\n this.face = FACE_ENUM.TOP;\n } else if (this.lat0 <= -(HALF_PI - FORTPI / 2.0)) {\n this.face = FACE_ENUM.BOTTOM;\n } else if (Math.abs(this.long0) <= FORTPI) {\n this.face = FACE_ENUM.FRONT;\n } else if (Math.abs(this.long0) <= HALF_PI + FORTPI) {\n this.face = this.long0 > 0.0 ? FACE_ENUM.RIGHT : FACE_ENUM.LEFT;\n } else {\n this.face = FACE_ENUM.BACK;\n }\n\n /* Fill in useful values for the ellipsoid <-> sphere shift\n * described in [LK12]. */\n if (this.es !== 0) {\n this.one_minus_f = 1 - (this.a - this.b) / this.a;\n this.one_minus_f_squared = this.one_minus_f * this.one_minus_f;\n }\n}\n\n// QSC forward equations--mapping lat,long to x,y\n// -----------------------------------------------------------------\nexport function forward(p) {\n var xy = {x: 0, y: 0};\n var lat, lon;\n var theta, phi;\n var t, mu;\n /* nu; */\n var area = {value: 0};\n\n // move lon according to projection's lon\n p.x -= this.long0;\n\n /* Convert the geodetic latitude to a geocentric latitude.\n * This corresponds to the shift from the ellipsoid to the sphere\n * described in [LK12]. */\n if (this.es !== 0) {//if (P->es != 0) {\n lat = Math.atan(this.one_minus_f_squared * Math.tan(p.y));\n } else {\n lat = p.y;\n }\n\n /* Convert the input lat, lon into theta, phi as used by QSC.\n * This depends on the cube face and the area on it.\n * For the top and bottom face, we can compute theta and phi\n * directly from phi, lam. For the other faces, we must use\n * unit sphere cartesian coordinates as an intermediate step. */\n lon = p.x; //lon = lp.lam;\n if (this.face === FACE_ENUM.TOP) {\n phi = HALF_PI - lat;\n if (lon >= FORTPI && lon <= HALF_PI + FORTPI) {\n area.value = AREA_ENUM.AREA_0;\n theta = lon - HALF_PI;\n } else if (lon > HALF_PI + FORTPI || lon <= -(HALF_PI + FORTPI)) {\n area.value = AREA_ENUM.AREA_1;\n theta = (lon > 0.0 ? lon - SPI : lon + SPI);\n } else if (lon > -(HALF_PI + FORTPI) && lon <= -FORTPI) {\n area.value = AREA_ENUM.AREA_2;\n theta = lon + HALF_PI;\n } else {\n area.value = AREA_ENUM.AREA_3;\n theta = lon;\n }\n } else if (this.face === FACE_ENUM.BOTTOM) {\n phi = HALF_PI + lat;\n if (lon >= FORTPI && lon <= HALF_PI + FORTPI) {\n area.value = AREA_ENUM.AREA_0;\n theta = -lon + HALF_PI;\n } else if (lon < FORTPI && lon >= -FORTPI) {\n area.value = AREA_ENUM.AREA_1;\n theta = -lon;\n } else if (lon < -FORTPI && lon >= -(HALF_PI + FORTPI)) {\n area.value = AREA_ENUM.AREA_2;\n theta = -lon - HALF_PI;\n } else {\n area.value = AREA_ENUM.AREA_3;\n theta = (lon > 0.0 ? -lon + SPI : -lon - SPI);\n }\n } else {\n var q, r, s;\n var sinlat, coslat;\n var sinlon, coslon;\n\n if (this.face === FACE_ENUM.RIGHT) {\n lon = qsc_shift_lon_origin(lon, +HALF_PI);\n } else if (this.face === FACE_ENUM.BACK) {\n lon = qsc_shift_lon_origin(lon, +SPI);\n } else if (this.face === FACE_ENUM.LEFT) {\n lon = qsc_shift_lon_origin(lon, -HALF_PI);\n }\n sinlat = Math.sin(lat);\n coslat = Math.cos(lat);\n sinlon = Math.sin(lon);\n coslon = Math.cos(lon);\n q = coslat * coslon;\n r = coslat * sinlon;\n s = sinlat;\n\n if (this.face === FACE_ENUM.FRONT) {\n phi = Math.acos(q);\n theta = qsc_fwd_equat_face_theta(phi, s, r, area);\n } else if (this.face === FACE_ENUM.RIGHT) {\n phi = Math.acos(r);\n theta = qsc_fwd_equat_face_theta(phi, s, -q, area);\n } else if (this.face === FACE_ENUM.BACK) {\n phi = Math.acos(-q);\n theta = qsc_fwd_equat_face_theta(phi, s, -r, area);\n } else if (this.face === FACE_ENUM.LEFT) {\n phi = Math.acos(-r);\n theta = qsc_fwd_equat_face_theta(phi, s, q, area);\n } else {\n /* Impossible */\n phi = theta = 0;\n area.value = AREA_ENUM.AREA_0;\n }\n }\n\n /* Compute mu and nu for the area of definition.\n * For mu, see Eq. (3-21) in [OL76], but note the typos:\n * compare with Eq. (3-14). For nu, see Eq. (3-38). */\n mu = Math.atan((12 / SPI) * (theta + Math.acos(Math.sin(theta) * Math.cos(FORTPI)) - HALF_PI));\n t = Math.sqrt((1 - Math.cos(phi)) / (Math.cos(mu) * Math.cos(mu)) / (1 - Math.cos(Math.atan(1 / Math.cos(theta)))));\n\n /* Apply the result to the real area. */\n if (area.value === AREA_ENUM.AREA_1) {\n mu += HALF_PI;\n } else if (area.value === AREA_ENUM.AREA_2) {\n mu += SPI;\n } else if (area.value === AREA_ENUM.AREA_3) {\n mu += 1.5 * SPI;\n }\n\n /* Now compute x, y from mu and nu */\n xy.x = t * Math.cos(mu);\n xy.y = t * Math.sin(mu);\n xy.x = xy.x * this.a + this.x0;\n xy.y = xy.y * this.a + this.y0;\n\n p.x = xy.x;\n p.y = xy.y;\n return p;\n}\n\n// QSC inverse equations--mapping x,y to lat/long\n// -----------------------------------------------------------------\nexport function inverse(p) {\n var lp = {lam: 0, phi: 0};\n var mu, nu, cosmu, tannu;\n var tantheta, theta, cosphi, phi;\n var t;\n var area = {value: 0};\n\n /* de-offset */\n p.x = (p.x - this.x0) / this.a;\n p.y = (p.y - this.y0) / this.a;\n\n /* Convert the input x, y to the mu and nu angles as used by QSC.\n * This depends on the area of the cube face. */\n nu = Math.atan(Math.sqrt(p.x * p.x + p.y * p.y));\n mu = Math.atan2(p.y, p.x);\n if (p.x >= 0.0 && p.x >= Math.abs(p.y)) {\n area.value = AREA_ENUM.AREA_0;\n } else if (p.y >= 0.0 && p.y >= Math.abs(p.x)) {\n area.value = AREA_ENUM.AREA_1;\n mu -= HALF_PI;\n } else if (p.x < 0.0 && -p.x >= Math.abs(p.y)) {\n area.value = AREA_ENUM.AREA_2;\n mu = (mu < 0.0 ? mu + SPI : mu - SPI);\n } else {\n area.value = AREA_ENUM.AREA_3;\n mu += HALF_PI;\n }\n\n /* Compute phi and theta for the area of definition.\n * The inverse projection is not described in the original paper, but some\n * good hints can be found here (as of 2011-12-14):\n * http://fits.gsfc.nasa.gov/fitsbits/saf.93/saf.9302\n * (search for \"Message-Id: <9302181759.AA25477 at fits.cv.nrao.edu>\") */\n t = (SPI / 12) * Math.tan(mu);\n tantheta = Math.sin(t) / (Math.cos(t) - (1 / Math.sqrt(2)));\n theta = Math.atan(tantheta);\n cosmu = Math.cos(mu);\n tannu = Math.tan(nu);\n cosphi = 1 - cosmu * cosmu * tannu * tannu * (1 - Math.cos(Math.atan(1 / Math.cos(theta))));\n if (cosphi < -1) {\n cosphi = -1;\n } else if (cosphi > +1) {\n cosphi = +1;\n }\n\n /* Apply the result to the real area on the cube face.\n * For the top and bottom face, we can compute phi and lam directly.\n * For the other faces, we must use unit sphere cartesian coordinates\n * as an intermediate step. */\n if (this.face === FACE_ENUM.TOP) {\n phi = Math.acos(cosphi);\n lp.phi = HALF_PI - phi;\n if (area.value === AREA_ENUM.AREA_0) {\n lp.lam = theta + HALF_PI;\n } else if (area.value === AREA_ENUM.AREA_1) {\n lp.lam = (theta < 0.0 ? theta + SPI : theta - SPI);\n } else if (area.value === AREA_ENUM.AREA_2) {\n lp.lam = theta - HALF_PI;\n } else /* area.value == AREA_ENUM.AREA_3 */ {\n lp.lam = theta;\n }\n } else if (this.face === FACE_ENUM.BOTTOM) {\n phi = Math.acos(cosphi);\n lp.phi = phi - HALF_PI;\n if (area.value === AREA_ENUM.AREA_0) {\n lp.lam = -theta + HALF_PI;\n } else if (area.value === AREA_ENUM.AREA_1) {\n lp.lam = -theta;\n } else if (area.value === AREA_ENUM.AREA_2) {\n lp.lam = -theta - HALF_PI;\n } else /* area.value == AREA_ENUM.AREA_3 */ {\n lp.lam = (theta < 0.0 ? -theta - SPI : -theta + SPI);\n }\n } else {\n /* Compute phi and lam via cartesian unit sphere coordinates. */\n var q, r, s;\n q = cosphi;\n t = q * q;\n if (t >= 1) {\n s = 0;\n } else {\n s = Math.sqrt(1 - t) * Math.sin(theta);\n }\n t += s * s;\n if (t >= 1) {\n r = 0;\n } else {\n r = Math.sqrt(1 - t);\n }\n /* Rotate q,r,s into the correct area. */\n if (area.value === AREA_ENUM.AREA_1) {\n t = r;\n r = -s;\n s = t;\n } else if (area.value === AREA_ENUM.AREA_2) {\n r = -r;\n s = -s;\n } else if (area.value === AREA_ENUM.AREA_3) {\n t = r;\n r = s;\n s = -t;\n }\n /* Rotate q,r,s into the correct cube face. */\n if (this.face === FACE_ENUM.RIGHT) {\n t = q;\n q = -r;\n r = t;\n } else if (this.face === FACE_ENUM.BACK) {\n q = -q;\n r = -r;\n } else if (this.face === FACE_ENUM.LEFT) {\n t = q;\n q = r;\n r = -t;\n }\n /* Now compute phi and lam from the unit sphere coordinates. */\n lp.phi = Math.acos(-s) - HALF_PI;\n lp.lam = Math.atan2(r, q);\n if (this.face === FACE_ENUM.RIGHT) {\n lp.lam = qsc_shift_lon_origin(lp.lam, -HALF_PI);\n } else if (this.face === FACE_ENUM.BACK) {\n lp.lam = qsc_shift_lon_origin(lp.lam, -SPI);\n } else if (this.face === FACE_ENUM.LEFT) {\n lp.lam = qsc_shift_lon_origin(lp.lam, +HALF_PI);\n }\n }\n\n /* Apply the shift from the sphere to the ellipsoid as described\n * in [LK12]. */\n if (this.es !== 0) {\n var invert_sign;\n var tanphi, xa;\n invert_sign = (lp.phi < 0 ? 1 : 0);\n tanphi = Math.tan(lp.phi);\n xa = this.b / Math.sqrt(tanphi * tanphi + this.one_minus_f_squared);\n lp.phi = Math.atan(Math.sqrt(this.a * this.a - xa * xa) / (this.one_minus_f * xa));\n if (invert_sign) {\n lp.phi = -lp.phi;\n }\n }\n\n lp.lam += this.long0;\n p.x = lp.lam;\n p.y = lp.phi;\n return p;\n}\n\n/* Helper function for forward projection: compute the theta angle\n * and determine the area number. */\nfunction qsc_fwd_equat_face_theta(phi, y, x, area) {\n var theta;\n if (phi < EPSLN) {\n area.value = AREA_ENUM.AREA_0;\n theta = 0.0;\n } else {\n theta = Math.atan2(y, x);\n if (Math.abs(theta) <= FORTPI) {\n area.value = AREA_ENUM.AREA_0;\n } else if (theta > FORTPI && theta <= HALF_PI + FORTPI) {\n area.value = AREA_ENUM.AREA_1;\n theta -= HALF_PI;\n } else if (theta > HALF_PI + FORTPI || theta <= -(HALF_PI + FORTPI)) {\n area.value = AREA_ENUM.AREA_2;\n theta = (theta >= 0.0 ? theta - SPI : theta + SPI);\n } else {\n area.value = AREA_ENUM.AREA_3;\n theta += HALF_PI;\n }\n }\n return theta;\n}\n\n/* Helper function: shift the longitude. */\nfunction qsc_shift_lon_origin(lon, offset) {\n var slon = lon + offset;\n if (slon < -SPI) {\n slon += TWO_PI;\n } else if (slon > +SPI) {\n slon -= TWO_PI;\n }\n return slon;\n}\n\nexport var names = [\"Quadrilateralized Spherical Cube\", \"Quadrilateralized_Spherical_Cube\", \"qsc\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n\n","// Robinson projection\n// Based on https://github.com/OSGeo/proj.4/blob/master/src/PJ_robin.c\n// Polynomial coeficients from http://article.gmane.org/gmane.comp.gis.proj-4.devel/6039\n\nimport {HALF_PI, D2R, R2D, EPSLN} from '../constants/values';\nimport adjust_lon from '../common/adjust_lon';\n\nvar COEFS_X = [\n [1.0000, 2.2199e-17, -7.15515e-05, 3.1103e-06],\n [0.9986, -0.000482243, -2.4897e-05, -1.3309e-06],\n [0.9954, -0.00083103, -4.48605e-05, -9.86701e-07],\n [0.9900, -0.00135364, -5.9661e-05, 3.6777e-06],\n [0.9822, -0.00167442, -4.49547e-06, -5.72411e-06],\n [0.9730, -0.00214868, -9.03571e-05, 1.8736e-08],\n [0.9600, -0.00305085, -9.00761e-05, 1.64917e-06],\n [0.9427, -0.00382792, -6.53386e-05, -2.6154e-06],\n [0.9216, -0.00467746, -0.00010457, 4.81243e-06],\n [0.8962, -0.00536223, -3.23831e-05, -5.43432e-06],\n [0.8679, -0.00609363, -0.000113898, 3.32484e-06],\n [0.8350, -0.00698325, -6.40253e-05, 9.34959e-07],\n [0.7986, -0.00755338, -5.00009e-05, 9.35324e-07],\n [0.7597, -0.00798324, -3.5971e-05, -2.27626e-06],\n [0.7186, -0.00851367, -7.01149e-05, -8.6303e-06],\n [0.6732, -0.00986209, -0.000199569, 1.91974e-05],\n [0.6213, -0.010418, 8.83923e-05, 6.24051e-06],\n [0.5722, -0.00906601, 0.000182, 6.24051e-06],\n [0.5322, -0.00677797, 0.000275608, 6.24051e-06]\n];\n\nvar COEFS_Y = [\n [-5.20417e-18, 0.0124, 1.21431e-18, -8.45284e-11],\n [0.0620, 0.0124, -1.26793e-09, 4.22642e-10],\n [0.1240, 0.0124, 5.07171e-09, -1.60604e-09],\n [0.1860, 0.0123999, -1.90189e-08, 6.00152e-09],\n [0.2480, 0.0124002, 7.10039e-08, -2.24e-08],\n [0.3100, 0.0123992, -2.64997e-07, 8.35986e-08],\n [0.3720, 0.0124029, 9.88983e-07, -3.11994e-07],\n [0.4340, 0.0123893, -3.69093e-06, -4.35621e-07],\n [0.4958, 0.0123198, -1.02252e-05, -3.45523e-07],\n [0.5571, 0.0121916, -1.54081e-05, -5.82288e-07],\n [0.6176, 0.0119938, -2.41424e-05, -5.25327e-07],\n [0.6769, 0.011713, -3.20223e-05, -5.16405e-07],\n [0.7346, 0.0113541, -3.97684e-05, -6.09052e-07],\n [0.7903, 0.0109107, -4.89042e-05, -1.04739e-06],\n [0.8435, 0.0103431, -6.4615e-05, -1.40374e-09],\n [0.8936, 0.00969686, -6.4636e-05, -8.547e-06],\n [0.9394, 0.00840947, -0.000192841, -4.2106e-06],\n [0.9761, 0.00616527, -0.000256, -4.2106e-06],\n [1.0000, 0.00328947, -0.000319159, -4.2106e-06]\n];\n\nvar FXC = 0.8487;\nvar FYC = 1.3523;\nvar C1 = R2D/5; // rad to 5-degree interval\nvar RC1 = 1/C1;\nvar NODES = 18;\n\nvar poly3_val = function(coefs, x) {\n return coefs[0] + x * (coefs[1] + x * (coefs[2] + x * coefs[3]));\n};\n\nvar poly3_der = function(coefs, x) {\n return coefs[1] + x * (2 * coefs[2] + x * 3 * coefs[3]);\n};\n\nfunction newton_rapshon(f_df, start, max_err, iters) {\n var x = start;\n for (; iters; --iters) {\n var upd = f_df(x);\n x -= upd;\n if (Math.abs(upd) < max_err) {\n break;\n }\n }\n return x;\n}\n\nexport function init() {\n this.x0 = this.x0 || 0;\n this.y0 = this.y0 || 0;\n this.long0 = this.long0 || 0;\n this.es = 0;\n this.title = this.title || \"Robinson\";\n}\n\nexport function forward(ll) {\n var lon = adjust_lon(ll.x - this.long0);\n\n var dphi = Math.abs(ll.y);\n var i = Math.floor(dphi * C1);\n if (i < 0) {\n i = 0;\n } else if (i >= NODES) {\n i = NODES - 1;\n }\n dphi = R2D * (dphi - RC1 * i);\n var xy = {\n x: poly3_val(COEFS_X[i], dphi) * lon,\n y: poly3_val(COEFS_Y[i], dphi)\n };\n if (ll.y < 0) {\n xy.y = -xy.y;\n }\n\n xy.x = xy.x * this.a * FXC + this.x0;\n xy.y = xy.y * this.a * FYC + this.y0;\n return xy;\n}\n\nexport function inverse(xy) {\n var ll = {\n x: (xy.x - this.x0) / (this.a * FXC),\n y: Math.abs(xy.y - this.y0) / (this.a * FYC)\n };\n\n if (ll.y >= 1) { // pathologic case\n ll.x /= COEFS_X[NODES][0];\n ll.y = xy.y < 0 ? -HALF_PI : HALF_PI;\n } else {\n // find table interval\n var i = Math.floor(ll.y * NODES);\n if (i < 0) {\n i = 0;\n } else if (i >= NODES) {\n i = NODES - 1;\n }\n for (;;) {\n if (COEFS_Y[i][0] > ll.y) {\n --i;\n } else if (COEFS_Y[i+1][0] <= ll.y) {\n ++i;\n } else {\n break;\n }\n }\n // linear interpolation in 5 degree interval\n var coefs = COEFS_Y[i];\n var t = 5 * (ll.y - coefs[0]) / (COEFS_Y[i+1][0] - coefs[0]);\n // find t so that poly3_val(coefs, t) = ll.y\n t = newton_rapshon(function(x) {\n return (poly3_val(coefs, x) - ll.y) / poly3_der(coefs, x);\n }, t, EPSLN, 100);\n\n ll.x /= poly3_val(COEFS_X[i], t);\n ll.y = (5 * i + t) * D2R;\n if (xy.y < 0) {\n ll.y = -ll.y;\n }\n }\n\n ll.x = adjust_lon(ll.x + this.long0);\n return ll;\n}\n\nexport var names = [\"Robinson\", \"robin\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import {\n geodeticToGeocentric,\n geocentricToGeodetic\n} from '../datumUtils';\n\nexport function init() {\n this.name = 'geocent';\n\n}\n\nexport function forward(p) {\n var point = geodeticToGeocentric(p, this.es, this.a);\n return point;\n}\n\nexport function inverse(p) {\n var point = geocentricToGeodetic(p, this.es, this.a, this.b);\n return point;\n}\n\nexport var names = [\"Geocentric\", 'geocentric', \"geocent\", \"Geocent\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};","\nvar mode = {\n N_POLE: 0,\n S_POLE: 1,\n EQUIT: 2,\n OBLIQ: 3\n};\n\nimport { D2R, HALF_PI, EPSLN } from \"../constants/values\";\nimport hypot from \"../common/hypot\";\n\nvar params = {\n h: { def: 100000, num: true }, // default is Karman line, no default in PROJ.7\n azi: { def: 0, num: true, degrees: true }, // default is North\n tilt: { def: 0, num: true, degrees: true }, // default is Nadir\n long0: { def: 0, num: true }, // default is Greenwich, conversion to rad is automatic\n lat0: { def: 0, num: true } // default is Equator, conversion to rad is automatic\n};\n\nexport function init() {\n Object.keys(params).forEach(function (p) {\n if (typeof this[p] === \"undefined\") {\n this[p] = params[p].def;\n } else if (params[p].num && isNaN(this[p])) {\n throw new Error(\"Invalid parameter value, must be numeric \" + p + \" = \" + this[p]);\n } else if (params[p].num) {\n this[p] = parseFloat(this[p]);\n }\n if (params[p].degrees) {\n this[p] = this[p] * D2R;\n }\n }.bind(this));\n\n if (Math.abs((Math.abs(this.lat0) - HALF_PI)) < EPSLN) {\n this.mode = this.lat0 < 0 ? mode.S_POLE : mode.N_POLE;\n } else if (Math.abs(this.lat0) < EPSLN) {\n this.mode = mode.EQUIT;\n } else {\n this.mode = mode.OBLIQ;\n this.sinph0 = Math.sin(this.lat0);\n this.cosph0 = Math.cos(this.lat0);\n }\n\n this.pn1 = this.h / this.a; // Normalize relative to the Earth's radius\n\n if (this.pn1 <= 0 || this.pn1 > 1e10) {\n throw new Error(\"Invalid height\");\n }\n \n this.p = 1 + this.pn1;\n this.rp = 1 / this.p;\n this.h1 = 1 / this.pn1;\n this.pfact = (this.p + 1) * this.h1;\n this.es = 0;\n\n var omega = this.tilt;\n var gamma = this.azi;\n this.cg = Math.cos(gamma);\n this.sg = Math.sin(gamma);\n this.cw = Math.cos(omega);\n this.sw = Math.sin(omega);\n}\n\nexport function forward(p) {\n p.x -= this.long0;\n var sinphi = Math.sin(p.y);\n var cosphi = Math.cos(p.y);\n var coslam = Math.cos(p.x);\n var x, y;\n switch (this.mode) {\n case mode.OBLIQ:\n y = this.sinph0 * sinphi + this.cosph0 * cosphi * coslam;\n break;\n case mode.EQUIT:\n y = cosphi * coslam;\n break;\n case mode.S_POLE:\n y = -sinphi;\n break;\n case mode.N_POLE:\n y = sinphi;\n break;\n }\n y = this.pn1 / (this.p - y);\n x = y * cosphi * Math.sin(p.x);\n\n switch (this.mode) {\n case mode.OBLIQ:\n y *= this.cosph0 * sinphi - this.sinph0 * cosphi * coslam;\n break;\n case mode.EQUIT:\n y *= sinphi;\n break;\n case mode.N_POLE:\n y *= -(cosphi * coslam);\n break;\n case mode.S_POLE:\n y *= cosphi * coslam;\n break;\n }\n\n // Tilt \n var yt, ba;\n yt = y * this.cg + x * this.sg;\n ba = 1 / (yt * this.sw * this.h1 + this.cw);\n x = (x * this.cg - y * this.sg) * this.cw * ba;\n y = yt * ba;\n\n p.x = x * this.a;\n p.y = y * this.a;\n return p;\n}\n\nexport function inverse(p) {\n p.x /= this.a;\n p.y /= this.a;\n var r = { x: p.x, y: p.y };\n\n // Un-Tilt\n var bm, bq, yt;\n yt = 1 / (this.pn1 - p.y * this.sw);\n bm = this.pn1 * p.x * yt;\n bq = this.pn1 * p.y * this.cw * yt;\n p.x = bm * this.cg + bq * this.sg;\n p.y = bq * this.cg - bm * this.sg;\n\n var rh = hypot(p.x, p.y);\n if (Math.abs(rh) < EPSLN) {\n r.x = 0;\n r.y = p.y;\n } else {\n var cosz, sinz;\n sinz = 1 - rh * rh * this.pfact;\n sinz = (this.p - Math.sqrt(sinz)) / (this.pn1 / rh + rh / this.pn1);\n cosz = Math.sqrt(1 - sinz * sinz);\n switch (this.mode) {\n case mode.OBLIQ:\n r.y = Math.asin(cosz * this.sinph0 + p.y * sinz * this.cosph0 / rh);\n p.y = (cosz - this.sinph0 * Math.sin(r.y)) * rh;\n p.x *= sinz * this.cosph0;\n break;\n case mode.EQUIT:\n r.y = Math.asin(p.y * sinz / rh);\n p.y = cosz * rh;\n p.x *= sinz;\n break;\n case mode.N_POLE:\n r.y = Math.asin(cosz);\n p.y = -p.y;\n break;\n case mode.S_POLE:\n r.y = -Math.asin(cosz);\n break;\n }\n r.x = Math.atan2(p.x, p.y);\n }\n\n p.x = r.x + this.long0;\n p.y = r.y;\n return p;\n}\n\nexport var names = [\"Tilted_Perspective\", \"tpers\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names\n};\n","import hypot from '../common/hypot';\n\nexport function init() {\n this.flip_axis = (this.sweep === 'x' ? 1 : 0);\n this.h = Number(this.h);\n this.radius_g_1 = this.h / this.a;\n\n if (this.radius_g_1 <= 0 || this.radius_g_1 > 1e10) {\n throw new Error();\n }\n\n this.radius_g = 1.0 + this.radius_g_1;\n this.C = this.radius_g * this.radius_g - 1.0;\n\n if (this.es !== 0.0) {\n var one_es = 1.0 - this.es;\n var rone_es = 1 / one_es;\n\n this.radius_p = Math.sqrt(one_es);\n this.radius_p2 = one_es;\n this.radius_p_inv2 = rone_es;\n\n this.shape = 'ellipse'; // Use as a condition in the forward and inverse functions.\n } else {\n this.radius_p = 1.0;\n this.radius_p2 = 1.0;\n this.radius_p_inv2 = 1.0;\n\n this.shape = 'sphere'; // Use as a condition in the forward and inverse functions.\n }\n\n if (!this.title) {\n this.title = \"Geostationary Satellite View\";\n }\n}\n\nfunction forward(p) {\n var lon = p.x;\n var lat = p.y;\n var tmp, v_x, v_y, v_z;\n lon = lon - this.long0;\n\n if (this.shape === 'ellipse') {\n lat = Math.atan(this.radius_p2 * Math.tan(lat));\n var r = this.radius_p / hypot(this.radius_p * Math.cos(lat), Math.sin(lat));\n\n v_x = r * Math.cos(lon) * Math.cos(lat);\n v_y = r * Math.sin(lon) * Math.cos(lat);\n v_z = r * Math.sin(lat);\n\n if (((this.radius_g - v_x) * v_x - v_y * v_y - v_z * v_z * this.radius_p_inv2) < 0.0) {\n p.x = Number.NaN;\n p.y = Number.NaN;\n return p;\n }\n\n tmp = this.radius_g - v_x;\n if (this.flip_axis) {\n p.x = this.radius_g_1 * Math.atan(v_y / hypot(v_z, tmp));\n p.y = this.radius_g_1 * Math.atan(v_z / tmp);\n } else {\n p.x = this.radius_g_1 * Math.atan(v_y / tmp);\n p.y = this.radius_g_1 * Math.atan(v_z / hypot(v_y, tmp));\n }\n } else if (this.shape === 'sphere') {\n tmp = Math.cos(lat);\n v_x = Math.cos(lon) * tmp;\n v_y = Math.sin(lon) * tmp;\n v_z = Math.sin(lat);\n tmp = this.radius_g - v_x;\n\n if (this.flip_axis) {\n p.x = this.radius_g_1 * Math.atan(v_y / hypot(v_z, tmp));\n p.y = this.radius_g_1 * Math.atan(v_z / tmp);\n } else {\n p.x = this.radius_g_1 * Math.atan(v_y / tmp);\n p.y = this.radius_g_1 * Math.atan(v_z / hypot(v_y, tmp));\n }\n }\n p.x = p.x * this.a;\n p.y = p.y * this.a;\n return p;\n}\n\nfunction inverse(p) {\n var v_x = -1.0;\n var v_y = 0.0;\n var v_z = 0.0;\n var a, b, det, k;\n\n p.x = p.x / this.a;\n p.y = p.y / this.a;\n\n if (this.shape === 'ellipse') {\n if (this.flip_axis) {\n v_z = Math.tan(p.y / this.radius_g_1);\n v_y = Math.tan(p.x / this.radius_g_1) * hypot(1.0, v_z);\n } else {\n v_y = Math.tan(p.x / this.radius_g_1);\n v_z = Math.tan(p.y / this.radius_g_1) * hypot(1.0, v_y);\n }\n\n var v_zp = v_z / this.radius_p;\n a = v_y * v_y + v_zp * v_zp + v_x * v_x;\n b = 2 * this.radius_g * v_x;\n det = (b * b) - 4 * a * this.C;\n\n if (det < 0.0) {\n p.x = Number.NaN;\n p.y = Number.NaN;\n return p;\n }\n\n k = (-b - Math.sqrt(det)) / (2.0 * a);\n v_x = this.radius_g + k * v_x;\n v_y *= k;\n v_z *= k;\n\n p.x = Math.atan2(v_y, v_x);\n p.y = Math.atan(v_z * Math.cos(p.x) / v_x);\n p.y = Math.atan(this.radius_p_inv2 * Math.tan(p.y));\n } else if (this.shape === 'sphere') {\n if (this.flip_axis) {\n v_z = Math.tan(p.y / this.radius_g_1);\n v_y = Math.tan(p.x / this.radius_g_1) * Math.sqrt(1.0 + v_z * v_z);\n } else {\n v_y = Math.tan(p.x / this.radius_g_1);\n v_z = Math.tan(p.y / this.radius_g_1) * Math.sqrt(1.0 + v_y * v_y);\n }\n\n a = v_y * v_y + v_z * v_z + v_x * v_x;\n b = 2 * this.radius_g * v_x;\n det = (b * b) - 4 * a * this.C;\n if (det < 0.0) {\n p.x = Number.NaN;\n p.y = Number.NaN;\n return p;\n }\n\n k = (-b - Math.sqrt(det)) / (2.0 * a);\n v_x = this.radius_g + k * v_x;\n v_y *= k;\n v_z *= k;\n\n p.x = Math.atan2(v_y, v_x);\n p.y = Math.atan(v_z * Math.cos(p.x) / v_x);\n }\n p.x = p.x + this.long0;\n return p;\n}\n\nexport var names = [\"Geostationary Satellite View\", \"Geostationary_Satellite\", \"geos\"];\nexport default {\n init: init,\n forward: forward,\n inverse: inverse,\n names: names,\n};\n\n","import proj4 from './core';\nimport Proj from \"./Proj\";\nimport Point from \"./Point\";\nimport common from \"./common/toPoint\";\nimport defs from \"./defs\";\nimport nadgrid from \"./nadgrid\";\nimport transform from \"./transform\";\nimport mgrs from \"mgrs\";\nimport includedProjections from \"../projs\";\n\nproj4.defaultDatum = 'WGS84'; //default datum\nproj4.Proj = Proj;\nproj4.WGS84 = new proj4.Proj('WGS84');\nproj4.Point = Point;\nproj4.toPoint = common;\nproj4.defs = defs;\nproj4.nadgrid = nadgrid;\nproj4.transform = transform;\nproj4.mgrs = mgrs;\nproj4.version = '__VERSION__';\nincludedProjections(proj4);\nexport default proj4;\n","import tmerc from './lib/projections/tmerc';\nimport etmerc from './lib/projections/etmerc';\nimport utm from './lib/projections/utm';\nimport sterea from './lib/projections/sterea';\nimport stere from './lib/projections/stere';\nimport somerc from './lib/projections/somerc';\nimport omerc from './lib/projections/omerc';\nimport lcc from './lib/projections/lcc';\nimport krovak from './lib/projections/krovak';\nimport cass from './lib/projections/cass';\nimport laea from './lib/projections/laea';\nimport aea from './lib/projections/aea';\nimport gnom from './lib/projections/gnom';\nimport cea from './lib/projections/cea';\nimport eqc from './lib/projections/eqc';\nimport poly from './lib/projections/poly';\nimport nzmg from './lib/projections/nzmg';\nimport mill from './lib/projections/mill';\nimport sinu from './lib/projections/sinu';\nimport moll from './lib/projections/moll';\nimport eqdc from './lib/projections/eqdc';\nimport vandg from './lib/projections/vandg';\nimport aeqd from './lib/projections/aeqd';\nimport ortho from './lib/projections/ortho';\nimport qsc from './lib/projections/qsc';\nimport robin from './lib/projections/robin';\nimport geocent from './lib/projections/geocent';\nimport tpers from './lib/projections/tpers';\nimport geos from './lib/projections/geos';\nexport default function(proj4){\n proj4.Proj.projections.add(tmerc);\n proj4.Proj.projections.add(etmerc);\n proj4.Proj.projections.add(utm);\n proj4.Proj.projections.add(sterea);\n proj4.Proj.projections.add(stere);\n proj4.Proj.projections.add(somerc);\n proj4.Proj.projections.add(omerc);\n proj4.Proj.projections.add(lcc);\n proj4.Proj.projections.add(krovak);\n proj4.Proj.projections.add(cass);\n proj4.Proj.projections.add(laea);\n proj4.Proj.projections.add(aea);\n proj4.Proj.projections.add(gnom);\n proj4.Proj.projections.add(cea);\n proj4.Proj.projections.add(eqc);\n proj4.Proj.projections.add(poly);\n proj4.Proj.projections.add(nzmg);\n proj4.Proj.projections.add(mill);\n proj4.Proj.projections.add(sinu);\n proj4.Proj.projections.add(moll);\n proj4.Proj.projections.add(eqdc);\n proj4.Proj.projections.add(vandg);\n proj4.Proj.projections.add(aeqd);\n proj4.Proj.projections.add(ortho);\n proj4.Proj.projections.add(qsc);\n proj4.Proj.projections.add(robin);\n proj4.Proj.projections.add(geocent);\n proj4.Proj.projections.add(tpers);\n proj4.Proj.projections.add(geos);\n}","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=t||self).RBush=i()}(this,function(){\"use strict\";function t(t,r,e,a,h){!function t(n,r,e,a,h){for(;a>e;){if(a-e>600){var o=a-e+1,s=r-e+1,l=Math.log(o),f=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*f*(o-f)/o)*(s-o/2<0?-1:1),m=Math.max(e,Math.floor(r-s*f/o+u)),c=Math.min(a,Math.floor(r+(o-s)*f/o+u));t(n,r,m,c,h)}var p=n[r],d=e,x=a;for(i(n,e,r),h(n[a],p)>0&&i(n,e,a);d0;)x--}0===h(n[e],p)?i(n,e,x):i(n,++x,a),x<=r&&(e=x+1),r<=x&&(a=x-1)}}(t,r,e||0,a||t.length-1,h||n)}function i(t,i,n){var r=t[i];t[i]=t[n],t[n]=r}function n(t,i){return ti?1:0}var r=function(t){void 0===t&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function e(t,i,n){if(!n)return i.indexOf(t);for(var r=0;r=t.minX&&i.maxY>=t.minY}function p(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function d(i,n,r,e,a){for(var h=[n,r];h.length;)if(!((r=h.pop())-(n=h.pop())<=e)){var o=n+Math.ceil((r-n)/e/2)*e;t(i,o,n,r,a),h.push(n,o,o,r)}}return r.prototype.all=function(){return this._all(this.data,[])},r.prototype.search=function(t){var i=this.data,n=[];if(!c(t,i))return n;for(var r=this.toBBox,e=[];i;){for(var a=0;a=0&&e[i].children.length>this._maxEntries;)this._split(e,i),i--;this._adjustParentBBoxes(r,e,i)},r.prototype._split=function(t,i){var n=t[i],r=n.children.length,e=this._minEntries;this._chooseSplitAxis(n,e,r);var h=this._chooseSplitIndex(n,e,r),o=p(n.children.splice(h,n.children.length-h));o.height=n.height,o.leaf=n.leaf,a(n,this.toBBox),a(o,this.toBBox),i?t[i-1].children.push(o):this._splitRoot(n,o)},r.prototype._splitRoot=function(t,i){this.data=p([t,i]),this.data.height=t.height+1,this.data.leaf=!1,a(this.data,this.toBBox)},r.prototype._chooseSplitIndex=function(t,i,n){for(var r,e,a,o,s,l,u,m=1/0,c=1/0,p=i;p<=n-i;p++){var d=h(t,0,p,this.toBBox),x=h(t,p,n,this.toBBox),v=(e=d,a=x,o=void 0,s=void 0,l=void 0,u=void 0,o=Math.max(e.minX,a.minX),s=Math.max(e.minY,a.minY),l=Math.min(e.maxX,a.maxX),u=Math.min(e.maxY,a.maxY),Math.max(0,l-o)*Math.max(0,u-s)),M=f(d)+f(x);v=i;c--){var p=t.children[c];o(s,t.leaf?e(p):p),l+=u(s)}return l},r.prototype._adjustParentBBoxes=function(t,i,n){for(var r=n;r>=0;r--)o(i[r],t)},r.prototype._condense=function(t){for(var i=t.length-1,n=void 0;i>=0;i--)0===t[i].children.length?i>0?(n=t[i-1].children).splice(n.indexOf(t[i]),1):this.clear():a(t[i],this.toBBox)},r});\n","'use strict';\n\nvar proj4 = require('proj4').hasOwnProperty('default') ? require('proj4').default : require('proj4');\n// Checks if `list` looks like a `[x, y]`.\nfunction isXY(list) {\n return list.length >= 2 &&\n typeof list[0] === 'number' &&\n typeof list[1] === 'number';\n}\n\nfunction traverseCoords(coordinates, callback) {\n if (isXY(coordinates)) return callback(coordinates);\n return coordinates.map(function(coord){return traverseCoords(coord, callback);});\n}\n\n// Simplistic shallow clone that will work for a normal GeoJSON object.\nfunction clone(obj) {\n if (null == obj || 'object' !== typeof obj) return obj;\n var copy = obj.constructor();\n for (var attr in obj) {\n if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr];\n }\n return copy;\n}\n\nfunction traverseGeoJson(geometryCb, nodeCb, geojson) {\n if (geojson == null) return geojson;\n\n var r = clone(geojson);\n var self = traverseGeoJson.bind(this, geometryCb, nodeCb);\n\n switch (geojson.type) {\n case 'Feature':\n r.geometry = self(geojson.geometry);\n break;\n case 'FeatureCollection':\n r.features = r.features.map(self);\n break;\n case 'GeometryCollection':\n r.geometries = r.geometries.map(self);\n break;\n default:\n geometryCb(r);\n break;\n }\n\n if (nodeCb) nodeCb(r);\n\n return r;\n}\n\nfunction detectCrs(geojson, projs) {\n var crsInfo = geojson.crs,\n crs;\n\n if (crsInfo === undefined) {\n throw new Error('Unable to detect CRS, GeoJSON has no \"crs\" property.');\n }\n\n if (crsInfo.type === 'name') {\n crs = projs[crsInfo.properties.name];\n } else if (crsInfo.type === 'EPSG') {\n crs = projs['EPSG:' + crsInfo.properties.code];\n }\n\n if (!crs) {\n throw new Error('CRS defined in crs section could not be identified: ' + JSON.stringify(crsInfo));\n }\n\n return crs;\n}\n\nfunction determineCrs(crs, projs) {\n if (typeof crs === 'string' || crs instanceof String) {\n return projs[crs] || proj4.Proj(crs);\n }\n\n return crs;\n}\n\nfunction calcBbox(geojson) {\n var min = [Number.MAX_VALUE, Number.MAX_VALUE],\n max = [-Number.MAX_VALUE, -Number.MAX_VALUE];\n traverseGeoJson(function(_gj) {\n traverseCoords(_gj.coordinates, function(xy) {\n min[0] = Math.min(min[0], xy[0]);\n min[1] = Math.min(min[1], xy[1]);\n max[0] = Math.max(max[0], xy[0]);\n max[1] = Math.max(max[1], xy[1]);\n });\n }, null, geojson);\n return [min[0], min[1], max[0], max[1]];\n}\n\nfunction reproject(geojson, from, to, projs) {\n projs = projs || {};\n if (!from) {\n from = detectCrs(geojson, projs);\n } else {\n from = determineCrs(from, projs);\n }\n\n to = determineCrs(to, projs);\n \n var transformFunc = proj4(from, to).forward.bind(transformFunc);\n\n function transform(coords) {\n var transformed = transformFunc(coords);\n if (coords.length === 3 && coords[2] !== undefined && transformed[2] === undefined) {\n // If the projection doesn't explicitly handle Z coordinate, retain the old one.\n transformed[2] = coords[2];\n }\n return transformed;\n }\n\n var transformGeometryCoords = function(gj) {\n // No easy way to put correct CRS info into the GeoJSON,\n // and definitely wrong to keep the old, so delete it.\n if (gj.crs) {\n delete gj.crs;\n }\n gj.coordinates = traverseCoords(gj.coordinates, transform);\n }\n\n var transformBbox = function(gj) {\n if (gj.bbox) {\n gj.bbox = calcBbox(gj);\n }\n }\n\n return traverseGeoJson(transformGeometryCoords, transformBbox, geojson);\n}\n\nmodule.exports = {\n detectCrs: detectCrs,\n\n reproject: reproject,\n\n reverse: function(geojson) {\n return traverseGeoJson(function(gj) {\n gj.coordinates = traverseCoords(gj.coordinates, function(xy) {\n return [ xy[1], xy[0] ];\n });\n }, null, geojson);\n },\n\n toWgs84: function(geojson, from, projs) {\n return reproject(geojson, from, proj4.WGS84, projs);\n }\n};\n","let numberRegexp = /[-+]?([0-9]*\\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/;\n// Matches sequences like '100 100' or '100 100 100'.\nlet coordFormat = new RegExp('^' + numberRegexp.source + '(\\\\s' + numberRegexp.source + '){1,}');\n\n/**\n * Parse WKT and return GeoJSON.\n * @param wkt\n * @return {?Object} A GeoJSON geometry object\n */\nconst parse = (wkt)=> {\n let parts = wkt.split(';');\n let _ = parts.pop();\n let srid = (parts.shift() || '').split('=').pop();\n\n let i = 0;\n\n function $ (re) {\n let match = _.substring(i).match(re);\n if (!match) return null;\n else {\n i += match[0].length;\n return match[0];\n }\n }\n\n function crs (obj) {\n if (obj && srid.match(/\\d+/)) {\n obj.crs = {\n type: 'name',\n properties: {\n name: 'urn:ogc:def:crs:EPSG::' + srid\n }\n };\n }\n\n return obj;\n }\n\n function white () { $(/^\\s*/); }\n\n function multicoords () {\n white();\n let depth = 0;\n let rings = [];\n let stack = [rings];\n let pointer = rings;\n let elem;\n\n while (elem =\n $(/^(\\()/) ||\n $(/^(\\))/) ||\n $(/^(,)/) ||\n $(coordFormat)) {\n if (elem === '(') {\n stack.push(pointer);\n pointer = [];\n stack[stack.length - 1].push(pointer);\n depth++;\n } else if (elem === ')') {\n // For the case: Polygon(), ...\n if (pointer.length === 0) return null;\n\n pointer = stack.pop();\n // the stack was empty, input was malformed\n if (!pointer) return null;\n depth--;\n if (depth === 0) break;\n } else if (elem === ',') {\n pointer = [];\n stack[stack.length - 1].push(pointer);\n } else if (!elem.split(/\\s/g).some(isNaN)) {\n Array.prototype.push.apply(pointer, elem.split(/\\s/g).map(parseFloat));\n } else {\n return null;\n }\n white();\n }\n\n if (depth !== 0) return null;\n\n return rings;\n }\n\n function coords () {\n let list = [];\n let item;\n let pt;\n while (pt =\n $(coordFormat) ||\n $(/^(,)/)) {\n if (pt === ',') {\n list.push(item);\n item = [];\n } else if (!pt.split(/\\s/g).some(isNaN)) {\n if (!item) item = [];\n Array.prototype.push.apply(item, pt.split(/\\s/g).map(parseFloat));\n }\n white();\n }\n\n if (item) list.push(item);\n else return null;\n\n return list.length ? list : null;\n }\n\n function point () {\n if (!$(/^(point(\\sz)?)/i)) return null;\n white();\n if (!$(/^(\\()/)) return null;\n let c = coords();\n if (!c) return null;\n white();\n if (!$(/^(\\))/)) return null;\n return {\n type: 'Point',\n coordinates: c[0]\n };\n }\n\n function multipoint () {\n if (!$(/^(multipoint(\\sz)?)/i)) return null;\n white();\n let newCoordsFormat = _\n .substring(_.indexOf('(') + 1, _.length - 1)\n .replace(/\\(/g, '')\n .replace(/\\)/g, '');\n _ = 'MULTIPOINT (' + newCoordsFormat + ')';\n let c = multicoords();\n if (!c) return null;\n white();\n return {\n type: 'MultiPoint',\n coordinates: c\n };\n }\n\n function multilinestring () {\n if (!$(/^(multilinestring(\\sz)?)/i)) return null;\n white();\n let c = multicoords();\n if (!c) return null;\n white();\n return {\n type: 'MultiLineString',\n coordinates: c\n };\n }\n\n function linestring () {\n if (!$(/^(linestring(\\sz)?)/i)) return null;\n white();\n if (!$(/^(\\()/)) return null;\n let c = coords();\n if (!c) return null;\n if (!$(/^(\\))/)) return null;\n return {\n type: 'LineString',\n coordinates: c\n };\n }\n\n function polygon () {\n if (!$(/^(polygon(\\sz)?)/i)) return null;\n white();\n let c = multicoords();\n if (!c) return null;\n return {\n type: 'Polygon',\n coordinates: c\n };\n }\n\n function multipolygon () {\n if (!$(/^(multipolygon(\\sz)?)/i)) return null;\n white();\n let c = multicoords();\n if (!c) return null;\n return {\n type: 'MultiPolygon',\n coordinates: c\n };\n }\n\n function geometrycollection () {\n let geometries = [];\n let geometry;\n\n if (!$(/^(geometrycollection)/i)) return null;\n white();\n\n if (!$(/^(\\()/)) return null;\n while (geometry = root()) {\n geometries.push(geometry);\n white();\n $(/^(,)/);\n white();\n }\n if (!$(/^(\\))/)) return null;\n\n return {\n type: 'GeometryCollection',\n geometries: geometries\n };\n }\n\n function root () {\n return point() ||\n linestring() ||\n polygon() ||\n multipoint() ||\n multilinestring() ||\n multipolygon() ||\n geometrycollection();\n }\n\n return crs(root());\n};\n\n/**\n * Stringifies a GeoJSON object into WKT\n */\nconst stringify = (geoJSON)=> {\n if (geoJSON.type === 'Feature') {\n geoJSON = geoJSON.geometry;\n }\n\n function pairWKT (c) {\n return c.join(' ');\n }\n\n function ringWKT (r) {\n return r.map(pairWKT).join(', ');\n }\n\n function ringsWKT (r) {\n return r.map(ringWKT).map(wrapParens).join(', ');\n }\n\n function multiRingsWKT (r) {\n return r.map(ringsWKT).map(wrapParens).join(', ');\n }\n\n function wrapParens (s) { return '(' + s + ')'; }\n\n let gJ = geoJSON;\n switch (gJ.type) {\n case 'Point':\n if(gJ.coordinates && gJ.coordinates.length === 3)\n return 'POINT Z (' + pairWKT(gJ.coordinates) + ')';\n else return 'POINT (' + pairWKT(gJ.coordinates) + ')';\n\n case 'LineString':\n if(gJ.coordinates && gJ.coordinates[0] && gJ.coordinates[0].length === 3)\n return 'LINESTRING Z (' + ringWKT(gJ.coordinates) + ')';\n else return 'LINESTRING (' + ringWKT(gJ.coordinates) + ')';\n\n case 'Polygon':\n if(gJ.coordinates && gJ.coordinates[0] && gJ.coordinates[0][0] && gJ.coordinates[0][0].length === 3)\n return 'POLYGON Z (' + ringsWKT(gJ.coordinates) + ')';\n else return 'POLYGON (' + ringsWKT(gJ.coordinates) + ')';\n\n case 'MultiPoint':\n if(gJ.coordinates && gJ.coordinates[0] && gJ.coordinates[0].length === 3)\n return 'MULTIPOINT Z (' + ringWKT(gJ.coordinates) + ')';\n else return 'MULTIPOINT (' + ringWKT(gJ.coordinates) + ')';\n\n case 'MultiLineString':\n if(gJ.coordinates && gJ.coordinates[0] && gJ.coordinates[0][0] && gJ.coordinates[0][0].length === 3)\n return 'MULTILINESTRING Z (' + ringsWKT(gJ.coordinates) + ')';\n else return 'MULTILINESTRING (' + ringsWKT(gJ.coordinates) + ')';\n\n case 'MultiPolygon':\n if(gJ.coordinates && gJ.coordinates[0] && gJ.coordinates[0][0] && gJ.coordinates[0][0] && gJ.coordinates[0][0][0].length === 3)\n return 'MULTIPOLYGON Z (' + multiRingsWKT(gJ.coordinates) + ')';\n else return 'MULTIPOLYGON (' + multiRingsWKT(gJ.coordinates) + ')';\n\n\n case 'GeometryCollection':\n return 'GEOMETRYCOLLECTION (' + gJ.geometries.map(stringify).join(', ') + ')';\n\n default:\n throw new Error('stringify requires a valid GeoJSON Feature or geometry object as input');\n }\n};\n\nmodule.exports = {\n parse,\n stringify\n};","/* MapLibre GL JS is licensed under the 3-Clause BSD License. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v2.4.0/LICENSE.txt */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\ntypeof define === 'function' && define.amd ? define(factory) :\n(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.maplibregl = factory());\n})(this, (function () { 'use strict';\n\n/* eslint-disable */\n\nvar shared, worker, maplibregl;\n// define gets called three times: one for each chunk. we rely on the order\n// they're imported to know which is which\nfunction define(_, chunk) {\n if (!shared) {\n shared = chunk;\n } else if (!worker) {\n worker = chunk;\n } else {\n var workerBundleString = 'var sharedChunk = {}; (' + shared + ')(sharedChunk); (' + worker + ')(sharedChunk);'\n\n var sharedChunk = {};\n shared(sharedChunk);\n maplibregl = chunk(sharedChunk);\n if (typeof window !== 'undefined') {\n maplibregl.workerUrl = window.URL.createObjectURL(new Blob([workerBundleString], { type: 'text/javascript' }));\n }\n }\n}\n\n\ndefine([\"exports\"],(function(t){\"use strict\";var e=r;function r(t,e,r,n){this.cx=3*t,this.bx=3*(r-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(n-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=e,this.p2x=r,this.p2y=n;}function n(t,r,n,i){const a=new e(t,r,n,i);return function(t){return a.solve(t)}}r.prototype={sampleCurveX:function(t){return ((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return ((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return (3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,e){if(void 0===e&&(e=1e-6),t<0)return 0;if(t>1)return 1;for(var r=t,n=0;n<8;n++){var i=this.sampleCurveX(r)-t;if(Math.abs(i)i?s=r:o=r,r=.5*(o-s)+s;return r},solve:function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))}};const i=n(.25,.1,.25,1);function a(t,e,r){return Math.min(r,Math.max(e,t))}function s(t,e,r){const n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i}function o(t,...e){for(const r of e)for(const e in r)t[e]=r[e];return t}let l=1;function u(t,e){t.forEach((t=>{e[t]&&(e[t]=e[t].bind(e));}));}function c(t,e,r){const n={};for(const i in t)n[i]=e.call(r||this,t[i],i,t);return n}function h(t,e,r){const n={};for(const i in t)e.call(r||this,t[i],i,t)&&(n[i]=t[i]);return n}function p(t){return Array.isArray(t)?t.map(p):\"object\"==typeof t&&t?c(t,p):t}const f={};function d(t){f[t]||(\"undefined\"!=typeof console&&console.warn(t),f[t]=!0);}function y(t,e,r){return (r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)}function m(t){let e=0;for(let r,n,i=0,a=t.length,s=a-1;i@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)(?:\\=(?:([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)|(?:\\\"((?:[^\"\\\\]|\\\\.)*)\\\")))?/g,((t,r,n,i)=>{const a=n||i;return e[r]=!a||a.toLowerCase(),\"\"})),e[\"max-age\"]){const t=parseInt(e[\"max-age\"],10);isNaN(t)?delete e[\"max-age\"]:e[\"max-age\"]=t;}return e}let v,b,w=null;function _(t){if(null==w){const e=t.navigator?t.navigator.userAgent:null;w=!!t.safari||!(!e||!(/\\b(iPad|iPhone|iPod)\\b/.test(e)||e.match(\"Safari\")&&!e.match(\"Chrome\")));}return w}function A(t){return \"undefined\"!=typeof ImageBitmap&&t instanceof ImageBitmap}const k={now:\"undefined\"!=typeof performance&&performance&&performance.now?performance.now.bind(performance):Date.now.bind(Date),frame(t){const e=requestAnimationFrame(t);return {cancel:()=>cancelAnimationFrame(e)}},getImageData(t,e=0){const r=window.document.createElement(\"canvas\"),n=r.getContext(\"2d\");if(!n)throw new Error(\"failed to create canvas 2d context\");return r.width=t.width,r.height=t.height,n.drawImage(t,0,0,t.width,t.height),n.getImageData(-e,-e,t.width+2*e,t.height+2*e)},resolveURL:t=>(v||(v=document.createElement(\"a\")),v.href=t,v.href),hardwareConcurrency:\"undefined\"!=typeof navigator&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return !!matchMedia&&(null==b&&(b=matchMedia(\"(prefers-reduced-motion: reduce)\")),b.matches)}};var S=I;function I(t,e){this.x=t,this.y=e;}I.prototype={clone:function(){return new I(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,e){return this.clone()._rotateAround(t,e)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,r=t.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[2]*this.x+t[3]*this.y;return this.x=t[0]*this.x+t[1]*this.y,this.y=e,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),r=Math.sin(t),n=r*this.x+e*this.y;return this.x=e*this.x-r*this.y,this.y=n,this},_rotateAround:function(t,e){var r=Math.cos(t),n=Math.sin(t),i=e.y+n*(this.x-e.x)+r*(this.y-e.y);return this.x=e.x+r*(this.x-e.x)-n*(this.y-e.y),this.y=i,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},I.convert=function(t){return t instanceof I?t:Array.isArray(t)?new I(t[0],t[1]):t};const M={MAX_PARALLEL_IMAGE_REQUESTS:16,REGISTERED_PROTOCOLS:{}},z=\"mapbox-tiles\";let B,C,P=500,V=50;function E(){\"undefined\"==typeof caches||B||(B=caches.open(z));}let F=1/0;const T={supported:!1,testSupport:function(t){!$&&D&&(R?O(t):L=t);}};let L,D,$=!1,R=!1;function O(t){const e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e);try{if(t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,D),t.isContextLost())return;T.supported=!0;}catch(t){}t.deleteTexture(e),$=!0;}\"undefined\"!=typeof document&&(D=document.createElement(\"img\"),D.onload=function(){L&&O(L),L=null,R=!0;},D.onerror=function(){$=!0,L=null;},D.src=\"data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=\");const U={Unknown:\"Unknown\",Style:\"Style\",Source:\"Source\",Tile:\"Tile\",Glyphs:\"Glyphs\",SpriteImage:\"SpriteImage\",SpriteJSON:\"SpriteJSON\",Image:\"Image\"};\"function\"==typeof Object.freeze&&Object.freeze(U);class q extends Error{constructor(t,e,r,n){super(`AJAXError: ${e} (${t}): ${r}`),this.status=t,this.statusText=e,this.url=r,this.body=n;}}const j=g()?()=>self.worker&&self.worker.referrer:()=>(\"blob:\"===window.location.protocol?window.parent:window).location.href;function N(t,e){const r=new AbortController,n=new Request(t.url,{method:t.method||\"GET\",body:t.body,credentials:t.credentials,headers:t.headers,referrer:j(),signal:r.signal});let i=!1,a=!1;\"json\"===t.type&&n.headers.set(\"Accept\",\"application/json\");return ((r,s,o)=>{if(a)return;const l=Date.now();fetch(n).then((r=>r.ok?((r,s,o)=>{(\"arrayBuffer\"===t.type?r.arrayBuffer():\"json\"===t.type?r.json():r.text()).then((t=>{a||(s&&o&&function(t,e,r){if(E(),!B)return;const n={status:e.status,statusText:e.statusText,headers:new Headers};e.headers.forEach(((t,e)=>n.headers.set(e,t)));const i=x(e.headers.get(\"Cache-Control\")||\"\");i[\"no-store\"]||(i[\"max-age\"]&&n.headers.set(\"Expires\",new Date(r+1e3*i[\"max-age\"]).toUTCString()),new Date(n.headers.get(\"Expires\")).getTime()-r<42e4||function(t,e){if(void 0===C)try{new Response(new ReadableStream),C=!0;}catch(t){C=!1;}C?e(t.body):t.blob().then(e);}(e,(e=>{const r=new Response(e,n);E(),B&&B.then((e=>e.put(function(t){const e=t.indexOf(\"?\");return e<0?t:t.slice(0,e)}(t.url),r))).catch((t=>d(t.message)));})));}(n,s,o),i=!0,e(null,t,r.headers.get(\"Cache-Control\"),r.headers.get(\"Expires\")));})).catch((t=>{a||e(new Error(t.message));}));})(r,null,l):r.blob().then((n=>e(new q(r.status,r.statusText,t.url,n)))))).catch((t=>{20!==t.code&&e(new Error(t.message));}));})(),{cancel:()=>{a=!0,i||r.abort();}}}const Z=function(t,e){if(/:\\/\\//.test(t.url)&&!/^https?:|^file:/.test(t.url)){if(g()&&self.worker&&self.worker.actor)return self.worker.actor.send(\"getResource\",t,e);if(!g()){const r=t.url.substring(0,t.url.indexOf(\"://\"));return (M.REGISTERED_PROTOCOLS[r]||N)(t,e)}}if(!(/^file:/.test(r=t.url)||/^file:/.test(j())&&!/^\\w+:/.test(r))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,\"signal\"))return N(t,e);if(g()&&self.worker&&self.worker.actor)return self.worker.actor.send(\"getResource\",t,e,void 0,!0)}var r;return function(t,e){const r=new XMLHttpRequest;r.open(t.method||\"GET\",t.url,!0),\"arrayBuffer\"===t.type&&(r.responseType=\"arraybuffer\");for(const e in t.headers)r.setRequestHeader(e,t.headers[e]);return \"json\"===t.type&&(r.responseType=\"text\",r.setRequestHeader(\"Accept\",\"application/json\")),r.withCredentials=\"include\"===t.credentials,r.onerror=()=>{e(new Error(r.statusText));},r.onload=()=>{if((r.status>=200&&r.status<300||0===r.status)&&null!==r.response){let n=r.response;if(\"json\"===t.type)try{n=JSON.parse(r.response);}catch(t){return e(t)}e(null,n,r.getResponseHeader(\"Cache-Control\"),r.getResponseHeader(\"Expires\"));}else {const n=new Blob([r.response],{type:r.getResponseHeader(\"Content-Type\")});e(new q(r.status,r.statusText,t.url,n));}},r.send(t.body),{cancel:()=>r.abort()}}(t,e)},K=function(t,e){return Z(o(t,{type:\"arrayBuffer\"}),e)};function G(t){const e=window.document.createElement(\"a\");return e.href=t,e.protocol===window.document.location.protocol&&e.host===window.document.location.host}const J=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=\";let X,Y;X=[],Y=0;const H=function(t,e){if(T.supported&&(t.headers||(t.headers={}),t.headers.accept=\"image/webp,*/*\"),Y>=M.MAX_PARALLEL_IMAGE_REQUESTS){const r={requestParameters:t,callback:e,cancelled:!1,cancel(){this.cancelled=!0;}};return X.push(r),r}Y++;let r=!1;const n=()=>{if(!r)for(r=!0,Y--;X.length&&Y{n(),t?e(t):r&&function(t,e){\"function\"==typeof createImageBitmap?function(t,e){const r=new Blob([new Uint8Array(t)],{type:\"image/png\"});createImageBitmap(r).then((t=>{e(null,t);})).catch((t=>{e(new Error(`Could not load image because of ${t.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`));}));}(t,e):function(t,e){const r=new Image;r.onload=()=>{e(null,r),URL.revokeObjectURL(r.src),r.onload=null,window.requestAnimationFrame((()=>{r.src=J;}));},r.onerror=()=>e(new Error(\"Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\"));const n=new Blob([new Uint8Array(t)],{type:\"image/png\"});r.src=t.byteLength?URL.createObjectURL(n):J;}(t,e);}(r,((t,r)=>{null!=t?e(t):null!=r&&e(null,r,{cacheControl:i,expires:a});}));}));return {cancel:()=>{i.cancel(),n();}}};function W(t,e,r){r[t]&&-1!==r[t].indexOf(e)||(r[t]=r[t]||[],r[t].push(e));}function Q(t,e,r){if(r&&r[t]){const n=r[t].indexOf(e);-1!==n&&r[t].splice(n,1);}}class tt{constructor(t,e={}){o(this,e),this.type=t;}}class et extends tt{constructor(t,e={}){super(\"error\",o({error:t},e));}}class rt{on(t,e){return this._listeners=this._listeners||{},W(t,e,this._listeners),this}off(t,e){return Q(t,e,this._listeners),Q(t,e,this._oneTimeListeners),this}once(t,e){return this._oneTimeListeners=this._oneTimeListeners||{},W(t,e,this._oneTimeListeners),this}fire(t,e){\"string\"==typeof t&&(t=new tt(t,e||{}));const r=t.type;if(this.listens(r)){t.target=this;const e=this._listeners&&this._listeners[r]?this._listeners[r].slice():[];for(const r of e)r.call(this,t);const n=this._oneTimeListeners&&this._oneTimeListeners[r]?this._oneTimeListeners[r].slice():[];for(const e of n)Q(r,e,this._oneTimeListeners),e.call(this,t);const i=this._eventedParent;i&&(o(t,\"function\"==typeof this._eventedParentData?this._eventedParentData():this._eventedParentData),i.fire(t));}else t instanceof et&&console.error(t.error);return this}listens(t){return this._listeners&&this._listeners[t]&&this._listeners[t].length>0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)}setEventedParent(t,e){return this._eventedParent=t,this._eventedParentData=e,this}}var nt={$version:8,$root:{version:{required:!0,type:\"enum\",values:[8]},name:{type:\"string\"},metadata:{type:\"*\"},center:{type:\"array\",value:\"number\"},zoom:{type:\"number\"},bearing:{type:\"number\",default:0,period:360,units:\"degrees\"},pitch:{type:\"number\",default:0,units:\"degrees\"},light:{type:\"light\"},terrain:{type:\"terrain\"},sources:{required:!0,type:\"sources\"},sprite:{type:\"string\"},glyphs:{type:\"string\"},transition:{type:\"transition\"},layers:{required:!0,type:\"array\",value:\"layer\"}},sources:{\"*\":{type:\"source\"}},source:[\"source_vector\",\"source_raster\",\"source_raster_dem\",\"source_geojson\",\"source_video\",\"source_image\"],source_vector:{type:{required:!0,type:\"enum\",values:{vector:{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:\"enum\",values:{xyz:{},tms:{}},default:\"xyz\"},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},attribution:{type:\"string\"},promoteId:{type:\"promoteId\"},volatile:{type:\"boolean\",default:!1},\"*\":{type:\"*\"}},source_raster:{type:{required:!0,type:\"enum\",values:{raster:{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},tileSize:{type:\"number\",default:512,units:\"pixels\"},scheme:{type:\"enum\",values:{xyz:{},tms:{}},default:\"xyz\"},attribution:{type:\"string\"},volatile:{type:\"boolean\",default:!1},\"*\":{type:\"*\"}},source_raster_dem:{type:{required:!0,type:\"enum\",values:{\"raster-dem\":{}}},url:{type:\"string\"},tiles:{type:\"array\",value:\"string\"},bounds:{type:\"array\",value:\"number\",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:\"number\",default:0},maxzoom:{type:\"number\",default:22},tileSize:{type:\"number\",default:512,units:\"pixels\"},attribution:{type:\"string\"},encoding:{type:\"enum\",values:{terrarium:{},mapbox:{}},default:\"mapbox\"},volatile:{type:\"boolean\",default:!1},\"*\":{type:\"*\"}},source_geojson:{type:{required:!0,type:\"enum\",values:{geojson:{}}},data:{type:\"*\"},maxzoom:{type:\"number\",default:18},attribution:{type:\"string\"},buffer:{type:\"number\",default:128,maximum:512,minimum:0},filter:{type:\"*\"},tolerance:{type:\"number\",default:.375},cluster:{type:\"boolean\",default:!1},clusterRadius:{type:\"number\",default:50,minimum:0},clusterMaxZoom:{type:\"number\"},clusterMinPoints:{type:\"number\"},clusterProperties:{type:\"*\"},lineMetrics:{type:\"boolean\",default:!1},generateId:{type:\"boolean\",default:!1},promoteId:{type:\"promoteId\"}},source_video:{type:{required:!0,type:\"enum\",values:{video:{}}},urls:{required:!0,type:\"array\",value:\"string\"},coordinates:{required:!0,type:\"array\",length:4,value:{type:\"array\",length:2,value:\"number\"}}},source_image:{type:{required:!0,type:\"enum\",values:{image:{}}},url:{required:!0,type:\"string\"},coordinates:{required:!0,type:\"array\",length:4,value:{type:\"array\",length:2,value:\"number\"}}},layer:{id:{type:\"string\",required:!0},type:{type:\"enum\",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},\"fill-extrusion\":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:\"*\"},source:{type:\"string\"},\"source-layer\":{type:\"string\"},minzoom:{type:\"number\",minimum:0,maximum:24},maxzoom:{type:\"number\",minimum:0,maximum:24},filter:{type:\"filter\"},layout:{type:\"layout\"},paint:{type:\"paint\"}},layout:[\"layout_fill\",\"layout_line\",\"layout_circle\",\"layout_heatmap\",\"layout_fill-extrusion\",\"layout_symbol\",\"layout_raster\",\"layout_hillshade\",\"layout_background\"],layout_background:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_fill:{\"fill-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_circle:{\"circle-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_heatmap:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},\"layout_fill-extrusion\":{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_line:{\"line-cap\":{type:\"enum\",values:{butt:{},round:{},square:{}},default:\"butt\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-join\":{type:\"enum\",values:{bevel:{},round:{},miter:{}},default:\"miter\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"line-miter-limit\":{type:\"number\",default:2,requires:[{\"line-join\":\"miter\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-round-limit\":{type:\"number\",default:1.05,requires:[{\"line-join\":\"round\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_symbol:{\"symbol-placement\":{type:\"enum\",values:{point:{},line:{},\"line-center\":{}},default:\"point\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-spacing\":{type:\"number\",default:250,minimum:1,units:\"pixels\",requires:[{\"symbol-placement\":\"line\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-avoid-edges\":{type:\"boolean\",default:!1,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"symbol-sort-key\":{type:\"number\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"symbol-z-order\":{type:\"enum\",values:{auto:{},\"viewport-y\":{},source:{}},default:\"auto\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-allow-overlap\":{type:\"boolean\",default:!1,requires:[\"icon-image\",{\"!\":\"icon-overlap\"}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-overlap\":{type:\"enum\",values:{never:{},always:{},cooperative:{}},requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-ignore-placement\":{type:\"boolean\",default:!1,requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-optional\":{type:\"boolean\",default:!1,requires:[\"icon-image\",\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-rotation-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-size\":{type:\"number\",default:1,minimum:0,units:\"factor of the original icon size\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-text-fit\":{type:\"enum\",values:{none:{},width:{},height:{},both:{}},default:\"none\",requires:[\"icon-image\",\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-text-fit-padding\":{type:\"array\",value:\"number\",length:4,default:[0,0,0,0],units:\"pixels\",requires:[\"icon-image\",\"text-field\",{\"icon-text-fit\":[\"both\",\"width\",\"height\"]}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-image\":{type:\"resolvedImage\",tokens:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-rotate\":{type:\"number\",default:0,period:360,units:\"degrees\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-padding\":{type:\"padding\",default:[2],units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-keep-upright\":{type:\"boolean\",default:!1,requires:[\"icon-image\",{\"icon-rotation-alignment\":\"map\"},{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-offset\":{type:\"array\",value:\"number\",length:2,default:[0,0],requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-anchor\":{type:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},default:\"center\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"icon-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{},auto:{}},default:\"auto\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-rotation-alignment\":{type:\"enum\",values:{map:{},viewport:{},\"viewport-glyph\":{},auto:{}},default:\"auto\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-field\":{type:\"formatted\",default:\"\",tokens:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-font\":{type:\"array\",value:\"string\",default:[\"Open Sans Regular\",\"Arial Unicode MS Regular\"],requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-size\":{type:\"number\",default:16,minimum:0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-max-width\":{type:\"number\",default:10,minimum:0,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-line-height\":{type:\"number\",default:1.2,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-letter-spacing\":{type:\"number\",default:0,units:\"ems\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-justify\":{type:\"enum\",values:{auto:{},left:{},center:{},right:{}},default:\"center\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-radial-offset\":{type:\"number\",units:\"ems\",default:0,requires:[\"text-field\"],\"property-type\":\"data-driven\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]}},\"text-variable-anchor\":{type:\"array\",value:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},requires:[\"text-field\",{\"symbol-placement\":[\"point\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-anchor\":{type:\"enum\",values:{center:{},left:{},right:{},top:{},bottom:{},\"top-left\":{},\"top-right\":{},\"bottom-left\":{},\"bottom-right\":{}},default:\"center\",requires:[\"text-field\",{\"!\":\"text-variable-anchor\"}],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-max-angle\":{type:\"number\",default:45,units:\"degrees\",requires:[\"text-field\",{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-writing-mode\":{type:\"array\",value:\"enum\",values:{horizontal:{},vertical:{}},requires:[\"text-field\",{\"symbol-placement\":[\"point\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-rotate\":{type:\"number\",default:0,period:360,units:\"degrees\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-padding\":{type:\"number\",default:2,minimum:0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-keep-upright\":{type:\"boolean\",default:!0,requires:[\"text-field\",{\"text-rotation-alignment\":\"map\"},{\"symbol-placement\":[\"line\",\"line-center\"]}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-transform\":{type:\"enum\",values:{none:{},uppercase:{},lowercase:{}},default:\"none\",requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-offset\":{type:\"array\",value:\"number\",units:\"ems\",length:2,default:[0,0],requires:[\"text-field\",{\"!\":\"text-radial-offset\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"text-allow-overlap\":{type:\"boolean\",default:!1,requires:[\"text-field\",{\"!\":\"text-overlap\"}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-overlap\":{type:\"enum\",values:{never:{},always:{},cooperative:{}},requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-ignore-placement\":{type:\"boolean\",default:!1,requires:[\"text-field\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-optional\":{type:\"boolean\",default:!1,requires:[\"text-field\",\"icon-image\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_raster:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},layout_hillshade:{visibility:{type:\"enum\",values:{visible:{},none:{}},default:\"visible\",\"property-type\":\"constant\"}},filter:{type:\"array\",value:\"*\"},filter_operator:{type:\"enum\",values:{\"==\":{},\"!=\":{},\">\":{},\">=\":{},\"<\":{},\"<=\":{},in:{},\"!in\":{},all:{},any:{},none:{},has:{},\"!has\":{},within:{}}},geometry_type:{type:\"enum\",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:\"expression\"},stops:{type:\"array\",value:\"function_stop\"},base:{type:\"number\",default:1,minimum:0},property:{type:\"string\",default:\"$zoom\"},type:{type:\"enum\",values:{identity:{},exponential:{},interval:{},categorical:{}},default:\"exponential\"},colorSpace:{type:\"enum\",values:{rgb:{},lab:{},hcl:{}},default:\"rgb\"},default:{type:\"*\",required:!1}},function_stop:{type:\"array\",minimum:0,maximum:24,value:[\"number\",\"color\"],length:2},expression:{type:\"array\",value:\"*\",minimum:1},light:{anchor:{type:\"enum\",default:\"viewport\",values:{map:{},viewport:{}},\"property-type\":\"data-constant\",transition:!1,expression:{interpolated:!1,parameters:[\"zoom\"]}},position:{type:\"array\",default:[1.15,210,30],length:3,value:\"number\",\"property-type\":\"data-constant\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]}},color:{type:\"color\",\"property-type\":\"data-constant\",default:\"#ffffff\",expression:{interpolated:!0,parameters:[\"zoom\"]},transition:!0},intensity:{type:\"number\",\"property-type\":\"data-constant\",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:[\"zoom\"]},transition:!0}},terrain:{source:{type:\"string\",required:!0},exaggeration:{type:\"number\",minimum:0,default:1},elevationOffset:{type:\"number\",default:450}},paint:[\"paint_fill\",\"paint_line\",\"paint_circle\",\"paint_heatmap\",\"paint_fill-extrusion\",\"paint_symbol\",\"paint_raster\",\"paint_hillshade\",\"paint_background\"],paint_fill:{\"fill-antialias\":{type:\"boolean\",default:!0,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"fill-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-outline-color\":{type:\"color\",transition:!0,requires:[{\"!\":\"fill-pattern\"},{\"fill-antialias\":!0}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"fill-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"}},\"paint_fill-extrusion\":{\"fill-extrusion-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"fill-extrusion-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"fill-extrusion-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"fill-extrusion-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"},\"fill-extrusion-height\":{type:\"number\",default:0,minimum:0,units:\"meters\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-base\":{type:\"number\",default:0,minimum:0,units:\"meters\",transition:!0,requires:[\"fill-extrusion-height\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"fill-extrusion-vertical-gradient\":{type:\"boolean\",default:!0,transition:!1,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_line:{\"line-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"line-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"line-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"line-width\":{type:\"number\",default:1,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-gap-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-offset\":{type:\"number\",default:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"line-dasharray\":{type:\"array\",value:\"number\",minimum:0,transition:!0,units:\"line widths\",requires:[{\"!\":\"line-pattern\"}],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"cross-faded\"},\"line-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"cross-faded-data-driven\"},\"line-gradient\":{type:\"color\",transition:!1,requires:[{\"!\":\"line-dasharray\"},{\"!\":\"line-pattern\"},{source:\"geojson\",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:[\"line-progress\"]},\"property-type\":\"color-ramp\"}},paint_circle:{\"circle-radius\":{type:\"number\",default:5,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-blur\":{type:\"number\",default:0,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"circle-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-pitch-scale\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-pitch-alignment\":{type:\"enum\",values:{map:{},viewport:{}},default:\"viewport\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"circle-stroke-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-stroke-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"circle-stroke-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"}},paint_heatmap:{\"heatmap-radius\":{type:\"number\",default:30,minimum:1,transition:!0,units:\"pixels\",expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"heatmap-weight\":{type:\"number\",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"heatmap-intensity\":{type:\"number\",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"heatmap-color\":{type:\"color\",default:[\"interpolate\",[\"linear\"],[\"heatmap-density\"],0,\"rgba(0, 0, 255, 0)\",.1,\"royalblue\",.3,\"cyan\",.5,\"lime\",.7,\"yellow\",1,\"red\"],transition:!1,expression:{interpolated:!0,parameters:[\"heatmap-density\"]},\"property-type\":\"color-ramp\"},\"heatmap-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_symbol:{\"icon-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-color\":{type:\"color\",default:\"rgba(0, 0, 0, 0)\",transition:!0,requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-halo-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"icon-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",requires:[\"icon-image\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"icon-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"icon-image\",\"icon-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-color\":{type:\"color\",default:\"#000000\",transition:!0,overridable:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-color\":{type:\"color\",default:\"rgba(0, 0, 0, 0)\",transition:!0,requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-width\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-halo-blur\":{type:\"number\",default:0,minimum:0,transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\",\"feature-state\"]},\"property-type\":\"data-driven\"},\"text-translate\":{type:\"array\",value:\"number\",length:2,default:[0,0],transition:!0,units:\"pixels\",requires:[\"text-field\"],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"text-translate-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"map\",requires:[\"text-field\",\"text-translate\"],expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_raster:{\"raster-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-hue-rotate\":{type:\"number\",default:0,period:360,transition:!0,units:\"degrees\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-brightness-min\":{type:\"number\",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-brightness-max\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-saturation\":{type:\"number\",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-contrast\":{type:\"number\",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-resampling\":{type:\"enum\",values:{linear:{},nearest:{}},default:\"linear\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"raster-fade-duration\":{type:\"number\",default:300,minimum:0,transition:!1,units:\"milliseconds\",expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_hillshade:{\"hillshade-illumination-direction\":{type:\"number\",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-illumination-anchor\":{type:\"enum\",values:{map:{},viewport:{}},default:\"viewport\",expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-exaggeration\":{type:\"number\",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-shadow-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-highlight-color\":{type:\"color\",default:\"#FFFFFF\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"hillshade-accent-color\":{type:\"color\",default:\"#000000\",transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},paint_background:{\"background-color\":{type:\"color\",default:\"#000000\",transition:!0,requires:[{\"!\":\"background-pattern\"}],expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"},\"background-pattern\":{type:\"resolvedImage\",transition:!0,expression:{interpolated:!1,parameters:[\"zoom\"]},\"property-type\":\"cross-faded\"},\"background-opacity\":{type:\"number\",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:[\"zoom\"]},\"property-type\":\"data-constant\"}},transition:{duration:{type:\"number\",default:300,minimum:0,units:\"milliseconds\"},delay:{type:\"number\",default:0,minimum:0,units:\"milliseconds\"}},\"property-type\":{\"data-driven\":{type:\"property-type\"},\"cross-faded\":{type:\"property-type\"},\"cross-faded-data-driven\":{type:\"property-type\"},\"color-ramp\":{type:\"property-type\"},\"data-constant\":{type:\"property-type\"},constant:{type:\"property-type\"}},promoteId:{\"*\":{type:\"string\"}}};class it{constructor(t,e,r,n){this.message=(t?`${t}: `:\"\")+r,n&&(this.identifier=n),null!=e&&e.__line__&&(this.line=e.__line__);}}function at(t){const e=t.value;return e?[new it(t.key,e,\"constants have been deprecated as of v8\")]:[]}function st(t,...e){for(const r of e)for(const e in r)t[e]=r[e];return t}function ot(t){return t instanceof Number||t instanceof String||t instanceof Boolean?t.valueOf():t}function lt(t){if(Array.isArray(t))return t.map(lt);if(t instanceof Object&&!(t instanceof Number||t instanceof String||t instanceof Boolean)){const e={};for(const r in t)e[r]=lt(t[r]);return e}return ot(t)}class ut extends Error{constructor(t,e){super(e),this.message=e,this.key=t;}}class ct{constructor(t,e=[]){this.parent=t,this.bindings={};for(const[t,r]of e)this.bindings[t]=r;}concat(t){return new ct(this,t)}get(t){if(this.bindings[t])return this.bindings[t];if(this.parent)return this.parent.get(t);throw new Error(`${t} not found in scope.`)}has(t){return !!this.bindings[t]||!!this.parent&&this.parent.has(t)}}const ht={kind:\"null\"},pt={kind:\"number\"},ft={kind:\"string\"},dt={kind:\"boolean\"},yt={kind:\"color\"},mt={kind:\"object\"},gt={kind:\"value\"},xt={kind:\"collator\"},vt={kind:\"formatted\"},bt={kind:\"padding\"},wt={kind:\"resolvedImage\"};function _t(t,e){return {kind:\"array\",itemType:t,N:e}}function At(t){if(\"array\"===t.kind){const e=At(t.itemType);return \"number\"==typeof t.N?`array<${e}, ${t.N}>`:\"value\"===t.itemType.kind?\"array\":`array<${e}>`}return t.kind}const kt=[ht,pt,ft,dt,yt,vt,mt,_t(gt),bt,wt];function St(t,e){if(\"error\"===e.kind)return null;if(\"array\"===t.kind){if(\"array\"===e.kind&&(0===e.N&&\"value\"===e.itemType.kind||!St(t.itemType,e.itemType))&&(\"number\"!=typeof t.N||t.N===e.N))return null}else {if(t.kind===e.kind)return null;if(\"value\"===t.kind)for(const t of kt)if(!St(t,e))return null}return `Expected ${At(t)} but found ${At(e)} instead.`}function It(t,e){return e.some((e=>e.kind===t.kind))}function Mt(t,e){return e.some((e=>\"null\"===e?null===t:\"array\"===e?Array.isArray(t):\"object\"===e?t&&!Array.isArray(t)&&\"object\"==typeof t:e===typeof t))}var zt,Bt={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Ct(t){return (t=Math.round(t))<0?0:t>255?255:t}function Pt(t){return Ct(\"%\"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function Vt(t){return (e=\"%\"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))<0?0:e>1?1:e;var e;}function Et(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}try{zt={}.parseCSSColor=function(t){var e,r=t.replace(/ /g,\"\").toLowerCase();if(r in Bt)return Bt[r].slice();if(\"#\"===r[0])return 4===r.length?(e=parseInt(r.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:7===r.length&&(e=parseInt(r.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var n=r.indexOf(\"(\"),i=r.indexOf(\")\");if(-1!==n&&i+1===r.length){var a=r.substr(0,n),s=r.substr(n+1,i-(n+1)).split(\",\"),o=1;switch(a){case\"rgba\":if(4!==s.length)return null;o=Vt(s.pop());case\"rgb\":return 3!==s.length?null:[Pt(s[0]),Pt(s[1]),Pt(s[2]),o];case\"hsla\":if(4!==s.length)return null;o=Vt(s.pop());case\"hsl\":if(3!==s.length)return null;var l=(parseFloat(s[0])%360+360)%360/360,u=Vt(s[1]),c=Vt(s[2]),h=c<=.5?c*(u+1):c+u-c*u,p=2*c-h;return [Ct(255*Et(p,h,l+1/3)),Ct(255*Et(p,h,l)),Ct(255*Et(p,h,l-1/3)),o];default:return null}}return null};}catch(t){}class Ft{constructor(t,e,r,n=1){this.r=t,this.g=e,this.b=r,this.a=n;}static parse(t){if(!t)return;if(t instanceof Ft)return t;if(\"string\"!=typeof t)return;const e=zt(t);return e?new Ft(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3]):void 0}toString(){const[t,e,r,n]=this.toArray();return `rgba(${Math.round(t)},${Math.round(e)},${Math.round(r)},${n})`}toArray(){const{r:t,g:e,b:r,a:n}=this;return 0===n?[0,0,0,0]:[255*t/n,255*e/n,255*r/n,n]}}Ft.black=new Ft(0,0,0,1),Ft.white=new Ft(1,1,1,1),Ft.transparent=new Ft(0,0,0,0),Ft.red=new Ft(1,0,0,1);class Tt{constructor(t,e,r){this.sensitivity=t?e?\"variant\":\"case\":e?\"accent\":\"base\",this.locale=r,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:\"search\"});}compare(t,e){return this.collator.compare(t,e)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class Lt{constructor(t,e,r,n,i){this.text=t,this.image=e,this.scale=r,this.fontStack=n,this.textColor=i;}}class Dt{constructor(t){this.sections=t;}static fromString(t){return new Dt([new Lt(t,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some((t=>0!==t.text.length||t.image&&0!==t.image.name.length))}static factory(t){return t instanceof Dt?t:Dt.fromString(t)}toString(){return 0===this.sections.length?\"\":this.sections.map((t=>t.text)).join(\"\")}}class $t{constructor(t){this.values=t.slice();}static parse(t){if(t instanceof $t)return t;if(\"number\"==typeof t)return new $t([t,t,t,t]);if(Array.isArray(t)&&!(t.length<1||t.length>4)){for(const e of t)if(\"number\"!=typeof e)return;switch(t.length){case 1:t=[t[0],t[0],t[0],t[0]];break;case 2:t=[t[0],t[1],t[0],t[1]];break;case 3:t=[t[0],t[1],t[2],t[1]];}return new $t(t)}}toString(){return JSON.stringify(this.values)}}class Rt{constructor(t){this.name=t.name,this.available=t.available;}toString(){return this.name}static fromString(t){return t?new Rt({name:t,available:!1}):null}}function Ot(t,e,r,n){return \"number\"==typeof t&&t>=0&&t<=255&&\"number\"==typeof e&&e>=0&&e<=255&&\"number\"==typeof r&&r>=0&&r<=255?void 0===n||\"number\"==typeof n&&n>=0&&n<=1?null:`Invalid rgba value [${[t,e,r,n].join(\", \")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(\"number\"==typeof n?[t,e,r,n]:[t,e,r]).join(\", \")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function Ut(t){if(null===t)return !0;if(\"string\"==typeof t)return !0;if(\"boolean\"==typeof t)return !0;if(\"number\"==typeof t)return !0;if(t instanceof Ft)return !0;if(t instanceof Tt)return !0;if(t instanceof Dt)return !0;if(t instanceof $t)return !0;if(t instanceof Rt)return !0;if(Array.isArray(t)){for(const e of t)if(!Ut(e))return !1;return !0}if(\"object\"==typeof t){for(const e in t)if(!Ut(t[e]))return !1;return !0}return !1}function qt(t){if(null===t)return ht;if(\"string\"==typeof t)return ft;if(\"boolean\"==typeof t)return dt;if(\"number\"==typeof t)return pt;if(t instanceof Ft)return yt;if(t instanceof Tt)return xt;if(t instanceof Dt)return vt;if(t instanceof $t)return bt;if(t instanceof Rt)return wt;if(Array.isArray(t)){const e=t.length;let r;for(const e of t){const t=qt(e);if(r){if(r===t)continue;r=gt;break}r=t;}return _t(r||gt,e)}return mt}function jt(t){const e=typeof t;return null===t?\"\":\"string\"===e||\"number\"===e||\"boolean\"===e?String(t):t instanceof Ft||t instanceof Dt||t instanceof $t||t instanceof Rt?t.toString():JSON.stringify(t)}class Nt{constructor(t,e){this.type=t,this.value=e;}static parse(t,e){if(2!==t.length)return e.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!Ut(t[1]))return e.error(\"invalid value\");const r=t[1];let n=qt(r);const i=e.expectedType;return \"array\"!==n.kind||0!==n.N||!i||\"array\"!==i.kind||\"number\"==typeof i.N&&0!==i.N||(n=i),new Nt(n,r)}evaluate(){return this.value}eachChild(){}outputDefined(){return !0}}class Zt{constructor(t){this.name=\"ExpressionEvaluationError\",this.message=t;}toJSON(){return this.message}}const Kt={string:ft,number:pt,boolean:dt,object:mt};class Gt{constructor(t,e){this.type=t,this.args=e;}static parse(t,e){if(t.length<2)return e.error(\"Expected at least one argument.\");let r,n=1;const i=t[0];if(\"array\"===i){let i,a;if(t.length>2){const r=t[1];if(\"string\"!=typeof r||!(r in Kt)||\"object\"===r)return e.error('The item type argument of \"array\" must be one of string, number, boolean',1);i=Kt[r],n++;}else i=gt;if(t.length>3){if(null!==t[2]&&(\"number\"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return e.error('The length argument to \"array\" must be a positive integer literal',2);a=t[2],n++;}r=_t(i,a);}else {if(!Kt[i])throw new Error(`Types doesn't contain name = ${i}`);r=Kt[i];}const a=[];for(;nt.outputDefined()))}}const Jt={\"to-boolean\":dt,\"to-color\":yt,\"to-number\":pt,\"to-string\":ft};class Xt{constructor(t,e){this.type=t,this.args=e;}static parse(t,e){if(t.length<2)return e.error(\"Expected at least one argument.\");const r=t[0];if(!Jt[r])throw new Error(`Can't parse ${r} as it is not part of the known types`);if((\"to-boolean\"===r||\"to-string\"===r)&&2!==t.length)return e.error(\"Expected one argument.\");const n=Jt[r],i=[];for(let r=1;r4?`Invalid rbga value ${JSON.stringify(e)}: expected an array containing either three or four numeric values.`:Ot(e[0],e[1],e[2],e[3]),!r))return new Ft(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new Zt(r||`Could not parse color from value '${\"string\"==typeof e?e:JSON.stringify(e)}'`)}if(\"padding\"===this.type.kind){let e;for(const r of this.args){e=r.evaluate(t);const n=$t.parse(e);if(n)return n}throw new Zt(`Could not parse padding from value '${\"string\"==typeof e?e:JSON.stringify(e)}'`)}if(\"number\"===this.type.kind){let e=null;for(const r of this.args){if(e=r.evaluate(t),null===e)return 0;const n=Number(e);if(!isNaN(n))return n}throw new Zt(`Could not convert ${JSON.stringify(e)} to number.`)}return \"formatted\"===this.type.kind?Dt.fromString(jt(this.args[0].evaluate(t))):\"resolvedImage\"===this.type.kind?Rt.fromString(jt(this.args[0].evaluate(t))):jt(this.args[0].evaluate(t))}eachChild(t){this.args.forEach(t);}outputDefined(){return this.args.every((t=>t.outputDefined()))}}const Yt=[\"Unknown\",\"Point\",\"LineString\",\"Polygon\"];class Ht{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null;}id(){return this.feature&&\"id\"in this.feature?this.feature.id:null}geometryType(){return this.feature?\"number\"==typeof this.feature.type?Yt[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&\"geometry\"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(t){let e=this._parseColorCache[t];return e||(e=this._parseColorCache[t]=Ft.parse(t)),e}}class Wt{constructor(t,e,r,n){this.name=t,this.type=e,this._evaluate=r,this.args=n;}evaluate(t){return this._evaluate(t,this.args)}eachChild(t){this.args.forEach(t);}outputDefined(){return !1}static parse(t,e){const r=t[0],n=Wt.definitions[r];if(!n)return e.error(`Unknown expression \"${r}\". If you wanted a literal array, use [\"literal\", [...]].`,0);const i=Array.isArray(n)?n[0]:n.type,a=Array.isArray(n)?[[n[1],n[2]]]:n.overloads,s=a.filter((([e])=>!Array.isArray(e)||e.length===t.length-1));let o=null;for(const[n,a]of s){o=new we(e.registry,e.path,null,e.scope);const s=[];let l=!1;for(let e=1;e{return e=t,Array.isArray(e)?`(${e.map(At).join(\", \")})`:`(${At(e.type)}...)`;var e;})).join(\" | \"),n=[];for(let r=1;r=e[2]||t[1]<=e[1]||t[3]>=e[3])}function ne(t,e){const r=(180+t[0])/360,n=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t[1]*Math.PI/360)))/360,i=Math.pow(2,e.z);return [Math.round(r*i*te),Math.round(n*i*te)]}function ie(t,e,r){const n=t[0]-e[0],i=t[1]-e[1],a=t[0]-r[0],s=t[1]-r[1];return n*s-a*i==0&&n*a<=0&&i*s<=0}function ae(t,e){let r=!1;for(let s=0,o=e.length;s(n=t)[1]!=(a=o[e+1])[1]>n[1]&&n[0]<(a[0]-i[0])*(n[1]-i[1])/(a[1]-i[1])+i[0]&&(r=!r);}}var n,i,a;return r}function se(t,e){for(let r=0;r0&&o<0||s<0&&o>0}function le(t,e,r){for(const u of r)for(let r=0;rr[2]){const e=.5*n;let i=t[0]-r[0]>e?-n:r[0]-t[0]>e?n:0;0===i&&(i=t[0]-r[2]>e?-n:r[2]-t[0]>e?n:0),t[0]+=i;}ee(e,t);}function de(t,e,r,n){const i=Math.pow(2,n.z)*te,a=[n.x*te,n.y*te],s=[];for(const n of t)for(const t of n){const n=[t.x+a[0],t.y+a[1]];fe(n,e,r,i),s.push(n);}return s}function ye(t,e,r,n){const i=Math.pow(2,n.z)*te,a=[n.x*te,n.y*te],s=[];for(const r of t){const t=[];for(const n of r){const r=[n.x+a[0],n.y+a[1]];ee(e,r),t.push(r);}s.push(t);}if(e[2]-e[0]<=i/2){(o=e)[0]=o[1]=1/0,o[2]=o[3]=-1/0;for(const t of s)for(const n of t)fe(n,e,r,i);}var o;return s}class me{constructor(t,e){this.type=dt,this.geojson=t,this.geometries=e;}static parse(t,e){if(2!==t.length)return e.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(Ut(t[1])){const e=t[1];if(\"FeatureCollection\"===e.type)for(let t=0;t{e&&!ge(t)&&(e=!1);})),e}function xe(t){if(t instanceof Wt&&\"feature-state\"===t.name)return !1;let e=!0;return t.eachChild((t=>{e&&!xe(t)&&(e=!1);})),e}function ve(t,e){if(t instanceof Wt&&e.indexOf(t.name)>=0)return !1;let r=!0;return t.eachChild((t=>{r&&!ve(t,e)&&(r=!1);})),r}class be{constructor(t,e){this.type=e.type,this.name=t,this.boundExpression=e;}static parse(t,e){if(2!==t.length||\"string\"!=typeof t[1])return e.error(\"'var' expression requires exactly one string literal argument.\");const r=t[1];return e.scope.has(r)?new be(r,e.scope.get(r)):e.error(`Unknown variable \"${r}\". Make sure \"${r}\" has been bound in an enclosing \"let\" expression before using it.`,1)}evaluate(t){return this.boundExpression.evaluate(t)}eachChild(){}outputDefined(){return !1}}class we{constructor(t,e=[],r,n=new ct,i=[]){this.registry=t,this.path=e,this.key=e.map((t=>`[${t}]`)).join(\"\"),this.scope=n,this.errors=i,this.expectedType=r;}parse(t,e,r,n,i={}){return e?this.concat(e,r,n)._parse(t,i):this._parse(t,i)}_parse(t,e){function r(t,e,r){return \"assert\"===r?new Gt(e,[t]):\"coerce\"===r?new Xt(e,[t]):t}if(null!==t&&\"string\"!=typeof t&&\"boolean\"!=typeof t&&\"number\"!=typeof t||(t=[\"literal\",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use [\"literal\", []].');const n=t[0];if(\"string\"!=typeof n)return this.error(`Expression name must be a string, but found ${typeof n} instead. If you wanted a literal array, use [\"literal\", [...]].`,0),null;const i=this.registry[n];if(i){let n=i.parse(t,this);if(!n)return null;if(this.expectedType){const t=this.expectedType,i=n.type;if(\"string\"!==t.kind&&\"number\"!==t.kind&&\"boolean\"!==t.kind&&\"object\"!==t.kind&&\"array\"!==t.kind||\"value\"!==i.kind)if(\"color\"!==t.kind&&\"formatted\"!==t.kind&&\"resolvedImage\"!==t.kind||\"value\"!==i.kind&&\"string\"!==i.kind)if(\"padding\"!==t.kind||\"value\"!==i.kind&&\"number\"!==i.kind&&\"array\"!==i.kind){if(this.checkSubtype(t,i))return null}else n=r(n,t,e.typeAnnotation||\"coerce\");else n=r(n,t,e.typeAnnotation||\"coerce\");else n=r(n,t,e.typeAnnotation||\"assert\");}if(!(n instanceof Nt)&&\"resolvedImage\"!==n.type.kind&&_e(n)){const t=new Ht;try{n=new Nt(n.type,n.evaluate(t));}catch(t){return this.error(t.message),null}}return n}return this.error(`Unknown expression \"${n}\". If you wanted a literal array, use [\"literal\", [...]].`,0)}return this.error(void 0===t?\"'undefined' value invalid. Use null instead.\":\"object\"==typeof t?'Bare objects invalid. Use [\"literal\", {...}] instead.':`Expected an array, but found ${typeof t} instead.`)}concat(t,e,r){const n=\"number\"==typeof t?this.path.concat(t):this.path,i=r?this.scope.concat(r):this.scope;return new we(this.registry,n,e||null,i,this.errors)}error(t,...e){const r=`${this.key}${e.map((t=>`[${t}]`)).join(\"\")}`;this.errors.push(new ut(r,t));}checkSubtype(t,e){const r=St(t,e);return r&&this.error(r),r}}function _e(t){if(t instanceof be)return _e(t.boundExpression);if(t instanceof Wt&&\"error\"===t.name)return !1;if(t instanceof Qt)return !1;if(t instanceof me)return !1;const e=t instanceof Xt||t instanceof Gt;let r=!0;return t.eachChild((t=>{r=e?r&&_e(t):r&&t instanceof Nt;})),!!r&&ge(t)&&ve(t,[\"zoom\",\"heatmap-density\",\"line-progress\",\"accumulated\",\"is-supported-script\"])}function Ae(t,e){const r=t.length-1;let n,i,a=0,s=r,o=0;for(;a<=s;)if(o=Math.floor((a+s)/2),n=t[o],i=t[o+1],n<=e){if(o===r||ee))throw new Zt(\"Input is not a number.\");s=o-1;}return 0}class ke{constructor(t,e,r){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(const[t,e]of r)this.labels.push(t),this.outputs.push(e);}static parse(t,e){if(t.length-1<4)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return e.error(\"Expected an even number of arguments.\");const r=e.parse(t[1],1,pt);if(!r)return null;const n=[];let i=null;e.expectedType&&\"value\"!==e.expectedType.kind&&(i=e.expectedType);for(let r=1;r=a)return e.error('Input/output pairs for \"step\" expressions must be arranged with input values in strictly ascending order.',o);const u=e.parse(s,l,i);if(!u)return null;i=i||u.type,n.push([a,u]);}return new ke(i,r,n)}evaluate(t){const e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);const n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);const i=e.length;return n>=e[i-1]?r[i-1].evaluate(t):r[Ae(e,n)].evaluate(t)}eachChild(t){t(this.input);for(const e of this.outputs)t(e);}outputDefined(){return this.outputs.every((t=>t.outputDefined()))}}function Se(t,e,r){return t*(1-r)+e*r}var Ie=Object.freeze({__proto__:null,number:Se,color:function(t,e,r){return new Ft(Se(t.r,e.r,r),Se(t.g,e.g,r),Se(t.b,e.b,r),Se(t.a,e.a,r))},array:function(t,e,r){return t.map(((t,n)=>Se(t,e[n],r)))},padding:function(t,e,r){const n=t.values,i=e.values;return new $t([Se(n[0],i[0],r),Se(n[1],i[1],r),Se(n[2],i[2],r),Se(n[3],i[3],r)])}});const Me=.95047,ze=1.08883,Be=4/29,Ce=6/29,Pe=3*Ce*Ce,Ve=Math.PI/180,Ee=180/Math.PI;function Fe(t){return t>.008856451679035631?Math.pow(t,1/3):t/Pe+Be}function Te(t){return t>Ce?t*t*t:Pe*(t-Be)}function Le(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function De(t){return (t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function $e(t){const e=De(t.r),r=De(t.g),n=De(t.b),i=Fe((.4124564*e+.3575761*r+.1804375*n)/Me),a=Fe((.2126729*e+.7151522*r+.072175*n)/1);return {l:116*a-16,a:500*(i-a),b:200*(a-Fe((.0193339*e+.119192*r+.9503041*n)/ze)),alpha:t.a}}function Re(t){let e=(t.l+16)/116,r=isNaN(t.a)?e:e+t.a/500,n=isNaN(t.b)?e:e-t.b/200;return e=1*Te(e),r=Me*Te(r),n=ze*Te(n),new Ft(Le(3.2404542*r-1.5371385*e-.4985314*n),Le(-.969266*r+1.8760108*e+.041556*n),Le(.0556434*r-.2040259*e+1.0572252*n),t.alpha)}function Oe(t,e,r){const n=e-t;return t+r*(n>180||n<-180?n-360*Math.round(n/360):n)}const Ue={forward:$e,reverse:Re,interpolate:function(t,e,r){return {l:Se(t.l,e.l,r),a:Se(t.a,e.a,r),b:Se(t.b,e.b,r),alpha:Se(t.alpha,e.alpha,r)}}},qe={forward:function(t){const{l:e,a:r,b:n}=$e(t),i=Math.atan2(n,r)*Ee;return {h:i<0?i+360:i,c:Math.sqrt(r*r+n*n),l:e,alpha:t.a}},reverse:function(t){const e=t.h*Ve,r=t.c;return Re({l:t.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:t.alpha})},interpolate:function(t,e,r){return {h:Oe(t.h,e.h,r),c:Se(t.c,e.c,r),l:Se(t.l,e.l,r),alpha:Se(t.alpha,e.alpha,r)}}};var je=Object.freeze({__proto__:null,lab:Ue,hcl:qe});class Ne{constructor(t,e,r,n,i){this.type=t,this.operator=e,this.interpolation=r,this.input=n,this.labels=[],this.outputs=[];for(const[t,e]of i)this.labels.push(t),this.outputs.push(e);}static interpolationFactor(t,r,n,i){let a=0;if(\"exponential\"===t.name)a=Ze(r,t.base,n,i);else if(\"linear\"===t.name)a=Ze(r,1,n,i);else if(\"cubic-bezier\"===t.name){const s=t.controlPoints;a=new e(s[0],s[1],s[2],s[3]).solve(Ze(r,1,n,i));}return a}static parse(t,e){let[r,n,i,...a]=t;if(!Array.isArray(n)||0===n.length)return e.error(\"Expected an interpolation type expression.\",1);if(\"linear\"===n[0])n={name:\"linear\"};else if(\"exponential\"===n[0]){const t=n[1];if(\"number\"!=typeof t)return e.error(\"Exponential interpolation requires a numeric base.\",1,1);n={name:\"exponential\",base:t};}else {if(\"cubic-bezier\"!==n[0])return e.error(`Unknown interpolation type ${String(n[0])}`,1,0);{const t=n.slice(1);if(4!==t.length||t.some((t=>\"number\"!=typeof t||t<0||t>1)))return e.error(\"Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.\",1);n={name:\"cubic-bezier\",controlPoints:t};}}if(t.length-1<4)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return e.error(\"Expected an even number of arguments.\");if(i=e.parse(i,2,pt),!i)return null;const s=[];let o=null;\"interpolate-hcl\"===r||\"interpolate-lab\"===r?o=yt:e.expectedType&&\"value\"!==e.expectedType.kind&&(o=e.expectedType);for(let t=0;t=r)return e.error('Input/output pairs for \"interpolate\" expressions must be arranged with input values in strictly ascending order.',i);const u=e.parse(n,l,o);if(!u)return null;o=o||u.type,s.push([r,u]);}return \"number\"===o.kind||\"color\"===o.kind||\"padding\"===o.kind||\"array\"===o.kind&&\"number\"===o.itemType.kind&&\"number\"==typeof o.N?new Ne(o,r,n,i,s):e.error(`Type ${At(o)} is not interpolatable.`)}evaluate(t){const e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);const n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);const i=e.length;if(n>=e[i-1])return r[i-1].evaluate(t);const a=Ae(e,n),s=Ne.interpolationFactor(this.interpolation,n,e[a],e[a+1]),o=r[a].evaluate(t),l=r[a+1].evaluate(t);return \"interpolate\"===this.operator?Ie[this.type.kind.toLowerCase()](o,l,s):\"interpolate-hcl\"===this.operator?qe.reverse(qe.interpolate(qe.forward(o),qe.forward(l),s)):Ue.reverse(Ue.interpolate(Ue.forward(o),Ue.forward(l),s))}eachChild(t){t(this.input);for(const e of this.outputs)t(e);}outputDefined(){return this.outputs.every((t=>t.outputDefined()))}}function Ze(t,e,r,n){const i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}class Ke{constructor(t,e){this.type=t,this.args=e;}static parse(t,e){if(t.length<2)return e.error(\"Expectected at least one argument.\");let r=null;const n=e.expectedType;n&&\"value\"!==n.kind&&(r=n);const i=[];for(const n of t.slice(1)){const t=e.parse(n,1+i.length,r,void 0,{typeAnnotation:\"omit\"});if(!t)return null;r=r||t.type,i.push(t);}if(!r)throw new Error(\"No output type\");const a=n&&i.some((t=>St(n,t.type)));return new Ke(a?gt:r,i)}evaluate(t){let e,r=null,n=0;for(const i of this.args)if(n++,r=i.evaluate(t),r&&r instanceof Rt&&!r.available&&(e||(e=r.name),r=null,n===this.args.length&&(r=e)),null!==r)break;return r}eachChild(t){this.args.forEach(t);}outputDefined(){return this.args.every((t=>t.outputDefined()))}}class Ge{constructor(t,e){this.type=e.type,this.bindings=[].concat(t),this.result=e;}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const e of this.bindings)t(e[1]);t(this.result);}static parse(t,e){if(t.length<4)return e.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);const r=[];for(let n=1;n=r.length)throw new Zt(`Array index out of bounds: ${e} > ${r.length-1}.`);if(e!==Math.floor(e))throw new Zt(`Array index must be an integer, but found ${e} instead.`);return r[e]}eachChild(t){t(this.index),t(this.input);}outputDefined(){return !1}}class Xe{constructor(t,e){this.type=dt,this.needle=t,this.haystack=e;}static parse(t,e){if(3!==t.length)return e.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,gt),n=e.parse(t[2],2,gt);return r&&n?It(r.type,[dt,ft,pt,ht,gt])?new Xe(r,n):e.error(`Expected first argument to be of type boolean, string, number or null, but found ${At(r.type)} instead`):null}evaluate(t){const e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!r)return !1;if(!Mt(e,[\"boolean\",\"string\",\"number\",\"null\"]))throw new Zt(`Expected first argument to be of type boolean, string, number or null, but found ${At(qt(e))} instead.`);if(!Mt(r,[\"string\",\"array\"]))throw new Zt(`Expected second argument to be of type array or string, but found ${At(qt(r))} instead.`);return r.indexOf(e)>=0}eachChild(t){t(this.needle),t(this.haystack);}outputDefined(){return !0}}class Ye{constructor(t,e,r){this.type=pt,this.needle=t,this.haystack=e,this.fromIndex=r;}static parse(t,e){if(t.length<=2||t.length>=5)return e.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,gt),n=e.parse(t[2],2,gt);if(!r||!n)return null;if(!It(r.type,[dt,ft,pt,ht,gt]))return e.error(`Expected first argument to be of type boolean, string, number or null, but found ${At(r.type)} instead`);if(4===t.length){const i=e.parse(t[3],3,pt);return i?new Ye(r,n,i):null}return new Ye(r,n)}evaluate(t){const e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!Mt(e,[\"boolean\",\"string\",\"number\",\"null\"]))throw new Zt(`Expected first argument to be of type boolean, string, number or null, but found ${At(qt(e))} instead.`);if(!Mt(r,[\"string\",\"array\"]))throw new Zt(`Expected second argument to be of type array or string, but found ${At(qt(r))} instead.`);if(this.fromIndex){const n=this.fromIndex.evaluate(t);return r.indexOf(e,n)}return r.indexOf(e)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex);}outputDefined(){return !1}}class He{constructor(t,e,r,n,i,a){this.inputType=t,this.type=e,this.input=r,this.cases=n,this.outputs=i,this.otherwise=a;}static parse(t,e){if(t.length<5)return e.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return e.error(\"Expected an even number of arguments.\");let r,n;e.expectedType&&\"value\"!==e.expectedType.kind&&(n=e.expectedType);const i={},a=[];for(let s=2;sNumber.MAX_SAFE_INTEGER)return u.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(\"number\"==typeof t&&Math.floor(t)!==t)return u.error(\"Numeric branch labels must be integer values.\");if(r){if(u.checkSubtype(r,qt(t)))return null}else r=qt(t);if(void 0!==i[String(t)])return u.error(\"Branch labels must be unique.\");i[String(t)]=a.length;}const c=e.parse(l,s,n);if(!c)return null;n=n||c.type,a.push(c);}const s=e.parse(t[1],1,gt);if(!s)return null;const o=e.parse(t[t.length-1],t.length-1,n);return o?\"value\"!==s.type.kind&&e.concat(1).checkSubtype(r,s.type)?null:new He(r,n,s,i,a,o):null}evaluate(t){const e=this.input.evaluate(t);return (qt(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise);}outputDefined(){return this.outputs.every((t=>t.outputDefined()))&&this.otherwise.outputDefined()}}class We{constructor(t,e,r){this.type=t,this.branches=e,this.otherwise=r;}static parse(t,e){if(t.length<4)return e.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return e.error(\"Expected an odd number of arguments.\");let r;e.expectedType&&\"value\"!==e.expectedType.kind&&(r=e.expectedType);const n=[];for(let i=1;ie.outputDefined()))&&this.otherwise.outputDefined()}}class Qe{constructor(t,e,r,n){this.type=t,this.input=e,this.beginIndex=r,this.endIndex=n;}static parse(t,e){if(t.length<=2||t.length>=5)return e.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const r=e.parse(t[1],1,gt),n=e.parse(t[2],2,pt);if(!r||!n)return null;if(!It(r.type,[_t(gt),ft,gt]))return e.error(`Expected first argument to be of type array or string, but found ${At(r.type)} instead`);if(4===t.length){const i=e.parse(t[3],3,pt);return i?new Qe(r.type,r,n,i):null}return new Qe(r.type,r,n)}evaluate(t){const e=this.input.evaluate(t),r=this.beginIndex.evaluate(t);if(!Mt(e,[\"string\",\"array\"]))throw new Zt(`Expected first argument to be of type array or string, but found ${At(qt(e))} instead.`);if(this.endIndex){const n=this.endIndex.evaluate(t);return e.slice(r,n)}return e.slice(r)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex);}outputDefined(){return !1}}function tr(t,e){return \"==\"===t||\"!=\"===t?\"boolean\"===e.kind||\"string\"===e.kind||\"number\"===e.kind||\"null\"===e.kind||\"value\"===e.kind:\"string\"===e.kind||\"number\"===e.kind||\"value\"===e.kind}function er(t,e,r,n){return 0===n.compare(e,r)}function rr(t,e,r){const n=\"==\"!==t&&\"!=\"!==t;return class i{constructor(t,e,r){this.type=dt,this.lhs=t,this.rhs=e,this.collator=r,this.hasUntypedArgument=\"value\"===t.type.kind||\"value\"===e.type.kind;}static parse(t,e){if(3!==t.length&&4!==t.length)return e.error(\"Expected two or three arguments.\");const r=t[0];let a=e.parse(t[1],1,gt);if(!a)return null;if(!tr(r,a.type))return e.concat(1).error(`\"${r}\" comparisons are not supported for type '${At(a.type)}'.`);let s=e.parse(t[2],2,gt);if(!s)return null;if(!tr(r,s.type))return e.concat(2).error(`\"${r}\" comparisons are not supported for type '${At(s.type)}'.`);if(a.type.kind!==s.type.kind&&\"value\"!==a.type.kind&&\"value\"!==s.type.kind)return e.error(`Cannot compare types '${At(a.type)}' and '${At(s.type)}'.`);n&&(\"value\"===a.type.kind&&\"value\"!==s.type.kind?a=new Gt(s.type,[a]):\"value\"!==a.type.kind&&\"value\"===s.type.kind&&(s=new Gt(a.type,[s])));let o=null;if(4===t.length){if(\"string\"!==a.type.kind&&\"string\"!==s.type.kind&&\"value\"!==a.type.kind&&\"value\"!==s.type.kind)return e.error(\"Cannot use collator to compare non-string types.\");if(o=e.parse(t[3],3,xt),!o)return null}return new i(a,s,o)}evaluate(i){const a=this.lhs.evaluate(i),s=this.rhs.evaluate(i);if(n&&this.hasUntypedArgument){const e=qt(a),r=qt(s);if(e.kind!==r.kind||\"string\"!==e.kind&&\"number\"!==e.kind)throw new Zt(`Expected arguments for \"${t}\" to be (string, string) or (number, number), but found (${e.kind}, ${r.kind}) instead.`)}if(this.collator&&!n&&this.hasUntypedArgument){const t=qt(a),r=qt(s);if(\"string\"!==t.kind||\"string\"!==r.kind)return e(i,a,s)}return this.collator?r(i,a,s,this.collator.evaluate(i)):e(i,a,s)}eachChild(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator);}outputDefined(){return !0}}}const nr=rr(\"==\",(function(t,e,r){return e===r}),er),ir=rr(\"!=\",(function(t,e,r){return e!==r}),(function(t,e,r,n){return !er(0,e,r,n)})),ar=rr(\"<\",(function(t,e,r){return e\",(function(t,e,r){return e>r}),(function(t,e,r,n){return n.compare(e,r)>0})),or=rr(\"<=\",(function(t,e,r){return e<=r}),(function(t,e,r,n){return n.compare(e,r)<=0})),lr=rr(\">=\",(function(t,e,r){return e>=r}),(function(t,e,r,n){return n.compare(e,r)>=0}));class ur{constructor(t,e,r,n,i){this.type=ft,this.number=t,this.locale=e,this.currency=r,this.minFractionDigits=n,this.maxFractionDigits=i;}static parse(t,e){if(3!==t.length)return e.error(\"Expected two arguments.\");const r=e.parse(t[1],1,pt);if(!r)return null;const n=t[2];if(\"object\"!=typeof n||Array.isArray(n))return e.error(\"NumberFormat options argument must be an object.\");let i=null;if(n.locale&&(i=e.parse(n.locale,1,ft),!i))return null;let a=null;if(n.currency&&(a=e.parse(n.currency,1,ft),!a))return null;let s=null;if(n[\"min-fraction-digits\"]&&(s=e.parse(n[\"min-fraction-digits\"],1,pt),!s))return null;let o=null;return n[\"max-fraction-digits\"]&&(o=e.parse(n[\"max-fraction-digits\"],1,pt),!o)?null:new ur(r,i,a,s,o)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?\"currency\":\"decimal\",currency:this.currency?this.currency.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits);}outputDefined(){return !1}}class cr{constructor(t){this.type=vt,this.sections=t;}static parse(t,e){if(t.length<2)return e.error(\"Expected at least one argument.\");const r=t[1];if(!Array.isArray(r)&&\"object\"==typeof r)return e.error(\"First argument must be an image or text section.\");const n=[];let i=!1;for(let r=1;r<=t.length-1;++r){const a=t[r];if(i&&\"object\"==typeof a&&!Array.isArray(a)){i=!1;let t=null;if(a[\"font-scale\"]&&(t=e.parse(a[\"font-scale\"],1,pt),!t))return null;let r=null;if(a[\"text-font\"]&&(r=e.parse(a[\"text-font\"],1,_t(ft)),!r))return null;let s=null;if(a[\"text-color\"]&&(s=e.parse(a[\"text-color\"],1,yt),!s))return null;const o=n[n.length-1];o.scale=t,o.font=r,o.textColor=s;}else {const a=e.parse(t[r],1,gt);if(!a)return null;const s=a.type.kind;if(\"string\"!==s&&\"value\"!==s&&\"null\"!==s&&\"resolvedImage\"!==s)return e.error(\"Formatted text type must be 'string', 'value', 'image' or 'null'.\");i=!0,n.push({content:a,scale:null,font:null,textColor:null});}}return new cr(n)}evaluate(t){return new Dt(this.sections.map((e=>{const r=e.content.evaluate(t);return qt(r)===wt?new Lt(\"\",r,null,null,null):new Lt(jt(r),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(\",\"):null,e.textColor?e.textColor.evaluate(t):null)})))}eachChild(t){for(const e of this.sections)t(e.content),e.scale&&t(e.scale),e.font&&t(e.font),e.textColor&&t(e.textColor);}outputDefined(){return !1}}class hr{constructor(t){this.type=wt,this.input=t;}static parse(t,e){if(2!==t.length)return e.error(\"Expected two arguments.\");const r=e.parse(t[1],1,ft);return r?new hr(r):e.error(\"No image name provided.\")}evaluate(t){const e=this.input.evaluate(t),r=Rt.fromString(e);return r&&t.availableImages&&(r.available=t.availableImages.indexOf(e)>-1),r}eachChild(t){t(this.input);}outputDefined(){return !1}}class pr{constructor(t){this.type=pt,this.input=t;}static parse(t,e){if(2!==t.length)return e.error(`Expected 1 argument, but found ${t.length-1} instead.`);const r=e.parse(t[1],1);return r?\"array\"!==r.type.kind&&\"string\"!==r.type.kind&&\"value\"!==r.type.kind?e.error(`Expected argument of type string or array, but found ${At(r.type)} instead.`):new pr(r):null}evaluate(t){const e=this.input.evaluate(t);if(\"string\"==typeof e)return e.length;if(Array.isArray(e))return e.length;throw new Zt(`Expected value to be of type string or array, but found ${At(qt(e))} instead.`)}eachChild(t){t(this.input);}outputDefined(){return !1}}const fr={\"==\":nr,\"!=\":ir,\">\":sr,\"<\":ar,\">=\":lr,\"<=\":or,array:Gt,at:Je,boolean:Gt,case:We,coalesce:Ke,collator:Qt,format:cr,image:hr,in:Xe,\"index-of\":Ye,interpolate:Ne,\"interpolate-hcl\":Ne,\"interpolate-lab\":Ne,length:pr,let:Ge,literal:Nt,match:He,number:Gt,\"number-format\":ur,object:Gt,slice:Qe,step:ke,string:Gt,\"to-boolean\":Xt,\"to-color\":Xt,\"to-number\":Xt,\"to-string\":Xt,var:be,within:me};function dr(t,[e,r,n,i]){e=e.evaluate(t),r=r.evaluate(t),n=n.evaluate(t);const a=i?i.evaluate(t):1,s=Ot(e,r,n,a);if(s)throw new Zt(s);return new Ft(e/255*a,r/255*a,n/255*a,a)}function yr(t,e){return t in e}function mr(t,e){const r=e[t];return void 0===r?null:r}function gr(t){return {type:t}}function xr(t){return {result:\"success\",value:t}}function vr(t){return {result:\"error\",value:t}}function br(t){return \"data-driven\"===t[\"property-type\"]||\"cross-faded-data-driven\"===t[\"property-type\"]}function wr(t){return !!t.expression&&t.expression.parameters.indexOf(\"zoom\")>-1}function _r(t){return !!t.expression&&t.expression.interpolated}function Ar(t){return t instanceof Number?\"number\":t instanceof String?\"string\":t instanceof Boolean?\"boolean\":Array.isArray(t)?\"array\":null===t?\"null\":typeof t}function kr(t){return \"object\"==typeof t&&null!==t&&!Array.isArray(t)}function Sr(t){return t}function Ir(t,e){const r=\"color\"===e.type,n=t.stops&&\"object\"==typeof t.stops[0][0],i=n||!(n||void 0!==t.property),a=t.type||(_r(e)?\"exponential\":\"interval\");if(r||\"padding\"===e.type){const n=r?Ft.parse:$t.parse;(t=st({},t)).stops&&(t.stops=t.stops.map((t=>[t[0],n(t[1])]))),t.default=n(t.default?t.default:e.default);}if(t.colorSpace&&\"rgb\"!==t.colorSpace&&!je[t.colorSpace])throw new Error(`Unknown color space: ${t.colorSpace}`);let s,o,l;if(\"exponential\"===a)s=Cr;else if(\"interval\"===a)s=Br;else if(\"categorical\"===a){s=zr,o=Object.create(null);for(const e of t.stops)o[e[0]]=e[1];l=typeof t.stops[0][0];}else {if(\"identity\"!==a)throw new Error(`Unknown function type \"${a}\"`);s=Pr;}if(n){const r={},n=[];for(let e=0;et[0])),evaluate:({zoom:r},n)=>Cr({stops:i,base:t.base},e,r).evaluate(r,n)}}if(i){const r=\"exponential\"===a?{name:\"exponential\",base:void 0!==t.base?t.base:1}:null;return {kind:\"camera\",interpolationType:r,interpolationFactor:Ne.interpolationFactor.bind(void 0,r),zoomStops:t.stops.map((t=>t[0])),evaluate:({zoom:r})=>s(t,e,r,o,l)}}return {kind:\"source\",evaluate(r,n){const i=n&&n.properties?n.properties[t.property]:void 0;return void 0===i?Mr(t.default,e.default):s(t,e,i,o,l)}}}function Mr(t,e,r){return void 0!==t?t:void 0!==e?e:void 0!==r?r:void 0}function zr(t,e,r,n,i){return Mr(typeof r===i?n[r]:void 0,t.default,e.default)}function Br(t,e,r){if(\"number\"!==Ar(r))return Mr(t.default,e.default);const n=t.stops.length;if(1===n)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[n-1][0])return t.stops[n-1][1];const i=Ae(t.stops.map((t=>t[0])),r);return t.stops[i][1]}function Cr(t,e,r){const n=void 0!==t.base?t.base:1;if(\"number\"!==Ar(r))return Mr(t.default,e.default);const i=t.stops.length;if(1===i)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[i-1][0])return t.stops[i-1][1];const a=Ae(t.stops.map((t=>t[0])),r),s=function(t,e,r,n){const i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}(r,n,t.stops[a][0],t.stops[a+1][0]),o=t.stops[a][1],l=t.stops[a+1][1];let u=Ie[e.type]||Sr;if(t.colorSpace&&\"rgb\"!==t.colorSpace){const e=je[t.colorSpace];u=(t,r)=>e.reverse(e.interpolate(e.forward(t),e.forward(r),s));}return \"function\"==typeof o.evaluate?{evaluate(...t){const e=o.evaluate.apply(void 0,t),r=l.evaluate.apply(void 0,t);if(void 0!==e&&void 0!==r)return u(e,r,s)}}:u(o,l,s)}function Pr(t,e,r){switch(e.type){case\"color\":r=Ft.parse(r);break;case\"formatted\":r=Dt.fromString(r.toString());break;case\"resolvedImage\":r=Rt.fromString(r.toString());break;case\"padding\":r=$t.parse(r);break;default:Ar(r)===e.type||\"enum\"===e.type&&e.values[r]||(r=void 0);}return Mr(r,t.default,e.default)}Wt.register(fr,{error:[{kind:\"error\"},[ft],(t,[e])=>{throw new Zt(e.evaluate(t))}],typeof:[ft,[gt],(t,[e])=>At(qt(e.evaluate(t)))],\"to-rgba\":[_t(pt,4),[yt],(t,[e])=>e.evaluate(t).toArray()],rgb:[yt,[pt,pt,pt],dr],rgba:[yt,[pt,pt,pt,pt],dr],has:{type:dt,overloads:[[[ft],(t,[e])=>yr(e.evaluate(t),t.properties())],[[ft,mt],(t,[e,r])=>yr(e.evaluate(t),r.evaluate(t))]]},get:{type:gt,overloads:[[[ft],(t,[e])=>mr(e.evaluate(t),t.properties())],[[ft,mt],(t,[e,r])=>mr(e.evaluate(t),r.evaluate(t))]]},\"feature-state\":[gt,[ft],(t,[e])=>mr(e.evaluate(t),t.featureState||{})],properties:[mt,[],t=>t.properties()],\"geometry-type\":[ft,[],t=>t.geometryType()],id:[gt,[],t=>t.id()],zoom:[pt,[],t=>t.globals.zoom],\"heatmap-density\":[pt,[],t=>t.globals.heatmapDensity||0],\"line-progress\":[pt,[],t=>t.globals.lineProgress||0],accumulated:[gt,[],t=>void 0===t.globals.accumulated?null:t.globals.accumulated],\"+\":[pt,gr(pt),(t,e)=>{let r=0;for(const n of e)r+=n.evaluate(t);return r}],\"*\":[pt,gr(pt),(t,e)=>{let r=1;for(const n of e)r*=n.evaluate(t);return r}],\"-\":{type:pt,overloads:[[[pt,pt],(t,[e,r])=>e.evaluate(t)-r.evaluate(t)],[[pt],(t,[e])=>-e.evaluate(t)]]},\"/\":[pt,[pt,pt],(t,[e,r])=>e.evaluate(t)/r.evaluate(t)],\"%\":[pt,[pt,pt],(t,[e,r])=>e.evaluate(t)%r.evaluate(t)],ln2:[pt,[],()=>Math.LN2],pi:[pt,[],()=>Math.PI],e:[pt,[],()=>Math.E],\"^\":[pt,[pt,pt],(t,[e,r])=>Math.pow(e.evaluate(t),r.evaluate(t))],sqrt:[pt,[pt],(t,[e])=>Math.sqrt(e.evaluate(t))],log10:[pt,[pt],(t,[e])=>Math.log(e.evaluate(t))/Math.LN10],ln:[pt,[pt],(t,[e])=>Math.log(e.evaluate(t))],log2:[pt,[pt],(t,[e])=>Math.log(e.evaluate(t))/Math.LN2],sin:[pt,[pt],(t,[e])=>Math.sin(e.evaluate(t))],cos:[pt,[pt],(t,[e])=>Math.cos(e.evaluate(t))],tan:[pt,[pt],(t,[e])=>Math.tan(e.evaluate(t))],asin:[pt,[pt],(t,[e])=>Math.asin(e.evaluate(t))],acos:[pt,[pt],(t,[e])=>Math.acos(e.evaluate(t))],atan:[pt,[pt],(t,[e])=>Math.atan(e.evaluate(t))],min:[pt,gr(pt),(t,e)=>Math.min(...e.map((e=>e.evaluate(t))))],max:[pt,gr(pt),(t,e)=>Math.max(...e.map((e=>e.evaluate(t))))],abs:[pt,[pt],(t,[e])=>Math.abs(e.evaluate(t))],round:[pt,[pt],(t,[e])=>{const r=e.evaluate(t);return r<0?-Math.round(-r):Math.round(r)}],floor:[pt,[pt],(t,[e])=>Math.floor(e.evaluate(t))],ceil:[pt,[pt],(t,[e])=>Math.ceil(e.evaluate(t))],\"filter-==\":[dt,[ft,gt],(t,[e,r])=>t.properties()[e.value]===r.value],\"filter-id-==\":[dt,[gt],(t,[e])=>t.id()===e.value],\"filter-type-==\":[dt,[ft],(t,[e])=>t.geometryType()===e.value],\"filter-<\":[dt,[ft,gt],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n{const r=t.id(),n=e.value;return typeof r==typeof n&&r\":[dt,[ft,gt],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n>i}],\"filter-id->\":[dt,[gt],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r>n}],\"filter-<=\":[dt,[ft,gt],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n<=i}],\"filter-id-<=\":[dt,[gt],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r<=n}],\"filter->=\":[dt,[ft,gt],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n>=i}],\"filter-id->=\":[dt,[gt],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r>=n}],\"filter-has\":[dt,[gt],(t,[e])=>e.value in t.properties()],\"filter-has-id\":[dt,[],t=>null!==t.id()&&void 0!==t.id()],\"filter-type-in\":[dt,[_t(ft)],(t,[e])=>e.value.indexOf(t.geometryType())>=0],\"filter-id-in\":[dt,[_t(gt)],(t,[e])=>e.value.indexOf(t.id())>=0],\"filter-in-small\":[dt,[ft,_t(gt)],(t,[e,r])=>r.value.indexOf(t.properties()[e.value])>=0],\"filter-in-large\":[dt,[ft,_t(gt)],(t,[e,r])=>function(t,e,r,n){for(;r<=n;){const i=r+n>>1;if(e[i]===t)return !0;e[i]>t?n=i-1:r=i+1;}return !1}(t.properties()[e.value],r.value,0,r.value.length-1)],all:{type:dt,overloads:[[[dt,dt],(t,[e,r])=>e.evaluate(t)&&r.evaluate(t)],[gr(dt),(t,e)=>{for(const r of e)if(!r.evaluate(t))return !1;return !0}]]},any:{type:dt,overloads:[[[dt,dt],(t,[e,r])=>e.evaluate(t)||r.evaluate(t)],[gr(dt),(t,e)=>{for(const r of e)if(r.evaluate(t))return !0;return !1}]]},\"!\":[dt,[dt],(t,[e])=>!e.evaluate(t)],\"is-supported-script\":[dt,[ft],(t,[e])=>{const r=t.globals&&t.globals.isSupportedScript;return !r||r(e.evaluate(t))}],upcase:[ft,[ft],(t,[e])=>e.evaluate(t).toUpperCase()],downcase:[ft,[ft],(t,[e])=>e.evaluate(t).toLowerCase()],concat:[ft,gr(gt),(t,e)=>e.map((e=>jt(e.evaluate(t)))).join(\"\")],\"resolved-locale\":[ft,[xt],(t,[e])=>e.evaluate(t).resolvedLocale()]});class Vr{constructor(t,e){this.expression=t,this._warningHistory={},this._evaluator=new Ht,this._defaultValue=e?function(t){return \"color\"===t.type&&kr(t.default)?new Ft(0,0,0,0):\"color\"===t.type?Ft.parse(t.default)||null:\"padding\"===t.type?$t.parse(t.default)||null:void 0===t.default?null:t.default}(e):null,this._enumValues=e&&\"enum\"===e.type?e.values:null;}evaluateWithoutErrorHandling(t,e,r,n,i,a){return this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=r,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a,this.expression.evaluate(this._evaluator)}evaluate(t,e,r,n,i,a){this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=r||null,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a||null;try{const t=this.expression.evaluate(this._evaluator);if(null==t||\"number\"==typeof t&&t!=t)return this._defaultValue;if(this._enumValues&&!(t in this._enumValues))throw new Zt(`Expected value to be one of ${Object.keys(this._enumValues).map((t=>JSON.stringify(t))).join(\", \")}, but found ${JSON.stringify(t)} instead.`);return t}catch(t){return this._warningHistory[t.message]||(this._warningHistory[t.message]=!0,\"undefined\"!=typeof console&&console.warn(t.message)),this._defaultValue}}}function Er(t){return Array.isArray(t)&&t.length>0&&\"string\"==typeof t[0]&&t[0]in fr}function Fr(t,e){const r=new we(fr,[],e?function(t){const e={color:yt,string:ft,number:pt,enum:ft,boolean:dt,formatted:vt,padding:bt,resolvedImage:wt};return \"array\"===t.type?_t(e[t.value]||gt,t.length):e[t.type]}(e):void 0),n=r.parse(t,void 0,void 0,void 0,e&&\"string\"===e.type?{typeAnnotation:\"coerce\"}:void 0);return n?xr(new Vr(n,e)):vr(r.errors)}class Tr{constructor(t,e){this.kind=t,this._styleExpression=e,this.isStateDependent=\"constant\"!==t&&!xe(e.expression);}evaluateWithoutErrorHandling(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)}evaluate(t,e,r,n,i,a){return this._styleExpression.evaluate(t,e,r,n,i,a)}}class Lr{constructor(t,e,r,n){this.kind=t,this.zoomStops=r,this._styleExpression=e,this.isStateDependent=\"camera\"!==t&&!xe(e.expression),this.interpolationType=n;}evaluateWithoutErrorHandling(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)}evaluate(t,e,r,n,i,a){return this._styleExpression.evaluate(t,e,r,n,i,a)}interpolationFactor(t,e,r){return this.interpolationType?Ne.interpolationFactor(this.interpolationType,t,e,r):0}}function Dr(t,e){const r=Fr(t,e);if(\"error\"===r.result)return r;const n=r.value.expression,i=ge(n);if(!i&&!br(e))return vr([new ut(\"\",\"data expressions not supported\")]);const a=ve(n,[\"zoom\"]);if(!a&&!wr(e))return vr([new ut(\"\",\"zoom expressions not supported\")]);const s=Rr(n);return s||a?s instanceof ut?vr([s]):s instanceof Ne&&!_r(e)?vr([new ut(\"\",'\"interpolate\" expressions cannot be used with this property')]):xr(s?new Lr(i?\"camera\":\"composite\",r.value,s.labels,s instanceof Ne?s.interpolation:void 0):new Tr(i?\"constant\":\"source\",r.value)):vr([new ut(\"\",'\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.')])}class $r{constructor(t,e){this._parameters=t,this._specification=e,st(this,Ir(this._parameters,this._specification));}static deserialize(t){return new $r(t._parameters,t._specification)}static serialize(t){return {_parameters:t._parameters,_specification:t._specification}}}function Rr(t){let e=null;if(t instanceof Ge)e=Rr(t.result);else if(t instanceof Ke){for(const r of t.args)if(e=Rr(r),e)break}else (t instanceof ke||t instanceof Ne)&&t.input instanceof Wt&&\"zoom\"===t.input.name&&(e=t);return e instanceof ut||t.eachChild((t=>{const r=Rr(t);r instanceof ut?e=r:!e&&r?e=new ut(\"\",'\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.'):e&&r&&e!==r&&(e=new ut(\"\",'Only one zoom-based \"step\" or \"interpolate\" subexpression may be used in an expression.'));})),e}function Or(t){const e=t.key,r=t.value,n=t.valueSpec||{},i=t.objectElementValidators||{},a=t.style,s=t.styleSpec;let o=[];const l=Ar(r);if(\"object\"!==l)return [new it(e,r,`object expected, ${l} found`)];for(const t in r){const l=t.split(\".\")[0],u=n[l]||n[\"*\"];let c;if(i[l])c=i[l];else if(n[l])c=yn;else if(i[\"*\"])c=i[\"*\"];else {if(!n[\"*\"]){o.push(new it(e,r[t],`unknown property \"${t}\"`));continue}c=yn;}o=o.concat(c({key:(e?`${e}.`:e)+t,value:r[t],valueSpec:u,style:a,styleSpec:s,object:r,objectKey:t},r));}for(const t in n)i[t]||n[t].required&&void 0===n[t].default&&void 0===r[t]&&o.push(new it(e,r,`missing required property \"${t}\"`));return o}function Ur(t){const e=t.value,r=t.valueSpec,n=t.style,i=t.styleSpec,a=t.key,s=t.arrayElementValidator||yn;if(\"array\"!==Ar(e))return [new it(a,e,`array expected, ${Ar(e)} found`)];if(r.length&&e.length!==r.length)return [new it(a,e,`array length ${r.length} expected, length ${e.length} found`)];if(r[\"min-length\"]&&e.lengthn.maximum?[new it(e,r,`${r} is greater than the maximum value ${n.maximum}`)]:[]}function jr(t){const e=t.valueSpec,r=ot(t.value.type);let n,i,a,s={};const o=\"categorical\"!==r&&void 0===t.value.property,l=!o,u=\"array\"===Ar(t.value.stops)&&\"array\"===Ar(t.value.stops[0])&&\"object\"===Ar(t.value.stops[0][0]),c=Or({key:t.key,value:t.value,valueSpec:t.styleSpec.function,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if(\"identity\"===r)return [new it(t.key,t.value,'identity function may not have a \"stops\" property')];let e=[];const n=t.value;return e=e.concat(Ur({key:t.key,value:n,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:h})),\"array\"===Ar(n)&&0===n.length&&e.push(new it(t.key,n,\"array must have at least one stop\")),e},default:function(t){return yn({key:t.key,value:t.value,valueSpec:e,style:t.style,styleSpec:t.styleSpec})}}});return \"identity\"===r&&o&&c.push(new it(t.key,t.value,'missing required property \"property\"')),\"identity\"===r||t.value.stops||c.push(new it(t.key,t.value,'missing required property \"stops\"')),\"exponential\"===r&&t.valueSpec.expression&&!_r(t.valueSpec)&&c.push(new it(t.key,t.value,\"exponential functions not supported\")),t.styleSpec.$version>=8&&(l&&!br(t.valueSpec)?c.push(new it(t.key,t.value,\"property functions not supported\")):o&&!wr(t.valueSpec)&&c.push(new it(t.key,t.value,\"zoom functions not supported\"))),\"categorical\"!==r&&!u||void 0!==t.value.property||c.push(new it(t.key,t.value,'\"property\" property is required')),c;function h(t){let r=[];const n=t.value,o=t.key;if(\"array\"!==Ar(n))return [new it(o,n,`array expected, ${Ar(n)} found`)];if(2!==n.length)return [new it(o,n,`array length 2 expected, length ${n.length} found`)];if(u){if(\"object\"!==Ar(n[0]))return [new it(o,n,`object expected, ${Ar(n[0])} found`)];if(void 0===n[0].zoom)return [new it(o,n,\"object stop key must have zoom\")];if(void 0===n[0].value)return [new it(o,n,\"object stop key must have value\")];if(a&&a>ot(n[0].zoom))return [new it(o,n[0].zoom,\"stop zoom values must appear in ascending order\")];ot(n[0].zoom)!==a&&(a=ot(n[0].zoom),i=void 0,s={}),r=r.concat(Or({key:`${o}[0]`,value:n[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:qr,value:p}}));}else r=r.concat(p({key:`${o}[0]`,value:n[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},n));return Er(lt(n[1]))?r.concat([new it(`${o}[1]`,n[1],\"expressions are not allowed in function stops.\")]):r.concat(yn({key:`${o}[1]`,value:n[1],valueSpec:e,style:t.style,styleSpec:t.styleSpec}))}function p(t,a){const o=Ar(t.value),l=ot(t.value),u=null!==t.value?t.value:a;if(n){if(o!==n)return [new it(t.key,u,`${o} stop domain type must match previous stop domain type ${n}`)]}else n=o;if(\"number\"!==o&&\"string\"!==o&&\"boolean\"!==o)return [new it(t.key,u,\"stop domain value must be a number, string, or boolean\")];if(\"number\"!==o&&\"categorical\"!==r){let n=`number expected, ${o} found`;return br(e)&&void 0===r&&(n+='\\nIf you intended to use a categorical function, specify `\"type\": \"categorical\"`.'),[new it(t.key,u,n)]}return \"categorical\"!==r||\"number\"!==o||isFinite(l)&&Math.floor(l)===l?\"categorical\"!==r&&\"number\"===o&&void 0!==i&&lnew it(`${t.key}${e.key}`,t.value,e.message)));const r=e.value.expression||e.value._styleExpression.expression;if(\"property\"===t.expressionContext&&\"text-font\"===t.propertyKey&&!r.outputDefined())return [new it(t.key,t.value,`Invalid data expression for \"${t.propertyKey}\". Output values must be contained as literals within the expression.`)];if(\"property\"===t.expressionContext&&\"layout\"===t.propertyType&&!xe(r))return [new it(t.key,t.value,'\"feature-state\" data expressions are not supported with layout properties.')];if(\"filter\"===t.expressionContext&&!xe(r))return [new it(t.key,t.value,'\"feature-state\" data expressions are not supported with filters.')];if(t.expressionContext&&0===t.expressionContext.indexOf(\"cluster\")){if(!ve(r,[\"zoom\",\"feature-state\"]))return [new it(t.key,t.value,'\"zoom\" and \"feature-state\" expressions are not supported with cluster properties.')];if(\"cluster-initial\"===t.expressionContext&&!ge(r))return [new it(t.key,t.value,\"Feature data expressions are not supported with initial expression part of cluster properties.\")]}return []}function Zr(t){const e=t.key,r=t.value,n=t.valueSpec,i=[];return Array.isArray(n.values)?-1===n.values.indexOf(ot(r))&&i.push(new it(e,r,`expected one of [${n.values.join(\", \")}], ${JSON.stringify(r)} found`)):-1===Object.keys(n.values).indexOf(ot(r))&&i.push(new it(e,r,`expected one of [${Object.keys(n.values).join(\", \")}], ${JSON.stringify(r)} found`)),i}function Kr(t){if(!0===t||!1===t)return !0;if(!Array.isArray(t)||0===t.length)return !1;switch(t[0]){case\"has\":return t.length>=2&&\"$id\"!==t[1]&&\"$type\"!==t[1];case\"in\":return t.length>=3&&(\"string\"!=typeof t[1]||Array.isArray(t[2]));case\"!in\":case\"!has\":case\"none\":return !1;case\"==\":case\"!=\":case\">\":case\">=\":case\"<\":case\"<=\":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case\"any\":case\"all\":for(const e of t.slice(1))if(!Kr(e)&&\"boolean\"!=typeof e)return !1;return !0;default:return !0}}const Gr={type:\"boolean\",default:!1,transition:!1,\"property-type\":\"data-driven\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]}};function Jr(t){if(null==t)return {filter:()=>!0,needGeometry:!1};Kr(t)||(t=Hr(t));const e=Fr(t,Gr);if(\"error\"===e.result)throw new Error(e.value.map((t=>`${t.key}: ${t.message}`)).join(\", \"));return {filter:(t,r,n)=>e.value.evaluate(t,r,{},n),needGeometry:Yr(t)}}function Xr(t,e){return te?1:0}function Yr(t){if(!Array.isArray(t))return !1;if(\"within\"===t[0])return !0;for(let e=1;e\"===e||\"<=\"===e||\">=\"===e?Wr(t[1],t[2],e):\"any\"===e?(r=t.slice(1),[\"any\"].concat(r.map(Hr))):\"all\"===e?[\"all\"].concat(t.slice(1).map(Hr)):\"none\"===e?[\"all\"].concat(t.slice(1).map(Hr).map(en)):\"in\"===e?Qr(t[1],t.slice(2)):\"!in\"===e?en(Qr(t[1],t.slice(2))):\"has\"===e?tn(t[1]):\"!has\"===e?en(tn(t[1])):\"within\"!==e||t;var r;}function Wr(t,e,r){switch(t){case\"$type\":return [`filter-type-${r}`,e];case\"$id\":return [`filter-id-${r}`,e];default:return [`filter-${r}`,t,e]}}function Qr(t,e){if(0===e.length)return !1;switch(t){case\"$type\":return [\"filter-type-in\",[\"literal\",e]];case\"$id\":return [\"filter-id-in\",[\"literal\",e]];default:return e.length>200&&!e.some((t=>typeof t!=typeof e[0]))?[\"filter-in-large\",t,[\"literal\",e.sort(Xr)]]:[\"filter-in-small\",t,[\"literal\",e]]}}function tn(t){switch(t){case\"$type\":return !0;case\"$id\":return [\"filter-has-id\"];default:return [\"filter-has\",t]}}function en(t){return [\"!\",t]}function rn(t){return Kr(lt(t.value))?Nr(st({},t,{expressionContext:\"filter\",valueSpec:{value:\"boolean\"}})):nn(t)}function nn(t){const e=t.value,r=t.key;if(\"array\"!==Ar(e))return [new it(r,e,`array expected, ${Ar(e)} found`)];const n=t.styleSpec;let i,a=[];if(e.length<1)return [new it(r,e,\"filter array must have at least 1 element\")];switch(a=a.concat(Zr({key:`${r}[0]`,value:e[0],valueSpec:n.filter_operator,style:t.style,styleSpec:t.styleSpec})),ot(e[0])){case\"<\":case\"<=\":case\">\":case\">=\":e.length>=2&&\"$type\"===ot(e[1])&&a.push(new it(r,e,`\"$type\" cannot be use with operator \"${e[0]}\"`));case\"==\":case\"!=\":3!==e.length&&a.push(new it(r,e,`filter array for operator \"${e[0]}\" must have 3 elements`));case\"in\":case\"!in\":e.length>=2&&(i=Ar(e[1]),\"string\"!==i&&a.push(new it(`${r}[1]`,e[1],`string expected, ${i} found`)));for(let s=2;s{t in r&&e.push(new it(n,r[t],`\"${t}\" is prohibited for ref layers`));})),i.layers.forEach((e=>{ot(e.id)===o&&(t=e);})),t?t.ref?e.push(new it(n,r.ref,\"ref cannot reference another ref layer\")):s=ot(t.type):e.push(new it(n,r.ref,`ref layer \"${o}\" not found`));}else if(\"background\"!==s)if(r.source){const t=i.sources&&i.sources[r.source],a=t&&ot(t.type);t?\"vector\"===a&&\"raster\"===s?e.push(new it(n,r.source,`layer \"${r.id}\" requires a raster source`)):\"raster\"===a&&\"raster\"!==s?e.push(new it(n,r.source,`layer \"${r.id}\" requires a vector source`)):\"vector\"!==a||r[\"source-layer\"]?\"raster-dem\"===a&&\"hillshade\"!==s?e.push(new it(n,r.source,\"raster-dem source can only be used with layer type 'hillshade'.\")):\"line\"!==s||!r.paint||!r.paint[\"line-gradient\"]||\"geojson\"===a&&t.lineMetrics||e.push(new it(n,r,`layer \"${r.id}\" specifies a line-gradient, which requires a GeoJSON source with \\`lineMetrics\\` enabled.`)):e.push(new it(n,r,`layer \"${r.id}\" must specify a \"source-layer\"`)):e.push(new it(n,r.source,`source \"${r.source}\" not found`));}else e.push(new it(n,r,'missing required property \"source\"'));return e=e.concat(Or({key:n,value:r,valueSpec:a.layer,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{\"*\":()=>[],type:()=>yn({key:`${n}.type`,value:r.type,valueSpec:a.layer.type,style:t.style,styleSpec:t.styleSpec,object:r,objectKey:\"type\"}),filter:rn,layout:t=>Or({layer:r,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{\"*\":t=>on(st({layerType:s},t))}}),paint:t=>Or({layer:r,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{\"*\":t=>sn(st({layerType:s},t))}})}})),e}function un(t){const e=t.value,r=t.key,n=Ar(e);return \"string\"!==n?[new it(r,e,`string expected, ${n} found`)]:[]}const cn={promoteId:function({key:t,value:e}){if(\"string\"===Ar(e))return un({key:t,value:e});{const r=[];for(const n in e)r.push(...un({key:`${t}.${n}`,value:e[n]}));return r}}};function hn(t){const e=t.value,r=t.key,n=t.styleSpec,i=t.style;if(!e.type)return [new it(r,e,'\"type\" is required')];const a=ot(e.type);let s;switch(a){case\"vector\":case\"raster\":case\"raster-dem\":return s=Or({key:r,value:e,valueSpec:n[`source_${a.replace(\"-\",\"_\")}`],style:t.style,styleSpec:n,objectElementValidators:cn}),s;case\"geojson\":if(s=Or({key:r,value:e,valueSpec:n.source_geojson,style:i,styleSpec:n,objectElementValidators:cn}),e.cluster)for(const t in e.clusterProperties){const[n,i]=e.clusterProperties[t],a=\"string\"==typeof n?[n,[\"accumulated\"],[\"get\",t]]:n;s.push(...Nr({key:`${r}.${t}.map`,value:i,expressionContext:\"cluster-map\"})),s.push(...Nr({key:`${r}.${t}.reduce`,value:a,expressionContext:\"cluster-reduce\"}));}return s;case\"video\":return Or({key:r,value:e,valueSpec:n.source_video,style:i,styleSpec:n});case\"image\":return Or({key:r,value:e,valueSpec:n.source_image,style:i,styleSpec:n});case\"canvas\":return [new it(r,null,\"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.\",\"source.canvas\")];default:return Zr({key:`${r}.type`,value:e.type,valueSpec:{values:[\"vector\",\"raster\",\"raster-dem\",\"geojson\",\"video\",\"image\"]},style:i,styleSpec:n})}}function pn(t){const e=t.value,r=t.styleSpec,n=r.light,i=t.style;let a=[];const s=Ar(e);if(void 0===e)return a;if(\"object\"!==s)return a=a.concat([new it(\"light\",e,`object expected, ${s} found`)]),a;for(const t in e){const s=t.match(/^(.*)-transition$/);a=a.concat(s&&n[s[1]]&&n[s[1]].transition?yn({key:t,value:e[t],valueSpec:r.transition,style:i,styleSpec:r}):n[t]?yn({key:t,value:e[t],valueSpec:n[t],style:i,styleSpec:r}):[new it(t,e[t],`unknown property \"${t}\"`)]);}return a}function fn(t){const e=t.value,r=t.styleSpec,n=r.terrain,i=t.style;let a=[];const s=Ar(e);if(void 0===e)return a;if(\"object\"!==s)return a=a.concat([new it(\"terrain\",e,`object expected, ${s} found`)]),a;for(const t in e)a=a.concat(n[t]?yn({key:t,value:e[t],valueSpec:n[t],style:i,styleSpec:r}):[new it(t,e[t],`unknown property \"${t}\"`)]);return a}const dn={\"*\":()=>[],array:Ur,boolean:function(t){const e=t.value,r=t.key,n=Ar(e);return \"boolean\"!==n?[new it(r,e,`boolean expected, ${n} found`)]:[]},number:qr,color:function(t){const e=t.key,r=t.value,n=Ar(r);return \"string\"!==n?[new it(e,r,`color expected, ${n} found`)]:null===zt(r)?[new it(e,r,`color expected, \"${r}\" found`)]:[]},constants:at,enum:Zr,filter:rn,function:jr,layer:ln,object:Or,source:hn,light:pn,terrain:fn,string:un,formatted:function(t){return 0===un(t).length?[]:Nr(t)},resolvedImage:function(t){return 0===un(t).length?[]:Nr(t)},padding:function(t){const e=t.key,r=t.value;if(\"array\"===Ar(r)){if(r.length<1||r.length>4)return [new it(e,r,`padding requires 1 to 4 values; ${r.length} values found`)];const t={type:\"number\"};let n=[];for(let i=0;i[]}})),t.constants&&(r=r.concat(at({key:\"constants\",value:t.constants,style:t,styleSpec:e}))),xn(r)}function xn(t){return [].concat(t).sort(((t,e)=>t.line-e.line))}function vn(t){return function(...e){return xn(t.apply(this,e))}}gn.source=vn(hn),gn.light=vn(pn),gn.terrain=vn(fn),gn.layer=vn(ln),gn.filter=vn(rn),gn.paintProperty=vn(sn),gn.layoutProperty=vn(on);const bn=gn,wn=bn.light,_n=bn.paintProperty,An=bn.layoutProperty;function kn(t,e){let r=!1;if(e&&e.length)for(const n of e)t.fire(new et(new Error(n.message))),r=!0;return r}class Sn{constructor(t,e,r){const n=this.cells=[];if(t instanceof ArrayBuffer){this.arrayBuffer=t;const i=new Int32Array(this.arrayBuffer);t=i[0],this.d=(e=i[1])+2*(r=i[2]);for(let t=0;t=u[l+0]&&n>=u[l+1])?(s[h]=!0,a.push(i[h])):s[h]=!1;}}}}_forEachCell(t,e,r,n,i,a,s,o){const l=this._convertToCellCoord(t),u=this._convertToCellCoord(e),c=this._convertToCellCoord(r),h=this._convertToCellCoord(n);for(let p=l;p<=c;p++)for(let l=u;l<=h;l++){const u=this.d*l+p;if((!o||o(this._convertFromCellCoord(p),this._convertFromCellCoord(l),this._convertFromCellCoord(p+1),this._convertFromCellCoord(l+1)))&&i.call(this,t,e,r,n,u,a,s,o))return}}_convertFromCellCoord(t){return (t-this.padding)/this.scale}_convertToCellCoord(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;const t=this.cells,e=3+this.cells.length+1+1;let r=0;for(let t=0;t=0)continue;const a=t[r];i[r]=In[n].shallow.indexOf(r)>=0?a:Bn(a,e);}t instanceof Error&&(i.message=t.message);}if(i.$name)throw new Error(\"$name property is reserved for worker serialization logic.\");return \"Object\"!==n&&(i.$name=n),i}throw new Error(\"can't serialize object of type \"+typeof t)}function Cn(t){if(null==t||\"boolean\"==typeof t||\"number\"==typeof t||\"string\"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp||t instanceof Blob||zn(t)||A(t)||ArrayBuffer.isView(t)||t instanceof ImageData)return t;if(Array.isArray(t))return t.map(Cn);if(\"object\"==typeof t){const e=t.$name||\"Object\";if(!In[e])throw new Error(`can't deserialize unregistered class ${e}`);const{klass:r}=In[e];if(!r)throw new Error(`can't deserialize unregistered class ${e}`);if(r.deserialize)return r.deserialize(t);const n=Object.create(r.prototype);for(const r of Object.keys(t)){if(\"$name\"===r)continue;const i=t[r];n[r]=In[e].shallow.indexOf(r)>=0?i:Cn(i);}return n}throw new Error(\"can't deserialize object of type \"+typeof t)}class Pn{constructor(){this.first=!0;}update(t,e){const r=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=r,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=r,!0):(this.lastFloorZoom>r?(this.lastIntegerZoom=r+1,this.lastIntegerZoomTime=e):this.lastFloorZoomt>=128&&t<=255,Arabic:t=>t>=1536&&t<=1791,\"Arabic Supplement\":t=>t>=1872&&t<=1919,\"Arabic Extended-A\":t=>t>=2208&&t<=2303,\"Hangul Jamo\":t=>t>=4352&&t<=4607,\"Unified Canadian Aboriginal Syllabics\":t=>t>=5120&&t<=5759,Khmer:t=>t>=6016&&t<=6143,\"Unified Canadian Aboriginal Syllabics Extended\":t=>t>=6320&&t<=6399,\"General Punctuation\":t=>t>=8192&&t<=8303,\"Letterlike Symbols\":t=>t>=8448&&t<=8527,\"Number Forms\":t=>t>=8528&&t<=8591,\"Miscellaneous Technical\":t=>t>=8960&&t<=9215,\"Control Pictures\":t=>t>=9216&&t<=9279,\"Optical Character Recognition\":t=>t>=9280&&t<=9311,\"Enclosed Alphanumerics\":t=>t>=9312&&t<=9471,\"Geometric Shapes\":t=>t>=9632&&t<=9727,\"Miscellaneous Symbols\":t=>t>=9728&&t<=9983,\"Miscellaneous Symbols and Arrows\":t=>t>=11008&&t<=11263,\"CJK Radicals Supplement\":t=>t>=11904&&t<=12031,\"Kangxi Radicals\":t=>t>=12032&&t<=12255,\"Ideographic Description Characters\":t=>t>=12272&&t<=12287,\"CJK Symbols and Punctuation\":t=>t>=12288&&t<=12351,Hiragana:t=>t>=12352&&t<=12447,Katakana:t=>t>=12448&&t<=12543,Bopomofo:t=>t>=12544&&t<=12591,\"Hangul Compatibility Jamo\":t=>t>=12592&&t<=12687,Kanbun:t=>t>=12688&&t<=12703,\"Bopomofo Extended\":t=>t>=12704&&t<=12735,\"CJK Strokes\":t=>t>=12736&&t<=12783,\"Katakana Phonetic Extensions\":t=>t>=12784&&t<=12799,\"Enclosed CJK Letters and Months\":t=>t>=12800&&t<=13055,\"CJK Compatibility\":t=>t>=13056&&t<=13311,\"CJK Unified Ideographs Extension A\":t=>t>=13312&&t<=19903,\"Yijing Hexagram Symbols\":t=>t>=19904&&t<=19967,\"CJK Unified Ideographs\":t=>t>=19968&&t<=40959,\"Yi Syllables\":t=>t>=40960&&t<=42127,\"Yi Radicals\":t=>t>=42128&&t<=42191,\"Hangul Jamo Extended-A\":t=>t>=43360&&t<=43391,\"Hangul Syllables\":t=>t>=44032&&t<=55215,\"Hangul Jamo Extended-B\":t=>t>=55216&&t<=55295,\"Private Use Area\":t=>t>=57344&&t<=63743,\"CJK Compatibility Ideographs\":t=>t>=63744&&t<=64255,\"Arabic Presentation Forms-A\":t=>t>=64336&&t<=65023,\"Vertical Forms\":t=>t>=65040&&t<=65055,\"CJK Compatibility Forms\":t=>t>=65072&&t<=65103,\"Small Form Variants\":t=>t>=65104&&t<=65135,\"Arabic Presentation Forms-B\":t=>t>=65136&&t<=65279,\"Halfwidth and Fullwidth Forms\":t=>t>=65280&&t<=65519};function En(t){for(const e of t)if(Ln(e.charCodeAt(0)))return !0;return !1}function Fn(t){for(const e of t)if(!Tn(e.charCodeAt(0)))return !1;return !0}function Tn(t){return !(Vn.Arabic(t)||Vn[\"Arabic Supplement\"](t)||Vn[\"Arabic Extended-A\"](t)||Vn[\"Arabic Presentation Forms-A\"](t)||Vn[\"Arabic Presentation Forms-B\"](t))}function Ln(t){return !(746!==t&&747!==t&&(t<4352||!(Vn[\"Bopomofo Extended\"](t)||Vn.Bopomofo(t)||Vn[\"CJK Compatibility Forms\"](t)&&!(t>=65097&&t<=65103)||Vn[\"CJK Compatibility Ideographs\"](t)||Vn[\"CJK Compatibility\"](t)||Vn[\"CJK Radicals Supplement\"](t)||Vn[\"CJK Strokes\"](t)||!(!Vn[\"CJK Symbols and Punctuation\"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||Vn[\"CJK Unified Ideographs Extension A\"](t)||Vn[\"CJK Unified Ideographs\"](t)||Vn[\"Enclosed CJK Letters and Months\"](t)||Vn[\"Hangul Compatibility Jamo\"](t)||Vn[\"Hangul Jamo Extended-A\"](t)||Vn[\"Hangul Jamo Extended-B\"](t)||Vn[\"Hangul Jamo\"](t)||Vn[\"Hangul Syllables\"](t)||Vn.Hiragana(t)||Vn[\"Ideographic Description Characters\"](t)||Vn.Kanbun(t)||Vn[\"Kangxi Radicals\"](t)||Vn[\"Katakana Phonetic Extensions\"](t)||Vn.Katakana(t)&&12540!==t||!(!Vn[\"Halfwidth and Fullwidth Forms\"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!Vn[\"Small Form Variants\"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||Vn[\"Unified Canadian Aboriginal Syllabics\"](t)||Vn[\"Unified Canadian Aboriginal Syllabics Extended\"](t)||Vn[\"Vertical Forms\"](t)||Vn[\"Yijing Hexagram Symbols\"](t)||Vn[\"Yi Syllables\"](t)||Vn[\"Yi Radicals\"](t))))}function Dn(t){return !(Ln(t)||function(t){return !!(Vn[\"Latin-1 Supplement\"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||Vn[\"General Punctuation\"](t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||Vn[\"Letterlike Symbols\"](t)||Vn[\"Number Forms\"](t)||Vn[\"Miscellaneous Technical\"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||Vn[\"Control Pictures\"](t)&&9251!==t||Vn[\"Optical Character Recognition\"](t)||Vn[\"Enclosed Alphanumerics\"](t)||Vn[\"Geometric Shapes\"](t)||Vn[\"Miscellaneous Symbols\"](t)&&!(t>=9754&&t<=9759)||Vn[\"Miscellaneous Symbols and Arrows\"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||Vn[\"CJK Symbols and Punctuation\"](t)||Vn.Katakana(t)||Vn[\"Private Use Area\"](t)||Vn[\"CJK Compatibility Forms\"](t)||Vn[\"Small Form Variants\"](t)||Vn[\"Halfwidth and Fullwidth Forms\"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function $n(t){return t>=1424&&t<=2303||Vn[\"Arabic Presentation Forms-A\"](t)||Vn[\"Arabic Presentation Forms-B\"](t)}function Rn(t,e){return !(!e&&$n(t)||t>=2304&&t<=3583||t>=3840&&t<=4255||Vn.Khmer(t))}function On(t){for(const e of t)if($n(e.charCodeAt(0)))return !0;return !1}const Un=\"deferred\",qn=\"loading\",jn=\"loaded\";let Nn=null,Zn=\"unavailable\",Kn=null;const Gn=function(t){t&&\"string\"==typeof t&&t.indexOf(\"NetworkError\")>-1&&(Zn=\"error\"),Nn&&Nn(t);};function Jn(){Xn.fire(new tt(\"pluginStateChange\",{pluginStatus:Zn,pluginURL:Kn}));}const Xn=new rt,Yn=function(){return Zn},Hn=function(){if(Zn!==Un||!Kn)throw new Error(\"rtl-text-plugin cannot be downloaded unless a pluginURL is specified\");Zn=qn,Jn(),Kn&&K({url:Kn},(t=>{t?Gn(t):(Zn=jn,Jn());}));},Wn={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>Zn===jn||null!=Wn.applyArabicShaping,isLoading:()=>Zn===qn,setState(t){if(!g())throw new Error(\"Cannot set the state of the rtl-text-plugin when not in the web-worker context\");Zn=t.pluginStatus,Kn=t.pluginURL;},isParsed(){if(!g())throw new Error(\"rtl-text-plugin is only parsed on the worker-threads\");return null!=Wn.applyArabicShaping&&null!=Wn.processBidirectionalText&&null!=Wn.processStyledBidirectionalText},getPluginURL(){if(!g())throw new Error(\"rtl-text-plugin url can only be queried from the worker threads\");return Kn}};class Qn{constructor(t,e){this.zoom=t,e?(this.now=e.now,this.fadeDuration=e.fadeDuration,this.zoomHistory=e.zoomHistory,this.transition=e.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Pn,this.transition={});}isSupportedScript(t){return function(t,e){for(const r of t)if(!Rn(r.charCodeAt(0),e))return !1;return !0}(t,Wn.isLoaded())}crossFadingFactor(){return 0===this.fadeDuration?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){const t=this.zoom,e=t-Math.floor(t),r=this.crossFadingFactor();return t>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:e+(1-e)*r}:{fromScale:.5,toScale:1,t:1-(1-r)*e}}}class ti{constructor(t,e){this.property=t,this.value=e,this.expression=function(t,e){if(kr(t))return new $r(t,e);if(Er(t)){const r=Dr(t,e);if(\"error\"===r.result)throw new Error(r.value.map((t=>`${t.key}: ${t.message}`)).join(\", \"));return r.value}{let r=t;return \"color\"===e.type&&\"string\"==typeof t?r=Ft.parse(t):\"padding\"!==e.type||\"number\"!=typeof t&&!Array.isArray(t)||(r=$t.parse(t)),{kind:\"constant\",evaluate:()=>r}}}(void 0===e?t.specification.default:e,t.specification);}isDataDriven(){return \"source\"===this.expression.kind||\"composite\"===this.expression.kind}possiblyEvaluate(t,e,r){return this.property.possiblyEvaluate(this,t,e,r)}}class ei{constructor(t){this.property=t,this.value=new ti(t,void 0);}transitioned(t,e){return new ni(this.property,this.value,e,o({},t.transition,this.transition),t.now)}untransitioned(){return new ni(this.property,this.value,null,{},0)}}class ri{constructor(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues);}getValue(t){return p(this._values[t].value.value)}setValue(t,e){Object.prototype.hasOwnProperty.call(this._values,t)||(this._values[t]=new ei(this._values[t].property)),this._values[t].value=new ti(this._values[t].property,null===e?void 0:p(e));}getTransition(t){return p(this._values[t].transition)}setTransition(t,e){Object.prototype.hasOwnProperty.call(this._values,t)||(this._values[t]=new ei(this._values[t].property)),this._values[t].transition=p(e)||void 0;}serialize(){const t={};for(const e of Object.keys(this._values)){const r=this.getValue(e);void 0!==r&&(t[e]=r);const n=this.getTransition(e);void 0!==n&&(t[`${e}-transition`]=n);}return t}transitioned(t,e){const r=new ii(this._properties);for(const n of Object.keys(this._values))r._values[n]=this._values[n].transitioned(t,e._values[n]);return r}untransitioned(){const t=new ii(this._properties);for(const e of Object.keys(this._values))t._values[e]=this._values[e].untransitioned();return t}}class ni{constructor(t,e,r,n,i){this.property=t,this.value=e,this.begin=i+n.delay||0,this.end=this.begin+n.duration||0,t.specification.transition&&(n.delay||n.duration)&&(this.prior=r);}possiblyEvaluate(t,e,r){const n=t.now||0,i=this.value.possiblyEvaluate(t,e,r),a=this.prior;if(a){if(n>this.end)return this.prior=null,i;if(this.value.isDataDriven())return this.prior=null,i;if(n=1)return 1;const e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}(s))}}return i}}class ii{constructor(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues);}possiblyEvaluate(t,e,r){const n=new oi(this._properties);for(const i of Object.keys(this._values))n._values[i]=this._values[i].possiblyEvaluate(t,e,r);return n}hasTransition(){for(const t of Object.keys(this._values))if(this._values[t].prior)return !0;return !1}}class ai{constructor(t){this._properties=t,this._values=Object.create(t.defaultPropertyValues);}getValue(t){return p(this._values[t].value)}setValue(t,e){this._values[t]=new ti(this._values[t].property,null===e?void 0:p(e));}serialize(){const t={};for(const e of Object.keys(this._values)){const r=this.getValue(e);void 0!==r&&(t[e]=r);}return t}possiblyEvaluate(t,e,r){const n=new oi(this._properties);for(const i of Object.keys(this._values))n._values[i]=this._values[i].possiblyEvaluate(t,e,r);return n}}class si{constructor(t,e,r){this.property=t,this.value=e,this.parameters=r;}isConstant(){return \"constant\"===this.value.kind}constantOr(t){return \"constant\"===this.value.kind?this.value.value:t}evaluate(t,e,r,n){return this.property.evaluate(this.value,this.parameters,t,e,r,n)}}class oi{constructor(t){this._properties=t,this._values=Object.create(t.defaultPossiblyEvaluatedValues);}get(t){return this._values[t]}}class li{constructor(t){this.specification=t;}possiblyEvaluate(t,e){if(t.isDataDriven())throw new Error(\"Value should not be data driven\");return t.expression.evaluate(e)}interpolate(t,e,r){const n=Ie[this.specification.type];return n?n(t,e,r):t}}class ui{constructor(t,e){this.specification=t,this.overrides=e;}possiblyEvaluate(t,e,r,n){return new si(this,\"constant\"===t.expression.kind||\"camera\"===t.expression.kind?{kind:\"constant\",value:t.expression.evaluate(e,null,{},r,n)}:t.expression,e)}interpolate(t,e,r){if(\"constant\"!==t.value.kind||\"constant\"!==e.value.kind)return t;if(void 0===t.value.value||void 0===e.value.value)return new si(this,{kind:\"constant\",value:void 0},t.parameters);const n=Ie[this.specification.type];return n?new si(this,{kind:\"constant\",value:n(t.value.value,e.value.value,r)},t.parameters):t}evaluate(t,e,r,n,i,a){return \"constant\"===t.kind?t.value:t.evaluate(e,r,n,i,a)}}class ci extends ui{possiblyEvaluate(t,e,r,n){if(void 0===t.value)return new si(this,{kind:\"constant\",value:void 0},e);if(\"constant\"===t.expression.kind){const i=t.expression.evaluate(e,null,{},r,n),a=\"resolvedImage\"===t.property.specification.type&&\"string\"!=typeof i?i.name:i,s=this._calculate(a,a,a,e);return new si(this,{kind:\"constant\",value:s},e)}if(\"camera\"===t.expression.kind){const r=this._calculate(t.expression.evaluate({zoom:e.zoom-1}),t.expression.evaluate({zoom:e.zoom}),t.expression.evaluate({zoom:e.zoom+1}),e);return new si(this,{kind:\"constant\",value:r},e)}return new si(this,t.expression,e)}evaluate(t,e,r,n,i,a){if(\"source\"===t.kind){const s=t.evaluate(e,r,n,i,a);return this._calculate(s,s,s,e)}return \"composite\"===t.kind?this._calculate(t.evaluate({zoom:Math.floor(e.zoom)-1},r,n),t.evaluate({zoom:Math.floor(e.zoom)},r,n),t.evaluate({zoom:Math.floor(e.zoom)+1},r,n),e):t.value}_calculate(t,e,r,n){return n.zoom>n.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}}interpolate(t){return t}}class hi{constructor(t){this.specification=t;}possiblyEvaluate(t,e,r,n){if(void 0!==t.value){if(\"constant\"===t.expression.kind){const i=t.expression.evaluate(e,null,{},r,n);return this._calculate(i,i,i,e)}return this._calculate(t.expression.evaluate(new Qn(Math.floor(e.zoom-1),e)),t.expression.evaluate(new Qn(Math.floor(e.zoom),e)),t.expression.evaluate(new Qn(Math.floor(e.zoom+1),e)),e)}}_calculate(t,e,r,n){return n.zoom>n.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}}interpolate(t){return t}}class pi{constructor(t){this.specification=t;}possiblyEvaluate(t,e,r,n){return !!t.expression.evaluate(e,null,{},r,n)}interpolate(){return !1}}class fi{constructor(t){this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(const e in t){const r=t[e];r.specification.overridable&&this.overridableProperties.push(e);const n=this.defaultPropertyValues[e]=new ti(r,void 0),i=this.defaultTransitionablePropertyValues[e]=new ei(r);this.defaultTransitioningPropertyValues[e]=i.untransitioned(),this.defaultPossiblyEvaluatedValues[e]=n.possiblyEvaluate({});}}}Mn(\"DataDrivenProperty\",ui),Mn(\"DataConstantProperty\",li),Mn(\"CrossFadedDataDrivenProperty\",ci),Mn(\"CrossFadedProperty\",hi),Mn(\"ColorRampProperty\",pi);const di=\"-transition\";class yi extends rt{constructor(t,e){if(super(),this.id=t.id,this.type=t.type,this._featureFilter={filter:()=>!0,needGeometry:!1},\"custom\"!==t.type&&(this.metadata=t.metadata,this.minzoom=t.minzoom,this.maxzoom=t.maxzoom,\"background\"!==t.type&&(this.source=t.source,this.sourceLayer=t[\"source-layer\"],this.filter=t.filter),e.layout&&(this._unevaluatedLayout=new ai(e.layout)),e.paint)){this._transitionablePaint=new ri(e.paint);for(const e in t.paint)this.setPaintProperty(e,t.paint[e],{validate:!1});for(const e in t.layout)this.setLayoutProperty(e,t.layout[e],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new oi(e.paint);}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(t){return \"visibility\"===t?this.visibility:this._unevaluatedLayout.getValue(t)}setLayoutProperty(t,e,r={}){null!=e&&this._validate(An,`layers.${this.id}.layout.${t}`,t,e,r)||(\"visibility\"!==t?this._unevaluatedLayout.setValue(t,e):this.visibility=e);}getPaintProperty(t){return t.endsWith(di)?this._transitionablePaint.getTransition(t.slice(0,-di.length)):this._transitionablePaint.getValue(t)}setPaintProperty(t,e,r={}){if(null!=e&&this._validate(_n,`layers.${this.id}.paint.${t}`,t,e,r))return !1;if(t.endsWith(di))return this._transitionablePaint.setTransition(t.slice(0,-di.length),e||void 0),!1;{const r=this._transitionablePaint._values[t],n=\"cross-faded-data-driven\"===r.property.specification[\"property-type\"],i=r.value.isDataDriven(),a=r.value;this._transitionablePaint.setValue(t,e),this._handleSpecialPaintPropertyUpdate(t);const s=this._transitionablePaint._values[t].value;return s.isDataDriven()||i||n||this._handleOverridablePaintPropertyUpdate(t,a,s)}}_handleSpecialPaintPropertyUpdate(t){}_handleOverridablePaintPropertyUpdate(t,e,r){return !1}isHidden(t){return !!(this.minzoom&&t=this.maxzoom)||\"none\"===this.visibility}updateTransitions(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint);}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(t,e){t.getCrossfadeParameters&&(this._crossfadeParameters=t.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,e)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,e);}serialize(){const t={id:this.id,type:this.type,source:this.source,\"source-layer\":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),h(t,((t,e)=>!(void 0===t||\"layout\"===e&&!Object.keys(t).length||\"paint\"===e&&!Object.keys(t).length)))}_validate(t,e,r,n,i={}){return (!i||!1!==i.validate)&&kn(this,t.call(bn,{key:e,layerType:this.type,objectKey:r,value:n,styleSpec:nt,style:{glyphs:!0,sprite:!0}}))}is3D(){return !1}isTileClipped(){return !1}hasOffscreenPass(){return !1}resize(){}isStateDependent(){for(const t in this.paint._values){const e=this.paint.get(t);if(e instanceof si&&br(e.property.specification)&&(\"source\"===e.value.kind||\"composite\"===e.value.kind)&&e.value.isStateDependent)return !0}return !1}}const mi={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class gi{constructor(t,e){this._structArray=t,this._pos1=e*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8;}}class xi{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0);}static serialize(t,e){return t._trim(),e&&(t.isTransferred=!0,e.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}}static deserialize(t){const e=Object.create(this.prototype);return e.arrayBuffer=t.arrayBuffer,e.length=t.length,e.capacity=t.arrayBuffer.byteLength/e.bytesPerElement,e._refreshViews(),e}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews());}clear(){this.length=0;}resize(t){this.reserve(t),this.length=t;}reserve(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const e=this.uint8;this._refreshViews(),e&&this.uint8.set(e);}}_refreshViews(){throw new Error(\"_refreshViews() must be implemented by each concrete StructArray layout\")}}function vi(t,e=1){let r=0,n=0;return {members:t.map((t=>{const i=mi[t.type].BYTES_PER_ELEMENT,a=r=bi(r,Math.max(e,i)),s=t.components||1;return n=Math.max(n,i),r+=i*s,{name:t.name,type:t.type,components:s,offset:a}})),size:bi(r,Math.max(n,e)),alignment:e}}function bi(t,e){return Math.ceil(t/e)*e}class wi extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e){const r=this.length;return this.resize(r+1),this.emplace(r,t,e)}emplace(t,e,r){const n=2*t;return this.int16[n+0]=e,this.int16[n+1]=r,t}}wi.prototype.bytesPerElement=4,Mn(\"StructArrayLayout2i4\",wi);class _i extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const a=4*t;return this.int16[a+0]=e,this.int16[a+1]=r,this.int16[a+2]=n,this.int16[a+3]=i,t}}_i.prototype.bytesPerElement=8,Mn(\"StructArrayLayout4i8\",_i);class Ai extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a){const s=this.length;return this.resize(s+1),this.emplace(s,t,e,r,n,i,a)}emplace(t,e,r,n,i,a,s){const o=6*t;return this.int16[o+0]=e,this.int16[o+1]=r,this.int16[o+2]=n,this.int16[o+3]=i,this.int16[o+4]=a,this.int16[o+5]=s,t}}Ai.prototype.bytesPerElement=12,Mn(\"StructArrayLayout2i4i12\",Ai);class ki extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a){const s=this.length;return this.resize(s+1),this.emplace(s,t,e,r,n,i,a)}emplace(t,e,r,n,i,a,s){const o=4*t,l=8*t;return this.int16[o+0]=e,this.int16[o+1]=r,this.uint8[l+4]=n,this.uint8[l+5]=i,this.uint8[l+6]=a,this.uint8[l+7]=s,t}}ki.prototype.bytesPerElement=8,Mn(\"StructArrayLayout2i4ub8\",ki);class Si extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e){const r=this.length;return this.resize(r+1),this.emplace(r,t,e)}emplace(t,e,r){const n=2*t;return this.float32[n+0]=e,this.float32[n+1]=r,t}}Si.prototype.bytesPerElement=8,Mn(\"StructArrayLayout2f8\",Si);class Ii extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s,o,l,u){const c=this.length;return this.resize(c+1),this.emplace(c,t,e,r,n,i,a,s,o,l,u)}emplace(t,e,r,n,i,a,s,o,l,u,c){const h=10*t;return this.uint16[h+0]=e,this.uint16[h+1]=r,this.uint16[h+2]=n,this.uint16[h+3]=i,this.uint16[h+4]=a,this.uint16[h+5]=s,this.uint16[h+6]=o,this.uint16[h+7]=l,this.uint16[h+8]=u,this.uint16[h+9]=c,t}}Ii.prototype.bytesPerElement=20,Mn(\"StructArrayLayout10ui20\",Ii);class Mi extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s,o,l,u,c,h){const p=this.length;return this.resize(p+1),this.emplace(p,t,e,r,n,i,a,s,o,l,u,c,h)}emplace(t,e,r,n,i,a,s,o,l,u,c,h,p){const f=12*t;return this.int16[f+0]=e,this.int16[f+1]=r,this.int16[f+2]=n,this.int16[f+3]=i,this.uint16[f+4]=a,this.uint16[f+5]=s,this.uint16[f+6]=o,this.uint16[f+7]=l,this.int16[f+8]=u,this.int16[f+9]=c,this.int16[f+10]=h,this.int16[f+11]=p,t}}Mi.prototype.bytesPerElement=24,Mn(\"StructArrayLayout4i4ui4i24\",Mi);class zi extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=3*t;return this.float32[i+0]=e,this.float32[i+1]=r,this.float32[i+2]=n,t}}zi.prototype.bytesPerElement=12,Mn(\"StructArrayLayout3f12\",zi);class Bi extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer);}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.uint32[1*t+0]=e,t}}Bi.prototype.bytesPerElement=4,Mn(\"StructArrayLayout1ul4\",Bi);class Ci extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s,o,l){const u=this.length;return this.resize(u+1),this.emplace(u,t,e,r,n,i,a,s,o,l)}emplace(t,e,r,n,i,a,s,o,l,u){const c=10*t,h=5*t;return this.int16[c+0]=e,this.int16[c+1]=r,this.int16[c+2]=n,this.int16[c+3]=i,this.int16[c+4]=a,this.int16[c+5]=s,this.uint32[h+3]=o,this.uint16[c+8]=l,this.uint16[c+9]=u,t}}Ci.prototype.bytesPerElement=20,Mn(\"StructArrayLayout6i1ul2ui20\",Ci);class Pi extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a){const s=this.length;return this.resize(s+1),this.emplace(s,t,e,r,n,i,a)}emplace(t,e,r,n,i,a,s){const o=6*t;return this.int16[o+0]=e,this.int16[o+1]=r,this.int16[o+2]=n,this.int16[o+3]=i,this.int16[o+4]=a,this.int16[o+5]=s,t}}Pi.prototype.bytesPerElement=12,Mn(\"StructArrayLayout2i2i2i12\",Pi);class Vi extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i){const a=this.length;return this.resize(a+1),this.emplace(a,t,e,r,n,i)}emplace(t,e,r,n,i,a){const s=4*t,o=8*t;return this.float32[s+0]=e,this.float32[s+1]=r,this.float32[s+2]=n,this.int16[o+6]=i,this.int16[o+7]=a,t}}Vi.prototype.bytesPerElement=16,Mn(\"StructArrayLayout2f1f2i16\",Vi);class Ei extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const a=12*t,s=3*t;return this.uint8[a+0]=e,this.uint8[a+1]=r,this.float32[s+1]=n,this.float32[s+2]=i,t}}Ei.prototype.bytesPerElement=12,Mn(\"StructArrayLayout2ub2f12\",Ei);class Fi extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=3*t;return this.uint16[i+0]=e,this.uint16[i+1]=r,this.uint16[i+2]=n,t}}Fi.prototype.bytesPerElement=6,Mn(\"StructArrayLayout3ui6\",Fi);class Ti extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m){const g=this.length;return this.resize(g+1),this.emplace(g,t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m)}emplace(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m,g){const x=24*t,v=12*t,b=48*t;return this.int16[x+0]=e,this.int16[x+1]=r,this.uint16[x+2]=n,this.uint16[x+3]=i,this.uint32[v+2]=a,this.uint32[v+3]=s,this.uint32[v+4]=o,this.uint16[x+10]=l,this.uint16[x+11]=u,this.uint16[x+12]=c,this.float32[v+7]=h,this.float32[v+8]=p,this.uint8[b+36]=f,this.uint8[b+37]=d,this.uint8[b+38]=y,this.uint32[v+10]=m,this.int16[x+22]=g,t}}Ti.prototype.bytesPerElement=48,Mn(\"StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48\",Ti);class Li extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m,g,x,v,b,w,_,A,k,S,I,M){const z=this.length;return this.resize(z+1),this.emplace(z,t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m,g,x,v,b,w,_,A,k,S,I,M)}emplace(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m,g,x,v,b,w,_,A,k,S,I,M,z){const B=34*t,C=17*t;return this.int16[B+0]=e,this.int16[B+1]=r,this.int16[B+2]=n,this.int16[B+3]=i,this.int16[B+4]=a,this.int16[B+5]=s,this.int16[B+6]=o,this.int16[B+7]=l,this.uint16[B+8]=u,this.uint16[B+9]=c,this.uint16[B+10]=h,this.uint16[B+11]=p,this.uint16[B+12]=f,this.uint16[B+13]=d,this.uint16[B+14]=y,this.uint16[B+15]=m,this.uint16[B+16]=g,this.uint16[B+17]=x,this.uint16[B+18]=v,this.uint16[B+19]=b,this.uint16[B+20]=w,this.uint16[B+21]=_,this.uint16[B+22]=A,this.uint32[C+12]=k,this.float32[C+13]=S,this.float32[C+14]=I,this.float32[C+15]=M,this.float32[C+16]=z,t}}Li.prototype.bytesPerElement=68,Mn(\"StructArrayLayout8i15ui1ul4f68\",Li);class Di extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.float32[1*t+0]=e,t}}Di.prototype.bytesPerElement=4,Mn(\"StructArrayLayout1f4\",Di);class $i extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=3*t;return this.int16[i+0]=e,this.int16[i+1]=r,this.int16[i+2]=n,t}}$i.prototype.bytesPerElement=6,Mn(\"StructArrayLayout3i6\",$i);class Ri extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e,r){const n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)}emplace(t,e,r,n){const i=4*t;return this.uint32[2*t+0]=e,this.uint16[i+2]=r,this.uint16[i+3]=n,t}}Ri.prototype.bytesPerElement=8,Mn(\"StructArrayLayout1ul2ui8\",Ri);class Oi extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t,e){const r=this.length;return this.resize(r+1),this.emplace(r,t,e)}emplace(t,e,r){const n=2*t;return this.uint16[n+0]=e,this.uint16[n+1]=r,t}}Oi.prototype.bytesPerElement=4,Mn(\"StructArrayLayout2ui4\",Oi);class Ui extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(t){const e=this.length;return this.resize(e+1),this.emplace(e,t)}emplace(t,e){return this.uint16[1*t+0]=e,t}}Ui.prototype.bytesPerElement=2,Mn(\"StructArrayLayout1ui2\",Ui);class qi extends xi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(t,e,r,n){const i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)}emplace(t,e,r,n,i){const a=4*t;return this.float32[a+0]=e,this.float32[a+1]=r,this.float32[a+2]=n,this.float32[a+3]=i,t}}qi.prototype.bytesPerElement=16,Mn(\"StructArrayLayout4f16\",qi);class ji extends gi{get anchorPointX(){return this._structArray.int16[this._pos2+0]}get anchorPointY(){return this._structArray.int16[this._pos2+1]}get x1(){return this._structArray.int16[this._pos2+2]}get y1(){return this._structArray.int16[this._pos2+3]}get x2(){return this._structArray.int16[this._pos2+4]}get y2(){return this._structArray.int16[this._pos2+5]}get featureIndex(){return this._structArray.uint32[this._pos4+3]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+8]}get bucketIndex(){return this._structArray.uint16[this._pos2+9]}get anchorPoint(){return new S(this.anchorPointX,this.anchorPointY)}}ji.prototype.size=20;class Ni extends Ci{get(t){return new ji(this,t)}}Mn(\"CollisionBoxArray\",Ni);class Zi extends gi{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+2]}get numGlyphs(){return this._structArray.uint16[this._pos2+3]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+2]}get lineStartIndex(){return this._structArray.uint32[this._pos4+3]}get lineLength(){return this._structArray.uint32[this._pos4+4]}get segment(){return this._structArray.uint16[this._pos2+10]}get lowerSize(){return this._structArray.uint16[this._pos2+11]}get upperSize(){return this._structArray.uint16[this._pos2+12]}get lineOffsetX(){return this._structArray.float32[this._pos4+7]}get lineOffsetY(){return this._structArray.float32[this._pos4+8]}get writingMode(){return this._structArray.uint8[this._pos1+36]}get placedOrientation(){return this._structArray.uint8[this._pos1+37]}set placedOrientation(t){this._structArray.uint8[this._pos1+37]=t;}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(t){this._structArray.uint8[this._pos1+38]=t;}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(t){this._structArray.uint32[this._pos4+10]=t;}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}}Zi.prototype.size=48;class Ki extends Ti{get(t){return new Zi(this,t)}}Mn(\"PlacedSymbolArray\",Ki);class Gi extends gi{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+2]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+3]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+4]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+5]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+6]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+7]}get key(){return this._structArray.uint16[this._pos2+8]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+9]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+10]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+11]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+12]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+13]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+14]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get featureIndex(){return this._structArray.uint16[this._pos2+17]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+18]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+19]}get numIconVertices(){return this._structArray.uint16[this._pos2+20]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+21]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+22]}get crossTileID(){return this._structArray.uint32[this._pos4+12]}set crossTileID(t){this._structArray.uint32[this._pos4+12]=t;}get textBoxScale(){return this._structArray.float32[this._pos4+13]}get textOffset0(){return this._structArray.float32[this._pos4+14]}get textOffset1(){return this._structArray.float32[this._pos4+15]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+16]}}Gi.prototype.size=68;class Ji extends Li{get(t){return new Gi(this,t)}}Mn(\"SymbolInstanceArray\",Ji);class Xi extends Di{getoffsetX(t){return this.float32[1*t+0]}}Mn(\"GlyphOffsetArray\",Xi);class Yi extends $i{getx(t){return this.int16[3*t+0]}gety(t){return this.int16[3*t+1]}gettileUnitDistanceFromAnchor(t){return this.int16[3*t+2]}}Mn(\"SymbolLineVertexArray\",Yi);class Hi extends gi{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}}Hi.prototype.size=8;class Wi extends Ri{get(t){return new Hi(this,t)}}Mn(\"FeatureIndexArray\",Wi);class Qi extends wi{}class ta extends wi{}class ea extends wi{}class ra extends Ai{}class na extends ki{}class ia extends Si{}class aa extends Ii{}class sa extends Mi{}class oa extends zi{}class la extends Bi{}class ua extends Pi{}class ca extends Ei{}class ha extends Fi{}class pa extends Oi{}const fa=vi([{name:\"a_pos\",components:2,type:\"Int16\"}],4),{members:da}=fa;class ya{constructor(t=[]){this.segments=t;}prepareSegment(t,e,r,n){let i=this.segments[this.segments.length-1];return t>ya.MAX_VERTEX_ARRAY_LENGTH&&d(`Max vertices per segment is ${ya.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}`),(!i||i.vertexLength+t>ya.MAX_VERTEX_ARRAY_LENGTH||i.sortKey!==n)&&(i={vertexOffset:e.length,primitiveOffset:r.length,vertexLength:0,primitiveLength:0},void 0!==n&&(i.sortKey=n),this.segments.push(i)),i}get(){return this.segments}destroy(){for(const t of this.segments)for(const e in t.vaos)t.vaos[e].destroy();}static simpleSegment(t,e,r,n){return new ya([{vertexOffset:t,primitiveOffset:e,vertexLength:r,primitiveLength:n,vaos:{},sortKey:0}])}}function ma(t,e){return 256*(t=a(Math.floor(t),0,255))+a(Math.floor(e),0,255)}ya.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,Mn(\"SegmentVector\",ya);const ga=vi([{name:\"a_pattern_from\",components:4,type:\"Uint16\"},{name:\"a_pattern_to\",components:4,type:\"Uint16\"},{name:\"a_pixel_ratio_from\",components:1,type:\"Uint16\"},{name:\"a_pixel_ratio_to\",components:1,type:\"Uint16\"}]);var xa={exports:{}},va={exports:{}};va.exports=function(t,e){var r,n,i,a,s,o,l,u;for(n=t.length-(r=3&t.length),i=e,s=3432918353,o=461845907,u=0;u>>16)*s&65535)<<16)&4294967295)<<15|l>>>17))*o+(((l>>>16)*o&65535)<<16)&4294967295)<<13|i>>>19))+((5*(i>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(l=0,r){case 3:l^=(255&t.charCodeAt(u+2))<<16;case 2:l^=(255&t.charCodeAt(u+1))<<8;case 1:i^=l=(65535&(l=(l=(65535&(l^=255&t.charCodeAt(u)))*s+(((l>>>16)*s&65535)<<16)&4294967295)<<15|l>>>17))*o+(((l>>>16)*o&65535)<<16)&4294967295;}return i^=t.length,i=2246822507*(65535&(i^=i>>>16))+((2246822507*(i>>>16)&65535)<<16)&4294967295,i=3266489909*(65535&(i^=i>>>13))+((3266489909*(i>>>16)&65535)<<16)&4294967295,(i^=i>>>16)>>>0};var ba={exports:{}};ba.exports=function(t,e){for(var r,n=t.length,i=e^n,a=0;n>=4;)r=1540483477*(65535&(r=255&t.charCodeAt(a)|(255&t.charCodeAt(++a))<<8|(255&t.charCodeAt(++a))<<16|(255&t.charCodeAt(++a))<<24))+((1540483477*(r>>>16)&65535)<<16),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)^(r=1540483477*(65535&(r^=r>>>24))+((1540483477*(r>>>16)&65535)<<16)),n-=4,++a;switch(n){case 3:i^=(255&t.charCodeAt(a+2))<<16;case 2:i^=(255&t.charCodeAt(a+1))<<8;case 1:i=1540483477*(65535&(i^=255&t.charCodeAt(a)))+((1540483477*(i>>>16)&65535)<<16);}return i=1540483477*(65535&(i^=i>>>13))+((1540483477*(i>>>16)&65535)<<16),(i^=i>>>15)>>>0};var wa=va.exports,_a=ba.exports;xa.exports=wa,xa.exports.murmur3=wa,xa.exports.murmur2=_a;class Aa{constructor(){this.ids=[],this.positions=[],this.indexed=!1;}add(t,e,r,n){this.ids.push(ka(t)),this.positions.push(e,r,n);}getPositions(t){if(!this.indexed)throw new Error(\"Trying to get index, but feature positions are not indexed\");const e=ka(t);let r=0,n=this.ids.length-1;for(;r>1;this.ids[t]>=e?n=t:r=t+1;}const i=[];for(;this.ids[r]===e;)i.push({index:this.positions[3*r],start:this.positions[3*r+1],end:this.positions[3*r+2]}),r++;return i}static serialize(t,e){const r=new Float64Array(t.ids),n=new Uint32Array(t.positions);return Sa(r,n,0,r.length-1),e&&e.push(r.buffer,n.buffer),{ids:r,positions:n}}static deserialize(t){const e=new Aa;return e.ids=t.ids,e.positions=t.positions,e.indexed=!0,e}}function ka(t){const e=+t;return !isNaN(e)&&e<=Number.MAX_SAFE_INTEGER?e:xa.exports(String(t))}function Sa(t,e,r,n){for(;r>1];let a=r-1,s=n+1;for(;;){do{a++;}while(t[a]i);if(a>=s)break;Ia(t,a,s),Ia(e,3*a,3*s),Ia(e,3*a+1,3*s+1),Ia(e,3*a+2,3*s+2);}s-r`u_${t}`)),this.type=r;}setUniform(t,e,r){t.set(r.constantOr(this.value));}getBinding(t,e,r){return \"color\"===this.type?new Ca(t,e):new za(t,e)}}class Fa{constructor(t,e){this.uniformNames=e.map((t=>`u_${t}`)),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1;}setConstantPatternPositions(t,e){this.pixelRatioFrom=e.pixelRatio,this.pixelRatioTo=t.pixelRatio,this.patternFrom=e.tlbr,this.patternTo=t.tlbr;}setUniform(t,e,r,n){const i=\"u_pattern_to\"===n?this.patternTo:\"u_pattern_from\"===n?this.patternFrom:\"u_pixel_ratio_to\"===n?this.pixelRatioTo:\"u_pixel_ratio_from\"===n?this.pixelRatioFrom:null;i&&t.set(i);}getBinding(t,e,r){return \"u_pattern\"===r.substr(0,9)?new Ba(t,e):new za(t,e)}}class Ta{constructor(t,e,r,n){this.expression=t,this.type=r,this.maxValue=0,this.paintVertexAttributes=e.map((t=>({name:`a_${t}`,type:\"Float32\",components:\"color\"===r?2:1,offset:0}))),this.paintVertexArray=new n;}populatePaintArray(t,e,r,n,i){const a=this.paintVertexArray.length,s=this.expression.evaluate(new Qn(0),e,{},n,[],i);this.paintVertexArray.resize(t),this._setPaintValue(a,t,s);}updatePaintArray(t,e,r,n){const i=this.expression.evaluate({zoom:0},r,n);this._setPaintValue(t,e,i);}_setPaintValue(t,e,r){if(\"color\"===this.type){const n=Va(r);for(let r=t;r`u_${t}_t`)),this.type=r,this.useIntegerZoom=n,this.zoom=i,this.maxValue=0,this.paintVertexAttributes=e.map((t=>({name:`a_${t}`,type:\"Float32\",components:\"color\"===r?4:2,offset:0}))),this.paintVertexArray=new a;}populatePaintArray(t,e,r,n,i){const a=this.expression.evaluate(new Qn(this.zoom),e,{},n,[],i),s=this.expression.evaluate(new Qn(this.zoom+1),e,{},n,[],i),o=this.paintVertexArray.length;this.paintVertexArray.resize(t),this._setPaintValue(o,t,a,s);}updatePaintArray(t,e,r,n){const i=this.expression.evaluate({zoom:this.zoom},r,n),a=this.expression.evaluate({zoom:this.zoom+1},r,n);this._setPaintValue(t,e,i,a);}_setPaintValue(t,e,r,n){if(\"color\"===this.type){const i=Va(r),a=Va(n);for(let r=t;r`#define HAS_UNIFORM_${t}`)));}return t}getBinderAttributes(){const t=[];for(const e in this.binders){const r=this.binders[e];if(r instanceof Ta||r instanceof La)for(let e=0;e!0)){this.programConfigurations={};for(const n of t)this.programConfigurations[n.id]=new $a(n,e,r);this.needsUpload=!1,this._featureMap=new Aa,this._bufferOffset=0;}populatePaintArrays(t,e,r,n,i,a){for(const r in this.programConfigurations)this.programConfigurations[r].populatePaintArrays(t,e,n,i,a);void 0!==e.id&&this._featureMap.add(e.id,r,this._bufferOffset,t),this._bufferOffset=t,this.needsUpload=!0;}updatePaintArrays(t,e,r,n){for(const i of r)this.needsUpload=this.programConfigurations[i.id].updatePaintArrays(t,this._featureMap,e,i,n)||this.needsUpload;}get(t){return this.programConfigurations[t]}upload(t){if(this.needsUpload){for(const e in this.programConfigurations)this.programConfigurations[e].upload(t);this.needsUpload=!1;}}destroy(){for(const t in this.programConfigurations)this.programConfigurations[t].destroy();}}function Oa(t,e){return {\"text-opacity\":[\"opacity\"],\"icon-opacity\":[\"opacity\"],\"text-color\":[\"fill_color\"],\"icon-color\":[\"fill_color\"],\"text-halo-color\":[\"halo_color\"],\"icon-halo-color\":[\"halo_color\"],\"text-halo-blur\":[\"halo_blur\"],\"icon-halo-blur\":[\"halo_blur\"],\"text-halo-width\":[\"halo_width\"],\"icon-halo-width\":[\"halo_width\"],\"line-gap-width\":[\"gapwidth\"],\"line-pattern\":[\"pattern_to\",\"pattern_from\",\"pixel_ratio_to\",\"pixel_ratio_from\"],\"fill-pattern\":[\"pattern_to\",\"pattern_from\",\"pixel_ratio_to\",\"pixel_ratio_from\"],\"fill-extrusion-pattern\":[\"pattern_to\",\"pattern_from\",\"pixel_ratio_to\",\"pixel_ratio_from\"]}[t]||[t.replace(`${e}-`,\"\").replace(/-/g,\"_\")]}function Ua(t,e,r){const n={color:{source:Si,composite:qi},number:{source:Di,composite:Si}},i=function(t){return {\"line-pattern\":{source:aa,composite:aa},\"fill-pattern\":{source:aa,composite:aa},\"fill-extrusion-pattern\":{source:aa,composite:aa}}[t]}(t);return i&&i[r]||n[e][r]}Mn(\"ConstantBinder\",Ea),Mn(\"CrossFadedConstantBinder\",Fa),Mn(\"SourceExpressionBinder\",Ta),Mn(\"CrossFadedCompositeBinder\",Da),Mn(\"CompositeExpressionBinder\",La),Mn(\"ProgramConfiguration\",$a,{omit:[\"_buffers\"]}),Mn(\"ProgramConfigurationSet\",Ra);var qa=8192;const ja=Math.pow(2,14)-1,Na=-ja-1;function Za(t){const e=qa/t.extent,r=t.loadGeometry();for(let t=0;tr.x+1||sr.y+1)&&d(\"Geometry exceeds allowed extent, reduce your vector tile buffer size\");}}return r}function Ka(t,e){return {type:t.type,id:t.id,properties:t.properties,geometry:e?Za(t):[]}}function Ga(t,e,r,n,i){t.emplaceBack(2*e+(n+1)/2,2*r+(i+1)/2);}class Ja{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.id)),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new ta,this.indexArray=new ha,this.segments=new ya,this.programConfigurations=new Ra(t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id));}populate(t,e,r){const n=this.layers[0],i=[];let a=null,s=!1;\"circle\"===n.type&&(a=n.layout.get(\"circle-sort-key\"),s=!a.isConstant());for(const{feature:e,id:n,index:o,sourceLayerIndex:l}of t){const t=this.layers[0]._featureFilter.needGeometry,u=Ka(e,t);if(!this.layers[0]._featureFilter.filter(new Qn(this.zoom),u,r))continue;const c=s?a.evaluate(u,{},r):void 0,h={id:n,properties:e.properties,type:e.type,sourceLayerIndex:l,index:o,geometry:t?u.geometry:Za(e),patterns:{},sortKey:c};i.push(h);}s&&i.sort(((t,e)=>t.sortKey-e.sortKey));for(const n of i){const{geometry:i,index:a,sourceLayerIndex:s}=n,o=t[a].feature;this.addFeature(n,i,a,r),e.featureIndex.insert(o,i,a,s,this.index);}}update(t,e,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r);}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,da),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());}addFeature(t,e,r,n){for(const r of e)for(const e of r){const r=e.x,n=e.y;if(r<0||r>=qa||n<0||n>=qa)continue;const i=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,t.sortKey),a=i.vertexLength;Ga(this.layoutVertexArray,r,n,-1,-1),Ga(this.layoutVertexArray,r,n,1,-1),Ga(this.layoutVertexArray,r,n,1,1),Ga(this.layoutVertexArray,r,n,-1,1),this.indexArray.emplaceBack(a,a+1,a+2),this.indexArray.emplaceBack(a,a+3,a+2),i.vertexLength+=4,i.primitiveLength+=2;}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,{},n);}}function Xa(t,e){for(let r=0;r1){if(Qa(t,e))return !0;for(let n=0;n1?r:r.sub(e)._mult(i)._add(e))}function ns(t,e){let r,n,i,a=!1;for(let s=0;se.y!=i.y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(a=!a);}return a}function is(t,e){let r=!1;for(let n=0,i=t.length-1;ne.y!=s.y>e.y&&e.x<(s.x-a.x)*(e.y-a.y)/(s.y-a.y)+a.x&&(r=!r);}return r}function as(t,e,r){const n=r[0],i=r[2];if(t.xi.x&&e.x>i.x||t.yi.y&&e.y>i.y)return !1;const a=y(t,e,r[0]);return a!==y(t,e,r[1])||a!==y(t,e,r[2])||a!==y(t,e,r[3])}function ss(t,e,r){const n=e.paint.get(t).value;return \"constant\"===n.kind?n.value:r.programConfigurations.get(e.id).getMaxValue(t)}function os(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function ls(t,e,r,n,i){if(!e[0]&&!e[1])return t;const a=S.convert(e)._mult(i);\"viewport\"===r&&a._rotate(-n);const s=[];for(let e=0;et.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw new RangeError(\"out of range source coordinates for image copy\");if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw new RangeError(\"out of range destination coordinates for image copy\");const s=t.data,o=e.data;if(s===o)throw new Error(\"srcData equals dstData, so image is already copied\");for(let l=0;l{e[t.evaluationKey]=a;const s=t.expression.evaluate(e);i.data[r+n+0]=Math.floor(255*s.r/s.a),i.data[r+n+1]=Math.floor(255*s.g/s.a),i.data[r+n+2]=Math.floor(255*s.b/s.a),i.data[r+n+3]=Math.floor(255*s.a);};if(t.clips)for(let e=0,i=0;e80*r){n=a=t[0],i=s=t[1];for(var d=r;da&&(a=o),l>s&&(s=l);u=0!==(u=Math.max(a-n,s-i))?32767/u:0;}return $s(p,f,r,n,i,u,0),f}function Ls(t,e,r,n,i){var a,s;if(i===so(t,e,r,n)>0)for(a=e;a=e;a-=n)s=no(a,t[a],t[a+1],s);return s&&Hs(s,s.next)&&(io(s),s=s.next),s}function Ds(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!Hs(n,n.next)&&0!==Ys(n.prev,n,n.next))n=n.next;else {if(io(n),(n=e=n.prev)===n.next)break;r=!0;}}while(r||n!==e);return e}function $s(t,e,r,n,i,a,s){if(t){!s&&a&&function(t,e,r,n){var i=t;do{0===i.z&&(i.z=Ks(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,s,o,l,u=1;do{for(r=t,t=null,a=null,s=0;r;){for(s++,n=r,o=0,e=0;e0||l>0&&n;)0!==o&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,o--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n;}a.nextZ=null,u*=2;}while(s>1)}(i);}(t,n,i,a);for(var o,l,u=t;t.prev!==t.next;)if(o=t.prev,l=t.next,a?Os(t,n,i,a):Rs(t))e.push(o.i/r|0),e.push(t.i/r|0),e.push(l.i/r|0),io(t),t=l.next,u=l.next;else if((t=l)===u){s?1===s?$s(t=Us(Ds(t),e,r),e,r,n,i,a,2):2===s&&qs(t,e,r,n,i,a):$s(Ds(t),e,r,n,i,a,1);break}}}function Rs(t){var e=t.prev,r=t,n=t.next;if(Ys(e,r,n)>=0)return !1;for(var i=e.x,a=r.x,s=n.x,o=e.y,l=r.y,u=n.y,c=ia?i>s?i:s:a>s?a:s,f=o>l?o>u?o:u:l>u?l:u,d=n.next;d!==e;){if(d.x>=c&&d.x<=p&&d.y>=h&&d.y<=f&&Js(i,o,a,l,s,u,d.x,d.y)&&Ys(d.prev,d,d.next)>=0)return !1;d=d.next;}return !0}function Os(t,e,r,n){var i=t.prev,a=t,s=t.next;if(Ys(i,a,s)>=0)return !1;for(var o=i.x,l=a.x,u=s.x,c=i.y,h=a.y,p=s.y,f=ol?o>u?o:u:l>u?l:u,m=c>h?c>p?c:p:h>p?h:p,g=Ks(f,d,e,r,n),x=Ks(y,m,e,r,n),v=t.prevZ,b=t.nextZ;v&&v.z>=g&&b&&b.z<=x;){if(v.x>=f&&v.x<=y&&v.y>=d&&v.y<=m&&v!==i&&v!==s&&Js(o,c,l,h,u,p,v.x,v.y)&&Ys(v.prev,v,v.next)>=0)return !1;if(v=v.prevZ,b.x>=f&&b.x<=y&&b.y>=d&&b.y<=m&&b!==i&&b!==s&&Js(o,c,l,h,u,p,b.x,b.y)&&Ys(b.prev,b,b.next)>=0)return !1;b=b.nextZ;}for(;v&&v.z>=g;){if(v.x>=f&&v.x<=y&&v.y>=d&&v.y<=m&&v!==i&&v!==s&&Js(o,c,l,h,u,p,v.x,v.y)&&Ys(v.prev,v,v.next)>=0)return !1;v=v.prevZ;}for(;b&&b.z<=x;){if(b.x>=f&&b.x<=y&&b.y>=d&&b.y<=m&&b!==i&&b!==s&&Js(o,c,l,h,u,p,b.x,b.y)&&Ys(b.prev,b,b.next)>=0)return !1;b=b.nextZ;}return !0}function Us(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!Hs(i,a)&&Ws(i,n,n.next,a)&&eo(i,a)&&eo(a,i)&&(e.push(i.i/r|0),e.push(n.i/r|0),e.push(a.i/r|0),io(n),io(n.next),n=t=a),n=n.next;}while(n!==t);return Ds(n)}function qs(t,e,r,n,i,a){var s=t;do{for(var o=s.next.next;o!==s.prev;){if(s.i!==o.i&&Xs(s,o)){var l=ro(s,o);return s=Ds(s,s.next),l=Ds(l,l.next),$s(s,e,r,n,i,a,0),void $s(l,e,r,n,i,a,0)}o=o.next;}s=s.next;}while(s!==t)}function js(t,e){return t.x-e.x}function Ns(t,e){var r=function(t,e){var r,n=e,i=t.x,a=t.y,s=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var o=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(o<=i&&o>s&&(s=o,r=n.x=n.x&&n.x>=c&&i!==n.x&&Js(ar.x||n.x===r.x&&Zs(r,n)))&&(r=n,p=l)),n=n.next;}while(n!==u);return r}(t,e);if(!r)return e;var n=ro(r,t);return Ds(n,n.next),Ds(r,r.next)}function Zs(t,e){return Ys(t.prev,t,e.prev)<0&&Ys(e.next,t,t.next)<0}function Ks(t,e,r,n,i){return (t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-r)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Gs(t){var e=t,r=t;do{(e.x=(t-s)*(a-o)&&(t-s)*(n-o)>=(r-s)*(e-o)&&(r-s)*(a-o)>=(i-s)*(n-o)}function Xs(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&Ws(r,r.next,t,e))return !0;r=r.next;}while(r!==t);return !1}(t,e)&&(eo(t,e)&&eo(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;}while(r!==t);return n}(t,e)&&(Ys(t.prev,t,e.prev)||Ys(t,e.prev,e))||Hs(t,e)&&Ys(t.prev,t,t.next)>0&&Ys(e.prev,e,e.next)>0)}function Ys(t,e,r){return (e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Hs(t,e){return t.x===e.x&&t.y===e.y}function Ws(t,e,r,n){var i=to(Ys(t,e,r)),a=to(Ys(t,e,n)),s=to(Ys(r,n,t)),o=to(Ys(r,n,e));return i!==a&&s!==o||!(0!==i||!Qs(t,r,e))||!(0!==a||!Qs(t,n,e))||!(0!==s||!Qs(r,t,n))||!(0!==o||!Qs(r,e,n))}function Qs(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function to(t){return t>0?1:t<0?-1:0}function eo(t,e){return Ys(t.prev,t,t.next)<0?Ys(t,e,t.next)>=0&&Ys(t,t.prev,e)>=0:Ys(t,e,t.prev)<0||Ys(t,t.next,e)<0}function ro(t,e){var r=new ao(t.i,t.x,t.y),n=new ao(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function no(t,e,r,n){var i=new ao(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function io(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ);}function ao(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1;}function so(t,e,r,n){for(var i=0,a=e,s=r-n;ar;){if(n-r>600){var a=n-r+1,s=e-r+1,o=Math.log(a),l=.5*Math.exp(2*o/3),u=.5*Math.sqrt(o*l*(a-l)/a)*(s-a/2<0?-1:1);lo(t,e,Math.max(r,Math.floor(e-s*l/a+u)),Math.min(n,Math.floor(e+(a-s)*l/a+u)),i);}var c=t[e],h=r,p=n;for(uo(t,r,e),i(t[n],c)>0&&uo(t,r,n);h0;)p--;}0===i(t[r],c)?uo(t,r,p):uo(t,++p,n),p<=e&&(r=p+1),e<=p&&(n=p-1);}}function uo(t,e,r){var n=t[e];t[e]=t[r],t[r]=n;}function co(t,e){return te?1:0}function ho(t,e){const r=t.length;if(r<=1)return [t];const n=[];let i,a;for(let e=0;e1)for(let t=0;t0&&r.holes.push(n+=t[i-1].length);}return r};class mo{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.id)),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new ea,this.indexArray=new ha,this.indexArray2=new pa,this.programConfigurations=new Ra(t.layers,t.zoom),this.segments=new ya,this.segments2=new ya,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id));}populate(t,e,r){this.hasPattern=fo(\"fill\",this.layers,e);const n=this.layers[0].layout.get(\"fill-sort-key\"),i=!n.isConstant(),a=[];for(const{feature:s,id:o,index:l,sourceLayerIndex:u}of t){const t=this.layers[0]._featureFilter.needGeometry,c=Ka(s,t);if(!this.layers[0]._featureFilter.filter(new Qn(this.zoom),c,r))continue;const h=i?n.evaluate(c,{},r,e.availableImages):void 0,p={id:o,properties:s.properties,type:s.type,sourceLayerIndex:u,index:l,geometry:t?c.geometry:Za(s),patterns:{},sortKey:h};a.push(p);}i&&a.sort(((t,e)=>t.sortKey-e.sortKey));for(const n of a){const{geometry:i,index:a,sourceLayerIndex:s}=n;if(this.hasPattern){const t=yo(\"fill\",this.layers,n,this.zoom,e);this.patternFeatures.push(t);}else this.addFeature(n,i,a,r,{});e.featureIndex.insert(t[a].feature,i,a,s,this.index);}}update(t,e,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r);}addFeatures(t,e,r){for(const t of this.patternFeatures)this.addFeature(t,t.geometry,t.index,e,r);}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Es),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.indexBuffer2=t.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(t),this.uploaded=!0;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy());}addFeature(t,e,r,n,i){for(const t of ho(e,500)){let e=0;for(const r of t)e+=r.length;const r=this.segments.prepareSegment(e,this.layoutVertexArray,this.indexArray),n=r.vertexLength,i=[],a=[];for(const e of t){if(0===e.length)continue;e!==t[0]&&a.push(i.length/2);const r=this.segments2.prepareSegment(e.length,this.layoutVertexArray,this.indexArray2),n=r.vertexLength;this.layoutVertexArray.emplaceBack(e[0].x,e[0].y),this.indexArray2.emplaceBack(n+e.length-1,n),i.push(e[0].x),i.push(e[0].y);for(let t=1;t>3;}if(i--,1===n||2===n)a+=t.readSVarint(),s+=t.readSVarint(),1===n&&(e&&o.push(e),e=[]),e.push(new Ao(a,s));else {if(7!==n)throw new Error(\"unknown command \"+n);e&&e.push(e[0].clone());}}return e&&o.push(e),o},So.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,n=0,i=0,a=0,s=1/0,o=-1/0,l=1/0,u=-1/0;t.pos>3;}if(n--,1===r||2===r)(i+=t.readSVarint())o&&(o=i),(a+=t.readSVarint())u&&(u=a);else if(7!==r)throw new Error(\"unknown command \"+r)}return [s,l,o,u]},So.prototype.toGeoJSON=function(t,e,r){var n,i,a=this.extent*Math.pow(2,r),s=this.extent*t,o=this.extent*e,l=this.loadGeometry(),u=So.types[this.type];function c(t){for(var e=0;e>3;e=1===n?t.readString():2===n?t.readFloat():3===n?t.readDouble():4===n?t.readVarint64():5===n?t.readVarint():6===n?t.readSVarint():7===n?t.readBoolean():null;}return e}(r));}Co.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error(\"feature index out of bounds\");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new zo(this._pbf,e,this.extent,this._keys,this._values)};var Vo=Bo;function Eo(t,e,r){if(3===t){var n=new Vo(r,r.readVarint()+r.pos);n.length&&(e[n.name]=n);}}_o.VectorTile=function(t,e){this.layers=t.readFields(Eo,{},e);},_o.VectorTileFeature=ko,_o.VectorTileLayer=Bo;const Fo=_o.VectorTileFeature.types,To=Math.pow(2,13);function Lo(t,e,r,n,i,a,s,o){t.emplaceBack(e,r,2*Math.floor(n*To)+s,i*To*2,a*To*2,Math.round(o));}class Do{constructor(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((t=>t.id)),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new ra,this.centroidVertexArray=new Qi,this.indexArray=new ha,this.programConfigurations=new Ra(t.layers,t.zoom),this.segments=new ya,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id));}populate(t,e,r){this.features=[],this.hasPattern=fo(\"fill-extrusion\",this.layers,e);for(const{feature:n,id:i,index:a,sourceLayerIndex:s}of t){const t=this.layers[0]._featureFilter.needGeometry,o=Ka(n,t);if(!this.layers[0]._featureFilter.filter(new Qn(this.zoom),o,r))continue;const l={id:i,sourceLayerIndex:s,index:a,geometry:t?o.geometry:Za(n),properties:n.properties,type:n.type,patterns:{}};this.hasPattern?this.features.push(yo(\"fill-extrusion\",this.layers,l,this.zoom,e)):this.addFeature(l,l.geometry,a,r,{}),e.featureIndex.insert(n,l.geometry,a,s,this.index,!0);}}addFeatures(t,e,r){for(const t of this.features){const{geometry:n}=t;this.addFeature(t,n,t.index,e,r);}}update(t,e,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r);}isEmpty(){return 0===this.layoutVertexArray.length&&0===this.centroidVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,wo),this.centroidVertexBuffer=t.createVertexBuffer(this.centroidVertexArray,bo.members,!0),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy());}addFeature(t,e,r,n,i){const a={x:0,y:0,vertexCount:0};for(const r of ho(e,500)){let e=0;for(const t of r)e+=t.length;let n=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray);for(const t of r){if(0===t.length)continue;if(Ro(t))continue;let e=0;for(let r=0;r=1){const s=t[r-1];if(!$o(i,s)){n.vertexLength+4>ya.MAX_VERTEX_ARRAY_LENGTH&&(n=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const t=i.sub(s)._perp()._unit(),r=s.dist(i);e+r>32768&&(e=0),Lo(this.layoutVertexArray,i.x,i.y,t.x,t.y,0,0,e),Lo(this.layoutVertexArray,i.x,i.y,t.x,t.y,0,1,e),a.x+=2*i.x,a.y+=2*i.y,a.vertexCount+=2,e+=r,Lo(this.layoutVertexArray,s.x,s.y,t.x,t.y,0,0,e),Lo(this.layoutVertexArray,s.x,s.y,t.x,t.y,0,1,e),a.x+=2*s.x,a.y+=2*s.y,a.vertexCount+=2;const o=n.vertexLength;this.indexArray.emplaceBack(o,o+2,o+1),this.indexArray.emplaceBack(o+1,o+2,o+3),n.vertexLength+=4,n.primitiveLength+=2;}}}}if(n.vertexLength+e>ya.MAX_VERTEX_ARRAY_LENGTH&&(n=this.segments.prepareSegment(e,this.layoutVertexArray,this.indexArray)),\"Polygon\"!==Fo[t.type])continue;const i=[],s=[],o=n.vertexLength;for(const t of r)if(0!==t.length){t!==r[0]&&s.push(i.length/2);for(let e=0;eqa)||t.y===e.y&&(t.y<0||t.y>qa)}function Ro(t){return t.every((t=>t.x<0))||t.every((t=>t.x>qa))||t.every((t=>t.y<0))||t.every((t=>t.y>qa))}Mn(\"FillExtrusionBucket\",Do,{omit:[\"layers\",\"features\"]});var Oo={paint:new fi({\"fill-extrusion-opacity\":new li(nt[\"paint_fill-extrusion\"][\"fill-extrusion-opacity\"]),\"fill-extrusion-color\":new ui(nt[\"paint_fill-extrusion\"][\"fill-extrusion-color\"]),\"fill-extrusion-translate\":new li(nt[\"paint_fill-extrusion\"][\"fill-extrusion-translate\"]),\"fill-extrusion-translate-anchor\":new li(nt[\"paint_fill-extrusion\"][\"fill-extrusion-translate-anchor\"]),\"fill-extrusion-pattern\":new ci(nt[\"paint_fill-extrusion\"][\"fill-extrusion-pattern\"]),\"fill-extrusion-height\":new ui(nt[\"paint_fill-extrusion\"][\"fill-extrusion-height\"]),\"fill-extrusion-base\":new ui(nt[\"paint_fill-extrusion\"][\"fill-extrusion-base\"]),\"fill-extrusion-vertical-gradient\":new li(nt[\"paint_fill-extrusion\"][\"fill-extrusion-vertical-gradient\"])})};function Uo(t,e){return t.x*e.x+t.y*e.y}function qo(t,e){if(1===t.length){let r=0;const n=e[r++];let i;for(;!i||n.equals(i);)if(i=e[r++],!i)return 1/0;for(;rt.id)),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach((t=>{this.gradients[t.id]={};})),this.layoutVertexArray=new na,this.layoutVertexArray2=new ia,this.indexArray=new ha,this.programConfigurations=new Ra(t.layers,t.zoom),this.segments=new ya,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id));}populate(t,e,r){this.hasPattern=fo(\"line\",this.layers,e);const n=this.layers[0].layout.get(\"line-sort-key\"),i=!n.isConstant(),a=[];for(const{feature:e,id:s,index:o,sourceLayerIndex:l}of t){const t=this.layers[0]._featureFilter.needGeometry,u=Ka(e,t);if(!this.layers[0]._featureFilter.filter(new Qn(this.zoom),u,r))continue;const c=i?n.evaluate(u,{},r):void 0,h={id:s,properties:e.properties,type:e.type,sourceLayerIndex:l,index:o,geometry:t?u.geometry:Za(e),patterns:{},sortKey:c};a.push(h);}i&&a.sort(((t,e)=>t.sortKey-e.sortKey));for(const n of a){const{geometry:i,index:a,sourceLayerIndex:s}=n;if(this.hasPattern){const t=yo(\"line\",this.layers,n,this.zoom,e);this.patternFeatures.push(t);}else this.addFeature(n,i,a,r,{});e.featureIndex.insert(t[a].feature,i,a,s,this.index);}}update(t,e,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r);}addFeatures(t,e,r){for(const t of this.patternFeatures)this.addFeature(t,t.geometry,t.index,e,r);}isEmpty(){return 0===this.layoutVertexArray.length}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(t){this.uploaded||(0!==this.layoutVertexArray2.length&&(this.layoutVertexBuffer2=t.createVertexBuffer(this.layoutVertexArray2,Ko)),this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,No),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());}lineFeatureClips(t){if(t.properties&&Object.prototype.hasOwnProperty.call(t.properties,\"mapbox_clip_start\")&&Object.prototype.hasOwnProperty.call(t.properties,\"mapbox_clip_end\"))return {start:+t.properties.mapbox_clip_start,end:+t.properties.mapbox_clip_end}}addFeature(t,e,r,n,i){const a=this.layers[0].layout,s=a.get(\"line-join\").evaluate(t,{}),o=a.get(\"line-cap\"),l=a.get(\"line-miter-limit\"),u=a.get(\"line-round-limit\");this.lineClips=this.lineFeatureClips(t);for(const r of e)this.addLine(r,t,s,o,l,u);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,i,n);}addLine(t,e,r,n,i,a){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let e=0;e=2&&t[o-1].equals(t[o-2]);)o--;let l=0;for(;l0;if(w&&e>l){const t=h.dist(p);if(t>2*u){const e=h.sub(h.sub(p)._mult(u/t)._round());this.updateDistance(p,e),this.addCurrentVertex(e,d,0,0,c),p=e;}}const A=p&&f;let k=A?r:s?\"butt\":n;if(A&&\"round\"===k&&(vi&&(k=\"bevel\"),\"bevel\"===k&&(v>2&&(k=\"flipbevel\"),v100)m=y.mult(-1);else {const t=v*d.add(y).mag()/d.sub(y).mag();m._perp()._mult(t*(_?-1:1));}this.addCurrentVertex(h,m,0,0,c),this.addCurrentVertex(h,m.mult(-1),0,0,c);}else if(\"bevel\"===k||\"fakeround\"===k){const t=-Math.sqrt(v*v-1),e=_?t:0,r=_?0:t;if(p&&this.addCurrentVertex(h,d,e,r,c),\"fakeround\"===k){const t=Math.round(180*b/Math.PI/20);for(let e=1;e2*u){const e=h.add(f.sub(h)._mult(u/t)._round());this.updateDistance(h,e),this.addCurrentVertex(e,y,0,0,c),h=e;}}}}addCurrentVertex(t,e,r,n,i,a=!1){const s=e.y*n-e.x,o=-e.y-e.x*n;this.addHalfVertex(t,e.x+e.y*r,e.y-e.x*r,a,!1,r,i),this.addHalfVertex(t,s,o,a,!0,-n,i),this.distance>Xo/2&&0===this.totalDistance&&(this.distance=0,this.addCurrentVertex(t,e,r,n,i,a));}addHalfVertex({x:t,y:e},r,n,i,a,s,o){const l=.5*(this.lineClips?this.scaledDistance*(Xo-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((t<<1)+(i?1:0),(e<<1)+(a?1:0),Math.round(63*r)+128,Math.round(63*n)+128,1+(0===s?0:s<0?-1:1)|(63&l)<<2,l>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);const u=o.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,u),o.primitiveLength++),a?this.e2=u:this.e1=u;}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance;}updateDistance(t,e){this.distance+=t.dist(e),this.updateScaledDistance();}}Mn(\"LineBucket\",Yo,{omit:[\"layers\",\"patternFeatures\"]});const Ho=new fi({\"line-cap\":new li(nt.layout_line[\"line-cap\"]),\"line-join\":new ui(nt.layout_line[\"line-join\"]),\"line-miter-limit\":new li(nt.layout_line[\"line-miter-limit\"]),\"line-round-limit\":new li(nt.layout_line[\"line-round-limit\"]),\"line-sort-key\":new ui(nt.layout_line[\"line-sort-key\"])});var Wo={paint:new fi({\"line-opacity\":new ui(nt.paint_line[\"line-opacity\"]),\"line-color\":new ui(nt.paint_line[\"line-color\"]),\"line-translate\":new li(nt.paint_line[\"line-translate\"]),\"line-translate-anchor\":new li(nt.paint_line[\"line-translate-anchor\"]),\"line-width\":new ui(nt.paint_line[\"line-width\"]),\"line-gap-width\":new ui(nt.paint_line[\"line-gap-width\"]),\"line-offset\":new ui(nt.paint_line[\"line-offset\"]),\"line-blur\":new ui(nt.paint_line[\"line-blur\"]),\"line-dasharray\":new hi(nt.paint_line[\"line-dasharray\"]),\"line-pattern\":new ci(nt.paint_line[\"line-pattern\"]),\"line-gradient\":new pi(nt.paint_line[\"line-gradient\"])}),layout:Ho};const Qo=new class extends ui{possiblyEvaluate(t,e){return e=new Qn(Math.floor(e.zoom),{now:e.now,fadeDuration:e.fadeDuration,zoomHistory:e.zoomHistory,transition:e.transition}),super.possiblyEvaluate(t,e)}evaluate(t,e,r,n){return e=o({},e,{zoom:Math.floor(e.zoom)}),super.evaluate(t,e,r,n)}}(Wo.paint.properties[\"line-width\"].specification);function tl(t,e){return e>0?e+2*t:t}Qo.useIntegerZoom=!0;const el=vi([{name:\"a_pos_offset\",components:4,type:\"Int16\"},{name:\"a_data\",components:4,type:\"Uint16\"},{name:\"a_pixeloffset\",components:4,type:\"Int16\"}],4),rl=vi([{name:\"a_projected_pos\",components:3,type:\"Float32\"}],4);vi([{name:\"a_fade_opacity\",components:1,type:\"Uint32\"}],4);const nl=vi([{name:\"a_placed\",components:2,type:\"Uint8\"},{name:\"a_shift\",components:2,type:\"Float32\"}]);vi([{type:\"Int16\",name:\"anchorPointX\"},{type:\"Int16\",name:\"anchorPointY\"},{type:\"Int16\",name:\"x1\"},{type:\"Int16\",name:\"y1\"},{type:\"Int16\",name:\"x2\"},{type:\"Int16\",name:\"y2\"},{type:\"Uint32\",name:\"featureIndex\"},{type:\"Uint16\",name:\"sourceLayerIndex\"},{type:\"Uint16\",name:\"bucketIndex\"}]);const il=vi([{name:\"a_pos\",components:2,type:\"Int16\"},{name:\"a_anchor_pos\",components:2,type:\"Int16\"},{name:\"a_extrude\",components:2,type:\"Int16\"}],4),al=vi([{name:\"a_pos\",components:2,type:\"Float32\"},{name:\"a_radius\",components:1,type:\"Float32\"},{name:\"a_flags\",components:2,type:\"Int16\"}],4);function sl(t,e,r){return t.sections.forEach((t=>{t.text=function(t,e,r){const n=e.layout.get(\"text-transform\").evaluate(r,{});return \"uppercase\"===n?t=t.toLocaleUpperCase():\"lowercase\"===n&&(t=t.toLocaleLowerCase()),Wn.applyArabicShaping&&(t=Wn.applyArabicShaping(t)),t}(t.text,e,r);})),t}vi([{name:\"triangle\",components:3,type:\"Uint16\"}]),vi([{type:\"Int16\",name:\"anchorX\"},{type:\"Int16\",name:\"anchorY\"},{type:\"Uint16\",name:\"glyphStartIndex\"},{type:\"Uint16\",name:\"numGlyphs\"},{type:\"Uint32\",name:\"vertexStartIndex\"},{type:\"Uint32\",name:\"lineStartIndex\"},{type:\"Uint32\",name:\"lineLength\"},{type:\"Uint16\",name:\"segment\"},{type:\"Uint16\",name:\"lowerSize\"},{type:\"Uint16\",name:\"upperSize\"},{type:\"Float32\",name:\"lineOffsetX\"},{type:\"Float32\",name:\"lineOffsetY\"},{type:\"Uint8\",name:\"writingMode\"},{type:\"Uint8\",name:\"placedOrientation\"},{type:\"Uint8\",name:\"hidden\"},{type:\"Uint32\",name:\"crossTileID\"},{type:\"Int16\",name:\"associatedIconIndex\"}]),vi([{type:\"Int16\",name:\"anchorX\"},{type:\"Int16\",name:\"anchorY\"},{type:\"Int16\",name:\"rightJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"centerJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"leftJustifiedTextSymbolIndex\"},{type:\"Int16\",name:\"verticalPlacedTextSymbolIndex\"},{type:\"Int16\",name:\"placedIconSymbolIndex\"},{type:\"Int16\",name:\"verticalPlacedIconSymbolIndex\"},{type:\"Uint16\",name:\"key\"},{type:\"Uint16\",name:\"textBoxStartIndex\"},{type:\"Uint16\",name:\"textBoxEndIndex\"},{type:\"Uint16\",name:\"verticalTextBoxStartIndex\"},{type:\"Uint16\",name:\"verticalTextBoxEndIndex\"},{type:\"Uint16\",name:\"iconBoxStartIndex\"},{type:\"Uint16\",name:\"iconBoxEndIndex\"},{type:\"Uint16\",name:\"verticalIconBoxStartIndex\"},{type:\"Uint16\",name:\"verticalIconBoxEndIndex\"},{type:\"Uint16\",name:\"featureIndex\"},{type:\"Uint16\",name:\"numHorizontalGlyphVertices\"},{type:\"Uint16\",name:\"numVerticalGlyphVertices\"},{type:\"Uint16\",name:\"numIconVertices\"},{type:\"Uint16\",name:\"numVerticalIconVertices\"},{type:\"Uint16\",name:\"useRuntimeCollisionCircles\"},{type:\"Uint32\",name:\"crossTileID\"},{type:\"Float32\",name:\"textBoxScale\"},{type:\"Float32\",components:2,name:\"textOffset\"},{type:\"Float32\",name:\"collisionCircleDiameter\"}]),vi([{type:\"Float32\",name:\"offsetX\"}]),vi([{type:\"Int16\",name:\"x\"},{type:\"Int16\",name:\"y\"},{type:\"Int16\",name:\"tileUnitDistanceFromAnchor\"}]);const ol={\"!\":\"︕\",\"#\":\"#\",$:\"$\",\"%\":\"%\",\"&\":\"&\",\"(\":\"︵\",\")\":\"︶\",\"*\":\"*\",\"+\":\"+\",\",\":\"︐\",\"-\":\"︲\",\".\":\"・\",\"/\":\"/\",\":\":\"︓\",\";\":\"︔\",\"<\":\"︿\",\"=\":\"=\",\">\":\"﹀\",\"?\":\"︖\",\"@\":\"@\",\"[\":\"﹇\",\"\\\\\":\"\\",\"]\":\"﹈\",\"^\":\"^\",_:\"︳\",\"`\":\"`\",\"{\":\"︷\",\"|\":\"―\",\"}\":\"︸\",\"~\":\"~\",\"¢\":\"¢\",\"£\":\"£\",\"¥\":\"¥\",\"¦\":\"¦\",\"¬\":\"¬\",\"¯\":\" ̄\",\"–\":\"︲\",\"—\":\"︱\",\"‘\":\"﹃\",\"’\":\"﹄\",\"“\":\"﹁\",\"”\":\"﹂\",\"…\":\"︙\",\"‧\":\"・\",\"₩\":\"₩\",\"、\":\"︑\",\"。\":\"︒\",\"〈\":\"︿\",\"〉\":\"﹀\",\"《\":\"︽\",\"》\":\"︾\",\"「\":\"﹁\",\"」\":\"﹂\",\"『\":\"﹃\",\"』\":\"﹄\",\"【\":\"︻\",\"】\":\"︼\",\"〔\":\"︹\",\"〕\":\"︺\",\"〖\":\"︗\",\"〗\":\"︘\",\"!\":\"︕\",\"(\":\"︵\",\")\":\"︶\",\",\":\"︐\",\"-\":\"︲\",\".\":\"・\",\":\":\"︓\",\";\":\"︔\",\"<\":\"︿\",\">\":\"﹀\",\"?\":\"︖\",\"[\":\"﹇\",\"]\":\"﹈\",\"_\":\"︳\",\"{\":\"︷\",\"|\":\"―\",\"}\":\"︸\",\"⦅\":\"︵\",\"⦆\":\"︶\",\"。\":\"︒\",\"「\":\"﹁\",\"」\":\"﹂\"};var ll=24,ul=pl,cl=function(t,e,r,n,i){var a,s,o=8*i-n-1,l=(1<>1,c=-7,h=r?i-1:0,p=r?-1:1,f=t[e+h];for(h+=p,a=f&(1<<-c)-1,f>>=-c,c+=o;c>0;a=256*a+t[e+h],h+=p,c-=8);for(s=a&(1<<-c)-1,a>>=-c,c+=n;c>0;s=256*s+t[e+h],h+=p,c-=8);if(0===a)a=1-u;else {if(a===l)return s?NaN:1/0*(f?-1:1);s+=Math.pow(2,n),a-=u;}return (f?-1:1)*s*Math.pow(2,a-n)},hl=function(t,e,r,n,i,a){var s,o,l,u=8*a-i-1,c=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:a-1,d=n?1:-1,y=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(o=isNaN(e)?1:0,s=c):(s=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-s))<1&&(s--,l*=2),(e+=s+h>=1?p/l:p*Math.pow(2,1-h))*l>=2&&(s++,l/=2),s+h>=c?(o=0,s=c):s+h>=1?(o=(e*l-1)*Math.pow(2,i),s+=h):(o=e*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;t[r+f]=255&o,f+=d,o/=256,i-=8);for(s=s<0;t[r+f]=255&s,f+=d,s/=256,u-=8);t[r+f-d]|=128*y;};function pl(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length;}pl.Varint=0,pl.Fixed64=1,pl.Bytes=2,pl.Fixed32=5;var fl,dl=4294967296,yl=1/dl,ml=\"undefined\"==typeof TextDecoder?null:new TextDecoder(\"utf8\");function gl(t){return t.type===pl.Bytes?t.readVarint()+t.pos:t.pos+1}function xl(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function vl(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i];}function bl(t,e){for(var r=0;r>>8,t[r+2]=e>>>16,t[r+3]=e>>>24;}function Pl(t,e){return (t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function Vl(t,e,r){1===t&&r.readMessage(El,e);}function El(t,e,r){if(3===t){const{id:t,bitmap:n,width:i,height:a,left:s,top:o,advance:l}=r.readMessage(Fl,{});e.push({id:t,bitmap:new zs({width:i+6,height:a+6},n),metrics:{width:i,height:a,left:s,top:o,advance:l}});}}function Fl(t,e,r){1===t?e.id=r.readVarint():2===t?e.bitmap=r.readBytes():3===t?e.width=r.readVarint():4===t?e.height=r.readVarint():5===t?e.left=r.readSVarint():6===t?e.top=r.readSVarint():7===t&&(e.advance=r.readVarint());}function Tl(t){let e=0,r=0;for(const n of t)e+=n.w*n.h,r=Math.max(r,n.w);t.sort(((t,e)=>e.h-t.h));const n=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(e/.95)),r),h:1/0}];let i=0,a=0;for(const e of t)for(let t=n.length-1;t>=0;t--){const r=n[t];if(!(e.w>r.w||e.h>r.h)){if(e.x=r.x,e.y=r.y,a=Math.max(a,e.y+e.h),i=Math.max(i,e.x+e.w),e.w===r.w&&e.h===r.h){const e=n.pop();t>3,a=this.pos;this.type=7&n,t(i,e,this),this.pos===a&&this.skip(n);}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=Bl(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=Pl(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=Bl(this.buf,this.pos)+Bl(this.buf,this.pos+4)*dl;return this.pos+=8,t},readSFixed64:function(){var t=Bl(this.buf,this.pos)+Pl(this.buf,this.pos+4)*dl;return this.pos+=8,t},readFloat:function(){var t=cl(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=cl(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,r,n=this.buf;return e=127&(r=n[this.pos++]),r<128?e:(e|=(127&(r=n[this.pos++]))<<7,r<128?e:(e|=(127&(r=n[this.pos++]))<<14,r<128?e:(e|=(127&(r=n[this.pos++]))<<21,r<128?e:function(t,e,r){var n,i,a=r.buf;if(n=(112&(i=a[r.pos++]))>>4,i<128)return xl(t,n,e);if(n|=(127&(i=a[r.pos++]))<<3,i<128)return xl(t,n,e);if(n|=(127&(i=a[r.pos++]))<<10,i<128)return xl(t,n,e);if(n|=(127&(i=a[r.pos++]))<<17,i<128)return xl(t,n,e);if(n|=(127&(i=a[r.pos++]))<<24,i<128)return xl(t,n,e);if(n|=(1&(i=a[r.pos++]))<<31,i<128)return xl(t,n,e);throw new Error(\"Expected varint not more than 10 bytes\")}(e|=(15&(r=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&ml?function(t,e,r){return ml.decode(t.subarray(e,r))}(this.buf,e,t):function(t,e,r){for(var n=\"\",i=e;i239?4:l>223?3:l>191?2:1;if(i+c>r)break;1===c?l<128&&(u=l):2===c?128==(192&(a=t[i+1]))&&(u=(31&l)<<6|63&a)<=127&&(u=null):3===c?(s=t[i+2],128==(192&(a=t[i+1]))&&128==(192&s)&&((u=(15&l)<<12|(63&a)<<6|63&s)<=2047||u>=55296&&u<=57343)&&(u=null)):4===c&&(s=t[i+2],o=t[i+3],128==(192&(a=t[i+1]))&&128==(192&s)&&128==(192&o)&&((u=(15&l)<<18|(63&a)<<12|(63&s)<<6|63&o)<=65535||u>=1114112)&&(u=null)),null===u?(u=65533,c=1):u>65535&&(u-=65536,n+=String.fromCharCode(u>>>10&1023|55296),u=56320|1023&u),n+=String.fromCharCode(u),i+=c;}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==pl.Bytes)return t.push(this.readVarint(e));var r=gl(this);for(t=t||[];this.pos127;);else if(e===pl.Bytes)this.pos=this.readVarint()+this.pos;else if(e===pl.Fixed32)this.pos+=4;else {if(e!==pl.Fixed64)throw new Error(\"Unimplemented type: \"+e);this.pos+=8;}},writeTag:function(t,e){this.writeVarint(t<<3|e);},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(r=~(-t%4294967296))?r=r+1|0:(r=0,n=n+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error(\"Given varint doesn't fit into 10 bytes\");e.realloc(10),function(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,r.buf[r.pos]=127&(t>>>=7);}(r,0,e),function(t,e){var r=(7&t)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t)))));}(n,e);}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))));},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t);},writeBoolean:function(t){this.writeVarint(Boolean(t));},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,r){for(var n,i,a=0;a55295&&n<57344){if(!i){n>56319||a+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=n;continue}if(n<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null;}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);n<128?t[r++]=n:(n<2048?t[r++]=n>>6|192:(n<65536?t[r++]=n>>12|224:(t[r++]=n>>18|240,t[r++]=n>>12&63|128),t[r++]=n>>6&63|128),t[r++]=63&n|128);}return r}(this.buf,t,this.pos);var r=this.pos-e;r>=128&&vl(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r;},writeFloat:function(t){this.realloc(4),hl(this.buf,t,this.pos,!0,23,4),this.pos+=4;},writeDouble:function(t){this.realloc(8),hl(this.buf,t,this.pos,!0,52,8),this.pos+=8;},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&vl(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n;},writeMessage:function(t,e,r){this.writeTag(t,pl.Bytes),this.writeRawMessage(e,r);},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,bl,e);},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,wl,e);},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,kl,e);},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,_l,e);},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,Al,e);},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,Sl,e);},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,Il,e);},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,Ml,e);},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,zl,e);},writeBytesField:function(t,e){this.writeTag(t,pl.Bytes),this.writeBytes(e);},writeFixed32Field:function(t,e){this.writeTag(t,pl.Fixed32),this.writeFixed32(e);},writeSFixed32Field:function(t,e){this.writeTag(t,pl.Fixed32),this.writeSFixed32(e);},writeFixed64Field:function(t,e){this.writeTag(t,pl.Fixed64),this.writeFixed64(e);},writeSFixed64Field:function(t,e){this.writeTag(t,pl.Fixed64),this.writeSFixed64(e);},writeVarintField:function(t,e){this.writeTag(t,pl.Varint),this.writeVarint(e);},writeSVarintField:function(t,e){this.writeTag(t,pl.Varint),this.writeSVarint(e);},writeStringField:function(t,e){this.writeTag(t,pl.Bytes),this.writeString(e);},writeFloatField:function(t,e){this.writeTag(t,pl.Fixed32),this.writeFloat(e);},writeDoubleField:function(t,e){this.writeTag(t,pl.Fixed64),this.writeDouble(e);},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e));}};class Ll{constructor(t,{pixelRatio:e,version:r,stretchX:n,stretchY:i,content:a}){this.paddedRect=t,this.pixelRatio=e,this.stretchX=n,this.stretchY=i,this.content=a,this.version=r;}get tl(){return [this.paddedRect.x+1,this.paddedRect.y+1]}get br(){return [this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]}get tlbr(){return this.tl.concat(this.br)}get displaySize(){return [(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]}}class Dl{constructor(t,e){const r={},n={};this.haveRenderCallbacks=[];const i=[];this.addImages(t,r,i),this.addImages(e,n,i);const{w:a,h:s}=Tl(i),o=new Bs({width:a||1,height:s||1});for(const e in t){const n=t[e],i=r[e].paddedRect;Bs.copy(n.data,o,{x:0,y:0},{x:i.x+1,y:i.y+1},n.data);}for(const t in e){const r=e[t],i=n[t].paddedRect,a=i.x+1,s=i.y+1,l=r.data.width,u=r.data.height;Bs.copy(r.data,o,{x:0,y:0},{x:a,y:s},r.data),Bs.copy(r.data,o,{x:0,y:u-1},{x:a,y:s-1},{width:l,height:1}),Bs.copy(r.data,o,{x:0,y:0},{x:a,y:s+u},{width:l,height:1}),Bs.copy(r.data,o,{x:l-1,y:0},{x:a-1,y:s},{width:1,height:u}),Bs.copy(r.data,o,{x:0,y:0},{x:a+l,y:s},{width:1,height:u});}this.image=o,this.iconPositions=r,this.patternPositions=n;}addImages(t,e,r){for(const n in t){const i=t[n],a={x:0,y:0,w:i.data.width+2,h:i.data.height+2};r.push(a),e[n]=new Ll(a,i),i.hasRenderCallback&&this.haveRenderCallbacks.push(n);}}patchUpdatedImages(t,e){t.dispatchRenderCallbacks(this.haveRenderCallbacks);for(const r in t.updatedImages)this.patchUpdatedImage(this.iconPositions[r],t.getImage(r),e),this.patchUpdatedImage(this.patternPositions[r],t.getImage(r),e);}patchUpdatedImage(t,e,r){if(!t||!e)return;if(t.version===e.version)return;t.version=e.version;const[n,i]=t.tl;r.update(e.data,void 0,{x:n,y:i});}}Mn(\"ImagePosition\",Ll),Mn(\"ImageAtlas\",Dl),t.WritingMode=void 0,(fl=t.WritingMode||(t.WritingMode={}))[fl.none=0]=\"none\",fl[fl.horizontal=1]=\"horizontal\",fl[fl.vertical=2]=\"vertical\",fl[fl.horizontalOnly=3]=\"horizontalOnly\";const $l=-17;class Rl{constructor(){this.scale=1,this.fontStack=\"\",this.imageName=null;}static forText(t,e){const r=new Rl;return r.scale=t||1,r.fontStack=e,r}static forImage(t){const e=new Rl;return e.imageName=t,e}}class Ol{constructor(){this.text=\"\",this.sectionIndex=[],this.sections=[],this.imageSectionID=null;}static fromFeature(t,e){const r=new Ol;for(let n=0;n=0&&r>=t&&ql[this.text.charCodeAt(r)];r--)e--;this.text=this.text.substring(t,e),this.sectionIndex=this.sectionIndex.slice(t,e);}substring(t,e){const r=new Ol;return r.text=this.text.substring(t,e),r.sectionIndex=this.sectionIndex.slice(t,e),r.sections=this.sections,r}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce(((t,e)=>Math.max(t,this.sections[e].scale)),0)}addTextSection(t,e){this.text+=t.text,this.sections.push(Rl.forText(t.scale,t.fontStack||e));const r=this.sections.length-1;for(let e=0;e=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function Ul(e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m){const g=Ol.fromFeature(e,a);let x;p===t.WritingMode.vertical&&g.verticalizePunctuation();const{processBidirectionalText:v,processStyledBidirectionalText:b}=Wn;if(v&&1===g.sections.length){x=[];const t=v(g.toString(),Xl(g,c,s,r,i,d,y));for(const e of t){const t=new Ol;t.text=e,t.sections=g.sections;for(let r=0;r0&&n>_&&(_=n);}else {const t=n[y.fontStack],e=t&&t[g];if(e&&e.rect)A=e.rect,b=e.metrics;else {const t=r[y.fontStack],e=t&&t[g];if(!e)continue;b=e.metrics;}x=(a-y.scale)*ll;}I?(e.verticalizable=!0,w.push({glyph:g,imageName:k,x:f,y:d+x,vertical:I,scale:y.scale,fontStack:y.fontStack,sectionIndex:m,metrics:b,rect:A}),f+=S*y.scale+c):(w.push({glyph:g,imageName:k,x:f,y:d+x,vertical:I,scale:y.scale,fontStack:y.fontStack,sectionIndex:m,metrics:b,rect:A}),f+=b.advance*y.scale+c);}0!==w.length&&(y=Math.max(f-c,y),Hl(w,0,w.length-1,g,_)),f=0;const A=s*a+_;b.lineOffset=Math.max(_,l),d+=A,m=Math.max(A,m),++x;}var v;const b=d-$l,{horizontalAlign:w,verticalAlign:_}=Yl(o);((function(t,e,r,n,i,a,s,o,l){const u=(e-r)*i;let c=0;c=a!==s?-o*n-$l:(-n*l+.5)*s;for(const e of t)for(const t of e.positionedGlyphs)t.x+=u,t.y+=c;}))(e.positionedLines,g,w,_,y,m,s,b,a.length),e.top+=-_*b,e.bottom=e.top+b,e.left+=-w*y,e.right=e.left+y;}(_,r,n,i,x,o,l,u,p,c,f,m),!function(t){for(const e of t)if(0!==e.positionedGlyphs.length)return !1;return !0}(w)&&_}const ql={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},jl={10:!0,32:!0,38:!0,40:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0};function Nl(t,e,r,n,i,a){if(e.imageName){const t=n[e.imageName];return t?t.displaySize[0]*e.scale*ll/a+i:0}{const n=r[e.fontStack],a=n&&n[t];return a?a.metrics.advance*e.scale+i:0}}function Zl(t,e,r,n){const i=Math.pow(t-e,2);return n?t=0;let c=0;for(let r=0;r-r/2;){if(s--,s<0)return !1;o-=t[s].dist(a),a=t[s];}o+=t[s].dist(t[s+1]),s++;const l=[];let u=0;for(;on;)u-=l.shift().angleDelta;if(u>i)return !1;s++,o+=e.dist(r);}return !0}function iu(t){let e=0;for(let r=0;ru){const c=(u-l)/a,h=Se(n.x,i.x,c),p=Se(n.y,i.y,c),f=new ru(h,p,i.angleTo(n),r);return f._round(),!s||nu(t,f,o,s,e)?f:void 0}l+=a;}}function lu(t,e,r,n,i,a,s,o,l){const u=au(n,a,s),c=su(n,i),h=c*s,p=0===t[0].x||t[0].x===l||0===t[0].y||t[0].y===l;return e-h=0&&g=0&&x=0&&p+u<=c){const r=new ru(g,x,y,e);r._round(),n&&!nu(t,r,a,n,i)||f.push(r);}}h+=d;}return o||f.length||s||(f=uu(t,h/2,r,n,i,a,s,!0,l)),f}function cu(t,e,r,n,i){const a=[];for(let s=0;s=n&&u.x>=n||(s.x>=n?s=new S(n,s.y+(n-s.x)/(u.x-s.x)*(u.y-s.y))._round():u.x>=n&&(u=new S(n,s.y+(n-s.x)/(u.x-s.x)*(u.y-s.y))._round()),s.y>=i&&u.y>=i||(s.y>=i?s=new S(s.x+(i-s.y)/(u.y-s.y)*(u.x-s.x),i)._round():u.y>=i&&(u=new S(s.x+(i-s.y)/(u.y-s.y)*(u.x-s.x),i)._round()),l&&s.equals(l[l.length-1])||(l=[s],a.push(l)),l.push(u)))));}}return a}function hu(t,e,r,n){const i=[],a=t.image,s=a.pixelRatio,o=a.paddedRect.w-2,l=a.paddedRect.h-2,u=t.right-t.left,c=t.bottom-t.top,h=a.stretchX||[[0,o]],p=a.stretchY||[[0,l]],f=(t,e)=>t+e[1]-e[0],d=h.reduce(f,0),y=p.reduce(f,0),m=o-d,g=l-y;let x=0,v=d,b=0,w=y,_=0,A=m,k=0,I=g;if(a.content&&n){const t=a.content;x=pu(h,0,t[0]),b=pu(p,0,t[1]),v=pu(h,t[0],t[2]),w=pu(p,t[1],t[3]),_=t[0]-x,k=t[1]-b,A=t[2]-t[0]-v,I=t[3]-t[1]-w;}const M=(n,i,o,l)=>{const h=du(n.stretch-x,v,u,t.left),p=yu(n.fixed-_,A,n.stretch,d),f=du(i.stretch-b,w,c,t.top),m=yu(i.fixed-k,I,i.stretch,y),g=du(o.stretch-x,v,u,t.left),M=yu(o.fixed-_,A,o.stretch,d),z=du(l.stretch-b,w,c,t.top),B=yu(l.fixed-k,I,l.stretch,y),C=new S(h,f),P=new S(g,f),V=new S(g,z),E=new S(h,z),F=new S(p/s,m/s),T=new S(M/s,B/s),L=e*Math.PI/180;if(L){const t=Math.sin(L),e=Math.cos(L),r=[e,-t,t,e];C._matMult(r),P._matMult(r),E._matMult(r),V._matMult(r);}const D=n.stretch+n.fixed,$=i.stretch+i.fixed;return {tl:C,tr:P,bl:E,br:V,tex:{x:a.paddedRect.x+1+D,y:a.paddedRect.y+1+$,w:o.stretch+o.fixed-D,h:l.stretch+l.fixed-$},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:F,pixelOffsetBR:T,minFontScaleX:A/s/u,minFontScaleY:I/s/c,isSDF:r}};if(n&&(a.stretchX||a.stretchY)){const t=fu(h,m,d),e=fu(p,g,y);for(let r=0;r0&&(n=Math.max(10,n),this.circleDiameter=n);}else {let l=a.top*s-o[0],c=a.bottom*s+o[2],h=a.left*s-o[3],p=a.right*s+o[1];const f=a.collisionPadding;if(f&&(h-=f[0]*s,l-=f[1]*s,p+=f[2]*s,c+=f[3]*s),u){const t=new S(h,l),e=new S(p,l),r=new S(h,c),n=new S(p,c),i=u*Math.PI/180;t._rotate(i),e._rotate(i),r._rotate(i),n._rotate(i),h=Math.min(t.x,e.x,r.x,n.x),p=Math.max(t.x,e.x,r.x,n.x),l=Math.min(t.y,e.y,r.y,n.y),c=Math.max(t.y,e.y,r.y,n.y);}t.emplaceBack(e.x,e.y,h,l,p,c,r,n,i);}this.boxEndIndex=t.length;}}class gu{constructor(t=[],e=xu){if(this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(let t=(this.length>>1)-1;t>=0;t--)this._down(t);}push(t){this.data.push(t),this.length++,this._up(this.length-1);}pop(){if(0===this.length)return;const t=this.data[0],e=this.data.pop();return this.length--,this.length>0&&(this.data[0]=e,this._down(0)),t}peek(){return this.data[0]}_up(t){const{data:e,compare:r}=this,n=e[t];for(;t>0;){const i=t-1>>1,a=e[i];if(r(n,a)>=0)break;e[t]=a,t=i;}e[t]=n;}_down(t){const{data:e,compare:r}=this,n=this.length>>1,i=e[t];for(;t=0)break;e[t]=a,t=n;}e[t]=i;}}function xu(t,e){return te?1:0}function vu(t,e=1,r=!1){let n=1/0,i=1/0,a=-1/0,s=-1/0;const o=t[0];for(let t=0;ta)&&(a=e.x),(!t||e.y>s)&&(s=e.y);}const l=Math.min(a-n,s-i);let u=l/2;const c=new gu([],bu);if(0===l)return new S(n,i);for(let e=n;eh.d||!h.d)&&(h=n,r&&console.log(\"found best %d after %d probes\",Math.round(1e4*n.d)/1e4,p)),n.max-h.d<=e||(u=n.h/2,c.push(new wu(n.p.x-u,n.p.y-u,u,t)),c.push(new wu(n.p.x+u,n.p.y-u,u,t)),c.push(new wu(n.p.x-u,n.p.y+u,u,t)),c.push(new wu(n.p.x+u,n.p.y+u,u,t)),p+=4);}return r&&(console.log(`num probes: ${p}`),console.log(`best distance: ${h.d}`)),h.p}function bu(t,e){return e.max-t.max}function wu(t,e,r,n){this.p=new S(t,e),this.h=r,this.d=function(t,e){let r=!1,n=1/0;for(let i=0;it.y!=o.y>t.y&&t.x<(o.x-i.x)*(t.y-i.y)/(o.y-i.y)+i.x&&(r=!r),n=Math.min(n,rs(t,i,o));}}return (r?1:-1)*Math.sqrt(n)}(this.p,n),this.max=this.d+this.h*Math.SQRT2;}const _u=Number.POSITIVE_INFINITY;function Au(t,e){return e[1]!==_u?function(t,e,r){let n=0,i=0;switch(e=Math.abs(e),r=Math.abs(r),t){case\"top-right\":case\"top-left\":case\"top\":i=r-7;break;case\"bottom-right\":case\"bottom-left\":case\"bottom\":i=7-r;}switch(t){case\"top-right\":case\"bottom-right\":case\"right\":n=-e;break;case\"top-left\":case\"bottom-left\":case\"left\":n=e;}return [n,i]}(t,e[0],e[1]):function(t,e){let r=0,n=0;e<0&&(e=0);const i=e/Math.sqrt(2);switch(t){case\"top-right\":case\"top-left\":n=i-7;break;case\"bottom-right\":case\"bottom-left\":n=7-i;break;case\"bottom\":n=7-e;break;case\"top\":n=e-7;}switch(t){case\"top-right\":case\"bottom-right\":r=-i;break;case\"top-left\":case\"bottom-left\":r=i;break;case\"left\":r=e;break;case\"right\":r=-e;}return [r,n]}(t,e[0])}function ku(t){switch(t){case\"right\":case\"top-right\":case\"bottom-right\":return \"right\";case\"left\":case\"top-left\":case\"bottom-left\":return \"left\"}return \"center\"}function Su(e,r,n,i,a,s,o,l,u,c,h){let p=s.textMaxSize.evaluate(r,{});void 0===p&&(p=o);const f=e.layers[0].layout,y=f.get(\"icon-offset\").evaluate(r,{},h),m=zu(n.horizontal),g=o/24,x=e.tilePixelRatio*g,v=e.tilePixelRatio*p/24,b=e.tilePixelRatio*l,w=e.tilePixelRatio*f.get(\"symbol-spacing\"),_=f.get(\"text-padding\")*e.tilePixelRatio,A=function(t,e,r,n=1){const i=t.get(\"icon-padding\").evaluate(e,{},r),a=i&&i.values;return [a[0]*n,a[1]*n,a[2]*n,a[3]*n]}(f,r,h,e.tilePixelRatio),k=f.get(\"text-max-angle\")/180*Math.PI,S=\"viewport\"!==f.get(\"text-rotation-alignment\")&&\"point\"!==f.get(\"symbol-placement\"),I=\"map\"===f.get(\"icon-rotation-alignment\")&&\"point\"!==f.get(\"symbol-placement\"),M=f.get(\"symbol-placement\"),z=w/2,B=f.get(\"icon-text-fit\");let C;i&&\"none\"!==B&&(e.allowVerticalPlacement&&n.vertical&&(C=Ql(i,n.vertical,B,f.get(\"icon-text-fit-padding\"),y,g)),m&&(i=Ql(i,m,B,f.get(\"icon-text-fit-padding\"),y,g)));const P=(l,p)=>{p.x<0||p.x>=qa||p.y<0||p.y>=qa||function(e,r,n,i,a,s,o,l,u,c,h,p,f,y,m,g,x,v,b,w,_,A,k,S,I){const M=e.addToLineVertexArray(r,n);let z,B,C,P,V=0,E=0,F=0,T=0,L=-1,D=-1;const $={};let R=xa.exports(\"\"),O=0,U=0;if(void 0===l._unevaluatedLayout.getValue(\"text-radial-offset\")?[O,U]=l.layout.get(\"text-offset\").evaluate(_,{},S).map((t=>t*ll)):(O=l.layout.get(\"text-radial-offset\").evaluate(_,{},S)*ll,U=_u),e.allowVerticalPlacement&&i.vertical){const t=l.layout.get(\"text-rotate\").evaluate(_,{},S)+90;C=new mu(u,r,c,h,p,i.vertical,f,y,m,t),o&&(P=new mu(u,r,c,h,p,o,x,v,m,t));}if(a){const n=l.layout.get(\"icon-rotate\").evaluate(_,{}),i=\"none\"!==l.layout.get(\"icon-text-fit\"),s=hu(a,n,k,i),f=o?hu(o,n,k,i):void 0;B=new mu(u,r,c,h,p,a,x,v,!1,n),V=4*s.length;const y=e.iconSizeData;let m=null;\"source\"===y.kind?(m=[tu*l.layout.get(\"icon-size\").evaluate(_,{})],m[0]>Iu&&d(`${e.layerIds[0]}: Value for \"icon-size\" is >= 255. Reduce your \"icon-size\".`)):\"composite\"===y.kind&&(m=[tu*A.compositeIconSizes[0].evaluate(_,{},S),tu*A.compositeIconSizes[1].evaluate(_,{},S)],(m[0]>Iu||m[1]>Iu)&&d(`${e.layerIds[0]}: Value for \"icon-size\" is >= 255. Reduce your \"icon-size\".`)),e.addSymbols(e.icon,s,m,w,b,_,t.WritingMode.none,r,M.lineStartIndex,M.lineLength,-1,S),L=e.icon.placedSymbolArray.length-1,f&&(E=4*f.length,e.addSymbols(e.icon,f,m,w,b,_,t.WritingMode.vertical,r,M.lineStartIndex,M.lineLength,-1,S),D=e.icon.placedSymbolArray.length-1);}const q=Object.keys(i.horizontal);for(const n of q){const a=i.horizontal[n];if(!z){R=xa.exports(a.text);const t=l.layout.get(\"text-rotate\").evaluate(_,{},S);z=new mu(u,r,c,h,p,a,f,y,m,t);}const o=1===a.positionedLines.length;if(F+=Mu(e,r,a,s,l,m,_,g,M,i.vertical?t.WritingMode.horizontal:t.WritingMode.horizontalOnly,o?q:[n],$,L,A,S),o)break}i.vertical&&(T+=Mu(e,r,i.vertical,s,l,m,_,g,M,t.WritingMode.vertical,[\"vertical\"],$,D,A,S));const j=z?z.boxStartIndex:e.collisionBoxArray.length,N=z?z.boxEndIndex:e.collisionBoxArray.length,Z=C?C.boxStartIndex:e.collisionBoxArray.length,K=C?C.boxEndIndex:e.collisionBoxArray.length,G=B?B.boxStartIndex:e.collisionBoxArray.length,J=B?B.boxEndIndex:e.collisionBoxArray.length,X=P?P.boxStartIndex:e.collisionBoxArray.length,Y=P?P.boxEndIndex:e.collisionBoxArray.length;let H=-1;const W=(t,e)=>t&&t.circleDiameter?Math.max(t.circleDiameter,e):e;H=W(z,H),H=W(C,H),H=W(B,H),H=W(P,H);const Q=H>-1?1:0;Q&&(H*=I/ll),e.glyphOffsetArray.length>=Du.MAX_GLYPHS&&d(\"Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907\"),void 0!==_.sortKey&&e.addToSortKeyRanges(e.symbolInstances.length,_.sortKey),e.symbolInstances.emplaceBack(r.x,r.y,$.right>=0?$.right:-1,$.center>=0?$.center:-1,$.left>=0?$.left:-1,$.vertical||-1,L,D,R,j,N,Z,K,G,J,X,Y,c,F,T,V,E,Q,0,f,O,U,H);}(e,p,l,n,i,a,C,e.layers[0],e.collisionBoxArray,r.index,r.sourceLayerIndex,e.index,x,[_,_,_,_],S,u,b,A,I,y,r,s,c,h,o);};if(\"line\"===M)for(const t of cu(r.geometry,0,0,qa,qa)){const r=lu(t,w,k,n.vertical||m,i,24,v,e.overscaling,qa);for(const n of r){const r=m;r&&Bu(e,r.text,z,n)||P(t,n);}}else if(\"line-center\"===M){for(const t of r.geometry)if(t.length>1){const e=ou(t,k,n.vertical||m,i,24,v);e&&P(t,e);}}else if(\"Polygon\"===r.type)for(const t of ho(r.geometry,0)){const e=vu(t,16);P(t[0],new ru(e.x,e.y,0));}else if(\"LineString\"===r.type)for(const t of r.geometry)P(t,new ru(t[0].x,t[0].y,0));else if(\"Point\"===r.type)for(const t of r.geometry)for(const e of t)P([e],new ru(e.x,e.y,0));}const Iu=32640;function Mu(t,e,r,n,i,a,s,o,l,u,c,h,p,f,y){const m=function(t,e,r,n,i,a,s,o){const l=n.layout.get(\"text-rotate\").evaluate(a,{})*Math.PI/180,u=[];for(const t of e.positionedLines)for(const n of t.positionedGlyphs){if(!n.rect)continue;const a=n.rect||{};let c=4,h=!0,p=1,f=0;const d=(i||o)&&n.vertical,y=n.metrics.advance*n.scale/2;if(o&&e.verticalizable){const e=(n.scale-1)*ll,r=(ll-n.metrics.width*n.scale)/2;f=t.lineOffset/2-(n.imageName?-r:e);}if(n.imageName){const t=s[n.imageName];h=t.sdf,p=t.pixelRatio,c=1/p;}const m=i?[n.x+y,n.y]:[0,0];let g=i?[0,0]:[n.x+y+r[0],n.y+r[1]-f],x=[0,0];d&&(x=g,g=[0,0]);const v=(n.metrics.left-c)*n.scale-y+g[0],b=(-n.metrics.top-c)*n.scale+g[1],w=v+a.w*n.scale/p,_=b+a.h*n.scale/p,A=new S(v,b),k=new S(w,b),I=new S(v,_),M=new S(w,_);if(d){const t=new S(-y,y-$l),e=-Math.PI/2,r=12-y,i=new S(22-r,-(n.imageName?r:0)),a=new S(...x);A._rotateAround(e,t)._add(i)._add(a),k._rotateAround(e,t)._add(i)._add(a),I._rotateAround(e,t)._add(i)._add(a),M._rotateAround(e,t)._add(i)._add(a);}if(l){const t=Math.sin(l),e=Math.cos(l),r=[e,-t,t,e];A._matMult(r),k._matMult(r),I._matMult(r),M._matMult(r);}const z=new S(0,0),B=new S(0,0);u.push({tl:A,tr:k,bl:I,br:M,tex:a,writingMode:e.writingMode,glyphOffset:m,sectionIndex:n.sectionIndex,isSDF:h,pixelOffsetTL:z,pixelOffsetBR:B,minFontScaleX:0,minFontScaleY:0});}return u}(0,r,o,i,a,s,n,t.allowVerticalPlacement),g=t.textSizeData;let x=null;\"source\"===g.kind?(x=[tu*i.layout.get(\"text-size\").evaluate(s,{})],x[0]>Iu&&d(`${t.layerIds[0]}: Value for \"text-size\" is >= 255. Reduce your \"text-size\".`)):\"composite\"===g.kind&&(x=[tu*f.compositeTextSizes[0].evaluate(s,{},y),tu*f.compositeTextSizes[1].evaluate(s,{},y)],(x[0]>Iu||x[1]>Iu)&&d(`${t.layerIds[0]}: Value for \"text-size\" is >= 255. Reduce your \"text-size\".`)),t.addSymbols(t.text,m,x,o,a,s,u,e,l.lineStartIndex,l.lineLength,p,y);for(const e of c)h[e]=t.text.placedSymbolArray.length-1;return 4*m.length}function zu(t){for(const e in t)return t[e];return null}function Bu(t,e,r,n){const i=t.compareText;if(e in i){const t=i[e];for(let e=t.length-1;e>=0;e--)if(n.dist(t[e])t.id)),this.index=e.index,this.pixelRatio=e.pixelRatio,this.sourceLayerIndex=e.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=ds([]),this.placementViewportMatrix=ds([]);const r=this.layers[0]._unevaluatedLayout._values;this.textSizeData=eu(this.zoom,r[\"text-size\"]),this.iconSizeData=eu(this.zoom,r[\"icon-size\"]);const n=this.layers[0].layout,i=n.get(\"symbol-sort-key\"),a=n.get(\"symbol-z-order\");this.canOverlap=\"never\"!==qu(n,\"text-overlap\",\"text-allow-overlap\")||\"never\"!==qu(n,\"icon-overlap\",\"icon-allow-overlap\")||n.get(\"text-ignore-placement\")||n.get(\"icon-ignore-placement\"),this.sortFeaturesByKey=\"viewport-y\"!==a&&!i.isConstant(),this.sortFeaturesByY=(\"viewport-y\"===a||\"auto\"===a&&!this.sortFeaturesByKey)&&this.canOverlap,\"point\"===n.get(\"symbol-placement\")&&(this.writingModes=n.get(\"text-writing-mode\").map((e=>t.WritingMode[e]))),this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id)),this.sourceID=e.sourceID;}createArrays(){this.text=new Tu(new Ra(this.layers,this.zoom,(t=>/^text/.test(t)))),this.icon=new Tu(new Ra(this.layers,this.zoom,(t=>/^icon/.test(t)))),this.glyphOffsetArray=new Xi,this.lineVertexArray=new Yi,this.symbolInstances=new Ji;}calculateGlyphDependencies(t,e,r,n,i){for(let a=0;a0)&&(\"constant\"!==s.value.kind||s.value.value.length>0),c=\"constant\"!==l.value.kind||!!l.value.value||Object.keys(l.parameters).length>0,h=a.get(\"symbol-sort-key\");if(this.features=[],!u&&!c)return;const p=r.iconDependencies,f=r.glyphDependencies,d=r.availableImages,y=new Qn(this.zoom);for(const{feature:r,id:o,index:l,sourceLayerIndex:m}of e){const e=i._featureFilter.needGeometry,g=Ka(r,e);if(!i._featureFilter.filter(y,g,n))continue;let x,v;if(e||(g.geometry=Za(r)),u){const t=i.getValueAndResolveTokens(\"text-field\",g,n,d),e=Dt.factory(t);Fu(e)&&(this.hasRTLText=!0),(!this.hasRTLText||\"unavailable\"===Yn()||this.hasRTLText&&Wn.isParsed())&&(x=sl(e,i,g));}if(c){const t=i.getValueAndResolveTokens(\"icon-image\",g,n,d);v=t instanceof Rt?t:Rt.fromString(t);}if(!x&&!v)continue;const b=this.sortFeaturesByKey?h.evaluate(g,{},n):void 0;if(this.features.push({id:o,text:x,icon:v,index:l,sourceLayerIndex:m,geometry:g.geometry,properties:r.properties,type:Cu[r.type],sortKey:b}),v&&(p[v.name]=!0),x){const e=s.evaluate(g,{},n).join(\",\"),r=\"viewport\"!==a.get(\"text-rotation-alignment\")&&\"point\"!==a.get(\"symbol-placement\");this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(t.WritingMode.vertical)>=0;for(const t of x.sections)if(t.image)p[t.image.name]=!0;else {const n=En(x.toString()),i=t.fontStack||e,a=f[i]=f[i]||{};this.calculateGlyphDependencies(t.text,a,r,this.allowVerticalPlacement,n);}}}\"line\"===a.get(\"symbol-placement\")&&(this.features=function(t){const e={},r={},n=[];let i=0;function a(e){n.push(t[e]),i++;}function s(t,e,i){const a=r[t];return delete r[t],r[e]=a,n[a].geometry[0].pop(),n[a].geometry[0]=n[a].geometry[0].concat(i[0]),a}function o(t,r,i){const a=e[r];return delete e[r],e[t]=a,n[a].geometry[0].shift(),n[a].geometry[0]=i[0].concat(n[a].geometry[0]),a}function l(t,e,r){const n=r?e[0][e[0].length-1]:e[0][0];return `${t}:${n.x}:${n.y}`}for(let u=0;ut.geometry))}(this.features)),this.sortFeaturesByKey&&this.features.sort(((t,e)=>t.sortKey-e.sortKey));}update(t,e,r){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(t,e,this.layers,r),this.icon.programConfigurations.updatePaintArrays(t,e,this.layers,r));}isEmpty(){return 0===this.symbolInstances.length&&!this.hasRTLText}uploadPending(){return !this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(t){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(t),this.iconCollisionBox.upload(t)),this.text.upload(t,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(t,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0;}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy();}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData();}addToLineVertexArray(t,e){const r=this.lineVertexArray.length;if(void 0!==t.segment){let r=t.dist(e[t.segment+1]),n=t.dist(e[t.segment]);const i={};for(let n=t.segment+1;n=0;r--)i[r]={x:e[r].x,y:e[r].y,tileUnitDistanceFromAnchor:n},r>0&&(n+=e[r-1].dist(e[r]));for(let t=0;t0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(t,e){const r=t.placedSymbolArray.get(e),n=r.vertexStartIndex+4*r.numGlyphs;for(let e=r.vertexStartIndex;en[t]-n[e]||i[e]-i[t])),a}addToSortKeyRanges(t,e){const r=this.sortKeyRanges[this.sortKeyRanges.length-1];r&&r.sortKey===e?r.symbolInstanceEnd=t+1:this.sortKeyRanges.push({sortKey:e,symbolInstanceStart:t,symbolInstanceEnd:t+1});}sortFeatures(t){if(this.sortFeaturesByY&&this.sortedAngle!==t&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(const t of this.symbolInstanceIndexes){const e=this.symbolInstances.get(t);this.featureSortOrder.push(e.featureIndex),[e.rightJustifiedTextSymbolIndex,e.centerJustifiedTextSymbolIndex,e.leftJustifiedTextSymbolIndex].forEach(((t,e,r)=>{t>=0&&r.indexOf(t)===e&&this.addIndicesForPlacedSymbol(this.text,t);})),e.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,e.verticalPlacedTextSymbolIndex),e.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,e.placedIconSymbolIndex),e.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,e.verticalPlacedIconSymbolIndex);}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray);}}}Mn(\"SymbolBucket\",Du,{omit:[\"layers\",\"collisionBoxArray\",\"features\",\"compareText\"]}),Du.MAX_GLYPHS=65535,Du.addDynamicAttributes=Eu;const $u=new fi({\"symbol-placement\":new li(nt.layout_symbol[\"symbol-placement\"]),\"symbol-spacing\":new li(nt.layout_symbol[\"symbol-spacing\"]),\"symbol-avoid-edges\":new li(nt.layout_symbol[\"symbol-avoid-edges\"]),\"symbol-sort-key\":new ui(nt.layout_symbol[\"symbol-sort-key\"]),\"symbol-z-order\":new li(nt.layout_symbol[\"symbol-z-order\"]),\"icon-allow-overlap\":new li(nt.layout_symbol[\"icon-allow-overlap\"]),\"icon-overlap\":new li(nt.layout_symbol[\"icon-overlap\"]),\"icon-ignore-placement\":new li(nt.layout_symbol[\"icon-ignore-placement\"]),\"icon-optional\":new li(nt.layout_symbol[\"icon-optional\"]),\"icon-rotation-alignment\":new li(nt.layout_symbol[\"icon-rotation-alignment\"]),\"icon-size\":new ui(nt.layout_symbol[\"icon-size\"]),\"icon-text-fit\":new li(nt.layout_symbol[\"icon-text-fit\"]),\"icon-text-fit-padding\":new li(nt.layout_symbol[\"icon-text-fit-padding\"]),\"icon-image\":new ui(nt.layout_symbol[\"icon-image\"]),\"icon-rotate\":new ui(nt.layout_symbol[\"icon-rotate\"]),\"icon-padding\":new ui(nt.layout_symbol[\"icon-padding\"]),\"icon-keep-upright\":new li(nt.layout_symbol[\"icon-keep-upright\"]),\"icon-offset\":new ui(nt.layout_symbol[\"icon-offset\"]),\"icon-anchor\":new ui(nt.layout_symbol[\"icon-anchor\"]),\"icon-pitch-alignment\":new li(nt.layout_symbol[\"icon-pitch-alignment\"]),\"text-pitch-alignment\":new li(nt.layout_symbol[\"text-pitch-alignment\"]),\"text-rotation-alignment\":new li(nt.layout_symbol[\"text-rotation-alignment\"]),\"text-field\":new ui(nt.layout_symbol[\"text-field\"]),\"text-font\":new ui(nt.layout_symbol[\"text-font\"]),\"text-size\":new ui(nt.layout_symbol[\"text-size\"]),\"text-max-width\":new ui(nt.layout_symbol[\"text-max-width\"]),\"text-line-height\":new li(nt.layout_symbol[\"text-line-height\"]),\"text-letter-spacing\":new ui(nt.layout_symbol[\"text-letter-spacing\"]),\"text-justify\":new ui(nt.layout_symbol[\"text-justify\"]),\"text-radial-offset\":new ui(nt.layout_symbol[\"text-radial-offset\"]),\"text-variable-anchor\":new li(nt.layout_symbol[\"text-variable-anchor\"]),\"text-anchor\":new ui(nt.layout_symbol[\"text-anchor\"]),\"text-max-angle\":new li(nt.layout_symbol[\"text-max-angle\"]),\"text-writing-mode\":new li(nt.layout_symbol[\"text-writing-mode\"]),\"text-rotate\":new ui(nt.layout_symbol[\"text-rotate\"]),\"text-padding\":new li(nt.layout_symbol[\"text-padding\"]),\"text-keep-upright\":new li(nt.layout_symbol[\"text-keep-upright\"]),\"text-transform\":new ui(nt.layout_symbol[\"text-transform\"]),\"text-offset\":new ui(nt.layout_symbol[\"text-offset\"]),\"text-allow-overlap\":new li(nt.layout_symbol[\"text-allow-overlap\"]),\"text-overlap\":new li(nt.layout_symbol[\"text-overlap\"]),\"text-ignore-placement\":new li(nt.layout_symbol[\"text-ignore-placement\"]),\"text-optional\":new li(nt.layout_symbol[\"text-optional\"])});var Ru={paint:new fi({\"icon-opacity\":new ui(nt.paint_symbol[\"icon-opacity\"]),\"icon-color\":new ui(nt.paint_symbol[\"icon-color\"]),\"icon-halo-color\":new ui(nt.paint_symbol[\"icon-halo-color\"]),\"icon-halo-width\":new ui(nt.paint_symbol[\"icon-halo-width\"]),\"icon-halo-blur\":new ui(nt.paint_symbol[\"icon-halo-blur\"]),\"icon-translate\":new li(nt.paint_symbol[\"icon-translate\"]),\"icon-translate-anchor\":new li(nt.paint_symbol[\"icon-translate-anchor\"]),\"text-opacity\":new ui(nt.paint_symbol[\"text-opacity\"]),\"text-color\":new ui(nt.paint_symbol[\"text-color\"],{runtimeType:yt,getOverride:t=>t.textColor,hasOverride:t=>!!t.textColor}),\"text-halo-color\":new ui(nt.paint_symbol[\"text-halo-color\"]),\"text-halo-width\":new ui(nt.paint_symbol[\"text-halo-width\"]),\"text-halo-blur\":new ui(nt.paint_symbol[\"text-halo-blur\"]),\"text-translate\":new li(nt.paint_symbol[\"text-translate\"]),\"text-translate-anchor\":new li(nt.paint_symbol[\"text-translate-anchor\"])}),layout:$u};class Ou{constructor(t){if(void 0===t.property.overrides)throw new Error(\"overrides must be provided to instantiate FormatSectionOverride class\");this.type=t.property.overrides?t.property.overrides.runtimeType:ht,this.defaultValue=t;}evaluate(t){if(t.formattedSection){const e=this.defaultValue.property.overrides;if(e&&e.hasOverride(t.formattedSection))return e.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default}eachChild(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression);}outputDefined(){return !1}serialize(){return null}}Mn(\"FormatSectionOverride\",Ou,{omit:[\"defaultValue\"]});class Uu extends yi{constructor(t){super(t,Ru);}recalculate(t,e){if(super.recalculate(t,e),\"auto\"===this.layout.get(\"icon-rotation-alignment\")&&(this.layout._values[\"icon-rotation-alignment\"]=\"point\"!==this.layout.get(\"symbol-placement\")?\"map\":\"viewport\"),\"auto\"===this.layout.get(\"text-rotation-alignment\")&&(this.layout._values[\"text-rotation-alignment\"]=\"point\"!==this.layout.get(\"symbol-placement\")?\"map\":\"viewport\"),\"auto\"===this.layout.get(\"text-pitch-alignment\")&&(this.layout._values[\"text-pitch-alignment\"]=\"map\"===this.layout.get(\"text-rotation-alignment\")?\"map\":\"viewport\"),\"auto\"===this.layout.get(\"icon-pitch-alignment\")&&(this.layout._values[\"icon-pitch-alignment\"]=this.layout.get(\"icon-rotation-alignment\")),\"point\"===this.layout.get(\"symbol-placement\")){const t=this.layout.get(\"text-writing-mode\");if(t){const e=[];for(const r of t)e.indexOf(r)<0&&e.push(r);this.layout._values[\"text-writing-mode\"]=e;}else this.layout._values[\"text-writing-mode\"]=[\"horizontal\"];}this._setPaintOverrides();}getValueAndResolveTokens(t,e,r,n){const i=this.layout.get(t).evaluate(e,{},r,n),a=this._unevaluatedLayout._values[t];return a.isDataDriven()||Er(a.value)||!i?i:function(t,e){return e.replace(/{([^{}]+)}/g,((e,r)=>r in t?String(t[r]):\"\"))}(e.properties,i)}createBucket(t){return new Du(t)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error(\"Should take a different path in FeatureIndex\")}_setPaintOverrides(){for(const t of Ru.paint.overridableProperties){if(!Uu.hasPaintOverride(this.layout,t))continue;const e=this.paint.get(t),r=new Ou(e),n=new Vr(r,e.property.specification);let i=null;i=\"constant\"===e.value.kind||\"source\"===e.value.kind?new Tr(\"source\",n):new Lr(\"composite\",n,e.value.zoomStops),this.paint._values[t]=new si(e.property,i,e.parameters);}}_handleOverridablePaintPropertyUpdate(t,e,r){return !(!this.layout||e.isDataDriven()||r.isDataDriven())&&Uu.hasPaintOverride(this.layout,t)}static hasPaintOverride(t,e){const r=t.get(\"text-field\"),n=Ru.paint.properties[e];let i=!1;const a=t=>{for(const e of t)if(n.overrides&&n.overrides.hasOverride(e))return void(i=!0)};if(\"constant\"===r.value.kind&&r.value.value instanceof Dt)a(r.value.value.sections);else if(\"source\"===r.value.kind){const t=e=>{i||(e instanceof Nt&&qt(e.value)===vt?a(e.value.sections):e instanceof cr?a(e.sections):e.eachChild(t));},e=r.value;e._styleExpression&&t(e._styleExpression.expression);}return i}}function qu(t,e,r){let n=\"never\";const i=t.get(e);return i?n=i:t.get(r)&&(n=\"always\"),n}var ju={paint:new fi({\"background-color\":new li(nt.paint_background[\"background-color\"]),\"background-pattern\":new hi(nt.paint_background[\"background-pattern\"]),\"background-opacity\":new li(nt.paint_background[\"background-opacity\"])})},Nu={paint:new fi({\"raster-opacity\":new li(nt.paint_raster[\"raster-opacity\"]),\"raster-hue-rotate\":new li(nt.paint_raster[\"raster-hue-rotate\"]),\"raster-brightness-min\":new li(nt.paint_raster[\"raster-brightness-min\"]),\"raster-brightness-max\":new li(nt.paint_raster[\"raster-brightness-max\"]),\"raster-saturation\":new li(nt.paint_raster[\"raster-saturation\"]),\"raster-contrast\":new li(nt.paint_raster[\"raster-contrast\"]),\"raster-resampling\":new li(nt.paint_raster[\"raster-resampling\"]),\"raster-fade-duration\":new li(nt.paint_raster[\"raster-fade-duration\"])})};class Zu extends yi{constructor(t){super(t,{}),this.onAdd=t=>{this.implementation.onAdd&&this.implementation.onAdd(t,t.painter.context.gl);},this.onRemove=t=>{this.implementation.onRemove&&this.implementation.onRemove(t,t.painter.context.gl);},this.implementation=t;}is3D(){return \"3d\"===this.implementation.renderingMode}hasOffscreenPass(){return void 0!==this.implementation.prerender}recalculate(){}updateTransitions(){}hasTransition(){return !1}serialize(){throw new Error(\"Custom layers cannot be serialized\")}}const Ku={circle:class extends yi{constructor(t){super(t,cs);}createBucket(t){return new Ja(t)}queryRadius(t){const e=t;return ss(\"circle-radius\",this,e)+ss(\"circle-stroke-width\",this,e)+os(this.paint.get(\"circle-translate\"))}queryIntersectsFeature(t,e,r,n,i,a,s,o){const l=ls(t,this.paint.get(\"circle-translate\"),this.paint.get(\"circle-translate-anchor\"),a.angle,s),u=this.paint.get(\"circle-radius\").evaluate(e,r)+this.paint.get(\"circle-stroke-width\").evaluate(e,r),c=\"map\"===this.paint.get(\"circle-pitch-alignment\"),h=c?l:function(t,e){return t.map((t=>_s(t,e)))}(l,o),p=c?u*s:u;for(const t of n)for(const e of t){const t=c?e:_s(e,o);let r=p;const n=bs([],[e.x,e.y,0,1],o);if(\"viewport\"===this.paint.get(\"circle-pitch-scale\")&&\"map\"===this.paint.get(\"circle-pitch-alignment\")?r*=n[3]/a.cameraToCenterDistance:\"map\"===this.paint.get(\"circle-pitch-scale\")&&\"viewport\"===this.paint.get(\"circle-pitch-alignment\")&&(r*=a.cameraToCenterDistance/n[3]),Ya(h,t,r))return !0}return !1}},heatmap:class extends yi{constructor(t){super(t,ks),this._updateColorRamp();}createBucket(t){return new As(t)}_handleSpecialPaintPropertyUpdate(t){\"heatmap-color\"===t&&this._updateColorRamp();}_updateColorRamp(){this.colorRamp=Cs({expression:this._transitionablePaint._values[\"heatmap-color\"].value.expression,evaluationKey:\"heatmapDensity\",image:this.colorRamp}),this.colorRampTexture=null;}resize(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null);}queryRadius(){return 0}queryIntersectsFeature(){return !1}hasOffscreenPass(){return 0!==this.paint.get(\"heatmap-opacity\")&&\"none\"!==this.visibility}},hillshade:class extends yi{constructor(t){super(t,Ps);}hasOffscreenPass(){return 0!==this.paint.get(\"hillshade-exaggeration\")&&\"none\"!==this.visibility}},fill:class extends yi{constructor(t){super(t,xo);}recalculate(t,e){super.recalculate(t,e);const r=this.paint._values[\"fill-outline-color\"];\"constant\"===r.value.kind&&void 0===r.value.value&&(this.paint._values[\"fill-outline-color\"]=this.paint._values[\"fill-color\"]);}createBucket(t){return new mo(t)}queryRadius(){return os(this.paint.get(\"fill-translate\"))}queryIntersectsFeature(t,e,r,n,i,a,s){return Ha(ls(t,this.paint.get(\"fill-translate\"),this.paint.get(\"fill-translate-anchor\"),a.angle,s),n)}isTileClipped(){return !0}},\"fill-extrusion\":class extends yi{constructor(t){super(t,Oo);}createBucket(t){return new Do(t)}queryRadius(){return os(this.paint.get(\"fill-extrusion-translate\"))}is3D(){return !0}queryIntersectsFeature(t,e,r,n,i,a,s,o){const l=ls(t,this.paint.get(\"fill-extrusion-translate\"),this.paint.get(\"fill-extrusion-translate-anchor\"),a.angle,s),u=this.paint.get(\"fill-extrusion-height\").evaluate(e,r),c=this.paint.get(\"fill-extrusion-base\").evaluate(e,r),h=function(t,e,r,n){const i=[];for(const r of t){const t=[r.x,r.y,0,1];bs(t,t,e),i.push(new S(t[0]/t[3],t[1]/t[3]));}return i}(l,o),p=function(t,e,r,n){const i=[],a=[],s=n[8]*e,o=n[9]*e,l=n[10]*e,u=n[11]*e,c=n[8]*r,h=n[9]*r,p=n[10]*r,f=n[11]*r;for(const e of t){const t=[],r=[];for(const i of e){const e=i.x,a=i.y,d=n[0]*e+n[4]*a+n[12],y=n[1]*e+n[5]*a+n[13],m=n[2]*e+n[6]*a+n[14],g=n[3]*e+n[7]*a+n[15],x=m+l,v=g+u,b=d+c,w=y+h,_=m+p,A=g+f,k=new S((d+s)/v,(y+o)/v);k.z=x/v,t.push(k);const I=new S(b/A,w/A);I.z=_/A,r.push(I);}i.push(t),a.push(r);}return [i,a]}(n,c,u,o);return function(t,e,r){let n=1/0;Ha(r,e)&&(n=qo(r,e[0]));for(let i=0;i=3)for(let e=0;e{this._triggered=!1,this._callback();});}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout((()=>{this._triggered=!1,this._callback();}),0));}remove(){delete this._channel,this._callback=()=>{};}}const Ju=6371008.8;class Xu{constructor(t,e){if(isNaN(t)||isNaN(e))throw new Error(`Invalid LngLat object: (${t}, ${e})`);if(this.lng=+t,this.lat=+e,this.lat>90||this.lat<-90)throw new Error(\"Invalid LngLat latitude value: must be between -90 and 90\")}wrap(){return new Xu(s(this.lng,-180,180),this.lat)}toArray(){return [this.lng,this.lat]}toString(){return `LngLat(${this.lng}, ${this.lat})`}distanceTo(t){const e=Math.PI/180,r=this.lat*e,n=t.lat*e,i=Math.sin(r)*Math.sin(n)+Math.cos(r)*Math.cos(n)*Math.cos((t.lng-this.lng)*e);return Ju*Math.acos(Math.min(i,1))}toBounds(t=0){const e=360*t/40075017,r=e/Math.cos(Math.PI/180*this.lat);return new Yu(new Xu(this.lng-r,this.lat-e),new Xu(this.lng+r,this.lat+e))}static convert(t){if(t instanceof Xu)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new Xu(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&\"object\"==typeof t&&null!==t)return new Xu(Number(\"lng\"in t?t.lng:t.lon),Number(t.lat));throw new Error(\"`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]\")}}class Yu{constructor(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]));}setNorthEast(t){return this._ne=t instanceof Xu?new Xu(t.lng,t.lat):Xu.convert(t),this}setSouthWest(t){return this._sw=t instanceof Xu?new Xu(t.lng,t.lat):Xu.convert(t),this}extend(t){const e=this._sw,r=this._ne;let n,i;if(t instanceof Xu)n=t,i=t;else {if(!(t instanceof Yu))return Array.isArray(t)?4===t.length||t.every(Array.isArray)?this.extend(Yu.convert(t)):this.extend(Xu.convert(t)):this;if(n=t._sw,i=t._ne,!n||!i)return this}return e||r?(e.lng=Math.min(n.lng,e.lng),e.lat=Math.min(n.lat,e.lat),r.lng=Math.max(i.lng,r.lng),r.lat=Math.max(i.lat,r.lat)):(this._sw=new Xu(n.lng,n.lat),this._ne=new Xu(i.lng,i.lat)),this}getCenter(){return new Xu((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new Xu(this.getWest(),this.getNorth())}getSouthEast(){return new Xu(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return [this._sw.toArray(),this._ne.toArray()]}toString(){return `LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return !(this._sw&&this._ne)}contains(t){const{lng:e,lat:r}=Xu.convert(t);let n=this._sw.lng<=e&&e<=this._ne.lng;return this._sw.lng>this._ne.lng&&(n=this._sw.lng>=e&&e>=this._ne.lng),this._sw.lat<=r&&r<=this._ne.lat&&n}static convert(t){return t instanceof Yu?t:t?new Yu(t):t}}const Hu=2*Math.PI*Ju;function Wu(t){return Hu*Math.cos(t*Math.PI/180)}function Qu(t){return (180+t)/360}function tc(t){return (180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360}function ec(t,e){return t/Wu(e)}function rc(t){return 360/Math.PI*Math.atan(Math.exp((180-360*t)*Math.PI/180))-90}class nc{constructor(t,e,r=0){this.x=+t,this.y=+e,this.z=+r;}static fromLngLat(t,e=0){const r=Xu.convert(t);return new nc(Qu(r.lng),tc(r.lat),ec(e,r.lat))}toLngLat(){return new Xu(360*this.x-180,rc(this.y))}toAltitude(){return this.z*Wu(rc(this.y))}meterInMercatorCoordinateUnits(){return 1/Hu*(t=rc(this.y),1/Math.cos(t*Math.PI/180));var t;}}function ic(t,e,r){var n=2*Math.PI*6378137/256/Math.pow(2,r);return [t*n-2*Math.PI*6378137/2,e*n-2*Math.PI*6378137/2]}class ac{constructor(t,e,r){if(t<0||t>25||r<0||r>=Math.pow(2,t)||e<0||e>=Math.pow(2,t))throw new Error(`x=${e}, y=${r}, z=${t} outside of bounds. 0<=x<${Math.pow(2,t)}, 0<=y<${Math.pow(2,t)} 0<=z<=25 `);this.z=t,this.x=e,this.y=r,this.key=lc(0,t,t,e,r);}equals(t){return this.z===t.z&&this.x===t.x&&this.y===t.y}url(t,e,r){const n=(a=this.y,s=this.z,o=ic(256*(i=this.x),256*(a=Math.pow(2,s)-a-1),s),l=ic(256*(i+1),256*(a+1),s),o[0]+\",\"+o[1]+\",\"+l[0]+\",\"+l[1]);var i,a,s,o,l;const u=function(t,e,r){let n,i=\"\";for(let a=t;a>0;a--)n=1<1?\"@2x\":\"\").replace(/{quadkey}/g,u).replace(/{bbox-epsg-3857}/g,n)}isChildOf(t){const e=this.z-t.z;return e>0&&t.x===this.x>>e&&t.y===this.y>>e}getTilePoint(t){const e=Math.pow(2,this.z);return new S((t.x*e-this.x)*qa,(t.y*e-this.y)*qa)}toString(){return `${this.z}/${this.x}/${this.y}`}}class sc{constructor(t,e){this.wrap=t,this.canonical=e,this.key=lc(t,e.z,e.z,e.x,e.y);}}class oc{constructor(t,e,r,n,i){if(t= z; overscaledZ = ${t}; z = ${r}`);this.overscaledZ=t,this.wrap=e,this.canonical=new ac(r,+n,+i),this.key=lc(e,t,r,n,i);}clone(){return new oc(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(t){return this.overscaledZ===t.overscaledZ&&this.wrap===t.wrap&&this.canonical.equals(t.canonical)}scaledTo(t){if(t>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);const e=this.canonical.z-t;return t>this.canonical.z?new oc(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new oc(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)}calculateScaledKey(t,e){if(t>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);const r=this.canonical.z-t;return t>this.canonical.z?lc(this.wrap*+e,t,this.canonical.z,this.canonical.x,this.canonical.y):lc(this.wrap*+e,t,t,this.canonical.x>>r,this.canonical.y>>r)}isChildOf(t){if(t.wrap!==this.wrap)return !1;const e=this.canonical.z-t.canonical.z;return 0===t.overscaledZ||t.overscaledZ>e&&t.canonical.y===this.canonical.y>>e}children(t){if(this.overscaledZ>=t)return [new oc(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const e=this.canonical.z+1,r=2*this.canonical.x,n=2*this.canonical.y;return [new oc(e,this.wrap,e,r,n),new oc(e,this.wrap,e,r+1,n),new oc(e,this.wrap,e,r,n+1),new oc(e,this.wrap,e,r+1,n+1)]}isLessThan(t){return this.wrapt.wrap)&&(this.overscaledZt.overscaledZ)&&(this.canonical.xt.canonical.x)&&this.canonical.ythis.max&&(this.max=r),r=this.dim+1||e<-1||e>=this.dim+1)throw new RangeError(\"out of range source coordinates for DEM data\");return (e+1)*this.stride+(t+1)}_unpackMapbox(t,e,r){return (256*t*256+256*e+r)/10-1e4}_unpackTerrarium(t,e,r){return 256*t+e+r/256-32768}getPixels(){return new Bs({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(t,e,r){if(this.dim!==t.dim)throw new Error(\"dem dimension mismatch\");let n=e*this.dim,i=e*this.dim+this.dim,a=r*this.dim,s=r*this.dim+this.dim;switch(e){case-1:n=i-1;break;case 1:i=n+1;}switch(r){case-1:a=s-1;break;case 1:s=a+1;}const o=-e*this.dim,l=-r*this.dim;for(let e=a;e=this._numberToString.length)throw new Error(`Out of bounds. Index requested n=${t} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[t]}}class hc{constructor(t,e,r,n,i){this.type=\"Feature\",this._vectorTileFeature=t,t._z=e,t._x=r,t._y=n,this.properties=t.properties,this.id=i;}get geometry(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry}set geometry(t){this._geometry=t;}toJSON(){const t={geometry:this.geometry};for(const e in this)\"_geometry\"!==e&&\"_vectorTileFeature\"!==e&&(t[e]=this[e]);return t}}class pc{constructor(t,e){this.tileID=t,this.x=t.canonical.x,this.y=t.canonical.y,this.z=t.canonical.z,this.grid=new Sn(qa,16,0),this.grid3D=new Sn(qa,16,0),this.featureIndexArray=new Wi,this.promoteId=e;}insert(t,e,r,n,i,a){const s=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(r,n,i);const o=a?this.grid3D:this.grid;for(let t=0;t=0&&n[3]>=0&&o.insert(s,n[0],n[1],n[2],n[3]);}}loadVTLayers(){return this.vtLayers||(this.vtLayers=new _o.VectorTile(new ul(this.rawTileData)).layers,this.sourceLayerCoder=new cc(this.vtLayers?Object.keys(this.vtLayers).sort():[\"_geojsonTileLayer\"])),this.vtLayers}query(t,e,r,n){this.loadVTLayers();const i=t.params||{},a=qa/t.tileSize/t.scale,s=Jr(i.filter),o=t.queryGeometry,l=t.queryPadding*a,u=dc(o),c=this.grid.query(u.minX-l,u.minY-l,u.maxX+l,u.maxY+l),h=dc(t.cameraQueryGeometry),p=this.grid3D.query(h.minX-l,h.minY-l,h.maxX+l,h.maxY+l,((e,r,n,i)=>function(t,e,r,n,i){for(const a of t)if(e<=a.x&&r<=a.y&&n>=a.x&&i>=a.y)return !0;const a=[new S(e,r),new S(e,i),new S(n,i),new S(n,r)];if(t.length>2)for(const e of a)if(is(t,e))return !0;for(let e=0;e(p||(p=Za(e)),r.queryIntersectsFeature(o,e,n,p,this.z,t.transform,a,t.pixelPosMatrix))));}return f}loadMatchingFeature(t,e,r,n,i,a,s,l,u,c,h){const p=this.bucketLayerIDs[e];if(a&&!function(t,e){for(let r=0;r=0)return !0;return !1}(a,p))return;const f=this.sourceLayerCoder.decode(r),d=this.vtLayers[f].feature(n);if(i.needGeometry){const t=Ka(d,!0);if(!i.filter(new Qn(this.tileID.overscaledZ),t,this.tileID.canonical))return}else if(!i.filter(new Qn(this.tileID.overscaledZ),d))return;const y=this.getId(d,f);for(let e=0;e{const s=e instanceof oi?e.get(a):null;return s&&s.evaluate?s.evaluate(r,n,i):s}))}function dc(t){let e=1/0,r=1/0,n=-1/0,i=-1/0;for(const a of t)e=Math.min(e,a.x),r=Math.min(r,a.y),n=Math.max(n,a.x),i=Math.max(i,a.y);return {minX:e,minY:r,maxX:n,maxY:i}}function yc(t,e){return e-t}var mc;Mn(\"FeatureIndex\",pc,{omit:[\"rawTileData\",\"sourceLayerCoder\"]}),t.PerformanceMarkers=void 0,(mc=t.PerformanceMarkers||(t.PerformanceMarkers={})).create=\"create\",mc.load=\"load\",mc.fullLoad=\"fullLoad\";let gc=null,xc=[];const vc=1e3/30,bc={mark(t){performance.mark(t);},frame(t){const e=t;null!=gc&&xc.push(e-gc),gc=e;},clearMetrics(){gc=null,xc=[],performance.clearMeasures(\"loadTime\"),performance.clearMeasures(\"fullLoadTime\");for(const e in t.PerformanceMarkers)performance.clearMarks(t.PerformanceMarkers[e]);},getPerformanceMetrics(){performance.measure(\"loadTime\",t.PerformanceMarkers.create,t.PerformanceMarkers.load),performance.measure(\"fullLoadTime\",t.PerformanceMarkers.create,t.PerformanceMarkers.fullLoad);const e=performance.getEntriesByName(\"loadTime\")[0].duration,r=performance.getEntriesByName(\"fullLoadTime\")[0].duration,n=xc.length,i=1/(xc.reduce(((t,e)=>t+e),0)/n/1e3),a=xc.filter((t=>t>vc)).reduce(((t,e)=>t+(e-vc)/vc),0);return {loadTime:e,fullLoadTime:r,fps:i,percentDroppedFrames:a/(n+a)*100}}};t.AJAXError=q,t.ARRAY_TYPE=ps,t.Actor=class{constructor(t,e,r){this.target=t,this.parent=e,this.mapId=r,this.callbacks={},this.tasks={},this.taskQueue=[],this.cancelCallbacks={},u([\"receive\",\"process\"],this),this.invoker=new Gu(this.process),this.target.addEventListener(\"message\",this.receive,!1),this.globalScope=g()?t:window;}send(t,e,r,n,i=!1){const a=Math.round(1e18*Math.random()).toString(36).substring(0,10);r&&(this.callbacks[a]=r);const s=_(this.globalScope)?void 0:[];return this.target.postMessage({id:a,type:t,hasCallback:!!r,targetMapId:n,mustQueue:i,sourceMapId:this.mapId,data:Bn(e,s)},s),{cancel:()=>{r&&delete this.callbacks[a],this.target.postMessage({id:a,type:\"\",targetMapId:n,sourceMapId:this.mapId});}}}receive(t){const e=t.data,r=e.id;if(r&&(!e.targetMapId||this.mapId===e.targetMapId))if(\"\"===e.type){delete this.tasks[r];const t=this.cancelCallbacks[r];delete this.cancelCallbacks[r],t&&t();}else g()||e.mustQueue?(this.tasks[r]=e,this.taskQueue.push(r),this.invoker.trigger()):this.processTask(r,e);}process(){if(!this.taskQueue.length)return;const t=this.taskQueue.shift(),e=this.tasks[t];delete this.tasks[t],this.taskQueue.length&&this.invoker.trigger(),e&&this.processTask(t,e);}processTask(t,e){if(\"\"===e.type){const r=this.callbacks[t];delete this.callbacks[t],r&&(e.error?r(Cn(e.error)):r(null,Cn(e.data)));}else {let r=!1;const n=_(this.globalScope)?void 0:[],i=e.hasCallback?(e,i)=>{r=!0,delete this.cancelCallbacks[t],this.target.postMessage({id:t,type:\"\",sourceMapId:this.mapId,error:e?Bn(e):null,data:Bn(i,n)},n);}:t=>{r=!0;};let a=null;const s=Cn(e.data);if(this.parent[e.type])a=this.parent[e.type](e.sourceMapId,s,i);else if(this.parent.getWorkerSource){const t=e.type.split(\".\");a=this.parent.getWorkerSource(e.sourceMapId,t[0],s.source)[t[1]](s,i);}else i(new Error(`Could not find function ${e.type}`));!r&&a&&a.cancel&&(this.cancelCallbacks[t]=a.cancel);}}remove(){this.invoker.remove(),this.target.removeEventListener(\"message\",this.receive,!1);}},t.AlphaImage=zs,t.CanonicalTileID=ac,t.CollisionBoxArray=Ni,t.CollisionCircleLayoutArray=class extends Vi{},t.Color=Ft,t.DEMData=uc,t.DataConstantProperty=li,t.DictionaryCoder=cc,t.EXTENT=qa,t.ErrorEvent=et,t.EvaluationParameters=Qn,t.Event=tt,t.Evented=rt,t.FeatureIndex=pc,t.FillBucket=mo,t.FillExtrusionBucket=Do,t.GeoJSONFeature=hc,t.ImageAtlas=Dl,t.ImagePosition=Ll,t.LineBucket=Yo,t.LineStripIndexArray=class extends Ui{},t.LngLat=Xu,t.LngLatBounds=Yu,t.MercatorCoordinate=nc,t.ONE_EM=ll,t.OverscaledTileID=oc,t.PerformanceUtils=bc,t.PosArray=Qi,t.Properties=fi,t.QuadTriangleArray=class extends Fi{},t.RGBAImage=Bs,t.RasterBoundsArray=class extends _i{},t.RequestPerformance=class{constructor(t){this._marks={start:[t.url,\"start\"].join(\"#\"),end:[t.url,\"end\"].join(\"#\"),measure:t.url.toString()},performance.mark(this._marks.start);}finish(){performance.mark(this._marks.end);let t=performance.getEntriesByName(this._marks.measure);return 0===t.length&&(performance.measure(this._marks.measure,this._marks.start,this._marks.end),t=performance.getEntriesByName(this._marks.measure),performance.clearMarks(this._marks.start),performance.clearMarks(this._marks.end),performance.clearMeasures(this._marks.measure)),t}},t.ResourceType=U,t.SegmentVector=ya,t.SymbolBucket=Du,t.Transitionable=ri,t.TriangleIndexArray=ha,t.Uniform1f=za,t.Uniform1i=class extends Ma{constructor(t,e){super(t,e),this.current=0;}set(t){this.current!==t&&(this.current=t,this.gl.uniform1i(this.location,t));}},t.Uniform2f=class extends Ma{constructor(t,e){super(t,e),this.current=[0,0];}set(t){t[0]===this.current[0]&&t[1]===this.current[1]||(this.current=t,this.gl.uniform2f(this.location,t[0],t[1]));}},t.Uniform3f=class extends Ma{constructor(t,e){super(t,e),this.current=[0,0,0];}set(t){t[0]===this.current[0]&&t[1]===this.current[1]&&t[2]===this.current[2]||(this.current=t,this.gl.uniform3f(this.location,t[0],t[1],t[2]));}},t.Uniform4f=Ba,t.UniformColor=Ca,t.UniformMatrix4f=class extends Ma{constructor(t,e){super(t,e),this.current=Pa;}set(t){if(t[12]!==this.current[12]||t[0]!==this.current[0])return this.current=t,void this.gl.uniformMatrix4fv(this.location,!1,t);for(let e=1;e<16;e++)if(t[e]!==this.current[e]){this.current=t,this.gl.uniformMatrix4fv(this.location,!1,t);break}}},t.UnwrappedTileID=sc,t.ValidationError=it,t.ZoomHistory=Pn,t.add=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t},t.addDynamicAttributes=Eu,t.asyncAll=function(t,e,r){if(!t.length)return r(null,[]);let n=t.length;const i=new Array(t.length);let a=null;t.forEach(((t,s)=>{e(t,((t,e)=>{t&&(a=t),i[s]=e,0==--n&&r(a,i);}));}));},t.bezier=n,t.bindAll=u,t.cacheEntryPossiblyAdded=function(t){F++,F>V&&(t.getActor().send(\"enforceCacheSizeLimit\",P),F=0);},t.clamp=a,t.clearTileCache=function(t){const e=caches.delete(z);t&&e.catch(t).then((()=>t()));},t.clipLine=cu,t.clone=function(t){var e=new ps(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},t.clone$1=p,t.clone$2=function(t){var e=new ps(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e},t.collisionCircleLayout=al,t.config=M,t.copy=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},t.create=function(){var t=new ps(16);return ps!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},t.create$1=fs,t.createExpression=Fr,t.createFilter=Jr,t.createLayout=vi,t.createStyleLayer=function(t){return \"custom\"===t.type?new Zu(t):new Ku[t.type](t)},t.cross=function(t,e,r){var n=e[0],i=e[1],a=e[2],s=r[0],o=r[1],l=r[2];return t[0]=i*l-a*o,t[1]=a*s-n*l,t[2]=n*o-i*s,t},t.dot=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},t.dot$1=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]},t.ease=i,t.emitValidationErrors=kn,t.enforceCacheSizeLimit=function(t){E(),B&&B.then((e=>{e.keys().then((r=>{for(let n=0;n{}}},t.identity=ds,t.invert=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],s=e[4],o=e[5],l=e[6],u=e[7],c=e[8],h=e[9],p=e[10],f=e[11],d=e[12],y=e[13],m=e[14],g=e[15],x=r*o-n*s,v=r*l-i*s,b=r*u-a*s,w=n*l-i*o,_=n*u-a*o,A=i*u-a*l,k=c*y-h*d,S=c*m-p*d,I=c*g-f*d,M=h*m-p*y,z=h*g-f*y,B=p*g-f*m,C=x*B-v*z+b*M+w*I-_*S+A*k;return C?(t[0]=(o*B-l*z+u*M)*(C=1/C),t[1]=(i*z-n*B-a*M)*C,t[2]=(y*A-m*_+g*w)*C,t[3]=(p*_-h*A-f*w)*C,t[4]=(l*I-s*B-u*S)*C,t[5]=(r*B-i*I+a*S)*C,t[6]=(m*b-d*A-g*v)*C,t[7]=(c*A-p*b+f*v)*C,t[8]=(s*z-o*I+u*k)*C,t[9]=(n*I-r*z-a*k)*C,t[10]=(d*_-y*b+g*x)*C,t[11]=(h*b-c*_-f*x)*C,t[12]=(o*S-s*M-l*k)*C,t[13]=(r*M-n*S+i*k)*C,t[14]=(y*v-d*w-m*x)*C,t[15]=(c*w-h*v+p*x)*C,t):null},t.isImageBitmap=A,t.isSafari=_,t.isWorker=g,t.keysDifference=function(t,e){const r=[];for(const n in t)n in e||r.push(n);return r},t.lazyLoadRTLTextPlugin=function(){Wn.isLoading()||Wn.isLoaded()||\"deferred\"!==Yn()||Hn();},t.makeRequest=Z,t.mapObject=c,t.mercatorXfromLng=Qu,t.mercatorYfromLat=tc,t.mercatorZfromAltitude=ec,t.mul=gs,t.mul$1=function(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t[3]=e[3]*r[3],t},t.multiply=ys,t.nextPowerOfTwo=function(t){return t<=1?1:Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))},t.normalize=function(t,e){var r=e[0],n=e[1],i=e[2],a=r*r+n*n+i*i;return a>0&&(a=1/Math.sqrt(a)),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t},t.number=Se,t.ortho=function(t,e,r,n,i,a,s){var o=1/(e-r),l=1/(n-i),u=1/(a-s);return t[0]=-2*o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*u,t[11]=0,t[12]=(e+r)*o,t[13]=(i+n)*l,t[14]=(s+a)*u,t[15]=1,t},t.parseCacheControl=x,t.parseGlyphPbf=function(t){return new ul(t).readFields(Vl,[])},t.pbf=ul,t.performSymbolLayout=function(e){e.bucket.createArrays(),e.bucket.tilePixelRatio=qa/(512*e.bucket.overscaling),e.bucket.compareText={},e.bucket.iconsNeedLinear=!1;const r=e.bucket.layers[0].layout,n=e.bucket.layers[0]._unevaluatedLayout._values,i={layoutIconSize:n[\"icon-size\"].possiblyEvaluate(new Qn(e.bucket.zoom+1),e.canonical),layoutTextSize:n[\"text-size\"].possiblyEvaluate(new Qn(e.bucket.zoom+1),e.canonical),textMaxSize:n[\"text-size\"].possiblyEvaluate(new Qn(18))};if(\"composite\"===e.bucket.textSizeData.kind){const{minZoom:t,maxZoom:r}=e.bucket.textSizeData;i.compositeTextSizes=[n[\"text-size\"].possiblyEvaluate(new Qn(t),e.canonical),n[\"text-size\"].possiblyEvaluate(new Qn(r),e.canonical)];}if(\"composite\"===e.bucket.iconSizeData.kind){const{minZoom:t,maxZoom:r}=e.bucket.iconSizeData;i.compositeIconSizes=[n[\"icon-size\"].possiblyEvaluate(new Qn(t),e.canonical),n[\"icon-size\"].possiblyEvaluate(new Qn(r),e.canonical)];}const a=r.get(\"text-line-height\")*ll,s=\"viewport\"!==r.get(\"text-rotation-alignment\")&&\"point\"!==r.get(\"symbol-placement\"),o=r.get(\"text-keep-upright\"),l=r.get(\"text-size\");for(const n of e.bucket.features){const u=r.get(\"text-font\").evaluate(n,{},e.canonical).join(\",\"),c=l.evaluate(n,{},e.canonical),h=i.layoutTextSize.evaluate(n,{},e.canonical),p=i.layoutIconSize.evaluate(n,{},e.canonical),f={horizontal:{},vertical:void 0},y=n.text;let m,g=[0,0];if(y){const i=y.toString(),l=r.get(\"text-letter-spacing\").evaluate(n,{},e.canonical)*ll,p=Fn(i)?l:0,d=r.get(\"text-anchor\").evaluate(n,{},e.canonical),m=r.get(\"text-variable-anchor\");if(!m){const t=r.get(\"text-radial-offset\").evaluate(n,{},e.canonical);g=t?Au(d,[t*ll,_u]):r.get(\"text-offset\").evaluate(n,{},e.canonical).map((t=>t*ll));}let x=s?\"center\":r.get(\"text-justify\").evaluate(n,{},e.canonical);const v=r.get(\"symbol-placement\"),b=\"point\"===v?r.get(\"text-max-width\").evaluate(n,{},e.canonical)*ll:0,w=()=>{e.bucket.allowVerticalPlacement&&En(i)&&(f.vertical=Ul(y,e.glyphMap,e.glyphPositions,e.imagePositions,u,b,a,d,\"left\",p,g,t.WritingMode.vertical,!0,v,h,c));};if(!s&&m){const r=\"auto\"===x?m.map((t=>ku(t))):[x];let n=!1;for(let i=0;ithis._layers[e.id])),o=t[0];if(\"none\"===o.visibility)continue;const i=o.source||\"\";let r=this.familiesBySource[i];r||(r=this.familiesBySource[i]={});const n=o.sourceLayer||\"_geojsonTileLayer\";let s=r[n];s||(s=r[n]=[]),s.push(t);}}}class r{constructor(t){const o={},i=[];for(const e in t){const r=t[e],n=o[e]={};for(const e in r){const t=r[+e];if(!t||0===t.bitmap.width||0===t.bitmap.height)continue;const o={x:0,y:0,w:t.bitmap.width+2,h:t.bitmap.height+2};i.push(o),n[e]={rect:o,metrics:t.metrics};}}const{w:r,h:n}=e.potpack(i),s=new e.AlphaImage({width:r||1,height:n||1});for(const i in t){const r=t[i];for(const t in r){const n=r[+t];if(!n||0===n.bitmap.width||0===n.bitmap.height)continue;const a=o[i][t].rect;e.AlphaImage.copy(n.bitmap,s,{x:0,y:0},{x:a.x+1,y:a.y+1},n.bitmap);}}this.image=s,this.positions=o;}}e.register(\"GlyphAtlas\",r);class n{constructor(t){this.tileID=new e.OverscaledTileID(t.tileID.overscaledZ,t.tileID.wrap,t.tileID.canonical.z,t.tileID.canonical.x,t.tileID.canonical.y),this.uid=t.uid,this.zoom=t.zoom,this.pixelRatio=t.pixelRatio,this.tileSize=t.tileSize,this.source=t.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=t.showCollisionBoxes,this.collectResourceTiming=!!t.collectResourceTiming,this.returnDependencies=!!t.returnDependencies,this.promoteId=t.promoteId;}parse(t,o,i,n,a){this.status=\"parsing\",this.data=t,this.collisionBoxArray=new e.CollisionBoxArray;const l=new e.DictionaryCoder(Object.keys(t.layers).sort()),c=new e.FeatureIndex(this.tileID,this.promoteId);c.bucketLayerIDs=[];const u={},h={featureIndex:c,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:i},p=o.familiesBySource[this.source];for(const o in p){const r=t.layers[o];if(!r)continue;1===r.version&&e.warnOnce(`Vector tile source \"${this.source}\" layer \"${o}\" does not use vector tile spec v2 and therefore may have some rendering errors.`);const n=l.encode(o),a=[];for(let e=0;e=o.maxzoom||\"none\"!==o.visibility&&(s(t,this.zoom,i),(u[o.id]=o.createBucket({index:c.bucketLayerIDs.length,layers:t,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:n,sourceID:this.source})).populate(a,h,this.tileID.canonical),c.bucketLayerIDs.push(t.map((e=>e.id))));}}let f,d,g,m;const y=e.mapObject(h.glyphDependencies,(e=>Object.keys(e).map(Number)));Object.keys(y).length?n.send(\"getGlyphs\",{uid:this.uid,stacks:y},((e,t)=>{f||(f=e,d=t,w.call(this));})):d={};const v=Object.keys(h.iconDependencies);v.length?n.send(\"getImages\",{icons:v,source:this.source,tileID:this.tileID,type:\"icons\"},((e,t)=>{f||(f=e,g=t,w.call(this));})):g={};const x=Object.keys(h.patternDependencies);function w(){if(f)return a(f);if(d&&g&&m){const t=new r(d),o=new e.ImageAtlas(g,m);for(const r in u){const n=u[r];n instanceof e.SymbolBucket?(s(n.layers,this.zoom,i),e.performSymbolLayout({bucket:n,glyphMap:d,glyphPositions:t.positions,imageMap:g,imagePositions:o.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical})):n.hasPattern&&(n instanceof e.LineBucket||n instanceof e.FillBucket||n instanceof e.FillExtrusionBucket)&&(s(n.layers,this.zoom,i),n.addFeatures(h,this.tileID.canonical,o.patternPositions));}this.status=\"done\",a(null,{buckets:Object.values(u).filter((e=>!e.isEmpty())),featureIndex:c,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:t.image,imageAtlas:o,glyphMap:this.returnDependencies?d:null,iconMap:this.returnDependencies?g:null,glyphPositions:this.returnDependencies?t.positions:null});}}x.length?n.send(\"getImages\",{icons:x,source:this.source,tileID:this.tileID,type:\"patterns\"},((e,t)=>{f||(f=e,m=t,w.call(this));})):m={},w.call(this);}}function s(t,o,i){const r=new e.EvaluationParameters(o);for(const e of t)e.recalculate(r,i);}function a(t,o){const i=e.getArrayBuffer(t.request,((t,i,r,n)=>{t?o(t):i&&o(null,{vectorTile:new e.vectorTile.VectorTile(new e.pbf(i)),rawData:i,cacheControl:r,expires:n});}));return ()=>{i.cancel(),o();}}class l{constructor(e,t,o,i){this.actor=e,this.layerIndex=t,this.availableImages=o,this.loadVectorData=i||a,this.loading={},this.loaded={};}loadTile(t,o){const i=t.uid;this.loading||(this.loading={});const r=!!(t&&t.request&&t.request.collectResourceTiming)&&new e.RequestPerformance(t.request),s=this.loading[i]=new n(t);s.abort=this.loadVectorData(t,((t,n)=>{if(delete this.loading[i],t||!n)return s.status=\"done\",this.loaded[i]=s,o(t);const a=n.rawData,l={};n.expires&&(l.expires=n.expires),n.cacheControl&&(l.cacheControl=n.cacheControl);const c={};if(r){const e=r.finish();e&&(c.resourceTiming=JSON.parse(JSON.stringify(e)));}s.vectorTile=n.vectorTile,s.parse(n.vectorTile,this.layerIndex,this.availableImages,this.actor,((t,i)=>{if(t||!i)return o(t);o(null,e.extend({rawTileData:a.slice(0)},i,l,c));})),this.loaded=this.loaded||{},this.loaded[i]=s;}));}reloadTile(e,t){const o=this.loaded,i=e.uid,r=this;if(o&&o[i]){const n=o[i];n.showCollisionBoxes=e.showCollisionBoxes;const s=(e,o)=>{const i=n.reloadCallback;i&&(delete n.reloadCallback,n.parse(n.vectorTile,r.layerIndex,this.availableImages,r.actor,i)),t(e,o);};\"parsing\"===n.status?n.reloadCallback=s:\"done\"===n.status&&(n.vectorTile?n.parse(n.vectorTile,this.layerIndex,this.availableImages,this.actor,s):s());}}abortTile(e,t){const o=this.loading,i=e.uid;o&&o[i]&&o[i].abort&&(o[i].abort(),delete o[i]),t();}removeTile(e,t){const o=this.loaded,i=e.uid;o&&o[i]&&delete o[i],t();}}class c{constructor(){this.loaded={};}loadTile(t,o){const{uid:i,encoding:r,rawImageData:n}=t,s=e.isImageBitmap(n)?this.getImageData(n):n,a=new e.DEMData(i,s,r);this.loaded=this.loaded||{},this.loaded[i]=a,o(null,a);}getImageData(t){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(t.width,t.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext(\"2d\")),this.offscreenCanvas.width=t.width,this.offscreenCanvas.height=t.height,this.offscreenCanvasContext.drawImage(t,0,0,t.width,t.height);const o=this.offscreenCanvasContext.getImageData(-1,-1,t.width+2,t.height+2);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new e.RGBAImage({width:o.width,height:o.height},o.data)}removeTile(e){const t=this.loaded,o=e.uid;t&&t[o]&&delete t[o];}}var u=function e(t,o){var i,r=t&&t.type;if(\"FeatureCollection\"===r)for(i=0;i=Math.abs(a)?o-l+a:a-l+o,o=l;}o+i>=0!=!!t&&e.reverse();}const f=e.vectorTile.VectorTileFeature.prototype.toGeoJSON;class d{constructor(t){this._feature=t,this.extent=e.EXTENT,this.type=t.type,this.properties=t.tags,\"id\"in t&&!isNaN(t.id)&&(this.id=parseInt(t.id,10));}loadGeometry(){if(1===this._feature.type){const t=[];for(const o of this._feature.geometry)t.push([new e.pointGeometry(o[0],o[1])]);return t}{const t=[];for(const o of this._feature.geometry){const i=[];for(const t of o)i.push(new e.pointGeometry(t[0],t[1]));t.push(i);}return t}}toGeoJSON(e,t,o){return f.call(this,e,t,o)}}class g{constructor(t){this.layers={_geojsonTileLayer:this},this.name=\"_geojsonTileLayer\",this.extent=e.EXTENT,this.length=t.length,this._features=t;}feature(e){return new d(this._features[e])}}var m={exports:{}},y=e.pointGeometry,v=e.vectorTile.VectorTileFeature,x=w;function w(e,t){this.options=t||{},this.features=e,this.length=e.length;}function S(e,t){this.id=\"number\"==typeof e.id?e.id:void 0,this.type=e.type,this.rawGeometry=1===e.type?[e.geometry]:e.geometry,this.properties=e.tags,this.extent=t||4096;}w.prototype.feature=function(e){return new S(this.features[e],this.options.extent)},S.prototype.loadGeometry=function(){var e=this.rawGeometry;this.geometry=[];for(var t=0;t>31}function D(e,t){for(var o=e.loadGeometry(),i=e.type,r=0,n=0,s=o.length,a=0;a>1;O(e,t,s,i,r,n%2),z(e,t,o,i,s-1,n+1),z(e,t,o,s+1,r,n+1);}function O(e,t,o,i,r,n){for(;r>i;){if(r-i>600){const s=r-i+1,a=o-i+1,l=Math.log(s),c=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*c*(s-c)/s)*(a-s/2<0?-1:1);O(e,t,o,Math.max(i,Math.floor(o-a*c/s+u)),Math.min(r,Math.floor(o+(s-a)*c/s+u)),n);}const s=t[2*o+n];let a=i,l=r;for(E(e,t,i,o),t[2*r+n]>s&&E(e,t,i,r);as;)l--;}t[2*i+n]===s?E(e,t,i,l):(l++,E(e,t,l,r)),l<=o&&(i=l+1),o<=l&&(r=l-1);}}function E(e,t,o,i){F(e,o,i),F(t,2*o,2*i),F(t,2*o+1,2*i+1);}function F(e,t,o){const i=e[t];e[t]=e[o],e[o]=i;}function N(e,t,o,i){const r=e-o,n=t-i;return r*r+n*n}m.exports=b,m.exports.fromVectorTileJs=b,m.exports.fromGeojsonVt=function(e,t){t=t||{};var o={};for(var i in e)o[i]=new I(e[i].features,t),o[i].name=i,o[i].version=t.version,o[i].extent=t.extent;return b({layers:o})},m.exports.GeoJSONWrapper=I;const A=e=>e[0],B=e=>e[1];class J{constructor(e,t=A,o=B,i=64,r=Float64Array){this.nodeSize=i,this.points=e;const n=e.length<65536?Uint16Array:Uint32Array,s=this.ids=new n(e.length),a=this.coords=new r(2*e.length);for(let i=0;i=o&&c<=r&&u>=i&&u<=n&&l.push(e[s]);continue}const d=Math.floor((f+p)/2);c=t[2*d],u=t[2*d+1],c>=o&&c<=r&&u>=i&&u<=n&&l.push(e[d]);const g=(h+1)%2;(0===h?o<=c:i<=u)&&(a.push(f),a.push(d-1),a.push(g)),(0===h?r>=c:n>=u)&&(a.push(d+1),a.push(p),a.push(g));}return l}(this.ids,this.coords,e,t,o,i,this.nodeSize)}within(e,t,o){return function(e,t,o,i,r,n){const s=[0,e.length-1,0],a=[],l=r*r;for(;s.length;){const c=s.pop(),u=s.pop(),h=s.pop();if(u-h<=n){for(let r=h;r<=u;r++)N(t[2*r],t[2*r+1],o,i)<=l&&a.push(e[r]);continue}const p=Math.floor((h+u)/2),f=t[2*p],d=t[2*p+1];N(f,d,o,i)<=l&&a.push(e[p]);const g=(c+1)%2;(0===c?o-r<=f:i-r<=d)&&(s.push(h),s.push(p-1),s.push(g)),(0===c?o+r>=f:i+r>=d)&&(s.push(p+1),s.push(u),s.push(g));}return a}(this.ids,this.coords,e,t,o,this.nodeSize)}}const Z={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:e=>e},G=Math.fround||(j=new Float32Array(1),e=>(j[0]=+e,j[0]));var j;class Y{constructor(e){this.options=H(Object.create(Z),e),this.trees=new Array(this.options.maxZoom+1);}load(e){const{log:t,minZoom:o,maxZoom:i,nodeSize:r}=this.options;t&&console.time(\"total time\");const n=`prepare ${e.length} points`;t&&console.time(n),this.points=e;let s=[];for(let t=0;t=o;e--){const o=+Date.now();s=this._cluster(s,e),this.trees[e]=new J(s,K,Q,r,Float32Array),t&&console.log(\"z%d: %d clusters in %dms\",e,s.length,+Date.now()-o);}return t&&console.timeEnd(\"total time\"),this}getClusters(e,t){let o=((e[0]+180)%360+360)%360-180;const i=Math.max(-90,Math.min(90,e[1]));let r=180===e[2]?180:((e[2]+180)%360+360)%360-180;const n=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)o=-180,r=180;else if(o>r){const e=this.getClusters([o,i,180,n],t),s=this.getClusters([-180,i,r,n],t);return e.concat(s)}const s=this.trees[this._limitZoom(t)],a=s.range($(o),q(n),$(r),q(i)),l=[];for(const e of a){const t=s.points[e];l.push(t.numPoints?R(t):this.points[t.index]);}return l}getChildren(e){const t=this._getOriginId(e),o=this._getOriginZoom(e),i=\"No cluster with the specified id.\",r=this.trees[o];if(!r)throw new Error(i);const n=r.points[t];if(!n)throw new Error(i);const s=this.options.radius/(this.options.extent*Math.pow(2,o-1)),a=r.within(n.x,n.y,s),l=[];for(const t of a){const o=r.points[t];o.parentId===e&&l.push(o.numPoints?R(o):this.points[o.index]);}if(0===l.length)throw new Error(i);return l}getLeaves(e,t,o){const i=[];return this._appendLeaves(i,e,t=t||10,o=o||0,0),i}getTile(e,t,o){const i=this.trees[this._limitZoom(e)],r=Math.pow(2,e),{extent:n,radius:s}=this.options,a=s/n,l=(o-a)/r,c=(o+1+a)/r,u={features:[]};return this._addTileFeatures(i.range((t-a)/r,l,(t+1+a)/r,c),i.points,t,o,r,u),0===t&&this._addTileFeatures(i.range(1-a/r,l,1,c),i.points,r,o,r,u),t===r-1&&this._addTileFeatures(i.range(0,l,a/r,c),i.points,-1,o,r,u),u.features.length?u:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){const o=this.getChildren(e);if(t++,1!==o.length)break;e=o[0].properties.cluster_id;}return t}_appendLeaves(e,t,o,i,r){const n=this.getChildren(t);for(const t of n){const n=t.properties;if(n&&n.cluster?r+n.point_count<=i?r+=n.point_count:r=this._appendLeaves(e,n.cluster_id,o,i,r):rt&&(h+=o.numPoints||1);}if(h>u&&h>=s){let e=r.x*u,s=r.y*u,a=n&&u>1?this._map(r,!0):null;const p=(i<<5)+(t+1)+this.points.length;for(const o of c){const i=l.points[o];if(i.zoom<=t)continue;i.zoom=t;const c=i.numPoints||1;e+=i.x*c,s+=i.y*c,i.parentId=p,n&&(a||(a=this._map(r,!0)),n(a,this._map(i)));}r.parentId=p,o.push(V(e/h,s/h,p,h,a));}else if(o.push(r),h>1)for(const e of c){const i=l.points[e];i.zoom<=t||(i.zoom=t,o.push(i));}}return o}_getOriginId(e){return e-this.points.length>>5}_getOriginZoom(e){return (e-this.points.length)%32}_map(e,t){if(e.numPoints)return t?H({},e.properties):e.properties;const o=this.points[e.index].properties,i=this.options.map(o);return t&&i===o?H({},i):i}}function V(e,t,o,i,r){return {x:G(e),y:G(t),zoom:1/0,id:o,parentId:-1,numPoints:i,properties:r}}function X(e,t){const[o,i]=e.geometry.coordinates;return {x:G($(o)),y:G(q(i)),zoom:1/0,index:t,parentId:-1}}function R(e){return {type:\"Feature\",id:e.id,properties:W(e),geometry:{type:\"Point\",coordinates:[(t=e.x,360*(t-.5)),U(e.y)]}};var t;}function W(e){const t=e.numPoints,o=t>=1e4?`${Math.round(t/1e3)}k`:t>=1e3?Math.round(t/100)/10+\"k\":t;return H(H({},e.properties),{cluster:!0,cluster_id:e.id,point_count:t,point_count_abbreviated:o})}function $(e){return e/360+.5}function q(e){const t=Math.sin(e*Math.PI/180),o=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return o<0?0:o>1?1:o}function U(e){const t=(180-360*e)*Math.PI/180;return 360*Math.atan(Math.exp(t))/Math.PI-90}function H(e,t){for(const o in t)e[o]=t[o];return e}function K(e){return e.x}function Q(e){return e.y}function ee(e,t,o,i){for(var r,n=i,s=o-t>>1,a=o-t,l=e[t],c=e[t+1],u=e[o],h=e[o+1],p=t+3;pn)r=p,n=f;else if(f===n){var d=Math.abs(p-s);di&&(r-t>3&&ee(e,t,r,i),e[r+2]=n,o-r>3&&ee(e,r,o,i));}function te(e,t,o,i,r,n){var s=r-o,a=n-i;if(0!==s||0!==a){var l=((e-o)*s+(t-i)*a)/(s*s+a*a);l>1?(o=r,i=n):l>0&&(o+=s*l,i+=a*l);}return (s=e-o)*s+(a=t-i)*a}function oe(e,t,o,i){var r={id:void 0===e?null:e,type:t,geometry:o,tags:i,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(e){var t=e.geometry,o=e.type;if(\"Point\"===o||\"MultiPoint\"===o||\"LineString\"===o)ie(e,t);else if(\"Polygon\"===o||\"MultiLineString\"===o)for(var i=0;i0&&(s+=i?(r*c-l*n)/2:Math.sqrt(Math.pow(l-r,2)+Math.pow(c-n,2))),r=l,n=c;}var u=t.length-3;t[2]=1,ee(t,0,u,o),t[u+2]=1,t.size=Math.abs(s),t.start=0,t.end=t.size;}function ae(e,t,o,i){for(var r=0;r1?1:o}function ue(e,t,o,i,r,n,s,a){if(i/=t,n>=(o/=t)&&s=i)return null;for(var l=[],c=0;c=o&&d=i)){var g=[];if(\"Point\"===p||\"MultiPoint\"===p)he(h,g,o,i,r);else if(\"LineString\"===p)pe(h,g,o,i,r,!1,a.lineMetrics);else if(\"MultiLineString\"===p)de(h,g,o,i,r,!1);else if(\"Polygon\"===p)de(h,g,o,i,r,!0);else if(\"MultiPolygon\"===p)for(var m=0;m=o&&s<=i&&(t.push(e[n]),t.push(e[n+1]),t.push(e[n+2]));}}function pe(e,t,o,i,r,n,s){for(var a,l,c=fe(e),u=0===r?me:ye,h=e.start,p=0;po&&(l=u(c,f,d,m,y,o),s&&(c.start=h+a*l)):v>i?x=o&&(l=u(c,f,d,m,y,o),w=!0),x>i&&v<=i&&(l=u(c,f,d,m,y,i),w=!0),!n&&w&&(s&&(c.end=h+a*l),t.push(c),c=fe(e)),s&&(h+=a);}var S=e.length-3;f=e[S],d=e[S+1],g=e[S+2],(v=0===r?f:d)>=o&&v<=i&&ge(c,f,d,g),S=c.length-3,n&&S>=3&&(c[S]!==c[0]||c[S+1]!==c[1])&&ge(c,c[0],c[1],c[2]),c.length&&t.push(c);}function fe(e){var t=[];return t.size=e.size,t.start=e.start,t.end=e.end,t}function de(e,t,o,i,r,n){for(var s=0;ss.maxX&&(s.maxX=u),h>s.maxY&&(s.maxY=h);}return s}function Ie(e,t,o,i){var r=t.geometry,n=t.type,s=[];if(\"Point\"===n||\"MultiPoint\"===n)for(var a=0;a0&&t.size<(r?s:i))o.numPoints+=t.length/3;else {for(var a=[],l=0;ls)&&(o.numSimplified++,a.push(t[l]),a.push(t[l+1])),o.numPoints++;r&&function(e,t){for(var o=0,i=0,r=e.length,n=r-2;i0===t)for(i=0,r=e.length;i24)throw new Error(\"maxZoom should be in the 0-24 range\");if(t.promoteId&&t.generateId)throw new Error(\"promoteId and generateId cannot be used together.\");var i=function(e,t){var o=[];if(\"FeatureCollection\"===e.type)for(var i=0;i1&&console.time(\"creation\"),p=this.tiles[h]=Me(e,t,o,i,l),this.tileCoords.push({z:t,x:o,y:i}),c)){c>1&&(console.log(\"tile z%d-%d-%d (features: %d, points: %d, simplified: %d)\",t,o,i,p.numFeatures,p.numPoints,p.numSimplified),console.timeEnd(\"creation\"));var f=\"z\"+t;this.stats[f]=(this.stats[f]||0)+1,this.total++;}if(p.source=e,r){if(t===l.maxZoom||t===r)continue;var d=1<1&&console.time(\"clipping\");var g,m,y,v,x,w,S=.5*l.buffer/l.extent,M=.5-S,I=.5+S,b=1+S;g=m=y=v=null,x=ue(e,u,o-S,o+I,0,p.minX,p.maxX,l),w=ue(e,u,o+M,o+b,0,p.minX,p.maxX,l),e=null,x&&(g=ue(x,u,i-S,i+I,1,p.minY,p.maxY,l),m=ue(x,u,i+M,i+b,1,p.minY,p.maxY,l),x=null),w&&(y=ue(w,u,i-S,i+I,1,p.minY,p.maxY,l),v=ue(w,u,i+M,i+b,1,p.minY,p.maxY,l),w=null),c>1&&console.timeEnd(\"clipping\"),a.push(g||[],t+1,2*o,2*i),a.push(m||[],t+1,2*o,2*i+1),a.push(y||[],t+1,2*o+1,2*i),a.push(v||[],t+1,2*o+1,2*i+1);}}},ke.prototype.getTile=function(e,t,o){var i=this.options,r=i.extent,n=i.debug;if(e<0||e>24)return null;var s=1<1&&console.log(\"drilling down to z%d-%d-%d\",e,t,o);for(var l,c=e,u=t,h=o;!l&&c>0;)c--,u=Math.floor(u/2),h=Math.floor(h/2),l=this.tiles[Pe(c,u,h)];return l&&l.source?(n>1&&console.log(\"found parent tile z%d-%d-%d\",c,u,h),n>1&&console.time(\"drilling down\"),this.splitTile(l.source,c,u,h,e,t,o),n>1&&console.timeEnd(\"drilling down\"),this.tiles[a]?we(this.tiles[a],r):null):null};class Ce extends l{constructor(e,t,o,i){super(e,t,o,Te),i&&(this.loadGeoJSON=i);}loadData(t,o){var i;null===(i=this._pendingRequest)||void 0===i||i.cancel(),this._pendingCallback&&this._pendingCallback(null,{abandoned:!0});const r=!!(t&&t.request&&t.request.collectResourceTiming)&&new e.RequestPerformance(t.request);this._pendingCallback=o,this._pendingRequest=this.loadGeoJSON(t,((i,n)=>{if(delete this._pendingCallback,delete this._pendingRequest,i||!n)return o(i);if(\"object\"!=typeof n)return o(new Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`));{u(n,!0);try{if(t.filter){const o=e.createExpression(t.filter,{type:\"boolean\",\"property-type\":\"data-driven\",overridable:!1,transition:!1});if(\"error\"===o.result)throw new Error(o.value.map((e=>`${e.key}: ${e.message}`)).join(\", \"));const i=n.features.filter((e=>o.value.evaluate({zoom:0},e)));n={type:\"FeatureCollection\",features:i};}this._geoJSONIndex=t.cluster?new Y(function({superclusterOptions:t,clusterProperties:o}){if(!o||!t)return t;const i={},r={},n={accumulated:null,zoom:0},s={properties:null},a=Object.keys(o);for(const t of a){const[n,s]=o[t],a=e.createExpression(s),l=e.createExpression(\"string\"==typeof n?[n,[\"accumulated\"],[\"get\",t]]:n);i[t]=a.value,r[t]=l.value;}return t.map=e=>{s.properties=e;const t={};for(const e of a)t[e]=i[e].evaluate(n,s);return t},t.reduce=(e,t)=>{s.properties=t;for(const t of a)n.accumulated=e[t],e[t]=r[t].evaluate(n,s);},t}(t)).load(n.features):function(e,t){return new ke(e,t)}(n,t.geojsonVtOptions);}catch(i){return o(i)}this.loaded={};const s={};if(r){const e=r.finish();e&&(s.resourceTiming={},s.resourceTiming[t.source]=JSON.parse(JSON.stringify(e)));}o(null,s);}}));}reloadTile(e,t){const o=this.loaded;return o&&o[e.uid]?super.reloadTile(e,t):this.loadTile(e,t)}loadGeoJSON(t,o){if(t.request)return e.getJSON(t.request,o);if(\"string\"==typeof t.data)try{o(null,JSON.parse(t.data));}catch(e){o(new Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`));}else o(new Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`));return {cancel:()=>{}}}removeSource(e,t){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),t();}getClusterExpansionZoom(e,t){try{t(null,this._geoJSONIndex.getClusterExpansionZoom(e.clusterId));}catch(e){t(e);}}getClusterChildren(e,t){try{t(null,this._geoJSONIndex.getChildren(e.clusterId));}catch(e){t(e);}}getClusterLeaves(e,t){try{t(null,this._geoJSONIndex.getLeaves(e.clusterId,e.limit,e.offset));}catch(e){t(e);}}}class _e{constructor(t){this.self=t,this.actor=new e.Actor(t,this),this.layerIndexes={},this.availableImages={},this.workerSourceTypes={vector:l,geojson:Ce},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=(e,t)=>{if(this.workerSourceTypes[e])throw new Error(`Worker source with name \"${e}\" already registered.`);this.workerSourceTypes[e]=t;},this.self.registerRTLTextPlugin=t=>{if(e.plugin.isParsed())throw new Error(\"RTL text plugin already registered.\");e.plugin.applyArabicShaping=t.applyArabicShaping,e.plugin.processBidirectionalText=t.processBidirectionalText,e.plugin.processStyledBidirectionalText=t.processStyledBidirectionalText;};}setReferrer(e,t){this.referrer=t;}setImages(e,t,o){this.availableImages[e]=t;for(const o in this.workerSources[e]){const i=this.workerSources[e][o];for(const e in i)i[e].availableImages=t;}o();}setLayers(e,t,o){this.getLayerIndex(e).replace(t),o();}updateLayers(e,t,o){this.getLayerIndex(e).update(t.layers,t.removedIds),o();}loadTile(e,t,o){this.getWorkerSource(e,t.type,t.source).loadTile(t,o);}loadDEMTile(e,t,o){this.getDEMWorkerSource(e,t.source).loadTile(t,o);}reloadTile(e,t,o){this.getWorkerSource(e,t.type,t.source).reloadTile(t,o);}abortTile(e,t,o){this.getWorkerSource(e,t.type,t.source).abortTile(t,o);}removeTile(e,t,o){this.getWorkerSource(e,t.type,t.source).removeTile(t,o);}removeDEMTile(e,t){this.getDEMWorkerSource(e,t.source).removeTile(t);}removeSource(e,t,o){if(!this.workerSources[e]||!this.workerSources[e][t.type]||!this.workerSources[e][t.type][t.source])return;const i=this.workerSources[e][t.type][t.source];delete this.workerSources[e][t.type][t.source],void 0!==i.removeSource?i.removeSource(t,o):o();}loadWorkerSource(e,t,o){try{this.self.importScripts(t.url),o();}catch(e){o(e.toString());}}syncRTLPluginState(t,o,i){try{e.plugin.setState(o);const t=e.plugin.getPluginURL();if(e.plugin.isLoaded()&&!e.plugin.isParsed()&&null!=t){this.self.importScripts(t);const o=e.plugin.isParsed();i(o?void 0:new Error(`RTL Text Plugin failed to import scripts from ${t}`),o);}}catch(e){i(e.toString());}}getAvailableImages(e){let t=this.availableImages[e];return t||(t=[]),t}getLayerIndex(e){let t=this.layerIndexes[e];return t||(t=this.layerIndexes[e]=new i),t}getWorkerSource(e,t,o){if(this.workerSources[e]||(this.workerSources[e]={}),this.workerSources[e][t]||(this.workerSources[e][t]={}),!this.workerSources[e][t][o]){const i={send:(t,o,i)=>{this.actor.send(t,o,i,e);}};this.workerSources[e][t][o]=new this.workerSourceTypes[t](i,this.getLayerIndex(e),this.getAvailableImages(e));}return this.workerSources[e][t][o]}getDEMWorkerSource(e,t){return this.demWorkerSources[e]||(this.demWorkerSources[e]={}),this.demWorkerSources[e][t]||(this.demWorkerSources[e][t]=new c),this.demWorkerSources[e][t]}enforceCacheSizeLimit(t,o){e.enforceCacheSizeLimit(o);}}return e.isWorker()&&(self.worker=new _e(self)),_e}));\n\ndefine([\"./shared\"],(function(t){\"use strict\";var e=i;function i(t){return !function(t){return \"undefined\"==typeof window||\"undefined\"==typeof document?\"not a browser\":Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray?Function.prototype&&Function.prototype.bind?Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions?\"JSON\"in window&&\"parse\"in JSON&&\"stringify\"in JSON?function(){if(!(\"Worker\"in window&&\"Blob\"in window&&\"URL\"in window))return !1;var t,e,i=new Blob([\"\"],{type:\"text/javascript\"}),o=URL.createObjectURL(i);try{e=new Worker(o),t=!0;}catch(e){t=!1;}return e&&e.terminate(),URL.revokeObjectURL(o),t}()?\"Uint8ClampedArray\"in window?ArrayBuffer.isView?function(){var t=document.createElement(\"canvas\");t.width=t.height=1;var e=t.getContext(\"2d\");if(!e)return !1;var i=e.getImageData(0,0,1,1);return i&&i.width===t.width}()?(void 0===o[e=t&&t.failIfMajorPerformanceCaveat]&&(o[e]=function(t){var e,o=function(t){var e=document.createElement(\"canvas\"),o=Object.create(i.webGLContextAttributes);return o.failIfMajorPerformanceCaveat=t,e.getContext(\"webgl\",o)||e.getContext(\"experimental-webgl\",o)}(t);if(!o)return !1;try{e=o.createShader(o.VERTEX_SHADER);}catch(t){return !1}return !(!e||o.isContextLost())&&(o.shaderSource(e,\"void main() {}\"),o.compileShader(e),!0===o.getShaderParameter(e,o.COMPILE_STATUS))}(e)),o[e]?document.documentMode?\"insufficient ECMAScript 6 support\":void 0:\"insufficient WebGL support\"):\"insufficient Canvas/getImageData support\":\"insufficient ArrayBuffer support\":\"insufficient Uint8ClampedArray support\":\"insufficient worker support\":\"insufficient JSON support\":\"insufficient Object support\":\"insufficient Function support\":\"insufficent Array support\";var e;}(t)}var o={};function a(t,e){if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return !1;for(let i=0;i{window.removeEventListener(\"click\",r.suppressClickInternal,!0);}),0);}static mousePos(e,i){const o=e.getBoundingClientRect();return new t.pointGeometry(i.clientX-o.left-e.clientLeft,i.clientY-o.top-e.clientTop)}static touchPos(e,i){const o=e.getBoundingClientRect(),a=[];for(let r=0;r-1);l++,r[l]=n,s[l]=c,s[l+1]=u;}for(let n=0,l=0;n{let o=this.entries[t];o||(o=this.entries[t]={glyphs:{},requests:{},ranges:{}});let a=o.glyphs[e];if(void 0!==a)return void i(null,{stack:t,id:e,glyph:a});if(a=this._tinySDF(o,t,e),a)return o.glyphs[e]=a,void i(null,{stack:t,id:e,glyph:a});const r=Math.floor(e/256);if(256*r>65535)return void i(new Error(\"glyphs > 65535 not supported\"));if(o.ranges[r])return void i(null,{stack:t,id:e,glyph:a});let s=o.requests[r];s||(s=o.requests[r]=[],_.loadGlyphRange(t,r,this.url,this.requestManager,((t,e)=>{if(e){for(const t in e)this._doesCharSupportLocalGlyph(+t)||(o.glyphs[+t]=e[+t]);o.ranges[r]=!0;}for(const i of s)i(t,e);delete o.requests[r];}))),s.push(((o,a)=>{o?i(o):a&&i(null,{stack:t,id:e,glyph:a[e]||null});}));}),((t,e)=>{if(t)i(t);else if(e){const t={};for(const{stack:i,id:o,glyph:a}of e)(t[i]||(t[i]={}))[o]=a&&{id:a.id,bitmap:a.bitmap.clone(),metrics:a.metrics};i(null,t);}}));}_doesCharSupportLocalGlyph(e){return !!this.localIdeographFontFamily&&(t.unicodeBlockLookup[\"CJK Unified Ideographs\"](e)||t.unicodeBlockLookup[\"Hangul Syllables\"](e)||t.unicodeBlockLookup.Hiragana(e)||t.unicodeBlockLookup.Katakana(e))}_tinySDF(e,i,o){const a=this.localIdeographFontFamily;if(!a)return;if(!this._doesCharSupportLocalGlyph(o))return;let r=e.tinySDF;if(!r){let t=\"400\";/bold/i.test(i)?t=\"900\":/medium/i.test(i)?t=\"500\":/light/i.test(i)&&(t=\"200\"),r=e.tinySDF=new _.TinySDF({fontSize:24,buffer:3,radius:8,cutoff:.25,fontFamily:a,fontWeight:t});}const s=r.draw(String.fromCharCode(o));return {id:o,bitmap:new t.AlphaImage({width:s.width||30,height:s.height||30},s.data),metrics:{width:s.glyphWidth||24,height:s.glyphHeight||24,left:s.glyphLeft||0,top:s.glyphTop-27||-8,advance:s.glyphAdvance||24}}}}_.loadGlyphRange=function(e,i,o,a,r){const s=256*i,n=s+255,l=a.transformRequest(o.replace(\"{fontstack}\",e).replace(\"{range}\",`${s}-${n}`),t.ResourceType.Glyphs);t.getArrayBuffer(l,((e,i)=>{if(e)r(e);else if(i){const e={};for(const o of t.parseGlyphPbf(i))e[o.id]=o;r(null,e);}}));},_.TinySDF=class{constructor({fontSize:t=24,buffer:e=3,radius:i=8,cutoff:o=.25,fontFamily:a=\"sans-serif\",fontWeight:r=\"normal\",fontStyle:s=\"normal\"}={}){this.buffer=e,this.cutoff=o,this.radius=i;const n=this.size=t+4*e,l=this._createCanvas(n),c=this.ctx=l.getContext(\"2d\",{willReadFrequently:!0});c.font=`${s} ${r} ${t}px ${a}`,c.textBaseline=\"alphabetic\",c.textAlign=\"left\",c.fillStyle=\"black\",this.gridOuter=new Float64Array(n*n),this.gridInner=new Float64Array(n*n),this.f=new Float64Array(n),this.z=new Float64Array(n+1),this.v=new Uint16Array(n);}_createCanvas(t){const e=document.createElement(\"canvas\");return e.width=e.height=t,e}draw(t){const{width:e,actualBoundingBoxAscent:i,actualBoundingBoxDescent:o,actualBoundingBoxLeft:a,actualBoundingBoxRight:r}=this.ctx.measureText(t),s=Math.ceil(i),n=Math.min(this.size-this.buffer,Math.ceil(r-a)),l=Math.min(this.size-this.buffer,s+Math.ceil(o)),c=n+2*this.buffer,h=l+2*this.buffer,m=Math.max(c*h,0),_=new Uint8ClampedArray(m),p={data:_,width:c,height:h,glyphWidth:n,glyphHeight:l,glyphTop:s,glyphLeft:0,glyphAdvance:e};if(0===n||0===l)return p;const{ctx:f,buffer:g,gridInner:x,gridOuter:v}=this;f.clearRect(g,g,n,l),f.fillText(t,g,g+s);const y=f.getImageData(g,g,n,l);v.fill(u,0,m),x.fill(0,0,m);for(let t=0;t0?t*t:0,x[o]=t<0?t*t:0;}}d(v,0,0,c,h,c,this.f,this.v,this.z),d(x,g,g,n,l,c,this.f,this.v,this.z);for(let t=0;t1&&(s=t[++r]);const l=Math.abs(n-s.left),c=Math.abs(n-s.right),h=Math.min(l,c);let u;const d=e/i*(o+1);if(s.isDash){const t=o-Math.abs(d);u=Math.sqrt(h*h+t*t);}else u=o-Math.sqrt(h*h+d*d);this.data[a+n]=Math.max(0,Math.min(255,u+128));}}}addRegularDash(t){for(let e=t.length-1;e>=0;--e){const i=t[e],o=t[e+1];i.zeroLength?t.splice(e,1):o&&o.isDash===i.isDash&&(o.left=i.left,t.splice(e,1));}const e=t[0],i=t[t.length-1];e.isDash===i.isDash&&(e.left=i.left-this.width,i.right=e.right+this.width);const o=this.width*this.nextRow;let a=0,r=t[a];for(let e=0;e1&&(r=t[++a]);const i=Math.abs(e-r.left),s=Math.abs(e-r.right),n=Math.min(i,s);this.data[o+e]=Math.max(0,Math.min(255,(r.isDash?n:-n)+128));}}addDash(e,i){const o=i?7:0,a=2*o+1;if(this.nextRow+a>this.height)return t.warnOnce(\"LineAtlas out of space\"),null;let r=0;for(let t=0;t{t.send(e,i,o);}),o=o||function(){});}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(){this.actors.forEach((t=>{t.remove();})),this.actors=[],this.workerPool.release(this.id);}}function y(e,i,o){const a=function(i,a){if(i)return o(i);if(a){const i=t.pick(t.extend(a,e),[\"tiles\",\"minzoom\",\"maxzoom\",\"attribution\",\"bounds\",\"scheme\",\"tileSize\",\"encoding\"]);a.vector_layers&&(i.vectorLayers=a.vector_layers,i.vectorLayerIds=i.vectorLayers.map((t=>t.id))),o(null,i);}};return e.url?t.getJSON(i.transformRequest(e.url,t.ResourceType.Source),a):t.exported.frame((()=>a(null,e)))}v.Actor=t.Actor;class b{constructor(e,i,o){this.bounds=t.LngLatBounds.convert(this.validateBounds(e)),this.minzoom=i||0,this.maxzoom=o||24;}validateBounds(t){return Array.isArray(t)&&4===t.length?[Math.max(-180,t[0]),Math.max(-90,t[1]),Math.min(180,t[2]),Math.min(90,t[3])]:[-180,-90,180,90]}contains(e){const i=Math.pow(2,e.z),o=Math.floor(t.mercatorXfromLng(this.bounds.getWest())*i),a=Math.floor(t.mercatorYfromLat(this.bounds.getNorth())*i),r=Math.ceil(t.mercatorXfromLng(this.bounds.getEast())*i),s=Math.ceil(t.mercatorYfromLat(this.bounds.getSouth())*i);return e.x>=o&&e.x=a&&e.y{this._tileJSONRequest=null,this._loaded=!0,this.map.style.sourceCaches[this.id].clearTiles(),e?this.fire(new t.ErrorEvent(e)):i&&(t.extend(this,i),i.bounds&&(this.tileBounds=new b(i.bounds,this.minzoom,this.maxzoom)),this.fire(new t.Event(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})),this.fire(new t.Event(\"data\",{dataType:\"source\",sourceDataType:\"content\"})));}));}loaded(){return this._loaded}hasTile(t){return !this.tileBounds||this.tileBounds.contains(t.canonical)}onAdd(t){this.map=t,this.load();}setSourceProperty(t){this._tileJSONRequest&&this._tileJSONRequest.cancel(),t(),this.load();}setTiles(t){return this.setSourceProperty((()=>{this._options.tiles=t;})),this}setUrl(t){return this.setSourceProperty((()=>{this.url=t,this._options.url=t;})),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null);}serialize(){return t.extend({},this._options)}loadTile(e,i){const o=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),a={request:this.map._requestManager.transformRequest(o,t.ResourceType.Tile),uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,tileSize:this.tileSize*e.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};function r(o,a){return delete e.request,e.aborted?i(null):o&&404!==o.status?i(o):(a&&a.resourceTiming&&(e.resourceTiming=a.resourceTiming),this.map._refreshExpiredTiles&&a&&e.setExpiryData(a),e.loadVectorData(a,this.map.painter),t.cacheEntryPossiblyAdded(this.dispatcher),i(null),void(e.reloadCallback&&(this.loadTile(e,e.reloadCallback),e.reloadCallback=null)))}a.request.collectResourceTiming=this._collectResourceTiming,e.actor&&\"expired\"!==e.state?\"loading\"===e.state?e.reloadCallback=i:e.request=e.actor.send(\"reloadTile\",a,r.bind(this)):(e.actor=this.dispatcher.getActor(),e.request=e.actor.send(\"loadTile\",a,r.bind(this)));}abortTile(t){t.request&&(t.request.cancel(),delete t.request),t.actor&&t.actor.send(\"abortTile\",{uid:t.uid,type:this.type,source:this.id},void 0);}unloadTile(t){t.unloadVectorData(),t.actor&&t.actor.send(\"removeTile\",{uid:t.uid,type:this.type,source:this.id},void 0);}hasTransition(){return !1}}class T extends t.Evented{constructor(e,i,o,a){super(),this.id=e,this.dispatcher=o,this.setEventedParent(a),this.type=\"raster\",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme=\"xyz\",this.tileSize=512,this._loaded=!1,this._options=t.extend({type:\"raster\"},i),t.extend(this,t.pick(i,[\"url\",\"scheme\",\"tileSize\"]));}load(){this._loaded=!1,this.fire(new t.Event(\"dataloading\",{dataType:\"source\"})),this._tileJSONRequest=y(this._options,this.map._requestManager,((e,i)=>{this._tileJSONRequest=null,this._loaded=!0,e?this.fire(new t.ErrorEvent(e)):i&&(t.extend(this,i),i.bounds&&(this.tileBounds=new b(i.bounds,this.minzoom,this.maxzoom)),this.fire(new t.Event(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})),this.fire(new t.Event(\"data\",{dataType:\"source\",sourceDataType:\"content\"})));}));}loaded(){return this._loaded}onAdd(t){this.map=t,this.load();}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null);}serialize(){return t.extend({},this._options)}hasTile(t){return !this.tileBounds||this.tileBounds.contains(t.canonical)}loadTile(e,i){const o=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);e.request=t.getImage(this.map._requestManager.transformRequest(o,t.ResourceType.Tile),((o,a,r)=>{if(delete e.request,e.aborted)e.state=\"unloaded\",i(null);else if(o)e.state=\"errored\",i(o);else if(a){this.map._refreshExpiredTiles&&e.setExpiryData(r);const o=this.map.painter.context,s=o.gl;e.texture=this.map.painter.getTileTexture(a.width),e.texture?e.texture.update(a,{useMipmap:!0}):(e.texture=new l(o,a,s.RGBA,{useMipmap:!0}),e.texture.bind(s.LINEAR,s.CLAMP_TO_EDGE,s.LINEAR_MIPMAP_NEAREST),o.extTextureFilterAnisotropic&&s.texParameterf(s.TEXTURE_2D,o.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,o.extTextureFilterAnisotropicMax)),e.state=\"loaded\",t.cacheEntryPossiblyAdded(this.dispatcher),i(null);}}));}abortTile(t,e){t.request&&(t.request.cancel(),delete t.request),e();}unloadTile(t,e){t.texture&&this.map.painter.saveTileTexture(t.texture),e();}hasTransition(){return !1}}let E;class I extends T{constructor(e,i,o,a){super(e,i,o,a),this.type=\"raster-dem\",this.maxzoom=22,this._options=t.extend({type:\"raster-dem\"},i),this.encoding=i.encoding||\"mapbox\";}serialize(){return {type:\"raster-dem\",url:this.url,tileSize:this.tileSize,tiles:this.tiles,bounds:this.bounds,encoding:this.encoding}}loadTile(e,i){const o=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);function a(t,o){t&&(e.state=\"errored\",i(t)),o&&(e.dem=o,e.needsHillshadePrepare=!0,e.needsTerrainPrepare=!0,e.state=\"loaded\",i(null));}e.request=t.getImage(this.map._requestManager.transformRequest(o,t.ResourceType.Tile),function(o,r){if(delete e.request,e.aborted)e.state=\"unloaded\",i(null);else if(o)e.state=\"errored\",i(o);else if(r){this.map._refreshExpiredTiles&&e.setExpiryData(r),delete r.cacheControl,delete r.expires;const i=t.isImageBitmap(r)&&(null==E&&(E=\"undefined\"!=typeof OffscreenCanvas&&new OffscreenCanvas(1,1).getContext(\"2d\")&&\"function\"==typeof createImageBitmap),E)?r:t.exported.getImageData(r,1),o={uid:e.uid,coord:e.tileID,source:this.id,rawImageData:i,encoding:this.encoding};e.actor&&\"expired\"!==e.state||(e.actor=this.dispatcher.getActor(),e.actor.send(\"loadDEMTile\",o,a.bind(this)));}}.bind(this)),e.neighboringTiles=this._getNeighboringTiles(e.tileID);}_getNeighboringTiles(e){const i=e.canonical,o=Math.pow(2,i.z),a=(i.x-1+o)%o,r=0===i.x?e.wrap-1:e.wrap,s=(i.x+1+o)%o,n=i.x+1===o?e.wrap+1:e.wrap,l={};return l[new t.OverscaledTileID(e.overscaledZ,r,i.z,a,i.y).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,n,i.z,s,i.y).key]={backfilled:!1},i.y>0&&(l[new t.OverscaledTileID(e.overscaledZ,r,i.z,a,i.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,e.wrap,i.z,i.x,i.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,n,i.z,s,i.y-1).key]={backfilled:!1}),i.y+1{if(this._pendingLoads--,this._removed||o&&o.abandoned)return void this.fire(new t.Event(\"dataabort\",{dataType:\"source\",sourceDataType:e}));let a=null;if(o&&o.resourceTiming&&o.resourceTiming[this.id]&&(a=o.resourceTiming[this.id].slice(0)),i)return void this.fire(new t.ErrorEvent(i));const r={dataType:\"source\",sourceDataType:e};this._collectResourceTiming&&a&&a.length>0&&t.extend(r,{resourceTiming:a}),this.fire(new t.Event(\"data\",r));}));}loaded(){return 0===this._pendingLoads}loadTile(t,e){const i=t.actor?\"reloadTile\":\"loadTile\";t.actor=this.actor;const o={type:this.type,uid:t.uid,tileID:t.tileID,zoom:t.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};t.request=this.actor.send(i,o,((o,a)=>(delete t.request,t.unloadVectorData(),t.aborted?e(null):o?e(o):(t.loadVectorData(a,this.map.painter,\"reloadTile\"===i),e(null)))));}abortTile(t){t.request&&(t.request.cancel(),delete t.request),t.aborted=!0;}unloadTile(t){t.unloadVectorData(),this.actor.send(\"removeTile\",{uid:t.uid,type:this.type,source:this.id});}onRemove(){this._removed=!0,this.actor.send(\"removeSource\",{type:this.type,source:this.id});}serialize(){return t.extend({},this._options,{type:this.type,data:this._data})}hasTransition(){return !1}}var S=t.createLayout([{name:\"a_pos\",type:\"Int16\",components:2},{name:\"a_texture_pos\",type:\"Int16\",components:2}]);class D extends t.Evented{constructor(t,e,i,o){super(),this.id=t,this.dispatcher=i,this.coordinates=e.coordinates,this.type=\"image\",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(o),this.options=e;}load(e,i){this._loaded=!1,this.fire(new t.Event(\"dataloading\",{dataType:\"source\"})),this.url=this.options.url,t.getImage(this.map._requestManager.transformRequest(this.url,t.ResourceType.Image),((o,a)=>{this._loaded=!0,o?this.fire(new t.ErrorEvent(o)):a&&(this.image=a,e&&(this.coordinates=e),i&&i(),this._finishLoading());}));}loaded(){return this._loaded}updateImage(t){return this.image&&t.url?(this.options.url=t.url,this.load(t.coordinates,(()=>{this.texture=null;})),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new t.Event(\"data\",{dataType:\"source\",sourceDataType:\"metadata\"})));}onAdd(t){this.map=t,this.load();}setCoordinates(e){this.coordinates=e;const i=e.map(t.MercatorCoordinate.fromLngLat);this.tileID=function(e){let i=1/0,o=1/0,a=-1/0,r=-1/0;for(const t of e)i=Math.min(i,t.x),o=Math.min(o,t.y),a=Math.max(a,t.x),r=Math.max(r,t.y);const s=Math.max(a-i,r-o),n=Math.max(0,Math.floor(-Math.log(s)/Math.LN2)),l=Math.pow(2,n);return new t.CanonicalTileID(n,Math.floor((i+a)/2*l),Math.floor((o+r)/2*l))}(i),this.minzoom=this.maxzoom=this.tileID.z;const o=i.map((t=>this.tileID.getTilePoint(t)._round()));return this._boundsArray=new t.RasterBoundsArray,this._boundsArray.emplaceBack(o[0].x,o[0].y,0,0),this._boundsArray.emplaceBack(o[1].x,o[1].y,t.EXTENT,0),this._boundsArray.emplaceBack(o[3].x,o[3].y,0,t.EXTENT),this._boundsArray.emplaceBack(o[2].x,o[2].y,t.EXTENT,t.EXTENT),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new t.Event(\"data\",{dataType:\"source\",sourceDataType:\"content\"})),this}prepare(){if(0===Object.keys(this.tiles).length||!this.image)return;const e=this.map.painter.context,i=e.gl;this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,S.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture||(this.texture=new l(e,this.image,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE));for(const t in this.tiles){const e=this.tiles[t];\"loaded\"!==e.state&&(e.state=\"loaded\",e.texture=this.texture);}}loadTile(t,e){this.tileID&&this.tileID.equals(t.tileID.canonical)?(this.tiles[String(t.tileID.wrap)]=t,t.buckets={},e(null)):(t.state=\"errored\",e(null));}serialize(){return {type:\"image\",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return !1}}class z extends D{constructor(t,e,i,o){super(t,e,i,o),this.roundZoom=!0,this.type=\"video\",this.options=e;}load(){this._loaded=!1;const e=this.options;this.urls=[];for(const i of e.urls)this.urls.push(this.map._requestManager.transformRequest(i,t.ResourceType.Source).url);t.getVideo(this.urls,((e,i)=>{this._loaded=!0,e?this.fire(new t.ErrorEvent(e)):i&&(this.video=i,this.video.loop=!0,this.video.addEventListener(\"playing\",(()=>{this.map.triggerRepaint();})),this.map&&this.video.play(),this._finishLoading());}));}pause(){this.video&&this.video.pause();}play(){this.video&&this.video.play();}seek(e){if(this.video){const i=this.video.seekable;ei.end(0)?this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${this.id}`,null,`Playback for this video can be set only between the ${i.start(0)} and ${i.end(0)}-second mark.`))):this.video.currentTime=e;}}getVideo(){return this.video}onAdd(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)));}prepare(){if(0===Object.keys(this.tiles).length||this.video.readyState<2)return;const e=this.map.painter.context,i=e.gl;this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,S.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE),i.texSubImage2D(i.TEXTURE_2D,0,0,0,i.RGBA,i.UNSIGNED_BYTE,this.video)):(this.texture=new l(e,this.video,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE));for(const t in this.tiles){const e=this.tiles[t];\"loaded\"!==e.state&&(e.state=\"loaded\",e.texture=this.texture);}}serialize(){return {type:\"video\",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}}class P extends D{constructor(e,i,o,a){super(e,i,o,a),i.coordinates?Array.isArray(i.coordinates)&&4===i.coordinates.length&&!i.coordinates.some((t=>!Array.isArray(t)||2!==t.length||t.some((t=>\"number\"!=typeof t))))||this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${e}`,null,'\"coordinates\" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${e}`,null,'missing required property \"coordinates\"'))),i.animate&&\"boolean\"!=typeof i.animate&&this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${e}`,null,'optional \"animate\" property must be a boolean value'))),i.canvas?\"string\"==typeof i.canvas||i.canvas instanceof HTMLCanvasElement||this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${e}`,null,'\"canvas\" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new t.ErrorEvent(new t.ValidationError(`sources.${e}`,null,'missing required property \"canvas\"'))),this.options=i,this.animate=void 0===i.animate||i.animate;}load(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof HTMLCanvasElement?this.options.canvas:document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new t.ErrorEvent(new Error(\"Canvas dimensions cannot be less than or equal to zero.\"))):(this.play=function(){this._playing=!0,this.map.triggerRepaint();},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1);},this._finishLoading());}getCanvas(){return this.canvas}onAdd(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play();}onRemove(){this.pause();}prepare(){let e=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,e=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,e=!0),this._hasInvalidDimensions())return;if(0===Object.keys(this.tiles).length)return;const i=this.map.painter.context,o=i.gl;this.boundsBuffer||(this.boundsBuffer=i.createVertexBuffer(this._boundsArray,S.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(e||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new l(i,this.canvas,o.RGBA,{premultiply:!0});for(const t in this.tiles){const e=this.tiles[t];\"loaded\"!==e.state&&(e.state=\"loaded\",e.texture=this.texture);}}serialize(){return {type:\"canvas\",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const t of [this.canvas.width,this.canvas.height])if(isNaN(t)||t<=0)return !0;return !1}}const M={vector:w,raster:T,\"raster-dem\":I,geojson:C,video:z,image:D,canvas:P};function A(e,i){const o=t.create();return t.translate(o,o,[1,1,0]),t.scale(o,o,[.5*e.width,.5*e.height,1]),t.multiply(o,o,e.calculatePosMatrix(i.toUnwrapped()))}function L(t,e,i,o,a,r){const s=function(t,e,i){if(t)for(const o of t){const t=e[o];if(t&&t.source===i&&\"fill-extrusion\"===t.type)return !0}else for(const t in e){const o=e[t];if(o.source===i&&\"fill-extrusion\"===o.type)return !0}return !1}(a&&a.layers,e,t.id),n=r.maxPitchScaleFactor(),l=t.tilesIn(o,n,s);l.sort(R);const c=[];for(const o of l)c.push({wrappedTileID:o.tileID.wrapped().key,queryResults:o.tile.queryRenderedFeatures(e,i,t._state,o.queryGeometry,o.cameraQueryGeometry,o.scale,a,r,n,A(t.transform,o.tileID))});const h=function(t){const e={},i={};for(const o of t){const t=o.queryResults,a=o.wrappedTileID,r=i[a]=i[a]||{};for(const i in t){const o=t[i],a=r[i]=r[i]||{},s=e[i]=e[i]||[];for(const t of o)a[t.featureIndex]||(a[t.featureIndex]=!0,s.push(t));}}return e}(c);for(const e in h)h[e].forEach((e=>{const i=e.feature,o=t.getFeatureState(i.layer[\"source-layer\"],i.id);i.source=i.layer.source,i.layer[\"source-layer\"]&&(i.sourceLayer=i.layer[\"source-layer\"]),i.state=o;}));return h}function R(t,e){const i=t.tileID,o=e.tileID;return i.overscaledZ-o.overscaledZ||i.canonical.y-o.canonical.y||i.wrap-o.wrap||i.canonical.x-o.canonical.x}class k{constructor(e,i){this.tileID=e,this.uid=t.uniqueId(),this.uses=0,this.tileSize=i,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.textures=[],this.textureCoords={},this.expiredRequestCount=0,this.state=\"loading\";}registerFadeDuration(e){const i=e+this.timeAdded;it.saveTileTexture(e))),this.demTexture=null,this.textures=[],this.textureCoords={};}loadVectorData(e,i,o){if(this.hasData()&&this.unloadVectorData(),this.state=\"loaded\",e){e.featureIndex&&(this.latestFeatureIndex=e.featureIndex,e.rawTileData?(this.latestRawTileData=e.rawTileData,this.latestFeatureIndex.rawTileData=e.rawTileData):this.latestRawTileData&&(this.latestFeatureIndex.rawTileData=this.latestRawTileData)),this.collisionBoxArray=e.collisionBoxArray,this.buckets=function(t,e){const i={};if(!e)return i;for(const o of t){const t=o.layerIds.map((t=>e.getLayer(t))).filter(Boolean);if(0!==t.length){o.layers=t,o.stateDependentLayerIds&&(o.stateDependentLayers=o.stateDependentLayerIds.map((e=>t.filter((t=>t.id===e))[0])));for(const e of t)i[e.id]=o;}}return i}(e.buckets,i.style),this.hasSymbolBuckets=!1;for(const e in this.buckets){const i=this.buckets[e];if(i instanceof t.SymbolBucket){if(this.hasSymbolBuckets=!0,!o)break;i.justReloaded=!0;}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const e in this.buckets){const i=this.buckets[e];if(i instanceof t.SymbolBucket&&i.hasRTLText){this.hasRTLText=!0,t.lazyLoadRTLTextPlugin();break}}this.queryPadding=0;for(const t in this.buckets){const e=this.buckets[t];this.queryPadding=Math.max(this.queryPadding,i.style.getLayer(t).queryRadius(e));}e.imageAtlas&&(this.imageAtlas=e.imageAtlas),e.glyphAtlasImage&&(this.glyphAtlasImage=e.glyphAtlasImage);}else this.collisionBoxArray=new t.CollisionBoxArray;}unloadVectorData(){for(const t in this.buckets)this.buckets[t].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state=\"unloaded\";}getBucket(t){return this.buckets[t.id]}upload(t){for(const e in this.buckets){const i=this.buckets[e];i.uploadPending()&&i.upload(t);}const e=t.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new l(t,this.imageAtlas.image,e.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new l(t,this.glyphAtlasImage,e.ALPHA),this.glyphAtlasImage=null);}prepare(t){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(t,this.imageAtlasTexture);}queryRenderedFeatures(t,e,i,o,a,r,s,n,l,c){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:o,cameraQueryGeometry:a,scale:r,tileSize:this.tileSize,pixelPosMatrix:c,transform:n,params:s,queryPadding:this.queryPadding*l},t,e,i):{}}querySourceFeatures(e,i){const o=this.latestFeatureIndex;if(!o||!o.rawTileData)return;const a=o.loadVTLayers(),r=i?i.sourceLayer:\"\",s=a._geojsonTileLayer||a[r];if(!s)return;const n=t.createFilter(i&&i.filter),{z:l,x:c,y:h}=this.tileID.canonical,u={z:l,x:c,y:h};for(let i=0;it)e=!1;else if(i)if(this.expirationTime{this.remove(t,a);}),i)),this.data[o].push(a),this.order.push(o),this.order.length>this.max){const t=this._getAndRemoveByKey(this.order[0]);t&&this.onRemove(t);}return this}has(t){return t.wrapped().key in this.data}getAndRemove(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null}_getAndRemoveByKey(t){const e=this.data[t].shift();return e.timeout&&clearTimeout(e.timeout),0===this.data[t].length&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),e.value}getByKey(t){const e=this.data[t];return e?e[0].value:null}get(t){return this.has(t)?this.data[t.wrapped().key][0].value:null}remove(t,e){if(!this.has(t))return this;const i=t.wrapped().key,o=void 0===e?0:this.data[i].indexOf(e),a=this.data[i][o];return this.data[i].splice(o,1),a.timeout&&clearTimeout(a.timeout),0===this.data[i].length&&delete this.data[i],this.onRemove(a.value),this.order.splice(this.order.indexOf(i),1),this}setMaxSize(t){for(this.max=t;this.order.length>this.max;){const t=this._getAndRemoveByKey(this.order[0]);t&&this.onRemove(t);}return this}filter(t){const e=[];for(const i in this.data)for(const o of this.data[i])t(o.value)||e.push(o);for(const t of e)this.remove(t.value.tileID,t);}}class F{constructor(){this.state={},this.stateChanges={},this.deletedStates={};}updateState(e,i,o){const a=String(i);if(this.stateChanges[e]=this.stateChanges[e]||{},this.stateChanges[e][a]=this.stateChanges[e][a]||{},t.extend(this.stateChanges[e][a],o),null===this.deletedStates[e]){this.deletedStates[e]={};for(const t in this.state[e])t!==a&&(this.deletedStates[e][t]=null);}else if(this.deletedStates[e]&&null===this.deletedStates[e][a]){this.deletedStates[e][a]={};for(const t in this.state[e][a])o[t]||(this.deletedStates[e][a][t]=null);}else for(const t in o)this.deletedStates[e]&&this.deletedStates[e][a]&&null===this.deletedStates[e][a][t]&&delete this.deletedStates[e][a][t];}removeFeatureState(t,e,i){if(null===this.deletedStates[t])return;const o=String(e);if(this.deletedStates[t]=this.deletedStates[t]||{},i&&void 0!==e)null!==this.deletedStates[t][o]&&(this.deletedStates[t][o]=this.deletedStates[t][o]||{},this.deletedStates[t][o][i]=null);else if(void 0!==e)if(this.stateChanges[t]&&this.stateChanges[t][o])for(i in this.deletedStates[t][o]={},this.stateChanges[t][o])this.deletedStates[t][o][i]=null;else this.deletedStates[t][o]=null;else this.deletedStates[t]=null;}getState(e,i){const o=String(i),a=t.extend({},(this.state[e]||{})[o],(this.stateChanges[e]||{})[o]);if(null===this.deletedStates[e])return {};if(this.deletedStates[e]){const t=this.deletedStates[e][i];if(null===t)return {};for(const e in t)delete a[e];}return a}initializeTileState(t,e){t.setFeatureState(this.state,e);}coalesceChanges(e,i){const o={};for(const e in this.stateChanges){this.state[e]=this.state[e]||{};const i={};for(const o in this.stateChanges[e])this.state[e][o]||(this.state[e][o]={}),t.extend(this.state[e][o],this.stateChanges[e][o]),i[o]=this.state[e][o];o[e]=i;}for(const e in this.deletedStates){this.state[e]=this.state[e]||{};const i={};if(null===this.deletedStates[e])for(const t in this.state[e])i[t]={},this.state[e][t]={};else for(const t in this.deletedStates[e]){if(null===this.deletedStates[e][t])this.state[e][t]={};else for(const i of Object.keys(this.deletedStates[e][t]))delete this.state[e][t][i];i[t]=this.state[e][t];}o[e]=o[e]||{},t.extend(o[e],i);}if(this.stateChanges={},this.deletedStates={},0!==Object.keys(o).length)for(const t in e)e[t].setFeatureState(o,i);}}class O extends t.Evented{constructor(e,i,o){super(),this.id=e,this.dispatcher=o,this.on(\"data\",(t=>{\"source\"===t.dataType&&\"metadata\"===t.sourceDataType&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&\"source\"===t.dataType&&\"content\"===t.sourceDataType&&(this.reload(),this.transform&&this.update(this.transform,this.terrain));})),this.on(\"dataloading\",(()=>{this._sourceErrored=!1;})),this.on(\"error\",(()=>{this._sourceErrored=this._source.loaded();})),this._source=function(e,i,o,a){const r=new M[i.type](e,i,o,a);if(r.id!==e)throw new Error(`Expected Source id to be ${e} instead of ${r.id}`);return t.bindAll([\"load\",\"abort\",\"unload\",\"serialize\",\"prepare\"],r),r}(e,i,o,this),this._tiles={},this._cache=new B(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new F;}onAdd(t){this.map=t,this._maxTileCacheSize=t?t._maxTileCacheSize:null,this._source&&this._source.onAdd&&this._source.onAdd(t);}onRemove(t){this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(t);}loaded(){if(this._sourceErrored)return !0;if(!this._sourceLoaded)return !1;if(!this._source.loaded())return !1;for(const t in this._tiles){const e=this._tiles[t];if(\"loaded\"!==e.state&&\"errored\"!==e.state)return !1}return !0}getSource(){return this._source}pause(){this._paused=!0;}resume(){if(!this._paused)return;const t=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,t&&this.reload(),this.transform&&this.update(this.transform,this.terrain);}_loadTile(t,e){return this._source.loadTile(t,e)}_unloadTile(t){if(this._source.unloadTile)return this._source.unloadTile(t,(()=>{}))}_abortTile(e){this._source.abortTile&&this._source.abortTile(e,(()=>{})),this._source.fire(new t.Event(\"dataabort\",{tile:e,coord:e.tileID,dataType:\"source\"}));}serialize(){return this._source.serialize()}prepare(t){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const e in this._tiles){const i=this._tiles[e];i.upload(t),i.prepare(this.map.style.imageManager);}}getIds(){return Object.values(this._tiles).map((t=>t.tileID)).sort(U).map((t=>t.key))}getRenderableIds(e){const i=[];for(const t in this._tiles)this._isIdRenderable(t,e)&&i.push(this._tiles[t]);return e?i.sort(((e,i)=>{const o=e.tileID,a=i.tileID,r=new t.pointGeometry(o.canonical.x,o.canonical.y)._rotate(this.transform.angle),s=new t.pointGeometry(a.canonical.x,a.canonical.y)._rotate(this.transform.angle);return o.overscaledZ-a.overscaledZ||s.y-r.y||s.x-r.x})).map((t=>t.tileID.key)):i.map((t=>t.tileID)).sort(U).map((t=>t.key))}hasRenderableParent(t){const e=this.findLoadedParent(t,0);return !!e&&this._isIdRenderable(e.tileID.key)}_isIdRenderable(t,e){return this._tiles[t]&&this._tiles[t].hasData()&&!this._coveredTiles[t]&&(e||!this._tiles[t].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else {this._cache.reset();for(const t in this._tiles)\"errored\"!==this._tiles[t].state&&this._reloadTile(t,\"reloading\");}}_reloadTile(t,e){const i=this._tiles[t];i&&(\"loading\"!==i.state&&(i.state=e),this._loadTile(i,this._tileLoaded.bind(this,i,t,e)));}_tileLoaded(e,i,o,a){if(a)return e.state=\"errored\",void(404!==a.status?this._source.fire(new t.ErrorEvent(a,{tile:e})):this.update(this.transform,this.terrain));e.timeAdded=t.exported.now(),\"expired\"===o&&(e.refreshedUponExpiration=!0),this._setTileReloadTimer(i,e),\"raster-dem\"===this.getSource().type&&e.dem&&this._backfillDEM(e),this._state.initializeTileState(e,this.map?this.map.painter:null),e.aborted||this._source.fire(new t.Event(\"data\",{dataType:\"source\",tile:e,coord:e.tileID}));}_backfillDEM(t){const e=this.getRenderableIds();for(let o=0;o1||(Math.abs(i)>1&&(1===Math.abs(i+a)?i+=a:1===Math.abs(i-a)&&(i-=a)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,i,o),t.neighboringTiles&&t.neighboringTiles[r]&&(t.neighboringTiles[r].backfilled=!0)));}}getTile(t){return this.getTileByID(t.key)}getTileByID(t){return this._tiles[t]}_retainLoadedChildren(t,e,i,o){for(const a in this._tiles){let r=this._tiles[a];if(o[a]||!r.hasData()||r.tileID.overscaledZ<=e||r.tileID.overscaledZ>i)continue;let s=r.tileID;for(;r&&r.tileID.overscaledZ>e+1;){const t=r.tileID.scaledTo(r.tileID.overscaledZ-1);r=this._tiles[t.key],r&&r.hasData()&&(s=t);}let n=s;for(;n.overscaledZ>e;)if(n=n.scaledTo(n.overscaledZ-1),t[n.key]){o[s.key]=s;break}}}findLoadedParent(t,e){if(t.key in this._loadedParentTiles){const i=this._loadedParentTiles[t.key];return i&&i.tileID.overscaledZ>=e?i:null}for(let i=t.overscaledZ-1;i>=e;i--){const e=t.scaledTo(i),o=this._getLoadedTile(e);if(o)return o}}_getLoadedTile(t){const e=this._tiles[t.key];return e&&e.hasData()?e:this._cache.getByKey(t.wrapped().key)}updateCacheSize(t){const e=Math.ceil(t.width/this._source.tileSize)+1,i=Math.ceil(t.height/this._source.tileSize)+1,o=Math.floor(e*i*5),a=\"number\"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,o):o;this._cache.setMaxSize(a);}handleWrapJump(t){const e=Math.round((t-(void 0===this._prevLng?t:this._prevLng))/360);if(this._prevLng=t,e){const t={};for(const i in this._tiles){const o=this._tiles[i];o.tileID=o.tileID.unwrapTo(o.tileID.wrap+e),t[o.tileID.key]=o;}this._tiles=t;for(const t in this._timers)clearTimeout(this._timers[t]),delete this._timers[t];for(const t in this._tiles)this._setTileReloadTimer(t,this._tiles[t]);}}update(e,i){if(this.transform=e,this.terrain=i,!this._sourceLoaded||this._paused)return;let o;this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?o=e.getVisibleUnwrappedCoordinates(this._source.tileID).map((e=>new t.OverscaledTileID(e.canonical.z,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y))):(o=e.coveringTiles({tileSize:this.usedForTerrain?this.tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:!this.usedForTerrain&&this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled,terrain:i}),this._source.hasTile&&(o=o.filter((t=>this._source.hasTile(t))))):o=[];const a=e.coveringZoomLevel(this._source),r=Math.max(a-O.maxOverzooming,this._source.minzoom),s=Math.max(a+O.maxUnderzooming,this._source.minzoom);if(this.usedForTerrain){const t={};for(const e of o)if(e.canonical.z>this._source.minzoom){const i=e.scaledTo(e.canonical.z-1);t[i.key]=i;const o=e.scaledTo(Math.max(this._source.minzoom,Math.min(e.canonical.z,5)));t[o.key]=o;}o=o.concat(Object.values(t));}const n=this._updateRetainedTiles(o,a);if(N(this._source.type)){const e={},l={},c=Object.keys(n);for(const i of c){const o=n[i],a=this._tiles[i];if(!a||a.fadeEndTime&&a.fadeEndTime<=t.exported.now())continue;const s=this.findLoadedParent(o,r);s&&(this._addTile(s.tileID),e[s.tileID.key]=s.tileID),l[i]=o;}this._retainLoadedChildren(l,a,s,n);for(const t in e)n[t]||(this._coveredTiles[t]=!0,n[t]=e[t]);if(i){const t={},e={};for(const i of o)this._tiles[i.key].hasData()?t[i.key]=i:e[i.key]=i;for(const i in e){const o=e[i].children(this._source.maxzoom);this._tiles[o[0].key]&&this._tiles[o[1].key]&&this._tiles[o[2].key]&&this._tiles[o[3].key]&&(t[o[0].key]=n[o[0].key]=o[0],t[o[1].key]=n[o[1].key]=o[1],t[o[2].key]=n[o[2].key]=o[2],t[o[3].key]=n[o[3].key]=o[3],delete e[i]);}for(const i in e){const o=this.findLoadedParent(e[i],this._source.minzoom);if(o){t[o.tileID.key]=n[o.tileID.key]=o.tileID;for(const e in t)t[e].isChildOf(o.tileID)&&delete t[e];}}for(const e in this._tiles)t[e]||(this._coveredTiles[e]=!0);}}for(const t in n)this._tiles[t].clearFadeHold();const l=t.keysDifference(this._tiles,n);for(const t of l){const e=this._tiles[t];e.hasSymbolBuckets&&!e.holdingForFade()?e.setHoldDuration(this.map._fadeDuration):e.hasSymbolBuckets&&!e.symbolFadeFinished()||this._removeTile(t);}this._updateLoadedParentTileCache();}releaseSymbolFadeTiles(){for(const t in this._tiles)this._tiles[t].holdingForFade()&&this._removeTile(t);}_updateRetainedTiles(t,e){const i={},o={},a=Math.max(e-O.maxOverzooming,this._source.minzoom),r=Math.max(e+O.maxUnderzooming,this._source.minzoom),s={};for(const o of t){const t=this._addTile(o);i[o.key]=o,t.hasData()||ethis._source.maxzoom){const t=r.children(this._source.maxzoom)[0],e=this.getTile(t);if(e&&e.hasData()){i[t.key]=t;continue}}else {const t=r.children(this._source.maxzoom);if(i[t[0].key]&&i[t[1].key]&&i[t[2].key]&&i[t[3].key])continue}let s=t.wasRequested();for(let e=r.overscaledZ-1;e>=a;--e){const a=r.scaledTo(e);if(o[a.key])break;if(o[a.key]=!0,t=this.getTile(a),!t&&s&&(t=this._addTile(a)),t&&(i[a.key]=a,s=t.wasRequested(),t.hasData()))break}}return i}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const t in this._tiles){const e=[];let i,o=this._tiles[t].tileID;for(;o.overscaledZ>0;){if(o.key in this._loadedParentTiles){i=this._loadedParentTiles[o.key];break}e.push(o.key);const t=o.scaledTo(o.overscaledZ-1);if(i=this._getLoadedTile(t),i)break;o=t;}for(const t of e)this._loadedParentTiles[t]=i;}}_addTile(e){let i=this._tiles[e.key];if(i)return i;i=this._cache.getAndRemove(e),i&&(this._setTileReloadTimer(e.key,i),i.tileID=e,this._state.initializeTileState(i,this.map?this.map.painter:null),this._cacheTimers[e.key]&&(clearTimeout(this._cacheTimers[e.key]),delete this._cacheTimers[e.key],this._setTileReloadTimer(e.key,i)));const o=i;return i||(i=new k(e,this._source.tileSize*e.overscaleFactor()),this._loadTile(i,this._tileLoaded.bind(this,i,e.key,i.state))),i.uses++,this._tiles[e.key]=i,o||this._source.fire(new t.Event(\"dataloading\",{tile:i,coord:i.tileID,dataType:\"source\"})),i}_setTileReloadTimer(t,e){t in this._timers&&(clearTimeout(this._timers[t]),delete this._timers[t]);const i=e.getExpiryTimeout();i&&(this._timers[t]=setTimeout((()=>{this._reloadTile(t,\"expired\"),delete this._timers[t];}),i));}_removeTile(t){const e=this._tiles[t];e&&(e.uses--,delete this._tiles[t],this._timers[t]&&(clearTimeout(this._timers[t]),delete this._timers[t]),e.uses>0||(e.hasData()&&\"reloading\"!==e.state?this._cache.add(e.tileID,e,e.getExpiryTimeout()):(e.aborted=!0,this._abortTile(e),this._unloadTile(e))));}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const t in this._tiles)this._removeTile(t);this._cache.reset();}tilesIn(e,i,o){const a=[],r=this.transform;if(!r)return a;const s=o?r.getCameraQueryGeometry(e):e,n=e.map((t=>r.pointCoordinate(t,this.terrain))),l=s.map((t=>r.pointCoordinate(t,this.terrain))),c=this.getIds();let h=1/0,u=1/0,d=-1/0,m=-1/0;for(const t of l)h=Math.min(h,t.x),u=Math.min(u,t.y),d=Math.max(d,t.x),m=Math.max(m,t.y);for(let e=0;e=0&&f[1].y+p>=0){const t=n.map((t=>s.getTilePoint(t))),e=l.map((t=>s.getTilePoint(t)));a.push({tile:o,tileID:s,queryGeometry:t,cameraQueryGeometry:e,scale:_});}}return a}getVisibleCoordinates(t){const e=this.getRenderableIds(t).map((t=>this._tiles[t].tileID));for(const t of e)t.posMatrix=this.transform.calculatePosMatrix(t.toUnwrapped());return e}hasTransition(){if(this._source.hasTransition())return !0;if(N(this._source.type))for(const e in this._tiles){const i=this._tiles[e];if(void 0!==i.fadeEndTime&&i.fadeEndTime>=t.exported.now())return !0}return !1}setFeatureState(t,e,i){this._state.updateState(t=t||\"_geojsonTileLayer\",e,i);}removeFeatureState(t,e,i){this._state.removeFeatureState(t=t||\"_geojsonTileLayer\",e,i);}getFeatureState(t,e){return this._state.getState(t=t||\"_geojsonTileLayer\",e)}setDependencies(t,e,i){const o=this._tiles[t];o&&o.setDependencies(e,i);}reloadTilesForDependencies(t,e){for(const i in this._tiles)this._tiles[i].hasDependency(t,e)&&this._reloadTile(i,\"reloading\");this._cache.filter((i=>!i.hasDependency(t,e)));}}function U(t,e){const i=Math.abs(2*t.wrap)-+(t.wrap<0),o=Math.abs(2*e.wrap)-+(e.wrap<0);return t.overscaledZ-e.overscaledZ||o-i||e.canonical.y-t.canonical.y||e.canonical.x-t.canonical.x}function N(t){return \"raster\"===t||\"image\"===t||\"video\"===t}O.maxOverzooming=10,O.maxUnderzooming=3;const G=\"mapboxgl_preloaded_worker_pool\";class Z{constructor(){this.active={};}acquire(t){if(!this.workers)for(this.workers=[];this.workers.length{t.terminate();})),this.workers=null);}isPreloaded(){return !!this.active[G]}numActive(){return Object.keys(this.active).length}}const V=Math.floor(t.exported.hardwareConcurrency/2);let q;function j(){return q||(q=new Z),q}function $(e,i){const o={};for(const t in e)\"ref\"!==t&&(o[t]=e[t]);return t.refProperties.forEach((t=>{t in i&&(o[t]=i[t]);})),o}function X(t){t=t.slice();const e=Object.create(null);for(let i=0;i0?(a-s)/n:0;return this.points[r].mult(1-l).add(this.points[i].mult(l))}}function ot(t,e){let i=!0;return \"always\"===t||\"never\"!==t&&\"never\"!==e||(i=!1),i}class at{constructor(t,e,i){const o=this.boxCells=[],a=this.circleCells=[];this.xCellCount=Math.ceil(t/i),this.yCellCount=Math.ceil(e/i);for(let t=0;tthis.width||o<0||e>this.height)return [];const n=[];if(t<=0&&e<=0&&this.width<=i&&this.height<=o){if(a)return [{key:null,x1:t,y1:e,x2:i,y2:o}];for(let t=0;t0}hitTestCircle(t,e,i,o,a){const r=t-i,s=t+i,n=e-i,l=e+i;if(s<0||r>this.width||l<0||n>this.height)return !1;const c=[];return this._forEachCell(r,n,s,l,this._queryCellCircle,c,{hitTest:!0,overlapMode:o,circle:{x:t,y:e,radius:i},seenUids:{box:{},circle:{}}},a),c.length>0}_queryCell(t,e,i,o,a,r,s,n){const{seenUids:l,hitTest:c,overlapMode:h}=s,u=this.boxCells[a];if(null!==u){const a=this.bboxes;for(const s of u)if(!l.box[s]){l.box[s]=!0;const u=4*s,d=this.boxKeys[s];if(t<=a[u+2]&&e<=a[u+3]&&i>=a[u+0]&&o>=a[u+1]&&(!n||n(d))&&(!c||!ot(h,d.overlapMode))&&(r.push({key:d,x1:a[u],y1:a[u+1],x2:a[u+2],y2:a[u+3]}),c))return !0}}const d=this.circleCells[a];if(null!==d){const a=this.circles;for(const s of d)if(!l.circle[s]){l.circle[s]=!0;const u=3*s,d=this.circleKeys[s];if(this._circleAndRectCollide(a[u],a[u+1],a[u+2],t,e,i,o)&&(!n||n(d))&&(!c||!ot(h,d.overlapMode))){const t=a[u],e=a[u+1],i=a[u+2];if(r.push({key:d,x1:t-i,y1:e-i,x2:t+i,y2:e+i}),c)return !0}}}return !1}_queryCellCircle(t,e,i,o,a,r,s,n){const{circle:l,seenUids:c,overlapMode:h}=s,u=this.boxCells[a];if(null!==u){const t=this.bboxes;for(const e of u)if(!c.box[e]){c.box[e]=!0;const i=4*e,o=this.boxKeys[e];if(this._circleAndRectCollide(l.x,l.y,l.radius,t[i+0],t[i+1],t[i+2],t[i+3])&&(!n||n(o))&&!ot(h,o.overlapMode))return r.push(!0),!0}}const d=this.circleCells[a];if(null!==d){const t=this.circles;for(const e of d)if(!c.circle[e]){c.circle[e]=!0;const i=3*e,o=this.circleKeys[e];if(this._circlesCollide(t[i],t[i+1],t[i+2],l.x,l.y,l.radius)&&(!n||n(o))&&!ot(h,o.overlapMode))return r.push(!0),!0}}}_forEachCell(t,e,i,o,a,r,s,n){const l=this._convertToXCellCoord(t),c=this._convertToYCellCoord(e),h=this._convertToXCellCoord(i),u=this._convertToYCellCoord(o);for(let d=l;d<=h;d++)for(let l=c;l<=u;l++)if(a.call(this,t,e,i,o,this.xCellCount*l+d,r,s,n))return}_convertToXCellCoord(t){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(t*this.xScale)))}_convertToYCellCoord(t){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(t*this.yScale)))}_circlesCollide(t,e,i,o,a,r){const s=o-t,n=a-e,l=i+r;return l*l>s*s+n*n}_circleAndRectCollide(t,e,i,o,a,r,s){const n=(r-o)/2,l=Math.abs(t-(o+n));if(l>n+i)return !1;const c=(s-a)/2,h=Math.abs(e-(a+c));if(h>c+i)return !1;if(l<=n||h<=c)return !0;const u=l-n,d=h-c;return u*u+d*d<=i*i}}function rt(e,i,o,a,r){const s=t.create();return i?(t.scale(s,s,[1/r,1/r,1]),o||t.rotateZ(s,s,a.angle)):t.multiply(s,a.labelPlaneMatrix,e),s}function st(e,i,o,a,r){if(i){const i=t.clone(e);return t.scale(i,i,[r,r,1]),o||t.rotateZ(i,i,-a.angle),i}return a.glCoordMatrix}function nt(e,i,o){let a;o?(a=[e.x,e.y,o(e.x,e.y),1],t.transformMat4(a,a,i)):(a=[e.x,e.y,0,1],xt(a,a,i));const r=a[3];return {point:new t.pointGeometry(a[0]/r,a[1]/r),signedDistanceFromCamera:r}}function lt(t,e){return .5+t/e*.5}function ct(t,e){const i=t[0]/t[3],o=t[1]/t[3];return i>=-e[0]&&i<=e[0]&&o>=-e[1]&&o<=e[1]}function ht(e,i,o,a,r,s,n,l,c,h){const u=a?e.textSizeData:e.iconSizeData,d=t.evaluateSizeForZoom(u,o.transform.zoom),m=[256/o.width*2+1,256/o.height*2+1],_=a?e.text.dynamicLayoutVertexArray:e.icon.dynamicLayoutVertexArray;_.clear();const p=e.lineVertexArray,f=a?e.text.placedSymbolArray:e.icon.placedSymbolArray,g=o.transform.width/o.transform.height;let x=!1;for(let a=0;aMath.abs(o.x-i.x)*a?{useVertical:!0}:(e===t.WritingMode.vertical?i.yo.x)?{needsFlipping:!0}:null}function mt(e,i,o,a,r,s,n,l,c,h,u,d,m,_,p,f){const g=i/24,x=e.lineOffsetX*g,v=e.lineOffsetY*g;let y;if(e.numGlyphs>1){const t=e.glyphStartIndex+e.numGlyphs,i=e.lineStartIndex,r=e.lineStartIndex+e.lineLength,h=ut(g,l,x,v,o,u,d,e,c,s,m,p,f);if(!h)return {notEnoughRoom:!0};const b=nt(h.first.point,n,f).point,w=nt(h.last.point,n,f).point;if(a&&!o){const t=dt(e.writingMode,b,w,_);if(t)return t}y=[h.first];for(let a=e.glyphStartIndex+1;a0?s.point:_t(d,a,i,1,r,f),l=dt(e.writingMode,i,n,_);if(l)return l}const i=pt(g*l.getoffsetX(e.glyphStartIndex),x,v,o,u,d,e.segment,e.lineStartIndex,e.lineStartIndex+e.lineLength,c,s,m,p,f);if(!i)return {notEnoughRoom:!0};y=[i];}for(const e of y)t.addDynamicAttributes(h,e.point,e.angle);return {}}function _t(t,e,i,o,a,r){const s=nt(t.add(t.sub(e)._unit()),a,r).point,n=i.sub(s);return i.add(n._mult(o/n.mag()))}function pt(e,i,o,a,r,s,n,l,c,h,u,d,m,_){const p=a?e-i:e+i;let f=p>0?1:-1,g=0;a&&(f*=-1,g=Math.PI),f<0&&(g+=Math.PI);let x=f>0?l+n:l+n+1,v=r,y=r,b=0,w=0;const T=Math.abs(p),E=[];for(;b+w<=T;){if(x+=f,x=c)return null;if(y=v,E.push(v),v=d[x],void 0===v){const e=new t.pointGeometry(h.getx(x),h.gety(x)),i=nt(e,u,_);if(i.signedDistanceFromCamera>0)v=d[x]=i.point;else {const i=x-f;v=_t(0===b?s:new t.pointGeometry(h.getx(i),h.gety(i)),e,y,T-b+1,u,_);}}b+=w,w=y.dist(v);}const I=(T-b)/w,C=v.sub(y),S=C.mult(I)._add(y);S._add(C._unit()._perp()._mult(o*f));const D=g+Math.atan2(v.y-y.y,v.x-y.x);return E.push(S),{point:S,angle:m?D:0,path:E}}const ft=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function gt(t,e){for(let i=0;i=1;t--)h.push(s.path[t]);for(let t=1;tnt(t,l,_)));h=t.some((t=>t.signedDistanceFromCamera<=0))?[]:t.map((t=>t.point));}let g=[];if(h.length>0){const e=h[0].clone(),i=h[0].clone();for(let t=1;t=o.x&&i.x<=a.x&&e.y>=o.y&&i.y<=a.y?[h]:i.xa.x||i.ya.y?[]:t.clipLine([h],o.x,o.y,a.x,a.y);}for(const t of g){r.reset(t,.25*i);let o=0;o=r.length<=.5*i?1:Math.ceil(r.paddedLength/f)+1;for(let t=0;t=this.screenRightBoundary||othis.screenBottomBoundary}isInsideGrid(t,e,i,o){return i>=0&&t=0&&et.collisionGroupID===e};}return this.collisionGroups[t]}}function Dt(e,i,o,a,r){const{horizontalAlign:s,verticalAlign:n}=t.getAnchorAlignment(e),l=-(s-.5)*i,c=-(n-.5)*o,h=t.evaluateVariableOffset(e,a);return new t.pointGeometry(l+h[0]*r,c+h[1]*r)}function zt(e,i,o,a,r,s){const{x1:n,x2:l,y1:c,y2:h,anchorPointX:u,anchorPointY:d}=e,m=new t.pointGeometry(i,o);return a&&m._rotate(r?s:-s),{x1:n+m.x,y1:c+m.y,x2:l+m.x,y2:h+m.y,anchorPointX:u,anchorPointY:d}}class Pt{constructor(t,e,i,o,a){this.transform=t.clone(),this.terrain=e,this.collisionIndex=new yt(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=i,this.retainedQueryData={},this.collisionGroups=new St(o),this.collisionCircleArrays={},this.prevPlacement=a,a&&(a.prevPlacement=void 0),this.placedOrientations={};}getBucketParts(e,i,o,a){const r=o.getBucket(i),s=o.latestFeatureIndex;if(!r||!s||i.id!==r.layerIds[0])return;const n=o.collisionBoxArray,l=r.layers[0].layout,c=Math.pow(2,this.transform.zoom-o.tileID.overscaledZ),h=o.tileSize/t.EXTENT,u=this.transform.calculatePosMatrix(o.tileID.toUnwrapped()),d=\"map\"===l.get(\"text-pitch-alignment\"),m=\"map\"===l.get(\"text-rotation-alignment\"),_=bt(o,1,this.transform.zoom),p=rt(u,d,m,this.transform,_);let f=null;if(d){const e=st(u,d,m,this.transform,_);f=t.multiply([],this.transform.labelPlaneMatrix,e);}this.retainedQueryData[r.bucketInstanceId]=new Ct(r.bucketInstanceId,s,r.sourceLayerIndex,r.index,o.tileID);const g={bucket:r,layout:l,posMatrix:u,textLabelPlaneMatrix:p,labelToScreenMatrix:f,scale:c,textPixelRatio:h,holdingForFade:o.holdingForFade(),collisionBoxArray:n,partiallyEvaluatedTextSize:t.evaluateSizeForZoom(r.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(r.sourceID)};if(a)for(const t of r.sortKeyRanges){const{sortKey:i,symbolInstanceStart:o,symbolInstanceEnd:a}=t;e.push({sortKey:i,symbolInstanceStart:o,symbolInstanceEnd:a,parameters:g});}else e.push({symbolInstanceStart:0,symbolInstanceEnd:r.symbolInstances.length,parameters:g});}attemptAnchorPlacement(t,e,i,o,a,r,s,n,l,c,h,u,d,m,_,p){const f=[u.textOffset0,u.textOffset1],g=Dt(t,i,o,f,a),x=this.collisionIndex.placeCollisionBox(zt(e,g.x,g.y,r,s,this.transform.angle),h,n,l,c.predicate,p);if((!_||0!==this.collisionIndex.placeCollisionBox(zt(_,g.x,g.y,r,s,this.transform.angle),h,n,l,c.predicate,p).box.length)&&x.box.length>0){let e;if(this.prevPlacement&&this.prevPlacement.variableOffsets[u.crossTileID]&&this.prevPlacement.placements[u.crossTileID]&&this.prevPlacement.placements[u.crossTileID].text&&(e=this.prevPlacement.variableOffsets[u.crossTileID].anchor),0===u.crossTileID)throw new Error(\"symbolInstance.crossTileID can't be 0\");return this.variableOffsets[u.crossTileID]={textOffset:f,width:i,height:o,anchor:t,textBoxScale:a,prevAnchor:e},this.markUsedJustification(d,t,u,m),d.allowVerticalPlacement&&(this.markUsedOrientation(d,m,u),this.placedOrientations[u.crossTileID]=m),{shift:g,placedGlyphBoxes:x}}}placeLayerBucketPart(e,i,o){const{bucket:a,layout:r,posMatrix:s,textLabelPlaneMatrix:n,labelToScreenMatrix:l,textPixelRatio:c,holdingForFade:h,collisionBoxArray:u,partiallyEvaluatedTextSize:d,collisionGroup:m}=e.parameters,_=r.get(\"text-optional\"),p=r.get(\"icon-optional\"),f=t.getOverlapMode(r,\"text-overlap\",\"text-allow-overlap\"),g=\"always\"===f,x=t.getOverlapMode(r,\"icon-overlap\",\"icon-allow-overlap\"),v=\"always\"===x,y=\"map\"===r.get(\"text-rotation-alignment\"),b=\"map\"===r.get(\"text-pitch-alignment\"),w=\"none\"!==r.get(\"icon-text-fit\"),T=\"viewport-y\"===r.get(\"symbol-z-order\"),E=g&&(v||!a.hasIconData()||p),I=v&&(g||!a.hasTextData()||_);!a.collisionArrays&&u&&a.deserializeCollisionBoxes(u);const C=(e,u)=>{if(i[e.crossTileID])return;if(h)return void(this.placements[e.crossTileID]=new Et(!1,!1,!1));let v=!1,T=!1,C=!0,S=null,D={box:null,offscreen:null},z={box:null,offscreen:null},P=null,M=null,A=null,L=0,R=0,k=0;u.textFeatureIndex?L=u.textFeatureIndex:e.useRuntimeCollisionCircles&&(L=e.featureIndex),u.verticalTextFeatureIndex&&(R=u.verticalTextFeatureIndex);const B=this.retainedQueryData[a.bucketInstanceId].tileID,F=this.terrain?(t,e)=>this.terrain.getElevation(B,t,e):null;for(const t of [\"textBox\",\"verticalTextBox\",\"iconBox\",\"verticalIconBox\"]){const e=u[t];e&&(e.elevation=F?F(e.anchorPointX,e.anchorPointY):0);}const O=u.textBox;if(O){const i=i=>{let o=t.WritingMode.horizontal;if(a.allowVerticalPlacement&&!i&&this.prevPlacement){const t=this.prevPlacement.placedOrientations[e.crossTileID];t&&(this.placedOrientations[e.crossTileID]=t,o=t,this.markUsedOrientation(a,o,e));}return o},o=(i,o)=>{if(a.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&u.verticalTextBox){for(const e of a.writingModes)if(e===t.WritingMode.vertical?(D=o(),z=D):D=i(),D&&D.box&&D.box.length)break}else D=i();};if(r.get(\"text-variable-anchor\")){let n=r.get(\"text-variable-anchor\");if(this.prevPlacement&&this.prevPlacement.variableOffsets[e.crossTileID]){const t=this.prevPlacement.variableOffsets[e.crossTileID];n.indexOf(t.anchor)>0&&(n=n.filter((e=>e!==t.anchor)),n.unshift(t.anchor));}const l=(t,i,o)=>{const r=t.x2-t.x1,l=t.y2-t.y1,h=e.textBoxScale,u=w&&\"never\"===x?i:null;let d={box:[],offscreen:!1};const _=\"never\"!==f?2*n.length:n.length;for(let i=0;i<_;++i){const _=this.attemptAnchorPlacement(n[i%n.length],t,r,l,h,y,b,c,s,m,i>=n.length?f:\"never\",e,a,o,u,F);if(_&&(d=_.placedGlyphBoxes,d&&d.box&&d.box.length)){v=!0,S=_.shift;break}}return d};o((()=>l(O,u.iconBox,t.WritingMode.horizontal)),(()=>{const i=u.verticalTextBox;return a.allowVerticalPlacement&&!(D&&D.box&&D.box.length)&&e.numVerticalGlyphVertices>0&&i?l(i,u.verticalIconBox,t.WritingMode.vertical):{box:null,offscreen:null}})),D&&(v=D.box,C=D.offscreen);const h=i(D&&D.box);if(!v&&this.prevPlacement){const t=this.prevPlacement.variableOffsets[e.crossTileID];t&&(this.variableOffsets[e.crossTileID]=t,this.markUsedJustification(a,t.anchor,e,h));}}else {const r=(t,i)=>{const o=this.collisionIndex.placeCollisionBox(t,f,c,s,m.predicate,F);return o&&o.box&&o.box.length&&(this.markUsedOrientation(a,i,e),this.placedOrientations[e.crossTileID]=i),o};o((()=>r(O,t.WritingMode.horizontal)),(()=>{const i=u.verticalTextBox;return a.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&i?r(i,t.WritingMode.vertical):{box:null,offscreen:null}})),i(D&&D.box&&D.box.length);}}if(P=D,v=P&&P.box&&P.box.length>0,C=P&&P.offscreen,e.useRuntimeCollisionCircles){const i=a.text.placedSymbolArray.get(e.centerJustifiedTextSymbolIndex),c=t.evaluateSizeForFeature(a.textSizeData,d,i),h=r.get(\"text-padding\");M=this.collisionIndex.placeCollisionCircles(f,i,a.lineVertexArray,a.glyphOffsetArray,c,s,n,l,o,b,m.predicate,e.collisionCircleDiameter,h,F),M.circles.length&&M.collisionDetected&&!o&&t.warnOnce(\"Collisions detected, but collision boxes are not shown\"),v=g||M.circles.length>0&&!M.collisionDetected,C=C&&M.offscreen;}if(u.iconFeatureIndex&&(k=u.iconFeatureIndex),u.iconBox){const t=t=>{const e=w&&S?zt(t,S.x,S.y,y,b,this.transform.angle):t;return this.collisionIndex.placeCollisionBox(e,x,c,s,m.predicate,F)};z&&z.box&&z.box.length&&u.verticalIconBox?(A=t(u.verticalIconBox),T=A.box.length>0):(A=t(u.iconBox),T=A.box.length>0),C=C&&A.offscreen;}const U=_||0===e.numHorizontalGlyphVertices&&0===e.numVerticalGlyphVertices,N=p||0===e.numIconVertices;if(U||N?N?U||(T=T&&v):v=T&&v:T=v=T&&v,v&&P&&P.box&&this.collisionIndex.insertCollisionBox(P.box,f,r.get(\"text-ignore-placement\"),a.bucketInstanceId,z&&z.box&&R?R:L,m.ID),T&&A&&this.collisionIndex.insertCollisionBox(A.box,x,r.get(\"icon-ignore-placement\"),a.bucketInstanceId,k,m.ID),M&&(v&&this.collisionIndex.insertCollisionCircles(M.circles,f,r.get(\"text-ignore-placement\"),a.bucketInstanceId,L,m.ID),o)){const t=a.bucketInstanceId;let e=this.collisionCircleArrays[t];void 0===e&&(e=this.collisionCircleArrays[t]=new It);for(let t=0;t=0;--e){const i=t[e];C(a.symbolInstances.get(i),a.collisionArrays[i]);}}else for(let t=e.symbolInstanceStart;t=0&&(e.text.placedSymbolArray.get(t).crossTileID=r>=0&&t!==r?0:o.crossTileID);}markUsedOrientation(e,i,o){const a=i===t.WritingMode.horizontal||i===t.WritingMode.horizontalOnly?i:0,r=i===t.WritingMode.vertical?i:0,s=[o.leftJustifiedTextSymbolIndex,o.centerJustifiedTextSymbolIndex,o.rightJustifiedTextSymbolIndex];for(const t of s)e.text.placedSymbolArray.get(t).placedOrientation=a;o.verticalPlacedTextSymbolIndex&&(e.text.placedSymbolArray.get(o.verticalPlacedTextSymbolIndex).placedOrientation=r);}commit(t){this.commitTime=t,this.zoomAtLastRecencyCheck=this.transform.zoom;const e=this.prevPlacement;let i=!1;this.prevZoomAdjustment=e?e.zoomAdjustment(this.transform.zoom):0;const o=e?e.symbolFadeChange(t):1,a=e?e.opacities:{},r=e?e.variableOffsets:{},s=e?e.placedOrientations:{};for(const t in this.placements){const e=this.placements[t],r=a[t];r?(this.opacities[t]=new Tt(r,o,e.text,e.icon),i=i||e.text!==r.text.placed||e.icon!==r.icon.placed):(this.opacities[t]=new Tt(null,o,e.text,e.icon,e.skipFade),i=i||e.text||e.icon);}for(const t in a){const e=a[t];if(!this.opacities[t]){const a=new Tt(e,o,!1,!1);a.isHidden()||(this.opacities[t]=a,i=i||e.text.placed||e.icon.placed);}}for(const t in r)this.variableOffsets[t]||!this.opacities[t]||this.opacities[t].isHidden()||(this.variableOffsets[t]=r[t]);for(const t in s)this.placedOrientations[t]||!this.opacities[t]||this.opacities[t].isHidden()||(this.placedOrientations[t]=s[t]);if(e&&void 0===e.lastPlacementChangeTime)throw new Error(\"Last placement time for previous placement is not defined\");i?this.lastPlacementChangeTime=t:\"number\"!=typeof this.lastPlacementChangeTime&&(this.lastPlacementChangeTime=e?e.lastPlacementChangeTime:t);}updateLayerOpacities(t,e){const i={};for(const o of e){const e=o.getBucket(t);e&&o.latestFeatureIndex&&t.id===e.layerIds[0]&&this.updateBucketOpacities(e,i,o.collisionBoxArray);}}updateBucketOpacities(e,i,o){e.hasTextData()&&e.text.opacityVertexArray.clear(),e.hasIconData()&&e.icon.opacityVertexArray.clear(),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexArray.clear(),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexArray.clear();const a=e.layers[0].layout,r=new Tt(null,0,!1,!1,!0),s=a.get(\"text-allow-overlap\"),n=a.get(\"icon-allow-overlap\"),l=a.get(\"text-variable-anchor\"),c=\"map\"===a.get(\"text-rotation-alignment\"),h=\"map\"===a.get(\"text-pitch-alignment\"),u=\"none\"!==a.get(\"icon-text-fit\"),d=new Tt(null,0,s&&(n||!e.hasIconData()||a.get(\"icon-optional\")),n&&(s||!e.hasTextData()||a.get(\"text-optional\")),!0);!e.collisionArrays&&o&&(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData())&&e.deserializeCollisionBoxes(o);const m=(t,e,i)=>{for(let o=0;o0,g=this.placedOrientations[a.crossTileID],x=g===t.WritingMode.vertical,v=g===t.WritingMode.horizontal||g===t.WritingMode.horizontalOnly;if(s>0||n>0){const t=Ut(p.text);m(e.text,s,x?Nt:t),m(e.text,n,v?Nt:t);const i=p.text.isHidden();[a.rightJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.leftJustifiedTextSymbolIndex].forEach((t=>{t>=0&&(e.text.placedSymbolArray.get(t).hidden=i||x?1:0);})),a.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(a.verticalPlacedTextSymbolIndex).hidden=i||v?1:0);const o=this.variableOffsets[a.crossTileID];o&&this.markUsedJustification(e,o.anchor,a,g);const r=this.placedOrientations[a.crossTileID];r&&(this.markUsedJustification(e,\"left\",a,r),this.markUsedOrientation(e,r,a));}if(f){const t=Ut(p.icon),i=!(u&&a.verticalPlacedIconSymbolIndex&&x);a.placedIconSymbolIndex>=0&&(m(e.icon,a.numIconVertices,i?t:Nt),e.icon.placedSymbolArray.get(a.placedIconSymbolIndex).hidden=p.icon.isHidden()),a.verticalPlacedIconSymbolIndex>=0&&(m(e.icon,a.numVerticalIconVertices,i?Nt:t),e.icon.placedSymbolArray.get(a.verticalPlacedIconSymbolIndex).hidden=p.icon.isHidden());}if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){const i=e.collisionArrays[o];if(i){let o=new t.pointGeometry(0,0);if(i.textBox||i.verticalTextBox){let t=!0;if(l){const e=this.variableOffsets[_];e?(o=Dt(e.anchor,e.width,e.height,e.textOffset,e.textBoxScale),c&&o._rotate(h?this.transform.angle:-this.transform.angle)):t=!1;}i.textBox&&Mt(e.textCollisionBox.collisionVertexArray,p.text.placed,!t||x,o.x,o.y),i.verticalTextBox&&Mt(e.textCollisionBox.collisionVertexArray,p.text.placed,!t||v,o.x,o.y);}const a=Boolean(!v&&i.verticalIconBox);i.iconBox&&Mt(e.iconCollisionBox.collisionVertexArray,p.icon.placed,a,u?o.x:0,u?o.y:0),i.verticalIconBox&&Mt(e.iconCollisionBox.collisionVertexArray,p.icon.placed,!a,u?o.x:0,u?o.y:0);}}}if(e.sortFeatures(this.transform.angle),this.retainedQueryData[e.bucketInstanceId]&&(this.retainedQueryData[e.bucketInstanceId].featureSortOrder=e.featureSortOrder),e.hasTextData()&&e.text.opacityVertexBuffer&&e.text.opacityVertexBuffer.updateData(e.text.opacityVertexArray),e.hasIconData()&&e.icon.opacityVertexBuffer&&e.icon.opacityVertexBuffer.updateData(e.icon.opacityVertexArray),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexBuffer&&e.iconCollisionBox.collisionVertexBuffer.updateData(e.iconCollisionBox.collisionVertexArray),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexBuffer&&e.textCollisionBox.collisionVertexBuffer.updateData(e.textCollisionBox.collisionVertexArray),e.text.opacityVertexArray.length!==e.text.layoutVertexArray.length/4)throw new Error(`bucket.text.opacityVertexArray.length (= ${e.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${e.text.layoutVertexArray.length}) / 4`);if(e.icon.opacityVertexArray.length!==e.icon.layoutVertexArray.length/4)throw new Error(`bucket.icon.opacityVertexArray.length (= ${e.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${e.icon.layoutVertexArray.length}) / 4`);if(e.bucketInstanceId in this.collisionCircleArrays){const t=this.collisionCircleArrays[e.bucketInstanceId];e.placementInvProjMatrix=t.invProjMatrix,e.placementViewportMatrix=t.viewportMatrix,e.collisionCircleArray=t.circles,delete this.collisionCircleArrays[e.bucketInstanceId];}}symbolFadeChange(t){return 0===this.fadeDuration?1:(t-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(t){return Math.max(0,(this.transform.zoom-t)/1.5)}hasTransitions(t){return this.stale||t-this.lastPlacementChangeTimet}setStale(){this.stale=!0;}}function Mt(t,e,i,o,a){t.emplaceBack(e?1:0,i?1:0,o||0,a||0),t.emplaceBack(e?1:0,i?1:0,o||0,a||0),t.emplaceBack(e?1:0,i?1:0,o||0,a||0),t.emplaceBack(e?1:0,i?1:0,o||0,a||0);}const At=Math.pow(2,25),Lt=Math.pow(2,24),Rt=Math.pow(2,17),kt=Math.pow(2,16),Bt=Math.pow(2,9),Ft=Math.pow(2,8),Ot=Math.pow(2,1);function Ut(t){if(0===t.opacity&&!t.placed)return 0;if(1===t.opacity&&t.placed)return 4294967295;const e=t.placed?1:0,i=Math.floor(127*t.opacity);return i*At+e*Lt+i*Rt+e*kt+i*Bt+e*Ft+i*Ot+e}const Nt=0;class Gt{constructor(t){this._sortAcrossTiles=\"viewport-y\"!==t.layout.get(\"symbol-z-order\")&&!t.layout.get(\"symbol-sort-key\").isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[];}continuePlacement(t,e,i,o,a){const r=this._bucketParts;for(;this._currentTileIndext.sortKey-e.sortKey)));this._currentPartIndex{const e=t.exported.now()-a;return !this._forceFullPlacement&&e>2};for(;this._currentPlacementIndex>=0;){const t=i[e[this._currentPlacementIndex]],a=this.placement.collisionIndex.transform.zoom;if(\"symbol\"===t.type&&(!t.minzoom||t.minzoom<=a)&&(!t.maxzoom||t.maxzoom>a)){if(this._inProgressLayer||(this._inProgressLayer=new Gt(t)),this._inProgressLayer.continuePlacement(o[t.source],this.placement,this._showCollisionBoxes,t,r))return;delete this._inProgressLayer;}this._currentPlacementIndex--;}this._done=!0;}commit(t){return this.placement.commit(t),this.placement}}const Vt=512/t.EXTENT/2;class qt{constructor(t,e,i){this.tileID=t,this.indexedSymbolInstances={},this.bucketInstanceId=i;for(let i=0;it.overscaledZ)for(const i in a){const r=a[i];r.tileID.isChildOf(t)&&r.findMatches(e.symbolInstances,t,o);}else {const r=a[t.scaledTo(Number(i)).key];r&&r.findMatches(e.symbolInstances,t,o);}}for(let t=0;t{e[t]=!0;}));for(const t in this.layerIndexes)e[t]||delete this.layerIndexes[t];}}var Wt=t.createLayout([{name:\"a_pos\",type:\"Int16\",components:2}]);class Ht extends t.Evented{constructor(t){super(),this.sourceCache=t,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.renderHistory=[],this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.deltaZoom=1,this.renderHistorySize=t._cache.max,t.usedForTerrain=!0,t.tileSize=this.tileSize*2**this.deltaZoom;}destruct(){this.sourceCache.usedForTerrain=!1,this.sourceCache.tileSize=null;for(const t in this._tiles){const e=this._tiles[t];e.textures.forEach((t=>t.destroy())),e.textures=[];}}update(e,i){this.sourceCache.update(e,i),this._renderableTilesKeys=[];for(const o of e.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:i}))this._renderableTilesKeys.push(o.key),this._tiles[o.key]||(o.posMatrix=new Float64Array(16),t.ortho(o.posMatrix,0,t.EXTENT,0,t.EXTENT,0,1),this._tiles[o.key]=new k(o,this.tileSize));}removeOutdated(t){const e={};this.renderHistory=this.renderHistory.filter(((t,e)=>this.renderHistory.indexOf(t)===e)).slice(0,this.renderHistorySize);for(const t of this._renderableTilesKeys)e[t]=!0;for(const t of this.renderHistory)e[t]=!0;for(const i in this._tiles)e[i]||(this._tiles[i].clearTextures(t),delete this._tiles[i]);}getRenderableTiles(){return this._renderableTilesKeys.map((t=>this.getTileByID(t)))}getTileByID(t){return this._tiles[t]}getTerrainCoords(e){const i={};for(const o of this._renderableTilesKeys){const a=this._tiles[o].tileID;if(a.canonical.equals(e.canonical)){const a=e.clone();a.posMatrix=new Float64Array(16),t.ortho(a.posMatrix,0,t.EXTENT,0,t.EXTENT,0,1),i[o]=a;}else if(a.canonical.isChildOf(e.canonical)){const r=e.clone();r.posMatrix=new Float64Array(16);const s=a.canonical.z-e.canonical.z,n=a.canonical.x-(a.canonical.x>>s<>s<>s;t.ortho(r.posMatrix,0,c,0,c,0,1),t.translate(r.posMatrix,r.posMatrix,[-n*c,-l*c,0]),i[o]=r;}else if(e.canonical.isChildOf(a.canonical)){const r=e.clone();r.posMatrix=new Float64Array(16);const s=e.canonical.z-a.canonical.z,n=e.canonical.x-(e.canonical.x>>s<>s<>s;t.ortho(r.posMatrix,0,t.EXTENT,0,t.EXTENT,0,1),t.translate(r.posMatrix,r.posMatrix,[n*c,l*c,0]),t.scale(r.posMatrix,r.posMatrix,[1/2**s,1/2**s,0]),i[o]=r;}}return i}getSourceTile(t,e){const i=this.sourceCache._source;let o=t.overscaledZ-this.deltaZoom;if(o>i.maxzoom&&(o=i.maxzoom),o=i.minzoom&&(!a||!a.dem);)a=this.sourceCache.getTileByID(t.scaledTo(o--).key);return a}tilesAfterTime(t=Date.now()){return Object.values(this._tiles).filter((e=>e.timeLoaded>=t))}}class Kt{constructor(t,e,i){this.style=t,this.sourceCache=new Ht(e),this.options=i,this.exaggeration=\"number\"==typeof i.exaggeration?i.exaggeration:1,this.elevationOffset=\"number\"==typeof i.elevationOffset?i.elevationOffset:450,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024,this.clearRerenderCache();}getDEMElevation(e,i,o,a=t.EXTENT){if(!(i>=0&&i=0&&oe.canonical.z&&(e.canonical.z>=o?a=e.canonical.z-o:t.warnOnce(\"cannot calculate elevation if elevation maxzoom > source.maxzoom\"));const r=e.canonical.x-(e.canonical.x>>a<>a<>8<<4|t>>8,i[e+3]=0;const o=new t.RGBAImage({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(i.buffer)),a=new l(e,o,e.gl.RGBA,{premultiply:!1});return a.bind(e.gl.NEAREST,e.gl.CLAMP_TO_EDGE),this._coordsTexture=a,a}pointCoordinate(e){const i=new Uint8Array(4),o=this.style.map.painter,a=o.context,r=a.gl;a.bindFramebuffer.set(this.getFramebuffer(\"coords\").framebuffer),r.readPixels(e.x,o.height/devicePixelRatio-e.y-1,1,1,r.RGBA,r.UNSIGNED_BYTE,i),a.bindFramebuffer.set(null);const s=i[0]+(i[2]>>4<<8),n=i[1]+((15&i[2])<<8),l=this.coordsIndex[255-i[3]],c=l&&this.sourceCache.getTileByID(l);if(!c)return null;const h=this._coordsTextureSize,u=(1<t.emitValidationErrors(e,i&&i.filter((t=>\"source.canvas\"!==t.identifier))),Jt=t.pick(W,[\"addLayer\",\"removeLayer\",\"setPaintProperty\",\"setLayoutProperty\",\"setFilter\",\"addSource\",\"removeSource\",\"setLayerZoomRange\",\"setLight\",\"setTransition\",\"setGeoJSONSourceData\"]),Qt=t.pick(W,[\"setCenter\",\"setZoom\",\"setBearing\",\"setPitch\"]),te=function(){const e={},i=t.spec.$version;for(const o in t.spec.$root){const a=t.spec.$root[o];if(a.required){let t=null;t=\"version\"===o?i:\"array\"===a.type?[]:{},null!=t&&(e[o]=t);}}return e}();class ee extends t.Evented{constructor(e,i={}){super(),this.map=e,this.dispatcher=new v(j(),this),this.imageManager=new h,this.imageManager.setEventedParent(this),this.glyphManager=new _(e._requestManager,i.localIdeographFontFamily),this.lineAtlas=new x(256,512),this.crossTileSymbolIndex=new Xt,this._layers={},this._serializedLayers={},this._order=[],this.sourceCaches={},this.zoomHistory=new t.ZoomHistory,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast(\"setReferrer\",t.getReferrer());const o=this;this._rtlTextPluginCallback=ee.registerForPluginStateChange((e=>{o.dispatcher.broadcast(\"syncRTLPluginState\",{pluginStatus:e.pluginStatus,pluginURL:e.pluginURL},((e,i)=>{if(t.triggerPluginCompletionEvent(e),i&&i.every((t=>t)))for(const t in o.sourceCaches)o.sourceCaches[t].reload();}));})),this.on(\"data\",(t=>{if(\"source\"!==t.dataType||\"metadata\"!==t.sourceDataType)return;const e=this.sourceCaches[t.sourceId];if(!e)return;const i=e.getSource();if(i&&i.vectorLayerIds)for(const t in this._layers){const e=this._layers[t];e.source===i.id&&this._validateLayer(e);}}));}loadURL(e,i={}){this.fire(new t.Event(\"dataloading\",{dataType:\"style\"}));const o=\"boolean\"!=typeof i.validate||i.validate,a=this.map._requestManager.transformRequest(e,t.ResourceType.Style);this._request=t.getJSON(a,((e,i)=>{this._request=null,e?this.fire(new t.ErrorEvent(e)):i&&this._load(i,o);}));}loadJSON(e,i={}){this.fire(new t.Event(\"dataloading\",{dataType:\"style\"})),this._request=t.exported.frame((()=>{this._request=null,this._load(e,!1!==i.validate);}));}loadEmpty(){this.fire(new t.Event(\"dataloading\",{dataType:\"style\"})),this._load(te,!1);}_load(e,i){if(i&&Yt(this,t.validateStyle(e)))return;this._loaded=!0,this.stylesheet=e;for(const t in e.sources)this.addSource(t,e.sources[t],{validate:!1});e.sprite?this._loadSprite(e.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(e.glyphs);const o=X(this.stylesheet.layers);this._order=o.map((t=>t.id)),this._layers={},this._serializedLayers={};for(let e of o)e=t.createStyleLayer(e),e.setEventedParent(this,{layer:{id:e.id}}),this._layers[e.id]=e,this._serializedLayers[e.id]=e.serialize();this.dispatcher.broadcast(\"setLayers\",this._serializeLayers(this._order)),this.light=new g(this.stylesheet.light),this.setTerrain(this.stylesheet.terrain),this.fire(new t.Event(\"data\",{dataType:\"style\"})),this.fire(new t.Event(\"style.load\"));}_loadSprite(e){this._spriteRequest=function(e,i,o,a){let r,s,n;const l=o>1?\"@2x\":\"\";let c=t.getJSON(i.transformRequest(i.normalizeSpriteURL(e,l,\".json\"),t.ResourceType.SpriteJSON),((t,e)=>{c=null,n||(n=t,r=e,u());})),h=t.getImage(i.transformRequest(i.normalizeSpriteURL(e,l,\".png\"),t.ResourceType.SpriteImage),((t,e)=>{h=null,n||(n=t,s=e,u());}));function u(){if(n)a(n);else if(r&&s){const e=t.exported.getImageData(s),i={};for(const o in r){const{width:a,height:s,x:n,y:l,sdf:c,pixelRatio:h,stretchX:u,stretchY:d,content:m}=r[o],_=new t.RGBAImage({width:a,height:s});t.RGBAImage.copy(e,_,{x:n,y:l},{x:0,y:0},{width:a,height:s}),i[o]={data:_,pixelRatio:h,sdf:c,stretchX:u,stretchY:d,content:m};}a(null,i);}}return {cancel(){c&&(c.cancel(),c=null),h&&(h.cancel(),h=null);}}}(e,this.map._requestManager,this.map.getPixelRatio(),((e,i)=>{if(this._spriteRequest=null,e)this.fire(new t.ErrorEvent(e));else if(i)for(const t in i)this.imageManager.addImage(t,i[t]);this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new t.Event(\"data\",{dataType:\"style\"}));}));}_validateLayer(e){const i=this.sourceCaches[e.source];if(!i)return;const o=e.sourceLayer;if(!o)return;const a=i.getSource();(\"geojson\"===a.type||a.vectorLayerIds&&-1===a.vectorLayerIds.indexOf(o))&&this.fire(new t.ErrorEvent(new Error(`Source layer \"${o}\" does not exist on source \"${a.id}\" as specified by style layer \"${e.id}\".`)));}loaded(){if(!this._loaded)return !1;if(Object.keys(this._updatedSources).length)return !1;for(const t in this.sourceCaches)if(!this.sourceCaches[t].loaded())return !1;return !!this.imageManager.isLoaded()}_serializeLayers(t){const e=[];for(const i of t){const t=this._layers[i];\"custom\"!==t.type&&e.push(t.serialize());}return e}hasTransitions(){if(this.light&&this.light.hasTransition())return !0;for(const t in this.sourceCaches)if(this.sourceCaches[t].hasTransition())return !0;for(const t in this._layers)if(this._layers[t].hasTransition())return !0;return !1}_checkLoaded(){if(!this._loaded)throw new Error(\"Style is not done loading.\")}update(e){if(!this._loaded)return;const i=this._changed;if(this._changed){const t=Object.keys(this._updatedLayers),i=Object.keys(this._removedLayers);(t.length||i.length)&&this._updateWorkerLayers(t,i);for(const t in this._updatedSources){const e=this._updatedSources[t];if(\"reload\"===e)this._reloadSource(t);else {if(\"clear\"!==e)throw new Error(`Invalid action ${e}`);this._clearSource(t);}}this._updateTilesForChangedImages();for(const t in this._updatedPaintProps)this._layers[t].updateTransitions(e);this.light.updateTransitions(e),this._resetUpdates();}const o={};for(const t in this.sourceCaches){const e=this.sourceCaches[t];o[t]=e.used,e.used=!1;}for(const t of this._order){const i=this._layers[t];i.recalculate(e,this._availableImages),!i.isHidden(e.zoom)&&i.source&&(this.sourceCaches[i.source].used=!0);}for(const e in o){const i=this.sourceCaches[e];o[e]!==i.used&&i.fire(new t.Event(\"data\",{sourceDataType:\"visibility\",dataType:\"source\",sourceId:e}));}this.light.recalculate(e),this.z=e.zoom,i&&this.fire(new t.Event(\"data\",{dataType:\"style\"}));}_updateTilesForChangedImages(){const t=Object.keys(this._changedImages);if(t.length){for(const e in this.sourceCaches)this.sourceCaches[e].reloadTilesForDependencies([\"icons\",\"patterns\"],t);this._changedImages={};}}_updateWorkerLayers(t,e){this.dispatcher.broadcast(\"updateLayers\",{layers:this._serializeLayers(t),removedIds:e});}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={};}setTerrain(e){if(this._checkLoaded(),this._terrainDataCallback&&this.off(\"data\",this._terrainDataCallback),this._terrainfreezeElevationCallback&&this.map.off(\"freezeElevation\",this._terrainfreezeElevationCallback),e){const t=this.sourceCaches[e.source];if(!t)throw new Error(`cannot load terrain, because there exists no source with ID: ${e.source}`);this.terrain=new Kt(this,t,e),this.map.transform.updateElevation(this.terrain),this._terrainfreezeElevationCallback=t=>{t.freeze?this.map.transform.freezeElevation=!0:(this.map.transform.freezeElevation=!1,this.map.transform.recalculateZoom(this.terrain));},this._terrainDataCallback=t=>{t.tile&&(t.sourceId===e.source?(this.map.transform.updateElevation(this.terrain),this.terrain.rememberForRerender(t.sourceId,t.tile.tileID)):\"geojson\"===t.source.type&&this.terrain.rememberForRerender(t.sourceId,t.tile.tileID));},this.on(\"data\",this._terrainDataCallback),this.map.on(\"freezeElevation\",this._terrainfreezeElevationCallback);}else this.terrain&&this.terrain.sourceCache.destruct(),this.terrain=null,this.map.transform.updateElevation(this.terrain);this.map.fire(new t.Event(\"terrain\",{terrain:e}));}setState(e){if(this._checkLoaded(),Yt(this,t.validateStyle(e)))return !1;(e=t.clone$1(e)).layers=X(e.layers);const i=function(t,e){if(!t)return [{command:W.setStyle,args:[e]}];let i=[];try{if(!a(t.version,e.version))return [{command:W.setStyle,args:[e]}];a(t.center,e.center)||i.push({command:W.setCenter,args:[e.center]}),a(t.zoom,e.zoom)||i.push({command:W.setZoom,args:[e.zoom]}),a(t.bearing,e.bearing)||i.push({command:W.setBearing,args:[e.bearing]}),a(t.pitch,e.pitch)||i.push({command:W.setPitch,args:[e.pitch]}),a(t.sprite,e.sprite)||i.push({command:W.setSprite,args:[e.sprite]}),a(t.glyphs,e.glyphs)||i.push({command:W.setGlyphs,args:[e.glyphs]}),a(t.transition,e.transition)||i.push({command:W.setTransition,args:[e.transition]}),a(t.light,e.light)||i.push({command:W.setLight,args:[e.light]});const o={},r=[];!function(t,e,i,o){let r;for(r in e=e||{},t=t||{})Object.prototype.hasOwnProperty.call(t,r)&&(Object.prototype.hasOwnProperty.call(e,r)||K(r,i,o));for(r in e)Object.prototype.hasOwnProperty.call(e,r)&&(Object.prototype.hasOwnProperty.call(t,r)?a(t[r],e[r])||(\"geojson\"===t[r].type&&\"geojson\"===e[r].type&&J(t,e,r)?i.push({command:W.setGeoJSONSourceData,args:[r,e[r].data]}):Y(r,e,i,o)):H(r,e,i));}(t.sources,e.sources,r,o);const s=[];t.layers&&t.layers.forEach((t=>{o[t.source]?i.push({command:W.removeLayer,args:[t.id]}):s.push(t);})),i=i.concat(r),function(t,e,i){e=e||[];const o=(t=t||[]).map(tt),r=e.map(tt),s=t.reduce(et,{}),n=e.reduce(et,{}),l=o.slice(),c=Object.create(null);let h,u,d,m,_,p,f;for(h=0,u=0;h!(t.command in Qt)));if(0===i.length)return !1;const o=i.filter((t=>!(t.command in Jt)));if(o.length>0)throw new Error(`Unimplemented: ${o.map((t=>t.command)).join(\", \")}.`);return i.forEach((t=>{\"setTransition\"!==t.command&&this[t.command].apply(this,t.args);})),this.stylesheet=e,!0}addImage(e,i){if(this.getImage(e))return this.fire(new t.ErrorEvent(new Error(`An image named \"${e}\" already exists.`)));this.imageManager.addImage(e,i),this._afterImageUpdated(e);}updateImage(t,e){this.imageManager.updateImage(t,e);}getImage(t){return this.imageManager.getImage(t)}removeImage(e){if(!this.getImage(e))return this.fire(new t.ErrorEvent(new Error(`An image named \"${e}\" does not exist.`)));this.imageManager.removeImage(e),this._afterImageUpdated(e);}_afterImageUpdated(e){this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new t.Event(\"data\",{dataType:\"style\"}));}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(e,i,o={}){if(this._checkLoaded(),void 0!==this.sourceCaches[e])throw new Error(`Source \"${e}\" already exists.`);if(!i.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(i).join(\", \")}.`);if([\"vector\",\"raster\",\"geojson\",\"video\",\"image\"].indexOf(i.type)>=0&&this._validate(t.validateStyle.source,`sources.${e}`,i,null,o))return;this.map&&this.map._collectResourceTiming&&(i.collectResourceTiming=!0);const a=this.sourceCaches[e]=new O(e,i,this.dispatcher);a.style=this,a.setEventedParent(this,(()=>({isSourceLoaded:this.loaded(),source:a.serialize(),sourceId:e}))),a.onAdd(this.map),this._changed=!0;}removeSource(e){if(this._checkLoaded(),void 0===this.sourceCaches[e])throw new Error(\"There is no source with this ID\");for(const i in this._layers)if(this._layers[i].source===e)return this.fire(new t.ErrorEvent(new Error(`Source \"${e}\" cannot be removed while layer \"${i}\" is using it.`)));const i=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],i.fire(new t.Event(\"data\",{sourceDataType:\"metadata\",dataType:\"source\",sourceId:e})),i.setEventedParent(null),i.onRemove(this.map),this._changed=!0;}setGeoJSONSourceData(t,e){if(this._checkLoaded(),void 0===this.sourceCaches[t])throw new Error(`There is no source with this ID=${t}`);const i=this.sourceCaches[t].getSource();if(\"geojson\"!==i.type)throw new Error(`geojsonSource.type is ${i.type}, which is !== 'geojson`);i.setData(e),this._changed=!0;}getSource(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()}addLayer(e,i,o={}){this._checkLoaded();const a=e.id;if(this.getLayer(a))return void this.fire(new t.ErrorEvent(new Error(`Layer \"${a}\" already exists on this map.`)));let r;if(\"custom\"===e.type){if(Yt(this,t.validateCustomStyleLayer(e)))return;r=t.createStyleLayer(e);}else {if(\"object\"==typeof e.source&&(this.addSource(a,e.source),e=t.clone$1(e),e=t.extend(e,{source:a})),this._validate(t.validateStyle.layer,`layers.${a}`,e,{arrayIndex:-1},o))return;r=t.createStyleLayer(e),this._validateLayer(r),r.setEventedParent(this,{layer:{id:a}}),this._serializedLayers[r.id]=r.serialize();}const s=i?this._order.indexOf(i):this._order.length;if(i&&-1===s)this.fire(new t.ErrorEvent(new Error(`Cannot add layer \"${a}\" before non-existing layer \"${i}\".`)));else {if(this._order.splice(s,0,a),this._layerOrderChanged=!0,this._layers[a]=r,this._removedLayers[a]&&r.source&&\"custom\"!==r.type){const t=this._removedLayers[a];delete this._removedLayers[a],t.type!==r.type?this._updatedSources[r.source]=\"clear\":(this._updatedSources[r.source]=\"reload\",this.sourceCaches[r.source].pause());}this._updateLayer(r),r.onAdd&&r.onAdd(this.map);}}moveLayer(e,i){if(this._checkLoaded(),this._changed=!0,!this._layers[e])return void this.fire(new t.ErrorEvent(new Error(`The layer '${e}' does not exist in the map's style and cannot be moved.`)));if(e===i)return;const o=this._order.indexOf(e);this._order.splice(o,1);const a=i?this._order.indexOf(i):this._order.length;i&&-1===a?this.fire(new t.ErrorEvent(new Error(`Cannot move layer \"${e}\" before non-existing layer \"${i}\".`))):(this._order.splice(a,0,e),this._layerOrderChanged=!0);}removeLayer(e){this._checkLoaded();const i=this._layers[e];if(!i)return void this.fire(new t.ErrorEvent(new Error(`Cannot remove non-existing layer \"${e}\".`)));i.setEventedParent(null);const o=this._order.indexOf(e);this._order.splice(o,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=i,delete this._layers[e],delete this._serializedLayers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e],i.onRemove&&i.onRemove(this.map);}getLayer(t){return this._layers[t]}hasLayer(t){return t in this._layers}setLayerZoomRange(e,i,o){this._checkLoaded();const a=this.getLayer(e);a?a.minzoom===i&&a.maxzoom===o||(null!=i&&(a.minzoom=i),null!=o&&(a.maxzoom=o),this._updateLayer(a)):this.fire(new t.ErrorEvent(new Error(`Cannot set the zoom range of non-existing layer \"${e}\".`)));}setFilter(e,i,o={}){this._checkLoaded();const r=this.getLayer(e);if(r){if(!a(r.filter,i))return null==i?(r.filter=void 0,void this._updateLayer(r)):void(this._validate(t.validateStyle.filter,`layers.${r.id}.filter`,i,null,o)||(r.filter=t.clone$1(i),this._updateLayer(r)))}else this.fire(new t.ErrorEvent(new Error(`Cannot filter non-existing layer \"${e}\".`)));}getFilter(e){return t.clone$1(this.getLayer(e).filter)}setLayoutProperty(e,i,o,r={}){this._checkLoaded();const s=this.getLayer(e);s?a(s.getLayoutProperty(i),o)||(s.setLayoutProperty(i,o,r),this._updateLayer(s)):this.fire(new t.ErrorEvent(new Error(`Cannot style non-existing layer \"${e}\".`)));}getLayoutProperty(e,i){const o=this.getLayer(e);if(o)return o.getLayoutProperty(i);this.fire(new t.ErrorEvent(new Error(`Cannot get style of non-existing layer \"${e}\".`)));}setPaintProperty(e,i,o,r={}){this._checkLoaded();const s=this.getLayer(e);s?a(s.getPaintProperty(i),o)||(s.setPaintProperty(i,o,r)&&this._updateLayer(s),this._changed=!0,this._updatedPaintProps[e]=!0):this.fire(new t.ErrorEvent(new Error(`Cannot style non-existing layer \"${e}\".`)));}getPaintProperty(t,e){return this.getLayer(t).getPaintProperty(e)}setFeatureState(e,i){this._checkLoaded();const o=e.source,a=e.sourceLayer,r=this.sourceCaches[o];if(void 0===r)return void this.fire(new t.ErrorEvent(new Error(`The source '${o}' does not exist in the map's style.`)));const s=r.getSource().type;\"geojson\"===s&&a?this.fire(new t.ErrorEvent(new Error(\"GeoJSON sources cannot have a sourceLayer parameter.\"))):\"vector\"!==s||a?(void 0===e.id&&this.fire(new t.ErrorEvent(new Error(\"The feature id parameter must be provided.\"))),r.setFeatureState(a,e.id,i)):this.fire(new t.ErrorEvent(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));}removeFeatureState(e,i){this._checkLoaded();const o=e.source,a=this.sourceCaches[o];if(void 0===a)return void this.fire(new t.ErrorEvent(new Error(`The source '${o}' does not exist in the map's style.`)));const r=a.getSource().type,s=\"vector\"===r?e.sourceLayer:void 0;\"vector\"!==r||s?i&&\"string\"!=typeof e.id&&\"number\"!=typeof e.id?this.fire(new t.ErrorEvent(new Error(\"A feature id is required to remove its specific state property.\"))):a.removeFeatureState(s,e.id,i):this.fire(new t.ErrorEvent(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));}getFeatureState(e){this._checkLoaded();const i=e.source,o=e.sourceLayer,a=this.sourceCaches[i];if(void 0!==a)return \"vector\"!==a.getSource().type||o?(void 0===e.id&&this.fire(new t.ErrorEvent(new Error(\"The feature id parameter must be provided.\"))),a.getFeatureState(o,e.id)):void this.fire(new t.ErrorEvent(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));this.fire(new t.ErrorEvent(new Error(`The source '${i}' does not exist in the map's style.`)));}getTransition(){return t.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){return t.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:t.mapObject(this.sourceCaches,(t=>t.serialize())),layers:this._serializeLayers(this._order)},(t=>void 0!==t))}_updateLayer(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&\"raster\"!==this.sourceCaches[t.source].getSource().type&&(this._updatedSources[t.source]=\"reload\",this.sourceCaches[t.source].pause()),this._changed=!0;}_flattenAndSortRenderedFeatures(t){const e=t=>\"fill-extrusion\"===this._layers[t].type,i={},o=[];for(let a=this._order.length-1;a>=0;a--){const r=this._order[a];if(e(r)){i[r]=a;for(const e of t){const t=e[r];if(t)for(const e of t)o.push(e);}}}o.sort(((t,e)=>e.intersectionZ-t.intersectionZ));const a=[];for(let r=this._order.length-1;r>=0;r--){const s=this._order[r];if(e(s))for(let t=o.length-1;t>=0;t--){const e=o[t].feature;if(i[e.layer.id]{const o=i.featureSortOrder;if(o){const i=o.indexOf(t.featureIndex);return o.indexOf(e.featureIndex)-i}return e.featureIndex-t.featureIndex}));for(const t of a)e.push(t);}}for(const e in n)n[e].forEach((o=>{const a=o.feature,r=i[t[e].source].getFeatureState(a.layer[\"source-layer\"],a.id);a.source=a.layer.source,a.layer[\"source-layer\"]&&(a.sourceLayer=a.layer[\"source-layer\"]),a.state=r;}));return n}(this._layers,this._serializedLayers,this.sourceCaches,e,i,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(r)}querySourceFeatures(e,i){i&&i.filter&&this._validate(t.validateStyle.filter,\"querySourceFeatures.filter\",i.filter,null,i);const o=this.sourceCaches[e];return o?function(t,e){const i=t.getRenderableIds().map((e=>t.getTileByID(e))),o=[],a={};for(let t=0;tt.getTileByID(e))).sort(((t,e)=>e.tileID.overscaledZ-t.tileID.overscaledZ||(t.tileID.isLessThan(e.tileID)?-1:1)));}const o=this.crossTileSymbolIndex.addLayer(i,l[i.source],e.center.lng);s=s||o;}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((r=r||this._layerOrderChanged||0===o)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(t.exported.now(),e.zoom))&&(this.pauseablePlacement=new Zt(e,this.terrain,this._order,r,i,o,a,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,l),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(t.exported.now()),n=!0),s&&this.pauseablePlacement.placement.setStale()),n||s)for(const t of this._order){const e=this._layers[t];\"symbol\"===e.type&&this.placement.updateLayerOpacities(e,l[e.source]);}return !this.pauseablePlacement.isDone()||this.placement.hasTransitions(t.exported.now())}_releaseSymbolFadeTiles(){for(const t in this.sourceCaches)this.sourceCaches[t].releaseSymbolFadeTiles();}getImages(t,e,i){this.imageManager.getImages(e.icons,i),this._updateTilesForChangedImages();const o=this.sourceCaches[e.source];o&&o.setDependencies(e.tileID.key,e.type,e.icons);}getGlyphs(t,e,i){this.glyphManager.getGlyphs(e.stacks,i);}getResource(e,i,o){return t.makeRequest(i,o)}}ee.getSourceType=function(t){return M[t]},ee.setSourceType=function(t,e){M[t]=e;},ee.registerForPluginStateChange=t.registerForPluginStateChange;var ie=\"attribute vec2 a_pos;uniform mat4 u_matrix;varying vec2 v_texture_pos;varying float v_depth;void main() {v_texture_pos=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos,get_elevation(a_pos),1.0);v_depth=gl_Position.z/gl_Position.w;}\";const oe={prelude:ae(\"#ifdef GL_ES\\nprecision mediump float;\\n#else\\n#if !defined(lowp)\\n#define lowp\\n#endif\\n#if !defined(mediump)\\n#define mediump\\n#endif\\n#if !defined(highp)\\n#define highp\\n#endif\\n#endif\",\"#ifdef GL_ES\\nprecision highp float;\\n#else\\n#if !defined(lowp)\\n#define lowp\\n#endif\\n#if !defined(mediump)\\n#define mediump\\n#endif\\n#if !defined(highp)\\n#define highp\\n#endif\\n#endif\\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}\\n#ifdef TERRAIN3D\\nuniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_offset;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth;\\n#endif\\nconst highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {\\n#ifdef TERRAIN3D\\nhighp float d=unpack(texture2D(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));\\n#else\\nreturn 1.0;\\n#endif\\n}float calculate_visibility(vec4 pos) {\\n#ifdef TERRAIN3D\\nvec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;\\n#else\\nreturn 1.0;\\n#endif\\n}float ele(vec2 pos) {\\n#ifdef TERRAIN3D\\nvec4 rgb=(texture2D(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;\\n#else\\nreturn 0.0;\\n#endif\\n}float get_elevation(vec2 pos) {\\n#ifdef TERRAIN3D\\nvec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return (elevation+u_terrain_offset)*u_terrain_exaggeration;\\n#else\\nreturn 0.0;\\n#endif\\n}\"),background:ae(\"uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"),backgroundPattern:ae(\"uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}\"),circle:ae(\"varying vec3 v_data;varying float v_visibility;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define mediump float radius\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define highp vec4 stroke_color\\n#pragma mapbox: define mediump float stroke_width\\n#pragma mapbox: define lowp float stroke_opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize mediump float radius\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize highp vec4 stroke_color\\n#pragma mapbox: initialize mediump float stroke_width\\n#pragma mapbox: initialize lowp float stroke_opacity\\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;varying float v_visibility;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define mediump float radius\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define highp vec4 stroke_color\\n#pragma mapbox: define mediump float stroke_width\\n#pragma mapbox: define lowp float stroke_opacity\\nvoid main(void) {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize mediump float radius\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize highp vec4 stroke_color\\n#pragma mapbox: initialize mediump float stroke_width\\n#pragma mapbox: initialize lowp float stroke_opacity\\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);float ele=get_elevation(circle_center);v_visibility=calculate_visibility(u_matrix*vec4(circle_center,ele,1.0));if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,ele,1);} else {gl_Position=u_matrix*vec4(circle_center,ele,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}\"),clippingMask:ae(\"void main() {gl_FragColor=vec4(1.0);}\",\"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"),heatmap:ae(\"uniform highp float u_intensity;varying vec2 v_extrude;\\n#pragma mapbox: define highp float weight\\n#define GAUSS_COEF 0.3989422804014327\\nvoid main() {\\n#pragma mapbox: initialize highp float weight\\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\\n#pragma mapbox: define highp float weight\\n#pragma mapbox: define mediump float radius\\nconst highp float ZERO=1.0/255.0/16.0;\\n#define GAUSS_COEF 0.3989422804014327\\nvoid main(void) {\\n#pragma mapbox: initialize highp float weight\\n#pragma mapbox: initialize mediump float radius\\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}\"),heatmapTexture:ae(\"uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(0.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}\"),collisionBox:ae(\"varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}\",\"attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,get_elevation(a_pos),1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}\"),collisionCircle:ae(\"varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}\",\"attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}\"),debug:ae(\"uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}\",\"attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,get_elevation(a_pos),1);}\"),fill:ae(\"#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float opacity\\ngl_FragColor=color*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"attribute vec2 a_pos;uniform mat4 u_matrix;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float opacity\\ngl_Position=u_matrix*vec4(a_pos,0,1);}\"),fillOutline:ae(\"varying vec2 v_pos;\\n#pragma mapbox: define highp vec4 outline_color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 outline_color\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\\n#pragma mapbox: define highp vec4 outline_color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 outline_color\\n#pragma mapbox: initialize lowp float opacity\\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}\"),fillOutlinePattern:ae(\"uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}\"),fillPattern:ae(\"#ifdef GL_ES\\nprecision highp float;\\n#endif\\nuniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}\"),fillExtrusion:ae(\"varying vec4 v_color;void main() {gl_FragColor=v_color;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\\n#ifdef TERRAIN3D\\nattribute vec2 a_centroid;\\n#endif\\nvarying vec4 v_color;\\n#pragma mapbox: define highp float base\\n#pragma mapbox: define highp float height\\n#pragma mapbox: define highp vec4 color\\nvoid main() {\\n#pragma mapbox: initialize highp float base\\n#pragma mapbox: initialize highp float height\\n#pragma mapbox: initialize highp vec4 color\\nvec3 normal=a_normal_ed.xyz;\\n#ifdef TERRAIN3D\\nfloat baseDelta=10.0;float ele=get_elevation(a_centroid);\\n#else\\nfloat baseDelta=0.0;float ele=0.0;\\n#endif\\nbase=max(0.0,ele+base-baseDelta);height=max(0.0,ele+height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}\"),fillExtrusionPattern:ae(\"uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\\n#pragma mapbox: define lowp float base\\n#pragma mapbox: define lowp float height\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float base\\n#pragma mapbox: initialize lowp float height\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\\n#ifdef TERRAIN3D\\nattribute vec2 a_centroid;\\n#endif\\nvarying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\\n#pragma mapbox: define lowp float base\\n#pragma mapbox: define lowp float height\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float base\\n#pragma mapbox: initialize lowp float height\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;\\n#ifdef TERRAIN3D\\nfloat baseDelta=10.0;float ele=get_elevation(a_centroid);\\n#else\\nfloat baseDelta=0.0;float ele=0.0;\\n#endif\\nbase=max(0.0,ele+base-baseDelta);height=max(0.0,ele+height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\\n? a_pos\\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}\"),hillshadePrepare:ae(\"#ifdef GL_ES\\nprecision highp float;\\n#endif\\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}\"),hillshade:ae(\"uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\\n#define PI 3.141592653589793\\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}\"),line:ae(\"uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"\\n#define scale 0.015873016\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\\n#ifdef TERRAIN3D\\nv_gamma_scale=1.0;\\n#else\\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\\n#endif\\nv_width2=vec2(outset,inset);}\"),lineGradient:ae(\"uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"\\n#define scale 0.015873016\\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\\n#ifdef TERRAIN3D\\nv_gamma_scale=1.0;\\n#else\\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\\n#endif\\nv_width2=vec2(outset,inset);}\"),linePattern:ae(\"#ifdef GL_ES\\nprecision highp float;\\n#endif\\nuniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"\\n#define scale 0.015873016\\n#define LINE_DISTANCE_SCALE 2.0\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float floorwidth\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float floorwidth\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\\n#ifdef TERRAIN3D\\nv_gamma_scale=1.0;\\n#else\\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\\n#endif\\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}\"),lineSDF:ae(\"uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float floorwidth\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float floorwidth\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"\\n#define scale 0.015873016\\n#define LINE_DISTANCE_SCALE 2.0\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float floorwidth\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float floorwidth\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\\n#ifdef TERRAIN3D\\nv_gamma_scale=1.0;\\n#else\\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\\n#endif\\nv_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}\"),raster:ae(\"uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}\"),symbolIcon:ae(\"uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),z,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}\"),symbolSDF:ae(\"#define SDF_PX 8.0\\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}\"),symbolTextAndIcon:ae(\"#define SDF_PX 8.0\\n#define SDF 1.0\\n#define ICON 0.0\\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\",\"const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}\"),terrain:ae(\"uniform sampler2D u_texture;varying vec2 v_texture_pos;void main() {gl_FragColor=texture2D(u_texture,v_texture_pos);}\",ie),terrainDepth:ae(\"varying float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {gl_FragColor=pack(v_depth);}\",ie),terrainCoords:ae(\"precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;varying vec2 v_texture_pos;void main() {vec4 rgba=texture2D(u_texture,v_texture_pos);gl_FragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}\",ie)};function ae(t,e){const i=/#pragma mapbox: ([\\w]+) ([\\w]+) ([\\w]+) ([\\w]+)/g,o=e.match(/attribute ([\\w]+) ([\\w]+)/g),a=t.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g),r=e.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g),s=r?r.concat(a):a,n={};return {fragmentSource:t=t.replace(i,((t,e,i,o,a)=>(n[a]=!0,\"define\"===e?`\\n#ifndef HAS_UNIFORM_u_${a}\\nvarying ${i} ${o} ${a};\\n#else\\nuniform ${i} ${o} u_${a};\\n#endif\\n`:`\\n#ifdef HAS_UNIFORM_u_${a}\\n ${i} ${o} ${a} = u_${a};\\n#endif\\n`))),vertexSource:e=e.replace(i,((t,e,i,o,a)=>{const r=\"float\"===o?\"vec2\":\"vec4\",s=a.match(/color/)?\"color\":r;return n[a]?\"define\"===e?`\\n#ifndef HAS_UNIFORM_u_${a}\\nuniform lowp float u_${a}_t;\\nattribute ${i} ${r} a_${a};\\nvarying ${i} ${o} ${a};\\n#else\\nuniform ${i} ${o} u_${a};\\n#endif\\n`:\"vec4\"===s?`\\n#ifndef HAS_UNIFORM_u_${a}\\n ${a} = a_${a};\\n#else\\n ${i} ${o} ${a} = u_${a};\\n#endif\\n`:`\\n#ifndef HAS_UNIFORM_u_${a}\\n ${a} = unpack_mix_${s}(a_${a}, u_${a}_t);\\n#else\\n ${i} ${o} ${a} = u_${a};\\n#endif\\n`:\"define\"===e?`\\n#ifndef HAS_UNIFORM_u_${a}\\nuniform lowp float u_${a}_t;\\nattribute ${i} ${r} a_${a};\\n#else\\nuniform ${i} ${o} u_${a};\\n#endif\\n`:\"vec4\"===s?`\\n#ifndef HAS_UNIFORM_u_${a}\\n ${i} ${o} ${a} = a_${a};\\n#else\\n ${i} ${o} ${a} = u_${a};\\n#endif\\n`:`\\n#ifndef HAS_UNIFORM_u_${a}\\n ${i} ${o} ${a} = unpack_mix_${s}(a_${a}, u_${a}_t);\\n#else\\n ${i} ${o} ${a} = u_${a};\\n#endif\\n`})),staticAttributes:o,staticUniforms:s}}class re{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null;}bind(t,e,i,o,a,r,s,n,l){this.context=t;let c=this.boundPaintVertexBuffers.length!==o.length;for(let t=0;!c&&t({u_depth:new t.Uniform1i(e,i.u_depth),u_terrain:new t.Uniform1i(e,i.u_terrain),u_terrain_dim:new t.Uniform1f(e,i.u_terrain_dim),u_terrain_matrix:new t.UniformMatrix4f(e,i.u_terrain_matrix),u_terrain_unpack:new t.Uniform4f(e,i.u_terrain_unpack),u_terrain_offset:new t.Uniform1f(e,i.u_terrain_offset),u_terrain_exaggeration:new t.Uniform1f(e,i.u_terrain_exaggeration)}))(e,w),this.binderUniforms=a?a.getUniforms(e,w):[];}draw(t,e,i,o,a,r,s,n,l,c,h,u,d,m,_,p,f,g){const x=t.gl;if(this.failedToCreate)return;if(t.program.set(this.program),t.setDepthMode(i),t.setStencilMode(o),t.setColorMode(a),t.setCullFace(r),n){t.activeTexture.set(x.TEXTURE2),x.bindTexture(x.TEXTURE_2D,n.depthTexture),t.activeTexture.set(x.TEXTURE3),x.bindTexture(x.TEXTURE_2D,n.texture);for(const t in this.terrainUniforms)this.terrainUniforms[t].set(n[t]);}for(const t in this.fixedUniforms)this.fixedUniforms[t].set(s[t]);_&&_.setUniforms(t,this.binderUniforms,d,{zoom:m});let v=0;switch(e){case x.LINES:v=2;break;case x.TRIANGLES:v=3;break;case x.LINE_STRIP:v=1;}for(const i of u.get()){const o=i.vaos||(i.vaos={});(o[l]||(o[l]=new re)).bind(t,this,c,_?_.getPaintVertexBuffers():[],h,i.vertexOffset,p,f,g),x.drawElements(e,i.primitiveLength*v,x.UNSIGNED_SHORT,i.primitiveOffset*v*2);}}}function le(t,e,i){const o=1/bt(i,1,e.transform.tileZoom),a=Math.pow(2,i.tileID.overscaledZ),r=i.tileSize*Math.pow(2,e.transform.tileZoom)/a,s=r*(i.tileID.canonical.x+i.tileID.wrap*a),n=r*i.tileID.canonical.y;return {u_image:0,u_texsize:i.imageAtlasTexture.size,u_scale:[o,t.fromScale,t.toScale],u_fade:t.t,u_pixel_coord_upper:[s>>16,n>>16],u_pixel_coord_lower:[65535&s,65535&n]}}const ce=(e,i,o,a)=>{const r=i.style.light,s=r.properties.get(\"position\"),n=[s.x,s.y,s.z],l=t.create$1();\"viewport\"===r.properties.get(\"anchor\")&&t.fromRotation(l,-i.transform.angle),t.transformMat3(n,n,l);const c=r.properties.get(\"color\");return {u_matrix:e,u_lightpos:n,u_lightintensity:r.properties.get(\"intensity\"),u_lightcolor:[c.r,c.g,c.b],u_vertical_gradient:+o,u_opacity:a}},he=(e,i,o,a,r,s,n)=>t.extend(ce(e,i,o,a),le(s,i,n),{u_height_factor:-Math.pow(2,r.overscaledZ)/n.tileSize/8}),ue=t=>({u_matrix:t}),de=(e,i,o,a)=>t.extend(ue(e),le(o,i,a)),me=(t,e)=>({u_matrix:t,u_world:e}),_e=(e,i,o,a,r)=>t.extend(de(e,i,o,a),{u_world:r}),pe=(t,e,i,o)=>{const a=t.transform;let r,s;if(\"map\"===o.paint.get(\"circle-pitch-alignment\")){const t=bt(i,1,a.zoom);r=!0,s=[t,t];}else r=!1,s=a.pixelsToGLUnits;return {u_camera_to_center_distance:a.cameraToCenterDistance,u_scale_with_map:+(\"map\"===o.paint.get(\"circle-pitch-scale\")),u_matrix:t.translatePosMatrix(e.posMatrix,i,o.paint.get(\"circle-translate\"),o.paint.get(\"circle-translate-anchor\")),u_pitch_with_map:+r,u_device_pixel_ratio:t.pixelRatio,u_extrude_scale:s}},fe=(t,e,i)=>{const o=bt(i,1,e.zoom),a=Math.pow(2,e.zoom-i.tileID.overscaledZ),r=i.tileID.overscaleFactor();return {u_matrix:t,u_camera_to_center_distance:e.cameraToCenterDistance,u_pixels_to_tile_units:o,u_extrude_scale:[e.pixelsToGLUnits[0]/(o*a),e.pixelsToGLUnits[1]/(o*a)],u_overscale_factor:r}},ge=(t,e,i=1)=>({u_matrix:t,u_color:e,u_overlay:0,u_overlay_scale:i}),xe=t=>({u_matrix:t}),ve=(t,e,i,o)=>({u_matrix:t,u_extrude_scale:bt(e,1,i),u_intensity:o});function ye(e,i){const o=Math.pow(2,i.canonical.z),a=i.canonical.y;return [new t.MercatorCoordinate(0,a/o).toLngLat().lat,new t.MercatorCoordinate(0,(a+1)/o).toLngLat().lat]}const be=(t,e,i,o)=>{const a=t.transform;return {u_matrix:Ce(t,e,i,o),u_ratio:1/bt(e,1,a.zoom),u_device_pixel_ratio:t.pixelRatio,u_units_to_pixels:[1/a.pixelsToGLUnits[0],1/a.pixelsToGLUnits[1]]}},we=(e,i,o,a,r)=>t.extend(be(e,i,o,r),{u_image:0,u_image_height:a}),Te=(t,e,i,o,a)=>{const r=t.transform,s=Ie(e,r);return {u_matrix:Ce(t,e,i,a),u_texsize:e.imageAtlasTexture.size,u_ratio:1/bt(e,1,r.zoom),u_device_pixel_ratio:t.pixelRatio,u_image:0,u_scale:[s,o.fromScale,o.toScale],u_fade:o.t,u_units_to_pixels:[1/r.pixelsToGLUnits[0],1/r.pixelsToGLUnits[1]]}},Ee=(e,i,o,a,r,s)=>{const n=e.lineAtlas,l=Ie(i,e.transform),c=\"round\"===o.layout.get(\"line-cap\"),h=n.getDash(a.from,c),u=n.getDash(a.to,c),d=h.width*r.fromScale,m=u.width*r.toScale;return t.extend(be(e,i,o,s),{u_patternscale_a:[l/d,-h.height/2],u_patternscale_b:[l/m,-u.height/2],u_sdfgamma:n.width/(256*Math.min(d,m)*e.pixelRatio)/2,u_image:0,u_tex_y_a:h.y,u_tex_y_b:u.y,u_mix:r.t})};function Ie(t,e){return 1/bt(t,1,e.tileZoom)}function Ce(t,e,i,o){return t.translatePosMatrix(o?o.posMatrix:e.tileID.posMatrix,e,i.paint.get(\"line-translate\"),i.paint.get(\"line-translate-anchor\"))}const Se=(t,e,i,o,a)=>{return {u_matrix:t,u_tl_parent:e,u_scale_parent:i,u_buffer_scale:1,u_fade_t:o.mix,u_opacity:o.opacity*a.paint.get(\"raster-opacity\"),u_image0:0,u_image1:1,u_brightness_low:a.paint.get(\"raster-brightness-min\"),u_brightness_high:a.paint.get(\"raster-brightness-max\"),u_saturation_factor:(s=a.paint.get(\"raster-saturation\"),s>0?1-1/(1.001-s):-s),u_contrast_factor:(r=a.paint.get(\"raster-contrast\"),r>0?1/(1-r):1+r),u_spin_weights:De(a.paint.get(\"raster-hue-rotate\"))};var r,s;};function De(t){t*=Math.PI/180;const e=Math.sin(t),i=Math.cos(t);return [(2*i+1)/3,(-Math.sqrt(3)*e-i+1)/3,(Math.sqrt(3)*e-i+1)/3]}const ze=(t,e,i,o,a,r,s,n,l,c)=>{const h=a.transform;return {u_is_size_zoom_constant:+(\"constant\"===t||\"source\"===t),u_is_size_feature_constant:+(\"constant\"===t||\"camera\"===t),u_size_t:e?e.uSizeT:0,u_size:e?e.uSize:0,u_camera_to_center_distance:h.cameraToCenterDistance,u_pitch:h.pitch/360*2*Math.PI,u_rotate_symbol:+i,u_aspect_ratio:h.width/h.height,u_fade_change:a.options.fadeDuration?a.symbolFadeChange:1,u_matrix:r,u_label_plane_matrix:s,u_coord_matrix:n,u_is_text:+l,u_pitch_with_map:+o,u_texsize:c,u_texture:0}},Pe=(e,i,o,a,r,s,n,l,c,h,u)=>{const d=r.transform;return t.extend(ze(e,i,o,a,r,s,n,l,c,h),{u_gamma_scale:a?Math.cos(d._pitch)*d.cameraToCenterDistance:1,u_device_pixel_ratio:r.pixelRatio,u_is_halo:+u})},Me=(e,i,o,a,r,s,n,l,c,h)=>t.extend(Pe(e,i,o,a,r,s,n,l,!0,c,!0),{u_texsize_icon:h,u_texture_icon:1}),Ae=(t,e,i)=>({u_matrix:t,u_opacity:e,u_color:i}),Le=(e,i,o,a,r,s)=>t.extend(function(t,e,i,o){const a=i.imageManager.getPattern(t.from.toString()),r=i.imageManager.getPattern(t.to.toString()),{width:s,height:n}=i.imageManager.getPixelSize(),l=Math.pow(2,o.tileID.overscaledZ),c=o.tileSize*Math.pow(2,i.transform.tileZoom)/l,h=c*(o.tileID.canonical.x+o.tileID.wrap*l),u=c*o.tileID.canonical.y;return {u_image:0,u_pattern_tl_a:a.tl,u_pattern_br_a:a.br,u_pattern_tl_b:r.tl,u_pattern_br_b:r.br,u_texsize:[s,n],u_mix:e.t,u_pattern_size_a:a.displaySize,u_pattern_size_b:r.displaySize,u_scale_a:e.fromScale,u_scale_b:e.toScale,u_tile_units_to_pixels:1/bt(o,1,i.transform.tileZoom),u_pixel_coord_upper:[h>>16,u>>16],u_pixel_coord_lower:[65535&h,65535&u]}}(a,s,o,r),{u_matrix:e,u_opacity:i}),Re={fillExtrusion:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_lightpos:new t.Uniform3f(e,i.u_lightpos),u_lightintensity:new t.Uniform1f(e,i.u_lightintensity),u_lightcolor:new t.Uniform3f(e,i.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,i.u_vertical_gradient),u_opacity:new t.Uniform1f(e,i.u_opacity)}),fillExtrusionPattern:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_lightpos:new t.Uniform3f(e,i.u_lightpos),u_lightintensity:new t.Uniform1f(e,i.u_lightintensity),u_lightcolor:new t.Uniform3f(e,i.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,i.u_vertical_gradient),u_height_factor:new t.Uniform1f(e,i.u_height_factor),u_image:new t.Uniform1i(e,i.u_image),u_texsize:new t.Uniform2f(e,i.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,i.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,i.u_scale),u_fade:new t.Uniform1f(e,i.u_fade),u_opacity:new t.Uniform1f(e,i.u_opacity)}),fill:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix)}),fillPattern:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_image:new t.Uniform1i(e,i.u_image),u_texsize:new t.Uniform2f(e,i.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,i.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,i.u_scale),u_fade:new t.Uniform1f(e,i.u_fade)}),fillOutline:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_world:new t.Uniform2f(e,i.u_world)}),fillOutlinePattern:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_world:new t.Uniform2f(e,i.u_world),u_image:new t.Uniform1i(e,i.u_image),u_texsize:new t.Uniform2f(e,i.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,i.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,i.u_scale),u_fade:new t.Uniform1f(e,i.u_fade)}),circle:(e,i)=>({u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_scale_with_map:new t.Uniform1i(e,i.u_scale_with_map),u_pitch_with_map:new t.Uniform1i(e,i.u_pitch_with_map),u_extrude_scale:new t.Uniform2f(e,i.u_extrude_scale),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_matrix:new t.UniformMatrix4f(e,i.u_matrix)}),collisionBox:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_pixels_to_tile_units:new t.Uniform1f(e,i.u_pixels_to_tile_units),u_extrude_scale:new t.Uniform2f(e,i.u_extrude_scale),u_overscale_factor:new t.Uniform1f(e,i.u_overscale_factor)}),collisionCircle:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_inv_matrix:new t.UniformMatrix4f(e,i.u_inv_matrix),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_viewport_size:new t.Uniform2f(e,i.u_viewport_size)}),debug:(e,i)=>({u_color:new t.UniformColor(e,i.u_color),u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_overlay:new t.Uniform1i(e,i.u_overlay),u_overlay_scale:new t.Uniform1f(e,i.u_overlay_scale)}),clippingMask:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix)}),heatmap:(e,i)=>({u_extrude_scale:new t.Uniform1f(e,i.u_extrude_scale),u_intensity:new t.Uniform1f(e,i.u_intensity),u_matrix:new t.UniformMatrix4f(e,i.u_matrix)}),heatmapTexture:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_world:new t.Uniform2f(e,i.u_world),u_image:new t.Uniform1i(e,i.u_image),u_color_ramp:new t.Uniform1i(e,i.u_color_ramp),u_opacity:new t.Uniform1f(e,i.u_opacity)}),hillshade:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_image:new t.Uniform1i(e,i.u_image),u_latrange:new t.Uniform2f(e,i.u_latrange),u_light:new t.Uniform2f(e,i.u_light),u_shadow:new t.UniformColor(e,i.u_shadow),u_highlight:new t.UniformColor(e,i.u_highlight),u_accent:new t.UniformColor(e,i.u_accent)}),hillshadePrepare:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_image:new t.Uniform1i(e,i.u_image),u_dimension:new t.Uniform2f(e,i.u_dimension),u_zoom:new t.Uniform1f(e,i.u_zoom),u_unpack:new t.Uniform4f(e,i.u_unpack)}),line:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_ratio:new t.Uniform1f(e,i.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,i.u_units_to_pixels)}),lineGradient:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_ratio:new t.Uniform1f(e,i.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,i.u_units_to_pixels),u_image:new t.Uniform1i(e,i.u_image),u_image_height:new t.Uniform1f(e,i.u_image_height)}),linePattern:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_texsize:new t.Uniform2f(e,i.u_texsize),u_ratio:new t.Uniform1f(e,i.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_image:new t.Uniform1i(e,i.u_image),u_units_to_pixels:new t.Uniform2f(e,i.u_units_to_pixels),u_scale:new t.Uniform3f(e,i.u_scale),u_fade:new t.Uniform1f(e,i.u_fade)}),lineSDF:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_ratio:new t.Uniform1f(e,i.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,i.u_units_to_pixels),u_patternscale_a:new t.Uniform2f(e,i.u_patternscale_a),u_patternscale_b:new t.Uniform2f(e,i.u_patternscale_b),u_sdfgamma:new t.Uniform1f(e,i.u_sdfgamma),u_image:new t.Uniform1i(e,i.u_image),u_tex_y_a:new t.Uniform1f(e,i.u_tex_y_a),u_tex_y_b:new t.Uniform1f(e,i.u_tex_y_b),u_mix:new t.Uniform1f(e,i.u_mix)}),raster:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_tl_parent:new t.Uniform2f(e,i.u_tl_parent),u_scale_parent:new t.Uniform1f(e,i.u_scale_parent),u_buffer_scale:new t.Uniform1f(e,i.u_buffer_scale),u_fade_t:new t.Uniform1f(e,i.u_fade_t),u_opacity:new t.Uniform1f(e,i.u_opacity),u_image0:new t.Uniform1i(e,i.u_image0),u_image1:new t.Uniform1i(e,i.u_image1),u_brightness_low:new t.Uniform1f(e,i.u_brightness_low),u_brightness_high:new t.Uniform1f(e,i.u_brightness_high),u_saturation_factor:new t.Uniform1f(e,i.u_saturation_factor),u_contrast_factor:new t.Uniform1f(e,i.u_contrast_factor),u_spin_weights:new t.Uniform3f(e,i.u_spin_weights)}),symbolIcon:(e,i)=>({u_is_size_zoom_constant:new t.Uniform1i(e,i.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,i.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,i.u_size_t),u_size:new t.Uniform1f(e,i.u_size),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,i.u_pitch),u_rotate_symbol:new t.Uniform1i(e,i.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,i.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,i.u_fade_change),u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,i.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,i.u_coord_matrix),u_is_text:new t.Uniform1i(e,i.u_is_text),u_pitch_with_map:new t.Uniform1i(e,i.u_pitch_with_map),u_texsize:new t.Uniform2f(e,i.u_texsize),u_texture:new t.Uniform1i(e,i.u_texture)}),symbolSDF:(e,i)=>({u_is_size_zoom_constant:new t.Uniform1i(e,i.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,i.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,i.u_size_t),u_size:new t.Uniform1f(e,i.u_size),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,i.u_pitch),u_rotate_symbol:new t.Uniform1i(e,i.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,i.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,i.u_fade_change),u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,i.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,i.u_coord_matrix),u_is_text:new t.Uniform1i(e,i.u_is_text),u_pitch_with_map:new t.Uniform1i(e,i.u_pitch_with_map),u_texsize:new t.Uniform2f(e,i.u_texsize),u_texture:new t.Uniform1i(e,i.u_texture),u_gamma_scale:new t.Uniform1f(e,i.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,i.u_is_halo)}),symbolTextAndIcon:(e,i)=>({u_is_size_zoom_constant:new t.Uniform1i(e,i.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,i.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,i.u_size_t),u_size:new t.Uniform1f(e,i.u_size),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,i.u_pitch),u_rotate_symbol:new t.Uniform1i(e,i.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,i.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,i.u_fade_change),u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,i.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,i.u_coord_matrix),u_is_text:new t.Uniform1i(e,i.u_is_text),u_pitch_with_map:new t.Uniform1i(e,i.u_pitch_with_map),u_texsize:new t.Uniform2f(e,i.u_texsize),u_texsize_icon:new t.Uniform2f(e,i.u_texsize_icon),u_texture:new t.Uniform1i(e,i.u_texture),u_texture_icon:new t.Uniform1i(e,i.u_texture_icon),u_gamma_scale:new t.Uniform1f(e,i.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,i.u_is_halo)}),background:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_opacity:new t.Uniform1f(e,i.u_opacity),u_color:new t.UniformColor(e,i.u_color)}),backgroundPattern:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_opacity:new t.Uniform1f(e,i.u_opacity),u_image:new t.Uniform1i(e,i.u_image),u_pattern_tl_a:new t.Uniform2f(e,i.u_pattern_tl_a),u_pattern_br_a:new t.Uniform2f(e,i.u_pattern_br_a),u_pattern_tl_b:new t.Uniform2f(e,i.u_pattern_tl_b),u_pattern_br_b:new t.Uniform2f(e,i.u_pattern_br_b),u_texsize:new t.Uniform2f(e,i.u_texsize),u_mix:new t.Uniform1f(e,i.u_mix),u_pattern_size_a:new t.Uniform2f(e,i.u_pattern_size_a),u_pattern_size_b:new t.Uniform2f(e,i.u_pattern_size_b),u_scale_a:new t.Uniform1f(e,i.u_scale_a),u_scale_b:new t.Uniform1f(e,i.u_scale_b),u_pixel_coord_upper:new t.Uniform2f(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,i.u_pixel_coord_lower),u_tile_units_to_pixels:new t.Uniform1f(e,i.u_tile_units_to_pixels)}),terrain:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_texture:new t.Uniform1i(e,i.u_texture)}),terrainDepth:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix)}),terrainCoords:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_texture:new t.Uniform1i(e,i.u_texture),u_terrain_coords_id:new t.Uniform1f(e,i.u_terrain_coords_id)})};class ke{constructor(t,e,i){this.context=t;const o=t.gl;this.buffer=o.createBuffer(),this.dynamicDraw=Boolean(i),this.context.unbindVAO(),t.bindElementBuffer.set(this.buffer),o.bufferData(o.ELEMENT_ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?o.DYNAMIC_DRAW:o.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer;}bind(){this.context.bindElementBuffer.set(this.buffer);}updateData(t){const e=this.context.gl;if(!this.dynamicDraw)throw new Error(\"Attempted to update data while not in dynamic mode.\");this.context.unbindVAO(),this.bind(),e.bufferSubData(e.ELEMENT_ARRAY_BUFFER,0,t.arrayBuffer);}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer);}}const Be={Int8:\"BYTE\",Uint8:\"UNSIGNED_BYTE\",Int16:\"SHORT\",Uint16:\"UNSIGNED_SHORT\",Int32:\"INT\",Uint32:\"UNSIGNED_INT\",Float32:\"FLOAT\"};class Fe{constructor(t,e,i,o){this.length=e.length,this.attributes=i,this.itemSize=e.bytesPerElement,this.dynamicDraw=o,this.context=t;const a=t.gl;this.buffer=a.createBuffer(),t.bindVertexBuffer.set(this.buffer),a.bufferData(a.ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?a.DYNAMIC_DRAW:a.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer;}bind(){this.context.bindVertexBuffer.set(this.buffer);}updateData(t){if(t.length!==this.length)throw new Error(`Length of new data is ${t.length}, which doesn't match current length of ${this.length}`);const e=this.context.gl;this.bind(),e.bufferSubData(e.ARRAY_BUFFER,0,t.arrayBuffer);}enableAttributes(t,e){for(let i=0;i0){const i=t.create(),o=x;t.mul(i,g.placementInvProjMatrix,e.transform.glCoordMatrix),t.mul(i,i,g.placementViewportMatrix),u.push({circleArray:y,circleOffset:m,transform:o,invTransform:i,coord:p}),d+=y.length/4,m=d;}v&&h.draw(l,c.LINES,wi.disabled,Ei.disabled,e.colorModeForRenderPass(),Ii.disabled,fe(x,e.transform,f),e.style.terrain&&e.style.terrain.getTerrainData(p),o.id,v.layoutVertexBuffer,v.indexBuffer,v.segments,null,e.transform.zoom,null,null,v.collisionVertexBuffer);}if(!n||!u.length)return;const _=e.useProgram(\"collisionCircle\"),p=new t.CollisionCircleLayoutArray;p.resize(4*d),p._trim();let f=0;for(const t of u)for(let e=0;e=0&&(p[f.associatedIconIndex]={shiftedAnchor:I,angle:C});}else gt(f.numGlyphs,m);}if(h){_.clear();const i=e.icon.placedSymbolArray;for(let e=0;ee.style.terrain.getElevation(l,t,i):null,i=\"map\"===o.layout.get(\"text-rotation-alignment\");ht(c,l.posMatrix,e,r,B,F,g,h,i,t);}const N=e.translatePosMatrix(l.posMatrix,a,s,n),G=x||r&&T||U?Di:B,Z=e.translatePosMatrix(F,a,s,n,!0),V=m&&0!==o.paint.get(r?\"text-halo-width\":\"icon-halo-width\").constantOr(1);let q;q=m?c.iconsInText?Me(w.kind,S,v,g,e,N,G,Z,z,L):Pe(w.kind,S,v,g,e,N,G,Z,r,z,!0):ze(w.kind,S,v,g,e,N,G,Z,r,z);const j={program:C,buffers:u,uniformValues:q,atlasTexture:P,atlasTextureIcon:R,atlasInterpolation:M,atlasInterpolationIcon:A,isSDF:m,hasHalo:V};if(y&&c.canOverlap){b=!0;const e=u.segments.get();for(const i of e)E.push({segments:new t.SegmentVector([i]),sortKey:i.sortKey,state:j,terrainData:D});}else E.push({segments:u.segments,sortKey:0,state:j,terrainData:D});}b&&E.sort(((t,e)=>t.sortKey-e.sortKey));for(const t of E){const i=t.state;if(m.activeTexture.set(_.TEXTURE0),i.atlasTexture.bind(i.atlasInterpolation,_.CLAMP_TO_EDGE),i.atlasTextureIcon&&(m.activeTexture.set(_.TEXTURE1),i.atlasTextureIcon&&i.atlasTextureIcon.bind(i.atlasInterpolationIcon,_.CLAMP_TO_EDGE)),i.isSDF){const a=i.uniformValues;i.hasHalo&&(a.u_is_halo=1,Li(i.buffers,t.segments,o,e,i.program,w,u,d,a,t.terrainData)),a.u_is_halo=0;}Li(i.buffers,t.segments,o,e,i.program,w,u,d,i.uniformValues,t.terrainData);}}function Li(t,e,i,o,a,r,s,n,l,c){const h=o.context;a.draw(h,h.gl.TRIANGLES,r,s,n,Ii.disabled,l,c,i.id,t.layoutVertexBuffer,t.indexBuffer,e,i.paint,o.transform.zoom,t.programConfigurations.get(i.id),t.dynamicLayoutVertexBuffer,t.opacityVertexBuffer);}function Ri(t,e,i,o,a,r,s){const n=t.context.gl,l=i.paint.get(\"fill-pattern\"),c=l&&l.constantOr(1),h=i.getCrossfadeParameters();let u,d,m,_,p;s?(d=c&&!i.getPaintProperty(\"fill-outline-color\")?\"fillOutlinePattern\":\"fillOutline\",u=n.LINES):(d=c?\"fillPattern\":\"fill\",u=n.TRIANGLES);for(const f of o){const o=e.getTile(f);if(c&&!o.patternsLoaded())continue;const g=o.getBucket(i);if(!g)continue;const x=g.programConfigurations.get(i.id),v=t.useProgram(d,x),y=t.style.terrain&&t.style.terrain.getTerrainData(f);c&&(t.context.activeTexture.set(n.TEXTURE0),o.imageAtlasTexture.bind(n.LINEAR,n.CLAMP_TO_EDGE),x.updatePaintBuffers(h));const b=l.constantOr(null);if(b&&o.imageAtlas){const t=o.imageAtlas,e=t.patternPositions[b.to.toString()],i=t.patternPositions[b.from.toString()];e&&i&&x.setConstantPatternPositions(e,i);}const w=y?f:null,T=t.translatePosMatrix(w?w.posMatrix:f.posMatrix,o,i.paint.get(\"fill-translate\"),i.paint.get(\"fill-translate-anchor\"));if(s){_=g.indexBuffer2,p=g.segments2;const e=[n.drawingBufferWidth,n.drawingBufferHeight];m=\"fillOutlinePattern\"===d&&c?_e(T,t,h,o,e):me(T,e);}else _=g.indexBuffer,p=g.segments,m=c?de(T,t,h,o):ue(T);v.draw(t.context,u,a,t.stencilModeForClipping(f),r,Ii.disabled,m,y,i.id,g.layoutVertexBuffer,_,p,i.paint,t.transform.zoom,x);}}function ki(t,e,i,o,a,r,s){const n=t.context,l=n.gl,c=i.paint.get(\"fill-extrusion-pattern\"),h=c.constantOr(1),u=i.getCrossfadeParameters(),d=i.paint.get(\"fill-extrusion-opacity\");for(const m of o){const o=e.getTile(m),_=o.getBucket(i);if(!_)continue;const p=t.style.terrain&&t.style.terrain.getTerrainData(m),f=_.programConfigurations.get(i.id),g=t.useProgram(h?\"fillExtrusionPattern\":\"fillExtrusion\",f);h&&(t.context.activeTexture.set(l.TEXTURE0),o.imageAtlasTexture.bind(l.LINEAR,l.CLAMP_TO_EDGE),f.updatePaintBuffers(u));const x=c.constantOr(null);if(x&&o.imageAtlas){const t=o.imageAtlas,e=t.patternPositions[x.to.toString()],i=t.patternPositions[x.from.toString()];e&&i&&f.setConstantPatternPositions(e,i);}const v=t.translatePosMatrix(m.posMatrix,o,i.paint.get(\"fill-extrusion-translate\"),i.paint.get(\"fill-extrusion-translate-anchor\")),y=i.paint.get(\"fill-extrusion-vertical-gradient\"),b=h?he(v,t,y,d,m,u,o):ce(v,t,y,d);g.draw(n,n.gl.TRIANGLES,a,r,s,Ii.backCCW,b,p,i.id,_.layoutVertexBuffer,_.indexBuffer,_.segments,i.paint,t.transform.zoom,f,t.style.terrain&&_.centroidVertexBuffer);}}function Bi(t,e,i,o,a,r,s){const n=t.context,l=n.gl,c=i.fbo;if(!c)return;const h=t.useProgram(\"hillshade\"),u=t.style.terrain&&t.style.terrain.getTerrainData(e);n.activeTexture.set(l.TEXTURE0),l.bindTexture(l.TEXTURE_2D,c.colorAttachment.get()),h.draw(n,l.TRIANGLES,a,r,s,Ii.disabled,((t,e,i,o)=>{const a=i.paint.get(\"hillshade-shadow-color\"),r=i.paint.get(\"hillshade-highlight-color\"),s=i.paint.get(\"hillshade-accent-color\");let n=i.paint.get(\"hillshade-illumination-direction\")*(Math.PI/180);\"viewport\"===i.paint.get(\"hillshade-illumination-anchor\")&&(n-=t.transform.angle);const l=!t.options.moving;return {u_matrix:o?o.posMatrix:t.transform.calculatePosMatrix(e.tileID.toUnwrapped(),l),u_image:0,u_latrange:ye(0,e.tileID),u_light:[i.paint.get(\"hillshade-exaggeration\"),n],u_shadow:a,u_highlight:r,u_accent:s}})(t,i,o,u?e:null),u,o.id,t.rasterBoundsBuffer,t.quadTriangleIndexBuffer,t.rasterBoundsSegments);}function Fi(e,i,o,a,r,s){const n=e.context,c=n.gl,h=i.dem;if(h&&h.data){const u=h.dim,d=h.stride,m=h.getPixels();if(n.activeTexture.set(c.TEXTURE1),n.pixelStoreUnpackPremultiplyAlpha.set(!1),i.demTexture=i.demTexture||e.getTileTexture(d),i.demTexture){const t=i.demTexture;t.update(m,{premultiply:!1}),t.bind(c.NEAREST,c.CLAMP_TO_EDGE);}else i.demTexture=new l(n,m,c.RGBA,{premultiply:!1}),i.demTexture.bind(c.NEAREST,c.CLAMP_TO_EDGE);n.activeTexture.set(c.TEXTURE0);let _=i.fbo;if(!_){const t=new l(n,{width:u,height:u,data:null},c.RGBA);t.bind(c.LINEAR,c.CLAMP_TO_EDGE),_=i.fbo=n.createFramebuffer(u,u,!0),_.colorAttachment.set(t.texture);}n.bindFramebuffer.set(_.framebuffer),n.viewport.set([0,0,u,u]),e.useProgram(\"hillshadePrepare\").draw(n,c.TRIANGLES,a,r,s,Ii.disabled,((e,i)=>{const o=i.stride,a=t.create();return t.ortho(a,0,t.EXTENT,-t.EXTENT,0,0,1),t.translate(a,a,[0,-t.EXTENT,0]),{u_matrix:a,u_image:1,u_dimension:[o,o],u_zoom:e.overscaledZ,u_unpack:i.getUnpackVector()}})(i.tileID,h),null,o.id,e.rasterBoundsBuffer,e.quadTriangleIndexBuffer,e.rasterBoundsSegments),i.needsHillshadePrepare=!1;}}function Oi(e,i,o,a,r,s){const n=a.paint.get(\"raster-fade-duration\");if(!s&&n>0){const a=t.exported.now(),s=(a-e.timeAdded)/n,l=i?(a-i.timeAdded)/n:-1,c=o.getSource(),h=r.coveringZoomLevel({tileSize:c.tileSize,roundZoom:c.roundZoom}),u=!i||Math.abs(i.tileID.overscaledZ-h)>Math.abs(e.tileID.overscaledZ-h),d=u&&e.refreshedUponExpiration?1:t.clamp(u?s:1-l,0,1);return e.refreshedUponExpiration&&s>=1&&(e.refreshedUponExpiration=!1),i?{opacity:1,mix:1-d}:{opacity:d,mix:0}}return {opacity:1,mix:0}}const Ui=new t.Color(1,0,0,1),Ni=new t.Color(0,1,0,1),Gi=new t.Color(0,0,1,1),Zi=new t.Color(1,0,1,1),Vi=new t.Color(0,1,1,1);function qi(t,e,i,o){$i(t,0,e+i/2,t.transform.width,i,o);}function ji(t,e,i,o){$i(t,e-i/2,0,i,t.transform.height,o);}function $i(t,e,i,o,a,r){const s=t.context,n=s.gl;n.enable(n.SCISSOR_TEST),n.scissor(e*t.pixelRatio,i*t.pixelRatio,o*t.pixelRatio,a*t.pixelRatio),s.clear({color:r}),n.disable(n.SCISSOR_TEST);}function Xi(e,i,o){const a=e.context,r=a.gl,s=o.posMatrix,n=e.useProgram(\"debug\"),l=wi.disabled,c=Ei.disabled,h=e.colorModeForRenderPass(),u=\"$debug\",d=e.style.terrain&&e.style.terrain.getTerrainData(o);a.activeTexture.set(r.TEXTURE0),e.emptyTexture.bind(r.LINEAR,r.CLAMP_TO_EDGE);const m=i.getTileByID(o.key).latestRawTileData,_=Math.floor((m&&m.byteLength||0)/1024),p=i.getTile(o).tileSize,f=512/Math.min(p,512)*(o.overscaledZ/e.transform.zoom)*.5;let g=o.canonical.toString();o.overscaledZ!==o.canonical.z&&(g+=` => ${o.overscaledZ}`),function(t,e){t.initDebugOverlayCanvas();const i=t.debugOverlayCanvas,o=t.context.gl,a=t.debugOverlayCanvas.getContext(\"2d\");a.clearRect(0,0,i.width,i.height),a.shadowColor=\"white\",a.shadowBlur=2,a.lineWidth=1.5,a.strokeStyle=\"white\",a.textBaseline=\"top\",a.font=\"bold 36px Open Sans, sans-serif\",a.fillText(e,5,5),a.strokeText(e,5,5),t.debugOverlayTexture.update(i),t.debugOverlayTexture.bind(o.LINEAR,o.CLAMP_TO_EDGE);}(e,`${g} ${_}kB`),n.draw(a,r.TRIANGLES,l,c,yi.alphaBlended,Ii.disabled,ge(s,t.Color.transparent,f),null,u,e.debugBuffer,e.quadTriangleIndexBuffer,e.debugSegments),n.draw(a,r.LINE_STRIP,l,c,h,Ii.disabled,ge(s,t.Color.red),d,u,e.debugBuffer,e.tileBorderIndexBuffer,e.debugSegments);}function Wi(t,e,i){const o=t.context,a=o.gl,r=t.colorModeForRenderPass(),s=new wi(a.LEQUAL,wi.ReadWrite,t.depthRangeFor3D),n=t.useProgram(\"terrain\"),l=e.getTerrainMesh(),c=e.getTerrainData(i.tileID);o.bindFramebuffer.set(null),o.viewport.set([0,0,t.width,t.height]),o.activeTexture.set(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,e.getRTTFramebuffer().colorAttachment.get());const h=t.transform.calculatePosMatrix(i.tileID.toUnwrapped());n.draw(o,a.TRIANGLES,s,Ei.disabled,r,Ii.backCCW,{u_matrix:h,u_texture:0},c,\"terrain\",l.vertexBuffer,l.indexBuffer,l.segments);}function Hi(t,e,i,o){const a=t.context,r=i.tileSize*e.qualityFactor;i.textures[o]||(i.textures[o]=t.getTileTexture(r)||new l(a,{width:r,height:r,data:null},a.gl.RGBA),i.textures[o].bind(a.gl.LINEAR,a.gl.CLAMP_TO_EDGE),0===o&&e.sourceCache.renderHistory.unshift(i.tileID.key));const s=e.getRTTFramebuffer();s.colorAttachment.set(i.textures[o].texture),a.bindFramebuffer.set(s.framebuffer),a.viewport.set([0,0,r,r]);}class Ki{constructor(t){this._coordsDescendingInv={},this._coordsDescendingInvStr={},this.painter=t,this._renderToTexture={background:!0,fill:!0,line:!0,raster:!0},this._coordsDescendingInv={},this._coordsDescendingInvStr={},this._stacks=[],this._prevType=null,this._rerender={},this._renderableTiles=t.style.terrain.sourceCache.getRenderableTiles(),this._init();}_init(){const t=this.painter.style,e=t.terrain;for(const i in t.sourceCaches){this._coordsDescendingInv[i]={};const o=t.sourceCaches[i].getVisibleCoordinates();for(const t of o){const o=e.sourceCache.getTerrainCoords(t);for(const t in o)this._coordsDescendingInv[i][t]||(this._coordsDescendingInv[i][t]=[]),this._coordsDescendingInv[i][t].push(o[t]);}}for(const e of t._order){const i=t._layers[e],o=i.source;if(this._renderToTexture[i.type]&&!this._coordsDescendingInvStr[o]){this._coordsDescendingInvStr[o]={};for(const t in this._coordsDescendingInv[o])this._coordsDescendingInvStr[o][t]=this._coordsDescendingInv[o][t].map((t=>t.key)).sort().join();}}return this._renderableTiles.forEach((t=>{for(const i in this._coordsDescendingInvStr){const o=this._coordsDescendingInvStr[i][t.tileID.key];o&&o!==t.textureCoords[i]&&t.clearTextures(this.painter),e.needsRerender(i,t.tileID)&&t.clearTextures(this.painter);}this._rerender[t.tileID.key]=!t.textures.length;})),e.clearRerenderCache(),e.sourceCache.removeOutdated(this.painter),this}renderLayer(e){const i=e.type,o=this.painter,a=o.style._order,r=o.currentLayer,s=r+1===a.length;if(this._renderToTexture[i]&&(this._prevType&&this._renderToTexture[this._prevType]||this._stacks.push([]),this._prevType=i,this._stacks[this._stacks.length-1].push(a[r]),!s))return !0;if(this._renderToTexture[this._prevType]||\"hillshade\"===i||this._renderToTexture[i]&&s){this._prevType=i;const s=this._stacks.length-1,n=this._stacks[s]||[];for(const e of this._renderableTiles){if(Hi(o,o.style.terrain,e,s),this._rerender[e.tileID.key]){o.context.clear({color:t.Color.transparent});for(let t=0;ti.style.terrain.getElevation(r,t,e):null);}}}(a,e,o,i,o.layout.get(\"text-rotation-alignment\"),o.layout.get(\"text-pitch-alignment\"),r),0!==o.paint.get(\"icon-opacity\").constantOr(1)&&Ai(e,i,o,a,!1,o.paint.get(\"icon-translate\"),o.paint.get(\"icon-translate-anchor\"),o.layout.get(\"icon-rotation-alignment\"),o.layout.get(\"icon-pitch-alignment\"),o.layout.get(\"icon-keep-upright\"),s,n),0!==o.paint.get(\"text-opacity\").constantOr(1)&&Ai(e,i,o,a,!0,o.paint.get(\"text-translate\"),o.paint.get(\"text-translate-anchor\"),o.layout.get(\"text-rotation-alignment\"),o.layout.get(\"text-pitch-alignment\"),o.layout.get(\"text-keep-upright\"),s,n),i.map.showCollisionBoxes&&(Si(e,i,o,a,o.paint.get(\"text-translate\"),o.paint.get(\"text-translate-anchor\"),!0),Si(e,i,o,a,o.paint.get(\"icon-translate\"),o.paint.get(\"icon-translate-anchor\"),!1));},circle:function(e,i,o,a){if(\"translucent\"!==e.renderPass)return;const r=o.paint.get(\"circle-opacity\"),s=o.paint.get(\"circle-stroke-width\"),n=o.paint.get(\"circle-stroke-opacity\"),l=!o.layout.get(\"circle-sort-key\").isConstant();if(0===r.constantOr(1)&&(0===s.constantOr(1)||0===n.constantOr(1)))return;const c=e.context,h=c.gl,u=e.depthModeForSublayer(0,wi.ReadOnly),d=Ei.disabled,m=e.colorModeForRenderPass(),_=[];for(let r=0;rt.sortKey-e.sortKey));for(const t of _){const{programConfiguration:i,program:a,layoutVertexBuffer:r,indexBuffer:s,uniformValues:n,terrainData:l}=t.state;a.draw(c,h.TRIANGLES,u,d,m,Ii.disabled,n,l,o.id,r,s,t.segments,o.paint,e.transform.zoom,i);}},heatmap:function(e,i,o,a){if(0!==o.paint.get(\"heatmap-opacity\"))if(\"offscreen\"===e.renderPass){const r=e.context,s=r.gl,n=Ei.disabled,l=new yi([s.ONE,s.ONE],t.Color.transparent,[!0,!0,!0,!0]);!function(t,e,i){const o=t.gl;t.activeTexture.set(o.TEXTURE1),t.viewport.set([0,0,e.width/4,e.height/4]);let a=i.heatmapFbo;if(a)o.bindTexture(o.TEXTURE_2D,a.colorAttachment.get()),t.bindFramebuffer.set(a.framebuffer);else {const r=o.createTexture();o.bindTexture(o.TEXTURE_2D,r),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),a=i.heatmapFbo=t.createFramebuffer(e.width/4,e.height/4,!1),function(t,e,i,o){const a=t.gl;a.texImage2D(a.TEXTURE_2D,0,a.RGBA,e.width/4,e.height/4,0,a.RGBA,t.extRenderToTextureHalfFloat?t.extTextureHalfFloat.HALF_FLOAT_OES:a.UNSIGNED_BYTE,null),o.colorAttachment.set(i);}(t,e,r,a);}}(r,e,o),r.clear({color:t.Color.transparent});for(let t=0;t{const r=t.create();t.ortho(r,0,e.width,e.height,0,0,1);const s=e.context.gl;return {u_matrix:r,u_world:[s.drawingBufferWidth,s.drawingBufferHeight],u_image:0,u_color_ramp:1,u_opacity:i.paint.get(\"heatmap-opacity\")}})(e,i),null,i.id,e.viewportBuffer,e.quadTriangleIndexBuffer,e.viewportSegments,i.paint,e.transform.zoom);}(e,o));},line:function(e,i,o,a){if(\"translucent\"!==e.renderPass)return;const r=o.paint.get(\"line-opacity\"),s=o.paint.get(\"line-width\");if(0===r.constantOr(1)||0===s.constantOr(1))return;const n=e.depthModeForSublayer(0,wi.ReadOnly),c=e.colorModeForRenderPass(),h=o.paint.get(\"line-dasharray\"),u=o.paint.get(\"line-pattern\"),d=u.constantOr(1),m=o.paint.get(\"line-gradient\"),_=o.getCrossfadeParameters(),p=d?\"linePattern\":h?\"lineSDF\":m?\"lineGradient\":\"line\",f=e.context,g=f.gl;let x=!0;for(const r of a){const a=i.getTile(r);if(d&&!a.patternsLoaded())continue;const s=a.getBucket(o);if(!s)continue;const v=s.programConfigurations.get(o.id),y=e.context.program.get(),b=e.useProgram(p,v),w=x||b.program!==y,T=e.style.terrain&&e.style.terrain.getTerrainData(r),E=u.constantOr(null);if(E&&a.imageAtlas){const t=a.imageAtlas,e=t.patternPositions[E.to.toString()],i=t.patternPositions[E.from.toString()];e&&i&&v.setConstantPatternPositions(e,i);}const I=T?r:null,C=d?Te(e,a,o,_,I):h?Ee(e,a,o,h,_,I):m?we(e,a,o,s.lineClipsArray.length,I):be(e,a,o,I);if(d)f.activeTexture.set(g.TEXTURE0),a.imageAtlasTexture.bind(g.LINEAR,g.CLAMP_TO_EDGE),v.updatePaintBuffers(_);else if(h&&(w||e.lineAtlas.dirty))f.activeTexture.set(g.TEXTURE0),e.lineAtlas.bind(f);else if(m){const a=s.gradients[o.id];let n=a.texture;if(o.gradientVersion!==a.version){let c=256;if(o.stepInterpolant){const o=i.getSource().maxzoom,a=r.canonical.z===o?Math.ceil(1<256&&this.clearStencil(),i.setColorMode(yi.disabled),i.setDepthMode(wi.disabled);const a=this.useProgram(\"clippingMask\");this._tileClippingMaskIDs={};for(const t of e){const e=this._tileClippingMaskIDs[t.key]=this.nextStencilID++,r=this.style.terrain&&this.style.terrain.getTerrainData(t);a.draw(i,o.TRIANGLES,wi.disabled,new Ei({func:o.ALWAYS,mask:0},e,255,o.KEEP,o.KEEP,o.REPLACE),yi.disabled,Ii.disabled,xe(t.posMatrix),r,\"$clipping\",this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments);}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const t=this.nextStencilID++,e=this.context.gl;return new Ei({func:e.NOTEQUAL,mask:255},t,255,e.KEEP,e.KEEP,e.REPLACE)}stencilModeForClipping(t){const e=this.context.gl;return new Ei({func:e.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,e.KEEP,e.KEEP,e.REPLACE)}stencilConfigForOverlap(t){const e=this.context.gl,i=t.sort(((t,e)=>e.overscaledZ-t.overscaledZ)),o=i[i.length-1].overscaledZ,a=i[0].overscaledZ-o+1;if(a>1){this.currentStencilSource=void 0,this.nextStencilID+a>256&&this.clearStencil();const t={};for(let i=0;i=0;this.currentLayer--){const t=this.style._layers[o[this.currentLayer]],e=a[t.source],i=s[t.source];this._renderTileClippingMasks(t,i),this.renderLayer(this,e,t,i);}for(this.renderPass=\"translucent\",this.currentLayer=0;this.currentLayer{i.source&&!i.isHidden(this.transform.zoom)&&(i.source!==(e&&e.id)&&(e=this.style.sourceCaches[i.source]),(!t||t.getSource().maxzoom0?e.pop():null}isPatternMissing(t){if(!t)return !1;if(!t.from||!t.to)return !0;const e=this.imageManager.getPattern(t.from.toString()),i=this.imageManager.getPattern(t.to.toString());return !e||!i}useProgram(t,e){this.cache=this.cache||{};const i=t+(e?e.cacheKey:\"\")+(this._showOverdrawInspector?\"/overdraw\":\"\")+(this.style.terrain?\"/terrain\":\"\");return this.cache[i]||(this.cache[i]=new ne(this.context,t,oe[t],e,Re[t],this._showOverdrawInspector,this.style.terrain)),this.cache[i]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault();}setBaseState(){const t=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(t.FUNC_ADD);}initDebugOverlayCanvas(){null==this.debugOverlayCanvas&&(this.debugOverlayCanvas=document.createElement(\"canvas\"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new l(this.context,this.debugOverlayCanvas,this.context.gl.RGBA));}destroy(){this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy();}}class Qi{constructor(t,e){this.points=t,this.planes=e;}static fromInvProjectionMatrix(e,i,o){const a=Math.pow(2,o),r=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map((o=>{const r=1/(o=t.transformMat4([],o,e))[3]/i*a;return t.mul$1(o,o,[r,r,1/o[3],r])})),s=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((e=>{const i=t.sub([],r[e[0]],r[e[1]]),o=t.sub([],r[e[2]],r[e[1]]),a=t.normalize([],t.cross([],i,o)),s=-t.dot(a,r[e[1]]);return a.concat(s)}));return new Qi(r,s)}}class to{constructor(e,i){this.min=e,this.max=i,this.center=t.scale$1([],t.add([],this.min,this.max),.5);}quadrant(e){const i=[e%2==0,e<2],o=t.clone$2(this.min),a=t.clone$2(this.max);for(let t=0;t=0&&s++;if(0===s)return 0;s!==i.length&&(o=!1);}if(o)return 2;for(let t=0;t<3;t++){let i=Number.MAX_VALUE,o=-Number.MAX_VALUE;for(let a=0;athis.max[t]-this.min[t])return 0}return 1}}class eo{constructor(t=0,e=0,i=0,o=0){if(isNaN(t)||t<0||isNaN(e)||e<0||isNaN(i)||i<0||isNaN(o)||o<0)throw new Error(\"Invalid value for edge-insets, top, bottom, left and right must all be numbers\");this.top=t,this.bottom=e,this.left=i,this.right=o;}interpolate(e,i,o){return null!=i.top&&null!=e.top&&(this.top=t.number(e.top,i.top,o)),null!=i.bottom&&null!=e.bottom&&(this.bottom=t.number(e.bottom,i.bottom,o)),null!=i.left&&null!=e.left&&(this.left=t.number(e.left,i.left,o)),null!=i.right&&null!=e.right&&(this.right=t.number(e.right,i.right,o)),this}getCenter(e,i){const o=t.clamp((this.left+e-this.right)/2,0,e),a=t.clamp((this.top+i-this.bottom)/2,0,i);return new t.pointGeometry(o,a)}equals(t){return this.top===t.top&&this.bottom===t.bottom&&this.left===t.left&&this.right===t.right}clone(){return new eo(this.top,this.bottom,this.left,this.right)}toJSON(){return {top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}class io{constructor(e,i,o,a,r){this.tileSize=512,this.maxValidLatitude=85.051129,this.freezeElevation=!1,this._renderWorldCopies=void 0===r||!!r,this._minZoom=e||0,this._maxZoom=i||22,this._minPitch=null==o?0:o,this._maxPitch=null==a?60:a,this.setMaxBounds(),this.width=0,this.height=0,this._center=new t.LngLat(0,0),this._elevation=0,this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new eo,this._posMatrixCache={},this._alignedPosMatrixCache={};}clone(){const t=new io(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return t.tileSize=this.tileSize,t.latRange=this.latRange,t.width=this.width,t.height=this.height,t._center=this._center,t._elevation=this._elevation,t.zoom=this.zoom,t.angle=this.angle,t._fov=this._fov,t._pitch=this._pitch,t._unmodified=this._unmodified,t._edgeInsets=this._edgeInsets.clone(),t._calcMatrices(),t}get minZoom(){return this._minZoom}set minZoom(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t));}get maxZoom(){return this._maxZoom}set maxZoom(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t));}get minPitch(){return this._minPitch}set minPitch(t){this._minPitch!==t&&(this._minPitch=t,this.pitch=Math.max(this.pitch,t));}get maxPitch(){return this._maxPitch}set maxPitch(t){this._maxPitch!==t&&(this._maxPitch=t,this.pitch=Math.min(this.pitch,t));}get renderWorldCopies(){return this._renderWorldCopies}set renderWorldCopies(t){void 0===t?t=!0:null===t&&(t=!1),this._renderWorldCopies=t;}get worldSize(){return this.tileSize*this.scale}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new t.pointGeometry(this.width,this.height)}get bearing(){return -this.angle/Math.PI*180}set bearing(e){const i=-t.wrap(e,-180,180)*Math.PI/180;var o;this.angle!==i&&(this._unmodified=!1,this.angle=i,this._calcMatrices(),this.rotationMatrix=(o=new t.ARRAY_TYPE(4),t.ARRAY_TYPE!=Float32Array&&(o[1]=0,o[2]=0),o[0]=1,o[3]=1,o),function(t,e,i){var o=e[0],a=e[1],r=e[2],s=e[3],n=Math.sin(i),l=Math.cos(i);t[0]=o*l+r*n,t[1]=a*l+s*n,t[2]=o*-n+r*l,t[3]=a*-n+s*l;}(this.rotationMatrix,this.rotationMatrix,this.angle));}get pitch(){return this._pitch/Math.PI*180}set pitch(e){const i=t.clamp(e,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==i&&(this._unmodified=!1,this._pitch=i,this._calcMatrices());}get fov(){return this._fov/Math.PI*180}set fov(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices());}get zoom(){return this._zoom}set zoom(t){const e=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==e&&(this._unmodified=!1,this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom,this._constrain(),this._calcMatrices());}get center(){return this._center}set center(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices());}get elevation(){return this._elevation}set elevation(t){t!==this._elevation&&(this._elevation=t,this._constrain(),this._calcMatrices());}get padding(){return this._edgeInsets.toJSON()}set padding(t){this._edgeInsets.equals(t)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,t,1),this._calcMatrices());}get centerPoint(){return this._edgeInsets.getCenter(this.width,this.height)}isPaddingEqual(t){return this._edgeInsets.equals(t)}interpolatePadding(t,e,i){this._unmodified=!1,this._edgeInsets.interpolate(t,e,i),this._constrain(),this._calcMatrices();}coveringZoomLevel(t){const e=(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize));return Math.max(0,e)}getVisibleUnwrappedCoordinates(e){const i=[new t.UnwrappedTileID(0,e)];if(this._renderWorldCopies){const o=this.pointCoordinate(new t.pointGeometry(0,0)),a=this.pointCoordinate(new t.pointGeometry(this.width,0)),r=this.pointCoordinate(new t.pointGeometry(this.width,this.height)),s=this.pointCoordinate(new t.pointGeometry(0,this.height)),n=Math.floor(Math.min(o.x,a.x,r.x,s.x)),l=Math.floor(Math.max(o.x,a.x,r.x,s.x)),c=1;for(let o=n-c;o<=l+c;o++)0!==o&&i.push(new t.UnwrappedTileID(o,e));}return i}coveringTiles(e){var i,o;let a=this.coveringZoomLevel(e);const r=a;if(void 0!==e.minzoom&&ae.maxzoom&&(a=e.maxzoom);const s=this.pointCoordinate(this.getCameraPoint()),n=t.MercatorCoordinate.fromLngLat(this.center),l=Math.pow(2,a),c=[l*s.x,l*s.y,0],h=[l*n.x,l*n.y,0],u=Qi.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,a);let d=e.minzoom||0;!e.terrain&&this.pitch<=60&&this._edgeInsets.top<.1&&(d=a);const m=e.terrain?2/Math.min(this.tileSize,e.tileSize)*this.tileSize:3,_=t=>({aabb:new to([t*l,0,0],[(t+1)*l,l,0]),zoom:0,x:0,y:0,wrap:t,fullyVisible:!1}),p=[],f=[],g=a,x=e.reparseOverscaled?r:a;if(this._renderWorldCopies)for(let t=1;t<=3;t++)p.push(_(-t)),p.push(_(t));for(p.push(_(0));p.length>0;){const a=p.pop(),r=a.x,s=a.y;let n=a.fullyVisible;if(!n){const t=a.aabb.intersects(u);if(0===t)continue;n=2===t;}const l=e.terrain?c:h,_=a.aabb.distanceX(l),v=a.aabb.distanceY(l),y=Math.max(Math.abs(_),Math.abs(v)),b=m+(1<b&&a.zoom>=d){const e=g-a.zoom,i=c[0]-.5-(r<>1),u=a.zoom+1;let d=a.aabb.quadrant(l);if(e.terrain){const r=new t.OverscaledTileID(u,a.wrap,u,c,h),s=e.terrain.getMinMaxElevation(r),n=null!==(i=s.minElevation)&&void 0!==i?i:this.elevation,l=null!==(o=s.maxElevation)&&void 0!==o?o:this.elevation;d=new to([d.min[0],d.min[1],n],[d.max[0],d.max[1],l]);}p.push({aabb:d,zoom:u,x:c,y:h,wrap:a.wrap,fullyVisible:n});}}return f.sort(((t,e)=>t.distanceSq-e.distanceSq)).map((t=>t.tileID))}resize(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices();}get unmodified(){return this._unmodified}zoomScale(t){return Math.pow(2,t)}scaleZoom(t){return Math.log(t)/Math.LN2}project(e){const i=t.clamp(e.lat,-this.maxValidLatitude,this.maxValidLatitude);return new t.pointGeometry(t.mercatorXfromLng(e.lng)*this.worldSize,t.mercatorYfromLat(i)*this.worldSize)}unproject(e){return new t.MercatorCoordinate(e.x/this.worldSize,e.y/this.worldSize).toLngLat()}get point(){return this.project(this.center)}updateElevation(t){this.freezeElevation||(this.elevation=t?this.getElevation(this._center,t):0);}getElevation(e,i){const o=t.MercatorCoordinate.fromLngLat(e),a=(1<s&&(a=s-e);}if(this.lngRange){const e=(n+l)/2,i=t.wrap(u.x,e-this.worldSize/2,e+this.worldSize/2),a=c.x/2;i-al&&(o=l-a);}void 0===o&&void 0===a||(this.center=this.unproject(new t.pointGeometry(void 0!==o?o:u.x,void 0!==a?a:u.y)).wrap()),this._unmodified=h,this._constraining=!1;}_calcMatrices(){if(!this.height)return;const e=this.centerOffset,i=this.point.x,o=this.point.y;this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height,this._pixelPerMeter=t.mercatorZfromAltitude(1,this.center.lat)*this.worldSize;let a=t.identity(new Float64Array(16));t.scale(a,a,[this.width/2,-this.height/2,1]),t.translate(a,a,[1,-1,0]),this.labelPlaneMatrix=a,a=t.identity(new Float64Array(16)),t.scale(a,a,[1,-1,1]),t.translate(a,a,[-1,-1,0]),t.scale(a,a,[2/this.width,2/this.height,1]),this.glCoordMatrix=a,this.cameraToSeaLevelDistance=this.cameraToCenterDistance+this._elevation*this._pixelPerMeter/Math.cos(this._pitch);const r=Math.PI/2+this._pitch,s=this._fov*(.5+e.y/this.height),n=Math.sin(s)*this.cameraToSeaLevelDistance/Math.sin(t.clamp(Math.PI-r-s,.01,Math.PI-.01)),l=this.getHorizon(),c=2*Math.atan(l/this.cameraToCenterDistance)*(.5+e.y/(2*l)),h=Math.sin(c)*this.cameraToSeaLevelDistance/Math.sin(t.clamp(Math.PI-r-c,.01,Math.PI-.01)),u=Math.cos(Math.PI/2-this._pitch)*n+this.cameraToSeaLevelDistance,d=Math.cos(Math.PI/2-this._pitch)*h+this.cameraToSeaLevelDistance,m=1.01*Math.min(u,d),_=this.height/50;a=new Float64Array(16),t.perspective(a,this._fov,this.width/this.height,_,m),a[8]=2*-e.x/this.width,a[9]=2*e.y/this.height,t.scale(a,a,[1,-1,1]),t.translate(a,a,[0,0,-this.cameraToCenterDistance]),t.rotateX(a,a,this._pitch),t.rotateZ(a,a,this.angle),t.translate(a,a,[-i,-o,0]),this.mercatorMatrix=t.scale([],a,[this.worldSize,this.worldSize,this.worldSize]),t.scale(a,a,[1,1,this._pixelPerMeter]),this.pixelMatrix=t.multiply(new Float64Array(16),this.labelPlaneMatrix,a),t.translate(a,a,[0,0,-this.elevation]),this.projMatrix=a,this.invProjMatrix=t.invert([],a),this.pixelMatrix3D=t.multiply(new Float64Array(16),this.labelPlaneMatrix,a);const p=this.width%2/2,f=this.height%2/2,g=Math.cos(this.angle),x=Math.sin(this.angle),v=i-Math.round(i)+g*p+x*f,y=o-Math.round(o)+g*f+x*p,b=new Float64Array(a);if(t.translate(b,b,[v>.5?v-1:v,y>.5?y-1:y,0]),this.alignedProjMatrix=b,a=t.invert(new Float64Array(16),this.pixelMatrix),!a)throw new Error(\"failed to invert matrix\");this.pixelMatrixInverse=a,this._posMatrixCache={},this._alignedPosMatrixCache={};}maxPitchScaleFactor(){if(!this.pixelMatrixInverse)return 1;const e=this.pointCoordinate(new t.pointGeometry(0,0)),i=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(i,i,this.pixelMatrix)[3]/this.cameraToCenterDistance}getCameraPoint(){const e=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new t.pointGeometry(0,e))}getCameraQueryGeometry(e){const i=this.getCameraPoint();if(1===e.length)return [e[0],i];{let o=i.x,a=i.y,r=i.x,s=i.y;for(const t of e)o=Math.min(o,t.x),a=Math.min(a,t.y),r=Math.max(r,t.x),s=Math.max(s,t.y);return [new t.pointGeometry(o,a),new t.pointGeometry(r,a),new t.pointGeometry(r,s),new t.pointGeometry(o,s),new t.pointGeometry(o,a)]}}}class oo{constructor(e){this._hashName=e&&encodeURIComponent(e),t.bindAll([\"_getCurrentHash\",\"_onHashChange\",\"_updateHash\"],this),this._updateHash=function(t,e){let i=!1,o=null;const a=()=>{o=null,i&&(t(),o=setTimeout(a,300),i=!1);};return ()=>(i=!0,o||a(),o)}(this._updateHashUnthrottled.bind(this));}addTo(t){return this._map=t,addEventListener(\"hashchange\",this._onHashChange,!1),this._map.on(\"moveend\",this._updateHash),this}remove(){return removeEventListener(\"hashchange\",this._onHashChange,!1),this._map.off(\"moveend\",this._updateHash),clearTimeout(this._updateHash()),delete this._map,this}getHashString(t){const e=this._map.getCenter(),i=Math.round(100*this._map.getZoom())/100,o=Math.ceil((i*Math.LN2+Math.log(512/360/.5))/Math.LN10),a=Math.pow(10,o),r=Math.round(e.lng*a)/a,s=Math.round(e.lat*a)/a,n=this._map.getBearing(),l=this._map.getPitch();let c=\"\";if(c+=t?`/${r}/${s}/${i}`:`${i}/${s}/${r}`,(n||l)&&(c+=\"/\"+Math.round(10*n)/10),l&&(c+=`/${Math.round(l)}`),this._hashName){const t=this._hashName;let e=!1;const i=window.location.hash.slice(1).split(\"&\").map((i=>{const o=i.split(\"=\")[0];return o===t?(e=!0,`${o}=${c}`):i})).filter((t=>t));return e||i.push(`${t}=${c}`),`#${i.join(\"&\")}`}return `#${c}`}_getCurrentHash(){const t=window.location.hash.replace(\"#\",\"\");if(this._hashName){let e;return t.split(\"&\").map((t=>t.split(\"=\"))).forEach((t=>{t[0]===this._hashName&&(e=t);})),(e&&e[1]||\"\").split(\"/\")}return t.split(\"/\")}_onHashChange(){const t=this._getCurrentHash();if(t.length>=3&&!t.some((t=>isNaN(t)))){const e=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(t[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:e,pitch:+(t[4]||0)}),!0}return !1}_updateHashUnthrottled(){const t=window.location.href.replace(/(#.+)?$/,this.getHashString());try{window.history.replaceState(window.history.state,null,t);}catch(t){}}}const ao={linearity:.3,easing:t.bezier(0,0,.3,1)},ro=t.extend({deceleration:2500,maxSpeed:1400},ao),so=t.extend({deceleration:20,maxSpeed:1400},ao),no=t.extend({deceleration:1e3,maxSpeed:360},ao),lo=t.extend({deceleration:1e3,maxSpeed:90},ao);class co{constructor(t){this._map=t,this.clear();}clear(){this._inertiaBuffer=[];}record(e){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:t.exported.now(),settings:e});}_drainInertiaBuffer(){const e=this._inertiaBuffer,i=t.exported.now();for(;e.length>0&&i-e[0].time>160;)e.shift();}_onMoveEnd(e){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const i={zoom:0,bearing:0,pitch:0,pan:new t.pointGeometry(0,0),pinchAround:void 0,around:void 0};for(const{settings:t}of this._inertiaBuffer)i.zoom+=t.zoomDelta||0,i.bearing+=t.bearingDelta||0,i.pitch+=t.pitchDelta||0,t.panDelta&&i.pan._add(t.panDelta),t.around&&(i.around=t.around),t.pinchAround&&(i.pinchAround=t.pinchAround);const o=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,a={};if(i.pan.mag()){const r=uo(i.pan.mag(),o,t.extend({},ro,e||{}));a.offset=i.pan.mult(r.amount/i.pan.mag()),a.center=this._map.transform.center,ho(a,r);}if(i.zoom){const t=uo(i.zoom,o,so);a.zoom=this._map.transform.zoom+t.amount,ho(a,t);}if(i.bearing){const e=uo(i.bearing,o,no);a.bearing=this._map.transform.bearing+t.clamp(e.amount,-179,179),ho(a,e);}if(i.pitch){const t=uo(i.pitch,o,lo);a.pitch=this._map.transform.pitch+t.amount,ho(a,t);}if(a.zoom||a.bearing){const t=void 0===i.pinchAround?i.around:i.pinchAround;a.around=t?this._map.unproject(t):this._map.getCenter();}return this.clear(),t.extend(a,{noMoveStart:!0})}}function ho(t,e){(!t.duration||t.durationi.unproject(t))),l=s.reduce(((t,e,i,o)=>t.add(e.div(o.length))),new t.pointGeometry(0,0));super(e,{points:s,point:l,lngLats:n,lngLat:i.unproject(l),originalEvent:o}),this._defaultPrevented=!1;}preventDefault(){this._defaultPrevented=!0;}get defaultPrevented(){return this._defaultPrevented}}class po extends t.Event{constructor(t,e,i){super(t,{originalEvent:i}),this._defaultPrevented=!1;}preventDefault(){this._defaultPrevented=!0;}get defaultPrevented(){return this._defaultPrevented}}class fo{constructor(t,e){this._map=t,this._clickTolerance=e.clickTolerance;}reset(){delete this._mousedownPos;}wheel(t){return this._firePreventable(new po(t.type,this._map,t))}mousedown(t,e){return this._mousedownPos=e,this._firePreventable(new mo(t.type,this._map,t))}mouseup(t){this._map.fire(new mo(t.type,this._map,t));}click(t,e){this._mousedownPos&&this._mousedownPos.dist(e)>=this._clickTolerance||this._map.fire(new mo(t.type,this._map,t));}dblclick(t){return this._firePreventable(new mo(t.type,this._map,t))}mouseover(t){this._map.fire(new mo(t.type,this._map,t));}mouseout(t){this._map.fire(new mo(t.type,this._map,t));}touchstart(t){return this._firePreventable(new _o(t.type,this._map,t))}touchmove(t){this._map.fire(new _o(t.type,this._map,t));}touchend(t){this._map.fire(new _o(t.type,this._map,t));}touchcancel(t){this._map.fire(new _o(t.type,this._map,t));}_firePreventable(t){if(this._map.fire(t),t.defaultPrevented)return {}}isEnabled(){return !0}isActive(){return !1}enable(){}disable(){}}class go{constructor(t){this._map=t;}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent;}mousemove(t){this._map.fire(new mo(t.type,this._map,t));}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1;}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new mo(\"contextmenu\",this._map,this._contextMenuEvent)),delete this._contextMenuEvent);}contextmenu(t){this._delayContextMenu?this._contextMenuEvent=t:this._ignoreContextMenu||this._map.fire(new mo(t.type,this._map,t)),this._map.listens(\"contextmenu\")&&t.preventDefault();}isEnabled(){return !0}isActive(){return !1}enable(){}disable(){}}class xo{constructor(t,e){this._map=t,this._el=t.getCanvasContainer(),this._container=t.getContainer(),this._clickTolerance=e.clickTolerance||1;}isEnabled(){return !!this._enabled}isActive(){return !!this._active}enable(){this.isEnabled()||(this._enabled=!0);}disable(){this.isEnabled()&&(this._enabled=!1);}mousedown(t,e){this.isEnabled()&&t.shiftKey&&0===t.button&&(r.disableDrag(),this._startPos=this._lastPos=e,this._active=!0);}mousemoveWindow(t,e){if(!this._active)return;const i=e;if(this._lastPos.equals(i)||!this._box&&i.dist(this._startPos)t.fitScreenCoordinates(o,a,this._map.getBearing(),{linear:!0})};this._fireEvent(\"boxzoomcancel\",e);}keydown(t){this._active&&27===t.keyCode&&(this.reset(),this._fireEvent(\"boxzoomcancel\",t));}reset(){this._active=!1,this._container.classList.remove(\"maplibregl-crosshair\",\"mapboxgl-crosshair\"),this._box&&(r.remove(this._box),this._box=null),r.enableDrag(),delete this._startPos,delete this._lastPos;}_fireEvent(e,i){return this._map.fire(new t.Event(e,{originalEvent:i}))}}function vo(t,e){if(t.length!==e.length)throw new Error(`The number of touches and points are not equal - touches ${t.length}, points ${e.length}`);const i={};for(let o=0;othis.numTouches)&&(this.aborted=!0),this.aborted||(void 0===this.startTime&&(this.startTime=e.timeStamp),o.length===this.numTouches&&(this.centroid=function(e){const i=new t.pointGeometry(0,0);for(const t of e)i._add(t);return i.div(e.length)}(i),this.touches=vo(o,i)));}touchmove(t,e,i){if(this.aborted||!this.centroid)return;const o=vo(i,e);for(const t in this.touches){const e=this.touches[t],i=o[t];(!i||i.dist(e)>30)&&(this.aborted=!0);}}touchend(t,e,i){if((!this.centroid||t.timeStamp-this.startTime>500)&&(this.aborted=!0),0===i.length){const t=!this.aborted&&this.centroid;if(this.reset(),t)return t}}}class bo{constructor(t){this.singleTap=new yo(t),this.numTaps=t.numTaps,this.reset();}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset();}touchstart(t,e,i){this.singleTap.touchstart(t,e,i);}touchmove(t,e,i){this.singleTap.touchmove(t,e,i);}touchend(t,e,i){const o=this.singleTap.touchend(t,e,i);if(o){const e=t.timeStamp-this.lastTime<500,i=!this.lastTap||this.lastTap.dist(o)<30;if(e&&i||this.reset(),this.count++,this.lastTime=t.timeStamp,this.lastTap=o,this.count===this.numTaps)return this.reset(),o}}}class wo{constructor(){this._zoomIn=new bo({numTouches:1,numTaps:2}),this._zoomOut=new bo({numTouches:2,numTaps:1}),this.reset();}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset();}touchstart(t,e,i){this._zoomIn.touchstart(t,e,i),this._zoomOut.touchstart(t,e,i);}touchmove(t,e,i){this._zoomIn.touchmove(t,e,i),this._zoomOut.touchmove(t,e,i);}touchend(t,e,i){const o=this._zoomIn.touchend(t,e,i),a=this._zoomOut.touchend(t,e,i);return o?(this._active=!0,t.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:e=>e.easeTo({duration:300,zoom:e.getZoom()+1,around:e.unproject(o)},{originalEvent:t})}):a?(this._active=!0,t.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:e=>e.easeTo({duration:300,zoom:e.getZoom()-1,around:e.unproject(a)},{originalEvent:t})}):void 0}touchcancel(){this.reset();}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}const To={0:1,2:2};class Eo{constructor(t){this.reset(),this._clickTolerance=t.clickTolerance||1;}reset(){this._active=!1,this._moved=!1,delete this._lastPoint,delete this._eventButton;}_correctButton(t,e){return !1}_move(t,e){return {}}mousedown(t,e){if(this._lastPoint)return;const i=r.mouseButton(t);this._correctButton(t,i)&&(this._lastPoint=e,this._eventButton=i);}mousemoveWindow(t,e){const i=this._lastPoint;if(i)if(t.preventDefault(),function(t,e){const i=To[e];return void 0===t.buttons||(t.buttons&i)!==i}(t,this._eventButton))this.reset();else if(this._moved||!(e.dist(i){this._cancelCooperativeMessage=!1;}),200);}touchstart(t,e,i){return this._calculateTransform(t,e,i)}touchmove(t,e,i){if(this._map._cooperativeGestures&&(2===this._minTouches&&i.length<2&&!this._cancelCooperativeMessage?this._map._onCooperativeGesture(t,!1,i.length):this._cancelCooperativeMessage||(this._cancelCooperativeMessage=!0)),this._active&&!(i.length0&&(this._active=!0);const a=vo(o,i),r=new t.pointGeometry(0,0),s=new t.pointGeometry(0,0);let n=0;for(const t in a){const e=a[t],i=this._touches[t];i&&(r._add(e),s._add(e.sub(i)),n++,a[t]=e);}if(this._touches=a,nMath.abs(t.x)}class Bo extends zo{constructor(t){super(),this._map=t;}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints;}touchstart(t,e,i){super.touchstart(t,e,i),this._currentTouchCount=i.length;}_start(t){this._lastPoints=t,ko(t[0].sub(t[1]))&&(this._valid=!1);}_move(t,e,i){if(this._map._cooperativeGestures&&this._currentTouchCount<3)return;const o=t[0].sub(this._lastPoints[0]),a=t[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(o,a,i.timeStamp),this._valid?(this._lastPoints=t,this._active=!0,{pitchDelta:(o.y+a.y)/2*-.5}):void 0}gestureBeginsVertically(t,e,i){if(void 0!==this._valid)return this._valid;const o=t.mag()>=2,a=e.mag()>=2;if(!o&&!a)return;if(!o||!a)return void 0===this._firstMove&&(this._firstMove=i),i-this._firstMove<100&&void 0;const r=t.y>0==e.y>0;return ko(t)&&ko(e)&&r}}const Fo={panStep:100,bearingStep:15,pitchStep:10};class Oo{constructor(){const t=Fo;this._panStep=t.panStep,this._bearingStep=t.bearingStep,this._pitchStep=t.pitchStep,this._rotationDisabled=!1;}reset(){this._active=!1;}keydown(t){if(t.altKey||t.ctrlKey||t.metaKey)return;let e=0,i=0,o=0,a=0,r=0;switch(t.keyCode){case 61:case 107:case 171:case 187:e=1;break;case 189:case 109:case 173:e=-1;break;case 37:t.shiftKey?i=-1:(t.preventDefault(),a=-1);break;case 39:t.shiftKey?i=1:(t.preventDefault(),a=1);break;case 38:t.shiftKey?o=1:(t.preventDefault(),r=-1);break;case 40:t.shiftKey?o=-1:(t.preventDefault(),r=1);break;default:return}return this._rotationDisabled&&(i=0,o=0),{cameraAnimation:s=>{const n=s.getZoom();s.easeTo({duration:300,easeId:\"keyboardHandler\",easing:Uo,zoom:e?Math.round(n)+e*(t.shiftKey?2:1):n,bearing:s.getBearing()+i*this._bearingStep,pitch:s.getPitch()+o*this._pitchStep,offset:[-a*this._panStep,-r*this._panStep],center:s.getCenter()},{originalEvent:t});}}}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0;}enableRotation(){this._rotationDisabled=!1;}}function Uo(t){return t*(2-t)}const No=4.000244140625;class Go{constructor(e,i){this._map=e,this._el=e.getCanvasContainer(),this._handler=i,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222,t.bindAll([\"_onTimeout\"],this);}setZoomRate(t){this._defaultZoomRate=t;}setWheelZoomRate(t){this._wheelZoomRate=t;}isEnabled(){return !!this._enabled}isActive(){return !!this._active||void 0!==this._finishTimeout}isZooming(){return !!this._zooming}enable(t){this.isEnabled()||(this._enabled=!0,this._aroundCenter=t&&\"center\"===t.around);}disable(){this.isEnabled()&&(this._enabled=!1);}wheel(e){if(!this.isEnabled())return;if(this._map._cooperativeGestures){if(!this._map._metaPress)return;e.preventDefault();}let i=e.deltaMode===WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY;const o=t.exported.now(),a=o-(this._lastWheelEventTime||0);this._lastWheelEventTime=o,0!==i&&i%No==0?this._type=\"wheel\":0!==i&&Math.abs(i)<4?this._type=\"trackpad\":a>400?(this._type=null,this._lastValue=i,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(a*i)<200?\"trackpad\":\"wheel\",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,i+=this._lastValue)),e.shiftKey&&i&&(i/=4),this._type&&(this._lastWheelEvent=e,this._delta-=i,this._active||this._start(e)),e.preventDefault();}_onTimeout(t){this._type=\"wheel\",this._delta-=this._lastValue,this._active||this._start(t);}_start(e){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);const i=r.mousePos(this._el,e);this._around=t.LngLat.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(i)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame());}renderFrame(){if(!this._frameId)return;if(this._frameId=null,!this.isActive())return;const e=this._map.transform;if(0!==this._delta){const t=\"wheel\"===this._type&&Math.abs(this._delta)>No?this._wheelZoomRate:this._defaultZoomRate;let i=2/(1+Math.exp(-Math.abs(this._delta*t)));this._delta<0&&0!==i&&(i=1/i);const o=\"number\"==typeof this._targetZoom?e.zoomScale(this._targetZoom):e.scale;this._targetZoom=Math.min(e.maxZoom,Math.max(e.minZoom,e.scaleZoom(o*i))),\"wheel\"===this._type&&(this._startZoom=e.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0;}const i=\"number\"==typeof this._targetZoom?this._targetZoom:e.zoom,o=this._startZoom,a=this._easing;let r,s=!1;if(\"wheel\"===this._type&&o&&a){const e=Math.min((t.exported.now()-this._lastWheelEventTime)/200,1),n=a(e);r=t.number(o,i,n),e<1?this._frameId||(this._frameId=!0):s=!0;}else r=i,s=!0;return this._active=!0,s&&(this._active=!1,this._finishTimeout=setTimeout((()=>{this._zooming=!1,this._handler._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout;}),200)),{noInertia:!0,needsRenderFrame:!s,zoomDelta:r-e.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(e){let i=t.ease;if(this._prevEase){const e=this._prevEase,o=(t.exported.now()-e.start)/e.duration,a=e.easing(o+.01)-e.easing(o),r=.27/Math.sqrt(a*a+1e-4)*.01,s=Math.sqrt(.0729-r*r);i=t.bezier(r,s,.25,1);}return this._prevEase={start:t.exported.now(),duration:e,easing:i},i}reset(){this._active=!1;}}class Zo{constructor(t,e){this._clickZoom=t,this._tapZoom=e;}enable(){this._clickZoom.enable(),this._tapZoom.enable();}disable(){this._clickZoom.disable(),this._tapZoom.disable();}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}}class Vo{constructor(){this.reset();}reset(){this._active=!1;}dblclick(t,e){return t.preventDefault(),{cameraAnimation:i=>{i.easeTo({duration:300,zoom:i.getZoom()+(t.shiftKey?-1:1),around:i.unproject(e)},{originalEvent:t});}}}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}class qo{constructor(){this._tap=new bo({numTouches:1,numTaps:1}),this.reset();}reset(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset();}touchstart(t,e,i){this._swipePoint||(this._tapTime&&t.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?i.length>0&&(this._swipePoint=e[0],this._swipeTouch=i[0].identifier):this._tap.touchstart(t,e,i));}touchmove(t,e,i){if(this._tapTime){if(this._swipePoint){if(i[0].identifier!==this._swipeTouch)return;const o=e[0],a=o.y-this._swipePoint.y;return this._swipePoint=o,t.preventDefault(),this._active=!0,{zoomDelta:a/128}}}else this._tap.touchmove(t,e,i);}touchend(t,e,i){this._tapTime?this._swipePoint&&0===i.length&&this.reset():this._tap.touchend(t,e,i)&&(this._tapTime=t.timeStamp);}touchcancel(){this.reset();}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}class jo{constructor(t,e,i){this._el=t,this._mousePan=e,this._touchPan=i;}enable(t){this._inertiaOptions=t||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add(\"maplibregl-touch-drag-pan\",\"mapboxgl-touch-drag-pan\");}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove(\"maplibregl-touch-drag-pan\",\"mapboxgl-touch-drag-pan\");}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class $o{constructor(t,e,i){this._pitchWithRotate=t.pitchWithRotate,this._mouseRotate=e,this._mousePitch=i;}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable();}disable(){this._mouseRotate.disable(),this._mousePitch.disable();}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()}}class Xo{constructor(t,e,i,o){this._el=t,this._touchZoom=e,this._touchRotate=i,this._tapDragZoom=o,this._rotationDisabled=!1,this._enabled=!0;}enable(t){this._touchZoom.enable(t),this._rotationDisabled||this._touchRotate.enable(t),this._tapDragZoom.enable(),this._el.classList.add(\"maplibregl-touch-zoom-rotate\",\"mapboxgl-touch-zoom-rotate\");}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove(\"maplibregl-touch-zoom-rotate\",\"mapboxgl-touch-zoom-rotate\");}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable();}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable();}}const Wo=t=>t.zoom||t.drag||t.pitch||t.rotate;class Ho extends t.Event{}function Ko(t){return t.panDelta&&t.panDelta.mag()||t.zoomDelta||t.bearingDelta||t.pitchDelta}class Yo{constructor(e,i){this._map=e,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new co(e),this._bearingSnap=i.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(i),t.bindAll([\"handleEvent\",\"handleWindowEvent\"],this);const o=this._el;this._listeners=[[o,\"touchstart\",{passive:!0}],[o,\"touchmove\",{passive:!1}],[o,\"touchend\",void 0],[o,\"touchcancel\",void 0],[o,\"mousedown\",void 0],[o,\"mousemove\",void 0],[o,\"mouseup\",void 0],[document,\"mousemove\",{capture:!0}],[document,\"mouseup\",void 0],[o,\"mouseover\",void 0],[o,\"mouseout\",void 0],[o,\"dblclick\",void 0],[o,\"click\",void 0],[o,\"keydown\",{capture:!1}],[o,\"keyup\",void 0],[o,\"wheel\",{passive:!1}],[o,\"contextmenu\",void 0],[window,\"blur\",void 0]];for(const[t,e,i]of this._listeners)r.addEventListener(t,e,t===document?this.handleWindowEvent:this.handleEvent,i);}destroy(){for(const[t,e,i]of this._listeners)r.removeEventListener(t,e,t===document?this.handleWindowEvent:this.handleEvent,i);}_addDefaultHandlers(t){const e=this._map,i=e.getCanvasContainer();this._add(\"mapEvent\",new fo(e,t));const o=e.boxZoom=new xo(e,t);this._add(\"boxZoom\",o);const a=new wo,r=new Vo;e.doubleClickZoom=new Zo(r,a),this._add(\"tapZoom\",a),this._add(\"clickZoom\",r);const s=new qo;this._add(\"tapDragZoom\",s);const n=e.touchPitch=new Bo(e);this._add(\"touchPitch\",n);const l=new Co(t),c=new So(t);e.dragRotate=new $o(t,l,c),this._add(\"mouseRotate\",l,[\"mousePitch\"]),this._add(\"mousePitch\",c,[\"mouseRotate\"]);const h=new Io(t),u=new Do(t,e);e.dragPan=new jo(i,h,u),this._add(\"mousePan\",h),this._add(\"touchPan\",u,[\"touchZoom\",\"touchRotate\"]);const d=new Ro,m=new Ao;e.touchZoomRotate=new Xo(i,m,d,s),this._add(\"touchRotate\",d,[\"touchPan\",\"touchZoom\"]),this._add(\"touchZoom\",m,[\"touchPan\",\"touchRotate\"]);const _=e.scrollZoom=new Go(e,this);this._add(\"scrollZoom\",_,[\"mousePan\"]);const p=e.keyboard=new Oo;this._add(\"keyboard\",p),this._add(\"blockableMapEvent\",new go(e));for(const i of [\"boxZoom\",\"doubleClickZoom\",\"tapDragZoom\",\"touchPitch\",\"dragRotate\",\"dragPan\",\"touchZoomRotate\",\"scrollZoom\",\"keyboard\"])t.interactive&&t[i]&&e[i].enable(t[i]);}_add(t,e,i){this._handlers.push({handlerName:t,handler:e,allowed:i}),this._handlersById[t]=e;}stop(t){if(!this._updatingCamera){for(const{handler:t}of this._handlers)t.reset();this._inertia.clear(),this._fireEvents({},{},t),this._changes=[];}}isActive(){for(const{handler:t}of this._handlers)if(t.isActive())return !0;return !1}isZooming(){return !!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return !!this._eventsInProgress.rotate}isMoving(){return Boolean(Wo(this._eventsInProgress))||this.isZooming()}_blockedByActive(t,e,i){for(const o in t)if(o!==i&&(!e||e.indexOf(o)<0))return !0;return !1}handleWindowEvent(t){this.handleEvent(t,`${t.type}Window`);}_getMapTouches(t){const e=[];for(const i of t)this._el.contains(i.target)&&e.push(i);return e}handleEvent(t,e){if(\"blur\"===t.type)return void this.stop(!0);this._updatingCamera=!0;const i=\"renderFrame\"===t.type?void 0:t,o={needsRenderFrame:!1},a={},s={},n=t.touches,l=n?this._getMapTouches(n):void 0,c=l?r.touchPos(this._el,l):r.mousePos(this._el,t);for(const{handlerName:r,handler:n,allowed:h}of this._handlers){if(!n.isEnabled())continue;let u;this._blockedByActive(s,h,r)?n.reset():n[e||t.type]&&(u=n[e||t.type](t,c,l),this.mergeHandlerResult(o,a,u,r,i),u&&u.needsRenderFrame&&this._triggerRenderFrame()),(u||n.isActive())&&(s[r]=n);}const h={};for(const t in this._previousActiveHandlers)s[t]||(h[t]=i);this._previousActiveHandlers=s,(Object.keys(h).length||Ko(o))&&(this._changes.push([o,a,h]),this._triggerRenderFrame()),(Object.keys(s).length||Ko(o))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:u}=o;u&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],u(this._map));}mergeHandlerResult(e,i,o,a,r){if(!o)return;t.extend(e,o);const s={handlerName:a,originalEvent:o.originalEvent||r};void 0!==o.zoomDelta&&(i.zoom=s),void 0!==o.panDelta&&(i.drag=s),void 0!==o.pitchDelta&&(i.pitch=s),void 0!==o.bearingDelta&&(i.rotate=s);}_applyChanges(){const e={},i={},o={};for(const[a,r,s]of this._changes)a.panDelta&&(e.panDelta=(e.panDelta||new t.pointGeometry(0,0))._add(a.panDelta)),a.zoomDelta&&(e.zoomDelta=(e.zoomDelta||0)+a.zoomDelta),a.bearingDelta&&(e.bearingDelta=(e.bearingDelta||0)+a.bearingDelta),a.pitchDelta&&(e.pitchDelta=(e.pitchDelta||0)+a.pitchDelta),void 0!==a.around&&(e.around=a.around),void 0!==a.pinchAround&&(e.pinchAround=a.pinchAround),a.noInertia&&(e.noInertia=a.noInertia),t.extend(i,r),t.extend(o,s);this._updateMapTransform(e,i,o),this._changes=[];}_updateMapTransform(e,i,o){const a=this._map,r=a.transform,s=a.style&&a.style.terrain;if(!(Ko(e)||s&&this._drag))return this._fireEvents(i,o,!0);let{panDelta:n,zoomDelta:l,bearingDelta:c,pitchDelta:h,around:u,pinchAround:d}=e;void 0!==d&&(u=d),a._stop(!0),u=u||a.transform.centerPoint;const m=r.pointLocation(n?u.sub(n):u);c&&(r.bearing+=c),h&&(r.pitch+=h),l&&(r.zoom+=l),s?i.drag&&!this._drag?(this._drag={center:r.centerPoint,lngLat:r.pointLocation(u),point:u,handlerName:i.drag.handlerName},a.fire(new t.Event(\"freezeElevation\",{freeze:!0}))):this._drag&&o[this._drag.handlerName]?(a.fire(new t.Event(\"freezeElevation\",{freeze:!1})),this._drag=null):i.drag&&this._drag&&(r.center=r.pointLocation(r.centerPoint.sub(n))):r.setLocationAtPoint(m,u),this._map._update(),e.noInertia||this._inertia.record(e),this._fireEvents(i,o,!0);}_fireEvents(e,i,o){const a=Wo(this._eventsInProgress),r=Wo(e),s={};for(const t in e){const{originalEvent:i}=e[t];this._eventsInProgress[t]||(s[`${t}start`]=i),this._eventsInProgress[t]=e[t];}!a&&r&&this._fireEvent(\"movestart\",r.originalEvent);for(const t in s)this._fireEvent(t,s[t]);r&&this._fireEvent(\"move\",r.originalEvent);for(const t in e){const{originalEvent:i}=e[t];this._fireEvent(t,i);}const n={};let l;for(const t in this._eventsInProgress){const{handlerName:e,originalEvent:o}=this._eventsInProgress[t];this._handlersById[e].isActive()||(delete this._eventsInProgress[t],l=i[e]||o,n[`${t}end`]=l);}for(const t in n)this._fireEvent(t,n[t]);const c=Wo(this._eventsInProgress);if(o&&(a||r)&&!c){this._updatingCamera=!0;const e=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),i=t=>0!==t&&-this._bearingSnap{delete this._frameId,this.handleEvent(new Ho(\"renderFrame\",{timeStamp:t})),this._applyChanges();}))}_triggerRenderFrame(){void 0===this._frameId&&(this._frameId=this._requestFrame());}}const Jo={extend:(e,...i)=>t.extend(e,...i),run(t){t();},logToElement(t,e=!1,i=\"log\"){const o=window.document.getElementById(i);o&&(e&&(o.innerHTML=\"\"),o.innerHTML+=`
${t}`);}};class Qo extends t.Evented{constructor(e,i){super(),this._moving=!1,this._zooming=!1,this.transform=e,this._bearingSnap=i.bearingSnap,t.bindAll([\"_renderFrameCallback\"],this);}getCenter(){return new t.LngLat(this.transform.center.lng,this.transform.center.lat)}setCenter(t,e){return this.jumpTo({center:t},e)}panBy(e,i,o){return e=t.pointGeometry.convert(e).mult(-1),this.panTo(this.transform.center,t.extend({offset:e},i),o)}panTo(e,i,o){return this.easeTo(t.extend({center:e},i),o)}getZoom(){return this.transform.zoom}setZoom(t,e){return this.jumpTo({zoom:t},e),this}zoomTo(e,i,o){return this.easeTo(t.extend({zoom:e},i),o)}zoomIn(t,e){return this.zoomTo(this.getZoom()+1,t,e),this}zoomOut(t,e){return this.zoomTo(this.getZoom()-1,t,e),this}getBearing(){return this.transform.bearing}setBearing(t,e){return this.jumpTo({bearing:t},e),this}getPadding(){return this.transform.padding}setPadding(t,e){return this.jumpTo({padding:t},e),this}rotateTo(e,i,o){return this.easeTo(t.extend({bearing:e},i),o)}resetNorth(e,i){return this.rotateTo(0,t.extend({duration:1e3},e),i),this}resetNorthPitch(e,i){return this.easeTo(t.extend({bearing:0,pitch:0,duration:1e3},e),i),this}snapToNorth(t,e){return Math.abs(this.getBearing()){if(this._zooming&&(o.zoom=t.number(a,l,e)),this._rotating&&(o.bearing=t.number(r,c,e)),this._pitching&&(o.pitch=t.number(s,h,e)),this._padding&&(o.interpolatePadding(n,u,e),m=o.centerPoint.add(d)),v)o.setLocationAtPoint(v,y);else {const t=o.zoomScale(o.zoom-a),i=l>a?Math.min(2,x):Math.max(.5,x),r=Math.pow(i,1-e),s=o.unproject(f.add(g.mult(e*r)).mult(t));o.setLocationAtPoint(o.renderWorldCopies?s.wrap():s,m);}this._fireMoveEvents(i);}),(t=>{this._afterEase(i,t);}),e),this}_prepareEase(e,i,o={}){this._moving=!0,this.fire(new t.Event(\"freezeElevation\",{freeze:!0})),i||o.moving||this.fire(new t.Event(\"movestart\",e)),this._zooming&&!o.zooming&&this.fire(new t.Event(\"zoomstart\",e)),this._rotating&&!o.rotating&&this.fire(new t.Event(\"rotatestart\",e)),this._pitching&&!o.pitching&&this.fire(new t.Event(\"pitchstart\",e));}_fireMoveEvents(e){this.fire(new t.Event(\"move\",e)),this._zooming&&this.fire(new t.Event(\"zoom\",e)),this._rotating&&this.fire(new t.Event(\"rotate\",e)),this._pitching&&this.fire(new t.Event(\"pitch\",e));}_afterEase(e,i){if(this._easeId&&i&&this._easeId===i)return;delete this._easeId,this.fire(new t.Event(\"freezeElevation\",{freeze:!1}));const o=this._zooming,a=this._rotating,r=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,o&&this.fire(new t.Event(\"zoomend\",e)),a&&this.fire(new t.Event(\"rotateend\",e)),r&&this.fire(new t.Event(\"pitchend\",e)),this.fire(new t.Event(\"moveend\",e));}flyTo(e,i){if(!e.essential&&t.exported.prefersReducedMotion){const o=t.pick(e,[\"center\",\"zoom\",\"bearing\",\"pitch\",\"around\"]);return this.jumpTo(o,i)}this.stop(),e=t.extend({offset:[0,0],speed:1.2,curve:1.42,easing:t.ease},e);const o=this.transform,a=this.getZoom(),r=this.getBearing(),s=this.getPitch(),n=this.getPadding(),l=\"zoom\"in e?t.clamp(+e.zoom,o.minZoom,o.maxZoom):a,c=\"bearing\"in e?this._normalizeBearing(e.bearing,r):r,h=\"pitch\"in e?+e.pitch:s,u=\"padding\"in e?e.padding:o.padding,d=o.zoomScale(l-a),m=t.pointGeometry.convert(e.offset);let _=o.centerPoint.add(m);const p=o.pointLocation(_),f=t.LngLat.convert(e.center||p);this._normalizeCenter(f);const g=o.project(p),x=o.project(f).sub(g);let v=e.curve;const y=Math.max(o.width,o.height),b=y/d,w=x.mag();if(\"minZoom\"in e){const i=t.clamp(Math.min(e.minZoom,a,l),o.minZoom,o.maxZoom),r=y/o.zoomScale(i-a);v=Math.sqrt(r/w*2);}const T=v*v;function E(t){const e=(b*b-y*y+(t?-1:1)*T*T*w*w)/(2*(t?b:y)*T*w);return Math.log(Math.sqrt(e*e+1)-e)}function I(t){return (Math.exp(t)-Math.exp(-t))/2}function C(t){return (Math.exp(t)+Math.exp(-t))/2}const S=E(0);let D=function(t){return C(S)/C(S+v*t)},z=function(t){return y*((C(S)*(I(e=S+v*t)/C(e))-I(S))/T)/w;var e;},P=(E(1)-S)/v;if(Math.abs(w)<1e-6||!isFinite(P)){if(Math.abs(y-b)<1e-6)return this.easeTo(e,i);const t=be.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=r!==c,this._pitching=h!==s,this._padding=!o.isPaddingEqual(u),this._prepareEase(i,!1),this._ease((e=>{const d=e*P,p=1/D(d);o.zoom=1===e?l:a+o.scaleZoom(p),this._rotating&&(o.bearing=t.number(r,c,e)),this._pitching&&(o.pitch=t.number(s,h,e)),this._padding&&(o.interpolatePadding(n,u,e),_=o.centerPoint.add(m));const v=1===e?f:o.unproject(g.add(x.mult(z(d))).mult(p));o.setLocationAtPoint(o.renderWorldCopies?v.wrap():v,_),this._fireMoveEvents(i);}),(()=>this._afterEase(i)),e),this}isEasing(){return !!this._easeFrameId}stop(){return this._stop()}_stop(t,e){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){const t=this._onEaseEnd;delete this._onEaseEnd,t.call(this,e);}if(!t){const t=this.handlers;t&&t.stop(!1);}return this}_ease(e,i,o){!1===o.animate||0===o.duration?(e(1),i()):(this._easeStart=t.exported.now(),this._easeOptions=o,this._onEaseFrame=e,this._onEaseEnd=i,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback));}_renderFrameCallback(){const e=Math.min((t.exported.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(e)),e<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop();}_normalizeBearing(e,i){e=t.wrap(e,-180,180);const o=Math.abs(e-i);return Math.abs(e-360-i)180?-360:i<-180?360:0;}}class ta{constructor(e={}){this.options=e,t.bindAll([\"_toggleAttribution\",\"_updateData\",\"_updateCompact\",\"_updateCompactMinimize\"],this);}getDefaultPosition(){return \"bottom-right\"}onAdd(t){return this._map=t,this._compact=this.options&&this.options.compact,this._container=r.create(\"details\",\"maplibregl-ctrl maplibregl-ctrl-attrib mapboxgl-ctrl mapboxgl-ctrl-attrib\"),this._compactButton=r.create(\"summary\",\"maplibregl-ctrl-attrib-button mapboxgl-ctrl-attrib-button\",this._container),this._compactButton.addEventListener(\"click\",this._toggleAttribution),this._setElementTitle(this._compactButton,\"ToggleAttribution\"),this._innerContainer=r.create(\"div\",\"maplibregl-ctrl-attrib-inner mapboxgl-ctrl-attrib-inner\",this._container),this._updateAttributions(),this._updateCompact(),this._map.on(\"styledata\",this._updateData),this._map.on(\"sourcedata\",this._updateData),this._map.on(\"terrain\",this._updateData),this._map.on(\"resize\",this._updateCompact),this._map.on(\"drag\",this._updateCompactMinimize),this._container}onRemove(){r.remove(this._container),this._map.off(\"styledata\",this._updateData),this._map.off(\"sourcedata\",this._updateData),this._map.off(\"terrain\",this._updateData),this._map.off(\"resize\",this._updateCompact),this._map.off(\"drag\",this._updateCompactMinimize),this._map=void 0,this._compact=void 0,this._attribHTML=void 0;}_setElementTitle(t,e){const i=this._map._getUIString(`AttributionControl.${e}`);t.title=i,t.setAttribute(\"aria-label\",i);}_toggleAttribution(){this._container.classList.contains(\"maplibregl-compact\")&&(this._container.classList.contains(\"maplibregl-compact-show\")?(this._container.setAttribute(\"open\",\"\"),this._container.classList.remove(\"maplibregl-compact-show\",\"mapboxgl-compact-show\")):(this._container.classList.add(\"maplibregl-compact-show\",\"mapboxgl-compact-show\"),this._container.removeAttribute(\"open\")));}_updateData(t){!t||\"metadata\"!==t.sourceDataType&&\"visibility\"!==t.sourceDataType&&\"style\"!==t.dataType&&\"terrain\"!==t.type||this._updateAttributions();}_updateAttributions(){if(!this._map.style)return;let t=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?t=t.concat(this.options.customAttribution.map((t=>\"string\"!=typeof t?\"\":t))):\"string\"==typeof this.options.customAttribution&&t.push(this.options.customAttribution)),this._map.style.stylesheet){const t=this._map.style.stylesheet;this.styleOwner=t.owner,this.styleId=t.id;}const e=this._map.style.sourceCaches;for(const i in e){const o=e[i];if(o.used||o.usedForTerrain){const e=o.getSource();e.attribution&&t.indexOf(e.attribution)<0&&t.push(e.attribution);}}t=t.filter((t=>String(t).trim())),t.sort(((t,e)=>t.length-e.length)),t=t.filter(((e,i)=>{for(let o=i+1;o=0)return !1;return !0}));const i=t.join(\" | \");i!==this._attribHTML&&(this._attribHTML=i,t.length?(this._innerContainer.innerHTML=i,this._container.classList.remove(\"maplibregl-attrib-empty\",\"mapboxgl-attrib-empty\")):this._container.classList.add(\"maplibregl-attrib-empty\",\"mapboxgl-attrib-empty\"),this._updateCompact(),this._editLink=null);}_updateCompact(){this._map.getCanvasContainer().offsetWidth<=640||this._compact?!1===this._compact?this._container.setAttribute(\"open\",\"\"):this._container.classList.contains(\"maplibregl-compact\")||this._container.classList.contains(\"maplibregl-attrib-empty\")||(this._container.setAttribute(\"open\",\"\"),this._container.classList.add(\"maplibregl-compact\",\"mapboxgl-compact\",\"maplibregl-compact-show\",\"mapboxgl-compact-show\")):(this._container.setAttribute(\"open\",\"\"),this._container.classList.contains(\"maplibregl-compact\")&&this._container.classList.remove(\"maplibregl-compact\",\"maplibregl-compact-show\",\"mapboxgl-compact\",\"mapboxgl-compact-show\"));}_updateCompactMinimize(){this._container.classList.contains(\"maplibregl-compact\")&&this._container.classList.contains(\"maplibregl-compact-show\")&&this._container.classList.remove(\"maplibregl-compact-show\",\"mapboxgl-compact-show\");}}class ea{constructor(e={}){this.options=e,t.bindAll([\"_updateCompact\"],this);}getDefaultPosition(){return \"bottom-left\"}onAdd(t){this._map=t,this._compact=this.options&&this.options.compact,this._container=r.create(\"div\",\"maplibregl-ctrl mapboxgl-ctrl\");const e=r.create(\"a\",\"maplibregl-ctrl-logo mapboxgl-ctrl-logo\");return e.target=\"_blank\",e.rel=\"noopener nofollow\",e.href=\"https://maplibre.org/\",e.setAttribute(\"aria-label\",this._map._getUIString(\"LogoControl.Title\")),e.setAttribute(\"rel\",\"noopener nofollow\"),this._container.appendChild(e),this._container.style.display=\"block\",this._map.on(\"resize\",this._updateCompact),this._updateCompact(),this._container}onRemove(){r.remove(this._container),this._map.off(\"resize\",this._updateCompact),this._map=void 0,this._compact=void 0;}_updateCompact(){const t=this._container.children;if(t.length){const e=t[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?!1!==this._compact&&e.classList.add(\"maplibregl-compact\",\"mapboxgl-compact\"):e.classList.remove(\"maplibregl-compact\",\"mapboxgl-compact\");}}}class ia{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1;}add(t){const e=++this._id;return this._queue.push({callback:t,id:e,cancelled:!1}),e}remove(t){const e=this._currentlyRunning,i=e?this._queue.concat(e):this._queue;for(const e of i)if(e.id===t)return void(e.cancelled=!0)}run(t=0){if(this._currentlyRunning)throw new Error(\"Attempting to run(), but is already running.\");const e=this._currentlyRunning=this._queue;this._queue=[];for(const i of e)if(!i.cancelled&&(i.callback(t),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1;}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[];}}const oa={\"AttributionControl.ToggleAttribution\":\"Toggle attribution\",\"AttributionControl.MapFeedback\":\"Map feedback\",\"FullscreenControl.Enter\":\"Enter fullscreen\",\"FullscreenControl.Exit\":\"Exit fullscreen\",\"GeolocateControl.FindMyLocation\":\"Find my location\",\"GeolocateControl.LocationNotAvailable\":\"Location not available\",\"LogoControl.Title\":\"Mapbox logo\",\"NavigationControl.ResetBearing\":\"Reset bearing to north\",\"NavigationControl.ZoomIn\":\"Zoom in\",\"NavigationControl.ZoomOut\":\"Zoom out\",\"ScaleControl.Feet\":\"ft\",\"ScaleControl.Meters\":\"m\",\"ScaleControl.Kilometers\":\"km\",\"ScaleControl.Miles\":\"mi\",\"ScaleControl.NauticalMiles\":\"nm\",\"TerrainControl.enableTerrain\":\"Enable terrain\",\"TerrainControl.disableTerrain\":\"Disable terrain\"},aa={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:60,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,cooperativeGestures:void 0,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,maplibreLogo:!1,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,maxTileCacheSize:null,localIdeographFontFamily:\"sans-serif\",transformRequest:null,fadeDuration:300,crossSourceCollisions:!0},ra={showCompass:!0,showZoom:!0,visualizePitch:!1};class sa{constructor(e,i,o=!1){this._clickTolerance=10,this.element=i,this.mouseRotate=new Co({clickTolerance:e.dragRotate._mouseRotate._clickTolerance}),this.map=e,o&&(this.mousePitch=new So({clickTolerance:e.dragRotate._mousePitch._clickTolerance})),t.bindAll([\"mousedown\",\"mousemove\",\"mouseup\",\"touchstart\",\"touchmove\",\"touchend\",\"reset\"],this),r.addEventListener(i,\"mousedown\",this.mousedown),r.addEventListener(i,\"touchstart\",this.touchstart,{passive:!1}),r.addEventListener(i,\"touchmove\",this.touchmove),r.addEventListener(i,\"touchend\",this.touchend),r.addEventListener(i,\"touchcancel\",this.reset);}down(t,e){this.mouseRotate.mousedown(t,e),this.mousePitch&&this.mousePitch.mousedown(t,e),r.disableDrag();}move(t,e){const i=this.map,o=this.mouseRotate.mousemoveWindow(t,e);if(o&&o.bearingDelta&&i.setBearing(i.getBearing()+o.bearingDelta),this.mousePitch){const o=this.mousePitch.mousemoveWindow(t,e);o&&o.pitchDelta&&i.setPitch(i.getPitch()+o.pitchDelta);}}off(){const t=this.element;r.removeEventListener(t,\"mousedown\",this.mousedown),r.removeEventListener(t,\"touchstart\",this.touchstart,{passive:!1}),r.removeEventListener(t,\"touchmove\",this.touchmove),r.removeEventListener(t,\"touchend\",this.touchend),r.removeEventListener(t,\"touchcancel\",this.reset),this.offTemp();}offTemp(){r.enableDrag(),r.removeEventListener(window,\"mousemove\",this.mousemove),r.removeEventListener(window,\"mouseup\",this.mouseup);}mousedown(e){this.down(t.extend({},e,{ctrlKey:!0,preventDefault:()=>e.preventDefault()}),r.mousePos(this.element,e)),r.addEventListener(window,\"mousemove\",this.mousemove),r.addEventListener(window,\"mouseup\",this.mouseup);}mousemove(t){this.move(t,r.mousePos(this.element,t));}mouseup(t){this.mouseRotate.mouseupWindow(t),this.mousePitch&&this.mousePitch.mouseupWindow(t),this.offTemp();}touchstart(t){1!==t.targetTouches.length?this.reset():(this._startPos=this._lastPos=r.touchPos(this.element,t.targetTouches)[0],this.down({type:\"mousedown\",button:0,ctrlKey:!0,preventDefault:()=>t.preventDefault()},this._startPos));}touchmove(t){1!==t.targetTouches.length?this.reset():(this._lastPos=r.touchPos(this.element,t.targetTouches)[0],this.move({preventDefault:()=>t.preventDefault()},this._lastPos));}touchend(t){0===t.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)180;){const t=o.locationPoint(e);if(t.x>=0&&t.y>=0&&t.x<=o.width&&t.y<=o.height)break;e.lng>o.center.lng?e.lng-=360:e.lng+=360;}return e}const la={center:\"translate(-50%,-50%)\",top:\"translate(-50%,0)\",\"top-left\":\"translate(0,0)\",\"top-right\":\"translate(-100%,0)\",bottom:\"translate(-50%,-100%)\",\"bottom-left\":\"translate(0,-100%)\",\"bottom-right\":\"translate(-100%,-100%)\",left:\"translate(0,-50%)\",right:\"translate(-100%,-50%)\"};function ca(t,e,i){const o=t.classList;for(const t in la)o.remove(`maplibregl-${i}-anchor-${t}`,`mapboxgl-${i}-anchor-${t}`);o.add(`maplibregl-${i}-anchor-${e}`,`mapboxgl-${i}-anchor-${e}`);}class ha extends t.Evented{constructor(e,i){if(super(),(e instanceof HTMLElement||i)&&(e=t.extend({element:e},i)),t.bindAll([\"_update\",\"_onMove\",\"_onUp\",\"_addDragHandler\",\"_onMapClick\",\"_onKeyPress\"],this),this._anchor=e&&e.anchor||\"center\",this._color=e&&e.color||\"#3FB1CE\",this._scale=e&&e.scale||1,this._draggable=e&&e.draggable||!1,this._clickTolerance=e&&e.clickTolerance||0,this._isDragging=!1,this._state=\"inactive\",this._rotation=e&&e.rotation||0,this._rotationAlignment=e&&e.rotationAlignment||\"auto\",this._pitchAlignment=e&&e.pitchAlignment&&\"auto\"!==e.pitchAlignment?e.pitchAlignment:this._rotationAlignment,e&&e.element)this._element=e.element,this._offset=t.pointGeometry.convert(e&&e.offset||[0,0]);else {this._defaultMarker=!0,this._element=r.create(\"div\"),this._element.setAttribute(\"aria-label\",\"Map marker\");const i=r.createNS(\"http://www.w3.org/2000/svg\",\"svg\"),o=41,a=27;i.setAttributeNS(null,\"display\",\"block\"),i.setAttributeNS(null,\"height\",`${o}px`),i.setAttributeNS(null,\"width\",`${a}px`),i.setAttributeNS(null,\"viewBox\",`0 0 ${a} ${o}`);const s=r.createNS(\"http://www.w3.org/2000/svg\",\"g\");s.setAttributeNS(null,\"stroke\",\"none\"),s.setAttributeNS(null,\"stroke-width\",\"1\"),s.setAttributeNS(null,\"fill\",\"none\"),s.setAttributeNS(null,\"fill-rule\",\"evenodd\");const n=r.createNS(\"http://www.w3.org/2000/svg\",\"g\");n.setAttributeNS(null,\"fill-rule\",\"nonzero\");const l=r.createNS(\"http://www.w3.org/2000/svg\",\"g\");l.setAttributeNS(null,\"transform\",\"translate(3.0, 29.0)\"),l.setAttributeNS(null,\"fill\",\"#000000\");const c=[{rx:\"10.5\",ry:\"5.25002273\"},{rx:\"10.5\",ry:\"5.25002273\"},{rx:\"9.5\",ry:\"4.77275007\"},{rx:\"8.5\",ry:\"4.29549936\"},{rx:\"7.5\",ry:\"3.81822308\"},{rx:\"6.5\",ry:\"3.34094679\"},{rx:\"5.5\",ry:\"2.86367051\"},{rx:\"4.5\",ry:\"2.38636864\"}];for(const t of c){const e=r.createNS(\"http://www.w3.org/2000/svg\",\"ellipse\");e.setAttributeNS(null,\"opacity\",\"0.04\"),e.setAttributeNS(null,\"cx\",\"10.5\"),e.setAttributeNS(null,\"cy\",\"5.80029008\"),e.setAttributeNS(null,\"rx\",t.rx),e.setAttributeNS(null,\"ry\",t.ry),l.appendChild(e);}const h=r.createNS(\"http://www.w3.org/2000/svg\",\"g\");h.setAttributeNS(null,\"fill\",this._color);const u=r.createNS(\"http://www.w3.org/2000/svg\",\"path\");u.setAttributeNS(null,\"d\",\"M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z\"),h.appendChild(u);const d=r.createNS(\"http://www.w3.org/2000/svg\",\"g\");d.setAttributeNS(null,\"opacity\",\"0.25\"),d.setAttributeNS(null,\"fill\",\"#000000\");const m=r.createNS(\"http://www.w3.org/2000/svg\",\"path\");m.setAttributeNS(null,\"d\",\"M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z\"),d.appendChild(m);const _=r.createNS(\"http://www.w3.org/2000/svg\",\"g\");_.setAttributeNS(null,\"transform\",\"translate(6.0, 7.0)\"),_.setAttributeNS(null,\"fill\",\"#FFFFFF\");const p=r.createNS(\"http://www.w3.org/2000/svg\",\"g\");p.setAttributeNS(null,\"transform\",\"translate(8.0, 8.0)\");const f=r.createNS(\"http://www.w3.org/2000/svg\",\"circle\");f.setAttributeNS(null,\"fill\",\"#000000\"),f.setAttributeNS(null,\"opacity\",\"0.25\"),f.setAttributeNS(null,\"cx\",\"5.5\"),f.setAttributeNS(null,\"cy\",\"5.5\"),f.setAttributeNS(null,\"r\",\"5.4999962\");const g=r.createNS(\"http://www.w3.org/2000/svg\",\"circle\");g.setAttributeNS(null,\"fill\",\"#FFFFFF\"),g.setAttributeNS(null,\"cx\",\"5.5\"),g.setAttributeNS(null,\"cy\",\"5.5\"),g.setAttributeNS(null,\"r\",\"5.4999962\"),p.appendChild(f),p.appendChild(g),n.appendChild(l),n.appendChild(h),n.appendChild(d),n.appendChild(_),n.appendChild(p),i.appendChild(n),i.setAttributeNS(null,\"height\",o*this._scale+\"px\"),i.setAttributeNS(null,\"width\",a*this._scale+\"px\"),this._element.appendChild(i),this._offset=t.pointGeometry.convert(e&&e.offset||[0,-14]);}this._element.classList.add(\"maplibregl-marker\",\"mapboxgl-marker\"),this._element.addEventListener(\"dragstart\",(t=>{t.preventDefault();})),this._element.addEventListener(\"mousedown\",(t=>{t.preventDefault();})),ca(this._element,this._anchor,\"marker\"),this._popup=null;}addTo(t){return this.remove(),this._map=t,t.getCanvasContainer().appendChild(this._element),t.on(\"move\",this._update),t.on(\"moveend\",this._update),this.setDraggable(this._draggable),this._update(),this._map.on(\"click\",this._onMapClick),this}remove(){return this._opacityTimeout&&(clearTimeout(this._opacityTimeout),delete this._opacityTimeout),this._map&&(this._map.off(\"click\",this._onMapClick),this._map.off(\"move\",this._update),this._map.off(\"moveend\",this._update),this._map.off(\"mousedown\",this._addDragHandler),this._map.off(\"touchstart\",this._addDragHandler),this._map.off(\"mouseup\",this._onUp),this._map.off(\"touchend\",this._onUp),this._map.off(\"mousemove\",this._onMove),this._map.off(\"touchmove\",this._onMove),delete this._map),r.remove(this._element),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(e){return this._lngLat=t.LngLat.convert(e),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(t){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener(\"keypress\",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute(\"tabindex\")),t){if(!(\"offset\"in t.options)){const e=38.1,i=13.5,o=Math.sqrt(Math.pow(i,2)/2);t.options.offset=this._defaultMarker?{top:[0,0],\"top-left\":[0,0],\"top-right\":[0,0],bottom:[0,-e],\"bottom-left\":[o,-1*(e-i+o)],\"bottom-right\":[-o,-1*(e-i+o)],left:[i,-1*(e-i)],right:[-i,-1*(e-i)]}:this._offset;}this._popup=t,this._lngLat&&this._popup.setLngLat(this._lngLat),this._originalTabIndex=this._element.getAttribute(\"tabindex\"),this._originalTabIndex||this._element.setAttribute(\"tabindex\",\"0\"),this._element.addEventListener(\"keypress\",this._onKeyPress);}return this}_onKeyPress(t){const e=t.code,i=t.charCode||t.keyCode;\"Space\"!==e&&\"Enter\"!==e&&32!==i&&13!==i||this.togglePopup();}_onMapClick(t){const e=t.originalEvent.target,i=this._element;this._popup&&(e===i||i.contains(e))&&this.togglePopup();}getPopup(){return this._popup}togglePopup(){const t=this._popup;return t?(t.isOpen()?t.remove():t.addTo(this._map),this):this}_update(t){if(!this._map)return;this._map.transform.renderWorldCopies&&(this._lngLat=na(this._lngLat,this._pos,this._map.transform)),this._pos=this._map.project(this._lngLat)._add(this._offset);let e=\"\";\"viewport\"===this._rotationAlignment||\"auto\"===this._rotationAlignment?e=`rotateZ(${this._rotation}deg)`:\"map\"===this._rotationAlignment&&(e=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let i=\"\";\"viewport\"===this._pitchAlignment||\"auto\"===this._pitchAlignment?i=\"rotateX(0deg)\":\"map\"===this._pitchAlignment&&(i=`rotateX(${this._map.getPitch()}deg)`),t&&\"moveend\"!==t.type||(this._pos=this._pos.round()),r.setTransform(this._element,`${la[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${i} ${e}`),this._map.style&&this._map.style.terrain&&!this._opacityTimeout&&(this._opacityTimeout=setTimeout((()=>{const t=this._map.unproject(this._pos),e=40075016.686*Math.abs(Math.cos(this._lngLat.lat*Math.PI/180))/Math.pow(2,this._map.transform.tileZoom+8);this._element.style.opacity=t.distanceTo(this._lngLat)>20*e?\"0.2\":\"1.0\",this._opacityTimeout=null;}),100));}getOffset(){return this._offset}setOffset(e){return this._offset=t.pointGeometry.convert(e),this._update(),this}_onMove(e){if(!this._isDragging){const t=this._clickTolerance||this._map._clickTolerance;this._isDragging=e.point.dist(this._pointerdownPos)>=t;}this._isDragging&&(this._pos=e.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents=\"none\",\"pending\"===this._state&&(this._state=\"active\",this.fire(new t.Event(\"dragstart\"))),this.fire(new t.Event(\"drag\")));}_onUp(){this._element.style.pointerEvents=\"auto\",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off(\"mousemove\",this._onMove),this._map.off(\"touchmove\",this._onMove),\"active\"===this._state&&this.fire(new t.Event(\"dragend\")),this._state=\"inactive\";}_addDragHandler(t){this._element.contains(t.originalEvent.target)&&(t.preventDefault(),this._positionDelta=t.point.sub(this._pos).add(this._offset),this._pointerdownPos=t.point,this._state=\"pending\",this._map.on(\"mousemove\",this._onMove),this._map.on(\"touchmove\",this._onMove),this._map.once(\"mouseup\",this._onUp),this._map.once(\"touchend\",this._onUp));}setDraggable(t){return this._draggable=!!t,this._map&&(t?(this._map.on(\"mousedown\",this._addDragHandler),this._map.on(\"touchstart\",this._addDragHandler)):(this._map.off(\"mousedown\",this._addDragHandler),this._map.off(\"touchstart\",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(t){return this._rotation=t||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(t){return this._rotationAlignment=t||\"auto\",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(t){return this._pitchAlignment=t&&\"auto\"!==t?t:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}}const ua={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0};let da,ma=0,_a=!1;const pa={maxWidth:100,unit:\"metric\"};function fa(t,e,i){const o=i&&i.maxWidth||100,a=t._container.clientHeight/2,r=t.unproject([0,a]),s=t.unproject([o,a]),n=r.distanceTo(s);if(i&&\"imperial\"===i.unit){const i=3.2808*n;i>5280?ga(e,o,i/5280,t._getUIString(\"ScaleControl.Miles\")):ga(e,o,i,t._getUIString(\"ScaleControl.Feet\"));}else i&&\"nautical\"===i.unit?ga(e,o,n/1852,t._getUIString(\"ScaleControl.NauticalMiles\")):n>=1e3?ga(e,o,n/1e3,t._getUIString(\"ScaleControl.Kilometers\")):ga(e,o,n,t._getUIString(\"ScaleControl.Meters\"));}function ga(t,e,i,o){const a=function(t){const e=Math.pow(10,`${Math.floor(t)}`.length-1);let i=t/e;return i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:i>=1?1:function(t){const e=Math.pow(10,Math.ceil(-Math.log(t)/Math.LN10));return Math.round(t*e)/e}(i),e*i}(i);t.style.width=e*(a/i)+\"px\",t.innerHTML=`${a} ${o}`;}const xa={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:\"\",maxWidth:\"240px\"},va=[\"a[href]\",\"[tabindex]:not([tabindex='-1'])\",\"[contenteditable]:not([contenteditable='false'])\",\"button:not([disabled])\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].join(\", \");function ya(e){if(e){if(\"number\"==typeof e){const i=Math.round(Math.sqrt(.5*Math.pow(e,2)));return {center:new t.pointGeometry(0,0),top:new t.pointGeometry(0,e),\"top-left\":new t.pointGeometry(i,i),\"top-right\":new t.pointGeometry(-i,i),bottom:new t.pointGeometry(0,-e),\"bottom-left\":new t.pointGeometry(i,-i),\"bottom-right\":new t.pointGeometry(-i,-i),left:new t.pointGeometry(e,0),right:new t.pointGeometry(-e,0)}}if(e instanceof t.pointGeometry||Array.isArray(e)){const i=t.pointGeometry.convert(e);return {center:i,top:i,\"top-left\":i,\"top-right\":i,bottom:i,\"bottom-left\":i,\"bottom-right\":i,left:i,right:i}}return {center:t.pointGeometry.convert(e.center||[0,0]),top:t.pointGeometry.convert(e.top||[0,0]),\"top-left\":t.pointGeometry.convert(e[\"top-left\"]||[0,0]),\"top-right\":t.pointGeometry.convert(e[\"top-right\"]||[0,0]),bottom:t.pointGeometry.convert(e.bottom||[0,0]),\"bottom-left\":t.pointGeometry.convert(e[\"bottom-left\"]||[0,0]),\"bottom-right\":t.pointGeometry.convert(e[\"bottom-right\"]||[0,0]),left:t.pointGeometry.convert(e.left||[0,0]),right:t.pointGeometry.convert(e.right||[0,0])}}return ya(new t.pointGeometry(0,0))}const ba={supported:e,setRTLTextPlugin:t.setRTLTextPlugin,getRTLTextPluginStatus:t.getRTLTextPluginStatus,Map:class extends Qo{constructor(e){var i;if(t.PerformanceUtils.mark(t.PerformanceMarkers.create),null!=(e=t.extend({},aa,e)).minZoom&&null!=e.maxZoom&&e.minZoom>e.maxZoom)throw new Error(\"maxZoom must be greater than or equal to minZoom\");if(null!=e.minPitch&&null!=e.maxPitch&&e.minPitch>e.maxPitch)throw new Error(\"maxPitch must be greater than or equal to minPitch\");if(null!=e.minPitch&&e.minPitch<0)throw new Error(\"minPitch must be greater than or equal to 0\");if(null!=e.maxPitch&&e.maxPitch>85)throw new Error(\"maxPitch must be less than or equal to 85\");if(super(new io(e.minZoom,e.maxZoom,e.minPitch,e.maxPitch,e.renderWorldCopies),{bearingSnap:e.bearingSnap}),this._interactive=e.interactive,this._cooperativeGestures=e.cooperativeGestures,this._maxTileCacheSize=e.maxTileCacheSize,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._antialias=e.antialias,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,this._refreshExpiredTiles=e.refreshExpiredTiles,this._fadeDuration=e.fadeDuration,this._crossSourceCollisions=e.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=e.collectResourceTiming,this._renderTaskQueue=new ia,this._controls=[],this._mapId=t.uniqueId(),this._locale=t.extend({},oa,e.locale),this._clickTolerance=e.clickTolerance,this._pixelRatio=null!==(i=e.pixelRatio)&&void 0!==i?i:devicePixelRatio,this._requestManager=new s(e.transformRequest),\"string\"==typeof e.container){if(this._container=document.getElementById(e.container),!this._container)throw new Error(`Container '${e.container}' not found.`)}else {if(!(e.container instanceof HTMLElement))throw new Error(\"Invalid type: 'container' must be a String or HTMLElement.\");this._container=e.container;}if(e.maxBounds&&this.setMaxBounds(e.maxBounds),t.bindAll([\"_onWindowOnline\",\"_onWindowResize\",\"_onMapScroll\",\"_contextLost\",\"_contextRestored\"],this),this._setupContainer(),this._setupPainter(),void 0===this.painter)throw new Error(\"Failed to initialize WebGL.\");this.on(\"move\",(()=>this._update(!1))),this.on(\"moveend\",(()=>this._update(!1))),this.on(\"zoom\",(()=>this._update(!0))),this.on(\"terrain\",(()=>{this.painter.terrainFacilitator.dirty=!0,this._update(!0);})),\"undefined\"!=typeof window&&(addEventListener(\"online\",this._onWindowOnline,!1),addEventListener(\"resize\",this._onWindowResize,!1),addEventListener(\"orientationchange\",this._onWindowResize,!1)),this.handlers=new Yo(this,e),this._cooperativeGestures&&this._setupCooperativeGestures(),this._hash=e.hash&&new oo(\"string\"==typeof e.hash&&e.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),e.bounds&&(this.resize(),this.fitBounds(e.bounds,t.extend({},e.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=e.localIdeographFontFamily,e.style&&this.setStyle(e.style,{localIdeographFontFamily:e.localIdeographFontFamily}),e.attributionControl&&this.addControl(new ta({customAttribution:e.customAttribution})),e.maplibreLogo&&this.addControl(new ea,e.logoPosition),this.on(\"style.load\",(()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet);})),this.on(\"data\",(e=>{this._update(\"style\"===e.dataType),this.fire(new t.Event(`${e.dataType}data`,e));})),this.on(\"dataloading\",(e=>{this.fire(new t.Event(`${e.dataType}dataloading`,e));})),this.on(\"dataabort\",(e=>{this.fire(new t.Event(\"sourcedataabort\",e));}));}_getMapId(){return this._mapId}addControl(e,i){if(void 0===i&&(i=e.getDefaultPosition?e.getDefaultPosition():\"top-right\"),!e||!e.onAdd)return this.fire(new t.ErrorEvent(new Error(\"Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.\")));const o=e.onAdd(this);this._controls.push(e);const a=this._controlPositions[i];return -1!==i.indexOf(\"bottom\")?a.insertBefore(o,a.firstChild):a.appendChild(o),this}removeControl(e){if(!e||!e.onRemove)return this.fire(new t.ErrorEvent(new Error(\"Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.\")));const i=this._controls.indexOf(e);return i>-1&&this._controls.splice(i,1),e.onRemove(this),this}hasControl(t){return this._controls.indexOf(t)>-1}calculateCameraOptionsFromTo(t,e,i,o){return null==o&&this.style.terrain&&(o=this.transform.getElevation(i,this.style.terrain)),super.calculateCameraOptionsFromTo(t,e,i,o)}resize(e){const i=this._containerDimensions(),o=i[0],a=i[1];this._resizeCanvas(o,a,this.getPixelRatio()),this.transform.resize(o,a),this.painter.resize(o,a,this.getPixelRatio());const r=!this._moving;return r&&(this.stop(),this.fire(new t.Event(\"movestart\",e)).fire(new t.Event(\"move\",e))),this.fire(new t.Event(\"resize\",e)),r&&this.fire(new t.Event(\"moveend\",e)),this}getPixelRatio(){return this._pixelRatio}setPixelRatio(t){const[e,i]=this._containerDimensions();this._pixelRatio=t,this._resizeCanvas(e,i,t),this.painter.resize(e,i,t);}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(e){return this.transform.setMaxBounds(t.LngLatBounds.convert(e)),this._update()}setMinZoom(t){if((t=null==t?-2:t)>=-2&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error(\"maxZoom must be greater than the current minZoom\")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(t){if((t=null==t?0:t)<0)throw new Error(\"minPitch must be greater than or equal to 0\");if(t>=0&&t<=this.transform.maxPitch)return this.transform.minPitch=t,this._update(),this.getPitch()85)throw new Error(\"maxPitch must be less than or equal to 85\");if(t>=this.transform.minPitch)return this.transform.maxPitch=t,this._update(),this.getPitch()>t&&this.setPitch(t),this;throw new Error(\"maxPitch must be greater than the current minPitch\")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(t){return this.transform.renderWorldCopies=t,this._update()}project(e){return this.transform.locationPoint(t.LngLat.convert(e),this.style&&this.style.terrain)}unproject(e){return this.transform.pointLocation(t.pointGeometry.convert(e),this.style&&this.style.terrain)}isMoving(){return this._moving||this.handlers.isMoving()}isZooming(){return this._zooming||this.handlers.isZooming()}isRotating(){return this._rotating||this.handlers.isRotating()}_createDelegatedListener(t,e,i){if(\"mouseenter\"===t||\"mouseover\"===t){let o=!1;const a=a=>{const r=this.getLayer(e)?this.queryRenderedFeatures(a.point,{layers:[e]}):[];r.length?o||(o=!0,i.call(this,new mo(t,this,a.originalEvent,{features:r}))):o=!1;};return {layer:e,listener:i,delegates:{mousemove:a,mouseout:()=>{o=!1;}}}}if(\"mouseleave\"===t||\"mouseout\"===t){let o=!1;const a=a=>{(this.getLayer(e)?this.queryRenderedFeatures(a.point,{layers:[e]}):[]).length?o=!0:o&&(o=!1,i.call(this,new mo(t,this,a.originalEvent)));},r=e=>{o&&(o=!1,i.call(this,new mo(t,this,e.originalEvent)));};return {layer:e,listener:i,delegates:{mousemove:a,mouseout:r}}}{const o=t=>{const o=this.getLayer(e)?this.queryRenderedFeatures(t.point,{layers:[e]}):[];o.length&&(t.features=o,i.call(this,t),delete t.features);};return {layer:e,listener:i,delegates:{[t]:o}}}}on(t,e,i){if(void 0===i)return super.on(t,e);const o=this._createDelegatedListener(t,e,i);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[t]=this._delegatedListeners[t]||[],this._delegatedListeners[t].push(o);for(const t in o.delegates)this.on(t,o.delegates[t]);return this}once(t,e,i){if(void 0===i)return super.once(t,e);const o=this._createDelegatedListener(t,e,i);for(const t in o.delegates)this.once(t,o.delegates[t]);return this}off(t,e,i){return void 0===i?super.off(t,e):(this._delegatedListeners&&this._delegatedListeners[t]&&(o=>{const a=this._delegatedListeners[t];for(let t=0;t{e?this.fire(new t.ErrorEvent(e)):o&&this._updateDiff(o,i);}));}else \"object\"==typeof e&&this._updateDiff(e,i);}_updateDiff(e,i){try{this.style.setState(e)&&this._update(!0);}catch(o){t.warnOnce(`Unable to perform style diff: ${o.message||o.error||o}. Rebuilding the style from scratch.`),this._updateStyle(e,i);}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():t.warnOnce(\"There is no style added to the map.\")}addSource(t,e){return this._lazyInitEmptyStyle(),this.style.addSource(t,e),this._update(!0)}isSourceLoaded(e){const i=this.style&&this.style.sourceCaches[e];if(void 0!==i)return i.loaded();this.fire(new t.ErrorEvent(new Error(`There is no source with ID '${e}'`)));}setTerrain(t){return this.style.setTerrain(t),this}getTerrain(){return this.style.terrain&&this.style.terrain.options}areTilesLoaded(){const t=this.style&&this.style.sourceCaches;for(const e in t){const i=t[e]._tiles;for(const t in i){const e=i[t];if(\"loaded\"!==e.state&&\"errored\"!==e.state)return !1}}return !0}addSourceType(t,e,i){return this._lazyInitEmptyStyle(),this.style.addSourceType(t,e,i)}removeSource(t){return this.style.removeSource(t),this._update(!0)}getSource(t){return this.style.getSource(t)}addImage(e,i,{pixelRatio:o=1,sdf:a=!1,stretchX:r,stretchY:s,content:n}={}){if(this._lazyInitEmptyStyle(),i instanceof HTMLImageElement||t.isImageBitmap(i)){const{width:l,height:c,data:h}=t.exported.getImageData(i);this.style.addImage(e,{data:new t.RGBAImage({width:l,height:c},h),pixelRatio:o,stretchX:r,stretchY:s,content:n,sdf:a,version:0});}else {if(void 0===i.width||void 0===i.height)return this.fire(new t.ErrorEvent(new Error(\"Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));{const{width:l,height:c,data:h}=i,u=i;this.style.addImage(e,{data:new t.RGBAImage({width:l,height:c},new Uint8Array(h)),pixelRatio:o,stretchX:r,stretchY:s,content:n,sdf:a,version:0,userImage:u}),u.onAdd&&u.onAdd(this,e);}}}updateImage(e,i){const o=this.style.getImage(e);if(!o)return this.fire(new t.ErrorEvent(new Error(\"The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.\")));const a=i instanceof HTMLImageElement||t.isImageBitmap(i)?t.exported.getImageData(i):i,{width:r,height:s,data:n}=a;if(void 0===r||void 0===s)return this.fire(new t.ErrorEvent(new Error(\"Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));if(r!==o.data.width||s!==o.data.height)return this.fire(new t.ErrorEvent(new Error(\"The width and height of the updated image must be that same as the previous version of the image\")));const l=!(i instanceof HTMLImageElement||t.isImageBitmap(i));o.data.replace(n,l),this.style.updateImage(e,o);}hasImage(e){return e?!!this.style.getImage(e):(this.fire(new t.ErrorEvent(new Error(\"Missing required image id\"))),!1)}removeImage(t){this.style.removeImage(t);}loadImage(e,i){t.getImage(this._requestManager.transformRequest(e,t.ResourceType.Image),i);}listImages(){return this.style.listImages()}addLayer(t,e){return this._lazyInitEmptyStyle(),this.style.addLayer(t,e),this._update(!0)}moveLayer(t,e){return this.style.moveLayer(t,e),this._update(!0)}removeLayer(t){return this.style.removeLayer(t),this._update(!0)}getLayer(t){return this.style.getLayer(t)}setLayerZoomRange(t,e,i){return this.style.setLayerZoomRange(t,e,i),this._update(!0)}setFilter(t,e,i={}){return this.style.setFilter(t,e,i),this._update(!0)}getFilter(t){return this.style.getFilter(t)}setPaintProperty(t,e,i,o={}){return this.style.setPaintProperty(t,e,i,o),this._update(!0)}getPaintProperty(t,e){return this.style.getPaintProperty(t,e)}setLayoutProperty(t,e,i,o={}){return this.style.setLayoutProperty(t,e,i,o),this._update(!0)}getLayoutProperty(t,e){return this.style.getLayoutProperty(t,e)}setLight(t,e={}){return this._lazyInitEmptyStyle(),this.style.setLight(t,e),this._update(!0)}getLight(){return this.style.getLight()}setFeatureState(t,e){return this.style.setFeatureState(t,e),this._update()}removeFeatureState(t,e){return this.style.removeFeatureState(t,e),this._update()}getFeatureState(t){return this.style.getFeatureState(t)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let t=0,e=0;return this._container&&(t=this._container.clientWidth||400,e=this._container.clientHeight||300),[t,e]}_setupContainer(){const t=this._container;t.classList.add(\"maplibregl-map\",\"mapboxgl-map\");const e=this._canvasContainer=r.create(\"div\",\"maplibregl-canvas-container mapboxgl-canvas-container\",t);this._interactive&&e.classList.add(\"maplibregl-interactive\",\"mapboxgl-interactive\"),this._canvas=r.create(\"canvas\",\"maplibregl-canvas mapboxgl-canvas\",e),this._canvas.addEventListener(\"webglcontextlost\",this._contextLost,!1),this._canvas.addEventListener(\"webglcontextrestored\",this._contextRestored,!1),this._canvas.setAttribute(\"tabindex\",\"0\"),this._canvas.setAttribute(\"aria-label\",\"Map\"),this._canvas.setAttribute(\"role\",\"region\");const i=this._containerDimensions();this._resizeCanvas(i[0],i[1],this.getPixelRatio());const o=this._controlContainer=r.create(\"div\",\"maplibregl-control-container mapboxgl-control-container\",t),a=this._controlPositions={};[\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"].forEach((t=>{a[t]=r.create(\"div\",`maplibregl-ctrl-${t} mapboxgl-ctrl-${t}`,o);})),this._container.addEventListener(\"scroll\",this._onMapScroll,!1);}_setupCooperativeGestures(){const t=this._container;this._metaPress=!1,this._cooperativeGesturesScreen=r.create(\"div\",\"maplibregl-cooperative-gesture-screen\",t);let e=\"Control\",i=\"boolean\"!=typeof this._cooperativeGestures&&this._cooperativeGestures.windowsHelpText?this._cooperativeGestures.windowsHelpText:\"Use Ctrl + scroll to zoom the map\";0===navigator.platform.indexOf(\"Mac\")&&(i=\"boolean\"!=typeof this._cooperativeGestures&&this._cooperativeGestures.macHelpText?this._cooperativeGestures.macHelpText:\"Use ⌘ + scroll to zoom the map\",e=\"Meta\"),this._cooperativeGesturesScreen.innerHTML=`\\n
${i}
\\n
${\"boolean\"!=typeof this._cooperativeGestures&&this._cooperativeGestures.mobileHelpText?this._cooperativeGestures.mobileHelpText:\"Use two fingers to move the map\"}
\\n `,document.addEventListener(\"keydown\",(t=>{t.key===e&&(this._metaPress=!0);})),document.addEventListener(\"keyup\",(t=>{t.key===e&&(this._metaPress=!1);})),this._canvasContainer.addEventListener(\"wheel\",(t=>{this._onCooperativeGesture(t,this._metaPress,1);}),!1),this._canvasContainer.classList.remove(\"mapboxgl-touch-drag-pan\",\"maplibregl-touch-drag-pan\");}_resizeCanvas(t,e,i){this._canvas.width=i*t,this._canvas.height=i*e,this._canvas.style.width=`${t}px`,this._canvas.style.height=`${e}px`;}_setupPainter(){const i=t.extend({},e.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),o=this._canvas.getContext(\"webgl\",i)||this._canvas.getContext(\"experimental-webgl\",i);o?(this.painter=new Ji(o,this.transform),t.exported$1.testSupport(o)):this.fire(new t.ErrorEvent(new Error(\"Failed to initialize WebGL\")));}_contextLost(e){e.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new t.Event(\"webglcontextlost\",{originalEvent:e}));}_contextRestored(e){this._setupPainter(),this.resize(),this._update(),this.fire(new t.Event(\"webglcontextrestored\",{originalEvent:e}));}_onMapScroll(t){if(t.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1}_onCooperativeGesture(t,e,i){return !e&&i<2&&(this._cooperativeGesturesScreen.classList.add(\"maplibregl-show\"),setTimeout((()=>{this._cooperativeGesturesScreen.classList.remove(\"maplibregl-show\");}),100)),!1}loaded(){return !this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(t){return this.style?(this._styleDirty=this._styleDirty||t,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(t){return this._update(),this._renderTaskQueue.add(t)}_cancelRenderFrame(t){this._renderTaskQueue.remove(t);}_render(e){let i,o=0;const a=this.painter.context.extTimerQuery;if(this.listens(\"gpu-timing-frame\")&&(i=a.createQueryEXT(),a.beginQueryEXT(a.TIME_ELAPSED_EXT,i),o=t.exported.now()),this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(e),this._removed)return;let r=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;const e=this.transform.zoom,i=t.exported.now();this.style.zoomHistory.update(e,i);const o=new t.EvaluationParameters(e,{now:i,fadeDuration:this._fadeDuration,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),a=o.crossFadingFactor();1===a&&a===this._crossFadingFactor||(r=!0,this._crossFadingFactor=a),this.style.update(o);}if(this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.style.terrain&&this.style.terrain.sourceCache.update(this.transform,this.style.terrain),this.transform.updateElevation(this.style.terrain),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,this._fadeDuration,this._crossSourceCollisions),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:this._fadeDuration,showPadding:this.showPadding,gpuTiming:!!this.listens(\"gpu-timing-layer\")}),this.fire(new t.Event(\"render\")),this.loaded()&&!this._loaded&&(this._loaded=!0,t.PerformanceUtils.mark(t.PerformanceMarkers.load),this.fire(new t.Event(\"load\"))),this.style&&(this.style.hasTransitions()||r)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),this.listens(\"gpu-timing-frame\")){const e=t.exported.now()-o;a.endQueryEXT(a.TIME_ELAPSED_EXT,i),setTimeout((()=>{const o=a.getQueryObjectEXT(i,a.QUERY_RESULT_EXT)/1e6;a.deleteQueryEXT(i),this.fire(new t.Event(\"gpu-timing-frame\",{cpuTime:e,gpuTime:o}));}),50);}if(this.listens(\"gpu-timing-layer\")){const e=this.painter.collectGpuTimers();setTimeout((()=>{const i=this.painter.queryGpuTimers(e);this.fire(new t.Event(\"gpu-timing-layer\",{layerTimes:i}));}),50);}const s=this._sourcesDirty||this._styleDirty||this._placementDirty;return s||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new t.Event(\"idle\")),!this._loaded||this._fullyLoaded||s||(this._fullyLoaded=!0,t.PerformanceUtils.mark(t.PerformanceMarkers.fullLoad)),this}redraw(){return this.style&&(this._frame&&(this._frame.cancel(),this._frame=null),this._render(0)),this}remove(){this._hash&&this._hash.remove();for(const t of this._controls)t.onRemove(this);this._controls=[],this._frame&&(this._frame.cancel(),this._frame=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),\"undefined\"!=typeof window&&(removeEventListener(\"resize\",this._onWindowResize,!1),removeEventListener(\"orientationchange\",this._onWindowResize,!1),removeEventListener(\"online\",this._onWindowOnline,!1));const e=this.painter.context.gl.getExtension(\"WEBGL_lose_context\");e&&e.loseContext(),this._canvas.removeEventListener(\"webglcontextrestored\",this._contextRestored,!1),this._canvas.removeEventListener(\"webglcontextlost\",this._contextLost,!1),r.remove(this._canvasContainer),r.remove(this._controlContainer),this._cooperativeGestures&&r.remove(this._cooperativeGesturesScreen),this._container.classList.remove(\"maplibregl-map\",\"mapboxgl-map\"),t.PerformanceUtils.clearMetrics(),this._removed=!0,this.fire(new t.Event(\"remove\"));}triggerRepaint(){this.style&&!this._frame&&(this._frame=t.exported.frame((e=>{t.PerformanceUtils.frame(e),this._frame=null,this._render(e);})));}_onWindowOnline(){this._update();}_onWindowResize(t){this._trackResize&&this.resize({originalEvent:t})._update();}get showTileBoundaries(){return !!this._showTileBoundaries}set showTileBoundaries(t){this._showTileBoundaries!==t&&(this._showTileBoundaries=t,this._update());}get showPadding(){return !!this._showPadding}set showPadding(t){this._showPadding!==t&&(this._showPadding=t,this._update());}get showCollisionBoxes(){return !!this._showCollisionBoxes}set showCollisionBoxes(t){this._showCollisionBoxes!==t&&(this._showCollisionBoxes=t,t?this.style._generateCollisionBoxes():this._update());}get showOverdrawInspector(){return !!this._showOverdrawInspector}set showOverdrawInspector(t){this._showOverdrawInspector!==t&&(this._showOverdrawInspector=t,this._update());}get repaint(){return !!this._repaint}set repaint(t){this._repaint!==t&&(this._repaint=t,this.triggerRepaint());}get vertices(){return !!this._vertices}set vertices(t){this._vertices=t,this._update();}_setCacheLimits(e,i){t.setCacheLimits(e,i);}get version(){return \"2.4.0\"}},NavigationControl:class{constructor(e){this.options=t.extend({},ra,e),this._container=r.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group mapboxgl-ctrl mapboxgl-ctrl-group\"),this._container.addEventListener(\"contextmenu\",(t=>t.preventDefault())),this.options.showZoom&&(t.bindAll([\"_setButtonTitle\",\"_updateZoomButtons\"],this),this._zoomInButton=this._createButton(\"maplibregl-ctrl-zoom-in mapboxgl-ctrl-zoom-in\",(t=>this._map.zoomIn({},{originalEvent:t}))),r.create(\"span\",\"maplibregl-ctrl-icon mapboxgl-ctrl-icon\",this._zoomInButton).setAttribute(\"aria-hidden\",\"true\"),this._zoomOutButton=this._createButton(\"maplibregl-ctrl-zoom-out mapboxgl-ctrl-zoom-out\",(t=>this._map.zoomOut({},{originalEvent:t}))),r.create(\"span\",\"maplibregl-ctrl-icon mapboxgl-ctrl-icon\",this._zoomOutButton).setAttribute(\"aria-hidden\",\"true\")),this.options.showCompass&&(t.bindAll([\"_rotateCompassArrow\"],this),this._compass=this._createButton(\"maplibregl-ctrl-compass mapboxgl-ctrl-compass\",(t=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:t}):this._map.resetNorth({},{originalEvent:t});})),this._compassIcon=r.create(\"span\",\"maplibregl-ctrl-icon mapboxgl-ctrl-icon\",this._compass),this._compassIcon.setAttribute(\"aria-hidden\",\"true\"));}_updateZoomButtons(){const t=this._map.getZoom(),e=t===this._map.getMaxZoom(),i=t===this._map.getMinZoom();this._zoomInButton.disabled=e,this._zoomOutButton.disabled=i,this._zoomInButton.setAttribute(\"aria-disabled\",e.toString()),this._zoomOutButton.setAttribute(\"aria-disabled\",i.toString());}_rotateCompassArrow(){const t=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${this._map.transform.angle*(180/Math.PI)}deg)`:`rotate(${this._map.transform.angle*(180/Math.PI)}deg)`;this._compassIcon.style.transform=t;}onAdd(t){return this._map=t,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,\"ZoomIn\"),this._setButtonTitle(this._zoomOutButton,\"ZoomOut\"),this._map.on(\"zoom\",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,\"ResetBearing\"),this.options.visualizePitch&&this._map.on(\"pitch\",this._rotateCompassArrow),this._map.on(\"rotate\",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new sa(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){r.remove(this._container),this.options.showZoom&&this._map.off(\"zoom\",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off(\"pitch\",this._rotateCompassArrow),this._map.off(\"rotate\",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map;}_createButton(t,e){const i=r.create(\"button\",t,this._container);return i.type=\"button\",i.addEventListener(\"click\",e),i}_setButtonTitle(t,e){const i=this._map._getUIString(`NavigationControl.${e}`);t.title=i,t.setAttribute(\"aria-label\",i);}},GeolocateControl:class extends t.Evented{constructor(e){super(),this.options=t.extend({},ua,e),t.bindAll([\"_onSuccess\",\"_onError\",\"_onZoom\",\"_finish\",\"_setupUI\",\"_updateCamera\",\"_updateMarker\"],this);}onAdd(t){var e;return this._map=t,this._container=r.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group mapboxgl-ctrl mapboxgl-ctrl-group\"),e=this._setupUI,void 0!==da?e(da):void 0!==window.navigator.permissions?window.navigator.permissions.query({name:\"geolocation\"}).then((t=>{da=\"denied\"!==t.state,e(da);})):(da=!!window.navigator.geolocation,e(da)),this._container}onRemove(){void 0!==this._geolocationWatchID&&(window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),r.remove(this._container),this._map.off(\"zoom\",this._onZoom),this._map=void 0,ma=0,_a=!1;}_isOutOfMapMaxBounds(t){const e=this._map.getMaxBounds(),i=t.coords;return e&&(i.longitudee.getEast()||i.latitudee.getNorth())}_setErrorState(){switch(this._watchState){case\"WAITING_ACTIVE\":this._watchState=\"ACTIVE_ERROR\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\",\"mapboxgl-ctrl-geolocate-active\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active-error\",\"mapboxgl-ctrl-geolocate-active-error\");break;case\"ACTIVE_LOCK\":this._watchState=\"ACTIVE_ERROR\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\",\"mapboxgl-ctrl-geolocate-active\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active-error\",\"mapboxgl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\",\"mapboxgl-ctrl-geolocate-waiting\");break;case\"BACKGROUND\":this._watchState=\"BACKGROUND_ERROR\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\",\"mapboxgl-ctrl-geolocate-background\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background-error\",\"mapboxgl-ctrl-geolocate-background-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\",\"mapboxgl-ctrl-geolocate-waiting\");break;case\"ACTIVE_ERROR\":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}}_onSuccess(e){if(this._map){if(this._isOutOfMapMaxBounds(e))return this._setErrorState(),this.fire(new t.Event(\"outofmaxbounds\",e)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,this._watchState){case\"WAITING_ACTIVE\":case\"ACTIVE_LOCK\":case\"ACTIVE_ERROR\":this._watchState=\"ACTIVE_LOCK\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\",\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\",\"mapboxgl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\",\"mapboxgl-ctrl-geolocate-active\");break;case\"BACKGROUND\":case\"BACKGROUND_ERROR\":this._watchState=\"BACKGROUND\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\",\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\",\"mapboxgl-ctrl-geolocate-background-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background\",\"mapboxgl-ctrl-geolocate-background\");break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}this.options.showUserLocation&&\"OFF\"!==this._watchState&&this._updateMarker(e),this.options.trackUserLocation&&\"ACTIVE_LOCK\"!==this._watchState||this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove(\"maplibregl-user-location-dot-stale\",\"mapboxgl-user-location-dot-stale\"),this.fire(new t.Event(\"geolocate\",e)),this._finish();}}_updateCamera(e){const i=new t.LngLat(e.coords.longitude,e.coords.latitude),o=e.coords.accuracy,a=this._map.getBearing(),r=t.extend({bearing:a},this.options.fitBoundsOptions);this._map.fitBounds(i.toBounds(o),r,{geolocateSource:!0});}_updateMarker(e){if(e){const i=new t.LngLat(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(i).addTo(this._map),this._userLocationDotMarker.setLngLat(i).addTo(this._map),this._accuracy=e.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius();}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove();}_updateCircleRadius(){const t=this._map._container.clientHeight/2,e=this._map.unproject([0,t]),i=this._map.unproject([1,t]),o=e.distanceTo(i),a=Math.ceil(2*this._accuracy/o);this._circleElement.style.width=`${a}px`,this._circleElement.style.height=`${a}px`;}_onZoom(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius();}_onError(e){if(this._map){if(this.options.trackUserLocation)if(1===e.code){this._watchState=\"OFF\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\",\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\",\"mapboxgl-ctrl-geolocate-active\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\",\"mapboxgl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\",\"mapboxgl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\",\"mapboxgl-ctrl-geolocate-background-error\"),this._geolocateButton.disabled=!0;const t=this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");this._geolocateButton.title=t,this._geolocateButton.setAttribute(\"aria-label\",t),void 0!==this._geolocationWatchID&&this._clearWatch();}else {if(3===e.code&&_a)return;this._setErrorState();}\"OFF\"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add(\"maplibregl-user-location-dot-stale\",\"mapboxgl-user-location-dot-stale\"),this.fire(new t.Event(\"error\",e)),this._finish();}}_finish(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0;}_setupUI(e){if(this._container.addEventListener(\"contextmenu\",(t=>t.preventDefault())),this._geolocateButton=r.create(\"button\",\"maplibregl-ctrl-geolocate mapboxgl-ctrl-geolocate\",this._container),r.create(\"span\",\"maplibregl-ctrl-icon mapboxgl-ctrl-icon\",this._geolocateButton).setAttribute(\"aria-hidden\",\"true\"),this._geolocateButton.type=\"button\",!1===e){t.warnOnce(\"Geolocation support is not available so the GeolocateControl will be disabled.\");const e=this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");this._geolocateButton.disabled=!0,this._geolocateButton.title=e,this._geolocateButton.setAttribute(\"aria-label\",e);}else {const t=this._map._getUIString(\"GeolocateControl.FindMyLocation\");this._geolocateButton.title=t,this._geolocateButton.setAttribute(\"aria-label\",t);}this.options.trackUserLocation&&(this._geolocateButton.setAttribute(\"aria-pressed\",\"false\"),this._watchState=\"OFF\"),this.options.showUserLocation&&(this._dotElement=r.create(\"div\",\"maplibregl-user-location-dot mapboxgl-user-location-dot\"),this._userLocationDotMarker=new ha(this._dotElement),this._circleElement=r.create(\"div\",\"maplibregl-user-location-accuracy-circle mapboxgl-user-location-accuracy-circle\"),this._accuracyCircleMarker=new ha({element:this._circleElement,pitchAlignment:\"map\"}),this.options.trackUserLocation&&(this._watchState=\"OFF\"),this._map.on(\"zoom\",this._onZoom)),this._geolocateButton.addEventListener(\"click\",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on(\"movestart\",(e=>{e.geolocateSource||\"ACTIVE_LOCK\"!==this._watchState||e.originalEvent&&\"resize\"===e.originalEvent.type||(this._watchState=\"BACKGROUND\",this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background\",\"mapboxgl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\",\"mapboxgl-ctrl-geolocate-active\"),this.fire(new t.Event(\"trackuserlocationend\")));}));}trigger(){if(!this._setup)return t.warnOnce(\"Geolocate control triggered before added to a map\"),!1;if(this.options.trackUserLocation){switch(this._watchState){case\"OFF\":this._watchState=\"WAITING_ACTIVE\",this.fire(new t.Event(\"trackuserlocationstart\"));break;case\"WAITING_ACTIVE\":case\"ACTIVE_LOCK\":case\"ACTIVE_ERROR\":case\"BACKGROUND_ERROR\":ma--,_a=!1,this._watchState=\"OFF\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\",\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\",\"mapboxgl-ctrl-geolocate-active\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\",\"mapboxgl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\",\"mapboxgl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\",\"mapboxgl-ctrl-geolocate-background-error\"),this.fire(new t.Event(\"trackuserlocationend\"));break;case\"BACKGROUND\":this._watchState=\"ACTIVE_LOCK\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\",\"mapboxgl-ctrl-geolocate-background\"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new t.Event(\"trackuserlocationstart\"));break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}switch(this._watchState){case\"WAITING_ACTIVE\":this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\",\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\",\"mapboxgl-ctrl-geolocate-active\");break;case\"ACTIVE_LOCK\":this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\",\"mapboxgl-ctrl-geolocate-active\");break;case\"OFF\":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}if(\"OFF\"===this._watchState&&void 0!==this._geolocationWatchID)this._clearWatch();else if(void 0===this._geolocationWatchID){let t;this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\",\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"true\"),ma++,ma>1?(t={maximumAge:6e5,timeout:0},_a=!0):(t=this.options.positionOptions,_a=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,t);}}else window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return !0}_clearWatch(){window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\",\"mapboxgl-ctrl-geolocate-waiting\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"false\"),this.options.showUserLocation&&this._updateMarker(null);}},AttributionControl:ta,LogoControl:ea,ScaleControl:class{constructor(e){this.options=t.extend({},pa,e),t.bindAll([\"_onMove\",\"setUnit\"],this);}getDefaultPosition(){return \"bottom-left\"}_onMove(){fa(this._map,this._container,this.options);}onAdd(t){return this._map=t,this._container=r.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-scale mapboxgl-ctrl mapboxgl-ctrl-scale\",t.getContainer()),this._map.on(\"move\",this._onMove),this._onMove(),this._container}onRemove(){r.remove(this._container),this._map.off(\"move\",this._onMove),this._map=void 0;}setUnit(t){this.options.unit=t,fa(this._map,this._container,this.options);}},FullscreenControl:class{constructor(e){this._fullscreen=!1,e&&e.container&&(e.container instanceof HTMLElement?this._container=e.container:t.warnOnce(\"Full screen control 'container' must be a DOM element.\")),t.bindAll([\"_onClickFullscreen\",\"_changeIcon\"],this),\"onfullscreenchange\"in document?this._fullscreenchange=\"fullscreenchange\":\"onmozfullscreenchange\"in document?this._fullscreenchange=\"mozfullscreenchange\":\"onwebkitfullscreenchange\"in document?this._fullscreenchange=\"webkitfullscreenchange\":\"onmsfullscreenchange\"in document&&(this._fullscreenchange=\"MSFullscreenChange\");}onAdd(e){return this._map=e,this._container||(this._container=this._map.getContainer()),this._controlContainer=r.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group mapboxgl-ctrl mapboxgl-ctrl-group\"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display=\"none\",t.warnOnce(\"This device does not support fullscreen mode.\")),this._controlContainer}onRemove(){r.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._changeIcon);}_checkFullscreenSupport(){return !!(document.fullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled||document.webkitFullscreenEnabled)}_setupUI(){const t=this._fullscreenButton=r.create(\"button\",\"maplibregl-ctrl-fullscreen mapboxgl-ctrl-fullscreen\",this._controlContainer);r.create(\"span\",\"maplibregl-ctrl-icon mapboxgl-ctrl-icon\",t).setAttribute(\"aria-hidden\",\"true\"),t.type=\"button\",this._updateTitle(),this._fullscreenButton.addEventListener(\"click\",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._changeIcon);}_updateTitle(){const t=this._getTitle();this._fullscreenButton.setAttribute(\"aria-label\",t),this._fullscreenButton.title=t;}_getTitle(){return this._map._getUIString(this._isFullscreen()?\"FullscreenControl.Exit\":\"FullscreenControl.Enter\")}_isFullscreen(){return this._fullscreen}_changeIcon(){(window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle(\"maplibregl-ctrl-shrink\"),this._fullscreenButton.classList.toggle(\"mapboxgl-ctrl-shrink\"),this._fullscreenButton.classList.toggle(\"maplibregl-ctrl-fullscreen\"),this._fullscreenButton.classList.toggle(\"mapboxgl-ctrl-fullscreen\"),this._updateTitle());}_onClickFullscreen(){this._isFullscreen()?window.document.exitFullscreen?window.document.exitFullscreen():window.document.mozCancelFullScreen?window.document.mozCancelFullScreen():window.document.msExitFullscreen?window.document.msExitFullscreen():window.document.webkitCancelFullScreen&&window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen();}},TerrainControl:class{constructor(e){this.options=e,t.bindAll([\"_toggleTerrain\",\"_updateTerrainIcon\"],this);}onAdd(t){return this._map=t,this._container=r.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group mapboxgl-ctrl mapboxgl-ctrl-group\"),this._terrainButton=r.create(\"button\",\"maplibregl-ctrl-terrain mapboxgl-ctrl-terrain\",this._container),r.create(\"span\",\"maplibregl-ctrl-icon mapboxgl-ctrl-icon\",this._terrainButton).setAttribute(\"aria-hidden\",\"true\"),this._terrainButton.type=\"button\",this._terrainButton.addEventListener(\"click\",this._toggleTerrain),this._updateTerrainIcon(),this._map.on(\"terrain\",this._updateTerrainIcon),this._container}onRemove(){r.remove(this._container),this._map.off(\"terrain\",this._updateTerrainIcon),this._map=void 0;}_toggleTerrain(){this._map.getTerrain()?this._map.setTerrain(null):this._map.setTerrain(this.options),this._updateTerrainIcon();}_updateTerrainIcon(){this._terrainButton.classList.remove(\"maplibregl-ctrl-terrain\",\"mapboxgl-ctrl-terrain\"),this._terrainButton.classList.remove(\"maplibregl-ctrl-terrain-enabled\",\"mapboxgl-ctrl-terrain-enabled\"),this._map.style.terrain?(this._terrainButton.classList.add(\"maplibregl-ctrl-terrain-enabled\",\"mapboxgl-ctrl-terrain-enabled\"),this._terrainButton.title=this._map._getUIString(\"TerrainControl.disableTerrain\")):(this._terrainButton.classList.add(\"maplibregl-ctrl-terrain\",\"mapboxgl-ctrl-terrain\"),this._terrainButton.title=this._map._getUIString(\"TerrainControl.enableTerrain\"));}},Popup:class extends t.Evented{constructor(e){super(),this.options=t.extend(Object.create(xa),e),t.bindAll([\"_update\",\"_onClose\",\"remove\",\"_onMouseMove\",\"_onMouseUp\",\"_onDrag\"],this);}addTo(e){return this._map&&this.remove(),this._map=e,this.options.closeOnClick&&this._map.on(\"click\",this._onClose),this.options.closeOnMove&&this._map.on(\"move\",this._onClose),this._map.on(\"remove\",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on(\"mousemove\",this._onMouseMove),this._map.on(\"mouseup\",this._onMouseUp),this._container&&this._container.classList.add(\"maplibregl-popup-track-pointer\",\"mapboxgl-popup-track-pointer\"),this._map._canvasContainer.classList.add(\"maplibregl-track-pointer\",\"mapboxgl-track-pointer\")):this._map.on(\"move\",this._update),this.fire(new t.Event(\"open\")),this}isOpen(){return !!this._map}remove(){return this._content&&r.remove(this._content),this._container&&(r.remove(this._container),delete this._container),this._map&&(this._map.off(\"move\",this._update),this._map.off(\"move\",this._onClose),this._map.off(\"click\",this._onClose),this._map.off(\"remove\",this.remove),this._map.off(\"mousemove\",this._onMouseMove),this._map.off(\"mouseup\",this._onMouseUp),this._map.off(\"drag\",this._onDrag),delete this._map),this.fire(new t.Event(\"close\")),this}getLngLat(){return this._lngLat}setLngLat(e){return this._lngLat=t.LngLat.convert(e),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on(\"move\",this._update),this._map.off(\"mousemove\",this._onMouseMove),this._container&&this._container.classList.remove(\"maplibregl-popup-track-pointer\",\"mapboxgl-popup-track-pointer\"),this._map._canvasContainer.classList.remove(\"maplibregl-track-pointer\",\"mapboxgl-track-pointer\")),this}trackPointer(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off(\"move\",this._update),this._map.on(\"mousemove\",this._onMouseMove),this._map.on(\"drag\",this._onDrag),this._container&&this._container.classList.add(\"maplibregl-popup-track-pointer\",\"mapboxgl-popup-track-pointer\"),this._map._canvasContainer.classList.add(\"maplibregl-track-pointer\",\"mapboxgl-track-pointer\")),this}getElement(){return this._container}setText(t){return this.setDOMContent(document.createTextNode(t))}setHTML(t){const e=document.createDocumentFragment(),i=document.createElement(\"body\");let o;for(i.innerHTML=t;o=i.firstChild,o;)e.appendChild(o);return this.setDOMContent(e)}getMaxWidth(){return this._container&&this._container.style.maxWidth}setMaxWidth(t){return this.options.maxWidth=t,this._update(),this}setDOMContent(t){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=r.create(\"div\",\"maplibregl-popup-content mapboxgl-popup-content\",this._container);return this._content.appendChild(t),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(t){this._container&&this._container.classList.add(t);}removeClassName(t){this._container&&this._container.classList.remove(t);}setOffset(t){return this.options.offset=t,this._update(),this}toggleClassName(t){if(this._container)return this._container.classList.toggle(t)}_createCloseButton(){this.options.closeButton&&(this._closeButton=r.create(\"button\",\"maplibregl-popup-close-button mapboxgl-popup-close-button\",this._content),this._closeButton.type=\"button\",this._closeButton.setAttribute(\"aria-label\",\"Close popup\"),this._closeButton.innerHTML=\"×\",this._closeButton.addEventListener(\"click\",this._onClose));}_onMouseUp(t){this._update(t.point);}_onMouseMove(t){this._update(t.point);}_onDrag(t){this._update(t.point);}_update(t){if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(this._container||(this._container=r.create(\"div\",\"maplibregl-popup mapboxgl-popup\",this._map.getContainer()),this._tip=r.create(\"div\",\"maplibregl-popup-tip mapboxgl-popup-tip\",this._container),this._container.appendChild(this._content),this.options.className&&this.options.className.split(\" \").forEach((t=>this._container.classList.add(t))),this._trackPointer&&this._container.classList.add(\"maplibregl-popup-track-pointer\",\"mapboxgl-popup-track-pointer\")),this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=na(this._lngLat,this._pos,this._map.transform)),this._trackPointer&&!t)return;const e=this._pos=this._trackPointer&&t?t:this._map.project(this._lngLat);let i=this.options.anchor;const o=ya(this.options.offset);if(!i){const t=this._container.offsetWidth,a=this._container.offsetHeight;let r;r=e.y+o.bottom.ythis._map.transform.height-a?[\"bottom\"]:[],e.xthis._map.transform.width-t/2&&r.push(\"right\"),i=0===r.length?\"bottom\":r.join(\"-\");}const a=e.add(o[i]).round();r.setTransform(this._container,`${la[i]} translate(${a.x}px,${a.y}px)`),ca(this._container,i,\"popup\");}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const t=this._container.querySelector(va);t&&t.focus();}_onClose(){this.remove();}},Marker:ha,Style:ee,LngLat:t.LngLat,LngLatBounds:t.LngLatBounds,Point:t.pointGeometry,MercatorCoordinate:t.MercatorCoordinate,Evented:t.Evented,AJAXError:t.AJAXError,config:t.config,CanvasSource:P,GeoJSONSource:C,ImageSource:D,RasterDEMTileSource:I,RasterTileSource:T,VectorTileSource:w,VideoSource:z,prewarm:function(){j().acquire(G);},clearPrewarmedResources:function(){const t=q;t&&(t.isPreloaded()&&1===t.numActive()?(t.release(G),q=null):console.warn(\"Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()\"));},get version(){return \"2.4.0\"},get workerCount(){return Z.workerCount},set workerCount(t){Z.workerCount=t;},get maxParallelImageRequests(){return t.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(e){t.config.MAX_PARALLEL_IMAGE_REQUESTS=e;},clearStorage(e){t.clearTileCache(e);},workerUrl:\"\",addProtocol(e,i){t.config.REGISTERED_PROTOCOLS[e]=i;},removeProtocol(e){delete t.config.REGISTERED_PROTOCOLS[e];}};return Jo.extend(ba,{isSafari:t.isSafari,getPerformanceMetrics:t.PerformanceUtils.getPerformanceMetrics}),ba}));\n\n//\n\nvar maplibregl$1 = maplibregl;\n\nreturn maplibregl$1;\n\n}));\n//# sourceMappingURL=maplibre-gl.js.map\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/*!\n * mustache.js - Logic-less {{mustache}} templates with JavaScript\n * http://github.com/janl/mustache.js\n */\n\nvar objectToString = Object.prototype.toString;\nvar isArray = Array.isArray || function isArrayPolyfill (object) {\n return objectToString.call(object) === '[object Array]';\n};\n\nfunction isFunction (object) {\n return typeof object === 'function';\n}\n\n/**\n * More correct typeof string handling array\n * which normally returns typeof 'object'\n */\nfunction typeStr (obj) {\n return isArray(obj) ? 'array' : typeof obj;\n}\n\nfunction escapeRegExp (string) {\n return string.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, '\\\\$&');\n}\n\n/**\n * Null safe way of checking whether or not an object,\n * including its prototype, has a given property\n */\nfunction hasProperty (obj, propName) {\n return obj != null && typeof obj === 'object' && (propName in obj);\n}\n\n/**\n * Safe way of detecting whether or not the given thing is a primitive and\n * whether it has the given property\n */\nfunction primitiveHasOwnProperty (primitive, propName) {\n return (\n primitive != null\n && typeof primitive !== 'object'\n && primitive.hasOwnProperty\n && primitive.hasOwnProperty(propName)\n );\n}\n\n// Workaround for https://issues.apache.org/jira/browse/COUCHDB-577\n// See https://github.com/janl/mustache.js/issues/189\nvar regExpTest = RegExp.prototype.test;\nfunction testRegExp (re, string) {\n return regExpTest.call(re, string);\n}\n\nvar nonSpaceRe = /\\S/;\nfunction isWhitespace (string) {\n return !testRegExp(nonSpaceRe, string);\n}\n\nvar entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/',\n '`': '`',\n '=': '='\n};\n\nfunction escapeHtml (string) {\n return String(string).replace(/[&<>\"'`=\\/]/g, function fromEntityMap (s) {\n return entityMap[s];\n });\n}\n\nvar whiteRe = /\\s*/;\nvar spaceRe = /\\s+/;\nvar equalsRe = /\\s*=/;\nvar curlyRe = /\\s*\\}/;\nvar tagRe = /#|\\^|\\/|>|\\{|&|=|!/;\n\n/**\n * Breaks up the given `template` string into a tree of tokens. If the `tags`\n * argument is given here it must be an array with two string values: the\n * opening and closing tags used in the template (e.g. [ \"<%\", \"%>\" ]). Of\n * course, the default is to use mustaches (i.e. mustache.tags).\n *\n * A token is an array with at least 4 elements. The first element is the\n * mustache symbol that was used inside the tag, e.g. \"#\" or \"&\". If the tag\n * did not contain a symbol (i.e. {{myValue}}) this element is \"name\". For\n * all text that appears outside a symbol this element is \"text\".\n *\n * The second element of a token is its \"value\". For mustache tags this is\n * whatever else was inside the tag besides the opening symbol. For text tokens\n * this is the text itself.\n *\n * The third and fourth elements of the token are the start and end indices,\n * respectively, of the token in the original template.\n *\n * Tokens that are the root node of a subtree contain two more elements: 1) an\n * array of tokens in the subtree and 2) the index in the original template at\n * which the closing tag for that section begins.\n *\n * Tokens for partials also contain two more elements: 1) a string value of\n * indendation prior to that tag and 2) the index of that tag on that line -\n * eg a value of 2 indicates the partial is the third tag on this line.\n */\nfunction parseTemplate (template, tags) {\n if (!template)\n return [];\n var lineHasNonSpace = false;\n var sections = []; // Stack to hold section tokens\n var tokens = []; // Buffer to hold the tokens\n var spaces = []; // Indices of whitespace tokens on the current line\n var hasTag = false; // Is there a {{tag}} on the current line?\n var nonSpace = false; // Is there a non-space char on the current line?\n var indentation = ''; // Tracks indentation for tags that use it\n var tagIndex = 0; // Stores a count of number of tags encountered on a line\n\n // Strips all whitespace tokens array for the current line\n // if there was a {{#tag}} on it and otherwise only space.\n function stripSpace () {\n if (hasTag && !nonSpace) {\n while (spaces.length)\n delete tokens[spaces.pop()];\n } else {\n spaces = [];\n }\n\n hasTag = false;\n nonSpace = false;\n }\n\n var openingTagRe, closingTagRe, closingCurlyRe;\n function compileTags (tagsToCompile) {\n if (typeof tagsToCompile === 'string')\n tagsToCompile = tagsToCompile.split(spaceRe, 2);\n\n if (!isArray(tagsToCompile) || tagsToCompile.length !== 2)\n throw new Error('Invalid tags: ' + tagsToCompile);\n\n openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + '\\\\s*');\n closingTagRe = new RegExp('\\\\s*' + escapeRegExp(tagsToCompile[1]));\n closingCurlyRe = new RegExp('\\\\s*' + escapeRegExp('}' + tagsToCompile[1]));\n }\n\n compileTags(tags || mustache.tags);\n\n var scanner = new Scanner(template);\n\n var start, type, value, chr, token, openSection;\n while (!scanner.eos()) {\n start = scanner.pos;\n\n // Match any text between tags.\n value = scanner.scanUntil(openingTagRe);\n\n if (value) {\n for (var i = 0, valueLength = value.length; i < valueLength; ++i) {\n chr = value.charAt(i);\n\n if (isWhitespace(chr)) {\n spaces.push(tokens.length);\n indentation += chr;\n } else {\n nonSpace = true;\n lineHasNonSpace = true;\n indentation += ' ';\n }\n\n tokens.push([ 'text', chr, start, start + 1 ]);\n start += 1;\n\n // Check for whitespace on the current line.\n if (chr === '\\n') {\n stripSpace();\n indentation = '';\n tagIndex = 0;\n lineHasNonSpace = false;\n }\n }\n }\n\n // Match the opening tag.\n if (!scanner.scan(openingTagRe))\n break;\n\n hasTag = true;\n\n // Get the tag type.\n type = scanner.scan(tagRe) || 'name';\n scanner.scan(whiteRe);\n\n // Get the tag value.\n if (type === '=') {\n value = scanner.scanUntil(equalsRe);\n scanner.scan(equalsRe);\n scanner.scanUntil(closingTagRe);\n } else if (type === '{') {\n value = scanner.scanUntil(closingCurlyRe);\n scanner.scan(curlyRe);\n scanner.scanUntil(closingTagRe);\n type = '&';\n } else {\n value = scanner.scanUntil(closingTagRe);\n }\n\n // Match the closing tag.\n if (!scanner.scan(closingTagRe))\n throw new Error('Unclosed tag at ' + scanner.pos);\n\n if (type == '>') {\n token = [ type, value, start, scanner.pos, indentation, tagIndex, lineHasNonSpace ];\n } else {\n token = [ type, value, start, scanner.pos ];\n }\n tagIndex++;\n tokens.push(token);\n\n if (type === '#' || type === '^') {\n sections.push(token);\n } else if (type === '/') {\n // Check section nesting.\n openSection = sections.pop();\n\n if (!openSection)\n throw new Error('Unopened section \"' + value + '\" at ' + start);\n\n if (openSection[1] !== value)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + start);\n } else if (type === 'name' || type === '{' || type === '&') {\n nonSpace = true;\n } else if (type === '=') {\n // Set the tags for the next time around.\n compileTags(value);\n }\n }\n\n stripSpace();\n\n // Make sure there are no open sections when we're done.\n openSection = sections.pop();\n\n if (openSection)\n throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + scanner.pos);\n\n return nestTokens(squashTokens(tokens));\n}\n\n/**\n * Combines the values of consecutive text tokens in the given `tokens` array\n * to a single token.\n */\nfunction squashTokens (tokens) {\n var squashedTokens = [];\n\n var token, lastToken;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n if (token) {\n if (token[0] === 'text' && lastToken && lastToken[0] === 'text') {\n lastToken[1] += token[1];\n lastToken[3] = token[3];\n } else {\n squashedTokens.push(token);\n lastToken = token;\n }\n }\n }\n\n return squashedTokens;\n}\n\n/**\n * Forms the given array of `tokens` into a nested tree structure where\n * tokens that represent a section have two additional items: 1) an array of\n * all tokens that appear in that section and 2) the index in the original\n * template that represents the end of that section.\n */\nfunction nestTokens (tokens) {\n var nestedTokens = [];\n var collector = nestedTokens;\n var sections = [];\n\n var token, section;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n token = tokens[i];\n\n switch (token[0]) {\n case '#':\n case '^':\n collector.push(token);\n sections.push(token);\n collector = token[4] = [];\n break;\n case '/':\n section = sections.pop();\n section[5] = token[2];\n collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;\n break;\n default:\n collector.push(token);\n }\n }\n\n return nestedTokens;\n}\n\n/**\n * A simple string scanner that is used by the template parser to find\n * tokens in template strings.\n */\nfunction Scanner (string) {\n this.string = string;\n this.tail = string;\n this.pos = 0;\n}\n\n/**\n * Returns `true` if the tail is empty (end of string).\n */\nScanner.prototype.eos = function eos () {\n return this.tail === '';\n};\n\n/**\n * Tries to match the given regular expression at the current position.\n * Returns the matched text if it can match, the empty string otherwise.\n */\nScanner.prototype.scan = function scan (re) {\n var match = this.tail.match(re);\n\n if (!match || match.index !== 0)\n return '';\n\n var string = match[0];\n\n this.tail = this.tail.substring(string.length);\n this.pos += string.length;\n\n return string;\n};\n\n/**\n * Skips all text until the given regular expression can be matched. Returns\n * the skipped string, which is the entire tail if no match can be made.\n */\nScanner.prototype.scanUntil = function scanUntil (re) {\n var index = this.tail.search(re), match;\n\n switch (index) {\n case -1:\n match = this.tail;\n this.tail = '';\n break;\n case 0:\n match = '';\n break;\n default:\n match = this.tail.substring(0, index);\n this.tail = this.tail.substring(index);\n }\n\n this.pos += match.length;\n\n return match;\n};\n\n/**\n * Represents a rendering context by wrapping a view object and\n * maintaining a reference to the parent context.\n */\nfunction Context (view, parentContext) {\n this.view = view;\n this.cache = { '.': this.view };\n this.parent = parentContext;\n}\n\n/**\n * Creates a new context using the given view with this context\n * as the parent.\n */\nContext.prototype.push = function push (view) {\n return new Context(view, this);\n};\n\n/**\n * Returns the value of the given name in this context, traversing\n * up the context hierarchy if the value is absent in this context's view.\n */\nContext.prototype.lookup = function lookup (name) {\n var cache = this.cache;\n\n var value;\n if (cache.hasOwnProperty(name)) {\n value = cache[name];\n } else {\n var context = this, intermediateValue, names, index, lookupHit = false;\n\n while (context) {\n if (name.indexOf('.') > 0) {\n intermediateValue = context.view;\n names = name.split('.');\n index = 0;\n\n /**\n * Using the dot notion path in `name`, we descend through the\n * nested objects.\n *\n * To be certain that the lookup has been successful, we have to\n * check if the last object in the path actually has the property\n * we are looking for. We store the result in `lookupHit`.\n *\n * This is specially necessary for when the value has been set to\n * `undefined` and we want to avoid looking up parent contexts.\n *\n * In the case where dot notation is used, we consider the lookup\n * to be successful even if the last \"object\" in the path is\n * not actually an object but a primitive (e.g., a string, or an\n * integer), because it is sometimes useful to access a property\n * of an autoboxed primitive, such as the length of a string.\n **/\n while (intermediateValue != null && index < names.length) {\n if (index === names.length - 1)\n lookupHit = (\n hasProperty(intermediateValue, names[index])\n || primitiveHasOwnProperty(intermediateValue, names[index])\n );\n\n intermediateValue = intermediateValue[names[index++]];\n }\n } else {\n intermediateValue = context.view[name];\n\n /**\n * Only checking against `hasProperty`, which always returns `false` if\n * `context.view` is not an object. Deliberately omitting the check\n * against `primitiveHasOwnProperty` if dot notation is not used.\n *\n * Consider this example:\n * ```\n * Mustache.render(\"The length of a football field is {{#length}}{{length}}{{/length}}.\", {length: \"100 yards\"})\n * ```\n *\n * If we were to check also against `primitiveHasOwnProperty`, as we do\n * in the dot notation case, then render call would return:\n *\n * \"The length of a football field is 9.\"\n *\n * rather than the expected:\n *\n * \"The length of a football field is 100 yards.\"\n **/\n lookupHit = hasProperty(context.view, name);\n }\n\n if (lookupHit) {\n value = intermediateValue;\n break;\n }\n\n context = context.parent;\n }\n\n cache[name] = value;\n }\n\n if (isFunction(value))\n value = value.call(this.view);\n\n return value;\n};\n\n/**\n * A Writer knows how to take a stream of tokens and render them to a\n * string, given a context. It also maintains a cache of templates to\n * avoid the need to parse the same template twice.\n */\nfunction Writer () {\n this.templateCache = {\n _cache: {},\n set: function set (key, value) {\n this._cache[key] = value;\n },\n get: function get (key) {\n return this._cache[key];\n },\n clear: function clear () {\n this._cache = {};\n }\n };\n}\n\n/**\n * Clears all cached templates in this writer.\n */\nWriter.prototype.clearCache = function clearCache () {\n if (typeof this.templateCache !== 'undefined') {\n this.templateCache.clear();\n }\n};\n\n/**\n * Parses and caches the given `template` according to the given `tags` or\n * `mustache.tags` if `tags` is omitted, and returns the array of tokens\n * that is generated from the parse.\n */\nWriter.prototype.parse = function parse (template, tags) {\n var cache = this.templateCache;\n var cacheKey = template + ':' + (tags || mustache.tags).join(':');\n var isCacheEnabled = typeof cache !== 'undefined';\n var tokens = isCacheEnabled ? cache.get(cacheKey) : undefined;\n\n if (tokens == undefined) {\n tokens = parseTemplate(template, tags);\n isCacheEnabled && cache.set(cacheKey, tokens);\n }\n return tokens;\n};\n\n/**\n * High-level method that is used to render the given `template` with\n * the given `view`.\n *\n * The optional `partials` argument may be an object that contains the\n * names and templates of partials that are used in the template. It may\n * also be a function that is used to load partial templates on the fly\n * that takes a single argument: the name of the partial.\n *\n * If the optional `config` argument is given here, then it should be an\n * object with a `tags` attribute or an `escape` attribute or both.\n * If an array is passed, then it will be interpreted the same way as\n * a `tags` attribute on a `config` object.\n *\n * The `tags` attribute of a `config` object must be an array with two\n * string values: the opening and closing tags used in the template (e.g.\n * [ \"<%\", \"%>\" ]). The default is to mustache.tags.\n *\n * The `escape` attribute of a `config` object must be a function which\n * accepts a string as input and outputs a safely escaped string.\n * If an `escape` function is not provided, then an HTML-safe string\n * escaping function is used as the default.\n */\nWriter.prototype.render = function render (template, view, partials, config) {\n var tags = this.getConfigTags(config);\n var tokens = this.parse(template, tags);\n var context = (view instanceof Context) ? view : new Context(view, undefined);\n return this.renderTokens(tokens, context, partials, template, config);\n};\n\n/**\n * Low-level method that renders the given array of `tokens` using\n * the given `context` and `partials`.\n *\n * Note: The `originalTemplate` is only ever used to extract the portion\n * of the original template that was contained in a higher-order section.\n * If the template doesn't use higher-order sections, this argument may\n * be omitted.\n */\nWriter.prototype.renderTokens = function renderTokens (tokens, context, partials, originalTemplate, config) {\n var buffer = '';\n\n var token, symbol, value;\n for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n value = undefined;\n token = tokens[i];\n symbol = token[0];\n\n if (symbol === '#') value = this.renderSection(token, context, partials, originalTemplate, config);\n else if (symbol === '^') value = this.renderInverted(token, context, partials, originalTemplate, config);\n else if (symbol === '>') value = this.renderPartial(token, context, partials, config);\n else if (symbol === '&') value = this.unescapedValue(token, context);\n else if (symbol === 'name') value = this.escapedValue(token, context, config);\n else if (symbol === 'text') value = this.rawValue(token);\n\n if (value !== undefined)\n buffer += value;\n }\n\n return buffer;\n};\n\nWriter.prototype.renderSection = function renderSection (token, context, partials, originalTemplate, config) {\n var self = this;\n var buffer = '';\n var value = context.lookup(token[1]);\n\n // This function is used to render an arbitrary template\n // in the current context by higher-order sections.\n function subRender (template) {\n return self.render(template, context, partials, config);\n }\n\n if (!value) return;\n\n if (isArray(value)) {\n for (var j = 0, valueLength = value.length; j < valueLength; ++j) {\n buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate, config);\n }\n } else if (typeof value === 'object' || typeof value === 'string' || typeof value === 'number') {\n buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate, config);\n } else if (isFunction(value)) {\n if (typeof originalTemplate !== 'string')\n throw new Error('Cannot use higher-order sections without the original template');\n\n // Extract the portion of the original template that the section contains.\n value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);\n\n if (value != null)\n buffer += value;\n } else {\n buffer += this.renderTokens(token[4], context, partials, originalTemplate, config);\n }\n return buffer;\n};\n\nWriter.prototype.renderInverted = function renderInverted (token, context, partials, originalTemplate, config) {\n var value = context.lookup(token[1]);\n\n // Use JavaScript's definition of falsy. Include empty arrays.\n // See https://github.com/janl/mustache.js/issues/186\n if (!value || (isArray(value) && value.length === 0))\n return this.renderTokens(token[4], context, partials, originalTemplate, config);\n};\n\nWriter.prototype.indentPartial = function indentPartial (partial, indentation, lineHasNonSpace) {\n var filteredIndentation = indentation.replace(/[^ \\t]/g, '');\n var partialByNl = partial.split('\\n');\n for (var i = 0; i < partialByNl.length; i++) {\n if (partialByNl[i].length && (i > 0 || !lineHasNonSpace)) {\n partialByNl[i] = filteredIndentation + partialByNl[i];\n }\n }\n return partialByNl.join('\\n');\n};\n\nWriter.prototype.renderPartial = function renderPartial (token, context, partials, config) {\n if (!partials) return;\n var tags = this.getConfigTags(config);\n\n var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];\n if (value != null) {\n var lineHasNonSpace = token[6];\n var tagIndex = token[5];\n var indentation = token[4];\n var indentedValue = value;\n if (tagIndex == 0 && indentation) {\n indentedValue = this.indentPartial(value, indentation, lineHasNonSpace);\n }\n var tokens = this.parse(indentedValue, tags);\n return this.renderTokens(tokens, context, partials, indentedValue, config);\n }\n};\n\nWriter.prototype.unescapedValue = function unescapedValue (token, context) {\n var value = context.lookup(token[1]);\n if (value != null)\n return value;\n};\n\nWriter.prototype.escapedValue = function escapedValue (token, context, config) {\n var escape = this.getConfigEscape(config) || mustache.escape;\n var value = context.lookup(token[1]);\n if (value != null)\n return (typeof value === 'number' && escape === mustache.escape) ? String(value) : escape(value);\n};\n\nWriter.prototype.rawValue = function rawValue (token) {\n return token[1];\n};\n\nWriter.prototype.getConfigTags = function getConfigTags (config) {\n if (isArray(config)) {\n return config;\n }\n else if (config && typeof config === 'object') {\n return config.tags;\n }\n else {\n return undefined;\n }\n};\n\nWriter.prototype.getConfigEscape = function getConfigEscape (config) {\n if (config && typeof config === 'object' && !isArray(config)) {\n return config.escape;\n }\n else {\n return undefined;\n }\n};\n\nvar mustache = {\n name: 'mustache.js',\n version: '4.2.0',\n tags: [ '{{', '}}' ],\n clearCache: undefined,\n escape: undefined,\n parse: undefined,\n render: undefined,\n Scanner: undefined,\n Context: undefined,\n Writer: undefined,\n /**\n * Allows a user to override the default caching strategy, by providing an\n * object with set, get and clear methods. This can also be used to disable\n * the cache by setting it to the literal `undefined`.\n */\n set templateCache (cache) {\n defaultWriter.templateCache = cache;\n },\n /**\n * Gets the default or overridden caching object from the default writer.\n */\n get templateCache () {\n return defaultWriter.templateCache;\n }\n};\n\n// All high-level mustache.* functions use this writer.\nvar defaultWriter = new Writer();\n\n/**\n * Clears all cached templates in the default writer.\n */\nmustache.clearCache = function clearCache () {\n return defaultWriter.clearCache();\n};\n\n/**\n * Parses and caches the given template in the default writer and returns the\n * array of tokens it contains. Doing this ahead of time avoids the need to\n * parse templates on the fly as they are rendered.\n */\nmustache.parse = function parse (template, tags) {\n return defaultWriter.parse(template, tags);\n};\n\n/**\n * Renders the `template` with the given `view`, `partials`, and `config`\n * using the default writer.\n */\nmustache.render = function render (template, view, partials, config) {\n if (typeof template !== 'string') {\n throw new TypeError('Invalid template! Template should be a \"string\" ' +\n 'but \"' + typeStr(template) + '\" was given as the first ' +\n 'argument for mustache#render(template, view, partials)');\n }\n\n return defaultWriter.render(template, view, partials, config);\n};\n\n// Export the escaping function so that the user may override it.\n// See https://github.com/janl/mustache.js/issues/244\nmustache.escape = escapeHtml;\n\n// Export these mainly for testing, but also for advanced usage.\nmustache.Scanner = Scanner;\nmustache.Context = Context;\nmustache.Writer = Writer;\n\nexport default mustache;\n","/*\r\nnotes\r\n- Event infrastructure for RM2\r\n\r\ntodo\r\n- testiranje\r\n- JSDdoc API dokumentacija\r\n- definiranje EventArgs za vse OL3 evente\r\n*/\r\n\r\nimport { CoordinateLike } from '../model/RM2Geometry';\r\nimport { Map } from '../map/RM2Map';\r\nimport { Layer } from './RM2Layer';\r\nimport { Feature } from './RM2Feature';\r\n\r\n/**\r\n * Event interface.\r\n * \r\n * @interface IEvent\r\n * @template T\r\n */\r\nexport interface IRM2Event {\r\n /**\r\n * Subscribes event handler.\r\n *\r\n * @param {{ (data?: T): void }} handler\r\n *\r\n * @memberOf IEvent\r\n */\r\n subscribe(handler: (data?: T) => void): void;\r\n\r\n /**\r\n * Unsubscribes event handler.\r\n *\r\n * @param {{ (data?: T): void }} handler\r\n *\r\n * @memberOf IEvent\r\n */\r\n unsubscribe(handler: (data?: T) => void): void;\r\n}\r\n\r\n/**\r\n * Event object.\r\n *\r\n * @class Event\r\n * @implements {IRM2Event}\r\n * @template T\r\n */\r\nexport class RM2Event implements IRM2Event {\r\n private _handlers: ((data?: T) => void)[] = [];\r\n\r\n /**\r\n * Subscribes event handler.\r\n *\r\n * @param {{ (data?: T): void }} handler\r\n *\r\n * @memberOf Event\r\n */\r\n public subscribe(handler: (data?: T) => void): void {\r\n this._handlers.push(handler);\r\n }\r\n\r\n /**\r\n * Unsubscribes event handler.\r\n *\r\n * @param {{ (data?: T): void }} handler\r\n *\r\n * @memberOf Event\r\n */\r\n public unsubscribe(handler: (data?: T) => void): void {\r\n this._handlers = this._handlers.filter(h => h !== handler);\r\n }\r\n\r\n /**\r\n * Trigger event handlers.\r\n *\r\n * @param {T} [data]\r\n *\r\n * @memberOf Event\r\n */\r\n public trigger(data?: T) {\r\n this._handlers.slice(0).forEach(h => h(data));\r\n }\r\n\r\n /**\r\n * Exposes this event.\r\n *\r\n * @returns {IEvent}\r\n *\r\n * @memberOf Event\r\n */\r\n public expose(): IRM2Event {\r\n return this;\r\n }\r\n}\r\n\r\n\r\n/**\r\n * MapEventArgs interface.\r\n */\r\nexport interface MapEventArgs {\r\n map: Map;\r\n coordinate?: CoordinateLike;\r\n projection?: string;\r\n nativeEvent?: Event;\r\n // layer?: Layer;\r\n features?: Array;\r\n featureLayers?: Array;\r\n}\r\n","import proj4 from 'proj4';\r\n\r\n/**\r\n * Projection object.\r\n */\r\nexport class Projection {\r\n private static _projections: { [code: string]: Projection; } = {};\r\n\r\n // private _olProjection: ol.proj.Projection;\r\n private _definition: string;\r\n\r\n private _crsCode: string;\r\n\r\n /**\r\n * Creates an instance of Projection.\r\n */\r\n public static create(definition: string): Projection {\r\n try {\r\n const cp = definition.split(';');\r\n const definedProjection = Projection._projections[cp[0]];\r\n if (definedProjection) {\r\n if (cp.length > 1 && definedProjection._definition !== definition)\r\n throw new Error('Projection with same crsCode was already defined: ' + definition);\r\n return definedProjection;\r\n }\r\n\r\n if (cp.length > 1)\r\n proj4.defs(cp[0], cp[1]);\r\n\r\n // // TODO: remove olProjection\r\n // (ol.proj as any).setProj4(proj4);\r\n // const olProjection = ol.proj.get(cp[0]);\r\n // if (cp.length === 3)\r\n // olProjection.setExtent(JSON.parse(cp[2]));\r\n \r\n const projection = new Projection(definition);\r\n Projection._projections[cp[0]] = projection;\r\n return projection;\r\n }\r\n catch (ex) {\r\n throw new Error('Error creating projection: [' + ex.message + ']');\r\n }\r\n }\r\n\r\n /**\r\n * Transforms given coordinate from source projection to target projection.\r\n */\r\n public static transform(coordinate: number[], sourceProjection: Projection, targetProjection: Projection): number[] {\r\n // return (ol.proj as any).transform(coordinate, sourceProjection._olProjection, targetProjection._olProjection);\r\n return proj4(sourceProjection.crsCode, targetProjection.crsCode, coordinate);\r\n }\r\n\r\n private constructor(definition: string) {\r\n // this._olProjection = ol;\r\n this._definition = definition;\r\n this._crsCode = definition.split(';')[0];\r\n }\r\n\r\n /**\r\n * Returns associated definition.\r\n */\r\n public get definition(): string {\r\n return this._definition;\r\n }\r\n\r\n /**\r\n * Returns CRS code of associated projection.\r\n */\r\n public get crsCode(): string {\r\n return this._crsCode;\r\n }\r\n\r\n // /**\r\n // * Returns extent of associated projection. Extent is returned as array of numeric ordinates [minX, minY, maxX, maxY];\r\n // */\r\n // public get extent(): number[] {\r\n // return this._olProjection.getExtent();\r\n // }\r\n\r\n // /**\r\n // * Returns meters per unit numeric value for associated projection.\r\n // */\r\n // public get metersPerUnit(): number {\r\n // return this._olProjection.getMetersPerUnit();\r\n // }\r\n\r\n // /**\r\n // * Returns name of units for associated projection.\r\n // */\r\n // public get units(): string {\r\n // return this._olProjection.getUnits() as string;\r\n // }\r\n\r\n // /**\r\n // * Returns associated projection.\r\n // */\r\n // public get olProjection(): ol.proj.Projection {\r\n // return this._olProjection;\r\n // }\r\n}\r\n","/**\n * @module helpers\n */\n/**\n * Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth.\n *\n * @memberof helpers\n * @type {number}\n */\nexport var earthRadius = 6371008.8;\n/**\n * Unit of measurement factors using a spherical (non-ellipsoid) earth radius.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var factors = {\n centimeters: earthRadius * 100,\n centimetres: earthRadius * 100,\n degrees: earthRadius / 111325,\n feet: earthRadius * 3.28084,\n inches: earthRadius * 39.37,\n kilometers: earthRadius / 1000,\n kilometres: earthRadius / 1000,\n meters: earthRadius,\n metres: earthRadius,\n miles: earthRadius / 1609.344,\n millimeters: earthRadius * 1000,\n millimetres: earthRadius * 1000,\n nauticalmiles: earthRadius / 1852,\n radians: 1,\n yards: earthRadius * 1.0936,\n};\n/**\n * Units of measurement factors based on 1 meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var unitsFactors = {\n centimeters: 100,\n centimetres: 100,\n degrees: 1 / 111325,\n feet: 3.28084,\n inches: 39.37,\n kilometers: 1 / 1000,\n kilometres: 1 / 1000,\n meters: 1,\n metres: 1,\n miles: 1 / 1609.344,\n millimeters: 1000,\n millimetres: 1000,\n nauticalmiles: 1 / 1852,\n radians: 1 / earthRadius,\n yards: 1.0936133,\n};\n/**\n * Area of measurement factors based on 1 square meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var areaFactors = {\n acres: 0.000247105,\n centimeters: 10000,\n centimetres: 10000,\n feet: 10.763910417,\n hectares: 0.0001,\n inches: 1550.003100006,\n kilometers: 0.000001,\n kilometres: 0.000001,\n meters: 1,\n metres: 1,\n miles: 3.86e-7,\n millimeters: 1000000,\n millimetres: 1000000,\n yards: 1.195990046,\n};\n/**\n * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.\n *\n * @name feature\n * @param {Geometry} geometry input geometry\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a GeoJSON Feature\n * @example\n * var geometry = {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 50]\n * };\n *\n * var feature = turf.feature(geometry);\n *\n * //=feature\n */\nexport function feature(geom, properties, options) {\n if (options === void 0) { options = {}; }\n var feat = { type: \"Feature\" };\n if (options.id === 0 || options.id) {\n feat.id = options.id;\n }\n if (options.bbox) {\n feat.bbox = options.bbox;\n }\n feat.properties = properties || {};\n feat.geometry = geom;\n return feat;\n}\n/**\n * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.\n * For GeometryCollection type use `helpers.geometryCollection`\n *\n * @name geometry\n * @param {string} type Geometry Type\n * @param {Array} coordinates Coordinates\n * @param {Object} [options={}] Optional Parameters\n * @returns {Geometry} a GeoJSON Geometry\n * @example\n * var type = \"Point\";\n * var coordinates = [110, 50];\n * var geometry = turf.geometry(type, coordinates);\n * // => geometry\n */\nexport function geometry(type, coordinates, _options) {\n if (_options === void 0) { _options = {}; }\n switch (type) {\n case \"Point\":\n return point(coordinates).geometry;\n case \"LineString\":\n return lineString(coordinates).geometry;\n case \"Polygon\":\n return polygon(coordinates).geometry;\n case \"MultiPoint\":\n return multiPoint(coordinates).geometry;\n case \"MultiLineString\":\n return multiLineString(coordinates).geometry;\n case \"MultiPolygon\":\n return multiPolygon(coordinates).geometry;\n default:\n throw new Error(type + \" is invalid\");\n }\n}\n/**\n * Creates a {@link Point} {@link Feature} from a Position.\n *\n * @name point\n * @param {Array} coordinates longitude, latitude position (each in decimal degrees)\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a Point feature\n * @example\n * var point = turf.point([-75.343, 39.984]);\n *\n * //=point\n */\nexport function point(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n if (!coordinates) {\n throw new Error(\"coordinates is required\");\n }\n if (!Array.isArray(coordinates)) {\n throw new Error(\"coordinates must be an Array\");\n }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be at least 2 numbers long\");\n }\n if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) {\n throw new Error(\"coordinates must contain numbers\");\n }\n var geom = {\n type: \"Point\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.\n *\n * @name points\n * @param {Array>} coordinates an array of Points\n * @param {Object} [properties={}] Translate these properties to each Feature\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection} Point Feature\n * @example\n * var points = turf.points([\n * [-75, 39],\n * [-80, 45],\n * [-78, 50]\n * ]);\n *\n * //=points\n */\nexport function points(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return point(coords, properties);\n }), options);\n}\n/**\n * Creates a {@link Polygon} {@link Feature} from an Array of LinearRings.\n *\n * @name polygon\n * @param {Array>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} Polygon Feature\n * @example\n * var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' });\n *\n * //=polygon\n */\nexport function polygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n for (var _i = 0, coordinates_1 = coordinates; _i < coordinates_1.length; _i++) {\n var ring = coordinates_1[_i];\n if (ring.length < 4) {\n throw new Error(\"Each LinearRing of a Polygon must have 4 or more Positions.\");\n }\n for (var j = 0; j < ring[ring.length - 1].length; j++) {\n // Check if first point of Polygon contains two numbers\n if (ring[ring.length - 1][j] !== ring[0][j]) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n }\n }\n var geom = {\n type: \"Polygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates.\n *\n * @name polygons\n * @param {Array>>>} coordinates an array of Polygon coordinates\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection} Polygon FeatureCollection\n * @example\n * var polygons = turf.polygons([\n * [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]],\n * [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]],\n * ]);\n *\n * //=polygons\n */\nexport function polygons(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return polygon(coords, properties);\n }), options);\n}\n/**\n * Creates a {@link LineString} {@link Feature} from an Array of Positions.\n *\n * @name lineString\n * @param {Array>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} LineString Feature\n * @example\n * var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'});\n * var linestring2 = turf.lineString([[-14, 43], [-13, 40], [-15, 45], [-10, 49]], {name: 'line 2'});\n *\n * //=linestring1\n * //=linestring2\n */\nexport function lineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be an array of two or more positions\");\n }\n var geom = {\n type: \"LineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link LineString} {@link FeatureCollection} from an Array of LineString coordinates.\n *\n * @name lineStrings\n * @param {Array>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection} LineString FeatureCollection\n * @example\n * var linestrings = turf.lineStrings([\n * [[-24, 63], [-23, 60], [-25, 65], [-20, 69]],\n * [[-14, 43], [-13, 40], [-15, 45], [-10, 49]]\n * ]);\n *\n * //=linestrings\n */\nexport function lineStrings(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n return featureCollection(coordinates.map(function (coords) {\n return lineString(coords, properties);\n }), options);\n}\n/**\n * Takes one or more {@link Feature|Features} and creates a {@link FeatureCollection}.\n *\n * @name featureCollection\n * @param {Feature[]} features input features\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {FeatureCollection} FeatureCollection of Features\n * @example\n * var locationA = turf.point([-75.343, 39.984], {name: 'Location A'});\n * var locationB = turf.point([-75.833, 39.284], {name: 'Location B'});\n * var locationC = turf.point([-75.534, 39.123], {name: 'Location C'});\n *\n * var collection = turf.featureCollection([\n * locationA,\n * locationB,\n * locationC\n * ]);\n *\n * //=collection\n */\nexport function featureCollection(features, options) {\n if (options === void 0) { options = {}; }\n var fc = { type: \"FeatureCollection\" };\n if (options.id) {\n fc.id = options.id;\n }\n if (options.bbox) {\n fc.bbox = options.bbox;\n }\n fc.features = features;\n return fc;\n}\n/**\n * Creates a {@link Feature} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiLineString\n * @param {Array>>} coordinates an array of LineStrings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a MultiLineString feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiLine = turf.multiLineString([[[0,0],[10,10]]]);\n *\n * //=multiLine\n */\nexport function multiLineString(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiLineString\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPoint\n * @param {Array>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a MultiPoint feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPt = turf.multiPoint([[0,0],[10,10]]);\n *\n * //=multiPt\n */\nexport function multiPoint(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPoint\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPolygon\n * @param {Array>>>} coordinates an array of Polygons\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a multipolygon feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPoly = turf.multiPolygon([[[[0,0],[0,10],[10,10],[10,0],[0,0]]]]);\n *\n * //=multiPoly\n *\n */\nexport function multiPolygon(coordinates, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"MultiPolygon\",\n coordinates: coordinates,\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name geometryCollection\n * @param {Array} geometries an array of GeoJSON Geometries\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a GeoJSON GeometryCollection Feature\n * @example\n * var pt = turf.geometry(\"Point\", [100, 0]);\n * var line = turf.geometry(\"LineString\", [[101, 0], [102, 1]]);\n * var collection = turf.geometryCollection([pt, line]);\n *\n * // => collection\n */\nexport function geometryCollection(geometries, properties, options) {\n if (options === void 0) { options = {}; }\n var geom = {\n type: \"GeometryCollection\",\n geometries: geometries,\n };\n return feature(geom, properties, options);\n}\n/**\n * Round number to precision\n *\n * @param {number} num Number\n * @param {number} [precision=0] Precision\n * @returns {number} rounded number\n * @example\n * turf.round(120.4321)\n * //=120\n *\n * turf.round(120.4321, 2)\n * //=120.43\n */\nexport function round(num, precision) {\n if (precision === void 0) { precision = 0; }\n if (precision && !(precision >= 0)) {\n throw new Error(\"precision must be a positive number\");\n }\n var multiplier = Math.pow(10, precision || 0);\n return Math.round(num * multiplier) / multiplier;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name radiansToLength\n * @param {number} radians in radians across the sphere\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} distance\n */\nexport function radiansToLength(radians, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return radians * factor;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name lengthToRadians\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} radians\n */\nexport function lengthToRadians(distance, units) {\n if (units === void 0) { units = \"kilometers\"; }\n var factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return distance / factor;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet\n *\n * @name lengthToDegrees\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} degrees\n */\nexport function lengthToDegrees(distance, units) {\n return radiansToDegrees(lengthToRadians(distance, units));\n}\n/**\n * Converts any bearing angle from the north line direction (positive clockwise)\n * and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line\n *\n * @name bearingToAzimuth\n * @param {number} bearing angle, between -180 and +180 degrees\n * @returns {number} angle between 0 and 360 degrees\n */\nexport function bearingToAzimuth(bearing) {\n var angle = bearing % 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n}\n/**\n * Converts an angle in radians to degrees\n *\n * @name radiansToDegrees\n * @param {number} radians angle in radians\n * @returns {number} degrees between 0 and 360 degrees\n */\nexport function radiansToDegrees(radians) {\n var degrees = radians % (2 * Math.PI);\n return (degrees * 180) / Math.PI;\n}\n/**\n * Converts an angle in degrees to radians\n *\n * @name degreesToRadians\n * @param {number} degrees angle between 0 and 360 degrees\n * @returns {number} angle in radians\n */\nexport function degreesToRadians(degrees) {\n var radians = degrees % 360;\n return (radians * Math.PI) / 180;\n}\n/**\n * Converts a length to the requested unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @param {number} length to be converted\n * @param {Units} [originalUnit=\"kilometers\"] of the length\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted length\n */\nexport function convertLength(length, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"kilometers\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(length >= 0)) {\n throw new Error(\"length must be a positive number\");\n }\n return radiansToLength(lengthToRadians(length, originalUnit), finalUnit);\n}\n/**\n * Converts a area to the requested unit.\n * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches, hectares\n * @param {number} area to be converted\n * @param {Units} [originalUnit=\"meters\"] of the distance\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted area\n */\nexport function convertArea(area, originalUnit, finalUnit) {\n if (originalUnit === void 0) { originalUnit = \"meters\"; }\n if (finalUnit === void 0) { finalUnit = \"kilometers\"; }\n if (!(area >= 0)) {\n throw new Error(\"area must be a positive number\");\n }\n var startFactor = areaFactors[originalUnit];\n if (!startFactor) {\n throw new Error(\"invalid original units\");\n }\n var finalFactor = areaFactors[finalUnit];\n if (!finalFactor) {\n throw new Error(\"invalid final units\");\n }\n return (area / startFactor) * finalFactor;\n}\n/**\n * isNumber\n *\n * @param {*} num Number to validate\n * @returns {boolean} true/false\n * @example\n * turf.isNumber(123)\n * //=true\n * turf.isNumber('foo')\n * //=false\n */\nexport function isNumber(num) {\n return !isNaN(num) && num !== null && !Array.isArray(num);\n}\n/**\n * isObject\n *\n * @param {*} input variable to validate\n * @returns {boolean} true/false\n * @example\n * turf.isObject({elevation: 10})\n * //=true\n * turf.isObject('foo')\n * //=false\n */\nexport function isObject(input) {\n return !!input && input.constructor === Object;\n}\n/**\n * Validate BBox\n *\n * @private\n * @param {Array} bbox BBox to validate\n * @returns {void}\n * @throws Error if BBox is not valid\n * @example\n * validateBBox([-180, -40, 110, 50])\n * //=OK\n * validateBBox([-180, -40])\n * //=Error\n * validateBBox('Foo')\n * //=Error\n * validateBBox(5)\n * //=Error\n * validateBBox(null)\n * //=Error\n * validateBBox(undefined)\n * //=Error\n */\nexport function validateBBox(bbox) {\n if (!bbox) {\n throw new Error(\"bbox is required\");\n }\n if (!Array.isArray(bbox)) {\n throw new Error(\"bbox must be an Array\");\n }\n if (bbox.length !== 4 && bbox.length !== 6) {\n throw new Error(\"bbox must be an Array of 4 or 6 numbers\");\n }\n bbox.forEach(function (num) {\n if (!isNumber(num)) {\n throw new Error(\"bbox must only contain numbers\");\n }\n });\n}\n/**\n * Validate Id\n *\n * @private\n * @param {string|number} id Id to validate\n * @returns {void}\n * @throws Error if Id is not valid\n * @example\n * validateId([-180, -40, 110, 50])\n * //=Error\n * validateId([-180, -40])\n * //=Error\n * validateId('Foo')\n * //=OK\n * validateId(5)\n * //=OK\n * validateId(null)\n * //=Error\n * validateId(undefined)\n * //=Error\n */\nexport function validateId(id) {\n if (!id) {\n throw new Error(\"id is required\");\n }\n if ([\"string\", \"number\"].indexOf(typeof id) === -1) {\n throw new Error(\"id must be a number or a string\");\n }\n}\n","/**\n * Returns a cloned copy of the passed GeoJSON Object, including possible 'Foreign Members'.\n * ~3-5x faster than the common JSON.parse + JSON.stringify combo method.\n *\n * @name clone\n * @param {GeoJSON} geojson GeoJSON Object\n * @returns {GeoJSON} cloned GeoJSON Object\n * @example\n * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]], {color: 'red'});\n *\n * var lineCloned = turf.clone(line);\n */\nfunction clone(geojson) {\n if (!geojson) {\n throw new Error(\"geojson is required\");\n }\n switch (geojson.type) {\n case \"Feature\":\n return cloneFeature(geojson);\n case \"FeatureCollection\":\n return cloneFeatureCollection(geojson);\n case \"Point\":\n case \"LineString\":\n case \"Polygon\":\n case \"MultiPoint\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n case \"GeometryCollection\":\n return cloneGeometry(geojson);\n default:\n throw new Error(\"unknown GeoJSON type\");\n }\n}\n/**\n * Clone Feature\n *\n * @private\n * @param {Feature} geojson GeoJSON Feature\n * @returns {Feature} cloned Feature\n */\nfunction cloneFeature(geojson) {\n var cloned = { type: \"Feature\" };\n // Preserve Foreign Members\n Object.keys(geojson).forEach(function (key) {\n switch (key) {\n case \"type\":\n case \"properties\":\n case \"geometry\":\n return;\n default:\n cloned[key] = geojson[key];\n }\n });\n // Add properties & geometry last\n cloned.properties = cloneProperties(geojson.properties);\n cloned.geometry = cloneGeometry(geojson.geometry);\n return cloned;\n}\n/**\n * Clone Properties\n *\n * @private\n * @param {Object} properties GeoJSON Properties\n * @returns {Object} cloned Properties\n */\nfunction cloneProperties(properties) {\n var cloned = {};\n if (!properties) {\n return cloned;\n }\n Object.keys(properties).forEach(function (key) {\n var value = properties[key];\n if (typeof value === \"object\") {\n if (value === null) {\n // handle null\n cloned[key] = null;\n }\n else if (Array.isArray(value)) {\n // handle Array\n cloned[key] = value.map(function (item) {\n return item;\n });\n }\n else {\n // handle generic Object\n cloned[key] = cloneProperties(value);\n }\n }\n else {\n cloned[key] = value;\n }\n });\n return cloned;\n}\n/**\n * Clone Feature Collection\n *\n * @private\n * @param {FeatureCollection} geojson GeoJSON Feature Collection\n * @returns {FeatureCollection} cloned Feature Collection\n */\nfunction cloneFeatureCollection(geojson) {\n var cloned = { type: \"FeatureCollection\" };\n // Preserve Foreign Members\n Object.keys(geojson).forEach(function (key) {\n switch (key) {\n case \"type\":\n case \"features\":\n return;\n default:\n cloned[key] = geojson[key];\n }\n });\n // Add features\n cloned.features = geojson.features.map(function (feature) {\n return cloneFeature(feature);\n });\n return cloned;\n}\n/**\n * Clone Geometry\n *\n * @private\n * @param {Geometry} geometry GeoJSON Geometry\n * @returns {Geometry} cloned Geometry\n */\nfunction cloneGeometry(geometry) {\n var geom = { type: geometry.type };\n if (geometry.bbox) {\n geom.bbox = geometry.bbox;\n }\n if (geometry.type === \"GeometryCollection\") {\n geom.geometries = geometry.geometries.map(function (g) {\n return cloneGeometry(g);\n });\n return geom;\n }\n geom.coordinates = deepSlice(geometry.coordinates);\n return geom;\n}\n/**\n * Deep Slice coordinates\n *\n * @private\n * @param {Coordinates} coords Coordinates\n * @returns {Coordinates} all coordinates sliced\n */\nfunction deepSlice(coords) {\n var cloned = coords;\n if (typeof cloned[0] !== \"object\") {\n return cloned.slice();\n }\n return cloned.map(function (coord) {\n return deepSlice(coord);\n });\n}\nexport default clone;\n","import { feature, lineString, isObject, point } from '@turf/helpers';\n\n/**\n * Callback for coordEach\n *\n * @callback coordEachCallback\n * @param {Array} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Iterate over coordinates in any GeoJSON object, similar to Array.forEach()\n *\n * @name coordEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex)\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction coordEach(geojson, callback, excludeWrapCoord) {\n // Handles null Geometry -- Skips this GeoJSON\n if (geojson === null) return;\n var j,\n k,\n l,\n geometry,\n stopG,\n coords,\n geometryMaybeCollection,\n wrapShrink = 0,\n coordIndex = 0,\n isGeometryCollection,\n type = geojson.type,\n isFeatureCollection = type === \"FeatureCollection\",\n isFeature = type === \"Feature\",\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (var featureIndex = 0; featureIndex < stop; featureIndex++) {\n geometryMaybeCollection = isFeatureCollection\n ? geojson.features[featureIndex].geometry\n : isFeature\n ? geojson.geometry\n : geojson;\n isGeometryCollection = geometryMaybeCollection\n ? geometryMaybeCollection.type === \"GeometryCollection\"\n : false;\n stopG = isGeometryCollection\n ? geometryMaybeCollection.geometries.length\n : 1;\n\n for (var geomIndex = 0; geomIndex < stopG; geomIndex++) {\n var multiFeatureIndex = 0;\n var geometryIndex = 0;\n geometry = isGeometryCollection\n ? geometryMaybeCollection.geometries[geomIndex]\n : geometryMaybeCollection;\n\n // Handles null Geometry -- Skips this geometry\n if (geometry === null) continue;\n coords = geometry.coordinates;\n var geomType = geometry.type;\n\n wrapShrink =\n excludeWrapCoord &&\n (geomType === \"Polygon\" || geomType === \"MultiPolygon\")\n ? 1\n : 0;\n\n switch (geomType) {\n case null:\n break;\n case \"Point\":\n if (\n callback(\n coords,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n multiFeatureIndex++;\n break;\n case \"LineString\":\n case \"MultiPoint\":\n for (j = 0; j < coords.length; j++) {\n if (\n callback(\n coords[j],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n if (geomType === \"MultiPoint\") multiFeatureIndex++;\n }\n if (geomType === \"LineString\") multiFeatureIndex++;\n break;\n case \"Polygon\":\n case \"MultiLineString\":\n for (j = 0; j < coords.length; j++) {\n for (k = 0; k < coords[j].length - wrapShrink; k++) {\n if (\n callback(\n coords[j][k],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n }\n if (geomType === \"MultiLineString\") multiFeatureIndex++;\n if (geomType === \"Polygon\") geometryIndex++;\n }\n if (geomType === \"Polygon\") multiFeatureIndex++;\n break;\n case \"MultiPolygon\":\n for (j = 0; j < coords.length; j++) {\n geometryIndex = 0;\n for (k = 0; k < coords[j].length; k++) {\n for (l = 0; l < coords[j][k].length - wrapShrink; l++) {\n if (\n callback(\n coords[j][k][l],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n }\n geometryIndex++;\n }\n multiFeatureIndex++;\n }\n break;\n case \"GeometryCollection\":\n for (j = 0; j < geometry.geometries.length; j++)\n if (\n coordEach(geometry.geometries[j], callback, excludeWrapCoord) ===\n false\n )\n return false;\n break;\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n }\n}\n\n/**\n * Callback for coordReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback coordReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Array} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * Starts at index 0, if an initialValue is provided, and at index 1 otherwise.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Reduce coordinates in any GeoJSON object, similar to Array.reduce()\n *\n * @name coordReduce\n * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentCoord;\n * });\n */\nfunction coordReduce(geojson, callback, initialValue, excludeWrapCoord) {\n var previousValue = initialValue;\n coordEach(\n geojson,\n function (\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) {\n if (coordIndex === 0 && initialValue === undefined)\n previousValue = currentCoord;\n else\n previousValue = callback(\n previousValue,\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n );\n },\n excludeWrapCoord\n );\n return previousValue;\n}\n\n/**\n * Callback for propEach\n *\n * @callback propEachCallback\n * @param {Object} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over properties in any GeoJSON object, similar to Array.forEach()\n *\n * @name propEach\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentProperties, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propEach(features, function (currentProperties, featureIndex) {\n * //=currentProperties\n * //=featureIndex\n * });\n */\nfunction propEach(geojson, callback) {\n var i;\n switch (geojson.type) {\n case \"FeatureCollection\":\n for (i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i].properties, i) === false) break;\n }\n break;\n case \"Feature\":\n callback(geojson.properties, 0);\n break;\n }\n}\n\n/**\n * Callback for propReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback propReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {*} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce properties in any GeoJSON object into a single value,\n * similar to how Array.reduce works. However, in this case we lazily run\n * the reduction, so an array of all properties is unnecessary.\n *\n * @name propReduce\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentProperties, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propReduce(features, function (previousValue, currentProperties, featureIndex) {\n * //=previousValue\n * //=currentProperties\n * //=featureIndex\n * return currentProperties\n * });\n */\nfunction propReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n propEach(geojson, function (currentProperties, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentProperties;\n else\n previousValue = callback(previousValue, currentProperties, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Callback for featureEach\n *\n * @callback featureEachCallback\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name featureEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.featureEach(features, function (currentFeature, featureIndex) {\n * //=currentFeature\n * //=featureIndex\n * });\n */\nfunction featureEach(geojson, callback) {\n if (geojson.type === \"Feature\") {\n callback(geojson, 0);\n } else if (geojson.type === \"FeatureCollection\") {\n for (var i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i], i) === false) break;\n }\n }\n}\n\n/**\n * Callback for featureReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback featureReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name featureReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.featureReduce(features, function (previousValue, currentFeature, featureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * return currentFeature\n * });\n */\nfunction featureReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n featureEach(geojson, function (currentFeature, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentFeature;\n else previousValue = callback(previousValue, currentFeature, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Get all coordinates from any GeoJSON object.\n *\n * @name coordAll\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @returns {Array>} coordinate position array\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * var coords = turf.coordAll(features);\n * //= [[26, 37], [36, 53]]\n */\nfunction coordAll(geojson) {\n var coords = [];\n coordEach(geojson, function (coord) {\n coords.push(coord);\n });\n return coords;\n}\n\n/**\n * Callback for geomEach\n *\n * @callback geomEachCallback\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Iterate over each geometry in any GeoJSON object, similar to Array.forEach()\n *\n * @name geomEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomEach(features, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * });\n */\nfunction geomEach(geojson, callback) {\n var i,\n j,\n g,\n geometry,\n stopG,\n geometryMaybeCollection,\n isGeometryCollection,\n featureProperties,\n featureBBox,\n featureId,\n featureIndex = 0,\n isFeatureCollection = geojson.type === \"FeatureCollection\",\n isFeature = geojson.type === \"Feature\",\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (i = 0; i < stop; i++) {\n geometryMaybeCollection = isFeatureCollection\n ? geojson.features[i].geometry\n : isFeature\n ? geojson.geometry\n : geojson;\n featureProperties = isFeatureCollection\n ? geojson.features[i].properties\n : isFeature\n ? geojson.properties\n : {};\n featureBBox = isFeatureCollection\n ? geojson.features[i].bbox\n : isFeature\n ? geojson.bbox\n : undefined;\n featureId = isFeatureCollection\n ? geojson.features[i].id\n : isFeature\n ? geojson.id\n : undefined;\n isGeometryCollection = geometryMaybeCollection\n ? geometryMaybeCollection.type === \"GeometryCollection\"\n : false;\n stopG = isGeometryCollection\n ? geometryMaybeCollection.geometries.length\n : 1;\n\n for (g = 0; g < stopG; g++) {\n geometry = isGeometryCollection\n ? geometryMaybeCollection.geometries[g]\n : geometryMaybeCollection;\n\n // Handle null Geometry\n if (geometry === null) {\n if (\n callback(\n null,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n continue;\n }\n switch (geometry.type) {\n case \"Point\":\n case \"LineString\":\n case \"MultiPoint\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\": {\n if (\n callback(\n geometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n break;\n }\n case \"GeometryCollection\": {\n for (j = 0; j < geometry.geometries.length; j++) {\n if (\n callback(\n geometry.geometries[j],\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n }\n break;\n }\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n // Only increase `featureIndex` per each feature\n featureIndex++;\n }\n}\n\n/**\n * Callback for geomReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback geomReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Reduce geometry in any GeoJSON object, similar to Array.reduce().\n *\n * @name geomReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomReduce(features, function (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=previousValue\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * return currentGeometry\n * });\n */\nfunction geomReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n geomEach(\n geojson,\n function (\n currentGeometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentGeometry;\n else\n previousValue = callback(\n previousValue,\n currentGeometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n );\n }\n );\n return previousValue;\n}\n\n/**\n * Callback for flattenEach\n *\n * @callback flattenEachCallback\n * @param {Feature} currentFeature The current flattened feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Iterate over flattened features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name flattenEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex, multiFeatureIndex)\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenEach(features, function (currentFeature, featureIndex, multiFeatureIndex) {\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * });\n */\nfunction flattenEach(geojson, callback) {\n geomEach(geojson, function (geometry, featureIndex, properties, bbox, id) {\n // Callback for single geometry\n var type = geometry === null ? null : geometry.type;\n switch (type) {\n case null:\n case \"Point\":\n case \"LineString\":\n case \"Polygon\":\n if (\n callback(\n feature(geometry, properties, { bbox: bbox, id: id }),\n featureIndex,\n 0\n ) === false\n )\n return false;\n return;\n }\n\n var geomType;\n\n // Callback for multi-geometry\n switch (type) {\n case \"MultiPoint\":\n geomType = \"Point\";\n break;\n case \"MultiLineString\":\n geomType = \"LineString\";\n break;\n case \"MultiPolygon\":\n geomType = \"Polygon\";\n break;\n }\n\n for (\n var multiFeatureIndex = 0;\n multiFeatureIndex < geometry.coordinates.length;\n multiFeatureIndex++\n ) {\n var coordinate = geometry.coordinates[multiFeatureIndex];\n var geom = {\n type: geomType,\n coordinates: coordinate,\n };\n if (\n callback(feature(geom, properties), featureIndex, multiFeatureIndex) ===\n false\n )\n return false;\n }\n });\n}\n\n/**\n * Callback for flattenReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback flattenReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Reduce flattened features in any GeoJSON object, similar to Array.reduce().\n *\n * @name flattenReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex, multiFeatureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenReduce(features, function (previousValue, currentFeature, featureIndex, multiFeatureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * return currentFeature\n * });\n */\nfunction flattenReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n flattenEach(\n geojson,\n function (currentFeature, featureIndex, multiFeatureIndex) {\n if (\n featureIndex === 0 &&\n multiFeatureIndex === 0 &&\n initialValue === undefined\n )\n previousValue = currentFeature;\n else\n previousValue = callback(\n previousValue,\n currentFeature,\n featureIndex,\n multiFeatureIndex\n );\n }\n );\n return previousValue;\n}\n\n/**\n * Callback for segmentEach\n *\n * @callback segmentEachCallback\n * @param {Feature} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n * @returns {void}\n */\n\n/**\n * Iterate over 2-vertex line segment in any GeoJSON object, similar to Array.forEach()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex)\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentEach(polygon, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //=currentSegment\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * //=segmentIndex\n * });\n *\n * // Calculate the total number of segments\n * var total = 0;\n * turf.segmentEach(polygon, function () {\n * total++;\n * });\n */\nfunction segmentEach(geojson, callback) {\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n var segmentIndex = 0;\n\n // Exclude null Geometries\n if (!feature.geometry) return;\n // (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n var type = feature.geometry.type;\n if (type === \"Point\" || type === \"MultiPoint\") return;\n\n // Generate 2-vertex line segments\n var previousCoords;\n var previousFeatureIndex = 0;\n var previousMultiIndex = 0;\n var prevGeomIndex = 0;\n if (\n coordEach(\n feature,\n function (\n currentCoord,\n coordIndex,\n featureIndexCoord,\n multiPartIndexCoord,\n geometryIndex\n ) {\n // Simulating a meta.coordReduce() since `reduce` operations cannot be stopped by returning `false`\n if (\n previousCoords === undefined ||\n featureIndex > previousFeatureIndex ||\n multiPartIndexCoord > previousMultiIndex ||\n geometryIndex > prevGeomIndex\n ) {\n previousCoords = currentCoord;\n previousFeatureIndex = featureIndex;\n previousMultiIndex = multiPartIndexCoord;\n prevGeomIndex = geometryIndex;\n segmentIndex = 0;\n return;\n }\n var currentSegment = lineString(\n [previousCoords, currentCoord],\n feature.properties\n );\n if (\n callback(\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n ) === false\n )\n return false;\n segmentIndex++;\n previousCoords = currentCoord;\n }\n ) === false\n )\n return false;\n });\n}\n\n/**\n * Callback for segmentReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback segmentReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n */\n\n/**\n * Reduce 2-vertex line segment in any GeoJSON object, similar to Array.reduce()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (previousValue, currentSegment, currentIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentReduce(polygon, function (previousSegment, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //= previousSegment\n * //= currentSegment\n * //= featureIndex\n * //= multiFeatureIndex\n * //= geometryIndex\n * //= segmentIndex\n * return currentSegment\n * });\n *\n * // Calculate the total number of segments\n * var initialValue = 0\n * var total = turf.segmentReduce(polygon, function (previousValue) {\n * previousValue++;\n * return previousValue;\n * }, initialValue);\n */\nfunction segmentReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n var started = false;\n segmentEach(\n geojson,\n function (\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n ) {\n if (started === false && initialValue === undefined)\n previousValue = currentSegment;\n else\n previousValue = callback(\n previousValue,\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n );\n started = true;\n }\n );\n return previousValue;\n}\n\n/**\n * Callback for lineEach\n *\n * @callback lineEachCallback\n * @param {Feature} currentLine The current LineString|LinearRing being processed\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Iterate over line or ring coordinates in LineString, Polygon, MultiLineString, MultiPolygon Features or Geometries,\n * similar to Array.forEach.\n *\n * @name lineEach\n * @param {Geometry|Feature} geojson object\n * @param {Function} callback a method that takes (currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @example\n * var multiLine = turf.multiLineString([\n * [[26, 37], [35, 45]],\n * [[36, 53], [38, 50], [41, 55]]\n * ]);\n *\n * turf.lineEach(multiLine, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction lineEach(geojson, callback) {\n // validation\n if (!geojson) throw new Error(\"geojson is required\");\n\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n if (feature.geometry === null) return;\n var type = feature.geometry.type;\n var coords = feature.geometry.coordinates;\n switch (type) {\n case \"LineString\":\n if (callback(feature, featureIndex, multiFeatureIndex, 0, 0) === false)\n return false;\n break;\n case \"Polygon\":\n for (\n var geometryIndex = 0;\n geometryIndex < coords.length;\n geometryIndex++\n ) {\n if (\n callback(\n lineString(coords[geometryIndex], feature.properties),\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n }\n break;\n }\n });\n}\n\n/**\n * Callback for lineReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback lineReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentLine The current LineString|LinearRing being processed.\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name lineReduce\n * @param {Geometry|Feature} geojson object\n * @param {Function} callback a method that takes (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var multiPoly = turf.multiPolygon([\n * turf.polygon([[[12,48],[2,41],[24,38],[12,48]], [[9,44],[13,41],[13,45],[9,44]]]),\n * turf.polygon([[[5, 5], [0, 0], [2, 2], [4, 4], [5, 5]]])\n * ]);\n *\n * turf.lineReduce(multiPoly, function (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentLine\n * });\n */\nfunction lineReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n lineEach(\n geojson,\n function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentLine;\n else\n previousValue = callback(\n previousValue,\n currentLine,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n );\n }\n );\n return previousValue;\n}\n\n/**\n * Finds a particular 2-vertex LineString Segment from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n * Point & MultiPoint will always return null.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.segmentIndex=0] Segment Index\n * @param {Object} [options.properties={}] Translate Properties to output LineString\n * @param {BBox} [options.bbox={}] Translate BBox to output LineString\n * @param {number|string} [options.id={}] Translate Id to output LineString\n * @returns {Feature} 2-vertex GeoJSON Feature LineString\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findSegment(multiLine);\n * // => Feature>\n *\n * // First Segment of 2nd Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: 1});\n * // => Feature>\n *\n * // Last Segment of Last Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: -1, segmentIndex: -1});\n * // => Feature>\n */\nfunction findSegment(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var segmentIndex = options.segmentIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case \"FeatureCollection\":\n if (featureIndex < 0)\n featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case \"Feature\":\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n geometry = geojson;\n break;\n default:\n throw new Error(\"geojson is invalid\");\n }\n\n // Find SegmentIndex\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n if (segmentIndex < 0) segmentIndex = coords.length + segmentIndex - 1;\n return lineString(\n [coords[segmentIndex], coords[segmentIndex + 1]],\n properties,\n options\n );\n case \"Polygon\":\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[geometryIndex].length + segmentIndex - 1;\n return lineString(\n [\n coords[geometryIndex][segmentIndex],\n coords[geometryIndex][segmentIndex + 1],\n ],\n properties,\n options\n );\n case \"MultiLineString\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[multiFeatureIndex].length + segmentIndex - 1;\n return lineString(\n [\n coords[multiFeatureIndex][segmentIndex],\n coords[multiFeatureIndex][segmentIndex + 1],\n ],\n properties,\n options\n );\n case \"MultiPolygon\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0)\n geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (segmentIndex < 0)\n segmentIndex =\n coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1;\n return lineString(\n [\n coords[multiFeatureIndex][geometryIndex][segmentIndex],\n coords[multiFeatureIndex][geometryIndex][segmentIndex + 1],\n ],\n properties,\n options\n );\n }\n throw new Error(\"geojson is invalid\");\n}\n\n/**\n * Finds a particular Point from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.coordIndex=0] Coord Index\n * @param {Object} [options.properties={}] Translate Properties to output Point\n * @param {BBox} [options.bbox={}] Translate BBox to output Point\n * @param {number|string} [options.id={}] Translate Id to output Point\n * @returns {Feature} 2-vertex GeoJSON Feature Point\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findPoint(multiLine);\n * // => Feature>\n *\n * // First Segment of the 2nd Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: 1});\n * // => Feature>\n *\n * // Last Segment of last Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: -1, coordIndex: -1});\n * // => Feature>\n */\nfunction findPoint(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var coordIndex = options.coordIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case \"FeatureCollection\":\n if (featureIndex < 0)\n featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case \"Feature\":\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n geometry = geojson;\n break;\n default:\n throw new Error(\"geojson is invalid\");\n }\n\n // Find Coord Index\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case \"Point\":\n return point(coords, properties, options);\n case \"MultiPoint\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n return point(coords[multiFeatureIndex], properties, options);\n case \"LineString\":\n if (coordIndex < 0) coordIndex = coords.length + coordIndex;\n return point(coords[coordIndex], properties, options);\n case \"Polygon\":\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (coordIndex < 0)\n coordIndex = coords[geometryIndex].length + coordIndex;\n return point(coords[geometryIndex][coordIndex], properties, options);\n case \"MultiLineString\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (coordIndex < 0)\n coordIndex = coords[multiFeatureIndex].length + coordIndex;\n return point(coords[multiFeatureIndex][coordIndex], properties, options);\n case \"MultiPolygon\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0)\n geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (coordIndex < 0)\n coordIndex =\n coords[multiFeatureIndex][geometryIndex].length - coordIndex;\n return point(\n coords[multiFeatureIndex][geometryIndex][coordIndex],\n properties,\n options\n );\n }\n throw new Error(\"geojson is invalid\");\n}\n\nexport { coordAll, coordEach, coordReduce, featureEach, featureReduce, findPoint, findSegment, flattenEach, flattenReduce, geomEach, geomReduce, lineEach, lineReduce, propEach, propReduce, segmentEach, segmentReduce };\n","import { coordEach } from \"@turf/meta\";\n/**\n * Takes a set of features, calculates the bbox of all input features, and returns a bounding box.\n *\n * @name bbox\n * @param {GeoJSON} geojson any GeoJSON object\n * @returns {BBox} bbox extent in [minX, minY, maxX, maxY] order\n * @example\n * var line = turf.lineString([[-74, 40], [-78, 42], [-82, 35]]);\n * var bbox = turf.bbox(line);\n * var bboxPolygon = turf.bboxPolygon(bbox);\n *\n * //addToMap\n * var addToMap = [line, bboxPolygon]\n */\nfunction bbox(geojson) {\n var result = [Infinity, Infinity, -Infinity, -Infinity];\n coordEach(geojson, function (coord) {\n if (result[0] > coord[0]) {\n result[0] = coord[0];\n }\n if (result[1] > coord[1]) {\n result[1] = coord[1];\n }\n if (result[2] < coord[0]) {\n result[2] = coord[0];\n }\n if (result[3] < coord[1]) {\n result[3] = coord[1];\n }\n });\n return result;\n}\nbbox[\"default\"] = bbox;\nexport default bbox;\n","import bbox from '@turf/bbox';\nimport bboxPolygon from '@turf/bbox-polygon';\n\n/**\n * Takes any number of features and returns a rectangular {@link Polygon} that encompasses all vertices.\n *\n * @name envelope\n * @param {GeoJSON} geojson input features\n * @returns {Feature} a rectangular Polygon feature that encompasses all vertices\n * @example\n * var features = turf.featureCollection([\n * turf.point([-75.343, 39.984], {\"name\": \"Location A\"}),\n * turf.point([-75.833, 39.284], {\"name\": \"Location B\"}),\n * turf.point([-75.534, 39.123], {\"name\": \"Location C\"})\n * ]);\n *\n * var enveloped = turf.envelope(features);\n *\n * //addToMap\n * var addToMap = [features, enveloped];\n */\nfunction envelope(geojson) {\n return bboxPolygon(bbox(geojson));\n}\n\nexport default envelope;\n","import { polygon } from \"@turf/helpers\";\n/**\n * Takes a bbox and returns an equivalent {@link Polygon|polygon}.\n *\n * @name bboxPolygon\n * @param {BBox} bbox extent in [minX, minY, maxX, maxY] order\n * @param {Object} [options={}] Optional parameters\n * @param {Properties} [options.properties={}] Translate properties to Polygon\n * @param {string|number} [options.id={}] Translate Id to Polygon\n * @returns {Feature} a Polygon representation of the bounding box\n * @example\n * var bbox = [0, 0, 10, 10];\n *\n * var poly = turf.bboxPolygon(bbox);\n *\n * //addToMap\n * var addToMap = [poly]\n */\nexport default function bboxPolygon(bbox, options) {\n if (options === void 0) { options = {}; }\n // Convert BBox positions to Numbers\n // No performance loss for including Number()\n // https://github.com/Turfjs/turf/issues/1119\n var west = Number(bbox[0]);\n var south = Number(bbox[1]);\n var east = Number(bbox[2]);\n var north = Number(bbox[3]);\n if (bbox.length === 6) {\n throw new Error(\"@turf/bbox-polygon does not support BBox with 6 positions\");\n }\n var lowLeft = [west, south];\n var topLeft = [west, north];\n var topRight = [east, north];\n var lowRight = [east, south];\n return polygon([[lowLeft, lowRight, topRight, topLeft, lowLeft]], options.properties, { bbox: bbox, id: options.id });\n}\n","import { coordEach } from \"@turf/meta\";\nimport { point } from \"@turf/helpers\";\n/**\n * Takes one or more features and calculates the centroid using the mean of all vertices.\n * This lessens the effect of small islands and artifacts when calculating the centroid of a set of polygons.\n *\n * @name centroid\n * @param {GeoJSON} geojson GeoJSON to be centered\n * @param {Object} [options={}] Optional Parameters\n * @param {Object} [options.properties={}] an Object that is used as the {@link Feature}'s properties\n * @returns {Feature} the centroid of the input features\n * @example\n * var polygon = turf.polygon([[[-81, 41], [-88, 36], [-84, 31], [-80, 33], [-77, 39], [-81, 41]]]);\n *\n * var centroid = turf.centroid(polygon);\n *\n * //addToMap\n * var addToMap = [polygon, centroid]\n */\nfunction centroid(geojson, options) {\n if (options === void 0) { options = {}; }\n var xSum = 0;\n var ySum = 0;\n var len = 0;\n coordEach(geojson, function (coord) {\n xSum += coord[0];\n ySum += coord[1];\n len++;\n }, true);\n return point([xSum / len, ySum / len], options.properties);\n}\nexport default centroid;\n","import { flattenEach } from '@turf/meta';\nimport { featureCollection } from '@turf/helpers';\n\n/**\n * Flattens any {@link GeoJSON} to a {@link FeatureCollection} inspired by [geojson-flatten](https://github.com/tmcw/geojson-flatten).\n *\n * @name flatten\n * @param {GeoJSON} geojson any valid GeoJSON Object\n * @returns {FeatureCollection} all Multi-Geometries are flattened into single Features\n * @example\n * var multiGeometry = turf.multiPolygon([\n * [[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]],\n * [[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]],\n * [[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2]]]\n * ]);\n *\n * var flatten = turf.flatten(multiGeometry);\n *\n * //addToMap\n * var addToMap = [flatten]\n */\nfunction flatten(geojson) {\n if (!geojson) throw new Error(\"geojson is required\");\n\n var results = [];\n flattenEach(geojson, function (feature) {\n results.push(feature);\n });\n return featureCollection(results);\n}\n\nexport default flatten;\n","import { isNumber, } from \"@turf/helpers\";\n/**\n * Unwrap a coordinate from a Point Feature, Geometry or a single coordinate.\n *\n * @name getCoord\n * @param {Array|Geometry|Feature} coord GeoJSON Point or an Array of numbers\n * @returns {Array} coordinates\n * @example\n * var pt = turf.point([10, 10]);\n *\n * var coord = turf.getCoord(pt);\n * //= [10, 10]\n */\nexport function getCoord(coord) {\n if (!coord) {\n throw new Error(\"coord is required\");\n }\n if (!Array.isArray(coord)) {\n if (coord.type === \"Feature\" &&\n coord.geometry !== null &&\n coord.geometry.type === \"Point\") {\n return coord.geometry.coordinates;\n }\n if (coord.type === \"Point\") {\n return coord.coordinates;\n }\n }\n if (Array.isArray(coord) &&\n coord.length >= 2 &&\n !Array.isArray(coord[0]) &&\n !Array.isArray(coord[1])) {\n return coord;\n }\n throw new Error(\"coord must be GeoJSON Point or an Array of numbers\");\n}\n/**\n * Unwrap coordinates from a Feature, Geometry Object or an Array\n *\n * @name getCoords\n * @param {Array|Geometry|Feature} coords Feature, Geometry Object or an Array\n * @returns {Array} coordinates\n * @example\n * var poly = turf.polygon([[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]);\n *\n * var coords = turf.getCoords(poly);\n * //= [[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]\n */\nexport function getCoords(coords) {\n if (Array.isArray(coords)) {\n return coords;\n }\n // Feature\n if (coords.type === \"Feature\") {\n if (coords.geometry !== null) {\n return coords.geometry.coordinates;\n }\n }\n else {\n // Geometry\n if (coords.coordinates) {\n return coords.coordinates;\n }\n }\n throw new Error(\"coords must be GeoJSON Feature, Geometry Object or an Array\");\n}\n/**\n * Checks if coordinates contains a number\n *\n * @name containsNumber\n * @param {Array} coordinates GeoJSON Coordinates\n * @returns {boolean} true if Array contains a number\n */\nexport function containsNumber(coordinates) {\n if (coordinates.length > 1 &&\n isNumber(coordinates[0]) &&\n isNumber(coordinates[1])) {\n return true;\n }\n if (Array.isArray(coordinates[0]) && coordinates[0].length) {\n return containsNumber(coordinates[0]);\n }\n throw new Error(\"coordinates must only contain numbers\");\n}\n/**\n * Enforce expectations about types of GeoJSON objects for Turf.\n *\n * @name geojsonType\n * @param {GeoJSON} value any GeoJSON object\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} if value is not the expected type.\n */\nexport function geojsonType(value, type, name) {\n if (!type || !name) {\n throw new Error(\"type and name required\");\n }\n if (!value || value.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n value.type);\n }\n}\n/**\n * Enforce expectations about types of {@link Feature} inputs for Turf.\n * Internally this uses {@link geojsonType} to judge geometry types.\n *\n * @name featureOf\n * @param {Feature} feature a feature with an expected geometry type\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} error if value is not the expected type.\n */\nexport function featureOf(feature, type, name) {\n if (!feature) {\n throw new Error(\"No feature passed\");\n }\n if (!name) {\n throw new Error(\".featureOf() requires a name\");\n }\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n feature.geometry.type);\n }\n}\n/**\n * Enforce expectations about types of {@link FeatureCollection} inputs for Turf.\n * Internally this uses {@link geojsonType} to judge geometry types.\n *\n * @name collectionOf\n * @param {FeatureCollection} featureCollection a FeatureCollection for which features will be judged\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} if value is not the expected type.\n */\nexport function collectionOf(featureCollection, type, name) {\n if (!featureCollection) {\n throw new Error(\"No featureCollection passed\");\n }\n if (!name) {\n throw new Error(\".collectionOf() requires a name\");\n }\n if (!featureCollection || featureCollection.type !== \"FeatureCollection\") {\n throw new Error(\"Invalid input to \" + name + \", FeatureCollection required\");\n }\n for (var _i = 0, _a = featureCollection.features; _i < _a.length; _i++) {\n var feature = _a[_i];\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\"Invalid input to \" +\n name +\n \": must be a \" +\n type +\n \", given \" +\n feature.geometry.type);\n }\n }\n}\n/**\n * Get Geometry from Feature or Geometry Object\n *\n * @param {Feature|Geometry} geojson GeoJSON Feature or Geometry Object\n * @returns {Geometry|null} GeoJSON Geometry Object\n * @throws {Error} if geojson is not a Feature or Geometry Object\n * @example\n * var point = {\n * \"type\": \"Feature\",\n * \"properties\": {},\n * \"geometry\": {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 40]\n * }\n * }\n * var geom = turf.getGeom(point)\n * //={\"type\": \"Point\", \"coordinates\": [110, 40]}\n */\nexport function getGeom(geojson) {\n if (geojson.type === \"Feature\") {\n return geojson.geometry;\n }\n return geojson;\n}\n/**\n * Get GeoJSON object's type, Geometry type is prioritize.\n *\n * @param {GeoJSON} geojson GeoJSON object\n * @param {string} [name=\"geojson\"] name of the variable to display in error message (unused)\n * @returns {string} GeoJSON type\n * @example\n * var point = {\n * \"type\": \"Feature\",\n * \"properties\": {},\n * \"geometry\": {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 40]\n * }\n * }\n * var geom = turf.getType(point)\n * //=\"Point\"\n */\nexport function getType(geojson, _name) {\n if (geojson.type === \"FeatureCollection\") {\n return \"FeatureCollection\";\n }\n if (geojson.type === \"GeometryCollection\") {\n return \"GeometryCollection\";\n }\n if (geojson.type === \"Feature\" && geojson.geometry !== null) {\n return geojson.geometry.type;\n }\n return geojson.type;\n}\n","import { getCoord } from \"@turf/invariant\";\nimport { radiansToLength, degreesToRadians, } from \"@turf/helpers\";\n//http://en.wikipedia.org/wiki/Haversine_formula\n//http://www.movable-type.co.uk/scripts/latlong.html\n/**\n * Calculates the distance between two {@link Point|points} in degrees, radians, miles, or kilometers.\n * This uses the [Haversine formula](http://en.wikipedia.org/wiki/Haversine_formula) to account for global curvature.\n *\n * @name distance\n * @param {Coord | Point} from origin point or coordinate\n * @param {Coord | Point} to destination point or coordinate\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.units='kilometers'] can be degrees, radians, miles, or kilometers\n * @returns {number} distance between the two points\n * @example\n * var from = turf.point([-75.343, 39.984]);\n * var to = turf.point([-75.534, 39.123]);\n * var options = {units: 'miles'};\n *\n * var distance = turf.distance(from, to, options);\n *\n * //addToMap\n * var addToMap = [from, to];\n * from.properties.distance = distance;\n * to.properties.distance = distance;\n */\nfunction distance(from, to, options) {\n if (options === void 0) { options = {}; }\n var coordinates1 = getCoord(from);\n var coordinates2 = getCoord(to);\n var dLat = degreesToRadians(coordinates2[1] - coordinates1[1]);\n var dLon = degreesToRadians(coordinates2[0] - coordinates1[0]);\n var lat1 = degreesToRadians(coordinates1[1]);\n var lat2 = degreesToRadians(coordinates2[1]);\n var a = Math.pow(Math.sin(dLat / 2), 2) +\n Math.pow(Math.sin(dLon / 2), 2) * Math.cos(lat1) * Math.cos(lat2);\n return radiansToLength(2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)), options.units);\n}\nexport default distance;\n","import * as turf_helpers from '@turf/helpers';\r\nimport * as turf_clone from '@turf/clone';\r\nimport * as turf_envelope from '@turf/envelope';\r\nimport * as turf_centroid from '@turf/centroid';\r\nimport * as turf_flatten from '@turf/flatten';\r\nimport * as turf_distance from '@turf/distance';\r\n\r\nimport proj4 from 'proj4';\r\nimport { reproject } from 'reproject';\r\nimport { parse, stringify } from 'wkt';\r\nimport { Projection } from './RM2Projection';\r\n\r\n// wrappers around JSTS classes\r\n\r\nexport type CoordinateLike = [number, number];\r\n\r\n/**\r\n * Coordinate class. Extends jsts.geom.Coordinate class.\r\n */\r\nexport class Coordinate {\r\n\r\n x: number;\r\n y: number;\r\n\r\n constructor(x: number, y: number) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n\r\n /**\r\n * Returns coordinate from the first two ordinates in the given numeric array.\r\n */\r\n public static fromOrdinates(ordinates: CoordinateLike): Coordinate {\r\n return new Coordinate(ordinates[0], ordinates[1]);\r\n }\r\n /**\r\n * Returns an array or two ordinates (x and y) from the given Coordinate object.\r\n */\r\n public static toOrdinates(coordinate: Coordinate): CoordinateLike {\r\n return [coordinate.x, coordinate.y];\r\n }\r\n /**\r\n * Returns an array of Coordinate objects from the given numeric array (takes two ordintes for each Coordinate).\r\n */\r\n public static sequenceFromOrdinates(ordinates: number[]): Coordinate[] {\r\n const coordinates = new Array();\r\n for (let i = 0; i < ordinates.length; i += 2)\r\n coordinates.push(new Coordinate(ordinates[i], ordinates[i + 1]));\r\n \r\n return coordinates;\r\n }\r\n /**\r\n * Returns a coordinate, transformed from source projection to target projection.\r\n */\r\n public static transform(coordinate: Coordinate, sourceProjection: Projection, targetProjection: Projection): Coordinate {\r\n if (sourceProjection === targetProjection)\r\n return new Coordinate(coordinate.x, coordinate.y);\r\n \r\n return this.fromOrdinates(proj4(sourceProjection.crsCode, targetProjection.crsCode, this.toOrdinates(coordinate)));\r\n }\r\n}\r\n\r\n/**\r\n * Envelope class. Represents rectangular geographic area defined with minX, minY, maxX, mayY borders.\r\n */\r\nexport class Envelope {\r\n\r\n minx: number;\r\n miny: number;\r\n maxx: number;\r\n maxy: number;\r\n\r\n constructor(minx: number, miny: number, maxx: number, maxy: number) {\r\n this.minx = minx;\r\n this.miny = miny;\r\n this.maxx = maxx;\r\n this.maxy = maxy;\r\n }\r\n\r\n /**\r\n * Returns new Envelope object from given array of 4 numeric values.\r\n */\r\n public static fromNumArray(extent: number[]): Envelope {\r\n return new Envelope(extent[0], extent[1], extent[2], extent[3]);\r\n }\r\n /**\r\n * Returns numeric array of 4 ordinates (minX, minY, maxX, maxY).\r\n */\r\n public static toNumArray(envelope: Envelope) {\r\n return [envelope.minx, envelope.miny, envelope.maxx, envelope.maxy];\r\n }\r\n /**\r\n * Returns new envelope, transformed from source projection to target projection.\r\n */\r\n public static transform(envelope: Envelope, sourceProjection: Projection, targetProjection: Projection): Envelope {\r\n if (sourceProjection === targetProjection)\r\n return new Envelope(envelope.minx, envelope.miny, envelope.maxx, envelope.maxy);\r\n \r\n const min = proj4(sourceProjection.crsCode, targetProjection.crsCode, [envelope.minx, envelope.miny]);\r\n const max = proj4(sourceProjection.crsCode, targetProjection.crsCode, [envelope.maxx, envelope.maxy]);\r\n return this.fromNumArray(min.concat(max));\r\n }\r\n /**\r\n * Returns new envelope of given point coordinate.\r\n */\r\n public static fromCoordinate(coordinate: Coordinate) {\r\n return new Envelope(coordinate.x, coordinate.y, coordinate.x, coordinate.y);\r\n }\r\n}\r\n\r\n/**\r\n * String value that represents type of geometry.\r\n */\r\nexport type GeometryType = 'point' | 'lineString' | 'polygon' | 'multiPoint' | 'multiLineString' | 'multiPolygon' | 'geometryCollection';\r\n\r\n/**\r\n * Represents geometry object.\r\n */\r\nexport abstract class Geometry implements turf_helpers.Geometry {\r\n type: string;\r\n bbox?: [number, number, number, number] | [number, number, number, number, number, number];\r\n coordinates: turf_helpers.Position | turf_helpers.Position[] | turf_helpers.Position[][] | turf_helpers.Position[][][];\r\n\r\n public getCoordinate(): Coordinate {\r\n const type = this.type.toLowerCase();\r\n if (this.type === 'polygon' || this.type === 'multipolygon') {\r\n const centroid = this.getCentroid();\r\n if (centroid && centroid.coordinates && centroid.coordinates.length >= 2) {\r\n return new Coordinate(centroid.coordinates[0], centroid.coordinates[1])\r\n }\r\n }\r\n else if (this.type === 'linestring' || this.type === 'multilinestring' || this.type === 'multipoint') { // za multipoint - morda bi bilo bolj prav da je zgoraj - centroid. promet.si obmocja pluzenja mapbox vrne kot multipoint (ZAKAJ?), zato sem jih dal sem.\r\n const flatten = this.flattenCoords();\r\n if (flatten && flatten.length >= 2) {\r\n return new Coordinate(Math.floor(flatten.length / 2), Math.floor(flatten.length / 2) + 1)\r\n }\r\n }\r\n else {\r\n const flatten = this.flattenCoords();\r\n if (flatten.length >= 2) {\r\n return new Coordinate(flatten[0], flatten[1]);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n public getCoordinates(): Coordinate[] {\r\n const flatten = this.flattenCoords();\r\n if (flatten.length % 2 !== 0)\r\n return null;\r\n\r\n const coords: Coordinate[] = [];\r\n for (let i = 0; i < flatten.length; i += 2)\r\n coords.push(new Coordinate(flatten[i], flatten[i + 1]));\r\n \r\n return coords;\r\n }\r\n\r\n public getEnvelopeInternal(): Envelope {\r\n const envelope = turf_envelope.default(this);\r\n const flatten = turf_flatten.default(envelope);\r\n return Envelope.fromNumArray(flatten.features[0].bbox);\r\n }\r\n\r\n public distance(geometry: Geometry): number {\r\n const c1 = this.getCentroid();\r\n const c2 = geometry.getCentroid();\r\n\r\n const p1 = turf_helpers.point(c1.coordinates);\r\n const p2 = turf_helpers.point(c2.coordinates);\r\n return turf_distance.default(p1, p2);\r\n }\r\n\r\n public getCentroid(): Point {\r\n const centroid = turf_centroid.default(this);\r\n const coords = centroid.geometry.coordinates;\r\n return Point.fromCoordinate([coords[0], coords[1]]);\r\n }\r\n\r\n private flattenCoords(): number[] {\r\n return this.coordinates.flat(3);\r\n }\r\n\r\n /**\r\n * Returns new Geometry object from given WKT string.\r\n */\r\n public static fromWkt(wktString: string): Geometry {\r\n const json = parse(wktString);\r\n return this.fromGeoJson(json);\r\n // return this._wktReader.read(wkt) as Geometry;\r\n }\r\n\r\n /**\r\n * Returns WKT string from given Geometry object.\r\n */\r\n public static toWkt(geometry: Geometry): string {\r\n const wktString = stringify(geometry);\r\n console.log(wktString);\r\n return wktString;\r\n // return this._wktWriter.write(geometry);\r\n }\r\n\r\n /**\r\n * Clones the Geometry object\r\n */\r\n public clone(): Geometry {\r\n return Geometry.fromGeoJson(turf_clone.default(this));\r\n }\r\n\r\n /**\r\n * Returns new Geometry object from given geoJSON string.\r\n */\r\n public static fromGeoJson(geoJson: string | Object): Geometry {\r\n let json: Geometry;\r\n if (typeof geoJson == 'string')\r\n json = JSON.parse(geoJson) as Geometry;\r\n else\r\n json = geoJson as Geometry;\r\n\r\n \r\n const type = json.type.toLowerCase();\r\n if (type === 'point')\r\n return new Point(json.coordinates as CoordinateLike);\r\n // else if (type === \"LineSegment\")\r\n // return new LineSegment();\r\n else if (type === 'linestring')\r\n return new LineString(json.coordinates as CoordinateLike[]);\r\n else if (type === 'multilinestring')\r\n return new MultiLineString(json.coordinates as CoordinateLike[][]);\r\n else if (type === 'polygon')\r\n return new Polygon(json.coordinates as CoordinateLike[][]);\r\n else if (type === 'multipoint')\r\n return new MultiPoint (json.coordinates as CoordinateLike[]);\r\n else if (type === 'multipolygon')\r\n return new MultiPolygon (json.coordinates as CoordinateLike[][][]);\r\n else\r\n throw new Error(`Not supported geo type: ${type}`); // 'geometryCollection';\r\n \r\n throw new Error('NotImplemented');\r\n }\r\n\r\n /**\r\n * Returns geoJSON string from given Geometry object.\r\n */\r\n public static toGeoJson(geometry: Geometry): Object {\r\n return geometry;\r\n }\r\n\r\n // todo Optimization! Implement transform on jsts geometry\r\n /**\r\n * Returns new Geometry object, transformed from source projection to target projection.\r\n */\r\n public static transform(geometry: Geometry, sourceProjection: Projection, targetProjection: Projection): Geometry {\r\n if (sourceProjection === targetProjection)\r\n return turf_clone.default(geometry);\r\n \r\n // HACK: nekaj narobe s knjiznico v primeru polygona\r\n if (geometry.type.toLowerCase() == 'polygon')\r\n (geometry as any).shell.points.coordinates = [];\r\n\r\n return Geometry.fromGeoJson(reproject(Geometry.toGeoJson(geometry), proj4.defs(sourceProjection.crsCode), proj4.defs(targetProjection.crsCode)));\r\n }\r\n}\r\n/**\r\n * Represents point geometry object.\r\n */\r\nexport class Point extends Geometry implements turf_helpers.Point {\r\n type: \"Point\";\r\n coordinates: turf_helpers.Position;\r\n \r\n constructor(coordinates: Coordinate | CoordinateLike) {\r\n super();\r\n\r\n this.type = \"Point\";\r\n if (coordinates instanceof Coordinate)\r\n this.coordinates = [coordinates.x, coordinates.y];\r\n else\r\n this.coordinates = coordinates;\r\n }\r\n\r\n public static fromCoordinate(coordinate: Coordinate | CoordinateLike): Point {\r\n if (Array.isArray(coordinate))\r\n coordinate = Coordinate.fromOrdinates(coordinate);\r\n \r\n return new Point(coordinate);\r\n }\r\n}\r\n\r\n/**\r\n * Represents MultiPoint geometry object\r\n */\r\nexport class MultiPoint extends Geometry implements turf_helpers.MultiPoint {\r\n type: \"MultiPoint\";\r\n coordinates: turf_helpers.Position[];\r\n \r\n constructor(coordinates: Coordinate[] | CoordinateLike[]) {\r\n super();\r\n\r\n this.type = \"MultiPoint\";\r\n const positions: turf_helpers.Position[] = [];\r\n for (let i = 0; i < coordinates.length; i++) {\r\n const coord = coordinates[i];\r\n if (coord instanceof Coordinate)\r\n positions.push([coord.x, coord.y]);\r\n else\r\n positions.push(coord);\r\n }\r\n\r\n this.coordinates = positions;\r\n }\r\n}\r\n/**\r\n * Represents linestring geometry object.\r\n */\r\nexport class LineSegment extends Geometry {\r\n public static fromCoordinates(coordinates: [Coordinate, Coordinate] | [CoordinateLike, CoordinateLike]): LineString {\r\n if (Array.isArray(coordinates) && Array.isArray(coordinates[0]))\r\n coordinates = (coordinates as [CoordinateLike, CoordinateLike]).map(coord => Coordinate.fromOrdinates(coord)) as [Coordinate, Coordinate];\r\n \r\n return new (jsts.geom as any).LineSegment(coordinates[0], coordinates[1]);\r\n }\r\n}\r\n/**\r\n * Represents linestring geometry object.\r\n */\r\nexport class LineString extends Geometry implements turf_helpers.LineString {\r\n type: \"LineString\";\r\n coordinates: turf_helpers.Position[];\r\n\r\n constructor(coordinates: Coordinate[] | CoordinateLike[]) {\r\n super();\r\n\r\n this.type = \"LineString\";\r\n const positions: turf_helpers.Position[] = [];\r\n for (let i = 0; i < coordinates.length; i++) {\r\n const coord = coordinates[i];\r\n if (coord instanceof Coordinate)\r\n positions.push([coord.x, coord.y]);\r\n else\r\n positions.push(coord);\r\n }\r\n\r\n this.coordinates = positions;\r\n }\r\n}\r\n/**\r\n * Represents multilinestring geometry object.\r\n */\r\nexport class MultiLineString extends Geometry implements turf_helpers.MultiLineString {\r\n type: \"MultiLineString\";\r\n coordinates: turf_helpers.Position[][];\r\n\r\n constructor(coordinates: Coordinate[][] | CoordinateLike[][]) {\r\n super();\r\n\r\n this.type = \"MultiLineString\";\r\n const positions: turf_helpers.Position[][] = [];\r\n for (let i = 0; i < coordinates.length; i++) {\r\n const ls = coordinates[i];\r\n const lsCoords: turf_helpers.Position[] = [];\r\n for (let j = 0; j < ls.length; j++) {\r\n const coord = ls[j];\r\n if (coord instanceof Coordinate)\r\n lsCoords.push([coord.x, coord.y]);\r\n else\r\n lsCoords.push(coord);\r\n }\r\n\r\n positions.push(lsCoords);\r\n }\r\n\r\n this.coordinates = positions;\r\n }\r\n}\r\n/**\r\n * Represents polygon geometry object.\r\n */\r\nexport class Polygon extends Geometry implements turf_helpers.Polygon {\r\n type: \"Polygon\";\r\n coordinates: turf_helpers.Position[][];\r\n\r\n constructor(coordinates: Coordinate[][] | CoordinateLike[][]) {\r\n super();\r\n\r\n this.type = \"Polygon\";\r\n const positions: turf_helpers.Position[][] = [];\r\n for (let i = 0; i < coordinates.length; i++) {\r\n const ls = coordinates[i];\r\n const lsCoords: turf_helpers.Position[] = [];\r\n for (let j = 0; j < ls.length; j++) {\r\n const coord = ls[j];\r\n if (coord instanceof Coordinate)\r\n lsCoords.push([coord.x, coord.y]);\r\n else\r\n lsCoords.push(coord);\r\n }\r\n\r\n positions.push(lsCoords);\r\n }\r\n\r\n this.coordinates = positions;\r\n }\r\n}\r\n\r\n/**\r\n * Represents MultiPolygon geometry object\r\n */\r\nexport class MultiPolygon extends Geometry implements turf_helpers.MultiPolygon {\r\n type: \"MultiPolygon\";\r\n coordinates: turf_helpers.Position[][][];\r\n\r\n constructor(coordinates: Coordinate[][][] | CoordinateLike[][][]) {\r\n super();\r\n\r\n this.type = \"MultiPolygon\";\r\n\r\n const positions: turf_helpers.Position[][][] = [];\r\n for (let k = 0; k < coordinates.length; k ++) {\r\n const polygonPaths: turf_helpers.Position[][] = [];\r\n const polygon = coordinates[k];\r\n for (let i = 0; i < polygon.length; i++) {\r\n const ls = polygon[i];\r\n const lsCoords: turf_helpers.Position[] = [];\r\n for (let j = 0; j < ls.length; j++) {\r\n const coord = ls[j];\r\n if (coord instanceof Coordinate)\r\n lsCoords.push([coord.x, coord.y]);\r\n else\r\n lsCoords.push(coord);\r\n }\r\n \r\n polygonPaths.push(lsCoords);\r\n }\r\n\r\n positions.push(polygonPaths);\r\n }\r\n\r\n this.coordinates = positions;\r\n }\r\n}","import { Projection } from '../model/RM2Projection';\r\n\r\nexport class Zoom {\r\n public static fromMbZoom(mbZoom: number): number { return mbZoom; }\r\n public static fromOlZoom(olZoom: number): number { return olZoom + 5.5; }\r\n public static toMbZoom(mbZoom: number): number { return mbZoom; }\r\n public static toOlZoom(rmZoom: number): number { return rmZoom - 5.5; }\r\n}\r\n\r\nexport class CameraChangeOptions implements ICameraChangeOptions {\r\n projection?: Projection;\r\n animate?: boolean;\r\n duration?: number;\r\n padding?: number | PaddingOptions;\r\n\r\n constructor(opts?: ICameraChangeOptions) {\r\n this.projection = opts && opts.projection != undefined ? opts.projection : undefined;\r\n this.animate = opts && opts.animate != undefined ? opts.animate : true;\r\n this.duration = opts && opts.duration != undefined ? opts.duration : 500;\r\n this.padding = opts && opts.padding != undefined ? opts.padding : 50;\r\n }\r\n}\r\n\r\nexport interface ICameraChangeOptions {\r\n projection?: Projection;\r\n animate?: boolean;\r\n duration?: number;\r\n padding?: number | PaddingOptions;\r\n};\r\n\r\nexport class PanOptions extends CameraChangeOptions {\r\n zoom?: number;\r\n bearing?: number;\r\n pitch?: number;\r\n relCenterX?: number;\r\n relCenterY?: number;\r\n minResolution?: number;\r\n\r\n constructor(opts?: IPanOptions) {\r\n super(opts);\r\n this.zoom = opts && opts.zoom != undefined ? opts.zoom : undefined;\r\n this.bearing = opts && opts.bearing != undefined ? opts.bearing : undefined;\r\n this.pitch = opts && opts.pitch != undefined ? opts.pitch : undefined;\r\n this.relCenterX = opts && opts.relCenterX != undefined ? opts.relCenterX : 0.5;\r\n this.relCenterY = opts && opts.relCenterY != undefined ? opts.relCenterY : 0.5;\r\n this.minResolution = opts && opts.minResolution != undefined ? opts.minResolution : 1;\r\n }\r\n}\r\n\r\nexport interface IPanOptions extends ICameraChangeOptions {\r\n zoom?: number;\r\n bearing?: number;\r\n pitch?: number;\r\n relCenterX?: number;\r\n relCenterY?: number;\r\n minResolution?: number;\r\n}\r\n\r\nexport class FitOptions extends CameraChangeOptions {\r\n maxZoom?: number;\r\n bearing?: number;\r\n pitch?: number;\r\n\r\n constructor(opts?: IFitOptions) {\r\n super(opts);\r\n this.maxZoom = opts && opts.maxZoom != undefined ? opts.maxZoom : 16;\r\n this.bearing = opts && opts.bearing != undefined ? opts.bearing : 0;\r\n this.pitch = opts && opts.pitch != undefined ? opts.pitch : 0;\r\n }\r\n}\r\n\r\nexport interface IFitOptions extends ICameraChangeOptions {\r\n maxZoom?: number;\r\n padding?: number | PaddingOptions;\r\n bearing?: number;\r\n pitch?: number;\r\n}\r\n\r\nexport interface PaddingOptions {\r\n top: number;\r\n bottom: number;\r\n left: number;\r\n right: number;\r\n}\r\n","export const PopupCarouselElementId = 'popupCarousel';\r\nexport const PopupCarouselTemplate = (id: number) => `\r\n
\r\n
\r\n {{#features}}\r\n
\r\n
\r\n {{/features}}\r\n
\r\n \r\n
\r\n
  • \r\n \r\n
  • \r\n\r\n
      \r\n {{#features}}\r\n
    1. \r\n {{/features}}\r\n
    \r\n\r\n
  • \r\n \r\n
  • \r\n
    \r\n
    \r\n`;\r\n","export interface IService {\r\n readonly type: ServiceType;\r\n readonly name: string;\r\n readonly options: any;\r\n readonly enabled: boolean;\r\n}\r\n\r\nexport enum ServiceType {\r\n Routing = 'routing',\r\n Nominatim = 'nominatim',\r\n Localization = 'localization'\r\n}\r\n","import * as maplibregl from 'maplibre-gl';\r\n\r\nimport { IPanOptions, PanOptions } from '../model/RM2CameraChangeOptions';\r\nimport { IRM2Event, RM2Event } from '../model/RM2Event';\r\nimport { IPopupOptions } from './RM2PopupOptions';\r\nimport { FeatureCollection, Feature } from '../model/RM2Feature';\r\nimport { CoordinateLike } from '../model/RM2Geometry';\r\nimport { Map } from '../map/RM2Map';\r\nimport { PopupCarouselElementId } from '../templates/popup-templates';\r\nimport { ServiceType } from '../services/RM2Service';\r\nimport { LocalizationService } from '../services/RM2LocalizationService';\r\nimport { Layer } from '../model/RM2Layer';\r\n\r\ndeclare const $: any;\r\n\r\nexport class Popup {\r\n private _map: Map;\r\n\r\n public mbPopup: maplibregl.Popup;\r\n\r\n /**\r\n * Returns position of the popup. Returned value is a numeric array of two ordinates in map's UI projection.\r\n */\r\n public get position(): CoordinateLike { return this.mbPopup.getLngLat().toArray() as CoordinateLike; }\r\n\r\n /**\r\n * Sets position of the popup.\r\n */\r\n public set position(coordinate: CoordinateLike) {\r\n this.mbPopup.setLngLat(coordinate);\r\n if (this._options.panOnPositionChange === true) {\r\n const opts = this._options && this._options.cameraOptions ? this._options.cameraOptions : { animate: true };\r\n this.panTo(opts);\r\n }\r\n }\r\n\r\n protected _content: HTMLElement;\r\n public get content(): HTMLElement { return this._content; }\r\n\r\n protected _options: IPopupOptions;\r\n protected _featureCollection: FeatureCollection;\r\n protected _selectedFeatureId: number;\r\n\r\n public get closesOnClick(): boolean { return this._options.closesOnClick; }\r\n\r\n /** Called on popup open */\r\n public get onOpen(): IRM2Event { return this._onOpen.expose(); }\r\n protected readonly _onOpen = new RM2Event();\r\n\r\n /** Called on popup close */\r\n public get onClose(): IRM2Event { return this._onClose.expose(); }\r\n protected readonly _onClose = new RM2Event();\r\n\r\n /** Called on carousel slide if this popup has a FeatureCollection */\r\n public get onSlide() { return this._onSlide.expose(); }\r\n protected readonly _onSlide = new RM2Event();\r\n\r\n public get featureCollection(): FeatureCollection { return this._featureCollection; }\r\n public get selectedFeature(): Feature { return this._selectedFeatureId != undefined && this._featureCollection != undefined ? this._featureCollection.features[this._selectedFeatureId] : undefined; }\r\n\r\n /** Popup metadata */\r\n public get metadata(): any { return this._metadata; }\r\n private readonly _metadata: any;\r\n\r\n constructor(map: Map, content: HTMLElement, options: IPopupOptions, fc?: FeatureCollection, metadata?: any) {\r\n this._map = map;\r\n this._content = content;\r\n this._options = options;\r\n this._featureCollection = fc;\r\n this._metadata = metadata;\r\n\r\n const ls = this._map.getService(ServiceType.Localization) as LocalizationService;\r\n ls.refresh(content);\r\n\r\n if (fc && fc.length > 0)\r\n this._selectedFeatureId = 0;\r\n\r\n this._map = map;\r\n\r\n const maxWidth = this.getMaxWidthForPage(this._selectedFeatureId);\r\n const isCarousel = fc != undefined && fc.length > 1;\r\n this.mbPopup = new maplibregl.Popup({\r\n closeOnClick: this._options.closesOnClick,\r\n closeButton: this._options.hasCloseButton,\r\n anchor: this._options.anchor,\r\n offset: this._options.offset,\r\n maxWidth: 'calc(' + maxWidth + ' + 10px)'\r\n }).setDOMContent(content);\r\n\r\n if (this._options.addContainer == false) {\r\n if (content.parentElement) {\r\n content.parentElement.style.padding = '0';\r\n content.parentElement.style.background = 'none';\r\n }\r\n else\r\n console.warn('Failed to remove Mapbox popup container.');\r\n }\r\n\r\n // kje unsubscribe?\r\n this.mbPopup.on('close', () => {\r\n this._onClose.trigger();\r\n if (isCarousel) {\r\n const carouselEl = $(`[id^='${PopupCarouselElementId}-']`);\r\n if (carouselEl)\r\n carouselEl.off('slide.bs.carousel', this._handleSlide);\r\n }\r\n });\r\n\r\n this.mbPopup.on('open', () => {\r\n this._onOpen.trigger();\r\n if (isCarousel) {\r\n const carouselEl = $(`[id^='${PopupCarouselElementId}-']`);\r\n if (carouselEl)\r\n carouselEl.on('slide.bs.carousel', this._handleSlide);\r\n }\r\n });\r\n }\r\n\r\n close() {\r\n if (this.mbPopup)\r\n this.mbPopup.remove();\r\n }\r\n\r\n protected setMaxWidth(width: string): void {\r\n this.mbPopup.setMaxWidth(width);\r\n }\r\n\r\n panTo(options?: IPanOptions) {\r\n const metadata = this._map.metadata;\r\n if (metadata.panPopup) {\r\n const opts = new PanOptions(options);\r\n // if (metadata.zoomPopup)\r\n // opts.zoom = this._map.getView().zoom < 12 ? 12 : null;\r\n \r\n // this._map.pan(this.position, opts);\r\n\r\n if (opts.zoom)\r\n this._map.pan(this.position, opts);\r\n else {\r\n // to je ok samo, če je mapa obrnjena proti severu\r\n const el = this.mbPopup.getElement();\r\n if (el) {\r\n const h = el.offsetHeight;\r\n const w = el.offsetWidth;\r\n const point = this._map.project(this.position);\r\n \r\n const topLeftX = point[0] - w / 2;\r\n const topLeftY = point[1] - h;\r\n const topRightX = point[0] + w / 2;\r\n const topRightY = point[1] - h;\r\n const bottomLeftX = point[0] - w / 2;\r\n const bottomLeftY = point[1] + 32; // 32 padding\r\n const bottomRightX = point[0] + w / 2;\r\n const bottomRightY = point[1] + 32; // 32 padding\r\n\r\n // console.log(`h=${h}, w=${w}, top-left=(${topLeftX}, ${topLeftY}), top-right=(${topRightX}, ${topRightY}), bottom-left=(${bottomLeftX}, ${bottomLeftY}), bottom-right=(${bottomRightX}, ${bottomRightY})`)\r\n \r\n const bounds = this._map.getBounds();\r\n const mapSW = bounds.getSouthWest();\r\n const mapSWPixel = this._map.project([mapSW.lng, mapSW.lat]);\r\n const mapNE = bounds.getNorthEast();\r\n const mapNEPixel = this._map.project([mapNE.lng, mapNE.lat]);\r\n \r\n // console.log(`mapSWPixel=${JSON.stringify(mapSWPixel)}, mapNEPixel=${JSON.stringify(mapNEPixel)}`);\r\n\r\n //// preko koordinate\r\n // const topLeftCoord = this._map.unproject([topLeftX, topLeftY]);\r\n // const topRightCoord = this._map.unproject([topRightX, topRightY]);\r\n // const bottomLeftCoord = this._map.unproject([bottomLeftX, bottomLeftY]);\r\n // const bottomRightCoord = this._map.unproject([bottomRightX, bottomRightY]);\r\n \r\n // // deltaX\r\n // let deltaX = topLeftCoord.x - mapSW.lng;\r\n // if (deltaX > 0)\r\n // deltaX = bottomLeftCoord.x - mapSW.lng;\r\n \r\n // if (deltaX > 0) {\r\n // deltaX = topRightCoord.x - mapNE.lng;\r\n // if (deltaX < 0) {\r\n // deltaX = bottomRightCoord.x - mapNE.lng;\r\n // if (deltaX < 0)\r\n // deltaX = 0;\r\n // }\r\n // }\r\n \r\n // // delta Y\r\n // let deltaY = topLeftCoord.y - mapSW.lat;\r\n // if (deltaY > 0)\r\n // deltaY = bottomLeftCoord.y - mapSW.lat;\r\n \r\n // if (deltaY > 0) {\r\n // deltaY = topRightCoord.y - mapNE.lat;\r\n // if (deltaY < 0) {\r\n // deltaY = bottomRightCoord.y - mapNE.lat;\r\n // if (deltaY < 0)\r\n // deltaY = 0;\r\n // }\r\n // }\r\n \r\n //// preko pikslov\r\n // deltaX\r\n let deltaX = topLeftX - mapSWPixel[0];\r\n if (deltaX > 0)\r\n deltaX = bottomLeftX - mapSWPixel[0];\r\n \r\n if (deltaX > 0) {\r\n deltaX = topRightX - mapNEPixel[0];\r\n if (deltaX < 0) {\r\n deltaX = bottomRightX - mapNEPixel[0];\r\n if (deltaX < 0)\r\n deltaX = 0;\r\n }\r\n }\r\n \r\n \r\n\r\n // IA 2022-11-07\r\n let deltaY = 0;\r\n if (topRightY < mapNEPixel[1]) deltaY = topRightY - mapNEPixel[1];\r\n else if (bottomLeftY > mapSWPixel[1]) deltaY = bottomLeftY - mapSWPixel[1];\r\n /* // Prej je bilo spodnje\r\n let deltaY = topLeftY - mapSWPixel[1];\r\n if (deltaY > 0)\r\n deltaY = bottomLeftY - mapSWPixel[1];\r\n \r\n if (deltaY < 0) {\r\n deltaY = topRightY - mapNEPixel[1];\r\n if (deltaY > 0) {\r\n deltaY = bottomRightY - mapNEPixel[1];\r\n if (deltaY > 0)\r\n deltaY = 0;\r\n }\r\n }\r\n */\r\n // console.log(`dX=${deltaX}, dY=${deltaY}`);\r\n \r\n if (deltaX !== 0 || deltaY !== 0) {\r\n if (deltaY < 0)\r\n deltaY -= 50; // padding\r\n \r\n const newSW = this._map.unproject([mapSWPixel[0] + deltaX, mapSWPixel[1] + deltaY]);\r\n const newNE = this._map.unproject([mapNEPixel[0] + deltaX, mapNEPixel[1] + deltaY]);\r\n \r\n // const newBounds: CoordinateLike[] = [[mapSW.lng + deltaX, mapSW.lat + deltaY], [mapNE.lng + deltaX, mapNE.lat + deltaY]];\r\n // this._map.fit(newBounds, { animate: true });\r\n \r\n // this._map.fit([newSW, newNE], { animate: true });\r\n\r\n const newCenter: CoordinateLike = [(newNE.x + newSW.x) / 2, (newNE.y + newSW.y) / 2];\r\n this._map.pan(newCenter, { animate: true });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n slideTo(page: number) {\r\n if (this._featureCollection && page >= 0 && page <= this._featureCollection.length - 1) {\r\n $('.carousel').carousel(page);\r\n this._handleSlide({ to: page });\r\n }\r\n }\r\n\r\n protected getMaxWidthForPage(page: number): string {\r\n const width = page != undefined && this._options.maxWidth.length - 1 >= page ? this._options.maxWidth[page] : this._options.maxWidth[0];\r\n if (width != '-1')\r\n return width;\r\n return null;\r\n }\r\n\r\n protected _handleSlide = (e: any) => {\r\n this._selectedFeatureId = e.to;\r\n const pos = this.selectedFeature.geometry.getCoordinate();\r\n this.position = [pos.x, pos.y];\r\n\r\n this.setMaxWidth(this.getMaxWidthForPage(e.to));\r\n this._onSlide.trigger(e.to);\r\n };\r\n}\r\n","import { IPanOptions, PanOptions } from '../model/RM2CameraChangeOptions';\r\nimport { Projection } from '..';\r\n\r\nexport type PopupAnchor = 'left' | 'top' | 'right' | 'bottom';\r\n\r\nexport class PopupOptions implements IPopupOptions {\r\n projection?: Projection;\r\n panOnOpen?: boolean;\r\n panOnPositionChange?: boolean;\r\n closesOnClick?: boolean;\r\n hasCloseButton?: boolean;\r\n addContainer?: boolean;\r\n anchor?: PopupAnchor;\r\n offset?: [number, number];\r\n maxWidth?: string[];\r\n showMarkerOnMobile?: boolean;\r\n cameraOptions?: IPanOptions;\r\n\r\n constructor(opts?: IPopupOptions) {\r\n this.panOnOpen = true;\r\n this.panOnPositionChange = true;\r\n this.closesOnClick = true;\r\n this.hasCloseButton = true;\r\n this.addContainer = true;\r\n this.anchor = 'bottom';\r\n this.offset = [0, -14];\r\n this.maxWidth = ['320px'];\r\n this.showMarkerOnMobile = document.documentElement.clientWidth <= 575;\r\n this.cameraOptions = new PanOptions(opts ? opts.cameraOptions : null);\r\n\r\n if (opts) {\r\n if (opts.projection != undefined)\r\n this.projection = opts.projection;\r\n \r\n if (opts.panOnOpen != undefined)\r\n this.panOnOpen = opts.panOnOpen;\r\n \r\n if (opts.panOnPositionChange != undefined)\r\n this.panOnPositionChange = opts.panOnPositionChange;\r\n \r\n if (opts.closesOnClick != undefined)\r\n this.closesOnClick = opts.closesOnClick;\r\n \r\n if (opts.hasCloseButton != undefined)\r\n this.hasCloseButton = opts.hasCloseButton;\r\n \r\n if (opts.addContainer != undefined)\r\n this.addContainer = opts.addContainer;\r\n \r\n if (opts.anchor != undefined)\r\n this.anchor = opts.anchor;\r\n \r\n if (opts.offset != undefined)\r\n this.offset = opts.offset;\r\n \r\n if (opts.maxWidth != undefined)\r\n this.maxWidth = opts.maxWidth.slice();\r\n \r\n if (opts.cameraOptions != undefined)\r\n this.cameraOptions = opts.cameraOptions;\r\n }\r\n }\r\n}\r\n\r\nexport interface IPopupOptions {\r\n projection?: Projection;\r\n panOnOpen?: boolean;\r\n panOnPositionChange?: boolean;\r\n closesOnClick?: boolean;\r\n hasCloseButton?: boolean;\r\n addContainer?: boolean;\r\n anchor?: PopupAnchor;\r\n offset?: [number, number];\r\n maxWidth?: string[];\r\n showMarkerOnMobile?: boolean;\r\n cameraOptions?: IPanOptions;\r\n}\r\n\r\nexport class CarouselPopupOptions extends PopupOptions implements ICarouselPopupOptions {\r\n selectedItem?: number;\r\n\r\n constructor(opts?: ICarouselPopupOptions) {\r\n super(opts);\r\n this.selectedItem = 0;\r\n\r\n if (opts) {\r\n if (opts.selectedItem != undefined)\r\n this.selectedItem = opts.selectedItem;\r\n }\r\n }\r\n}\r\n\r\nexport interface ICarouselPopupOptions extends IPopupOptions {\r\n selectedItem?: number;\r\n}\r\n","export enum MapControlType {\r\n Legend = 'legend',\r\n FullScreen = 'fullscreen',\r\n Zoom = 'zoom',\r\n Basemaps = 'basemaps',\r\n Attribution = 'attribution',\r\n Geolocation = 'geolocation',\r\n Routing = 'routing',\r\n MapPicker = 'map-picker',\r\n PrometSi = 'promet-si',\r\n NAP = 'nap'\r\n}\r\n\r\nexport interface ControlData {\r\n type: MapControlType;\r\n options: any;\r\n enabled?: boolean;\r\n position?: 'top-right' | 'bottom-right' | 'bottom-left' | 'top-left';\r\n}\r\n","import { Projection, Geometry } from '../';\r\nimport { ICameraChangeOptions, CameraChangeOptions, IPanOptions, IFitOptions, PanOptions, FitOptions } from '../model/RM2CameraChangeOptions';\r\nimport { Feature } from '../model/RM2Feature';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Utils } from '../services/RM2StaticService';\r\n\r\nexport abstract class HighlightOptions implements IHighlightOptions {\r\n projection?: Projection;\r\n pan?: boolean;\r\n // feature?: Feature;\r\n cameraOptions?: ICameraChangeOptions;\r\n\r\n public static get HighlightTypePropertyName(): string { return 'rmHighlightType'; }\r\n\r\n // Applies the option properties to the feature and returns the feature properties\r\n public abstract applyOptionsToFeatureProperties(ft?: Feature): any;\r\n\r\n public constructor(opts?: IHighlightOptions) {\r\n this.projection = opts && opts.projection != undefined ? opts.projection : undefined;\r\n this.pan = opts && opts.pan != undefined ? opts.pan : true;\r\n this.cameraOptions = new CameraChangeOptions(opts ? opts.cameraOptions : null);\r\n }\r\n\r\n public applyFeatureHighlightOptions(opts: IFeatureHighlightOptions) {\r\n if (opts) {\r\n for (let fOpt in opts) {\r\n // if (fOpt in this)\r\n this[fOpt] = opts[fOpt];\r\n }\r\n }\r\n }\r\n\r\n public static fromGeoJson(geoJson: any): HighlightOptions {\r\n // TODO: to ni ok\r\n if ('icon' in geoJson)\r\n return new MarkerOptions(geoJson);\r\n else if ('fillColor' in geoJson)\r\n return new PolygonOptions(geoJson);\r\n else if ('lineColor' in geoJson)\r\n return new LineOptions(geoJson);\r\n else if ('color' in geoJson)\r\n return new CircleOptions(geoJson);\r\n }\r\n\r\n public static highlightTypeToString(type: HighlightType): string {\r\n return HighlightType[type].toString().toLowerCase();\r\n }\r\n}\r\n \r\nexport interface IHighlightOptions {\r\n projection?: Projection;\r\n pan?: boolean;\r\n // feature?: Feature;\r\n cameraOptions?: ICameraChangeOptions;\r\n}\r\n\r\nexport enum HighlightType {\r\n Marker = 0,\r\n Polygon = 1,\r\n Line = 3,\r\n Circle = 4\r\n}\r\n\r\nexport class FeatureHighlightOptions implements IFeatureHighlightOptions {\r\n projection?: Projection;\r\n pan?: boolean;\r\n cameraOptions?: ICameraChangeOptions;\r\n\r\n constructor(opts?: IFeatureHighlightOptions) {\r\n if (opts) {\r\n for (let prop in opts)\r\n this[prop] = opts[prop];\r\n }\r\n\r\n this.projection = opts && opts.projection != undefined ? opts.projection : undefined;\r\n this.pan = opts && opts.pan != undefined ? opts.pan : true;\r\n this.cameraOptions = new CameraChangeOptions(opts ? opts.cameraOptions : null);\r\n }\r\n}\r\n\r\nexport interface IFeatureHighlightOptions {\r\n projection?: Projection;\r\n pan?: boolean;\r\n cameraOptions?: ICameraChangeOptions;\r\n}\r\n\r\nexport class MarkerOptions extends HighlightOptions implements IMarkerOptions {\r\n icon?: string;\r\n anchor?: string;\r\n size?: number;\r\n offset?: number[];\r\n zindex?: number;\r\n cameraOptions?: IPanOptions;\r\n\r\n public static get IconPropertyName(): string { return 'icon'; }\r\n public static get AnchorPropertyName(): string { return 'anchor'; }\r\n public static get SizePropertyName(): string { return 'size'; }\r\n public static get OffsetPropertyName(): string { return 'offset'; }\r\n public static get ZIndexKeyPropertyName(): string { return 'zindex'; }\r\n\r\n constructor(opts?: IMarkerOptions) {\r\n super(opts);\r\n // this.icon = opts && opts.icon != undefined ? opts.icon : 'marker_E2001A-128';\r\n this.icon = opts && opts.icon != undefined ? opts.icon : 'marker_B-48';\r\n this.anchor = opts && opts.anchor != undefined ? opts.anchor : 'center';\r\n this.size = opts && opts.size != undefined ? opts.size : 1;\r\n this.offset = opts && opts.offset != undefined ? opts.offset : [0, -35];\r\n this.zindex = opts && opts.zindex != undefined ? opts.zindex : 0;\r\n this.cameraOptions = new PanOptions(opts ? opts.cameraOptions : null);\r\n }\r\n\r\n public applyOptionsToFeatureProperties(ft?: Feature): any {\r\n const type = HighlightOptions.highlightTypeToString(HighlightType.Marker);\r\n if (ft) {\r\n if (ft.properties.id == null)\r\n ft.properties.id = Guid.create().toString();\r\n \r\n if (ft.properties[MarkerOptions.IconPropertyName] == null)\r\n ft.properties[MarkerOptions.IconPropertyName] = this.icon;\r\n \r\n if (ft.properties[MarkerOptions.AnchorPropertyName] == null)\r\n ft.properties[MarkerOptions.AnchorPropertyName] = this.anchor;\r\n \r\n if (ft.properties[MarkerOptions.SizePropertyName] == null)\r\n ft.properties[MarkerOptions.SizePropertyName] = this.size;\r\n \r\n if (ft.properties[MarkerOptions.OffsetPropertyName] == null)\r\n ft.properties[MarkerOptions.OffsetPropertyName] = this.offset;\r\n \r\n if (ft.properties[MarkerOptions.ZIndexKeyPropertyName] == null)\r\n ft.properties[MarkerOptions.ZIndexKeyPropertyName] = this.zindex;\r\n \r\n ft.properties[HighlightOptions.HighlightTypePropertyName] = type;\r\n return ft.properties;\r\n }\r\n else {\r\n const props = { id: Guid.create().toString() };\r\n props[MarkerOptions.IconPropertyName] = this.icon;\r\n props[MarkerOptions.AnchorPropertyName] = this.anchor;\r\n props[MarkerOptions.SizePropertyName] = this.size;\r\n props[MarkerOptions.OffsetPropertyName] = this.offset;\r\n props[MarkerOptions.ZIndexKeyPropertyName] = this.zindex;\r\n props[HighlightOptions.HighlightTypePropertyName] = type;\r\n return props;\r\n }\r\n }\r\n}\r\n\r\nexport interface IMarkerOptions extends IHighlightOptions {\r\n icon?: string;\r\n anchor?: string;\r\n size?: number;\r\n offset?: number[];\r\n zindex?: number;\r\n cameraOptions?: IPanOptions;\r\n}\r\n\r\nexport class PolygonOptions extends HighlightOptions implements IPolygonOptions {\r\n fillColor?: string;\r\n fillOpacity?: number;\r\n outlineColor?: string;\r\n outlineWidth?: number;\r\n centroid?: Geometry;\r\n cameraOptions?: IFitOptions;\r\n\r\n public static get FillColorPropertyName(): string { return 'fillColor'; }\r\n public static get FillOpacityPropertyName(): string { return 'fillOpacity'; }\r\n public static get OutlineColorPropertyName(): string { return 'outlineColor'; }\r\n public static get OutlineWidthPropertyName(): string { return 'outlineWidth'; }\r\n\r\n constructor(opts?: IPolygonOptions) {\r\n super(opts);\r\n this.fillColor = opts && opts.fillColor != undefined ? opts.fillColor : '#639FFF';\r\n this.fillOpacity = opts && opts.fillOpacity != undefined ? opts.fillOpacity : 0.4;\r\n this.outlineColor = opts && opts.outlineColor != undefined ? opts.outlineColor : '#FFFFFF';\r\n this.outlineWidth = opts && opts.outlineWidth != undefined ? opts.outlineWidth : 5;\r\n this.cameraOptions = new FitOptions(opts ? opts.cameraOptions : null);\r\n }\r\n\r\n public applyOptionsToFeatureProperties(ft: Feature): any {\r\n const type = HighlightOptions.highlightTypeToString(HighlightType.Polygon);\r\n if (ft) {\r\n if (ft.properties.id == null)\r\n ft.properties.id = Guid.create().toString();\r\n \r\n if (ft.properties[PolygonOptions.FillColorPropertyName] == null)\r\n ft.properties[PolygonOptions.FillColorPropertyName] = this.fillColor;\r\n \r\n if (ft.properties[PolygonOptions.FillOpacityPropertyName] == null)\r\n ft.properties[PolygonOptions.FillOpacityPropertyName] = this.fillOpacity;\r\n \r\n if (ft.properties[PolygonOptions.OutlineColorPropertyName] == null)\r\n ft.properties[PolygonOptions.OutlineColorPropertyName] = this.outlineColor;\r\n \r\n if (ft.properties[PolygonOptions.OutlineWidthPropertyName] == null)\r\n ft.properties[PolygonOptions.OutlineWidthPropertyName] = this.outlineWidth;\r\n \r\n ft.properties[HighlightOptions.HighlightTypePropertyName] = type;\r\n return ft.properties;\r\n }\r\n else {\r\n const props = { id: Guid.create().toString() };\r\n props[PolygonOptions.FillColorPropertyName] = this.fillColor;\r\n props[PolygonOptions.FillOpacityPropertyName] = this.fillOpacity;\r\n props[PolygonOptions.OutlineColorPropertyName] = this.outlineColor;\r\n props[HighlightOptions.HighlightTypePropertyName] = type;\r\n return props;\r\n }\r\n }\r\n}\r\n\r\nexport interface IPolygonOptions extends IHighlightOptions {\r\n fillColor?: string;\r\n fillOpacity?: number;\r\n outlineColor?: string;\r\n outlineWidth?: number;\r\n centroid?: Geometry;\r\n cameraOptions?: IFitOptions;\r\n}\r\n\r\nexport class LineOptions extends HighlightOptions implements ILineOptions {\r\n lineColor?: string;\r\n lineOpacity?: number;\r\n lineWidth?: number;\r\n lineType?: LineType;\r\n lineJoin?: string;\r\n lineCap?: string;\r\n cameraOptions?: IFitOptions;\r\n\r\n public static get LineColorPropertyName(): string { return 'lineColor'; }\r\n public static get LineOpacityPropertyName(): string { return 'lineOpacity'; }\r\n public static get LineWidthPropertyName(): string { return 'lineWidth'; }\r\n public static get LineTypePropertyName(): string { return 'lineType'; }\r\n\r\n constructor(opts?: ILineOptions) {\r\n super(opts);\r\n this.lineColor = opts && opts.lineColor != undefined ? opts.lineColor : '#639FFF';\r\n this.lineOpacity = opts && opts.lineOpacity != undefined ? opts.lineOpacity : 1;\r\n this.lineWidth = opts && opts.lineWidth != undefined ? opts.lineWidth : 8;\r\n this.lineType = opts && opts.lineType != undefined ? opts.lineType : LineType.Solid;\r\n this.lineJoin = opts && opts.lineJoin != undefined ? opts.lineJoin : 'round';\r\n this.lineCap = opts && opts.lineCap != undefined ? opts.lineCap : 'round';\r\n this.cameraOptions = new FitOptions(opts ? opts.cameraOptions : null);\r\n }\r\n\r\n public applyOptionsToFeatureProperties(ft: Feature): any {\r\n const type = HighlightOptions.highlightTypeToString(HighlightType.Line);\r\n if (ft) {\r\n if (ft.properties.id == null)\r\n ft.properties.id = Guid.create().toString();\r\n \r\n if (ft.properties[LineOptions.LineColorPropertyName] == null)\r\n ft.properties[LineOptions.LineColorPropertyName] = this.lineColor;\r\n \r\n if (ft.properties[LineOptions.LineOpacityPropertyName] == null)\r\n ft.properties[LineOptions.LineOpacityPropertyName] = this.lineOpacity;\r\n \r\n if (ft.properties[LineOptions.LineWidthPropertyName] == null)\r\n ft.properties[LineOptions.LineWidthPropertyName] = this.lineWidth;\r\n \r\n if (ft.properties[LineOptions.LineTypePropertyName] == null)\r\n ft.properties[LineOptions.LineTypePropertyName] = LineOptions.lineTypeToString(this.lineType);\r\n else if (typeof ft.properties[LineOptions.LineTypePropertyName] === 'number')\r\n ft.properties[LineOptions.LineTypePropertyName] = LineOptions.lineTypeToString(ft.properties[LineOptions.LineTypePropertyName]);\r\n \r\n ft.properties[HighlightOptions.HighlightTypePropertyName] = type;\r\n return ft.properties;\r\n }\r\n else {\r\n const props = { id: Guid.create().toString() };\r\n props[LineOptions.LineColorPropertyName] = this.lineColor;\r\n props[LineOptions.LineOpacityPropertyName] = this.lineOpacity;\r\n props[LineOptions.LineWidthPropertyName] = this.lineWidth;\r\n props[LineOptions.LineTypePropertyName] = LineOptions.lineTypeToString(this.lineType);\r\n props[HighlightOptions.HighlightTypePropertyName] = type;\r\n return props;\r\n }\r\n }\r\n\r\n public static lineTypeToString(type: LineType): string {\r\n return LineType[type].toString().toLowerCase();\r\n }\r\n}\r\n\r\nexport interface ILineOptions extends IHighlightOptions {\r\n lineColor?: string;\r\n lineOpacity?: number;\r\n lineWidth?: number;\r\n lineType?: LineType;\r\n lineJoin?: string;\r\n lineCap?: string;\r\n cameraOptions?: IFitOptions;\r\n}\r\n\r\nexport enum LineType {\r\n None = 0,\r\n Solid = 1,\r\n Dotted = 2,\r\n Dashed = 3,\r\n LongDashed = 4,\r\n DashDotted = 5,\r\n LongDashDotted = 6,\r\n Custom = 7\r\n}\r\n\r\nexport class CircleOptions extends HighlightOptions implements ICircleOptions {\r\n color?: string;\r\n opacity?: number;\r\n radius?: number;\r\n radiusUnitType?: CircleRadiusUnitType;\r\n outlineColor?: string;\r\n outlineWidth?: number;\r\n cameraOptions?: IPanOptions;\r\n\r\n public static get CircleColorPropertyName(): string { return 'color'; }\r\n public static get CircleOpacityPropertyName(): string { return 'opacity'; }\r\n public static get CircleRadiusPropertyName(): string { return 'radius'; }\r\n public static get CircleRadiusUnitTypePropertyName(): string { return 'radiusUnitType'; }\r\n public static get OutlineColorPropertyName(): string { return 'outlineColor'; }\r\n public static get OutlineWidthPropertyName(): string { return 'outlineWidth'; }\r\n\r\n constructor(opts?: ICircleOptions) {\r\n super(opts);\r\n this.color = opts && opts.color != undefined ? opts.color : '#639FFF';\r\n this.opacity = opts && opts.opacity != undefined ? opts.opacity : 1;\r\n this.radius = opts && opts.radius != undefined ? opts.radius : 7;\r\n this.radiusUnitType = opts && opts.radiusUnitType != undefined ? opts.radiusUnitType : CircleRadiusUnitType.Pixels;\r\n this.outlineColor = opts && opts.outlineColor != undefined ? opts.outlineColor : '#FFFFFF';\r\n this.outlineWidth = opts && opts.outlineWidth != undefined ? opts.outlineWidth : 2;\r\n this.cameraOptions = new PanOptions(opts ? opts.cameraOptions : null)\r\n }\r\n\r\n public applyOptionsToFeatureProperties(ft: Feature): any {\r\n const type = HighlightOptions.highlightTypeToString(HighlightType.Circle);\r\n if (ft) {\r\n if (ft.properties.id == null)\r\n ft.properties.id = Guid.create().toString();\r\n \r\n if (ft.properties[CircleOptions.CircleColorPropertyName] == null)\r\n ft.properties[CircleOptions.CircleColorPropertyName] = this.color;\r\n \r\n if (ft.properties[CircleOptions.CircleOpacityPropertyName] == null)\r\n ft.properties[CircleOptions.CircleOpacityPropertyName] = this.opacity;\r\n \r\n if (ft.properties[CircleOptions.CircleRadiusPropertyName] == null)\r\n ft.properties[CircleOptions.CircleRadiusPropertyName] = this.radius;\r\n \r\n if (ft.properties[CircleOptions.CircleRadiusUnitTypePropertyName] == null)\r\n ft.properties[CircleOptions.CircleRadiusUnitTypePropertyName] = CircleOptions.circleRadiusTypeToString(this.radiusUnitType);\r\n else if (typeof ft.properties[CircleOptions.CircleRadiusUnitTypePropertyName] === 'number')\r\n ft.properties[CircleOptions.CircleRadiusUnitTypePropertyName] = CircleOptions.circleRadiusTypeToString(ft.properties[CircleOptions.CircleRadiusUnitTypePropertyName]);\r\n \r\n if (ft.properties[CircleOptions.OutlineColorPropertyName] == null)\r\n ft.properties[CircleOptions.OutlineColorPropertyName] = this.outlineColor;\r\n \r\n if (ft.properties[CircleOptions.OutlineWidthPropertyName] == null)\r\n ft.properties[CircleOptions.OutlineWidthPropertyName] = this.outlineWidth;\r\n \r\n ft.properties[HighlightOptions.HighlightTypePropertyName] = type;\r\n return ft.properties;\r\n }\r\n else {\r\n const props = { id: Guid.create().toString() };\r\n props[CircleOptions.CircleColorPropertyName] = this.color;\r\n props[CircleOptions.CircleOpacityPropertyName] = this.opacity;\r\n props[CircleOptions.CircleRadiusPropertyName] = this.radius;\r\n props[CircleOptions.CircleRadiusUnitTypePropertyName] = CircleOptions.circleRadiusTypeToString(this.radiusUnitType);\r\n props[CircleOptions.OutlineColorPropertyName] = this.outlineColor;\r\n props[CircleOptions.OutlineWidthPropertyName] = this.outlineWidth;\r\n props[HighlightOptions.HighlightTypePropertyName] = type;\r\n return props;\r\n }\r\n }\r\n\r\n public static circleRadiusTypeToString(type: CircleRadiusUnitType): string {\r\n return CircleRadiusUnitType[type].toString().toLowerCase();\r\n }\r\n}\r\n\r\nexport interface ICircleOptions extends IHighlightOptions {\r\n color?: string;\r\n opacity?: number;\r\n radius?: number;\r\n radiusUnitType?: CircleRadiusUnitType;\r\n outlineColor?: string;\r\n outlineWidth?: number;\r\n cameraOptions?: IPanOptions;\r\n}\r\n\r\nexport enum CircleRadiusUnitType {\r\n Pixels = 0//,\r\n // Meters = 1\r\n}\r\n","/*\r\nnotes\r\n- Feature je klasičen GIS feature z geometry in fields. Implementacija ovije OL3 feature pri čemer je OL3 interna geometrija shranjena\r\n v fieldu __geom, referenca na this feature pa v fieldu __feature. Ta dva fielda se smatrata kot interna.\r\n- FeatureCollection je storage za features pri čemer se features interno hranijo v arrayu (_features), dodtno pa je vzpostavljen index po\r\n id-ju (_idIndex) ter prostorski index (_spatialIndex)\r\n\r\ntodo\r\n- testiranje\r\n- JSDdoc API dokumentacija\r\n- Feature - razmisliti in implementirati kako globoko iti v featureSchema. Ustrezno dopolnit FieldInfo (maxLength, ...)\r\n- Feature - sinhronizacija med feature in olFeature geometrijo\r\n- FeatureCollection - metode za dodajanje, odstranjevanje (add, remove, clean, ...)\r\n- FeatureCollection - trenutno se za spatialIndex uporablja RBush. Opcija bi bila tudi JSTS-jev Quadtree a so prvi testi pokazali, da je slabši.\r\n*/\r\n\r\nimport RBush from 'rbush';\r\n\r\nimport { Guid } from \"guid-typescript\";\r\n\r\nimport { Geometry, Envelope, Coordinate } from './RM2Geometry';\r\n\r\n/**\r\n * FieldInfo interface.\r\n */\r\nexport interface FieldInfo {\r\n name: string;\r\n type: string;\r\n}\r\n\r\n/**\r\n * Feature object.\r\n */\r\nexport class Feature {\r\n private _id: string;\r\n\r\n // public get id(): string { return this._id; }\r\n\r\n type: 'Feature' = 'Feature';\r\n geometry: Geometry;\r\n properties: T;\r\n\r\n // TODO: properties.id v id\r\n constructor(properties?: T, geometry?: Geometry) {\r\n this._id = Guid.create().toString();\r\n \r\n this.setProperties(properties ? properties : Object.create({}));\r\n if (geometry)\r\n this.geometry = geometry;\r\n }\r\n\r\n getKeys() {\r\n const keys = [];\r\n for (let key in this.properties)\r\n keys.push(key);\r\n \r\n return keys;\r\n }\r\n\r\n // TODO: podpri jsonpath\r\n getField(key: string): any {\r\n if (key in this.properties)\r\n return this.properties[key];\r\n else\r\n return undefined;\r\n }\r\n\r\n setField(key: string, value: any) {\r\n if (this.properties == null)\r\n this.properties = Object.create({});\r\n \r\n this.properties[key] = value;\r\n }\r\n\r\n hasProperty(key: string): boolean {\r\n return this.properties[key] != undefined;\r\n }\r\n\r\n getProperties(): T {\r\n return this.properties;\r\n }\r\n\r\n setProperties(properties: T) {\r\n this.properties = properties;\r\n }\r\n\r\n getInternalId() {\r\n return this._id;\r\n }\r\n\r\n setInternalId(id: string) {\r\n this._id = id;\r\n }\r\n\r\n public clone(): Feature {\r\n const ft = new Feature();\r\n ft.properties = Object.assign({}, this.properties); // TODO: clone funkcija za properties\r\n ft.geometry = this.geometry.clone();\r\n return ft;\r\n }\r\n\r\n /**\r\n * Static helper function for parsing GeoJSON\r\n */\r\n public static fromGeoJson(json: object | string): Feature {\r\n const geoJson: any = typeof json == 'string' ? JSON.parse(json as string) : json;\r\n const ft = new Feature();\r\n if (geoJson.properties)\r\n ft.properties = geoJson.properties;\r\n \r\n if (geoJson.geometry)\r\n ft.geometry = Geometry.fromGeoJson(geoJson.geometry);\r\n\r\n return ft;\r\n }\r\n\r\n public static toGeoJson(instance: Feature): any {\r\n const ft = {\r\n type: instance.type,\r\n properties: Object.assign({}, instance.properties),\r\n geometry: instance.geometry ? Geometry.toGeoJson(instance.geometry) : {}\r\n };\r\n\r\n return ft;\r\n }\r\n\r\n /**\r\n * Helper function for converting to GeoJSON\r\n */\r\n public toGeoJson(): any {\r\n const ft = {\r\n type: this.type,\r\n properties: this.getProperties(),\r\n geometry: this.geometry ? Geometry.toGeoJson(this.geometry) : {}\r\n };\r\n\r\n delete ft.properties['geometry'];\r\n return ft;\r\n\r\n // const gj: any = {\r\n // type: this._type,\r\n // properties: this._properties\r\n // };\r\n\r\n // if (this.geometry)\r\n // gj.geometry = Geometry.toGeoJson(this._geometry);\r\n \r\n // return gj;\r\n\r\n\r\n\r\n\r\n // if (this._olFeature) {\r\n // const gjf = Feature._formatGeoJSON.writeFeatureObject(this._olFeature) as any;\r\n // if (this.geometry && !gjf.geometry) {\r\n // gjf.geometry = Geometry.toGeoJson(this.geometry);\r\n // // ce layer ni na karti od ol ne dobi geometrija!\r\n // }\r\n // return gjf;\r\n // }\r\n // return undefined;\r\n }\r\n\r\n /**\r\n * Helper function for stringifying GeoJSON\r\n */\r\n public toGeoJsonString(): string {\r\n return JSON.stringify(this.toGeoJson());\r\n }\r\n\r\n public static fromMb(mbFt: GeoJSON.Feature): Feature {\r\n const ft = new Feature(mbFt.id ? mbFt.id.toString() : null);\r\n ft.setProperties(mbFt.properties as any);\r\n ft.geometry = Geometry.fromGeoJson(mbFt.geometry);\r\n\r\n return ft;\r\n }\r\n}\r\n\r\n/**\r\n * FeatureCollection object.\r\n */\r\nexport class FeatureCollection {\r\n type: 'FeatureCollection' = 'FeatureCollection';\r\n crs?: Crs;\r\n features: Array>;\r\n properties?: M;\r\n bbox?: [number, number, number, number];\r\n\r\n private _idIndex: { [code: string]: Feature; } = {};\r\n private _spatialIndex: any;\r\n\r\n /**\r\n * Creates an instance of FeatureCollection.\r\n */\r\n public constructor(features?: Feature[], properties?: any) {\r\n if (features)\r\n this.features = features.slice();\r\n else\r\n this.features = [];\r\n \r\n if (properties)\r\n this.properties = Object.assign({}, properties);\r\n else\r\n this.properties = {} as M;\r\n\r\n this.features.forEach(x => this._idIndex[x.getInternalId()] = x);\r\n this._spatialIndex = new RBush();\r\n \r\n const items = new Array(this.features.length);\r\n this.features.forEach((x, i) => {\r\n if (x.geometry) {\r\n const envelope = x.geometry.getEnvelopeInternal();\r\n items[i] = {\r\n minX: envelope.minx,\r\n minY: envelope.miny,\r\n maxX: envelope.maxx,\r\n maxY: envelope.maxy,\r\n value: x\r\n };\r\n }\r\n else {\r\n items[i] = {\r\n minX: +Infinity,\r\n minY: +Infinity,\r\n maxX: -Infinity,\r\n maxY: -Infinity,\r\n value: x\r\n }\r\n }\r\n });\r\n this._spatialIndex.load(items); \r\n }\r\n\r\n public forEach(callbackfn: (value: Feature, index: number, array: Feature[]) => void, thisArg?: any): void {\r\n if (this.features)\r\n this.features.forEach(callbackfn, thisArg);\r\n }\r\n\r\n /**\r\n * Returns number of features in the collection.\r\n */\r\n public get length(): number {\r\n return this.features.length;\r\n }\r\n\r\n /**\r\n * Returns all features in the collection.\r\n */\r\n public getAll(): Feature[] {\r\n return this.features.slice();\r\n }\r\n\r\n /**\r\n * Gets feature by its id.\r\n */\r\n public getById(id: string): Feature {\r\n return this._idIndex[id];\r\n }\r\n\r\n /**\r\n * Gets feature by its value.\r\n */\r\n public getByProperty(property: string, value: any): Feature {\r\n return this.features.find(ft => ft.getField(property) == value);\r\n }\r\n\r\n /**\r\n * Gets the first feature in the collection.\r\n */\r\n public get first(): Feature {\r\n if (this.features && this.features.length > 0)\r\n return this.features[0];\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Gets the last feature in the collection.\r\n */\r\n public get last(): Feature {\r\n if (this.features && this.features.length > 0)\r\n return this.features[this.features.length - 1];\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Sets the CRS code of this collection\r\n */\r\n public setCrsCode(code: string) {\r\n if (this.getCrsCode() == undefined)\r\n this.crs = new Crs(code);\r\n else\r\n this.crs.properties.name = code;\r\n }\r\n\r\n /**\r\n * Gets the CRS code of this collection\r\n */\r\n public getCrsCode(): string {\r\n if (this.crs && this.crs.properties && this.crs.properties.name)\r\n return this.crs.properties.name;\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Gets features by geograpic area defined by given envelope.\r\n */\r\n public getByEnvelope(envelope: Envelope): Feature[] {\r\n const items = this._spatialIndex.search({\r\n minX: envelope.minx,\r\n minY: envelope.miny,\r\n maxX: envelope.maxx,\r\n maxY: envelope.maxy\r\n });\r\n return items.map(x => x.value);\r\n }\r\n\r\n /**\r\n * Gets features by geograpic location defined by given cooridnate.\r\n */\r\n public getByCoordinate(coordinate: Coordinate): Feature[] {\r\n return this.getByEnvelope(Envelope.fromCoordinate(coordinate));\r\n }\r\n\r\n public static fromMb(mbFc: GeoJSON.FeatureCollection): FeatureCollection {\r\n return new FeatureCollection(mbFc.features.map(ft => Feature.fromMb(ft)));\r\n }\r\n\r\n /**\r\n * Static helper function for parsing GeoJSON\r\n */\r\n public static fromGeoJson(json: object | string): FeatureCollection {\r\n return FeatureCollection.fromGeoJsonTyped(json);\r\n }\r\n\r\n public static fromGeoJsonTyped(json: object | string): FeatureCollection {\r\n const geoJson: any = typeof json == 'string' ? JSON.parse(json as string) : json;\r\n const ftColl = new FeatureCollection();\r\n\r\n if (geoJson.crs)\r\n ftColl.crs = geoJson.crs;\r\n\r\n if (geoJson.properties)\r\n ftColl.properties = geoJson.properties;\r\n \r\n if (geoJson.bbox)\r\n ftColl.bbox = geoJson.bbox;\r\n\r\n if (geoJson.features && Array.isArray(geoJson.features))\r\n geoJson.features.forEach(f => ftColl.features.push(Feature.fromGeoJson(f)));\r\n\r\n return ftColl;\r\n }\r\n\r\n /**\r\n * Helper function for converting to GeoJSON\r\n */\r\n public toGeoJson(): any {\r\n let copy: any = {};\r\n Object.assign(copy, this);\r\n delete copy._spatialIndex;\r\n delete copy._idIndex;\r\n copy.features = [];\r\n this.features.forEach(ft => copy.features.push(ft.toGeoJson()));\r\n\r\n return copy;\r\n }\r\n\r\n /**\r\n * Helper function for stringifying GeoJSON\r\n */\r\n public toGeoJsonString(): string {\r\n return JSON.stringify(this.toGeoJson());\r\n }\r\n\r\n /**\r\n * Sets the specified key's property\r\n */\r\n public setProperty(key: string, value: any) {\r\n if (this.properties == undefined)\r\n this.properties = {} as any;\r\n this.properties[key] = value;\r\n }\r\n}\r\n\r\nexport class Crs {\r\n type: string;\r\n properties: CrsProperties;\r\n\r\n constructor(crsCode: string) {\r\n this.type = 'name';\r\n this.properties = new CrsProperties(crsCode);\r\n }\r\n}\r\n\r\nexport class CrsProperties {\r\n name: string;\r\n\r\n constructor(name: string) {\r\n this.name = name;\r\n }\r\n}\r\n","import { IService, ServiceType } from './RM2Service';\r\nimport { CoordinateLike, Geometry, Envelope, Coordinate } from '../model/RM2Geometry';\r\nimport { FeatureCollection } from '../model/RM2Feature';\r\nimport { QueryResult, QueryResultItem, Projection } from '..';\r\n\r\nexport class NominatimServiceOptions implements INominatimServiceOptions {\r\n queryUrl?: string;\r\n query_v2Url?: string;\r\n query_v3Url?: string; // nov geocoding za Promet+\r\n reverseGeocodingUrl?: string;\r\n GeocodeLocQueryUrl?: string;\r\n GeocodeLocReverseUrl?: string;\r\n projection?: string;\r\n requestsTimeoutMs?: number;\r\n\r\n constructor(opts?: INominatimServiceOptions) {\r\n this.projection = 'EPSG:4326';\r\n this.requestsTimeoutMs = 5000;\r\n\r\n if (opts) {\r\n if (opts.queryUrl != undefined)\r\n this.queryUrl = opts.queryUrl;\r\n \r\n if (opts.query_v2Url != undefined)\r\n this.query_v2Url = opts.query_v2Url;\r\n \r\n if (opts.query_v3Url != undefined)\r\n this.query_v3Url = opts.query_v3Url;\r\n\r\n if (opts.reverseGeocodingUrl != undefined)\r\n this.reverseGeocodingUrl = opts.reverseGeocodingUrl;\r\n\r\n if (opts.GeocodeLocQueryUrl != undefined)\r\n this.GeocodeLocQueryUrl = opts.GeocodeLocQueryUrl;\r\n\r\n if (opts.GeocodeLocReverseUrl != undefined)\r\n this.GeocodeLocReverseUrl = opts.GeocodeLocReverseUrl;\r\n \r\n if (opts.projection != undefined)\r\n this.projection = opts.projection;\r\n \r\n if (opts.requestsTimeoutMs != undefined)\r\n this.requestsTimeoutMs = opts.requestsTimeoutMs;\r\n }\r\n }\r\n}\r\n\r\nexport interface INominatimServiceOptions {\r\n queryUrl?: string;\r\n query_v2Url?: string;\r\n query_v3Url?: string; // nov geocoding za Promet+\r\n reverseGeocodingUrl?: string;\r\n GeocodeLocQueryUrl?: string;\r\n GeocodeLocReverseUrl?: string;\r\n projection?: string;\r\n requestsTimeoutMs?: number;\r\n}\r\n\r\nexport class QueryOptions implements IQueryOptions {\r\n pageSize?: number;\r\n page?: number;\r\n lang?: string;\r\n\r\n constructor(opts?: IQueryOptions) {\r\n this.pageSize = 5;\r\n this.page = 0;\r\n\r\n if (opts) {\r\n if (opts.pageSize != undefined)\r\n this.pageSize = opts.pageSize;\r\n \r\n if (opts.page != undefined)\r\n this.page = opts.page;\r\n \r\n if (opts.lang != undefined)\r\n this.lang = opts.lang;\r\n }\r\n }\r\n}\r\n\r\nexport interface IQueryOptions {\r\n pageSize?: number;\r\n page?: number;\r\n lang?: string;\r\n}\r\n\r\nexport class ReverseGeocodingOptions implements IReverseGeocodingOptions {\r\n pageSize?: number;\r\n\r\n constructor(opts?: IQueryOptions) {\r\n this.pageSize = 5;\r\n\r\n if (opts) {\r\n if (opts.pageSize != undefined)\r\n this.pageSize = opts.pageSize;\r\n }\r\n }\r\n}\r\n\r\nexport interface IReverseGeocodingOptions {\r\n pageSize?: number;\r\n}\r\n\r\nexport class NominatimService implements IService {\r\n\r\n public readonly type = ServiceType.Nominatim;\r\n public readonly name: string;\r\n public readonly options: INominatimServiceOptions;\r\n public readonly enabled: boolean = true;\r\n\r\n public constructor(name: string, options: INominatimServiceOptions) {\r\n this.name = name;\r\n this.options = new NominatimServiceOptions(options);\r\n }\r\n\r\n public reverse(coordinate: CoordinateLike, options?: IReverseGeocodingOptions): Promise> {\r\n return new Promise((res, rej) => {\r\n if (this.options.reverseGeocodingUrl) {\r\n options = new ReverseGeocodingOptions(options);\r\n const url = `${this.options.reverseGeocodingUrl}?x=${coordinate[0]}&y=${coordinate[1]}&pagesize=${options.pageSize}`;\r\n \r\n const xhr = new XMLHttpRequest();\r\n xhr.timeout = this.options.requestsTimeoutMs;\r\n xhr.onload = () => {\r\n if (xhr.responseText)\r\n res(FeatureCollection.fromGeoJson(xhr.responseText));\r\n else\r\n res(null);\r\n };\r\n \r\n xhr.ontimeout = () => rej('Timeout');\r\n xhr.onerror = () => rej('Error getting location');\r\n xhr.onabort = () => rej('HTTP request aborted.');\r\n // xhr.onloadend = () => {\r\n // this.currentHttpRequest = null;\r\n // this.setLoadingStatus(false);\r\n // };\r\n \r\n // this.currentHttpRequest = xhr;\r\n xhr.open('GET', url, true);\r\n xhr.send(null);\r\n }\r\n else\r\n rej('No reverse geocoding URL provided in map picker options(\\'reverseGeocodingUrl\\').');\r\n });\r\n }\r\n\r\n public query(query: string, options?: IQueryOptions): Promise {\r\n return new Promise((res, rej) => {\r\n options = new QueryOptions(options);\r\n const xhr = new XMLHttpRequest();\r\n xhr.timeout = this.options.requestsTimeoutMs;\r\n xhr.onload = () => {\r\n if (!xhr.status || xhr.status >= 200 && xhr.status < 300) {\r\n const r = JSON.parse(xhr.responseText);\r\n let items: QueryResultItem[] = [];\r\n r.forEach((ft: any) => {\r\n items.push({\r\n title: ft.display_Name || ft.display_name,\r\n type: (ft.class || ft.category) + \"-\" + ft.type,\r\n dateTime: new Date(),\r\n projection: Projection.create(this.options.projection),\r\n location: [ft.lon, ft.lat],\r\n envelope: Envelope.fromNumArray(ft.boundingBox || ft.boundingbox),\r\n geometry: Geometry.fromWkt(ft.geoText || ft.geotext),\r\n relevance: ft.importance\r\n });\r\n });\r\n \r\n // TODO: nek default transformer\r\n res({\r\n service: this.name,\r\n status: 'OK',\r\n items: items\r\n });\r\n }\r\n };\r\n \r\n xhr.ontimeout = () => rej('Timeout');\r\n xhr.onerror = () => rej('Error loading location data for \\'' + query + '\\'.');\r\n xhr.open('GET', `${this.options.queryUrl}/search?&polygon_text=1&limit=${options.pageSize}&q=${query}`, true);\r\n xhr.send(null);\r\n });\r\n }\r\n\r\n public query_v2(query: string, options?: IQueryOptions): Promise> {\r\n return new Promise((res, rej) => {\r\n options = new QueryOptions(options);\r\n const xhr = new XMLHttpRequest();\r\n xhr.timeout = this.options.requestsTimeoutMs;\r\n xhr.onload = () => {\r\n if (!xhr.status || xhr.status >= 200 && xhr.status < 300) {\r\n const fc = FeatureCollection.fromGeoJson(xhr.responseText);\r\n res(fc);\r\n }\r\n };\r\n \r\n xhr.ontimeout = () => rej('Timeout');\r\n xhr.onerror = () => rej('Error loading location data for \\'' + query + '\\'.');\r\n xhr.open('GET', `${this.options.queryUrl}?condition=${query}&pagesize=${options.pageSize}&page=${options.page}`, true);\r\n xhr.send(null);\r\n });\r\n }\r\n\r\n public query_v3(query: string): Promise> {\r\n return new Promise((res, rej) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.timeout = this.options.requestsTimeoutMs;\r\n xhr.onload = () => {\r\n if (!xhr.status || xhr.status >= 200 && xhr.status < 300) {\r\n const fc = FeatureCollection.fromGeoJson(xhr.responseText);\r\n res(fc);\r\n }\r\n };\r\n\r\n const body = new Query_v3Request({\r\n query: query\r\n } as IQuery_v3Request);\r\n \r\n xhr.ontimeout = () => rej('Timeout');\r\n xhr.onerror = () => rej('Error loading location data for \\'' + query + '\\'.');\r\n xhr.open('POST', `${this.options.query_v3Url}`, true);\r\n xhr.send(JSON.stringify(body));\r\n });\r\n }\r\n\r\n public reverse_v3(coord: CoordinateLike): Promise> {\r\n return new Promise((res, rej) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.timeout = this.options.requestsTimeoutMs;\r\n xhr.onload = () => {\r\n if (!xhr.status || xhr.status >= 200 && xhr.status < 300) {\r\n const fc = FeatureCollection.fromGeoJson(xhr.responseText);\r\n res(fc);\r\n }\r\n };\r\n\r\n const body = new Query_v3Request({\r\n pageSize: 1,\r\n x: coord[0],\r\n y: coord[1],\r\n } as IQuery_v3Request);\r\n\r\n xhr.ontimeout = () => rej('Timeout');\r\n xhr.onerror = () => rej('Error fetching reverse geocoding for \\'' + JSON.stringify(coord) + '\\'.');\r\n xhr.open('POST', `${this.options.query_v3Url}`, true);\r\n xhr.send(JSON.stringify(body));\r\n });\r\n }\r\n\r\n public GeocodeLoc(query: string, options?: IQueryOptions): Promise> {\r\n return new Promise>((res, rej) => {\r\n if (!this.options.GeocodeLocQueryUrl)\r\n rej('No GeocodeLocQueryUrl provided');\r\n \r\n options = new QueryOptions(options);\r\n const xhr = new XMLHttpRequest();\r\n xhr.timeout = this.options.requestsTimeoutMs;\r\n xhr.onload = () => {\r\n if (!xhr.status || xhr.status >= 200 && xhr.status < 300) {\r\n const r = JSON.parse(xhr.responseText);\r\n\r\n const fc = FeatureCollection.fromGeoJson(r);\r\n res(fc);\r\n }\r\n };\r\n \r\n xhr.ontimeout = () => rej('Timeout');\r\n xhr.onerror = () => rej(`Error loading location data for '${query}'.`);\r\n xhr.open('GET', `${this.options.GeocodeLocQueryUrl}?query=${encodeURIComponent(query)}&take=${options.pageSize}&skip=${options.pageSize * options.page}`, true);\r\n xhr.send(null);\r\n });\r\n }\r\n\r\n public GeocodeLocReverse(coordinate: Coordinate | CoordinateLike, options?: IReverseGeocodingOptions): Promise> {\r\n return new Promise>((res, rej) => {\r\n if (!this.options.GeocodeLocReverseUrl)\r\n rej('No GeocodeLocReverseUrl provided');\r\n \r\n if (coordinate instanceof Coordinate)\r\n coordinate = [coordinate.x, coordinate.y];\r\n \r\n options = new ReverseGeocodingOptions(options);\r\n const xhr = new XMLHttpRequest();\r\n xhr.timeout = this.options.requestsTimeoutMs;\r\n xhr.onload = () => {\r\n if (!xhr.status || xhr.status >= 200 && xhr.status < 300) {\r\n const r = JSON.parse(xhr.responseText);\r\n\r\n const fc = FeatureCollection.fromGeoJson(r);\r\n res(fc);\r\n }\r\n };\r\n \r\n const x = coordinate[0];\r\n const y = coordinate[1];\r\n xhr.ontimeout = () => rej('Timeout');\r\n xhr.onerror = () => rej(`Error loading location data for '${x}, ${y}'.`);\r\n xhr.open('GET', `${this.options.GeocodeLocReverseUrl}?x=${x}&y=${y}`, true);\r\n xhr.send(null);\r\n });\r\n }\r\n}\r\n\r\nexport interface Query_v2ResponseFeatureProperties {\r\n Id: number;\r\n Title: string;\r\n Type: Query_v2LocationType;\r\n Distance: number;\r\n}\r\n\r\nexport interface Query_v2ResponseFeatureCollectionProperties {\r\n Name: number;\r\n Page: number;\r\n NextPage: boolean;\r\n}\r\n\r\nexport type Query_v2LocationType = 'Naselje' | 'Ulica' | 'Poi' | 'Postaja';\r\n\r\nexport interface IQuery_v3Request {\r\n query: string;\r\n pageSize: number;\r\n page: number;\r\n dataSource: string;\r\n ModelVersion: number;\r\n dist?: number;\r\n x?: number;\r\n y?: number;\r\n InCrs: string;\r\n OutCrs: string;\r\n}\r\n\r\nexport class Query_v3Request implements IQuery_v3Request {\r\n query: string;\r\n pageSize: number;\r\n page: number;\r\n dataSource: string;\r\n ModelVersion: number;\r\n dist?: number;\r\n x?: number;\r\n y?: number;\r\n InCrs: string;\r\n OutCrs: string;\r\n\r\n constructor(req?: IQuery_v3Request) {\r\n this.query = req && req.query ? req.query : undefined;\r\n this.pageSize = req && req.pageSize ? req.pageSize : 10;\r\n this.page = req && req.page != undefined ? req.page : 0;\r\n this.dataSource = req && req.dataSource ? req.dataSource : undefined;\r\n this.ModelVersion = req && req.ModelVersion != undefined ? req.ModelVersion :1;\r\n\r\n this.dist = req && req.dist != undefined ? req.dist : undefined;\r\n this.x = req && req.x != undefined ? req.x : undefined;\r\n this.y = req && req.y != undefined ? req.y : undefined;\r\n\r\n this.InCrs = req && req.InCrs ? req.InCrs : \"EPSG:4326\";\r\n this.OutCrs = req && req.OutCrs ? req.OutCrs : \"EPSG:4326\";\r\n }\r\n}\r\n\r\nexport interface Query_v3ResponseFeatureProperties {\r\n Title: string;\r\n Description: string;\r\n Icon: string;\r\n Id: string;\r\n ContentName: string;\r\n IconAnchor: number[];\r\n IsFromXY?: boolean;\r\n Odsek: string;\r\n Stacionaza?: number;\r\n Cesta: Query_v3ResponseFeaturePropertiesCesta;\r\n Ad: Query_v3ResponseFeaturePropertiesAd;\r\n}\r\n\r\nexport interface Query_v3ResponseFeaturePropertiesCesta\r\n{\r\n ftype: string;\r\n descr: string;\r\n bvx?: number;\r\n bvy?: number;\r\n bvr?: number;\r\n dist?: number;\r\n ds_field: string;\r\n ds_at?: number;\r\n odsek: string;\r\n cesta: string;\r\n kategorija: string;\r\n}\r\n\r\nexport interface Query_v3ResponseFeaturePropertiesAd\r\n{\r\n ftype: string;\r\n descr: string;\r\n bvx?: number;\r\n bvy?: number;\r\n bvr?: number;\r\n dist?: number;\r\n}\r\n\r\nexport interface ReverseGeocodingFeatureProperties {\r\n Id?: number;\r\n Title?: string;\r\n Type?: string;\r\n}\r\n\r\nexport interface ReverseGeocodingProperties {\r\n Name: number;\r\n Page: number;\r\n NextPage: boolean;\r\n}\r\n\r\nexport interface GeocodeLocFeatureProperties {\r\n Sid: number;\r\n Title: string;\r\n Description: string;\r\n Type: GeocodeLocLocationType;\r\n TypedId: string;\r\n gc_cesta: Query_v3ResponseFeaturePropertiesCesta;\r\n}\r\n\r\nexport type GeocodeLocLocationType = 'kucni_brojevi' | 'jls' | 'dars_mp' | 'dars_parking' | 'dars_predori' | 'dars_prk' | 'poi' | 'rpe_na' | 'rpe_ul' | 'stavbe_naslovi';\r\n\r\nexport interface GeocodeLocFeatureCollectionProperties {\r\n Take: number;\r\n Skip: number;\r\n HasNext: boolean;\r\n OutCrs: string;\r\n Types: any;\r\n}\r\n","import { degreesToRadians, radiansToDegrees } from \"@turf/helpers\";\nimport { getCoord } from \"@turf/invariant\";\n// http://en.wikipedia.org/wiki/Haversine_formula\n// http://www.movable-type.co.uk/scripts/latlong.html\n/**\n * Takes two {@link Point|points} and finds the geographic bearing between them,\n * i.e. the angle measured in degrees from the north line (0 degrees)\n *\n * @name bearing\n * @param {Coord} start starting Point\n * @param {Coord} end ending Point\n * @param {Object} [options={}] Optional parameters\n * @param {boolean} [options.final=false] calculates the final bearing if true\n * @returns {number} bearing in decimal degrees, between -180 and 180 degrees (positive clockwise)\n * @example\n * var point1 = turf.point([-75.343, 39.984]);\n * var point2 = turf.point([-75.534, 39.123]);\n *\n * var bearing = turf.bearing(point1, point2);\n *\n * //addToMap\n * var addToMap = [point1, point2]\n * point1.properties['marker-color'] = '#f00'\n * point2.properties['marker-color'] = '#0f0'\n * point1.properties.bearing = bearing\n */\nexport default function bearing(start, end, options) {\n if (options === void 0) { options = {}; }\n // Reverse calculation\n if (options.final === true) {\n return calculateFinalBearing(start, end);\n }\n var coordinates1 = getCoord(start);\n var coordinates2 = getCoord(end);\n var lon1 = degreesToRadians(coordinates1[0]);\n var lon2 = degreesToRadians(coordinates2[0]);\n var lat1 = degreesToRadians(coordinates1[1]);\n var lat2 = degreesToRadians(coordinates2[1]);\n var a = Math.sin(lon2 - lon1) * Math.cos(lat2);\n var b = Math.cos(lat1) * Math.sin(lat2) -\n Math.sin(lat1) * Math.cos(lat2) * Math.cos(lon2 - lon1);\n return radiansToDegrees(Math.atan2(a, b));\n}\n/**\n * Calculates Final Bearing\n *\n * @private\n * @param {Coord} start starting Point\n * @param {Coord} end ending Point\n * @returns {number} bearing\n */\nfunction calculateFinalBearing(start, end) {\n // Swap start & end\n var bear = bearing(end, start);\n bear = (bear + 180) % 360;\n return bear;\n}\n","// http://en.wikipedia.org/wiki/Haversine_formula\n// http://www.movable-type.co.uk/scripts/latlong.html\nimport { degreesToRadians, lengthToRadians, point, radiansToDegrees, } from \"@turf/helpers\";\nimport { getCoord } from \"@turf/invariant\";\n/**\n * Takes a {@link Point} and calculates the location of a destination point given a distance in\n * degrees, radians, miles, or kilometers; and bearing in degrees.\n * This uses the [Haversine formula](http://en.wikipedia.org/wiki/Haversine_formula) to account for global curvature.\n *\n * @name destination\n * @param {Coord} origin starting point\n * @param {number} distance distance from the origin point\n * @param {number} bearing ranging from -180 to 180\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.units='kilometers'] miles, kilometers, degrees, or radians\n * @param {Object} [options.properties={}] Translate properties to Point\n * @returns {Feature} destination point\n * @example\n * var point = turf.point([-75.343, 39.984]);\n * var distance = 50;\n * var bearing = 90;\n * var options = {units: 'miles'};\n *\n * var destination = turf.destination(point, distance, bearing, options);\n *\n * //addToMap\n * var addToMap = [point, destination]\n * destination.properties['marker-color'] = '#f00';\n * point.properties['marker-color'] = '#0f0';\n */\nexport default function destination(origin, distance, bearing, options) {\n if (options === void 0) { options = {}; }\n // Handle input\n var coordinates1 = getCoord(origin);\n var longitude1 = degreesToRadians(coordinates1[0]);\n var latitude1 = degreesToRadians(coordinates1[1]);\n var bearingRad = degreesToRadians(bearing);\n var radians = lengthToRadians(distance, options.units);\n // Main\n var latitude2 = Math.asin(Math.sin(latitude1) * Math.cos(radians) +\n Math.cos(latitude1) * Math.sin(radians) * Math.cos(bearingRad));\n var longitude2 = longitude1 +\n Math.atan2(Math.sin(bearingRad) * Math.sin(radians) * Math.cos(latitude1), Math.cos(radians) - Math.sin(latitude1) * Math.sin(latitude2));\n var lng = radiansToDegrees(longitude2);\n var lat = radiansToDegrees(latitude2);\n return point([lng, lat], options.properties);\n}\n","import bearing from '@turf/bearing';\nimport distance from '@turf/distance';\nimport destination from '@turf/destination';\nimport { isObject, lineString } from '@turf/helpers';\n\n/**\n * Takes a {@link LineString|line}, a specified distance along the line to a start {@link Point},\n * and a specified distance along the line to a stop point\n * and returns a subsection of the line in-between those points.\n *\n * This can be useful for extracting only the part of a route between two distances.\n *\n * @name lineSliceAlong\n * @param {Feature|LineString} line input line\n * @param {number} startDist distance along the line to starting point\n * @param {number} stopDist distance along the line to ending point\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.units='kilometers'] can be degrees, radians, miles, or kilometers\n * @returns {Feature} sliced line\n * @example\n * var line = turf.lineString([[7, 45], [9, 45], [14, 40], [14, 41]]);\n * var start = 12.5;\n * var stop = 25;\n * var sliced = turf.lineSliceAlong(line, start, stop, {units: 'miles'});\n *\n * //addToMap\n * var addToMap = [line, start, stop, sliced]\n */\nfunction lineSliceAlong(line, startDist, stopDist, options) {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n\n var coords;\n var slice = [];\n\n // Validation\n if (line.type === \"Feature\") coords = line.geometry.coordinates;\n else if (line.type === \"LineString\") coords = line.coordinates;\n else throw new Error(\"input must be a LineString Feature or Geometry\");\n var origCoordsLength = coords.length;\n var travelled = 0;\n var overshot, direction, interpolated;\n for (var i = 0; i < coords.length; i++) {\n if (startDist >= travelled && i === coords.length - 1) break;\n else if (travelled > startDist && slice.length === 0) {\n overshot = startDist - travelled;\n if (!overshot) {\n slice.push(coords[i]);\n return lineString(slice);\n }\n direction = bearing(coords[i], coords[i - 1]) - 180;\n interpolated = destination(coords[i], overshot, direction, options);\n slice.push(interpolated.geometry.coordinates);\n }\n\n if (travelled >= stopDist) {\n overshot = stopDist - travelled;\n if (!overshot) {\n slice.push(coords[i]);\n return lineString(slice);\n }\n direction = bearing(coords[i], coords[i - 1]) - 180;\n interpolated = destination(coords[i], overshot, direction, options);\n slice.push(interpolated.geometry.coordinates);\n return lineString(slice);\n }\n\n if (travelled >= startDist) {\n slice.push(coords[i]);\n }\n\n if (i === coords.length - 1) {\n return lineString(slice);\n }\n\n travelled += distance(coords[i], coords[i + 1], options);\n }\n\n if (travelled < startDist && coords.length === origCoordsLength)\n throw new Error(\"Start position is beyond line\");\n\n var last = coords[coords.length - 1];\n return lineString([last, last]);\n}\n\nexport default lineSliceAlong;\n","import length from '@turf/length';\nimport lineSliceAlong from '@turf/line-slice-along';\nimport { flattenEach } from '@turf/meta';\nimport { isObject, featureCollection } from '@turf/helpers';\n\n/**\n * Divides a {@link LineString} into chunks of a specified length.\n * If the line is shorter than the segment length then the original line is returned.\n *\n * @name lineChunk\n * @param {FeatureCollection|Geometry|Feature} geojson the lines to split\n * @param {number} segmentLength how long to make each segment\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.units='kilometers'] units can be degrees, radians, miles, or kilometers\n * @param {boolean} [options.reverse=false] reverses coordinates to start the first chunked segment at the end\n * @returns {FeatureCollection} collection of line segments\n * @example\n * var line = turf.lineString([[-95, 40], [-93, 45], [-85, 50]]);\n *\n * var chunk = turf.lineChunk(line, 15, {units: 'miles'});\n *\n * //addToMap\n * var addToMap = [chunk];\n */\nfunction lineChunk(geojson, segmentLength, options) {\n // Optional parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var units = options.units;\n var reverse = options.reverse;\n\n // Validation\n if (!geojson) throw new Error(\"geojson is required\");\n if (segmentLength <= 0)\n throw new Error(\"segmentLength must be greater than 0\");\n\n // Container\n var results = [];\n\n // Flatten each feature to simple LineString\n flattenEach(geojson, function (feature) {\n // reverses coordinates to start the first chunked segment at the end\n if (reverse)\n feature.geometry.coordinates = feature.geometry.coordinates.reverse();\n\n sliceLineSegments(feature, segmentLength, units, function (segment) {\n results.push(segment);\n });\n });\n return featureCollection(results);\n}\n\n/**\n * Slice Line Segments\n *\n * @private\n * @param {Feature} line GeoJSON LineString\n * @param {number} segmentLength how long to make each segment\n * @param {string}[units='kilometers'] units can be degrees, radians, miles, or kilometers\n * @param {Function} callback iterate over sliced line segments\n * @returns {void}\n */\nfunction sliceLineSegments(line, segmentLength, units, callback) {\n var lineLength = length(line, { units: units });\n\n // If the line is shorter than the segment length then the orginal line is returned.\n if (lineLength <= segmentLength) return callback(line);\n\n var numberOfSegments = lineLength / segmentLength;\n\n // If numberOfSegments is integer, no need to plus 1\n if (!Number.isInteger(numberOfSegments)) {\n numberOfSegments = Math.floor(numberOfSegments) + 1;\n }\n\n for (var i = 0; i < numberOfSegments; i++) {\n var outline = lineSliceAlong(\n line,\n segmentLength * i,\n segmentLength * (i + 1),\n { units: units }\n );\n callback(outline, i);\n }\n}\n\nexport default lineChunk;\n","import distance from \"@turf/distance\";\nimport { segmentReduce } from \"@turf/meta\";\n/**\n * Takes a {@link GeoJSON} and measures its length in the specified units, {@link (Multi)Point}'s distance are ignored.\n *\n * @name length\n * @param {Feature} geojson GeoJSON to measure\n * @param {Object} [options={}] Optional parameters\n * @param {string} [options.units=kilometers] can be degrees, radians, miles, or kilometers\n * @returns {number} length of GeoJSON\n * @example\n * var line = turf.lineString([[115, -32], [131, -22], [143, -25], [150, -34]]);\n * var length = turf.length(line, {units: 'miles'});\n *\n * //addToMap\n * var addToMap = [line];\n * line.properties.distance = length;\n */\nexport default function length(geojson, options) {\n if (options === void 0) { options = {}; }\n // Calculate distance from 2-vertex line segments\n return segmentReduce(geojson, function (previousValue, segment) {\n var coords = segment.geometry.coordinates;\n return previousValue + distance(coords[0], coords[1], options);\n }, 0);\n}\n","import * as turf_helpers from '@turf/helpers';\r\nimport * as turf_line_chunk from '@turf/line-chunk';\r\n\r\nimport { Guid } from 'guid-typescript';\r\nimport { Feature, FeatureCollection, Geometry } from '..';\r\nimport { Route, RouteFeatureCollection } from '../services/RM2RoutingService';\r\nimport { Utils } from '../services/RM2StaticService';\r\n\r\nexport interface RouteStatusRequestDTO {\r\n Cache: boolean;\r\n CurrentSegmentIndex: number;\r\n Route: RouteFeatureCollection;\r\n}\r\n\r\nexport class RouteStatusResponseDTO {\r\n RouteId: string;\r\n OptimalTTMs: number;\r\n RealTTMs: number;\r\n OptimalToEndTTMs: number;\r\n RealToEndTTMs: number;\r\n TravelTimeStatus: 'normal' | 'warning' | 'critical';\r\n SegmentTravelTimes: number[];\r\n\r\n _routeColsData: any[];\r\n\r\n public static fromJSON(json: string): RouteStatusResponseDTO {\r\n const obj = JSON.parse(json);\r\n const dto = new RouteStatusResponseDTO();\r\n for (let key in obj)\r\n dto[key] = obj[key];\r\n return dto;\r\n }\r\n\r\n public static fromRoute(route: Route): RouteStatusResponseDTO {\r\n const r = route.route;\r\n const dto = new RouteStatusResponseDTO();\r\n dto.RouteId = Guid.create().toString();\r\n dto.OptimalTTMs = r.properties.OptimalTTMs;\r\n dto.RealTTMs = r.properties.RealTTMs;\r\n dto.OptimalToEndTTMs = dto.OptimalTTMs;\r\n dto.RealToEndTTMs = dto.RealTTMs;\r\n dto.TravelTimeStatus = 'normal';\r\n dto.SegmentTravelTimes = [];\r\n\r\n for (let i = 0; i < r.features.length; i++) {\r\n const ft = r.features[i];\r\n dto.SegmentTravelTimes.push(...ft.properties.SegmentIds.map(s => ft.properties.RealTTMs / ft.properties.SegmentIds.length));\r\n }\r\n\r\n return dto;\r\n }\r\n\r\n public apply(route: RouteFeatureCollection, isSelected: boolean, routeColsVals: any[]): FeatureCollection\r\n {\r\n const fc = new FeatureCollection();\r\n fc.properties = route.properties;\r\n\r\n // edit route colours (FCD)\r\n var consecutiveSegment = 0;\r\n var segmentCount = 0;\r\n\r\n for (let i = 0; i < route.features.length; i++)\r\n {\r\n const props = route.features[i].properties;\r\n const segmentNrs = props.SegmentIds.length;\r\n const ls = turf_line_chunk.default(turf_helpers.lineString(route.features[i].geometry.getCoordinates().map(x => [x.x, x.y])), props.SegmentLengthMM, { units: 'millimeters' });\r\n const segmentLs = ls.features.slice(0, segmentNrs);\r\n const segmentOptimalTT = props.OptimalTTMs / segmentNrs;\r\n for (let j = 0; j < segmentLs.length; j++) {\r\n const colValue = this.getRouteEdgeColorValue(this.SegmentTravelTimes[consecutiveSegment], segmentOptimalTT);\r\n const segFt = new Feature({\r\n Color: this.getRouteColor(colValue, isSelected, routeColsVals)\r\n }, Geometry.fromGeoJson(segmentLs[j].geometry));\r\n fc.features.push(segFt);\r\n\r\n consecutiveSegment++;\r\n }\r\n\r\n // segmentCount += props.SegmentIds.length;\r\n\r\n // var sdiTravelTime = this.SegmentTravelTimes.slice(consecutiveSegment, consecutiveSegment + props.SegmentIds.length).reduce((total, num) => total + num);\r\n // var colValue = this.getRouteEdgeColorValue(sdiTravelTime, props.OptimalTTMs);\r\n // route.features[i].properties['Color'] = ;\r\n\r\n // consecutiveSegment += props.SegmentIds.length;\r\n }\r\n\r\n return fc;\r\n }\r\n\r\n public getRouteTravelTimeBackgroundClass(): string\r\n {\r\n if (this.TravelTimeStatus === 'normal')\r\n return 'badge-green';\r\n else if (this.TravelTimeStatus === 'warning')\r\n return 'badge-orange';\r\n else if (this.TravelTimeStatus === 'critical')\r\n return 'badge-red';\r\n return 'badge-primary';\r\n }\r\n\r\n public getRouteEdgeColorValue(tt: number, optimalTT: number): number\r\n {\r\n var diff = (tt / optimalTT) - 1;\r\n return diff > 0 ? (diff * 100) : 0;\r\n }\r\n\r\n public getRouteColor(colorValue: number, isSelected: boolean, routeColsVals: any[]): string\r\n {\r\n // get data\r\n const d = this.getColorVals(colorValue, routeColsVals);\r\n\r\n // interpolate color\r\n var fraction = d.upper == d.lower ? 0 : (colorValue - d.lower) / (d.upper - d.lower);\r\n var lowerColor = this.hexToRgb(isSelected ? d.lowerData[\"light\"] : d.lowerData[\"unselected\"]);\r\n var upperColor = this.hexToRgb(isSelected ? d.upperData[\"light\"] : d.upperData[\"unselected\"]);\r\n\r\n return this.rgbToHex(lowerColor.r + (upperColor.r - lowerColor.r) * fraction, lowerColor.g + (upperColor.g - lowerColor.g) * fraction, lowerColor.b + (upperColor.b - lowerColor.b) * fraction);\r\n }\r\n\r\n private getColorVals(colorValue: number, routeColsVals: any[]): { lower: number, lowerData: any, upper: number, upperData: any }\r\n {\r\n // lower limit for interpolation\r\n var lowerIndex = 0;\r\n for (var i = routeColsVals.length - 2; i >= 0; i -= 2)\r\n {\r\n var stop: number = routeColsVals[i];\r\n if (colorValue > stop)\r\n {\r\n lowerIndex = i;\r\n break;\r\n }\r\n }\r\n\r\n // upper limit for interpolation\r\n var aboveIndex = lowerIndex + 2 < routeColsVals.length - 1 ? lowerIndex + 2 : lowerIndex;\r\n\r\n // get data\r\n var lower: number = routeColsVals[lowerIndex];\r\n var lowerData = routeColsVals[lowerIndex + 1];\r\n var upper: number = routeColsVals[aboveIndex];\r\n var upperData = routeColsVals[aboveIndex + 1];\r\n\r\n return { lower: lower, lowerData: lowerData, upper: upper, upperData: upperData };\r\n }\r\n\r\n private hexToRgb(hex: string): { r: number, g: number, b: number } {\r\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16)\r\n } : null;\r\n }\r\n\r\n private rgbToHex(r: number, g: number, b: number): string {\r\n let rStr = r.toString(16);\r\n let gStr = g.toString(16);\r\n let bStr = b.toString(16);\r\n \r\n const rDecimal = rStr.indexOf('.');\r\n if (rDecimal !== -1)\r\n rStr = rStr.substr(0, rDecimal);\r\n\r\n const gDecimal = gStr.indexOf('.');\r\n if (gDecimal !== -1)\r\n gStr = gStr.substr(0, gDecimal);\r\n\r\n const bDecimal = bStr.indexOf('.');\r\n if (bDecimal !== -1)\r\n bStr = bStr.substr(0, bDecimal);\r\n \r\n if (rStr.length == 1)\r\n rStr = \"0\" + rStr;\r\n if (gStr.length == 1)\r\n gStr = \"0\" + gStr;\r\n if (bStr.length == 1)\r\n bStr = \"0\" + bStr;\r\n \r\n return \"#\" + rStr + gStr + bStr;\r\n }\r\n\r\n // public static string ConvertHex(Color color) => string.Format('#{0}', color.ToHex().Substring(3));\r\n}\r\n","import { Projection } from '../model/RM2Projection';\r\nimport { Coordinate, CoordinateLike, Geometry } from '../model/RM2Geometry';\r\nimport { IService } from './RM2Service';\r\nimport { ServiceType } from './RM2Service';\r\nimport { Feature, FeatureCollection } from '../model/RM2Feature';\r\nimport { LineOptions, CircleOptions, HighlightOptions } from '../highlights/RM2HighlightOptions';\r\nimport { RouteStatusRequestDTO, RouteStatusResponseDTO } from '../model/RouteStatus';\r\nimport { IFitOptions } from '../model/RM2CameraChangeOptions';\r\nimport { Guid } from 'guid-typescript';\r\nimport { Query_v3ResponseFeatureProperties } from './RM2NominatimService';\r\nimport { Position } from '@turf/helpers';\r\nimport proj4 from 'proj4';\r\n\r\nexport type RouteFormat = '' | 'v1';\r\n\r\nexport class RouteOptions implements IRouteOptions {\r\n projection?: Projection;\r\n format?: RouteFormat;\r\n mode?: PathMode;\r\n\r\n constructor(opts?: IRouteOptions) {\r\n this.projection = opts && opts.projection != undefined ? opts.projection : Projection.create('EPSG:4326');\r\n this.format = opts && opts.format != undefined ? opts.format : '';\r\n this.mode = opts && opts.mode != undefined ? opts.mode : PathMode.Fastest;\r\n }\r\n}\r\n\r\nexport interface IRouteOptions {\r\n projection?: Projection;\r\n format?: RouteFormat;\r\n mode?: PathMode;\r\n}\r\n\r\nexport class RouteHighlightOptions implements IRouteHighlightOptions {\r\n routeStyle?: HighlightOptions[];\r\n startPointStyle?: HighlightOptions[];\r\n viaPointStyle?: HighlightOptions[];\r\n endPointStyle?: HighlightOptions[];\r\n stationStyle?: HighlightOptions[];\r\n\r\n pan?: boolean;\r\n cameraOptions?: IFitOptions;\r\n\r\n constructor(opts?: IRouteHighlightOptions) {\r\n this.routeStyle = opts && opts.routeStyle != undefined ? opts.routeStyle : [new LineOptions({\r\n lineColor: '#59A0DD',\r\n lineOpacity: 0.8\r\n })];\r\n\r\n this.startPointStyle = opts && opts.startPointStyle != undefined ? opts.startPointStyle : [new CircleOptions({\r\n color: '#FFFFFF',\r\n radius: 5,\r\n outlineColor: '#000000',\r\n outlineWidth: 2\r\n })];\r\n\r\n this.viaPointStyle = opts && opts.viaPointStyle != undefined ? opts.viaPointStyle : this.startPointStyle;\r\n\r\n this.endPointStyle = opts && opts.endPointStyle != undefined ? opts.endPointStyle : [\r\n new CircleOptions({\r\n color: '#FFFFFF',\r\n radius: 5,\r\n outlineColor: '#000000',\r\n outlineWidth: 2\r\n }),\r\n new CircleOptions({\r\n color: '#000000',\r\n outlineWidth: 0,\r\n radius: 3\r\n })\r\n ];\r\n\r\n this.stationStyle = opts && opts.stationStyle != undefined ? opts.stationStyle : [new CircleOptions({\r\n color: '#59A0DD',\r\n radius: 5,\r\n outlineWidth: 2,\r\n outlineColor: '#FFFFFF'\r\n })];\r\n\r\n this.pan = opts && opts.pan != undefined ? opts.pan : false;\r\n this.cameraOptions = opts && opts.cameraOptions != undefined ? opts.cameraOptions : undefined;\r\n }\r\n\r\n public static fromGeoJson(geoJson: any): RouteHighlightOptions {\r\n const routeStyles: HighlightOptions[] = [];\r\n if (geoJson.routeStyle)\r\n geoJson.routeStyle.forEach(r => routeStyles.push(HighlightOptions.fromGeoJson(r)));\r\n\r\n const startPointStyles: HighlightOptions[] = [];\r\n if (geoJson.startPointStyle)\r\n geoJson.startPointStyle.forEach(r => startPointStyles.push(HighlightOptions.fromGeoJson(r)));\r\n\r\n const viaPointStyles: HighlightOptions[] = [];\r\n if (geoJson.viaPointStyle)\r\n geoJson.viaPointStyle.forEach(r => viaPointStyles.push(HighlightOptions.fromGeoJson(r)));\r\n\r\n const endPointStyles: HighlightOptions[] = [];\r\n if (geoJson.endPointStyle)\r\n geoJson.endPointStyle.forEach(r => endPointStyles.push(HighlightOptions.fromGeoJson(r)));\r\n\r\n const stationStyles: HighlightOptions[] = [];\r\n if (geoJson.stationStyle)\r\n geoJson.stationStyle.forEach(r => stationStyles.push(HighlightOptions.fromGeoJson(r)));\r\n\r\n return new RouteHighlightOptions({\r\n routeStyle: routeStyles.length > 0 ? routeStyles : null,\r\n startPointStyle: startPointStyles.length > 0 ? startPointStyles : null,\r\n viaPointStyle: viaPointStyles.length > 0 ? viaPointStyles : null,\r\n endPointStyle: endPointStyles.length > 0 ? endPointStyles : null,\r\n stationStyle: stationStyles.length > 0 ? stationStyles : null,\r\n cameraOptions: geoJson.cameraOptions\r\n });\r\n }\r\n}\r\n\r\nexport interface IRouteHighlightOptions {\r\n routeStyle?: HighlightOptions[];\r\n startPointStyle?: HighlightOptions[];\r\n viaPointStyle?: HighlightOptions[];\r\n endPointStyle?: HighlightOptions[];\r\n stationStyle?: HighlightOptions[];\r\n\r\n pan?: boolean;\r\n cameraOptions?: IFitOptions;\r\n}\r\n\r\nexport class RoutingServiceOptions implements IRoutingServiceOptions {\r\n url: string;\r\n urlv1: string;\r\n urlMultiple: string;\r\n urlRouteStatus: string;\r\n projection?: string;\r\n requestsTimeoutMs?: number;\r\n\r\n constructor(opts?: IRoutingServiceOptions) {\r\n this.url = opts && opts.url != undefined ? opts.url : undefined;\r\n this.urlv1 = opts && opts.urlv1 != undefined ? opts.urlv1 : undefined;\r\n this.urlMultiple = opts && opts.urlMultiple != undefined ? opts.urlMultiple : undefined;\r\n this.urlRouteStatus = opts && opts.urlRouteStatus != undefined ? opts.urlRouteStatus : undefined;\r\n this.projection = opts && opts.projection != undefined ? opts.projection : 'EPSG:3912;+title=y/x:D48/GK +proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=-5000000 +ellps=bessel +towgs84=426.9,142.6,460.1,4.91,4.49,-12.42,17.1 +units=m +no_defs';\r\n this.requestsTimeoutMs = opts && opts.requestsTimeoutMs != undefined ? opts.requestsTimeoutMs : 15000;\r\n }\r\n}\r\n\r\nexport interface IRoutingServiceOptions {\r\n url: string;\r\n urlv1: string;\r\n urlMultiple: string;\r\n urlRouteStatus: string;\r\n projection?: string;\r\n requestsTimeoutMs?: number;\r\n}\r\n\r\nexport interface Route {\r\n points: CoordinateLike[]; // EPSG:4326\r\n pointsFt?: Feature[]; // EPSG:3912\r\n route: T; // originalna pot s servisa\r\n routeSegments?: FeatureCollection; // spremenjena pot na klientu na nivo segmentov za risanje na zemljevidu\r\n}\r\n\r\nexport class RouteFeatureCollection extends FeatureCollection { }\r\n\r\n// Routing v1\r\nexport interface RouteFeatureProperties {\r\n Odsek: string;\r\n StacFrom: number;\r\n StacTo: number;\r\n RoadName: string;\r\n FunctionRoadClass: RFunctionalRoadClass;\r\n FormOfWay: RFormOfWay;\r\n EdgeId: number;\r\n EdgeFractionFrom: number;\r\n EdgeFractionTo: number;\r\n SourceDataItemFractionFrom: number;\r\n SourceDataItemFractionTo: number;\r\n SegmentIds: number[];\r\n FirstSegmentFractionFrom: number;\r\n LastSegmentFractionTo: number;\r\n RouteFractionFrom: number;\r\n RouteFractionTo: number;\r\n OptimalTTMs: number;\r\n SpeedLimitTTMs: number;\r\n JamThresholdTTMs: number;\r\n RealTTMs: number;\r\n SegmentLengthMM: number;\r\n}\r\n\r\nexport class RouteInstructionsFeatureCollection extends FeatureCollection { }\r\n\r\nexport interface RouteMetaProperties {\r\n Id: string;\r\n MapId: number;\r\n Version: string;\r\n Mode: PathMode;\r\n Length: number;\r\n OptimalTTMs: number;\r\n SpeedLimitTTMs: number;\r\n RealTTMs: number;\r\n IsDetour: boolean;\r\n Instructions: RouteInstructionsFeatureCollection;\r\n}\r\n\r\nexport interface RouteInstructionsFeatureProperties {\r\n Type: string;\r\n Odsek: string;\r\n Stacionaza: number;\r\n RouteFraction: number;\r\n Title: string;\r\n TitleTranslations: any;\r\n Length: number;\r\n Duration: number;\r\n CumulativeLength: number;\r\n CumulativeDuration: number;\r\n}\r\n\r\nexport interface RouteInstructionsMetaProperties { }\r\n\r\nexport enum PathMode {\r\n Dynamic = -1,\r\n Shortest = 0,\r\n Fastest = 1\r\n}\r\n\r\nexport enum RFunctionalRoadClass {\r\n /// \r\n /// Main road\r\n /// \r\n Frc0 = 0,\r\n /// \r\n /// First class road\r\n /// \r\n Frc1 = 1,\r\n /// \r\n /// Second class road\r\n /// \r\n Frc2 = 2,\r\n /// \r\n /// Third class road\r\n /// \r\n Frc3 = 3,\r\n /// \r\n /// Fourth class road\r\n /// \r\n Frc4 = 4,\r\n /// \r\n /// Fifth class road\r\n /// \r\n Frc5 = 5,\r\n /// \r\n /// Sixth class road\r\n /// \r\n Frc6 = 6,\r\n /// \r\n /// Other class road\r\n /// \r\n Frc7 = 7\r\n}\r\n\r\nexport enum RFormOfWay {\r\n /// \r\n /// The physical road type is unknown.\r\n /// \r\n Undefined = 0,\r\n /// \r\n /// A Motorway is defined as a road permitted for motorized vehicles only in combination with a prescribed minimum speed. It has two or more physically separated carriageways and no single level-crossings.\r\n /// \r\n Motorway = 1,\r\n /// \r\n /// A multiple carriageway is defined as a road with physically separated carriageways regardless of the number of lanes. If a road is also a motorway, it should be coded as such and not as a multiple carriageway.\r\n /// \r\n MultipleCarriageWay = 2,\r\n /// \r\n /// All roads without separate carriageways are considered as roads with a single carriageway.\r\n /// \r\n SingleCarriageWay = 3,\r\n /// \r\n /// A Roundabout is a road which forms a ring on which traffic traveling in only one direction is allowed.\r\n /// \r\n Roundabout = 4,\r\n /// \r\n /// A Traffic Square is an open area (partly) enclosed by roads which is used for non-traffic purposes and which is not a Roundabout.\r\n /// \r\n TrafficSquare = 5,\r\n /// \r\n /// A Slip Road is a road especially designed to enter or leave a line.\r\n /// \r\n SlipRoad = 6,\r\n /// \r\n /// Other.\r\n /// \r\n Other = 7\r\n}\r\n\r\n/// Routing v0\r\nexport interface RouteSimple {\r\n version: string;\r\n mode: string;\r\n translations: string;\r\n length: number;\r\n duration: number;\r\n crsCode: string;\r\n geometry: string;\r\n segments: RouteSimpleSegment;\r\n stations: RouteSimpleStation[];\r\n properties: RouteSimpleProperties;\r\n}\r\n\r\nexport class RouteSimpleStation {\r\n type: string;\r\n title: string;\r\n location: CoordinateLike;\r\n fraction: number;\r\n length: number;\r\n duration: number;\r\n cumulativeLength: number;\r\n cumulativeDuration: number;\r\n properties: any;\r\n}\r\n\r\nexport class RouteSimpleSegment {\r\n sourceId: number;\r\n roadName: string;\r\n functionalRoadClass: number;\r\n formOfWay: number;\r\n key: string;\r\n fromStation: number;\r\n toStation: number;\r\n fromFraction: number;\r\n toFraction: number;\r\n fromLength: number;\r\n toLength: number;\r\n fromDuration: number;\r\n toDuration: number;\r\n startAzimuth: number;\r\n endAzimuth: number;\r\n geometry: string; // WKT\r\n roadDescription: string;\r\n roadCategory: string;\r\n road: string;\r\n}\r\n\r\nexport class RouteSegmentProperties {\r\n SegmentId: number;\r\n OptimalTTMs: number;\r\n SpeedLimitTTMs: number;\r\n JamTresholdTTMs: number;\r\n FractionFrom: number;\r\n FractionTo: number;\r\n LengthMM: number;\r\n}\r\n\r\nexport interface RouteSimpleProperties {\r\n sloToll: number[];\r\n}\r\n\r\nexport interface RouteLegacy {\r\n ContentName: string;\r\n Data: FeatureCollection;\r\n HumanContentName: string;\r\n Icon: string;\r\n Id: string;\r\n LastModified: string;\r\n Notifications: any[];\r\n Routing: RouteLegacyRouting;\r\n Title: string;\r\n}\r\n\r\nexport interface RouteLegacyRouting {\r\n ContentName: string;\r\n Items: any[];\r\n Language: string;\r\n LineStrings: string[];\r\n PathDescription: any[];\r\n PathGeometryDescription: any[];\r\n RoadCategories: any[];\r\n RouteLength: number;\r\n RouteLengths: number[];\r\n RoutingVersion: number;\r\n Timestamp: string;\r\n TotalCost: number[];\r\n TravelTime: number;\r\n TravelTimeStr: string;\r\n TravelTimes: number[];\r\n}\r\n\r\nexport class RouteMultipleResponse {\r\n Routes: Route[];\r\n\r\n public static fromResponse(json: string, locations: CoordinateLike[]): RouteMultipleResponse {\r\n const geoJson = JSON.parse(json);\r\n const routes: Route[] = [];\r\n\r\n if (Array.isArray(geoJson.Routes)) {\r\n for (let i = 0; i < geoJson.Routes.length; i++) {\r\n const route: RouteFeatureCollection = RouteFeatureCollection.fromGeoJson(geoJson.Routes[i]);\r\n route.properties.Instructions = RouteInstructionsFeatureCollection.fromGeoJson(route.properties.Instructions);\r\n route.properties.Id = Guid.create().toString();\r\n routes.push({\r\n points: locations.slice(),\r\n route: route\r\n });\r\n }\r\n }\r\n\r\n const res = new RouteMultipleResponse();\r\n res.Routes = routes;\r\n return res;\r\n }\r\n}\r\n\r\nexport class RoutingService implements IService {\r\n\r\n public readonly type = ServiceType.Routing;\r\n public readonly name: string;\r\n\r\n public get options(): RoutingServiceOptions { return this._options; }\r\n private _options: RoutingServiceOptions;\r\n\r\n public readonly enabled: boolean = true;\r\n\r\n public constructor(name: string, options: IRoutingServiceOptions) {\r\n this.name = name;\r\n this._options = new RoutingServiceOptions(options);\r\n }\r\n\r\n public setOptions(options: IRoutingServiceOptions) {\r\n if (options)\r\n this._options = new RoutingServiceOptions(options);\r\n }\r\n\r\n public async route(locations: CoordinateLike[], options?: IRouteOptions): Promise> {\r\n if (!this._options.url)\r\n throw new Error('No \\'url\\' parameter specified in routing options.');\r\n\r\n const locs = locations.map(loc => `${loc[1]},${loc[0]}`);\r\n // const url = `${this.options.url}&format=${options.format}&loc=${locs.join(encodeURIComponent(';'))}`;\r\n const url = `${this._options.url}&format=simple&loc=${locs.join(encodeURIComponent(';'))}`;\r\n\r\n return this.routingRequest(url, (res) => {\r\n // TODO: transformiraj geometrijo iz route\r\n let response: RouteSimple = JSON.parse(res);\r\n\r\n const serviceProjection = Projection.create(this._options.projection);\r\n const points = locations.slice();\r\n // const points = locations.map(loc => {\r\n // const coord = Geometry.transform(Point.fromCoordinate(loc), options.projection, serviceProjection).getCoordinate();\r\n // return [coord.x, coord.y] as CoordinateLike;\r\n // });\r\n\r\n return {\r\n points: points,\r\n route: response\r\n };\r\n }, options);\r\n }\r\n\r\n // transforms route to legacy promet route (za PrometSiControl)\r\n public async transformRoute(route: Route, title?: string): Promise> {\r\n if (!this._options.url)\r\n throw new Error('No \\'url\\' parameter specified in routing options.');\r\n\r\n let profile = PathMode[route.route.properties.Mode].toString().toLowerCase();\r\n if (profile !== 'shortest' && profile != 'fastest')\r\n profile = 'fastest';\r\n\r\n // const url = `${this._options.url}&format=simple&loc=${locs.join(encodeURIComponent(';'))}&profile=${profile}`;\r\n const url = 'https://www.promet.si/dc/routing'; // TODO: v config\r\n return new Promise>(async (res, rej) => {\r\n try {\r\n // const points = route.pointsFt.map(x => {\r\n // const ft = x.clone();\r\n // const coords = ft.geometry.coordinates as Position;\r\n // const coordsTransformed = proj4('EPSG:4326', 'EPSG:3912', coords);\r\n // ft.geometry.coordinates = coordsTransformed;\r\n // return ft;\r\n // });\r\n \r\n const body = {\r\n typeOfRoute: profile,\r\n Points: route.route.properties.Instructions.features.filter(ft => {\r\n const type = ft.properties.Type;\r\n return type === 'instruction-start' || type === 'instruction-via' || type === 'instruction-end';\r\n }).map(ft => {\r\n return {\r\n Odsek: ft.properties.Odsek,\r\n Stacionaza: ft.properties.Stacionaza\r\n }\r\n }) // tukaj dodati Id property?\r\n };\r\n const routeStr = await this.postRequest(url, body);\r\n\r\n if (routeStr) {\r\n const r: RouteLegacy = JSON.parse(routeStr);\r\n r.Id = route.route.properties.Id || Guid.create().toString();\r\n\r\n const first = route.pointsFt[0];\r\n const last = route.pointsFt[route.pointsFt.length - 1];\r\n r.Title = title || `${first.properties.Title} - ${last.properties.Title}`;\r\n\r\n res({\r\n points: route.points.map(x => x.map(y => y)),\r\n pointsFt: route.pointsFt.map(x => x.clone()),\r\n route: r\r\n } as Route);\r\n }\r\n else\r\n rej('404');\r\n }\r\n catch (e) {\r\n rej(e);\r\n }\r\n })\r\n }\r\n\r\n public async routev1(locations: CoordinateLike[], options?: IRouteOptions): Promise> {\r\n if (!this._options.urlv1)\r\n throw new Error('No \\'urlv1\\' parameter specified in routing options.');\r\n\r\n options = new RouteOptions(options);\r\n const locs = locations.map(loc => `${loc[1]},${loc[0]}`);\r\n const char = this._options.urlv1.includes('?');\r\n const url = `${this._options.urlv1}${char ? '&' : '?'}loc=${locs.join(encodeURIComponent(';'))}&profile=${PathMode[options.mode].toLowerCase()}`;\r\n\r\n return this.routingRequest(url, (res) => {\r\n // TODO: transformiraj geometrijo iz route\r\n let response: RouteFeatureCollection = RouteFeatureCollection.fromGeoJson(res);\r\n response.properties.Instructions = RouteInstructionsFeatureCollection.fromGeoJson(response.properties.Instructions);\r\n response.properties.Mode = options.mode;\r\n response.properties.Id = Guid.create().toString();\r\n\r\n const serviceProjection = Projection.create(this._options.projection);\r\n const points = locations.slice();\r\n // const points = locations.map(loc => {\r\n // const coord = Geometry.transform(Point.fromCoordinate(loc), options.projection, serviceProjection).getCoordinate();\r\n // return [coord.x, coord.y] as CoordinateLike;\r\n // });\r\n\r\n return {\r\n points: points,\r\n route: response\r\n };\r\n }, options);\r\n }\r\n\r\n public async routeStatus(route: RouteFeatureCollection): Promise {\r\n return new Promise((res, rej) => {\r\n const req: RouteStatusRequestDTO = {\r\n Cache: false,\r\n CurrentSegmentIndex: 0,\r\n Route: route\r\n };\r\n\r\n const url = `${this._options.urlRouteStatus}`;\r\n this.postRequest(url, req)\r\n .then(r => {\r\n if (r) {\r\n const status = RouteStatusResponseDTO.fromJSON(r);\r\n res(status);\r\n }\r\n else\r\n res(null);\r\n })\r\n .catch(e => res(null));\r\n });\r\n }\r\n\r\n public async routeMultiple(locations: CoordinateLike[]): Promise {\r\n return new Promise((res, rej) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.timeout = this._options.requestsTimeoutMs;\r\n xhr.onload = () => {\r\n if (xhr.responseText)\r\n res(RouteMultipleResponse.fromResponse(xhr.responseText, locations));\r\n else\r\n res(null);\r\n };\r\n\r\n const url = `${this._options.urlMultiple}?loc=${locations.map(x => [x[1], x[0]]).join(encodeURIComponent(';'))}`;\r\n xhr.ontimeout = () => res(null);\r\n xhr.onerror = () => res(null);\r\n xhr.onabort = () => res(null);\r\n xhr.open('GET', url, true);\r\n xhr.send();\r\n });\r\n }\r\n\r\n private routingRequest(url: string, response: (responseText: string) => Route, options: IRouteOptions): Promise> {\r\n return new Promise>((res, rej) => {\r\n if (!url)\r\n throw new Error('No URL parameter specified in routing options.');\r\n\r\n options = new RouteOptions(options);\r\n const xhr = new XMLHttpRequest();\r\n xhr.timeout = this._options.requestsTimeoutMs;\r\n xhr.onload = () => {\r\n if (xhr.responseText)\r\n res(response(xhr.responseText));\r\n else\r\n res(null);\r\n };\r\n\r\n xhr.ontimeout = () => res(null);\r\n xhr.onerror = () => res(null);\r\n xhr.onabort = () => res(null);\r\n xhr.open('GET', url, true);\r\n xhr.send(null);\r\n });\r\n }\r\n\r\n private postRequest(url: string, body: any): Promise {\r\n return new Promise((res, rej) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.timeout = this._options.requestsTimeoutMs;\r\n xhr.onload = () => {\r\n if (xhr.responseText)\r\n res(xhr.responseText);\r\n else\r\n res(null);\r\n };\r\n\r\n const json = JSON.stringify(body);\r\n xhr.ontimeout = () => res(null);\r\n xhr.onerror = () => res(null);\r\n xhr.onabort = () => res(null);\r\n xhr.open('POST', url, true);\r\n xhr.setRequestHeader('Content-Type', 'application/json');\r\n xhr.send(json);\r\n });\r\n }\r\n}\r\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread(_objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n\n return matched;\n}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n var _super = _createSuper(ResourceStore);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$1(_objectSpread$1({}, pack), resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread$1(_objectSpread$1({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n var _super = _createSuper$1(Translator);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n\n if (key === undefined || key === null) {\n return false;\n }\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n\n if (returnDetails) {\n resolved.res = \"\".concat(namespace).concat(nsSeparator).concat(key);\n return resolved;\n }\n\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n\n if (returnDetails) {\n resolved.res = key;\n return resolved;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2(_objectSpread$2({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n\n return r;\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread$2(_objectSpread$2({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$2(_objectSpread$2({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$2(_objectSpread$2({}, options), {\n interpolation: _objectSpread$2(_objectSpread$2({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$2({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n var zeroSuffix = '_zero';\n\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (!rule) {\n return [];\n }\n\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n\n return this.getSuffixRetroCompatible(rule, count);\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n\n return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && options.hasOwnProperty(matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread$3({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n\n var val = rest.join(':');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val.trim();\n if (val.trim() === 'false') formatOptions[key.trim()] = false;\n if (val.trim() === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val.trim())) formatOptions[key.trim()] = parseInt(val.trim(), 10);\n });\n }\n }\n\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\n\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Formatter);\n\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: function number(val, lng, options) {\n return new Intl.NumberFormat(lng, options).format(val);\n },\n currency: function currency(val, lng, options) {\n return new Intl.NumberFormat(lng, _objectSpread$4(_objectSpread$4({}, options), {}, {\n style: 'currency'\n })).format(val);\n },\n datetime: function datetime(val, lng, options) {\n return new Intl.DateTimeFormat(lng, _objectSpread$4({}, options)).format(val);\n },\n relativetime: function relativetime(val, lng, options) {\n return new Intl.RelativeTimeFormat(lng, _objectSpread$4({}, options)).format(val, options.range || 'day');\n },\n list: function list(val, lng, options) {\n return new Intl.ListFormat(lng, _objectSpread$4({}, options)).format(val);\n }\n };\n this.init(options);\n }\n\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng, options) {\n var _this = this;\n\n var formats = _format.split(this.formatSeparator);\n\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n\n if (_this.formats[formatName]) {\n var formatted = mem;\n\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$4(_objectSpread$4(_objectSpread$4({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n\n return mem;\n }, value);\n return result;\n }\n }]);\n\n return Formatter;\n}();\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction removePending(q, name) {\n delete q.pending[name];\n q.pendingCount--;\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n var _super = _createSuper$2(Connector);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.waitingReads = [];\n _this.maxParallelReads = options.maxParallelReads || 10;\n _this.readingCalls = 0;\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = {};\n var pending = {};\n var toLoadLanguages = {};\n var toLoadNamespaces = {};\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = Object.keys(loaded[l]);\n\n if (loadedKeys.length) {\n loadedKeys.forEach(function (ns) {\n if (loadedKeys[ns] !== undefined) loaded[l][ns] = true;\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 350;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n\n this.readingCalls++;\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n _this3.readingCalls--;\n\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread$5(_objectSpread$5({}, options), {}, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction noop() {}\n\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n var _super = _createSuper$3(I18n);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this));\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!options.defaultNS && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n\n var defOpts = get();\n this.options = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, defOpts), this.options), transformOptions(options));\n\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread$6(_objectSpread$6({}, defOpts.interpolation), this.options.interpolation);\n }\n\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var formatter;\n\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n\n _this4.setResolvedLanguage(l);\n };\n\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread$6({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = keyPrefix ? \"\".concat(keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, this.options), options), {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread$6({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\n_defineProperty(I18n, \"createInstance\", function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n});\n\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport default instance;\nexport { changeLanguage, createInstance, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\nfunction addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '',\n e = encodeURIComponent; // Must encode data\n\n for (var paramName in params) {\n queryString += '&' + e(paramName) + '=' + e(params[paramName]);\n }\n\n if (!queryString) {\n return url;\n }\n\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n\n return url;\n} // https://gist.github.com/Xeoncross/7663273\n\n\nfunction ajax(url, options, callback, data, cache) {\n if (data && _typeof(data) === 'object') {\n if (!cache) {\n data['_t'] = new Date();\n } // URL encoded form data must be in querystring format\n\n\n data = addQueryString('', data).slice(1);\n }\n\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n\n try {\n var x;\n\n if (XMLHttpRequest) {\n x = new XMLHttpRequest();\n } else {\n x = new ActiveXObject('MSXML2.XMLHTTP.3.0');\n }\n\n x.open(data ? 'POST' : 'GET', url, 1);\n\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n x.withCredentials = !!options.withCredentials;\n\n if (data) {\n x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n }\n\n if (x.overrideMimeType) {\n x.overrideMimeType(\"application/json\");\n }\n\n var h = options.customHeaders;\n h = typeof h === 'function' ? h() : h;\n\n if (h) {\n for (var i in h) {\n x.setRequestHeader(i, h[i]);\n }\n }\n\n x.onreadystatechange = function () {\n x.readyState > 3 && callback && callback(x.responseText, x);\n };\n\n x.send(data);\n } catch (e) {\n console && console.log(e);\n }\n}\n\nfunction getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n allowMultiLoading: false,\n parse: JSON.parse,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n crossDomain: false,\n ajax: ajax\n };\n}\n\nvar Backend =\n/*#__PURE__*/\nfunction () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Backend);\n\n this.init(services, options);\n this.type = 'backend';\n }\n\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n var loadPath = this.options.loadPath;\n\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n\n var url = this.services.interpolator.interpolate(loadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n this.loadUrl(url, callback);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var loadPath = this.options.loadPath;\n\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath([language], [namespace]);\n }\n\n var url = this.services.interpolator.interpolate(loadPath, {\n lng: language,\n ns: namespace\n });\n this.loadUrl(url, callback);\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback) {\n var _this = this;\n\n this.options.ajax(url, this.options, function (data, xhr) {\n if (xhr.status >= 500 && xhr.status < 600) return callback('failed loading ' + url, true\n /* retry */\n );\n if (xhr.status >= 400 && xhr.status < 500) return callback('failed loading ' + url, false\n /* no retry */\n );\n var ret, err;\n\n try {\n ret = _this.options.parse(data, url);\n } catch (e) {\n err = 'failed parsing ' + url + ' to json';\n }\n\n if (err) return callback(err, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue) {\n var _this2 = this;\n\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n languages.forEach(function (lng) {\n var url = _this2.services.interpolator.interpolate(_this2.options.addPath, {\n lng: lng,\n ns: namespace\n });\n\n _this2.options.ajax(url, _this2.options, function (data, xhr) {//const statusCode = xhr.status.toString();\n // TODO: if statusCode === 4xx do log\n }, payload);\n });\n }\n }]);\n\n return Backend;\n}();\n\nBackend.type = 'backend';\n\nexport default Backend;\n","import i18next from 'i18next';\r\nimport jqueryI18next from 'jquery-i18next';\r\nimport XHR from 'i18next-xhr-backend';\r\n\r\nimport { IService, ServiceType } from './RM2Service';\r\nimport { Map } from '..';\r\n\r\ndeclare const $: any;\r\n\r\nexport class LocalizationServiceOptions implements ILocalizationServiceOptions {\r\n defaultLanguage: string;\r\n languageFilesPath: string;\r\n\r\n constructor(opts?: ILocalizationServiceOptions) {\r\n this.defaultLanguage = 'sl';\r\n this.languageFilesPath = 'assets/i18n';\r\n\r\n if (opts) {\r\n if (opts.defaultLanguage != undefined)\r\n this.defaultLanguage = opts.defaultLanguage;\r\n \r\n if (opts.languageFilesPath != undefined)\r\n this.languageFilesPath = opts.languageFilesPath;\r\n }\r\n }\r\n}\r\n\r\nexport interface ILocalizationServiceOptions {\r\n defaultLanguage?: string;\r\n languageFilesPath?: string;\r\n}\r\n\r\nexport class LocalizationService implements IService {\r\n private _map: Map;\r\n\r\n public readonly type = ServiceType.Localization;\r\n public readonly name: string;\r\n public readonly options: LocalizationServiceOptions;\r\n public readonly enabled: boolean = true;\r\n\r\n private readonly htmlOptionsAttribute = 'i18n-options';\r\n\r\n private loaded: boolean = false;\r\n\r\n public constructor(map: Map, options: ILocalizationServiceOptions) {\r\n this._map = map;\r\n this.options = new LocalizationServiceOptions(options);\r\n\r\n this.init();\r\n }\r\n\r\n public getLanguage(): string {\r\n return i18next.language;\r\n }\r\n\r\n public setLanguage(lang: string) {\r\n i18next.changeLanguage(lang, () => this.refresh());\r\n }\r\n\r\n private init() {\r\n let lang: string = undefined;\r\n if (localStorage) {\r\n lang = localStorage.getItem('r-lang');\r\n }\r\n i18next.use(XHR).init({\r\n fallbackLng: 'en',\r\n lng: lang || this.options.defaultLanguage,\r\n backend: {\r\n loadPath: `${this.options.languageFilesPath}/{{lng}}.json`\r\n }\r\n }, (err, t) => {\r\n jqueryI18next.init(i18next, $, {\r\n optionsAttr: this.htmlOptionsAttribute,\r\n useOptionsAttr: true\r\n });\r\n\r\n this.loaded = true;\r\n this.refresh();\r\n });\r\n }\r\n\r\n public refresh(element?: HTMLElement | string) {\r\n if (this.loaded) {\r\n if (element == undefined)\r\n $(this._map.getTarget()).localize();\r\n \r\n $(element).localize();\r\n }\r\n }\r\n\r\n public mark(element: HTMLElement, key: string, options?: Object) {\r\n element.setAttribute('data-i18n', key);\r\n if (options)\r\n element.setAttribute(this.htmlOptionsAttribute, options.toString());\r\n }\r\n\r\n public localizeElement(element: HTMLElement, key: string, options?: Object) {\r\n this.mark(element, key, options);\r\n this.refresh(element);\r\n }\r\n\r\n public localize(key: string): string {\r\n return i18next.t(key);\r\n }\r\n}\r\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","export var COMPLETE_NOTIFICATION = (function () { return createNotification('C', undefined, undefined); })();\nexport function errorNotification(error) {\n return createNotification('E', undefined, error);\n}\nexport function nextNotification(value) {\n return createNotification('N', value, undefined);\n}\nexport function createNotification(kind, value, error) {\n return {\n kind: kind,\n value: value,\n error: error,\n };\n}\n//# sourceMappingURL=NotificationFactories.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined,\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { createErrorClass } from './createErrorClass';\nexport var ObjectUnsubscribedError = createErrorClass(function (_super) {\n return function ObjectUnsubscribedErrorImpl() {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n };\n});\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { __extends, __values } from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\nvar Subject = (function (_super) {\n __extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.closed = false;\n _this.currentObservers = null;\n _this.observers = [];\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype._throwIfClosed = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n };\n Subject.prototype.next = function (value) {\n var _this = this;\n errorContext(function () {\n var e_1, _a;\n _this._throwIfClosed();\n if (!_this.isStopped) {\n if (!_this.currentObservers) {\n _this.currentObservers = Array.from(_this.observers);\n }\n try {\n for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var observer = _c.value;\n observer.next(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n });\n };\n Subject.prototype.error = function (err) {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.hasError = _this.isStopped = true;\n _this.thrownError = err;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().error(err);\n }\n }\n });\n };\n Subject.prototype.complete = function () {\n var _this = this;\n errorContext(function () {\n _this._throwIfClosed();\n if (!_this.isStopped) {\n _this.isStopped = true;\n var observers = _this.observers;\n while (observers.length) {\n observers.shift().complete();\n }\n }\n });\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null;\n };\n Object.defineProperty(Subject.prototype, \"observed\", {\n get: function () {\n var _a;\n return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;\n },\n enumerable: false,\n configurable: true\n });\n Subject.prototype._trySubscribe = function (subscriber) {\n this._throwIfClosed();\n return _super.prototype._trySubscribe.call(this, subscriber);\n };\n Subject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n };\n Subject.prototype._innerSubscribe = function (subscriber) {\n var _this = this;\n var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(function () {\n _this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n };\n Subject.prototype._checkFinalizedStatuses = function (subscriber) {\n var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;\n if (hasError) {\n subscriber.error(thrownError);\n }\n else if (isStopped) {\n subscriber.complete();\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n __extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);\n };\n AnonymousSubject.prototype.error = function (err) {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);\n };\n AnonymousSubject.prototype.complete = function () {\n var _a, _b;\n (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var _a, _b;\n return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import * as maplibregl from 'maplibre-gl';\r\nimport proj4 from 'proj4';\r\n\r\nimport { Projection } from '../model/RM2Projection';\r\nimport { Geometry, LineString, Point } from '../model/RM2Geometry';\r\nimport { IMarkerOptions, MarkerOptions, IPolygonOptions, PolygonOptions, ILineOptions, LineOptions, IFeatureHighlightOptions, ICircleOptions, CircleOptions, IHighlightOptions, HighlightOptions, FeatureHighlightOptions, HighlightType, LineType } from './RM2HighlightOptions';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { Feature, FeatureCollection } from '../model/RM2Feature';\r\nimport { Route, RouteFeatureCollection, IRouteHighlightOptions, RouteHighlightOptions, RouteLegacy } from '../services/RM2RoutingService';\r\nimport { Map } from '../map/RM2Map';\r\nimport { Layer } from '../model/RM2Layer';\r\n\r\nexport class Highlights {\r\n private _map: Map;\r\n\r\n private readonly _highlightsSourceName = 'mb-r-highlights-source';\r\n private readonly _markerLayerName = 'mb-r-marker-layer';\r\n private readonly _polygonLayerName = 'mb-r-polygon-layer';\r\n private readonly _lineSolidLayerName = 'mb-r-line-solid-layer';\r\n private readonly _lineDottedLayerName = 'mb-r-line-dotted-layer';\r\n private readonly _lineDashedLayerName = 'mb-r-line-dashed-layer';\r\n private readonly _circleLayerName = 'mb-r-circle-layer';\r\n\r\n protected readonly rmFeatureLabel = 'rm_isFeature';\r\n\r\n public get featuresAdded(): Observable { return this._featuresAdded as Observable; }\r\n protected _featuresAdded = new Subject();\r\n\r\n public get featuresRemoved(): Observable { return this._featuresRemoved as Observable; }\r\n protected _featuresRemoved = new Subject();\r\n\r\n private routeFc: FeatureCollection;\r\n public get route(): FeatureCollection { return this.routeFc; }\r\n\r\n constructor(map: Map) {\r\n this._map = map;\r\n\r\n const src: maplibregl.GeoJSONSourceSpecification = { type: 'geojson', data: new FeatureCollection().toGeoJson() };\r\n this._map.addSource(this._highlightsSourceName, src);\r\n this.initLayers();\r\n }\r\n\r\n showMarker(geometry: Geometry, options?: IMarkerOptions) {\r\n const type = geometry.type.toLowerCase();\r\n if (type === 'point' || type == 'multipoint') {\r\n options = new MarkerOptions(options);\r\n const ft = new Feature(this.getFeaturePropertiesFromHighlightOptions(options as MarkerOptions), geometry);\r\n\r\n this.processData(ft, options);\r\n }\r\n }\r\n\r\n clearMarkers() {\r\n this.clear(item => item && item.properties && item.properties[HighlightOptions.HighlightTypePropertyName].toLowerCase() == HighlightOptions.highlightTypeToString(HighlightType.Marker) && this.isRmFeature(item) === false);\r\n }\r\n\r\n showPolygon(geometry: Geometry, options?: IPolygonOptions) {\r\n const type = geometry.type.toLowerCase();\r\n if (type === 'polygon' || type == 'multipolygon') {\r\n options = new PolygonOptions(options);\r\n const ft = new Feature(this.getFeaturePropertiesFromHighlightOptions(options as PolygonOptions), geometry);\r\n\r\n this.processData(ft, options);\r\n }\r\n }\r\n\r\n clearPolygons() {\r\n this.clear(item => item && item.properties && item.properties[HighlightOptions.HighlightTypePropertyName].toLowerCase() == HighlightOptions.highlightTypeToString(HighlightType.Polygon) && this.isRmFeature(item) === false);\r\n }\r\n\r\n showLine(geometry: Geometry, options?: ILineOptions) {\r\n const type = geometry.type.toLowerCase();\r\n if (type === 'linestring' || type === 'multilinestring') {\r\n options = new LineOptions(options);\r\n const ft = new Feature(this.getFeaturePropertiesFromHighlightOptions(options as LineOptions), geometry);\r\n\r\n this.processData(ft, options);\r\n }\r\n }\r\n\r\n clearLines() {\r\n this.clear(item => item && item.properties && item.properties[HighlightOptions.HighlightTypePropertyName].toLowerCase() == HighlightOptions.highlightTypeToString(HighlightType.Line) && this.isRmFeature(item) === false);\r\n }\r\n\r\n showCircle(geometry: Geometry, options?: ICircleOptions) {\r\n const type = geometry.type.toLowerCase();\r\n if (type === 'point' || type == 'multipoint') {\r\n options = new CircleOptions(options);\r\n const ft = new Feature(this.getFeaturePropertiesFromHighlightOptions(options as CircleOptions), geometry);\r\n\r\n this.processData(ft, options);\r\n }\r\n }\r\n\r\n clearCircles() {\r\n this.clear(item => item && item.properties && item.properties[HighlightOptions.HighlightTypePropertyName].toLowerCase() == HighlightOptions.highlightTypeToString(HighlightType.Circle) && this.isRmFeature(item) === false);\r\n }\r\n\r\n clearFeature(id: string) {\r\n const source = this.getSource();\r\n const data = source.data;\r\n let found: any;\r\n let filtered = data.features.filter((item) => {\r\n if (item.properties.id == id)\r\n found = item;\r\n\r\n return item.properties.id != id\r\n });\r\n\r\n data.features = filtered;\r\n const fc = FeatureCollection.fromMb(data);\r\n this._map.setSourceData(this._highlightsSourceName, fc);\r\n\r\n if (found)\r\n this._featuresRemoved.next(found);\r\n }\r\n\r\n setFeatureValue(ids: string | string[], key: string, value: any) {\r\n if (Array.isArray(ids)) {\r\n const source = this.getSource();\r\n const data = source.data;\r\n const indices = [];\r\n data.features.forEach((ft, i) => {\r\n if (ids.includes(ft.properties.id))\r\n indices.push(i);\r\n });\r\n\r\n indices.forEach(index => {\r\n data.features[index].properties[key] = value;\r\n // TODO: fire onFeatureChanged event\r\n });\r\n\r\n const fc = FeatureCollection.fromMb(data);\r\n this._map.setSourceData(this._highlightsSourceName, fc);\r\n }\r\n else {\r\n const id = ids as string;\r\n const source = this.getSource();\r\n const data = source.data;\r\n const i = data.features.findIndex((item) => item.properties.id == id);\r\n if (i != -1) {\r\n data.features[i].properties[key] = value;\r\n const fc = FeatureCollection.fromMb(data);\r\n this._map.setSourceData(this._highlightsSourceName, fc);\r\n // TODO: fire onFeatureChanged event\r\n }\r\n }\r\n }\r\n\r\n clearFeatures(ids?: string[]) {\r\n if (ids)\r\n this.clear(item => this.isRmFeature(item) && ids.includes(item.properties.id));\r\n else\r\n this.clear(item => this.isRmFeature(item));\r\n }\r\n\r\n getAllFeatures(): FeatureCollection {\r\n const source = this.getSource();\r\n const fts = source.data.features.filter(item => this.isRmFeature(Feature.fromMb(item))).map(item => Feature.fromGeoJson(item));\r\n return new FeatureCollection(fts);\r\n }\r\n\r\n transform(fc: FeatureCollection, source: Projection, target: Projection): FeatureCollection {\r\n // mogoče problem pri veliko Featureih?\r\n for (let i = 0; i < fc.features.length; i++) {\r\n const feat = fc.features[i];\r\n feat.geometry = Geometry.transform(feat.geometry, source, target);\r\n }\r\n\r\n fc.setCrsCode(target.crsCode);\r\n return fc;\r\n }\r\n\r\n addFeaturesToSource(ftColl: FeatureCollection) {\r\n const source = this.getSource();\r\n const data = source.data;\r\n data.features = data.features.concat(ftColl.toGeoJson().features as any);\r\n\r\n const fc = FeatureCollection.fromMb(data);\r\n this._map.setSourceData(this._highlightsSourceName, fc);\r\n }\r\n\r\n showRoutes(routes: Route[], options?: IRouteHighlightOptions) {\r\n options = new RouteHighlightOptions(options);\r\n this.clearRoute();\r\n\r\n // const data = route.route;\r\n // let fts: Feature[] = [];\r\n // const ftStyleFunc = (source: Feature[]) => {\r\n // source.forEach((ft, i) => {\r\n // let arr: HighlightOptions[];\r\n // if (i === 0)\r\n // arr = options.startPointStyle.slice();\r\n // else if (i === source.length - 1)\r\n // arr = options.endPointStyle.slice();\r\n // else\r\n // arr = options.viaPointStyle.slice();\r\n\r\n // arr.forEach(s => fts.push(new Feature(s, ft.geometry)));\r\n // });\r\n // };\r\n\r\n // if (data) {\r\n // fts = data.features.slice();\r\n // // fts.forEach(ft => ft.setProperties(options.routeStyle[0]));\r\n\r\n // // to prikaže prvo in zadnjo točno na route-i\r\n // const instructions = data.properties.Instructions;\r\n // const points = instructions.features.filter(ft => ft.properties.Type === 'instruction-start' || ft.properties.Type === 'instruction-via' || ft.properties.Type === 'instruction-end').map(x => new Feature(x.properties, x.geometry));\r\n // ftStyleFunc(points);\r\n // }\r\n\r\n // // če ni točk na poti (če je postavljena samo 1 točka) to prikaže točno tiste točke, prek katerih se je route-a query-ala\r\n // if (fts.length === 0) {\r\n // if (route.points)\r\n // ftStyleFunc(route.points.map(x => new Feature(null, Point.fromCoordinate(x))));\r\n // }\r\n\r\n\r\n\r\n\r\n\r\n var lines: Feature[] = [];\r\n var wayPoints: Feature[] = [];\r\n // var labels = new FeatureCollection();\r\n // var events = new FeatureCollection();\r\n for (var i = 0; i < routes.length; i++)\r\n {\r\n var route = routes[i];\r\n // var label = route.Label;\r\n // if (i == selected)\r\n // {\r\n // wayPoints = routes[selected].WayPoints;\r\n // events.features = routes.SelectMany(r => r.Events.features).ToList();\r\n // }\r\n\r\n // if (label.properties != null && label.geometry != null)\r\n // {\r\n // label.properties.SortKey = i;\r\n // labels.features.Add(label);\r\n // }\r\n\r\n const instructions = route.route.properties.Instructions.features.filter(ft => ft.properties.Type === 'instruction-start' || ft.properties.Type === 'instruction-via' || ft.properties.Type === 'instruction-end');\r\n instructions.forEach((x, i) => {\r\n let arr: HighlightOptions[];\r\n if (i === 0)\r\n arr = options.startPointStyle.slice();\r\n else if (i === instructions.length - 1)\r\n arr = options.endPointStyle.slice();\r\n else\r\n arr = options.viaPointStyle.slice();\r\n \r\n arr.forEach(s => wayPoints.push(new Feature(s, x.geometry)));\r\n });\r\n\r\n lines.push(...(route.routeSegments || route.route).features.slice());\r\n }\r\n\r\n // SetSourceData(RouteLineStringSource, lines);\r\n // SetSourceData(RoutePointSource, wayPoints);\r\n // SetSourceData(RouteLabelsSource, JsonConvert.SerializeObject(labels)); // TODO: brez serializacije\r\n\r\n // if (events != null && events.features.Count > 0)\r\n // {\r\n // IoC.Get().SetGroupsOpacity(MapStyle.Metadata.Groups.Select(x => x.Id), 0.5f);\r\n // SetSourceData(RouteEventSource, events);\r\n // }\r\n\r\n const src = new FeatureCollection(lines.concat(wayPoints));\r\n this._map.setSourceData(Map.routeSourceName, src);\r\n\r\n if (options.pan)\r\n this.processPan(src, new FeatureHighlightOptions({ cameraOptions: options.cameraOptions }));\r\n\r\n\r\n\r\n\r\n\r\n // const fc = new FeatureCollection(fts);\r\n // this._map.setSourceData(this.routeSourceName, fc);\r\n // this.processPan(fc, new FeatureHighlightOptions({ cameraOptions: options.cameraOptions }));\r\n }\r\n\r\n showRoute(route: Route, options?: IRouteHighlightOptions) {\r\n options = new RouteHighlightOptions(options);\r\n this.clearRoute();\r\n\r\n const data = route.route;\r\n let fts: Feature[] = [];\r\n const ftStyleFunc = (source: Feature[]) => {\r\n source.forEach((ft, i) => {\r\n let arr: HighlightOptions[];\r\n if (i === 0)\r\n arr = options.startPointStyle.slice();\r\n else if (i === source.length - 1)\r\n arr = options.endPointStyle.slice();\r\n else\r\n arr = options.viaPointStyle.slice();\r\n\r\n arr.forEach(s => fts.push(new Feature(s, ft.geometry)));\r\n });\r\n };\r\n\r\n if (data) {\r\n fts = data.features.slice();\r\n // fts.forEach(ft => ft.setProperties(options.routeStyle[0]));\r\n\r\n // to prikaže prvo in zadnjo točno na route-i\r\n const instructions = data.properties.Instructions;\r\n const points = instructions.features.filter(ft => ft.properties.Type === 'instruction-start' || ft.properties.Type === 'instruction-via' || ft.properties.Type === 'instruction-end').map(x => new Feature(x.properties, x.geometry));\r\n ftStyleFunc(points);\r\n }\r\n\r\n // če ni točk na poti (če je postavljena samo 1 točka) to prikaže točno tiste točke, prek katerih se je route-a query-ala\r\n if (fts.length === 0) {\r\n if (route.points)\r\n ftStyleFunc(route.points.map(x => new Feature(null, Point.fromCoordinate(x))));\r\n }\r\n\r\n const fc = new FeatureCollection(fts);\r\n this._map.setSourceData(Map.routeSourceName, fc);\r\n\r\n if (options.pan)\r\n this.processPan(fc, new FeatureHighlightOptions({ cameraOptions: options.cameraOptions }));\r\n // fts.forEach(ft => ft.setField('includeInIdentify', false));\r\n // this.routeFc = this.showFeatures(new FeatureCollection(fts), { cameraOptions: options.cameraOptions });\r\n }\r\n\r\n showRouteLegacy(route: RouteLegacy, options?: IRouteHighlightOptions) {\r\n options = new RouteHighlightOptions(options);\r\n this.clearRoute();\r\n\r\n let fts: Feature[] = [];\r\n \r\n // waypoints\r\n const points = route.Data.features.map(x => new Feature(x.properties, Geometry.fromGeoJson(x.geometry)));\r\n points.forEach((ft, i) => {\r\n let arr: HighlightOptions[];\r\n if (i === 0)\r\n arr = options.startPointStyle.slice();\r\n else if (i === route.Data.length - 1)\r\n arr = options.endPointStyle.slice();\r\n else\r\n arr = options.viaPointStyle.slice();\r\n\r\n arr.forEach(s => {\r\n const item = new Feature(s, ft.geometry);\r\n item.setField('includeInIdentify', false);\r\n const coords = item.geometry.getCoordinate();\r\n const coordsTransformed = proj4('EPSG:3912', this._map.projection.crsCode, coords);\r\n item.geometry.coordinates = [coordsTransformed.x, coordsTransformed.y];\r\n fts.push(item);\r\n });\r\n });\r\n\r\n // linestrings\r\n const geom = LineString.fromWkt('LINESTRING(' + route.Routing.LineStrings.join(',') + ')') as LineString;\r\n const coords = geom.coordinates.map(x => proj4('EPSG:3912', this._map.projection.crsCode, x));\r\n geom.coordinates = coords;\r\n fts.push(new Feature({\r\n Color: '#0F3C8F',\r\n includeInIdentify: false\r\n }, geom));\r\n\r\n const fc = new FeatureCollection();\r\n fc.features = fts;\r\n this._map.setSourceData(Map.routeSourceName, fc);\r\n\r\n if (options.pan)\r\n this.processPan(fc, new FeatureHighlightOptions({ cameraOptions: options.cameraOptions }));\r\n }\r\n\r\n clearRoute() {\r\n const s = this._map.getSource(Map.routeSourceName);\r\n if (s) {\r\n this._map.setSourceData(Map.routeSourceName, new FeatureCollection());\r\n }\r\n }\r\n\r\n showFeature(ft: Feature, opts?: IFeatureHighlightOptions): Feature {\r\n const options = this.processFeature(ft, opts);\r\n if (options) {\r\n this.processData(ft, options);\r\n this._featuresAdded.next([ft]);\r\n return ft;\r\n }\r\n return null;\r\n }\r\n\r\n showFeatures(fts: Feature[] | FeatureCollection, opts?: IFeatureHighlightOptions): FeatureCollection {\r\n if (Array.isArray(fts))\r\n fts = new FeatureCollection(fts);\r\n\r\n opts = new FeatureHighlightOptions(opts);\r\n for (let i = 0; i < fts.features.length; i++)\r\n this.processFeature(fts.features[i], opts);\r\n\r\n this.processData(fts, opts);\r\n this._featuresAdded.next(fts.features.slice());\r\n return fts;\r\n }\r\n\r\n clearAll() {\r\n this.clearMarkers();\r\n this.clearPolygons();\r\n this.clearLines();\r\n this.clearCircles();\r\n this.clearFeatures();\r\n }\r\n\r\n protected getFeaturePropertiesFromHighlightOptions(options: HighlightOptions, ft?: Feature): any {\r\n if (options instanceof MarkerOptions)\r\n return new MarkerOptions(options as IMarkerOptions).applyOptionsToFeatureProperties(ft);\r\n else if (options instanceof PolygonOptions)\r\n return new PolygonOptions(options as IPolygonOptions).applyOptionsToFeatureProperties(ft);\r\n else if (options instanceof LineOptions)\r\n return new LineOptions(options as ILineOptions).applyOptionsToFeatureProperties(ft);\r\n else if (options instanceof CircleOptions)\r\n return new CircleOptions(options as ICircleOptions).applyOptionsToFeatureProperties(ft);\r\n }\r\n\r\n protected processData(ft: Feature | FeatureCollection, options: IHighlightOptions) {\r\n if (ft instanceof Feature)\r\n ft = new FeatureCollection([ft]);\r\n\r\n if (options.projection) {\r\n if (options.projection.crsCode !== this._map.projection.crsCode)\r\n this.transform(ft, options.projection, this._map.projection);\r\n }\r\n else {\r\n const fcCrs = ft.getCrsCode();\r\n if (fcCrs && fcCrs !== this._map.projection.crsCode)\r\n this.transform(ft, Projection.create(fcCrs), this._map.projection);\r\n }\r\n\r\n this.processPan(ft, options);\r\n this.addFeaturesToSource(ft);\r\n }\r\n\r\n protected setAsRmFeature(ft: Feature) {\r\n ft.setField(this.rmFeatureLabel, true);\r\n }\r\n\r\n protected isRmFeature(ft: Feature): boolean {\r\n if (ft && ft.properties)\r\n return ft.getField(this.rmFeatureLabel) === true;\r\n return true;\r\n }\r\n\r\n private processFeature(ft: Feature, opts?: IFeatureHighlightOptions): IHighlightOptions {\r\n const type = ft.geometry.type.toLowerCase();\r\n this.setAsRmFeature(ft);\r\n if (type == 'point' || type == 'multipoint') {\r\n if (ft.getField(CircleOptions.CircleRadiusPropertyName) != undefined) { // TODO: na lepši način\r\n const circleOptions = new CircleOptions();\r\n circleOptions.applyFeatureHighlightOptions(opts);\r\n\r\n ft.properties = this.getFeaturePropertiesFromHighlightOptions(circleOptions, ft);\r\n return circleOptions;\r\n }\r\n else {\r\n const markerOptions = new MarkerOptions();\r\n markerOptions.applyFeatureHighlightOptions(opts);\r\n\r\n ft.properties = this.getFeaturePropertiesFromHighlightOptions(markerOptions, ft);\r\n return markerOptions;\r\n }\r\n }\r\n else if (type == 'polygon' || type == 'multipolygon') {\r\n const polygonOptions = new PolygonOptions();\r\n polygonOptions.applyFeatureHighlightOptions(opts);\r\n\r\n ft.properties = this.getFeaturePropertiesFromHighlightOptions(polygonOptions, ft);\r\n return polygonOptions;\r\n }\r\n else if (type == 'linestring' || type == 'multilinestring') {\r\n const lineOptions = new LineOptions();\r\n lineOptions.applyFeatureHighlightOptions(opts);\r\n\r\n ft.properties = this.getFeaturePropertiesFromHighlightOptions(lineOptions, ft);\r\n return lineOptions;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private clear(predicate: (item: any) => boolean = null) {\r\n const source = this.getSource();\r\n if (predicate == null)\r\n predicate = (item) => this.isRmFeature(item) === false;\r\n\r\n const filtered = source.data.features.filter((item) => predicate(Feature.fromMb(item)) === false);\r\n source.data.features = filtered;\r\n const fc = FeatureCollection.fromMb(source.data);\r\n this._map.setSourceData(this._highlightsSourceName, fc);\r\n }\r\n\r\n private getSource(): { src: maplibregl.GeoJSONSource, data: GeoJSON.FeatureCollection } {\r\n const src = this._map.getSource(this._highlightsSourceName);\r\n return { src: src as maplibregl.GeoJSONSource, data: src['_data'] };\r\n }\r\n\r\n private initLayers() {\r\n const zIndex = 0;\r\n // const style = this._map.getStyle();\r\n const metadata = this._map.metadata;\r\n let topLayer: Layer;\r\n // find the first layer that has a higher z-index\r\n if (metadata && metadata.groups) {\r\n topLayer = this._map.getLayer(l => {\r\n if (l.metadata) {\r\n const groupName = l.metadata.gid;\r\n if (groupName && groupName in metadata.groups && (metadata.groups[groupName].zIndex === -1 || metadata.groups[groupName].zIndex < zIndex))\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n\r\n const defaultPolygon = new PolygonOptions();\r\n const polygonMbLayer: maplibregl.LayerSpecification = {\r\n 'id': this._polygonLayerName,\r\n 'type': 'fill',\r\n 'source': this._highlightsSourceName,\r\n 'metadata': { includeInIdentify: true },\r\n 'layout': {\r\n // 'text-field': ['get', 'text'],\r\n // 'text-field': 'test',\r\n // 'text-font': ['Noto Sans Italic']\r\n // 'fill-sort-key': ['get', 'zindex']\r\n },\r\n 'paint': {\r\n 'fill-color': this.getProperty(PolygonOptions.FillColorPropertyName, defaultPolygon.fillColor),\r\n 'fill-opacity': this.getProperty(PolygonOptions.FillOpacityPropertyName, defaultPolygon.fillOpacity),\r\n 'fill-outline-color': this.getProperty(PolygonOptions.OutlineColorPropertyName, defaultPolygon.outlineColor)\r\n },\r\n 'filter': ['==', HighlightOptions.HighlightTypePropertyName, HighlightOptions.highlightTypeToString(HighlightType.Polygon)]\r\n };\r\n\r\n this._map.addLayer(polygonMbLayer, topLayer ? topLayer.id : null);\r\n\r\n const defaultSolidLine = new LineOptions();\r\n const solidLineMbLayer: maplibregl.LayerSpecification = {\r\n 'id': this._lineSolidLayerName,\r\n 'type': 'line',\r\n 'source': this._highlightsSourceName,\r\n 'metadata': { includeInIdentify: true },\r\n 'layout': {\r\n // 'line-join': ['get', 'lineJoin'],\r\n // 'line-cap': ['get', 'lineCap']\r\n // 'text-field': ['get', 'text'],\r\n // 'text-field': 'test',\r\n // 'text-font': ['Noto Sans Italic'],\r\n // 'line-sort-key': ['get', 'zindex'],\r\n 'line-join': 'round',\r\n 'line-cap': 'round'\r\n },\r\n 'paint': {\r\n 'line-color': this.getProperty(LineOptions.LineColorPropertyName, defaultSolidLine.lineColor),\r\n 'line-opacity': this.getProperty(LineOptions.LineOpacityPropertyName, defaultSolidLine.lineOpacity),\r\n 'line-width': this.getProperty(LineOptions.LineWidthPropertyName, defaultSolidLine.lineWidth)\r\n },\r\n 'filter': [\r\n 'all',\r\n ['==', HighlightOptions.HighlightTypePropertyName, HighlightOptions.highlightTypeToString(HighlightType.Line)],\r\n ['==', LineOptions.LineTypePropertyName, LineOptions.lineTypeToString(LineType.Solid)]\r\n ]\r\n };\r\n\r\n this._map.addLayer(solidLineMbLayer, topLayer ? topLayer.id : null);\r\n\r\n const defaultDottedLine = new LineOptions();\r\n const dottedLineMbLayer: maplibregl.LayerSpecification = {\r\n 'id': this._lineDottedLayerName,\r\n 'type': 'line',\r\n 'source': this._highlightsSourceName,\r\n 'metadata': { includeInIdentify: true },\r\n 'layout': {\r\n // 'line-join': ['get', 'lineJoin'],\r\n // 'line-cap': ['get', 'lineCap']\r\n // 'text-field': ['get', 'text'],\r\n // 'text-field': 'test',\r\n // 'text-font': ['Noto Sans Italic'],\r\n 'line-join': 'round',\r\n 'line-cap': 'round',\r\n 'line-round-limit': 0\r\n },\r\n 'paint': {\r\n 'line-color': this.getProperty(LineOptions.LineColorPropertyName, defaultDottedLine.lineColor),\r\n 'line-opacity': this.getProperty(LineOptions.LineOpacityPropertyName, defaultDottedLine.lineOpacity),\r\n 'line-width': 8,\r\n // 'line-dasharray': [0.01, 2]\r\n 'line-dasharray': [0, 2]\r\n },\r\n 'filter': [\r\n 'all',\r\n ['==', HighlightOptions.HighlightTypePropertyName, HighlightOptions.highlightTypeToString(HighlightType.Line)],\r\n ['==', LineOptions.LineTypePropertyName, LineOptions.lineTypeToString(LineType.Dotted)]\r\n ]\r\n };\r\n\r\n this._map.addLayer(dottedLineMbLayer, topLayer ? topLayer.id : null);\r\n\r\n const defaultDashedLine = new LineOptions();\r\n const dashedLineMbLayer: maplibregl.LayerSpecification = {\r\n 'id': this._lineDashedLayerName,\r\n 'type': 'line',\r\n 'source': this._highlightsSourceName,\r\n 'metadata': { includeInIdentify: true },\r\n 'layout': {\r\n // 'line-join': ['get', 'lineJoin'],\r\n // 'line-cap': ['get', 'lineCap']\r\n // 'text-field': ['get', 'text'],\r\n // 'text-field': 'test',\r\n // 'text-font': ['Noto Sans Italic'],\r\n 'line-join': 'round',\r\n 'line-cap': 'round'\r\n },\r\n 'paint': {\r\n 'line-color': this.getProperty(LineOptions.LineColorPropertyName, defaultDashedLine.lineColor),\r\n 'line-opacity': this.getProperty(LineOptions.LineOpacityPropertyName, defaultDashedLine.lineOpacity),\r\n 'line-width': this.getProperty(LineOptions.LineWidthPropertyName, defaultDashedLine.lineWidth),\r\n 'line-dasharray': [2, 2]\r\n },\r\n 'filter': [\r\n 'all',\r\n ['==', HighlightOptions.HighlightTypePropertyName, HighlightOptions.highlightTypeToString(HighlightType.Line)],\r\n ['==', LineOptions.LineTypePropertyName, LineOptions.lineTypeToString(LineType.Dashed)]\r\n ]\r\n };\r\n\r\n this._map.addLayer(dashedLineMbLayer, topLayer ? topLayer.id : null);\r\n\r\n const defaultCircle = new CircleOptions();\r\n const circleMbLayer: maplibregl.LayerSpecification = {\r\n 'id': this._circleLayerName,\r\n 'type': 'circle',\r\n 'source': this._highlightsSourceName,\r\n 'metadata': { includeInIdentify: true },\r\n 'paint': {\r\n 'circle-color': this.getProperty(CircleOptions.CircleColorPropertyName, defaultCircle.color),\r\n 'circle-opacity': this.getProperty(CircleOptions.CircleOpacityPropertyName, defaultCircle.opacity),\r\n 'circle-radius': this.getProperty(CircleOptions.CircleRadiusPropertyName, defaultCircle.radius),\r\n 'circle-stroke-color': this.getProperty(CircleOptions.OutlineColorPropertyName, defaultCircle.outlineColor),\r\n 'circle-stroke-width': this.getProperty(CircleOptions.OutlineWidthPropertyName, defaultCircle.outlineWidth)\r\n },\r\n 'filter': ['==', HighlightOptions.HighlightTypePropertyName, HighlightOptions.highlightTypeToString(HighlightType.Circle)]\r\n }\r\n\r\n this._map.addLayer(circleMbLayer, topLayer ? topLayer.id : null);\r\n\r\n const defaultMarker = new MarkerOptions();\r\n const markerMbLayer: maplibregl.LayerSpecification = {\r\n 'id': this._markerLayerName,\r\n 'type': 'symbol',\r\n 'source': this._highlightsSourceName,\r\n 'metadata': { includeInIdentify: true },\r\n 'layout': {\r\n 'icon-image': this.getProperty(MarkerOptions.IconPropertyName, defaultMarker.icon),\r\n 'icon-anchor': this.getProperty(MarkerOptions.AnchorPropertyName, defaultMarker.anchor),\r\n // 'icon-offset': this.getProperty(MarkerOptions.OffsetPropertyName, defaultMarker.offset), // nekaj narobe z offset expressioni\r\n 'icon-offset': this.getProperty(MarkerOptions.OffsetPropertyName, defaultMarker.offset, true),\r\n 'icon-size': this.getProperty(MarkerOptions.SizePropertyName, defaultMarker.size),\r\n 'icon-allow-overlap': true,\r\n 'symbol-sort-key': this.getProperty(MarkerOptions.ZIndexKeyPropertyName, defaultMarker.zindex)\r\n },\r\n 'filter': ['==', HighlightOptions.HighlightTypePropertyName, HighlightOptions.highlightTypeToString(HighlightType.Marker)]\r\n };\r\n\r\n this._map.addLayer(markerMbLayer, topLayer ? topLayer.id : null);\r\n }\r\n\r\n private processPan(ft: FeatureCollection, options: IHighlightOptions) {\r\n if (options) {\r\n if (options.pan === true) {\r\n options.cameraOptions.projection = null;\r\n this._map.fitCameraToFeatures(ft, options.cameraOptions);\r\n }\r\n\r\n if ('centroid' in options)\r\n this.showMarker(options['centroid'] as Geometry, new MarkerOptions({ pan: false }));\r\n }\r\n }\r\n\r\n private getProperty(property: string, def: any, addLiteral?: boolean): maplibregl.ExpressionSpecification {\r\n const defExpr = addLiteral ? ['literal', def] : def;\r\n return [\r\n 'case',\r\n ['all', ['has', property], ['!=', ['get', property], null]], ['get', property],\r\n defExpr\r\n ];\r\n }\r\n}\r\n","import { CoordinateLike } from '../../model/RM2Geometry';\r\nimport { RouteHighlightOptions, IRouteHighlightOptions } from '../../services/RM2RoutingService';\r\n\r\nexport class MapPickerControlOptions extends RouteHighlightOptions implements IRouteHighlightOptions {\r\n constructor(opts?: IMapPickerControlOptions) {\r\n super(opts);\r\n }\r\n}\r\n\r\nexport interface IMapPickerControlOptions extends IRouteHighlightOptions {\r\n}\r\n\r\nexport interface ILocationSelectData {\r\n coord: CoordinateLike;\r\n mouseButton: number;\r\n index?: number;\r\n}\r\n","import * as maplibregl from 'maplibre-gl';\r\n\r\nimport { Map } from '../../map/RM2Map';\r\nimport { MapEventArgs, RM2Event } from '../../model/RM2Event';\r\nimport { Popup } from '../../popup/RM2Popup';\r\nimport { IMapPickerControlOptions, MapPickerControlOptions, ILocationSelectData } from './RM2MapPickerControlOptions';\r\nimport { CoordinateLike, Point } from '../../model/RM2Geometry';\r\nimport { Route, RoutingService, RouteFeatureCollection } from '../../services/RM2RoutingService';\r\nimport { ServiceType } from '../../services/RM2Service';\r\nimport { LocalizationService } from '../../services/RM2LocalizationService';\r\n\r\nexport class MapPickerControl implements maplibregl.IControl {\r\n protected _map: Map;\r\n\r\n private _options: IMapPickerControlOptions;\r\n private _routingService: RoutingService;\r\n private _localizationService: LocalizationService;\r\n\r\n public enabled: boolean = true;\r\n public constructRoutes: boolean = true;\r\n public drawRoutes: boolean = true;\r\n\r\n public get onProcessingStatusChange() { return this._onProcessingStatusChange.expose(); }\r\n protected readonly _onProcessingStatusChange = new RM2Event();\r\n\r\n public get onLocationSelected() { return this._onLocationSelected.expose(); }\r\n protected readonly _onLocationSelected = new RM2Event();\r\n\r\n public get onRouteConstructed() { return this._onRouteConstructed.expose(); }\r\n protected readonly _onRouteConstructed = new RM2Event();\r\n\r\n private popupClick: Popup;\r\n private popupRemovePoint: Popup;\r\n private route: Route = { points: [], route: null };\r\n\r\n constructor(map: Map, opts?: IMapPickerControlOptions) {\r\n this._map = map;\r\n this._options = new MapPickerControlOptions(opts);\r\n\r\n this._routingService = this._map.getService(ServiceType.Routing) as RoutingService;\r\n this._localizationService = this._map.getService(ServiceType.Localization) as LocalizationService;\r\n\r\n map.onClick.subscribe(this.onMapClick);\r\n }\r\n\r\n onAdd(map: maplibregl.Map): HTMLElement {\r\n // const wrapper = document.createElement('div');\r\n // wrapper.className = 'maplibregl-ctrl maplibregl-ctrl-group';\r\n // wrapper.appendChild(this._button);\r\n\r\n return document.createElement('div');\r\n }\r\n\r\n onRemove() {\r\n // TODO: hide popup?\r\n this._map = undefined;\r\n }\r\n\r\n getDefaultPosition(): maplibregl.ControlPosition {\r\n return 'top-left';\r\n }\r\n\r\n hide() {\r\n if (this.popupClick)\r\n this.popupClick.close();\r\n \r\n if (this.popupRemovePoint)\r\n this.popupRemovePoint.close();\r\n }\r\n\r\n inject(route: Route) {\r\n this.route = route;\r\n }\r\n\r\n clear() {\r\n if (this.route) {\r\n this.route.points = [];\r\n this.route.route = null;\r\n }\r\n }\r\n\r\n private onMapClick = async (e: MapEventArgs) => {\r\n if (e.nativeEvent instanceof MouseEvent) {\r\n if (this.enabled === true) {\r\n if (e.nativeEvent.button === 0) { // LMB\r\n const found = e.features.find(ft => ft.geometry.type.toLowerCase() === 'point');\r\n if (found) {\r\n let index: number;\r\n const point = this.route.points.find((point, i) => {\r\n if (i > 0 && i < this.route.points.length - 1 && Point.fromCoordinate(point).distance(found.geometry) < 0.001) {\r\n index = i;\r\n return true;\r\n }\r\n return false;\r\n });\r\n\r\n if (point) {\r\n this.hide();\r\n\r\n const content = document.createElement('button');\r\n content.type = 'button';\r\n content.className = 'btn btn-danger';\r\n this._localizationService.localizeElement(content, 'general.remove');\r\n content.onclick = () => this.removeLocation(index);\r\n\r\n this.popupRemovePoint = this._map.openPopup(found.geometry.getCoordinate(), content, { addContainer: false, hasCloseButton: false, anchor: 'top' });\r\n }\r\n }\r\n else\r\n this._onLocationSelected.trigger({ coord: e.coordinate, mouseButton: 1 });\r\n }\r\n else if (e.nativeEvent.button === 2) { // RMB\r\n const group = document.createElement('div');\r\n group.className = 'list-group shadow';\r\n \r\n const aStart = document.createElement('a');\r\n aStart.type = 'button';\r\n aStart.className = 'list-group-item list-group-item-action';\r\n this._localizationService.localizeElement(aStart, 'rmap.rm.map-picker.set-as-start');\r\n aStart.onclick = () => this.addLocation(e.coordinate, 0, 2);\r\n group.appendChild(aStart);\r\n \r\n const aEnd = document.createElement('a');\r\n aEnd.type = 'button';\r\n aEnd.className = 'list-group-item list-group-item-action';\r\n this._localizationService.localizeElement(aEnd, this.route.points.length > 1 ? 'rmap.rm.map-picker.set-as-new-destination' : 'rmap.rm.map-picker.set-as-destination');\r\n aEnd.onclick = () => this.addLocation(e.coordinate, this.route.points.length === 0 ? 1 : this.route.points.length, 2);\r\n group.appendChild(aEnd);\r\n \r\n this.hide();\r\n this.popupClick = this._map.openPopup(e.coordinate, group, {\r\n addContainer: false,\r\n hasCloseButton: false,\r\n panOnOpen: false\r\n // cameraOptions: { relCenterX: this.getRelCenterX() }\r\n });\r\n }\r\n }\r\n }\r\n };\r\n\r\n private addLocation(coord: CoordinateLike, index: number, mouseButton: number) {\r\n this.hide();\r\n this._onLocationSelected.trigger({ coord: coord, mouseButton: mouseButton, index: index });\r\n if (this.constructRoutes) {\r\n if (index > this.route.points.length - 1)\r\n this.route.points.push(coord);\r\n else {\r\n if (this.route.points.length > 1)\r\n this.route.points.splice(index, 1, coord);\r\n else\r\n this.route.points.splice(index, 0, coord);\r\n }\r\n\r\n this.setRoute();\r\n }\r\n }\r\n\r\n private removeLocation(index: number) {\r\n this.hide();\r\n if (this.constructRoutes) {\r\n if (index > 0 && index < this.route.points.length)\r\n this.route.points.splice(index, 1);\r\n \r\n this.setRoute();\r\n }\r\n }\r\n\r\n private async setRoute() {\r\n if (this.route.points.length > 1) {\r\n this.setLoadingStatus(true);\r\n const route = await this._routingService.routev1(this.route.points.slice());\r\n this.setLoadingStatus(false);\r\n this._onRouteConstructed.trigger(route);\r\n if (route)\r\n this.route = route;\r\n else\r\n this.clear();\r\n }\r\n \r\n this.refreshRoute();\r\n }\r\n\r\n private refreshRoute() {\r\n if (this.drawRoutes === true) {\r\n if (this.route && this.route.points.length > 0)\r\n this._map.drawRoute(this.route, this._options);\r\n else\r\n this._map.clearRoute();\r\n }\r\n }\r\n\r\n private setLoadingStatus(loading: boolean) {\r\n this._onProcessingStatusChange.trigger(loading);\r\n }\r\n}\r\n","import { Projection } from '../model/RM2Projection';\r\n\r\nexport class GeolocationOptions implements IGeolocationOptions {\r\n projection?: Projection;\r\n pan?: boolean;\r\n rotate?: boolean;\r\n panIfNotInView?: boolean;\r\n animate?: boolean;\r\n isAccurate?: boolean\r\n showAccuracy?: boolean\r\n showHeading?: boolean\r\n minResolution?: number;\r\n autoZoom?: boolean;\r\n\r\n markerScale?: number;\r\n\r\n relCenterX?: number;\r\n relCenterY?: number;\r\n\r\n constructor(opts?: IGeolocationOptions) {\r\n this.pan = false;\r\n this.rotate = false;\r\n this.panIfNotInView = false;\r\n this.animate = false;\r\n this.isAccurate = true;\r\n this.showAccuracy = true;\r\n this.showHeading = true;\r\n this.minResolution = 1;\r\n this.autoZoom = true;\r\n this.markerScale = 1;\r\n\r\n if (opts) {\r\n if (opts.projection != undefined)\r\n this.projection = opts.projection;\r\n \r\n if (opts.pan != undefined)\r\n this.pan = opts.pan;\r\n\r\n if (opts.rotate != undefined)\r\n this.rotate = opts.rotate;\r\n\r\n if (opts.panIfNotInView != undefined)\r\n this.panIfNotInView = opts.panIfNotInView;\r\n\r\n if (opts.animate != undefined)\r\n this.animate = opts.animate;\r\n\r\n if (opts.isAccurate != undefined)\r\n this.isAccurate = opts.isAccurate;\r\n\r\n if (opts.showAccuracy != undefined)\r\n this.showAccuracy = opts.showAccuracy;\r\n\r\n if (opts.showHeading != undefined)\r\n this.showHeading = opts.showHeading;\r\n\r\n if (opts.minResolution != undefined)\r\n this.minResolution = opts.minResolution;\r\n\r\n if (opts.autoZoom != undefined)\r\n this.autoZoom = opts.autoZoom;\r\n\r\n if (opts.relCenterX != undefined && !isNaN(opts.relCenterX) && opts.relCenterX >= 0.00 && opts.relCenterX <= 1.00)\r\n this.relCenterX = opts.relCenterX;\r\n\r\n if (opts.relCenterY != undefined && !isNaN(opts.relCenterY) && opts.relCenterY >= 0.00 && opts.relCenterY <= 1.00)\r\n this.relCenterY = opts.relCenterY;\r\n\r\n if (opts.markerScale != undefined)\r\n this.markerScale = opts.markerScale;\r\n }\r\n }\r\n\r\n getPrimaryColor(): string { return this.isAccurate == true ? '#0F3C8F' : '#F0143C'; }\r\n getSecondaryColor(): string { return '#FFFFFF'; }\r\n getHeadingIconName(): string { return this.isAccurate == true ? 'geolocation-heading-accurate_B-48' : 'geolocation-heading-inaccurate_B-48'; }\r\n}\r\n\r\nexport interface IGeolocationOptions {\r\n projection?: Projection;\r\n pan?: boolean;\r\n rotate?: boolean;\r\n panIfNotInView?: boolean;\r\n animate?: boolean;\r\n isAccurate?: boolean;\r\n showAccuracy?: boolean;\r\n showHeading?: boolean;\r\n minResolution?: number;\r\n autoZoom?: boolean;\r\n\r\n markerScale?: number;\r\n\r\n relCenterX?: number;\r\n relCenterY?: number;\r\n}\r\n","import * as maplibregl from 'maplibre-gl';\r\n\r\nimport { IGeolocationOptions, GeolocationOptions } from './RM2GeolocationOptions';\r\nimport { IPanOptions } from '../model/RM2CameraChangeOptions';\r\nimport { Coordinate, Point } from '../model/RM2Geometry';\r\nimport { Map } from '../map/RM2Map';\r\nimport { FeatureCollection, Feature } from '..';\r\nimport { appendFileSync } from 'fs';\r\n\r\nexport class Geolocation {\r\n private _map: Map;\r\n\r\n private get PrimaryColorPropertyName(): string { return 'primaryColor'; }\r\n private get SecondaryColorPropertyName(): string { return 'secondaryColor'; }\r\n\r\n private get LocationMarkerScalePropertyName(): string { return 'locationMarkerScale'; }\r\n private get LocationMarkerOutlineWidthPropertyName(): string { return 'locationMarkerOutlineWidth'; }\r\n\r\n private get HeadingIconImagePropertyName(): string { return 'headingIconImage'; }\r\n private get HeadingIconScalePropertyName(): string { return 'headingIconScale'; }\r\n private get HeadingIconRotatePropertyName(): string { return 'headingIconRotate'; }\r\n\r\n private get AccuracyOutlineWidthPropertyName(): string { return 'accuracyOutlineWidth'; }\r\n private get AccuracyOutlineColorProperyName(): string { return 'accuracyOutlineColor'; }\r\n private get AccuracyOpacityPropertyName(): string { return 'accuracyOpacity'; }\r\n\r\n constructor(map: Map) {\r\n this._map = map;\r\n\r\n this.initSources();\r\n this.initLayers();\r\n }\r\n\r\n public showGeolocation(pos: RM2GeolocationPosition, opts: IGeolocationOptions) {\r\n if (pos == undefined || pos == null)\r\n return;\r\n\r\n const apos = pos as any;\r\n if (apos && apos.coords ) {\r\n if (apos.longitude === undefined) apos.longitude = apos.coords.longitude;\r\n if (apos.latitude === undefined) apos.latitude = apos.coords.latitude;\r\n if (apos.accuracy === undefined) apos.accuracy = apos.coords.accuracy;\r\n if (apos.heading === undefined) apos.heading = apos.coords.heading;\r\n }\r\n\r\n opts = new GeolocationOptions(opts);\r\n const src = this._map.getSource(this._geolocationSourceName) as maplibregl.GeoJSONSource;\r\n if (src) {\r\n this._map.setLayoutProperty(this._headingLayerName, 'visibility', opts.showHeading == true ? 'visible' : 'none');\r\n this._map.setLayoutProperty(this._accuracyLayerName, 'visibility', opts.showAccuracy == true ? 'visible' : 'none');\r\n\r\n src.setData(new FeatureCollection([this.createGeolocationFeature(pos, opts as GeolocationOptions)]).toGeoJson());\r\n this.updateAccuracyLayerRadius(pos);\r\n this.handleCamera(pos, opts);\r\n }\r\n else\r\n throw new Error('Could not find geolocation source when updating.');\r\n }\r\n\r\n public clearGeolocation() {\r\n const src = this._map.getSource(this._geolocationSourceName) as maplibregl.GeoJSONSource;\r\n if (src)\r\n src.setData(new FeatureCollection().toGeoJson());\r\n }\r\n\r\n protected isPositionInsideMap(pos: RM2GeolocationPosition) {\r\n const bounds: maplibregl.LngLatBounds = this._map.getBounds();\r\n const lng = pos.longitude;\r\n const lat = pos.latitude;\r\n\r\n return lng < bounds.getEast() && lat < bounds.getNorth() && lng > bounds.getWest() && lat > bounds.getSouth();\r\n }\r\n\r\n private createGeolocationFeature(pos: RM2GeolocationPosition, opts?: GeolocationOptions): Feature {\r\n const ft = new Feature();\r\n ft.properties = { };\r\n if (pos == null || pos == undefined)\r\n return ft;\r\n \r\n ft.geometry = Point.fromCoordinate(Coordinate.fromOrdinates([pos.longitude, pos.latitude]));\r\n if (opts == null || opts == undefined)\r\n opts = new GeolocationOptions();\r\n\r\n ft.properties[this.PrimaryColorPropertyName] = opts.getPrimaryColor();\r\n ft.properties[this.SecondaryColorPropertyName] = opts.getSecondaryColor();\r\n\r\n ft.properties[this.LocationMarkerScalePropertyName] = opts.markerScale;\r\n ft.properties[this.LocationMarkerOutlineWidthPropertyName] = 1;\r\n\r\n ft.properties[this.HeadingIconImagePropertyName] = opts.getHeadingIconName();\r\n ft.properties[this.HeadingIconScalePropertyName] = opts.markerScale;\r\n ft.properties[this.HeadingIconRotatePropertyName] = pos.heading;\r\n\r\n ft.properties[this.AccuracyOutlineWidthPropertyName] = 1;\r\n ft.properties[this.AccuracyOutlineColorProperyName] = opts.getSecondaryColor();\r\n ft.properties[this.AccuracyOpacityPropertyName] = 0.15;\r\n\r\n return ft;\r\n }\r\n\r\n private updateAccuracyLayerRadius(pos: RM2GeolocationPosition) {\r\n const accuracyLayer = this._map.getLayer(this._accuracyLayerName) as maplibregl.LayerSpecification;\r\n if (accuracyLayer) {\r\n this._map.setPaintProperty(this._accuracyLayerName, 'circle-radius', {\r\n stops: [\r\n [0, 0],\r\n [20, this.metersToPixelsAtMaxZoom(pos.accuracy, pos.latitude)]\r\n ],\r\n base: 2\r\n });\r\n }\r\n }\r\n\r\n private metersToPixelsAtMaxZoom = (meters: number, latitude: number): number => meters / 0.075 / Math.cos(latitude * Math.PI / 180);\r\n\r\n protected handleCamera(pos: RM2GeolocationPosition, opts: IGeolocationOptions) {\r\n let rotateTo = this._map.getView().bearing;\r\n if (opts.rotate && pos.heading !== undefined && pos.heading != null) rotateTo = pos.heading;\r\n\r\n const panOptions: IPanOptions = {\r\n zoom: null,\r\n projection: opts.projection,\r\n animate: opts.animate,\r\n relCenterX: opts.relCenterX,\r\n relCenterY: opts.relCenterY,\r\n bearing: rotateTo\r\n };\r\n\r\n const panCoord = Coordinate.fromOrdinates([pos.longitude, pos.latitude]);\r\n if (opts.pan)\r\n this._map.pan(panCoord, panOptions);\r\n else {\r\n if (opts.panIfNotInView && !this.isPositionInsideMap(pos))\r\n this._map.pan(panCoord, panOptions);\r\n else\r\n this._map.rotate(rotateTo);\r\n }\r\n }\r\n\r\n private readonly _geolocationSourceName: string = 'mb-r-geolocation-source';\r\n private readonly _accuracyLayerName: string = 'mb-r-geolocation-accuracy';\r\n private readonly _markerInnerCircleLayerName: string = 'mb-r-geolocation-marker-inner';\r\n private readonly _markerOuterCircleLayerName: string = 'mb-r-geolocation-marker-outer';\r\n private readonly _headingLayerName: string = 'mb-r-geolocation-heading';\r\n private initSources() {\r\n if (this._map.getSource(this._geolocationSourceName) == undefined)\r\n this._map.addSource(this._geolocationSourceName, { type: 'geojson', data: new FeatureCollection().toGeoJson() });\r\n }\r\n\r\n private initLayers() {\r\n if (this._map.getLayer(this._accuracyLayerName) == undefined) {\r\n const mbLayer: maplibregl.LayerSpecification = {\r\n 'id': this._accuracyLayerName,\r\n 'type': 'circle',\r\n 'source': this._geolocationSourceName,\r\n 'paint': {\r\n 'circle-color': ['get', this.PrimaryColorPropertyName],\r\n 'circle-opacity': ['get', this.AccuracyOpacityPropertyName],\r\n 'circle-stroke-width': ['get', this.AccuracyOutlineWidthPropertyName],\r\n 'circle-stroke-color': ['get', this.AccuracyOutlineColorProperyName],\r\n 'circle-pitch-scale': 'map',\r\n 'circle-pitch-alignment': 'map'\r\n }\r\n };\r\n\r\n this._map.addLayer(mbLayer);\r\n }\r\n\r\n if (this._map.getLayer(this._markerOuterCircleLayerName) == undefined) {\r\n const mbLayer: maplibregl.LayerSpecification = {\r\n 'id': this._markerOuterCircleLayerName,\r\n 'type': 'circle',\r\n 'source': this._geolocationSourceName,\r\n 'paint': {\r\n 'circle-color': ['get', this.SecondaryColorPropertyName],\r\n 'circle-radius': ['*', ['literal', 10], ['get', this.LocationMarkerScalePropertyName]],\r\n 'circle-stroke-width': 1,\r\n 'circle-stroke-color': ['get', this.PrimaryColorPropertyName],\r\n 'circle-pitch-scale': 'map',\r\n 'circle-pitch-alignment': 'map'\r\n }\r\n };\r\n\r\n this._map.addLayer(mbLayer);\r\n }\r\n\r\n if (this._map.getLayer(this._markerInnerCircleLayerName) == undefined) {\r\n const mbLayer: maplibregl.LayerSpecification = {\r\n 'id': this._markerInnerCircleLayerName,\r\n 'type': 'circle',\r\n 'source': this._geolocationSourceName,\r\n 'paint': {\r\n 'circle-color': ['get', this.PrimaryColorPropertyName],\r\n 'circle-radius': ['*', ['literal', 7], ['get', this.LocationMarkerScalePropertyName]],\r\n 'circle-pitch-scale': 'map',\r\n 'circle-pitch-alignment': 'map'\r\n }\r\n };\r\n\r\n this._map.addLayer(mbLayer);\r\n }\r\n\r\n if (this._map.getLayer(this._headingLayerName) == undefined) {\r\n const mbLayer: maplibregl.LayerSpecification = {\r\n 'id': this._headingLayerName,\r\n 'type': 'symbol',\r\n 'source': this._geolocationSourceName,\r\n 'layout': {\r\n 'icon-image': ['get', this.HeadingIconImagePropertyName],\r\n 'icon-size': ['*', ['literal', 0.5], ['get', this.HeadingIconScalePropertyName]],\r\n 'icon-rotate': ['get', this.HeadingIconRotatePropertyName],\r\n 'icon-anchor': 'center',\r\n 'icon-allow-overlap': true,\r\n 'icon-pitch-alignment': 'map',\r\n 'icon-rotation-alignment': 'map'\r\n }\r\n };\r\n\r\n this._map.addLayer(mbLayer);\r\n }\r\n }\r\n}\r\n\r\nexport class RM2GeolocationPosition {\r\n longitude: number;\r\n latitude: number;\r\n accuracy: number;\r\n heading: number;\r\n}\r\n","export class LayerGroup implements ILayerGroup {\r\n id: string;\r\n title: string;\r\n icon: string;\r\n iconClass: string;\r\n children: LayerGroup[];\r\n visible: boolean;\r\n uiVisible: boolean;\r\n sequenceMode: 'choice' | 'checkbox';\r\n uiGroupExpandable: boolean;\r\n uiGroupHeaderVisible: boolean;\r\n uiGroupAlwaysOpen: boolean;\r\n\r\n private readonly _parent: LayerGroup;\r\n\r\n constructor(group?: ILayerGroup, parent?: LayerGroup) {\r\n if (parent != undefined)\r\n this._parent = parent;\r\n\r\n this.visible = true;\r\n this.uiVisible = true;\r\n if (group) {\r\n if (group.id != undefined)\r\n this.id = group.id;\r\n\r\n if (group.title != undefined)\r\n this.title = group.title;\r\n\r\n if (group.icon != undefined)\r\n this.icon = group.icon;\r\n\r\n\r\n if (group.iconClass != undefined)\r\n this.iconClass = group.iconClass;\r\n\r\n if (group.children != undefined) {\r\n this.children = [];\r\n group.children.forEach(c => this.children.push(new LayerGroup(c, this)));\r\n }\r\n\r\n if (group.visible != undefined)\r\n this.visible = group.visible;\r\n\r\n if (group.uiVisible != undefined)\r\n this.uiVisible = group.uiVisible;\r\n \r\n if (group.sequenceMode != undefined)\r\n this.sequenceMode = group.sequenceMode;\r\n\r\n if (group.uiGroupExpandable != undefined)\r\n this.uiGroupExpandable = group.uiGroupExpandable;\r\n\r\n if (group.uiGroupHeaderVisible != undefined)\r\n this.uiGroupHeaderVisible = group.uiGroupHeaderVisible;\r\n\r\n if (group.uiGroupAlwaysOpen != undefined)\r\n this.uiGroupAlwaysOpen = group.uiGroupAlwaysOpen;\r\n }\r\n }\r\n\r\n getParent(): LayerGroup { return this._parent; }\r\n}\r\n\r\nexport interface ILayerGroup {\r\n id: string;\r\n title: string;\r\n icon: string;\r\n iconClass: string;\r\n children: LayerGroup[];\r\n visible: boolean;\r\n uiVisible: boolean;\r\n sequenceMode: 'choice' | 'checkbox';\r\n uiGroupExpandable: boolean;\r\n uiGroupHeaderVisible: boolean;\r\n uiGroupAlwaysOpen: boolean;\r\n}\r\n","import * as maplibregl from 'maplibre-gl';\r\n\r\nimport { ServiceType } from '../../services/RM2Service';\r\nimport { LocalizationService } from '../../services/RM2LocalizationService';\r\nimport { Map, PersistedVisibility } from '../../map/RM2Map';\r\nimport { LayerGroup, ILayerGroup } from '../../model/style-metadata/RM2LayerGroup';\r\nimport { Layer } from '../..';\r\n\r\nexport class LegendOptions {\r\n groups: LegendGroupOptions[];\r\n\r\n public getGroupData(id: string): LegendGroupOptions {\r\n return this.groups.find(e => e.sid == id.substring(id.length - e.sid.length));\r\n }\r\n}\r\n\r\nexport class LegendGroupOptions {\r\n sid: string;\r\n layers: LegendLayerOptions[];\r\n}\r\n\r\nexport class LegendLayerOptions {\r\n title: string;\r\n color: string;\r\n}\r\n\r\nexport class LegendControl implements maplibregl.IControl {\r\n private _map: Map;\r\n\r\n private _button: HTMLButtonElement;\r\n private _panel: HTMLDivElement;\r\n\r\n private _localizationService: LocalizationService;\r\n\r\n private hoveringCheckbox: boolean = false;\r\n private layerCheckboxes: HTMLInputElement[] = [];\r\n private getLayerCheckboxId(layerId: string): string { return `rm2-legend-layer-checkbox-${layerId}`; }\r\n private getGroupCheckboxId(layerId: string): string { return `rm2-legend-group-checkbox-${layerId}`; }\r\n\r\n constructor(map: Map, opts: LegendOptions) {\r\n this._map = map;\r\n\r\n this._localizationService = this._map.getService(ServiceType.Localization) as LocalizationService;\r\n\r\n this._button = this.createButton();\r\n this._panel = this.createPanel();\r\n\r\n this._map.onLayerVisibilityChanged.subscribe((l: Layer) => this.onLayerVisibilityChanged(l));\r\n this._map.onGroupVisibilityChanged.subscribe((l: LayerGroup) => this.onGroupVisibilityChanged(l));\r\n }\r\n\r\n onAdd(map: maplibregl.Map): HTMLElement {\r\n const wrapper = document.createElement('div');\r\n wrapper.className = 'mapboxgl-ctrl mapboxgl-ctrl-group';\r\n wrapper.appendChild(this._button);\r\n \r\n return wrapper;\r\n }\r\n\r\n onRemove() {\r\n this._button.parentNode.removeChild(this._button);\r\n if (this._panel.parentNode)\r\n this._panel.parentNode.removeChild(this._panel);\r\n \r\n this._map = undefined;\r\n }\r\n\r\n getDefaultPosition():maplibregl.ControlPosition {\r\n return 'top-right';\r\n }\r\n\r\n public open() {\r\n this.layerCheckboxes = [];\r\n const content = this.createLegend();\r\n this._panel.appendChild(content);\r\n\r\n this._button.parentNode.parentNode.appendChild(this._panel);\r\n\r\n this.resizePanel();\r\n window.addEventListener('resize', this.resizePanel)\r\n }\r\n\r\n public close() {\r\n if (this._panel) {\r\n while (this._panel.firstChild)\r\n this._panel.removeChild(this._panel.firstChild);\r\n \r\n if (this._panel.parentNode)\r\n this._panel.parentNode.removeChild(this._panel);\r\n }\r\n \r\n window.removeEventListener('resize', this.resizePanel);\r\n }\r\n\r\n private createButton(): HTMLButtonElement {\r\n const button = document.createElement('button');\r\n button.type = 'button'; // da se page ne refresha\r\n button.appendChild(document.createTextNode('≡'));\r\n button.onclick = () => this.open();\r\n\r\n return button;\r\n }\r\n\r\n private createPanel(): HTMLDivElement {\r\n const panel = document.createElement('div');\r\n panel.className = 'rm2-legend-panel rm2-map-controls-panel rounded p-2';\r\n\r\n // const closer = document.createElement('div');\r\n // closer.className = 'p-2 rm2-legend-panel-closer';\r\n // const i = document.createElement('i');\r\n // i.className = 'fa fa-times';\r\n // closer.appendChild(i);\r\n // closer.onclick = () => this.close();\r\n // panel.appendChild(closer);\r\n\r\n return panel;\r\n }\r\n\r\n // TODO: check, če se je višina sploh spremenila? base class za vse kontrole, ki se morajo spremeniti ob resizu windowa?\r\n private resizePanel = () => {\r\n const height = this._map.getSize()[1];\r\n this._panel.style.maxHeight = `CALC(${height}px - 1em)`;\r\n };\r\n\r\n private createLegend(groups?: LayerGroup[]): HTMLDivElement {\r\n if (groups == undefined) {\r\n var metadata = this._map.metadata;\r\n if (metadata && metadata.groups)\r\n groups = metadata.groups.filter(g => g.id && g.uiVisible !== false);\r\n }\r\n\r\n const content = document.createElement('div');\r\n groups.forEach(g => {\r\n const gid = g.id;\r\n const elementalLayersInGroup = this._map.getLayers(l => l.metadata && l.metadata.gid === gid && l.metadata.uiVisible !== false);\r\n\r\n switch (g.sequenceMode) {\r\n case 'choice': // radio\r\n // if (layersInGroup.length > 0) {\r\n // const listGroup = document.createElement('div');\r\n // listGroup.className = 'list-group';\r\n // layersInGroup.forEach(c => {\r\n // const listItem = document.createElement('a');\r\n // listItem.type = 'button';\r\n // listItem.className = 'list-group-item list-group-item-action d-flex w-100 p-2 align-items-center';\r\n // const listItemTitle = document.createElement('span');\r\n // // if (c.metadata.title)\r\n // // this._localizationService.localizeElement(listItemTitle, c.metadata.title);\r\n // listItemTitle.innerText = c.id;\r\n // listItem.appendChild(listItemTitle);\r\n // const listItemImg = document.createElement('img');\r\n // listItemImg.className = 'rm2-legend-layer-icon-big ml-auto';\r\n // if (c.metadata.icon)\r\n // listItemImg.src = c.metadata.icon;\r\n // listItem.appendChild(listItemImg);\r\n \r\n // // listItem.onclick = () => this._rMap.raiseInGroupLayer(l.sid);\r\n\r\n // listGroup.appendChild(listItem);\r\n // });\r\n\r\n // content.appendChild(listGroup);\r\n // }\r\n\r\n // if (g.children && g.children.length > 0) {\r\n // if (g.uiGroupExpandable !== false || g.uiGroupAlwaysOpen === true)\r\n // content.appendChild(this.createLegend(g.children));\r\n // }\r\n\r\n const listGroup = document.createElement('div');\r\n listGroup.className = 'list-group';\r\n if (g.children && g.children.length > 0) {\r\n g.children.forEach(c => {\r\n const listItem = document.createElement('a');\r\n listItem.type = 'button';\r\n listItem.className = 'list-group-item list-group-item-action d-flex w-100 p-2 align-items-center';\r\n const listItemTitle = document.createElement('span');\r\n if (c.title)\r\n this._localizationService.localizeElement(listItemTitle, c.title);\r\n listItem.appendChild(listItemTitle);\r\n const listItemImg = document.createElement('img');\r\n listItemImg.className = 'rm2-legend-layer-icon-big ml-auto';\r\n if (c.icon)\r\n listItemImg.src = c.icon;\r\n listItem.appendChild(listItemImg);\r\n \r\n listItem.onclick = () => {\r\n const filtered = g.children.filter(child => child.id !== c.id);\r\n filtered.forEach(other => this._map.setGroupVisibility(other.id, false));\r\n this._map.setGroupVisibility(c.id, true);\r\n\r\n const persist: PersistedVisibility[] = filtered.map(x => {\r\n return {\r\n type: 'group',\r\n id: x.id,\r\n visible: false\r\n };\r\n });\r\n\r\n persist.push({\r\n type: 'group',\r\n id: c.id,\r\n visible: true\r\n });\r\n\r\n this._map.persistVisibility(persist);\r\n };\r\n\r\n listGroup.appendChild(listItem);\r\n });\r\n \r\n content.appendChild(listGroup);\r\n }\r\n\r\n break;\r\n case 'checkbox':\r\n default:\r\n const container = document.createElement('div');\r\n // if (g.parent)\r\n // container.classList.add('mt-1', 'card');\r\n\r\n if (g.uiGroupExpandable !== false) {\r\n if (elementalLayersInGroup.length <= 1) {\r\n const formGroup = this.getCheckboxHeader(g);\r\n container.classList.add('rm2-legend-transparent-border-bg', 'ml-2');\r\n formGroup.classList.add('rm2-legend-transparent-border-bg', 'card-header', 'py-2');\r\n container.appendChild(formGroup);\r\n }\r\n else {\r\n const controls = 'rm2-legend-collapse-' + g.id;\r\n const groupContent = document.createElement('div');\r\n\r\n groupContent.className = 'collapse card-body p-0';\r\n groupContent.id = controls;\r\n\r\n if (g.uiGroupHeaderVisible !== false) {\r\n groupContent.classList.add('p-2');\r\n const groupCollapse = document.createElement('a');\r\n groupCollapse.className = 'card-header rm2-legend-pointer p-1 text-black w-100 d-inline-flex justify-content-start align-items-center';\r\n\r\n const formGroup = this.getCheckboxHeader(g, false);\r\n groupCollapse.appendChild(formGroup);\r\n\r\n if (g.uiGroupAlwaysOpen !== true) {\r\n const collapse = document.createElement('div');\r\n collapse.className = 'flex-grow-1';\r\n const collapseIcon = document.createElement('i');\r\n collapseIcon.className = 'fa fa-angle-down float-right pr-2';\r\n collapse.appendChild(collapseIcon);\r\n groupCollapse.appendChild(collapse);\r\n\r\n groupCollapse.onclick = () => {\r\n if (this.hoveringCheckbox === false) {\r\n groupContent.classList.toggle('show');\r\n collapseIcon.classList.toggle('fa-angle-down');\r\n collapseIcon.classList.toggle('fa-angle-up');\r\n }\r\n };\r\n }\r\n else\r\n groupContent.classList.add('show');\r\n\r\n container.appendChild(groupCollapse);\r\n }\r\n else\r\n groupContent.classList.add('show');\r\n\r\n elementalLayersInGroup.forEach(l => {\r\n const childHeader = this.getCheckboxHeader(l);\r\n groupContent.appendChild(childHeader);\r\n });\r\n container.appendChild(groupContent);\r\n }\r\n\r\n content.appendChild(container);\r\n }\r\n else {\r\n // container.className = 'w-100 d-inline-flex justify-content-start align-items-center';\r\n container.classList.add('rm2-legend-transparent-border-bg', 'ml-2');\r\n const formGroup = this.getCheckboxHeader(g);\r\n formGroup.classList.add('rm2-legend-transparent-border-bg', 'card-header', 'py-2');\r\n container.appendChild(formGroup);\r\n\r\n content.appendChild(container);\r\n }\r\n break;\r\n }\r\n });\r\n\r\n return content;\r\n }\r\n\r\n private getCheckboxHeader(el: LayerGroup | Layer, flexGrowLabel: boolean = true): HTMLDivElement {\r\n const formGroup = document.createElement('div');\r\n formGroup.className = 'rm2-legend-pointer custom-control custom-checkbox';\r\n const checkbox = document.createElement('input');\r\n const formId = el instanceof LayerGroup ? this.getGroupCheckboxId(el.id) : this.getLayerCheckboxId(el.id);\r\n checkbox.type = 'checkbox';\r\n checkbox.className = 'rm2-legend-pointer custom-control-input';\r\n checkbox.id = formId;\r\n if (el instanceof LayerGroup)\r\n checkbox.checked = el.visible !== false;\r\n else\r\n checkbox.checked = el.metadata == null || el.metadata.visible !== false;\r\n checkbox.onmouseenter = () => this.hoveringCheckbox = true;\r\n checkbox.onmouseleave = () => this.hoveringCheckbox = false;\r\n checkbox.onchange = (e) => {\r\n const vis = (e.target as HTMLInputElement).checked;\r\n const persist: PersistedVisibility = {\r\n type: 'group',\r\n id: el.id,\r\n visible: vis\r\n };\r\n\r\n if (el instanceof LayerGroup)\r\n this._map.setGroupVisibility(el.id, vis);\r\n else {\r\n persist.type = 'layer';\r\n this._map.setLayerVisibility(el.id, vis);\r\n }\r\n\r\n this._map.persistVisibility([persist]);\r\n }\r\n this.layerCheckboxes.push(checkbox);\r\n\r\n formGroup.appendChild(checkbox);\r\n const label = document.createElement('label');\r\n label.className = 'rm2-legend-pointer custom-control-label';\r\n label.htmlFor = formId;\r\n\r\n if (flexGrowLabel === true)\r\n label.classList.add('flex-grow-1');\r\n\r\n let iconSrc: string;\r\n if (el instanceof LayerGroup)\r\n iconSrc = el.icon;\r\n else {\r\n if (el.metadata.icon)\r\n iconSrc = el.metadata.icon;\r\n }\r\n \r\n if (iconSrc) {\r\n const icon = document.createElement('img');\r\n icon.className = 'rm2-legend-layer-icon mr-2';\r\n icon.src = iconSrc;\r\n label.appendChild(icon);\r\n }\r\n\r\n const title = document.createElement('span');\r\n this._localizationService.localizeElement(title, el instanceof LayerGroup ? el.title : el.metadata.title);\r\n label.appendChild(title);\r\n formGroup.appendChild(label);\r\n\r\n return formGroup;\r\n }\r\n\r\n private onGroupVisibilityChanged(group: LayerGroup) {\r\n const id = this.getGroupCheckboxId(group.id);\r\n const found = this.layerCheckboxes.find(checkbox => checkbox.id === id);\r\n if (found)\r\n found.checked = group.visible !== false;\r\n }\r\n\r\n private onLayerVisibilityChanged(layer: Layer) {\r\n const id = this.getLayerCheckboxId(layer.id);\r\n const found = this.layerCheckboxes.find(checkbox => checkbox.id === id);\r\n if (found)\r\n found.checked = layer.metadata.visible;\r\n }\r\n}\r\n","import { __extends } from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n __extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var intervalProvider = {\n setInterval: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = intervalProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {\n return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setInterval.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearInterval: function (handle) {\n var delegate = intervalProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=intervalProvider.js.map","import { __extends } from \"tslib\";\nimport { Action } from './Action';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nvar AsyncAction = (function (_super) {\n __extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, _id, delay) {\n if (delay === void 0) { delay = 0; }\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (_scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n intervalProvider.clearInterval(id);\n return undefined;\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, _delay) {\n var errored = false;\n var errorValue;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype.unsubscribe = function () {\n if (!this.closed) {\n var _a = this, id = _a.id, scheduler = _a.scheduler;\n var actions = scheduler.actions;\n this.work = this.state = this.scheduler = null;\n this.pending = false;\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n _super.prototype.unsubscribe.call(this);\n }\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","export var dateTimestampProvider = {\n now: function () {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar Scheduler = (function () {\n function Scheduler(schedulerActionCtor, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.schedulerActionCtor = schedulerActionCtor;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n };\n Scheduler.now = dateTimestampProvider.now;\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var asyncScheduler = new AsyncScheduler(AsyncAction);\nexport var async = asyncScheduler;\n//# sourceMappingURL=async.js.map","import { __extends } from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n __extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, now) || this;\n _this.actions = [];\n _this._active = false;\n _this._scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this._active) {\n actions.push(action);\n return;\n }\n var error;\n this._active = true;\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()));\n this._active = false;\n if (error) {\n while ((action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import { Feature } from '../../model/RM2Feature';\r\nimport { RouteFeatureCollection, IRouteHighlightOptions, RouteHighlightOptions, Route } from '../../services/RM2RoutingService';\r\n\r\nexport class RoutingControlOptions extends RouteHighlightOptions implements IRouteHighlightOptions {\r\n constructor(opts?: IRoutingControlOptions) {\r\n super(opts);\r\n }\r\n}\r\n\r\nexport interface IRoutingControlOptions extends IRouteHighlightOptions {\r\n}\r\n\r\nexport class RoutingInput {\r\n id: string;\r\n placeholderText: string;\r\n placeholderTextAlt: string;\r\n\r\n public set disabled(value: boolean) {\r\n this.getTarget().disabled = value;\r\n this._actionButtons.forEach(btn => btn.target.disabled = value);\r\n }\r\n\r\n private _element: HTMLInputElement;\r\n private _location: Feature;\r\n private _actionButtons: RoutingInputActionButton[] = [];\r\n\r\n constructor(id: string, placeholderText: string, placeholderTextAlt: string) {\r\n this.id = id;\r\n this.placeholderText = placeholderText;\r\n this.placeholderTextAlt = placeholderTextAlt;\r\n }\r\n\r\n public getTarget(): HTMLInputElement { return this._element; }\r\n public setTarget(target: HTMLInputElement) { this._element = target; }\r\n\r\n public getLocation(): Feature { return this._location; }\r\n public saveLocation(location: Feature) { this._location = location; }\r\n\r\n public addActionButton(button: RoutingInputActionButton) {\r\n const found = this.getActionButton(button.type);\r\n if (found)\r\n throw new Error('An action button of type \\'' + RoutingInputActionButtonType[button.type] + '\\' already exists in the routing input.');\r\n else\r\n this._actionButtons.push(button);\r\n }\r\n\r\n public getActionButton(type: RoutingInputActionButtonType) { return this._actionButtons.find(btn => btn.type === type); }\r\n}\r\n\r\nexport class RoutingInputActionButton {\r\n private _type: RoutingInputActionButtonType;\r\n public get type(): RoutingInputActionButtonType { return this._type; }\r\n\r\n private _target: HTMLButtonElement;\r\n public get target(): HTMLButtonElement { return this._target; }\r\n\r\n public get visible(): boolean { return this.target && this.target.style.display !== 'none'; };\r\n public set visible(visible: boolean) {\r\n if (this._target)\r\n this._target.style.display = visible !== false ? 'inline-block' : 'none';\r\n }\r\n\r\n constructor(type: RoutingInputActionButtonType, target: HTMLButtonElement, visible?: boolean) {\r\n this._type = type;\r\n this._target = target;\r\n\r\n if (visible != undefined)\r\n this.visible = visible;\r\n }\r\n}\r\n\r\nexport enum RoutingInputActionButtonType {\r\n MyLocation = 0,\r\n PanToLocation = 1,\r\n Clear = 2\r\n}\r\n\r\nexport class ToolbarItem {\r\n id: string;\r\n icon: string;\r\n showDisclaimer?: boolean = true;\r\n enabled?: boolean;\r\n element?: HTMLDivElement;\r\n data?: Route;\r\n}\r\n","import { asyncScheduler } from '../scheduler/async';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) { scheduler = asyncScheduler; }\n return operate(function (source, subscriber) {\n var activeTask = null;\n var lastValue = null;\n var lastTime = null;\n var emit = function () {\n if (activeTask) {\n activeTask.unsubscribe();\n activeTask = null;\n var value = lastValue;\n lastValue = null;\n subscriber.next(value);\n }\n };\n function emitWhenIdle() {\n var targetTime = lastTime + dueTime;\n var now = scheduler.now();\n if (now < targetTime) {\n activeTask = this.schedule(undefined, targetTime - now);\n subscriber.add(activeTask);\n return;\n }\n emit();\n }\n source.subscribe(createOperatorSubscriber(subscriber, function (value) {\n lastValue = value;\n lastTime = scheduler.now();\n if (!activeTask) {\n activeTask = scheduler.schedule(emitWhenIdle, dueTime);\n subscriber.add(activeTask);\n }\n }, function () {\n emit();\n subscriber.complete();\n }, undefined, function () {\n lastValue = activeTask = null;\n }));\n });\n}\n//# sourceMappingURL=debounceTime.js.map","export class Utils {\r\n\r\n public static routeColor(selected: boolean) { return selected ? '#0F3C8F' : '#BBBDBF'; }\r\n public static routeOrangeColor(selected: boolean) { return selected ? '#F49E00' : '#BB9F8D'; }\r\n public static routeRedColor(selected: boolean) { return selected ? '#E2001A' : '#A57F7E'; }\r\n\r\n public static formatDistance(distance: number): string {\r\n if (distance < 1000)\r\n return `${Math.round(distance)} m`;\r\n else if (distance < 100000)\r\n return `${Math.round((distance / 1000) * 100) / 100} km`;\r\n else\r\n return `${Math.round(distance / 1000)} km`;\r\n }\r\n\r\n public static formatDuration(seconds: number): string {\r\n if (seconds < 60)\r\n return `${Math.round(seconds)}s`;\r\n else if (seconds < 3600)\r\n return `${Math.round(seconds / 60)}min`;\r\n else {\r\n const h = Math.floor(seconds / 3600);\r\n const min = Math.round((seconds - (h * 3600)) / 60);\r\n return `${h}h ${min}min`;\r\n }\r\n }\r\n}","import * as maplibregl from 'maplibre-gl';\r\n\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { FeatureCollection, Point } from '../..';\r\nimport { PaddingOptions, PanOptions } from '../../model/RM2CameraChangeOptions';\r\nimport { Coordinate, CoordinateLike } from '../../model/RM2Geometry';\r\nimport { IRoutingControlOptions, RoutingControlOptions, RoutingInput, ToolbarItem, RoutingInputActionButton, RoutingInputActionButtonType } from './RM2RoutingControlOptions';\r\nimport { MapControlType } from '../RM2MapControls';\r\nimport { MapPickerControl } from '../map-picker-control/RM2MapPickerControl';\r\nimport { ServiceType } from '../../services/RM2Service';\r\nimport { Utils } from '../../services/RM2StaticService';\r\nimport { GeocodeLocFeatureCollectionProperties, GeocodeLocFeatureProperties, GeocodeLocLocationType, IQueryOptions, NominatimService, Query_v2LocationType, Query_v2ResponseFeatureCollectionProperties, Query_v2ResponseFeatureProperties, ReverseGeocodingFeatureProperties, ReverseGeocodingProperties } from '../../services/RM2NominatimService';\r\nimport { RoutingService, RouteFeatureCollection, RouteInstructionsFeatureCollection } from '../../services/RM2RoutingService';\r\nimport { LocalizationService } from '../../services/RM2LocalizationService';\r\nimport { Map } from '../../map/RM2Map';\r\nimport { Feature } from '../../model/RM2Feature';\r\n\r\ndeclare var $: any;\r\n\r\nexport class RoutingControl implements maplibregl.IControl {\r\n protected _map: Map;\r\n \r\n private _options: RoutingControlOptions;\r\n private _routingService: RoutingService;\r\n private _nominatimService: NominatimService;\r\n private _localizationService: LocalizationService;\r\n private _mapPicker: MapPickerControl;\r\n\r\n protected _button: HTMLButtonElement;\r\n protected _panel: HTMLDivElement;\r\n protected _panelTop: HTMLDivElement;\r\n protected _panelBottom: HTMLDivElement;\r\n protected _spinner: HTMLElement;\r\n protected _message: HTMLDivElement;\r\n protected _reverseLocations: HTMLElement;\r\n protected _disclaimer: HTMLElement;\r\n protected _searchResults: HTMLUListElement;\r\n protected _toolbarContent: HTMLDivElement;\r\n protected _searchInputs: RoutingInput[] = [\r\n new RoutingInput('input-1', '[placeholder]rmap.rm.routing.enter-start', '[placeholder]rmap.rm.routing.enter-start-alt'),\r\n new RoutingInput('input-2', '[placeholder]rmap.rm.routing.enter-finish', '[placeholder]rmap.rm.routing.enter-finish-alt')\r\n ];\r\n\r\n private get searchInputIdWaitingForLocation(): number {\r\n if (this.getPanelStatus() === false)\r\n return undefined;\r\n \r\n for (let i = 0; i < this._searchInputs.length; i++) {\r\n const input = this._searchInputs[i];\r\n if (input.getLocation() == undefined)\r\n return i;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private lastFocusedInput: string;\r\n private focusedTransportationMode: ToolbarItem;\r\n private locationHighlight: Feature;\r\n private routeStationHighlight: Feature;\r\n\r\n private inputChangeDebouncing: Subject = new Subject();\r\n\r\n private searchResultsHideTimeout;\r\n private focusedSearchResult: number;\r\n // private hoveringSearchResults: boolean = false;\r\n private searchInputPlaceholder = '[placeholder]rmap.rm.routing.search-placeholder';\r\n private searchToolbarItem: ToolbarItem = {\r\n id: 'SEARCH',\r\n icon: 'fa fa-2x fa-search',\r\n showDisclaimer: false\r\n };\r\n\r\n private transportationModes: ToolbarItem[] = [\r\n // { id: 'PUBLIC', icon: 'fa fa-2x fa-bus', enabled: false },\r\n // { id: 'BICYCLE_RENT', icon: 'fa fa-2x fa-bicycle', enabled: false },\r\n // { id: 'WALK', icon: 'fa fa-2x fa-walking', enabled: false },\r\n { id: 'CAR', icon: 'fa fa-2x fa-car' }\r\n ];\r\n\r\n constructor(map: Map, opts?: IRoutingControlOptions) {\r\n this._map = map;\r\n this._options = new RoutingControlOptions(opts);\r\n\r\n this._routingService = this._map.getService(ServiceType.Routing) as RoutingService;\r\n this._nominatimService = this._map.getService(ServiceType.Nominatim) as NominatimService;\r\n this._localizationService = this._map.getService(ServiceType.Localization) as LocalizationService;\r\n\r\n this._mapPicker = this._map.getControl(MapControlType.MapPicker);\r\n if (this._mapPicker == undefined)\r\n throw new Error('Routing control requires the map picker control to be added to the map (\\'' + MapControlType.MapPicker + '\\').');\r\n\r\n this._mapPicker.drawRoutes = false;\r\n this._mapPicker.constructRoutes = false;\r\n this._mapPicker.onLocationSelected.subscribe(async (loc) => {\r\n if (this.getLoadingStatus() === false) {\r\n const geocode = async (): Promise> => {\r\n let l = null;\r\n try {\r\n l = await this.reverse(loc.coord, { pageSize: 1 });\r\n }\r\n catch {\r\n console.warn('Reverse geocoding failed - forwarding clicked coordinate.');\r\n }\r\n\r\n if (l == null || l.length === 0)\r\n l = new FeatureCollection([new Feature({ Title: `${loc.coord[0]}, ${loc.coord[1]}` })]);\r\n \r\n l.features[0].geometry = clickCoord;\r\n return l;\r\n };\r\n\r\n const clickCoord = Point.fromCoordinate(loc.coord);\r\n if (loc.mouseButton === 1 && this.getPanelStatus() === true && this.searchInputIdWaitingForLocation != undefined) { // LMB\r\n this.setLoadingStatus(true);\r\n \r\n const l = (await geocode()).first;\r\n this.setLoadingStatus(false);\r\n const found = this._searchInputs[this.searchInputIdWaitingForLocation];\r\n this.setSearchInputValue(found, l, true, false);\r\n\r\n if (this.searchInputIdWaitingForLocation == undefined)\r\n this.selectTransportationModeTab(0);\r\n }\r\n else if (loc.mouseButton === 2) { // RMB\r\n this.setLoadingStatus(true);\r\n if (this.getPanelStatus() === false)\r\n this.setPanelStatus(true);\r\n \r\n this.selectTransportationModeTab(0);\r\n const l = (await geocode()).first;\r\n this.setLoadingStatus(false);\r\n\r\n if (loc.index > this._searchInputs.length - 1) // TODO: ko bo več inputov, tukaj fix\r\n loc.index = this._searchInputs.length - 1;\r\n \r\n const found = this._searchInputs[loc.index];\r\n this.setSearchInputValue(found, l, true, false);\r\n }\r\n }\r\n });\r\n\r\n this._button = this.createButton();\r\n this._panel = this.createPanel();\r\n\r\n this.inputChangeDebouncing.pipe(debounceTime(200)).subscribe(async (e) => this.processInputChange(e));\r\n this.onSearchTabSelected();\r\n }\r\n\r\n onAdd(map: maplibregl.Map): HTMLElement {\r\n const wrapper = document.createElement('div');\r\n wrapper.className = 'mapboxgl-ctrl mapboxgl-ctrl-group';\r\n wrapper.appendChild(this._button);\r\n\r\n return wrapper;\r\n }\r\n\r\n onRemove() {\r\n this._button.parentNode.removeChild(this._button);\r\n this._panel.parentNode.removeChild(this._panel);\r\n this._map = undefined;\r\n }\r\n\r\n getDefaultPosition(): maplibregl.ControlPosition {\r\n return 'top-left';\r\n }\r\n\r\n private createButton(): HTMLButtonElement {\r\n const button = document.createElement('button');\r\n button.type = 'button';\r\n button.className = 'rm2-routing-control-main-btn';\r\n const i = document.createElement('i');\r\n i.className = 'fa fa-route';\r\n button.appendChild(i);\r\n button.onclick = () => {\r\n this.setPanelStatus(true);\r\n if (this.focusedTransportationMode && this.focusedTransportationMode.data)\r\n this.showModeRoute(this.focusedTransportationMode);\r\n else {\r\n if (this.locationHighlight)\r\n this.highlightLocation(this.locationHighlight.geometry.getCoordinate(), true)\r\n }\r\n };\r\n\r\n return button;\r\n }\r\n\r\n // TODO: check, če se je višina sploh spremenila? base class za vse kontrole, ki se morajo spremeniti ob resizu windowa?\r\n private resizePanel = () => {\r\n const height = this._map.getSize()[1];\r\n if (this.isMobile())\r\n this._panel.style.maxHeight = `${height}px`;\r\n else\r\n this._panel.style.maxHeight = `CALC(${height}px - 1em)`;\r\n };\r\n\r\n private createPanel(): HTMLDivElement {\r\n const panel = document.createElement('div');\r\n panel.className = 'rm2-routing-control-panel rm2-map-controls-panel flex-column';\r\n // const height = this._rMap.getSize()[1];\r\n // panel.style.maxHeight = `${height}px`;\r\n\r\n this._panelTop = this.createPanelTop();\r\n panel.appendChild(this._panelTop);\r\n\r\n panel.appendChild(this.createSearchResults());\r\n\r\n this._panelBottom = this.createPanelBottom();\r\n panel.appendChild(this._panelBottom);\r\n\r\n return panel;\r\n }\r\n\r\n private createPanelTop(): HTMLDivElement {\r\n const panelTop = document.createElement('div');\r\n panelTop.className = 'panel-top border';\r\n\r\n /* Transportation modes TABS */\r\n panelTop.appendChild(this.createToolbar());\r\n\r\n const container = document.createElement('div');\r\n container.className = 'panel-top-container';\r\n /* Location search inputs */\r\n const inputsContainer = document.createElement('div');\r\n inputsContainer.className = 'panel-top-inputs';\r\n this._searchInputs.forEach((routingInput, i) => {\r\n const container = document.createElement('div');\r\n container.className = 'rm2-routing-search-input-container input-group mb-2';\r\n const input = this.createInput(routingInput);\r\n const inputAppend = document.createElement('div');\r\n inputAppend.className = 'input-group-append';\r\n const myLocBtn = document.createElement('button');\r\n myLocBtn.className = 'btn rm2-routing-search-input-btn';\r\n myLocBtn.type = 'button';\r\n const myLocBtnIcon = document.createElement('i');\r\n myLocBtnIcon.className = 'fa fa-crosshairs';\r\n myLocBtn.appendChild(myLocBtnIcon);\r\n myLocBtn.onclick = () => {\r\n this.setLoadingStatus(true);\r\n navigator.geolocation.getCurrentPosition(async (e) => {\r\n const locs = await this.reverse([e.coords.longitude, e.coords.latitude], { pageSize: 1 });\r\n if (locs && locs.length > 0) {\r\n this.setSearchInputValue(routingInput, locs.first);\r\n\r\n // TODO: check accuracy - notify if bad?\r\n const ts = e.timestamp;\r\n if ((new Date().getTime() - ts) > 10 * 60 * 1000)\r\n this.setMessage({ title: 'rmap.rm.routing.warnings.old-location.title', content: 'rmap.rm.routing.warnings.old-location.content', i18nOptions: { mins: 10 } }, 'warning');\r\n else\r\n this.hideMessage();\r\n }\r\n else\r\n this.setMessage({ title: 'general.errors.generic.title', content: 'rmap.general.errors.cannot-get-user-location' }, 'danger');\r\n \r\n this.setLoadingStatus(false);\r\n },\r\n () => {\r\n this.setMessage({ title: 'general.errors.generic.title', content: 'rmap.general.errors.cannot-get-user-location' }, 'danger');\r\n this.setLoadingStatus(false);\r\n });\r\n };\r\n routingInput.addActionButton(new RoutingInputActionButton(RoutingInputActionButtonType.MyLocation, myLocBtn));\r\n inputAppend.appendChild(myLocBtn);\r\n\r\n const panToLocBtn = document.createElement('button');\r\n panToLocBtn.className = 'btn rm2-routing-search-input-btn';\r\n panToLocBtn.type = 'button';\r\n const locBtnIcon = document.createElement('i');\r\n locBtnIcon.className = 'fa fa-map-marker-alt';\r\n panToLocBtn.appendChild(locBtnIcon);\r\n panToLocBtn.onclick = () => {\r\n const loc = routingInput.getLocation();\r\n if (loc)\r\n this.highlightLocation(loc.geometry.getCoordinate(), true);\r\n };\r\n routingInput.addActionButton(new RoutingInputActionButton(RoutingInputActionButtonType.PanToLocation, panToLocBtn, false));\r\n inputAppend.appendChild(panToLocBtn);\r\n\r\n const clearBtn = document.createElement('button');\r\n clearBtn.className = 'btn rm2-routing-search-input-btn';\r\n clearBtn.type = 'button';\r\n const clearBtnIcon = document.createElement('i');\r\n clearBtnIcon.className = 'fa fa-times';\r\n clearBtn.appendChild(clearBtnIcon);\r\n clearBtn.onclick = () => {\r\n input.value = '';\r\n this.processInputChange(input);\r\n };\r\n routingInput.addActionButton(new RoutingInputActionButton(RoutingInputActionButtonType.Clear, clearBtn));\r\n inputAppend.appendChild(clearBtn);\r\n\r\n container.appendChild(input);\r\n container.appendChild(inputAppend);\r\n\r\n inputsContainer.appendChild(container);\r\n });\r\n container.appendChild(inputsContainer);\r\n\r\n /* Reverse locations button */\r\n const reverseLocations = document.createElement('div');\r\n reverseLocations.className = 'panel-top-reverse-locations';\r\n const reverseLocationsBtn = document.createElement('button');\r\n reverseLocationsBtn.type = 'button'; // da se page ne refresha\r\n reverseLocationsBtn.className = 'rm2-routing-control-btn';\r\n const i = document.createElement('i');\r\n i.className = 'fa fa-2x fa-exchange-alt fa-rotate-90';\r\n reverseLocations.appendChild(reverseLocationsBtn);\r\n reverseLocationsBtn.appendChild(i);\r\n\r\n // TODO: debouncing?\r\n reverseLocationsBtn.onclick = () => {\r\n if (this._searchInputs.length === 2) {\r\n const first = this._searchInputs.shift();\r\n const firstLoc = first.getLocation();\r\n const second = this._searchInputs.shift();\r\n const secondLoc = second.getLocation();\r\n\r\n first.saveLocation(null);\r\n second.saveLocation(null);\r\n this._searchInputs.push(first);\r\n this._searchInputs.push(second);\r\n\r\n this.setSearchInputValue(second, firstLoc, false, false);\r\n this.setSearchInputValue(first, secondLoc, false, false);\r\n\r\n this.locationHighlight = null;\r\n }\r\n };\r\n \r\n this._reverseLocations = reverseLocations;\r\n container.appendChild(reverseLocations);\r\n panelTop.appendChild(container);\r\n\r\n // disclaimer\r\n if (this._map.metadata.enableRoutingDisclaimer) {\r\n this._disclaimer = document.createElement('span');\r\n this._localizationService.localizeElement(this._disclaimer, 'rmap.rm.routing.disclaimer');\r\n panelTop.appendChild(this._disclaimer);\r\n\r\n this.refreshDisclaimerVisibility();\r\n }\r\n\r\n return panelTop;\r\n }\r\n\r\n private createSearchResults(): HTMLDivElement {\r\n const searchResults = document.createElement('ul');\r\n searchResults.className = 'list-group rm2-routing-control-search-results border rounded-bottom shadow';\r\n\r\n const size = this._map.getSize();\r\n searchResults.style.maxHeight = `${size[1] / 2}px`;\r\n // searchResults.onmouseenter = () => this.hoveringSearchResults = true;\r\n // searchResults.onmouseleave = () => this.hoveringSearchResults = false;\r\n searchResults.addEventListener('focus', () => this.stopSearchResultsHideTimeout(), true);\r\n searchResults.addEventListener('blur', () => this.startSearchResultsHideTimeout(), true);\r\n\r\n this._searchResults = searchResults;\r\n\r\n const container = document.createElement('div');\r\n container.className = 'rm2-routing-control-search-results-container';\r\n container.appendChild(searchResults);\r\n \r\n return container;\r\n }\r\n\r\n private createPanelBottom(): HTMLDivElement {\r\n const panelBottom = document.createElement('div');\r\n panelBottom.className = 'panel-bottom border';\r\n\r\n /* Spinner */\r\n this._spinner = document.createElement('div');\r\n this._spinner.className = 'text-center p-2 d-none';\r\n const spinnerContent = document.createElement('div');\r\n spinnerContent.className = 'spinner-border';\r\n spinnerContent.setAttribute('role', 'status');\r\n const spinnerSpan = document.createElement('span');\r\n spinnerSpan.className = 'sr-only';\r\n spinnerSpan.innerText = 'Loading ...';\r\n spinnerContent.appendChild(spinnerSpan);\r\n this._spinner.append(spinnerContent);\r\n panelBottom.appendChild(this._spinner);\r\n\r\n this._toolbarContent = this.createToolbarContent();\r\n panelBottom.appendChild(this._toolbarContent);\r\n\r\n return panelBottom;\r\n }\r\n\r\n private createInput(routingInput: RoutingInput): HTMLInputElement {\r\n const input = document.createElement('input');\r\n input.type = 'text';\r\n input.id = routingInput.id;\r\n this._localizationService.localizeElement(input, routingInput.placeholderText);\r\n input.className = 'rm2-routing-search-input form-control';\r\n\r\n input.onkeyup = this.onSearchKeyUp;\r\n input.addEventListener('focus', () => {\r\n this.lastFocusedInput = input.id;\r\n if (input.value.length > 0)\r\n this.processInputChange(input);\r\n \r\n // if (this._searchResults.children.length > 0)\r\n // this._searchResults.classList.add('active');\r\n this.stopSearchResultsHideTimeout();\r\n }, true);\r\n\r\n input.addEventListener('blur', this.startSearchResultsHideTimeout, true);\r\n\r\n routingInput.setTarget(input);\r\n return input;\r\n }\r\n\r\n private createToolbar(): HTMLDivElement {\r\n const div = document.createElement('div');\r\n div.className = 'rm2-routing-toolbar mb-3';\r\n const ul = document.createElement('ul');\r\n ul.className = 'nav nav-pills rm2-routing-transportation-modes-tabs';\r\n ul.id = 'pills-tab';\r\n ul.setAttribute('role', 'tablist');\r\n\r\n const search = this.createToolbarItem(this.searchToolbarItem.id, this.searchToolbarItem.icon, true, true);\r\n search.onclick = () => {\r\n if (this.focusedTransportationMode == undefined) {\r\n const loc = this._searchInputs[0].getLocation();\r\n if (loc)\r\n this.highlightLocation(loc.geometry.getCoordinate(), true);\r\n }\r\n };\r\n\r\n ul.appendChild(search);\r\n\r\n for (let i = 0; i < this.transportationModes.length; i++) {\r\n const mode = this.transportationModes[i].id;\r\n const modeIcon = this.transportationModes[i].icon;\r\n const enabled = this.transportationModes[i].enabled !== false;\r\n\r\n const li = this.createToolbarItem(mode, modeIcon, enabled, false);\r\n li.onclick = () => {\r\n if (this.focusedTransportationMode && this.focusedTransportationMode.id === mode)\r\n this.showModeRoute(this.transportationModes[i]);\r\n };\r\n\r\n ul.appendChild(li);\r\n }\r\n \r\n div.appendChild(ul);\r\n\r\n /* Hide button */\r\n const hideI = document.createElement('i');\r\n hideI.className = 'fa fa-arrow-left rm2-routing-control-hide p-3';\r\n hideI.onclick = () => {\r\n this.setPanelStatus(false);\r\n this.clearRoute();\r\n this.clearHighlight();\r\n };\r\n div.appendChild(hideI);\r\n\r\n /* Clear button */\r\n const clear = document.createElement('i');\r\n clear.className = 'fa fa-times rm2-routing-control-clear p-3';\r\n clear.onclick = () => this.clearSearch();\r\n div.appendChild(clear);\r\n\r\n return div;\r\n }\r\n\r\n private createToolbarItem(label: string, icon: string, enabled: boolean, active: boolean): HTMLLIElement {\r\n const li = document.createElement('li');\r\n li.className = 'nav-item rm2-routing-transportation-modes-tab-item';\r\n const a = document.createElement('a');\r\n const id = 'pills-' + label + '-tab';\r\n a.className = 'nav-link' + (active === true ? ' active' : '') + (enabled === false ? ' disabled': '');\r\n a.id = id;\r\n a.setAttribute('data-toggle', 'pill');\r\n a.setAttribute('mode', label);\r\n a.href = '#pills-' + label;\r\n a.setAttribute('role', 'tab');\r\n a.setAttribute('aria-controls', 'pills-' + label);\r\n a.setAttribute('aria-selected', 'true');\r\n const i = document.createElement('i');\r\n i.className = icon;\r\n a.appendChild(i);\r\n li.appendChild(a);\r\n\r\n return li;\r\n }\r\n\r\n private createToolbarContent(): HTMLDivElement {\r\n const content = document.createElement('div');\r\n content.className = 'tab-content rm2-routing-toolbar-content';\r\n content.id = 'pills-tabContent';\r\n\r\n const search = this.createToolbarContentItem(this.searchToolbarItem.id, true);\r\n content.appendChild(search);\r\n\r\n for (let i = 0; i < this.transportationModes.length; i++) {\r\n const mode = this.transportationModes[i].id;\r\n const div = this.createToolbarContentItem(mode, false);\r\n content.appendChild(div);\r\n this.transportationModes[i].element = div;\r\n }\r\n \r\n return content;\r\n }\r\n\r\n private createToolbarContentItem(label: string, active: boolean) {\r\n const div = document.createElement('div');\r\n div.className = 'tab-pane fade' + (active === true ? ' show active' : '');\r\n div.id = 'pills-' + label;\r\n div.setAttribute('role', 'tabpanel');\r\n div.setAttribute('aria-labelledby', 'pills-' + label + '-tab');\r\n // div.innerHTML = mode;\r\n return div;\r\n }\r\n\r\n private createRouteOverviewContent(route: RouteFeatureCollection): HTMLDivElement {\r\n const detail = document.createElement('div');\r\n detail.className = 'pt-3 pr-3 pl-3';\r\n\r\n // const row1 = document.createElement('div');\r\n // row1.className = 'row';\r\n // /* Start time */\r\n // const start = document.createElement('div');\r\n // start.className = 'col-sm-6';\r\n // const startIcon = document.createElement('i');\r\n // startIcon.className = 'fa fa-map-marker-alt rm2-routing-control-route-overview-table-icon';\r\n // const startText = document.createElement('span');\r\n // startText.innerText = this.formatDate(new Date(route.plan.itineraries[0].startTime));\r\n // start.appendChild(startIcon);\r\n // start.appendChild(startText);\r\n\r\n // /* Arrival time */\r\n // const arrival = document.createElement('div');\r\n // arrival.className = 'col-sm-6';\r\n // const arrivalIcon = document.createElement('i');\r\n // arrivalIcon.className = 'fa fa-flag-checkered rm2-routing-control-route-overview-table-icon';\r\n // const arrivalText = document.createElement('span');\r\n // arrivalText.innerText = this.formatDate(new Date(route.plan.itineraries[0].endTime));\r\n // arrival.appendChild(arrivalIcon);\r\n // arrival.appendChild(arrivalText);\r\n\r\n // row1.appendChild(start);\r\n // row1.appendChild(arrival);\r\n\r\n const row2 = document.createElement('div');\r\n row2.style.marginLeft = '0';\r\n row2.style.marginRight = '0';\r\n row2.className = 'row';\r\n /* Distance */\r\n const distance = document.createElement('div');\r\n distance.className = 'col-sm-6';\r\n const distanceIcon = document.createElement('i');\r\n distanceIcon.className = 'fa fa-ruler-horizontal rm2-routing-control-route-overview-table-icon';\r\n const distanceText = document.createElement('span');\r\n distanceText.innerText = Utils.formatDistance(route.properties.Length);\r\n distance.append(distanceIcon);\r\n distance.append(distanceText);\r\n\r\n /* Time */\r\n const time = document.createElement('div');\r\n time.className = 'col-sm-6';\r\n const timeIcon = document.createElement('i');\r\n timeIcon.className = 'fa fa-stopwatch rm2-routing-control-route-overview-table-icon';\r\n const timeText = document.createElement('span');\r\n timeText.innerText = Utils.formatDuration(route.properties.RealTTMs / 1000);\r\n time.appendChild(timeIcon);\r\n time.appendChild(timeText);\r\n\r\n row2.appendChild(distance);\r\n row2.appendChild(time);\r\n\r\n // div.appendChild(row1);\r\n detail.appendChild(row2);\r\n\r\n if (route.properties.Instructions.features.find(station => station.properties.Type === 'station-toll')) {\r\n const tollWarningDiv = document.createElement('div');\r\n tollWarningDiv.className = 'text-warning';\r\n const tollIcon = document.createElement('i');\r\n tollIcon.className = 'fa fa-exclamation-triangle rm2-routing-control-route-overview-table-icon mt-2'\r\n tollWarningDiv.appendChild(tollIcon);\r\n const tollText = document.createElement('span');\r\n this._localizationService.localizeElement(tollText, 'rmap.rm.routing.includes-tolls');\r\n tollWarningDiv.appendChild(tollText);\r\n detail.appendChild(tollWarningDiv);\r\n }\r\n\r\n detail.appendChild(document.createElement('hr'));\r\n\r\n const div = document.createElement('div');\r\n div.appendChild(detail);\r\n div.appendChild(this.createRouteOverviewStations(route.properties.Instructions));\r\n return div;\r\n }\r\n\r\n private createRouteOverviewStations(stations: RouteInstructionsFeatureCollection): HTMLUListElement {\r\n const ul = document.createElement('ul');\r\n ul.className = 'list-group';\r\n\r\n const getIcon = (stationInstructionType: string) => {\r\n if (stationInstructionType === 'instruction-start')\r\n return 'fa fa-crosshairs';\r\n else if (stationInstructionType === 'instruction-turn-left')\r\n return 'fa fa-long-arrow-alt-left';\r\n else if (stationInstructionType === 'instruction-turn-right')\r\n return 'fa fa-long-arrow-alt-right';\r\n else if (stationInstructionType === 'instruction-turn-straight')\r\n return 'fa fa-long-arrow-alt-up';\r\n // else if (stationInstructionType === 'station-toll')\r\n // return 'fa fa-exclamation-triangle text-warning';\r\n else if (stationInstructionType === 'instruction-turn-sharpleft')\r\n return 'fa fa-long-arrow-alt-left';\r\n else if (stationInstructionType === 'instruction-turn-sharpright')\r\n return 'fa fa-long-arrow-alt-right';\r\n else if (stationInstructionType === 'instruction-turn-uturn')\r\n return 'fa fa-redo fa-rotate-90';\r\n else if (stationInstructionType === 'instruction-turn-end' || stationInstructionType === 'instruction-end')\r\n return 'fa fa-flag-checkered';\r\n return 'fa fa-car';\r\n };\r\n\r\n stations.features.forEach(station => {\r\n if (station.properties.Type !== 'station-toll') {\r\n const li = document.createElement('li');\r\n li.className = 'list-group-item border-0 rm2-routing-control-route-overview-item py-2';\r\n \r\n const stationContainer = document.createElement('div');\r\n stationContainer.className = 'row';\r\n // Icon (desktop resolution)\r\n const iconDiv = document.createElement('div');\r\n iconDiv.className = 'col-sm-2 text-center d-none d-sm-block';\r\n const icon = document.createElement('i');\r\n icon.className = getIcon(station.properties.Type); // get icon from station instruction\r\n iconDiv.appendChild(icon);\r\n \r\n const descriptionDiv = document.createElement('div');\r\n descriptionDiv.className = 'col-sm-10';\r\n const textDivContainer = document.createElement('div');\r\n textDivContainer.className = 'row d-inline-flex w-100 justify-content-center justify-content-sm-start align-items-center';\r\n\r\n // Icon (mobile resolution)\r\n const iconMobile = document.createElement('i');\r\n iconMobile.className = getIcon(station.properties.Type);\r\n iconMobile.classList.add('d-sm-none', 'px-2');\r\n textDivContainer.appendChild(iconMobile);\r\n\r\n const textDiv = document.createElement('div');\r\n // textDiv.className = 'row';\r\n // textDiv.className = '';\r\n // const prop = 'title:' + this._localizationService.getLanguage();\r\n const title = station.properties.TitleTranslations.find(t => t.Item1 === this._localizationService.getLanguage());\r\n if (title)\r\n textDiv.innerText = title.Item2;\r\n textDivContainer.appendChild(textDiv);\r\n descriptionDiv.appendChild(textDivContainer);\r\n \r\n if (station.properties.Length > 0) {\r\n const getLine = (): HTMLDivElement => {\r\n const line = document.createElement('div');\r\n line.className = 'rm2-routing-control-route-overview-line flex-grow-1';\r\n return line;\r\n };\r\n\r\n const locationDiv = document.createElement('div');\r\n locationDiv.className = 'row d-flex';\r\n const line1 = getLine();\r\n line1.classList.add('d-sm-none');\r\n locationDiv.appendChild(line1);\r\n const distance = document.createElement('span');\r\n distance.className = 'text-muted';\r\n distance.innerText = Utils.formatDistance(station.properties.Length);\r\n locationDiv.appendChild(distance);\r\n const line2 = getLine();\r\n locationDiv.appendChild(line2);\r\n descriptionDiv.appendChild(locationDiv);\r\n }\r\n else if (station.properties.Type === 'station-toll') {\r\n const tollWarningDiv = document.createElement('div');\r\n tollWarningDiv.className = 'row text-warning';\r\n tollWarningDiv.innerText = 'Cestnina'\r\n descriptionDiv.appendChild(tollWarningDiv);\r\n }\r\n \r\n stationContainer.appendChild(iconDiv);\r\n stationContainer.appendChild(descriptionDiv);\r\n \r\n li.appendChild(stationContainer);\r\n li.onclick = () => {\r\n const view = this._map.getView();\r\n // HACK za zdaj dokler se ne zamenja routing servicea\r\n // const proj = Projection.create(this._options.projection);\r\n // const proj = Projection.create('EPSG:3912;+title=y/x:D48/GK +proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=-5000000 +ellps=bessel +towgs84=426.9,142.6,460.1,4.91,4.49,-12.42,17.1 +units=m +no_defs')\r\n\r\n if (this.routeStationHighlight)\r\n this._map.removeFeature(this.routeStationHighlight.properties.id);\r\n \r\n this.routeStationHighlight = this._map.addFeature(new Feature({\r\n color: '#59A0DD',\r\n radius: 5,\r\n outlineWidth: 2,\r\n outlineColor: '#FFFFFF'\r\n }, station.geometry), {\r\n // projection: proj,\r\n pan: true,\r\n cameraOptions: new PanOptions({\r\n zoom: view.zoom > 14 ? view.zoom : 14,\r\n relCenterX: this.getRelCenterX()\r\n })\r\n });\r\n\r\n // this._rMap.pan(station.location, {\r\n // // projection: proj,\r\n // // HACK za zdaj dokler se ne zamenja routing servicea\r\n // projection: Projection.create('EPSG:3912;+title=y/x:D48/GK +proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=-5000000 +ellps=bessel +towgs84=426.9,142.6,460.1,4.91,4.49,-12.42,17.1 +units=m +no_defs'),\r\n // zoom: view.zoom > 14 ? view.zoom : 14,\r\n // relCenterX: this.getRelCenterX()\r\n // });\r\n };\r\n \r\n ul.appendChild(li);\r\n }\r\n });\r\n\r\n return ul;\r\n }\r\n\r\n private createSearchResultItem(title: string, highlight?: string): HTMLSpanElement {\r\n const container = document.createElement('span');\r\n if (title && highlight) {\r\n while (title.toLowerCase().includes(highlight.toLowerCase())) {\r\n const titleL = title.toLowerCase();\r\n const highlightL = highlight.toLowerCase();\r\n const i = titleL.indexOf(highlightL);\r\n const span1 = document.createElement('span');\r\n span1.innerText = title.substr(0, i);\r\n container.appendChild(span1);\r\n const span2 = document.createElement('span');\r\n span2.className = 'font-weight-bold';\r\n span2.innerText = title.substr(i, highlight.length);\r\n container.appendChild(span2);\r\n\r\n title = title.substr(i + highlight.length);\r\n }\r\n\r\n const endSpan = document.createElement('span');\r\n endSpan.innerText = title;\r\n container.appendChild(endSpan);\r\n }\r\n else\r\n container.innerText = title;\r\n return container;\r\n }\r\n\r\n private clearSearch() {\r\n let isCleared: boolean = true;\r\n for (let i = 0; i < this._searchInputs.length; i++) {\r\n if (this._searchInputs[i].getLocation()) {\r\n isCleared = false;\r\n break;\r\n }\r\n }\r\n\r\n if (isCleared)\r\n this.setPanelStatus(false);\r\n else {\r\n this._searchInputs.forEach((input, i) => {\r\n const target = input.getTarget();\r\n if (target) {\r\n if (i > 0 && i < this._searchInputs.length - 1) {\r\n target.parentNode.removeChild(target);\r\n input.saveLocation(null);\r\n }\r\n else\r\n this.setSearchInputValue(input, null, false, false, false);\r\n }\r\n })\r\n \r\n if (this._searchInputs.length > 2)\r\n this._searchInputs.splice(1, this._searchInputs.length - 2);\r\n \r\n while (this._searchResults.firstChild)\r\n this._searchResults.removeChild(this._searchResults.firstChild);\r\n \r\n this.clearTransportationModesContent();\r\n this.clearHighlight();\r\n this.locationHighlight = null;\r\n this.clearRoute();\r\n }\r\n }\r\n\r\n private onSearchTabSelected = (e?: Event) => {\r\n this.focusedTransportationMode = null;\r\n this.clearRoute();\r\n this.clearHighlight();\r\n\r\n const loc = this._searchInputs[0].getLocation();\r\n if (loc)\r\n this.highlightLocation(loc.geometry.getCoordinate(), false);\r\n \r\n this._reverseLocations.style.display = 'none';\r\n for (let i = 1; i < this._searchInputs.length; i++)\r\n this._searchInputs[i].getTarget().parentElement.style.display = 'none';\r\n \r\n const searchTarget = this._searchInputs[0].getTarget();\r\n this._localizationService.localizeElement(searchTarget, this.searchInputPlaceholder);\r\n this.refreshDisclaimerVisibility();\r\n };\r\n\r\n private selectTransportationModeTab(index: number) {\r\n const mode = this.transportationModes[index];\r\n $('#pills-' + mode.id + '-tab').tab('show');\r\n }\r\n\r\n private onTransportationModeTabSelected = (e: Event) => {\r\n const modeId = (e.target as HTMLElement).getAttribute('mode');\r\n const mode = this.transportationModes.find(m => m.id === modeId);\r\n this._reverseLocations.style.display = 'flex';\r\n for (let i = 0; i < this._searchInputs.length; i++) {\r\n const input = this._searchInputs[i];\r\n const target = input.getTarget();\r\n target.parentElement.style.display = 'flex';\r\n // target.placeholder = input.placeholderText;\r\n this._localizationService.localizeElement(target, input.placeholderText);\r\n }\r\n\r\n this.focusedTransportationMode = mode;\r\n this.showModeRoute(mode);\r\n\r\n const waitingId = this.searchInputIdWaitingForLocation;\r\n if (waitingId != undefined) {\r\n const waitingInput = this._searchInputs[waitingId];\r\n // waitingInput.getTarget().placeholder = waitingInput.placeholderTextAlt;\r\n this._localizationService.localizeElement(waitingInput.getTarget(), waitingInput.placeholderTextAlt);\r\n }\r\n this.refreshDisclaimerVisibility();\r\n };\r\n\r\n private setSearchResults(items: FeatureCollection, query?: string) {\r\n while (this._searchResults.firstChild) {\r\n this._searchResults.firstChild.removeEventListener('keyup', this.onSearchKeyUp);\r\n this._searchResults.removeChild(this._searchResults.firstChild);\r\n }\r\n \r\n if (items.length > 0) {\r\n const appendToSearchResults = (item: Feature) => {\r\n const a = document.createElement('a');\r\n a.className = 'list-group-item list-group-item-action rm2-routing-control-search-results-item';\r\n a.href = '#';\r\n const i = document.createElement('i');\r\n i.className = `fa ${item.properties.FaIcon} rm2-routing-control-search-results-item-icon`;\r\n const span = this.createSearchResultItem(item.properties.Title, query);\r\n // const span = document.createElement('span');\r\n // span.innerText = item.name;\r\n a.appendChild(i);\r\n a.appendChild(span);\r\n \r\n // TODO: unsubscribe on destroy\r\n a.onclick = () => {\r\n if (this.lastFocusedInput) {\r\n const found = this._searchInputs.find(input => input.getTarget().id === this.lastFocusedInput);\r\n this.setSearchResultsStatus(false);\r\n if (found)\r\n this.setSearchInputValue(found, item);\r\n }\r\n };\r\n\r\n a.addEventListener('keyup', this.onSearchKeyUp);\r\n if (this._searchResults.children.length > 0 && this._searchResults.children[this._searchResults.children.length - 1].id === 'rm2-search-results-more-btn')\r\n this._searchResults.insertBefore(a, this._searchResults.children[this._searchResults.children.length - 1]);\r\n else\r\n this._searchResults.appendChild(a);\r\n };\r\n\r\n items.features.forEach(item => appendToSearchResults(item));\r\n if (items.properties.HasNextPage === true) {\r\n let page = items.properties.Page;\r\n const more = document.createElement('button');\r\n more.className = 'btn btn-light btn-block';\r\n more.type = 'button';\r\n more.id = 'rm2-search-results-more-btn';\r\n this._localizationService.localizeElement(more, 'rmap.rm.routing.more-results');\r\n more.onclick = async () => {\r\n this.stopSearchResultsHideTimeout();\r\n (this._searchResults.lastChild as HTMLElement).focus();\r\n const moreLocs = await this.query(query, { page: ++page });\r\n this.lastProcessedInputText = query;\r\n moreLocs.forEach(item => appendToSearchResults(item));\r\n if (moreLocs.properties.HasNextPage === false) {\r\n more.parentElement.removeChild(more);\r\n (this._searchResults.lastChild as HTMLAnchorElement).focus();\r\n }\r\n };\r\n\r\n this._searchResults.appendChild(more);\r\n }\r\n\r\n if (this.getSearchResultsStatus() === false)\r\n this.setSearchResultsStatus(true);\r\n }\r\n }\r\n\r\n private setSearchInputValue(input: RoutingInput, value: Feature, highlight: boolean = true, pan: boolean = true, recalculateInputsRoute: boolean = true) {\r\n const target = input.getTarget();\r\n input.saveLocation(value);\r\n\r\n if (recalculateInputsRoute === true)\r\n this.onLocationSelected(highlight, pan);\r\n \r\n const waitingId = this.searchInputIdWaitingForLocation;\r\n for (let i = 0; i < this._searchInputs.length; i++) {\r\n const input = this._searchInputs[i];\r\n const target = input.getTarget();\r\n if (this.focusedTransportationMode != undefined)\r\n // target.placeholder = i === waitingId ? input.placeholderTextAlt : input.placeholderText;\r\n this._localizationService.localizeElement(target, i === waitingId ? input.placeholderTextAlt : input.placeholderText);\r\n else\r\n // target.placeholder = this.searchInputPlaceholder;\r\n this._localizationService.localizeElement(target, this.searchInputPlaceholder);\r\n }\r\n\r\n if (value && this.focusedTransportationMode) {\r\n const i = this._searchInputs.indexOf(input);\r\n if (i < this._searchInputs.length - 1)\r\n this._searchInputs[i + 1].getTarget().focus();\r\n }\r\n\r\n const panBtn = input.getActionButton(RoutingInputActionButtonType.PanToLocation);\r\n const myLocBtn = input.getActionButton(RoutingInputActionButtonType.MyLocation);\r\n target.value = value ? value.properties.Title : '';\r\n panBtn.visible = value != undefined;\r\n myLocBtn.visible = !panBtn.visible;\r\n }\r\n\r\n private onLocationSelected(highlight: boolean = true, pan: boolean = true) {\r\n if (this.focusedTransportationMode)\r\n this.processSearchInputs(highlight, pan);\r\n else {\r\n if (highlight === true) {\r\n const searchInput = this._searchInputs[0];\r\n const loc = searchInput.getLocation();\r\n if (loc)\r\n this.highlightLocation(loc.geometry.getCoordinate(), pan);\r\n else\r\n this.clearHighlight();\r\n }\r\n }\r\n }\r\n\r\n async processSearchInputs(highlight: boolean = true, pan: boolean = true) {\r\n this.clearRoute();\r\n this.clearHighlight();\r\n this.clearTransportationModesContent();\r\n this.hideMessage();\r\n this.locationHighlight = null;\r\n\r\n const locations = new FeatureCollection();\r\n for (let i = 0; i < this._searchInputs.length; i++) {\r\n const value = this._searchInputs[i].getLocation();\r\n if (value)\r\n locations.features.push(value);\r\n }\r\n\r\n if (locations.length > 1) {\r\n this.setLoadingStatus(true);\r\n try {\r\n const route = await this._routingService.routev1(this._searchInputs.map(input => {\r\n const coord = input.getLocation().geometry.getCoordinate();\r\n return [coord.x, coord.y] as CoordinateLike;\r\n }));\r\n \r\n if (route && route.route) {\r\n this.transportationModes.forEach(mode => {\r\n // if (mode.ena bled !== false) {\r\n // TODO: ko pride več-modalni routing, tukaj check\r\n // const found = route.extraTrips.find(trip => trip.tripMode === mode.id);\r\n let div: HTMLDivElement;\r\n // TODO: check, če je pot sploh veljavna?\r\n // if (found && found.plan && found.plan.itineraries) {\r\n // mode.data = found;\r\n // div = this.createRouteOverviewContent(found);\r\n // // this.showModeRoute(mode);\r\n // }\r\n // else {\r\n // mode.data = null;\r\n // div = document.createElement('div');\r\n // div.innerText = 'Za ta način transporta žal ni bilo najdene ustrezne poti.';\r\n // }\r\n \r\n mode.data = { points: locations.features.map(ft => {\r\n const c = ft.geometry.getCoordinate();\r\n return [c.x, c.y] as CoordinateLike;\r\n }), route: route.route };\r\n div = this.createRouteOverviewContent(route.route);\r\n mode.element.appendChild(div);\r\n // }\r\n });\r\n \r\n this.showModeRoute(this.focusedTransportationMode);\r\n }\r\n else {\r\n this.setMessage({ title: 'general.errors.generic.title', content: 'rmap.rm.routing.errors.cannot-get-route' }, 'danger');\r\n this.clearRoute();\r\n }\r\n }\r\n catch (e) {\r\n console.error('Error when fetching route\\n', e);\r\n this.setMessage({ title: 'general.errors.generic.title', content: 'rmap.rm.routing.errors.cannot-get-route' }, 'danger');\r\n this.clearRoute();\r\n }\r\n finally {\r\n this.setLoadingStatus(false);\r\n }\r\n }\r\n else if (locations.length === 1 && highlight)\r\n this.highlightLocation(locations.features[0].geometry.getCoordinate(), pan);\r\n }\r\n\r\n private clearTransportationModesContent() {\r\n this.transportationModes.forEach(mode => {\r\n mode.data = null;\r\n while (mode.element.firstChild)\r\n mode.element.removeChild(mode.element.firstChild);\r\n });\r\n\r\n this._toolbarContent.style.display = 'none';\r\n this._toolbarContent.style.display = 'block';\r\n }\r\n\r\n private highlightLocation(coord: Coordinate | CoordinateLike, pan: boolean) {\r\n if (this.locationHighlight)\r\n this._map.removeFeature(this.locationHighlight.properties.id);\r\n \r\n this.locationHighlight = this._map.addFeature(new Feature({\r\n icon: 'marker_red-128'\r\n }, Point.fromCoordinate(coord)), { pan: false });\r\n\r\n if (pan) {\r\n const zoom = this._map.getView().zoom;\r\n const defaultZoom = 14;\r\n this._map.pan(coord, {\r\n zoom: zoom > defaultZoom ? zoom : defaultZoom,\r\n relCenterX: this.getRelCenterX()\r\n });\r\n }\r\n }\r\n\r\n private clearHighlight() {\r\n if (this.locationHighlight)\r\n this._map.removeFeature(this.locationHighlight.properties.id);\r\n }\r\n\r\n private clearRoute() {\r\n // if (this.displayedRouteFtColl) {\r\n // const ids = this.displayedRouteFtColl.features.map(ft => ft.properties.id);\r\n // this._rMap.removeFeatures(ids);\r\n // this.displayedRouteFtColl = null;\r\n // }\r\n\r\n this._map.clearRoute(false);\r\n if (this.routeStationHighlight)\r\n this._map.removeFeature(this.routeStationHighlight.properties.id);\r\n }\r\n \r\n private attachToolbarEventListeners() {\r\n const attach = (item: ToolbarItem, handler: (e: Event) => void) => {\r\n const format = '#pills-[id]-tab';\r\n $(format.replace('[id]', item.id)).on('shown.bs.tab', handler);\r\n };\r\n\r\n attach(this.searchToolbarItem, this.onSearchTabSelected);\r\n this.transportationModes.forEach(mode => attach(mode, this.onTransportationModeTabSelected));\r\n }\r\n \r\n private removeToolbarEventListeners() {\r\n const remove = (item: ToolbarItem, handler: (e: Event) => void) => {\r\n const format = '#pills-[id]-tab';\r\n $(format.replace('[id]', item.id)).off('shown.bs.tab', handler);\r\n };\r\n\r\n remove(this.searchToolbarItem, this.onSearchTabSelected);\r\n this.transportationModes.forEach(mode => remove(mode, this.onTransportationModeTabSelected));\r\n }\r\n \r\n private getPanelStatus(): boolean {\r\n return this._panel.parentNode != null;\r\n }\r\n\r\n private setPanelStatus(status: boolean) {\r\n if (status === true) {\r\n if (this.getPanelStatus() === false) {\r\n if (this._button && this._button.parentNode && this._button.parentNode.parentNode)\r\n this._button.parentNode.parentNode.appendChild(this._panel);\r\n \r\n this._localizationService.refresh();\r\n this.resizePanel();\r\n window.addEventListener('resize', this.resizePanel);\r\n this.attachToolbarEventListeners();\r\n }\r\n else\r\n throw new Error('Routing panel already shown.');\r\n }\r\n else if (status === false) {\r\n window.removeEventListener('resize', this.resizePanel);\r\n this.removeToolbarEventListeners();\r\n\r\n if (this._panel && this._panel.parentNode)\r\n this._panel.parentNode.removeChild(this._panel);\r\n }\r\n }\r\n\r\n private getRelCenterX(): number {\r\n if (this.isMobile())\r\n return 0.5;\r\n else {\r\n const size = this._map.getSize();\r\n const panelBottomOpen = this._panelBottom && this._panelBottom.clientHeight > 0;\r\n return panelBottomOpen ? (0.5 + ((this._panel.clientWidth / size[0]) / 2)) : 0.5;\r\n }\r\n }\r\n\r\n private getRouteFitPadding(): PaddingOptions {\r\n if (this.isMobile()) {\r\n return {\r\n top: this._panelTop.clientHeight + 50,\r\n // bottom: this._panelBottom.clientHeight + 50, // TODO: to pofiksati, pri reverse route ne dela vedno OK\r\n bottom: 200 + 50, // TODO: to pofiksati, pri reverse route ne dela vedno OK\r\n left: 50,\r\n right: 50\r\n };\r\n }\r\n else {\r\n return {\r\n top: 50,\r\n bottom: 50,\r\n left: this._panel.clientWidth + 50,\r\n right: 50\r\n }\r\n }\r\n }\r\n\r\n private getSearchResultsStatus(): boolean {\r\n return this._searchResults.classList.contains('active');\r\n }\r\n\r\n private setSearchResultsStatus(visible: boolean) {\r\n this.focusedSearchResult = undefined;\r\n if (visible)\r\n this._searchResults.classList.add('active');\r\n else\r\n this._searchResults.classList.remove('active');\r\n }\r\n\r\n private getLoadingStatus(): boolean {\r\n return this._spinner.classList.contains('d-none') === false;\r\n }\r\n\r\n private setLoadingStatus(loading: boolean) {\r\n if (loading === true) {\r\n this._spinner.classList.remove('d-none');\r\n this._searchInputs.forEach(input => input.disabled = true);\r\n for (let i = 0; i < this._reverseLocations.children.length; i++) {\r\n const child = this._reverseLocations.children.item(i);\r\n if (child instanceof HTMLButtonElement)\r\n child.disabled = true;\r\n }\r\n\r\n // TODO:\r\n // this.mapPickerControl.hide();\r\n }\r\n else {\r\n this._spinner.classList.add('d-none');\r\n this._searchInputs.forEach(input => input.disabled = false);\r\n for (let i = 0; i < this._reverseLocations.children.length; i++) {\r\n const child = this._reverseLocations.children.item(i);\r\n if (child instanceof HTMLButtonElement)\r\n child.disabled = false;\r\n }\r\n }\r\n }\r\n\r\n private setMessage(options: { title: string, content: string, i18nOptions?: Object }, type: string) {\r\n this.hideMessage();\r\n\r\n this._message = document.createElement('div');\r\n this._panelTop.appendChild(this._message);\r\n\r\n // this._message.className = `alert alert-${type} alert-dismissible fade show m-0`;\r\n this._message.className = `alert alert-${type} alert-dismissible show m-0`;\r\n const titleDiv = document.createElement('strong');\r\n // titleDiv.innerText = options.title;\r\n this._localizationService.mark(titleDiv, options.title);\r\n this._message.appendChild(titleDiv);\r\n\r\n this._message.appendChild(document.createElement('br'));\r\n\r\n const contentDiv = document.createElement('span');\r\n // contentDiv.innerText = content;\r\n this._localizationService.mark(contentDiv, options.content, options.i18nOptions);\r\n this._message.appendChild(contentDiv);\r\n\r\n const closeBtn = document.createElement('button');\r\n closeBtn.type = 'button';\r\n closeBtn.className = 'close p-2';\r\n closeBtn.setAttribute('data-dismiss', 'alert');\r\n closeBtn.setAttribute('aria-label', 'close');\r\n const closeBtnSpan = document.createElement('span');\r\n closeBtnSpan.className = 'fa fa-xs fa-times';\r\n closeBtnSpan.setAttribute('aria-hidden', 'true');\r\n closeBtn.appendChild(closeBtnSpan);\r\n\r\n this._localizationService.refresh(this._message);\r\n this._message.appendChild(closeBtn);\r\n this._message.style.display = 'block';\r\n }\r\n\r\n private hideMessage() {\r\n if (this._message && this._message.parentElement)\r\n this._message.parentElement.removeChild(this._message);\r\n }\r\n\r\n // private fetchingRoute: XMLHttpRequest;\r\n // private getRoute(locations: FeatureCollection): Promise {\r\n // return new Promise((res, rej) => {\r\n // if (this.fetchingRoute)\r\n // this.fetchingRoute.abort();\r\n \r\n // const xhr = new XMLHttpRequest();\r\n // xhr.timeout = this.requestsTimeoutMs;\r\n // xhr.onload = () => {\r\n // if (xhr.responseText)\r\n // res(JSON.parse(xhr.responseText));\r\n // else\r\n // res(null);\r\n // };\r\n\r\n // xhr.ontimeout = () => {\r\n // this.setMessage('Napaka!', this.requestsTimeoutMessage, 'danger');\r\n // rej('Timeout');\r\n // };\r\n\r\n // xhr.onerror = () => rej('Error getting route');\r\n // xhr.onabort = () => rej('HTTP request aborted.');\r\n // xhr.onloadend = () => this.fetchingRoute = null;\r\n \r\n // // TODO: dodaj vmesne točke\r\n // const loc1 = locations.features[0].geometry.getCoordinate();\r\n // const loc2 = locations.features[1].geometry.getCoordinate();\r\n // const url = `${this._options.routingUrl}&loc=${loc1.y},${loc1.x}%3B${loc2.y},${loc2.x}`;\r\n // this.fetchingRoute = xhr;\r\n\r\n // xhr.open('GET', url, true);\r\n // xhr.send(null);\r\n // });\r\n // }\r\n\r\n // private getLocations(query: string | CoordinateLike, pageSize: number = 5, page: number = 0): Promise> {\r\n // return new Promise((res, rej) => {\r\n // if (this.fetchingLocations)\r\n // this.fetchingLocations.abort();\r\n \r\n // const xhr = new XMLHttpRequest();\r\n // xhr.timeout = this.requestsTimeoutMs;\r\n // xhr.onload = () => {\r\n // if (!xhr.status || xhr.status >= 200 && xhr.status < 300) {\r\n // const data = FeatureCollection.fromGeoJson(JSON.parse(xhr.responseText));\r\n // res(data);\r\n // }\r\n // };\r\n \r\n // xhr.ontimeout = () => {\r\n // this.setMessage('Napaka!', this.requestsTimeoutMessage, 'danger');\r\n // rej('Timeout');\r\n // };\r\n\r\n // xhr.onerror = () => rej('Error loading location data for \\'' + query + '\\'.');\r\n // // xhr.onabort = () => console.error('Locations HTTP request aborted.');\r\n // xhr.onloadend = () => this.fetchingLocations = null;\r\n \r\n // let url: string;\r\n // if (typeof query === 'string') {\r\n // url = `${this._options.locationsUrl}?condition=${query}&pagesize=${pageSize}&page=${page}`;\r\n // this.lastProcessedInputText = query;\r\n // }\r\n // else {\r\n // if (query.length === 2)\r\n // url = `${this._options.reverseGeocodingUrl}?x=${query[0]}&y=${query[1]}&pagesize=1`;\r\n // else\r\n // throw new Error('Invalid number of coordinates for reverse geocoding - expected 2, got ' + query.length + '.');\r\n // }\r\n\r\n // if (url) {\r\n // this.fetchingLocations = xhr;\r\n // xhr.open('GET', url, true);\r\n // xhr.send(null);\r\n // }\r\n // else\r\n // throw new Error('Could not determine locations URL with passed query - ' + query);\r\n // });\r\n // }\r\n\r\n // TODO: če klikneš na isti mode, se route zbriše in ponovno nariše -> mogoče samo fit namesto addFeatures\r\n private showModeRoute(mode: ToolbarItem) {\r\n const data = mode.data;\r\n this.clearRoute();\r\n if (data) {\r\n const opts = Object.assign({}, this._options);\r\n opts.pan = true;\r\n opts.cameraOptions = { padding: this.getRouteFitPadding() };\r\n this._map.drawRoute(data, opts);\r\n }\r\n else\r\n this.processSearchInputs();\r\n }\r\n\r\n private lastProcessedInputText: string;\r\n private async processInputChange(target: HTMLInputElement) {\r\n const id = target.id;\r\n const found = this._searchInputs.find(input => input.id === id);\r\n if (target.value && target.value.length > 0) {\r\n if (this.lastProcessedInputText !== target.value) {\r\n const locs = await this.query(target.value);\r\n this.lastProcessedInputText = target.value;\r\n this.setSearchResults(locs, target.value);\r\n }\r\n else\r\n this.setSearchResultsStatus(true);\r\n }\r\n else {\r\n if (this.focusedTransportationMode == undefined)\r\n this.clearTransportationModesContent();\r\n\r\n this.setSearchInputValue(found, null, true, false);\r\n this.setSearchResultsStatus(false);\r\n }\r\n }\r\n\r\n private onSearchKeyUp = (e: KeyboardEvent) => {\r\n if (e.code == undefined || e.code == '')\r\n return;\r\n \r\n const c = Number.parseInt(e.code);\r\n if (c === 38) // arrow up\r\n this.navigateSearchResults(true);\r\n else if (c === 40) // arrow down\r\n this.navigateSearchResults(false);\r\n else if (c === 27) // escape\r\n this.setSearchResultsStatus(false);\r\n else if (c === 13) { // enter\r\n // const found = this._searchInputs.find(input => input.element.id === this.focusedInput);\r\n // this.setSearchResultsStatus(false);\r\n // if (found)\r\n // this.setSearchInputValue(found, found.location);\r\n }\r\n else\r\n this.inputChangeDebouncing.next(e.target as HTMLInputElement);\r\n }\r\n\r\n private navigateSearchResults(ascend?: boolean) {\r\n const searchResults: HTMLAnchorElement[] = [];\r\n for (let i = 0; i < this._searchResults.children.length; i++) {\r\n const child = this._searchResults.children[i];\r\n if (child.tagName.toLowerCase() === 'a')\r\n searchResults.push(child as HTMLAnchorElement);\r\n }\r\n\r\n if (searchResults.length > 0) {\r\n if (ascend === true) {\r\n if (this.focusedSearchResult >= 1)\r\n this.focusedSearchResult--;\r\n else\r\n this.focusedSearchResult = searchResults.length - 1;\r\n }\r\n else if (ascend === false) {\r\n if (this.focusedSearchResult < searchResults.length - 1)\r\n this.focusedSearchResult++;\r\n else\r\n this.focusedSearchResult = 0;\r\n }\r\n\r\n if (this.focusedSearchResult == undefined)\r\n this.focusedSearchResult = 0;\r\n \r\n const a = searchResults[this.focusedSearchResult];\r\n a.focus();\r\n }\r\n }\r\n\r\n private query(query: string, options?: IQueryOptions): Promise> {\r\n return new Promise>(async (res, rej) => {\r\n try {\r\n const opts = this._nominatimService.options;\r\n const fc = new FeatureCollection();\r\n if (opts.GeocodeLocQueryUrl) {\r\n const locs = await this._nominatimService.GeocodeLoc(query);\r\n fc.features = locs.features.map(x => {\r\n const ft = new Feature();\r\n ft.properties = RoutingGeocodingFeatureProps.fromGeocodeLocResponse(x.properties);\r\n ft.geometry = x.geometry;\r\n return ft;\r\n });\r\n fc.properties = RoutingGeocodingProps.fromGeocodeLocResponse(locs.properties);\r\n }\r\n else {\r\n const locs = await this._nominatimService.query_v2(query, options);\r\n fc.features = locs.features.map(x => {\r\n const ft = new Feature();\r\n ft.properties = RoutingGeocodingFeatureProps.fromQueryv2Response(x.properties);\r\n ft.geometry = x.geometry;\r\n return ft;\r\n });\r\n fc.properties = RoutingGeocodingProps.fromQueryv2Response(locs.properties);\r\n }\r\n res(fc);\r\n }\r\n catch (e) {\r\n rej(e);\r\n }\r\n });\r\n }\r\n\r\n private reverse(coords: CoordinateLike, options?: IQueryOptions): Promise> {\r\n return new Promise>(async (res, rej) => {\r\n try {\r\n const opts = this._nominatimService.options;\r\n const fc = new FeatureCollection();\r\n if (opts.GeocodeLocReverseUrl) {\r\n // const locs = await this._nominatimService.GeocodeLocReverse([e.coords.longitude, e.coords.latitude], { pageSize: 1 });\r\n const locs = await this._nominatimService.GeocodeLocReverse(coords, options);\r\n fc.features = locs.features.map(x => {\r\n const ft = new Feature();\r\n ft.properties = RoutingGeocodingFeatureProps.fromGeocodeLocResponse(x.properties);\r\n ft.geometry = x.geometry;\r\n return ft;\r\n });\r\n fc.properties = RoutingGeocodingProps.fromGeocodeLocResponse(locs.properties);\r\n }\r\n else {\r\n const locs = await this._nominatimService.reverse(coords, options);\r\n fc.features = locs.features.map(x => {\r\n const ft = new Feature();\r\n ft.properties = RoutingGeocodingFeatureProps.fromReverseGeocodingResponse(x.properties);\r\n ft.geometry = x.geometry;\r\n return ft;\r\n });\r\n fc.properties = RoutingGeocodingProps.fromReverseGeocodingResponse(locs.properties);\r\n }\r\n res(fc);\r\n }\r\n catch (e) {\r\n rej(e);\r\n }\r\n });\r\n }\r\n\r\n private stopSearchResultsHideTimeout = () => {\r\n if (this.searchResultsHideTimeout)\r\n clearTimeout(this.searchResultsHideTimeout);\r\n };\r\n\r\n private startSearchResultsHideTimeout = () => {\r\n this.stopSearchResultsHideTimeout();\r\n this.searchResultsHideTimeout = setTimeout(() => this.setSearchResultsStatus(false), 100);\r\n };\r\n\r\n private formatDate(date: Date): string {\r\n let day = date.getDay().toString();\r\n // if (day.length === 1)\r\n // day = '0' + day;\r\n \r\n let month = date.getMonth().toString();\r\n // if (month.length === 1)\r\n // month = '0' + month;\r\n \r\n let year = date.getFullYear().toString();\r\n\r\n let h = date.getHours().toString();\r\n if (h.length === 1)\r\n h = '0' + h;\r\n \r\n let min = date.getMinutes().toString();\r\n if (min.length === 1)\r\n min = '0' + min;\r\n \r\n let sec = date.getSeconds().toString();\r\n if (sec.length === 1)\r\n sec = '0' + sec;\r\n\r\n return `${day}.${month}.${year} ${h}:${min}`;\r\n }\r\n\r\n private refreshDisclaimerVisibility() {\r\n if (this._disclaimer && this._disclaimer.style) {\r\n this._disclaimer.style.display = this._map.metadata.enableRoutingDisclaimer && this.focusedTransportationMode != null && this.focusedTransportationMode.showDisclaimer !== false ? 'block' : 'none';\r\n }\r\n }\r\n\r\n private isMobile(): boolean {\r\n return window.innerWidth < 768;\r\n // return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent));\r\n }\r\n}\r\n\r\nexport class RoutingGeocodingFeatureProps {\r\n\r\n Title: string;\r\n FaIcon: string;\r\n \r\n public static fromQueryv2Response(res: Query_v2ResponseFeatureProperties): RoutingGeocodingFeatureProps {\r\n const prop = new RoutingGeocodingFeatureProps();\r\n prop.Title = res.Title;\r\n prop.FaIcon = this.getQueryv2Icon(res.Type);\r\n return prop;\r\n }\r\n\r\n public static fromReverseGeocodingResponse(res: ReverseGeocodingFeatureProperties): RoutingGeocodingFeatureProps {\r\n const prop = new RoutingGeocodingFeatureProps();\r\n prop.Title = res.Title;\r\n prop.FaIcon = this.getQueryv2Icon(res.Type);\r\n return prop;\r\n }\r\n\r\n public static fromGeocodeLocResponse(res: GeocodeLocFeatureProperties): RoutingGeocodingFeatureProps {\r\n const prop = new RoutingGeocodingFeatureProps();\r\n prop.Title = res.Title;\r\n prop.FaIcon = this.getGeocodeLocIcon(res.Type);\r\n return prop;\r\n }\r\n\r\n private static getQueryv2Icon(type: string): string {\r\n if (type === 'Naselje')\r\n return 'fa fa-city';\r\n else if (type === 'Ulica')\r\n return 'fa fa-road';\r\n else if (type === 'Postaja')\r\n return 'fa fa-bus';\r\n return 'fa-map-marker-alt';\r\n }\r\n\r\n private static getGeocodeLocIcon(type: GeocodeLocLocationType): string {\r\n if (type === 'rpe_ul') // ulice\r\n return 'fa fa-road';\r\n else if (type === 'kucni_brojevi' || type === 'stavbe_naslovi') // točen naslov - hišna številka\r\n return 'fa fa-building';\r\n else if (type === 'jls' || type === 'rpe_na') // naselje\r\n return 'fa fa-city';\r\n else if (type === 'dars_mp') // mejni prehodi\r\n return 'fa fa-passport';\r\n else if (type === 'dars_parking') // parkirišče\r\n return 'fa fa-parking';\r\n // else if (type === 'dars_predori') // predor\r\n // return '';\r\n else if (type === 'dars_prk') // priključek\r\n return 'fa fa-road';\r\n else if (type === 'poi') // poi\r\n return 'fa fa-star';\r\n else\r\n return 'fa-map-marker-alt';\r\n }\r\n}\r\n\r\nexport class RoutingGeocodingProps {\r\n HasNextPage: boolean;\r\n Page: number;\r\n \r\n public static fromQueryv2Response(res: Query_v2ResponseFeatureCollectionProperties): RoutingGeocodingProps {\r\n const prop = new RoutingGeocodingProps();\r\n prop.HasNextPage = res.NextPage;\r\n prop.Page = res.Page;\r\n return prop;\r\n }\r\n\r\n public static fromReverseGeocodingResponse(res: ReverseGeocodingProperties): RoutingGeocodingProps {\r\n const prop = new RoutingGeocodingProps();\r\n prop.HasNextPage = res.NextPage;\r\n prop.Page = res.Page;\r\n return prop;\r\n }\r\n\r\n public static fromGeocodeLocResponse(res: GeocodeLocFeatureCollectionProperties): RoutingGeocodingProps {\r\n const prop = new RoutingGeocodingProps();\r\n prop.HasNextPage = res.HasNext;\r\n prop.Page = Math.floor(res.Skip / res.Take); // tukaj ok, če je floor? načeloma mora biti Skip deljiv s Take\r\n return prop;\r\n }\r\n}\r\n","import { CoordinateLike, Feature } from \"../..\";\r\nimport { Query_v3ResponseFeatureProperties } from \"../../services/RM2NominatimService\";\r\n\r\nexport class PrometSiControlOptions implements IPrometSiControlOptions {\r\n hasDetailButton?: boolean;\r\n hasLegend?: boolean;\r\n openLegend?: boolean;\r\n\r\n weatherDataUrl: string;\r\n weatherImgUrl: string;\r\n weatherFrameInterval?: number;\r\n weatherLastFrameUpdateInterval?: number;\r\n\r\n constructor(opts?: IPrometSiControlOptions) {\r\n this.hasDetailButton = opts && opts.hasDetailButton === true;\r\n this.hasLegend = opts == undefined || opts.hasLegend !== false;\r\n this.openLegend = opts && opts.openLegend === true;\r\n\r\n this.weatherDataUrl = opts && opts.weatherDataUrl ? opts.weatherDataUrl : 'https://promet-dars.geoprostor.net/dc/arso.radar.list';\r\n this.weatherImgUrl = opts && opts.weatherImgUrl ? opts.weatherImgUrl : 'https://promet-dars.geoprostor.net/dc/arso.radar.img';\r\n this.weatherFrameInterval = opts && opts.weatherFrameInterval ? opts.weatherFrameInterval : 500;\r\n this.weatherLastFrameUpdateInterval = opts && opts.weatherLastFrameUpdateInterval ? opts.weatherLastFrameUpdateInterval : 5 * 60 * 1000;\r\n }\r\n}\r\n\r\nexport interface IPrometSiControlOptions {\r\n hasDetailButton?: boolean;\r\n hasLegend?: boolean;\r\n openLegend?: boolean;\r\n\r\n weatherDataUrl: string;\r\n weatherImgUrl: string;\r\n weatherFrameInterval?: number;\r\n weatherLastFrameUpdateInterval?: number;\r\n}\r\n\r\nexport class PrometSiRoutingLocation {\r\n id: string;\r\n coords: CoordinateLike; // coordse shranjujemo posebej, ker so coordsi v data snappirani na naslov/cesto\r\n data: Feature;\r\n icon: string;\r\n element: HTMLInputElement;\r\n\r\n canSwapWithNext: boolean;\r\n\r\n constructor(id: string, canSwapWithNext: boolean = true) {\r\n this.id = id;\r\n this.canSwapWithNext = canSwapWithNext;\r\n }\r\n}\r\n\r\nexport enum PrometSiSearchResultsType {\r\n Normal = 0,\r\n Routing = 1\r\n}\r\n","export enum MapTheme {\r\n Light = 'light',\r\n Dark = 'dark'\r\n}\r\n","import * as maplibregl from 'maplibre-gl';\r\nimport { Map } from '../../..';\r\nimport { LocalizationService } from '../../../services/RM2LocalizationService';\r\nimport { ServiceType } from '../../../services/RM2Service';\r\n\r\nexport class PrometSiExpandMapControl implements maplibregl.IControl {\r\n\r\n private _localizationService: LocalizationService;\r\n private _a: HTMLAnchorElement;\r\n\r\n constructor(map: Map) {\r\n this._localizationService = map.getService(ServiceType.Localization) as LocalizationService;\r\n }\r\n \r\n onAdd(map: maplibregl.Map): HTMLElement {\r\n const wrapper = document.createElement('div');\r\n wrapper.className = 'mapboxgl-ctrl mapboxgl-ctrl-group';\r\n\r\n this._a = document.createElement('a');\r\n this._a.href = `/${this._localizationService.getLanguage()}/map`;\r\n \r\n const btn = document.createElement('button');\r\n btn.type = 'button';\r\n const icon = document.createElement('span');\r\n icon.className = 'promet-si-expand-map-icon mapboxgl-ctrl-icon';\r\n\r\n this._a.appendChild(btn);\r\n btn.appendChild(icon);\r\n wrapper.appendChild(this._a);\r\n\r\n return wrapper;\r\n }\r\n\r\n onRemove(map: maplibregl.Map): void {\r\n this._a.parentNode.removeChild(this._a);\r\n }\r\n\r\n getDefaultPosition() : maplibregl.ControlPosition {\r\n return 'bottom-right';\r\n }\r\n};\r\n","import * as maplibregl from 'maplibre-gl';\r\nimport Mustache from 'mustache';\r\n\r\nimport { CoordinateLike, Geometry, LayerGroup, Map, MapEventArgs, Point, Popup, RM2Event } from '../..';\r\nimport { ContainerTemplate } from './templates/container-template';\r\nimport { RMBClickTemplate, RMBClickTemplateAd, RMBClickTemplateCesta, RMBClickTemplateInfo } from './templates/rmb-click-template';\r\nimport { SearchResultsTemplate } from './templates/search-results-template';\r\nimport { LegendTemplate } from './templates/legend-template';\r\nimport { RoutingHeaderTemplate } from './templates/routing-header-template';\r\nimport { RouteTabTemplate } from './templates/route-tab-template';\r\nimport { ErrorTemplate } from './templates/error-template';\r\n\r\nimport { IPrometSiControlOptions, PrometSiControlOptions, PrometSiRoutingLocation, PrometSiSearchResultsType } from './RM2PrometSiControlOptions';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { NominatimService, Query_v2ResponseFeatureProperties, Query_v3ResponseFeatureProperties } from '../../services/RM2NominatimService';\r\nimport { ServiceType } from '../../services/RM2Service';\r\nimport { Feature } from '../../model/RM2Feature';\r\nimport { Route, RouteFeatureCollection, RouteLegacy, RoutingService } from '../../services/RM2RoutingService';\r\nimport { IPanOptions } from '../../model/RM2CameraChangeOptions';\r\nimport { Utils } from '../../services/RM2StaticService';\r\nimport { LocalizationService } from '../../services/RM2LocalizationService';\r\nimport { Guid } from 'guid-typescript';\r\nimport { RouteStatusResponseDTO } from '../../model/RouteStatus';\r\nimport { PersistedVisibility } from '../../map/RM2Map';\r\nimport { IMarkerOptions } from '../../highlights/RM2HighlightOptions';\r\nimport { FeatureCollection, Position } from '@turf/helpers';\r\nimport { Projection } from '../../model/RM2Projection';\r\nimport { PrometSiExpandMapControl } from './promet-si-expand-map-control/RM2PrometSiExpandMapControl';\r\nimport { MeteoWeatherData } from '../../model/MeteoWeatherData';\r\nimport proj4 from 'proj4';\r\n\r\n// REQUIRE\r\n// require('../../../demo/assets/environment-promet-si/css/main.css');\r\n// require('../../../demo/assets/res/css/RM2MapControl.css');\r\n// require('../../../demo/assets/res/css/RM2PrometSiControl.css');\r\n\r\ndeclare var $: any;\r\n\r\nexport class PrometSiControl implements maplibregl.IControl {\r\n protected _map: Map;\r\n\r\n private _options: IPrometSiControlOptions;\r\n\r\n private _nominatimService: NominatimService;\r\n private _routingService: RoutingService;\r\n private _localizationService: LocalizationService;\r\n\r\n private _container: HTMLDivElement;\r\n private _searchBarContainer: HTMLDivElement;\r\n private _searchResults: HTMLDivElement;\r\n // private _legendBg: HTMLDivElement;\r\n private _legend: HTMLDivElement;\r\n private _routing: HTMLDivElement;\r\n private _routingBottomSearchResultsContainer: HTMLDivElement;\r\n private _routingHeader: HTMLDivElement;\r\n private _routingTabsContainer: HTMLDivElement;\r\n private _routingBottom: HTMLDivElement;\r\n private _routingSave: HTMLDivElement;\r\n private _routingSpinner: HTMLDivElement;\r\n private _routingError: HTMLDivElement;\r\n private _routingSearchResults: HTMLDivElement;\r\n private _searchInput: { element: HTMLInputElement, data?: Feature };\r\n\r\n private readonly weatherLayerName = 'mb-r-meteo-weather-layer';\r\n private readonly weatherSourceName = 'mb-r-meteo-weather-source';\r\n private _weatherGroup: string;\r\n private _weatherData: MeteoWeatherData[] = [];\r\n private _weatherContainer: HTMLDivElement;\r\n private _weatherTimestampSpan: HTMLSpanElement;\r\n\r\n private popupRmb: Popup;\r\n private _searchResultsFeatures: Feature[] = [];\r\n\r\n public get onRouteSaved() { return this._onRouteSaved.expose(); }\r\n protected readonly _onRouteSaved = new RM2Event();\r\n\r\n private _focusedSearchInput: PrometSiRoutingLocation;\r\n private get focusedSearchInput(): PrometSiRoutingLocation { return this._focusedSearchInput; }\r\n private set focusedSearchInput(value: PrometSiRoutingLocation) {\r\n this._focusedSearchInput = value;\r\n if (value == null)\r\n this.setSearchResultsStatus(false, PrometSiSearchResultsType.Routing);\r\n }\r\n\r\n private refreshRouteDebouncing: Subject = new Subject();\r\n private searchTextDebouncing: Subject<{ text: string, type: PrometSiSearchResultsType }> = new Subject<{ text: string, type: PrometSiSearchResultsType }>();\r\n private _routingLocationsIncrementCount: number;\r\n private _routingLocations: PrometSiRoutingLocation[] = this.getNewRoutingLocationsArray();\r\n\r\n private getNewRoutingLocationsArray(destination?: Feature): PrometSiRoutingLocation[] {\r\n this._routingLocationsIncrementCount = 3;\r\n const dest = new PrometSiRoutingLocation('input-2', false);\r\n if (destination) {\r\n dest.data = destination;\r\n const coord = destination.geometry.getCoordinate();\r\n dest.coords = [coord.x, coord.y];\r\n }\r\n\r\n return [\r\n new PrometSiRoutingLocation('input-1'),\r\n dest\r\n ];\r\n }\r\n\r\n private getRoutingLocationsArray(items: Feature[]): PrometSiRoutingLocation[] {\r\n this._routingLocationsIncrementCount = 3;\r\n const arr: PrometSiRoutingLocation[] = [];\r\n for (let i = 0; i < items.length; i++) {\r\n const item = new PrometSiRoutingLocation(`input-${i}`, i !== items.length - 1);\r\n item.data = items[i];\r\n const coord = items[i].geometry.getCoordinate();\r\n item.coords = [coord.x, coord.y];\r\n arr.push(item);\r\n }\r\n return arr;\r\n }\r\n\r\n private get responsiveBreakpoint(): number { return 503; }\r\n private get searchEntryWidth(): string { return '300px'; }\r\n // private get legendWidth(): string { return '430px'; }\r\n private get legendWidth(): string { return '300px'; }\r\n private get routingWidth(): string { return '430px'; }\r\n private get searchResultsMaxHeight(): string { return '300px'; }\r\n\r\n private get routeStatusKey(): string { return 'Status'; }\r\n private get routeIdKey(): string { return 'RouteId'; }\r\n private get routeTTBadgeClassKey(): string { return 'TTClass'; }\r\n\r\n private openLegendKey: string = 'RM2Map.PrometSi.OpenedLegend';\r\n\r\n constructor(map: Map, opts?: IPrometSiControlOptions) {\r\n this._map = map;\r\n this._options = new PrometSiControlOptions(opts);\r\n\r\n this._nominatimService = this._map.getService(ServiceType.Nominatim) as NominatimService;\r\n this._routingService = this._map.getService(ServiceType.Routing) as RoutingService;\r\n this._localizationService = this._map.getService(ServiceType.Localization) as LocalizationService;\r\n\r\n this._container = this.create();\r\n\r\n this.searchTextDebouncing.pipe(debounceTime(500)).subscribe(async (e) => this.search(e.text, e.type));\r\n this.refreshRouteDebouncing.pipe(debounceTime(500)).subscribe(() => this.refreshRoutes());\r\n\r\n this._map.onLongClick.subscribe(e => this.openMapClickOptionsMenu(e));\r\n\r\n this._map.onClick.subscribe(e => {\r\n if (e.nativeEvent instanceof MouseEvent) {\r\n if (e.nativeEvent.button === 2) // RMB\r\n this.openMapClickOptionsMenu(e);\r\n else if (e.nativeEvent.button === 0) { // LMB\r\n if (this.popupRmb)\r\n this.popupRmb.close();\r\n if (this.getRoutingStatus() === true && (this.routes == null || this.routes.length === 0)) {\r\n // set coordinate as next route point\r\n }\r\n else {\r\n const filtered = e.featureLayers.filter(l => l.source === Map.routeSourceName);\r\n if (filtered.length > 0 && filtered.length == e.featureLayers.length) {\r\n const ft = e.features[0];\r\n const routeId = ft.properties[this.routeIdKey];\r\n const selected = this.routes.findIndex(r => r[this.routeIdKey] === routeId);\r\n if (selected !== this.selectedRoute)\r\n this.setRoutesStatus(this.routes, selected, false);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n private openMapClickOptionsMenu(e: MapEventArgs) {\r\n e.nativeEvent.preventDefault();\r\n const template = document.createElement('div');\r\n template.innerHTML = Mustache.render(RMBClickTemplate, {});\r\n this._localizationService.refresh(template);\r\n\r\n const offset: [number, number] = [0, 0];\r\n // TODO: promises & cancellations\r\n const info: HTMLAnchorElement = template.querySelector('#promet-si-rmb-info');\r\n info.onclick = async () => {\r\n this._map.closeAllPopups();\r\n const res = await this._nominatimService.reverse_v3(e.coordinate);\r\n const content = document.createElement('div');\r\n content.className = 'p-2';\r\n if (res && res.features && res.features.length > 0) {\r\n const ft = res.first;\r\n // round distances\r\n if (ft.properties.Ad && ft.properties.Ad.dist)\r\n ft.properties.Ad.dist = Math.round(ft.properties.Ad.dist);\r\n if (ft.properties.Cesta && ft.properties.Cesta.dist)\r\n ft.properties.Cesta.dist = Math.round(ft.properties.Cesta.dist);\r\n if (ft.properties.Cesta && ft.properties.Cesta.ds_at)\r\n ft.properties.Cesta.ds_at = Math.round(ft.properties.Cesta.ds_at);\r\n\r\n ft.properties.x = Math.round(ft.geometry.coordinates[0] as number * 100000) / 100000;\r\n ft.properties.y = Math.round(ft.geometry.coordinates[1] as number * 100000) / 100000;\r\n\r\n content.innerHTML = Mustache.render(RMBClickTemplateInfo, ft);\r\n this._localizationService.refresh(content);\r\n\r\n const adEl: HTMLAnchorElement = content.querySelector('#promet-si-geocoding-ad');\r\n if (adEl) {\r\n adEl.onclick = () => {\r\n this._map.closeAllPopups();\r\n const adContent = document.createElement('div');\r\n adContent.innerHTML = Mustache.render(RMBClickTemplateAd, ft.properties.Ad);\r\n this.popupRmb = this._map.openPopup([ft.properties.Ad.bvx, ft.properties.Ad.bvy], adContent, {\r\n offset: offset\r\n });\r\n };\r\n }\r\n\r\n const cestaEl: HTMLAnchorElement = content.querySelector('#promet-si-geocoding-cesta');\r\n if (cestaEl) {\r\n cestaEl.onclick = () => {\r\n this._map.closeAllPopups();\r\n const cestaContent = document.createElement('div');\r\n cestaContent.innerHTML = Mustache.render(RMBClickTemplateCesta, ft.properties.Cesta);\r\n this.popupRmb = this._map.openPopup([ft.properties.Cesta.bvx, ft.properties.Cesta.bvy], cestaContent, {\r\n offset: offset\r\n });\r\n };\r\n }\r\n }\r\n else {\r\n // TODO\r\n }\r\n\r\n this.popupRmb = this._map.openPopup(e.coordinate, content, {\r\n offset: offset\r\n });\r\n };\r\n\r\n const start: HTMLAnchorElement = template.querySelector('#promet-si-rmb-start');\r\n start.onclick = async () => {\r\n this._map.closeAllPopups();\r\n this.setRoutingStatus(true);\r\n const res = await this._nominatimService.reverse_v3(e.coordinate);\r\n if (res && res.features && res.features.length > 0) {\r\n this.focusedSearchInput = this._routingLocations[0];\r\n this.onSearchResultSelected(res.first, PrometSiSearchResultsType.Routing);\r\n }\r\n };\r\n\r\n const via: HTMLAnchorElement = template.querySelector('#promet-si-rmb-via');\r\n via.onclick = async () => {\r\n this._map.closeAllPopups();\r\n this.setRoutingStatus(true);\r\n const res = await this._nominatimService.reverse_v3(e.coordinate);\r\n if (res && res.features && res.features.length > 0) {\r\n this._routingLocations.splice(this._routingLocations.length - 1, 0, new PrometSiRoutingLocation(`input-${this._routingLocationsIncrementCount++}`));\r\n this.refreshRoutingLocations();\r\n this.refreshRoutingSize();\r\n\r\n this.focusedSearchInput = this._routingLocations[this._routingLocations.length - 2];\r\n this.onSearchResultSelected(res.first, PrometSiSearchResultsType.Routing);\r\n }\r\n };\r\n\r\n const destination: HTMLAnchorElement = template.querySelector('#promet-si-rmb-destination');\r\n destination.onclick = async () => {\r\n this._map.closeAllPopups();\r\n this.setRoutingStatus(true);\r\n const res = await this._nominatimService.reverse_v3(e.coordinate);\r\n if (res && res.features && res.features.length > 0) {\r\n this.focusedSearchInput = this._routingLocations[this._routingLocations.length - 1];\r\n this.onSearchResultSelected(res.first, PrometSiSearchResultsType.Routing);\r\n }\r\n };\r\n\r\n this._map.closeAllPopups();\r\n this.popupRmb = this._map.openPopup(e.coordinate, template, {\r\n addContainer: false,\r\n hasCloseButton: false,\r\n closesOnClick: false,\r\n panOnOpen: false,\r\n offset: offset\r\n // cameraOptions: { relCenterX: this.getRelCenterX() }\r\n });\r\n\r\n this.popupRmb.onClose.subscribe(() => this.popupRmb = null);\r\n }\r\n\r\n injectedRouteId: string = null;\r\n injectedRouteTitle: string = null;\r\n public injectRouteForEditing(route: RouteLegacy) {\r\n if (route) {\r\n this.setRoutingStatus(true);\r\n const points = route.Data.features.map(x => {\r\n const ft = Object.assign({}, x);\r\n ft.geometry = Geometry.transform(x.geometry, Projection.create('EPSG:3912'), Projection.create('EPSG:4326'));\r\n return Feature.fromGeoJson(ft);\r\n });\r\n\r\n // // MOCK PODATKI ZA TEST\r\n // const mockPoints = [[14.501556, 46.056458], [14.491636, 46.067675], [14.478019, 46.083590], [14.470677, 46.107190]];\r\n // const points = route.Data.features.map((x, i) => {\r\n // const ft = Object.assign({}, x);\r\n // ft.geometry.coordinates = mockPoints[i];\r\n // return Feature.fromGeoJson(ft);\r\n // });\r\n\r\n this.injectedRouteId = route.Id;\r\n this.injectedRouteTitle = route.Title;\r\n this._routingLocations = this.getRoutingLocationsArray(points);\r\n this._searchInput.element.value = '';\r\n this._searchInput.data = null;\r\n this.setRoutesStatus([]);\r\n this.refreshRoutingLocations();\r\n // this.refreshRoute();\r\n this.refreshRouteDebouncing.next();\r\n }\r\n }\r\n\r\n public clear() {\r\n this.currFetchId = null;\r\n this.injectedRouteId = null;\r\n this.injectedRouteTitle = null;\r\n this._routingLocations = this.getNewRoutingLocationsArray();\r\n this._searchInput.element.value = '';\r\n this._searchInput.data = null;\r\n this.setRoutesStatus([]);\r\n this.refreshRoutingLocations();\r\n // this.refreshRoute();\r\n this.refreshRouteDebouncing.next();\r\n }\r\n\r\n private create(): HTMLDivElement {\r\n const menuContainer = document.createElement('div');\r\n menuContainer.className = 'promet-si-search-container animate-left rounded bg-white position-absolute';\r\n const containerParsed = Mustache.render(ContainerTemplate, {});\r\n this._localizationService.refresh(containerParsed);\r\n menuContainer.innerHTML = containerParsed;\r\n this._searchBarContainer = menuContainer;\r\n this.refreshSearchBarContainerSize();\r\n\r\n // search results\r\n this._searchResults = document.createElement('div');\r\n this._searchResults.className = 'animate-max-height animate-left shadow-sm';\r\n this._searchResults.style.margin = '7px -7px 0 -7px';\r\n this.setSearchResultsStatus(false, PrometSiSearchResultsType.Normal); // hide by default\r\n\r\n // // legend dim background\r\n // const legendBg = document.createElement('div');\r\n // legendBg.className = 'promet-si-legend-dim';\r\n // legendBg.onclick = () => this.setLegendStatus(false);\r\n // this._legendBg = legendBg;\r\n\r\n // legend\r\n const legend = document.createElement('div');\r\n legend.className = \"bg position-absolute animate-left promet-si-legend\";\r\n\r\n const legendGroups = this.getLegendGroups();\r\n legend.innerHTML = Mustache.render(LegendTemplate, {\r\n groups: legendGroups\r\n });\r\n this._localizationService.refresh(legend);\r\n\r\n const hideLegendButton: HTMLButtonElement = legend.querySelector('#hide-legend-button');\r\n hideLegendButton.onclick = () => this.setLegendStatus(false);\r\n this._legend = legend;\r\n this.refreshLegendSize();\r\n\r\n if (this._options.openLegend === true && localStorage && !localStorage.getItem(this.openLegendKey))\r\n this.setLegendStatus(true);\r\n else\r\n this.setLegendStatus(false);\r\n\r\n // legend item status UI\r\n const updateLegendItemUI = (item: HTMLInputElement, checked: boolean) => {\r\n item.checked = checked; // check\r\n\r\n // background\r\n if (checked)\r\n item.parentElement.parentElement.classList.add('bg-selected');\r\n else\r\n item.parentElement.parentElement.classList.remove('bg-selected');\r\n };\r\n\r\n // legend checkboxes\r\n const checkboxes = this._legend.querySelectorAll(\"[id^='checkbox-']\");\r\n checkboxes.forEach((c: HTMLInputElement) => {\r\n updateLegendItemUI(c, (legendGroups.filter(l => l.isCheckbox === true).map(l => l.layers) as any).flat().find((g: LayerGroup) => g.id === c.name).visible !== false); // set initial UI\r\n c.addEventListener('input', e => {\r\n this._map.setGroupVisibility(c.name, c.checked);\r\n this._map.persistVisibility([{ type: 'group', id: c.name, visible: c.checked }]);\r\n }); // set visibility\r\n });\r\n\r\n // legend radios\r\n const radios = this._legend.querySelectorAll(\"[id^='radio-']\");\r\n radios.forEach((c: HTMLInputElement) => {\r\n const parent: LayerGroup = (legendGroups.filter(l => l.isCheckbox === false).map(l => l.layers) as any).flat().find((g: LayerGroup) => g.id === c.name);\r\n updateLegendItemUI(c, parent.children.find(l => l.id === c.value).visible !== false); // set initial UI\r\n c.addEventListener('input', e => {\r\n const filtered = parent.children.filter(child => child.id !== c.value);\r\n filtered.forEach(other => this._map.setGroupVisibility(other.id, false));\r\n this._map.setGroupVisibility(c.value, true); // set visibility\r\n\r\n const persist: PersistedVisibility[] = filtered.map(x => {\r\n return {\r\n type: 'group',\r\n id: x.id,\r\n visible: false\r\n };\r\n });\r\n\r\n persist.push({\r\n type: 'group',\r\n id: c.id,\r\n visible: true\r\n });\r\n\r\n this._map.persistVisibility(persist);\r\n });\r\n });\r\n\r\n const weatherLayer = this._map.getLayer(this.weatherLayerName);\r\n if (weatherLayer && weatherLayer.metadata)\r\n this._weatherGroup = weatherLayer.metadata.gid;\r\n\r\n if (this._weatherGroup && this._map.getGroupVisibility(this._weatherGroup))\r\n this.tryStartWeatherLayerUpdating(true);\r\n\r\n // group visibility update\r\n this._map.onGroupVisibilityChanged.subscribe(g => {\r\n const parent = g.getParent();\r\n if (parent && parent.sequenceMode === 'choice') {\r\n // update radios\r\n const radios = this._legend.querySelectorAll(`[name=\"${parent.id}\"]`);\r\n radios.forEach((radio: HTMLInputElement) => updateLegendItemUI(radio, radio.value === g.id));\r\n }\r\n else {\r\n // update checkbox\r\n const checkbox: HTMLInputElement = this._legend.querySelector(`[id^='checkbox-${g.id}']`);\r\n updateLegendItemUI(checkbox, g.visible !== false);\r\n }\r\n\r\n // listen to weather layer visibility changes\r\n if (this._weatherGroup && g.id === this._weatherGroup) {\r\n if (this._map.getGroupVisibility(g.id))\r\n this.tryStartWeatherLayerUpdating();\r\n else\r\n this.stopWeatherLayerUpdating();\r\n }\r\n });\r\n\r\n // menu button\r\n const menuButton: HTMLElement = menuContainer.querySelector('#menu-button');\r\n menuButton.onclick = () => {\r\n if (this.getSearchResultsStatus())\r\n this.setSearchResultsStatus(false, PrometSiSearchResultsType.Normal);\r\n else\r\n this.setLegendStatus(!this.getLegendStatus());\r\n };\r\n\r\n if (this._options.hasLegend === false)\r\n menuButton.parentElement.removeChild(menuButton);\r\n\r\n // routing button\r\n const routingButton: HTMLElement = menuContainer.querySelector('#routing-button');\r\n routingButton.onclick = () => this.setRoutingStatus(true);\r\n\r\n // routing\r\n this._routing = document.createElement('div');\r\n this._routing.className = \"position-absolute animate-opacity promet-si-routing d-flex flex-column\";\r\n this._routingHeader = document.createElement('div');\r\n this.refreshRoutingLocations();\r\n this._routing.appendChild(this._routingHeader);\r\n this._routing.style.visibility = 'hidden';\r\n\r\n // routing bottom\r\n this._routingBottom = document.createElement('div');\r\n // this._routingBottom.className = 'position-relative bg flex-grow-1 d-flex flex-column';\r\n this._routingBottom.className = 'position-relative bg h-100';\r\n this._routingBottom.style.overflowY = 'auto';\r\n\r\n // routing bottom search results\r\n this._routingSearchResults = document.createElement('div');\r\n this._routingSearchResults.className = 'animate-max-height border border-top-0 rounded-bottom shadow-sm';\r\n this._routingSearchResults.style.zIndex = '10';\r\n // this._routingSearchResults.style.left = '-31px';\r\n this._routingSearchResults.style.left = '0px';\r\n this._routingSearchResults.style.right = '0px';\r\n this._routingSearchResults.style.top = '0px';\r\n // this._routingSearchResults.style.position = 'fixed';\r\n this._routingSearchResults.style.position = 'absolute';\r\n this.setSearchResultsStatus(false, PrometSiSearchResultsType.Routing); // hide by default\r\n\r\n // this._routingBottom.appendChild(this._routingSearchResults);\r\n this._routingBottomSearchResultsContainer = document.createElement('div');\r\n this._routingBottomSearchResultsContainer.className = 'position-relative h-100 flex-grow-1';\r\n this._routingBottomSearchResultsContainer.appendChild(this._routingBottom);\r\n this._routingBottomSearchResultsContainer.appendChild(this._routingSearchResults);\r\n\r\n this._routing.appendChild(this._routingBottomSearchResultsContainer);\r\n\r\n // search input\r\n this._searchInput = { element: menuContainer.querySelector('#search-input') };\r\n this._searchInput.element.addEventListener('input', e => this.searchTextDebouncing.next({ text: this._searchInput.element.value, type: PrometSiSearchResultsType.Normal }));\r\n this._searchInput.element.addEventListener('keyup', e => this.onSearchInputEnterKey(e, PrometSiSearchResultsType.Normal));\r\n\r\n menuContainer.appendChild(this._searchResults);\r\n\r\n // weather\r\n const weatherContainer = document.createElement('div');\r\n weatherContainer.className = 'position-absolute';\r\n weatherContainer.style.boxShadow = 'none';\r\n const weatherBg = document.createElement('div');\r\n weatherBg.className = 'rm2-meteo-weather-bg';\r\n const text = document.createElement('span');\r\n weatherBg.appendChild(text);\r\n weatherContainer.appendChild(weatherBg);\r\n this._weatherContainer = weatherContainer;\r\n this._weatherTimestampSpan = text;\r\n this.stopWeatherLayerUpdating();\r\n\r\n window.addEventListener('resize', this.resizeElements);\r\n this.resizeElements();\r\n\r\n const container = document.createElement('div');\r\n container.appendChild(menuContainer);\r\n container.appendChild(weatherContainer);\r\n container.appendChild(this._routing);\r\n // container.appendChild(legendBg);\r\n container.appendChild(this._legend);\r\n return container;\r\n }\r\n\r\n private setSearchResults(results: Feature[], type: PrometSiSearchResultsType) {\r\n results.forEach((ft: any, i) => {\r\n ft.index = i; // indeksiranje za Mustache\r\n if (!ft.properties.Description)\r\n ft.properties.Description = ft.properties.Title;\r\n });\r\n this._searchResultsFeatures = results;\r\n const searchResultsParsed = Mustache.render(SearchResultsTemplate, {\r\n results: results\r\n });\r\n\r\n const container = this.getContainerFromSearchResultsType(type);\r\n container.innerHTML = searchResultsParsed;\r\n\r\n // search result select listener\r\n const items = container.querySelectorAll('a');\r\n items.forEach(item => item.onclick = () => {\r\n const i = Number.parseInt(item.id.substring(7));\r\n const result = results[i];\r\n this.onSearchResultSelected(result, type);\r\n this.setSearchResultsStatus(false, type);\r\n });\r\n\r\n this.setSearchResultsStatus(results.length > 0, type);\r\n }\r\n\r\n private onSearchInputEnterKey(e: KeyboardEvent, type: PrometSiSearchResultsType) {\r\n e.preventDefault();\r\n if (e.code === 'Enter' && this._searchResultsFeatures.length === 1) {\r\n this.onSearchResultSelected(this._searchResultsFeatures[0], type);\r\n this.setSearchResultsStatus(false, type);\r\n }\r\n }\r\n\r\n private setSearchResultsStatus(visible: boolean, type: PrometSiSearchResultsType) {\r\n this.getContainerFromSearchResultsType(type).style.maxHeight = visible ? this.searchResultsMaxHeight : '0px';\r\n if (visible === false)\r\n this._searchResultsFeatures = [];\r\n }\r\n\r\n private getSearchResultsStatus(): boolean {\r\n return this._searchResults.style.maxHeight !== '0px';\r\n }\r\n\r\n private onSearchResultSelected(result: Feature, type: PrometSiSearchResultsType) {\r\n if (type === PrometSiSearchResultsType.Normal) {\r\n this._searchInput.element.value = result.properties.Title;\r\n this._searchInput.data = result;\r\n const coord = result.geometry.getCoordinate();\r\n this.highlightLocation([coord.x, coord.y]);\r\n }\r\n else if (type === PrometSiSearchResultsType.Routing) {\r\n const coord = result.geometry.getCoordinate();\r\n this.focusedSearchInput.element.value = result.properties.Title;\r\n this.focusedSearchInput.coords = [coord.x, coord.y];\r\n this.focusedSearchInput.data = result;\r\n // this.refreshRoute();\r\n this.refreshRouteDebouncing.next();\r\n }\r\n }\r\n\r\n private async search(query: string, type: PrometSiSearchResultsType) {\r\n if (query.length > 0) {\r\n const locs = await this._nominatimService.query_v3(query);\r\n const fts = locs.features.slice();\r\n this.setSearchResults(fts, type);\r\n }\r\n else\r\n this.setSearchResultsStatus(false, type);\r\n }\r\n\r\n private getLegendStatus(): boolean {\r\n return this._legend.getAttribute('visible') === 'true';\r\n }\r\n\r\n private setLegendStatus(visible: boolean) {\r\n const width = this.getLegendWidth();\r\n const l = visible ? '-10px' : `calc(-${width} - 10px)`;\r\n const lPositive = visible ? `${width}` : '10px';\r\n this._legend.style.left = l;\r\n this._legend.setAttribute('visible', visible.toString());\r\n this._searchBarContainer.style.left = lPositive;\r\n\r\n // // this._searchResults.style.left = lPositive;\r\n // if (visible)\r\n // this._legendBg.classList.add('show');\r\n // else\r\n // this._legendBg.classList.remove('show');\r\n\r\n if (this._options.openLegend && visible === false) {\r\n if (localStorage) {\r\n localStorage.setItem(this.openLegendKey, 'true');\r\n }\r\n }\r\n }\r\n\r\n private getLegendGroups(): { layers: LayerGroup[], isCheckbox: boolean }[] {\r\n const metadata = this._map.metadata;\r\n let groupsArray: any[] = [];\r\n if (metadata && metadata.groups) {\r\n const groups = metadata.groups.filter(g => g.id && g.uiVisible !== false);\r\n const radio = groups.filter(g => g.sequenceMode === 'choice');\r\n const checkbox = groups.filter(g => g.sequenceMode !== 'choice');\r\n\r\n groupsArray = [\r\n {\r\n layers: checkbox,\r\n isCheckbox: true\r\n },\r\n {\r\n layers: radio,\r\n isCheckbox: false\r\n }\r\n ]\r\n }\r\n\r\n return groupsArray;\r\n }\r\n\r\n private setRoutingStatus(visible: boolean) {\r\n this.focusedSearchInput = null;\r\n this._map.clearRoute();\r\n if (visible) {\r\n this._routing.classList.add('show');\r\n if (this._searchInput.data == undefined) {\r\n if (this.routes.length > 0) {\r\n this.setRoutesStatus(this.routes, this.selectedRoute); // show previous route\r\n this.startRouteStatusRefresh(this.currStatusRefreshId, this.routes, false);\r\n }\r\n else if (this._routingLocations.length > 0) {\r\n // show selected marker\r\n const waypoints = this._routingLocations.filter(l => l.coords != null).map(l => l.coords);\r\n if (waypoints.length > 0)\r\n this.highlightLocation(waypoints[0]);\r\n }\r\n }\r\n this.setLegendStatus(false);\r\n this.setSearchResultsStatus(false, PrometSiSearchResultsType.Normal);\r\n this.setLegendStatus(false);\r\n }\r\n else {\r\n this._routing.classList.remove('show');\r\n this.clearHighlight();\r\n this.clearInstructionHighlight();\r\n this.stopRouteStatusRefresh();\r\n this.stopGeolocationSearch();\r\n }\r\n\r\n if (this._searchInput.data) {\r\n this._routingLocations = this.getNewRoutingLocationsArray(this._searchInput.data);\r\n this._searchInput.element.value = '';\r\n this._searchInput.data = null;\r\n this.setRoutesStatus([]);\r\n this.refreshRoutingLocations();\r\n // this.refreshRoute();\r\n this.refreshRouteDebouncing.next();\r\n\r\n // focus on first input\r\n const firstInput: HTMLInputElement = this._routingHeader.querySelector(\"input\");\r\n firstInput.focus();\r\n }\r\n\r\n if (visible)\r\n this.refreshRoutingSize();\r\n }\r\n\r\n private getRoutingStatus(): boolean {\r\n return this._routing.classList.contains('show');\r\n }\r\n\r\n private myLocExecuting: number = null;\r\n private refreshRoutingLocations() {\r\n for (let i = 0; i < this._routingLocations.length; i++) {\r\n const loc = this._routingLocations[i];\r\n const isLast = i === this._routingLocations.length - 1;\r\n if (i === 0)\r\n loc.icon = 'assets/icons/routing_marker_start.svg';\r\n else if (isLast)\r\n loc.icon = 'assets/icons/routing_marker_end.svg';\r\n else\r\n loc.icon = 'assets/icons/routing_marker_via.svg';\r\n\r\n loc.canSwapWithNext = isLast === false;\r\n }\r\n\r\n this._routingHeader.innerHTML = Mustache.render(RoutingHeaderTemplate, {\r\n locations: this._routingLocations\r\n });\r\n this._localizationService.refresh(this._routingHeader);\r\n\r\n // clear input button\r\n const myLocButtons = this._routingHeader.querySelectorAll(\"[id^='my-loc-']\");\r\n myLocButtons.forEach((btn: HTMLDivElement) => {\r\n btn.onclick = async () => {\r\n this.setRoutingSpinnerStatus(true);\r\n this.myLocExecuting = navigator.geolocation.watchPosition(async (e) => {\r\n const locs = await this._nominatimService.reverse_v3([e.coords.longitude, e.coords.latitude]);\r\n if (locs && locs.length > 0) {\r\n const result = locs.features[0];\r\n const coord = result.geometry.getCoordinate();\r\n this.focusedSearchInput = this._routingLocations.find(l => l.id === btn.id.substr(7));\r\n this.focusedSearchInput.element.value = result.properties.Title;\r\n this.focusedSearchInput.coords = [coord.x, coord.y];\r\n this.focusedSearchInput.data = result;\r\n }\r\n else\r\n this.setRoutingErrorStatus(this._localizationService.localize('rmap.general.errors.cannot-get-user-location'));\r\n\r\n this.setRoutingSpinnerStatus(false);\r\n this.refreshRoutingLocations();\r\n\r\n // this.refreshRoute();\r\n this.refreshRouteDebouncing.next();\r\n this.stopGeolocationSearch();\r\n },\r\n () => {\r\n this.setRoutingErrorStatus(this._localizationService.localize('rmap.general.errors.cannot-get-user-location'));\r\n this.setRoutingSpinnerStatus(false);\r\n this.stopGeolocationSearch();\r\n });\r\n\r\n\r\n // const found = this._routingLocations.findIndex(l => l.id === btn.id.substr(7));\r\n // const loc = this._routingLocations[found];\r\n // // remove input\r\n // const before = this._routingLocations.length;\r\n // if (this._routingLocations.length > 2)\r\n // this._routingLocations.splice(found, 1);\r\n // else {\r\n // if (loc.data || loc.element.value) {\r\n // // clear input\r\n // loc.data = null;\r\n // loc.coords = null;\r\n // loc.element.value = '';\r\n // }\r\n // }\r\n\r\n // this.refreshRoutingLocations();\r\n // if (before != this._routingLocations.length)\r\n // this.refreshRoutingSize();\r\n\r\n // // this.refreshRoute();\r\n // this.refreshRouteDebouncing.next();\r\n };\r\n });\r\n\r\n // clear input button\r\n const clearInputButtons = this._routingHeader.querySelectorAll(\"[id^='remove-']\");\r\n clearInputButtons.forEach((btn: HTMLDivElement) => {\r\n btn.onclick = () => {\r\n const found = this._routingLocations.findIndex(l => l.id === btn.id.substr(7));\r\n const loc = this._routingLocations[found];\r\n // remove input\r\n const before = this._routingLocations.length;\r\n if (this._routingLocations.length > 2)\r\n this._routingLocations.splice(found, 1);\r\n else {\r\n if (loc.data || loc.element.value) {\r\n // clear input\r\n loc.data = null;\r\n loc.coords = null;\r\n loc.element.value = '';\r\n }\r\n }\r\n\r\n this.refreshRoutingLocations();\r\n if (before != this._routingLocations.length)\r\n this.refreshRoutingSize();\r\n\r\n // this.refreshRoute();\r\n this.refreshRouteDebouncing.next();\r\n };\r\n });\r\n\r\n // swap locations button\r\n const swapButtons = this._routingHeader.querySelectorAll(\"[id^='swap-']\");\r\n swapButtons.forEach((btn: HTMLButtonElement) => {\r\n btn.onclick = () => {\r\n const found = this._routingLocations.findIndex(l => l.id === btn.name);\r\n [this._routingLocations[found], this._routingLocations[found + 1]] = [this._routingLocations[found + 1], this._routingLocations[found]]\r\n this.refreshRoutingLocations();\r\n // this.refreshRoute();\r\n this.refreshRouteDebouncing.next();\r\n };\r\n });\r\n\r\n // inputs\r\n const inputs = this._routingHeader.querySelectorAll(\"[id^='input-']\");\r\n inputs.forEach((input: HTMLInputElement) => {\r\n const loc = this._routingLocations.find(l => l.id === input.name);\r\n loc.element = input;\r\n if (loc.data)\r\n input.value = loc.data.properties.Title; // initial value\r\n\r\n input.addEventListener('input', e => this.searchTextDebouncing.next({ text: input.value, type: PrometSiSearchResultsType.Routing }));\r\n input.addEventListener('focus', e => this.focusedSearchInput = loc);\r\n input.addEventListener('keydown', e => {\r\n if (e.code === 'Enter')\r\n e.preventDefault();\r\n });\r\n input.addEventListener('keyup', e => this.onSearchInputEnterKey(e, PrometSiSearchResultsType.Routing));\r\n });\r\n\r\n // routing hide button\r\n const routingHideButton: HTMLDivElement = this._routingHeader.querySelector('#hide-button');\r\n routingHideButton.onclick = () => this.setRoutingStatus(false);\r\n\r\n // add location button\r\n const addLocationButton: HTMLButtonElement = this._routingHeader.querySelector('#add-location-button');\r\n addLocationButton.onclick = () => {\r\n this._routingLocations.splice(this._routingLocations.length - 1, 0, new PrometSiRoutingLocation(`input-${this._routingLocationsIncrementCount++}`));\r\n this.refreshRoutingLocations();\r\n this.refreshRoutingSize();\r\n };\r\n }\r\n\r\n private drawRoutes(routes: Route[], pan: boolean = true) {\r\n const p = 30;\r\n for (let i = 0; i < routes.length; i++) {\r\n const r = routes[i];\r\n const s: RouteStatusResponseDTO = r[this.routeStatusKey];\r\n const selected = i === this.selectedRoute;\r\n const routeId = Guid.create().toString();\r\n r[this.routeIdKey] = routeId;\r\n if (s) {\r\n r.routeSegments = s.apply(r.route, selected, this._map.metadata.routeFcdColors);\r\n const loop = (fc: FeatureCollection) => {\r\n for (let j = 0; j < fc.features.length; j++) {\r\n const props = fc.features[j].properties\r\n props[this.routeIdKey] = routeId;\r\n props['includeInPopup'] = false;\r\n }\r\n };\r\n\r\n loop(r.route);\r\n loop(r.routeSegments);\r\n }\r\n else {\r\n for (let j = 0; j < r.route.features.length; j++) {\r\n const props = r.route.features[j].properties;\r\n props['Color'] = Utils.routeColor(selected);\r\n props[this.routeIdKey] = routeId;\r\n props['includeInPopup'] = false;\r\n }\r\n }\r\n }\r\n\r\n if (this.getRoutingStatus()) {\r\n const reorder = routes.slice();\r\n if (reorder.length > 1) {\r\n // reorder - selected route on top\r\n const sel = reorder.splice(this.selectedRoute, 1);\r\n reorder.push(...sel);\r\n }\r\n\r\n const padding = {\r\n left: p,\r\n top: p,\r\n right: p,\r\n bottom: p\r\n };\r\n\r\n const width = this._map.getSize()[0];\r\n if (width > this.responsiveBreakpoint)\r\n padding.left = Number.parseInt(this.routingWidth.substr(0, this.routingWidth.length - 2)) + p;\r\n else {\r\n // TODO: RESPONSIVE\r\n padding.top = p;\r\n padding.bottom = p;\r\n }\r\n\r\n this._map.drawRoutes(reorder, {\r\n pan: pan,\r\n cameraOptions: {\r\n padding: padding\r\n }\r\n });\r\n }\r\n }\r\n\r\n private routes: Route[] = [];\r\n private selectedRoute: number = -1;\r\n private setRoutesStatus(routes: Route[], selectedIndex: number = 0, pan: boolean = true) {\r\n this.clearRoutingTabContainer();\r\n this.clearInstructionHighlight();\r\n\r\n this.routes = routes;\r\n this.selectedRoute = -1;\r\n if (routes.length > 0) {\r\n this.selectedRoute = selectedIndex;\r\n this._routingTabsContainer = document.createElement('div');\r\n routes.forEach((r, i) => {\r\n const id = i;\r\n // create tab for each route\r\n const tab = document.createElement('div');\r\n const waypoints = this._routingLocations.filter(r => r.data);\r\n const instructions = r.route.properties.Instructions.features.slice().filter(x => x.properties.Type !== 'station-toll');\r\n let viaPoints = 1;\r\n instructions.forEach(ins => {\r\n const type = ins.properties.Type;\r\n const getIcon = (stationInstructionType: string) => {\r\n if (stationInstructionType === 'instruction-start')\r\n return 'nav_start';\r\n if (stationInstructionType === 'instruction-turn-left')\r\n return 'nav_left';\r\n else if (stationInstructionType === 'instruction-turn-right')\r\n return 'nav_right';\r\n else if (stationInstructionType === 'instruction-turn-straight')\r\n return 'nav_straight';\r\n // // else if (stationInstructionType === 'station-toll')\r\n // // return 'fa fa-exclamation-triangle text-warning';\r\n else if (stationInstructionType === 'instruction-turn-sharpleft')\r\n return 'nav_sharp_left';\r\n else if (stationInstructionType === 'instruction-turn-sharpright')\r\n return 'nav_sharp_right';\r\n else if (stationInstructionType === 'instruction-turn-uturn')\r\n return 'nav_u_turn';\r\n else if (stationInstructionType === 'instruction-turn-end' || stationInstructionType === 'instruction-end')\r\n return 'nav_finish';\r\n return 'avto_black';\r\n };\r\n\r\n ins.setField('CumulativeDurationString', Utils.formatDuration(ins.properties.CumulativeDuration));\r\n ins.setField('CumulativeLengthString', Utils.formatDistance(ins.properties.CumulativeLength));\r\n ins.setField('Icon', getIcon(type));\r\n ins.setField('TitleString', ins.properties.TitleTranslations.find(t => t.Item1 == \"sl\").Item2); // TODO: lokalizacija\r\n\r\n const coord = ins.geometry.getCoordinate();\r\n ins.setField('Coordinate', `${coord.x};${coord.y}`);\r\n\r\n if (type === 'instruction-via') {\r\n ins.setField('TitleString', waypoints[viaPoints].data.properties.Title);\r\n ins.setField('IsVia', true);\r\n viaPoints++;\r\n }\r\n });\r\n\r\n const first = waypoints[0].data;\r\n const last = waypoints[waypoints.length - 1].data;\r\n let detourText = '';\r\n if (r.route.properties.IsDetour)\r\n detourText += ` (${this._localizationService.localize('rmap.rm.routing.detour').toLowerCase()})`;\r\n\r\n tab.innerHTML = Mustache.render(RouteTabTemplate, {\r\n route: r,\r\n Selected: id == selectedIndex,\r\n Id: id,\r\n Start: first,\r\n Instructions: instructions,\r\n Destination: last,\r\n Length: Utils.formatDistance(r.route.properties.Length),\r\n Profile: r.route.properties.Mode,\r\n DetourText: detourText,\r\n Duration: Utils.formatDuration(r.route.properties.RealTTMs / 1000),\r\n TTClass: r[this.routeTTBadgeClassKey] || 'badge-primary d-none',\r\n TTSpinnerClass: r[this.routeTTBadgeClassKey] ? 'd-none' : ''\r\n });\r\n\r\n const instrAttrName = 'data-promet-routing-instruction-coord';\r\n const tabClicks = tab.querySelectorAll(`[${instrAttrName}]`);\r\n tabClicks.forEach((click: HTMLElement) => {\r\n click.onclick = () => {\r\n const isntrCoord = click.getAttribute(instrAttrName);\r\n const coords = isntrCoord.split(';').map(x => Number.parseFloat(x));\r\n this.highlightInstruction([coords[0], coords[1]]);\r\n };\r\n });\r\n\r\n this._routingTabsContainer.appendChild(tab);\r\n\r\n // select\r\n tab.onclick = () => {\r\n if (selectedIndex !== id)\r\n this.setRoutesStatus(routes, id);\r\n };\r\n });\r\n\r\n this._localizationService.refresh(this._routingTabsContainer);\r\n this.drawRoutes(routes, pan);\r\n this._routingBottom.appendChild(this._routingTabsContainer);\r\n\r\n // save route button\r\n const text = this._localizationService.localize('rmap.rm.routing.save');\r\n this._routingSave = document.createElement('div');\r\n this._routingSave.className = 'd-flex flex-column align-items-end p-4';\r\n const saveBtn = document.createElement('a');\r\n saveBtn.className = 'btn btn-primary';\r\n saveBtn.innerText = text;\r\n saveBtn.onclick = async () => {\r\n const isLoading = JSON.parse(saveBtn.getAttribute('data-loading'));\r\n if (isLoading != true) {\r\n saveBtn.setAttribute('data-loading', 'true');\r\n saveBtn.innerText = 'Loading ...';\r\n\r\n try {\r\n const r = routes[selectedIndex];\r\n const route = await this._routingService.transformRoute(r, this.injectedRouteTitle);\r\n // route.pointsFt = route.pointsFt.map(x => {\r\n // const ft = x.clone();\r\n // ft.geometry = Geometry.transform(ft.geometry, Projection.create('EPSG:4326'), Projection.create('EPSG:3912'));\r\n // return x.toGeoJson();\r\n // });\r\n\r\n this._onRouteSaved.trigger(route);\r\n // saveBtn.innerText = text;\r\n }\r\n catch (e) {\r\n console.error(e);\r\n this._onRouteSaved.trigger(null);\r\n }\r\n finally {\r\n saveBtn.setAttribute('data-loading', 'false');\r\n saveBtn.innerText = text;\r\n }\r\n }\r\n };\r\n this._routingSave.appendChild(saveBtn);\r\n this._routingBottom.appendChild(this._routingSave);\r\n\r\n // details\r\n routes.forEach((r, i) => {\r\n // TODO: unsubscribe? ali se vsi eventi sami unsubscribe-ajo?\r\n const id = i;\r\n const getOtherTabs = (): HTMLElement[] => {\r\n const other = [];\r\n this._routingBottom.querySelectorAll(\"[id^='route-tab-container-']\").forEach(item => {\r\n if (item.id !== `route-tab-container-${id}`)\r\n other.push(item);\r\n });\r\n\r\n return other;\r\n };\r\n\r\n const detailsSelector = `#details-${id}`;\r\n $(detailsSelector).on('show.bs.collapse', () => {\r\n getOtherTabs().forEach(o => o.classList.add('d-none'));\r\n });\r\n\r\n $(detailsSelector).on('hide.bs.collapse', () => {\r\n getOtherTabs().forEach(o => o.classList.remove('d-none'));\r\n });\r\n });\r\n }\r\n }\r\n\r\n private clearRoutingTabContainer() {\r\n // clear tab\r\n if (this._routingTabsContainer) {\r\n this._routingBottom.removeChild(this._routingTabsContainer);\r\n this._routingTabsContainer = null;\r\n }\r\n\r\n if (this._routingSave) {\r\n this._routingBottom.removeChild(this._routingSave);\r\n this._routingSave = null;\r\n }\r\n }\r\n\r\n private setRoutingErrorStatus(status: string) {\r\n if (this._routingError) {\r\n this._routingError.parentElement.removeChild(this._routingError);\r\n this._routingError = null;\r\n }\r\n\r\n if (status) {\r\n this._routingError = document.createElement('div');\r\n this._routingError.className = 'p-3';\r\n this._routingError.innerHTML = Mustache.render(ErrorTemplate, {\r\n text: status\r\n });\r\n\r\n this._routingBottom.appendChild(this._routingError);\r\n }\r\n }\r\n\r\n private currFetchId: string;\r\n private currStatusRefreshId: string;\r\n private async refreshRoutes() {\r\n const locs = this._routingLocations.filter(l => l.coords != null);\r\n const waypoints = locs.map(l => l.coords);\r\n if (this.routes.length > 0) {\r\n const points = this.routes[0].points;\r\n if (points.length === waypoints.length) {\r\n let changed = false;\r\n for (let i = 0; i < points.length; i++) {\r\n const p1 = points[i];\r\n const p2 = waypoints[i];\r\n const threshold = 0.00001;\r\n if (Math.abs(p1[0] - p2[0]) > threshold && Math.abs(p1[1] - p2[1]) > threshold) {\r\n changed = true;\r\n break; // route changed\r\n }\r\n }\r\n\r\n if (changed === false)\r\n return; // route not changed\r\n }\r\n }\r\n\r\n // TODO: cancel previous request\r\n this.stopRouteStatusRefresh();\r\n this.currStatusRefreshId = Guid.create().toString();\r\n this.setRoutingErrorStatus(null);\r\n this.clearHighlight();\r\n this.clearInstructionHighlight();;\r\n this.clearRoutingTabContainer();\r\n if (waypoints.length === 1) {\r\n // display location\r\n this._map.clearRoute();\r\n this.highlightLocation(waypoints[0]);\r\n this.routes = [];\r\n }\r\n else if (waypoints.length > 1) {\r\n // display route\r\n this.setRoutingSpinnerStatus(true);\r\n\r\n const waypointsFts = locs.map(x => {\r\n const data = x.data.clone();\r\n const point = data.geometry.getCoordinate();\r\n data.geometry.coordinates = proj4('EPSG:4326', 'EPSG:3912', [point.x, point.y]);\r\n return data;\r\n });\r\n let results: Route[] = [];\r\n\r\n try {\r\n const fetchId = Guid.create().toString();\r\n this.currFetchId = fetchId;\r\n const res = await this._routingService.routeMultiple(waypoints);\r\n\r\n // cancel, če je vmes šel po drugo routeo (TODO: nekako cancel promise)\r\n if (this.currFetchId !== fetchId)\r\n return;\r\n\r\n for (let i = 0; i < res.Routes.length; i++)\r\n res.Routes[i].pointsFt = waypointsFts.slice();\r\n\r\n if (this.injectedRouteId)\r\n res.Routes.forEach(r => r.route.properties.Id = this.injectedRouteId);\r\n\r\n results = res.Routes;\r\n }\r\n catch (e) {\r\n console.error('Failed to refresh routes.', e);\r\n }\r\n\r\n this.setRoutingSpinnerStatus(false);\r\n this.setRoutesStatus(results);\r\n\r\n if (results.length === 0)\r\n this.setRoutingErrorStatus(this._localizationService.localize('rmap.rm.routing.errors.cannot-get-route'));\r\n else\r\n this.startRouteStatusRefresh(this.currStatusRefreshId, results);\r\n }\r\n }\r\n\r\n private setRoutingSpinnerStatus(visible: boolean) {\r\n if (visible === false && this._routingSpinner) {\r\n this._routingSpinner.parentElement.removeChild(this._routingSpinner)\r\n this._routingSpinner = null;\r\n }\r\n else if (visible === true && this._routingSpinner == null) {\r\n const container = document.createElement('div');\r\n container.className = 'd-flex';\r\n\r\n const spinner = document.createElement('div');\r\n spinner.className = 'spinner-border text-primary mx-auto mt-4';\r\n const span = document.createElement('span');\r\n span.className = 'sr-only';\r\n span.innerText = 'Loading...';\r\n spinner.appendChild(span);\r\n container.appendChild(spinner);\r\n\r\n this._routingSpinner = container;\r\n this._routingBottom.appendChild(this._routingSpinner);\r\n }\r\n }\r\n\r\n private instructionHighlight: Feature;\r\n private highlightInstruction(coord: CoordinateLike) {\r\n this.clearInstructionHighlight();\r\n\r\n const zoom = this._map.getView().zoom;\r\n const defaultZoom = 14;\r\n this.instructionHighlight = this._map.addFeature(new Feature({\r\n radius: 7,\r\n color: Utils.routeColor(true)\r\n }, Point.fromCoordinate(coord)), {\r\n pan: true,\r\n cameraOptions: {\r\n zoom: zoom > defaultZoom ? zoom : defaultZoom,\r\n relCenterX: this.getRelCenterX()\r\n } as IPanOptions\r\n });\r\n\r\n // if (pan) {\r\n // const zoom = this._map.getView().zoom;\r\n // const defaultZoom = 14;\r\n // this._map.pan(coord, {\r\n // zoom: zoom > defaultZoom ? zoom : defaultZoom,\r\n // relCenterX: this.getRelCenterX()\r\n // });\r\n // }\r\n }\r\n\r\n private clearInstructionHighlight() {\r\n if (this.instructionHighlight)\r\n this._map.removeFeature(this.instructionHighlight.properties.id);\r\n }\r\n\r\n private highlightLocation(location: CoordinateLike) {\r\n const zoom = this._map.getView().zoom < 12 ? 12 : null;\r\n this.clearHighlight();\r\n\r\n this._map.drawMarker(Point.fromCoordinate(location), {\r\n icon: 'marker_E2001A-32',\r\n cameraOptions: {\r\n zoom: zoom,\r\n relCenterX: this.getRelCenterX()\r\n } as IPanOptions\r\n } as IMarkerOptions);\r\n }\r\n\r\n private clearHighlight() {\r\n this._map.clearMarkers();\r\n }\r\n\r\n private stopGeolocationSearch() {\r\n if (this.myLocExecuting) {\r\n navigator.geolocation.clearWatch(this.myLocExecuting);\r\n this.setRoutingSpinnerStatus(false);\r\n }\r\n this.myLocExecuting = null;\r\n }\r\n\r\n private getRelCenterX(): number {\r\n let relCenterX = 0.5;\r\n if (this.getRoutingStatus()) {\r\n // left padding\r\n const mapWidth = this._map.getSize()[0];\r\n if (mapWidth > this.responsiveBreakpoint)\r\n relCenterX += (Number.parseInt(this.routingWidth.substr(0, this.routingWidth.length - 2)) / mapWidth) / 2;\r\n else {\r\n // TODO: RESPONSIVE\r\n }\r\n }\r\n\r\n return relCenterX;\r\n }\r\n\r\n private routeStatusRefreshInterval;\r\n private startRouteStatusRefresh(refreshId: string, routes: Route[], refreshOnStart: boolean = true) {\r\n this.stopRouteStatusRefresh();\r\n\r\n if (refreshOnStart)\r\n this.routeStatusRefresh(refreshId, routes);\r\n\r\n this.routeStatusRefreshInterval = setInterval(() => this.routeStatusRefresh(refreshId, routes), 60000);\r\n }\r\n\r\n private stopRouteStatusRefresh() {\r\n if (this.routeStatusRefreshInterval)\r\n clearInterval(this.routeStatusRefreshInterval);\r\n }\r\n\r\n private async routeStatusRefresh(refreshId: string, routes: Route[]) {\r\n try {\r\n const statusPromises = routes.map(r => this._routingService.routeStatus(r.route));\r\n const status = await Promise.all(statusPromises);\r\n\r\n // check if not cancelled\r\n if (refreshId === this.currStatusRefreshId) {\r\n for (let i = 0; i < status.length; i++) {\r\n let s = status[i];\r\n const r = routes[i];\r\n const ttBadge: HTMLDivElement = this._routingTabsContainer.querySelector(`#route-tab-tt-badge-${i}`);\r\n\r\n if (s == undefined) {\r\n // set default status\r\n s = RouteStatusResponseDTO.fromRoute(r);\r\n }\r\n\r\n r[this.routeStatusKey] = s;\r\n\r\n // set travel time badge classes\r\n const cl = s.getRouteTravelTimeBackgroundClass();\r\n r[this.routeTTBadgeClassKey] = cl;\r\n ttBadge.classList.add(cl);\r\n ttBadge.classList.remove('badge-primary', 'd-none');\r\n\r\n // hide travel time spinner\r\n const ttSpinner: HTMLDivElement = this._routingTabsContainer.querySelector(`#route-tab-tt-spinner-${i}`);\r\n ttSpinner.classList.add('d-none');\r\n }\r\n\r\n // redraw routes\r\n if (this.getRoutingStatus())\r\n this.drawRoutes(routes, false);\r\n }\r\n }\r\n catch (e) {\r\n console.error('Failed to update routes status.', e);\r\n\r\n // TODO: neko opozorilo, da ni OK\r\n }\r\n }\r\n\r\n private resizeElements = () => {\r\n const size = this._map.getSize();\r\n const width = size[0];\r\n const height = size[1];\r\n this._legend.style.height = `${height}px`;\r\n this._routing.style.height = width > this.responsiveBreakpoint ? `${height}px` : 'auto';\r\n this._weatherContainer.style.height = `${height}px`;\r\n\r\n this.refreshLegendSize();\r\n this.refreshRoutingSize();\r\n this.refreshSearchBarContainerSize();\r\n };\r\n\r\n private refreshLegendSize() {\r\n const size = this._map.getSize();\r\n const h = size[1];\r\n const w = size[0];\r\n const legendBody: HTMLElement = this._legend.querySelector('#legend-body');\r\n if (legendBody)\r\n legendBody.style.maxHeight = `${h - 60}px`;\r\n\r\n this._legend.style.width = this.getLegendWidth();\r\n // this._legendBg.style.width = `${w}px`;\r\n // this._legendBg.style.height = `${h}px`;\r\n\r\n if (this.getLegendStatus() === false) // if legend closed\r\n this._legend.style.left = `calc(-${this.getLegendWidth()} - 10px)`;\r\n }\r\n\r\n private refreshRoutingSize() {\r\n const size = this._map.getSize();\r\n const height = size[1];\r\n\r\n const h = `${height - this._routingHeader.clientHeight}px`;\r\n // this._routingBottom.style.maxHeight = `${height - this._routingHeader.clientHeight}px`;\r\n this._routingBottomSearchResultsContainer.style.maxHeight = h;\r\n this._routingBottom.style.maxHeight = h;\r\n this._routing.style.width = this.getRoutingWidth();\r\n }\r\n\r\n private refreshSearchBarContainerSize() {\r\n const width = this._map.getSize()[0];\r\n if (this._searchBarContainer)\r\n this._searchBarContainer.style.width = width > this.responsiveBreakpoint ? this.searchEntryWidth : `${width - 2 * 30}px`; // <503 -> tablet\r\n }\r\n\r\n private getRoutingWidth(): string {\r\n const width = this._map.getSize()[0];\r\n return width > this.responsiveBreakpoint ? this.routingWidth : `${width}px`;\r\n }\r\n\r\n private getLegendWidth(): string {\r\n const width = this._map.getSize()[0];\r\n return width > this.responsiveBreakpoint ? this.legendWidth : `${width - 85}px`;\r\n }\r\n\r\n /** WEATHER */\r\n private fetchWeatherData(): Promise {\r\n return new Promise((res, rej) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.timeout = 5000;\r\n xhr.onload = () => {\r\n if (xhr.responseText)\r\n this._weatherData = JSON.parse(xhr.responseText);\r\n res(this._weatherData);\r\n };\r\n\r\n xhr.open('GET', this._options.weatherDataUrl, true);\r\n xhr.send(null);\r\n });\r\n }\r\n\r\n private tryStartWeatherLayerUpdating(onlyShowFinalFrame: boolean = false) {\r\n if (onlyShowFinalFrame)\r\n this.updateLastWeatherFrame();\r\n else {\r\n if (this._weatherData && this._weatherData.length > 0)\r\n this.startWeatherLayerUpdating(this._weatherData);\r\n else {\r\n this.fetchWeatherData()\r\n .then(res => {\r\n if (res && res.length > 0/* && this._map.getGroupVisibility(g.id)*/)\r\n this.startWeatherLayerUpdating(this._weatherData);\r\n });\r\n }\r\n }\r\n }\r\n\r\n private updateLastWeatherFrame() {\r\n this.fetchWeatherData()\r\n .then(res => {\r\n if (this._weatherAnimationTimeout)\r\n clearTimeout(this._weatherAnimationTimeout);\r\n\r\n if (res && res.length > 0)\r\n this.setWeatherSource(res[res.length - 1]);\r\n this._map.setLayerVisibility(this.weatherLayerName, true);\r\n this._weatherAnimationTimeout = setTimeout(() => this.updateLastWeatherFrame(), this._options.weatherLastFrameUpdateInterval);\r\n });\r\n }\r\n\r\n private setWeatherSource(el: MeteoWeatherData) {\r\n const path = el.path.substring(el.path.lastIndexOf('/') + 1);\r\n const bbox = el.bbox.split(',').map(x => Number.parseFloat(x)); // lat S, lng W, lat N, lng E\r\n const ws: [number, number] = [bbox[1], bbox[0]]; // lng, lat\r\n const en: [number, number] = [bbox[3], bbox[2]]; // lng, lat\r\n const srcUrl = `${this._options.weatherImgUrl}/${path}`;\r\n const srcBbox: [[number, number], [number, number], [number, number], [number, number]] = [\r\n [ws[0], en[1]], // WN (lng, lat)\r\n en, // EN (lng, lat)\r\n [en[0], ws[1]], // ES (lng, lat)\r\n ws // WS (lng, lat)\r\n ];\r\n\r\n const src = this._map.getSource(this.weatherSourceName) as maplibregl.ImageSource;\r\n if (src == undefined)\r\n throw new Error(`Cannot find weather source \"${this.weatherSourceName}\".`);\r\n else {\r\n // nastavi image url in koordinate\r\n src.updateImage({\r\n url: srcUrl,\r\n coordinates: srcBbox\r\n });\r\n }\r\n }\r\n\r\n private _weatherAnimationTimeout;\r\n private startWeatherLayerUpdating(weather: MeteoWeatherData[], from?: Date, to?: Date) {\r\n if (this._weatherAnimationTimeout)\r\n clearTimeout(this._weatherAnimationTimeout);\r\n\r\n // filtriraj po času\r\n const data = weather.filter(w => {\r\n const date = new Date(w.valid);\r\n if (from && date < from)\r\n return false;\r\n if (to && date > to)\r\n return false;\r\n return true;\r\n });\r\n\r\n const show = (i: number) => {\r\n const el = data[i];\r\n this.setWeatherSource(el);\r\n\r\n // začni nov timeout, da se prikaže naslednja slika\r\n if (this._weatherAnimationTimeout)\r\n clearTimeout(this._weatherAnimationTimeout);\r\n\r\n if (i < data.length - 1) {\r\n const date = new Date(el.valid);\r\n let h = date.getHours().toString();\r\n if (h.length === 1)\r\n h = '0' + h;\r\n let min = date.getMinutes().toString();\r\n if (min.length === 1)\r\n min = '0' + min;\r\n\r\n this._weatherTimestampSpan.innerText = `${date.getDate()}.${date.getMonth() + 1}.${date.getFullYear()} ${h}:${min}`;\r\n\r\n this._weatherContainer.style.display = 'block';\r\n this._map.setLayerVisibility(this.weatherLayerName, true);\r\n\r\n this._weatherAnimationTimeout = setTimeout(() => show(i + 1), this._options.weatherFrameInterval);\r\n }\r\n else {\r\n this._weatherContainer.style.display = 'none';\r\n this._weatherAnimationTimeout = setTimeout(() => this.updateLastWeatherFrame(), this._options.weatherLastFrameUpdateInterval);\r\n }\r\n };\r\n\r\n show(0);\r\n }\r\n\r\n stopWeatherLayerUpdating() {\r\n if (this._weatherAnimationTimeout)\r\n clearTimeout(this._weatherAnimationTimeout);\r\n this._weatherContainer.style.display = 'none';\r\n this._map.setLayerVisibility(this.weatherLayerName, false);\r\n }\r\n\r\n onAdd(map: maplibregl.Map): HTMLElement {\r\n if (this._options.hasDetailButton === true)\r\n map.addControl(new PrometSiExpandMapControl(this._map), 'bottom-right');\r\n\r\n const wrapper = document.createElement('div');\r\n wrapper.className = 'mapboxgl-ctrl mapboxgl-ctrl-group';\r\n wrapper.appendChild(this._container);\r\n\r\n return wrapper;\r\n }\r\n\r\n onRemove() {\r\n this._container.parentNode.removeChild(this._container);\r\n // this._panel.parentNode.removeChild(this._panel);\r\n // this._map = undefined;\r\n }\r\n\r\n getDefaultPosition(): maplibregl.ControlPosition {\r\n return 'top-left';\r\n }\r\n\r\n private getContainerFromSearchResultsType(type: PrometSiSearchResultsType): HTMLElement {\r\n return type === PrometSiSearchResultsType.Routing ? this._routingSearchResults : this._searchResults;\r\n }\r\n}\r\n","export const RMBClickTemplate = `\r\n
      \r\n
    • \r\n
    • \r\n
    • \r\n
    • \r\n
    \r\n`;\r\n\r\nexport const RMBClickTemplateInfo = `\r\n
    \r\n
    {{properties.Title}}
    \r\n
    {{properties.Description}}
    \r\n
    \r\n \r\n {{properties.x}}, {{properties.y}}\r\n
    \r\n {{#properties.Ad}}\r\n
    \r\n {{#properties.Ad.dist}} ({{properties.Ad.dist}} m){{/properties.Ad.dist}}: \r\n {{properties.Ad.title}}, {{properties.Ad.descr}}\r\n
    \r\n {{/properties.Ad}}\r\n {{^properties.Ad}}\r\n
    \r\n {{/properties.Ad}}\r\n\r\n {{#properties.Cesta}}\r\n
    \r\n {{#properties.Cesta.dist}} ({{properties.Cesta.dist}} m){{/properties.Cesta.dist}}: \r\n {{properties.Cesta.descr}}\r\n
    \r\n
    \r\n \r\n {{#properties.Cesta.odsek}}\r\n {{properties.Cesta.odsek}}, \r\n {{/properties.Cesta.odsek}}\r\n {{#properties.Cesta.ds_at}}\r\n {{properties.Cesta.ds_at}}m\r\n {{/properties.Cesta.ds_at}}\r\n
    \r\n {{/properties.Cesta}}\r\n {{^properties.Cesta}}\r\n
    \r\n {{/properties.Cesta}}\r\n
    \r\n`;\r\n\r\nexport const RMBClickTemplateAd = `\r\n
    \r\n
    {{title}}
    \r\n
    {{descr}}
    \r\n
    \r\n`;\r\n\r\nexport const RMBClickTemplateCesta = `\r\n
    \r\n
    \r\n {{descr}}, \r\n {{odsek}}\r\n
    \r\n
    \r\n`;\r\n","export const ContainerTemplate = `\r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n`;\r\n","export const LegendTemplate = `\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n {{#groups}}\r\n
    \r\n {{#layers}}\r\n {{#isCheckbox}}\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{/isCheckbox}}\r\n {{^isCheckbox}}\r\n \r\n {{#children}}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {{/children}}\r\n {{/isCheckbox}}\r\n {{/layers}}\r\n
    \r\n {{/groups}}\r\n
    \r\n
    \r\n`;\r\n","export const SearchResultsTemplate = `\r\n \r\n`;\r\n","export const RoutingHeaderTemplate = `\r\n
    \r\n
    \r\n
    \r\n\r\n \"close\" \r\n
    \r\n
    \r\n
    \r\n {{#locations}}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \"lokacija\"\r\n
    \r\n\r\n \r\n {{#canSwapWithNext}}\r\n
    \r\n \"between\"\r\n
    \r\n {{/canSwapWithNext}}\r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n
    \r\n \"myloc\"\r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \"clear\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n {{#canSwapWithNext}}\r\n
    \r\n \r\n
    \r\n {{/canSwapWithNext}}\r\n
    \r\n {{/locations}}\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \"add\"\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n`;\r\n","export const RouteTabTemplate = `\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \"pot\"\r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n {{Length}}\r\n {{DetourText}}\r\n
    \r\n\r\n {{#Selected}}\r\n \r\n
    \r\n \r\n
    \r\n {{/Selected}}\r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \"duration\"\r\n {{Duration}}\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n Loading ...\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \"start\"\r\n \r\n\r\n
    \r\n
    \r\n {{Start.properties.Title}}\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n {{#Instructions}}\r\n {{#properties.IsVia}}\r\n \r\n
    \r\n \r\n \"via\"\r\n \r\n\r\n
    \r\n
    \r\n {{properties.TitleString}}\r\n
    \r\n \r\n
    \r\n
    \r\n {{/properties.IsVia}}\r\n {{^properties.IsVia}}\r\n \r\n
    \r\n \r\n \"point\"\r\n \r\n\r\n
    \r\n
    \r\n
    {{properties.CumulativeLengthString}}, {{properties.CumulativeDurationString}}
    \r\n
    \r\n
    {{properties.TitleString}}
    \r\n
    \r\n
    \r\n {{/properties.IsVia}}\r\n {{/Instructions}}\r\n\r\n \r\n
    \r\n \r\n \"end\"\r\n \r\n\r\n
    \r\n
    \r\n {{Destination.properties.Title}}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n {{#Selected}}\r\n
    \r\n {{/Selected}}\r\n
    \r\n`;\r\n","export const ErrorTemplate = `\r\n
    \r\n {{text}}\r\n
    \r\n`;\r\n","import { LayerGroup } from './RM2LayerGroup';\r\nimport { IService } from '../..';\r\n\r\nexport class StyleMetadata {\r\n center: [number, number];\r\n extent: [[number, number], [number, number]];\r\n startExtent: [[number, number], [number, number]];\r\n minZoom: number;\r\n maxZoom: number;\r\n minPitch: number;\r\n maxPitch: number;\r\n zoom: number;\r\n tilt: number;\r\n heading: number;\r\n persistView: boolean;\r\n persistLayerSettings: boolean;\r\n enableRotate: boolean;\r\n enablePopup: boolean;\r\n enableRoutingDisclaimer: boolean;\r\n enableSideScroller: boolean;\r\n zoomPopup: boolean;\r\n panPopup: boolean;\r\n notice: string;\r\n noticeStyle: string;\r\n clusterIcons: IClusterIconsData;\r\n hitTolerance: number;\r\n hitBuffer: number;\r\n routeFcdColors: any[];\r\n groups: LayerGroup[];\r\n services: IService[];\r\n controls: any[];\r\n removeHiddenVectorHybridLayers?: boolean;\r\n forceReloadSources: IMetadataReloadSourceCfg [];\r\n\r\n constructor(metadata: unknown) {\r\n this.routeFcdColors = [\r\n 0,\r\n {\r\n \"light\": \"#0F3C8F\",\r\n \"dark\": \"#A0B6DF\",\r\n \"unselected\": \"#BBBDBF\"\r\n },\r\n 59,\r\n {\r\n \"light\": \"#0F3C8F\",\r\n \"dark\": \"#A0B6DF\",\r\n \"unselected\": \"#BBBDBF\"\r\n },\r\n 60,\r\n {\r\n \"light\": \"#F49E00\",\r\n \"dark\": \"#FFAE4B\",\r\n \"unselected\": \"#BB9F8D\"\r\n },\r\n 250,\r\n {\r\n \"light\": \"#E2001A\",\r\n \"dark\": \"#F57F7F\",\r\n \"unselected\": \"#A57F7E\"\r\n },\r\n 500,\r\n {\r\n \"light\": \"#9E0F00\",\r\n \"dark\": \"#9E3126\",\r\n \"unselected\": \"#874B49\"\r\n }\r\n ];\r\n \r\n this.groups = [];\r\n this.enablePopup = true;\r\n\r\n this.hitTolerance = 10;\r\n this.hitBuffer = 5;\r\n Object.keys(metadata).forEach(k => {\r\n const val = metadata[k];\r\n if (val != undefined) {\r\n if (k == 'groups')\r\n val.forEach(g => this.groups.push(new LayerGroup(g)));\r\n else\r\n this[k] = val;\r\n }\r\n });\r\n\r\n const md = metadata as IStyleMetadata;\r\n this.clusterIcons = new ClusterIconsData(md.clusterIcons);\r\n }\r\n\r\n findGroup(id: string): LayerGroup {\r\n return this.filterGroups(this.groups, x => x.id === id);\r\n }\r\n\r\n private filterGroups(groups: LayerGroup[], condition: (g: LayerGroup) => boolean): LayerGroup {\r\n let found = groups.find(condition);\r\n if (found)\r\n return found;\r\n else {\r\n const withChildren = groups.filter(g => g.children && g.children.length > 0)\r\n for (let i = 0; i < withChildren.length; i++) {\r\n found = this.filterGroups(withChildren[i].children, condition);\r\n if (found)\r\n return found;\r\n }\r\n }\r\n \r\n return null;\r\n }\r\n}\r\n\r\nexport interface IStyleMetadata {\r\n center: [number, number];\r\n extent: [[number, number], [number, number]];\r\n minZoom: number;\r\n maxZoom: number;\r\n zoom: number;\r\n tilt: number;\r\n heading: number;\r\n persistView: boolean;\r\n persistLayerSettings: boolean;\r\n enableRotate: boolean;\r\n enablePopup: boolean;\r\n enableSideScroller: boolean;\r\n notice: string;\r\n noticeStyle: string;\r\n clusterIcons: IClusterIconsData;\r\n hitTolerance: number;\r\n groups: LayerGroup[];\r\n services: IService[];\r\n controls: any[]; // TODO: DTO\r\n forceReloadSources: IMetadataReloadSourceCfg [];\r\n}\r\n\r\nexport class ClusterIconsData implements IClusterIconsData {\r\n iconSize: number;\r\n textSize?: number;\r\n textOffset?: number[];\r\n textColor?: string;\r\n\r\n constructor(data?: IClusterIconsData) {\r\n this.iconSize = data && data.iconSize ? data.iconSize : 0.8;\r\n this.textSize = data && data.textSize ? data.textSize : 14;\r\n this.textOffset = data && data.textOffset ? data.textOffset : [0.575, -0.625];\r\n this.textColor = data && data.textColor ? data.textColor : '#FFFFFF';\r\n }\r\n}\r\n\r\nexport interface IClusterIconsData {\r\n iconSize?: number;\r\n textSize?: number;\r\n textOffset?: number[];\r\n textColor?: string;\r\n}\r\n\r\nexport interface IMetadataReloadSourceCfg {\r\n sourceId: string;\r\n intervalMS: number;\r\n}\r\nexport class MetadataReloadSourceCfg implements IMetadataReloadSourceCfg {\r\n sourceId: string;\r\n intervalMS: number;\r\n}","export class LayerMetadata implements ILayerMetadata {\r\n gid: string;\r\n title: string;\r\n icon: string;\r\n visible: boolean;\r\n uiVisible: boolean;\r\n lockMode: string[];\r\n includeInIdentify: boolean;\r\n\r\n visibleRefreshButton: boolean;\r\n\r\n infoWindowEnableOpenButton: boolean;\r\n infoWindowTitleTemplate: string;\r\n infoWindowDescriptionTemplate: string;\r\n\r\n listViewDefaultExpand: boolean;\r\n listViewEnableOpenButton: boolean;\r\n listViewTitleTemplate: string;\r\n listViewDescriptionTemplate: string;\r\n infoWindowDescriptionRefreshInterval?: number;\r\n\r\n infoWindowMaxWidth: string;\r\n\r\n // Clustering properties\r\n clusterSymbol: string;\r\n clusterSymbolIconSize: number;\r\n clusterSymbolTextSize: number;\r\n clusterSymbolTextOffset: number[];\r\n clusterSymbolTextColor: string;\r\n // clusterType: 'circle' | 'symbol';\r\n // clusterStyle: CircleClusterStyle | SymbolClusterStyle;\r\n\r\n constructor(metadata: ILayerMetadata) {\r\n this.gid = metadata.gid;\r\n this.title = metadata.title;\r\n this.icon = metadata.icon;\r\n this.visible = metadata.visible !== false;\r\n this.uiVisible = metadata.uiVisible;\r\n this.lockMode = metadata.lockMode || [];\r\n this.includeInIdentify = metadata.includeInIdentify === true;\r\n\r\n this.visibleRefreshButton = metadata.visibleRefreshButton !== false;\r\n this.listViewDefaultExpand = metadata.listViewDefaultExpand === true;\r\n\r\n this.listViewEnableOpenButton = metadata.listViewEnableOpenButton === true ? true : false;\r\n this.listViewTitleTemplate = metadata.listViewTitleTemplate || `\r\n {{#Title}}\r\n {{#translateKey}}$.Title{{/translateKey}}\r\n {{/Title}}\r\n\r\n {{^Title}}\r\n {{#title}}\r\n {{#translateKey}}$.title{{/translateKey}}\r\n {{/title}}\r\n {{/Title}}\r\n `;\r\n\r\n this.listViewDescriptionTemplate = metadata.listViewDescriptionTemplate || `\r\n {{#Description}}\r\n {{#translateKey}}$.Description{{/translateKey}}\r\n {{/Description}}\r\n\r\n {{^Description}}\r\n {{#description}}\r\n {{#translateKey}}$.description{{/translateKey}}\r\n {{/description}}\r\n {{/Description}}\r\n `;\r\n\r\n this.infoWindowEnableOpenButton = metadata.infoWindowEnableOpenButton === true ? true : this.listViewEnableOpenButton;\r\n this.infoWindowTitleTemplate = metadata.infoWindowTitleTemplate || `\r\n
    \r\n \r\n {{Title}}\r\n
    \r\n
    \r\n `;\r\n\r\n this.infoWindowDescriptionTemplate = metadata.infoWindowDescriptionTemplate || `\r\n

    \r\n {{Description}}\r\n

    \r\n `;\r\n\r\n this.infoWindowMaxWidth = metadata.infoWindowMaxWidth || '320px';\r\n this.infoWindowDescriptionRefreshInterval = metadata.infoWindowDescriptionRefreshInterval;\r\n\r\n this.clusterSymbol = metadata.clusterSymbol || 'dogodek_cluster-32';\r\n this.clusterSymbolIconSize = metadata.clusterSymbolIconSize;\r\n this.clusterSymbolTextSize = metadata.clusterSymbolTextSize;\r\n this.clusterSymbolTextOffset = metadata.clusterSymbolTextOffset;\r\n this.clusterSymbolTextColor = metadata.clusterSymbolTextColor;\r\n // this.clusterType = metadata.clusterType || 'circle';\r\n // if (this.clusterType === 'circle')\r\n // this.clusterStyle = new CircleClusterStyle(metadata.clusterStyle as CircleClusterStyle);\r\n // else if (this.clusterType === 'symbol')\r\n // this.clusterStyle = new SymbolClusterStyle(metadata.clusterStyle as SymbolClusterStyle);\r\n }\r\n}\r\n\r\nexport interface ILayerMetadata {\r\n gid?: string;\r\n title?: string;\r\n icon?: string;\r\n visible?: boolean;\r\n uiVisible?: boolean;\r\n lockMode?: string[];\r\n includeInIdentify?: boolean;\r\n\r\n visibleRefreshButton?: boolean;\r\n\r\n infoWindowEnableOpenButton?: boolean;\r\n infoWindowTitleTemplate?: string;\r\n infoWindowDescriptionTemplate?: string;\r\n\r\n listViewDefaultExpand?: boolean;\r\n listViewEnableOpenButton?: boolean;\r\n listViewTitleTemplate?: string;\r\n listViewDescriptionTemplate?: string;\r\n infoWindowDescriptionRefreshInterval?: number;\r\n\r\n infoWindowMaxWidth?: string;\r\n\r\n // Clustering properties\r\n clusterSymbol?: string;\r\n clusterSymbolIconSize?: number;\r\n clusterSymbolTextSize?: number;\r\n clusterSymbolTextOffset?: number[];\r\n clusterSymbolTextColor?: string;\r\n // clusterType: 'circle' | 'symbol';\r\n // clusterStyle: CircleClusterStyle | SymbolClusterStyle;\r\n}\r\n\r\nexport abstract class ClusterStyle {\r\n showText: boolean;\r\n textColor: string;\r\n\r\n constructor(style?: ClusterStyle) {\r\n this.textColor = '#222222';\r\n this.showText = true;\r\n\r\n if (style) {\r\n Object.keys(this).forEach(k => {\r\n if (style[k] != undefined)\r\n this[k] = style[k];\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport class CircleClusterStyle extends ClusterStyle {\r\n circleColor: string;\r\n circleOutlineColor: string;\r\n circleOutlineWidth: number;\r\n circleOpacity: number;\r\n circleRadius: number;\r\n\r\n constructor(style?: CircleClusterStyle) {\r\n super(style);\r\n\r\n this.circleColor = '#FFFFFF';\r\n this.circleOutlineColor = '#000000';\r\n this.circleOutlineWidth = 2;\r\n this.circleOpacity = 1;\r\n this.circleRadius = 12;\r\n\r\n if (style) {\r\n Object.keys(this).forEach(k => {\r\n if (style[k] != undefined)\r\n this[k] = style[k];\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport class SymbolClusterStyle extends ClusterStyle {\r\n iconImage: string;\r\n iconAnchor: 'left' | 'top' | 'right' | 'bottom' | 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left' | 'center';\r\n iconSize: number;\r\n\r\n constructor(style?: SymbolClusterStyle) {\r\n super(style);\r\n\r\n this.iconImage = 'zaprta-140';\r\n this.iconAnchor = 'center';\r\n this.iconSize = 0.2;\r\n\r\n if (style) {\r\n Object.keys(this).forEach(k => {\r\n if (style[k] != undefined)\r\n this[k] = style[k];\r\n });\r\n }\r\n }\r\n}\r\n","// import * as maplibregl from 'maplibre-gl';\r\nimport { LayerSpecification, SourceSpecification } from 'maplibre-gl';\r\n\r\nimport { LayerMetadata, ILayerMetadata } from './style-metadata/RM2LayerMetadata';\r\n\r\nexport class Layer {\r\n id: string;\r\n type: 'fill' | 'line' | 'symbol' | 'circle' | 'fill-extrusion' | 'raster' | 'background' | 'heatmap' | 'hillshade';\r\n\r\n metadata?: ILayerMetadata;\r\n ref?: string;\r\n\r\n source?: string;\r\n 'source-layer'?: string;\r\n\r\n minzoom?: number;\r\n maxzoom?: number;\r\n\r\n interactive?: boolean;\r\n\r\n filter?: any[];\r\n layout?: maplibregl.LayerSpecification['layout'];\r\n paint?: maplibregl.LayerSpecification['paint'];\r\n\r\n constructor(layer: maplibregl.LayerSpecification) {\r\n // TODO\r\n Object.keys(layer).forEach(k => this[k] = layer[k]);\r\n this.metadata = new LayerMetadata(layer.metadata || {});\r\n }\r\n}\r\n\r\n// interface BackgroundLayer extends Layer {\r\n// type: 'background';\r\n// layout?: maplibregl.BackgroundLayout;\r\n// paint?: maplibregl.BackgroundPaint;\r\n// }\r\n\r\n// interface CircleLayer extends Layer {\r\n// type: 'circle';\r\n// layout?: maplibregl.CircleLayout;\r\n// paint?: maplibregl.CirclePaint;\r\n// }\r\n\r\n// interface FillExtrusionLayer extends Layer {\r\n// type: 'fill-extrusion';\r\n// layout?: maplibregl.FillExtrusionLayout;\r\n// paint?: maplibregl.FillExtrusionPaint;\r\n// }\r\n\r\n// interface FillLayer extends Layer {\r\n// type: 'fill';\r\n// layout?: maplibregl.FillLayout;\r\n// paint?: maplibregl.FillPaint;\r\n// }\r\n\r\n// interface HeatmapLayer extends Layer {\r\n// type: 'heatmap';\r\n// layout?: maplibregl.HeatmapLayout;\r\n// paint?: maplibregl.HeatmapPaint;\r\n// }\r\n\r\n// interface HillshadeLayer extends Layer {\r\n// type: 'hillshade';\r\n// layout?: maplibregl.HillshadeLayout;\r\n// paint?: maplibregl.HillshadePaint;\r\n// }\r\n\r\n// interface LineLayer extends Layer {\r\n// type: 'line';\r\n// layout?: maplibregl.LineLayout;\r\n// paint?: maplibregl.LinePaint;\r\n// }\r\n\r\n// interface RasterLayer extends Layer {\r\n// type: 'raster';\r\n// layout?: maplibregl.RasterLayout;\r\n// paint?: maplibregl.RasterPaint;\r\n// }\r\n\r\n// interface SymbolLayer extends Layer {\r\n// type: 'symbol';\r\n// layout?: maplibregl.SymbolLayout;\r\n// paint?: maplibregl.SymbolPaint;\r\n// }\r\n\r\n// export type AnyLayer =\r\n// | BackgroundLayer\r\n// | CircleLayer\r\n// | FillExtrusionLayer\r\n// | FillLayer\r\n// | HeatmapLayer\r\n// | HillshadeLayer\r\n// | LineLayer\r\n// | RasterLayer\r\n// | SymbolLayer;\r\n\r\n// import { Projection } from './RM2Projection';\r\n// import { FeatureCollection } from './RM2Feature';\r\n// import { Source, TileSource, VectorSource } from '../source/RM2Source';\r\n// import { Coordinate } from '..';\r\n// import { IRM2Event, RM2Event, MapEventArgs } from '../model/RM2Event';\r\n// // import { EventEmitterFactory } from '../../../../core/event-emitter';\r\n// import { Subject, Subscription } from 'rxjs';\r\n\r\n// /**\r\n// * Layer object.\r\n// */\r\n// export abstract class Layer {\r\n// protected _baseLayers: any;\r\n// protected _title: string; // TOCHECK ali ni title v ol.Layer\r\n// protected _icon: string;\r\n// public get sid(): string { return this._sid; }\r\n// protected _sid: string;\r\n// public get restyleInterval() { return this._restyleInterval; }\r\n// protected _restyleInterval: number;\r\n// public get lockMode() { return this._lockMode; }\r\n// protected _lockMode: string[];\r\n// protected _parent: GroupLayer;\r\n// protected _visible: boolean;\r\n// protected _uiVisible: boolean;\r\n// protected _uiMode: string;\r\n// protected _type: string;\r\n// protected _includeInIdentify: boolean;\r\n// protected _forBasemaps: string[];\r\n// protected _visibleRefreshButton: boolean;\r\n// protected _listViewDefaultExpand: boolean;\r\n\r\n// public get onRestyle(): IRM2Event { return this._onRestyle.expose(); }\r\n// protected readonly _onRestyle = new RM2Event();\r\n\r\n// /**\r\n// * Creates an instance of Layer.\r\n// */\r\n// public constructor(title: string, icon: string, sid: string, lockMode: string, visible: boolean, restyleInterval?: number, baseLayer?: any, type?: string, includeInIdentify?: boolean, uiVisible?: boolean, uiMode?: string, forBasemaps?: string[]) {\r\n// this._title = title;\r\n// this._icon = icon;\r\n// this._sid = sid;\r\n// this._lockMode = lockMode !== undefined ? lockMode.split('|') : [];\r\n// this._restyleInterval = restyleInterval;\r\n// this._baseLayers = baseLayer;\r\n// this.visible = visible;\r\n// this._uiVisible = uiVisible !== false;\r\n// this._uiMode = uiMode;\r\n// this._type = type;\r\n// this._includeInIdentify = includeInIdentify !== false;\r\n// this._forBasemaps = forBasemaps;\r\n// }\r\n\r\n// public get baseLayers(): any[] { return this._baseLayers; }\r\n// public set baseLayers(layers: any[]) { this._baseLayers = layers; }\r\n\r\n// /**\r\n// * Returns title of this layer.\r\n// */\r\n// public get title(): string { return this._title; }\r\n\r\n// /**\r\n// * Returns icon of this layer.\r\n// */\r\n// public get icon(): string { return this._icon; }\r\n\r\n// /**\r\n// * Returns parent GroupLayer of this layer.\r\n// */\r\n// public get parent(): GroupLayer { return this._parent; }\r\n\r\n// /**\r\n// * Sets parent GroupLayer to this layer.\r\n// */\r\n// public set parent(parent: GroupLayer) { this._parent = parent; }\r\n\r\n// /**\r\n// * Sets the type of layer (e.g. basemaps)\r\n// */\r\n// public set type(type: string) { this._type = type; }\r\n\r\n// /**\r\n// * Returns the type of layer (e.g. basemaps)\r\n// */\r\n// public get type(): string { return this._type; }\r\n\r\n// /**\r\n// * Sets whether the layer gets detected on map click\r\n// */\r\n// public set includeInIdentify(include: boolean) { this._includeInIdentify = include; }\r\n\r\n// /**\r\n// * Returns whether the layer gets detected on map click\r\n// */\r\n// public get includeInIdentify(): boolean { return this._includeInIdentify; }\r\n\r\n// /**\r\n// * Sets whether the layer can only appear on certain basemaps\r\n// */\r\n// public set forBasemaps(basemapIds: string[]) { this._forBasemaps = basemapIds; }\r\n\r\n// /**\r\n// * Sets whether the layer can only appear on certain basemaps\r\n// */\r\n// public get forBasemaps(): string[] { return this._forBasemaps; }\r\n\r\n// public get visibleRefreshButton(): boolean { return this._visibleRefreshButton; }\r\n// public set visibleRefreshButton(value: boolean) { this._visibleRefreshButton = value; }\r\n\r\n// public get listViewDefaultExpand(): boolean { return this._listViewDefaultExpand; }\r\n// public set listViewDefaultExpand(value: boolean) { this._listViewDefaultExpand = value; }\r\n\r\n// private _visibleChanged = new Subject();\r\n// public get visibleChanged(): Subject { return this._visibleChanged; }\r\n\r\n// /**\r\n// * Returns bool whether the layer is visible.\r\n// */\r\n// public get visible(): boolean { return this._visible; }\r\n\r\n// /**\r\n// * Sets layer visibility.\r\n// */\r\n// public set visible(visible: boolean) {\r\n// if (this._visible !== visible) {\r\n// this._visible = visible;\r\n// const observers = this._visibleChanged.observers;\r\n// if (observers && observers.length > 0)\r\n// this._visibleChanged.next(visible);\r\n// // EventEmitterFactory.getCurrent().emit('layer:visibilityChanged', this);\r\n// }\r\n// }\r\n\r\n// /**\r\n// * Whether the group is visible in the legend UI\r\n// */\r\n// public get uiVisible(): boolean { return this._uiVisible; }\r\n\r\n// /**\r\n// * How to display the contents in the legend UI\r\n// */\r\n// public get uiMode(): string { return this._uiMode; }\r\n\r\n// /**\r\n// * Returns bool whether the layer can be visible.\r\n// */\r\n// public get canVisible(): boolean { return this._lockMode.indexOf('visible') === -1; }\r\n\r\n// restyle() {\r\n// if (this.baseLayers) {\r\n// let changed = false;\r\n// for (let i = 0; i < this.baseLayers.length; i++)\r\n// changed = this.baseLayers[i].changed();\r\n\r\n// if (changed === true)\r\n// this._onRestyle.trigger({ layer: this, map: undefined, coordinate: undefined, nativeEvent: undefined });\r\n// }\r\n// }\r\n\r\n// setVisible(visible: boolean) {\r\n// this.visible = visible;\r\n// }\r\n// }\r\n\r\n// /**\r\n// * GroupLayer object.\r\n// */\r\n// export class GroupLayer extends Layer {\r\n// private _sequenceMode: string;\r\n// private _layers: Layer[];\r\n// private _defaultFocused?: string;\r\n// private _uiGroupExpandable: boolean;\r\n// private _uiGroupAlwaysOpen: boolean;\r\n// private _uiGroupHeaderVisible: boolean;\r\n// private _zIndex?: number;\r\n\r\n// /**\r\n// * Creates an instance of GroupLayer.\r\n// */\r\n// public constructor(options: GroupLayerOptions) {\r\n// super(options.title, options.icon, options.sid, options.lockMode, options.visible, options.restyleInterval, options.baseLayers, options.type, options.includeInIdentify, options.uiVisible, options.uiMode, options.forBasemaps);\r\n\r\n// this._sequenceMode = options.sequenceMode || 'group';\r\n// this._layers = options.layers || [];\r\n// this._defaultFocused = options.defaultFocused;\r\n// this._uiGroupExpandable = options.uiGroupExpandable;\r\n// this._uiGroupAlwaysOpen = options.uiGroupAlwaysOpen;\r\n// this._uiGroupHeaderVisible = options.uiGroupHeaderVisible;\r\n// this._zIndex = options.zIndex;\r\n\r\n// let hasVisible = false;\r\n// for (let i = 0; i < this._layers.length; i++) {\r\n// if (this._sequenceMode === 'choice' && hasVisible)\r\n// this._layers[i].setVisible(false);\r\n\r\n// hasVisible = hasVisible || this._layers[i].visible;\r\n// this._layers[i].parent = this;\r\n// }\r\n// }\r\n\r\n// /**\r\n// * Returns sequenceMode of the layergroup.\r\n// */\r\n// public get sequenceMode(): string {\r\n// return this._sequenceMode;\r\n// }\r\n\r\n// /**\r\n// * Returns layer array of the layergroup.\r\n// */\r\n// public get layers(): Layer[] {\r\n// return this._layers ? this._layers : [];\r\n// }\r\n\r\n// /**\r\n// * Returns the default layer that will be focused in this group layer\r\n// */\r\n// public get defaultFocused(): string {\r\n// return this._defaultFocused;\r\n// }\r\n\r\n// /**\r\n// * Whether the legend UI of the group is expandable\r\n// */\r\n// public get uiGroupExpandable(): boolean {\r\n// return this._uiGroupExpandable;\r\n// }\r\n\r\n// /**\r\n// * Whether the legend UI of the group is always in the open position\r\n// */\r\n// public get uiGroupAlwaysOpen(): boolean {\r\n// return this._uiGroupAlwaysOpen;\r\n// }\r\n\r\n// /**\r\n// * Whether the header of the group should be visible\r\n// */\r\n// public get uiGroupHeaderVisible(): boolean {\r\n// return this._uiGroupHeaderVisible;\r\n// }\r\n\r\n// /**\r\n// * The z-index of the group\r\n// */\r\n// public get zIndex(): number {\r\n// return this._zIndex;\r\n// }\r\n\r\n// resetZIndex() {\r\n// this._zIndex = undefined;\r\n// }\r\n\r\n// public filterLayers(predicate: (layer: Layer) => boolean) : Layer[] {\r\n// var filtered = [];\r\n// if (predicate(this) == true)\r\n// filtered.push(this);\r\n \r\n// if (this.layers) {\r\n// for (var i = 0; i < this.layers.length; i++) {\r\n// var l = this.layers[i];\r\n// if (predicate(l) == true)\r\n// filtered.push(l);\r\n \r\n// if (l instanceof GroupLayer)\r\n// filtered = filtered.concat(l.filterLayers(predicate));\r\n// }\r\n// }\r\n\r\n// return filtered;\r\n// }\r\n// }\r\n\r\n// /**\r\n// * SourceLayer object.\r\n// */\r\n// export abstract class SourceLayer extends Layer {\r\n// // protected _styler: Styler;\r\n\r\n// /**\r\n// * Creates an instance of SourceLayer.\r\n// */\r\n// public constructor(options: SourceLayerOptions) {\r\n// super(options.title, options.icon, options.sid, options.lockMode, options.visible, options.restyleInterval, options.baseLayers, options.type, options.includeInIdentify, options.uiVisible, options.uiMode, options.forBasemaps);\r\n// // this._styler = options.styler;\r\n// }\r\n// /**\r\n// * Returns a styler associated with this layer.\r\n// */\r\n// // public get styler(): Styler {\r\n// // return this._styler;\r\n// // }\r\n// /**\r\n// * Returns a source associated with this layer.\r\n// */\r\n// public abstract get source(): Source;\r\n// }\r\n\r\n// /**\r\n// * VectorLayer object.\r\n// */\r\n// export class VectorLayer extends SourceLayer {\r\n\r\n// listViewTitleTemplate: string;\r\n// listViewDescriptionTemplate: string;\r\n// listViewEnableOpenButton: boolean;\r\n// infoWindowTitleTemplate?: string;\r\n// infoWindowDescriptionTemplate?: string;\r\n// infoWindowDescriptionRefreshInterval?: number;\r\n// infoWindowMaxWidth?: string;\r\n// infoWindowEnableOpenButton?: boolean;\r\n\r\n// protected _source: VectorSource;\r\n\r\n// /**\r\n// * Creates an instance of VectorLayer.\r\n// */\r\n// public constructor(options: SourceLayerOptions) {\r\n// super(options);\r\n// // this._styler = this._styler || Styler.default;\r\n// // this._styler = this._styler; // TODO: nek default style kot zgoraj\r\n\r\n// this.listViewTitleTemplate = options.listViewTitleTemplate || `\r\n// {{#Title}}\r\n// {{#translateKey}}$.Title{{/translateKey}}\r\n// {{/Title}}\r\n\r\n// {{^Title}}\r\n// {{#title}}\r\n// {{#translateKey}}$.title{{/translateKey}}\r\n// {{/title}}\r\n// {{/Title}}\r\n// `;\r\n\r\n// this.listViewDescriptionTemplate = options.listViewDescriptionTemplate || `\r\n// {{#Description}}\r\n// {{#translateKey}}$.Description{{/translateKey}}\r\n// {{/Description}}\r\n\r\n// {{^Description}}\r\n// {{#description}}\r\n// {{#translateKey}}$.description{{/translateKey}}\r\n// {{/description}}\r\n// {{/Description}}\r\n// `;\r\n\r\n// this.listViewEnableOpenButton = options.listViewEnableOpenButton === true ? true : false\r\n\r\n// this.infoWindowTitleTemplate = options.infoWindowTitleTemplate || `\r\n//
    \r\n// \r\n// {{title}}\r\n//
    \r\n//
    \r\n// `;\r\n\r\n// this.infoWindowDescriptionTemplate = options.infoWindowDescriptionTemplate || `\r\n//

    \r\n// {{description}}\r\n//

    \r\n// `;\r\n\r\n// this.infoWindowDescriptionRefreshInterval = options.infoWindowDescriptionRefreshInterval;\r\n// this.infoWindowMaxWidth = options.infoWindowMaxWidth || '240px';\r\n// this.infoWindowEnableOpenButton = options.infoWindowEnableOpenButton === true ? true : this.listViewEnableOpenButton;\r\n// }\r\n\r\n// /**\r\n// * Returns a source associated with this layer.\r\n// */\r\n// public get source(): VectorSource {\r\n// return this._source;\r\n// }\r\n\r\n// /**\r\n// * Returns collection of features - members of this layer.\r\n// */\r\n// public get features(): FeatureCollection {\r\n// if (this._source == null)\r\n// return new FeatureCollection();\r\n// return this._source.getFeatures();\r\n// }\r\n\r\n// /**\r\n// * Returns geographic projection of this layer.\r\n// */\r\n// public get projection(): Projection {\r\n// return this._source.projection;\r\n// }\r\n\r\n// // /**\r\n// // * Executes query over features of this layer for given querystring and sends QueryServiceResult object to given response function.\r\n// // *\r\n// // * Response is QueryServiceResult object: { service: this, status: x.status, items: x.items }.\r\n// // *\r\n// // * Feaure is selected if any of its string attributes matches to the given querystring.\r\n// // */\r\n// // public query(queryString: string, response: (results: QueryServiceResult) => void, options?: QueryServiceOptions) {\r\n// // if (this._source) {\r\n// // this._source.query(queryString, x => {\r\n// // response({ service: this, status: x.status, items: x.items });\r\n// // }, options);\r\n// // }\r\n// // }\r\n\r\n// // /**\r\n// // * Executes location query over features of this layer for given coordinate and sends LocationServiceResult object to given response function.\r\n// // *\r\n// // * Response is LocationServiceResult object: { service: this, status: x.status, items: x.items }.\r\n// // */\r\n// // public locate(coordinate: Coordinate, response: (results: LocationServiceResult) => void, options?: LocationServiceOptions) {\r\n// // this._source.locate(coordinate, x => {\r\n// // response({ service: this, status: x.status, items: x.items });\r\n// // }, options);\r\n// // }\r\n// }\r\n\r\n// /**\r\n// * RasterLayer object.\r\n// */\r\n// export class RasterLayer extends SourceLayer {\r\n// protected _source: TileSource;\r\n\r\n// /**\r\n// * Creates an instance of RasterLayer.\r\n// */\r\n// public constructor(options: SourceLayerOptions) {\r\n// super(options);\r\n// }\r\n\r\n// /**\r\n// * Returns a source associated with this layer.\r\n// */\r\n// public get source(): TileSource {\r\n// return this._source;\r\n// }\r\n// }\r\n\r\n// /**\r\n// * LayerOptions interface.\r\n// */\r\n// export interface LayerOptions {\r\n// title: string;\r\n// icon: string;\r\n// sid: string;\r\n// baseLayers?: any[];\r\n// visible?: boolean;\r\n// opacity?: number;\r\n// lockMode?: string;\r\n// minZoom?: number; // TOCHECK units\r\n// maxZoom?: number; // TOCHECK units\r\n// extent?: number[]; // [minx, miny, maxx, maxy] TOCHECK units\r\n// restyleInterval?: number;\r\n// type?: string;\r\n// includeInIdentify?: boolean;\r\n// uiVisible?: boolean;\r\n// uiMode?: string;\r\n// forBasemaps?: string[];\r\n// }\r\n\r\n// /**\r\n// * GroupLayerOptions interface.\r\n// *\r\n// * sequenceMode supports values \"group\" and \"choice\"\r\n// */\r\n// export interface GroupLayerOptions extends LayerOptions {\r\n// sequenceMode?: string;\r\n// layers?: Layer[];\r\n// defaultFocused?: string;\r\n// uiGroupExpandable?: boolean;\r\n// uiGroupAlwaysOpen?: boolean;\r\n// uiGroupHeaderVisible?: boolean;\r\n// zIndex?: number;\r\n// }\r\n\r\n// /**\r\n// * SourceLayerOptions interface.\r\n// */\r\n// export interface SourceLayerOptions extends LayerOptions {\r\n// source: Source;\r\n// listViewTitleTemplate?: string;\r\n// listViewDescriptionTemplate?: string;\r\n// listViewEnableOpenButton?: boolean;\r\n// infoWindowTitleTemplate?: string;\r\n// infoWindowDescriptionTemplate?: string;\r\n// infoWindowDescriptionRefreshInterval?: number;\r\n// infoWindowMaxWidth?: string;\r\n// infoWindowEnableOpenButton?: boolean;\r\n// }\r\n","export class NAPControlOptions implements INAPControlOptions {\r\n resourcesPath?: string;\r\n napDcUrl?: string;\r\n\r\n constructor(opts?: INAPControlOptions) {\r\n this.resourcesPath = opts ? opts.resourcesPath : null;\r\n this.napDcUrl = opts ? opts.napDcUrl : 'https://www.ncup.si/dc';\r\n }\r\n}\r\n\r\nexport interface INAPControlOptions {\r\n resourcesPath?: string;\r\n napDcUrl?: string;\r\n}\r\n","import * as maplibregl from 'maplibre-gl';\r\n\r\nimport Mustache from 'mustache';\r\nimport { FilterTemplate } from './templates/filter-template';\r\nimport { Map, PersistedVisibility } from '../../map/RM2Map';\r\nimport { NAPControlOptions, INAPControlOptions } from './RM2NAPControlOptions';\r\nimport { DetailsTemplate } from './templates/details-template';\r\nimport { LayerGroup } from '../../model/style-metadata/RM2LayerGroup';\r\nimport { LocalizationService } from '../../services/RM2LocalizationService';\r\nimport { ServiceType } from '../../services/RM2Service';\r\nimport { Feature } from '../../model/RM2Feature';\r\nimport { Layer } from '../../model/RM2Layer';\r\nimport { Point } from '../../model/RM2Geometry';\r\n\r\ndeclare let $: any;\r\n\r\nexport class NAPControl implements maplibregl.IControl {\r\n protected _map: Map;\r\n\r\n private _options: INAPControlOptions;\r\n\r\n private _localizationService: LocalizationService;\r\n\r\n private _button: HTMLButtonElement;\r\n private _filter: HTMLDivElement;\r\n private _details: HTMLDivElement;\r\n\r\n private get responsiveBreakpoint(): number { return 503; }\r\n\r\n private get filterWidth(): string { return '280px'; }\r\n private get detailsWidth(): string { return '300px'; }\r\n\r\n private get chargingLayerId(): string { return 'ncup.charging'; }\r\n\r\n constructor(map: Map, opts?: INAPControlOptions) {\r\n this._map = map;\r\n this._options = new NAPControlOptions(opts);\r\n\r\n this._map.onFeaturePopupClicked.subscribe(p => {\r\n if (p.properties.contentName === 'ncup.charging') {\r\n this.getPolnilnice([p])\r\n .then(polnilnice => {\r\n this.setFilterStatus(false);\r\n this.setDetailsStatus(polnilnice[0]);\r\n this._map.closeAllPopups();\r\n })\r\n .catch(ex => console.error(ex));\r\n }\r\n });\r\n\r\n this._connectorsDict['chademo'] = { icon: 'prikljucek_CHAdeMO_green', title: 'ncup.filter.connectors.CHAdeMO' };\r\n this._connectorsDict['cee3'] = { icon: 'prikljucek_3_polni_green', title: 'ncup.filter.connectors.3-polni' };\r\n this._connectorsDict['cee5'] = { icon: 'prikljucek_5_polni_green', title: 'ncup.filter.connectors.5-polni' };\r\n this._connectorsDict['domestic'] = { icon: 'prikljucek_schuko_green', title: 'ncup.filter.connectors.schuko' };\r\n this._connectorsDict['iec62196T1'] = { icon: 'prikljucek_type1_green', title: 'ncup.filter.connectors.type-1' };\r\n this._connectorsDict['iec62196T1COMBO'] = { icon: 'ccs_1_sae_green', title: 'ncup.filter.connectors.ccs-1-sae' };\r\n this._connectorsDict['iec62196T2'] = { icon: 'prikljucek_type2_green', title: 'ncup.filter.connectors.type-2' };\r\n this._connectorsDict['iec62196T2COMBO'] = { icon: 'ccs_2_sae_green', title: 'ncup.filter.connectors.ccs-2-sae' };\r\n this._connectorsDict['teslaR'] = { icon: 'prikljucek_roadster_green', title: 'ncup.filter.connectors.roadster' };\r\n this._connectorsDict['teslaS'] = { icon: 'prikljucek_supercharge_green', title: 'ncup.filter.connectors.supercharge' };\r\n\r\n // this._vehiclesDict['electricalDevices'] = { icon: , title: 'ncup.filter.vehicle.devices' };\r\n // this._vehiclesDict['electricBikeOrMotorcycle'] = { icon: , title: 'ncup.filter.vehicle.kolo-motor-skiro' };\r\n // this._vehiclesDict['electricVehicle'] = { icon: , title: 'ncup.filter.vehicle.car' };\r\n // this._vehiclesDict['lorryPowerConsumption'] = { icon: , title: 'ncup.filter.vehicle.tovorno' };\r\n // this._vehiclesDict['motorhomeOrCaravanSupply'] = { icon: , title: 'ncup.filter.vehicle.avtodom' };\r\n // this._vehiclesDict['other'] = { icon: , title: 'ncup.filter.vehicle.other' };\r\n\r\n this._localizationService = this._map.getService(ServiceType.Localization) as LocalizationService;\r\n\r\n this._button = this.create();\r\n\r\n window.addEventListener('resize', this.resizeElements);\r\n this.resizeElements();\r\n }\r\n\r\n private create(): HTMLButtonElement {\r\n // open filter btn\r\n const button = document.createElement('button');\r\n button.setAttribute('type', 'button');\r\n const icon = document.createElement('div');\r\n icon.className = 'rm2-nap-filter-icon';\r\n button.appendChild(icon);\r\n button.onclick = () => this.setFilterStatus(true);\r\n // button.onclick = () => this.setDetailsStatus(true);\r\n\r\n // filter panel\r\n this.createFilter();\r\n\r\n // details panel\r\n this.createDetails();\r\n\r\n return button;\r\n }\r\n\r\n private createFilter() {\r\n const filter = document.createElement('div');\r\n filter.className = 'rm2-nap-filter position-absolute animate-left';\r\n\r\n const prometGroups = this.getPrometGroups();\r\n filter.innerHTML = Mustache.render(FilterTemplate, {\r\n resourcesPath: this._options.resourcesPath,\r\n prometGroups: prometGroups\r\n });\r\n\r\n // moč polnjenja slider\r\n $(filter).find(\"#nap-filter-moc-polnjenja\").slider({\r\n range: true,\r\n min: 0,\r\n max: 120,\r\n values: [0, 120],\r\n change: (e, ui) => {\r\n const vals = ui.values;\r\n this.onFilterChange();\r\n filter.querySelector('#nap-filter-moc-bottom').innerHTML = `${vals[0]} kW`;\r\n filter.querySelector('#nap-filter-moc-top').innerHTML = `${vals[1]} kW`;\r\n }\r\n });\r\n\r\n // attach filter change listeners\r\n filter.querySelectorAll('input[type=\"checkbox\"]').forEach((l: HTMLInputElement) => l.onchange = () => this.onFilterChange());\r\n\r\n this._localizationService.refresh(filter);\r\n this._filter = filter;\r\n this.attachSlojiToggleEventsListeners(prometGroups);\r\n\r\n const close: HTMLElement = filter.querySelector('#rm2-nap-filter-close');\r\n close.onclick = () => this.setFilterStatus(false);\r\n\r\n this.refreshFilterSize();\r\n this.setFilterStatus(false);\r\n // this._button.parentNode.parentNode.appendChild(filter);\r\n }\r\n\r\n private createDetails() {\r\n const details = document.createElement('div');\r\n details.className = 'rm2-nap-details position-absolute animate-left';\r\n this._details = details;\r\n\r\n this.setDetailsStatus(null);\r\n }\r\n\r\n private setFilterStatus(visible: boolean) {\r\n if (this._filter == undefined)\r\n return;\r\n\r\n const l = visible ? '0px' : `-${this.getFilterWidth()}`;\r\n this._filter.style.left = l;\r\n }\r\n\r\n private setDetailsStatus(data: Feature) {\r\n if (data) {\r\n const now = new Date();\r\n let dayNow = now.getDay();\r\n if (dayNow === 0)\r\n dayNow = 7;\r\n\r\n let todayOpenTimes: string[] = [];\r\n let isOpenToday: boolean;\r\n const days = this.getDaysArray().map((x, i) => {\r\n let today = new Date().getDay();\r\n if (today === 0)\r\n today = 7;\r\n\r\n const title = this._localizationService.localize(`ncup.days.day-${i + 1}`);\r\n const isToday = i + 1 === today;\r\n const cssClasses = isToday ? 'font-weight-bold' : '';\r\n const xWorkingHours = data.properties.WorkingHours.find(y => y.DayInWeek === x);\r\n\r\n if (xWorkingHours) {\r\n const openTimes = xWorkingHours.OpenPeriods.map(h => h.stringify());\r\n if (isToday) {\r\n const currOpen = xWorkingHours.isCurrentlyOpen();\r\n if (currOpen)\r\n isOpenToday = true;\r\n\r\n todayOpenTimes = openTimes.slice();\r\n }\r\n\r\n return {\r\n Title: title,\r\n OpenTimes: openTimes,\r\n CSSClasses: cssClasses\r\n };\r\n }\r\n else {\r\n return {\r\n Title: title,\r\n OpenTimes: ['--'],\r\n CSSClasses: cssClasses\r\n };\r\n }\r\n });\r\n\r\n this._details.innerHTML = Mustache.render(DetailsTemplate, Object.assign(data.properties, {\r\n resourcesPath: this._options.resourcesPath,\r\n RefuelPoints: data.properties.RefuelPoints.map(p => {\r\n return Object.assign(p, {\r\n Connectors: p.Connectors.map(c => {\r\n const data = this.getConnectorData(c.ChargingInterface);\r\n return {\r\n Title: data.title,\r\n Icon: data.icon,\r\n MaxPowerAtSocket: c.MaxPowerAtSocket\r\n }\r\n })\r\n });\r\n }),\r\n Days: days,\r\n TodayOpenTimes: todayOpenTimes,\r\n TodayOpenStatus: isOpenToday ? 'ncup.chargingStations.open.open' : 'ncup.chargingStations.open.closed',\r\n PaymentTypesText: data.properties.PaymentTypes && data.properties.PaymentTypes.length > 0 ? `${this._localizationService.localize('ncup.chargingStations.price.payment-types.title')}: ${data.properties.PaymentTypes.map(x => this._localizationService.localize(`ncup.chargingStations.price.payment-types.${x}`)).join(', ')}` : null\r\n // ChargingTypes: 'AC, DC, CCS'\r\n }));\r\n this._localizationService.refresh(this._details);\r\n\r\n const close: HTMLElement = this._details.querySelector('#rm2-nap-details-close');\r\n close.onclick = () => this.setDetailsStatus(null);\r\n this.refreshDetailsSize();\r\n }\r\n\r\n const l = data ? '0px' : `-${this.getDetailsWidth()}`;\r\n this._details.style.left = l;\r\n }\r\n\r\n private resizeElements = () => {\r\n this.refreshFilterSize();\r\n this.refreshDetailsSize();\r\n };\r\n\r\n private refreshFilterSize() {\r\n if (this._filter == undefined)\r\n return;\r\n\r\n const size = this._map.getSize();\r\n const h = size[1];\r\n\r\n this._filter.style.width = this.getFilterWidth();\r\n this._filter.style.height = `${h}px`;\r\n const currLeft = this._filter.style.left;\r\n if (currLeft.startsWith('-'))\r\n this._filter.style.left = `-${this.getFilterWidth()}`;\r\n\r\n // refresh tab content height\r\n const tabs: HTMLElement = this._filter.querySelector('.tab-content');\r\n tabs.style.height = `${h - 120}px`;\r\n }\r\n\r\n private refreshDetailsSize() {\r\n if (this._details == undefined)\r\n return;\r\n\r\n const size = this._map.getSize();\r\n const h = size[1];\r\n\r\n this._details.style.width = this.getDetailsWidth();\r\n this._details.style.height = `${h}px`;\r\n const currLeft = this._details.style.left;\r\n if (currLeft.startsWith('-'))\r\n this._details.style.left = `-${this.getDetailsWidth()}`;\r\n\r\n // refresh tab content height\r\n const tabs: HTMLElement = this._details.querySelector('.tab-content');\r\n if (tabs)\r\n tabs.style.height = `${h - 220}px`;\r\n }\r\n\r\n // TODO: to poenotiti s PrometSiControl (podvojeno)\r\n private attachSlojiToggleEventsListeners(prometGroups: { layers: LayerGroup[], isCheckbox: boolean }[]) {\r\n // legend checkboxes\r\n const checkboxes = this._filter.querySelectorAll(\".nap-filter-sloji input[type='checkbox']\");\r\n checkboxes.forEach((c: HTMLInputElement) => {\r\n c.checked = (prometGroups.filter(l => l.isCheckbox === true).map(l => l.layers) as any).flat().find((g: LayerGroup) => g.id === c.name).visible !== false; // set initial UI\r\n c.addEventListener('change', e => {\r\n this._map.setGroupVisibility(c.name, c.checked);\r\n this._map.persistVisibility([{ type: 'group', id: c.name, visible: c.checked }]);\r\n }); // set visibility\r\n });\r\n\r\n // legend radios\r\n const radios = this._filter.querySelectorAll(\".nap-filter-prikaz input[type='radio']\");\r\n radios.forEach((c: HTMLInputElement) => {\r\n const parent: LayerGroup = (prometGroups.filter(l => l.isCheckbox === false).map(l => l.layers) as any).flat().find((g: LayerGroup) => g.id === c.name);\r\n c.checked = parent.children.find(l => l.id === c.value).visible !== false; // set initial UI\r\n c.addEventListener('change', e => {\r\n const filtered = parent.children.filter(child => child.id !== c.value);\r\n filtered.forEach(other => this._map.setGroupVisibility(other.id, false));\r\n this._map.setGroupVisibility(c.value, true); // set visibility\r\n\r\n const persist: PersistedVisibility[] = filtered.map(x => {\r\n return {\r\n type: 'group',\r\n id: x.id,\r\n visible: false\r\n };\r\n });\r\n\r\n persist.push({\r\n type: 'group',\r\n id: c.id,\r\n visible: true\r\n });\r\n\r\n this._map.persistVisibility(persist);\r\n });\r\n })\r\n\r\n // group visibility update\r\n this._map.onGroupVisibilityChanged.subscribe(g => {\r\n const parent = g.getParent();\r\n if (parent && parent.sequenceMode === 'choice') {\r\n // update radios\r\n const radios = this._filter.querySelectorAll(`[name=\"${parent.id}\"]`);\r\n // radios.forEach((radio: HTMLInputElement) => updateLegendItemUI(radio, radio.value === g.id));\r\n }\r\n else {\r\n // update checkbox\r\n const checkbox: HTMLInputElement = this._filter.querySelector(`[id^='nap-filter-prikaz-${g.id}']`);\r\n // checkbox.checked = g.visible !== false;\r\n // updateLegendItemUI(checkbox, g.visible !== false);\r\n }\r\n });\r\n }\r\n\r\n private getPrometGroups(): { layers: LayerGroup[], isCheckbox: boolean }[] {\r\n const metadata = this._map.metadata;\r\n if (metadata && metadata.groups) {\r\n const groups = metadata.groups.filter(g => g.id && g.uiVisible !== false);\r\n const radio = groups.filter(g => g.sequenceMode === 'choice');\r\n const checkbox = groups.filter(g => g.sequenceMode !== 'choice');\r\n\r\n return [\r\n {\r\n layers: checkbox,\r\n isCheckbox: true\r\n },\r\n {\r\n layers: radio,\r\n isCheckbox: false\r\n }\r\n ]\r\n }\r\n\r\n return [];\r\n }\r\n\r\n private filterReq: XMLHttpRequest;\r\n private filterDebounce: any;\r\n private onFilterChange() {\r\n if (this.filterDebounce) {\r\n clearTimeout(this.filterDebounce);\r\n this.filterDebounce = null;\r\n }\r\n\r\n if (this.filterReq) {\r\n this.filterReq.abort();\r\n this.filterReq = null;\r\n }\r\n\r\n this.filterDebounce = setTimeout(() => {\r\n const zasedenost_prosto: HTMLInputElement = this._filter.querySelector('#nap-filter-zasedenost-prosto');\r\n\r\n const mocPolnjenja = $(this._filter).find(\"#nap-filter-moc-polnjenja\").slider('values');\r\n\r\n const prikljucek_3polni: HTMLInputElement = this._filter.querySelector('#nap-filter-prikljucki-3-polni');\r\n const prikljucek_5polni: HTMLInputElement = this._filter.querySelector('#nap-filter-prikljucki-5-polni');\r\n const prikljucek_schuko: HTMLInputElement = this._filter.querySelector('#nap-filter-prikljucki-schuko');\r\n const prikljucek_type1: HTMLInputElement = this._filter.querySelector('#nap-filter-prikljucki-type-1');\r\n const prikljucek_type2: HTMLInputElement = this._filter.querySelector('#nap-filter-prikljucki-type-2');\r\n const prikljucek_chademo: HTMLInputElement = this._filter.querySelector('#nap-filter-prikljucki-CHAdeMO');\r\n const prikljucek_ccs1sae: HTMLInputElement = this._filter.querySelector('#nap-filter-prikljucki-ccs-1-sae');\r\n const prikljucek_ccs2sae: HTMLInputElement = this._filter.querySelector('#nap-filter-prikljucki-ccs-2-sae');\r\n const prikljucek_roadster: HTMLInputElement = this._filter.querySelector('#nap-filter-prikljucki-roadster');\r\n const prikljucek_supercharge: HTMLInputElement = this._filter.querySelector('#nap-filter-prikljucki-supercharge');\r\n\r\n const aktivacija_kartica: HTMLInputElement = this._filter.querySelector('#nap-filter-nacin-aktivacije-kartica');\r\n const aktivacija_app: HTMLInputElement = this._filter.querySelector('#nap-filter-nacin-aktivacije-app');\r\n const aktivacija_sms: HTMLInputElement = this._filter.querySelector('#nap-filter-nacin-aktivacije-sms');\r\n const aktivacija_pnc: HTMLInputElement = this._filter.querySelector('#nap-filter-nacin-aktivacije-pnc');\r\n\r\n const cena_brezplacno: HTMLInputElement = this._filter.querySelector('#nap-filter-cena-brezplacno');\r\n\r\n const obrCas_24ur: HTMLInputElement = this._filter.querySelector('#nap-filter-obr-cas-24ur');\r\n const obrCas_trenutnoOdprto: HTMLInputElement = this._filter.querySelector('#nap-filter-obr-cas-trenutno');\r\n\r\n const vrsta_avto: HTMLInputElement = this._filter.querySelector('#nap-filter-vrsta-avto');\r\n const vrsta_koloMotorSkiro: HTMLInputElement = this._filter.querySelector('#nap-filter-vrsta-kolo-motor-skiro');\r\n const vrsta_avtodom: HTMLInputElement = this._filter.querySelector('#nap-filter-vrsta-avtodom');\r\n const vrsta_tovorno: HTMLInputElement = this._filter.querySelector('#nap-filter-vrsta-tovorno-vozilo');\r\n\r\n const dto: IPolnilniceFilterRequest = {\r\n MocPolnjenjaMin: mocPolnjenja[0],\r\n MocPolnjenjaMax: mocPolnjenja[1]\r\n };\r\n\r\n if (zasedenost_prosto.checked) dto.ZasedenostProsto = true;\r\n\r\n if (prikljucek_3polni.checked) dto.Prikljucki3Polni = true;\r\n if (prikljucek_5polni.checked) dto.Prikljucki5Polni = true;\r\n if (prikljucek_schuko.checked) dto.PrikljuckiSchuko = true;\r\n if (prikljucek_type1.checked) dto.PrikljuckiType1 = true;\r\n if (prikljucek_type2.checked) dto.PrikljuckiType2 = true;\r\n if (prikljucek_chademo.checked) dto.PrikljuckiCHAdeMO = true;\r\n if (prikljucek_ccs1sae.checked) dto.PrikljuckiCCS1SAE = true;\r\n if (prikljucek_ccs2sae.checked) dto.PrikljuckiCCS2SAE = true;\r\n if (prikljucek_roadster.checked) dto.PrikljuckiRoadster = true;\r\n if (prikljucek_supercharge.checked) dto.PrikljuckiSupercharge = true;\r\n\r\n if (aktivacija_kartica.checked) dto.NacinAktivacijeKartica = true;\r\n if (aktivacija_app.checked) dto.NacinAktivacijeAplikacija = true;\r\n if (aktivacija_sms.checked) dto.NacinAktivacijeSMS = true;\r\n if (aktivacija_pnc.checked) dto.NacinAktivacijePlugAndCharge = true;\r\n\r\n if (cena_brezplacno.checked) dto.CenaBrezplacno = true;\r\n\r\n if (obrCas_24ur.checked) dto.ObratovalniCas24Ur = true;\r\n if (obrCas_trenutnoOdprto.checked) dto.ObratovalniCasTrenutnoOdprto = true;\r\n\r\n if (vrsta_avto.checked) dto.VrstaVozilaAvto = true;\r\n if (vrsta_koloMotorSkiro.checked) dto.VrstaVozilaKoloMotorSkiro = true;\r\n if (vrsta_avtodom.checked) dto.VrstaVozilaAvtodom = true;\r\n if (vrsta_tovorno.checked) dto.VrstaVozilaTovornoVozilo = true;\r\n\r\n this.filterReq = new XMLHttpRequest();\r\n this.filterReq.timeout = 10000;\r\n this.filterReq.onload = () => {\r\n if (this.filterReq.responseText) {\r\n const ids: number[] = JSON.parse(this.filterReq.responseText);\r\n const filter: maplibregl.FilterSpecification = [\r\n \"all\",\r\n [\"in\", [\"to-number\", [\"get\", \"id\"]], [\"literal\", ids]]\r\n ];\r\n\r\n if (dto.ZasedenostProsto === true) {\r\n filter.push([\r\n \"all\",\r\n [\r\n \"==\",\r\n [\"get\", \"isOperational\"],\r\n \"True\"\r\n ],\r\n [\r\n \"==\",\r\n [\"get\", \"isFree\"],\r\n \"True\"\r\n ]\r\n ]);\r\n }\r\n\r\n this._map.setFilter(this.chargingLayerId, filter);\r\n }\r\n };\r\n\r\n const url = `${this._options.napDcUrl}/naps.prometej.filter`;\r\n this.filterReq.ontimeout = () => { };\r\n this.filterReq.onerror = () => { };\r\n this.filterReq.onabort = () => { };\r\n this.filterReq.open('POST', url, true);\r\n this.filterReq.setRequestHeader('Content-Type', 'application/json');\r\n this.filterReq.send(JSON.stringify(dto));\r\n }, 300);\r\n }\r\n\r\n private polnilnicaReq: XMLHttpRequest;\r\n private getPolnilnice(fts: Feature[]): Promise[]> {\r\n return new Promise[]>((res, rej) => {\r\n if (this.polnilnicaReq) {\r\n this.polnilnicaReq.abort();\r\n this.polnilnicaReq = null;\r\n }\r\n\r\n this.polnilnicaReq = new XMLHttpRequest();\r\n this.polnilnicaReq.timeout = 10000;\r\n this.polnilnicaReq.onload = () => {\r\n if (this.polnilnicaReq.responseText) {\r\n let response: any[] = JSON.parse(this.polnilnicaReq.responseText);\r\n response = response.map(x => EnergySiteWebDTO.fromGeoJson(x));\r\n\r\n\t\t\t\t\t//let uprWeb = newFt.properties.UpravljalecWeb;\r\n\t\t\t\t\t//if(uprWeb.startsWith(\"http://\")===false && uprWeb.startsWith(\"https://\")===false)\r\n\t\t\t\t\t//\tuprWeb= \"https://\" + uprWeb;\r\n const newFts: Feature[] = fts.map((x, i) => {\r\n const newFt = new Feature(response[i]);\r\n newFt.properties.ContentName = 'ncup.charging';\r\n newFt.geometry = Point.fromCoordinate([newFt.properties.Long, newFt.properties.Lat]);\r\n (newFt.properties as any).isOperational = x.properties.isOperational === 'True';\r\n (newFt.properties as any).isFree = x.properties.isFree === 'True';\r\n (newFt.properties as any).hasAdHocPrice = !(x.properties.ElectricAdHocPrice === null || x.properties.ElectricAdHocPrice === undefined);\r\n (newFt.properties as any).hasPerChargingPointPrice = (newFt.properties.PriceDefinitionType === \"PerChargingPoint\");\r\n\t\t\t\t\t\t(newFt.properties as any).UpravljalecWeb = (newFt.properties.UpravljalecWeb && newFt.properties.UpravljalecWeb.indexOf(\"https://\")===-1 ? \"https://\"+newFt.properties.UpravljalecWeb : newFt.properties.UpravljalecWeb);\r\n return newFt;\r\n });\r\n\r\n res(newFts);\r\n }\r\n };\r\n\r\n const url = `${this._options.napDcUrl}/naps.prometej.polnilnica.detail`;\r\n this.polnilnicaReq.ontimeout = () => rej('timeout');\r\n this.polnilnicaReq.onerror = (e) => rej(e);\r\n this.polnilnicaReq.onabort = () => rej('abort');\r\n this.polnilnicaReq.open('POST', url, true);\r\n this.polnilnicaReq.setRequestHeader('Content-Type', 'application/json');\r\n\r\n const ids = fts.map(x => Number.parseInt(x.properties.id));\r\n this.polnilnicaReq.send(JSON.stringify(ids));\r\n });\r\n }\r\n\r\n private getFilterWidth(): string {\r\n const width = this._map.getSize()[0];\r\n return width > this.responsiveBreakpoint ? this.filterWidth : `${width - 75}px`;\r\n }\r\n\r\n private getDetailsWidth(): string {\r\n const width = this._map.getSize()[0];\r\n return width > this.responsiveBreakpoint ? this.detailsWidth : `${width - 75}px`;\r\n }\r\n\r\n private getDaysArray(): string[] {\r\n return [\r\n \"Monday\",\r\n \"Tuesday\",\r\n \"Wednesday\",\r\n \"Thursday\",\r\n \"Friday\",\r\n \"Saturday\",\r\n \"Sunday\"\r\n ];\r\n }\r\n\r\n private getTodayWorkingHours(hours: OpeningTimesWebDTO[]): OpeningTimesWebDTO {\r\n let today = new Date().getDay();\r\n if (today === 0)\r\n today = 7;\r\n\r\n const weekdays = this.getDaysArray();\r\n const todayOpen = hours.find(x => x.DayInWeek === weekdays[today - 1]);\r\n return todayOpen;\r\n }\r\n\r\n private _connectorsDict: { [id: string]: { icon: string, title: string } } = {};\r\n private _vehiclesDict: { [id: string]: { icon: string, title: string } } = {};\r\n private getConnectorData(type: ChargingInterfaceTypeWebAppEnum): { icon: string, title: string } {\r\n const data = this._connectorsDict[type];\r\n if (data)\r\n return data;\r\n return { icon: 'prikljucek_unknown_green', title: 'ncup.filter.connectors.other' };\r\n }\r\n\r\n onAdd(map: maplibregl.Map): HTMLElement {\r\n const container = document.createElement('div');\r\n\r\n const btnWrapper = document.createElement('div');\r\n btnWrapper.className = 'mapboxgl-ctrl mapboxgl-ctrl-group';\r\n btnWrapper.appendChild(this._button);\r\n\r\n container.appendChild(btnWrapper);\r\n container.appendChild(this._details);\r\n container.appendChild(this._filter);\r\n\r\n return container;\r\n }\r\n\r\n onRemove() {\r\n this._button.parentNode.removeChild(this._button);\r\n this._filter.parentNode.removeChild(this._filter);\r\n this._details.parentNode.removeChild(this._details);\r\n }\r\n\r\n getDefaultPosition?: () => maplibregl.ControlPosition = () => 'top-left';\r\n}\r\n\r\nexport interface IPolnilniceFilterRequest {\r\n ZasedenostProsto?: boolean; // če je polnilnica prosta\r\n\r\n MocPolnjenjaMin: number; // minimalna moč polnjenja polnilnice (dobiš skupaj z MocPolnjenjaMax)\r\n MocPolnjenjaMax: number; // maksimalna moč polnjenja polnilnice (dobiš skupaj z MocPolnjenjaMin)\r\n\r\n Prikljucki3Polni?: boolean; // polnilnica ima 3-polni prikljucek\r\n Prikljucki5Polni?: boolean; // polnilnica ima 5-polni prikljucek\r\n PrikljuckiSchuko?: boolean; // polnilnica ima Schuko prikljucek\r\n PrikljuckiType1?: boolean; // polnilnica ima Type-1 prikljucek\r\n PrikljuckiType2?: boolean; // polnilnica ima Type-2 prikljucek\r\n PrikljuckiCHAdeMO?: boolean; // polnilnica ima CHAdeMO prikljucek\r\n PrikljuckiCCS1SAE?: boolean; // polnilnica ima CCS1SAE prikljucek\r\n PrikljuckiCCS2SAE?: boolean; // polnilnica ima CCS1SAE prikljucek\r\n PrikljuckiRoadster?: boolean; // polnilnica ima roadster prikljucek\r\n PrikljuckiSupercharge?: boolean; // polnilnica ima supercharge prikljucek\r\n\r\n NacinAktivacijeKartica?: boolean; // polnilnica ima način aktivacije s kartico\r\n NacinAktivacijeAplikacija?: boolean; // polnilnica ima način aktivacije z aplikacijo\r\n NacinAktivacijeSMS?: boolean; // polnilnica ima način aktivacije z SMS\r\n NacinAktivacijePlugAndCharge?: boolean; // polnilnica ima način aktivacije s plug & charge oz. unlimited\r\n\r\n CenaBrezplacno?: boolean; // polnilnica je brezplačna\r\n\r\n ObratovalniCas24Ur?: boolean; // polnilnica obratuje 24ur\r\n ObratovalniCasTrenutnoOdprto?: boolean; // polnilnica trenutno obratuje\r\n\r\n VrstaVozilaAvto?: boolean; // na polnilnice lahko polniš avto\r\n VrstaVozilaKoloMotorSkiro?: boolean; // na polnilnice lahko polniš kolo, motor, skiro\r\n VrstaVozilaAvtodom?: boolean; // na polnilnice lahko polniš avtodom\r\n VrstaVozilaTovornoVozilo?: boolean; // na polnilnice lahko polniš tovorno vozilo\r\n};\r\n\r\nexport class EnergySiteWebDTO {\r\n // internal\r\n ContentName: string;\r\n\r\n\r\n Name: string;\r\n Street: string;\r\n Street1: string;\r\n HouseNumber: string;\r\n Zip: string;\r\n City: string;\r\n // LocationType: LocationEnum;\r\n RefuelPoints: EnergyRefuelPointWebDTO[];\r\n WorkingHours: OpeningTimesWebDTO[];\r\n Authentications: AuthenticationAndIdentificationEnum[];\r\n PaymentTypes: string[];\r\n Lat?: number;\r\n Long?: number;\r\n ElectricAdHocPrice: number;\r\n PriceDefinitionType: string;\r\n UpravljalecName: string;\r\n UpravljalecTel: string;\r\n UpravljalecMail: string;\r\n UpravljalecWeb: string;\r\n\r\n public static fromGeoJson(geojson: any): EnergySiteWebDTO {\r\n const obj = new EnergySiteWebDTO();\r\n const keys = Object.keys(geojson);\r\n for (let i = 0; i < keys.length; i++)\r\n obj[keys[i]] = geojson[keys[i]];\r\n obj.WorkingHours = obj.WorkingHours.map(x => OpeningTimesWebDTO.fromGeojson(x));\r\n return obj;\r\n }\r\n}\r\n\r\nexport interface EnergyRefuelPointWebDTO {\r\n StationName: string;\r\n StationIndex: number;\r\n RefuelPointName: string;\r\n RefuelPointIndex: number;\r\n InUse: boolean;\r\n Operational: boolean;\r\n ParkingFree: boolean;\r\n Voltage: number;\r\n ChargingPower: number;\r\n MaximumCurrent: number;\r\n Connectors: ConnectorWebDTO[];\r\n UsageTypes: ChargingPointUsageTypeEnum[];\r\n}\r\n\r\nexport interface ConnectorWebDTO {\r\n ChargingInterface: ChargingInterfaceTypeWebAppEnum;\r\n MaxPowerAtSocket: number;\r\n}\r\n\r\nexport enum ChargingPointUsageTypeEnum\r\n{\r\n electricalDevices,\r\n electricBikeOrMotorcycle,\r\n electricVehicle,\r\n lorryPowerConsumption,\r\n motorhomeOrCaravanSupply,\r\n other\r\n}\r\n\r\nexport enum ChargingInterfaceTypeWebAppEnum {\r\n chademo,\r\n cee3,\r\n cee5,\r\n domestic,\r\n iec62196T1,\r\n iec62196T1COMBO,\r\n iec62196T2,\r\n iec62196T2COMBO,\r\n teslaR,\r\n teslaS,\r\n other\r\n}\r\n\r\nexport enum AuthenticationAndIdentificationEnum {\r\n activeRFIDChip,\r\n apps,\r\n calypso,\r\n cashPayment,\r\n creditCard,\r\n debitCard,\r\n mifareClassic,\r\n mifareDesfire,\r\n nfc,\r\n overTheAir,\r\n phoneDialog,\r\n phoneSMS,\r\n pinpad,\r\n plc,\r\n prepaidCard,\r\n rfid,\r\n website,\r\n unlimitedAccess,\r\n noAccess\r\n}\r\n\r\nexport class OpenPeriodWebDTO {\r\n OpenFrom: number;\r\n OpenTill: number;\r\n\r\n constructor(openFrom: number, openTill: number) {\r\n this.OpenFrom = openFrom;\r\n this.OpenTill = openTill;\r\n }\r\n\r\n public stringify(): string {\r\n const openFromH = Math.floor(this.OpenFrom / 60);\r\n let openFromMin = (this.OpenFrom % 60).toString();\r\n if (openFromMin.length === 1)\r\n openFromMin = '0' + openFromMin;\r\n\r\n let openTill = this.OpenTill === 0 ? 1439 : this.OpenTill;\r\n const openTillH = Math.floor(openTill / 60);\r\n let openTillMin = (openTill % 60).toString();\r\n if (openTillMin.length === 1)\r\n openTillMin = '0' + openTillMin;\r\n\r\n return `${openFromH}:${openFromMin} - ${openTillH}:${openTillMin}`;\r\n }\r\n}\r\n\r\nexport class OpeningTimesWebDTO {\r\n // DayInWeek: DayInWeekEnum;\r\n DayInWeek: string;\r\n OpenPeriods: OpenPeriodWebDTO[];\r\n\r\n public isCurrentlyOpen(): boolean {\r\n const now = new Date();\r\n const mins = now.getHours() * 60 + now.getMinutes();\r\n for (let i = 0; i < this.OpenPeriods.length; i++) {\r\n const p = this.OpenPeriods[i];\r\n if ((p.OpenFrom <= mins && p.OpenTill >= mins) || (p.OpenFrom === 0 && p.OpenTill === 0))\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n public static fromGeojson(geojson: any): OpeningTimesWebDTO {\r\n const obj = new OpeningTimesWebDTO();\r\n obj.DayInWeek = geojson.DayInWeek;\r\n obj.OpenPeriods = geojson.OpenPeriods.map((p: any) => new OpenPeriodWebDTO(p.OpenFrom, p.OpenTill));\r\n return obj;\r\n }\r\n}\r\n","// BOOTSTRAP 4\r\nexport const FilterTemplate = `\r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    filter
    \r\n
    \r\n\r\n \r\n
      \r\n
    • \r\n \r\n
    • \r\n
    • \r\n \r\n
    • \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {{#prometGroups}}\r\n {{#layers}}\r\n {{#isCheckbox}}\r\n \r\n
    \r\n \r\n \r\n
    \r\n {{/isCheckbox}}\r\n {{/layers}}\r\n {{/prometGroups}}\r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n {{#prometGroups}}\r\n {{#layers}}\r\n {{^isCheckbox}}\r\n \r\n {{#children}}\r\n
    \r\n \r\n \r\n
    \r\n {{/children}}\r\n {{/isCheckbox}}\r\n {{/layers}}\r\n {{/prometGroups}}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    0 kW
    \r\n
    120 kW
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n`;\r\n","// BOOTSTRAP 4\r\nexport const DetailsTemplate = `\r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n

    {{Name}}

    \r\n
    {{Zip}} {{City}}
    \r\n
    \r\n
    \r\n\r\n \r\n
      \r\n
    • \r\n \r\n
    • \r\n
    • \r\n \r\n
    • \r\n
    \r\n
    \r\n \r\n
    \r\n {{#RefuelPoints}}\r\n
    \r\n
    \r\n
    \r\n \"{{StationName}}\"\r\n
    \r\n
    \r\n
    {{StationName}}
    \r\n
    {{Voltage}} V | {{MaximumCurrent}} A | {{ChargingPower}} kW
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    ·
    \r\n {{#UsageTypes}}\r\n
    \r\n \"{{.}}\"\r\n
    \r\n {{/UsageTypes}}\r\n
    \r\n {{#Connectors}}\r\n
    \r\n
    \r\n \"{{Title}}\"\r\n
    \r\n
    \r\n
    \r\n \r\n
    {{MaxPowerAtSocket}} kW
    \r\n
    \r\n
    \r\n {{/Connectors}}\r\n {{#ElectricAdHocPrice}}\r\n
    \r\n\t
    \r\n\t\t \"\"\r\n\t
    \r\n\t
    \r\n\t\t
    {{ElectricAdHocPrice}} EUR
    \r\n\t
    \r\n
    \r\n {{/ElectricAdHocPrice}}\r\n\r\n
    \r\n {{/RefuelPoints}}\r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n
    \r\n \"\"\r\n
    \r\n
    \r\n
    \r\n  \r\n\r\n \r\n \r\n\r\n
    \r\n
    \r\n {{#TodayOpenTimes}}\r\n
    \r\n - {{.}}\r\n
    \r\n {{/TodayOpenTimes}}\r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {{#Days}}\r\n
    \r\n
    {{Title}}
    \r\n
    \r\n {{#OpenTimes}}\r\n
    \r\n {{.}}\r\n
    \r\n {{/OpenTimes}}\r\n
    \r\n
    \r\n {{/Days}}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \"\"\r\n
    \r\n
    \r\n {{#ElectricAdHocPrice}}\r\n
    \r\n  \r\n
    \r\n
    \r\n : {{.}} € / kWh\r\n
    \r\n
    {{PaymentTypesText}}
    \r\n {{/ElectricAdHocPrice}}\r\n {{^ElectricAdHocPrice}}\r\n {{#hasAdHocPrice}}\r\n
    \r\n  \r\n
    \r\n {{/hasAdHocPrice}}\r\n {{^hasAdHocPrice}}\r\n
    \r\n {{#hasPerChargingPointPrice}}\r\n \r\n {{/hasPerChargingPointPrice}}\r\n {{^hasPerChargingPointPrice}}\r\n \r\n {{/hasPerChargingPointPrice}}\r\n
    \r\n {{/hasAdHocPrice}}\r\n {{/ElectricAdHocPrice}}\r\n\r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \"\"\r\n
    \r\n
    \r\n {{#Authentications}}\r\n
    \r\n {{/Authentications}}\r\n
    \r\n
    \r\n\r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \"\"\r\n
    \r\n
    {{UpravljalecName}}
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \"\"\r\n
    \r\n
    {{UpravljalecTel}}
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \"\"\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n`;\r\n","import * as maplibregl from 'maplibre-gl';\r\nimport * as maplibreglCompare from '@maplibre/maplibre-gl-compare';\r\nimport Mustache from 'mustache';\r\n\r\nimport { MapEventArgs, RM2Event } from '../model/RM2Event';\r\nimport { Projection } from '../model/RM2Projection';\r\nimport { Coordinate, Geometry, Popup } from '../';\r\nimport { IPolygonOptions, ILineOptions, IFeatureHighlightOptions, ICircleOptions, IHighlightOptions } from '../highlights/RM2HighlightOptions';\r\nimport { IFitOptions, ICameraChangeOptions, IPanOptions, PanOptions, FitOptions, CameraChangeOptions } from '../model/RM2CameraChangeOptions';\r\nimport { IGeolocationOptions } from '../geolocation/RM2GeolocationOptions';\r\nimport { IPopupOptions, ICarouselPopupOptions, CarouselPopupOptions, PopupOptions } from '../popup/RM2PopupOptions';\r\nimport { Feature, FeatureCollection } from '../model/RM2Feature';\r\nimport { CoordinateLike, Envelope, Point } from '../model/RM2Geometry';\r\nimport { MapControlType, ControlData } from '../map-controls/RM2MapControls';\r\nimport { IService, ServiceType } from '../services/RM2Service';\r\nimport { NominatimService, QueryOptions, ReverseGeocodingOptions, INominatimServiceOptions } from '../services/RM2NominatimService';\r\nimport { RoutingService, Route, IRouteOptions, IRoutingServiceOptions, RouteSimple, IRouteHighlightOptions, RouteHighlightOptions, RouteLegacy } from '../services/RM2RoutingService';\r\nimport { LocalizationService, ILocalizationServiceOptions } from '../services/RM2LocalizationService';\r\nimport { Highlights } from '../highlights/RM2Highlights';\r\nimport { MapPickerControl } from '../map-controls/map-picker-control/RM2MapPickerControl';\r\nimport { Geolocation, RM2GeolocationPosition } from '../geolocation/RM2Geolocation';\r\nimport { LegendOptions, LegendControl } from '../map-controls/legend-control/RM2LegendControl';\r\nimport { RoutingControl, RoutingGeocodingFeatureProps } from '../map-controls/routing-control/RM2RoutingControl';\r\nimport { PrometSiControl } from '../map-controls/promet-si-control/RM2PrometSiControl';\r\nimport { MapPickerControlOptions } from '../map-controls/map-picker-control/RM2MapPickerControlOptions';\r\nimport { RM2ViewData } from '../model/RM2ViewData';\r\nimport { LayerGroup } from '../model/style-metadata/RM2LayerGroup';\r\nimport { StyleMetadata } from '../model/style-metadata/RM2StyleMetadata';\r\nimport { Layer } from '../model/RM2Layer';\r\nimport { MapTheme } from '../model/RM2Theme';\r\nimport { MapboxClusterProperties } from '../model/MapboxClusterProperties';\r\nimport { PopupCarouselTemplate } from '../templates/popup-templates';\r\nimport { Guid } from 'guid-typescript';\r\nimport { NAPControl } from '../map-controls/nap-control/RM2NAPControl';\r\n\r\nexport type RMap2TransformRequestFunction = (url: string, resourceType: string) => { url: string };\r\n\r\nexport interface RM2MapOptions {\r\n transformRequest?: RMap2TransformRequestFunction;\r\n view?: RM2ViewData;\r\n label?: string;\r\n theme?: MapTheme;\r\n id?: string;\r\n}\r\n\r\nexport interface RM2MapCompareState {\r\n sliderPosition?: number;\r\n}\r\n\r\nexport interface PersistedVisibility {\r\n type: 'group' | 'layer';\r\n id: string;\r\n visible: boolean;\r\n}\r\n\r\nexport class Map {\r\n\r\n public static readonly routeSourceName = 'mb-r-route-source';\r\n\r\n private _mbMap: maplibregl.Map;\r\n private _mbMapCompare: maplibreglCompare;\r\n private _mbMapCompareMap: Map;\r\n\r\n private _style: maplibregl.StyleSpecification;\r\n public get style(): maplibregl.StyleSpecification { return this._style; }\r\n\r\n public get metadata(): StyleMetadata { return this._style && this.style.metadata ? new StyleMetadata(this._style.metadata) : null; }\r\n\r\n // private _legendControl: LegendControlMb;\r\n private _geolocatorControl: maplibregl.GeolocateControl;\r\n private _geolocation: Geolocation;\r\n private _highlights: Highlights;\r\n\r\n /**\r\n * Events\r\n */\r\n /** Exposes map's onClick RM2Event object, that can be subscribed for custom eventhandling */\r\n public get onClick() { return this._onClick.expose(); }\r\n private readonly _onClick = new RM2Event();\r\n\r\n /** Exposes map's onClick RM2Event object, that can be subscribed for custom eventhandling */\r\n public get onLongClick() { return this._onLongClick.expose(); }\r\n private readonly _onLongClick = new RM2Event();\r\n\r\n /** Exposes map's onDblClick RM2Event object, that can be subscribed for custom eventhandling */\r\n public get onDblClick() { return this._onDblClick.expose(); }\r\n private readonly _onDblClick = new RM2Event();\r\n\r\n /** Exposes map's onMouseMove RM2Event object, that can be subscribed for custom eventhandling */\r\n public get onMouseMove() { return this._onMouseMove.expose(); }\r\n private readonly _onMouseMove = new RM2Event();\r\n\r\n /** Exposes map's onLoad RM2Event object, that can be subscribed for custom eventhandling */\r\n public get onLoad() { return this._onLoad.expose(); }\r\n private readonly _onLoad = new RM2Event();\r\n\r\n /** Exposes map's onStyleLoad RM2Event object, that can be subscribed for custom eventhandling */\r\n public get onStyleLoad() { return this._onStyleLoad.expose(); }\r\n private readonly _onStyleLoad = new RM2Event();\r\n\r\n /** Exposes map's onRestyleLayer RM2Event object, that can be subscribed for custom eventhandling */\r\n public get onRestyleLayer() { return this._onRestyleLayer.expose(); }\r\n private readonly _onRestyleLayer = new RM2Event();\r\n\r\n /** Exposes map's onUserAction RM2Event object. Event fires when user performs interaction with map (touchastart, mousedown, wheel) */\r\n public get onUserAction() { return this._onUserAction.expose(); }\r\n private readonly _onUserAction = new RM2Event();\r\n private readonly _userActionEvents = ['touchstart', 'mousedown', 'wheel'];\r\n\r\n public get onSourceChange() { return this._onSourceChange.expose(); }\r\n private readonly _onSourceChange = new RM2Event();\r\n\r\n /** Exposes map's onViewChange RM2Event object. Event fires when the map's view changes */\r\n public get onViewChange() { return this._onViewChange.expose(); }\r\n private readonly _onViewChange = new RM2Event();\r\n\r\n /** Exposes map's onZoom RM2Event object. Event fires when the map's zoom changes */\r\n public get onZoom() { return this._onZoom.expose(); }\r\n private readonly _onZoom = new RM2Event();\r\n\r\n /** Exposes map's onLayerVisibilityChanged RM2Event object. Event fires when a layer's visibility changes */\r\n public get onGroupVisibilityChanged() { return this._onGroupVisibilityChanged.expose(); }\r\n private readonly _onGroupVisibilityChanged = new RM2Event();\r\n\r\n /** Exposes map's onLayerVisibilityChanged RM2Event object. Event fires when a layer's visibility changes */\r\n public get onLayerVisibilityChanged() { return this._onLayerVisibilityChanged.expose(); }\r\n private readonly _onLayerVisibilityChanged = new RM2Event();\r\n\r\n /** Exposes map's onRouteConstructed R_M2Event object. Event fires when a route has been constructed */\r\n public get onRouteConstructed() { return this._onRouteConstructed.expose(); }\r\n private readonly _onRouteConstructed = new RM2Event();\r\n\r\n /** Exposes map's onPopupOpened R_M2Event object. Event fires when a popup has been opened */\r\n public get onPopupOpened() { return this._onPopupOpened.expose(); }\r\n private readonly _onPopupOpened = new RM2Event();\r\n\r\n /** Exposes map's onPopupClicked R_M2Event object. Event fires when a popup has been clicked */\r\n public get onFeaturePopupClicked() { return this._onFeaturePopupClicked.expose(); }\r\n private readonly _onFeaturePopupClicked = new RM2Event();\r\n\r\n /** Exposes map's onProcessingStatusChanged R_M2Event object. */\r\n public get onProcessingStatusChanged() { return this._onProcessingStatusChanged.expose(); }\r\n private readonly _onProcessingStatusChanged = new RM2Event();\r\n\r\n /** Exposes map's onFeatureAdded RM2Event object. Event fires when a feature is added to the map */\r\n public get onFeaturesAdded() { return this._onFeaturesAdded.expose(); }\r\n private readonly _onFeaturesAdded = new RM2Event();\r\n\r\n /** Exposes map's onFeatureRemoved RM2Event object. Event fires when a feature is removed from the map */\r\n public get onFeaturesRemoved() { return this._onFeaturesRemoved.expose(); }\r\n private readonly _onFeaturesRemoved = new RM2Event();\r\n\r\n /**\r\n * Settings\r\n */\r\n\r\n // public get selectedLayer(): Layer { return this._selectedLayer; }\r\n // public set selectedLayer(layer: Layer) { this._selectedLayer = layer; } // TODO ali pripada layer tej mapi?\r\n // private _selectedLayer: Layer;\r\n\r\n public get id(): string { return this._id; }\r\n private _id: string;\r\n\r\n public get label(): string { return this._label; }\r\n private _label: string;\r\n\r\n public get theme(): MapTheme { return this._theme; }\r\n private _theme: MapTheme = MapTheme.Light;\r\n\r\n public get loaded(): boolean { return this._loaded; }\r\n private _loaded: boolean = false;\r\n\r\n public get popups(): Popup[] { return this._popups.slice(); }\r\n private _popups: Popup[] = [];\r\n private _mobilePopups: HTMLElement[] = []\r\n private _popupMobileMarker: Feature;\r\n\r\n public get projection(): Projection { return this._projection; }\r\n private _projection: Projection = Projection.create('EPSG:4326');\r\n\r\n /**\r\n * Other properties\r\n */\r\n private _controls: { [type: string]: any } = [];\r\n private _services: IService[] = [];\r\n\r\n private _clusterLayers: maplibregl.LayerSpecification[] = [];\r\n private _sources: { [id: string]: FeatureCollection } = {};\r\n private _sourceRequests: { [id: string]: { time: Date, req: XMLHttpRequest } } = {};\r\n\r\n private persistViewKey: string = \"RM2Map.View\";\r\n private persistVisibilityKey: string = \"RM2Map.PersistVisibility\";\r\n private _forceReloadSourceIntervals: NodeJS.Timer[] = [];\r\n\r\n constructor(styleUrl: string, container: string | HTMLElement, options?: RM2MapOptions) {\r\n // HACK: tukaj se registrira EPSG:3912 s polno definicijo, drugače vrže error pri transformacijah\r\n Projection.create('EPSG:3912;+title=y/x:D48/GK +proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=-5000000 +ellps=bessel +towgs84=426.9,142.6,460.1,4.91,4.49,-12.42,17.1 +units=m +no_defs');\r\n Projection.create('EPSG:2170;+title=y/x:D48/GK +proj=tmerc +lat_0=0 +lon_0=15 +k=0.9999 +x_0=500000 +y_0=-5000000 +ellps=bessel +towgs84=426.9,142.6,460.1,4.91,4.49,-12.42,17.1 +units=m +no_defs');\r\n\r\n this._id = options && options.id ? options.id : Guid.create().toString();\r\n\r\n const mbOptions: maplibregl.MapOptions = {\r\n container: container,\r\n style: styleUrl,\r\n renderWorldCopies: false,\r\n // attributionControl: attributionControlData && attributionControlData.enabled !== false\r\n transformRequest: options && options.transformRequest ? options.transformRequest : null\r\n };\r\n\r\n this._mbMap = new maplibregl.Map(mbOptions);\r\n\r\n if (options) {\r\n this._label = options.label;\r\n if (options.theme != undefined)\r\n this._theme = options.theme;\r\n }\r\n\r\n // Error\r\n this._mbMap.on('error', (e: any) => console.error('Mapbox error.', e));\r\n\r\n // Style load\r\n this._mbMap.once('styledata', (e) => {\r\n this._style = this._mbMap.getStyle();\r\n const metadata = this.metadata;\r\n if (metadata) {\r\n // Min/max zoom\r\n this._mbMap.setMinZoom(metadata.minZoom || 5);\r\n this._mbMap.setMaxZoom(metadata.maxZoom || 18);\r\n\r\n // Min/max pitch\r\n this._mbMap.setMinPitch(metadata.minPitch || 0);\r\n this._mbMap.setMaxPitch(metadata.maxPitch || 60);\r\n\r\n // Extent\r\n if (metadata.extent)\r\n this._mbMap.setMaxBounds(new maplibregl.LngLatBounds(metadata.extent[0], metadata.extent[1]));\r\n\r\n // Initial view\r\n let view: RM2ViewData;\r\n if (options && options.view)\r\n view = options.view;\r\n else {\r\n if (metadata.persistView)\r\n view = this.getPersistedView();\r\n }\r\n\r\n if (view == undefined) {\r\n if (metadata.startExtent) {\r\n // get start bounding box\r\n this._mbMap.fitBounds(metadata.startExtent, { animate: false });\r\n }\r\n else {\r\n // set view\r\n view = {\r\n center: metadata.center || [14.8176, 46.12239],\r\n zoom: metadata.zoom || 8,\r\n pitch: metadata.tilt || 0,\r\n bearing: metadata.heading || 0\r\n };\r\n\r\n this._mbMap.jumpTo(view);\r\n }\r\n }\r\n\r\n // Map theme\r\n this.setMapTheme(this._theme);\r\n\r\n // Clustering\r\n for (let srcId in this._style.sources) {\r\n const src = this._style.sources[srcId] as maplibregl.GeoJSONSourceOptions;\r\n if (src && src.cluster === true)\r\n this.getLayers(l => l.source === srcId).forEach(l => this.generateClusterLayers(l));\r\n }\r\n\r\n // 2022-06-02 IA HACK Remove hidden vector/hybrid layers TODO to naj bo pod nekim setting\r\n if (this.metadata.removeHiddenVectorHybridLayers !== false && this._style && this._style.layers) {\r\n for (let i = 0; i < this._style.layers.length; i ++) {\r\n const mglLayer = this._style.layers[i];\r\n if (mglLayer && mglLayer.metadata && (mglLayer.metadata[\"gid\"] === \"vector\" || mglLayer.metadata[\"gid\"] === \"hybrid\" || mglLayer.metadata[\"gid\"] === \"vector.mb-style\" || mglLayer.metadata[\"gid\"] === \"hybrid.mb-style\") && mglLayer.layout && mglLayer.layout.visibility === \"none\") {\r\n if (mglLayer.id) {\r\n this._mbMap.removeLayer(mglLayer.id);\r\n this._style.layers.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.metadata.forceReloadSources) {\r\n for (const id in this.metadata.forceReloadSources) {\r\n const frs = this.metadata.forceReloadSources[id];\r\n if (frs && frs.sourceId && frs.intervalMS !== undefined && frs.intervalMS != null && frs.intervalMS > 0) {\r\n if (frs.sourceId in this._mbMap.style.sourceCaches) {\r\n this._forceReloadSourceIntervals.push(setInterval(() => {\r\n try {\r\n // console.info(`FORCE REFRESH ${frs.sourceId}`);\r\n this._mbMap.style.sourceCaches[frs.sourceId].clearTiles();\r\n this._mbMap.style.sourceCaches[frs.sourceId].update(this._mbMap.transform, this._mbMap.style.terrain);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n }, frs.intervalMS));\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Initial layer visibility\r\n const persisted = this.getPersistedVisibility();\r\n this._style.layers.forEach((mglLayer: maplibregl.LayerSpecification) => {\r\n if (mglLayer.metadata == undefined) {\r\n mglLayer.metadata = {};\r\n }\r\n \r\n const l = new Layer(mglLayer);\r\n const found = persisted.find(x => x.type === 'layer' && x.id === l.id);\r\n if (found) {\r\n const vis = found.visible;\r\n l.metadata.visible = vis;\r\n this._mbMap.setLayoutProperty(l.id, 'visibility', l.metadata.visible ? 'visible' : 'none');\r\n }\r\n else {\r\n if (l.metadata.visible == undefined) {\r\n const vis = l.layout == undefined || l.layout.visibility !== 'none';\r\n l.metadata.visible = vis;\r\n }\r\n else \r\n this._mbMap.setLayoutProperty(l.id, 'visibility', l.metadata.visible ? 'visible' : 'none');\r\n }\r\n });\r\n\r\n for (let i = 0; i < metadata.groups.length; i++) {\r\n const g = metadata.groups[i];\r\n if (g.uiVisible !== false) {\r\n const found = persisted.find(x => x.type === 'group' && x.id === g.id);\r\n if (found) {\r\n metadata.groups[i].visible = found.visible;\r\n (this.style.metadata as any).groups[i].visible = found.visible;\r\n }\r\n\r\n this.refreshSingleGroupVisibility(g);\r\n }\r\n }\r\n\r\n // setTimeout(() => console.log(this._mbMap.getStyle().layers), 1000);\r\n\r\n // if (metadata.groups) {\r\n // metadata.groups.filter((g: LayerGroup) => g.visible == false).forEach((g: LayerGroup) => {\r\n // this._style.layers.filter(l => l.metadata && l.metadata.gid === g.id).forEach(l => {\r\n // if (l.layout && l.layout.visibility !== 'none') {\r\n // this.layerVisibility[l.id] = true;\r\n // this._mbMap.setLayoutProperty(l.id, 'visibility', 'none');\r\n // }\r\n // });\r\n // });\r\n // }\r\n\r\n // Notice\r\n if (metadata.notice) {\r\n let notice = document.createElement(\"div\");\r\n if (metadata.noticeStyle)\r\n notice.setAttribute('style', metadata.noticeStyle);\r\n else\r\n notice.setAttribute('style', \"position: absolute; bottom:0; right:0; background-color: rgba(255, 255, 255, 0.4); font-size: 0.6em; padding: 1px;\");\r\n\r\n const now = new Date();\r\n const yearPlaceholder = '{{year}}';\r\n let text = metadata.notice;\r\n while (text.includes(yearPlaceholder))\r\n text = text.replace(yearPlaceholder, now.getFullYear().toString());\r\n\r\n notice.innerHTML = text;\r\n this._mbMap.getContainer().appendChild(notice);\r\n\r\n // const attributionControlData = this.getControlData(MapControlType.Attribution);\r\n // attributionControl: attributionControlData && attributionControlData.enabled !== false,\r\n }\r\n\r\n // side scroller\r\n if (metadata.enableSideScroller === true) {\r\n const getSideScroller = (position: 'left' | 'right') => {\r\n const scrollerLeft = document.createElement('div');\r\n\r\n scrollerLeft.className = 'd-flex align-items-center justify-content-center d-md-none';\r\n scrollerLeft.style.position = 'absolute';\r\n if (position === 'left')\r\n scrollerLeft.style.left = '0';\r\n else\r\n scrollerLeft.style.right = '0';\r\n\r\n scrollerLeft.style.width = '30px';\r\n scrollerLeft.style.height = '100%';\r\n scrollerLeft.style.backgroundColor = '#FFFFFF88';\r\n\r\n const scrollerLeftIcon = document.createElement('div');\r\n scrollerLeftIcon.className = 'rm2-scroller-icon';\r\n\r\n scrollerLeft.appendChild(scrollerLeftIcon);\r\n return scrollerLeft;\r\n };\r\n\r\n const ctrlsContainer = this._mbMap.getContainer().querySelector('.mapboxgl-control-container');\r\n const container = ctrlsContainer.parentNode;\r\n container.insertBefore(getSideScroller('left'), ctrlsContainer);\r\n container.insertBefore(getSideScroller('right'), ctrlsContainer);\r\n }\r\n\r\n // Gestures\r\n if (metadata.enableRotate === false) {\r\n this._mbMap.dragRotate.disable();\r\n this._mbMap.touchZoomRotate.disableRotation();\r\n this._mbMap.touchPitch.disable();\r\n }\r\n\r\n // Services\r\n let routingServiceOpts: IRoutingServiceOptions;\r\n let routingServiceName: string;\r\n let nominatimServiceOpts: INominatimServiceOptions;\r\n let nominatimServiceName: string;\r\n let localizationServiceOpts: ILocalizationServiceOptions;\r\n let addLocalizationService: boolean = true;\r\n if (metadata.services) {\r\n metadata.services.forEach((service: IService) => {\r\n if (service.type === ServiceType.Routing) {\r\n routingServiceName = service.name;\r\n routingServiceOpts = service.options;\r\n }\r\n else if (service.type === ServiceType.Nominatim) {\r\n nominatimServiceName = service.name;\r\n nominatimServiceOpts = service.options;\r\n }\r\n else if (service.type === ServiceType.Localization) {\r\n localizationServiceOpts = service.options;\r\n addLocalizationService = service.enabled !== false;\r\n }\r\n });\r\n }\r\n\r\n this._services.push(new RoutingService(routingServiceName, routingServiceOpts));\r\n this._services.push(new NominatimService(nominatimServiceName, nominatimServiceOpts));\r\n if (addLocalizationService)\r\n this._services.push(new LocalizationService(this as any, localizationServiceOpts));\r\n }\r\n\r\n this._onStyleLoad.trigger();\r\n });\r\n\r\n // Map load\r\n this._mbMap.on('load', () => {\r\n this._loaded = true;\r\n this.getTarget().addEventListener('contextmenu', e => e.preventDefault());\r\n\r\n this._highlights = new Highlights(this);\r\n this._highlights.featuresAdded.subscribe((fts: Feature[]) => this._onFeaturesAdded.trigger(fts));\r\n this._highlights.featuresRemoved.subscribe((fts: Feature[]) => this._onFeaturesRemoved.trigger(fts));\r\n this._geolocation = new Geolocation(this);\r\n this.addControls();\r\n\r\n this.startRefreshingGeoJSONUrlSources();\r\n\r\n this._onLoad.trigger();\r\n });\r\n\r\n // trenutno ne moreš fetchat podatkov direktno iz source-a (querySourceFeatures vrne samo s trenutnega viewporta), se na novo naredi HTTP request (browser naj bi jih cachiral)\r\n // TODO: fix, da potegne features direktno iz source-a, pri transformacijah bi bilo optimalen nek middleware medtem ko še nalaga podatke za source\r\n this._mbMap.on('sourcedata', async (e: maplibregl.MapSourceDataEvent) => {\r\n if (e.dataType === 'source' && e.source && e.source.type === 'geojson') {\r\n const data = e.source['data'];\r\n if (typeof data === 'string') {\r\n const req = this._sourceRequests[data];\r\n if (req == null || ((new Date().getTime() - req.time.getTime()) > 60 * 1000)) {\r\n if (req && req.req)\r\n req.req.abort();\r\n\r\n try {\r\n const xhr = new XMLHttpRequest();\r\n this._sourceRequests[data] = { time: new Date(), req: xhr };\r\n xhr.timeout = 5000;\r\n xhr.onload = () => {\r\n if (xhr.responseText) {\r\n const fc = FeatureCollection.fromGeoJson(xhr.responseText);\r\n const fcCrs = fc.getCrsCode();\r\n if (fcCrs != undefined && fcCrs.toLowerCase() !== this.projection.crsCode.toLowerCase()) { // transformacije\r\n for (let i = 0; i < fc.features.length; i++)\r\n fc.features[i].geometry = Geometry.transform(fc.features[i].geometry, Projection.create(fcCrs), this.projection);\r\n\r\n this.setSourceData(e.sourceId, fc);\r\n }\r\n\r\n this._sources[e.sourceId] = fc;\r\n // TODO: to se bo prožilo vsakič, ko se naložijo novi tile-i (ko pridejo feature-si v viewport) in je minila od prejšnjega proženja minuta\r\n // fix, da se proži le, ko se source spremeni\r\n this._onSourceChange.trigger(e.sourceId);\r\n }\r\n };\r\n\r\n // xhr.ontimeout = () => rej('Timeout');\r\n // xhr.onerror = () => rej('Error getting location');\r\n // xhr.onabort = () => rej('HTTP request aborted.');\r\n xhr.onloadend = () => this._sourceRequests[data].req = null;\r\n xhr.open('GET', data, true);\r\n xhr.send(null);\r\n }\r\n catch (err) {\r\n delete this._sourceRequests[data];\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.initEvents();\r\n }\r\n\r\n /**\r\n * Methods\r\n */\r\n\r\n /** Sources */\r\n\r\n public getSource(id: string): maplibregl.Source {\r\n return this._mbMap.getSource(id);\r\n }\r\n\r\n public addSource(id: string, source: maplibregl.SourceSpecification) {\r\n this._mbMap.addSource(id, source);\r\n }\r\n\r\n public setSourceData(id: string, data: FeatureCollection) {\r\n const src = this._mbMap.getSource(id) as maplibregl.GeoJSONSource;\r\n if (src) {\r\n const newData = data.toGeoJson();\r\n src.setData(newData);\r\n this._sources[id] = data;\r\n this._onSourceChange.trigger(id);\r\n }\r\n else\r\n throw new Error(`Could not find GeoJSON source '${id}'.`);\r\n }\r\n\r\n /** Layers */\r\n\r\n public addLayer(layer: maplibregl.LayerSpecification | maplibregl.CustomLayerInterface, before?: string) {\r\n this._mbMap.addLayer(layer, before);\r\n }\r\n\r\n /**\r\n * Returns array of layers that meet the criteria in given condition expression.\r\n */\r\n public getLayers(condition: (x: Layer) => boolean = () => true): Layer[] {\r\n return this.getStyle().layers.filter(l => condition(new Layer(l))).map(l => new Layer(l));\r\n }\r\n\r\n /**\r\n * Returns first layer that meets the criteria in given condition expression. If none, returns undefined.\r\n */\r\n public getLayer(condition: string | ((x: Layer) => boolean)): Layer {\r\n let found: maplibregl.LayerSpecification;\r\n if (typeof condition == 'string')\r\n found = this._mbMap.getLayer(condition) as maplibregl.LayerSpecification;\r\n else\r\n found = this.getStyle().layers.find(l => condition(new Layer(l)));\r\n\r\n return found ? new Layer(found) : null;\r\n }\r\n\r\n public getGroups(): LayerGroup[] {\r\n return this.metadata.groups.slice();\r\n }\r\n\r\n public getGroup(id: string): LayerGroup {\r\n const metadata = this.metadata;\r\n if (metadata && metadata.groups) {\r\n const g = metadata.groups.find(x => x.id === id);\r\n if (g) {\r\n return new LayerGroup(g);\r\n }\r\n }\r\n \r\n return null;\r\n }\r\n\r\n public getLayerFeatures(id: string): Feature[] {\r\n const l = this.getLayer(l => l.id === id);\r\n if (typeof l.source === 'string' && l.metadata.includeInIdentify) {\r\n const src = this._sources[l.source];\r\n if (src) {\r\n return src.features;\r\n }\r\n }\r\n\r\n return [];\r\n }\r\n\r\n /**\r\n * Gets the layer's visibility value\r\n */\r\n public getLayerVisibility(id: string): boolean {\r\n const vis = this._mbMap.getLayoutProperty(id, 'visibility');\r\n return vis !== 'none';\r\n }\r\n\r\n // private layerVisibility: { [id: string]: boolean } = {};\r\n /**\r\n * Sets the layer's visibility value\r\n */\r\n public setLayerVisibility(id: string, visible: boolean) {\r\n let layers: maplibregl.LayerSpecification[] = [];\r\n const found = this._mbMap.getLayer(id) as maplibregl.LayerSpecification;\r\n if (found)\r\n layers.push(found);\r\n else {\r\n const ls = this._mbMap.getStyle().layers.filter(l => l.id.endsWith(id));\r\n // if (ls.length == 1)\r\n layers = ls;\r\n // // else error multiple matches\r\n }\r\n\r\n layers.forEach(layer => {\r\n const l = new Layer(layer);\r\n if (l.metadata == undefined)\r\n l.metadata = {};\r\n\r\n l.metadata.visible = visible;\r\n if (visible && l.metadata.gid) {\r\n // refresh group visibility\r\n const g = l.metadata.gid;\r\n this.setGroupVisibility(g, true);\r\n }\r\n else {\r\n this.setMbLayerVisibility(l.id, visible);\r\n this._onLayerVisibilityChanged.trigger(l);\r\n }\r\n });\r\n }\r\n\r\n public setLayoutProperty(layer: string, name: string, value: any) {\r\n this._mbMap.setLayoutProperty(layer, name, value);\r\n }\r\n\r\n public setPaintProperty(layer: string, name: string, value: any, options?: maplibregl.StyleSetterOptions) {\r\n this._mbMap.setPaintProperty(layer, name, value, options);\r\n }\r\n\r\n public getPaintProperty(layer: string, name: string) {\r\n return this._mbMap.getPaintProperty(layer, name);\r\n }\r\n\r\n public setFilter(layer: string, filter?: maplibregl.FilterSpecification) {\r\n this._mbMap.setFilter(layer, filter);\r\n }\r\n\r\n public getFilter(layer: string): void | maplibregl.FilterSpecification {\r\n return this._mbMap.getFilter(layer);\r\n }\r\n\r\n public getGroupVisibility(id: string): boolean {\r\n const g = this.getGroup(id);\r\n if (g.visible === false)\r\n return false;\r\n\r\n const parent = g.getParent();\r\n if (parent == undefined)\r\n return g.visible === true;\r\n return this.getGroupVisibility(parent.id);\r\n }\r\n\r\n public setGroupVisibility(id: string, visible: boolean) {\r\n const metadata = this.metadata;\r\n const g = metadata.findGroup(id);\r\n if (g != null) {\r\n if (g.visible !== visible) {\r\n g.visible = visible;\r\n if (g.visible === true) { // show parents if not visible\r\n let root: LayerGroup = null;\r\n const updateUpwards = (group: LayerGroup) => {\r\n group.visible = true;\r\n root = group;\r\n const parent = group.getParent();\r\n if (parent)\r\n updateUpwards(parent);\r\n };\r\n\r\n updateUpwards(g);\r\n this._style.metadata = metadata;\r\n this.refreshSingleGroupVisibility(root);\r\n }\r\n else if (g.visible === false) // hide children\r\n {\r\n this._style.metadata = metadata;\r\n this.refreshSingleGroupVisibility(g);\r\n }\r\n\r\n this._onGroupVisibilityChanged.trigger(new LayerGroup(g, g.getParent()));\r\n }\r\n else\r\n this.refreshSingleGroupVisibility(g);\r\n }\r\n else\r\n throw new Error(`Cannot find group with ID '${id}'.`);\r\n }\r\n\r\n /** Transformations */\r\n\r\n /**\r\n * Returns ordinate array transformed from given projection to map's projection.\r\n */\r\n public transformToProjection(coordinate: CoordinateLike, fromProjection: Projection): CoordinateLike {\r\n return Projection.transform(coordinate, fromProjection, this._projection) as CoordinateLike;\r\n }\r\n\r\n /**\r\n * Returns ordinates array transformed from given projection to map's projection.\r\n */\r\n public transformToProjectionMulti(coordinate: CoordinateLike[], fromProjection: Projection): CoordinateLike[] {\r\n const newCoordinates: CoordinateLike[] = [];\r\n coordinate.forEach(coord => newCoordinates.push(this.transformToProjection(coord, fromProjection)));\r\n return newCoordinates;\r\n }\r\n\r\n /**\r\n * Transforms a GeoJSON to projection\r\n */\r\n public transformGeometryToProjection(geometry: Geometry, fromProjection: Projection) {\r\n if (this._projection.crsCode !== fromProjection.crsCode)\r\n return Geometry.transform(geometry, fromProjection, this._projection);\r\n\r\n return geometry;\r\n }\r\n\r\n /** Camera */\r\n\r\n public pan(coordinate: Coordinate | CoordinateLike, options?: IPanOptions): void {\r\n const defaultPanOptions = new PanOptions();\r\n let location: CoordinateLike = Array.isArray(coordinate) ? coordinate : [coordinate.x, coordinate.y];\r\n if (options && options.projection && options.projection.crsCode !== this._projection.crsCode)\r\n location = this.transformToProjection(Array.isArray(coordinate) ? coordinate : Coordinate.toOrdinates(coordinate), options.projection);\r\n\r\n const camOptions: maplibregl.FlyToOptions = {\r\n center: new maplibregl.LngLat(location[0], location[1]),\r\n zoom: options && options.zoom ? options.zoom : this._mbMap.getZoom(),\r\n animate: options && options.animate ? options.animate : defaultPanOptions.animate !== false,\r\n duration: options && options.animate !== false ? (options.duration || defaultPanOptions.duration) : 0,\r\n bearing: options && options.bearing ? options.bearing : this._mbMap.getBearing(),\r\n pitch: options && options.pitch ? options.pitch : this._mbMap.getPitch()\r\n };\r\n\r\n if (options && (options.relCenterX || options.relCenterY)) {\r\n const size = this.getSize();\r\n const xOffset = ((options.relCenterX ? options.relCenterX : 0.5) - 0.5) * size[0];\r\n const yOffset = ((options.relCenterY ? options.relCenterY : 0.5) - 0.5) * size[0];\r\n camOptions.offset = [xOffset, yOffset];\r\n }\r\n\r\n this._mbMap.easeTo(camOptions);\r\n }\r\n\r\n public tilt(degrees: number, options?: ICameraChangeOptions): void {\r\n this._mbMap.setPitch(degrees);\r\n }\r\n\r\n public setCenter(center: Coordinate | CoordinateLike, projection?: Projection) {\r\n this._mbMap.setCenter(Array.isArray(center) ? center : new maplibregl.LngLat(center.x, center.y));\r\n }\r\n\r\n public fit(bounds: Coordinate[] | CoordinateLike[], options?: IFitOptions) {\r\n try {\r\n let boundsArray: CoordinateLike[] = [];\r\n if (Array.isArray(bounds) && Array.isArray(bounds[0]))\r\n boundsArray = (bounds as CoordinateLike[]).slice();\r\n else\r\n boundsArray = (bounds as Coordinate[]).map(coord => Coordinate.toOrdinates(coord as Coordinate));\r\n\r\n if (options && options.projection)\r\n boundsArray = this.transformToProjectionMulti(boundsArray, options.projection);\r\n\r\n const coordinates = boundsArray.map(coord => new maplibregl.LngLat(coord[0], coord[1]));\r\n if (coordinates.length > 1) {\r\n const b = coordinates.reduce(function (bounds, coord) {\r\n return bounds.extend(coord);\r\n }, new maplibregl.LngLatBounds(coordinates[0], coordinates[0]));\r\n\r\n const opts: maplibregl.FitBoundsOptions = new FitOptions({\r\n padding: options && options.padding ? options.padding : null,\r\n animate: options && options.animate !== false,\r\n duration: options && options.animate !== false ? (options && options.duration ? options.duration : null) : 0,\r\n pitch: options && options.pitch ? options.pitch : null,\r\n bearing: options && options.bearing ? options.bearing : null\r\n });\r\n\r\n this._mbMap.fitBounds(b, opts);\r\n } else {\r\n console.warn('Cannot fit to the specified bounding box:');\r\n console.warn(coordinates);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n public rotate(heading: number, options?: ICameraChangeOptions) {\r\n const defaultCameraChangeOptions = new CameraChangeOptions();\r\n this._mbMap.rotateTo(heading, {\r\n animate: options && options.animate ? options.animate : defaultCameraChangeOptions.animate,\r\n duration: options && options.duration ? options.duration : defaultCameraChangeOptions.duration\r\n });\r\n }\r\n\r\n public zoom(zoom: number, options?: ICameraChangeOptions) {\r\n options = new CameraChangeOptions(options);\r\n this._mbMap.zoomTo(zoom, {\r\n animate: options.animate,\r\n duration: options.duration\r\n })\r\n }\r\n\r\n public setView(view: RM2ViewData) {\r\n this._mbMap.jumpTo(view);\r\n }\r\n\r\n public getView(): RM2ViewData {\r\n // const ext = this._mbMap.getBounds().toArray();\r\n // const canvas = this._mbMap.getCanvas();\r\n\r\n return {\r\n center: this._mbMap.getCenter().toArray() as CoordinateLike,\r\n zoom: this._mbMap.getZoom(),\r\n bearing: this._mbMap.getBearing(),\r\n pitch: this._mbMap.getPitch(),\r\n // extent: [ext[0][0], ext[0][1], ext[1][0], ext[1][1]],\r\n // size: [canvas.clientWidth, canvas.clientHeight],\r\n // resolution: window.devicePixelRatio * 96\r\n };\r\n }\r\n\r\n public fitCameraToFeatures(ftColl: FeatureCollection, options?: ICameraChangeOptions): void {\r\n if (ftColl.features.length > 0) {\r\n const geometries = ftColl.features.map((x: Feature) => x.geometry);\r\n // TODO: brez transformacij med projekcijami, če ni v options\r\n let projection = options && options.projection ? options.projection : this._projection;\r\n const crsCode = ftColl.getCrsCode();\r\n if (crsCode)\r\n projection = Projection.create(crsCode);\r\n\r\n if (geometries.length === 1 && geometries[0].type.toLowerCase() === 'point') {\r\n const pan = options as IPanOptions;\r\n const opts: IPanOptions = {};\r\n for (let panProp in pan)\r\n opts[panProp] = pan[panProp];\r\n\r\n opts.projection = projection;\r\n this.pan(geometries[0].getCoordinate(), new PanOptions(opts));\r\n }\r\n else {\r\n const opts = new FitOptions(options);\r\n opts.projection = projection;\r\n let coords: Coordinate[] = [];\r\n geometries.forEach(g => coords = coords.concat(g.getCoordinates())); // todo: neka getExtent funkcija iz knjižnice\r\n this.fit(coords, opts);\r\n }\r\n }\r\n }\r\n\r\n public fitCameraToCurrentRoute(options?: IFitOptions) {\r\n if (this._highlights && this._highlights.route)\r\n this.fitCameraToFeatures(this._highlights.route);\r\n }\r\n\r\n /** Highlights */\r\n\r\n public drawMarker(geometry: Geometry, options?: IHighlightOptions) {\r\n if (this._highlights)\r\n this._highlights.showMarker(geometry, options);\r\n }\r\n\r\n public clearMarkers() {\r\n if (this._highlights)\r\n this._highlights.clearMarkers();\r\n }\r\n\r\n public drawPolygon(coords: Geometry, options?: IPolygonOptions) {\r\n if (this._highlights)\r\n this._highlights.showPolygon(coords, options);\r\n }\r\n\r\n public clearPolygons() {\r\n if (this._highlights)\r\n this._highlights.clearPolygons();\r\n }\r\n\r\n public drawLine(coords: Geometry, options?: ILineOptions) {\r\n if (this._highlights)\r\n this._highlights.showLine(coords, options);\r\n }\r\n\r\n public clearLines() {\r\n if (this._highlights)\r\n this._highlights.clearLines();\r\n }\r\n\r\n public drawCircle(coords: Geometry, options?: ICircleOptions) {\r\n if (this._highlights)\r\n this._highlights.showCircle(coords, options);\r\n }\r\n\r\n public clearCircles() {\r\n if (this._highlights)\r\n this._highlights.clearCircles();\r\n }\r\n\r\n public drawRoutes(routes: Route[], options?: IRouteHighlightOptions) {\r\n if (this._highlights) {\r\n const src = this.getSource(Map.routeSourceName);\r\n if (src == null)\r\n throw new Error(`No source '${Map.routeSourceName}' found for displaying route.`);\r\n\r\n this._highlights.showRoutes(routes, options);\r\n }\r\n }\r\n\r\n public drawRoute(route: Route, options?: IRouteHighlightOptions) {\r\n if (options == undefined) {\r\n const ctrl = this.getControl(MapControlType.MapPicker);\r\n if (ctrl)\r\n options = ctrl._options;\r\n }\r\n\r\n if (this._highlights) {\r\n const src = this.getSource(Map.routeSourceName);\r\n if (src == null)\r\n throw new Error(`No source '${Map.routeSourceName}' found for displaying route.`);\r\n\r\n this._highlights.showRoute(route, options);\r\n }\r\n\r\n const mapPicker = this.getControl(MapControlType.MapPicker) as MapPickerControl;\r\n if (mapPicker)\r\n mapPicker.inject(route);\r\n }\r\n\r\n public clearRoute(clearMapPicker: boolean = false) {\r\n if (this._highlights)\r\n this._highlights.clearRoute();\r\n\r\n if (clearMapPicker !== false) {\r\n const mapPicker = this.getControl(MapControlType.MapPicker) as MapPickerControl;\r\n if (mapPicker)\r\n mapPicker.clear();\r\n }\r\n }\r\n\r\n public drawRouteLegacy(route: RouteLegacy, options?: IRouteHighlightOptions) {\r\n if (options == undefined) {\r\n const ctrl = this.getControl(MapControlType.MapPicker);\r\n if (ctrl)\r\n options = ctrl._options;\r\n }\r\n\r\n if (this._highlights) {\r\n const src = this.getSource(Map.routeSourceName);\r\n if (src == null)\r\n throw new Error(`No source '${Map.routeSourceName}' found for displaying route.`);\r\n\r\n this._highlights.showRouteLegacy(route, options);\r\n }\r\n }\r\n\r\n public addFeature(ft: Feature, options?: IFeatureHighlightOptions): Feature {\r\n if (this._highlights)\r\n return this._highlights.showFeature(ft, options);\r\n return null;\r\n }\r\n\r\n public addFeatures(fts: Feature[] | FeatureCollection, options?: IFeatureHighlightOptions): FeatureCollection {\r\n if (this._highlights)\r\n return this._highlights.showFeatures(fts, options);\r\n return null;\r\n }\r\n\r\n public removeFeature(id: string) {\r\n if (this._highlights)\r\n this._highlights.clearFeature(id);\r\n }\r\n\r\n public removeFeatures(ids: string[]) {\r\n this.clearFeatures(ids);\r\n }\r\n\r\n public setFeatureValue(ids: string | string[], key: string, value: any) {\r\n if (this._highlights)\r\n this._highlights.setFeatureValue(ids, key, value);\r\n }\r\n\r\n public clearFeatures(ids?: string[]) {\r\n if (this._highlights)\r\n this._highlights.clearFeatures(ids);\r\n }\r\n\r\n public getAllFeatures(): FeatureCollection {\r\n if (this._highlights)\r\n return this._highlights.getAllFeatures();\r\n return new FeatureCollection();\r\n }\r\n\r\n public clearAllHighlights() {\r\n if (this._highlights)\r\n this._highlights.clearAll();\r\n }\r\n\r\n /** Geolocation */\r\n\r\n public showGeolocation(position: RM2GeolocationPosition, options: IGeolocationOptions) {\r\n if (this._geolocation)\r\n this._geolocation.showGeolocation(position, options);\r\n }\r\n\r\n public clearGeolocation() {\r\n if (this._geolocation)\r\n this._geolocation.clearGeolocation();\r\n }\r\n\r\n /** Popups */\r\n\r\n private sortPopupClickListeners(content: HTMLElement, contentMobile: HTMLElement) {\r\n const clicks: HTMLElement[] = [];\r\n const loop = (el: HTMLElement) => {\r\n if (el.onclick)\r\n clicks.push(el);\r\n for (let i = 0; i < el.children.length; i++)\r\n loop(el.children.item(i) as HTMLElement);\r\n };\r\n loop(content);\r\n\r\n for (let i = 0; i < clicks.length; i++) {\r\n // const mobileEl: HTMLElement = contentMobile.querySelector(`#${clicks[i].getAttribute('id')}`);\r\n const mobileEl: HTMLElement = contentMobile.querySelector(`#${clicks[i].getAttribute('data-id')}`);\r\n if (mobileEl)\r\n mobileEl.onclick = clicks[i].onclick;\r\n }\r\n\r\n const popupClose = contentMobile.querySelectorAll('.rm2-popup-close');\r\n for (let i = 0; i < popupClose.length; i++) {\r\n const item = popupClose.item(i) as HTMLDivElement;\r\n item.onclick = () => this.closeAllPopups();\r\n }\r\n }\r\n\r\n public openPopup(coordinate: Coordinate | CoordinateLike, content: HTMLElement, options?: IPopupOptions, metadata?: any): Popup {\r\n const contentMobile = document.createElement('div');\r\n contentMobile.innerHTML = content.innerHTML;\r\n this.sortPopupClickListeners(content, contentMobile);\r\n\r\n return this.getPopup(coordinate, content, contentMobile, [], options, metadata);\r\n }\r\n\r\n public openPopupForFeature(feature: Feature, layer: Layer, content: HTMLElement, options?: ICarouselPopupOptions, metadata?: any): Popup {\r\n const contentMobile = document.createElement('div');\r\n contentMobile.innerHTML = content.innerHTML;\r\n this.sortPopupClickListeners(content, contentMobile);\r\n\r\n const fc = new FeatureCollection();\r\n fc.features.push(feature);\r\n return this.getPopup(feature.geometry.getCoordinate(), content, contentMobile, [{ el: content, ft: feature }, { el: contentMobile, ft: feature }], options, fc, { layer: layer });\r\n }\r\n\r\n public openPopupForFeatures(coordinate: Coordinate | CoordinateLike, features: Feature[] | FeatureCollection, template: (ft: Feature, i: number) => HTMLElement, options?: ICarouselPopupOptions, metadata?: any): Popup {\r\n if (Array.isArray(features))\r\n features = new FeatureCollection(features);\r\n\r\n let clickDetectors: { el: HTMLElement, ft: Feature }[] = [];\r\n options = new CarouselPopupOptions(options);\r\n const content = document.createElement('div');\r\n const contentMobile = document.createElement('div');\r\n if (features.features.length > 1) {\r\n const transformedFts = features.features.map((ft, i) => {\r\n return {\r\n index: i,\r\n ft: ft\r\n };\r\n });\r\n\r\n const copyFtsToDiv = (id: number, c: HTMLDivElement) => {\r\n c.innerHTML = Mustache.render(PopupCarouselTemplate(id), { features: transformedFts });\r\n const inner = c.getElementsByClassName('carousel-inner')[0];\r\n for (let i = 0; i < inner.children.length; i++) {\r\n const ft = transformedFts[i];\r\n const rendered = template(ft.ft, ft.index);\r\n clickDetectors.push({ el: rendered, ft: ft.ft });\r\n inner.children[i].appendChild(rendered);\r\n }\r\n };\r\n\r\n copyFtsToDiv(0, content);\r\n copyFtsToDiv(1, contentMobile);\r\n }\r\n else {\r\n const ft = features.first;\r\n const render1 = template(ft, 0);\r\n content.appendChild(render1);\r\n const render2 = template(ft, 0);\r\n contentMobile.appendChild(render2);\r\n\r\n clickDetectors = [{ el: render1, ft: ft }, { el: render2, ft: ft }];\r\n }\r\n\r\n return this.getPopup(coordinate, content, contentMobile, clickDetectors, options, features, metadata);\r\n }\r\n\r\n public closeAllPopups() {\r\n this._popups.forEach(popup => popup.close());\r\n }\r\n\r\n /** Utility */\r\n\r\n public refreshSourceWithUrl(url: string) {\r\n const getSrcsWithUrl = (url: string): string[] => {\r\n const sources = this._mbMap.getStyle().sources;\r\n const filtered: string[] = [];\r\n for (let s in sources) {\r\n const src = sources[s];\r\n if (src.type === 'geojson') {\r\n const u = src.data;\r\n if (typeof u === 'string' && u.startsWith(url))\r\n filtered.push(s);\r\n }\r\n }\r\n\r\n return filtered;\r\n };\r\n\r\n const srcs = getSrcsWithUrl(url);\r\n const style = this._mbMap.getStyle();\r\n srcs.forEach(src => this.refreshSource(src));\r\n }\r\n\r\n public refreshSource(id: string) {\r\n // HACK\r\n const source = this._mbMap.getSource(id);\r\n if (source.type === 'geojson') {\r\n const s = source as maplibregl.GeoJSONSource;\r\n const previous = s['_data'];\r\n if (typeof previous === 'string') {\r\n s.setData(null);\r\n delete this._sourceRequests[previous];\r\n s.setData(previous);\r\n }\r\n }\r\n else if (source.type === 'vector') {\r\n // maplibregl.clearStorage((err) => console.log(err));\r\n if (this._loaded === true) {\r\n const src = this._mbMap.getSource(id) as maplibregl.VectorTileSource;\r\n if (src) {\r\n const mbLayers = this.getLayers();\r\n let layers: { before: string, layer: maplibregl.LayerSpecification }[] = [];\r\n for (let i = 0; i < mbLayers.length; i++) {\r\n const l = mbLayers[i];\r\n if (l.source === id) {\r\n layers.push({\r\n before: i < (mbLayers.length - 1) ? mbLayers[i + 1].id : undefined,\r\n layer: l as maplibregl.LayerSpecification\r\n })\r\n this._mbMap.removeLayer(l.id);\r\n }\r\n }\r\n\r\n this._mbMap.removeSource(id);\r\n let newSrc: any = { type: src.type };\r\n if (src.type === 'vector') {\r\n newSrc.tiles = src.tiles;\r\n newSrc.maxzoom = src.maxzoom;\r\n newSrc.minzoom = src.minzoom;\r\n }\r\n this._mbMap.addSource(id, newSrc);\r\n\r\n layers = layers.reverse();\r\n for (let i = 0; i < layers.length; i++) {\r\n const l = layers[i];\r\n this.addLayer(l.layer, l.before);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Should be called to redraw map after map's target DOM element resizes.\r\n */\r\n public updateSize() {\r\n this._mbMap.resize();\r\n }\r\n\r\n public getSize(): number[] {\r\n const canvas = this._mbMap.getCanvas();\r\n return [canvas.clientWidth, canvas.clientHeight];\r\n }\r\n\r\n /** Gets the instance of a map control */\r\n public getControl(type: MapControlType): any {\r\n return this._controls[type];\r\n }\r\n\r\n /** Gets the instance of a map service */\r\n public getService(type: ServiceType): IService {\r\n return this._services.find(service => service.type === type);\r\n }\r\n\r\n public getTarget(): HTMLElement {\r\n return this._mbMap.getCanvasContainer().parentElement;\r\n }\r\n\r\n public setTarget(target: HTMLElement) {\r\n if (this._mbMap.getContainer() != target)\r\n throw new Error('Setting new target is not supported with Mapbox!');\r\n }\r\n\r\n public isStyleLoaded(): boolean {\r\n return this._mbMap.isStyleLoaded() === true;\r\n }\r\n\r\n public getStyle(): maplibregl.StyleSpecification {\r\n return this._mbMap.getStyle();\r\n }\r\n\r\n public checkIfCssLoaded(printWarning?: boolean): boolean {\r\n const loadedCss = document.styleSheets;\r\n const searchFor = '/mapbox-gl.css';\r\n let loaded: boolean = false;\r\n for (let i = 0; i < loadedCss.length; i++) {\r\n const css = loadedCss.item(i);\r\n if (css && css.href && css.href.endsWith(searchFor)) {\r\n loaded = true;\r\n break;\r\n }\r\n }\r\n\r\n if (loaded == false && printWarning == true)\r\n console.warn(`Mapbox styleshets not found. Searching for '${searchFor}'.`);\r\n\r\n return loaded;\r\n }\r\n\r\n public query(query: string, options?: QueryOptions): Promise {\r\n return new Promise(async (res, rej) => {\r\n const service = this.getService(ServiceType.Nominatim) as NominatimService;\r\n const nominatimRes = await service.query(query, options);\r\n\r\n // HACK za TIC\r\n const response = [nominatimRes];\r\n this.style.layers.forEach(layer => {\r\n const l = new Layer(layer);\r\n if (l.metadata.uiVisible && l.source != null) {\r\n const fc = this.getLayerFeatures(l.id);\r\n const fts = fc.filter(ft => {\r\n const title = ft.getField('title') || ft.getField('Title');\r\n const description = ft.getField('description') || ft.getField('Description');\r\n\r\n if ((title && typeof title === \"string\" && title.toLowerCase().includes(query.toLowerCase())) ||\r\n (description && typeof description === \"string\" && description.toLowerCase().includes(query.toLowerCase())))\r\n return true;\r\n return false;\r\n });\r\n\r\n response.push({\r\n service: l.metadata.gid || l.metadata.title || l.id,\r\n status: 'OK',\r\n items: fts.map(ft => {\r\n const geom = ft.geometry;\r\n let loc = undefined;\r\n if (geom)\r\n loc = geom.getCentroid().getCoordinate();\r\n\r\n return {\r\n title: ft.getField('title') || ft.getField('Title') || ft.getField('description') || ft.getField('Description'),\r\n type: 'location', // ??\r\n dateTime: new Date(),\r\n projection: this._projection,\r\n location: loc ? [loc.x, loc.y] : undefined,\r\n envelope: geom ? geom.getEnvelopeInternal() : undefined,\r\n geometry: geom\r\n };\r\n })\r\n });\r\n }\r\n });\r\n\r\n res(response);\r\n });\r\n }\r\n\r\n public route(locations: CoordinateLike[], options?: IRouteOptions): Promise> {\r\n const service = this.getService(ServiceType.Routing) as RoutingService;\r\n return service.route(locations, options);\r\n }\r\n\r\n public locate(coordinate: Coordinate, options?: ReverseGeocodingOptions): Promise {\r\n const service = this.getService(ServiceType.Nominatim) as NominatimService;\r\n return service.reverse([coordinate.x, coordinate.y], options);\r\n }\r\n\r\n public setMapTheme(theme: MapTheme) {\r\n this._theme = theme;\r\n this._style.layers.filter(l => l.id.toLowerCase().endsWith(this._theme)).forEach(newThemeLayer => {\r\n this._mbMap.setLayoutProperty(newThemeLayer.id, 'visibility', 'visible');\r\n\r\n var layerId = newThemeLayer.id.substring(0, newThemeLayer.id.length - this._theme.length - 1);\r\n this._style.layers.filter(l => l.id.startsWith(layerId) && l.id == newThemeLayer.id == false).forEach(otherLayer => this._mbMap.setLayoutProperty(otherLayer.id, 'visibility', 'none'));\r\n });\r\n }\r\n\r\n public setLanguage(lang: string) {\r\n const service = this.getService(ServiceType.Localization) as LocalizationService;\r\n service.setLanguage(lang);\r\n }\r\n\r\n public getBounds() {\r\n return this._mbMap.getBounds();\r\n }\r\n\r\n public compareWith(map: Map, options?: RM2MapCompareState) {\r\n const compareContainer = this._mbMap.getContainer().parentElement;\r\n this._mbMapCompare = new maplibreglCompare(this._mbMap, map._mbMap, compareContainer);\r\n this._mbMapCompareMap = map;\r\n if (options) {\r\n if (options.sliderPosition != null)\r\n this._mbMapCompare.setSlider(options.sliderPosition);\r\n }\r\n }\r\n\r\n public getCurrentCompareMap(): Map {\r\n return this._mbMapCompareMap;\r\n }\r\n\r\n public getCurrentCompareState(): RM2MapCompareState {\r\n if (this._mbMapCompare) {\r\n return {\r\n sliderPosition: this._mbMapCompare.currentPosition\r\n };\r\n }\r\n return null;\r\n }\r\n\r\n public stopCompare() {\r\n if (this._mbMapCompare)\r\n this._mbMapCompare.remove();\r\n }\r\n\r\n public dispose() {\r\n if (this._forceReloadSourceIntervals) {\r\n for (let i = 0; i < this._forceReloadSourceIntervals.length; i ++) {\r\n clearInterval(this._forceReloadSourceIntervals[i]);\r\n }\r\n this._forceReloadSourceIntervals = [];\r\n }\r\n this._mbMap.remove();\r\n this._mbMap = undefined;\r\n }\r\n\r\n public project(coord: Coordinate | CoordinateLike): [number, number] {\r\n const arr = coord instanceof Coordinate ? [coord.x, coord.y] : coord;\r\n const p = this._mbMap.project({ lng: arr[0], lat: arr[1] });\r\n return [p.x, p.y];\r\n }\r\n\r\n public unproject(point: [number, number]): Coordinate {\r\n const unp = this._mbMap.unproject(point);\r\n return new Coordinate(unp.lng, unp.lat);\r\n }\r\n\r\n public persistVisibility(visibilities: PersistedVisibility[]) {\r\n const persisted = this.getPersistedVisibility();\r\n for (let i = 0; i < visibilities.length; i++) {\r\n const vis = visibilities[i];\r\n const found = persisted.findIndex(x => x.type === vis.type && x.id === vis.id);\r\n if (found !== -1)\r\n persisted[found].visible = vis.visible;\r\n else {\r\n persisted.push({\r\n type: vis.type,\r\n id: vis.id,\r\n visible: vis.visible\r\n });\r\n }\r\n }\r\n\r\n if (localStorage) {\r\n localStorage.setItem(this.persistVisibilityKey, JSON.stringify(persisted));\r\n }\r\n }\r\n\r\n public getPersistedVisibility(): PersistedVisibility[] {\r\n if (localStorage) {\r\n const str = localStorage.getItem(this.persistVisibilityKey);\r\n if (str) {\r\n const array: PersistedVisibility[] = JSON.parse(str);\r\n return array;\r\n }\r\n }\r\n\r\n return [];\r\n }\r\n\r\n /*\r\n END OF INTERFACE IMPLEMENTATION\r\n */\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n public addControl(data: ControlData, instance: maplibregl.IControl | maplibregl.IControl) {\r\n this._controls[data.type] = instance;\r\n this._mbMap.addControl(instance, data.position);\r\n }\r\n\r\n private mobileMarkerId = '47b1d48c-91b4-446f-8bd3-be1ad5b28d30';\r\n private showMobileMarker(coordinate: Coordinate | CoordinateLike) {\r\n this.removeMobileMarker();\r\n this._popupMobileMarker = this.addFeature(new Feature({\r\n id: this.mobileMarkerId,\r\n icon: 'marker_E2001A-32',\r\n offset: [0, -16],\r\n includeInIdentify: false\r\n }, Point.fromCoordinate(coordinate)), { pan: false });\r\n }\r\n\r\n private removeMobileMarker() {\r\n if (this._popupMobileMarker)\r\n this.removeFeature(this.mobileMarkerId);\r\n }\r\n\r\n private getPopup(coordinate: Coordinate | CoordinateLike, content: HTMLElement, contentMobile: HTMLElement, clickDetectors: { el: HTMLElement, ft: Feature }[], options?: IPopupOptions, features?: FeatureCollection, metadata?: any): Popup {\r\n options = new PopupOptions(options);\r\n\r\n const popup = new Popup(this, content, options, features, metadata);\r\n popup.mbPopup.setLngLat(Array.isArray(coordinate) ? coordinate : Coordinate.toOrdinates(coordinate));\r\n setTimeout(() => {\r\n // zamik, da se ne zapre takoj zaradi klika\r\n popup.mbPopup.addTo(this._mbMap);\r\n\r\n popup.mbPopup['_content'].parentElement.classList.add('d-none', 'd-sm-flex');\r\n clickDetectors.forEach(d => d.el.onclick = () => this._onFeaturePopupClicked.trigger(d.ft));\r\n\r\n // scroll page if map not in viewport\r\n const canvas = this._mbMap.getCanvas();\r\n const rect = canvas.getBoundingClientRect();\r\n const isInViewport =\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n rect.right <= (window.innerWidth || document.documentElement.clientWidth);\r\n if (isInViewport === false)\r\n canvas.scrollIntoView({ block: 'center', inline: 'center' });\r\n\r\n // zamik, da se najprej naloži HTML popupa\r\n if (options && options.panOnOpen)\r\n popup.panTo(options.cameraOptions);\r\n\r\n if (options.showMarkerOnMobile === true)\r\n this.showMobileMarker(coordinate);\r\n\r\n if (options.showMarkerOnMobile) {\r\n popup.onSlide.subscribe(e => {\r\n if (popup.selectedFeature && popup.selectedFeature.geometry)\r\n this.showMobileMarker(popup.selectedFeature.geometry.getCoordinate());\r\n });\r\n }\r\n\r\n this._onPopupOpened.trigger(popup);\r\n }, 10);\r\n\r\n // add mobile popup\r\n const mobilePopup = document.createElement('div');\r\n mobilePopup.className = 'rm2-popup-mobile mx-2 mb-2 bg-white d-sm-none';\r\n mobilePopup.appendChild(contentMobile);\r\n this.getTarget().appendChild(mobilePopup);\r\n\r\n this._popups.push(popup);\r\n this._mobilePopups.push(mobilePopup);\r\n\r\n popup.onClose.subscribe(() => {\r\n this.removeMobileMarker();\r\n const i = this._popups.indexOf(popup);\r\n if (i != -1) {\r\n this._popups.splice(i, 1);\r\n\r\n const m = this._mobilePopups.splice(i, 1)[0];\r\n this.getTarget().removeChild(m);\r\n }\r\n // popup.onClose.unsubscribe(); // kje unsubscribe?\r\n });\r\n\r\n return popup;\r\n }\r\n\r\n // private getLayerImages(iconImage: any[]): string[] {\r\n // if (typeof iconImage == 'string')\r\n // return [iconImage];\r\n // else {\r\n // let imagesToLoad = [iconImage[iconImage.length - 1]];\r\n // for (let i = 2; i < iconImage.length; i += 2)\r\n // if (imagesToLoad.indexOf(iconImage[i]) == -1)\r\n // imagesToLoad.push(iconImage[i]);\r\n\r\n // return imagesToLoad;\r\n // }\r\n // }\r\n\r\n private ftsAtPoint(point: { x: number, y: number }): GeoJSON.Feature[] {\r\n if (this.metadata) {\r\n const buffer = this.metadata.hitBuffer;\r\n const opts = { layers: this.getLayers(l => l.metadata && l.metadata.includeInIdentify).map(l => l.id).concat(this._clusterLayers.map(l => l.id)) };\r\n const bbox = [[point.x - buffer, point.y - buffer], [point.x + buffer, point.y + buffer]] as [CoordinateLike, CoordinateLike];\r\n const fts = this._mbMap.queryRenderedFeatures(bbox, opts);\r\n return fts.filter(ft => ft.properties.includeInIdentify !== false);\r\n }\r\n return [];\r\n }\r\n\r\n private clearLongClickTimeout() {\r\n if (this.longClickTimeout)\r\n clearTimeout(this.longClickTimeout);\r\n }\r\n\r\n private longClickCallback = (event) => {\r\n this.movedSinceLastMouseButtonDown = true;\r\n this._onLongClick.trigger(this._handleMapLongClick(event));\r\n };\r\n\r\n private longClickTimeout;\r\n private movedSinceLastMouseButtonDown: boolean;\r\n private initEvents() {\r\n this._mbMap.on('mousedown', (event: any) => {\r\n this.movedSinceLastMouseButtonDown = false;\r\n this._handleUserAction(event);\r\n\r\n this.clearLongClickTimeout();\r\n this.longClickTimeout = setTimeout(() => this.longClickCallback(event), 500);\r\n });\r\n\r\n this._mbMap.on('mouseup', (event: any) => {\r\n this.clearLongClickTimeout();\r\n\r\n if (this.movedSinceLastMouseButtonDown == false && this.loaded) {\r\n const e = this._handleMapClick(event);\r\n if (e)\r\n this._onClick.trigger(e);\r\n }\r\n });\r\n\r\n this._mbMap.on('mousemove', (event: any) => {\r\n this.clearLongClickTimeout();\r\n this._handleMousemove(event);\r\n\r\n if (this.loaded) {\r\n const fts = this.ftsAtPoint(event.point);\r\n if (fts.length > 0)\r\n this._mbMap.getCanvas().style.cursor = 'pointer';\r\n else\r\n this._mbMap.getCanvas().style.cursor = '';\r\n }\r\n });\r\n\r\n this._mbMap.on('touchstart', (event: any) => {\r\n this._handleUserAction(event);\r\n\r\n this.clearLongClickTimeout();\r\n this.longClickTimeout = setTimeout(() => this.longClickCallback(event), 500);\r\n });\r\n\r\n this._mbMap.on('touchend', (event: any) => this.clearLongClickTimeout());\r\n this._mbMap.on('touchcancel', (event: any) => this.clearLongClickTimeout());\r\n this._mbMap.on('touchmove', (event: any) => this.clearLongClickTimeout());\r\n this._mbMap.on('wheel', (event: any) => this._handleUserAction(event));\r\n this._mbMap.on('moveend', (event: any) => this._onViewChange.trigger(this._handleViewChange(event)));\r\n this._mbMap.on('drag', (event: any) => { this.clearLongClickTimeout(); this.movedSinceLastMouseButtonDown = true });\r\n this._mbMap.on('zoom', (event: any) => this._onZoom.trigger(this._mbMap.getZoom()));\r\n this._mbMap.on('rotate', (event: any) => { this.clearLongClickTimeout(); this.movedSinceLastMouseButtonDown = true });\r\n this._mbMap.on('pitch', (event: any) => { this.clearLongClickTimeout(); this.movedSinceLastMouseButtonDown = true });\r\n }\r\n\r\n private _handleMapLongClick = (event: any): MapEventArgs => {\r\n const coords: CoordinateLike = [event['lngLat']['lng'], event['lngLat']['lat']];\r\n return {\r\n map: this,\r\n coordinate: coords,\r\n nativeEvent: event.originalEvent,\r\n features: [],\r\n featureLayers: []\r\n };\r\n };\r\n\r\n private _handleMapClick = (event: any): MapEventArgs => {\r\n const featuresData: { feature: Feature, featureLayer: Layer }[] = [];\r\n const fts = this.ftsAtPoint(event.point);\r\n fts.forEach(f => {\r\n const parsed = this.decodeQueriedProperties(f.properties);\r\n const ftr = new Feature();\r\n const ftrprops = {};\r\n\r\n Object.assign(ftrprops, parsed);\r\n ftr.setProperties(ftrprops);\r\n\r\n const geometry = Geometry.fromGeoJson(f.geometry);\r\n ftr.geometry = geometry;\r\n\r\n if (ftr && (ftr.properties.id == undefined || featuresData.find(d => d.feature.properties.id === ftr.properties.id) == null)) {\r\n featuresData.push({\r\n feature: ftr,\r\n featureLayer: new Layer((f as any).layer)\r\n });\r\n }\r\n });\r\n\r\n const legendControl = this.getControl(MapControlType.Legend) as LegendControl;\r\n if (legendControl)\r\n legendControl.close();\r\n\r\n const coords: CoordinateLike = [event['lngLat']['lng'], event['lngLat']['lat']];\r\n const clickPoint = Point.fromCoordinate(Coordinate.fromOrdinates(coords));\r\n const notClusters = featuresData.filter(x => this._clusterLayers.find(c => c.id === x.featureLayer.id) == undefined);\r\n if (notClusters.length > 0) {\r\n // features inside list\r\n\r\n // sort by distance from click\r\n const coords: CoordinateLike = [event['lngLat']['lng'], event['lngLat']['lat']];\r\n const clickPoint = Point.fromCoordinate(Coordinate.fromOrdinates(coords));\r\n let featuresDataSorted = featuresData.filter(x => notClusters.indexOf(x) != -1).sort((a, b) => a.feature.geometry.distance(clickPoint) - b.feature.geometry.distance(clickPoint));\r\n\r\n // hit tolerance\r\n const metadata = this.metadata;\r\n if (metadata.hitTolerance)\r\n featuresDataSorted = featuresDataSorted.slice(0, metadata.hitTolerance);\r\n\r\n // grupiranje po layerjih\r\n // featuresDataSorted = featuresDataSorted.sort((a, b) => {\r\n // const i1 = this.style.layers.findIndex(l => l.id === a.featureLayer.id);\r\n // const i2 = this.style.layers.findIndex(l => l.id === b.featureLayer.id);\r\n // return i1 - i2;\r\n // });\r\n\r\n return {\r\n map: this,\r\n coordinate: coords,\r\n nativeEvent: event.originalEvent,\r\n features: featuresDataSorted.map(x => x.feature),\r\n featureLayers: featuresDataSorted.map(x => x.featureLayer)\r\n };\r\n }\r\n else {\r\n if (featuresData.length > 0) {\r\n // only clusters\r\n const cluster = featuresData[0];\r\n const props: MapboxClusterProperties = cluster.feature.properties;\r\n const src = (typeof cluster.featureLayer.source == 'string' ? this._mbMap.getSource(cluster.featureLayer.source) : cluster.featureLayer.source) as maplibregl.GeoJSONSource;\r\n if (src) {\r\n src.getClusterExpansionZoom(props.cluster_id, (err, zoom) => {\r\n if (err)\r\n return;\r\n\r\n const coord = cluster.feature.geometry.getCoordinate();\r\n this._mbMap.easeTo({\r\n center: [coord.x, coord.y],\r\n zoom: zoom\r\n });\r\n });\r\n }\r\n\r\n return null;\r\n }\r\n else {\r\n return {\r\n map: this,\r\n coordinate: coords,\r\n nativeEvent: event.originalEvent,\r\n features: [],\r\n featureLayers: []\r\n };\r\n }\r\n }\r\n };\r\n\r\n private _handleViewChange = (event: any): RM2ViewData => {\r\n const metadata = this.metadata;\r\n if (metadata && metadata.persistView !== false)\r\n this.persistView();\r\n\r\n return this.getView();\r\n };\r\n\r\n private _handleUserAction = (event: Event) => {\r\n this._onUserAction.trigger({\r\n map: this,\r\n coordinate: undefined,\r\n nativeEvent: event\r\n });\r\n };\r\n\r\n\r\n private _handleMousemove = (event: any) => {\r\n try {\r\n const featuresData: { feature: Feature, featureLayer: Layer }[] = [];\r\n\r\n const fts = this.ftsAtPoint(event.point);\r\n fts.forEach(f => {\r\n const parsed = this.decodeQueriedProperties(f.properties);\r\n const ftr = new Feature();\r\n const ftrprops = {};\r\n\r\n Object.assign(ftrprops, parsed);\r\n ftr.setProperties(ftrprops);\r\n\r\n const geometry = Geometry.fromGeoJson(f.geometry);\r\n ftr.geometry = geometry;\r\n\r\n if (ftr && (ftr.properties.id == undefined || featuresData.find(d => d.feature.properties.id === ftr.properties.id) == null)) {\r\n featuresData.push({\r\n feature: ftr,\r\n featureLayer: new Layer((f as any).layer)\r\n });\r\n }\r\n\r\n });\r\n\r\n const notClusters = featuresData.filter(x => this._clusterLayers.find(c => c.id === x.featureLayer.id) == undefined);\r\n\r\n // features inside list\r\n\r\n // sort by distance from click\r\n const coords: CoordinateLike = [event['lngLat']['lng'], event['lngLat']['lat']];\r\n const clickPoint = Point.fromCoordinate(Coordinate.fromOrdinates(coords));\r\n let featuresDataSorted = featuresData.filter(x => notClusters.indexOf(x) != -1).sort((a, b) => a.feature.geometry.distance(clickPoint) - b.feature.geometry.distance(clickPoint));\r\n\r\n // hit tolerance\r\n const metadata = this.metadata;\r\n if (metadata && metadata.hitTolerance)\r\n featuresDataSorted = featuresDataSorted.slice(0, metadata.hitTolerance);\r\n\r\n // grupiranje po layerjih\r\n // featuresDataSorted = featuresDataSorted.sort((a, b) => {\r\n // const i1 = this.style.layers.findIndex(l => l.id === a.featureLayer.id);\r\n // const i2 = this.style.layers.findIndex(l => l.id === b.featureLayer.id);\r\n // return i1 - i2;\r\n // });\r\n this._onMouseMove.trigger({\r\n map: this,\r\n coordinate: coords,\r\n nativeEvent: event.originalEvent,\r\n features: featuresDataSorted.map(x => x.feature),\r\n featureLayers: featuresDataSorted.map(x => x.featureLayer)\r\n });\r\n }\r\n catch (ex) {\r\n console.error(ex);\r\n }\r\n }\r\n\r\n private decodeQueriedProperties(properties: any): any {\r\n if (typeof properties == 'number' || typeof properties == 'string')\r\n return properties;\r\n\r\n for (let key in properties) {\r\n const value = properties[key];\r\n if (typeof value == 'string') {\r\n if (value.length > 1 && (value[0] == '{' || value[0] == '[') &&\r\n /^[\\],:{}\\s]*$/.test(value.replace(/\\\\[\"\\\\\\/bfnrtu]/g, '@').\r\n replace(/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g, ']').\r\n replace(/(?:^|:|,)(?:\\s*\\[)+/g, ''))) {\r\n properties[key] = this.decodeQueriedProperties(JSON.parse(value));\r\n }\r\n else\r\n properties[key] = value;\r\n }\r\n else\r\n properties[key] = this.decodeQueriedProperties(value);\r\n }\r\n\r\n return properties;\r\n }\r\n\r\n private addControls() {\r\n // // add & hide geolocator control\r\n // this._geolocatorControl = new maplibregl.GeolocateControl({\r\n // positionOptions: { enableHighAccuracy: true },\r\n // trackUserLocation: true\r\n // });\r\n // this._mbMap.addControl(this._geolocatorControl);\r\n\r\n // const geolocators = document.getElementsByClassName('maplibregl-ctrl-icon maplibregl-ctrl-geolocate');\r\n // for (let i = 0; i < geolocators.length; i++) {\r\n // if (geolocators[i] instanceof HTMLElement)\r\n // (geolocators[i] as HTMLElement).style.display = 'none';\r\n // }\r\n\r\n // const topRight = document.getElementsByClassName('maplibregl-ctrl-top-right');\r\n // if (topRight.length == 1) {\r\n // for (let i = 0; i < topRight.length; i++) {\r\n // if (topRight[i] instanceof HTMLElement)\r\n // (topRight[i] as HTMLElement).style.display = 'none';\r\n // }\r\n // }\r\n\r\n const metadata = this.metadata;\r\n if (metadata && metadata.controls) {\r\n const controls = metadata.controls;\r\n for (let i = 0; i < controls.length; i++) {\r\n const ctrl: ControlData = controls[i];\r\n if (ctrl && ctrl.enabled !== false) {\r\n if (ctrl.type == MapControlType.Legend) {\r\n const addLegendControl = (options?: LegendOptions) => {\r\n this.addControl(ctrl, new LegendControl(this, options));\r\n };\r\n\r\n // if (this._options.legendOptionsPath) {\r\n // const legendSettingsFile = new XMLHttpRequest();\r\n // legendSettingsFile.open('GET', this._options.legendOptionsPath, false);\r\n // legendSettingsFile.onreadystatechange = () => {\r\n // if (legendSettingsFile.readyState === 4) {\r\n // if (legendSettingsFile.status === 200 || legendSettingsFile.status == 0) {\r\n // const legendSettings = JSON.parse(legendSettingsFile.responseText);\r\n // addLegendControl(legendSettings);\r\n // }\r\n // }\r\n // };\r\n\r\n // legendSettingsFile.send(null);\r\n // }\r\n // else\r\n addLegendControl();\r\n }\r\n else if (ctrl.type == MapControlType.FullScreen)\r\n this.addControl(ctrl, new maplibregl.FullscreenControl(null));\r\n else if (ctrl.type == MapControlType.Zoom) {\r\n this.addControl(ctrl,\r\n new maplibregl.NavigationControl({\r\n showCompass: metadata.enableRotate === true,\r\n showZoom: true\r\n })\r\n );\r\n }\r\n // else if (ctrl.type == MapControlType.Basemaps)\r\n // this._mbMap.addControl(new BasemapsControlMb(this), ctrl.position);\r\n else if (ctrl.type == MapControlType.Geolocation) {\r\n }\r\n else if (ctrl.type == MapControlType.Routing)\r\n this.addControl(ctrl, new RoutingControl(this, ctrl.options));\r\n else if (ctrl.type == MapControlType.MapPicker) {\r\n const opts = ctrl.options ? MapPickerControlOptions.fromGeoJson(ctrl.options) : new RouteHighlightOptions();\r\n const mp = new MapPickerControl(this, opts);\r\n mp.onRouteConstructed.subscribe((data) => this._onRouteConstructed.trigger(data));\r\n mp.onProcessingStatusChange.subscribe((data) => this._onProcessingStatusChanged.trigger(data));\r\n this.addControl(ctrl, mp);\r\n }\r\n else if (ctrl.type == MapControlType.PrometSi) {\r\n const ps = new PrometSiControl(this, ctrl.options);\r\n ps.onRouteSaved.subscribe(r => this._onRouteConstructed.trigger(r));\r\n this.addControl(ctrl, ps);\r\n }\r\n else if (ctrl.type == MapControlType.NAP) {\r\n const nap = new NAPControl(this, ctrl.options);\r\n this.addControl(ctrl, nap);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private triggerGeolocator() {\r\n this._geolocatorControl.trigger();\r\n }\r\n\r\n private startRefreshingGeoJSONUrlSources() {\r\n setInterval(() => {\r\n // ŽL: to je nek hack, ker Mapbox ne refresha geojson vsebin avtomatično\r\n const srcs = this._mbMap.getStyle().sources;\r\n for (let key in srcs) {\r\n const src = srcs[key];\r\n if (src.type === 'geojson' && typeof src.data === 'string') {\r\n const gjSrc = this._mbMap.getSource(key) as maplibregl.GeoJSONSource;\r\n const oldUrl = src.data;\r\n gjSrc.setData(null);\r\n gjSrc.setData(oldUrl);\r\n }\r\n }\r\n }, 60000);\r\n }\r\n\r\n private persistView() {\r\n const view = this.getView();\r\n if (view) {\r\n if (localStorage) {\r\n localStorage.setItem(this.persistViewKey, JSON.stringify(view));\r\n }\r\n }\r\n }\r\n\r\n private getPersistedView(): RM2ViewData {\r\n if (localStorage) {\r\n const viewString = localStorage.getItem(this.persistViewKey);\r\n if (!viewString || viewString.length === 0 || !viewString.trim())\r\n return null;\r\n else\r\n return JSON.parse(viewString) as RM2ViewData;\r\n }\r\n else {\r\n console.error('Error trying to load view from local storage.');\r\n return null;\r\n }\r\n }\r\n\r\n // private selectLayers(rootLayer: Layer, condition: (x: Layer) => boolean): Layer[] {\r\n // let layers = new Array();\r\n // if (rootLayer instanceof GroupLayer) {\r\n // if (condition(rootLayer))\r\n // layers.push(rootLayer);\r\n\r\n // const lg = rootLayer as GroupLayer;\r\n // for (let i = 0; i < lg.layers.length; i++)\r\n // layers = layers.concat(this.selectLayers(lg.layers[i], condition));\r\n // }\r\n // else {\r\n // if (condition(rootLayer))\r\n // layers.push(rootLayer);\r\n // }\r\n // return layers;\r\n // }\r\n\r\n // // todo method options to controll which IQueryService shuld be used. Default is all this._queryServices and all VectorLayer\r\n // /**\r\n // * Executes query over supported services (map's queriable services) for given querystring and sends QueryServiceResult object to given response function.\r\n // *\r\n // * Response is QueryServiceResult objects array.\r\n // */\r\n // public query(queryString: string, response: (results: QueryServiceResult[]) => void, options?: QueryServiceOptions) {\r\n // options = options || { maxItems: 3 };\r\n // const queryServices = this._services.filter(x => (x as any).__is_IQueryService).map(x => (x as any) as IQueryService)\r\n // .concat(this.selectLayers(this._layers, x => (x as any).__is_IQueryService).map(x => (x as any) as IQueryService));\r\n // const results = new Array(queryServices.length);\r\n // queryServices.forEach((x, i) => {\r\n // x.query(queryString, (r) => { results[i] = r; response(results); }, options);\r\n // });\r\n // }\r\n\r\n private setMbLayerVisibility(id: string, visible: boolean) {\r\n const mbVis = visible ? 'visible' : 'none';\r\n this._mbMap.setLayoutProperty(id, 'visibility', mbVis);\r\n this._clusterLayers.filter(cl => cl.id.startsWith(id)).forEach(cl => this._mbMap.setLayoutProperty(cl.id, 'visibility', mbVis));\r\n }\r\n\r\n private refreshSingleGroupVisibility(group: LayerGroup) {\r\n // const group = this.metadata.findGroup(id);\r\n // if (group) {\r\n const elementalLayers = this.getLayers((l: Layer) => l.metadata && l.metadata.gid === group.id);\r\n const canDisplay = this.canDisplayGroup(group);\r\n elementalLayers.forEach(child => {\r\n if (group.visible === false)\r\n this.setMbLayerVisibility(child.id, false);\r\n else if (group.visible === true && canDisplay === true) {\r\n const vis = child.metadata.visible;\r\n this.setMbLayerVisibility(child.id, vis);\r\n if ((this._mbMap.getLayoutProperty(child.id, 'visibility') !== 'none') !== vis)\r\n this._onLayerVisibilityChanged.trigger(new Layer(this._mbMap.getLayer(child.id) as maplibregl.LayerSpecification));\r\n }\r\n });\r\n\r\n if (group.children)\r\n group.children.forEach(c => this.refreshSingleGroupVisibility(c));\r\n // }\r\n // else\r\n // throw new Error(`Cannot find group with ID '${id}'.`);\r\n }\r\n\r\n private canDisplayGroup(group: LayerGroup): boolean {\r\n if (group.visible === false)\r\n return false;\r\n\r\n const parent = group.getParent();\r\n if (parent != null)\r\n return this.canDisplayGroup(parent)\r\n return true;\r\n }\r\n\r\n private generateClusterLayers(layer: Layer): void {\r\n // const layer = new Layer(l);\r\n const clusterFilter : maplibregl.FilterSpecification = ['has', 'point_count'];\r\n const pointCount : maplibregl.FilterSpecification = ['get', 'point_count'];\r\n const notClusterFilter : maplibregl.FilterSpecification = ['!', clusterFilter];\r\n const filter = this._mbMap.getFilter(layer.id);\r\n this._mbMap.setFilter(layer.id, filter ? (['all', filter, notClusterFilter]) as maplibregl.LegacyFilterSpecification : notClusterFilter);\r\n const metadata = this.metadata;\r\n\r\n const iconSize = layer.metadata.clusterSymbolIconSize ? layer.metadata.clusterSymbolIconSize : metadata.clusterIcons.iconSize;\r\n const textSize = layer.metadata.clusterSymbolTextSize ? layer.metadata.clusterSymbolTextSize : metadata.clusterIcons.textSize;\r\n const textOffset = layer.metadata.clusterSymbolTextOffset ? layer.metadata.clusterSymbolTextOffset : metadata.clusterIcons.textOffset;\r\n const textColor = layer.metadata.clusterSymbolTextColor ? layer.metadata.clusterSymbolTextColor : metadata.clusterIcons.textColor;\r\n\r\n const symbolLayer: maplibregl.SymbolLayerSpecification = {\r\n id: `${layer.id}_cluster-symbol`,\r\n type: 'symbol',\r\n source: layer.source,\r\n filter: clusterFilter,\r\n metadata: { gid: layer.metadata.gid },\r\n layout: {\r\n 'icon-image': layer.metadata.clusterSymbol,\r\n 'icon-allow-overlap': true,\r\n 'icon-size': iconSize,\r\n 'text-field': [\r\n 'case',\r\n ['<', pointCount, ['literal', 10]], pointCount,\r\n ['literal', '+']\r\n ],\r\n 'text-font': ['Noto Sans Regular'],\r\n 'text-size': textSize,\r\n 'text-allow-overlap': true,\r\n 'text-offset': textOffset as [number, number]\r\n },\r\n paint: {\r\n 'text-color': textColor\r\n }\r\n };\r\n\r\n if (typeof layer.source === 'string') {\r\n const src = this._mbMap.getSource(layer.source);\r\n if (src.type === \"vector\")\r\n symbolLayer['source-layer'] = layer['source-layer'];\r\n }\r\n\r\n this._mbMap.addLayer(symbolLayer, layer.id);\r\n this._clusterLayers.push(symbolLayer);\r\n\r\n // if (layer.metadata.clusterType === 'circle') {\r\n // const style = layer.metadata.clusterStyle as CircleClusterStyle;\r\n // const circleLayer: maplibregl.Layer = {\r\n // id: `${layer.id}_cluster-circle`,\r\n // type: 'circle',\r\n // source: layer.source,\r\n // filter: clusterFilter,\r\n // paint: {\r\n // 'circle-color': style.circleColor,\r\n // 'circle-stroke-color': style.circleOutlineColor,\r\n // 'circle-stroke-width': style.circleOutlineWidth,\r\n // 'circle-opacity': style.circleOpacity,\r\n // 'circle-radius': style.circleRadius\r\n // }\r\n // };\r\n // this._mbMap.addLayer(circleLayer, layer.id);\r\n // this._clusterLayers.push(circleLayer);\r\n // }\r\n // else if (layer.metadata.clusterType === 'symbol') {\r\n // const style = layer.metadata.clusterStyle as SymbolClusterStyle;\r\n // const symbolLayer: maplibregl.Layer = {\r\n // id: `${layer.id}_cluster-symbol`,\r\n // type: 'symbol',\r\n // source: layer.source,\r\n // filter: clusterFilter,\r\n // layout: {\r\n // 'icon-allow-overlap': true,\r\n // 'icon-image': style.iconImage,\r\n // 'icon-anchor': style.iconAnchor,\r\n // 'icon-size': style.iconSize\r\n // }\r\n // };\r\n\r\n // this._mbMap.addLayer(symbolLayer, layer.id);\r\n // this._clusterLayers.push(symbolLayer);\r\n // }\r\n\r\n // if (layer.metadata.clusterStyle.showText !== false) {\r\n // const labelLayer: maplibregl.Layer = {\r\n // id: `${layer.id}_cluster-label`,\r\n // type: 'symbol',\r\n // source: layer.source,\r\n // filter: clusterFilter,\r\n // layout: {\r\n // 'text-field': '{point_count_abbreviated}',\r\n // 'text-font': [\"Noto Sans Regular\"],\r\n // 'text-size': 12,\r\n // 'text-allow-overlap': true\r\n // },\r\n // paint: {\r\n // 'text-color': layer.metadata.clusterStyle.textColor\r\n // }\r\n // };\r\n\r\n // this._mbMap.addLayer(labelLayer, layer.id);\r\n // this._clusterLayers.push(labelLayer);\r\n // }\r\n }\r\n\r\n // private refreshGroupVisibility(id: string) {\r\n // const group = this.metadata.findGroup(id);\r\n // // TODO: check for children & parents\r\n // if (group) {\r\n // const elementalLayers = this._mbMap.getStyle().layers.filter(l => l.metadata && l.metadata.gid === id);\r\n // elementalLayers.forEach(child => {\r\n // const prevVis = this._mbMap.getLayoutProperty(child.id, 'visibility') !== 'none';\r\n // if (group.visible === false) {\r\n // this.layerVisibility[child.id] = prevVis;\r\n // this._mbMap.setLayoutProperty(child.id, 'visibility', 'none');\r\n // }\r\n // else {\r\n // const vis = this.layerVisibility[child.id];\r\n // if (vis != undefined) {\r\n // this._mbMap.setLayoutProperty(child.id, 'visibility', vis ? 'visible' : 'none');\r\n // if (prevVis !== vis)\r\n // this._onLayerVisibilityChanged.trigger(this._mbMap.getLayer(child.id));\r\n // }\r\n // }\r\n // });\r\n // }\r\n // else\r\n // throw new Error(`Cannot find group with ID '${id}'.`);\r\n // }\r\n\r\n // /**\r\n // * Executes location query over supported services (map's location-queriable services) for given coordinate and sends LocationServiceOptions object to given response function.\r\n // *\r\n // * Response is LocationServiceOptions objects array.\r\n // */\r\n // public locate(coordinate: Coordinate, response: (results: LocationServiceResult[]) => void, options?: LocationServiceOptions) {\r\n // options = options || { projection: this._uiProjection };\r\n // options.projection = options.projection || this._uiProjection;\r\n // const locationServices = this._services.filter(x => (x as any).__is_ILocationService).map(x => (x as any) as ILocationService)\r\n // .concat(this.selectLayers(this._layers, x => (x as any).__is_ILocationService).map(x => (x as any) as ILocationService));\r\n // const results = new Array();\r\n // locationServices.forEach((x, i) => {\r\n // x.locate(coordinate, (r) => { results[i] = r; response(results); }, options);\r\n // });\r\n // }\r\n\r\n // /**\r\n // * Executes routing query over routing service for given coordinates and sends RoutingServiceResult object to given response function.\r\n // *\r\n // * Response is RoutingServiceOptions object.\r\n // */\r\n // public route(coordinates: Coordinate[], response: (result: RoutingServiceResult) => void, options?: RoutingServiceOptions) {\r\n // options = options || { projection: this._uiProjection };\r\n // options.projection = options.projection || this._uiProjection;\r\n // this._routingService.route(coordinates, response, options);\r\n // }\r\n\r\n // TODO: brez OL funkcij in objektov\r\n // public getFitCenterAndResolution(geometryOrExtent: ol.Extent | ol.geom.Geometry, options: olx.view.FitGeometryOptions) {\r\n // const view = this.olMap.getView();\r\n // const viewa = view as any;\r\n\r\n // let size = options.size;\r\n // if (!size)\r\n // size = viewa.getSizeFromViewport_();\r\n\r\n // const rotation = view.getRotation();\r\n // let geometry;\r\n // if (!(geometryOrExtent instanceof ol.geom.SimpleGeometry))\r\n // geometry = ol.geom.Polygon.fromExtent(geometryOrExtent as ol.Extent);\r\n // else if (geometryOrExtent.getType() === 'Circle') {\r\n // geometryOrExtent = geometryOrExtent.getExtent();\r\n // geometry = ol.geom.Polygon.fromExtent(geometryOrExtent);\r\n // geometry.rotate(rotation, ol.extent.getCenter(geometryOrExtent));\r\n // }\r\n // else\r\n // geometry = geometryOrExtent;\r\n\r\n // const padding = options.padding !== undefined ? options.padding : [0, 0, 0, 0];\r\n // const constrainResolution = options.constrainResolution !== undefined ? options.constrainResolution : true;\r\n // const nearest = options.nearest !== undefined ? options.nearest : false;\r\n // let minResolution;\r\n // if (options.minResolution !== undefined)\r\n // minResolution = options.minResolution;\r\n // else if (options.maxZoom !== undefined) {\r\n // minResolution = this.olMap.getView().constrainResolution(\r\n // viewa.maxResolution_, options.maxZoom - viewa.minZoom_, 0);\r\n // }\r\n // else \r\n // minResolution = 0;\r\n\r\n // const coords = geometry.getFlatCoordinates();\r\n // // calculate rotated extent\r\n // const cosAngle = Math.cos(-rotation);\r\n // let sinAngle = Math.sin(-rotation);\r\n // let minRotX = +Infinity;\r\n // let minRotY = +Infinity;\r\n // let maxRotX = -Infinity;\r\n // let maxRotY = -Infinity;\r\n // const stride = geometry.getStride();\r\n // for (let i = 0, ii = coords.length; i < ii; i += stride) {\r\n // const rotX = coords[i] * cosAngle - coords[i + 1] * sinAngle;\r\n // const rotY = coords[i] * sinAngle + coords[i + 1] * cosAngle;\r\n // minRotX = Math.min(minRotX, rotX);\r\n // minRotY = Math.min(minRotY, rotY);\r\n // maxRotX = Math.max(maxRotX, rotX);\r\n // maxRotY = Math.max(maxRotY, rotY);\r\n // }\r\n\r\n // // calculate resolution\r\n // let resolution = viewa.getResolutionForExtent([minRotX, minRotY, maxRotX, maxRotY], [size[0] - padding[1] - padding[3], size[1] - padding[0] - padding[2]]);\r\n // resolution = isNaN(resolution) ? minResolution : Math.max(resolution, minResolution);\r\n // if (constrainResolution) {\r\n // let constrainedResolution = view.constrainResolution(resolution, 0, 0);\r\n // if (!nearest && constrainedResolution < resolution)\r\n // constrainedResolution = view.constrainResolution(constrainedResolution, -1, 0);\r\n // resolution = constrainedResolution;\r\n // }\r\n\r\n // // calculate center\r\n // sinAngle = -sinAngle; // go back to original rotation\r\n // let centerRotX = (minRotX + maxRotX) / 2;\r\n // let centerRotY = (minRotY + maxRotY) / 2;\r\n // centerRotX += (padding[1] - padding[3]) / 2 * resolution;\r\n // centerRotY += (padding[0] - padding[2]) / 2 * resolution;\r\n // const centerX = centerRotX * cosAngle - centerRotY * sinAngle;\r\n // const centerY = centerRotY * cosAngle + centerRotX * sinAngle;\r\n // const center = [centerX, centerY];\r\n\r\n // return { center: center, resolution: resolution };\r\n // }\r\n\r\n // private extentGetCenter(extent: ol.Extent) {\r\n // return [(extent[0] + extent[2]) / 2, (extent[1] + extent[3]) / 2];\r\n // }\r\n}\r\n\r\nexport class QueryResult {\r\n service: string;\r\n status: string;\r\n items: QueryResultItem[];\r\n}\r\n\r\nexport interface QueryResultItem {\r\n title: string;\r\n type: string;\r\n dateTime: Date;\r\n projection: Projection;\r\n location: number[];\r\n envelope: Envelope;\r\n geometry: Geometry;\r\n relevance?: number;\r\n distance?: number;\r\n}\r\n","import { __extends } from \"tslib\";\nimport { Subject } from './Subject';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nvar ReplaySubject = (function (_super) {\n __extends(ReplaySubject, _super);\n function ReplaySubject(_bufferSize, _windowTime, _timestampProvider) {\n if (_bufferSize === void 0) { _bufferSize = Infinity; }\n if (_windowTime === void 0) { _windowTime = Infinity; }\n if (_timestampProvider === void 0) { _timestampProvider = dateTimestampProvider; }\n var _this = _super.call(this) || this;\n _this._bufferSize = _bufferSize;\n _this._windowTime = _windowTime;\n _this._timestampProvider = _timestampProvider;\n _this._buffer = [];\n _this._infiniteTimeWindow = true;\n _this._infiniteTimeWindow = _windowTime === Infinity;\n _this._bufferSize = Math.max(1, _bufferSize);\n _this._windowTime = Math.max(1, _windowTime);\n return _this;\n }\n ReplaySubject.prototype.next = function (value) {\n var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n this._throwIfClosed();\n this._trimBuffer();\n var subscription = this._innerSubscribe(subscriber);\n var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer;\n var copy = _buffer.slice();\n for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i]);\n }\n this._checkFinalizedStatuses(subscriber);\n return subscription;\n };\n ReplaySubject.prototype._trimBuffer = function () {\n var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow;\n var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n if (!_infiniteTimeWindow) {\n var now = _timestampProvider.now();\n var last = 0;\n for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\n//# sourceMappingURL=ReplaySubject.js.map","import Mustache from 'mustache';\r\n\r\nexport * from './rm2/css';\r\n\r\nimport { Map, Feature, IPolygonOptions, Geometry, Projection, IGeolocationOptions, MapEventArgs, Popup, FeatureCollection, Layer, Route } from './rm2';\r\nimport { Subject, ReplaySubject, Observable, BehaviorSubject } from 'rxjs';\r\nimport { Coordinate } from './rm2';\r\nimport { ILineOptions } from './rm2/';\r\nimport { Polygon, CoordinateLike, Point } from './rm2/model/RM2Geometry';\r\nimport { IFeatureHighlightOptions, IMarkerOptions, ICircleOptions } from './rm2/highlights/RM2HighlightOptions';\r\nimport { FitOptions, ICameraChangeOptions } from './rm2/model/RM2CameraChangeOptions';\r\nimport { RM2ViewData } from './rm2/model/RM2ViewData';\r\nimport { MapTheme } from './rm2/model/RM2Theme';\r\nimport { Position } from 'geojson';\r\nimport { RM2GeolocationPosition } from './rm2/geolocation/RM2Geolocation';\r\nimport { Guid } from 'guid-typescript';\r\nimport { IRouteHighlightOptions, RouteHighlightOptions, RouteLegacy, RouteFeatureCollection, RouteInstructionsFeatureCollection } from './rm2/services/RM2RoutingService';\r\nimport { MapControlType } from './rm2/map-controls/RM2MapControls';\r\nimport { IPopupOptions } from './rm2/popup/RM2PopupOptions';\r\nimport { ServiceType } from './rm2/services/RM2Service';\r\nimport { LocalizationService } from './rm2/services/RM2LocalizationService';\r\nimport { RM2MapCompareState } from './rm2/map/RM2Map';\r\n\r\nexport class MapContainer {\r\n public static readonly ATTRIBUTE_STYLE_URL = \"style-url\";\r\n private _lastPopup: Popup;\r\n\r\n constructor(elementId: string, mapId?: string, initMap?: boolean) {\r\n this.ElementId = elementId;\r\n this.Element = document.getElementById(elementId);\r\n if (!this.Element)\r\n throw new Error(`Invalid elementId ${elementId}`);\r\n\r\n this._extendElement();\r\n this.reconfigure(initMap, mapId);\r\n }\r\n\r\n public ElementId: string;\r\n public Element: HTMLElement;\r\n private get ElementAny() { return this.Element as any; }\r\n private get styleUrl(): string { return this.Element.getAttribute(MapContainer.ATTRIBUTE_STYLE_URL); }\r\n\r\n public get map(): Map { return this._map; }\r\n private _map: Map;\r\n private _onLayerReloadedSubs: Array = [];\r\n\r\n public get evt_mapInitialized(): Observable { return this._evt_mapInitialized; }\r\n private _evt_mapInitialized = new ReplaySubject(1);\r\n\r\n public get evt_mapClick(): Observable { return this._evt_mapClick; }\r\n private _evt_mapClick = new Subject();\r\n\r\n public get evt_mapLongClick(): Observable { return this._evt_mapLongClick; }\r\n private _evt_mapLongClick = new Subject();\r\n\r\n public get evt_mapDblClick(): Observable { return this._evt_mapDblClick; }\r\n private _evt_mapDblClick = new Subject();\r\n\r\n public get evt_mapMouseMove(): Observable { return this._evt_mapMouseMove; }\r\n private _evt_mapMouseMove = new Subject();\r\n\r\n public get evt_layerRestyle(): Observable { return this._evt_layerRestyle; }\r\n private _evt_layerRestyle = new Subject();\r\n\r\n public get evt_mapUserAction(): Observable { return this._evt_mapUserAction; }\r\n private _evt_mapUserAction = new Subject();\r\n\r\n public get evt_mapLoad(): Observable { return this._evt_mapLoad; }\r\n private _evt_mapLoad = new ReplaySubject(1);\r\n\r\n public get evt_layerReloaded(): Observable { return this._evt_layerReloaded; }\r\n private _evt_layerReloaded = new Subject();\r\n\r\n public get evt_viewChange(): Observable { return this._evt_viewChange; }\r\n private _evt_viewChange = new Subject();\r\n\r\n public get evt_routeConstructed(): Observable { return this._evt_routeConstructed; }\r\n private _evt_routeConstructed = new Subject();\r\n\r\n public get evt_popupOpened(): Observable { return this._evt_popupOpened; }\r\n private _evt_popupOpened = new Subject();\r\n\r\n public static get(mapId: string): MapContainer {\r\n const rmaps = (window as any).rmaps;\r\n if (Array.isArray(rmaps)) {\r\n const found = rmaps.find(x => x.id === mapId);\r\n if (found)\r\n return found.map;\r\n }\r\n return null;\r\n }\r\n\r\n public static initDARSPlugiMap(mapContainerId: string, lang: string): MapContainer {\r\n const el = document.querySelector(`#${mapContainerId}`);\r\n if (el) {\r\n //el.setAttribute(this.ATTRIBUTE_STYLE_URL, `https://promet-dars.geoprostor.net/ext/plugi/map-styles/vector-hybrid.${lang}.mb-style.json`);\r\n el.setAttribute(this.ATTRIBUTE_STYLE_URL, `https://www.promet.si/ext/plugi/map-styles/vector-hybrid.${lang}.mb-style.json`);\r\n\r\n return new MapContainer(mapContainerId);\r\n }\r\n\r\n throw new Error(`Invalid map target for DARS plugi: ${mapContainerId}`)\r\n }\r\n\r\n private _extendElement() {\r\n // Tega ne delamo - vrnemo samo MapContainer objekt. Po potrebi se lahko doda\r\n\r\n // if (this.ElementAny.Rm2Bootstraper) {\r\n // throw new Error(\"Element is already in use by Rm2. Dispose existing first!\");\r\n // }\r\n // this.ElementAny.Rm2Bootstraper = this;\r\n }\r\n\r\n public reconfigure = (initMap?: boolean, mapId?: string) => {\r\n this.dispose();\r\n this._reconfigure(initMap, mapId);\r\n }\r\n\r\n private _reconfigure = async (initMap?: boolean, mapId?: string) => {\r\n if (initMap !== false)\r\n this.initMap(mapId);\r\n }\r\n\r\n public initMap = (mapId?: string) => {\r\n if (!mapId)\r\n mapId = Guid.create().toString();\r\n\r\n this._map = new Map(this.styleUrl, this.Element, { id: mapId });\r\n\r\n const metadata = this._map.metadata;\r\n this.map.onClick.subscribe(this._mapOnClick);\r\n this.map.onLongClick.subscribe(this._mapOnLongClick);\r\n this.map.onDblClick.subscribe(this._mapOnDblClick);\r\n this.map.onMouseMove.subscribe(this._mapOnMouseMove);\r\n this.map.onRestyleLayer.subscribe(this._mapOnRestyleLayer);\r\n this.map.onUserAction.subscribe(this._mapOnUserAction);\r\n this.map.onViewChange.subscribe(this._mapOnViewChange);\r\n this.map.onLoad.subscribe(this._mapOnLoad)\r\n this.map.onRouteConstructed.subscribe(this._mapRouteConstructed);\r\n this.map.onPopupOpened.subscribe(this._popupOpened);\r\n\r\n const maps = (window as any).rmaps;\r\n const obj = { id: mapId, map: this };\r\n if (Array.isArray(maps))\r\n maps.push(obj);\r\n else\r\n (window as any).rmaps = [obj];\r\n\r\n // const layers = this._map.getLayers(x => x instanceof VectorLayer);\r\n // for (const key in layers) {\r\n // if (layers.hasOwnProperty(key)) {\r\n // const layer = layers[key] as VectorLayer;\r\n\r\n // const handlerFactory = (l: VectorLayer) => () => {\r\n // this._layerOnReloaded({ map: this.map, layer: l });\r\n // };\r\n\r\n // if (layer.source) {\r\n // const handler = handlerFactory(layer);\r\n // layer.source.onReloadLayer.subscribe(handler);\r\n // this._onLayerReloadedSubs.push({ source: layer.source, handler: handler });\r\n // }\r\n // }\r\n // }\r\n\r\n this.map.setTarget(this.Element);\r\n this._onMapInitialized();\r\n }\r\n\r\n public dispose = () => {\r\n if (this.map) {\r\n this.map.setTarget(undefined);\r\n\r\n this.map.onClick.unsubscribe(this._mapOnClick);\r\n this.map.onLongClick.unsubscribe(this._mapOnLongClick);\r\n this.map.onDblClick.unsubscribe(this._mapOnDblClick);\r\n this.map.onMouseMove.unsubscribe(this._mapOnMouseMove);\r\n this.map.onRestyleLayer.unsubscribe(this._mapOnRestyleLayer);\r\n this.map.onUserAction.unsubscribe(this._mapOnUserAction);\r\n this.map.onViewChange.unsubscribe(this._mapOnViewChange);\r\n this.map.onRouteConstructed.unsubscribe(this._mapRouteConstructed);\r\n this.map.onPopupOpened.unsubscribe(this._popupOpened);\r\n\r\n for (const key in this._onLayerReloadedSubs) {\r\n if (this._onLayerReloadedSubs.hasOwnProperty(key)) {\r\n const sh = this._onLayerReloadedSubs[key];\r\n if (sh && sh.source && sh.handler) {\r\n sh.source.onReloadLayer.unsubscribe(sh.handler);\r\n }\r\n }\r\n }\r\n this._onLayerReloadedSubs = [];\r\n }\r\n }\r\n\r\n public zoom = (zoom?: number, animate?: boolean) => {\r\n const view = this.map.getView();\r\n const newZoom = view.zoom + zoom;\r\n this.map.pan(view.center, {\r\n zoom: newZoom,\r\n animate: animate\r\n });\r\n }\r\n\r\n public getLayers = (condition: (x: Layer) => boolean = () => true): Layer[] => {\r\n if (this.map) {\r\n const layers = this.map.getLayers(x => x instanceof Layer && condition(x) === true);\r\n return layers;\r\n }\r\n return null;\r\n }\r\n\r\n public setVisibility = (sids?: string[], visible?: boolean) => {\r\n if (sids) {\r\n sids.forEach(sid => {\r\n if (visible == null)\r\n this.map.setLayerVisibility(sid, !this.map.getLayerVisibility(sid));\r\n else\r\n this.map.setLayerVisibility(sid, visible);\r\n });\r\n }\r\n }\r\n\r\n public drawRouteFromGeoJson = (route: any, points: CoordinateLike[], options?: IRouteHighlightOptions) => {\r\n const fc = RouteFeatureCollection.fromGeoJson(route);\r\n fc.properties.Instructions = RouteInstructionsFeatureCollection.fromGeoJson(fc.properties.Instructions);\r\n for (let i = 0; i < fc.features.length; i++)\r\n fc.features[i].properties.includeInPopup = false;\r\n \r\n this.drawRoute({\r\n points: points,\r\n route: fc\r\n }, options)\r\n };\r\n\r\n public drawRoute = (route: Route, options?: IRouteHighlightOptions) => {\r\n this.map.drawRoute(route, options);\r\n };\r\n\r\n public drawRouteLegacy = (route: RouteLegacy, options?: IRouteHighlightOptions) => {\r\n this.map.drawRouteLegacy(route, options);\r\n };\r\n\r\n public clearRoute = () => {\r\n this.map.clearRoute();\r\n };\r\n\r\n // public drawMarker = (gjGeometry?: string, options?: IMarkerOptions) => {\r\n // const geometry = Geometry.fromGeoJson(gjGeometry);\r\n // const projection = Projection.create(options.projection as any);\r\n // options.projection = projection;\r\n\r\n // if (geometry && projection)\r\n // this.map.drawMarker(geometry, options);\r\n // }\r\n\r\n public drawMarker = (coords: Coordinate | CoordinateLike, options?: IMarkerOptions) => {\r\n let geometry: Point = undefined;\r\n if (Array.isArray(coords as any)) {\r\n geometry = Point.fromCoordinate(coords);\r\n }\r\n if (coords instanceof String || typeof coords === 'string') {\r\n geometry = Point.fromGeoJson(coords as any as string) as Point;\r\n }\r\n else {\r\n geometry = coords as any as Point;\r\n }\r\n\r\n const projection = Projection.create(options.projection as any || 'EPSG:4326');\r\n options.projection = projection;\r\n\r\n if (geometry && projection)\r\n this.map.drawMarker(geometry, options);\r\n }\r\n\r\n public clearMarker = () => {\r\n this.map.clearMarkers();\r\n }\r\n\r\n public drawCircle = (gjGeometry?: string, options?: ICircleOptions) => {\r\n const geometry = Geometry.fromGeoJson(gjGeometry);\r\n const projection = Projection.create(options.projection as any);\r\n options.projection = projection;\r\n\r\n if (geometry && projection)\r\n this.map.drawCircle(geometry, options);\r\n }\r\n\r\n public clearCircle = () => {\r\n this.map.clearCircles();\r\n }\r\n\r\n public drawLine = (gjGeometry: string, options?: ILineOptions) => {\r\n const geometry = Geometry.fromGeoJson(gjGeometry);\r\n const projection = Projection.create(options.projection as any);\r\n options.projection = projection;\r\n\r\n if (geometry && projection)\r\n this.map.drawLine(geometry, options);\r\n };\r\n\r\n public clearLine = () => {\r\n this.map.clearLines();\r\n }\r\n\r\n public drawPolygon = (coords: number[][][], options?: IPolygonOptions) => {\r\n const polygonCoords = [coords[0].map(coord => Coordinate.fromOrdinates(coord as CoordinateLike))];\r\n const geometry = new Polygon(polygonCoords);\r\n this.map.drawPolygon(geometry, options);\r\n }\r\n\r\n public clearPolygon = () => {\r\n this.map.clearPolygons();\r\n }\r\n\r\n public addFeature = (ft: any, opts?: IFeatureHighlightOptions): any => {\r\n // opts.projection = Projection.create('EPSG:4326');\r\n return this.map.addFeature(Feature.fromGeoJson(ft), opts);\r\n };\r\n\r\n public addFeatures = (ft: any, opts?: IFeatureHighlightOptions): any => {\r\n // opts.projection = Projection.create('EPSG:4326');\r\n return this.map.addFeatures(FeatureCollection.fromGeoJson(ft), opts);\r\n };\r\n\r\n public removeFeature = (id: string) => {\r\n if (id)\r\n this.map.removeFeature(id);\r\n };\r\n\r\n public clearFeatures = () => {\r\n this.map.clearFeatures();\r\n };\r\n\r\n public getAllFeatures = (): any => {\r\n return this.map.getAllFeatures().toGeoJson();\r\n }\r\n\r\n public fitToFeatures = (padding: number) => {\r\n this.map.fitCameraToFeatures(this.map.getAllFeatures(), new FitOptions({ padding: padding }));\r\n }\r\n\r\n public pan = (coordinate: number[], zoom?: number, projection?: string, animate?: boolean, relCenterX?: number, relCenterY?: number, bearing?: number, pitch?: number) => {\r\n const _projection = Projection.create(projection || 'EPSG:4326');\r\n this.map.pan(Coordinate.fromOrdinates(coordinate as CoordinateLike), {\r\n zoom: zoom,\r\n projection: _projection,\r\n animate: animate,\r\n relCenterX: relCenterX,\r\n relCenterY: relCenterY,\r\n bearing: bearing,\r\n pitch: pitch\r\n });\r\n }\r\n\r\n public tilt = (degrees: number) => {\r\n this.map.tilt(degrees);\r\n }\r\n\r\n public setLoadingStatus = (status: boolean) => {\r\n const loadingId = 'rmap2-loading';\r\n const container = this.map.getTarget();\r\n const found = container.querySelector('#' + loadingId);\r\n if (status) {\r\n if (found)\r\n return;\r\n \r\n const loadingContainer = document.createElement('div');\r\n loadingContainer.className = 'w-100 h-100 d-flex align-items-center justify-content-center';\r\n loadingContainer.id = loadingId;\r\n loadingContainer.style.backgroundColor = '#00000099';\r\n loadingContainer.style.zIndex = '2';\r\n loadingContainer.style.position = 'absolute';\r\n\r\n const spinner = document.createElement('div');\r\n spinner.className = 'spinner-border text-light';\r\n spinner.setAttribute('role', 'status');\r\n const spinnerContent = document.createElement('span');\r\n spinnerContent.className = 'sr-only';\r\n spinnerContent.innerText = 'Loading...';\r\n spinner.appendChild(spinnerContent);\r\n\r\n loadingContainer.appendChild(spinner);\r\n container.appendChild(loadingContainer);\r\n }\r\n else {\r\n if (found)\r\n found.parentElement.removeChild(found);\r\n }\r\n };\r\n\r\n public showGeolocation = (position: RM2GeolocationPosition, options: IGeolocationOptions) => {\r\n this.map.showGeolocation(position, options);\r\n }\r\n\r\n public clearGeolocation = () => {\r\n this.map.clearGeolocation();\r\n }\r\n\r\n public getControl = (control: MapControlType) => {\r\n return this.map.getControl(control);\r\n };\r\n\r\n public setMapTheme = (theme: string) => {\r\n this.map.setMapTheme(theme as MapTheme);\r\n };\r\n\r\n public setSourceData = (id: string, data: any) => {\r\n const fc = FeatureCollection.fromGeoJson(data);\r\n this.map.setSourceData(id, fc);\r\n };\r\n\r\n public openPopupForFeature(ft: any, layer: string, options?: IPopupOptions): Popup {\r\n const ftJson = Feature.fromGeoJson(ft);\r\n const l = this._map.getLayer(layer);\r\n if (l) {\r\n let zoom = null;\r\n // const src = (typeof l.source == 'string' ? this._map.getSource(l.source) : l.source) as maplibregl.GeoJSONSource;\r\n\r\n const content = this.getPopupContent(ftJson, l);\r\n this._map.closeAllPopups();\r\n const p = this._map.openPopupForFeature(ftJson, l, content.content, options);\r\n this._lastPopup = p;\r\n this._lastPopup.onClose.subscribe(() => clearInterval(content.interval));\r\n return p;\r\n }\r\n return null;\r\n }\r\n\r\n // public refresh(sids?: string[]) {\r\n // let layers = this.map.getLayers(x => true);\r\n // if (sids != null && sids !== undefined) {\r\n // const fsids = sids.filter(sid => sid != null && sid !== undefined && sid !== \"\");\r\n // layers = this.map.getLayers(x => fsids.indexOf(x.sid) >= 0);\r\n // }\r\n // layers.forEach(layer => {\r\n // if (layer instanceof SourceLayer) {\r\n // if (layer.source) {\r\n // if (layer.source instanceof VectorSource) {\r\n // layer.source.reload(undefined, error => {\r\n // if (console) {\r\n // console.error(`Failed reloading layer, error: ${error}`);\r\n // }\r\n // });\r\n // }\r\n // else {\r\n // layer.source.reload();\r\n // }\r\n // }\r\n // }\r\n // });\r\n // }\r\n\r\n public transformEpsg3912ToEpsg4326(x: number, y: number): CoordinateLike {\r\n const coord = Coordinate.fromOrdinates([x, y]);\r\n const transformed = Coordinate.transform(coord, Projection.create('EPSG:3912'), Projection.create('EPSG:4326'));\r\n return [transformed.x, transformed.y];\r\n }\r\n\r\n public setLanguage(lang: string) {\r\n this._map.setLanguage(lang);\r\n }\r\n\r\n private _onMapInitialized() {\r\n this._evt_mapInitialized.next(undefined);\r\n }\r\n\r\n private _mapOnClick = (eventArgs: MapEventArgs) => {\r\n // ista koda se ponovi v rmap2.service.ts\r\n const metadata = this._map.metadata;\r\n const showPopup = metadata == null || metadata.enablePopup !== false;\r\n if (showPopup && eventArgs.nativeEvent instanceof MouseEvent && eventArgs.nativeEvent.button == 0) { // LMB\r\n const fts: Feature[] = [];\r\n const ftsLayers = [];\r\n\r\n // filtriraj\r\n for (let i = 0; i < eventArgs.features.length; i++) {\r\n const ft = eventArgs.features[i];\r\n const ftLayer = eventArgs.featureLayers[i];\r\n if (ft.properties.includeInIdentify !== false && ft.properties.includeInPopup !== false) {\r\n let id = ft && ft.properties && ft.properties.Id;\r\n\r\n // odstranimo duplikate - vcasih je multilinestring kot vec featurjev\r\n if (id && fts.some(xft => xft && xft.properties && xft.properties.Id === id)) {//ft && ft.properties && ft.properties.id !== undefined) {\r\n continue;\r\n }\r\n else {\r\n fts.push(ft);\r\n ftsLayers.push(ftLayer);\r\n }\r\n }\r\n }\r\n\r\n if (fts.length > 0) {\r\n const clusterPointCountKey = 'point_count';\r\n // če so v kliku samo clusterji\r\n if (fts.find(ft => ft.hasProperty(clusterPointCountKey) === false) == undefined) {\r\n const cluster = fts[0];\r\n const clusterCoord = cluster.geometry.getCoordinate();\r\n const currView = this._map.getView();\r\n\r\n setTimeout(() => {\r\n this.map.pan(clusterCoord, {\r\n zoom: currView.zoom + 1,\r\n animate: true\r\n });\r\n });\r\n }\r\n else {\r\n // filtriraj ven clusterje\r\n for (let i = 0; i < fts.length; i++) {\r\n const ft = fts[i];\r\n if (ft.hasProperty(clusterPointCountKey)) {\r\n fts.splice(i, 1);\r\n ftsLayers.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n\r\n let firstCoordinate = fts[0].geometry.getCoordinate() as Coordinate;\r\n if (fts[0].geometry.type !== 'Point') {\r\n firstCoordinate = new Coordinate(eventArgs.coordinate[0], eventArgs.coordinate[1]);\r\n }\r\n const intervals = [];\r\n this._lastPopup = eventArgs.map.openPopupForFeatures([firstCoordinate.x, firstCoordinate.y], fts, (ft: Feature, i: number): HTMLElement => {\r\n const l = ftsLayers[i];\r\n const container = this.getPopupContent(ft, l);\r\n intervals.push(container.interval);\r\n return container.content;\r\n }, { maxWidth: ftsLayers.map(l => l.metadata.infoWindowMaxWidth) });\r\n \r\n this._lastPopup.onClose.subscribe(() => intervals.forEach(interval => clearInterval(interval)));\r\n }\r\n }\r\n else\r\n this._evt_mapClick.next(eventArgs);\r\n }\r\n else\r\n this._evt_mapClick.next(eventArgs);\r\n };\r\n\r\n private _mapOnLongClick = (eventArgs: MapEventArgs) => {\r\n this._evt_mapLongClick.next(eventArgs);\r\n };\r\n\r\n private _mapOnDblClick = (eventArgs: MapEventArgs) => {\r\n this._evt_mapDblClick.next(eventArgs);\r\n };\r\n\r\n private _mapOnMouseMove = (eventArgs: MapEventArgs) => {\r\n this._evt_mapMouseMove.next(eventArgs);\r\n };\r\n\r\n private _mapOnRestyleLayer = (eventArgs: MapEventArgs) => {\r\n this._evt_layerRestyle.next(eventArgs)\r\n };\r\n\r\n private _mapOnUserAction = (eventArgs: MapEventArgs) => {\r\n this._evt_mapUserAction.next(eventArgs);\r\n };\r\n\r\n private _mapOnViewChange = (eventArgs: RM2ViewData) => {\r\n this._evt_viewChange.next(eventArgs);\r\n };\r\n\r\n private _mapRouteConstructed = (eventArgs: Route) => {\r\n this._evt_routeConstructed.next(eventArgs);\r\n };\r\n\r\n private _popupOpened = (eventArgs: Popup) => {\r\n this._evt_popupOpened.next(eventArgs);\r\n };\r\n\r\n private _mapOnLoad = (eventArgs: MapEventArgs) => {\r\n this._evt_mapLoad.next(eventArgs);\r\n };\r\n\r\n private _layerOnReloaded = (eventArgs: MapEventArgs) => {\r\n this._evt_layerReloaded.next(eventArgs);\r\n };\r\n\r\n public get view(): RM2ViewData {\r\n return this.map.getView();\r\n }\r\n\r\n public set view(value: RM2ViewData) {\r\n this.map.setView(value);\r\n }\r\n\r\n private getPopupContent(ft: Feature, l: Layer): { interval: any, content: HTMLElement } {\r\n const container = document.createElement('div');\r\n let interval: any;\r\n\r\n\tif(ft && ft.properties && ft.properties.UpravljalecWeb)\r\n\t{\r\n\t\t\r\n\t}\t\r\n // if (ft && ft.properties && ft.properties.contentName == \"ncup.charging\")\r\n // {\r\n // (ft.properties as any).hasAdHocPrice = !(ft.properties.adHocPrice === null || ft.properties.adHocPrice === undefined);\r\n // (ft.properties as any).isOpen = (ft.properties.isOpen && !(ft.properties.isOpen===\"False\"));\r\n // }\r\n \r\n ft.properties.r_eq_str = function () {\r\n return function (text, render) : string {\r\n //{r_eq_str}isOpen;False;\r\n if (text != null && text !== undefined && typeof text == 'string' && text.length > 1) {\r\n const splt = text.split(';', 3);\r\n const key = splt[0];\r\n const expectedVal = splt[1];\r\n const output = splt[2]\r\n const pval = key in ft.properties ? ft.properties[key] : undefined;\r\n \r\n if (expectedVal === pval) {\r\n const r = render(output);\r\n return r;\r\n }\r\n }\r\n return undefined;\r\n };\r\n };\r\n ft.properties.r_neq_str = function () {\r\n return function (text, render) : string {\r\n //{r_eq_str}isOpen;False;\r\n if (text != null && text !== undefined && typeof text == 'string' && text.length > 1) {\r\n const splt = text.split(';', 3);\r\n const key = splt[0];\r\n const expectedVal = splt[1];\r\n const output = splt[2]\r\n const pval = key in ft.properties ? ft.properties[key] : undefined;\r\n \r\n if (expectedVal !== pval) {\r\n const r = render(output);\r\n return r;\r\n }\r\n }\r\n return undefined;\r\n };\r\n };\r\n\r\n if (l.metadata.infoWindowTitleTemplate) {\r\n const title = document.createElement('div');\r\n title.innerHTML = Mustache.render(l.metadata.infoWindowTitleTemplate, ft.properties);\r\n\r\n // close btn\r\n const closeBtn = document.createElement('div');\r\n closeBtn.className = 'ml-auto bg-red text-white rm2-popup-close d-sm-none';\r\n closeBtn.setAttribute('id', 'promet-si-popup-close-btn');\r\n const closeIcon = document.createElement('img');\r\n // closeIcon.src = 'assets/res/icons/placeholder.svg';\r\n closeIcon.style.pointerEvents = 'none';\r\n closeBtn.appendChild(closeIcon);\r\n closeBtn.onclick = () => this._map.closeAllPopups();\r\n title.children[0].appendChild(closeBtn);\r\n\r\n container.appendChild(title);\r\n }\r\n\r\n if (l.metadata.infoWindowDescriptionTemplate) {\r\n const createDescription = (template: string, view: any): HTMLDivElement => {\r\n const dscr = document.createElement('div');\r\n let tmplt = template;\r\n if (template.includes('{{dt}}')) {\r\n const dt = new Date().getTime();\r\n tmplt = template.replace(/{{dt}}/g, dt.toString());\r\n }\r\n \r\n dscr.innerHTML = Mustache.render(tmplt, view);\r\n return dscr;\r\n };\r\n\r\n let description = createDescription(l.metadata.infoWindowDescriptionTemplate, ft.properties);\r\n container.appendChild(description);\r\n\r\n const service = this._map.getService(ServiceType.Localization) as LocalizationService;\r\n if (service)\r\n service.refresh(container);\r\n else\r\n throw new Error('Please include the localization service to localize popups.');\r\n\r\n if (l.metadata.infoWindowDescriptionRefreshInterval > 0) {\r\n interval = setInterval(() => {\r\n var newDescription = createDescription(l.metadata.infoWindowDescriptionTemplate, ft.properties);\r\n container.replaceChild(newDescription, description);\r\n description = newDescription;\r\n }, l.metadata.infoWindowDescriptionRefreshInterval);\r\n }\r\n }\r\n\r\n return {\r\n interval: interval,\r\n content: container\r\n };\r\n }\r\n\r\n public _compare (element: HTMLElement) {\r\n const compareStyleUrl = element.getAttribute(\"style-url\");\r\n const compareMap = new Map(compareStyleUrl, element);\r\n const opts = {sliderPosition: 0} as RM2MapCompareState; \r\n\r\n this.map.compareWith(compareMap);\r\n return compareMap;\r\n }\r\n}\r\n\r\nexport interface ILayerSettings {\r\n layers?: ISingleLayerSettings[];\r\n}\r\n\r\nexport interface ISingleLayerSettings {\r\n sid: string;\r\n visible?: boolean;\r\n}\r\n\r\nexport interface IPopupInfo {\r\n html: HTMLElement;\r\n coord: CoordinateLike;\r\n interval?: any;\r\n}\r\n"],"names":["root","factory","exports","module","define","amd","self","moveToMapPosition","master","clones","center","getCenter","zoom","getZoom","bearing","getBearing","pitch","getPitch","forEach","clone","jumpTo","maps","argLen","arguments","length","i","push","fns","on","map","index","off","sync","bind","filter","o","syncMove","EventEmitter","Compare","a","b","container","options","this","_mapA","_mapB","_horizontal","orientation","_onDown","_onMove","_onMouseUp","_onTouchEnd","_ev","_swiper","document","createElement","className","_controlContainer","appendChild","body","querySelectorAll","appendTarget","Error","Element","_bounds","getContainer","getBoundingClientRect","swiperPosition","height","width","_setPosition","_clearSync","_onResize","currentPosition","mousemove","addEventListener","prototype","_setPointerEvents","v","style","pointerEvents","e","touches","x","Math","min","pos","transform","WebkitTransform","clipA","clipB","clip","_getY","_getX","removeEventListener","fire","clientX","left","y","clientY","top","setSlider","type","fn","data","emit","removeListener","remove","aContainer","bContainer","window","maplibregl","ReflectOwnKeys","R","Reflect","ReflectApply","apply","target","receiver","args","Function","call","ownKeys","Object","getOwnPropertySymbols","getOwnPropertyNames","concat","NumberIsNaN","Number","isNaN","value","init","once","emitter","name","Promise","resolve","reject","errorListener","err","resolver","slice","eventTargetAgnosticAddListener","handler","flags","addErrorHandlerIfEventEmitter","_events","undefined","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","TypeError","_getMaxListeners","that","_addListener","prepend","m","events","existing","warning","create","newListener","unshift","warned","w","String","count","console","warn","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","_listeners","unwrap","evlistener","arr","ret","Array","unwrapListeners","arrayClone","listenerCount","n","copy","wrapListener","arg","defineProperty","enumerable","get","set","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","error","er","message","context","len","listeners","addListener","prependListener","prependOnceListener","list","position","originalListener","shift","pop","spliceOne","removeAllListeners","key","keys","rawListeners","eventNames","Guid","guid","EMPTY","isGuid","toString","validator","test","gen","join","createEmpty","parse","raw","out","random","substring","equals","other","isEmpty","toJSON","RegExp","_extends","assign","source","hasOwnProperty","defaults","tName","i18nName","handleName","selectorAttr","targetAttr","optionsAttr","useOptionsAttr","parseDefaultValueFromContent","i18next","$","ele","opts","attr","indexOf","parts","split","substr","html","t","extendDefault","text","append","dataAttr","translated","val","defaultValue","localize","targetSelector","find","each","k","trim","lng","handle","SRS_WGS84_SEMIMAJOR","SRS_WGS84_ESQUARED","SEC_TO_RAD","HALF_PI","PI","EPSLN","D2R","R2D","FORTPI","TWO_PI","SPI","ft","to_meter","ignoredChar","match","obj","testkey","lkey","toLowerCase","replace","defData","paramName","paramVal","paramOutname","paramObj","reduce","p","params","proj","datum","rf","parseFloat","lat_0","lat0","lat_1","lat1","lat_2","lat2","lat_ts","lon_0","long0","lon_1","long1","lon_2","long2","alpha","gamma","rectified_grid_angle","lonc","longc","x_0","x0","y_0","y0","k_0","k0","r_a","R_A","zone","parseInt","south","utmSouth","towgs84","datum_params","units","unit","from_greenwich","pm","nadgrids","datumCode","axis","legalAxis","approx","txt","parser","Parser","output","whitespace","latin","keyword","endThings","digets","level","place","stack","currentObject","mapit","isArray","thing","newObj","item","sExpr","convert","readCharicter","char","neutral","quoted","afterquote","number","word","afterItem","newObjects","d2r","input","wkt","lisp","projName","local","PROJECTION","AXIS","axisOrder","ii","UNIT","DATUM","SPHEROID","geogcs","GEOGCS","toMeter","sphere","ellps","TOWGS84","isFinite","outName","inName","rename","cleanWKT","defs","def","charAt","EPSG","ESRI","IAU2000","log","WGS84","GOOGLE","global","codeWords","codes","code","testObj","testDef","some","testWKT","auth","checkMercator","maybeProjStr","ext","checkProjStr","testProj","destination","property","eccent","sinphi","cosphi","con","sqrt","abs","sign","phi","com","pow","tan","ts","dphi","eccnth","atan","sin","identity","pt","projs","es","cos","msfnz","forward","lon","lat","adjust_lon","tsfnz","inverse","exp","phi2z","names","projStore","add","start","ellipseName","wgs84","ellipse","datumName","ch1903","ggrs87","nad83","nad27","potsdam","carthage","hermannskogel","osni52","ire65","rassadiran","nzgd49","osgb36","s_jtsk","beduaram","gunung_segara","rnb72","ep2","datum_type","grids","loadedNadgrids","parseNadgridString","optional","mandatory","grid","isNull","secondsToRadians","seconds","decodeString","view","end","fromCharCode","Uint8Array","buffer","mapNodes","nodes","r","longitudeShift","latitudeShift","readGridHeader","offset","isLittleEndian","parent","lowerLatitude","getFloat64","upperLatitude","lowerLongitude","upperLongitude","latitudeInterval","longitudeInterval","gridNodeCount","getInt32","readGridNodes","gridHeader","nodesOffset","gridShiftRecords","record","getFloat32","latitudeAccuracy","longitudeAccuracy","Projection","srsCode","callback","json","parseCode","ourProj","projections","datumDef","a2","b2","sphere_","ecc","getNadgrids","datumObj","extend","geodeticToGeocentric","Rn","Sin_Lat","Sin2_Lat","Cos_Lat","Longitude","Latitude","Height","z","Infinity","geocentricToGeodetic","P","RR","CT","ST","RX","RK","RN","CPHI0","SPHI0","CPHI","SPHI","SDPHI","iter","genau","X","Y","Z","atan2","checkParams","dest","point","compareDatums","source_a","source_es","applyGridShift","dest_a","dest_b","dest_es","Dx_BF","Dy_BF","Dz_BF","Rx_BF","Ry_BF","Rz_BF","M_BF","geocentricToWgs84","x_tmp","y_tmp","z_tmp","geocentricFromWgs84","NaN","attemptedGrids","subgrid","subgrids","epsilon","del","minX","ll","minY","maxX","lim","maxY","applySubgridShift","pin","ct","tb","nadInterpolate","dif","inx","indx","floor","frct","f00","cvs","f10","f11","f01","m11","m10","m00","m01","crs","denorm","xin","yin","zin","array","checkCoord","num","enforceAxis","toPoint","checkSanity","checkNotWGS","adjust_axis","datum_transform","transformer","from","to","coords","transformedArray","splice","checkProj","oProj","fromProj","toProj","coord","single","SET_ORIGIN_COLUMN_LETTERS","SET_ORIGIN_ROW_LETTERS","A","I","O","V","mgrs","bbox","UTMtoLL","decode","toUpperCase","bottom","right","accuracy","utm","seasting","easting","snorthing","northing","zoneNumber","zoneLetter","setParm","get100kSetForZone","setColumn","setRow","column","row","parm","colOrigin","charCodeAt","rowOrigin","colInt","rowInt","rollover","encode","eccPrimeSquared","N","T","C","M","LongOriginRad","ZoneNumber","Lat","Long","eccSquared","LatRad","degToRad","LongRad","UTMEasting","UTMNorthing","round","getLetterDesignator","LLtoUTM","deg","radToDeg","rad","N1","T1","C1","R1","D","LongOrigin","mu","phi1Rad","e1","result","topRight","LetterDesignator","mgrsString","testChar","hunK","sb","east100k","curCol","eastingValue","rewindMarker","getEastingFromChar","north100k","curRow","northingValue","getNorthingFromChar","getMinNorthing","remainder","accuracyBonus","sepEastingString","sepNorthingString","sep","sepEasting","sepNorthing","Point","fromMGRS","mgrsStr","toMGRS","C04","C06","C08","en","sphi","cphi","s","pj_mlfn","pj_enfn","ml0","delta_lon","sin_phi","cos_phi","al","als","c","cs","tq","ml","acos","pj_inv_mlfn","tan_phi","d","ds","f","g","temp","h","asin","max","log1py","hypot","pp","B","cos_2B","h1","h2","arg_r","arg_i","hr2","hi2","sin_arg_r","cos_arg_r","sinh_arg_i","sinh","cosh_arg_i","cosh","j","hr","hi1","hr1","hi","tmerc","cgb","cbg","utg","gtu","np","Qn","gatg","Zb","clens","Ce","Cn","sin_Cn","cos_Cn","sin_Ce","cos_Ce","asinhy","tmp","clens_cmplx","adjust_zone","etmerc","dependsOn","esinp","rc","phic0","ratexp","K","srat","gauss","sinc0","cosc0","R2","title","sinc","cosc","cosl","rho","coslat0","sinlat0","cons","ms1","X0","ssfn_","cosX0","sinX0","sinX","cosX","rh","sinlat","coslat","dlon","ce","Chi","phit","eccen","phy0","lambda0","sinPhy0","semiMajorAxis","flattening","e2","b0","k1","k2","k3","Sa1","Sa2","S","rotI","rotB","lambda","phy","prevPhy","iteration","TOL","cosph0","F","H","L","sinph0","J","gamma0","projectionName","lamc","lam1","lam2","phi1","phi2","alpha_c","no_off","no_rot","alp","gam","one_es","E","lam0","pi","singam","cosgam","sinrot","cosrot","rB","ArB","BrA","u_0","v_pole_n","v_pole_s","U","W","u","Qp","Sp","Tp","Vp","Up","sin1","cos1","ts1","sin2","cos2","ms2","ts2","ts0","ns","f0","rh1","theta","s45","s90","fi0","alfa","uq","u0","n0","s0","ro0","ad","gfi","deltav","eps","ro","czech","fi1","ok","e0","e3","e0fn","e1fn","e2fn","e3fn","mlfn","lam","nl","gN","tl","asq","cl","dd","imlfn","nl1","rl1","tl1","dl","dsq","adjust_lat","P00","P01","P02","P10","P11","P20","mode","S_POLE","N_POLE","EQUIT","OBLIQ","qp","qsfnz","mmf","apa","APA","authset","rq","xmf","ymf","sinb1","cosb1","coslam","sinlam","q","sinb","cosb","cCe","sCe","ab","beta","cosz","sinz","sin_po","cos_po","t1","qs1","t2","qs2","t3","qs0","ns0","qs","phi1z","asinz","eccnts","sin_p14","cos_p14","infinity_dist","coslon","iqsfnz","dlat","el","bl","tanphi","mln","mlnp","ma","B_re","B_im","C_re","C_im","delta_lat","d_phi","d_lambda","d_phi_n","d_psi","th_n_im1","th_re","th_im","th_n_re","th_n_im","z_re","z_im","z_n_im1","delta_x","z_n_re","z_n_im","iterations","num_re","num_im","den_re","den_im","den2","d_psi_n","C_y","C_x","delta_theta","ml1","ml2","sinth","costh","gsq","msq","xx","yy","xys","c1","c2","c3","a1","m1","th1","sin_p12","cos_p12","Mlp","Ml","Nl1","Nl","psi","Az","G","GH","Hs","kp","cos_c","s2","s3","s4","cosAz","Ee","sinpsi","FACE_ENUM","AREA_ENUM","qsc_fwd_equat_face_theta","area","qsc_shift_lon_origin","slon","face","one_minus_f","one_minus_f_squared","xy","sinlon","nu","cosmu","tannu","tantheta","invert_sign","xa","lp","COEFS_X","COEFS_Y","FXC","FYC","NODES","poly3_val","coefs","f_df","max_err","iters","upd","newton_rapshon","poly3_der","azi","degrees","tilt","pn1","rp","pfact","omega","cg","sg","cw","sw","yt","ba","bm","bq","flip_axis","sweep","radius_g_1","radius_g","rone_es","radius_p","radius_p2","radius_p_inv2","shape","v_x","v_y","v_z","det","v_zp","Proj","DataView","nFields","detectLittleEndian","header","nSubgridFields","nSubgrids","shiftType","fromSemiMajorAxis","fromSemiMinorAxis","toSemiMajorAxis","toSemiMinorAxis","readHeader","gridOffset","subHeader","lngColumnCount","latColumnCount","readSubgrids","nadgrid","proj4","sterea","stere","somerc","omerc","lcc","krovak","cass","laea","aea","gnom","cea","eqc","poly","nzmg","mill","sinu","moll","eqdc","vandg","aeqd","ortho","qsc","robin","geocent","tpers","geos","l","_maxEntries","_minEntries","ceil","clear","children","leaf","all","_all","search","toBBox","collides","load","insert","_build","_splitRoot","_insert","_condense","compareMinX","compareMinY","fromJSON","_chooseSubtree","_split","_adjustParentBBoxes","_chooseSplitAxis","_chooseSplitIndex","_allDistMargin","sort","traverseCoords","coordinates","traverseGeoJson","geometryCb","nodeCb","geojson","constructor","geometry","features","geometries","detectCrs","crsInfo","properties","JSON","stringify","determineCrs","reproject","transformFunc","transformed","gj","MAX_VALUE","_gj","calcBbox","reverse","toWgs84","numberRegexp","coordFormat","geoJSON","pairWKT","ringWKT","ringsWKT","wrapParens","multiRingsWKT","gJ","_","srid","re","white","multicoords","elem","depth","rings","pointer","linestring","polygon","newCoordsFormat","multipoint","multilinestring","multipolygon","geometrycollection","shared","worker","chunk","workerBundleString","sharedChunk","workerUrl","URL","createObjectURL","Blob","cx","bx","ax","cy","by","ay","p1x","p1y","p2x","p2y","solve","sampleCurveX","sampleCurveY","sampleCurveDerivativeX","solveCurveX","WorkerGlobalScope","navigator","userAgent","safari","ImageBitmap","now","performance","Date","frame","requestAnimationFrame","cancel","cancelAnimationFrame","getImageData","getContext","drawImage","resolveURL","href","hardwareConcurrency","prefersReducedMotion","matchMedia","matches","_add","sub","_sub","multByPoint","_multByPoint","divByPoint","_divByPoint","mult","_mult","div","_div","rotate","_rotate","rotateAround","_rotateAround","matMult","_matMult","_unit","perp","_perp","_round","mag","dist","distSqr","angle","angleTo","angleWith","angleWithSep","MAX_PARALLEL_IMAGE_REQUESTS","REGISTERED_PROTOCOLS","caches","open","supported","testSupport","createTexture","bindTexture","TEXTURE_2D","texImage2D","RGBA","UNSIGNED_BYTE","isContextLost","deleteTexture","onload","onerror","src","Unknown","Style","Source","Tile","Glyphs","SpriteImage","SpriteJSON","Image","freeze","super","status","statusText","url","referrer","location","protocol","AbortController","Request","method","credentials","headers","signal","fetch","then","arrayBuffer","Headers","toUTCString","getTime","Response","ReadableStream","blob","put","catch","abort","actor","send","XMLHttpRequest","responseType","setRequestHeader","withCredentials","response","getResponseHeader","host","accept","requestParameters","cancelled","createImageBitmap","revokeObjectURL","byteLength","cacheControl","expires","Q","tt","et","rt","_oneTimeListeners","listens","_eventedParent","_eventedParentData","setEventedParent","nt","$version","$root","version","required","values","metadata","default","period","light","terrain","sources","sprite","glyphs","transition","layers","source_vector","vector","tiles","bounds","scheme","xyz","tms","minzoom","maxzoom","attribution","promoteId","volatile","source_raster","raster","tileSize","source_raster_dem","encoding","terrarium","mapbox","source_geojson","maximum","minimum","tolerance","cluster","clusterRadius","clusterMaxZoom","clusterMinPoints","clusterProperties","lineMetrics","generateId","source_video","video","urls","source_image","image","layer","id","fill","line","symbol","circle","heatmap","hillshade","background","layout","paint","layout_background","visibility","visible","none","layout_fill","expression","interpolated","parameters","layout_circle","layout_heatmap","layout_line","butt","square","bevel","miter","requires","layout_symbol","auto","never","always","cooperative","viewport","both","tokens","horizontal","vertical","uppercase","lowercase","layout_raster","layout_hillshade","filter_operator","in","any","has","within","geometry_type","LineString","Polygon","function","stops","base","exponential","interval","categorical","colorSpace","rgb","lab","hcl","function_stop","anchor","color","intensity","exaggeration","elevationOffset","paint_fill","paint_line","paint_circle","paint_heatmap","paint_symbol","overridable","paint_raster","linear","nearest","paint_hillshade","paint_background","duration","delay","constant","it","identifier","__line__","at","st","ot","Boolean","valueOf","lt","ut","bindings","ht","kind","dt","mt","gt","xt","vt","bt","wt","_t","itemType","At","kt","St","It","Mt","zt","Bt","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellow","yellowgreen","Ct","Pt","Vt","Et","parseCSSColor","Ft","static","toArray","Tt","sensitivity","locale","collator","Intl","Collator","usage","compare","resolvedLocale","resolvedOptions","Lt","scale","fontStack","textColor","Dt","sections","fromString","$t","Rt","available","Ot","Ut","qt","jt","Nt","expectedType","evaluate","eachChild","outputDefined","Zt","Kt","string","boolean","object","Gt","every","Jt","Xt","parseColor","Yt","Ht","globals","feature","featureState","formattedSection","_parseColorCache","availableImages","canonical","geometryType","canonicalID","Wt","_evaluate","definitions","overloads","we","registry","path","scope","checkSubtype","errors","Qt","caseSensitive","diacriticSensitive","te","ee","ne","ie","ae","se","oe","le","ue","he","pe","fe","de","ye","me","ge","xe","ve","be","boundExpression","_parse","typeAnnotation","_e","Ae","ke","labels","outputs","Se","Ie","__proto__","padding","Me","ze","Be","Pe","Ve","Fe","Te","Le","De","$e","Re","Oe","Ue","interpolate","qe","je","Ne","operator","interpolation","Ze","controlPoints","interpolationFactor","Ke","Ge","Je","Xe","needle","haystack","Ye","fromIndex","He","inputType","cases","otherwise","MAX_SAFE_INTEGER","We","branches","Qe","beginIndex","endIndex","tr","rr","lhs","rhs","hasUntypedArgument","nr","ir","ar","sr","or","lr","ur","currency","minFractionDigits","maxFractionDigits","NumberFormat","minimumFractionDigits","maximumFractionDigits","format","cr","font","content","pr","fr","case","coalesce","let","literal","step","var","dr","yr","mr","gr","xr","vr","br","wr","_r","Ar","kr","Sr","Ir","Cr","Br","zr","Pr","interpolationType","zoomStops","Mr","register","typeof","rgba","heatmapDensity","lineProgress","accumulated","ln2","LN2","log10","LN10","ln","log2","isSupportedScript","upcase","downcase","Vr","_warningHistory","_evaluator","_defaultValue","_enumValues","evaluateWithoutErrorHandling","Er","Fr","enum","formatted","resolvedImage","Tr","_styleExpression","isStateDependent","Lr","Dr","Rr","$r","_parameters","_specification","Or","valueSpec","objectElementValidators","styleSpec","yn","objectKey","Ur","arrayElementValidator","arrayIndex","qr","jr","Nr","expressionContext","propertyKey","propertyType","Zr","Kr","Gr","Jr","needGeometry","Hr","Yr","Xr","Wr","Qr","tn","rn","nn","an","layerType","exec","sn","ref","un","cn","hn","pn","dn","constants","mn","gn","xn","vn","paintProperty","layoutProperty","bn","wn","_n","An","kn","Sn","cells","ArrayBuffer","Int32Array","subarray","bboxes","_insertReadonly","extent","uid","_forEachCell","_insertCell","query","_queryCell","_convertToCellCoord","_convertFromCellCoord","toArrayBuffer","In","Mn","writeable","klass","omit","shallow","_classRegistryKey","zn","Bn","isView","ImageData","serialize","$name","deserialize","Pn","first","update","lastIntegerZoom","lastIntegerZoomTime","lastZoom","lastFloorZoom","Vn","Arabic","Khmer","Hiragana","Katakana","Bopomofo","Kanbun","En","Ln","Fn","Tn","Dn","$n","On","Un","qn","jn","Nn","Zn","Kn","Gn","Jn","Xn","pluginStatus","pluginURL","Yn","Hn","Wn","applyArabicShaping","processBidirectionalText","processStyledBidirectionalText","isLoaded","isLoading","setState","isParsed","getPluginURL","fadeDuration","zoomHistory","crossFadingFactor","getCrossfadeParameters","fromScale","toScale","ti","specification","isDataDriven","possiblyEvaluate","ei","transitioned","ni","untransitioned","ri","_properties","_values","defaultTransitionablePropertyValues","getValue","setValue","getTransition","setTransition","begin","prior","defaultTransitioningPropertyValues","oi","hasTransition","ai","defaultPropertyValues","si","isConstant","constantOr","defaultPossiblyEvaluatedValues","li","ui","overrides","ci","_calculate","fi","overridableProperties","di","yi","_featureFilter","sourceLayer","_unevaluatedLayout","_transitionablePaint","setPaintProperty","validate","setLayoutProperty","_transitioningPaint","_crossfadeParameters","getLayoutProperty","_validate","getPaintProperty","endsWith","_handleSpecialPaintPropertyUpdate","_handleOverridablePaintPropertyUpdate","isHidden","updateTransitions","recalculate","is3D","isTileClipped","hasOffscreenPass","resize","mi","Int8","Int8Array","Uint8","Int16","Int16Array","Uint16","Uint16Array","Int32","Uint32","Uint32Array","Float32","Float32Array","gi","_structArray","_pos1","size","_pos2","_pos4","_pos8","xi","isTransferred","capacity","_trim","bytesPerElement","_refreshViews","reserve","uint8","vi","members","BYTES_PER_ELEMENT","bi","components","alignment","wi","int16","emplaceBack","emplace","_i","Ai","ki","Si","float32","Ii","uint16","Mi","zi","Bi","uint32","Ci","Pi","Vi","Ei","Fi","Ti","Li","Di","$i","Ri","Oi","Ui","qi","ji","anchorPointX","anchorPointY","x1","y1","x2","y2","featureIndex","sourceLayerIndex","bucketIndex","anchorPoint","Ni","Zi","anchorX","anchorY","glyphStartIndex","numGlyphs","vertexStartIndex","lineStartIndex","lineLength","segment","lowerSize","upperSize","lineOffsetX","lineOffsetY","writingMode","placedOrientation","hidden","crossTileID","associatedIconIndex","Ki","Gi","rightJustifiedTextSymbolIndex","centerJustifiedTextSymbolIndex","leftJustifiedTextSymbolIndex","verticalPlacedTextSymbolIndex","placedIconSymbolIndex","verticalPlacedIconSymbolIndex","textBoxStartIndex","textBoxEndIndex","verticalTextBoxStartIndex","verticalTextBoxEndIndex","iconBoxStartIndex","iconBoxEndIndex","verticalIconBoxStartIndex","verticalIconBoxEndIndex","numHorizontalGlyphVertices","numVerticalGlyphVertices","numIconVertices","numVerticalIconVertices","useRuntimeCollisionCircles","textBoxScale","textOffset0","textOffset1","collisionCircleDiameter","Ji","Xi","getoffsetX","Yi","getx","gety","gettileUnitDistanceFromAnchor","Hi","Wi","Qi","ta","ea","ra","na","ia","aa","sa","oa","la","ua","ca","ha","pa","fa","da","ya","segments","prepareSegment","MAX_VERTEX_ARRAY_LENGTH","vertexLength","sortKey","vertexOffset","primitiveOffset","primitiveLength","destroy","vaos","ga","va","wa","_a","murmur3","murmur2","Aa","ids","positions","indexed","ka","getPositions","Float64Array","Sa","Ia","Ma","gl","za","current","uniform1f","Ba","uniform4f","Ca","Pa","Va","Ea","uniformNames","setUniform","getBinding","Fa","patternFrom","patternTo","pixelRatioFrom","pixelRatioTo","setConstantPatternPositions","pixelRatio","tlbr","Ta","maxValue","paintVertexAttributes","paintVertexArray","populatePaintArray","_setPaintValue","updatePaintArray","upload","paintVertexBuffer","updateData","createVertexBuffer","La","useIntegerZoom","Da","layerId","zoomInPaintVertexArray","zoomOutPaintVertexArray","_setPaintValues","patterns","mid","zoomInPaintVertexBuffer","zoomOutPaintVertexBuffer","$a","binders","_buffers","Oa","Ua","cacheKey","getMaxValue","populatePaintArrays","updatePaintArrays","defines","getBinderAttributes","getBinderUniforms","getPaintVertexBuffers","getUniforms","binding","setUniforms","updatePaintBuffers","Ra","programConfigurations","needsUpload","_featureMap","_bufferOffset","composite","qa","ja","Na","Za","loadGeometry","Ka","Ga","Ja","overscaling","layerIds","hasPattern","layoutVertexArray","indexArray","stateDependentLayerIds","populate","addFeature","stateDependentLayers","uploadPending","uploaded","layoutVertexBuffer","indexBuffer","createIndexBuffer","Xa","is","Qa","Ya","Ha","Wa","rs","as","ss","os","ls","us","hs","ps","fs","ys","ms","gs","xs","vs","bs","ws","_s","As","ks","Ss","Uint8ClampedArray","Is","Ms","zs","Bs","Cs","resolution","clips","evaluationKey","Ps","Vs","Es","Fs","Ts","Ls","next","prev","steiner","Gs","js","Ns","$s","so","no","io","Ds","Ys","Ks","prevZ","nextZ","Os","Rs","Us","Js","Ws","eo","Xs","Zs","Qs","ao","oo","lo","co","uo","ho","po","fo","patternDependencies","yo","deviation","flatten","vertices","holes","dimensions","mo","patternFeatures","indexArray2","segments2","addFeatures","indexBuffer2","go","xo","vo","bo","wo","_o","Ao","ko","So","_pbf","_geometry","_keys","readFields","Io","readVarint","Mo","types","readSVarint","toGeoJSON","zo","Bo","Co","_features","Po","readString","readFloat","readDouble","readVarint64","readBoolean","Vo","Eo","VectorTile","VectorTileFeature","VectorTileLayer","Fo","To","Lo","Do","centroidVertexArray","centroidVertexBuffer","vertexCount","Ro","$o","Oo","Uo","qo","jo","No","Zo","Ko","Go","Jo","Xo","Yo","lineClipsArray","gradients","layoutVertexArray2","maxLineLength","layoutVertexBuffer2","lineFeatureClips","mapbox_clip_start","mapbox_clip_end","lineClips","addLine","distance","scaledDistance","totalDistance","updateScaledDistance","updateDistance","addCurrentVertex","addHalfVertex","Ho","Wo","Qo","rl","il","sl","toLocaleUpperCase","toLocaleLowerCase","ol","ul","pl","hl","buf","Varint","Fixed64","Bytes","Fixed32","fl","yl","TextDecoder","xl","vl","realloc","writeVarint","wl","writeSVarint","_l","writeFloat","Al","writeDouble","kl","writeBoolean","Sl","writeFixed32","Il","writeSFixed32","writeFixed64","zl","writeSFixed64","Bl","Cl","Pl","Vl","readMessage","El","bitmap","advance","Fl","metrics","readBytes","Tl","skip","readFixed32","readSFixed32","readFixed64","readSFixed64","readPackedVarint","readPackedSVarint","readPackedBoolean","readPackedFloat","readPackedDouble","readPackedFixed32","readPackedSFixed32","readPackedFixed64","readPackedSFixed64","writeTag","finish","writeString","writeBytes","writeRawMessage","writeMessage","writePackedVarint","writePackedSVarint","writePackedBoolean","writePackedFloat","writePackedDouble","writePackedFixed32","writePackedSFixed32","writePackedFixed64","writePackedSFixed64","writeBytesField","writeFixed32Field","writeSFixed32Field","writeFixed64Field","writeSFixed64Field","writeVarintField","writeSVarintField","writeStringField","writeFloatField","writeDoubleField","writeBooleanField","Ll","stretchX","stretchY","paddedRect","displaySize","Dl","haveRenderCallbacks","addImages","iconPositions","patternPositions","hasRenderCallback","patchUpdatedImages","dispatchRenderCallbacks","updatedImages","patchUpdatedImage","getImage","WritingMode","horizontalOnly","$l","Rl","imageName","Ol","sectionIndex","imageSectionID","addImageSection","addTextSection","getSection","getSectionIndex","getCharCode","verticalizePunctuation","ql","getMaxScale","forText","getNextImageSectionCharCode","forImage","Ul","fromFeature","Xl","positionedLines","iconsInText","verticalizable","positionedGlyphs","lineOffset","rect","glyph","Hl","horizontalAlign","verticalAlign","Yl","jl","Zl","Kl","Gl","badness","priorBreak","Jl","Wl","Ql","collisionPadding","tu","eu","layoutSize","minZoom","maxZoom","minSize","maxSize","ru","angleDelta","iu","au","su","ou","lu","uu","cu","hu","pu","du","stretch","yu","fixed","tex","glyphOffset","pixelOffsetTL","pixelOffsetBR","minFontScaleX","minFontScaleY","isSDF","fu","boxStartIndex","circleDiameter","boxEndIndex","gu","xu","_down","_up","peek","vu","bu","wu","SQRT2","_u","POSITIVE_INFINITY","Au","ku","Su","textMaxSize","zu","tilePixelRatio","allowVerticalPlacement","addToLineVertexArray","iconSizeData","Iu","compositeIconSizes","addSymbols","icon","placedSymbolArray","Mu","collisionBoxArray","glyphOffsetArray","Du","MAX_GLYPHS","addToSortKeyRanges","symbolInstances","Bu","sdf","textSizeData","compositeTextSizes","compareText","Cu","Pu","Vu","Eu","Fu","Tu","dynamicLayoutVertexArray","opacityVertexArray","dynamicLayoutVertexBuffer","opacityVertexBuffer","itemSize","Lu","layoutAttributes","collisionVertexArray","collisionVertexBuffer","hasRTLText","sortKeyRanges","collisionCircleArray","placementInvProjMatrix","placementViewportMatrix","canOverlap","qu","sortFeaturesByKey","sortFeaturesByY","writingModes","sourceID","createArrays","lineVertexArray","calculateGlyphDependencies","iconDependencies","glyphDependencies","getValueAndResolveTokens","hasDebugData","textCollisionBox","iconCollisionBox","destroyDebugData","tileUnitDistanceFromAnchor","_addCollisionDebugVertex","addCollisionDebugVertices","addDebugCollisionBoxes","generateCollisionDebugBuffers","_deserializeCollisionBoxesForSymbol","textBox","textFeatureIndex","verticalTextBox","verticalTextFeatureIndex","iconBox","iconFeatureIndex","verticalIconBox","verticalIconFeatureIndex","deserializeCollisionBoxes","collisionArrays","hasTextData","hasIconData","hasTextCollisionBoxData","hasIconCollisionBoxData","addIndicesForPlacedSymbol","getSortedSymbolIndexes","sortedAngle","symbolInstanceIndexes","symbolInstanceEnd","symbolInstanceStart","sortFeatures","featureSortOrder","addDynamicAttributes","$u","Ru","runtimeType","getOverride","hasOverride","Ou","Uu","_setPaintOverrides","createBucket","queryRadius","queryIntersectsFeature","hasPaintOverride","ju","Nu","Zu","onAdd","implementation","painter","onRemove","renderingMode","prerender","Ku","cameraToCenterDistance","_updateColorRamp","colorRamp","colorRampTexture","heatmapFbo","gradientVersion","stepInterpolant","gradientExpression","Gu","_callback","_triggered","MessageChannel","_channel","port2","onmessage","trigger","port1","postMessage","setTimeout","Ju","Xu","wrap","distanceTo","toBounds","Yu","setSouthWest","setNorthEast","_ne","_sw","getSouthWest","getNorthEast","getNorthWest","getWest","getNorth","getSouthEast","getEast","getSouth","contains","Hu","Wu","Qu","tc","ec","nc","toLngLat","toAltitude","meterInMercatorCoordinateUnits","ic","ac","lc","isChildOf","getTilePoint","sc","oc","overscaledZ","scaledTo","calculateScaledKey","isLessThan","unwrapTo","overscaleFactor","toUnwrapped","uc","stride","dim","_idx","MIN_SAFE_INTEGER","_unpackTerrarium","_unpackMapbox","getUnpackVector","getPixels","backfillBorder","cc","_stringToNumber","_numberToString","hc","_vectorTileFeature","_z","_x","_y","pc","tileID","grid3D","featureIndexArray","loadVTLayers","vtLayers","rawTileData","sourceLayerCoder","queryGeometry","queryPadding","dc","cameraQueryGeometry","yc","loadMatchingFeature","pixelPosMatrix","bucketLayerIDs","getId","getState","fc","intersectionZ","lookupSymbolFeatures","hasLayer","mc","PerformanceMarkers","fullLoad","gc","xc","vc","bc","mark","clearMetrics","clearMeasures","clearMarks","getPerformanceMetrics","measure","getEntriesByName","loadTime","fullLoadTime","fps","percentDroppedFrames","AJAXError","ARRAY_TYPE","Actor","mapId","callbacks","tasks","taskQueue","cancelCallbacks","invoker","process","receive","globalScope","hasCallback","targetMapId","mustQueue","sourceMapId","processTask","getWorkerSource","AlphaImage","CanonicalTileID","CollisionBoxArray","CollisionCircleLayoutArray","Color","DEMData","DataConstantProperty","DictionaryCoder","EXTENT","ErrorEvent","EvaluationParameters","Event","Evented","FeatureIndex","FillBucket","FillExtrusionBucket","GeoJSONFeature","ImageAtlas","ImagePosition","LineBucket","LineStripIndexArray","LngLat","LngLatBounds","MercatorCoordinate","ONE_EM","OverscaledTileID","PerformanceUtils","PosArray","Properties","QuadTriangleArray","RGBAImage","RasterBoundsArray","RequestPerformance","_marks","ResourceType","SegmentVector","SymbolBucket","Transitionable","TriangleIndexArray","Uniform1f","Uniform1i","uniform1i","Uniform2f","uniform2f","Uniform3f","uniform3f","Uniform4f","UniformColor","UniformMatrix4f","uniformMatrix4fv","UnwrappedTileID","ValidationError","ZoomHistory","asyncAll","bezier","bindAll","cacheEntryPossiblyAdded","getActor","clamp","clearTileCache","delete","clipLine","clone$1","clone$2","collisionCircleLayout","config","create$1","createExpression","createFilter","createLayout","createStyleLayer","cross","dot","dot$1","ease","emitValidationErrors","enforceCacheSizeLimit","evaluateSizeForFeature","uSize","uSizeT","evaluateSizeForZoom","evaluateVariableOffset","evented","exported","exported$1","filterObject","fromRotation","fromScaling","getAnchorAlignment","getAnchorJustification","getArrayBuffer","getJSON","getOverlapMode","getRTLTextPluginStatus","getReferrer","getVideo","muted","onloadstart","crossOrigin","invert","isImageBitmap","isSafari","isWorker","keysDifference","lazyLoadRTLTextPlugin","makeRequest","mapObject","mercatorXfromLng","mercatorYfromLat","mercatorZfromAltitude","mul","mul$1","multiply","nextPowerOfTwo","normalize","parseCacheControl","parseGlyphPbf","pbf","performSymbolLayout","bucket","iconsNeedLinear","layoutIconSize","layoutTextSize","glyphMap","glyphPositions","imagePositions","imageMap","sdfIcons","showCollisionBoxes","perspective","pick","plugin","pointGeometry","polygonIntersectsPolygon","potpack","refProperties","registerForPluginStateChange","renderColorRamp","rotateX","rotateZ","scale$1","setCacheLimits","setRTLTextPlugin","spec","sphericalToCartesian","sqrLen","toEvaluationFeature","transformMat3","transformMat4","transformMat4$1","translate","triggerPluginCompletionEvent","unicodeBlockLookup","uniqueId","validateCustomStyleLayer","render","validateLight","validateStyle","vectorTile","warnOnce","keyCache","_layerConfigs","_layers","familiesBySource","collectResourceTiming","returnDependencies","stacks","icons","buckets","glyphAtlasImage","imageAtlas","iconMap","request","rawData","layerIndex","loadVectorData","loading","loaded","loadTile","resourceTiming","reloadTile","reloadCallback","abortTile","removeTile","rawImageData","offscreenCanvas","offscreenCanvasContext","OffscreenCanvas","clearRect","_feature","tags","_geojsonTileLayer","rawGeometry","keycache","valuecache","fromVectorTileJs","fromGeojsonVt","GeoJSONWrapper","nodeSize","points","range","minPoints","radius","fround","trees","time","timeEnd","_cluster","getClusters","_limitZoom","numPoints","getChildren","_getOriginId","_getOriginZoom","parentId","getLeaves","_appendLeaves","getTile","_addTileFeatures","getClusterExpansionZoom","cluster_id","point_count","_map","point_count_abbreviated","numSimplified","numFeatures","debug","tileCoords","indexMaxZoom","indexMaxPoints","stats","total","splitTile","_geoJSONIndex","byteOffset","loadGeoJSON","loadData","_pendingRequest","_pendingCallback","abandoned","superclusterOptions","geojsonVtOptions","removeSource","clusterId","getClusterChildren","getClusterLeaves","limit","layerIndexes","workerSourceTypes","workerSources","demWorkerSources","registerWorkerSource","registerRTLTextPlugin","setReferrer","setImages","setLayers","getLayerIndex","updateLayers","removedIds","loadDEMTile","getDEMWorkerSource","removeDEMTile","loadWorkerSource","importScripts","syncRTLPluginState","getAvailableImages","lastIndexOf","reduceRight","isSealed","isFrozen","isExtensible","getOwnPropertyDescriptor","defineProperties","seal","preventExtensions","Worker","terminate","failIfMajorPerformanceCaveat","webGLContextAttributes","createShader","VERTEX_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","documentMode","antialias","stencil","docStyle","createElementNS","selectProp","userSelect","transformProp","capture","preventDefault","stopPropagation","suppressClickInternal","clientLeft","clientTop","button","parentNode","removeChild","documentElement","testProp","_transformRequestFn","transformRequest","normalizeSpriteURL","authority","setTransformRequest","texture","useMipmap","pixelStoreUnpackFlipY","pixelStoreUnpack","pixelStoreUnpackPremultiplyAlpha","premultiply","HTMLImageElement","HTMLCanvasElement","HTMLVideoElement","texSubImage2D","isSizePowerOfTwo","generateMipmap","LINEAR_MIPMAP_NEAREST","LINEAR","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","userImage","images","callbackDispatchedThisFrame","requestors","atlasImage","dirty","setLoaded","_notify","addImage","_validateStretch","_validateContent","updateImage","removeImage","listImages","getImages","getPixelSize","getPattern","bin","_updatePatternAtlas","atlasTexture","CLAMP_TO_EDGE","beginFrame","requestManager","localIdeographFontFamily","entries","setURL","getGlyphs","requests","ranges","_tinySDF","loadGlyphRange","_doesCharSupportLocalGlyph","tinySDF","TinySDF","fontSize","cutoff","fontFamily","fontWeight","draw","glyphWidth","glyphHeight","glyphLeft","glyphTop","glyphAdvance","fontStyle","_createCanvas","ctx","willReadFrequently","textBaseline","textAlign","fillStyle","gridOuter","gridInner","actualBoundingBoxAscent","actualBoundingBoxDescent","actualBoundingBoxLeft","actualBoundingBoxRight","measureText","fillText","_transitionable","setLight","_transitioning","getLight","nextRow","dashEntry","getDash","addDash","getDashRanges","isDash","zeroLength","addRoundDash","addRegularDash","ALPHA","REPEAT","workerPool","actors","currentActor","acquire","broadcast","release","vector_layers","vectorLayers","vectorLayerIds","validateBounds","dispatcher","reparseOverscaled","_loaded","_options","_collectResourceTiming","dataType","_tileJSONRequest","_requestManager","sourceCaches","clearTiles","tileBounds","sourceDataType","hasTile","setSourceProperty","setTiles","setUrl","getPixelRatio","aborted","_refreshExpiredTiles","setExpiryData","unloadTile","unloadVectorData","roundZoom","getTileTexture","extTextureFilterAnisotropic","texParameterf","TEXTURE_MAX_ANISOTROPY_EXT","extTextureFilterAnisotropicMax","saveTileTexture","dem","needsHillshadePrepare","needsTerrainPrepare","neighboringTiles","_getNeighboringTiles","backfilled","demTexture","fbo","_removed","_pendingLoads","_data","workerOptions","_updateWorkerData","setData","_finishLoading","setCoordinates","fromLngLat","_boundsArray","boundsBuffer","prepare","boundsSegments","simpleSegment","loop","triggerRepaint","play","pause","seek","seekable","currentTime","readyState","paused","animate","canvas","getElementById","_hasInvalidDimensions","_playing","getCanvas","calculatePosMatrix","maxPitchScaleFactor","tilesIn","wrappedTileID","queryResults","tile","queryRenderedFeatures","_state","getFeatureState","uses","expirationTime","hasSymbolBuckets","dependencies","textures","textureCoords","expiredRequestCount","registerFadeDuration","timeAdded","fadeEndTime","wasRequested","clearTextures","hasData","latestFeatureIndex","latestRawTileData","getLayer","justReloaded","imageAtlasTexture","glyphAtlasTexture","getBucket","querySourceFeatures","patternsLoaded","getExpiryTimeout","setFeatureState","holdingForFade","symbolFadeHoldUntil","symbolFadeFinished","clearFadeHold","setHoldDuration","setDependencies","hasDependency","reset","timeout","clearTimeout","order","_getAndRemoveByKey","getAndRemove","getByKey","setMaxSize","stateChanges","deletedStates","updateState","removeFeatureState","initializeTileState","coalesceChanges","_sourceLoaded","_paused","reload","_sourceErrored","_source","_tiles","_cache","_unloadTile","_timers","_cacheTimers","_maxTileCacheSize","_loadedParentTiles","_coveredTiles","getSource","resume","_shouldReloadOnResume","_loadTile","_abortTile","imageManager","getIds","getRenderableIds","_isIdRenderable","hasRenderableParent","findLoadedParent","_reloadTile","_tileLoaded","refreshedUponExpiration","_setTileReloadTimer","_backfillDEM","getTileByID","_retainLoadedChildren","_getLoadedTile","updateCacheSize","handleWrapJump","_prevLng","used","usedForTerrain","getVisibleUnwrappedCoordinates","coveringTiles","coveringZoomLevel","maxOverzooming","maxUnderzooming","_updateRetainedTiles","_addTile","_fadeDuration","_removeTile","_updateLoadedParentTileCache","releaseSymbolFadeTiles","getCameraQueryGeometry","pointCoordinate","getVisibleCoordinates","posMatrix","reloadTilesForDependencies","active","workers","workerCount","numActive","isPreloaded","setStyle","addLayer","removeLayer","setFilter","addSource","setGeoJSONSourceData","setLayerZoomRange","setLayerProperty","setCenter","setZoom","setBearing","setPitch","setSprite","setGlyphs","command","_distances","paddedLength","lerp","boxCells","circleCells","xCellCount","yCellCount","circleKeys","boxKeys","circles","xScale","yScale","boxUid","circleUid","keysLength","_insertBoxCell","insertCircle","_insertCircleCell","_query","hitTest","overlapMode","seenUids","box","hitTestCircle","_queryCellCircle","_circleAndRectCollide","_circlesCollide","_convertToXCellCoord","_convertToYCellCoord","labelPlaneMatrix","glCoordMatrix","signedDistanceFromCamera","useVertical","notEnoughRoom","needsFlipping","last","ignoredGrid","pitchfactor","_pitch","screenRightBoundary","screenBottomBoundary","gridRightBoundary","gridBottomBoundary","perspectiveRatioCutoff","placeCollisionBox","projectAndGetPerspectiveRatio","perspectiveRatio","isInsideGrid","offscreen","isOffscreen","placeCollisionCircles","collisionDetected","queryRenderedSymbols","bucketInstanceId","insertCollisionBox","collisionGroupID","insertCollisionCircles","getViewportMatrix","opacity","placed","skipFade","invProjMatrix","viewportMatrix","crossSourceCollisions","maxGroupID","collisionGroups","ID","predicate","collisionIndex","placements","opacities","variableOffsets","stale","commitTime","retainedQueryData","collisionCircleArrays","prevPlacement","placedOrientations","getBucketParts","textLabelPlaneMatrix","labelToScreenMatrix","textPixelRatio","partiallyEvaluatedTextSize","collisionGroup","attemptAnchorPlacement","textOffset","prevAnchor","markUsedJustification","markUsedOrientation","placedGlyphBoxes","placeLayerBucketPart","getElevation","elevation","commit","zoomAtLastRecencyCheck","prevZoomAdjustment","zoomAdjustment","symbolFadeChange","lastPlacementChangeTime","updateLayerOpacities","updateBucketOpacities","hasTransitions","stillRecent","setStale","_sortAcrossTiles","_currentTileIndex","_currentPartIndex","_seenCrossTileIDs","_bucketParts","continuePlacement","placement","_currentPlacementIndex","_forceFullPlacement","_showCollisionBoxes","_done","isDone","_inProgressLayer","indexedSymbolInstances","getScaledCoordinates","findMatches","maxCrossTileID","generate","indexes","usedCrossTileIDs","addBucket","removeBucketCrossTileIDs","removeStaleBuckets","crossTileIDs","maxBucketInstanceId","bucketsInCurrentPlacement","pruneUnusedLayers","sourceCache","_renderableTilesKeys","_sourceTileCache","renderHistory","deltaZoom","renderHistorySize","destruct","removeOutdated","getRenderableTiles","getTerrainCoords","getSourceTile","tilesAfterTime","timeLoaded","qualityFactor","meshSize","_demMatrixCache","coordsIndex","_coordsTextureSize","clearRerenderCache","getDEMElevation","getTerrainData","u_terrain_matrix","rememberForRerender","_rerender","needsRerender","_emptyDemTexture","_emptyDepthTexture","_emptyDemUnpack","NEAREST","_emptyDemMatrix","matrix","u_depth","u_terrain","u_terrain_dim","u_terrain_unpack","u_terrain_offset","u_terrain_exaggeration","depthTexture","_fboDepthTexture","getRTTFramebuffer","_rttFramebuffer","createFramebuffer","depthAttachment","createRenderbuffer","DEPTH_COMPONENT16","getFramebuffer","devicePixelRatio","_fbo","_fboCoordsTexture","colorAttachment","getCoordsTexture","_coordsTexture","bindFramebuffer","framebuffer","readPixels","getTerrainMesh","_mesh","vertexBuffer","getMinMaxElevation","minElevation","maxElevation","glyphManager","lineAtlas","crossTileSymbolIndex","_serializedLayers","_order","_availableImages","_resetUpdates","_rtlTextPluginCallback","sourceId","_validateLayer","loadURL","_request","_load","loadJSON","loadEmpty","stylesheet","_loadSprite","_serializeLayers","setTerrain","_spriteRequest","_updatedSources","_checkLoaded","_changed","_updatedLayers","_removedLayers","_updateWorkerLayers","_reloadSource","_clearSource","_updateTilesForChangedImages","_updatedPaintProps","_changedImages","_terrainDataCallback","_terrainfreezeElevationCallback","updateElevation","freezeElevation","recalculateZoom","_afterImageUpdated","isSourceLoaded","_layerOrderChanged","_updateLayer","moveLayer","getFilter","_flattenAndSortRenderedFeatures","addSourceType","getSourceType","setSourceType","workerSourceURL","_remove","_updateSources","_generateCollisionBoxes","_updatePlacement","pauseablePlacement","_releaseSymbolFadeTiles","getResource","prelude","backgroundPattern","clippingMask","heatmapTexture","collisionBox","collisionCircle","fillOutline","fillOutlinePattern","fillPattern","fillExtrusion","fillExtrusionPattern","hillshadePrepare","lineGradient","linePattern","lineSDF","symbolIcon","symbolSDF","symbolTextAndIcon","terrainDepth","terrainCoords","fragmentSource","vertexSource","staticAttributes","staticUniforms","boundProgram","boundLayoutVertexBuffer","boundPaintVertexBuffers","boundIndexBuffer","boundVertexOffset","boundDynamicVertexBuffer","vao","extVertexArrayObject","boundDynamicVertexBuffer2","boundDynamicVertexBuffer3","bindVertexArrayOES","dynamicDraw","freshBind","numAttributes","createVertexArrayOES","currentNumAttributes","disableVertexAttribArray","enableAttributes","setVertexAttribPointers","deleteVertexArrayOES","program","createProgram","FRAGMENT_SHADER","failedToCreate","attachShader","attributes","bindAttribLocation","linkProgram","deleteShader","getUniformLocation","fixedUniforms","terrainUniforms","binderUniforms","setDepthMode","setStencilMode","setColorMode","setCullFace","activeTexture","TEXTURE2","TEXTURE3","LINES","TRIANGLES","LINE_STRIP","drawElements","UNSIGNED_SHORT","tileZoom","u_image","u_texsize","u_scale","u_fade","u_pixel_coord_upper","u_pixel_coord_lower","u_matrix","u_lightpos","u_lightintensity","u_lightcolor","u_vertical_gradient","u_opacity","u_height_factor","u_world","pixelsToGLUnits","u_camera_to_center_distance","u_scale_with_map","translatePosMatrix","u_pitch_with_map","u_device_pixel_ratio","u_extrude_scale","u_pixels_to_tile_units","u_overscale_factor","u_color","u_overlay","u_overlay_scale","u_intensity","u_ratio","u_units_to_pixels","u_image_height","u_patternscale_a","u_patternscale_b","u_sdfgamma","u_tex_y_a","u_tex_y_b","u_mix","u_tl_parent","u_scale_parent","u_buffer_scale","u_fade_t","mix","u_image0","u_image1","u_brightness_low","u_brightness_high","u_saturation_factor","u_contrast_factor","u_spin_weights","u_is_size_zoom_constant","u_is_size_feature_constant","u_size_t","u_size","u_pitch","u_rotate_symbol","u_aspect_ratio","u_fade_change","u_label_plane_matrix","u_coord_matrix","u_is_text","u_texture","u_gamma_scale","u_is_halo","u_texsize_icon","u_texture_icon","u_pattern_tl_a","u_pattern_br_a","u_pattern_tl_b","u_pattern_br_b","u_pattern_size_a","u_pattern_size_b","u_scale_a","u_scale_b","u_tile_units_to_pixels","u_inv_matrix","u_viewport_size","u_color_ramp","u_latrange","u_light","u_shadow","u_highlight","u_accent","u_dimension","u_zoom","u_unpack","u_terrain_coords_id","createBuffer","unbindVAO","bindElementBuffer","bufferData","ELEMENT_ARRAY_BUFFER","DYNAMIC_DRAW","STATIC_DRAW","bufferSubData","deleteBuffer","bindVertexBuffer","ARRAY_BUFFER","enableVertexAttribArray","vertexAttribPointer","getDefault","setDefault","clearColor","clearDepth","clearStencil","colorMask","depthMask","stencilMask","func","ALWAYS","mask","stencilFunc","KEEP","stencilOp","enable","STENCIL_TEST","disable","depthRange","DEPTH_TEST","LESS","depthFunc","BLEND","ONE","ZERO","blendFunc","blendColor","FUNC_ADD","blendEquation","CULL_FACE","BACK","cullFace","CCW","frontFace","useProgram","TEXTURE0","drawingBufferWidth","drawingBufferHeight","FRAMEBUFFER","bindRenderbuffer","RENDERBUFFER","bindBuffer","pixelStorei","UNPACK_ALIGNMENT","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_FLIP_Y_WEBGL","setDirty","framebufferTexture2D","COLOR_ATTACHMENT0","framebufferRenderbuffer","DEPTH_ATTACHMENT","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","deleteRenderbuffer","deleteFramebuffer","blendFunction","Replace","disabled","unblended","alphaBlended","getExtension","stencilTest","depthTest","blend","cullFaceSide","getParameter","MAX_TEXTURE_MAX_ANISOTROPY_EXT","extTextureHalfFloat","extRenderToTextureHalfFloat","extTimerQuery","maxTextureSize","MAX_TEXTURE_SIZE","renderbufferStorage","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","fail","depthFail","pass","ReadOnly","ReadWrite","circleArray","circleOffset","invTransform","colorModeForRenderPass","backCCW","shiftedAnchor","depthModeForSublayer","rotating","zooming","buffers","uniformValues","atlasTextureIcon","atlasInterpolation","atlasInterpolationIcon","hasHalo","terrainData","TEXTURE1","stencilModeForClipping","moving","rasterBoundsBuffer","quadTriangleIndexBuffer","rasterBoundsSegments","SCISSOR_TEST","scissor","emptyTexture","initDebugOverlayCanvas","debugOverlayCanvas","shadowColor","shadowBlur","lineWidth","strokeStyle","strokeText","debugOverlayTexture","debugBuffer","debugSegments","tileBorderIndexBuffer","LEQUAL","depthRangeFor3D","_coordsDescendingInv","_coordsDescendingInvStr","_renderToTexture","_stacks","_prevType","_renderableTiles","_init","renderLayer","currentLayer","_renderTileClippingMasks","renderPass","programConfiguration","HALF_FLOAT_OES","viewportBuffer","viewportSegments","gradient","opaquePassEnabledForLayer","stencilModeFor3D","stencilConfigForOverlap","isPatternMissing","tileExtentBuffer","tileExtentSegments","custom","setCustomLayerDefaults","customLayerMatrix","setBaseState","_tileTextures","terrainFacilitator","renderTime","setup","numSublayers","depthEpsilon","gpuTimers","stencilClearMode","nextStencilID","currentStencilSource","_tileClippingMaskIDs","REPLACE","NOTEQUAL","EQUAL","GEQUAL","_showOverdrawInspector","CONSTANT_COLOR","opaquePassCutoff","projMatrix","showOverdrawInspector","showTileBoundaries","showPadding","centerPoint","gpuTimingStart","gpuTimingEnd","gpuTiming","calls","cpuTime","createQueryEXT","beginQueryEXT","TIME_ELAPSED_EXT","endQueryEXT","collectGpuTimers","queryGpuTimers","getQueryObjectEXT","QUERY_RESULT_EXT","deleteQueryEXT","cache","planes","quadrant","distanceX","distanceY","intersects","maxValidLatitude","_renderWorldCopies","_minZoom","_maxZoom","_minPitch","_maxPitch","setMaxBounds","_center","_elevation","_fov","_unmodified","_edgeInsets","_posMatrixCache","_alignedPosMatrixCache","maxPitch","latRange","_calcMatrices","minPitch","renderWorldCopies","worldSize","centerOffset","rotationMatrix","fov","_zoom","zoomScale","zoomFraction","_constrain","isPaddingEqual","interpolatePadding","scaleZoom","getCameraPoint","fromInvProjectionMatrix","aabb","fullyVisible","distanceSq","tileDistanceToCamera","unmodified","project","unproject","getCameraPosition","lngLat","pointLocation","altitude","_pixelPerMeter","setLocationAtPoint","locationCoordinate","coordinateLocation","locationPoint","coordinatePoint","pixelMatrix3D","pixelMatrixInverse","pixelMatrix","getBounds","getHorizon","getMaxBounds","lngRange","alignedProjMatrix","mercatorMatrix","_constraining","cameraToSeaLevelDistance","_hashName","encodeURIComponent","_updateHash","_updateHashUnthrottled","addTo","_onHashChange","getHashString","hash","_getCurrentHash","dragRotate","isEnabled","touchZoomRotate","history","replaceState","linearity","easing","deceleration","maxSpeed","_inertiaBuffer","_drainInertiaBuffer","settings","_onMoveEnd","pan","pinchAround","around","zoomDelta","bearingDelta","pitchDelta","panDelta","amount","noMoveStart","mousePos","getCanvasContainer","originalEvent","_defaultPrevented","defaultPrevented","changedTouches","touchPos","lngLats","_clickTolerance","clickTolerance","_mousedownPos","wheel","_firePreventable","mousedown","mouseup","click","dblclick","mouseover","mouseout","touchstart","touchmove","touchend","touchcancel","isActive","_delayContextMenu","_ignoreContextMenu","_contextMenuEvent","contextmenu","_el","_container","_enabled","_active","shiftKey","disableDrag","_startPos","_lastPos","mousemoveWindow","_box","classList","_fireEvent","setTransform","mouseupWindow","suppressClick","cameraAnimation","fitScreenCoordinates","keydown","keyCode","enableDrag","numTouches","centroid","startTime","timeStamp","singleTap","numTaps","lastTime","lastTap","_zoomIn","_zoomOut","easeTo","_moved","_lastPoint","_eventButton","_correctButton","_move","mouseButton","buttons","ctrlKey","_minTouches","cooperativeGestures","_touches","_sum","_cancelCooperativeMessage","_calculateTransform","_cooperativeGestures","_onCooperativeGesture","_firstTwoTouches","_start","_aroundCenter","_distance","_startDistance","_minDiameter","_startVector","_vector","_isBelowThreshold","_valid","_firstMove","_lastPoints","_currentTouchCount","gestureBeginsVertically","panStep","bearingStep","pitchStep","_panStep","_bearingStep","_pitchStep","_rotationDisabled","altKey","metaKey","easeId","disableRotation","enableRotation","_handler","_delta","_defaultZoomRate","_wheelZoomRate","setZoomRate","setWheelZoomRate","_finishTimeout","isZooming","_zooming","_metaPress","deltaMode","WheelEvent","DOM_DELTA_LINE","deltaY","_lastWheelEventTime","_type","_lastValue","_timeout","_onTimeout","_lastWheelEvent","_frameId","_around","_aroundPoint","_triggerRenderFrame","renderFrame","_targetZoom","_startZoom","_easing","_smoothOutEasing","noInertia","needsRenderFrame","_prevEase","_clickZoom","_tapZoom","_tap","_swipePoint","_swipeTouch","_tapTime","_mousePan","_touchPan","_inertiaOptions","_pitchWithRotate","pitchWithRotate","_mouseRotate","_mousePitch","_touchZoom","_touchRotate","_tapDragZoom","drag","_handlers","_handlersById","_changes","_inertia","_bearingSnap","bearingSnap","_previousActiveHandlers","_eventsInProgress","_addDefaultHandlers","passive","handleWindowEvent","handleEvent","boxZoom","doubleClickZoom","touchPitch","dragPan","scrollZoom","keyboard","interactive","handlerName","allowed","stop","_updatingCamera","_fireEvents","isRotating","isMoving","_blockedByActive","_getMapTouches","mergeHandlerResult","_stop","_applyChanges","_updateMapTransform","_drag","_update","resetNorth","_requestFrame","_renderTaskQueue","run","logToElement","innerHTML","_moving","panBy","panTo","zoomTo","zoomIn","zoomOut","getPadding","setPadding","rotateTo","resetNorthPitch","snapToNorth","cameraForBounds","_cameraForBoxAndBearing","fitBounds","_fitInternal","flyTo","calculateCameraOptionsFromTo","essential","_normalizeBearing","_normalizeCenter","_rotating","pitching","_pitching","_padding","_easeId","_prepareEase","_ease","_fireMoveEvents","_afterEase","speed","curve","screenSpeed","maxDuration","isEasing","_easeFrameId","_cancelRenderFrame","_onEaseFrame","_onEaseEnd","handlers","_easeStart","_easeOptions","_requestRenderFrame","_renderFrameCallback","getDefaultPosition","_compact","compact","_compactButton","_toggleAttribution","_setElementTitle","_innerContainer","_updateAttributions","_updateCompact","_updateData","_updateCompactMinimize","_attribHTML","_getUIString","setAttribute","removeAttribute","customAttribution","styleOwner","owner","styleId","_editLink","offsetWidth","rel","display","_queue","_id","_cleared","_currentlyRunning","attributionControl","maplibreLogo","preserveDrawingBuffer","trackResize","refreshExpiredTiles","maxTileCacheSize","showCompass","showZoom","visualizePitch","element","mouseRotate","mousePitch","down","move","offTemp","targetTouches","HTMLElement","_anchor","_color","_scale","_draggable","draggable","_isDragging","_rotation","rotation","_rotationAlignment","rotationAlignment","_pitchAlignment","pitchAlignment","_element","_offset","_defaultMarker","createNS","setAttributeNS","rx","ry","_popup","setDraggable","_onMapClick","_opacityTimeout","_addDragHandler","_onUp","getLngLat","_lngLat","setLngLat","_pos","getElement","setPopup","_onKeyPress","_originalTabIndex","getAttribute","charCode","togglePopup","getPopup","isOpen","getOffset","setOffset","_pointerdownPos","_positionDelta","isDraggable","setRotation","getRotation","setRotationAlignment","getRotationAlignment","setPitchAlignment","getPitchAlignment","positionOptions","enableHighAccuracy","maximumAge","fitBoundsOptions","trackUserLocation","showAccuracyCircle","showUserLocation","maxWidth","clientHeight","closeButton","closeOnClick","focusAfterOpen","Map","_interactive","_failIfMajorPerformanceCaveat","_preserveDrawingBuffer","_antialias","_trackResize","_crossSourceCollisions","_crossFadingFactor","_controls","_mapId","_locale","_pixelRatio","maxBounds","_setupContainer","_setupPainter","_onWindowOnline","_onWindowResize","_setupCooperativeGestures","_hash","_localIdeographFontFamily","addControl","logoPosition","_getMapId","_controlPositions","insertBefore","firstChild","removeControl","hasControl","_containerDimensions","_resizeCanvas","setPixelRatio","setMinZoom","getMinZoom","setMaxZoom","getMaxZoom","setMinPitch","getMinPitch","setMaxPitch","getMaxPitch","getRenderWorldCopies","setRenderWorldCopies","_createDelegatedListener","delegates","_delegatedListeners","diff","_diffStyle","_updateStyle","_lazyInitEmptyStyle","_updateDiff","getStyle","isStyleLoaded","getTerrain","areTilesLoaded","hasImage","loadImage","_canvasContainer","_canvas","clientWidth","_contextLost","_contextRestored","_onMapScroll","_cooperativeGesturesScreen","windowsHelpText","platform","macHelpText","mobileHelpText","_frame","scrollTop","scrollLeft","_styleDirty","_sourcesDirty","_render","_placementDirty","gpuTime","layerTimes","_repaint","_fullyLoaded","redraw","loseContext","_showTileBoundaries","_showPadding","repaint","_vertices","_setCacheLimits","NavigationControl","_zoomInButton","_createButton","_zoomOutButton","_compass","_compassIcon","_updateZoomButtons","_rotateCompassArrow","_setButtonTitle","GeolocateControl","_setupUI","permissions","geolocation","_geolocationWatchID","clearWatch","_userLocationDotMarker","_accuracyCircleMarker","_onZoom","_isOutOfMapMaxBounds","longitude","latitude","_setErrorState","_watchState","_geolocateButton","_onSuccess","_updateMarker","_finish","_lastKnownPosition","_updateCamera","_dotElement","geolocateSource","_accuracy","_updateCircleRadius","_circleElement","_onError","_clearWatch","_timeoutId","_setup","watchPosition","getCurrentPosition","AttributionControl","LogoControl","ScaleControl","setUnit","FullscreenControl","_fullscreen","_fullscreenchange","_checkFullscreenSupport","_changeIcon","fullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","webkitFullscreenEnabled","_fullscreenButton","_updateTitle","_onClickFullscreen","_getTitle","_isFullscreen","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","toggle","exitFullscreen","mozCancelFullScreen","msExitFullscreen","webkitCancelFullScreen","requestFullscreen","mozRequestFullScreen","msRequestFullscreen","webkitRequestFullscreen","TerrainControl","_terrainButton","_toggleTerrain","_updateTerrainIcon","Popup","_onClose","closeOnMove","_focusFirstElement","_trackPointer","_onMouseMove","_content","_onDrag","trackPointer","setText","setDOMContent","createTextNode","setHTML","createDocumentFragment","getMaxWidth","setMaxWidth","hasChildNodes","_createCloseButton","addClassName","removeClassName","toggleClassName","_closeButton","_tip","offsetHeight","querySelector","focus","Marker","CanvasSource","GeoJSONSource","ImageSource","RasterDEMTileSource","RasterTileSource","VectorTileSource","VideoSource","prewarm","clearPrewarmedResources","maxParallelImageRequests","clearStorage","addProtocol","removeProtocol","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","prop","Symbol","toStringTag","objectToString","isFunction","escapeRegExp","hasProperty","propName","regExpTest","nonSpaceRe","isWhitespace","testRegExp","entityMap","whiteRe","spaceRe","equalsRe","curlyRe","tagRe","Scanner","tail","Context","parentContext","Writer","templateCache","eos","scan","scanUntil","lookup","primitive","intermediateValue","lookupHit","clearCache","template","mustache","isCacheEnabled","openingTagRe","closingTagRe","closingCurlyRe","lineHasNonSpace","spaces","hasTag","nonSpace","indentation","tagIndex","stripSpace","compileTags","tagsToCompile","chr","token","openSection","scanner","valueLength","nestedTokens","collector","numTokens","nestTokens","lastToken","squashedTokens","squashTokens","parseTemplate","partials","getConfigTags","renderTokens","originalTemplate","renderSection","renderInverted","renderPartial","unescapedValue","escapedValue","rawValue","indentPartial","partial","filteredIndentation","partialByNl","indentedValue","escape","getConfigEscape","defaultWriter","RM2Event","subscribe","unsubscribe","expose","_definition","_crsCode","cp","definedProjection","_projections","projection","ex","coordinate","sourceProjection","targetProjection","crsCode","earthRadius","factors","centimeters","centimetres","feet","inches","kilometers","kilometres","meters","metres","miles","millimeters","millimetres","nauticalmiles","radians","yards","geom","feat","coordinates_1","ring","featureCollection","radiansToLength","factor","lengthToRadians","radiansToDegrees","degreesToRadians","cloneFeature","cloned","cloneProperties","cloneGeometry","deepSlice","cloneFeatureCollection","coordEach","excludeWrapCoord","stopG","geometryMaybeCollection","isGeometryCollection","wrapShrink","coordIndex","isFeatureCollection","isFeature","geomIndex","multiFeatureIndex","geometryIndex","geomType","geomEach","featureProperties","featureBBox","featureId","flattenEach","segmentReduce","initialValue","previousValue","started","segmentIndex","previousCoords","previousFeatureIndex","previousMultiIndex","prevGeomIndex","currentCoord","featureIndexCoord","multiPartIndexCoord","currentSegment","segmentEach","west","east","north","lowLeft","bboxPolygon","xSum","ySum","results","getCoord","coordinates1","coordinates2","dLat","dLon","Coordinate","ordinates","fromOrdinates","toOrdinates","Envelope","minx","miny","maxx","maxy","envelope","fromNumArray","Geometry","getCoordinate","getCentroid","flattenCoords","getCoordinates","getEnvelopeInternal","p1","p2","fromCoordinate","flat","wktString","fromGeoJson","geoJson","MultiLineString","MultiPoint","MultiPolygon","shell","toGeoJson","lsCoords","polygonPaths","CameraChangeOptions","PanOptions","relCenterX","relCenterY","minResolution","FitOptions","PopupCarouselElementId","ServiceType","_onOpen","_onSlide","_handleSlide","_selectedFeatureId","selectedFeature","getMaxWidthForPage","_featureCollection","_metadata","getService","Localization","refresh","isCarousel","mbPopup","closesOnClick","hasCloseButton","addContainer","parentElement","carouselEl","panOnPositionChange","cameraOptions","onOpen","onClose","onSlide","close","panPopup","topLeftX","topRightX","topRightY","bottomLeftX","bottomLeftY","bottomRightX","mapSW","mapSWPixel","mapNE","mapNEPixel","deltaX","newSW","newNE","newCenter","slideTo","page","carousel","PopupOptions","panOnOpen","showMarkerOnMobile","CarouselPopupOptions","selectedItem","MapControlType","HighlightType","LineType","CircleRadiusUnitType","Feature","setProperties","getKeys","getField","setField","getProperties","getInternalId","setInternalId","instance","toGeoJsonString","mbFt","FeatureCollection","_idIndex","_spatialIndex","items","callbackfn","thisArg","getAll","getById","getByProperty","setCrsCode","getCrsCode","Crs","getByEnvelope","getByCoordinate","mbFc","fromMb","fromGeoJsonTyped","ftColl","setProperty","CrsProperties","NominatimServiceOptions","requestsTimeoutMs","queryUrl","query_v2Url","query_v3Url","reverseGeocodingUrl","GeocodeLocQueryUrl","GeocodeLocReverseUrl","QueryOptions","pageSize","lang","ReverseGeocodingOptions","NominatimService","Nominatim","enabled","res","rej","xhr","responseText","ontimeout","onabort","display_Name","display_name","class","category","dateTime","boundingBox","boundingbox","fromWkt","geoText","geotext","relevance","importance","service","query_v2","query_v3","Query_v3Request","reverse_v3","GeocodeLoc","GeocodeLocReverse","req","dataSource","ModelVersion","InCrs","OutCrs","HighlightOptions","HighlightTypePropertyName","applyFeatureHighlightOptions","fOpt","MarkerOptions","PolygonOptions","LineOptions","CircleOptions","FeatureHighlightOptions","zindex","IconPropertyName","AnchorPropertyName","SizePropertyName","OffsetPropertyName","ZIndexKeyPropertyName","applyOptionsToFeatureProperties","highlightTypeToString","props","fillColor","fillOpacity","outlineColor","outlineWidth","FillColorPropertyName","FillOpacityPropertyName","OutlineColorPropertyName","OutlineWidthPropertyName","lineColor","lineOpacity","lineType","Solid","lineJoin","lineCap","LineColorPropertyName","LineOpacityPropertyName","LineWidthPropertyName","LineTypePropertyName","Line","lineTypeToString","radiusUnitType","Pixels","CircleColorPropertyName","CircleOpacityPropertyName","CircleRadiusPropertyName","CircleRadiusUnitTypePropertyName","Circle","circleRadiusTypeToString","final","bear","calculateFinalBearing","lon1","lon2","origin","longitude1","latitude1","bearingRad","latitude2","startDist","stopDist","overshot","direction","origCoordsLength","travelled","segmentLength","numberOfSegments","isInteger","sliceLineSegments","RouteStatusResponseDTO","dto","route","RouteId","OptimalTTMs","RealTTMs","OptimalToEndTTMs","RealToEndTTMs","TravelTimeStatus","SegmentTravelTimes","SegmentIds","isSelected","routeColsVals","consecutiveSegment","segmentNrs","segmentLs","SegmentLengthMM","segmentOptimalTT","colValue","getRouteEdgeColorValue","segFt","getRouteColor","getRouteTravelTimeBackgroundClass","optimalTT","colorValue","getColorVals","fraction","upper","lower","lowerColor","hexToRgb","lowerData","upperColor","upperData","rgbToHex","lowerIndex","aboveIndex","hex","rStr","gStr","bStr","rDecimal","gDecimal","bDecimal","RouteOptions","PathMode","Fastest","RouteHighlightOptions","routeStyle","startPointStyle","viaPointStyle","endPointStyle","stationStyle","routeStyles","startPointStyles","viaPointStyles","endPointStyles","stationStyles","RoutingServiceOptions","urlv1","urlMultiple","urlRouteStatus","RouteFeatureCollection","RouteInstructionsFeatureCollection","RFunctionalRoadClass","RFormOfWay","RouteMultipleResponse","locations","routes","Routes","Instructions","Id","RoutingService","Routing","setOptions","async","locs","loc","routingRequest","profile","Mode","typeOfRoute","Points","Type","Odsek","Stacionaza","routeStr","postRequest","pointsFt","Title","includes","Cache","CurrentSegmentIndex","Route","fromResponse","_typeof","iterator","_classCallCheck","Constructor","_defineProperties","descriptor","configurable","writable","_createClass","protoProps","staticProps","_assertThisInitialized","ReferenceError","_setPrototypeOf","setPrototypeOf","_inherits","subClass","superClass","_possibleConstructorReturn","_getPrototypeOf","_defineProperty","_arrayLikeToArray","arr2","_toArray","minLen","enumerableOnly","symbols","sym","_objectSpread","getOwnPropertyDescriptors","consoleLogger","baseLogger","Logger","concreteLogger","prefix","logger","bool","_len","_key","_len2","_key2","_len3","_key3","_len4","_key4","lvl","debugOnly","moduleName","observers","_this","event","observer","_cloned","defer","promise","makeString","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","setPath","newValue","_getLastOfPath","getPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","regexEscape","str","_entityMap","isIE10","userAgentData","chars","ownKeys$1","_objectSpread$1","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","Proxy","_isNativeReflectConstruct","Super","NewTarget","deepFind","keySeparator","paths","joinedPath","ResourceStore","_EventEmitter","_super","defaultNS","ignoreJSONStructure","silent","addNamespaces","resources","addResource","deep","pack","hasResourceBundle","removeNamespaces","compatibilityAPI","getDataByLanguage","postProcessor","processors","addPostProcessor","translator","processor","ownKeys$2","_objectSpread$2","_createSuper$1","_isNativeReflectConstruct$1","checkedLoadedFor","Translator","services","language","resolved","nsSeparator","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","matched","looksLikeObjectPath","interpolator","nestingRegexp","lastKey","_this2","overloadTranslationOptionHandler","returnDetails","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","defaultVariables","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","nb","nest","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","_this4","extracted","fallbackNS","needsZeroSuffixLookup","ordinal","shouldUseIntlApi","needsContextHandling","utils","hasLoadedNamespace","possibleKey","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","contextKey","contextSeparator","returnNull","returnEmptyString","resourceStore","option","capitalize","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","part","cleanCode","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","sets","_rulesPluralsTypes","deprecatedJsonVersions","suffixesOrder","zero","one","two","few","many","createRules","rules","numbers","plurals","PluralResolver","compatibilityJSON","PluralRules","_unused","rule","getRule","pluralCategories","pluralCategory1","pluralCategory2","pluralCategory","select","getSuffixRetroCompatible","idx","noAbs","simplifyPluralSuffix","returnSuffix","ownKeys$3","_objectSpread$3","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","interpolationkey","missingInterpolationHandler","regex","safeValue","todo","matchedVar","lastIndex","clonedOptions","handleHasOptions","inheritedOptions","optionsString","formatters","doReduce","ownKeys$4","_objectSpread$4","Formatter","formats","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","ListFormat","_format","mem","_parseFormatStr","formatStr","formatName","formatOptions","optStr","opt","_opt$split2","parseFormatStr","valOptions","formatParams","ownKeys$5","_objectSpread$5","_createSuper$2","_isNativeReflectConstruct$2","Connector","backend","store","waitingReads","maxParallelReads","readingCalls","queue","languages","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","pendingCount","addResourceBundle","_getLastOfPath2","removePending","done","loadedKeys","fcName","tried","wait","read","queueLoad","loadOne","prepareLoading","_this5","fallbackValue","isUpdate","initImmediate","preload","pluralSeparator","partialBundledLanguages","tDescription","transformOptions","ownKeys$6","_objectSpread$6","_createSuper$3","_isNativeReflectConstruct$3","noop","bindMemberFunctions","inst","I18n","modules","external","isInitialized","isClone","defOpts","createClassOnDemand","ClassOrObject","formatter","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","initializedStoreOnce","changeLanguage","usedCallback","resolvedLanguage","setResolvedLanguage","lngInLngs","hasLanguageSomeTranslations","isLanguageChangingTo","setLngProps","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","detect","keyPrefix","fixedT","rest","resultKey","_this$translator","_this$translator2","exists","_this6","lastLng","loadNotPending","loadState","precheck","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","membersToCopy","createInstance","reloadResources","use","getFixedT","setDefaultNamespace","loadNamespaces","loadLanguages","addQueryString","queryString","ajax","queryStringParams","ActiveXObject","crossDomain","overrideMimeType","customHeaders","onreadystatechange","getDefaults","loadPath","addPath","allowMultiLoading","parsePayload","Backend","loadUrl","payload","LocalizationServiceOptions","defaultLanguage","languageFilesPath","LocalizationService","htmlOptionsAttribute","getLanguage","setLanguage","localStorage","getItem","getTarget","localizeElement","extendStatics","__extends","__","__values","__read","__spreadArray","createErrorClass","createImpl","ctorFunc","UnsubscriptionError","arrRemove","Subscription","initialTeardown","closed","_parentage","_finalizers","empty","e_1","e_2","_b","_parentage_1","_parentage_1_1","e_1_1","return","initialFinalizer","_finalizers_1","_finalizers_1_1","finalizer","execFinalizer","e_2_1","teardown","_hasParent","_addParent","_removeParent","EMPTY_SUBSCRIPTION","isSubscription","onUnhandledError","onStoppedNotification","useDeprecatedSynchronousErrorHandling","useDeprecatedNextContext","timeoutProvider","delegate","COMPLETE_NOTIFICATION","createNotification","errorContext","cb","isRoot","errorThrown","Subscriber","isStopped","EMPTY_OBSERVER","complete","SafeSubscriber","handleStoppedNotification","nextNotification","_next","_error","_complete","_bind","ConsumerObserver","partialObserver","handleUnhandledError","observerOrNext","context_1","reportUnhandledError","notification","subscriber","observable","pipeFromArray","Observable","_subscribe","lift","isObserver","_trySubscribe","sink","promiseCtor","getPromiseCtor","pipe","operations","toPromise","ObjectUnsubscribedError","Subject","currentObservers","hasError","thrownError","subject","AnonymousSubject","_throwIfClosed","_c","_checkFinalizedStatuses","_innerSubscribe","asObservable","Highlights","_highlightsSourceName","_markerLayerName","_polygonLayerName","_lineSolidLayerName","_lineDottedLayerName","_lineDashedLayerName","_circleLayerName","rmFeatureLabel","_featuresAdded","_featuresRemoved","initLayers","featuresAdded","featuresRemoved","routeFc","showMarker","getFeaturePropertiesFromHighlightOptions","processData","clearMarkers","isRmFeature","showPolygon","clearPolygons","showLine","clearLines","showCircle","clearCircles","clearFeature","filtered","setSourceData","setFeatureValue","indices","findIndex","clearFeatures","getAllFeatures","fts","addFeaturesToSource","showRoutes","clearRoute","lines","wayPoints","instructions","routeSegments","routeSourceName","processPan","showRoute","ftStyleFunc","showRouteLegacy","Data","coordsTransformed","LineStrings","includeInIdentify","showFeature","processFeature","showFeatures","clearAll","fcCrs","setAsRmFeature","circleOptions","markerOptions","polygonOptions","lineOptions","topLayer","groups","groupName","gid","zIndex","defaultPolygon","polygonMbLayer","getProperty","defaultSolidLine","solidLineMbLayer","defaultDottedLine","dottedLineMbLayer","Dotted","defaultDashedLine","dashedLineMbLayer","Dashed","defaultCircle","circleMbLayer","defaultMarker","markerMbLayer","fitCameraToFeatures","addLiteral","MapPickerControlOptions","MapPickerControl","constructRoutes","drawRoutes","_onProcessingStatusChange","_onLocationSelected","_onRouteConstructed","onMapClick","nativeEvent","MouseEvent","hide","_localizationService","onclick","removeLocation","popupRemovePoint","openPopup","group","aStart","addLocation","aEnd","popupClick","_routingService","onClick","onProcessingStatusChange","onLocationSelected","onRouteConstructed","inject","setRoute","setLoadingStatus","routev1","refreshRoute","drawRoute","GeolocationOptions","panIfNotInView","isAccurate","showAccuracy","showHeading","autoZoom","markerScale","getPrimaryColor","getSecondaryColor","getHeadingIconName","Geolocation","metersToPixelsAtMaxZoom","_geolocationSourceName","_accuracyLayerName","_markerInnerCircleLayerName","_markerOuterCircleLayerName","_headingLayerName","initSources","PrimaryColorPropertyName","SecondaryColorPropertyName","LocationMarkerScalePropertyName","LocationMarkerOutlineWidthPropertyName","HeadingIconImagePropertyName","HeadingIconScalePropertyName","HeadingIconRotatePropertyName","AccuracyOutlineWidthPropertyName","AccuracyOutlineColorProperyName","AccuracyOpacityPropertyName","showGeolocation","apos","heading","createGeolocationFeature","updateAccuracyLayerRadius","handleCamera","clearGeolocation","isPositionInsideMap","getView","panOptions","panCoord","mbLayer","LayerGroup","_parent","uiVisible","iconClass","sequenceMode","uiGroupExpandable","uiGroupHeaderVisible","uiGroupAlwaysOpen","getParent","LegendControl","hoveringCheckbox","layerCheckboxes","resizePanel","getSize","_panel","maxHeight","_button","createButton","createPanel","onLayerVisibilityChanged","onGroupVisibilityChanged","getLayerCheckboxId","getGroupCheckboxId","wrapper","createLegend","panel","elementalLayersInGroup","getLayers","listGroup","listItem","listItemTitle","listItemImg","child","setGroupVisibility","persist","persistVisibility","formGroup","getCheckboxHeader","controls","groupContent","groupCollapse","collapse","collapseIcon","childHeader","flexGrowLabel","checkbox","formId","checked","onmouseenter","onmouseleave","onchange","vis","setLayerVisibility","label","iconSrc","htmlFor","Action","scheduler","work","schedule","intervalProvider","setInterval","clearInterval","AsyncAction","recycleAsyncId","requestAsyncId","flush","_scheduler","execute","_execute","_delay","errorValue","errored","actions","dateTimestampProvider","Scheduler","schedulerActionCtor","asyncScheduler","AsyncScheduler","SchedulerAction","_scheduled","action","operate","hasLift","liftedSource","RoutingInputActionButtonType","OperatorSubscriber","onNext","onComplete","onError","onFinalize","shouldUnsubscribe","closed_1","debounceTime","dueTime","activeTask","lastValue","emitWhenIdle","targetTime","createOperatorSubscriber","RoutingControlOptions","RoutingInput","placeholderText","placeholderTextAlt","_actionButtons","btn","setTarget","getLocation","_location","saveLocation","addActionButton","getActionButton","RoutingInputActionButton","_target","Utils","selected","RoutingControl","_searchInputs","inputChangeDebouncing","searchInputPlaceholder","searchToolbarItem","showDisclaimer","transportationModes","isMobile","onSearchTabSelected","focusedTransportationMode","clearHighlight","highlightLocation","_reverseLocations","searchTarget","refreshDisclaimerVisibility","onTransportationModeTabSelected","modeId","showModeRoute","waitingId","searchInputIdWaitingForLocation","waitingInput","onSearchKeyUp","navigateSearchResults","setSearchResultsStatus","stopSearchResultsHideTimeout","searchResultsHideTimeout","startSearchResultsHideTimeout","_nominatimService","_mapPicker","getControl","MapPicker","getLoadingStatus","geocode","clickCoord","getPanelStatus","setSearchInputValue","selectTransportationModeTab","setPanelStatus","processInputChange","locationHighlight","_panelTop","createPanelTop","createSearchResults","_panelBottom","createPanelBottom","panelTop","createToolbar","inputsContainer","routingInput","createInput","inputAppend","myLocBtn","myLocBtnIcon","timestamp","setMessage","i18nOptions","mins","hideMessage","MyLocation","panToLocBtn","locBtnIcon","PanToLocation","clearBtn","clearBtnIcon","Clear","reverseLocations","reverseLocationsBtn","firstLoc","second","secondLoc","enableRoutingDisclaimer","_disclaimer","searchResults","_searchResults","panelBottom","_spinner","spinnerContent","spinnerSpan","innerText","_toolbarContent","createToolbarContent","onkeyup","lastFocusedInput","createToolbarItem","modeIcon","hideI","clearSearch","createToolbarContentItem","createRouteOverviewContent","detail","row2","marginLeft","marginRight","distanceIcon","distanceText","formatDistance","Length","timeIcon","timeText","formatDuration","station","tollWarningDiv","tollIcon","tollText","createRouteOverviewStations","stations","getIcon","stationInstructionType","stationContainer","iconDiv","descriptionDiv","textDivContainer","iconMobile","textDiv","TitleTranslations","Item1","Item2","getLine","locationDiv","line1","line2","routeStationHighlight","removeFeature","getRelCenterX","createSearchResultItem","highlight","titleL","highlightL","span1","span2","endSpan","isCleared","clearTransportationModesContent","tab","setSearchResults","appendToSearchResults","FaIcon","span","HasNextPage","Page","more","lastChild","moreLocs","lastProcessedInputText","getSearchResultsStatus","recalculateInputsRoute","panBtn","processSearchInputs","defaultZoom","attachToolbarEventListeners","attach","removeToolbarEventListeners","getRouteFitPadding","focusedSearchResult","HTMLButtonElement","_message","titleDiv","contentDiv","closeBtn","closeBtnSpan","ascend","tagName","RoutingGeocodingFeatureProps","fromGeocodeLocResponse","RoutingGeocodingProps","fromQueryv2Response","fromReverseGeocodingResponse","formatDate","date","day","getDay","month","getMonth","year","getFullYear","getHours","getMinutes","sec","getSeconds","innerWidth","getQueryv2Icon","getGeocodeLocIcon","NextPage","HasNext","Skip","Take","PrometSiControlOptions","hasDetailButton","hasLegend","openLegend","weatherDataUrl","weatherImgUrl","weatherFrameInterval","weatherLastFrameUpdateInterval","PrometSiRoutingLocation","canSwapWithNext","PrometSiSearchResultsType","MapTheme","PrometSiExpandMapControl","PrometSiControl","weatherLayerName","weatherSourceName","_weatherData","_searchResultsFeatures","_onRouteSaved","refreshRouteDebouncing","searchTextDebouncing","_routingLocations","getNewRoutingLocationsArray","openLegendKey","injectedRouteId","injectedRouteTitle","myLocExecuting","selectedRoute","resizeElements","_legend","_routing","responsiveBreakpoint","_weatherContainer","refreshLegendSize","refreshRoutingSize","refreshSearchBarContainerSize","refreshRoutes","onLongClick","openMapClickOptionsMenu","popupRmb","getRoutingStatus","featureLayers","routeId","routeIdKey","setRoutesStatus","onRouteSaved","focusedSearchInput","_focusedSearchInput","_routingLocationsIncrementCount","getRoutingLocationsArray","searchEntryWidth","legendWidth","routingWidth","searchResultsMaxHeight","routeStatusKey","routeTTBadgeClassKey","closeAllPopups","Ad","Cesta","ds_at","adEl","adContent","bvx","bvy","cestaEl","cestaContent","setRoutingStatus","onSearchResultSelected","refreshRoutingLocations","injectRouteForEditing","_searchInput","currFetchId","menuContainer","containerParsed","_searchBarContainer","margin","Normal","legend","legendGroups","getLegendGroups","setLegendStatus","updateLegendItemUI","isCheckbox","weatherLayer","_weatherGroup","getGroupVisibility","tryStartWeatherLayerUpdating","radio","stopWeatherLayerUpdating","menuButton","getLegendStatus","_routingHeader","_routingBottom","overflowY","_routingSearchResults","_routingBottomSearchResultsContainer","onSearchInputEnterKey","weatherContainer","boxShadow","weatherBg","_weatherTimestampSpan","Description","searchResultsParsed","getContainerFromSearchResultsType","getLegendWidth","lPositive","setItem","groupsArray","startRouteStatusRefresh","currStatusRefreshId","waypoints","clearInstructionHighlight","stopRouteStatusRefresh","stopGeolocationSearch","isLast","setRoutingSpinnerStatus","setRoutingErrorStatus","before","routeFcdColors","routeColor","reorder","sel","selectedIndex","clearRoutingTabContainer","_routingTabsContainer","viaPoints","ins","CumulativeDuration","CumulativeLength","detourText","IsDetour","Selected","Start","Destination","Profile","DetourText","Duration","TTClass","TTSpinnerClass","instrAttrName","highlightInstruction","_routingSave","saveBtn","transformRoute","getOtherTabs","detailsSelector","_routingError","changed","threshold","waypointsFts","fetchId","routeMultiple","_routingSpinner","spinner","instructionHighlight","drawMarker","mapWidth","refreshId","refreshOnStart","routeStatusRefresh","routeStatusRefreshInterval","statusPromises","routeStatus","ttBadge","fromRoute","legendBody","getRoutingWidth","fetchWeatherData","onlyShowFinalFrame","updateLastWeatherFrame","startWeatherLayerUpdating","_weatherAnimationTimeout","setWeatherSource","srcUrl","srcBbox","weather","valid","show","getDate","StyleMetadata","enablePopup","hitTolerance","hitBuffer","md","clusterIcons","ClusterIconsData","findGroup","filterGroups","condition","withChildren","iconSize","textSize","LayerMetadata","lockMode","visibleRefreshButton","listViewDefaultExpand","listViewEnableOpenButton","listViewTitleTemplate","listViewDescriptionTemplate","infoWindowEnableOpenButton","infoWindowTitleTemplate","infoWindowDescriptionTemplate","infoWindowMaxWidth","infoWindowDescriptionRefreshInterval","clusterSymbol","clusterSymbolIconSize","clusterSymbolTextSize","clusterSymbolTextOffset","clusterSymbolTextColor","Layer","NAPControlOptions","resourcesPath","napDcUrl","NAPControl","refreshFilterSize","refreshDetailsSize","_connectorsDict","_vehiclesDict","onFeaturePopupClicked","contentName","getPolnilnice","polnilnice","setFilterStatus","setDetailsStatus","filterWidth","detailsWidth","chargingLayerId","createDetails","prometGroups","getPrometGroups","slider","change","vals","onFilterChange","_filter","attachSlojiToggleEventsListeners","details","_details","getFilterWidth","dayNow","isOpenToday","todayOpenTimes","days","getDaysArray","today","isToday","cssClasses","xWorkingHours","WorkingHours","DayInWeek","openTimes","OpenPeriods","isCurrentlyOpen","OpenTimes","CSSClasses","RefuelPoints","Connectors","getConnectorData","ChargingInterface","Icon","MaxPowerAtSocket","Days","TodayOpenTimes","TodayOpenStatus","PaymentTypesText","PaymentTypes","getDetailsWidth","startsWith","tabs","filterDebounce","filterReq","zasedenost_prosto","mocPolnjenja","prikljucek_3polni","prikljucek_5polni","prikljucek_schuko","prikljucek_type1","prikljucek_type2","prikljucek_chademo","prikljucek_ccs1sae","prikljucek_ccs2sae","prikljucek_roadster","prikljucek_supercharge","aktivacija_kartica","aktivacija_app","aktivacija_sms","aktivacija_pnc","cena_brezplacno","obrCas_24ur","obrCas_trenutnoOdprto","vrsta_avto","vrsta_koloMotorSkiro","vrsta_avtodom","vrsta_tovorno","MocPolnjenjaMin","MocPolnjenjaMax","ZasedenostProsto","Prikljucki3Polni","Prikljucki5Polni","PrikljuckiSchuko","PrikljuckiType1","PrikljuckiType2","PrikljuckiCHAdeMO","PrikljuckiCCS1SAE","PrikljuckiCCS2SAE","PrikljuckiRoadster","PrikljuckiSupercharge","NacinAktivacijeKartica","NacinAktivacijeAplikacija","NacinAktivacijeSMS","NacinAktivacijePlugAndCharge","CenaBrezplacno","ObratovalniCas24Ur","ObratovalniCasTrenutnoOdprto","VrstaVozilaAvto","VrstaVozilaKoloMotorSkiro","VrstaVozilaAvtodom","VrstaVozilaTovornoVozilo","polnilnicaReq","EnergySiteWebDTO","newFts","newFt","ContentName","isOperational","isFree","hasAdHocPrice","ElectricAdHocPrice","hasPerChargingPointPrice","PriceDefinitionType","UpravljalecWeb","getTodayWorkingHours","hours","weekdays","btnWrapper","OpeningTimesWebDTO","fromGeojson","ChargingPointUsageTypeEnum","ChargingInterfaceTypeWebAppEnum","AuthenticationAndIdentificationEnum","OpenPeriodWebDTO","openFrom","openTill","OpenFrom","OpenTill","openFromH","openFromMin","openTillH","openTillMin","styleUrl","_onClick","_onLongClick","_onDblClick","_onLoad","_onStyleLoad","_onRestyleLayer","_onUserAction","_userActionEvents","_onSourceChange","_onViewChange","_onGroupVisibilityChanged","_onLayerVisibilityChanged","_onPopupOpened","_onFeaturePopupClicked","_onProcessingStatusChanged","_onFeaturesAdded","_onFeaturesRemoved","_theme","Light","_popups","_mobilePopups","_projection","_services","_clusterLayers","_sources","_sourceRequests","persistViewKey","persistVisibilityKey","_forceReloadSourceIntervals","mobileMarkerId","longClickCallback","movedSinceLastMouseButtonDown","_handleMapLongClick","_handleMapClick","featuresData","ftsAtPoint","parsed","decodeQueriedProperties","ftr","ftrprops","featureLayer","legendControl","Legend","notClusters","clickPoint","featuresDataSorted","_mbMap","_handleViewChange","persistView","_handleUserAction","_handleMousemove","mbOptions","_label","theme","_style","getPersistedView","startExtent","setMapTheme","srcId","generateClusterLayers","removeHiddenVectorHybridLayers","mglLayer","forceReloadSources","frs","intervalMS","persisted","getPersistedVisibility","refreshSingleGroupVisibility","notice","noticeStyle","yearPlaceholder","enableSideScroller","getSideScroller","scrollerLeft","backgroundColor","scrollerLeftIcon","ctrlsContainer","routingServiceOpts","routingServiceName","nominatimServiceOpts","nominatimServiceName","localizationServiceOpts","enableRotate","addLocalizationService","_highlights","_geolocation","addControls","startRefreshingGeoJSONUrlSources","onloadend","initEvents","onDblClick","onMouseMove","onLoad","onStyleLoad","onRestyleLayer","onUserAction","onSourceChange","onViewChange","onZoom","onPopupOpened","onProcessingStatusChanged","onFeaturesAdded","onFeaturesRemoved","popups","newData","getGroups","getGroup","getLayerFeatures","getLayerVisibility","setMbLayerVisibility","updateUpwards","transformToProjection","fromProjection","transformToProjectionMulti","newCoordinates","transformGeometryToProjection","defaultPanOptions","camOptions","xOffset","yOffset","fit","boundsArray","defaultCameraChangeOptions","setView","panProp","fitCameraToCurrentRoute","drawPolygon","drawLine","drawCircle","ctrl","mapPicker","clearMapPicker","drawRouteLegacy","removeFeatures","clearAllHighlights","sortPopupClickListeners","contentMobile","clicks","mobileEl","popupClose","openPopupForFeature","openPopupForFeatures","clickDetectors","transformedFts","copyFtsToDiv","PopupCarouselTemplate","inner","getElementsByClassName","rendered","render1","render2","popup","refreshSourceWithUrl","srcs","getSrcsWithUrl","refreshSource","previous","mbLayers","newSrc","updateSize","checkIfCssLoaded","printWarning","loadedCss","styleSheets","searchFor","css","description","locate","newThemeLayer","otherLayer","compareWith","compareContainer","_mbMapCompare","_mbMapCompareMap","sliderPosition","getCurrentCompareMap","getCurrentCompareState","stopCompare","dispose","unp","visibilities","showMobileMarker","removeMobileMarker","_popupMobileMarker","innerHeight","scrollIntoView","block","inline","mobilePopup","clearLongClickTimeout","longClickTimeout","cursor","addLegendControl","FullScreen","Zoom","mp","PrometSi","NAP","nap","triggerGeolocator","_geolocatorControl","gjSrc","oldUrl","viewString","mbVis","elementalLayers","canDisplay","canDisplayGroup","clusterFilter","pointCount","notClusterFilter","symbolLayer","ReplaySubject","_bufferSize","_windowTime","_timestampProvider","_buffer","_infiniteTimeWindow","_trimBuffer","subscription","adjustedBufferSize","MapContainer","elementId","initMap","_onLayerReloadedSubs","_evt_mapInitialized","_evt_mapClick","_evt_mapLongClick","_evt_mapDblClick","_evt_mapMouseMove","_evt_layerRestyle","_evt_mapUserAction","_evt_mapLoad","_evt_layerReloaded","_evt_viewChange","_evt_routeConstructed","_evt_popupOpened","reconfigure","_reconfigure","_mapOnClick","_mapOnLongClick","_mapOnDblClick","_mapOnMouseMove","_mapOnRestyleLayer","_mapOnUserAction","_mapOnViewChange","_mapOnLoad","_mapRouteConstructed","_popupOpened","rmaps","_onMapInitialized","sh","onReloadLayer","newZoom","setVisibility","sids","sid","drawRouteFromGeoJson","includeInPopup","clearMarker","gjGeometry","clearCircle","clearLine","polygonCoords","clearPolygon","fitToFeatures","loadingId","loadingContainer","control","eventArgs","ftsLayers","ftLayer","xft","clusterPointCountKey","clusterCoord","currView","firstCoordinate","intervals","_lastPopup","getPopupContent","_layerOnReloaded","ElementId","_extendElement","ElementAny","ATTRIBUTE_STYLE_URL","evt_mapInitialized","evt_mapClick","evt_mapLongClick","evt_mapDblClick","evt_mapMouseMove","evt_layerRestyle","evt_mapUserAction","evt_mapLoad","evt_layerReloaded","evt_viewChange","evt_routeConstructed","evt_popupOpened","mapContainerId","ftJson","transformEpsg3912ToEpsg4326","r_eq_str","splt","expectedVal","r_neq_str","closeIcon","createDescription","dscr","tmplt","newDescription","replaceChild","_compare","compareStyleUrl","compareMap"],"sourceRoot":""}