{"version":3,"file":"rm2.js","mappings":"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","sources":["webpack://rmap2/webpack/universalModuleDefinition","webpack://rmap2/webpack/runtime/create fake namespace object","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/cross-fetch/dist/browser-ponyfill.js","webpack://rmap2/./node_modules/events/events.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/i18next-http-backend/esm/getFetch.cjs","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/global","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/./node_modules/uuid/dist/esm-browser/native.js","webpack://rmap2/./node_modules/uuid/dist/esm-browser/rng.js","webpack://rmap2/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://rmap2/./node_modules/uuid/dist/esm-browser/v4.js","webpack://rmap2/./src/rm2/model/RM2Feature.ts","webpack://rmap2/./src/rm2/map-controls/RM2MapControls.ts","webpack://rmap2/./src/rm2/highlights/RM2HighlightOptions.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/i18next/dist/esm/i18next.js","webpack://rmap2/./node_modules/i18next-http-backend/esm/utils.js","webpack://rmap2/./node_modules/i18next-http-backend/esm/request.js","webpack://rmap2/./node_modules/i18next-http-backend/esm/index.js","webpack://rmap2/./src/rm2/services/RM2LocalizationService.ts","webpack://rmap2/./node_modules/tslib/tslib.es6.mjs","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 ","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","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 = []; maps = []; };\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","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\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';\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 } else if (!wkt.lat_ts && wkt.lat0 && wkt.projName === 'Polar_Stereographic') {\n wkt.lat_ts = wkt.lat0;\n wkt.lat0 = d2r(wkt.lat0 > 0 ? 90 : -90);\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.clrk80ign = {\n a: 6378249.2,\n b: 6356515,\n rf: 293.4660213,\n ellipseName: \"Clarke 1880 (IGN)\"\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, PJD_GRIDSHIFT} 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 (\n (source.datum.datum_type === PJD_3PARAM || source.datum.datum_type === PJD_7PARAM || source.datum.datum_type === PJD_GRIDSHIFT) && dest.datumCode !== 'WGS84') ||\n ((dest.datum.datum_type === PJD_3PARAM || dest.datum.datum_type === PJD_7PARAM || dest.datum.datum_type === PJD_GRIDSHIFT) && 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 } else {\n // Clone the point object so inputs don't get modified\n point = {\n x: point.x,\n y: point.y,\n z: point.z,\n m: point.m\n };\n }\n var hasZ = point.z !== undefined;\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 if (!hasZ) {\n delete point.z;\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);\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);\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);\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);\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};","var fetchApi\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch\n } else {\n fetchApi = fetch\n }\n}\n\nif (typeof require !== 'undefined' && (typeof window === 'undefined' || typeof window.document === 'undefined')) {\n var f = fetchApi || require('cross-fetch')\n if (f.default) f = f.default\n exports.default = f\n module.exports = exports.default\n}\n","/* MapLibre GL JS is licensed under the 3-Clause BSD License. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v3.5.1/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\";function e(t,e,r,n){return new(r||(r=Promise))((function(i,a){function s(t){try{l(n.next(t));}catch(t){a(t);}}function o(t){try{l(n.throw(t));}catch(t){a(t);}}function l(t){var e;t.done?i(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e);}))).then(s,o);}l((n=n.apply(t,e||[])).next());}))}function r(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}\"function\"==typeof SuppressedError&&SuppressedError;var n=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};var a=r(n),s=o;function o(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;}o.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))}};var l=r(s);let u,c;function h(){return null==u&&(u=\"undefined\"!=typeof OffscreenCanvas&&new OffscreenCanvas(1,1).getContext(\"2d\")&&\"function\"==typeof createImageBitmap),u}function p(){if(null==c&&(c=!1,h())){const t=5,e=new OffscreenCanvas(t,t).getContext(\"2d\",{willReadFrequently:!0});if(e){for(let r=0;r(e.y-t.y)*(r.x-t.x)}function k(t){let e=0;for(let r,n,i=0,a=t.length,s=a-1;icancelAnimationFrame(e)}},getImageData(t,e=0){return this.getImageCanvasContext(t).getImageData(-e,-e,t.width+2*e,t.height+2*e)},getImageCanvasContext(t){const e=window.document.createElement(\"canvas\"),r=e.getContext(\"2d\",{willReadFrequently:!0});if(!r)throw new Error(\"failed to create canvas 2d context\");return e.width=t.width,e.height=t.height,r.drawImage(t,0,0,t.width,t.height),r},resolveURL:t=>(F||(F=document.createElement(\"a\")),F.href=t,F.href),hardwareConcurrency:\"undefined\"!=typeof navigator&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return !!matchMedia&&(null==T&&(T=matchMedia(\"(prefers-reduced-motion: reduce)\")),T.matches)}},L={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,MAX_TILE_CACHE_ZOOM_LEVELS:5,REGISTERED_PROTOCOLS:{},WORKER_URL:\"\"};class D 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 O=I()?()=>self.worker&&self.worker.referrer:()=>(\"blob:\"===window.location.protocol?window.parent:window).location.href,U=t=>L.REGISTERED_PROTOCOLS[t.substring(0,t.indexOf(\"://\"))];function R(t,e){const r=new AbortController,n=new Request(t.url,{method:t.method||\"GET\",body:t.body,credentials:t.credentials,headers:t.headers,cache:t.cache,referrer:O(),signal:r.signal});let i=!1,a=!1;\"json\"===t.type&&n.headers.set(\"Accept\",\"application/json\");return a||fetch(n).then((r=>r.ok?(r=>{(\"arrayBuffer\"===t.type||\"image\"===t.type?r.arrayBuffer():\"json\"===t.type?r.json():r.text()).then((t=>{a||(i=!0,e(null,t,r.headers.get(\"Cache-Control\"),r.headers.get(\"Expires\")));})).catch((t=>{a||e(new Error(t.message));}));})(r):r.blob().then((n=>e(new D(r.status,r.statusText,t.url,n)))))).catch((t=>{20!==t.code&&e(new Error(t.message));})),{cancel:()=>{a=!0,i||r.abort();}}}const q=function(t,e){if(/:\\/\\//.test(t.url)&&!/^https?:|^file:/.test(t.url)){if(I()&&self.worker&&self.worker.actor)return self.worker.actor.send(\"getResource\",t,e);if(!I())return (U(t.url)||R)(t,e)}if(!(/^file:/.test(r=t.url)||/^file:/.test(O())&&!/^\\w+:/.test(r))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,\"signal\"))return R(t,e);if(I()&&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&&\"image\"!==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 D(r.status,r.statusText,t.url,n));}},r.send(t.body),{cancel:()=>r.abort()}}(t,e)},j=function(t,e){return q(g(t,{type:\"arrayBuffer\"}),e)};function N(t){if(!t||t.indexOf(\"://\")<=0||0===t.indexOf(\"data:image/\")||0===t.indexOf(\"blob:\"))return !0;const e=new URL(t),r=window.location;return e.protocol===r.protocol&&e.host===r.host}function Z(t,e,r){r[t]&&-1!==r[t].indexOf(e)||(r[t]=r[t]||[],r[t].push(e));}function K(t,e,r){if(r&&r[t]){const n=r[t].indexOf(e);-1!==n&&r[t].splice(n,1);}}class G{constructor(t,e={}){g(this,e),this.type=t;}}class J extends G{constructor(t,e={}){super(\"error\",g({error:t},e));}}class X{on(t,e){return this._listeners=this._listeners||{},Z(t,e,this._listeners),this}off(t,e){return K(t,e,this._listeners),K(t,e,this._oneTimeListeners),this}once(t,e){return e?(this._oneTimeListeners=this._oneTimeListeners||{},Z(t,e,this._oneTimeListeners),this):new Promise((e=>this.once(t,e)))}fire(t,e){\"string\"==typeof t&&(t=new G(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)K(r,e,this._oneTimeListeners),e.call(this,t);const i=this._eventedParent;i&&(g(t,\"function\"==typeof this._eventedParentData?this._eventedParentData():this._eventedParentData),i.fire(t));}else t instanceof J&&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 Y={$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:\"sprite\"},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:{},custom:{}},default:\"mapbox\"},redFactor:{type:\"number\",default:1},blueFactor:{type:\"number\",default:1},greenFactor:{type:\"number\",default:1},baseShift:{type:\"number\",default:0},volatile:{type:\"boolean\",default:!1},\"*\":{type:\"*\"}},source_geojson:{type:{required:!0,type:\"enum\",values:{geojson:{}}},data:{required:!0,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-variable-anchor-offset\":{type:\"variableAnchorOffsetCollection\",requires:[\"text-field\",{\"symbol-placement\":[\"point\"]}],expression:{interpolated:!0,parameters:[\"zoom\",\"feature\"]},\"property-type\":\"data-driven\"},\"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}},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\"}}};const H=[\"type\",\"source\",\"source-layer\",\"minzoom\",\"maxzoom\",\"filter\",\"layout\"];function W(t,e){const r={};for(const e in t)\"ref\"!==e&&(r[e]=t[e]);return H.forEach((t=>{t in e&&(r[t]=e[t]);})),r}function Q(t,e){if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return !1;for(let r=0;r`:\"value\"===t.itemType.kind?\"array\":`array<${e}>`}return t.kind}const It=[pt,ft,dt,yt,mt,bt,gt,St(xt),wt,_t,At];function zt(t,e){if(\"error\"===e.kind)return null;if(\"array\"===t.kind){if(\"array\"===e.kind&&(0===e.N&&\"value\"===e.itemType.kind||!zt(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 It)if(!zt(t,e))return null}return `Expected ${kt(t)} but found ${kt(e)} instead.`}function Mt(t,e){return e.some((e=>e.kind===t.kind))}function Pt(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))}function Ct(t,e){return \"array\"===t.kind&&\"array\"===e.kind?t.itemType.kind===e.itemType.kind&&\"number\"==typeof t.N:t.kind===e.kind}const Bt=.96422,Vt=.82521,Et=4/29,Ft=6/29,Tt=3*Ft*Ft,$t=Ft*Ft*Ft,Lt=Math.PI/180,Dt=180/Math.PI;function Ot(t){return (t%=360)<0&&(t+=360),t}function Ut([t,e,r,n]){let i,a;const s=qt((.2225045*(t=Rt(t))+.7168786*(e=Rt(e))+.0606169*(r=Rt(r)))/1);t===e&&e===r?i=a=s:(i=qt((.4360747*t+.3850649*e+.1430804*r)/Bt),a=qt((.0139322*t+.0971045*e+.7141733*r)/Vt));const o=116*s-16;return [o<0?0:o,500*(i-s),200*(s-a),n]}function Rt(t){return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function qt(t){return t>$t?Math.pow(t,1/3):t/Tt+Et}function jt([t,e,r,n]){let i=(t+16)/116,a=isNaN(e)?i:i+e/500,s=isNaN(r)?i:i-r/200;return i=1*Zt(i),a=Bt*Zt(a),s=Vt*Zt(s),[Nt(3.1338561*a-1.6168667*i-.4906146*s),Nt(-.9787684*a+1.9161415*i+.033454*s),Nt(.0719453*a-.2289914*i+1.4052427*s),n]}function Nt(t){return (t=t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055)<0?0:t>1?1:t}function Zt(t){return t>Ft?t*t*t:Tt*(t-Et)}function Kt(t){return parseInt(t.padEnd(2,t),16)/255}function Gt(t,e){return Jt(e?t/100:t,0,1)}function Jt(t,e,r){return Math.min(Math.max(e,t),r)}function Xt(t){return !t.some(Number.isNaN)}const Yt={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};class Ht{constructor(t,e,r,n=1,i=!0){this.r=t,this.g=e,this.b=r,this.a=n,i||(this.r*=n,this.g*=n,this.b*=n,n||this.overwriteGetter(\"rgb\",[t,e,r,n]));}static parse(t){if(t instanceof Ht)return t;if(\"string\"!=typeof t)return;const e=function(t){if(\"transparent\"===(t=t.toLowerCase().trim()))return [0,0,0,0];const e=Yt[t];if(e){const[t,r,n]=e;return [t/255,r/255,n/255,1]}if(t.startsWith(\"#\")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(t)){const e=t.length<6?1:2;let r=1;return [Kt(t.slice(r,r+=e)),Kt(t.slice(r,r+=e)),Kt(t.slice(r,r+=e)),Kt(t.slice(r,r+e)||\"ff\")]}if(t.startsWith(\"rgb\")){const e=t.match(/^rgba?\\(\\s*([\\de.+-]+)(%)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)(%)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)(%)?(?:\\s*([,\\/])\\s*([\\de.+-]+)(%)?)?\\s*\\)$/);if(e){const[t,r,n,i,a,s,o,l,u,c,h,p]=e,f=[i||\" \",o||\" \",c].join(\"\");if(\" \"===f||\" /\"===f||\",,\"===f||\",,,\"===f){const t=[n,s,u].join(\"\"),e=\"%%%\"===t?100:\"\"===t?255:0;if(e){const t=[Jt(+r/e,0,1),Jt(+a/e,0,1),Jt(+l/e,0,1),h?Gt(+h,p):1];if(Xt(t))return t}}return}}const r=t.match(/^hsla?\\(\\s*([\\de.+-]+)(?:deg)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)%(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)%(?:\\s*([,\\/])\\s*([\\de.+-]+)(%)?)?\\s*\\)$/);if(r){const[t,e,n,i,a,s,o,l,u]=r,c=[n||\" \",a||\" \",o].join(\"\");if(\" \"===c||\" /\"===c||\",,\"===c||\",,,\"===c){const t=[+e,Jt(+i,0,100),Jt(+s,0,100),l?Gt(+l,u):1];if(Xt(t))return function([t,e,r,n]){function i(n){const i=(n+t/30)%12,a=e*Math.min(r,1-r);return r-a*Math.max(-1,Math.min(i-3,9-i,1))}return t=Ot(t),e/=100,r/=100,[i(0),i(8),i(4),n]}(t)}}}(t);return e?new Ht(...e,!1):void 0}get rgb(){const{r:t,g:e,b:r,a:n}=this,i=n||1/0;return this.overwriteGetter(\"rgb\",[t/i,e/i,r/i,n])}get hcl(){return this.overwriteGetter(\"hcl\",function(t){const[e,r,n,i]=Ut(t),a=Math.sqrt(r*r+n*n);return [Math.round(1e4*a)?Ot(Math.atan2(n,r)*Dt):NaN,a,e,i]}(this.rgb))}get lab(){return this.overwriteGetter(\"lab\",Ut(this.rgb))}overwriteGetter(t,e){return Object.defineProperty(this,t,{value:e}),e}toString(){const[t,e,r,n]=this.rgb;return `rgba(${[t,e,r].map((t=>Math.round(255*t))).join(\",\")},${n})`}}Ht.black=new Ht(0,0,0,1),Ht.white=new Ht(1,1,1,1),Ht.transparent=new Ht(0,0,0,0),Ht.red=new Ht(1,0,0,1);class Wt{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 Qt{constructor(t,e,r,n,i){this.text=t,this.image=e,this.scale=r,this.fontStack=n,this.textColor=i;}}class te{constructor(t){this.sections=t;}static fromString(t){return new te([new Qt(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 te?t:te.fromString(t)}toString(){return 0===this.sections.length?\"\":this.sections.map((t=>t.text)).join(\"\")}}class ee{constructor(t){this.values=t.slice();}static parse(t){if(t instanceof ee)return t;if(\"number\"==typeof t)return new ee([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 ee(t)}}toString(){return JSON.stringify(this.values)}}const re=new Set([\"center\",\"left\",\"right\",\"top\",\"bottom\",\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"]);class ne{constructor(t){this.values=t.slice();}static parse(t){if(t instanceof ne)return t;if(Array.isArray(t)&&!(t.length<1)&&t.length%2==0){for(let e=0;e=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 se(t){if(null===t||\"string\"==typeof t||\"boolean\"==typeof t||\"number\"==typeof t||t instanceof Ht||t instanceof Wt||t instanceof te||t instanceof ee||t instanceof ne||t instanceof ie)return !0;if(Array.isArray(t)){for(const e of t)if(!se(e))return !1;return !0}if(\"object\"==typeof t){for(const e in t)if(!se(t[e]))return !1;return !0}return !1}function oe(t){if(null===t)return pt;if(\"string\"==typeof t)return dt;if(\"boolean\"==typeof t)return yt;if(\"number\"==typeof t)return ft;if(t instanceof Ht)return mt;if(t instanceof Wt)return vt;if(t instanceof te)return bt;if(t instanceof ee)return wt;if(t instanceof ne)return At;if(t instanceof ie)return _t;if(Array.isArray(t)){const e=t.length;let r;for(const e of t){const t=oe(e);if(r){if(r===t)continue;r=xt;break}r=t;}return St(r||xt,e)}return gt}function le(t){const e=typeof t;return null===t?\"\":\"string\"===e||\"number\"===e||\"boolean\"===e?String(t):t instanceof Ht||t instanceof te||t instanceof ee||t instanceof ne||t instanceof ie?t.toString():JSON.stringify(t)}class ue{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(!se(t[1]))return e.error(\"invalid value\");const r=t[1];let n=oe(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 ue(n,r)}evaluate(){return this.value}eachChild(){}outputDefined(){return !0}}class ce{constructor(t){this.name=\"ExpressionEvaluationError\",this.message=t;}toJSON(){return this.message}}const he={string:dt,number:ft,boolean:yt,object:gt};class pe{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 he)||\"object\"===r)return e.error('The item type argument of \"array\" must be one of string, number, boolean',1);i=he[r],n++;}else i=xt;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=St(i,a);}else {if(!he[i])throw new Error(`Types doesn't contain name = ${i}`);r=he[i];}const a=[];for(;nt.outputDefined()))}}const fe={\"to-boolean\":yt,\"to-color\":mt,\"to-number\":ft,\"to-string\":dt};class de{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(!fe[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=fe[r],i=[];for(let r=1;r4?`Invalid rbga value ${JSON.stringify(e)}: expected an array containing either three or four numeric values.`:ae(e[0],e[1],e[2],e[3]),!r))return new Ht(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new ce(r||`Could not parse color from value '${\"string\"==typeof e?e:JSON.stringify(e)}'`)}case\"padding\":{let e;for(const r of this.args){e=r.evaluate(t);const n=ee.parse(e);if(n)return n}throw new ce(`Could not parse padding from value '${\"string\"==typeof e?e:JSON.stringify(e)}'`)}case\"variableAnchorOffsetCollection\":{let e;for(const r of this.args){e=r.evaluate(t);const n=ne.parse(e);if(n)return n}throw new ce(`Could not parse variableAnchorOffsetCollection from value '${\"string\"==typeof e?e:JSON.stringify(e)}'`)}case\"number\":{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 ce(`Could not convert ${JSON.stringify(e)} to number.`)}case\"formatted\":return te.fromString(le(this.args[0].evaluate(t)));case\"resolvedImage\":return ie.fromString(le(this.args[0].evaluate(t)));default:return le(this.args[0].evaluate(t))}}eachChild(t){this.args.forEach(t);}outputDefined(){return this.args.every((t=>t.outputDefined()))}}const ye=[\"Unknown\",\"Point\",\"LineString\",\"Polygon\"];class me{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?ye[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]=Ht.parse(t)),e}}class ge{constructor(t,e,r=[],n,i=new ht,a=[]){this.registry=t,this.path=r,this.key=r.map((t=>`[${t}]`)).join(\"\"),this.scope=i,this.errors=a,this.expectedType=n,this._isConstant=e;}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 pe(e,[t]):\"coerce\"===r?new de(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(\"variableAnchorOffsetCollection\"!==t.kind||\"value\"!==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||\"coerce\");else n=r(n,t,e.typeAnnotation||\"assert\");}if(!(n instanceof ue)&&\"resolvedImage\"!==n.type.kind&&this._isConstant(n)){const t=new me;try{n=new ue(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 ge(this.registry,this._isConstant,n,e||null,i,this.errors)}error(t,...e){const r=`${this.key}${e.map((t=>`[${t}]`)).join(\"\")}`;this.errors.push(new ct(r,t));}checkSubtype(t,e){const r=zt(t,e);return r&&this.error(r),r}}class xe{constructor(t,e,r){this.type=vt,this.locale=r,this.caseSensitive=t,this.diacriticSensitive=e;}static parse(t,e){if(2!==t.length)return e.error(\"Expected one argument.\");const r=t[1];if(\"object\"!=typeof r||Array.isArray(r))return e.error(\"Collator options argument must be an object.\");const n=e.parse(void 0!==r[\"case-sensitive\"]&&r[\"case-sensitive\"],1,yt);if(!n)return null;const i=e.parse(void 0!==r[\"diacritic-sensitive\"]&&r[\"diacritic-sensitive\"],1,yt);if(!i)return null;let a=null;return r.locale&&(a=e.parse(r.locale,1,dt),!a)?null:new xe(n,i,a)}evaluate(t){return new Wt(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)}eachChild(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale);}outputDefined(){return !1}}const ve=8192;function be(t,e){t[0]=Math.min(t[0],e[0]),t[1]=Math.min(t[1],e[1]),t[2]=Math.max(t[2],e[0]),t[3]=Math.max(t[3],e[1]);}function we(t,e){return !(t[0]<=e[0]||t[2]>=e[2]||t[1]<=e[1]||t[3]>=e[3])}function _e(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*ve),Math.round(n*i*ve)]}function Ae(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 Se(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 ke(t,e){for(let r=0;r0&&o<0||s<0&&o>0}function ze(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;}be(e,t);}function Ee(t,e,r,n){const i=Math.pow(2,n.z)*ve,a=[n.x*ve,n.y*ve],s=[];for(const n of t)for(const t of n){const n=[t.x+a[0],t.y+a[1]];Ve(n,e,r,i),s.push(n);}return s}function Fe(t,e,r,n){const i=Math.pow(2,n.z)*ve,a=[n.x*ve,n.y*ve],s=[];for(const r of t){const t=[];for(const n of r){const r=[n.x+a[0],n.y+a[1]];be(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)Ve(n,e,r,i);}var o;return s}class Te{constructor(t,e){this.type=yt,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(se(t[1])){const e=t[1];if(\"FeatureCollection\"===e.type)for(let t=0;t!Array.isArray(e)||e.length===t.length-1));let o=null;for(const[n,a]of s){o=new ge(e.registry,De,e.path,null,e.scope);const s=[];let l=!1;for(let e=1;e{return e=t,Array.isArray(e)?`(${e.map(kt).join(\", \")})`:`(${kt(e.type)}...)`;var e;})).join(\" | \"),n=[];for(let r=1;r{r=e?r&&De(t):r&&t instanceof ue;})),!!r&&Oe(t)&&Re(t,[\"zoom\",\"heatmap-density\",\"line-progress\",\"accumulated\",\"is-supported-script\"])}function Oe(t){if(t instanceof Le){if(\"get\"===t.name&&1===t.args.length)return !1;if(\"feature-state\"===t.name)return !1;if(\"has\"===t.name&&1===t.args.length)return !1;if(\"properties\"===t.name||\"geometry-type\"===t.name||\"id\"===t.name)return !1;if(/^filter-/.test(t.name))return !1}if(t instanceof Te)return !1;let e=!0;return t.eachChild((t=>{e&&!Oe(t)&&(e=!1);})),e}function Ue(t){if(t instanceof Le&&\"feature-state\"===t.name)return !1;let e=!0;return t.eachChild((t=>{e&&!Ue(t)&&(e=!1);})),e}function Re(t,e){if(t instanceof Le&&e.indexOf(t.name)>=0)return !1;let r=!0;return t.eachChild((t=>{r&&!Re(t,e)&&(r=!1);})),r}function qe(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 ce(\"Input is not a number.\");s=o-1;}return 0}class je{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,ft);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 je(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[qe(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 Ne(t,e,r){return t+r*(e-t)}function Ze(t,e,r){return t.map(((t,n)=>Ne(t,e[n],r)))}const Ke={number:Ne,color:function(t,e,r,n=\"rgb\"){switch(n){case\"rgb\":{const[n,i,a,s]=Ze(t.rgb,e.rgb,r);return new Ht(n,i,a,s,!1)}case\"hcl\":{const[n,i,a,s]=t.hcl,[o,l,u,c]=e.hcl;let h,p;if(isNaN(n)||isNaN(o))isNaN(n)?isNaN(o)?h=NaN:(h=o,1!==a&&0!==a||(p=l)):(h=n,1!==u&&0!==u||(p=i));else {let t=o-n;o>n&&t>180?t-=360:o180&&(t+=360),h=n+r*t;}const[f,d,y,m]=function([t,e,r,n]){return t=isNaN(t)?0:t*Lt,jt([r,Math.cos(t)*e,Math.sin(t)*e,n])}([h,null!=p?p:Ne(i,l,r),Ne(a,u,r),Ne(s,c,r)]);return new Ht(f,d,y,m,!1)}case\"lab\":{const[n,i,a,s]=jt(Ze(t.lab,e.lab,r));return new Ht(n,i,a,s,!1)}}},array:Ze,padding:function(t,e,r){return new ee(Ze(t.values,e.values,r))},variableAnchorOffsetCollection:function(t,e,r){const n=t.values,i=e.values;if(n.length!==i.length)throw new ce(`Cannot interpolate values of different length. from: ${t.toString()}, to: ${e.toString()}`);const a=[];for(let t=0;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,ft),!i)return null;const s=[];let o=null;\"interpolate-hcl\"===r||\"interpolate-lab\"===r?o=mt: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 Ct(o,ft)||Ct(o,mt)||Ct(o,wt)||Ct(o,At)||Ct(o,St(ft))?new Ge(o,r,n,i,s):e.error(`Type ${kt(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=qe(e,n),s=Ge.interpolationFactor(this.interpolation,n,e[a],e[a+1]),o=r[a].evaluate(t),l=r[a+1].evaluate(t);switch(this.operator){case\"interpolate\":return Ke[this.type.kind](o,l,s);case\"interpolate-hcl\":return Ke.color(o,l,s,\"hcl\");case\"interpolate-lab\":return Ke.color(o,l,s,\"lab\")}}eachChild(t){t(this.input);for(const e of this.outputs)t(e);}outputDefined(){return this.outputs.every((t=>t.outputDefined()))}}function Je(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 Xe{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=>zt(n,t.type)));return new Xe(a?xt: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 ie&&!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 Ye{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 ce(`Array index out of bounds: ${e} > ${r.length-1}.`);if(e!==Math.floor(e))throw new ce(`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 We{constructor(t,e){this.type=yt,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,xt),n=e.parse(t[2],2,xt);return r&&n?Mt(r.type,[yt,dt,ft,pt,xt])?new We(r,n):e.error(`Expected first argument to be of type boolean, string, number or null, but found ${kt(r.type)} instead`):null}evaluate(t){const e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!r)return !1;if(!Pt(e,[\"boolean\",\"string\",\"number\",\"null\"]))throw new ce(`Expected first argument to be of type boolean, string, number or null, but found ${kt(oe(e))} instead.`);if(!Pt(r,[\"string\",\"array\"]))throw new ce(`Expected second argument to be of type array or string, but found ${kt(oe(r))} instead.`);return r.indexOf(e)>=0}eachChild(t){t(this.needle),t(this.haystack);}outputDefined(){return !0}}class Qe{constructor(t,e,r){this.type=ft,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,xt),n=e.parse(t[2],2,xt);if(!r||!n)return null;if(!Mt(r.type,[yt,dt,ft,pt,xt]))return e.error(`Expected first argument to be of type boolean, string, number or null, but found ${kt(r.type)} instead`);if(4===t.length){const i=e.parse(t[3],3,ft);return i?new Qe(r,n,i):null}return new Qe(r,n)}evaluate(t){const e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!Pt(e,[\"boolean\",\"string\",\"number\",\"null\"]))throw new ce(`Expected first argument to be of type boolean, string, number or null, but found ${kt(oe(e))} instead.`);if(!Pt(r,[\"string\",\"array\"]))throw new ce(`Expected second argument to be of type array or string, but found ${kt(oe(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 tr{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,oe(t)))return null}else r=oe(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,xt);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 tr(r,n,s,i,a,o):null}evaluate(t){const e=this.input.evaluate(t);return (oe(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 er{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 rr{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,xt),n=e.parse(t[2],2,ft);if(!r||!n)return null;if(!Mt(r.type,[St(xt),dt,xt]))return e.error(`Expected first argument to be of type array or string, but found ${kt(r.type)} instead`);if(4===t.length){const i=e.parse(t[3],3,ft);return i?new rr(r.type,r,n,i):null}return new rr(r.type,r,n)}evaluate(t){const e=this.input.evaluate(t),r=this.beginIndex.evaluate(t);if(!Pt(e,[\"string\",\"array\"]))throw new ce(`Expected first argument to be of type array or string, but found ${kt(oe(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 nr(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 ir(t,e,r,n){return 0===n.compare(e,r)}function ar(t,e,r){const n=\"==\"!==t&&\"!=\"!==t;return class i{constructor(t,e,r){this.type=yt,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,xt);if(!a)return null;if(!nr(r,a.type))return e.concat(1).error(`\"${r}\" comparisons are not supported for type '${kt(a.type)}'.`);let s=e.parse(t[2],2,xt);if(!s)return null;if(!nr(r,s.type))return e.concat(2).error(`\"${r}\" comparisons are not supported for type '${kt(s.type)}'.`);if(a.type.kind!==s.type.kind&&\"value\"!==a.type.kind&&\"value\"!==s.type.kind)return e.error(`Cannot compare types '${kt(a.type)}' and '${kt(s.type)}'.`);n&&(\"value\"===a.type.kind&&\"value\"!==s.type.kind?a=new pe(s.type,[a]):\"value\"!==a.type.kind&&\"value\"===s.type.kind&&(s=new pe(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,vt),!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=oe(a),r=oe(s);if(e.kind!==r.kind||\"string\"!==e.kind&&\"number\"!==e.kind)throw new ce(`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=oe(a),r=oe(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 sr=ar(\"==\",(function(t,e,r){return e===r}),ir),or=ar(\"!=\",(function(t,e,r){return e!==r}),(function(t,e,r,n){return !ir(0,e,r,n)})),lr=ar(\"<\",(function(t,e,r){return e\",(function(t,e,r){return e>r}),(function(t,e,r,n){return n.compare(e,r)>0})),cr=ar(\"<=\",(function(t,e,r){return e<=r}),(function(t,e,r,n){return n.compare(e,r)<=0})),hr=ar(\">=\",(function(t,e,r){return e>=r}),(function(t,e,r,n){return n.compare(e,r)>=0}));class pr{constructor(t,e,r,n,i){this.type=dt,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,ft);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,dt),!i))return null;let a=null;if(n.currency&&(a=e.parse(n.currency,1,dt),!a))return null;let s=null;if(n[\"min-fraction-digits\"]&&(s=e.parse(n[\"min-fraction-digits\"],1,ft),!s))return null;let o=null;return n[\"max-fraction-digits\"]&&(o=e.parse(n[\"max-fraction-digits\"],1,ft),!o)?null:new pr(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 fr{constructor(t){this.type=bt,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,ft),!t))return null;let r=null;if(a[\"text-font\"]&&(r=e.parse(a[\"text-font\"],1,St(dt)),!r))return null;let s=null;if(a[\"text-color\"]&&(s=e.parse(a[\"text-color\"],1,mt),!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,xt);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 fr(n)}evaluate(t){return new te(this.sections.map((e=>{const r=e.content.evaluate(t);return oe(r)===_t?new Qt(\"\",r,null,null,null):new Qt(le(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 dr{constructor(t){this.type=_t,this.input=t;}static parse(t,e){if(2!==t.length)return e.error(\"Expected two arguments.\");const r=e.parse(t[1],1,dt);return r?new dr(r):e.error(\"No image name provided.\")}evaluate(t){const e=this.input.evaluate(t),r=ie.fromString(e);return r&&t.availableImages&&(r.available=t.availableImages.indexOf(e)>-1),r}eachChild(t){t(this.input);}outputDefined(){return !1}}class yr{constructor(t){this.type=ft,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 ${kt(r.type)} instead.`):new yr(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 ce(`Expected value to be of type string or array, but found ${kt(oe(e))} instead.`)}eachChild(t){t(this.input);}outputDefined(){return !1}}const mr={\"==\":sr,\"!=\":or,\">\":ur,\"<\":lr,\">=\":hr,\"<=\":cr,array:pe,at:He,boolean:pe,case:er,coalesce:Xe,collator:xe,format:fr,image:dr,in:We,\"index-of\":Qe,interpolate:Ge,\"interpolate-hcl\":Ge,\"interpolate-lab\":Ge,length:yr,let:Ye,literal:ue,match:tr,number:pe,\"number-format\":pr,object:pe,slice:rr,step:je,string:pe,\"to-boolean\":de,\"to-color\":de,\"to-number\":de,\"to-string\":de,var:$e,within:Te};function gr(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=ae(e,r,n,a);if(s)throw new ce(s);return new Ht(e/255,r/255,n/255,a,!1)}function xr(t,e){return t in e}function vr(t,e){const r=e[t];return void 0===r?null:r}function br(t){return {type:t}}function wr(t){return {result:\"success\",value:t}}function _r(t){return {result:\"error\",value:t}}function Ar(t){return \"data-driven\"===t[\"property-type\"]||\"cross-faded-data-driven\"===t[\"property-type\"]}function Sr(t){return !!t.expression&&t.expression.parameters.indexOf(\"zoom\")>-1}function kr(t){return !!t.expression&&t.expression.interpolated}function Ir(t){return t instanceof Number?\"number\":t instanceof String?\"string\":t instanceof Boolean?\"boolean\":Array.isArray(t)?\"array\":null===t?\"null\":typeof t}function zr(t){return \"object\"==typeof t&&null!==t&&!Array.isArray(t)}function Mr(t){return t}function Pr(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||(kr(e)?\"exponential\":\"interval\");if(r||\"padding\"===e.type){const n=r?Ht.parse:ee.parse;(t=ut({},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\"!==(s=t.colorSpace)&&\"hcl\"!==s&&\"lab\"!==s)throw new Error(`Unknown color space: \"${t.colorSpace}\"`);var s;let o,l,u;if(\"exponential\"===a)o=Er;else if(\"interval\"===a)o=Vr;else if(\"categorical\"===a){o=Br,l=Object.create(null);for(const e of t.stops)l[e[0]]=e[1];u=typeof t.stops[0][0];}else {if(\"identity\"!==a)throw new Error(`Unknown function type \"${a}\"`);o=Fr;}if(n){const r={},n=[];for(let e=0;et[0])),evaluate:({zoom:r},n)=>Er({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:Ge.interpolationFactor.bind(void 0,r),zoomStops:t.stops.map((t=>t[0])),evaluate:({zoom:r})=>o(t,e,r,l,u)}}return {kind:\"source\",evaluate(r,n){const i=n&&n.properties?n.properties[t.property]:void 0;return void 0===i?Cr(t.default,e.default):o(t,e,i,l,u)}}}function Cr(t,e,r){return void 0!==t?t:void 0!==e?e:void 0!==r?r:void 0}function Br(t,e,r,n,i){return Cr(typeof r===i?n[r]:void 0,t.default,e.default)}function Vr(t,e,r){if(\"number\"!==Ir(r))return Cr(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=qe(t.stops.map((t=>t[0])),r);return t.stops[i][1]}function Er(t,e,r){const n=void 0!==t.base?t.base:1;if(\"number\"!==Ir(r))return Cr(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=qe(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],u=Ke[e.type]||Mr;return \"function\"==typeof o.evaluate?{evaluate(...e){const r=o.evaluate.apply(void 0,e),n=l.evaluate.apply(void 0,e);if(void 0!==r&&void 0!==n)return u(r,n,s,t.colorSpace)}}:u(o,l,s,t.colorSpace)}function Fr(t,e,r){switch(e.type){case\"color\":r=Ht.parse(r);break;case\"formatted\":r=te.fromString(r.toString());break;case\"resolvedImage\":r=ie.fromString(r.toString());break;case\"padding\":r=ee.parse(r);break;default:Ir(r)===e.type||\"enum\"===e.type&&e.values[r]||(r=void 0);}return Cr(r,t.default,e.default)}Le.register(mr,{error:[{kind:\"error\"},[dt],(t,[e])=>{throw new ce(e.evaluate(t))}],typeof:[dt,[xt],(t,[e])=>kt(oe(e.evaluate(t)))],\"to-rgba\":[St(ft,4),[mt],(t,[e])=>{const[r,n,i,a]=e.evaluate(t).rgb;return [255*r,255*n,255*i,a]}],rgb:[mt,[ft,ft,ft],gr],rgba:[mt,[ft,ft,ft,ft],gr],has:{type:yt,overloads:[[[dt],(t,[e])=>xr(e.evaluate(t),t.properties())],[[dt,gt],(t,[e,r])=>xr(e.evaluate(t),r.evaluate(t))]]},get:{type:xt,overloads:[[[dt],(t,[e])=>vr(e.evaluate(t),t.properties())],[[dt,gt],(t,[e,r])=>vr(e.evaluate(t),r.evaluate(t))]]},\"feature-state\":[xt,[dt],(t,[e])=>vr(e.evaluate(t),t.featureState||{})],properties:[gt,[],t=>t.properties()],\"geometry-type\":[dt,[],t=>t.geometryType()],id:[xt,[],t=>t.id()],zoom:[ft,[],t=>t.globals.zoom],\"heatmap-density\":[ft,[],t=>t.globals.heatmapDensity||0],\"line-progress\":[ft,[],t=>t.globals.lineProgress||0],accumulated:[xt,[],t=>void 0===t.globals.accumulated?null:t.globals.accumulated],\"+\":[ft,br(ft),(t,e)=>{let r=0;for(const n of e)r+=n.evaluate(t);return r}],\"*\":[ft,br(ft),(t,e)=>{let r=1;for(const n of e)r*=n.evaluate(t);return r}],\"-\":{type:ft,overloads:[[[ft,ft],(t,[e,r])=>e.evaluate(t)-r.evaluate(t)],[[ft],(t,[e])=>-e.evaluate(t)]]},\"/\":[ft,[ft,ft],(t,[e,r])=>e.evaluate(t)/r.evaluate(t)],\"%\":[ft,[ft,ft],(t,[e,r])=>e.evaluate(t)%r.evaluate(t)],ln2:[ft,[],()=>Math.LN2],pi:[ft,[],()=>Math.PI],e:[ft,[],()=>Math.E],\"^\":[ft,[ft,ft],(t,[e,r])=>Math.pow(e.evaluate(t),r.evaluate(t))],sqrt:[ft,[ft],(t,[e])=>Math.sqrt(e.evaluate(t))],log10:[ft,[ft],(t,[e])=>Math.log(e.evaluate(t))/Math.LN10],ln:[ft,[ft],(t,[e])=>Math.log(e.evaluate(t))],log2:[ft,[ft],(t,[e])=>Math.log(e.evaluate(t))/Math.LN2],sin:[ft,[ft],(t,[e])=>Math.sin(e.evaluate(t))],cos:[ft,[ft],(t,[e])=>Math.cos(e.evaluate(t))],tan:[ft,[ft],(t,[e])=>Math.tan(e.evaluate(t))],asin:[ft,[ft],(t,[e])=>Math.asin(e.evaluate(t))],acos:[ft,[ft],(t,[e])=>Math.acos(e.evaluate(t))],atan:[ft,[ft],(t,[e])=>Math.atan(e.evaluate(t))],min:[ft,br(ft),(t,e)=>Math.min(...e.map((e=>e.evaluate(t))))],max:[ft,br(ft),(t,e)=>Math.max(...e.map((e=>e.evaluate(t))))],abs:[ft,[ft],(t,[e])=>Math.abs(e.evaluate(t))],round:[ft,[ft],(t,[e])=>{const r=e.evaluate(t);return r<0?-Math.round(-r):Math.round(r)}],floor:[ft,[ft],(t,[e])=>Math.floor(e.evaluate(t))],ceil:[ft,[ft],(t,[e])=>Math.ceil(e.evaluate(t))],\"filter-==\":[yt,[dt,xt],(t,[e,r])=>t.properties()[e.value]===r.value],\"filter-id-==\":[yt,[xt],(t,[e])=>t.id()===e.value],\"filter-type-==\":[yt,[dt],(t,[e])=>t.geometryType()===e.value],\"filter-<\":[yt,[dt,xt],(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\":[yt,[dt,xt],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n>i}],\"filter-id->\":[yt,[xt],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r>n}],\"filter-<=\":[yt,[dt,xt],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n<=i}],\"filter-id-<=\":[yt,[xt],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r<=n}],\"filter->=\":[yt,[dt,xt],(t,[e,r])=>{const n=t.properties()[e.value],i=r.value;return typeof n==typeof i&&n>=i}],\"filter-id->=\":[yt,[xt],(t,[e])=>{const r=t.id(),n=e.value;return typeof r==typeof n&&r>=n}],\"filter-has\":[yt,[xt],(t,[e])=>e.value in t.properties()],\"filter-has-id\":[yt,[],t=>null!==t.id()&&void 0!==t.id()],\"filter-type-in\":[yt,[St(dt)],(t,[e])=>e.value.indexOf(t.geometryType())>=0],\"filter-id-in\":[yt,[St(xt)],(t,[e])=>e.value.indexOf(t.id())>=0],\"filter-in-small\":[yt,[dt,St(xt)],(t,[e,r])=>r.value.indexOf(t.properties()[e.value])>=0],\"filter-in-large\":[yt,[dt,St(xt)],(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:yt,overloads:[[[yt,yt],(t,[e,r])=>e.evaluate(t)&&r.evaluate(t)],[br(yt),(t,e)=>{for(const r of e)if(!r.evaluate(t))return !1;return !0}]]},any:{type:yt,overloads:[[[yt,yt],(t,[e,r])=>e.evaluate(t)||r.evaluate(t)],[br(yt),(t,e)=>{for(const r of e)if(r.evaluate(t))return !0;return !1}]]},\"!\":[yt,[yt],(t,[e])=>!e.evaluate(t)],\"is-supported-script\":[yt,[dt],(t,[e])=>{const r=t.globals&&t.globals.isSupportedScript;return !r||r(e.evaluate(t))}],upcase:[dt,[dt],(t,[e])=>e.evaluate(t).toUpperCase()],downcase:[dt,[dt],(t,[e])=>e.evaluate(t).toLowerCase()],concat:[dt,br(xt),(t,e)=>e.map((e=>le(e.evaluate(t)))).join(\"\")],\"resolved-locale\":[dt,[vt],(t,[e])=>e.evaluate(t).resolvedLocale()]});class Tr{constructor(t,e){var r;this.expression=t,this._warningHistory={},this._evaluator=new me,this._defaultValue=e?\"color\"===(r=e).type&&zr(r.default)?new Ht(0,0,0,0):\"color\"===r.type?Ht.parse(r.default)||null:\"padding\"===r.type?ee.parse(r.default)||null:\"variableAnchorOffsetCollection\"===r.type?ne.parse(r.default)||null:void 0===r.default?null:r.default: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 ce(`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 $r(t){return Array.isArray(t)&&t.length>0&&\"string\"==typeof t[0]&&t[0]in mr}function Lr(t,e){const r=new ge(mr,De,[],e?function(t){const e={color:mt,string:dt,number:ft,enum:dt,boolean:yt,formatted:bt,padding:wt,resolvedImage:_t,variableAnchorOffsetCollection:At};return \"array\"===t.type?St(e[t.value]||xt,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?wr(new Tr(n,e)):_r(r.errors)}class Dr{constructor(t,e){this.kind=t,this._styleExpression=e,this.isStateDependent=\"constant\"!==t&&!Ue(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 Or{constructor(t,e,r,n){this.kind=t,this.zoomStops=r,this._styleExpression=e,this.isStateDependent=\"camera\"!==t&&!Ue(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?Ge.interpolationFactor(this.interpolationType,t,e,r):0}}function Ur(t,e){const r=Lr(t,e);if(\"error\"===r.result)return r;const n=r.value.expression,i=Oe(n);if(!i&&!Ar(e))return _r([new ct(\"\",\"data expressions not supported\")]);const a=Re(n,[\"zoom\"]);if(!a&&!Sr(e))return _r([new ct(\"\",\"zoom expressions not supported\")]);const s=qr(n);return s||a?s instanceof ct?_r([s]):s instanceof Ge&&!kr(e)?_r([new ct(\"\",'\"interpolate\" expressions cannot be used with this property')]):wr(s?new Or(i?\"camera\":\"composite\",r.value,s.labels,s instanceof Ge?s.interpolation:void 0):new Dr(i?\"constant\":\"source\",r.value)):_r([new ct(\"\",'\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.')])}class Rr{constructor(t,e){this._parameters=t,this._specification=e,ut(this,Pr(this._parameters,this._specification));}static deserialize(t){return new Rr(t._parameters,t._specification)}static serialize(t){return {_parameters:t._parameters,_specification:t._specification}}}function qr(t){let e=null;if(t instanceof Ye)e=qr(t.result);else if(t instanceof Xe){for(const r of t.args)if(e=qr(r),e)break}else (t instanceof je||t instanceof Ge)&&t.input instanceof Le&&\"zoom\"===t.input.name&&(e=t);return e instanceof ct||t.eachChild((t=>{const r=qr(t);r instanceof ct?e=r:!e&&r?e=new ct(\"\",'\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.'):e&&r&&e!==r&&(e=new ct(\"\",'Only one zoom-based \"step\" or \"interpolate\" subexpression may be used in an expression.'));})),e}function jr(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(!jr(e)&&\"boolean\"!=typeof e)return !1;return !0;default:return !0}}const Nr={type:\"boolean\",default:!1,transition:!1,\"property-type\":\"data-driven\",expression:{interpolated:!1,parameters:[\"zoom\",\"feature\"]}};function Zr(t){if(null==t)return {filter:()=>!0,needGeometry:!1};jr(t)||(t=Jr(t));const e=Lr(t,Nr);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:Gr(t)}}function Kr(t,e){return te?1:0}function Gr(t){if(!Array.isArray(t))return !1;if(\"within\"===t[0])return !0;for(let e=1;e\"===e||\"<=\"===e||\">=\"===e?Xr(t[1],t[2],e):\"any\"===e?(r=t.slice(1),[\"any\"].concat(r.map(Jr))):\"all\"===e?[\"all\"].concat(t.slice(1).map(Jr)):\"none\"===e?[\"all\"].concat(t.slice(1).map(Jr).map(Wr)):\"in\"===e?Yr(t[1],t.slice(2)):\"!in\"===e?Wr(Yr(t[1],t.slice(2))):\"has\"===e?Hr(t[1]):\"!has\"===e?Wr(Hr(t[1])):\"within\"!==e||t;var r;}function Xr(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 Yr(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(Kr)]]:[\"filter-in-small\",t,[\"literal\",e]]}}function Hr(t){switch(t){case\"$type\":return !0;case\"$id\":return [\"filter-has-id\"];default:return [\"filter-has\",t]}}function Wr(t){return [\"!\",t]}function Qr(t){const e=typeof t;if(\"number\"===e||\"boolean\"===e||\"string\"===e||null==t)return JSON.stringify(t);if(Array.isArray(t)){let e=\"[\";for(const r of t)e+=`${Qr(r)},`;return `${e}]`}const r=Object.keys(t).sort();let n=\"{\";for(let e=0;en.maximum?[new lt(e,r,`${r} is greater than the maximum value ${n.maximum}`)]:[]}function ln(t){const e=t.valueSpec,r=rn(t.value.type);let n,i,a,s={};const o=\"categorical\"!==r&&void 0===t.value.property,l=!o,u=\"array\"===Ir(t.value.stops)&&\"array\"===Ir(t.value.stops[0])&&\"object\"===Ir(t.value.stops[0][0]),c=an({key:t.key,value:t.value,valueSpec:t.styleSpec.function,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if(\"identity\"===r)return [new lt(t.key,t.value,'identity function may not have a \"stops\" property')];let e=[];const n=t.value;return e=e.concat(sn({key:t.key,value:n,valueSpec:t.valueSpec,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:h})),\"array\"===Ir(n)&&0===n.length&&e.push(new lt(t.key,n,\"array must have at least one stop\")),e},default:function(t){return t.validateSpec({key:t.key,value:t.value,valueSpec:e,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec})}}});return \"identity\"===r&&o&&c.push(new lt(t.key,t.value,'missing required property \"property\"')),\"identity\"===r||t.value.stops||c.push(new lt(t.key,t.value,'missing required property \"stops\"')),\"exponential\"===r&&t.valueSpec.expression&&!kr(t.valueSpec)&&c.push(new lt(t.key,t.value,\"exponential functions not supported\")),t.styleSpec.$version>=8&&(l&&!Ar(t.valueSpec)?c.push(new lt(t.key,t.value,\"property functions not supported\")):o&&!Sr(t.valueSpec)&&c.push(new lt(t.key,t.value,\"zoom functions not supported\"))),\"categorical\"!==r&&!u||void 0!==t.value.property||c.push(new lt(t.key,t.value,'\"property\" property is required')),c;function h(t){let r=[];const n=t.value,o=t.key;if(\"array\"!==Ir(n))return [new lt(o,n,`array expected, ${Ir(n)} found`)];if(2!==n.length)return [new lt(o,n,`array length 2 expected, length ${n.length} found`)];if(u){if(\"object\"!==Ir(n[0]))return [new lt(o,n,`object expected, ${Ir(n[0])} found`)];if(void 0===n[0].zoom)return [new lt(o,n,\"object stop key must have zoom\")];if(void 0===n[0].value)return [new lt(o,n,\"object stop key must have value\")];if(a&&a>rn(n[0].zoom))return [new lt(o,n[0].zoom,\"stop zoom values must appear in ascending order\")];rn(n[0].zoom)!==a&&(a=rn(n[0].zoom),i=void 0,s={}),r=r.concat(an({key:`${o}[0]`,value:n[0],valueSpec:{zoom:{}},validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:on,value:p}}));}else r=r.concat(p({key:`${o}[0]`,value:n[0],valueSpec:{},validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec},n));return $r(nn(n[1]))?r.concat([new lt(`${o}[1]`,n[1],\"expressions are not allowed in function stops.\")]):r.concat(t.validateSpec({key:`${o}[1]`,value:n[1],valueSpec:e,validateSpec:t.validateSpec,style:t.style,styleSpec:t.styleSpec}))}function p(t,a){const o=Ir(t.value),l=rn(t.value),u=null!==t.value?t.value:a;if(n){if(o!==n)return [new lt(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 lt(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 Ar(e)&&void 0===r&&(n+='\\nIf you intended to use a categorical function, specify `\"type\": \"categorical\"`.'),[new lt(t.key,u,n)]}return \"categorical\"!==r||\"number\"!==o||isFinite(l)&&Math.floor(l)===l?\"categorical\"!==r&&\"number\"===o&&void 0!==i&&lnew lt(`${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 lt(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&&!Ue(r))return [new lt(t.key,t.value,'\"feature-state\" data expressions are not supported with layout properties.')];if(\"filter\"===t.expressionContext&&!Ue(r))return [new lt(t.key,t.value,'\"feature-state\" data expressions are not supported with filters.')];if(t.expressionContext&&0===t.expressionContext.indexOf(\"cluster\")){if(!Re(r,[\"zoom\",\"feature-state\"]))return [new lt(t.key,t.value,'\"zoom\" and \"feature-state\" expressions are not supported with cluster properties.')];if(\"cluster-initial\"===t.expressionContext&&!Oe(r))return [new lt(t.key,t.value,\"Feature data expressions are not supported with initial expression part of cluster properties.\")]}return []}function cn(t){const e=t.key,r=t.value,n=t.valueSpec,i=[];return Array.isArray(n.values)?-1===n.values.indexOf(rn(r))&&i.push(new lt(e,r,`expected one of [${n.values.join(\", \")}], ${JSON.stringify(r)} found`)):-1===Object.keys(n.values).indexOf(rn(r))&&i.push(new lt(e,r,`expected one of [${Object.keys(n.values).join(\", \")}], ${JSON.stringify(r)} found`)),i}function hn(t){return jr(nn(t.value))?un(ut({},t,{expressionContext:\"filter\",valueSpec:{value:\"boolean\"}})):pn(t)}function pn(t){const e=t.value,r=t.key;if(\"array\"!==Ir(e))return [new lt(r,e,`array expected, ${Ir(e)} found`)];const n=t.styleSpec;let i,a=[];if(e.length<1)return [new lt(r,e,\"filter array must have at least 1 element\")];switch(a=a.concat(cn({key:`${r}[0]`,value:e[0],valueSpec:n.filter_operator,style:t.style,styleSpec:t.styleSpec})),rn(e[0])){case\"<\":case\"<=\":case\">\":case\">=\":e.length>=2&&\"$type\"===rn(e[1])&&a.push(new lt(r,e,`\"$type\" cannot be use with operator \"${e[0]}\"`));case\"==\":case\"!=\":3!==e.length&&a.push(new lt(r,e,`filter array for operator \"${e[0]}\" must have 3 elements`));case\"in\":case\"!in\":e.length>=2&&(i=Ir(e[1]),\"string\"!==i&&a.push(new lt(`${r}[1]`,e[1],`string expected, ${i} found`)));for(let s=2;s{t in r&&e.push(new lt(n,r[t],`\"${t}\" is prohibited for ref layers`));})),i.layers.forEach((e=>{rn(e.id)===o&&(t=e);})),t?t.ref?e.push(new lt(n,r.ref,\"ref cannot reference another ref layer\")):s=rn(t.type):e.push(new lt(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&&rn(t.type);t?\"vector\"===a&&\"raster\"===s?e.push(new lt(n,r.source,`layer \"${r.id}\" requires a raster source`)):\"raster-dem\"!==a&&\"hillshade\"===s?e.push(new lt(n,r.source,`layer \"${r.id}\" requires a raster-dem source`)):\"raster\"===a&&\"raster\"!==s?e.push(new lt(n,r.source,`layer \"${r.id}\" requires a vector source`)):\"vector\"!==a||r[\"source-layer\"]?\"raster-dem\"===a&&\"hillshade\"!==s?e.push(new lt(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 lt(n,r,`layer \"${r.id}\" specifies a line-gradient, which requires a GeoJSON source with \\`lineMetrics\\` enabled.`)):e.push(new lt(n,r,`layer \"${r.id}\" must specify a \"source-layer\"`)):e.push(new lt(n,r.source,`source \"${r.source}\" not found`));}else e.push(new lt(n,r,'missing required property \"source\"'));return e=e.concat(an({key:n,value:r,valueSpec:a.layer,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{\"*\":()=>[],type:()=>t.validateSpec({key:`${n}.type`,value:r.type,valueSpec:a.layer.type,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,object:r,objectKey:\"type\"}),filter:hn,layout:t=>an({layer:r,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{\"*\":t=>yn(ut({layerType:s},t))}}),paint:t=>an({layer:r,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,validateSpec:t.validateSpec,objectElementValidators:{\"*\":t=>dn(ut({layerType:s},t))}})}})),e}function gn(t){const e=t.value,r=t.key,n=Ir(e);return \"string\"!==n?[new lt(r,e,`string expected, ${n} found`)]:[]}const xn={promoteId:function({key:t,value:e}){if(\"string\"===Ir(e))return gn({key:t,value:e});{const r=[];for(const n in e)r.push(...gn({key:`${t}.${n}`,value:e[n]}));return r}}};function vn(t){const e=t.value,r=t.key,n=t.styleSpec,i=t.style,a=t.validateSpec;if(!e.type)return [new lt(r,e,'\"type\" is required')];const s=rn(e.type);let o;switch(s){case\"vector\":case\"raster\":return o=an({key:r,value:e,valueSpec:n[`source_${s.replace(\"-\",\"_\")}`],style:t.style,styleSpec:n,objectElementValidators:xn,validateSpec:a}),o;case\"raster-dem\":return o=function(t){var e;const r=null!==(e=t.sourceName)&&void 0!==e?e:\"\",n=t.value,i=t.styleSpec,a=i.source_raster_dem,s=t.style;let o=[];const l=Ir(n);if(void 0===n)return o;if(\"object\"!==l)return o.push(new lt(\"source_raster_dem\",n,`object expected, ${l} found`)),o;const u=\"custom\"===rn(n.encoding),c=[\"redFactor\",\"greenFactor\",\"blueFactor\",\"baseShift\"],h=t.value.encoding?`\"${t.value.encoding}\"`:\"Default\";for(const e in n)!u&&c.includes(e)?o.push(new lt(e,n[e],`In \"${r}\": \"${e}\" is only valid when \"encoding\" is set to \"custom\". ${h} encoding found`)):a[e]?o=o.concat(t.validateSpec({key:e,value:n[e],valueSpec:a[e],validateSpec:t.validateSpec,style:s,styleSpec:i})):o.push(new lt(e,n[e],`unknown property \"${e}\"`));return o}({sourceName:r,value:e,style:t.style,styleSpec:n,validateSpec:a}),o;case\"geojson\":if(o=an({key:r,value:e,valueSpec:n.source_geojson,style:i,styleSpec:n,validateSpec:a,objectElementValidators:xn}),e.cluster)for(const t in e.clusterProperties){const[n,i]=e.clusterProperties[t],s=\"string\"==typeof n?[n,[\"accumulated\"],[\"get\",t]]:n;o.push(...un({key:`${r}.${t}.map`,value:i,validateSpec:a,expressionContext:\"cluster-map\"})),o.push(...un({key:`${r}.${t}.reduce`,value:s,validateSpec:a,expressionContext:\"cluster-reduce\"}));}return o;case\"video\":return an({key:r,value:e,valueSpec:n.source_video,style:i,validateSpec:a,styleSpec:n});case\"image\":return an({key:r,value:e,valueSpec:n.source_image,style:i,validateSpec:a,styleSpec:n});case\"canvas\":return [new lt(r,null,\"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.\",\"source.canvas\")];default:return cn({key:`${r}.type`,value:e.type,valueSpec:{values:[\"vector\",\"raster\",\"raster-dem\",\"geojson\",\"video\",\"image\"]},style:i,validateSpec:a,styleSpec:n})}}function bn(t){const e=t.value,r=t.styleSpec,n=r.light,i=t.style;let a=[];const s=Ir(e);if(void 0===e)return a;if(\"object\"!==s)return a=a.concat([new lt(\"light\",e,`object expected, ${s} found`)]),a;for(const s in e){const o=s.match(/^(.*)-transition$/);a=a.concat(o&&n[o[1]]&&n[o[1]].transition?t.validateSpec({key:s,value:e[s],valueSpec:r.transition,validateSpec:t.validateSpec,style:i,styleSpec:r}):n[s]?t.validateSpec({key:s,value:e[s],valueSpec:n[s],validateSpec:t.validateSpec,style:i,styleSpec:r}):[new lt(s,e[s],`unknown property \"${s}\"`)]);}return a}function wn(t){const e=t.value,r=t.styleSpec,n=r.terrain,i=t.style;let a=[];const s=Ir(e);if(void 0===e)return a;if(\"object\"!==s)return a=a.concat([new lt(\"terrain\",e,`object expected, ${s} found`)]),a;for(const s in e)a=a.concat(n[s]?t.validateSpec({key:s,value:e[s],valueSpec:n[s],validateSpec:t.validateSpec,style:i,styleSpec:r}):[new lt(s,e[s],`unknown property \"${s}\"`)]);return a}function _n(t){let e=[];const r=t.value,n=t.key;if(Array.isArray(r)){const i=[],a=[];for(const s in r)r[s].id&&i.includes(r[s].id)&&e.push(new lt(n,r,`all the sprites' ids must be unique, but ${r[s].id} is duplicated`)),i.push(r[s].id),r[s].url&&a.includes(r[s].url)&&e.push(new lt(n,r,`all the sprites' URLs must be unique, but ${r[s].url} is duplicated`)),a.push(r[s].url),e=e.concat(an({key:`${n}[${s}]`,value:r[s],valueSpec:{id:{type:\"string\",required:!0},url:{type:\"string\",required:!0}},validateSpec:t.validateSpec}));return e}return gn({key:n,value:r})}const An={\"*\":()=>[],array:sn,boolean:function(t){const e=t.value,r=t.key,n=Ir(e);return \"boolean\"!==n?[new lt(r,e,`boolean expected, ${n} found`)]:[]},number:on,color:function(t){const e=t.key,r=t.value,n=Ir(r);return \"string\"!==n?[new lt(e,r,`color expected, ${n} found`)]:Ht.parse(String(r))?[]:[new lt(e,r,`color expected, \"${r}\" found`)]},constants:en,enum:cn,filter:hn,function:ln,layer:mn,object:an,source:vn,light:bn,terrain:wn,string:gn,formatted:function(t){return 0===gn(t).length?[]:un(t)},resolvedImage:function(t){return 0===gn(t).length?[]:un(t)},padding:function(t){const e=t.key,r=t.value;if(\"array\"===Ir(r)){if(r.length<1||r.length>4)return [new lt(e,r,`padding requires 1 to 4 values; ${r.length} values found`)];const n={type:\"number\"};let i=[];for(let a=0;a[]}})),t.constants&&(r=r.concat(en({key:\"constants\",value:t.constants,style:t,styleSpec:e,validateSpec:Sn}))),Mn(r)}function zn(t){return function(e){return t({...e,validateSpec:Sn})}}function Mn(t){return [].concat(t).sort(((t,e)=>t.line-e.line))}function Pn(t){return function(...e){return Mn(t.apply(this,e))}}In.source=Pn(zn(vn)),In.sprite=Pn(zn(_n)),In.glyphs=Pn(zn(kn)),In.light=Pn(zn(bn)),In.terrain=Pn(zn(wn)),In.layer=Pn(zn(mn)),In.filter=Pn(zn(hn)),In.paintProperty=Pn(zn(dn)),In.layoutProperty=Pn(zn(yn));const Cn=In,Bn=Cn.light,Vn=Cn.paintProperty,En=Cn.layoutProperty;function Fn(t,e){let r=!1;if(e&&e.length)for(const n of e)t.fire(new J(new Error(n.message))),r=!0;return r}class Tn{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]=$n[n].shallow.indexOf(r)>=0?a:On(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 Un(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||Dn(t)||P(t)||ArrayBuffer.isView(t)||t instanceof ImageData)return t;if(Array.isArray(t))return t.map(Un);if(\"object\"==typeof t){const e=t.$name||\"Object\";if(!$n[e])throw new Error(`can't deserialize unregistered class ${e}`);const{klass:r}=$n[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]=$n[e].shallow.indexOf(r)>=0?i:Un(i);}return n}throw new Error(\"can't deserialize object of type \"+typeof t)}class Rn{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 jn(t){for(const e of t)if(Kn(e.charCodeAt(0)))return !0;return !1}function Nn(t){for(const e of t)if(!Zn(e.charCodeAt(0)))return !1;return !0}function Zn(t){return !(qn.Arabic(t)||qn[\"Arabic Supplement\"](t)||qn[\"Arabic Extended-A\"](t)||qn[\"Arabic Presentation Forms-A\"](t)||qn[\"Arabic Presentation Forms-B\"](t))}function Kn(t){return !(746!==t&&747!==t&&(t<4352||!(qn[\"Bopomofo Extended\"](t)||qn.Bopomofo(t)||qn[\"CJK Compatibility Forms\"](t)&&!(t>=65097&&t<=65103)||qn[\"CJK Compatibility Ideographs\"](t)||qn[\"CJK Compatibility\"](t)||qn[\"CJK Radicals Supplement\"](t)||qn[\"CJK Strokes\"](t)||!(!qn[\"CJK Symbols and Punctuation\"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||qn[\"CJK Unified Ideographs Extension A\"](t)||qn[\"CJK Unified Ideographs\"](t)||qn[\"Enclosed CJK Letters and Months\"](t)||qn[\"Hangul Compatibility Jamo\"](t)||qn[\"Hangul Jamo Extended-A\"](t)||qn[\"Hangul Jamo Extended-B\"](t)||qn[\"Hangul Jamo\"](t)||qn[\"Hangul Syllables\"](t)||qn.Hiragana(t)||qn[\"Ideographic Description Characters\"](t)||qn.Kanbun(t)||qn[\"Kangxi Radicals\"](t)||qn[\"Katakana Phonetic Extensions\"](t)||qn.Katakana(t)&&12540!==t||!(!qn[\"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)||!(!qn[\"Small Form Variants\"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||qn[\"Unified Canadian Aboriginal Syllabics\"](t)||qn[\"Unified Canadian Aboriginal Syllabics Extended\"](t)||qn[\"Vertical Forms\"](t)||qn[\"Yijing Hexagram Symbols\"](t)||qn[\"Yi Syllables\"](t)||qn[\"Yi Radicals\"](t))))}function Gn(t){return !(Kn(t)||function(t){return !!(qn[\"Latin-1 Supplement\"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||qn[\"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)||qn[\"Letterlike Symbols\"](t)||qn[\"Number Forms\"](t)||qn[\"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)||qn[\"Control Pictures\"](t)&&9251!==t||qn[\"Optical Character Recognition\"](t)||qn[\"Enclosed Alphanumerics\"](t)||qn[\"Geometric Shapes\"](t)||qn[\"Miscellaneous Symbols\"](t)&&!(t>=9754&&t<=9759)||qn[\"Miscellaneous Symbols and Arrows\"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||qn[\"CJK Symbols and Punctuation\"](t)||qn.Katakana(t)||qn[\"Private Use Area\"](t)||qn[\"CJK Compatibility Forms\"](t)||qn[\"Small Form Variants\"](t)||qn[\"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 Jn(t){return t>=1424&&t<=2303||qn[\"Arabic Presentation Forms-A\"](t)||qn[\"Arabic Presentation Forms-B\"](t)}function Xn(t,e){return !(!e&&Jn(t)||t>=2304&&t<=3583||t>=3840&&t<=4255||qn.Khmer(t))}function Yn(t){for(const e of t)if(Jn(e.charCodeAt(0)))return !0;return !1}const Hn=\"deferred\",Wn=\"loading\",Qn=\"loaded\";let ti=null,ei=\"unavailable\",ri=null;const ni=function(t){t&&\"string\"==typeof t&&t.indexOf(\"NetworkError\")>-1&&(ei=\"error\"),ti&&ti(t);};function ii(){ai.fire(new G(\"pluginStateChange\",{pluginStatus:ei,pluginURL:ri}));}const ai=new X,si=function(){return ei},oi=function(){if(ei!==Hn||!ri)throw new Error(\"rtl-text-plugin cannot be downloaded unless a pluginURL is specified\");ei=Wn,ii(),ri&&j({url:ri},(t=>{t?ni(t):(ei=Qn,ii());}));},li={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:()=>ei===Qn||null!=li.applyArabicShaping,isLoading:()=>ei===Wn,setState(t){if(!I())throw new Error(\"Cannot set the state of the rtl-text-plugin when not in the web-worker context\");ei=t.pluginStatus,ri=t.pluginURL;},isParsed(){if(!I())throw new Error(\"rtl-text-plugin is only parsed on the worker-threads\");return null!=li.applyArabicShaping&&null!=li.processBidirectionalText&&null!=li.processStyledBidirectionalText},getPluginURL(){if(!I())throw new Error(\"rtl-text-plugin url can only be queried from the worker threads\");return ri}};class ui{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 Rn,this.transition={});}isSupportedScript(t){return function(t,e){for(const r of t)if(!Xn(r.charCodeAt(0),e))return !1;return !0}(t,li.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 ci{constructor(t,e){this.property=t,this.value=e,this.expression=function(t,e){if(zr(t))return new Rr(t,e);if($r(t)){const r=Ur(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=Ht.parse(t):\"padding\"!==e.type||\"number\"!=typeof t&&!Array.isArray(t)?\"variableAnchorOffsetCollection\"===e.type&&Array.isArray(t)&&(r=ne.parse(t)):r=ee.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 hi{constructor(t){this.property=t,this.value=new ci(t,void 0);}transitioned(t,e){return new fi(this.property,this.value,e,g({},t.transition,this.transition),t.now)}untransitioned(){return new fi(this.property,this.value,null,{},0)}}class pi{constructor(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues);}getValue(t){return w(this._values[t].value.value)}setValue(t,e){Object.prototype.hasOwnProperty.call(this._values,t)||(this._values[t]=new hi(this._values[t].property)),this._values[t].value=new ci(this._values[t].property,null===e?void 0:w(e));}getTransition(t){return w(this._values[t].transition)}setTransition(t,e){Object.prototype.hasOwnProperty.call(this._values,t)||(this._values[t]=new hi(this._values[t].property)),this._values[t].transition=w(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 di(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 di(this._properties);for(const e of Object.keys(this._values))t._values[e]=this._values[e].untransitioned();return t}}class fi{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 di{constructor(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues);}possiblyEvaluate(t,e,r){const n=new gi(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 yi{constructor(t){this._properties=t,this._values=Object.create(t.defaultPropertyValues);}hasValue(t){return void 0!==this._values[t].value}getValue(t){return w(this._values[t].value)}setValue(t,e){this._values[t]=new ci(this._values[t].property,null===e?void 0:w(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 gi(this._properties);for(const i of Object.keys(this._values))n._values[i]=this._values[i].possiblyEvaluate(t,e,r);return n}}class mi{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 gi{constructor(t){this._properties=t,this._values=Object.create(t.defaultPossiblyEvaluatedValues);}get(t){return this._values[t]}}class xi{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=Ke[this.specification.type];return n?n(t,e,r):t}}class vi{constructor(t,e){this.specification=t,this.overrides=e;}possiblyEvaluate(t,e,r,n){return new mi(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 mi(this,{kind:\"constant\",value:void 0},t.parameters);const n=Ke[this.specification.type];if(n){const i=n(t.value.value,e.value.value,r);return new mi(this,{kind:\"constant\",value:i},t.parameters)}return t}evaluate(t,e,r,n,i,a){return \"constant\"===t.kind?t.value:t.evaluate(e,r,n,i,a)}}class bi extends vi{possiblyEvaluate(t,e,r,n){if(void 0===t.value)return new mi(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 mi(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 mi(this,{kind:\"constant\",value:r},e)}return new mi(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 wi{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 ui(Math.floor(e.zoom-1),e)),t.expression.evaluate(new ui(Math.floor(e.zoom),e)),t.expression.evaluate(new ui(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 _i{constructor(t){this.specification=t;}possiblyEvaluate(t,e,r,n){return !!t.expression.evaluate(e,null,{},r,n)}interpolate(){return !1}}class Ai{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 ci(r,void 0),i=this.defaultTransitionablePropertyValues[e]=new hi(r);this.defaultTransitioningPropertyValues[e]=i.untransitioned(),this.defaultPossiblyEvaluatedValues[e]=n.possiblyEvaluate({});}}}Ln(\"DataDrivenProperty\",vi),Ln(\"DataConstantProperty\",xi),Ln(\"CrossFadedDataDrivenProperty\",bi),Ln(\"CrossFadedProperty\",wi),Ln(\"ColorRampProperty\",_i);const Si=\"-transition\";class ki extends X{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 yi(e.layout)),e.paint)){this._transitionablePaint=new pi(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 gi(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(En,`layers.${this.id}.layout.${t}`,t,e,r)||(\"visibility\"!==t?this._unevaluatedLayout.setValue(t,e):this.visibility=e);}getPaintProperty(t){return t.endsWith(Si)?this._transitionablePaint.getTransition(t.slice(0,-11)):this._transitionablePaint.getValue(t)}setPaintProperty(t,e,r={}){if(null!=e&&this._validate(Vn,`layers.${this.id}.paint.${t}`,t,e,r))return !1;if(t.endsWith(Si))return this._transitionablePaint.setTransition(t.slice(0,-11),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),b(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)&&Fn(this,t.call(Cn,{key:e,layerType:this.type,objectKey:r,value:n,styleSpec:Y,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 mi&&Ar(e.property.specification)&&(\"source\"===e.value.kind||\"composite\"===e.value.kind)&&e.value.isStateDependent)return !0}return !1}}const Ii={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class zi{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 Mi{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 Pi(t,e=1){let r=0,n=0;return {members:t.map((t=>{const i=Ii[t.type].BYTES_PER_ELEMENT,a=r=Ci(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:Ci(r,Math.max(n,e)),alignment:e}}function Ci(t,e){return Math.ceil(t/e)*e}class Bi extends Mi{_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}}Bi.prototype.bytesPerElement=4,Ln(\"StructArrayLayout2i4\",Bi);class Vi extends Mi{_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}}Vi.prototype.bytesPerElement=6,Ln(\"StructArrayLayout3i6\",Vi);class Ei extends Mi{_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}}Ei.prototype.bytesPerElement=8,Ln(\"StructArrayLayout4i8\",Ei);class Fi extends Mi{_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}}Fi.prototype.bytesPerElement=12,Ln(\"StructArrayLayout2i4i12\",Fi);class Ti extends Mi{_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}}Ti.prototype.bytesPerElement=8,Ln(\"StructArrayLayout2i4ub8\",Ti);class $i extends Mi{_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}}$i.prototype.bytesPerElement=8,Ln(\"StructArrayLayout2f8\",$i);class Li extends Mi{_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}}Li.prototype.bytesPerElement=20,Ln(\"StructArrayLayout10ui20\",Li);class Di extends Mi{_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}}Di.prototype.bytesPerElement=24,Ln(\"StructArrayLayout4i4ui4i24\",Di);class Oi extends Mi{_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}}Oi.prototype.bytesPerElement=12,Ln(\"StructArrayLayout3f12\",Oi);class Ui extends Mi{_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}}Ui.prototype.bytesPerElement=4,Ln(\"StructArrayLayout1ul4\",Ui);class Ri extends Mi{_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}}Ri.prototype.bytesPerElement=20,Ln(\"StructArrayLayout6i1ul2ui20\",Ri);class qi extends Mi{_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}}qi.prototype.bytesPerElement=12,Ln(\"StructArrayLayout2i2i2i12\",qi);class ji extends Mi{_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}}ji.prototype.bytesPerElement=16,Ln(\"StructArrayLayout2f1f2i16\",ji);class Ni extends Mi{_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}}Ni.prototype.bytesPerElement=12,Ln(\"StructArrayLayout2ub2f12\",Ni);class Zi extends Mi{_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}}Zi.prototype.bytesPerElement=6,Ln(\"StructArrayLayout3ui6\",Zi);class Ki extends Mi{_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}}Ki.prototype.bytesPerElement=48,Ln(\"StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48\",Ki);class Gi extends Mi{_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,S,k,I,z){const M=this.length;return this.resize(M+1),this.emplace(M,t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m,g,x,v,b,w,_,A,S,k,I,z)}emplace(t,e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m,g,x,v,b,w,_,A,S,k,I,z,M){const P=32*t,C=16*t;return this.int16[P+0]=e,this.int16[P+1]=r,this.int16[P+2]=n,this.int16[P+3]=i,this.int16[P+4]=a,this.int16[P+5]=s,this.int16[P+6]=o,this.int16[P+7]=l,this.uint16[P+8]=u,this.uint16[P+9]=c,this.uint16[P+10]=h,this.uint16[P+11]=p,this.uint16[P+12]=f,this.uint16[P+13]=d,this.uint16[P+14]=y,this.uint16[P+15]=m,this.uint16[P+16]=g,this.uint16[P+17]=x,this.uint16[P+18]=v,this.uint16[P+19]=b,this.uint16[P+20]=w,this.uint16[P+21]=_,this.uint16[P+22]=A,this.uint32[C+12]=S,this.float32[C+13]=k,this.float32[C+14]=I,this.uint16[P+30]=z,this.uint16[P+31]=M,t}}Gi.prototype.bytesPerElement=64,Ln(\"StructArrayLayout8i15ui1ul2f2ui64\",Gi);class Ji extends Mi{_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}}Ji.prototype.bytesPerElement=4,Ln(\"StructArrayLayout1f4\",Ji);class Xi extends Mi{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(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.uint16[6*t+0]=e,this.float32[i+1]=r,this.float32[i+2]=n,t}}Xi.prototype.bytesPerElement=12,Ln(\"StructArrayLayout1ui2f12\",Xi);class Yi extends Mi{_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}}Yi.prototype.bytesPerElement=8,Ln(\"StructArrayLayout1ul2ui8\",Yi);class Hi extends Mi{_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}}Hi.prototype.bytesPerElement=4,Ln(\"StructArrayLayout2ui4\",Hi);class Wi extends Mi{_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}}Wi.prototype.bytesPerElement=2,Ln(\"StructArrayLayout1ui2\",Wi);class Qi extends Mi{_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,Ln(\"StructArrayLayout4f16\",Qi);class ta extends zi{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 a(this.anchorPointX,this.anchorPointY)}}ta.prototype.size=20;class ea extends Ri{get(t){return new ta(this,t)}}Ln(\"CollisionBoxArray\",ea);class ra extends zi{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]}}ra.prototype.size=48;class na extends Ki{get(t){return new ra(this,t)}}Ln(\"PlacedSymbolArray\",na);class ia extends zi{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 collisionCircleDiameter(){return this._structArray.float32[this._pos4+14]}get textAnchorOffsetStartIndex(){return this._structArray.uint16[this._pos2+30]}get textAnchorOffsetEndIndex(){return this._structArray.uint16[this._pos2+31]}}ia.prototype.size=64;class aa extends Gi{get(t){return new ia(this,t)}}Ln(\"SymbolInstanceArray\",aa);class sa extends Ji{getoffsetX(t){return this.float32[1*t+0]}}Ln(\"GlyphOffsetArray\",sa);class oa extends Vi{getx(t){return this.int16[3*t+0]}gety(t){return this.int16[3*t+1]}gettileUnitDistanceFromAnchor(t){return this.int16[3*t+2]}}Ln(\"SymbolLineVertexArray\",oa);class la extends zi{get textAnchor(){return this._structArray.uint16[this._pos2+0]}get textOffset0(){return this._structArray.float32[this._pos4+1]}get textOffset1(){return this._structArray.float32[this._pos4+2]}}la.prototype.size=12;class ua extends Xi{get(t){return new la(this,t)}}Ln(\"TextAnchorOffsetArray\",ua);class ca extends zi{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]}}ca.prototype.size=8;class ha extends Yi{get(t){return new ca(this,t)}}Ln(\"FeatureIndexArray\",ha);class pa extends Bi{}class fa extends Bi{}class da extends Bi{}class ya extends Fi{}class ma extends Ti{}class ga extends $i{}class xa extends Li{}class va extends Di{}class ba extends Oi{}class wa extends Ui{}class _a extends qi{}class Aa extends Ni{}class Sa extends Zi{}class ka extends Hi{}const Ia=Pi([{name:\"a_pos\",components:2,type:\"Int16\"}],4),{members:za}=Ia;class Ma{constructor(t=[]){this.segments=t;}prepareSegment(t,e,r,n){let i=this.segments[this.segments.length-1];return t>Ma.MAX_VERTEX_ARRAY_LENGTH&&A(`Max vertices per segment is ${Ma.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}`),(!i||i.vertexLength+t>Ma.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 Ma([{vertexOffset:t,primitiveOffset:e,vertexLength:r,primitiveLength:n,vaos:{},sortKey:0}])}}function Pa(t,e){return 256*(t=y(Math.floor(t),0,255))+y(Math.floor(e),0,255)}Ma.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,Ln(\"SegmentVector\",Ma);const Ca=Pi([{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 Ba={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 Ea=Va.exports,Fa={exports:{}};Fa.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 Ta=Ea,$a=Fa.exports;Ba.exports=Ta,Ba.exports.murmur3=Ta,Ba.exports.murmur2=$a;var La=r(Ba.exports);class Da{constructor(){this.ids=[],this.positions=[],this.indexed=!1;}add(t,e,r,n){this.ids.push(Oa(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=Oa(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 Ua(r,n,0,r.length-1),e&&e.push(r.buffer,n.buffer),{ids:r,positions:n}}static deserialize(t){const e=new Da;return e.ids=t.ids,e.positions=t.positions,e.indexed=!0,e}}function Oa(t){const e=+t;return !isNaN(e)&&e<=Number.MAX_SAFE_INTEGER?e:La(String(t))}function Ua(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;Ra(t,a,s),Ra(e,3*a,3*s),Ra(e,3*a+1,3*s+1),Ra(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 Za(t,e):new ja(t,e)}}class Xa{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 Na(t,e):new ja(t,e)}}class Ya{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 ui(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=Ga(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 ui(this.zoom),e,{},n,[],i),s=this.expression.evaluate(new ui(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=Ga(r),a=Ga(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 Ya||r instanceof Ha)for(let e=0;e!0)){this.programConfigurations={};for(const n of t)this.programConfigurations[n.id]=new Qa(n,e,r);this.needsUpload=!1,this._featureMap=new Da,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 es(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 rs(t,e,r){const n={color:{source:$i,composite:Qi},number:{source:Ji,composite:$i}},i=function(t){return {\"line-pattern\":{source:xa,composite:xa},\"fill-pattern\":{source:xa,composite:xa},\"fill-extrusion-pattern\":{source:xa,composite:xa}}[t]}(t);return i&&i[r]||n[e][r]}Ln(\"ConstantBinder\",Ja),Ln(\"CrossFadedConstantBinder\",Xa),Ln(\"SourceExpressionBinder\",Ya),Ln(\"CrossFadedCompositeBinder\",Wa),Ln(\"CompositeExpressionBinder\",Ha),Ln(\"ProgramConfiguration\",Qa,{omit:[\"_buffers\"]}),Ln(\"ProgramConfigurationSet\",ts);const ns=8192,is=Math.pow(2,14)-1,as=-is-1;function ss(t){const e=ns/t.extent,r=t.loadGeometry();for(let t=0;tr.x+1||ar.y+1)&&A(\"Geometry exceeds allowed extent, reduce your vector tile buffer size\");}}return r}function os(t,e){return {type:t.type,id:t.id,properties:t.properties,geometry:e?ss(t):[]}}function ls(t,e,r,n,i){t.emplaceBack(2*e+(n+1)/2,2*r+(i+1)/2);}class us{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 fa,this.indexArray=new Sa,this.segments=new Ma,this.programConfigurations=new ts(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=os(e,t);if(!this.layers[0]._featureFilter.filter(new ui(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:ss(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,za),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>=ns||n<0||n>=ns)continue;const i=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,t.sortKey),a=i.vertexLength;ls(this.layoutVertexArray,r,n,-1,-1),ls(this.layoutVertexArray,r,n,1,-1),ls(this.layoutVertexArray,r,n,1,1),ls(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 cs(t,e){for(let r=0;r1){if(ds(t,e))return !0;for(let n=0;n1?r:r.sub(e)._mult(i)._add(e))}function xs(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 vs(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 bs(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=S(t,e,r[0]);return a!==S(t,e,r[1])||a!==S(t,e,r[2])||a!==S(t,e,r[3])}function ws(t,e,r){const n=e.paint.get(t).value;return \"constant\"===n.kind?n.value:r.programConfigurations.get(e.id).getMaxValue(t)}function _s(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function As(t,e,r,n,i){if(!e[0]&&!e[1])return t;const s=a.convert(e)._mult(i);\"viewport\"===r&&s._rotate(-n);const o=[];for(let e=0;eTs(t,e)))}(l,o),p=c?u*s:u;for(const t of n)for(const e of t){const t=c?e:Ts(e,o);let r=p;const n=Es([],[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]),hs(h,t,r))return !0}return !1}}function Ts(t,e){const r=Es([],[t.x,t.y,0,1],e);return new a(r[0]/r[3],r[1]/r[3])}class $s extends us{}let Ls;Ln(\"HeatmapBucket\",$s,{omit:[\"layers\"]});var Ds={get paint(){return Ls=Ls||new Ai({\"heatmap-radius\":new vi(Y.paint_heatmap[\"heatmap-radius\"]),\"heatmap-weight\":new vi(Y.paint_heatmap[\"heatmap-weight\"]),\"heatmap-intensity\":new xi(Y.paint_heatmap[\"heatmap-intensity\"]),\"heatmap-color\":new _i(Y.paint_heatmap[\"heatmap-color\"]),\"heatmap-opacity\":new xi(Y.paint_heatmap[\"heatmap-opacity\"])})}};function Os(t,{width:e,height:r},n,i){if(i){if(i instanceof Uint8ClampedArray)i=new Uint8Array(i.buffer);else if(i.length!==e*r*n)throw new RangeError(`mismatched image size. expected: ${i.length} but got: ${e*r*n}`)}else i=new Uint8Array(e*r*n);return t.width=e,t.height=r,t.data=i,t}function Us(t,{width:e,height:r},n){if(e===t.width&&r===t.height)return;const i=Os({},{width:e,height:r},n);Rs(t,i,{x:0,y:0},{x:0,y:0},{width:Math.min(t.width,e),height:Math.min(t.height,r)},n),t.width=e,t.height=r,t.data=i.data;}function Rs(t,e,r,n,i,a){if(0===i.width||0===i.height)return e;if(i.width>t.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 eo(p,f,r,n,i,u,0),f}function Qs(t,e,r,n,i){var a,s;if(i===So(t,e,r,n)>0)for(a=e;a=e;a-=n)s=wo(a,t[a],t[a+1],s);return s&&yo(s,s.next)&&(_o(s),s=s.next),s}function to(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!yo(n,n.next)&&0!==fo(n.prev,n,n.next))n=n.next;else {if(_o(n),(n=e=n.prev)===n.next)break;r=!0;}}while(r||n!==e);return e}function eo(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=uo(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?no(t,n,i,a):ro(t))e.push(o.i/r|0),e.push(t.i/r|0),e.push(l.i/r|0),_o(t),t=l.next,u=l.next;else if((t=l)===u){s?1===s?eo(t=io(to(t),e,r),e,r,n,i,a,2):2===s&&ao(t,e,r,n,i,a):eo(to(t),e,r,n,i,a,1);break}}}function ro(t){var e=t.prev,r=t,n=t.next;if(fo(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&&ho(i,o,a,l,s,u,d.x,d.y)&&fo(d.prev,d,d.next)>=0)return !1;d=d.next;}return !0}function no(t,e,r,n){var i=t.prev,a=t,s=t.next;if(fo(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=uo(f,d,e,r,n),x=uo(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&&ho(o,c,l,h,u,p,v.x,v.y)&&fo(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&&ho(o,c,l,h,u,p,b.x,b.y)&&fo(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&&ho(o,c,l,h,u,p,v.x,v.y)&&fo(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&&ho(o,c,l,h,u,p,b.x,b.y)&&fo(b.prev,b,b.next)>=0)return !1;b=b.nextZ;}return !0}function io(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!yo(i,a)&&mo(i,n,n.next,a)&&vo(i,a)&&vo(a,i)&&(e.push(i.i/r|0),e.push(n.i/r|0),e.push(a.i/r|0),_o(n),_o(n.next),n=t=a),n=n.next;}while(n!==t);return to(n)}function ao(t,e,r,n,i,a){var s=t;do{for(var o=s.next.next;o!==s.prev;){if(s.i!==o.i&&po(s,o)){var l=bo(s,o);return s=to(s,s.next),l=to(l,l.next),eo(s,e,r,n,i,a,0),void eo(l,e,r,n,i,a,0)}o=o.next;}s=s.next;}while(s!==t)}function so(t,e){return t.x-e.x}function oo(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&&ho(ar.x||n.x===r.x&&lo(r,n)))&&(r=n,p=l)),n=n.next;}while(n!==u);return r}(t,e);if(!r)return e;var n=bo(r,t);return to(n,n.next),to(r,r.next)}function lo(t,e){return fo(t.prev,t,e.prev)<0&&fo(e.next,t,t.next)<0}function uo(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 co(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 po(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&&mo(r,r.next,t,e))return !0;r=r.next;}while(r!==t);return !1}(t,e)&&(vo(t,e)&&vo(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)&&(fo(t.prev,t,e.prev)||fo(t,e.prev,e))||yo(t,e)&&fo(t.prev,t,t.next)>0&&fo(e.prev,e,e.next)>0)}function fo(t,e,r){return (e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function yo(t,e){return t.x===e.x&&t.y===e.y}function mo(t,e,r,n){var i=xo(fo(t,e,r)),a=xo(fo(t,e,n)),s=xo(fo(r,n,t)),o=xo(fo(r,n,e));return i!==a&&s!==o||!(0!==i||!go(t,r,e))||!(0!==a||!go(t,n,e))||!(0!==s||!go(r,t,n))||!(0!==o||!go(r,e,n))}function go(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 xo(t){return t>0?1:t<0?-1:0}function vo(t,e){return fo(t.prev,t,t.next)<0?fo(t,e,t.next)>=0&&fo(t,t.prev,e)>=0:fo(t,e,t.prev)<0||fo(t,t.next,e)<0}function bo(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 wo(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 _o(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;a0&&r.holes.push(n+=t[i-1].length);}return r};var ko=r(Hs.exports);function Io(t,e,r,n,i){zo(t,e,r||0,n||t.length-1,i||Po);}function zo(t,e,r,n,i){for(;n>r;){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);zo(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(Mo(t,r,e),i(t[n],c)>0&&Mo(t,r,n);h0;)p--;}0===i(t[r],c)?Mo(t,r,p):Mo(t,++p,n),p<=e&&(r=p+1),e<=p&&(n=p-1);}}function Mo(t,e,r){var n=t[e];t[e]=t[r],t[r]=n;}function Po(t,e){return te?1:0}function Co(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;tt.id)),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new da,this.indexArray=new Sa,this.indexArray2=new ka,this.programConfigurations=new ts(t.layers,t.zoom),this.segments=new Ma,this.segments2=new Ma,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id));}populate(t,e,r){this.hasPattern=Vo(\"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=os(s,t);if(!this.layers[0]._featureFilter.filter(new ui(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:ss(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=Eo(\"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,Ys),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 Co(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 jo(a,s));else {if(7!==n)throw new Error(\"unknown command \"+n);e&&e.push(e[0].clone());}}return e&&o.push(e),o},Zo.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]},Zo.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=Zo.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));}Yo.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 Jo(this._pbf,e,this.extent,this._keys,this._values)};var Wo=Xo;function Qo(t,e,r){if(3===t){var n=new Wo(r,r.readVarint()+r.pos);n.length&&(e[n.name]=n);}}qo.VectorTile=function(t,e){this.layers=t.readFields(Qo,{},e);},qo.VectorTileFeature=No,qo.VectorTileLayer=Xo;const tl=qo.VectorTileFeature.types,el=Math.pow(2,13);function rl(t,e,r,n,i,a,s,o){t.emplaceBack(e,r,2*Math.floor(n*el)+s,i*el*2,a*el*2,Math.round(o));}class nl{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 ya,this.centroidVertexArray=new pa,this.indexArray=new Sa,this.programConfigurations=new ts(t.layers,t.zoom),this.segments=new Ma,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id));}populate(t,e,r){this.features=[],this.hasPattern=Vo(\"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=os(n,t);if(!this.layers[0]._featureFilter.filter(new ui(this.zoom),o,r))continue;const l={id:i,sourceLayerIndex:s,index:a,geometry:t?o.geometry:ss(n),properties:n.properties,type:n.type,patterns:{}};this.hasPattern?this.features.push(Eo(\"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,Ro),this.centroidVertexBuffer=t.createVertexBuffer(this.centroidVertexArray,Uo.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 Co(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(al(t))continue;let e=0;for(let r=0;r=1){const s=t[r-1];if(!il(i,s)){n.vertexLength+4>Ma.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),rl(this.layoutVertexArray,i.x,i.y,t.x,t.y,0,0,e),rl(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,rl(this.layoutVertexArray,s.x,s.y,t.x,t.y,0,0,e),rl(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>Ma.MAX_VERTEX_ARRAY_LENGTH&&(n=this.segments.prepareSegment(e,this.layoutVertexArray,this.indexArray)),\"Polygon\"!==tl[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;ens)||t.y===e.y&&(t.y<0||t.y>ns)}function al(t){return t.every((t=>t.x<0))||t.every((t=>t.x>ns))||t.every((t=>t.y<0))||t.every((t=>t.y>ns))}let sl;Ln(\"FillExtrusionBucket\",nl,{omit:[\"layers\",\"features\"]});var ol={get paint(){return sl=sl||new Ai({\"fill-extrusion-opacity\":new xi(Y[\"paint_fill-extrusion\"][\"fill-extrusion-opacity\"]),\"fill-extrusion-color\":new vi(Y[\"paint_fill-extrusion\"][\"fill-extrusion-color\"]),\"fill-extrusion-translate\":new xi(Y[\"paint_fill-extrusion\"][\"fill-extrusion-translate\"]),\"fill-extrusion-translate-anchor\":new xi(Y[\"paint_fill-extrusion\"][\"fill-extrusion-translate-anchor\"]),\"fill-extrusion-pattern\":new bi(Y[\"paint_fill-extrusion\"][\"fill-extrusion-pattern\"]),\"fill-extrusion-height\":new vi(Y[\"paint_fill-extrusion\"][\"fill-extrusion-height\"]),\"fill-extrusion-base\":new vi(Y[\"paint_fill-extrusion\"][\"fill-extrusion-base\"]),\"fill-extrusion-vertical-gradient\":new xi(Y[\"paint_fill-extrusion\"][\"fill-extrusion-vertical-gradient\"])})}};class ll extends ki{constructor(t){super(t,ol);}createBucket(t){return new nl(t)}queryRadius(){return _s(this.paint.get(\"fill-extrusion-translate\"))}is3D(){return !0}queryIntersectsFeature(t,e,r,n,i,s,o,l){const u=As(t,this.paint.get(\"fill-extrusion-translate\"),this.paint.get(\"fill-extrusion-translate-anchor\"),s.angle,o),c=this.paint.get(\"fill-extrusion-height\").evaluate(e,r),h=this.paint.get(\"fill-extrusion-base\").evaluate(e,r),p=function(t,e,r,n){const i=[];for(const r of t){const t=[r.x,r.y,0,1];Es(t,t,e),i.push(new a(t[0]/t[3],t[1]/t[3]));}return i}(u,l),f=function(t,e,r,n){const i=[],s=[],o=n[8]*e,l=n[9]*e,u=n[10]*e,c=n[11]*e,h=n[8]*r,p=n[9]*r,f=n[10]*r,d=n[11]*r;for(const e of t){const t=[],r=[];for(const i of e){const e=i.x,s=i.y,y=n[0]*e+n[4]*s+n[12],m=n[1]*e+n[5]*s+n[13],g=n[2]*e+n[6]*s+n[14],x=n[3]*e+n[7]*s+n[15],v=g+u,b=x+c,w=y+h,_=m+p,A=g+f,S=x+d,k=new a((y+o)/b,(m+l)/b);k.z=v/b,t.push(k);const I=new a(w/S,_/S);I.z=A/S,r.push(I);}i.push(t),s.push(r);}return [i,s]}(n,h,c,l);return function(t,e,r){let n=1/0;ps(r,e)&&(n=cl(r,e[0]));for(let i=0;it.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 ma,this.layoutVertexArray2=new ga,this.indexArray=new Sa,this.programConfigurations=new ts(t.layers,t.zoom),this.segments=new Ma,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter((t=>t.isStateDependent())).map((t=>t.id));}populate(t,e,r){this.hasPattern=Vo(\"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=os(e,t);if(!this.layers[0]._featureFilter.filter(new ui(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:ss(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=Eo(\"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,dl)),this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,pl),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 S=A?r:s?\"butt\":n;if(A&&\"round\"===S&&(vi&&(S=\"bevel\"),\"bevel\"===S&&(v>2&&(S=\"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\"===S||\"fakeround\"===S){const t=-Math.sqrt(v*v-1),e=_?t:0,r=_?0:t;if(p&&this.addCurrentVertex(h,d,e,r,c),\"fakeround\"===S){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>gl/2&&0===this.totalDistance&&(this.distance=0,this.updateScaledDistance(),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*(gl-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();}}let vl,bl;Ln(\"LineBucket\",xl,{omit:[\"layers\",\"patternFeatures\"]});var wl={get paint(){return bl=bl||new Ai({\"line-opacity\":new vi(Y.paint_line[\"line-opacity\"]),\"line-color\":new vi(Y.paint_line[\"line-color\"]),\"line-translate\":new xi(Y.paint_line[\"line-translate\"]),\"line-translate-anchor\":new xi(Y.paint_line[\"line-translate-anchor\"]),\"line-width\":new vi(Y.paint_line[\"line-width\"]),\"line-gap-width\":new vi(Y.paint_line[\"line-gap-width\"]),\"line-offset\":new vi(Y.paint_line[\"line-offset\"]),\"line-blur\":new vi(Y.paint_line[\"line-blur\"]),\"line-dasharray\":new wi(Y.paint_line[\"line-dasharray\"]),\"line-pattern\":new bi(Y.paint_line[\"line-pattern\"]),\"line-gradient\":new _i(Y.paint_line[\"line-gradient\"])})},get layout(){return vl=vl||new Ai({\"line-cap\":new xi(Y.layout_line[\"line-cap\"]),\"line-join\":new vi(Y.layout_line[\"line-join\"]),\"line-miter-limit\":new xi(Y.layout_line[\"line-miter-limit\"]),\"line-round-limit\":new xi(Y.layout_line[\"line-round-limit\"]),\"line-sort-key\":new vi(Y.layout_line[\"line-sort-key\"])})}};class _l extends vi{possiblyEvaluate(t,e){return e=new ui(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=g({},e,{zoom:Math.floor(e.zoom)}),super.evaluate(t,e,r,n)}}let Al;class Sl extends ki{constructor(t){super(t,wl),this.gradientVersion=0,Al||(Al=new _l(wl.paint.properties[\"line-width\"].specification),Al.useIntegerZoom=!0);}_handleSpecialPaintPropertyUpdate(t){if(\"line-gradient\"===t){const t=this.gradientExpression();this.stepInterpolant=!!function(t){return void 0!==t._styleExpression}(t)&&t._styleExpression.expression instanceof je,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER;}}gradientExpression(){return this._transitionablePaint._values[\"line-gradient\"].value.expression}recalculate(t,e){super.recalculate(t,e),this.paint._values[\"line-floorwidth\"]=Al.possiblyEvaluate(this._transitioningPaint._values[\"line-width\"].value,t);}createBucket(t){return new xl(t)}queryRadius(t){const e=t,r=kl(ws(\"line-width\",this,e),ws(\"line-gap-width\",this,e)),n=ws(\"line-offset\",this,e);return r/2+Math.abs(n)+_s(this.paint.get(\"line-translate\"))}queryIntersectsFeature(t,e,r,n,i,s,o){const l=As(t,this.paint.get(\"line-translate\"),this.paint.get(\"line-translate-anchor\"),s.angle,o),u=o/2*kl(this.paint.get(\"line-width\").evaluate(e,r),this.paint.get(\"line-gap-width\").evaluate(e,r)),c=this.paint.get(\"line-offset\").evaluate(e,r);return c&&(n=function(t,e){const r=[];for(let n=0;n=3)for(let e=0;e0?e+2*t:t}const Il=Pi([{name:\"a_pos_offset\",components:4,type:\"Int16\"},{name:\"a_data\",components:4,type:\"Uint16\"},{name:\"a_pixeloffset\",components:4,type:\"Int16\"}],4),zl=Pi([{name:\"a_projected_pos\",components:3,type:\"Float32\"}],4);Pi([{name:\"a_fade_opacity\",components:1,type:\"Uint32\"}],4);const Ml=Pi([{name:\"a_placed\",components:2,type:\"Uint8\"},{name:\"a_shift\",components:2,type:\"Float32\"}]);Pi([{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 Pl=Pi([{name:\"a_pos\",components:2,type:\"Int16\"},{name:\"a_anchor_pos\",components:2,type:\"Int16\"},{name:\"a_extrude\",components:2,type:\"Int16\"}],4),Cl=Pi([{name:\"a_pos\",components:2,type:\"Float32\"},{name:\"a_radius\",components:1,type:\"Float32\"},{name:\"a_flags\",components:2,type:\"Int16\"}],4);function Bl(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()),li.applyArabicShaping&&(t=li.applyArabicShaping(t)),t}(t.text,e,r);})),t}Pi([{name:\"triangle\",components:3,type:\"Uint16\"}]),Pi([{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\"}]),Pi([{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\",name:\"collisionCircleDiameter\"},{type:\"Uint16\",name:\"textAnchorOffsetStartIndex\"},{type:\"Uint16\",name:\"textAnchorOffsetEndIndex\"}]),Pi([{type:\"Float32\",name:\"offsetX\"}]),Pi([{type:\"Int16\",name:\"x\"},{type:\"Int16\",name:\"y\"},{type:\"Int16\",name:\"tileUnitDistanceFromAnchor\"}]),Pi([{type:\"Uint16\",name:\"textAnchor\"},{type:\"Float32\",components:2,name:\"textOffset\"}]);const Vl={\"!\":\"︕\",\"#\":\"#\",$:\"$\",\"%\":\"%\",\"&\":\"&\",\"(\":\"︵\",\")\":\"︶\",\"*\":\"*\",\"+\":\"+\",\",\":\"︐\",\"-\":\"︲\",\".\":\"・\",\"/\":\"/\",\":\":\"︓\",\";\":\"︔\",\"<\":\"︿\",\"=\":\"=\",\">\":\"﹀\",\"?\":\"︖\",\"@\":\"@\",\"[\":\"﹇\",\"\\\\\":\"\\",\"]\":\"﹈\",\"^\":\"^\",_:\"︳\",\"`\":\"`\",\"{\":\"︷\",\"|\":\"―\",\"}\":\"︸\",\"~\":\"~\",\"¢\":\"¢\",\"£\":\"£\",\"¥\":\"¥\",\"¦\":\"¦\",\"¬\":\"¬\",\"¯\":\" ̄\",\"–\":\"︲\",\"—\":\"︱\",\"‘\":\"﹃\",\"’\":\"﹄\",\"“\":\"﹁\",\"”\":\"﹂\",\"…\":\"︙\",\"‧\":\"・\",\"₩\":\"₩\",\"、\":\"︑\",\"。\":\"︒\",\"〈\":\"︿\",\"〉\":\"﹀\",\"《\":\"︽\",\"》\":\"︾\",\"「\":\"﹁\",\"」\":\"﹂\",\"『\":\"﹃\",\"』\":\"﹄\",\"【\":\"︻\",\"】\":\"︼\",\"〔\":\"︹\",\"〕\":\"︺\",\"〖\":\"︗\",\"〗\":\"︘\",\"!\":\"︕\",\"(\":\"︵\",\")\":\"︶\",\",\":\"︐\",\"-\":\"︲\",\".\":\"・\",\":\":\"︓\",\";\":\"︔\",\"<\":\"︿\",\">\":\"﹀\",\"?\":\"︖\",\"[\":\"﹇\",\"]\":\"﹈\",\"_\":\"︳\",\"{\":\"︷\",\"|\":\"―\",\"}\":\"︸\",\"⦅\":\"︵\",\"⦆\":\"︶\",\"。\":\"︒\",\"「\":\"﹁\",\"」\":\"﹂\"};var El=24,Fl=Ll,Tl=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)},$l=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 Ll(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length;}Ll.Varint=0,Ll.Fixed64=1,Ll.Bytes=2,Ll.Fixed32=5;var Dl=4294967296,Ol=1/Dl,Ul=\"undefined\"==typeof TextDecoder?null:new TextDecoder(\"utf8\");function Rl(t){return t.type===Ll.Bytes?t.readVarint()+t.pos:t.pos+1}function ql(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function jl(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 Nl(t,e){for(var r=0;r>>8,t[r+2]=e>>>16,t[r+3]=e>>>24;}function eu(t,e){return (t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}Ll.prototype={destroy:function(){this.buf=null;},readFields:function(t,e,r){for(r=r||this.length;this.pos>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=Ql(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=eu(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=Ql(this.buf,this.pos)+Ql(this.buf,this.pos+4)*Dl;return this.pos+=8,t},readSFixed64:function(){var t=Ql(this.buf,this.pos)+eu(this.buf,this.pos+4)*Dl;return this.pos+=8,t},readFloat:function(){var t=Tl(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=Tl(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 ql(t,n,e);if(n|=(127&(i=a[r.pos++]))<<3,i<128)return ql(t,n,e);if(n|=(127&(i=a[r.pos++]))<<10,i<128)return ql(t,n,e);if(n|=(127&(i=a[r.pos++]))<<17,i<128)return ql(t,n,e);if(n|=(127&(i=a[r.pos++]))<<24,i<128)return ql(t,n,e);if(n|=(1&(i=a[r.pos++]))<<31,i<128)return ql(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&&Ul?function(t,e,r){return Ul.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!==Ll.Bytes)return t.push(this.readVarint(e));var r=Rl(this);for(t=t||[];this.pos127;);else if(e===Ll.Bytes)this.pos=this.readVarint()+this.pos;else if(e===Ll.Fixed32)this.pos+=4;else {if(e!==Ll.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&&jl(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r;},writeFloat:function(t){this.realloc(4),$l(this.buf,t,this.pos,!0,23,4),this.pos+=4;},writeDouble:function(t){this.realloc(8),$l(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&&jl(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n;},writeMessage:function(t,e,r){this.writeTag(t,Ll.Bytes),this.writeRawMessage(e,r);},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,Nl,e);},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,Zl,e);},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,Jl,e);},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,Kl,e);},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,Gl,e);},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,Xl,e);},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,Yl,e);},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,Hl,e);},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,Wl,e);},writeBytesField:function(t,e){this.writeTag(t,Ll.Bytes),this.writeBytes(e);},writeFixed32Field:function(t,e){this.writeTag(t,Ll.Fixed32),this.writeFixed32(e);},writeSFixed32Field:function(t,e){this.writeTag(t,Ll.Fixed32),this.writeSFixed32(e);},writeFixed64Field:function(t,e){this.writeTag(t,Ll.Fixed64),this.writeFixed64(e);},writeSFixed64Field:function(t,e){this.writeTag(t,Ll.Fixed64),this.writeSFixed64(e);},writeVarintField:function(t,e){this.writeTag(t,Ll.Varint),this.writeVarint(e);},writeSVarintField:function(t,e){this.writeTag(t,Ll.Varint),this.writeSVarint(e);},writeStringField:function(t,e){this.writeTag(t,Ll.Bytes),this.writeString(e);},writeFloatField:function(t,e){this.writeTag(t,Ll.Fixed32),this.writeFloat(e);},writeDoubleField:function(t,e){this.writeTag(t,Ll.Fixed64),this.writeDouble(e);},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e));}};var ru=r(Fl);const nu=3;function iu(t,e,r){1===t&&r.readMessage(au,e);}function au(t,e,r){if(3===t){const{id:t,bitmap:n,width:i,height:a,left:s,top:o,advance:l}=r.readMessage(su,{});e.push({id:t,bitmap:new qs({width:i+2*nu,height:a+2*nu},n),metrics:{width:i,height:a,left:s,top:o,advance:l}});}}function su(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());}const ou=nu;function lu(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=0&&r>=t&&gu[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 yu;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(du.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 mu(e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m){const g=yu.fromFeature(e,a);let x;p===t.WritingMode.vertical&&g.verticalizePunctuation();const{processBidirectionalText:v,processStyledBidirectionalText:b}=li;if(v&&1===g.sections.length){x=[];const t=v(g.toString(),Su(g,c,s,r,i,d,y));for(const e of t){const t=new yu;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)*El;}I?(e.verticalizable=!0,w.push({glyph:g,imageName:S,x:f,y:d+x,vertical:I,scale:y.scale,fontStack:y.fontStack,sectionIndex:m,metrics:b,rect:A}),f+=k*y.scale+c):(w.push({glyph:g,imageName:S,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),Iu(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-fu,{horizontalAlign:w,verticalAlign:_}=ku(o);((function(t,e,r,n,i,a,s,o,l){const u=(e-r)*i;let c=0;c=a!==s?-o*n-fu:(-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 gu={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},xu={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 vu(t,e,r,n,i,a){if(e.imageName){const t=n[e.imageName];return t?t.displaySize[0]*e.scale*El/a+i:0}{const n=r[e.fontStack],a=n&&n[t];return a?a.metrics.advance*e.scale+i:0}}function bu(t,e,r,n){const i=Math.pow(t-e,2);return n?t=0;let c=0;for(let r=0;rt.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=Ps([]),this.placementViewportMatrix=Ps([]);const r=this.layers[0]._unevaluatedLayout._values;this.textSizeData=Vu(this.zoom,r[\"text-size\"]),this.iconSizeData=Vu(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\"!==Eu(n,\"text-overlap\",\"text-allow-overlap\")||\"never\"!==Eu(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 Ou(new ts(this.layers,this.zoom,(t=>/^text/.test(t)))),this.icon=new Ou(new ts(this.layers,this.zoom,(t=>/^icon/.test(t)))),this.glyphOffsetArray=new sa,this.lineVertexArray=new oa,this.symbolInstances=new aa,this.textAnchorOffsets=new ua;}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 ui(this.zoom);for(const{feature:r,id:o,index:l,sourceLayerIndex:m}of e){const e=i._featureFilter.needGeometry,g=os(r,e);if(!i._featureFilter.filter(y,g,n))continue;let x,v;if(e||(g.geometry=ss(r)),u){const t=i.getValueAndResolveTokens(\"text-field\",g,n,d),e=te.factory(t);Du(e)&&(this.hasRTLText=!0),(!this.hasRTLText||\"unavailable\"===si()||this.hasRTLText&&li.isParsed())&&(x=Bl(e,i,g));}if(c){const t=i.getValueAndResolveTokens(\"icon-image\",g,n,d);v=t instanceof ie?t:ie.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:Fu[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=jn(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);}}}let qu,ju;Ln(\"SymbolBucket\",Ru,{omit:[\"layers\",\"collisionBoxArray\",\"features\",\"compareText\"]}),Ru.MAX_GLYPHS=65535,Ru.addDynamicAttributes=Lu;var Nu={get paint(){return ju=ju||new Ai({\"icon-opacity\":new vi(Y.paint_symbol[\"icon-opacity\"]),\"icon-color\":new vi(Y.paint_symbol[\"icon-color\"]),\"icon-halo-color\":new vi(Y.paint_symbol[\"icon-halo-color\"]),\"icon-halo-width\":new vi(Y.paint_symbol[\"icon-halo-width\"]),\"icon-halo-blur\":new vi(Y.paint_symbol[\"icon-halo-blur\"]),\"icon-translate\":new xi(Y.paint_symbol[\"icon-translate\"]),\"icon-translate-anchor\":new xi(Y.paint_symbol[\"icon-translate-anchor\"]),\"text-opacity\":new vi(Y.paint_symbol[\"text-opacity\"]),\"text-color\":new vi(Y.paint_symbol[\"text-color\"],{runtimeType:mt,getOverride:t=>t.textColor,hasOverride:t=>!!t.textColor}),\"text-halo-color\":new vi(Y.paint_symbol[\"text-halo-color\"]),\"text-halo-width\":new vi(Y.paint_symbol[\"text-halo-width\"]),\"text-halo-blur\":new vi(Y.paint_symbol[\"text-halo-blur\"]),\"text-translate\":new xi(Y.paint_symbol[\"text-translate\"]),\"text-translate-anchor\":new xi(Y.paint_symbol[\"text-translate-anchor\"])})},get layout(){return qu=qu||new Ai({\"symbol-placement\":new xi(Y.layout_symbol[\"symbol-placement\"]),\"symbol-spacing\":new xi(Y.layout_symbol[\"symbol-spacing\"]),\"symbol-avoid-edges\":new xi(Y.layout_symbol[\"symbol-avoid-edges\"]),\"symbol-sort-key\":new vi(Y.layout_symbol[\"symbol-sort-key\"]),\"symbol-z-order\":new xi(Y.layout_symbol[\"symbol-z-order\"]),\"icon-allow-overlap\":new xi(Y.layout_symbol[\"icon-allow-overlap\"]),\"icon-overlap\":new xi(Y.layout_symbol[\"icon-overlap\"]),\"icon-ignore-placement\":new xi(Y.layout_symbol[\"icon-ignore-placement\"]),\"icon-optional\":new xi(Y.layout_symbol[\"icon-optional\"]),\"icon-rotation-alignment\":new xi(Y.layout_symbol[\"icon-rotation-alignment\"]),\"icon-size\":new vi(Y.layout_symbol[\"icon-size\"]),\"icon-text-fit\":new xi(Y.layout_symbol[\"icon-text-fit\"]),\"icon-text-fit-padding\":new xi(Y.layout_symbol[\"icon-text-fit-padding\"]),\"icon-image\":new vi(Y.layout_symbol[\"icon-image\"]),\"icon-rotate\":new vi(Y.layout_symbol[\"icon-rotate\"]),\"icon-padding\":new vi(Y.layout_symbol[\"icon-padding\"]),\"icon-keep-upright\":new xi(Y.layout_symbol[\"icon-keep-upright\"]),\"icon-offset\":new vi(Y.layout_symbol[\"icon-offset\"]),\"icon-anchor\":new vi(Y.layout_symbol[\"icon-anchor\"]),\"icon-pitch-alignment\":new xi(Y.layout_symbol[\"icon-pitch-alignment\"]),\"text-pitch-alignment\":new xi(Y.layout_symbol[\"text-pitch-alignment\"]),\"text-rotation-alignment\":new xi(Y.layout_symbol[\"text-rotation-alignment\"]),\"text-field\":new vi(Y.layout_symbol[\"text-field\"]),\"text-font\":new vi(Y.layout_symbol[\"text-font\"]),\"text-size\":new vi(Y.layout_symbol[\"text-size\"]),\"text-max-width\":new vi(Y.layout_symbol[\"text-max-width\"]),\"text-line-height\":new xi(Y.layout_symbol[\"text-line-height\"]),\"text-letter-spacing\":new vi(Y.layout_symbol[\"text-letter-spacing\"]),\"text-justify\":new vi(Y.layout_symbol[\"text-justify\"]),\"text-radial-offset\":new vi(Y.layout_symbol[\"text-radial-offset\"]),\"text-variable-anchor\":new xi(Y.layout_symbol[\"text-variable-anchor\"]),\"text-variable-anchor-offset\":new vi(Y.layout_symbol[\"text-variable-anchor-offset\"]),\"text-anchor\":new vi(Y.layout_symbol[\"text-anchor\"]),\"text-max-angle\":new xi(Y.layout_symbol[\"text-max-angle\"]),\"text-writing-mode\":new xi(Y.layout_symbol[\"text-writing-mode\"]),\"text-rotate\":new vi(Y.layout_symbol[\"text-rotate\"]),\"text-padding\":new xi(Y.layout_symbol[\"text-padding\"]),\"text-keep-upright\":new xi(Y.layout_symbol[\"text-keep-upright\"]),\"text-transform\":new vi(Y.layout_symbol[\"text-transform\"]),\"text-offset\":new vi(Y.layout_symbol[\"text-offset\"]),\"text-allow-overlap\":new xi(Y.layout_symbol[\"text-allow-overlap\"]),\"text-overlap\":new xi(Y.layout_symbol[\"text-overlap\"]),\"text-ignore-placement\":new xi(Y.layout_symbol[\"text-ignore-placement\"]),\"text-optional\":new xi(Y.layout_symbol[\"text-optional\"])})}};class Zu{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:pt,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}}Ln(\"FormatSectionOverride\",Zu,{omit:[\"defaultValue\"]});class Ku extends ki{constructor(t){super(t,Nu);}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()||$r(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 Ru(t)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error(\"Should take a different path in FeatureIndex\")}_setPaintOverrides(){for(const t of Nu.paint.overridableProperties){if(!Ku.hasPaintOverride(this.layout,t))continue;const e=this.paint.get(t),r=new Zu(e),n=new Tr(r,e.property.specification);let i=null;i=\"constant\"===e.value.kind||\"source\"===e.value.kind?new Dr(\"source\",n):new Or(\"composite\",n,e.value.zoomStops),this.paint._values[t]=new mi(e.property,i,e.parameters);}}_handleOverridablePaintPropertyUpdate(t,e,r){return !(!this.layout||e.isDataDriven()||r.isDataDriven())&&Ku.hasPaintOverride(this.layout,t)}static hasPaintOverride(t,e){const r=t.get(\"text-field\"),n=Nu.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 te)a(r.value.value.sections);else if(\"source\"===r.value.kind){const t=e=>{i||(e instanceof ue&&oe(e.value)===bt?a(e.value.sections):e instanceof fr?a(e.sections):e.eachChild(t));},e=r.value;e._styleExpression&&t(e._styleExpression.expression);}return i}}let Gu;var Ju={get paint(){return Gu=Gu||new Ai({\"background-color\":new xi(Y.paint_background[\"background-color\"]),\"background-pattern\":new wi(Y.paint_background[\"background-pattern\"]),\"background-opacity\":new xi(Y.paint_background[\"background-opacity\"])})}};class Xu extends ki{constructor(t){super(t,Ju);}}let Yu;var Hu={get paint(){return Yu=Yu||new Ai({\"raster-opacity\":new xi(Y.paint_raster[\"raster-opacity\"]),\"raster-hue-rotate\":new xi(Y.paint_raster[\"raster-hue-rotate\"]),\"raster-brightness-min\":new xi(Y.paint_raster[\"raster-brightness-min\"]),\"raster-brightness-max\":new xi(Y.paint_raster[\"raster-brightness-max\"]),\"raster-saturation\":new xi(Y.paint_raster[\"raster-saturation\"]),\"raster-contrast\":new xi(Y.paint_raster[\"raster-contrast\"]),\"raster-resampling\":new xi(Y.paint_raster[\"raster-resampling\"]),\"raster-fade-duration\":new xi(Y.paint_raster[\"raster-fade-duration\"])})}};class Wu extends ki{constructor(t){super(t,Hu);}}class Qu extends ki{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\")}}class tc{constructor(t){this._callback=t,this._triggered=!1,\"undefined\"!=typeof MessageChannel&&(this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{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 ec=6371008.8;class rc{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 rc(m(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 ec*Math.acos(Math.min(i,1))}static convert(t){if(t instanceof rc)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new rc(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&\"object\"==typeof t&&null!==t)return new rc(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 [, ]\")}}const nc=2*Math.PI*ec;function ic(t){return nc*Math.cos(t*Math.PI/180)}function ac(t){return (180+t)/360}function sc(t){return (180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360}function oc(t,e){return t/ic(e)}function lc(t){return 360/Math.PI*Math.atan(Math.exp((180-360*t)*Math.PI/180))-90}class uc{constructor(t,e,r=0){this.x=+t,this.y=+e,this.z=+r;}static fromLngLat(t,e=0){const r=rc.convert(t);return new uc(ac(r.lng),sc(r.lat),oc(e,r.lat))}toLngLat(){return new rc(360*this.x-180,lc(this.y))}toAltitude(){return this.z*ic(lc(this.y))}meterInMercatorCoordinateUnits(){return 1/nc*(t=lc(this.y),1/Math.cos(t*Math.PI/180));var t;}}function cc(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 hc{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=dc(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=cc(256*(i=this.x),256*(a=Math.pow(2,s)-a-1),s),l=cc(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 a((t.x*e-this.x)*ns,(t.y*e-this.y)*ns)}toString(){return `${this.z}/${this.x}/${this.y}`}}class pc{constructor(t,e){this.wrap=t,this.canonical=e,this.key=dc(t,e.z,e.z,e.x,e.y);}}class fc{constructor(t,e,r,n,i){if(t= z; overscaledZ = ${t}; z = ${r}`);this.overscaledZ=t,this.wrap=e,this.canonical=new hc(r,+n,+i),this.key=dc(e,t,r,n,i);}clone(){return new fc(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 fc(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new fc(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?dc(this.wrap*+e,t,this.canonical.z,this.canonical.x,this.canonical.y):dc(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 fc(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 fc(e,this.wrap,e,r,n),new fc(e,this.wrap,e,r+1,n),new fc(e,this.wrap,e,r,n+1),new fc(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)}unpack(t,e,r){return t*this.redFactor+e*this.greenFactor+r*this.blueFactor-this.baseShift}getPixels(){return new js({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 gc{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 xc{constructor(t,e){this.tileID=t,this.x=t.canonical.x,this.y=t.canonical.y,this.z=t.canonical.z,this.grid=new Tn(ns,16,0),this.grid3D=new Tn(ns,16,0),this.featureIndexArray=new ha,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 qo.VectorTile(new ru(this.rawTileData)).layers,this.sourceLayerCoder=new mc(this.vtLayers?Object.keys(this.vtLayers).sort():[\"_geojsonTileLayer\"])),this.vtLayers}query(t,e,r,n){this.loadVTLayers();const i=t.params||{},s=ns/t.tileSize/t.scale,o=Zr(i.filter),l=t.queryGeometry,u=t.queryPadding*s,c=bc(l),h=this.grid.query(c.minX-u,c.minY-u,c.maxX+u,c.maxY+u),p=bc(t.cameraQueryGeometry),f=this.grid3D.query(p.minX-u,p.minY-u,p.maxX+u,p.maxY+u,((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 s=[new a(e,r),new a(e,i),new a(n,i),new a(n,r)];if(t.length>2)for(const e of s)if(vs(t,e))return !0;for(let e=0;e(p||(p=ss(e)),r.queryIntersectsFeature(l,e,n,p,this.z,t.transform,s,t.pixelPosMatrix))));}return d}loadMatchingFeature(t,e,r,n,i,a,s,o,l,u,c){const h=this.bucketLayerIDs[e];if(a&&!function(t,e){for(let r=0;r=0)return !0;return !1}(a,h))return;const p=this.sourceLayerCoder.decode(r),f=this.vtLayers[p].feature(n);if(i.needGeometry){const t=os(f,!0);if(!i.filter(new ui(this.tileID.overscaledZ),t,this.tileID.canonical))return}else if(!i.filter(new ui(this.tileID.overscaledZ),f))return;const d=this.getId(f,p);for(let e=0;e{const s=e instanceof gi?e.get(a):null;return s&&s.evaluate?s.evaluate(r,n,i):s}))}function bc(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 wc(t,e){return e-t}function _c(t,e,r,n,i){const s=[];for(let o=0;o=n&&c.x>=n||(o.x>=n?o=new a(n,o.y+(n-o.x)/(c.x-o.x)*(c.y-o.y))._round():c.x>=n&&(c=new a(n,o.y+(n-o.x)/(c.x-o.x)*(c.y-o.y))._round()),o.y>=i&&c.y>=i||(o.y>=i?o=new a(o.x+(i-o.y)/(c.y-o.y)*(c.x-o.x),i)._round():c.y>=i&&(c=new a(o.x+(i-o.y)/(c.y-o.y)*(c.x-o.x),i)._round()),u&&o.equals(u[u.length-1])||(u=[o],s.push(u)),u.push(c)))));}}return s}Ln(\"FeatureIndex\",xc,{omit:[\"rawTileData\",\"sourceLayerCoder\"]});class Ac extends a{constructor(t,e,r,n){super(t,e),this.angle=r,void 0!==n&&(this.segment=n);}clone(){return new Ac(this.x,this.y,this.angle,this.segment)}}function Sc(t,e,r,n,i){if(void 0===e.segment||0===r)return !0;let a=e,s=e.segment+1,o=0;for(;o>-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 kc(t){let e=0;for(let r=0;ru){const c=(u-l)/a,h=Ke.number(n.x,i.x,c),p=Ke.number(n.y,i.y,c),f=new Ac(h,p,i.angleTo(n),r);return f._round(),!s||Sc(t,f,o,s,e)?f:void 0}l+=a;}}function Pc(t,e,r,n,i,a,s,o,l){const u=Ic(n,a,s),c=zc(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 Ac(g,x,y,e);r._round(),n&&!Sc(t,r,a,n,i)||f.push(r);}}h+=d;}return o||f.length||s||(f=Cc(t,h/2,r,n,i,a,s,!0,l)),f}Ln(\"Anchor\",Ac);const Bc=uu;function Vc(t,e,r,n){const i=[],s=t.image,o=s.pixelRatio,l=s.paddedRect.w-2*Bc,u=s.paddedRect.h-2*Bc,c=t.right-t.left,h=t.bottom-t.top,p=s.stretchX||[[0,l]],f=s.stretchY||[[0,u]],d=(t,e)=>t+e[1]-e[0],y=p.reduce(d,0),m=f.reduce(d,0),g=l-y,x=u-m;let v=0,b=y,w=0,_=m,A=0,S=g,k=0,I=x;if(s.content&&n){const t=s.content;v=Ec(p,0,t[0]),w=Ec(f,0,t[1]),b=Ec(p,t[0],t[2]),_=Ec(f,t[1],t[3]),A=t[0]-v,k=t[1]-w,S=t[2]-t[0]-b,I=t[3]-t[1]-_;}const z=(n,i,l,u)=>{const p=Tc(n.stretch-v,b,c,t.left),f=$c(n.fixed-A,S,n.stretch,y),d=Tc(i.stretch-w,_,h,t.top),g=$c(i.fixed-k,I,i.stretch,m),x=Tc(l.stretch-v,b,c,t.left),z=$c(l.fixed-A,S,l.stretch,y),M=Tc(u.stretch-w,_,h,t.top),P=$c(u.fixed-k,I,u.stretch,m),C=new a(p,d),B=new a(x,d),V=new a(x,M),E=new a(p,M),F=new a(f/o,g/o),T=new a(z/o,P/o),$=e*Math.PI/180;if($){const t=Math.sin($),e=Math.cos($),r=[e,-t,t,e];C._matMult(r),B._matMult(r),E._matMult(r),V._matMult(r);}const L=n.stretch+n.fixed,D=i.stretch+i.fixed;return {tl:C,tr:B,bl:E,br:V,tex:{x:s.paddedRect.x+Bc+L,y:s.paddedRect.y+Bc+D,w:l.stretch+l.fixed-L,h:u.stretch+u.fixed-D},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:F,pixelOffsetBR:T,minFontScaleX:S/o/c,minFontScaleY:I/o/h,isSDF:r}};if(n&&(s.stretchX||s.stretchY)){const t=Fc(p,g,y),e=Fc(f,x,m);for(let r=0;r0&&(n=Math.max(10,n),this.circleDiameter=n);}else {let u=s.top*o-l[0],h=s.bottom*o+l[2],p=s.left*o-l[3],f=s.right*o+l[1];const d=s.collisionPadding;if(d&&(p-=d[0]*o,u-=d[1]*o,f+=d[2]*o,h+=d[3]*o),c){const t=new a(p,u),e=new a(f,u),r=new a(p,h),n=new a(f,h),i=c*Math.PI/180;t._rotate(i),e._rotate(i),r._rotate(i),n._rotate(i),p=Math.min(t.x,e.x,r.x,n.x),f=Math.max(t.x,e.x,r.x,n.x),u=Math.min(t.y,e.y,r.y,n.y),h=Math.max(t.y,e.y,r.y,n.y);}t.emplaceBack(e.x,e.y,p,u,f,h,r,n,i);}this.boxEndIndex=t.length;}}class Dc{constructor(t=[],e=Oc){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 Oc(t,e){return te?1:0}function Uc(t,e=1,r=!1){let n=1/0,i=1/0,s=-1/0,o=-1/0;const l=t[0];for(let t=0;ts)&&(s=e.x),(!t||e.y>o)&&(o=e.y);}const u=Math.min(s-n,o-i);let c=u/2;const h=new Dc([],Rc);if(0===u)return new a(n,i);for(let e=n;ep.d||!p.d)&&(p=n,r&&console.log(\"found best %d after %d probes\",Math.round(1e4*n.d)/1e4,f)),n.max-p.d<=e||(c=n.h/2,h.push(new qc(n.p.x-c,n.p.y-c,c,t)),h.push(new qc(n.p.x+c,n.p.y-c,c,t)),h.push(new qc(n.p.x-c,n.p.y+c,c,t)),h.push(new qc(n.p.x+c,n.p.y+c,c,t)),f+=4);}return r&&(console.log(`num probes: ${f}`),console.log(`best distance: ${p.d}`)),p.p}function Rc(t,e){return e.max-t.max}function qc(t,e,r,n){this.p=new a(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,gs(t,i,o));}}return (r?1:-1)*Math.sqrt(n)}(this.p,n),this.max=this.d+this.h*Math.SQRT2;}var jc;t.TextAnchorEnum=void 0,(jc=t.TextAnchorEnum||(t.TextAnchorEnum={}))[jc.center=1]=\"center\",jc[jc.left=2]=\"left\",jc[jc.right=3]=\"right\",jc[jc.top=4]=\"top\",jc[jc.bottom=5]=\"bottom\",jc[jc[\"top-left\"]=6]=\"top-left\",jc[jc[\"top-right\"]=7]=\"top-right\",jc[jc[\"bottom-left\"]=8]=\"bottom-left\",jc[jc[\"bottom-right\"]=9]=\"bottom-right\";const Nc=7,Zc=Number.POSITIVE_INFINITY;function Kc(t,e){return e[1]!==Zc?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-Nc;break;case\"bottom-right\":case\"bottom-left\":case\"bottom\":i=-r+Nc;}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.SQRT2;switch(t){case\"top-right\":case\"top-left\":n=i-Nc;break;case\"bottom-right\":case\"bottom-left\":n=-i+Nc;break;case\"bottom\":n=-e+Nc;break;case\"top\":n=e-Nc;}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 Gc(t,e,r){var n;const i=t.layout,a=null===(n=i.get(\"text-variable-anchor-offset\"))||void 0===n?void 0:n.evaluate(e,{},r);if(a){const t=a.values,e=[];for(let r=0;rt*El));n.startsWith(\"top\")?i[1]-=Nc:n.startsWith(\"bottom\")&&(i[1]+=Nc),e[r+1]=i;}return new ne(e)}const s=i.get(\"text-variable-anchor\");if(s){let n;n=void 0!==t._unevaluatedLayout.getValue(\"text-radial-offset\")?[i.get(\"text-radial-offset\").evaluate(e,{},r)*El,Zc]:i.get(\"text-offset\").evaluate(e,{},r).map((t=>t*El));const a=[];for(const t of s)a.push(t,Kc(t,n));return new ne(a)}return null}function Jc(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 Xc(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,d=f.get(\"icon-offset\").evaluate(r,{},h),y=Hc(n.horizontal),m=o/24,g=e.tilePixelRatio*m,x=e.tilePixelRatio*p/24,v=e.tilePixelRatio*l,b=e.tilePixelRatio*f.get(\"symbol-spacing\"),w=f.get(\"text-padding\")*e.tilePixelRatio,_=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),S=f.get(\"text-max-angle\")/180*Math.PI,k=\"viewport\"!==f.get(\"text-rotation-alignment\")&&\"point\"!==f.get(\"symbol-placement\"),I=\"map\"===f.get(\"icon-rotation-alignment\")&&\"point\"!==f.get(\"symbol-placement\"),z=f.get(\"symbol-placement\"),M=b/2,P=f.get(\"icon-text-fit\");let C;i&&\"none\"!==P&&(e.allowVerticalPlacement&&n.vertical&&(C=Mu(i,n.vertical,P,f.get(\"icon-text-fit-padding\"),d,m)),y&&(i=Mu(i,y,P,f.get(\"icon-text-fit-padding\"),d,m)));const B=(l,p)=>{p.x<0||p.x>=ns||p.y<0||p.y>=ns||function(e,r,n,i,a,s,o,l,u,c,h,p,f,d,y,m,g,x,v,b,w,_,S,k,I){const z=e.addToLineVertexArray(r,n);let M,P,C,B,V=0,E=0,F=0,T=0,$=-1,L=-1;const D={};let O=La(\"\");if(e.allowVerticalPlacement&&i.vertical){const t=l.layout.get(\"text-rotate\").evaluate(w,{},k)+90;C=new Lc(u,r,c,h,p,i.vertical,f,d,y,t),o&&(B=new Lc(u,r,c,h,p,o,g,x,y,t));}if(a){const n=l.layout.get(\"icon-rotate\").evaluate(w,{}),i=\"none\"!==l.layout.get(\"icon-text-fit\"),s=Vc(a,n,S,i),f=o?Vc(o,n,S,i):void 0;P=new Lc(u,r,c,h,p,a,g,x,!1,n),V=4*s.length;const d=e.iconSizeData;let y=null;\"source\"===d.kind?(y=[Cu*l.layout.get(\"icon-size\").evaluate(w,{})],y[0]>Bu&&A(`${e.layerIds[0]}: Value for \"icon-size\" is >= ${Pu}. Reduce your \"icon-size\".`)):\"composite\"===d.kind&&(y=[Cu*_.compositeIconSizes[0].evaluate(w,{},k),Cu*_.compositeIconSizes[1].evaluate(w,{},k)],(y[0]>Bu||y[1]>Bu)&&A(`${e.layerIds[0]}: Value for \"icon-size\" is >= ${Pu}. Reduce your \"icon-size\".`)),e.addSymbols(e.icon,s,y,b,v,w,t.WritingMode.none,r,z.lineStartIndex,z.lineLength,-1,k),$=e.icon.placedSymbolArray.length-1,f&&(E=4*f.length,e.addSymbols(e.icon,f,y,b,v,w,t.WritingMode.vertical,r,z.lineStartIndex,z.lineLength,-1,k),L=e.icon.placedSymbolArray.length-1);}const U=Object.keys(i.horizontal);for(const n of U){const a=i.horizontal[n];if(!M){O=La(a.text);const t=l.layout.get(\"text-rotate\").evaluate(w,{},k);M=new Lc(u,r,c,h,p,a,f,d,y,t);}const o=1===a.positionedLines.length;if(F+=Yc(e,r,a,s,l,y,w,m,z,i.vertical?t.WritingMode.horizontal:t.WritingMode.horizontalOnly,o?U:[n],D,$,_,k),o)break}i.vertical&&(T+=Yc(e,r,i.vertical,s,l,y,w,m,z,t.WritingMode.vertical,[\"vertical\"],D,L,_,k));const R=M?M.boxStartIndex:e.collisionBoxArray.length,q=M?M.boxEndIndex:e.collisionBoxArray.length,j=C?C.boxStartIndex:e.collisionBoxArray.length,N=C?C.boxEndIndex:e.collisionBoxArray.length,Z=P?P.boxStartIndex:e.collisionBoxArray.length,K=P?P.boxEndIndex:e.collisionBoxArray.length,G=B?B.boxStartIndex:e.collisionBoxArray.length,J=B?B.boxEndIndex:e.collisionBoxArray.length;let X=-1;const Y=(t,e)=>t&&t.circleDiameter?Math.max(t.circleDiameter,e):e;X=Y(M,X),X=Y(C,X),X=Y(P,X),X=Y(B,X);const H=X>-1?1:0;H&&(X*=I/El),e.glyphOffsetArray.length>=Ru.MAX_GLYPHS&&A(\"Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907\"),void 0!==w.sortKey&&e.addToSortKeyRanges(e.symbolInstances.length,w.sortKey);const W=Gc(l,w,k),[Q,tt]=function(e,r){const n=e.length,i=null==r?void 0:r.values;if((null==i?void 0:i.length)>0)for(let r=0;r=0?D.right:-1,D.center>=0?D.center:-1,D.left>=0?D.left:-1,D.vertical||-1,$,L,O,R,q,j,N,Z,K,G,J,c,F,T,V,E,H,0,f,X,Q,tt);}(e,p,l,n,i,a,C,e.layers[0],e.collisionBoxArray,r.index,r.sourceLayerIndex,e.index,g,[w,w,w,w],k,u,v,_,I,d,r,s,c,h,o);};if(\"line\"===z)for(const t of _c(r.geometry,0,0,ns,ns)){const r=Pc(t,b,S,n.vertical||y,i,24,x,e.overscaling,ns);for(const n of r)y&&Wc(e,y.text,M,n)||B(t,n);}else if(\"line-center\"===z){for(const t of r.geometry)if(t.length>1){const e=Mc(t,S,n.vertical||y,i,24,x);e&&B(t,e);}}else if(\"Polygon\"===r.type)for(const t of Co(r.geometry,0)){const e=Uc(t,16);B(t[0],new Ac(e.x,e.y,0));}else if(\"LineString\"===r.type)for(const t of r.geometry)B(t,new Ac(t[0].x,t[0].y,0));else if(\"Point\"===r.type)for(const t of r.geometry)for(const e of t)B([e],new Ac(e.x,e.y,0));}function Yc(t,e,r,n,i,s,o,l,u,c,h,p,f,d,y){const m=function(t,e,r,n,i,s,o,l){const u=n.layout.get(\"text-rotate\").evaluate(s,{})*Math.PI/180,c=[];for(const t of e.positionedLines)for(const n of t.positionedGlyphs){if(!n.rect)continue;const s=n.rect||{};let h=ou+1,p=!0,f=1,d=0;const y=(i||l)&&n.vertical,m=n.metrics.advance*n.scale/2;if(l&&e.verticalizable&&(d=t.lineOffset/2-(n.imageName?-(El-n.metrics.width*n.scale)/2:(n.scale-1)*El)),n.imageName){const t=o[n.imageName];p=t.sdf,f=t.pixelRatio,h=uu/f;}const g=i?[n.x+m,n.y]:[0,0];let x=i?[0,0]:[n.x+m+r[0],n.y+r[1]-d],v=[0,0];y&&(v=x,x=[0,0]);const b=n.metrics.isDoubleResolution?2:1,w=(n.metrics.left-h)*n.scale-m+x[0],_=(-n.metrics.top-h)*n.scale+x[1],A=w+s.w/b*n.scale/f,S=_+s.h/b*n.scale/f,k=new a(w,_),I=new a(A,_),z=new a(w,S),M=new a(A,S);if(y){const t=new a(-m,m-fu),e=-Math.PI/2,r=El/2-m,i=new a(5-fu-r,-(n.imageName?r:0)),s=new a(...v);k._rotateAround(e,t)._add(i)._add(s),I._rotateAround(e,t)._add(i)._add(s),z._rotateAround(e,t)._add(i)._add(s),M._rotateAround(e,t)._add(i)._add(s);}if(u){const t=Math.sin(u),e=Math.cos(u),r=[e,-t,t,e];k._matMult(r),I._matMult(r),z._matMult(r),M._matMult(r);}const P=new a(0,0),C=new a(0,0);c.push({tl:k,tr:I,bl:z,br:M,tex:s,writingMode:e.writingMode,glyphOffset:g,sectionIndex:n.sectionIndex,isSDF:p,pixelOffsetTL:P,pixelOffsetBR:C,minFontScaleX:0,minFontScaleY:0});}return c}(0,r,l,i,s,o,n,t.allowVerticalPlacement),g=t.textSizeData;let x=null;\"source\"===g.kind?(x=[Cu*i.layout.get(\"text-size\").evaluate(o,{})],x[0]>Bu&&A(`${t.layerIds[0]}: Value for \"text-size\" is >= ${Pu}. Reduce your \"text-size\".`)):\"composite\"===g.kind&&(x=[Cu*d.compositeTextSizes[0].evaluate(o,{},y),Cu*d.compositeTextSizes[1].evaluate(o,{},y)],(x[0]>Bu||x[1]>Bu)&&A(`${t.layerIds[0]}: Value for \"text-size\" is >= ${Pu}. Reduce your \"text-size\".`)),t.addSymbols(t.text,m,x,l,s,o,c,e,u.lineStartIndex,u.lineLength,f,y);for(const e of h)p[e]=t.text.placedSymbolArray.length-1;return 4*m.length}function Hc(t){for(const e in t)return t[e];return null}function Wc(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])>4;if(1!==n)throw new Error(`Got v${n} data when expected v1.`);const i=Qc[15&r];if(!i)throw new Error(\"Unrecognized array type.\");const[a]=new Uint16Array(t,2,1),[s]=new Uint32Array(t,4,1);return new th(s,a,i,t)}constructor(t,e=64,r=Float64Array,n){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+e,2),65535),this.ArrayType=r,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;const i=Qc.indexOf(this.ArrayType),a=2*t*this.ArrayType.BYTES_PER_ELEMENT,s=t*this.IndexArrayType.BYTES_PER_ELEMENT,o=(8-s%8)%8;if(i<0)throw new Error(`Unexpected typed array class: ${r}.`);n&&n instanceof ArrayBuffer?(this.data=n,this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+s+o,2*t),this._pos=2*t,this._finished=!0):(this.data=new ArrayBuffer(8+a+s+o),this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+s+o,2*t),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+i]),new Uint16Array(this.data,2,1)[0]=e,new Uint32Array(this.data,4,1)[0]=t);}add(t,e){const r=this._pos>>1;return this.ids[r]=r,this.coords[this._pos++]=t,this.coords[this._pos++]=e,r}finish(){const t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return eh(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,e,r,n){if(!this._finished)throw new Error(\"Data not yet indexed - call index.finish().\");const{ids:i,coords:a,nodeSize:s}=this,o=[0,i.length-1,0],l=[];for(;o.length;){const u=o.pop()||0,c=o.pop()||0,h=o.pop()||0;if(c-h<=s){for(let s=h;s<=c;s++){const o=a[2*s],u=a[2*s+1];o>=t&&o<=r&&u>=e&&u<=n&&l.push(i[s]);}continue}const p=h+c>>1,f=a[2*p],d=a[2*p+1];f>=t&&f<=r&&d>=e&&d<=n&&l.push(i[p]),(0===u?t<=f:e<=d)&&(o.push(h),o.push(p-1),o.push(1-u)),(0===u?r>=f:n>=d)&&(o.push(p+1),o.push(c),o.push(1-u));}return l}within(t,e,r){if(!this._finished)throw new Error(\"Data not yet indexed - call index.finish().\");const{ids:n,coords:i,nodeSize:a}=this,s=[0,n.length-1,0],o=[],l=r*r;for(;s.length;){const u=s.pop()||0,c=s.pop()||0,h=s.pop()||0;if(c-h<=a){for(let r=h;r<=c;r++)ah(i[2*r],i[2*r+1],t,e)<=l&&o.push(n[r]);continue}const p=h+c>>1,f=i[2*p],d=i[2*p+1];ah(f,d,t,e)<=l&&o.push(n[p]),(0===u?t-r<=f:e-r<=d)&&(s.push(h),s.push(p-1),s.push(1-u)),(0===u?t+r>=f:e+r>=d)&&(s.push(p+1),s.push(c),s.push(1-u));}return o}}function eh(t,e,r,n,i,a){if(i-n<=r)return;const s=n+i>>1;rh(t,e,s,n,i,a),eh(t,e,r,n,s-1,1-a),eh(t,e,r,s+1,i,1-a);}function rh(t,e,r,n,i,a){for(;i>n;){if(i-n>600){const s=i-n+1,o=r-n+1,l=Math.log(s),u=.5*Math.exp(2*l/3),c=.5*Math.sqrt(l*u*(s-u)/s)*(o-s/2<0?-1:1);rh(t,e,r,Math.max(n,Math.floor(r-o*u/s+c)),Math.min(i,Math.floor(r+(s-o)*u/s+c)),a);}const s=e[2*r+a];let o=n,l=i;for(nh(t,e,n,r),e[2*i+a]>s&&nh(t,e,n,i);os;)l--;}e[2*n+a]===s?nh(t,e,n,l):(l++,nh(t,e,l,i)),l<=r&&(n=l+1),r<=l&&(i=l-1);}}function nh(t,e,r,n){ih(t,r,n),ih(e,2*r,2*n),ih(e,2*r+1,2*n+1);}function ih(t,e,r){const n=t[e];t[e]=t[r],t[r]=n;}function ah(t,e,r,n){const i=t-r,a=e-n;return i*i+a*a}var sh;t.PerformanceMarkers=void 0,(sh=t.PerformanceMarkers||(t.PerformanceMarkers={})).create=\"create\",sh.load=\"load\",sh.fullLoad=\"fullLoad\";let oh=null,lh=[];const uh=1e3/60,ch=\"loadTime\",hh=\"fullLoadTime\",ph={mark(t){performance.mark(t);},frame(t){const e=t;null!=oh&&lh.push(e-oh),oh=e;},clearMetrics(){oh=null,lh=[],performance.clearMeasures(ch),performance.clearMeasures(hh);for(const e in t.PerformanceMarkers)performance.clearMarks(t.PerformanceMarkers[e]);},getPerformanceMetrics(){performance.measure(ch,t.PerformanceMarkers.create,t.PerformanceMarkers.load),performance.measure(hh,t.PerformanceMarkers.create,t.PerformanceMarkers.fullLoad);const e=performance.getEntriesByName(ch)[0].duration,r=performance.getEntriesByName(hh)[0].duration,n=lh.length,i=1/(lh.reduce(((t,e)=>t+e),0)/n/1e3),a=lh.filter((t=>t>uh)).reduce(((t,e)=>t+(e-uh)/uh),0);return {loadTime:e,fullLoadTime:r,fps:i,percentDroppedFrames:a/(n+a)*100,totalFrames:n}}};t.AJAXError=D,t.ARRAY_TYPE=Ms,t.Actor=class{constructor(t,e,r){this.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 I()||e.mustQueue?(this.tasks[r]=e,this.taskQueue.push(r),this.invoker.trigger()):this.processTask(r,e);},this.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);},this.target=t,this.parent=e,this.mapId=r,this.callbacks={},this.tasks={},this.taskQueue=[],this.cancelCallbacks={},this.invoker=new tc(this.process),this.target.addEventListener(\"message\",this.receive,!1),this.globalScope=I()?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=M(this.globalScope)?void 0:[];return this.target.postMessage({id:a,type:t,hasCallback:!!r,targetMapId:n,mustQueue:i,sourceMapId:this.mapId,data:On(e,s)},s),{cancel:()=>{r&&delete this.callbacks[a],this.target.postMessage({id:a,type:\"\",targetMapId:n,sourceMapId:this.mapId});}}}processTask(t,e){if(\"\"===e.type){const r=this.callbacks[t];delete this.callbacks[t],r&&(e.error?r(Un(e.error)):r(null,Un(e.data)));}else {let r=!1;const n=M(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?On(e):null,data:On(i,n)},n);}:t=>{r=!0;};let a=null;const s=Un(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=qs,t.CanonicalTileID=hc,t.CollisionBoxArray=ea,t.CollisionCircleLayoutArray=class extends ji{},t.Color=Ht,t.DEMData=yc,t.DataConstantProperty=xi,t.DictionaryCoder=mc,t.EXTENT=ns,t.ErrorEvent=J,t.EvaluationParameters=ui,t.Event=G,t.Evented=X,t.FeatureIndex=xc,t.FillBucket=Fo,t.FillExtrusionBucket=nl,t.GeoJSONFeature=gc,t.ImageAtlas=hu,t.ImagePosition=cu,t.KDBush=th,t.LineBucket=xl,t.LineStripIndexArray=class extends Wi{},t.LngLat=rc,t.MercatorCoordinate=uc,t.ONE_EM=El,t.OverscaledTileID=fc,t.PerformanceUtils=ph,t.Point=a,t.Pos3dArray=class extends Vi{},t.PosArray=pa,t.Properties=Ai,t.Protobuf=ru,t.QuadTriangleArray=class extends Zi{},t.RGBAImage=js,t.RasterBoundsArray=class extends Ei{},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.SegmentVector=Ma,t.SymbolBucket=Ru,t.Transitionable=pi,t.TriangleIndexArray=Sa,t.Uniform1f=ja,t.Uniform1i=class extends qa{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 qa{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 qa{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=Na,t.UniformColor=Za,t.UniformMatrix4f=class extends qa{constructor(t,e){super(t,e),this.current=Ka;}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=pc,t.ValidationError=lt,t.ZoomHistory=Rn,t.__awaiter=e,t.addDynamicAttributes=Lu,t.arrayBufferToImage=function(t,e){const r=new Image;r.onload=()=>{e(null,r),URL.revokeObjectURL(r.src),r.onload=null,window.requestAnimationFrame((()=>{r.src=C;}));},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):C;},t.arrayBufferToImageBitmap=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.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=f,t.browser=$,t.clamp=y,t.clipLine=_c,t.clone=function(t){var e=new Ms(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=w,t.collisionCircleLayout=Cl,t.config=L,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 Ms(16);return Ms!=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.createExpression=Lr,t.createFilter=Zr,t.createLayout=Pi,t.createStyleLayer=function(t){if(\"custom\"===t.type)return new Qu(t);switch(t.type){case\"background\":return new Xu(t);case\"circle\":return new Fs(t);case\"fill\":return new Do(t);case\"fill-extrusion\":return new ll(t);case\"heatmap\":return new Zs(t);case\"hillshade\":return new Js(t);case\"line\":return new Sl(t);case\"raster\":return new Wu(t);case\"symbol\":return new Ku(t)}},t.deepEqual=function t(e,r){if(Array.isArray(e)){if(!Array.isArray(r)||e.length!==r.length)return !1;for(let n=0;n{n[t.source]?r.push({command:tt.removeLayer,args:[t.id]}):a.push(t);})),r=r.concat(i),function(t,e,r){e=e||[];const n=(t=t||[]).map(st),i=e.map(st),a=t.reduce(ot,{}),s=e.reduce(ot,{}),o=n.slice(),l=Object.create(null);let u,c,h,p,f,d,y;for(u=0,c=0;u{}}},t.groupByLayout=function(t,e){const r={};for(let n=0;n@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\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},t.parseGlyphPbf=function(t){return new ru(t).readFields(iu,[])},t.pbf=Fl,t.performSymbolLayout=function(e){e.bucket.createArrays(),e.bucket.tilePixelRatio=ns/(512*e.bucket.overscaling),e.bucket.compareText={},e.bucket.iconsNeedLinear=!1;const r=e.bucket.layers[0],n=r.layout,i=r._unevaluatedLayout._values,a={layoutIconSize:i[\"icon-size\"].possiblyEvaluate(new ui(e.bucket.zoom+1),e.canonical),layoutTextSize:i[\"text-size\"].possiblyEvaluate(new ui(e.bucket.zoom+1),e.canonical),textMaxSize:i[\"text-size\"].possiblyEvaluate(new ui(18))};if(\"composite\"===e.bucket.textSizeData.kind){const{minZoom:t,maxZoom:r}=e.bucket.textSizeData;a.compositeTextSizes=[i[\"text-size\"].possiblyEvaluate(new ui(t),e.canonical),i[\"text-size\"].possiblyEvaluate(new ui(r),e.canonical)];}if(\"composite\"===e.bucket.iconSizeData.kind){const{minZoom:t,maxZoom:r}=e.bucket.iconSizeData;a.compositeIconSizes=[i[\"icon-size\"].possiblyEvaluate(new ui(t),e.canonical),i[\"icon-size\"].possiblyEvaluate(new ui(r),e.canonical)];}const s=n.get(\"text-line-height\")*El,o=\"viewport\"!==n.get(\"text-rotation-alignment\")&&\"point\"!==n.get(\"symbol-placement\"),l=n.get(\"text-keep-upright\"),u=n.get(\"text-size\");for(const i of e.bucket.features){const c=n.get(\"text-font\").evaluate(i,{},e.canonical).join(\",\"),h=u.evaluate(i,{},e.canonical),p=a.layoutTextSize.evaluate(i,{},e.canonical),f=a.layoutIconSize.evaluate(i,{},e.canonical),d={horizontal:{},vertical:void 0},y=i.text;let m,g=[0,0];if(y){const a=y.toString(),u=n.get(\"text-letter-spacing\").evaluate(i,{},e.canonical)*El,f=Nn(a)?u:0,m=n.get(\"text-anchor\").evaluate(i,{},e.canonical),x=Gc(r,i,e.canonical);if(!x){const t=n.get(\"text-radial-offset\").evaluate(i,{},e.canonical);g=t?Kc(m,[t*El,Zc]):n.get(\"text-offset\").evaluate(i,{},e.canonical).map((t=>t*El));}let v=o?\"center\":n.get(\"text-justify\").evaluate(i,{},e.canonical);const b=n.get(\"symbol-placement\"),w=\"point\"===b?n.get(\"text-max-width\").evaluate(i,{},e.canonical)*El:0,_=()=>{e.bucket.allowVerticalPlacement&&jn(a)&&(d.vertical=mu(y,e.glyphMap,e.glyphPositions,e.imagePositions,c,w,s,m,\"left\",f,g,t.WritingMode.vertical,!0,b,p,h));};if(!o&&x){const r=new Set;if(\"auto\"===v)for(let t=0;tthis._layers[e.id])),i=t[0];if(\"none\"===i.visibility)continue;const r=i.source||\"\";let o=this.familiesBySource[r];o||(o=this.familiesBySource[r]={});const s=i.sourceLayer||\"_geojsonTileLayer\";let n=o[s];n||(n=o[s]=[]),n.push(t);}}}class i{constructor(t){const i={},r=[];for(const e in t){const o=t[e],s=i[e]={};for(const e in o){const t=o[+e];if(!t||0===t.bitmap.width||0===t.bitmap.height)continue;const i={x:0,y:0,w:t.bitmap.width+2,h:t.bitmap.height+2};r.push(i),s[e]={rect:i,metrics:t.metrics};}}const{w:o,h:s}=e.potpack(r),n=new e.AlphaImage({width:o||1,height:s||1});for(const r in t){const o=t[r];for(const t in o){const s=o[+t];if(!s||0===s.bitmap.width||0===s.bitmap.height)continue;const a=i[r][t].rect;e.AlphaImage.copy(s.bitmap,n,{x:0,y:0},{x:a.x+1,y:a.y+1},s.bitmap);}}this.image=n,this.positions=i;}}e.register(\"GlyphAtlas\",i);class r{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,this.inFlightDependencies=[],this.dependencySentinel=-1;}parse(t,r,s,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:s},p=r.familiesBySource[this.source];for(const i in p){const r=t.layers[i];if(!r)continue;1===r.version&&e.warnOnce(`Vector tile source \"${this.source}\" layer \"${i}\" does not use vector tile spec v2 and therefore may have some rendering errors.`);const n=l.encode(i),a=[];for(let e=0;e=i.maxzoom||\"none\"!==i.visibility&&(o(t,this.zoom,s),(u[i.id]=i.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 d,f,g,m;const y=e.mapObject(h.glyphDependencies,(e=>Object.keys(e).map(Number)));this.inFlightDependencies.forEach((e=>null==e?void 0:e.cancel())),this.inFlightDependencies=[];const v=++this.dependencySentinel;Object.keys(y).length?this.inFlightDependencies.push(n.send(\"getGlyphs\",{uid:this.uid,stacks:y,source:this.source,tileID:this.tileID,type:\"glyphs\"},((e,t)=>{v===this.dependencySentinel&&(d||(d=e,f=t,S.call(this)));}))):f={};const x=Object.keys(h.iconDependencies);x.length?this.inFlightDependencies.push(n.send(\"getImages\",{icons:x,source:this.source,tileID:this.tileID,type:\"icons\"},((e,t)=>{v===this.dependencySentinel&&(d||(d=e,g=t,S.call(this)));}))):g={};const w=Object.keys(h.patternDependencies);function S(){if(d)return a(d);if(f&&g&&m){const t=new i(f),r=new e.ImageAtlas(g,m);for(const i in u){const n=u[i];n instanceof e.SymbolBucket?(o(n.layers,this.zoom,s),e.performSymbolLayout({bucket:n,glyphMap:f,glyphPositions:t.positions,imageMap:g,imagePositions:r.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical})):n.hasPattern&&(n instanceof e.LineBucket||n instanceof e.FillBucket||n instanceof e.FillExtrusionBucket)&&(o(n.layers,this.zoom,s),n.addFeatures(h,this.tileID.canonical,r.patternPositions));}this.status=\"done\",a(null,{buckets:Object.values(u).filter((e=>!e.isEmpty())),featureIndex:c,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:t.image,imageAtlas:r,glyphMap:this.returnDependencies?f:null,iconMap:this.returnDependencies?g:null,glyphPositions:this.returnDependencies?t.positions:null});}}w.length?this.inFlightDependencies.push(n.send(\"getImages\",{icons:w,source:this.source,tileID:this.tileID,type:\"patterns\"},((e,t)=>{v===this.dependencySentinel&&(d||(d=e,m=t,S.call(this)));}))):m={},S.call(this);}}function o(t,i,r){const o=new e.EvaluationParameters(i);for(const e of t)e.recalculate(o,r);}function s(t,i){const r=e.getArrayBuffer(t.request,((r,o,s,n)=>{if(r)i(r);else if(o)try{const t=new e.vectorTile.VectorTile(new e.Protobuf(o));i(null,{vectorTile:t,rawData:o,cacheControl:s,expires:n});}catch(e){const r=new Uint8Array(o);let s=`Unable to parse the tile at ${t.request.url}, `;s+=31===r[0]&&139===r[1]?\"please make sure the data is not gzipped and that you have configured the relevant header in the server\":`got error: ${e.messge}`,i(new Error(s));}}));return ()=>{r.cancel(),i();}}class n{constructor(e,t,i,r){this.actor=e,this.layerIndex=t,this.availableImages=i,this.loadVectorData=r||s,this.fetching={},this.loading={},this.loaded={};}loadTile(t,i){const o=t.uid;this.loading||(this.loading={});const s=!!(t&&t.request&&t.request.collectResourceTiming)&&new e.RequestPerformance(t.request),n=this.loading[o]=new r(t);n.abort=this.loadVectorData(t,((t,r)=>{if(delete this.loading[o],t||!r)return n.status=\"done\",this.loaded[o]=n,i(t);const a=r.rawData,l={};r.expires&&(l.expires=r.expires),r.cacheControl&&(l.cacheControl=r.cacheControl);const c={};if(s){const e=s.finish();e&&(c.resourceTiming=JSON.parse(JSON.stringify(e)));}n.vectorTile=r.vectorTile,n.parse(r.vectorTile,this.layerIndex,this.availableImages,this.actor,((t,r)=>{if(delete this.fetching[o],t||!r)return i(t);i(null,e.extend({rawTileData:a.slice(0)},r,l,c));})),this.loaded=this.loaded||{},this.loaded[o]=n,this.fetching[o]={rawTileData:a,cacheControl:l,resourceTiming:c};}));}reloadTile(t,i){const r=this.loaded,o=t.uid;if(r&&r[o]){const s=r[o];s.showCollisionBoxes=t.showCollisionBoxes,\"parsing\"===s.status?s.parse(s.vectorTile,this.layerIndex,this.availableImages,this.actor,((t,r)=>{if(t||!r)return i(t,r);let s;if(this.fetching[o]){const{rawTileData:t,cacheControl:i,resourceTiming:n}=this.fetching[o];delete this.fetching[o],s=e.extend({rawTileData:t.slice(0)},r,i,n);}else s=r;i(null,s);})):\"done\"===s.status&&(s.vectorTile?s.parse(s.vectorTile,this.layerIndex,this.availableImages,this.actor,i):i());}}abortTile(e,t){const i=this.loading,r=e.uid;i&&i[r]&&i[r].abort&&(i[r].abort(),delete i[r]),t();}removeTile(e,t){const i=this.loaded,r=e.uid;i&&i[r]&&delete i[r],t();}}class a{constructor(){this.loaded={};}loadTile(t,i){return e.__awaiter(this,void 0,void 0,(function*(){const{uid:r,encoding:o,rawImageData:s,redFactor:n,greenFactor:a,blueFactor:l,baseShift:c}=t,u=s.width+2,h=s.height+2,p=e.isImageBitmap(s)?new e.RGBAImage({width:u,height:h},yield e.getImageData(s,-1,-1,u,h)):s,d=new e.DEMData(r,p,o,n,a,l,c);this.loaded=this.loaded||{},this.loaded[r]=d,i(null,d);}))}removeTile(e){const t=this.loaded,i=e.uid;t&&t[i]&&delete t[i];}}function l(e,t){if(0!==e.length){c(e[0],t);for(var i=1;i=Math.abs(a)?i-l+a:a-l+i,i=l;}i+r>=0!=!!t&&e.reverse();}var u=e.getDefaultExportFromCjs((function e(t,i){var r,o=t&&t.type;if(\"FeatureCollection\"===o)for(r=0;r>31}function T(e,t){for(var i=e.loadGeometry(),r=e.type,o=0,s=0,n=i.length,a=0;ae},O=Math.fround||(C=new Float32Array(1),e=>(C[0]=+e,C[0]));var C;const L=3,F=5,E=6;class z{constructor(e){this.options=Object.assign(Object.create(D),e),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[];}load(e){const{log:t,minZoom:i,maxZoom:r}=this.options;t&&console.time(\"total time\");const o=`prepare ${e.length} points`;t&&console.time(o),this.points=e;const s=[];for(let t=0;t=i;e--){const i=+Date.now();n=this.trees[e]=this._createTree(this._cluster(n,e)),t&&console.log(\"z%d: %d clusters in %dms\",e,n.numItems,+Date.now()-i);}return t&&console.timeEnd(\"total time\"),this}getClusters(e,t){let i=((e[0]+180)%360+360)%360-180;const r=Math.max(-90,Math.min(90,e[1]));let o=180===e[2]?180:((e[2]+180)%360+360)%360-180;const s=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)i=-180,o=180;else if(i>o){const e=this.getClusters([i,r,180,s],t),n=this.getClusters([-180,r,o,s],t);return e.concat(n)}const n=this.trees[this._limitZoom(t)],a=n.range(B(i),A(s),B(o),A(r)),l=n.data,c=[];for(const e of a){const t=this.stride*e;c.push(l[t+F]>1?j(l,t,this.clusterProps):this.points[l[t+L]]);}return c}getChildren(e){const t=this._getOriginId(e),i=this._getOriginZoom(e),r=\"No cluster with the specified id.\",o=this.trees[i];if(!o)throw new Error(r);const s=o.data;if(t*this.stride>=s.length)throw new Error(r);const n=this.options.radius/(this.options.extent*Math.pow(2,i-1)),a=o.within(s[t*this.stride],s[t*this.stride+1],n),l=[];for(const t of a){const i=t*this.stride;s[i+4]===e&&l.push(s[i+F]>1?j(s,i,this.clusterProps):this.points[s[i+L]]);}if(0===l.length)throw new Error(r);return l}getLeaves(e,t,i){const r=[];return this._appendLeaves(r,e,t=t||10,i=i||0,0),r}getTile(e,t,i){const r=this.trees[this._limitZoom(e)],o=Math.pow(2,e),{extent:s,radius:n}=this.options,a=n/s,l=(i-a)/o,c=(i+1+a)/o,u={features:[]};return this._addTileFeatures(r.range((t-a)/o,l,(t+1+a)/o,c),r.data,t,i,o,u),0===t&&this._addTileFeatures(r.range(1-a/o,l,1,c),r.data,o,i,o,u),t===o-1&&this._addTileFeatures(r.range(0,l,a/o,c),r.data,-1,i,o,u),u.features.length?u:null}getClusterExpansionZoom(e){let t=this._getOriginZoom(e)-1;for(;t<=this.options.maxZoom;){const i=this.getChildren(e);if(t++,1!==i.length)break;e=i[0].properties.cluster_id;}return t}_appendLeaves(e,t,i,r,o){const s=this.getChildren(t);for(const t of s){const s=t.properties;if(s&&s.cluster?o+s.point_count<=r?o+=s.point_count:o=this._appendLeaves(e,s.cluster_id,i,r,o):o1;let l,c,u;if(a)l=N(t,e,this.clusterProps),c=t[e],u=t[e+1];else {const i=this.points[t[e+L]];l=i.properties;const[r,o]=i.geometry.coordinates;c=B(r),u=A(o);}const h={type:1,geometry:[[Math.round(this.options.extent*(c*o-i)),Math.round(this.options.extent*(u*o-r))]],tags:l};let p;p=a||this.options.generateId?t[e+L]:this.points[t[e+L]].id,void 0!==p&&(h.id=p),s.features.push(h);}}_limitZoom(e){return Math.max(this.options.minZoom,Math.min(Math.floor(+e),this.options.maxZoom+1))}_cluster(e,t){const{radius:i,extent:r,reduce:o,minPoints:s}=this.options,n=i/(r*Math.pow(2,t)),a=e.data,l=[],c=this.stride;for(let i=0;it&&(d+=a[i+F]);}if(d>p&&d>=s){let e,s=r*p,n=u*p,f=-1;const g=((i/c|0)<<5)+(t+1)+this.points.length;for(const r of h){const l=r*c;if(a[l+2]<=t)continue;a[l+2]=t;const u=a[l+F];s+=a[l]*u,n+=a[l+1]*u,a[l+4]=g,o&&(e||(e=this._map(a,i,!0),f=this.clusterProps.length,this.clusterProps.push(e)),o(e,this._map(a,l)));}a[i+4]=g,l.push(s/d,n/d,1/0,g,-1,d),o&&l.push(f);}else {for(let e=0;e1)for(const e of h){const i=e*c;if(!(a[i+2]<=t)){a[i+2]=t;for(let e=0;e>5}_getOriginZoom(e){return (e-this.points.length)%32}_map(e,t,i){if(e[t+F]>1){const r=this.clusterProps[e[t+E]];return i?Object.assign({},r):r}const r=this.points[e[t+L]].properties,o=this.options.map(r);return i&&o===r?Object.assign({},o):o}}function j(e,t,i){return {type:\"Feature\",id:e[t+L],properties:N(e,t,i),geometry:{type:\"Point\",coordinates:[(r=e[t],360*(r-.5)),Z(e[t+1])]}};var r;}function N(e,t,i){const r=e[t+F],o=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?Math.round(r/100)/10+\"k\":r,s=e[t+E],n=-1===s?{}:Object.assign({},i[s]);return Object.assign(n,{cluster:!0,cluster_id:e[t+L],point_count:r,point_count_abbreviated:o})}function B(e){return e/360+.5}function A(e){const t=Math.sin(e*Math.PI/180),i=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return i<0?0:i>1?1:i}function Z(e){const t=(180-360*e)*Math.PI/180;return 360*Math.atan(Math.exp(t))/Math.PI-90}function G(e,t,i,r){for(var o,s=r,n=i-t>>1,a=i-t,l=e[t],c=e[t+1],u=e[i],h=e[i+1],p=t+3;ps)o=p,s=d;else if(d===s){var f=Math.abs(p-n);fr&&(o-t>3&&G(e,t,o,r),e[o+2]=s,i-o>3&&G(e,o,i,r));}function J(e,t,i,r,o,s){var n=o-i,a=s-r;if(0!==n||0!==a){var l=((e-i)*n+(t-r)*a)/(n*n+a*a);l>1?(i=o,r=s):l>0&&(i+=n*l,r+=a*l);}return (n=e-i)*n+(a=t-r)*a}function Y(e,t,i,r){var o={id:void 0===e?null:e,type:t,geometry:i,tags:r,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(e){var t=e.geometry,i=e.type;if(\"Point\"===i||\"MultiPoint\"===i||\"LineString\"===i)V(e,t);else if(\"Polygon\"===i||\"MultiLineString\"===i)for(var r=0;r0&&(n+=r?(o*c-l*s)/2:Math.sqrt(Math.pow(l-o,2)+Math.pow(c-s,2))),o=l,s=c;}var u=t.length-3;t[2]=1,G(t,0,u,i),t[u+2]=1,t.size=Math.abs(n),t.start=0,t.end=t.size;}function q(e,t,i,r){for(var o=0;o1?1:i}function K(e,t,i,r,o,s,n,a){if(r/=t,s>=(i/=t)&&n=r)return null;for(var l=[],c=0;c=i&&f=r)){var g=[];if(\"Point\"===p||\"MultiPoint\"===p)H(h,g,i,r,o);else if(\"LineString\"===p)Q(h,g,i,r,o,!1,a.lineMetrics);else if(\"MultiLineString\"===p)te(h,g,i,r,o,!1);else if(\"Polygon\"===p)te(h,g,i,r,o,!0);else if(\"MultiPolygon\"===p)for(var m=0;m=i&&n<=r&&(t.push(e[s]),t.push(e[s+1]),t.push(e[s+2]));}}function Q(e,t,i,r,o,s,n){for(var a,l,c=ee(e),u=0===o?re:oe,h=e.start,p=0;pi&&(l=u(c,d,f,m,y,i),n&&(c.start=h+a*l)):v>r?x=i&&(l=u(c,d,f,m,y,i),w=!0),x>r&&v<=r&&(l=u(c,d,f,m,y,r),w=!0),!s&&w&&(n&&(c.end=h+a*l),t.push(c),c=ee(e)),n&&(h+=a);}var S=e.length-3;d=e[S],f=e[S+1],g=e[S+2],(v=0===o?d:f)>=i&&v<=r&&ie(c,d,f,g),S=c.length-3,s&&S>=3&&(c[S]!==c[0]||c[S+1]!==c[1])&&ie(c,c[0],c[1],c[2]),c.length&&t.push(c);}function ee(e){var t=[];return t.size=e.size,t.start=e.start,t.end=e.end,t}function te(e,t,i,r,o,s){for(var n=0;nn.maxX&&(n.maxX=u),h>n.maxY&&(n.maxY=h);}return n}function ue(e,t,i,r){var o=t.geometry,s=t.type,n=[];if(\"Point\"===s||\"MultiPoint\"===s)for(var a=0;a0&&t.size<(o?n:r))i.numPoints+=t.length/3;else {for(var a=[],l=0;ln)&&(i.numSimplified++,a.push(t[l]),a.push(t[l+1])),i.numPoints++;o&&function(e,t){for(var i=0,r=0,o=e.length,s=o-2;r0===t)for(r=0,o=e.length;r24)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 r=function(e,t){var i=[];if(\"FeatureCollection\"===e.type)for(var r=0;r1&&console.time(\"creation\"),p=this.tiles[h]=ce(e,t,i,r,l),this.tileCoords.push({z:t,x:i,y:r}),c)){c>1&&(console.log(\"tile z%d-%d-%d (features: %d, points: %d, simplified: %d)\",t,i,r,p.numFeatures,p.numPoints,p.numSimplified),console.timeEnd(\"creation\"));var d=\"z\"+t;this.stats[d]=(this.stats[d]||0)+1,this.total++;}if(p.source=e,o){if(t===l.maxZoom||t===o)continue;var f=1<1&&console.time(\"clipping\");var g,m,y,v,x,w,S=.5*l.buffer/l.extent,b=.5-S,M=.5+S,I=1+S;g=m=y=v=null,x=K(e,u,i-S,i+M,0,p.minX,p.maxX,l),w=K(e,u,i+b,i+I,0,p.minX,p.maxX,l),e=null,x&&(g=K(x,u,r-S,r+M,1,p.minY,p.maxY,l),m=K(x,u,r+b,r+I,1,p.minY,p.maxY,l),x=null),w&&(y=K(w,u,r-S,r+M,1,p.minY,p.maxY,l),v=K(w,u,r+b,r+I,1,p.minY,p.maxY,l),w=null),c>1&&console.timeEnd(\"clipping\"),a.push(g||[],t+1,2*i,2*r),a.push(m||[],t+1,2*i,2*r+1),a.push(y||[],t+1,2*i+1,2*r),a.push(v||[],t+1,2*i+1,2*r+1);}}},pe.prototype.getTile=function(e,t,i){var r=this.options,o=r.extent,s=r.debug;if(e<0||e>24)return null;var n=1<1&&console.log(\"drilling down to z%d-%d-%d\",e,t,i);for(var l,c=e,u=t,h=i;!l&&c>0;)c--,u=Math.floor(u/2),h=Math.floor(h/2),l=this.tiles[de(c,u,h)];return l&&l.source?(s>1&&console.log(\"found parent tile z%d-%d-%d\",c,u,h),s>1&&console.time(\"drilling down\"),this.splitTile(l.source,c,u,h,e,t,i),s>1&&console.timeEnd(\"drilling down\"),this.tiles[a]?ae(this.tiles[a],o):null):null};class ve extends n{constructor(t,i,r,o){super(t,i,r,ye),this._dataUpdateable=new Map,this.loadGeoJSON=(t,i)=>{const{promoteId:r}=t;if(t.request)return e.getJSON(t.request,((e,t,o,s)=>{this._dataUpdateable=ge(t,r)?me(t,r):void 0,i(e,t,o,s);}));if(\"string\"==typeof t.data)try{const e=JSON.parse(t.data);this._dataUpdateable=ge(e,r)?me(e,r):void 0,i(null,e);}catch(e){i(new Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`));}else t.dataDiff?this._dataUpdateable?(function(e,t,i){var r,o,s,n;if(t.removeAll&&e.clear(),t.remove)for(const i of t.remove)e.delete(i);if(t.add)for(const r of t.add){const t=fe(r,i);null!=t&&e.set(t,r);}if(t.update)for(const i of t.update){let t=e.get(i.id);if(null==t)continue;const a=!i.removeAllProperties&&((null===(r=i.removeProperties)||void 0===r?void 0:r.length)>0||(null===(o=i.addOrUpdateProperties)||void 0===o?void 0:o.length)>0);if((i.newGeometry||i.removeAllProperties||a)&&(t=Object.assign({},t),e.set(i.id,t),a&&(t.properties=Object.assign({},t.properties))),i.newGeometry&&(t.geometry=i.newGeometry),i.removeAllProperties)t.properties={};else if((null===(s=i.removeProperties)||void 0===s?void 0:s.length)>0)for(const e of i.removeProperties)Object.prototype.hasOwnProperty.call(t.properties,e)&&delete t.properties[e];if((null===(n=i.addOrUpdateProperties)||void 0===n?void 0:n.length)>0)for(const{key:e,value:r}of i.addOrUpdateProperties)t.properties[e]=r;}}(this._dataUpdateable,t.dataDiff,r),i(null,{type:\"FeatureCollection\",features:Array.from(this._dataUpdateable.values())})):i(new Error(`Cannot update existing geojson data in ${t.source}`)):i(new Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`));return {cancel:()=>{}}},o&&(this.loadGeoJSON=o);}loadData(t,i){var r;null===(r=this._pendingRequest)||void 0===r||r.cancel(),this._pendingCallback&&this._pendingCallback(null,{abandoned:!0});const o=!!(t&&t.request&&t.request.collectResourceTiming)&&new e.RequestPerformance(t.request);this._pendingCallback=i,this._pendingRequest=this.loadGeoJSON(t,((r,s)=>{if(delete this._pendingCallback,delete this._pendingRequest,r||!s)return i(r);if(\"object\"!=typeof s)return i(new Error(`Input data given to '${t.source}' is not a valid GeoJSON object.`));{u(s,!0);try{if(t.filter){const i=e.createExpression(t.filter,{type:\"boolean\",\"property-type\":\"data-driven\",overridable:!1,transition:!1});if(\"error\"===i.result)throw new Error(i.value.map((e=>`${e.key}: ${e.message}`)).join(\", \"));const r=s.features.filter((e=>i.value.evaluate({zoom:0},e)));s={type:\"FeatureCollection\",features:r};}this._geoJSONIndex=t.cluster?new z(function({superclusterOptions:t,clusterProperties:i}){if(!i||!t)return t;const r={},o={},s={accumulated:null,zoom:0},n={properties:null},a=Object.keys(i);for(const t of a){const[s,n]=i[t],a=e.createExpression(n),l=e.createExpression(\"string\"==typeof s?[s,[\"accumulated\"],[\"get\",t]]:s);r[t]=a.value,o[t]=l.value;}return t.map=e=>{n.properties=e;const t={};for(const e of a)t[e]=r[e].evaluate(s,n);return t},t.reduce=(e,t)=>{n.properties=t;for(const t of a)s.accumulated=e[t],e[t]=o[t].evaluate(s,n);},t}(t)).load(s.features):function(e,t){return new pe(e,t)}(s,t.geojsonVtOptions);}catch(r){return i(r)}this.loaded={};const n={};if(o){const e=o.finish();e&&(n.resourceTiming={},n.resourceTiming[t.source]=JSON.parse(JSON.stringify(e)));}i(null,n);}}));}reloadTile(e,t){const i=this.loaded;return i&&i[e.uid]?super.reloadTile(e,t):this.loadTile(e,t)}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 xe{constructor(t){this.self=t,this.actor=new e.Actor(t,this),this.layerIndexes={},this.availableImages={},this.workerSourceTypes={vector:n,geojson:ve},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,i){this.availableImages[e]=t;for(const i in this.workerSources[e]){const r=this.workerSources[e][i];for(const e in r)r[e].availableImages=t;}i();}setLayers(e,t,i){this.getLayerIndex(e).replace(t),i();}updateLayers(e,t,i){this.getLayerIndex(e).update(t.layers,t.removedIds),i();}loadTile(e,t,i){this.getWorkerSource(e,t.type,t.source).loadTile(t,i);}loadDEMTile(e,t,i){this.getDEMWorkerSource(e,t.source).loadTile(t,i);}reloadTile(e,t,i){this.getWorkerSource(e,t.type,t.source).reloadTile(t,i);}abortTile(e,t,i){this.getWorkerSource(e,t.type,t.source).abortTile(t,i);}removeTile(e,t,i){this.getWorkerSource(e,t.type,t.source).removeTile(t,i);}removeDEMTile(e,t){this.getDEMWorkerSource(e,t.source).removeTile(t);}removeSource(e,t,i){if(!this.workerSources[e]||!this.workerSources[e][t.type]||!this.workerSources[e][t.type][t.source])return;const r=this.workerSources[e][t.type][t.source];delete this.workerSources[e][t.type][t.source],void 0!==r.removeSource?r.removeSource(t,i):i();}loadWorkerSource(e,t,i){try{this.self.importScripts(t.url),i();}catch(e){i(e.toString());}}syncRTLPluginState(t,i,r){try{e.plugin.setState(i);const t=e.plugin.getPluginURL();if(e.plugin.isLoaded()&&!e.plugin.isParsed()&&null!=t){this.self.importScripts(t);const i=e.plugin.isParsed();r(i?void 0:new Error(`RTL Text Plugin failed to import scripts from ${t}`),i);}}catch(e){r(e.toString());}}getAvailableImages(e){let t=this.availableImages[e];return t||(t=[]),t}getLayerIndex(e){let i=this.layerIndexes[e];return i||(i=this.layerIndexes[e]=new t),i}getWorkerSource(e,t,i){if(this.workerSources[e]||(this.workerSources[e]={}),this.workerSources[e][t]||(this.workerSources[e][t]={}),!this.workerSources[e][t][i]){const r={send:(t,i,r)=>{this.actor.send(t,i,r,e);}};this.workerSources[e][t][i]=new this.workerSourceTypes[t](r,this.getLayerIndex(e),this.getAvailableImages(e));}return this.workerSources[e][t][i]}getDEMWorkerSource(e,t){return this.demWorkerSources[e]||(this.demWorkerSources[e]={}),this.demWorkerSources[e][t]||(this.demWorkerSources[e][t]=new a),this.demWorkerSources[e][t]}}return e.isWorker()&&(self.worker=new xe(self)),xe}));\n\ndefine([\"./shared\"],(function(t){\"use strict\";var e=\"3.5.1\";class i{static testProp(t){if(!i.docStyle)return t[0];for(let e=0;e{window.removeEventListener(\"click\",i.suppressClickInternal,!0);}),0);}static mousePos(e,i){const s=e.getBoundingClientRect();return new t.Point(i.clientX-s.left-e.clientLeft,i.clientY-s.top-e.clientTop)}static touchPos(e,i){const s=e.getBoundingClientRect(),a=[];for(let o=0;o{i=[],a=0,o=0,r={};},e.addThrottleControl=t=>{const e=o++;return r[e]=t,e},e.removeThrottleControl=t=>{delete r[t],c();},e.getImage=(t,e,o=!0)=>{s.supported&&(t.headers||(t.headers={}),t.headers.accept=\"image/webp,*/*\");const r={requestParameters:t,supportImageRefresh:o,callback:e,cancelled:!1,completed:!1,cancel:()=>{r.completed||r.cancelled||(r.cancelled=!0,r.innerRequest&&(r.innerRequest.cancel(),a--),c());}};return i.push(r),c(),r};const n=e=>{const{requestParameters:i,supportImageRefresh:s,callback:a}=e;return t.extend(i,{type:\"image\"}),(!1!==s||t.isWorker()||t.getProtocolAction(i.url)||i.headers&&!Object.keys(i.headers).reduce(((t,e)=>t&&\"accept\"===e),!0)?t.makeRequest:h)(i,((t,i,s,o)=>{l(e,a,t,i,s,o);}))},l=(e,i,s,o,r,n)=>{s?i(s):o instanceof HTMLImageElement||t.isImageBitmap(o)?i(null,o):o&&((e,i)=>{\"function\"==typeof createImageBitmap?t.arrayBufferToImageBitmap(e,i):t.arrayBufferToImage(e,i);})(o,((t,e)=>{null!=t?i(t):null!=e&&i(null,e,{cacheControl:r,expires:n});})),e.cancelled||(e.completed=!0,a--,c());},c=()=>{const e=(()=>{const t=Object.keys(r);let e=!1;if(t.length>0)for(const i of t)if(e=r[i](),e)break;return e})()?t.config.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:t.config.MAX_PARALLEL_IMAGE_REQUESTS;for(let t=a;t0;t++){const e=i.shift();if(e.cancelled){t--;continue}const s=n(e);a++,e.innerRequest=s;}},h=(e,i)=>{const s=new Image,a=e.url;let o=!1;const r=e.credentials;return r&&\"include\"===r?s.crossOrigin=\"use-credentials\":(r&&\"same-origin\"===r||!t.sameOrigin(a))&&(s.crossOrigin=\"anonymous\"),s.fetchPriority=\"high\",s.onload=()=>{i(null,s),s.onerror=s.onload=null;},s.onerror=()=>{o||i(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.\")),s.onerror=s.onload=null;},s.src=a,{cancel:()=>{o=!0,s.src=\"\";}}};}(c||(c={})),c.resetRequestQueue(),function(t){t.Glyphs=\"Glyphs\",t.Image=\"Image\",t.Source=\"Source\",t.SpriteImage=\"SpriteImage\",t.SpriteJSON=\"SpriteJSON\",t.Style=\"Style\",t.Tile=\"Tile\",t.Unknown=\"Unknown\";}(h||(h={}));class u{constructor(t){this._transformRequestFn=t;}transformRequest(t,e){return this._transformRequestFn&&this._transformRequestFn(t,e)||{url:t}}normalizeSpriteURL(t,e,i){const s=function(t){const e=t.match(d);if(!e)throw new Error(`Unable to parse URL \"${t}\"`);return {protocol:e[1],authority:e[2],path:e[3]||\"/\",params:e[4]?e[4].split(\"&\"):[]}}(t);return s.path+=`${e}${i}`,function(t){const e=t.params.length?`?${t.params.join(\"&\")}`:\"\";return `${t.protocol}://${t.authority}${t.path}${e}`}(s)}setTransformRequest(t){this._transformRequestFn=t;}}const d=/^(\\w+):\\/\\/([^/?]*)(\\/[^?]+)?\\??(.+)?/;function _(e){var i=new t.ARRAY_TYPE(3);return i[0]=e[0],i[1]=e[1],i[2]=e[2],i}var m,p=function(t,e,i){return t[0]=e[0]-i[0],t[1]=e[1]-i[1],t[2]=e[2]-i[2],t};m=new t.ARRAY_TYPE(3),t.ARRAY_TYPE!=Float32Array&&(m[0]=0,m[1]=0,m[2]=0);var f=function(t){var e=t[0],i=t[1];return e*e+i*i};function g(t){const e=[];if(\"string\"==typeof t)e.push({id:\"default\",url:t});else if(t&&t.length>0){const i=[];for(const{id:s,url:a}of t){const t=`${s}${a}`;-1===i.indexOf(t)&&(i.push(t),e.push({id:s,url:a}));}}return e}function v(e,i,s,a,o){if(a)return void e(a);if(o!==Object.values(i).length||o!==Object.values(s).length)return;const r={};for(const e in i){r[e]={};const a=t.browser.getImageCanvasContext(s[e]),o=i[e];for(const t in o){const{width:i,height:s,x:n,y:l,sdf:c,pixelRatio:h,stretchX:u,stretchY:d,content:_}=o[t];r[e][t]={data:null,pixelRatio:h,sdf:c,stretchX:u,stretchY:d,content:_,spriteData:{width:i,height:s,x:n,y:l,context:a}};}}e(null,r);}!function(){var e=new t.ARRAY_TYPE(2);t.ARRAY_TYPE!=Float32Array&&(e[0]=0,e[1]=0);}();class x{constructor(t,e,i,s){this.context=t,this.format=i,this.texture=t.gl.createTexture(),this.update(e,s);}update(e,i,s){const{width:a,height:o}=e,r=!(this.size&&this.size[0]===a&&this.size[1]===o||s),{context:n}=this,{gl:l}=n;if(this.useMipmap=Boolean(i&&i.useMipmap),l.bindTexture(l.TEXTURE_2D,this.texture),n.pixelStoreUnpackFlipY.set(!1),n.pixelStoreUnpack.set(1),n.pixelStoreUnpackPremultiplyAlpha.set(this.format===l.RGBA&&(!i||!1!==i.premultiply)),r)this.size=[a,o],e instanceof HTMLImageElement||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement||e instanceof ImageData||t.isImageBitmap(e)?l.texImage2D(l.TEXTURE_2D,0,this.format,this.format,l.UNSIGNED_BYTE,e):l.texImage2D(l.TEXTURE_2D,0,this.format,a,o,0,this.format,l.UNSIGNED_BYTE,e.data);else {const{x:i,y:r}=s||{x:0,y:0};e instanceof HTMLImageElement||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement||e instanceof ImageData||t.isImageBitmap(e)?l.texSubImage2D(l.TEXTURE_2D,0,i,r,l.RGBA,l.UNSIGNED_BYTE,e):l.texSubImage2D(l.TEXTURE_2D,0,i,r,a,o,l.RGBA,l.UNSIGNED_BYTE,e.data);}this.useMipmap&&this.isSizePowerOfTwo()&&l.generateMipmap(l.TEXTURE_2D);}bind(t,e,i){const{context:s}=this,{gl:a}=s;a.bindTexture(a.TEXTURE_2D,this.texture),i!==a.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(i=a.LINEAR),t!==this.filter&&(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,t),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,i||t),this.filter=t),e!==this.wrap&&(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,e),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,e),this.wrap=e);}isSizePowerOfTwo(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0}destroy(){const{gl:t}=this.context;t.deleteTexture(this.texture),this.texture=null;}}function y(t){const{userImage:e}=t;return !!(e&&e.render&&e.render())&&(t.data.replace(new Uint8Array(e.data.buffer)),!0)}class b extends t.Evented{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new t.RGBAImage({width:1,height:1}),this.dirty=!0;}isLoaded(){return this.loaded}setLoaded(t){if(this.loaded!==t&&(this.loaded=t,t)){for(const{ids:t,callback:e}of this.requestors)this._notify(t,e);this.requestors=[];}}getImage(e){const i=this.images[e];if(i&&!i.data&&i.spriteData){const e=i.spriteData;i.data=new t.RGBAImage({width:e.width,height:e.height},e.context.getImageData(e.x,e.y,e.width,e.height).data),i.spriteData=null;}return i}addImage(t,e){if(this.images[t])throw new Error(`Image id ${t} already exist, use updateImage instead`);this._validate(t,e)&&(this.images[t]=e);}_validate(e,i){let s=!0;const a=i.data||i.spriteData;return this._validateStretch(i.stretchX,a&&a.width)||(this.fire(new t.ErrorEvent(new Error(`Image \"${e}\" has invalid \"stretchX\" value`))),s=!1),this._validateStretch(i.stretchY,a&&a.height)||(this.fire(new t.ErrorEvent(new Error(`Image \"${e}\" has invalid \"stretchY\" value`))),s=!1),this._validateContent(i.content,i)||(this.fire(new t.ErrorEvent(new Error(`Image \"${e}\" has invalid \"content\" value`))),s=!1),s}_validateStretch(t,e){if(!t)return !0;let i=0;for(const s of t){if(s[0]-1);l++,o[l]=n,r[l]=c,r[l+1]=w;}for(let n=0,l=0;n{let s=this.entries[t];s||(s=this.entries[t]={glyphs:{},requests:{},ranges:{}});let a=s.glyphs[e];if(void 0!==a)return void i(null,{stack:t,id:e,glyph:a});if(a=this._tinySDF(s,t,e),a)return s.glyphs[e]=a,void i(null,{stack:t,id:e,glyph:a});const o=Math.floor(e/256);if(256*o>65535)return void i(new Error(\"glyphs > 65535 not supported\"));if(s.ranges[o])return void i(null,{stack:t,id:e,glyph:a});if(!this.url)return void i(new Error(\"glyphsUrl is not set\"));let r=s.requests[o];r||(r=s.requests[o]=[],I.loadGlyphRange(t,o,this.url,this.requestManager,((t,e)=>{if(e){for(const t in e)this._doesCharSupportLocalGlyph(+t)||(s.glyphs[+t]=e[+t]);s.ranges[o]=!0;}for(const i of r)i(t,e);delete s.requests[o];}))),r.push(((s,a)=>{s?i(s):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:s,glyph:a}of e)(t[i]||(t[i]={}))[s]=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,s){const a=this.localIdeographFontFamily;if(!a)return;if(!this._doesCharSupportLocalGlyph(s))return;let o=e.tinySDF;if(!o){let t=\"400\";/bold/i.test(i)?t=\"900\":/medium/i.test(i)?t=\"500\":/light/i.test(i)&&(t=\"200\"),o=e.tinySDF=new I.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:a,fontWeight:t});}const r=o.draw(String.fromCharCode(s));return {id:s,bitmap:new t.AlphaImage({width:r.width||60,height:r.height||60},r.data),metrics:{width:r.glyphWidth/2||24,height:r.glyphHeight/2||24,left:r.glyphLeft/2+.5||0,top:r.glyphTop/2-27.5||-8,advance:r.glyphAdvance/2||24,isDoubleResolution:!0}}}}I.loadGlyphRange=function(e,i,s,a,o){const r=256*i,n=r+255,l=a.transformRequest(s.replace(\"{fontstack}\",e).replace(\"{range}\",`${r}-${n}`),h.Glyphs);t.getArrayBuffer(l,((e,i)=>{if(e)o(e);else if(i){const e={};for(const s of t.parseGlyphPbf(i))e[s.id]=s;o(null,e);}}));},I.TinySDF=class{constructor({fontSize:t=24,buffer:e=3,radius:i=8,cutoff:s=.25,fontFamily:a=\"sans-serif\",fontWeight:o=\"normal\",fontStyle:r=\"normal\"}={}){this.buffer=e,this.cutoff=s,this.radius=i;const n=this.size=t+4*e,l=this._createCanvas(n),c=this.ctx=l.getContext(\"2d\",{willReadFrequently:!0});c.font=`${r} ${o} ${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:s,actualBoundingBoxLeft:a,actualBoundingBoxRight:o}=this.ctx.measureText(t),r=Math.ceil(i),n=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(o-a))),l=Math.min(this.size-this.buffer,r+Math.ceil(s)),c=n+2*this.buffer,h=l+2*this.buffer,u=Math.max(c*h,0),d=new Uint8ClampedArray(u),_={data:d,width:c,height:h,glyphWidth:n,glyphHeight:l,glyphTop:r,glyphLeft:0,glyphAdvance:e};if(0===n||0===l)return _;const{ctx:m,buffer:p,gridInner:f,gridOuter:g}=this;m.clearRect(p,p,n,l),m.fillText(t,p,p+r);const v=m.getImageData(p,p,n,l);g.fill(w,0,u),f.fill(0,0,u);for(let t=0;t0?t*t:0,f[s]=t<0?t*t:0;}}T(g,0,0,c,h,c,this.f,this.v,this.z),T(f,p,p,n,l,c,this.f,this.v,this.z);for(let t=0;t1&&(r=t[++o]);const l=Math.abs(n-r.left),c=Math.abs(n-r.right),h=Math.min(l,c);let u;const d=e/i*(s+1);if(r.isDash){const t=s-Math.abs(d);u=Math.sqrt(h*h+t*t);}else u=s-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],s=t[e+1];i.zeroLength?t.splice(e,1):s&&s.isDash===i.isDash&&(s.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 s=this.width*this.nextRow;let a=0,o=t[a];for(let e=0;e1&&(o=t[++a]);const i=Math.abs(e-o.left),r=Math.abs(e-o.right),n=Math.min(i,r);this.data[s+e]=Math.max(0,Math.min(255,(o.isDash?n:-n)+128));}}addDash(e,i){const s=i?7:0,a=2*s+1;if(this.nextRow+a>this.height)return t.warnOnce(\"LineAtlas out of space\"),null;let o=0;for(let t=0;t{t.send(e,i,s);}),s=s||function(){});}getActor(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]}remove(t=!0){this.actors.forEach((t=>{t.remove();})),this.actors=[],t&&this.workerPool.release(this.id);}}function z(e,i,s){const a=function(i,a){if(i)return s(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))),s(null,i);}};return e.url?t.getJSON(i.transformRequest(e.url,h.Source),a):t.browser.frame((()=>a(null,e)))}M.Actor=t.Actor;class A{constructor(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):Array.isArray(t)&&(4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1])));}setNorthEast(e){return this._ne=e instanceof t.LngLat?new t.LngLat(e.lng,e.lat):t.LngLat.convert(e),this}setSouthWest(e){return this._sw=e instanceof t.LngLat?new t.LngLat(e.lng,e.lat):t.LngLat.convert(e),this}extend(e){const i=this._sw,s=this._ne;let a,o;if(e instanceof t.LngLat)a=e,o=e;else {if(!(e instanceof A))return Array.isArray(e)?4===e.length||e.every(Array.isArray)?this.extend(A.convert(e)):this.extend(t.LngLat.convert(e)):e&&(\"lng\"in e||\"lon\"in e)&&\"lat\"in e?this.extend(t.LngLat.convert(e)):this;if(a=e._sw,o=e._ne,!a||!o)return this}return i||s?(i.lng=Math.min(a.lng,i.lng),i.lat=Math.min(a.lat,i.lat),s.lng=Math.max(o.lng,s.lng),s.lat=Math.max(o.lat,s.lat)):(this._sw=new t.LngLat(a.lng,a.lat),this._ne=new t.LngLat(o.lng,o.lat)),this}getCenter(){return new t.LngLat((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 t.LngLat(this.getWest(),this.getNorth())}getSouthEast(){return new t.LngLat(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(e){const{lng:i,lat:s}=t.LngLat.convert(e);let a=this._sw.lng<=i&&i<=this._ne.lng;return this._sw.lng>this._ne.lng&&(a=this._sw.lng>=i&&i>=this._ne.lng),this._sw.lat<=s&&s<=this._ne.lat&&a}static convert(t){return t instanceof A?t:t?new A(t):t}static fromLngLat(e,i=0){const s=360*i/40075017,a=s/Math.cos(Math.PI/180*e.lat);return new A(new t.LngLat(e.lng-a,e.lat-s),new t.LngLat(e.lng+a,e.lat+s))}}class L{constructor(t,e,i){this.bounds=A.convert(this.validateBounds(t)),this.minzoom=e||0,this.maxzoom=i||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),s=Math.floor(t.mercatorXfromLng(this.bounds.getWest())*i),a=Math.floor(t.mercatorYfromLat(this.bounds.getNorth())*i),o=Math.ceil(t.mercatorXfromLng(this.bounds.getEast())*i),r=Math.ceil(t.mercatorYfromLat(this.bounds.getSouth())*i);return e.x>=s&&e.x=a&&e.y{this._loaded=!1,this.fire(new t.Event(\"dataloading\",{dataType:\"source\"})),this._tileJSONRequest=z(this._options,this.map._requestManager,((e,i)=>{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 L(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\"})));}));},this.serialize=()=>t.extend({},this._options),this.id=e,this.dispatcher=s,this.type=\"vector\",this.minzoom=0,this.maxzoom=22,this.scheme=\"xyz\",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,t.extend(this,t.pick(i,[\"url\",\"scheme\",\"tileSize\",\"promoteId\"])),this._options=t.extend({type:\"vector\"},i),this._collectResourceTiming=i.collectResourceTiming,512!==this.tileSize)throw new Error(\"vector tile sources must have a tileSize of 512\");this.setEventedParent(a);}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);}loadTile(t,e){const i=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),s={request:this.map._requestManager.transformRequest(i,h.Tile),uid:t.uid,tileID:t.tileID,zoom:t.tileID.overscaledZ,tileSize:this.tileSize*t.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};function a(i,s){return delete t.request,t.aborted?e(null):i&&404!==i.status?e(i):(s&&s.resourceTiming&&(t.resourceTiming=s.resourceTiming),this.map._refreshExpiredTiles&&s&&t.setExpiryData(s),t.loadVectorData(s,this.map.painter),e(null),void(t.reloadCallback&&(this.loadTile(t,t.reloadCallback),t.reloadCallback=null)))}s.request.collectResourceTiming=this._collectResourceTiming,t.actor&&\"expired\"!==t.state?\"loading\"===t.state?t.reloadCallback=e:t.request=t.actor.send(\"reloadTile\",s,a.bind(this)):(t.actor=this.dispatcher.getActor(),t.request=t.actor.send(\"loadTile\",s,a.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 k extends t.Evented{constructor(e,i,s,a){super(),this.id=e,this.dispatcher=s,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=z(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 L(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);}setSourceProperty(t){this._tileJSONRequest&&this._tileJSONRequest.cancel(),t(),this.load();}setTiles(t){return this.setSourceProperty((()=>{this._options.tiles=t;})),this}serialize(){return t.extend({},this._options)}hasTile(t){return !this.tileBounds||this.tileBounds.contains(t.canonical)}loadTile(t,e){const i=t.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);t.request=c.getImage(this.map._requestManager.transformRequest(i,h.Tile),((i,s,a)=>{if(delete t.request,t.aborted)t.state=\"unloaded\",e(null);else if(i)t.state=\"errored\",e(i);else if(s){this.map._refreshExpiredTiles&&a&&t.setExpiryData(a);const i=this.map.painter.context,o=i.gl;t.texture=this.map.painter.getTileTexture(s.width),t.texture?t.texture.update(s,{useMipmap:!0}):(t.texture=new x(i,s,o.RGBA,{useMipmap:!0}),t.texture.bind(o.LINEAR,o.CLAMP_TO_EDGE,o.LINEAR_MIPMAP_NEAREST),i.extTextureFilterAnisotropic&&o.texParameterf(o.TEXTURE_2D,i.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,i.extTextureFilterAnisotropicMax)),t.state=\"loaded\",e(null);}}),this.map._refreshExpiredTiles);}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}}class F extends k{constructor(e,i,s,a){super(e,i,s,a),this.type=\"raster-dem\",this.maxzoom=22,this._options=t.extend({type:\"raster-dem\"},i),this.encoding=i.encoding||\"mapbox\",this.redFactor=i.redFactor,this.greenFactor=i.greenFactor,this.blueFactor=i.blueFactor,this.baseShift=i.baseShift;}loadTile(e,i){const s=e.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),a=this.map._requestManager.transformRequest(s,h.Tile);function o(t,s){t&&(e.state=\"errored\",i(t)),s&&(e.dem=s,e.needsHillshadePrepare=!0,e.needsTerrainPrepare=!0,e.state=\"loaded\",i(null));}e.neighboringTiles=this._getNeighboringTiles(e.tileID),e.request=c.getImage(a,((s,a,r)=>t.__awaiter(this,void 0,void 0,(function*(){if(delete e.request,e.aborted)e.state=\"unloaded\",i(null);else if(s)e.state=\"errored\",i(s);else if(a){this.map._refreshExpiredTiles&&e.setExpiryData(r);const i=t.isImageBitmap(a)&&t.offscreenCanvasSupported()?a:yield function(e){return t.__awaiter(this,void 0,void 0,(function*(){if(\"undefined\"!=typeof VideoFrame&&t.isOffscreenCanvasDistorted()){const i=e.width+2,s=e.height+2;try{return new t.RGBAImage({width:i,height:s},yield t.readImageUsingVideoFrame(e,-1,-1,i,s))}catch(t){}}return t.browser.getImageData(e,1)}))}(a),s={uid:e.uid,coord:e.tileID,source:this.id,rawImageData:i,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};e.actor&&\"expired\"!==e.state||(e.actor=this.dispatcher.getActor(),e.actor.send(\"loadDEMTile\",s,o));}}))),this.map._refreshExpiredTiles);}_getNeighboringTiles(e){const i=e.canonical,s=Math.pow(2,i.z),a=(i.x-1+s)%s,o=0===i.x?e.wrap-1:e.wrap,r=(i.x+1+s)%s,n=i.x+1===s?e.wrap+1:e.wrap,l={};return l[new t.OverscaledTileID(e.overscaledZ,o,i.z,a,i.y).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,n,i.z,r,i.y).key]={backfilled:!1},i.y>0&&(l[new t.OverscaledTileID(e.overscaledZ,o,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,r,i.y-1).key]={backfilled:!1}),i.y+1{this._updateWorkerData();},this.serialize=()=>t.extend({},this._options,{type:this.type,data:this._data}),this.id=e,this.type=\"geojson\",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._removed=!1,this._pendingLoads=0,this.actor=s.getActor(),this.setEventedParent(a),this._data=i.data,this._options=t.extend({},i),this._collectResourceTiming=i.collectResourceTiming,void 0!==i.maxzoom&&(this.maxzoom=i.maxzoom),i.type&&(this.type=i.type),i.attribution&&(this.attribution=i.attribution),this.promoteId=i.promoteId;const o=t.EXTENT/this.tileSize;this.workerOptions=t.extend({source:this.id,cluster:i.cluster||!1,geojsonVtOptions:{buffer:(void 0!==i.buffer?i.buffer:128)*o,tolerance:(void 0!==i.tolerance?i.tolerance:.375)*o,extent:t.EXTENT,maxZoom:this.maxzoom,lineMetrics:i.lineMetrics||!1,generateId:i.generateId||!1},superclusterOptions:{maxZoom:void 0!==i.clusterMaxZoom?i.clusterMaxZoom:this.maxzoom-1,minPoints:Math.max(2,i.clusterMinPoints||2),extent:t.EXTENT,radius:(i.clusterRadius||50)*o,log:!1,generateId:i.generateId||!1},clusterProperties:i.clusterProperties,filter:i.filter},i.workerOptions),\"string\"==typeof this.promoteId&&(this.workerOptions.promoteId=this.promoteId);}onAdd(t){this.map=t,this.load();}setData(t){return this._data=t,this._updateWorkerData(),this}updateData(t){return this._updateWorkerData(t),this}setClusterOptions(t){return this.workerOptions.cluster=t.cluster,t&&(void 0!==t.clusterRadius&&(this.workerOptions.superclusterOptions.radius=t.clusterRadius),void 0!==t.clusterMaxZoom&&(this.workerOptions.superclusterOptions.maxZoom=t.clusterMaxZoom)),this._updateWorkerData(),this}getClusterExpansionZoom(t,e){return this.actor.send(\"geojson.getClusterExpansionZoom\",{clusterId:t,source:this.id},e),this}getClusterChildren(t,e){return this.actor.send(\"geojson.getClusterChildren\",{clusterId:t,source:this.id},e),this}getClusterLeaves(t,e,i,s){return this.actor.send(\"geojson.getClusterLeaves\",{source:this.id,clusterId:t,limit:e,offset:i},s),this}_updateWorkerData(e){const i=t.extend({},this.workerOptions);e?i.dataDiff=e:\"string\"==typeof this._data?(i.request=this.map._requestManager.transformRequest(t.browser.resolveURL(this._data),h.Source),i.request.collectResourceTiming=this._collectResourceTiming):i.data=JSON.stringify(this._data),this._pendingLoads++,this.fire(new t.Event(\"dataloading\",{dataType:\"source\"})),this.actor.send(`${this.type}.loadData`,i,((e,i)=>{if(this._pendingLoads--,this._removed||i&&i.abandoned)return void this.fire(new t.Event(\"dataabort\",{dataType:\"source\"}));let s=null;if(i&&i.resourceTiming&&i.resourceTiming[this.id]&&(s=i.resourceTiming[this.id].slice(0)),e)return void this.fire(new t.ErrorEvent(e));const a={dataType:\"source\"};this._collectResourceTiming&&s&&s.length>0&&t.extend(a,{resourceTiming:s}),this.fire(new t.Event(\"data\",Object.assign(Object.assign({},a),{sourceDataType:\"metadata\"}))),this.fire(new t.Event(\"data\",Object.assign(Object.assign({},a),{sourceDataType:\"content\"})));}));}loaded(){return 0===this._pendingLoads}loadTile(t,e){const i=t.actor?\"reloadTile\":\"loadTile\";t.actor=this.actor;const s={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,s,((s,a)=>(delete t.request,t.unloadVectorData(),t.aborted?e(null):s?e(s):(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});}hasTransition(){return !1}}var O=t.createLayout([{name:\"a_pos\",type:\"Int16\",components:2},{name:\"a_texture_pos\",type:\"Int16\",components:2}]);class U extends t.Evented{constructor(e,i,s,a){super(),this.load=(e,i)=>{this._loaded=!1,this.fire(new t.Event(\"dataloading\",{dataType:\"source\"})),this.url=this.options.url,this._request=c.getImage(this.map._requestManager.transformRequest(this.url,h.Image),((s,a)=>{this._request=null,this._loaded=!0,s?this.fire(new t.ErrorEvent(s)):a&&(this.image=a,e&&(this.coordinates=e),i&&i(),this._finishLoading());}));},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,O.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture||(this.texture=new x(e,this.image,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE));let s=!1;for(const t in this.tiles){const e=this.tiles[t];\"loaded\"!==e.state&&(e.state=\"loaded\",e.texture=this.texture,s=!0);}s&&this.fire(new t.Event(\"data\",{dataType:\"source\",sourceDataType:\"idle\",sourceId:this.id}));},this.serialize=()=>({type:\"image\",url:this.options.url,coordinates:this.coordinates}),this.id=e,this.dispatcher=s,this.coordinates=i.coordinates,this.type=\"image\",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(a),this.options=i;}loaded(){return this._loaded}updateImage(t){return t.url?(this._request&&(this._request.cancel(),this._request=null),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();}onRemove(){this._request&&(this._request.cancel(),this._request=null);}setCoordinates(e){this.coordinates=e;const i=e.map(t.MercatorCoordinate.fromLngLat);this.tileID=function(e){let i=1/0,s=1/0,a=-1/0,o=-1/0;for(const t of e)i=Math.min(i,t.x),s=Math.min(s,t.y),a=Math.max(a,t.x),o=Math.max(o,t.y);const r=Math.max(a-i,o-s),n=Math.max(0,Math.floor(-Math.log(r)/Math.LN2)),l=Math.pow(2,n);return new t.CanonicalTileID(n,Math.floor((i+a)/2*l),Math.floor((s+o)/2*l))}(i),this.minzoom=this.maxzoom=this.tileID.z;const s=i.map((t=>this.tileID.getTilePoint(t)._round()));return this._boundsArray=new t.RasterBoundsArray,this._boundsArray.emplaceBack(s[0].x,s[0].y,0,0),this._boundsArray.emplaceBack(s[1].x,s[1].y,t.EXTENT,0),this._boundsArray.emplaceBack(s[3].x,s[3].y,0,t.EXTENT),this._boundsArray.emplaceBack(s[2].x,s[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}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));}hasTransition(){return !1}}class N extends U{constructor(e,i,s,a){super(e,i,s,a),this.load=()=>{this._loaded=!1;const e=this.options;this.urls=[];for(const t of e.urls)this.urls.push(this.map._requestManager.transformRequest(t,h.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());}));},this.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,O.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 x(e,this.video,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE));let s=!1;for(const t in this.tiles){const e=this.tiles[t];\"loaded\"!==e.state&&(e.state=\"loaded\",e.texture=this.texture,s=!0);}s&&this.fire(new t.Event(\"data\",{dataType:\"source\",sourceDataType:\"idle\",sourceId:this.id}));},this.serialize=()=>({type:\"video\",urls:this.urls,coordinates:this.coordinates}),this.roundZoom=!0,this.type=\"video\",this.options=i;}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)));}hasTransition(){return this.video&&!this.video.paused}}class Z extends U{constructor(e,i,s,a){super(e,i,s,a),this.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());},this.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,s=i.gl;this.boundsBuffer||(this.boundsBuffer=i.createVertexBuffer(this._boundsArray,O.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 x(i,this.canvas,s.RGBA,{premultiply:!0});let a=!1;for(const t in this.tiles){const e=this.tiles[t];\"loaded\"!==e.state&&(e.state=\"loaded\",e.texture=this.texture,a=!0);}a&&this.fire(new t.Event(\"data\",{dataType:\"source\",sourceDataType:\"idle\",sourceId:this.id}));},this.serialize=()=>({type:\"canvas\",coordinates:this.coordinates}),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;}getCanvas(){return this.canvas}onAdd(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play();}onRemove(){this.pause();}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 G={},V=t=>{switch(t){case\"geojson\":return B;case\"image\":return U;case\"raster\":return k;case\"raster-dem\":return F;case\"vector\":return R;case\"video\":return N;case\"canvas\":return Z}return G[t]};function q(e,i){const s=t.create();return t.translate(s,s,[1,1,0]),t.scale(s,s,[.5*e.width,.5*e.height,1]),t.multiply(s,s,e.calculatePosMatrix(i.toUnwrapped()))}function j(t,e,i,s,a,o){const r=function(t,e,i){if(t)for(const s of t){const t=e[s];if(t&&t.source===i&&\"fill-extrusion\"===t.type)return !0}else for(const t in e){const s=e[t];if(s.source===i&&\"fill-extrusion\"===s.type)return !0}return !1}(a&&a.layers,e,t.id),n=o.maxPitchScaleFactor(),l=t.tilesIn(s,n,r);l.sort($);const c=[];for(const s of l)c.push({wrappedTileID:s.tileID.wrapped().key,queryResults:s.tile.queryRenderedFeatures(e,i,t._state,s.queryGeometry,s.cameraQueryGeometry,s.scale,a,o,n,q(t.transform,s.tileID))});const h=function(t){const e={},i={};for(const s of t){const t=s.queryResults,a=s.wrappedTileID,o=i[a]=i[a]||{};for(const i in t){const s=t[i],a=o[i]=o[i]||{},r=e[i]=e[i]||[];for(const t of s)a[t.featureIndex]||(a[t.featureIndex]=!0,r.push(t));}}return e}(c);for(const e in h)h[e].forEach((e=>{const i=e.feature,s=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=s;}));return h}function $(t,e){const i=t.tileID,s=e.tileID;return i.overscaledZ-s.overscaledZ||i.canonical.y-s.canonical.y||i.wrap-s.wrap||i.canonical.x-s.canonical.x}class X{constructor(e,i){this.timeAdded=0,this.fadeEndTime=0,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.rtt=[],this.rttCoords={},this.expiredRequestCount=0,this.state=\"loading\";}registerFadeDuration(t){const e=t+this.timeAdded;ee.getLayer(t))).filter(Boolean);if(0!==t.length){s.layers=t,s.stateDependentLayerIds&&(s.stateDependentLayers=s.stateDependentLayerIds.map((e=>t.filter((t=>t.id===e))[0])));for(const e of t)i[e.id]=s;}}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,!s)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 x(t,this.imageAtlas.image,e.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new x(t,this.glyphAtlasImage,e.ALPHA),this.glyphAtlasImage=null);}prepare(t){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(t,this.imageAtlasTexture);}queryRenderedFeatures(t,e,i,s,a,o,r,n,l,c){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:s,cameraQueryGeometry:a,scale:o,tileSize:this.tileSize,pixelPosMatrix:c,transform:n,params:r,queryPadding:this.queryPadding*l},t,e,i):{}}querySourceFeatures(e,i){const s=this.latestFeatureIndex;if(!s||!s.rawTileData)return;const a=s.loadVTLayers(),o=i&&i.sourceLayer?i.sourceLayer:\"\",r=a._geojsonTileLayer||a[o];if(!r)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[s].push(a),this.order.push(s),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,s=void 0===e?0:this.data[i].indexOf(e),a=this.data[i][s];return this.data[i].splice(s,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 s of this.data[i])t(s.value)||e.push(s);for(const t of e)this.remove(t.value.tileID,t);}}class H{constructor(){this.state={},this.stateChanges={},this.deletedStates={};}updateState(e,i,s){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],s),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])s[t]||(this.deletedStates[e][a][t]=null);}else for(const t in s)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 s=String(e);if(this.deletedStates[t]=this.deletedStates[t]||{},i&&void 0!==e)null!==this.deletedStates[t][s]&&(this.deletedStates[t][s]=this.deletedStates[t][s]||{},this.deletedStates[t][s][i]=null);else if(void 0!==e)if(this.stateChanges[t]&&this.stateChanges[t][s])for(i in this.deletedStates[t][s]={},this.stateChanges[t][s])this.deletedStates[t][s][i]=null;else this.deletedStates[t][s]=null;else this.deletedStates[t]=null;}getState(e,i){const s=String(i),a=t.extend({},(this.state[e]||{})[s],(this.stateChanges[e]||{})[s]);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 s={};for(const e in this.stateChanges){this.state[e]=this.state[e]||{};const i={};for(const s in this.stateChanges[e])this.state[e][s]||(this.state[e][s]={}),t.extend(this.state[e][s],this.stateChanges[e][s]),i[s]=this.state[e][s];s[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];}s[e]=s[e]||{},t.extend(s[e],i);}if(this.stateChanges={},this.deletedStates={},0!==Object.keys(s).length)for(const t in e)e[t].setFeatureState(s,i);}}class K extends t.Evented{constructor(t,e,i){super(),this.id=t,this.dispatcher=i,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._didEmitContent=!0);})),this.on(\"dataloading\",(()=>{this._sourceErrored=!1;})),this.on(\"error\",(()=>{this._sourceErrored=this._source.loaded();})),this._source=((t,e,i,s)=>{const a=new(V(e.type))(t,e,i,s);if(a.id!==t)throw new Error(`Expected Source id to be ${t} instead of ${a.id}`);return a})(t,e,i,this),this._tiles={},this._cache=new W(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new H,this._didEmitContent=!1,this._updated=!1;}onAdd(t){this.map=t,this._maxTileCacheSize=t?t._maxTileCacheSize:null,this._maxTileCacheZoomLevels=t?t._maxTileCacheZoomLevels: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;if(!(void 0===this.used&&void 0===this.usedForTerrain||this.used||this.usedForTerrain))return !0;if(!this._updated)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(Y).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 s=e.tileID,a=i.tileID,o=new t.Point(s.canonical.x,s.canonical.y)._rotate(this.transform.angle),r=new t.Point(a.canonical.x,a.canonical.y)._rotate(this.transform.angle);return s.overscaledZ-a.overscaledZ||r.y-o.y||r.x-o.x})).map((t=>t.tileID.key)):i.map((t=>t.tileID)).sort(Y).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,s,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.browser.now(),\"expired\"===s&&(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 s=0;s1||(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,s),t.neighboringTiles&&t.neighboringTiles[o]&&(t.neighboringTiles[o].backfilled=!0)));}}getTile(t){return this.getTileByID(t.key)}getTileByID(t){return this._tiles[t]}_retainLoadedChildren(t,e,i,s){for(const a in this._tiles){let o=this._tiles[a];if(s[a]||!o.hasData()||o.tileID.overscaledZ<=e||o.tileID.overscaledZ>i)continue;let r=o.tileID;for(;o&&o.tileID.overscaledZ>e+1;){const t=o.tileID.scaledTo(o.tileID.overscaledZ-1);o=this._tiles[t.key],o&&o.hasData()&&(r=t);}let n=r;for(;n.overscaledZ>e;)if(n=n.scaledTo(n.overscaledZ-1),t[n.key]){s[r.key]=r;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),s=this._getLoadedTile(e);if(s)return s}}_getLoadedTile(t){const e=this._tiles[t.key];return e&&e.hasData()?e:this._cache.getByKey(t.wrapped().key)}updateCacheSize(e){const i=Math.ceil(e.width/this._source.tileSize)+1,s=Math.ceil(e.height/this._source.tileSize)+1,a=Math.floor(i*s*(null===this._maxTileCacheZoomLevels?t.config.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),o=\"number\"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,a):a;this._cache.setMaxSize(o);}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 s=this._tiles[i];s.tileID=s.tileID.unwrapTo(s.tileID.wrap+e),t[s.tileID.key]=s;}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 s;this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?s=e.getVisibleUnwrappedCoordinates(this._source.tileID).map((e=>new t.OverscaledTileID(e.canonical.z,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y))):(s=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&&(s=s.filter((t=>this._source.hasTile(t))))):s=[];const a=e.coveringZoomLevel(this._source),o=Math.max(a-K.maxOverzooming,this._source.minzoom),r=Math.max(a+K.maxUnderzooming,this._source.minzoom);if(this.usedForTerrain){const t={};for(const e of s)if(e.canonical.z>this._source.minzoom){const i=e.scaledTo(e.canonical.z-1);t[i.key]=i;const s=e.scaledTo(Math.max(this._source.minzoom,Math.min(e.canonical.z,5)));t[s.key]=s;}s=s.concat(Object.values(t));}const n=0===s.length&&!this._updated&&this._didEmitContent;this._updated=!0,n&&this.fire(new t.Event(\"data\",{sourceDataType:\"idle\",dataType:\"source\",sourceId:this.id}));const l=this._updateRetainedTiles(s,a);if(J(this._source.type)){const e={},n={},c=Object.keys(l),h=t.browser.now();for(const t of c){const i=l[t],s=this._tiles[t];if(!s||0!==s.fadeEndTime&&s.fadeEndTime<=h)continue;const a=this.findLoadedParent(i,o);a&&(this._addTile(a.tileID),e[a.tileID.key]=a.tileID),n[t]=i;}this._retainLoadedChildren(n,a,r,l);for(const t in e)l[t]||(this._coveredTiles[t]=!0,l[t]=e[t]);if(i){const t={},e={};for(const i of s)this._tiles[i.key].hasData()?t[i.key]=i:e[i.key]=i;for(const i in e){const s=e[i].children(this._source.maxzoom);this._tiles[s[0].key]&&this._tiles[s[1].key]&&this._tiles[s[2].key]&&this._tiles[s[3].key]&&(t[s[0].key]=l[s[0].key]=s[0],t[s[1].key]=l[s[1].key]=s[1],t[s[2].key]=l[s[2].key]=s[2],t[s[3].key]=l[s[3].key]=s[3],delete e[i]);}for(const i in e){const s=this.findLoadedParent(e[i],this._source.minzoom);if(s){t[s.tileID.key]=l[s.tileID.key]=s.tileID;for(const e in t)t[e].isChildOf(s.tileID)&&delete t[e];}}for(const e in this._tiles)t[e]||(this._coveredTiles[e]=!0);}}for(const t in l)this._tiles[t].clearFadeHold();const c=t.keysDifference(this._tiles,l);for(const t of c){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={},s={},a=Math.max(e-K.maxOverzooming,this._source.minzoom),o=Math.max(e+K.maxUnderzooming,this._source.minzoom),r={};for(const s of t){const t=this._addTile(s);i[s.key]=s,t.hasData()||ethis._source.maxzoom){const t=o.children(this._source.maxzoom)[0],e=this.getTile(t);if(e&&e.hasData()){i[t.key]=t;continue}}else {const t=o.children(this._source.maxzoom);if(i[t[0].key]&&i[t[1].key]&&i[t[2].key]&&i[t[3].key])continue}let r=t.wasRequested();for(let e=o.overscaledZ-1;e>=a;--e){const a=o.scaledTo(e);if(s[a.key])break;if(s[a.key]=!0,t=this.getTile(a),!t&&r&&(t=this._addTile(a)),t){const e=t.hasData();if((r||e)&&(i[a.key]=a),r=t.wasRequested(),e)break}}}return i}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const t in this._tiles){const e=[];let i,s=this._tiles[t].tileID;for(;s.overscaledZ>0;){if(s.key in this._loadedParentTiles){i=this._loadedParentTiles[s.key];break}e.push(s.key);const t=s.scaledTo(s.overscaledZ-1);if(i=this._getLoadedTile(t),i)break;s=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 s=i;return i||(i=new X(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,s||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,s){const a=[],o=this.transform;if(!o)return a;const r=s?o.getCameraQueryGeometry(e):e,n=e.map((t=>o.pointCoordinate(t,this.terrain))),l=r.map((t=>o.pointCoordinate(t,this.terrain))),c=this.getIds();let h=1/0,u=1/0,d=-1/0,_=-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),_=Math.max(_,t.y);for(let e=0;e=0&&f[1].y+p>=0){const t=n.map((t=>r.getTilePoint(t))),e=l.map((t=>r.getTilePoint(t)));a.push({tile:s,tileID:r,queryGeometry:t,cameraQueryGeometry:e,scale:m});}}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(J(this._source.type)){const e=t.browser.now();for(const t in this._tiles)if(this._tiles[t].fadeEndTime>=e)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 s=this._tiles[t];s&&s.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 Y(t,e){const i=Math.abs(2*t.wrap)-+(t.wrap<0),s=Math.abs(2*e.wrap)-+(e.wrap<0);return t.overscaledZ-e.overscaledZ||s-i||e.canonical.y-t.canonical.y||e.canonical.x-t.canonical.x}function J(t){return \"raster\"===t||\"image\"===t||\"video\"===t}K.maxOverzooming=10,K.maxUnderzooming=3;const Q=\"mapboxgl_preloaded_worker_pool\";class tt{constructor(){this.active={};}acquire(e){if(!this.workers)for(this.workers=[];this.workers.length{t.terminate();})),this.workers=null);}isPreloaded(){return !!this.active[Q]}numActive(){return Object.keys(this.active).length}}const et=Math.floor(t.browser.hardwareConcurrency/2);let it;function st(){return it||(it=new tt),it}tt.workerCount=t.isSafari(globalThis)?Math.max(Math.min(et,3),1):1;class at{constructor(t,e){this.reset(t,e);}reset(t,e){this.points=t||[],this._distances=[0];for(let t=1;t0?(a-r)/n:0;return this.points[o].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 rt{constructor(t,e,i){const s=this.boxCells=[],a=this.circleCells=[];this.xCellCount=Math.ceil(t/i),this.yCellCount=Math.ceil(e/i);for(let t=0;tthis.width||s<0||e>this.height)return [];const n=[];if(t<=0&&e<=0&&this.width<=i&&this.height<=s){if(a)return [{key:null,x1:t,y1:e,x2:i,y2:s}];for(let t=0;t0}hitTestCircle(t,e,i,s,a){const o=t-i,r=t+i,n=e-i,l=e+i;if(r<0||o>this.width||l<0||n>this.height)return !1;const c=[];return this._forEachCell(o,n,r,l,this._queryCellCircle,c,{hitTest:!0,overlapMode:s,circle:{x:t,y:e,radius:i},seenUids:{box:{},circle:{}}},a),c.length>0}_queryCell(t,e,i,s,a,o,r,n){const{seenUids:l,hitTest:c,overlapMode:h}=r,u=this.boxCells[a];if(null!==u){const a=this.bboxes;for(const r of u)if(!l.box[r]){l.box[r]=!0;const u=4*r,d=this.boxKeys[r];if(t<=a[u+2]&&e<=a[u+3]&&i>=a[u+0]&&s>=a[u+1]&&(!n||n(d))&&(!c||!ot(h,d.overlapMode))&&(o.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 r of d)if(!l.circle[r]){l.circle[r]=!0;const u=3*r,d=this.circleKeys[r];if(this._circleAndRectCollide(a[u],a[u+1],a[u+2],t,e,i,s)&&(!n||n(d))&&(!c||!ot(h,d.overlapMode))){const t=a[u],e=a[u+1],i=a[u+2];if(o.push({key:d,x1:t-i,y1:e-i,x2:t+i,y2:e+i}),c)return !0}}}return !1}_queryCellCircle(t,e,i,s,a,o,r,n){const{circle:l,seenUids:c,overlapMode:h}=r,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,s=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(s))&&!ot(h,s.overlapMode))return o.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,s=this.circleKeys[e];if(this._circlesCollide(t[i],t[i+1],t[i+2],l.x,l.y,l.radius)&&(!n||n(s))&&!ot(h,s.overlapMode))return o.push(!0),!0}}}_forEachCell(t,e,i,s,a,o,r,n){const l=this._convertToXCellCoord(t),c=this._convertToYCellCoord(e),h=this._convertToXCellCoord(i),u=this._convertToYCellCoord(s);for(let d=l;d<=h;d++)for(let l=c;l<=u;l++)if(a.call(this,t,e,i,s,this.xCellCount*l+d,o,r,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,s,a,o){const r=s-t,n=a-e,l=i+o;return l*l>r*r+n*n}_circleAndRectCollide(t,e,i,s,a,o,r){const n=(o-s)/2,l=Math.abs(t-(s+n));if(l>n+i)return !1;const c=(r-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 nt(e,i,s,a,o){const r=t.create();return i?(t.scale(r,r,[1/o,1/o,1]),s||t.rotateZ(r,r,a.angle)):t.multiply(r,a.labelPlaneMatrix,e),r}function lt(e,i,s,a,o){if(i){const i=t.clone(e);return t.scale(i,i,[o,o,1]),s||t.rotateZ(i,i,-a.angle),i}return a.glCoordMatrix}function ct(e,i,s){let a;s?(a=[e.x,e.y,s(e.x,e.y),1],t.transformMat4(a,a,i)):(a=[e.x,e.y,0,1],Tt(a,a,i));const o=a[3];return {point:new t.Point(a[0]/o,a[1]/o),signedDistanceFromCamera:o}}function ht(t,e){return .5+t/e*.5}function ut(t,e){const i=t[0]/t[3],s=t[1]/t[3];return i>=-e[0]&&i<=e[0]&&s>=-e[1]&&s<=e[1]}function dt(e,i,s,a,o,r,n,l,c,h){const u=a?e.textSizeData:e.iconSizeData,d=t.evaluateSizeForZoom(u,s.transform.zoom),_=[256/s.width*2+1,256/s.height*2+1],m=a?e.text.dynamicLayoutVertexArray:e.icon.dynamicLayoutVertexArray;m.clear();const p=e.lineVertexArray,f=a?e.text.placedSymbolArray:e.icon.placedSymbolArray,g=s.transform.width/s.transform.height;let v=!1;for(let a=0;aMath.abs(s.x-i.x)*a?{useVertical:!0}:(e===t.WritingMode.vertical?i.ys.x)?{needsFlipping:!0}:null}function pt(e,i,s,a,o,r,n,l,c,h,u,d,_,m,p,f){const g=i/24,v=e.lineOffsetX*g,x=e.lineOffsetY*g;let y;if(e.numGlyphs>1){const t=e.glyphStartIndex+e.numGlyphs,i=e.lineStartIndex,o=e.lineStartIndex+e.lineLength,h=_t(g,l,v,x,s,u,d,e,c,r,_,p,f);if(!h)return {notEnoughRoom:!0};const b=ct(h.first.point,n,f).point,w=ct(h.last.point,n,f).point;if(a&&!s){const t=mt(e.writingMode,b,w,m);if(t)return t}y=[h.first];for(let a=e.glyphStartIndex+1;a0?r.point:ft(d,a,i,1,o,f),l=mt(e.writingMode,i,n,m);if(l)return l}const i=yt(g*l.getoffsetX(e.glyphStartIndex),v,x,s,u,d,e.segment,e.lineStartIndex,e.lineStartIndex+e.lineLength,c,r,_,p,f);if(!i)return {notEnoughRoom:!0};y=[i];}for(const e of y)t.addDynamicAttributes(h,e.point,e.angle);return {}}function ft(t,e,i,s,a,o){const r=ct(t.add(t.sub(e)._unit()),a,o).point,n=i.sub(r);return i.add(n._mult(s/n.mag()))}function gt(e,i){const{projectionCache:s,lineVertexArray:a,labelPlaneMatrix:o,tileAnchorPoint:r,distanceFromAnchor:n,getElevation:l,previousVertex:c,direction:h,absOffsetX:u}=i;if(s.projections[e])return s.projections[e];const d=new t.Point(a.getx(e),a.gety(e)),_=ct(d,o,l);if(_.signedDistanceFromCamera>0)return s.projections[e]=_.point,_.point;const m=e-h;return ft(0===n?r:new t.Point(a.getx(m),a.gety(m)),d,c,u-n+1,o,l)}function vt(t,e,i){return t._unit()._perp()._mult(e*i)}function xt(e,i,s,a,o,r,n,l){const{projectionCache:c,direction:h}=l;if(c.offsets[e])return c.offsets[e];const u=s.add(i);if(e+h=o)return c.offsets[e]=u,u;const d=gt(e+h,l),_=vt(d.sub(s),n,h),m=s.add(_),p=d.add(_);return c.offsets[e]=t.findLineIntersection(r,u,m,p)||u,c.offsets[e]}function yt(t,e,i,s,a,o,r,n,l,c,h,u,d,_){const m=s?t-e:t+e;let p=m>0?1:-1,f=0;s&&(p*=-1,f=Math.PI),p<0&&(f+=Math.PI);let g,v,x=p>0?n+r:n+r+1,y=a,b=a,w=0,T=0;const E=Math.abs(m),I=[];let S;for(;w+T<=E;){if(x+=p,x=l)return null;w+=T,b=y,v=g;const t={projectionCache:u,lineVertexArray:c,labelPlaneMatrix:h,tileAnchorPoint:o,distanceFromAnchor:w,getElevation:_,previousVertex:b,direction:p,absOffsetX:E};if(y=gt(x,t),0===i)I.push(b),S=y.sub(b);else {let e;const s=y.sub(b);e=0===s.mag()?vt(gt(x+p,t).sub(y),i,p):vt(s,i,p),v||(v=b.add(e)),g=xt(x,e,y,n,l,v,i,t),I.push(v),S=g.sub(v);}T=S.mag();}const C=S._mult((E-w)/T)._add(v||b),P=f+Math.atan2(y.y-b.y,y.x-b.x);return I.push(C),{point:C,angle:d?P:0,path:I}}const bt=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function wt(t,e){for(let i=0;i=1;t--)h.push(r.path[t]);for(let t=1;tct(t,l,m)));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=s.x&&i.x<=a.x&&e.y>=s.y&&i.y<=a.y?[h]:i.xa.x||i.ya.y?[]:t.clipLine([h],s.x,s.y,a.x,a.y);}for(const t of g){o.reset(t,.25*i);let s=0;s=o.length<=.5*i?1:Math.ceil(o.paddedLength/f)+1;for(let t=0;t=this.screenRightBoundary||sthis.screenBottomBoundary}isInsideGrid(t,e,i,s){return i>=0&&t=0&&et.collisionGroupID===e};}return this.collisionGroups[t]}}function Lt(e,i,s,a,o){const{horizontalAlign:r,verticalAlign:n}=t.getAnchorAlignment(e);return new t.Point(-(r-.5)*i+a[0]*o,-(n-.5)*s+a[1]*o)}function Rt(e,i,s,a,o,r){const{x1:n,x2:l,y1:c,y2:h,anchorPointX:u,anchorPointY:d}=e,_=new t.Point(i,s);return a&&_._rotate(o?r:-r),{x1:n+_.x,y1:c+_.y,x2:l+_.x,y2:h+_.y,anchorPointX:u,anchorPointY:d}}class kt{constructor(t,e,i,s,a){this.transform=t.clone(),this.terrain=e,this.collisionIndex=new It(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=i,this.retainedQueryData={},this.collisionGroups=new At(s),this.collisionCircleArrays={},this.prevPlacement=a,a&&(a.prevPlacement=void 0),this.placedOrientations={};}getBucketParts(e,i,s,a){const o=s.getBucket(i),r=s.latestFeatureIndex;if(!o||!r||i.id!==o.layerIds[0])return;const n=s.collisionBoxArray,l=o.layers[0].layout,c=Math.pow(2,this.transform.zoom-s.tileID.overscaledZ),h=s.tileSize/t.EXTENT,u=this.transform.calculatePosMatrix(s.tileID.toUnwrapped()),d=\"map\"===l.get(\"text-pitch-alignment\"),_=\"map\"===l.get(\"text-rotation-alignment\"),m=St(s,1,this.transform.zoom),p=nt(u,d,_,this.transform,m);let f=null;if(d){const e=lt(u,d,_,this.transform,m);f=t.multiply([],this.transform.labelPlaneMatrix,e);}this.retainedQueryData[o.bucketInstanceId]=new zt(o.bucketInstanceId,r,o.sourceLayerIndex,o.index,s.tileID);const g={bucket:o,layout:l,posMatrix:u,textLabelPlaneMatrix:p,labelToScreenMatrix:f,scale:c,textPixelRatio:h,holdingForFade:s.holdingForFade(),collisionBoxArray:n,partiallyEvaluatedTextSize:t.evaluateSizeForZoom(o.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(o.sourceID)};if(a)for(const t of o.sortKeyRanges){const{sortKey:i,symbolInstanceStart:s,symbolInstanceEnd:a}=t;e.push({sortKey:i,symbolInstanceStart:s,symbolInstanceEnd:a,parameters:g});}else e.push({symbolInstanceStart:0,symbolInstanceEnd:o.symbolInstances.length,parameters:g});}attemptAnchorPlacement(e,i,s,a,o,r,n,l,c,h,u,d,_,m,p,f){const g=t.TextAnchorEnum[e.textAnchor],v=[e.textOffset0,e.textOffset1],x=Lt(g,s,a,v,o),y=this.collisionIndex.placeCollisionBox(Rt(i,x.x,x.y,r,n,this.transform.angle),u,l,c,h.predicate,f);if((!p||0!==this.collisionIndex.placeCollisionBox(Rt(p,x.x,x.y,r,n,this.transform.angle),u,l,c,h.predicate,f).box.length)&&y.box.length>0){let t;if(this.prevPlacement&&this.prevPlacement.variableOffsets[d.crossTileID]&&this.prevPlacement.placements[d.crossTileID]&&this.prevPlacement.placements[d.crossTileID].text&&(t=this.prevPlacement.variableOffsets[d.crossTileID].anchor),0===d.crossTileID)throw new Error(\"symbolInstance.crossTileID can't be 0\");return this.variableOffsets[d.crossTileID]={textOffset:v,width:s,height:a,anchor:g,textBoxScale:o,prevAnchor:t},this.markUsedJustification(_,g,d,m),_.allowVerticalPlacement&&(this.markUsedOrientation(_,m,d),this.placedOrientations[d.crossTileID]=m),{shift:x,placedGlyphBoxes:y}}}placeLayerBucketPart(e,i,s){const{bucket:a,layout:o,posMatrix:r,textLabelPlaneMatrix:n,labelToScreenMatrix:l,textPixelRatio:c,holdingForFade:h,collisionBoxArray:u,partiallyEvaluatedTextSize:d,collisionGroup:_}=e.parameters,m=o.get(\"text-optional\"),p=o.get(\"icon-optional\"),f=t.getOverlapMode(o,\"text-overlap\",\"text-allow-overlap\"),g=\"always\"===f,v=t.getOverlapMode(o,\"icon-overlap\",\"icon-allow-overlap\"),x=\"always\"===v,y=\"map\"===o.get(\"text-rotation-alignment\"),b=\"map\"===o.get(\"text-pitch-alignment\"),w=\"none\"!==o.get(\"icon-text-fit\"),T=\"viewport-y\"===o.get(\"symbol-z-order\"),E=g&&(x||!a.hasIconData()||p),I=x&&(g||!a.hasTextData()||m);!a.collisionArrays&&u&&a.deserializeCollisionBoxes(u);const S=this.retainedQueryData[a.bucketInstanceId].tileID,C=this.terrain?(t,e)=>this.terrain.getElevation(S,t,e):null,P=(e,u)=>{var x,T;if(i[e.crossTileID])return;if(h)return void(this.placements[e.crossTileID]=new Dt(!1,!1,!1));let S=!1,P=!1,D=!0,M=null,z={box:null,offscreen:null},A={box:null,offscreen:null},L=null,R=null,k=null,F=0,B=0,O=0;u.textFeatureIndex?F=u.textFeatureIndex:e.useRuntimeCollisionCircles&&(F=e.featureIndex),u.verticalTextFeatureIndex&&(B=u.verticalTextFeatureIndex);const U=u.textBox;if(U){const i=i=>{let s=t.WritingMode.horizontal;if(a.allowVerticalPlacement&&!i&&this.prevPlacement){const t=this.prevPlacement.placedOrientations[e.crossTileID];t&&(this.placedOrientations[e.crossTileID]=t,s=t,this.markUsedOrientation(a,s,e));}return s},s=(i,s)=>{if(a.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&u.verticalTextBox){for(const e of a.writingModes)if(e===t.WritingMode.vertical?(z=s(),A=z):z=i(),z&&z.box&&z.box.length)break}else z=i();},o=e.textAnchorOffsetStartIndex,n=e.textAnchorOffsetEndIndex;if(n===o){const o=(t,i)=>{const s=this.collisionIndex.placeCollisionBox(t,f,c,r,_.predicate,C);return s&&s.box&&s.box.length&&(this.markUsedOrientation(a,i,e),this.placedOrientations[e.crossTileID]=i),s};s((()=>o(U,t.WritingMode.horizontal)),(()=>{const i=u.verticalTextBox;return a.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&i?o(i,t.WritingMode.vertical):{box:null,offscreen:null}})),i(z&&z.box&&z.box.length);}else {let l=t.TextAnchorEnum[null===(T=null===(x=this.prevPlacement)||void 0===x?void 0:x.variableOffsets[e.crossTileID])||void 0===T?void 0:T.anchor];const h=(t,i,s)=>{const h=t.x2-t.x1,u=t.y2-t.y1,d=e.textBoxScale,m=w&&\"never\"===v?i:null;let p={box:[],offscreen:!1},g=\"never\"===f?1:2,x=\"never\";l&&g++;for(let i=0;ih(U,u.iconBox,t.WritingMode.horizontal)),(()=>{const i=u.verticalTextBox;return a.allowVerticalPlacement&&!(z&&z.box&&z.box.length)&&e.numVerticalGlyphVertices>0&&i?h(i,u.verticalIconBox,t.WritingMode.vertical):{box:null,offscreen:null}})),z&&(S=z.box,D=z.offscreen);const d=i(z&&z.box);if(!S&&this.prevPlacement){const t=this.prevPlacement.variableOffsets[e.crossTileID];t&&(this.variableOffsets[e.crossTileID]=t,this.markUsedJustification(a,t.anchor,e,d));}}}if(L=z,S=L&&L.box&&L.box.length>0,D=L&&L.offscreen,e.useRuntimeCollisionCircles){const i=a.text.placedSymbolArray.get(e.centerJustifiedTextSymbolIndex),c=t.evaluateSizeForFeature(a.textSizeData,d,i),h=o.get(\"text-padding\");R=this.collisionIndex.placeCollisionCircles(f,i,a.lineVertexArray,a.glyphOffsetArray,c,r,n,l,s,b,_.predicate,e.collisionCircleDiameter,h,C),R.circles.length&&R.collisionDetected&&!s&&t.warnOnce(\"Collisions detected, but collision boxes are not shown\"),S=g||R.circles.length>0&&!R.collisionDetected,D=D&&R.offscreen;}if(u.iconFeatureIndex&&(O=u.iconFeatureIndex),u.iconBox){const t=t=>{const e=w&&M?Rt(t,M.x,M.y,y,b,this.transform.angle):t;return this.collisionIndex.placeCollisionBox(e,v,c,r,_.predicate,C)};A&&A.box&&A.box.length&&u.verticalIconBox?(k=t(u.verticalIconBox),P=k.box.length>0):(k=t(u.iconBox),P=k.box.length>0),D=D&&k.offscreen;}const N=m||0===e.numHorizontalGlyphVertices&&0===e.numVerticalGlyphVertices,Z=p||0===e.numIconVertices;if(N||Z?Z?N||(P=P&&S):S=P&&S:P=S=P&&S,S&&L&&L.box&&this.collisionIndex.insertCollisionBox(L.box,f,o.get(\"text-ignore-placement\"),a.bucketInstanceId,A&&A.box&&B?B:F,_.ID),P&&k&&this.collisionIndex.insertCollisionBox(k.box,v,o.get(\"icon-ignore-placement\"),a.bucketInstanceId,O,_.ID),R&&(S&&this.collisionIndex.insertCollisionCircles(R.circles,f,o.get(\"text-ignore-placement\"),a.bucketInstanceId,F,_.ID),s)){const t=a.bucketInstanceId;let e=this.collisionCircleArrays[t];void 0===e&&(e=this.collisionCircleArrays[t]=new Mt);for(let t=0;t=0;--e){const i=t[e];P(a.symbolInstances.get(i),a.collisionArrays[i]);}}else for(let t=e.symbolInstanceStart;t=0&&(e.text.placedSymbolArray.get(t).crossTileID=o>=0&&t!==o?0:s.crossTileID);}markUsedOrientation(e,i,s){const a=i===t.WritingMode.horizontal||i===t.WritingMode.horizontalOnly?i:0,o=i===t.WritingMode.vertical?i:0,r=[s.leftJustifiedTextSymbolIndex,s.centerJustifiedTextSymbolIndex,s.rightJustifiedTextSymbolIndex];for(const t of r)e.text.placedSymbolArray.get(t).placedOrientation=a;s.verticalPlacedTextSymbolIndex&&(e.text.placedSymbolArray.get(s.verticalPlacedTextSymbolIndex).placedOrientation=o);}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 s=e?e.symbolFadeChange(t):1,a=e?e.opacities:{},o=e?e.variableOffsets:{},r=e?e.placedOrientations:{};for(const t in this.placements){const e=this.placements[t],o=a[t];o?(this.opacities[t]=new Pt(o,s,e.text,e.icon),i=i||e.text!==o.text.placed||e.icon!==o.icon.placed):(this.opacities[t]=new Pt(null,s,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 Pt(e,s,!1,!1);a.isHidden()||(this.opacities[t]=a,i=i||e.text.placed||e.icon.placed);}}for(const t in o)this.variableOffsets[t]||!this.opacities[t]||this.opacities[t].isHidden()||(this.variableOffsets[t]=o[t]);for(const t in r)this.placedOrientations[t]||!this.opacities[t]||this.opacities[t].isHidden()||(this.placedOrientations[t]=r[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 s of e){const e=s.getBucket(t);e&&s.latestFeatureIndex&&t.id===e.layerIds[0]&&this.updateBucketOpacities(e,i,s.collisionBoxArray);}}updateBucketOpacities(e,i,s){e.hasTextData()&&(e.text.opacityVertexArray.clear(),e.text.hasVisibleVertices=!1),e.hasIconData()&&(e.icon.opacityVertexArray.clear(),e.icon.hasVisibleVertices=!1),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexArray.clear(),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexArray.clear();const a=e.layers[0],o=a.layout,r=new Pt(null,0,!1,!1,!0),n=o.get(\"text-allow-overlap\"),l=o.get(\"icon-allow-overlap\"),c=a._unevaluatedLayout.hasValue(\"text-variable-anchor\")||a._unevaluatedLayout.hasValue(\"text-variable-anchor-offset\"),h=\"map\"===o.get(\"text-rotation-alignment\"),u=\"map\"===o.get(\"text-pitch-alignment\"),d=\"none\"!==o.get(\"icon-text-fit\"),_=new Pt(null,0,n&&(l||!e.hasIconData()||o.get(\"icon-optional\")),l&&(n||!e.hasTextData()||o.get(\"text-optional\")),!0);!e.collisionArrays&&s&&(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData())&&e.deserializeCollisionBoxes(s);const m=(t,e,i)=>{for(let s=0;s0,g=this.placedOrientations[a.crossTileID],v=g===t.WritingMode.vertical,x=g===t.WritingMode.horizontal||g===t.WritingMode.horizontalOnly;if(o>0||n>0){const t=qt(p.text);m(e.text,o,v?jt:t),m(e.text,n,x?jt:t);const i=p.text.isHidden();[a.rightJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.leftJustifiedTextSymbolIndex].forEach((t=>{t>=0&&(e.text.placedSymbolArray.get(t).hidden=i||v?1:0);})),a.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(a.verticalPlacedTextSymbolIndex).hidden=i||x?1:0);const s=this.variableOffsets[a.crossTileID];s&&this.markUsedJustification(e,s.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=qt(p.icon),i=!(d&&a.verticalPlacedIconSymbolIndex&&v);a.placedIconSymbolIndex>=0&&(m(e.icon,a.numIconVertices,i?t:jt),e.icon.placedSymbolArray.get(a.placedIconSymbolIndex).hidden=p.icon.isHidden()),a.verticalPlacedIconSymbolIndex>=0&&(m(e.icon,a.numVerticalIconVertices,i?jt:t),e.icon.placedSymbolArray.get(a.verticalPlacedIconSymbolIndex).hidden=p.icon.isHidden());}if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){const i=e.collisionArrays[s];if(i){let s=new t.Point(0,0);if(i.textBox||i.verticalTextBox){let t=!0;if(c){const e=this.variableOffsets[l];e?(s=Lt(e.anchor,e.width,e.height,e.textOffset,e.textBoxScale),h&&s._rotate(u?this.transform.angle:-this.transform.angle)):t=!1;}i.textBox&&Ft(e.textCollisionBox.collisionVertexArray,p.text.placed,!t||v,s.x,s.y),i.verticalTextBox&&Ft(e.textCollisionBox.collisionVertexArray,p.text.placed,!t||x,s.x,s.y);}const a=Boolean(!x&&i.verticalIconBox);i.iconBox&&Ft(e.iconCollisionBox.collisionVertexArray,p.icon.placed,a,d?s.x:0,d?s.y:0),i.verticalIconBox&&Ft(e.iconCollisionBox.collisionVertexArray,p.icon.placed,!a,d?s.x:0,d?s.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 Ft(t,e,i,s,a){t.emplaceBack(e?1:0,i?1:0,s||0,a||0),t.emplaceBack(e?1:0,i?1:0,s||0,a||0),t.emplaceBack(e?1:0,i?1:0,s||0,a||0),t.emplaceBack(e?1:0,i?1:0,s||0,a||0);}const Bt=Math.pow(2,25),Ot=Math.pow(2,24),Ut=Math.pow(2,17),Nt=Math.pow(2,16),Zt=Math.pow(2,9),Gt=Math.pow(2,8),Vt=Math.pow(2,1);function qt(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*Bt+e*Ot+i*Ut+e*Nt+i*Zt+e*Gt+i*Vt+e}const jt=0;class $t{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,s,a){const o=this._bucketParts;for(;this._currentTileIndext.sortKey-e.sortKey)));this._currentPartIndex!this._forceFullPlacement&&t.browser.now()-a>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 $t(t)),this._inProgressLayer.continuePlacement(s[t.source],this.placement,this._showCollisionBoxes,t,o))return;delete this._inProgressLayer;}this._currentPlacementIndex--;}this._done=!0;}commit(t){return this.placement.commit(t),this.placement}}const Wt=512/t.EXTENT/2;class Ht{constructor(e,i,s){this.tileID=e,this.bucketInstanceId=s,this._symbolsByKey={};const a=new Map;for(let t=0;t({x:Math.floor(t.anchorX*Wt),y:Math.floor(t.anchorY*Wt)}))),crossTileIDs:i.map((t=>t.crossTileID))};if(s.positions.length>128){const e=new t.KDBush(s.positions.length,16,Uint16Array);for(const{x:t,y:i}of s.positions)e.add(t,i);e.finish(),delete s.positions,s.index=e;}this._symbolsByKey[e]=s;}}getScaledCoordinates(e,i){const{x:s,y:a,z:o}=this.tileID.canonical,{x:r,y:n,z:l}=i.canonical,c=Wt/Math.pow(2,l-o),h=(n*t.EXTENT+e.anchorY)*c,u=a*t.EXTENT*Wt;return {x:Math.floor((r*t.EXTENT+e.anchorX)*c-s*t.EXTENT*Wt),y:Math.floor(h-u)}}findMatches(t,e,i){const s=this.tileID.canonical.zt))}}class Kt{constructor(){this.maxCrossTileID=0;}generate(){return ++this.maxCrossTileID}}class Yt{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0;}handleWrapJump(t){const e=Math.round((t-this.lng)/360);if(0!==e)for(const t in this.indexes){const i=this.indexes[t],s={};for(const t in i){const a=i[t];a.tileID=a.tileID.unwrapTo(a.tileID.wrap+e),s[a.tileID.key]=a;}this.indexes[t]=s;}this.lng=t;}addBucket(t,e,i){if(this.indexes[t.overscaledZ]&&this.indexes[t.overscaledZ][t.key]){if(this.indexes[t.overscaledZ][t.key].bucketInstanceId===e.bucketInstanceId)return !1;this.removeBucketCrossTileIDs(t.overscaledZ,this.indexes[t.overscaledZ][t.key]);}for(let t=0;tt.overscaledZ)for(const i in a){const o=a[i];o.tileID.isChildOf(t)&&o.findMatches(e.symbolInstances,t,s);}else {const o=a[t.scaledTo(Number(i)).key];o&&o.findMatches(e.symbolInstances,t,s);}}for(let t=0;t{e[t]=!0;}));for(const t in this.layerIndexes)e[t]||delete this.layerIndexes[t];}}const Qt=(e,i)=>t.emitValidationErrors(e,i&&i.filter((t=>\"source.canvas\"!==t.identifier))),te=t.pick(t.operations,[\"addLayer\",\"removeLayer\",\"setPaintProperty\",\"setLayoutProperty\",\"setFilter\",\"addSource\",\"removeSource\",\"setLayerZoomRange\",\"setLight\",\"setTransition\",\"setGeoJSONSourceData\",\"setGlyphs\",\"setSprite\"]),ee=t.pick(t.operations,[\"setCenter\",\"setZoom\",\"setBearing\",\"setPitch\"]),ie=t.emptyStyle();class se extends t.Evented{constructor(e,i={}){super(),this.map=e,this.dispatcher=new M(st(),this,e._getMapId()),this.imageManager=new b,this.imageManager.setEventedParent(this),this.glyphManager=new I(e._requestManager,i.localIdeographFontFamily),this.lineAtlas=new D(256,512),this.crossTileSymbolIndex=new Jt,this._spritesImagesIds={},this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new t.ZoomHistory,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast(\"setReferrer\",t.getReferrer());const s=this;this._rtlTextPluginCallback=se.registerForPluginStateChange((e=>{s.dispatcher.broadcast(\"syncRTLPluginState\",{pluginStatus:e.pluginStatus,pluginURL:e.pluginURL},((e,i)=>{if(t.triggerPluginCompletionEvent(e),i&&i.every((t=>t)))for(const t in s.sourceCaches){const e=s.sourceCaches[t].getSource().type;\"vector\"!==e&&\"geojson\"!==e||s.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={},s){this.fire(new t.Event(\"dataloading\",{dataType:\"style\"})),i.validate=\"boolean\"!=typeof i.validate||i.validate;const a=this.map._requestManager.transformRequest(e,h.Style);this._request=t.getJSON(a,((e,a)=>{this._request=null,e?this.fire(new t.ErrorEvent(e)):a&&this._load(a,i,s);}));}loadJSON(e,i={},s){this.fire(new t.Event(\"dataloading\",{dataType:\"style\"})),this._request=t.browser.frame((()=>{this._request=null,i.validate=!1!==i.validate,this._load(e,i,s);}));}loadEmpty(){this.fire(new t.Event(\"dataloading\",{dataType:\"style\"})),this._load(ie,{validate:!1});}_load(e,i,s){var a;const o=i.transformStyle?i.transformStyle(s,e):e;if(!i.validate||!Qt(this,t.validateStyle(o))){this._loaded=!0,this.stylesheet=o;for(const t in o.sources)this.addSource(t,o.sources[t],{validate:!1});o.sprite?this._loadSprite(o.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(o.glyphs),this._createLayers(),this.light=new P(this.stylesheet.light),this.map.setTerrain(null!==(a=this.stylesheet.terrain)&&void 0!==a?a:null),this.fire(new t.Event(\"data\",{dataType:\"style\"})),this.fire(new t.Event(\"style.load\"));}}_createLayers(){const e=t.derefLayers(this.stylesheet.layers);this.dispatcher.broadcast(\"setLayers\",e),this._order=e.map((t=>t.id)),this._layers={},this._serializedLayers=null;for(const i of e){const e=t.createStyleLayer(i);e.setEventedParent(this,{layer:{id:i.id}}),this._layers[i.id]=e;}}_loadSprite(e,i=!1,s=void 0){this.imageManager.setLoaded(!1),this._spriteRequest=function(e,i,s,a){const o=g(e),r=o.length,n=s>1?\"@2x\":\"\",l={},u={},d={};for(const{id:e,url:s}of o){const o=i.transformRequest(i.normalizeSpriteURL(s,n,\".json\"),h.SpriteJSON),_=`${e}_${o.url}`;l[_]=t.getJSON(o,((t,i)=>{delete l[_],u[e]=i,v(a,u,d,t,r);}));const m=i.transformRequest(i.normalizeSpriteURL(s,n,\".png\"),h.SpriteImage),p=`${e}_${m.url}`;l[p]=c.getImage(m,((t,i)=>{delete l[p],d[e]=i,v(a,u,d,t,r);}));}return {cancel(){for(const t of Object.values(l))t.cancel();}}}(e,this.map._requestManager,this.map.getPixelRatio(),((e,a)=>{if(this._spriteRequest=null,e)this.fire(new t.ErrorEvent(e));else if(a)for(const t in a){this._spritesImagesIds[t]=[];const e=this._spritesImagesIds[t]?this._spritesImagesIds[t].filter((t=>!(t in a))):[];for(const t of e)this.imageManager.removeImage(t),this._changedImages[t]=!0;for(const e in a[t]){const s=\"default\"===t?e:`${t}:${e}`;this._spritesImagesIds[t].push(s),s in this.imageManager.images?this.imageManager.updateImage(s,a[t][e],!1):this.imageManager.addImage(s,a[t][e]),i&&(this._changedImages[s]=!0);}}this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),i&&(this._changed=!0),this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new t.Event(\"data\",{dataType:\"style\"})),s&&s(e);}));}_unloadSprite(){for(const t of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(t),this._changedImages[t]=!0;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._changed=!0,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 s=e.sourceLayer;if(!s)return;const a=i.getSource();(\"geojson\"===a.type||a.vectorLayerIds&&-1===a.vectorLayerIds.indexOf(s))&&this.fire(new t.ErrorEvent(new Error(`Source layer \"${s}\" 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()}_serializeByIds(t){const e=this._serializedAllLayers();if(!t||0===t.length)return Object.values(e);const i=[];for(const s of t)e[s]&&i.push(e[s]);return i}_serializedAllLayers(){let t=this._serializedLayers;if(t)return t;t=this._serializedLayers={};const e=Object.keys(this._layers);for(const i of e){const e=this._layers[i];\"custom\"!==e.type&&(t[i]=e.serialize());}return t}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(),this._updateTilesForChangedGlyphs();for(const t in this._updatedPaintProps)this._layers[t].updateTransitions(e);this.light.updateTransitions(e),this._resetUpdates();}const s={};for(const t in this.sourceCaches){const e=this.sourceCaches[t];s[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 s){const i=this.sourceCaches[e];s[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={};}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(const t in this.sourceCaches)this.sourceCaches[t].reloadTilesForDependencies([\"glyphs\"],[\"\"]);this._glyphsDidChange=!1;}}_updateWorkerLayers(t,e){this.dispatcher.broadcast(\"updateLayers\",{layers:this._serializeByIds(t),removedIds:e});}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1;}setState(e,i={}){this._checkLoaded();const s=this.serialize();if(e=i.transformStyle?i.transformStyle(s,e):e,Qt(this,t.validateStyle(e)))return !1;(e=t.clone$1(e)).layers=t.derefLayers(e.layers);const a=t.diffStyles(s,e).filter((t=>!(t.command in ee)));if(0===a.length)return !1;const o=a.filter((t=>!(t.command in te)));if(o.length>0)throw new Error(`Unimplemented: ${o.map((t=>t.command)).join(\", \")}.`);for(const t of a)\"setTransition\"!==t.command&&this[t.command].apply(this,t.args);return this.stylesheet=e,this._serializedLayers=null,!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,s={}){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,s))return;this.map&&this.map._collectResourceTiming&&(i.collectResourceTiming=!0);const a=this.sourceCaches[e]=new K(e,i,this.dispatcher);a.style=this,a.setEventedParent(this,(()=>({isSourceLoaded:a.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,s={}){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 o;if(\"custom\"===e.type){if(Qt(this,t.validateCustomStyleLayer(e)))return;o=t.createStyleLayer(e);}else {if(\"source\"in e&&\"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},s))return;o=t.createStyleLayer(e),this._validateLayer(o),o.setEventedParent(this,{layer:{id:a}});}const r=i?this._order.indexOf(i):this._order.length;if(i&&-1===r)this.fire(new t.ErrorEvent(new Error(`Cannot add layer \"${a}\" before non-existing layer \"${i}\".`)));else {if(this._order.splice(r,0,a),this._layerOrderChanged=!0,this._layers[a]=o,this._removedLayers[a]&&o.source&&\"custom\"!==o.type){const t=this._removedLayers[a];delete this._removedLayers[a],t.type!==o.type?this._updatedSources[o.source]=\"clear\":(this._updatedSources[o.source]=\"reload\",this.sourceCaches[o.source].pause());}this._updateLayer(o),o.onAdd&&o.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 s=this._order.indexOf(e);this._order.splice(s,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 s=this._order.indexOf(e);this._order.splice(s,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=i,delete this._layers[e],this._serializedLayers&&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,s){this._checkLoaded();const a=this.getLayer(e);a?a.minzoom===i&&a.maxzoom===s||(null!=i&&(a.minzoom=i),null!=s&&(a.maxzoom=s),this._updateLayer(a)):this.fire(new t.ErrorEvent(new Error(`Cannot set the zoom range of non-existing layer \"${e}\".`)));}setFilter(e,i,s={}){this._checkLoaded();const a=this.getLayer(e);if(a){if(!t.deepEqual(a.filter,i))return null==i?(a.filter=void 0,void this._updateLayer(a)):void(this._validate(t.validateStyle.filter,`layers.${a.id}.filter`,i,null,s)||(a.filter=t.clone$1(i),this._updateLayer(a)))}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,s,a={}){this._checkLoaded();const o=this.getLayer(e);o?t.deepEqual(o.getLayoutProperty(i),s)||(o.setLayoutProperty(i,s,a),this._updateLayer(o)):this.fire(new t.ErrorEvent(new Error(`Cannot style non-existing layer \"${e}\".`)));}getLayoutProperty(e,i){const s=this.getLayer(e);if(s)return s.getLayoutProperty(i);this.fire(new t.ErrorEvent(new Error(`Cannot get style of non-existing layer \"${e}\".`)));}setPaintProperty(e,i,s,a={}){this._checkLoaded();const o=this.getLayer(e);o?t.deepEqual(o.getPaintProperty(i),s)||(o.setPaintProperty(i,s,a)&&this._updateLayer(o),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 s=e.source,a=e.sourceLayer,o=this.sourceCaches[s];if(void 0===o)return void this.fire(new t.ErrorEvent(new Error(`The source '${s}' does not exist in the map's style.`)));const r=o.getSource().type;\"geojson\"===r&&a?this.fire(new t.ErrorEvent(new Error(\"GeoJSON sources cannot have a sourceLayer parameter.\"))):\"vector\"!==r||a?(void 0===e.id&&this.fire(new t.ErrorEvent(new Error(\"The feature id parameter must be provided.\"))),o.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 s=e.source,a=this.sourceCaches[s];if(void 0===a)return void this.fire(new t.ErrorEvent(new Error(`The source '${s}' does not exist in the map's style.`)));const o=a.getSource().type,r=\"vector\"===o?e.sourceLayer:void 0;\"vector\"!==o||r?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(r,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,s=e.sourceLayer,a=this.sourceCaches[i];if(void 0!==a)return \"vector\"!==a.getSource().type||s?(void 0===e.id&&this.fire(new t.ErrorEvent(new Error(\"The feature id parameter must be provided.\"))),a.getFeatureState(s,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(){if(!this._loaded)return;const e=t.mapObject(this.sourceCaches,(t=>t.serialize())),i=this._serializeByIds(this._order),s=this.stylesheet;return t.filterObject({version:s.version,name:s.name,metadata:s.metadata,light:s.light,center:s.center,zoom:s.zoom,bearing:s.bearing,pitch:s.pitch,sprite:s.sprite,glyphs:s.glyphs,transition:s.transition,sources:e,layers:i},(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._serializedLayers=null,this._changed=!0;}_flattenAndSortRenderedFeatures(t){const e=t=>\"fill-extrusion\"===this._layers[t].type,i={},s=[];for(let a=this._order.length-1;a>=0;a--){const o=this._order[a];if(e(o)){i[o]=a;for(const e of t){const t=e[o];if(t)for(const e of t)s.push(e);}}}s.sort(((t,e)=>e.intersectionZ-t.intersectionZ));const a=[];for(let o=this._order.length-1;o>=0;o--){const r=this._order[o];if(e(r))for(let t=s.length-1;t>=0;t--){const e=s[t].feature;if(i[e.layer.id]{const s=i.featureSortOrder;if(s){const i=s.indexOf(t.featureIndex);return s.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((s=>{const a=s.feature,o=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=o;}));return n}(this._layers,r,this.sourceCaches,e,i,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(o)}querySourceFeatures(e,i){i&&i.filter&&this._validate(t.validateStyle.filter,\"querySourceFeatures.filter\",i.filter,null,i);const s=this.sourceCaches[e];return s?function(t,e){const i=t.getRenderableIds().map((e=>t.getTileByID(e))),s=[],a={};for(let t=0;t{G[t]=e;})(t,e),e.workerSourceURL?void this.dispatcher.broadcast(\"loadWorkerSource\",{name:t,url:e.workerSourceURL},i):i(null,null))}getLight(){return this.light.getLight()}setLight(e,i={}){this._checkLoaded();const s=this.light.getLight();let a=!1;for(const i in e)if(!t.deepEqual(e[i],s[i])){a=!0;break}if(!a)return;const o={now:t.browser.now(),transition:t.extend({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(e,i),this.light.updateTransitions(o);}_validate(e,i,s,a,o={}){return (!o||!1!==o.validate)&&Qt(this,e.call(t.validateStyle,t.extend({key:i,style:this.serialize(),value:s,styleSpec:t.v8Spec},a)))}_remove(e=!0){this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),t.evented.off(\"pluginStateChange\",this._rtlTextPluginCallback);for(const t in this._layers)this._layers[t].setEventedParent(null);for(const t in this.sourceCaches){const e=this.sourceCaches[t];e.setEventedParent(null),e.onRemove(this.map);}this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove(e);}_clearSource(t){this.sourceCaches[t].clearTiles();}_reloadSource(t){this.sourceCaches[t].resume(),this.sourceCaches[t].reload();}_updateSources(t){for(const e in this.sourceCaches)this.sourceCaches[e].update(t,this.map.terrain);}_generateCollisionBoxes(){for(const t in this.sourceCaches)this._reloadSource(t);}_updatePlacement(e,i,s,a,o=!1){let r=!1,n=!1;const l={};for(const t of this._order){const i=this._layers[t];if(\"symbol\"!==i.type)continue;if(!l[i.source]){const t=this.sourceCaches[i.source];l[i.source]=t.getRenderableIds(!0).map((e=>t.getTileByID(e))).sort(((t,e)=>e.tileID.overscaledZ-t.tileID.overscaledZ||(t.tileID.isLessThan(e.tileID)?-1:1)));}const s=this.crossTileSymbolIndex.addLayer(i,l[i.source],e.center.lng);r=r||s;}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((o=o||this._layerOrderChanged||0===s)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(t.browser.now(),e.zoom))&&(this.pauseablePlacement=new Xt(e,this.map.terrain,this._order,o,i,s,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.browser.now()),n=!0),r&&this.pauseablePlacement.placement.setStale()),n||r)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.browser.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 s=this.sourceCaches[e.source];s&&s.setDependencies(e.tileID.key,e.type,e.icons);}getGlyphs(t,e,i){this.glyphManager.getGlyphs(e.stacks,i);const s=this.sourceCaches[e.source];s&&s.setDependencies(e.tileID.key,e.type,[\"\"]);}getResource(e,i,s){return t.makeRequest(i,s)}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(e,i={}){this._checkLoaded(),e&&this._validate(t.validateStyle.glyphs,\"glyphs\",e,null,i)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=e,this.glyphManager.entries={},this.glyphManager.setURL(e));}addSprite(e,i,s={},a){this._checkLoaded();const o=[{id:e,url:i}],r=[...g(this.stylesheet.sprite),...o];this._validate(t.validateStyle.sprite,\"sprite\",r,null,s)||(this.stylesheet.sprite=r,this._loadSprite(o,!0,a));}removeSprite(e){this._checkLoaded();const i=g(this.stylesheet.sprite);if(i.find((t=>t.id===e))){if(this._spritesImagesIds[e])for(const t of this._spritesImagesIds[e])this.imageManager.removeImage(t),this._changedImages[t]=!0;i.splice(i.findIndex((t=>t.id===e)),1),this.stylesheet.sprite=i.length>0?i:void 0,delete this._spritesImagesIds[e],this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast(\"setImages\",this._availableImages),this.fire(new t.Event(\"data\",{dataType:\"style\"}));}else this.fire(new t.ErrorEvent(new Error(`Sprite \"${e}\" doesn't exists on this map.`)));}getSprite(){return g(this.stylesheet.sprite)}setSprite(e,i={},s){this._checkLoaded(),e&&this._validate(t.validateStyle.sprite,\"sprite\",e,null,i)||(this.stylesheet.sprite=e,e?this._loadSprite(e,!0,s):(this._unloadSprite(),s&&s(null)));}}se.registerForPluginStateChange=t.registerForPluginStateChange;var ae=t.createLayout([{name:\"a_pos\",type:\"Int16\",components:2}]),oe=\"attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;varying float v_depth;void main() {float extent=8192.0;float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/extent;gl_Position=u_matrix*vec4(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta,1.0);v_depth=gl_Position.z/gl_Position.w;}\";const re={prelude:ne(\"#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\\n\",\"#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_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_exaggeration;\\n#else\\nreturn 0.0;\\n#endif\\n}\"),background:ne(\"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:ne(\"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:ne(\"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:ne(\"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:ne(\"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:ne(\"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:ne(\"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:ne(\"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:ne(\"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:ne(\"#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:ne(\"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:ne(\"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:ne(\"#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:ne(\"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 height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\\n#else\\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\\n#endif\\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;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:ne(\"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 height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\\n#else\\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\\n#endif\\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;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:ne(\"#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:ne(\"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:ne(\"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:ne(\"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:ne(\"#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:ne(\"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:ne(\"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:ne(\"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:ne(\"#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 inner_edge=(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);inner_edge=inner_edge+gamma*gamma_scale;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);if (u_is_halo) {lowp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha=min(smoothstep(halo_edge-gamma_scaled,halo_edge+gamma_scaled,dist),1.0-alpha);}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:ne(\"#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:ne(\"uniform sampler2D u_texture;varying vec2 v_texture_pos;void main() {gl_FragColor=texture2D(u_texture,v_texture_pos);}\",oe),terrainDepth:ne(\"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);}\",oe),terrainCoords:ne(\"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);}\",oe)};function ne(t,e){const i=/#pragma mapbox: ([\\w]+) ([\\w]+) ([\\w]+) ([\\w]+)/g,s=e.match(/attribute ([\\w]+) ([\\w]+)/g),a=t.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g),o=e.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g),r=o?o.concat(a):a,n={};return {fragmentSource:t=t.replace(i,((t,e,i,s,a)=>(n[a]=!0,\"define\"===e?`\\n#ifndef HAS_UNIFORM_u_${a}\\nvarying ${i} ${s} ${a};\\n#else\\nuniform ${i} ${s} u_${a};\\n#endif\\n`:`\\n#ifdef HAS_UNIFORM_u_${a}\\n ${i} ${s} ${a} = u_${a};\\n#endif\\n`))),vertexSource:e=e.replace(i,((t,e,i,s,a)=>{const o=\"float\"===s?\"vec2\":\"vec4\",r=a.match(/color/)?\"color\":o;return n[a]?\"define\"===e?`\\n#ifndef HAS_UNIFORM_u_${a}\\nuniform lowp float u_${a}_t;\\nattribute ${i} ${o} a_${a};\\nvarying ${i} ${s} ${a};\\n#else\\nuniform ${i} ${s} u_${a};\\n#endif\\n`:\"vec4\"===r?`\\n#ifndef HAS_UNIFORM_u_${a}\\n ${a} = a_${a};\\n#else\\n ${i} ${s} ${a} = u_${a};\\n#endif\\n`:`\\n#ifndef HAS_UNIFORM_u_${a}\\n ${a} = unpack_mix_${r}(a_${a}, u_${a}_t);\\n#else\\n ${i} ${s} ${a} = u_${a};\\n#endif\\n`:\"define\"===e?`\\n#ifndef HAS_UNIFORM_u_${a}\\nuniform lowp float u_${a}_t;\\nattribute ${i} ${o} a_${a};\\n#else\\nuniform ${i} ${s} u_${a};\\n#endif\\n`:\"vec4\"===r?`\\n#ifndef HAS_UNIFORM_u_${a}\\n ${i} ${s} ${a} = a_${a};\\n#else\\n ${i} ${s} ${a} = u_${a};\\n#endif\\n`:`\\n#ifndef HAS_UNIFORM_u_${a}\\n ${i} ${s} ${a} = unpack_mix_${r}(a_${a}, u_${a}_t);\\n#else\\n ${i} ${s} ${a} = u_${a};\\n#endif\\n`})),staticAttributes:s,staticUniforms:r}}class le{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,s,a,o,r,n,l){this.context=t;let c=this.boundPaintVertexBuffers.length!==s.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_exaggeration:new t.Uniform1f(e,i.u_terrain_exaggeration)}))(e,b),this.binderUniforms=s?s.getUniforms(e,b):[];}draw(t,e,i,s,a,o,r,n,l,c,h,u,d,_,m,p,f,g){const v=t.gl;if(this.failedToCreate)return;if(t.program.set(this.program),t.setDepthMode(i),t.setStencilMode(s),t.setColorMode(a),t.setCullFace(o),n){t.activeTexture.set(v.TEXTURE2),v.bindTexture(v.TEXTURE_2D,n.depthTexture),t.activeTexture.set(v.TEXTURE3),v.bindTexture(v.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(r[t]);m&&m.setUniforms(t,this.binderUniforms,d,{zoom:_});let x=0;switch(e){case v.LINES:x=2;break;case v.TRIANGLES:x=3;break;case v.LINE_STRIP:x=1;}for(const i of u.get()){const s=i.vaos||(i.vaos={});(s[l]||(s[l]=new le)).bind(t,this,c,m?m.getPaintVertexBuffers():[],h,i.vertexOffset,p,f,g),v.drawElements(e,i.primitiveLength*x,v.UNSIGNED_SHORT,i.primitiveOffset*x*2);}}}function ue(t,e,i){const s=1/St(i,1,e.transform.tileZoom),a=Math.pow(2,i.tileID.overscaledZ),o=i.tileSize*Math.pow(2,e.transform.tileZoom)/a,r=o*(i.tileID.canonical.x+i.tileID.wrap*a),n=o*i.tileID.canonical.y;return {u_image:0,u_texsize:i.imageAtlasTexture.size,u_scale:[s,t.fromScale,t.toScale],u_fade:t.t,u_pixel_coord_upper:[r>>16,n>>16],u_pixel_coord_lower:[65535&r,65535&n]}}const de=(e,i,s,a)=>{const o=i.style.light,r=o.properties.get(\"position\"),n=[r.x,r.y,r.z],l=function(){var e=new t.ARRAY_TYPE(9);return t.ARRAY_TYPE!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}();\"viewport\"===o.properties.get(\"anchor\")&&function(t,e){var i=Math.sin(e),s=Math.cos(e);t[0]=s,t[1]=i,t[2]=0,t[3]=-i,t[4]=s,t[5]=0,t[6]=0,t[7]=0,t[8]=1;}(l,-i.transform.angle),function(t,e,i){var s=e[0],a=e[1],o=e[2];t[0]=s*i[0]+a*i[3]+o*i[6],t[1]=s*i[1]+a*i[4]+o*i[7],t[2]=s*i[2]+a*i[5]+o*i[8];}(n,n,l);const c=o.properties.get(\"color\");return {u_matrix:e,u_lightpos:n,u_lightintensity:o.properties.get(\"intensity\"),u_lightcolor:[c.r,c.g,c.b],u_vertical_gradient:+s,u_opacity:a}},_e=(e,i,s,a,o,r,n)=>t.extend(de(e,i,s,a),ue(r,i,n),{u_height_factor:-Math.pow(2,o.overscaledZ)/n.tileSize/8}),me=t=>({u_matrix:t}),pe=(e,i,s,a)=>t.extend(me(e),ue(s,i,a)),fe=(t,e)=>({u_matrix:t,u_world:e}),ge=(e,i,s,a,o)=>t.extend(pe(e,i,s,a),{u_world:o}),ve=(t,e,i,s)=>{const a=t.transform;let o,r;if(\"map\"===s.paint.get(\"circle-pitch-alignment\")){const t=St(i,1,a.zoom);o=!0,r=[t,t];}else o=!1,r=a.pixelsToGLUnits;return {u_camera_to_center_distance:a.cameraToCenterDistance,u_scale_with_map:+(\"map\"===s.paint.get(\"circle-pitch-scale\")),u_matrix:t.translatePosMatrix(e.posMatrix,i,s.paint.get(\"circle-translate\"),s.paint.get(\"circle-translate-anchor\")),u_pitch_with_map:+o,u_device_pixel_ratio:t.pixelRatio,u_extrude_scale:r}},xe=(t,e,i)=>{const s=St(i,1,e.zoom),a=Math.pow(2,e.zoom-i.tileID.overscaledZ),o=i.tileID.overscaleFactor();return {u_matrix:t,u_camera_to_center_distance:e.cameraToCenterDistance,u_pixels_to_tile_units:s,u_extrude_scale:[e.pixelsToGLUnits[0]/(s*a),e.pixelsToGLUnits[1]/(s*a)],u_overscale_factor:o}},ye=(t,e,i=1)=>({u_matrix:t,u_color:e,u_overlay:0,u_overlay_scale:i}),be=t=>({u_matrix:t}),we=(t,e,i,s)=>({u_matrix:t,u_extrude_scale:St(e,1,i),u_intensity:s});function Te(e,i){const s=Math.pow(2,i.canonical.z),a=i.canonical.y;return [new t.MercatorCoordinate(0,a/s).toLngLat().lat,new t.MercatorCoordinate(0,(a+1)/s).toLngLat().lat]}const Ee=(t,e,i,s)=>{const a=t.transform;return {u_matrix:De(t,e,i,s),u_ratio:1/St(e,1,a.zoom),u_device_pixel_ratio:t.pixelRatio,u_units_to_pixels:[1/a.pixelsToGLUnits[0],1/a.pixelsToGLUnits[1]]}},Ie=(e,i,s,a,o)=>t.extend(Ee(e,i,s,o),{u_image:0,u_image_height:a}),Se=(t,e,i,s,a)=>{const o=t.transform,r=Pe(e,o);return {u_matrix:De(t,e,i,a),u_texsize:e.imageAtlasTexture.size,u_ratio:1/St(e,1,o.zoom),u_device_pixel_ratio:t.pixelRatio,u_image:0,u_scale:[r,s.fromScale,s.toScale],u_fade:s.t,u_units_to_pixels:[1/o.pixelsToGLUnits[0],1/o.pixelsToGLUnits[1]]}},Ce=(e,i,s,a,o,r)=>{const n=e.lineAtlas,l=Pe(i,e.transform),c=\"round\"===s.layout.get(\"line-cap\"),h=n.getDash(a.from,c),u=n.getDash(a.to,c),d=h.width*o.fromScale,_=u.width*o.toScale;return t.extend(Ee(e,i,s,r),{u_patternscale_a:[l/d,-h.height/2],u_patternscale_b:[l/_,-u.height/2],u_sdfgamma:n.width/(256*Math.min(d,_)*e.pixelRatio)/2,u_image:0,u_tex_y_a:h.y,u_tex_y_b:u.y,u_mix:o.t})};function Pe(t,e){return 1/St(t,1,e.tileZoom)}function De(t,e,i,s){return t.translatePosMatrix(s?s.posMatrix:e.tileID.posMatrix,e,i.paint.get(\"line-translate\"),i.paint.get(\"line-translate-anchor\"))}const Me=(t,e,i,s,a)=>{return {u_matrix:t,u_tl_parent:e,u_scale_parent:i,u_buffer_scale:1,u_fade_t:s.mix,u_opacity:s.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:(r=a.paint.get(\"raster-saturation\"),r>0?1-1/(1.001-r):-r),u_contrast_factor:(o=a.paint.get(\"raster-contrast\"),o>0?1/(1-o):1+o),u_spin_weights:ze(a.paint.get(\"raster-hue-rotate\"))};var o,r;};function ze(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 Ae=(t,e,i,s,a,o,r,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:o,u_label_plane_matrix:r,u_coord_matrix:n,u_is_text:+l,u_pitch_with_map:+s,u_texsize:c,u_texture:0}},Le=(e,i,s,a,o,r,n,l,c,h,u)=>{const d=o.transform;return t.extend(Ae(e,i,s,a,o,r,n,l,c,h),{u_gamma_scale:a?Math.cos(d._pitch)*d.cameraToCenterDistance:1,u_device_pixel_ratio:o.pixelRatio,u_is_halo:+u})},Re=(e,i,s,a,o,r,n,l,c,h)=>t.extend(Le(e,i,s,a,o,r,n,l,!0,c,!0),{u_texsize_icon:h,u_texture_icon:1}),ke=(t,e,i)=>({u_matrix:t,u_opacity:e,u_color:i}),Fe=(e,i,s,a,o,r)=>t.extend(function(t,e,i,s){const a=i.imageManager.getPattern(t.from.toString()),o=i.imageManager.getPattern(t.to.toString()),{width:r,height:n}=i.imageManager.getPixelSize(),l=Math.pow(2,s.tileID.overscaledZ),c=s.tileSize*Math.pow(2,i.transform.tileZoom)/l,h=c*(s.tileID.canonical.x+s.tileID.wrap*l),u=c*s.tileID.canonical.y;return {u_image:0,u_pattern_tl_a:a.tl,u_pattern_br_a:a.br,u_pattern_tl_b:o.tl,u_pattern_br_b:o.br,u_texsize:[r,n],u_mix:e.t,u_pattern_size_a:a.displaySize,u_pattern_size_b:o.displaySize,u_scale_a:e.fromScale,u_scale_b:e.toScale,u_tile_units_to_pixels:1/St(s,1,i.transform.tileZoom),u_pixel_coord_upper:[h>>16,u>>16],u_pixel_coord_lower:[65535&h,65535&u]}}(a,r,s,o),{u_matrix:e,u_opacity:i}),Be={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),u_ele_delta:new t.Uniform1f(e,i.u_ele_delta)}),terrainDepth:(e,i)=>({u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_ele_delta:new t.Uniform1f(e,i.u_ele_delta)}),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),u_ele_delta:new t.Uniform1f(e,i.u_ele_delta)})};class Oe{constructor(t,e,i){this.context=t;const s=t.gl;this.buffer=s.createBuffer(),this.dynamicDraw=Boolean(i),this.context.unbindVAO(),t.bindElementBuffer.set(this.buffer),s.bufferData(s.ELEMENT_ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?s.DYNAMIC_DRAW:s.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 Ue={Int8:\"BYTE\",Uint8:\"UNSIGNED_BYTE\",Int16:\"SHORT\",Uint16:\"UNSIGNED_SHORT\",Int32:\"INT\",Uint32:\"UNSIGNED_INT\",Float32:\"FLOAT\"};class Ne{constructor(t,e,i,s){this.length=e.length,this.attributes=i,this.itemSize=e.bytesPerElement,this.dynamicDraw=s,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(),s=v;t.mul(i,g.placementInvProjMatrix,e.transform.glCoordMatrix),t.mul(i,i,g.placementViewportMatrix),u.push({circleArray:y,circleOffset:_,transform:s,invTransform:i,coord:p}),d+=y.length/4,_=d;}x&&h.draw(l,c.LINES,Pi.disabled,Mi.disabled,e.colorModeForRenderPass(),zi.disabled,xe(v,e.transform,f),e.style.map.terrain&&e.style.map.terrain.getTerrainData(p),s.id,x.layoutVertexBuffer,x.indexBuffer,x.segments,null,e.transform.zoom,null,null,x.collisionVertexBuffer);}if(!n||!u.length)return;const m=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:S});}else wt(f.numGlyphs,_);}if(h){m.clear();const i=e.icon.placedSymbolArray;for(let e=0;ee.style.map.terrain.getElevation(l,t,i):null,i=\"map\"===s.layout.get(\"text-rotation-alignment\");dt(c,l.posMatrix,e,o,F,B,g,h,i,t);}const N=e.translatePosMatrix(l.posMatrix,a,r,n),Z=v||o&&T||U?Ri:F,G=e.translatePosMatrix(B,a,r,n,!0),V=_&&0!==s.paint.get(o?\"text-halo-width\":\"icon-halo-width\").constantOr(1);let q;q=_?c.iconsInText?Re(w.kind,C,x,g,e,N,Z,G,D,L):Le(w.kind,C,x,g,e,N,Z,G,o,D,!0):Ae(w.kind,C,x,g,e,N,Z,G,o,D);const j={program:S,buffers:u,uniformValues:q,atlasTexture:M,atlasTextureIcon:R,atlasInterpolation:z,atlasInterpolationIcon:A,isSDF:_,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:P});}else E.push({segments:u.segments,sortKey:0,state:j,terrainData:P});}b&&E.sort(((t,e)=>t.sortKey-e.sortKey));for(const t of E){const i=t.state;if(_.activeTexture.set(m.TEXTURE0),i.atlasTexture.bind(i.atlasInterpolation,m.CLAMP_TO_EDGE),i.atlasTextureIcon&&(_.activeTexture.set(m.TEXTURE1),i.atlasTextureIcon&&i.atlasTextureIcon.bind(i.atlasInterpolationIcon,m.CLAMP_TO_EDGE)),i.isSDF){const a=i.uniformValues;i.hasHalo&&(a.u_is_halo=1,Ui(i.buffers,t.segments,s,e,i.program,w,u,d,a,t.terrainData)),a.u_is_halo=0;}Ui(i.buffers,t.segments,s,e,i.program,w,u,d,i.uniformValues,t.terrainData);}}function Ui(t,e,i,s,a,o,r,n,l,c){const h=s.context;a.draw(h,h.gl.TRIANGLES,o,r,n,zi.disabled,l,c,i.id,t.layoutVertexBuffer,t.indexBuffer,e,i.paint,s.transform.zoom,t.programConfigurations.get(i.id),t.dynamicLayoutVertexBuffer,t.opacityVertexBuffer);}function Ni(t,e,i,s,a){if(!i||!s||!s.imageAtlas)return;const o=s.imageAtlas.patternPositions;let r=o[i.to.toString()],n=o[i.from.toString()];if(!r||!n){const t=a.getPaintProperty(e);r=o[t],n=o[t];}r&&n&&t.setConstantPatternPositions(r,n);}function Zi(t,e,i,s,a,o,r){const n=t.context.gl,l=\"fill-pattern\",c=i.paint.get(l),h=c&&c.constantOr(1),u=i.getCrossfadeParameters();let d,_,m,p,f;r?(_=h&&!i.getPaintProperty(\"fill-outline-color\")?\"fillOutlinePattern\":\"fillOutline\",d=n.LINES):(_=h?\"fillPattern\":\"fill\",d=n.TRIANGLES);const g=c.constantOr(null);for(const c of s){const s=e.getTile(c);if(h&&!s.patternsLoaded())continue;const v=s.getBucket(i);if(!v)continue;const x=v.programConfigurations.get(i.id),y=t.useProgram(_,x),b=t.style.map.terrain&&t.style.map.terrain.getTerrainData(c);h&&(t.context.activeTexture.set(n.TEXTURE0),s.imageAtlasTexture.bind(n.LINEAR,n.CLAMP_TO_EDGE),x.updatePaintBuffers(u)),Ni(x,l,g,s,i);const w=b?c:null,T=t.translatePosMatrix(w?w.posMatrix:c.posMatrix,s,i.paint.get(\"fill-translate\"),i.paint.get(\"fill-translate-anchor\"));if(r){p=v.indexBuffer2,f=v.segments2;const e=[n.drawingBufferWidth,n.drawingBufferHeight];m=\"fillOutlinePattern\"===_&&h?ge(T,t,u,s,e):fe(T,e);}else p=v.indexBuffer,f=v.segments,m=h?pe(T,t,u,s):me(T);y.draw(t.context,d,a,t.stencilModeForClipping(c),o,zi.disabled,m,b,i.id,v.layoutVertexBuffer,p,f,i.paint,t.transform.zoom,x);}}function Gi(t,e,i,s,a,o,r){const n=t.context,l=n.gl,c=\"fill-extrusion-pattern\",h=i.paint.get(c),u=h.constantOr(1),d=i.getCrossfadeParameters(),_=i.paint.get(\"fill-extrusion-opacity\"),m=h.constantOr(null);for(const h of s){const s=e.getTile(h),p=s.getBucket(i);if(!p)continue;const f=t.style.map.terrain&&t.style.map.terrain.getTerrainData(h),g=p.programConfigurations.get(i.id),v=t.useProgram(u?\"fillExtrusionPattern\":\"fillExtrusion\",g);u&&(t.context.activeTexture.set(l.TEXTURE0),s.imageAtlasTexture.bind(l.LINEAR,l.CLAMP_TO_EDGE),g.updatePaintBuffers(d)),Ni(g,c,m,s,i);const x=t.translatePosMatrix(h.posMatrix,s,i.paint.get(\"fill-extrusion-translate\"),i.paint.get(\"fill-extrusion-translate-anchor\")),y=i.paint.get(\"fill-extrusion-vertical-gradient\"),b=u?_e(x,t,y,_,h,d,s):de(x,t,y,_);v.draw(n,n.gl.TRIANGLES,a,o,r,zi.backCCW,b,f,i.id,p.layoutVertexBuffer,p.indexBuffer,p.segments,i.paint,t.transform.zoom,g,t.style.map.terrain&&p.centroidVertexBuffer);}}function Vi(t,e,i,s,a,o,r){const n=t.context,l=n.gl,c=i.fbo;if(!c)return;const h=t.useProgram(\"hillshade\"),u=t.style.map.terrain&&t.style.map.terrain.getTerrainData(e);n.activeTexture.set(l.TEXTURE0),l.bindTexture(l.TEXTURE_2D,c.colorAttachment.get()),h.draw(n,l.TRIANGLES,a,o,r,zi.disabled,((t,e,i,s)=>{const a=i.paint.get(\"hillshade-shadow-color\"),o=i.paint.get(\"hillshade-highlight-color\"),r=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:s?s.posMatrix:t.transform.calculatePosMatrix(e.tileID.toUnwrapped(),l),u_image:0,u_latrange:Te(0,e.tileID),u_light:[i.paint.get(\"hillshade-exaggeration\"),n],u_shadow:a,u_highlight:o,u_accent:r}})(t,i,s,u?e:null),u,s.id,t.rasterBoundsBuffer,t.quadTriangleIndexBuffer,t.rasterBoundsSegments);}function qi(e,i,s,a,o,r){const n=e.context,l=n.gl,c=i.dem;if(c&&c.data){const h=c.dim,u=c.stride,d=c.getPixels();if(n.activeTexture.set(l.TEXTURE1),n.pixelStoreUnpackPremultiplyAlpha.set(!1),i.demTexture=i.demTexture||e.getTileTexture(u),i.demTexture){const t=i.demTexture;t.update(d,{premultiply:!1}),t.bind(l.NEAREST,l.CLAMP_TO_EDGE);}else i.demTexture=new x(n,d,l.RGBA,{premultiply:!1}),i.demTexture.bind(l.NEAREST,l.CLAMP_TO_EDGE);n.activeTexture.set(l.TEXTURE0);let _=i.fbo;if(!_){const t=new x(n,{width:h,height:h,data:null},l.RGBA);t.bind(l.LINEAR,l.CLAMP_TO_EDGE),_=i.fbo=n.createFramebuffer(h,h,!0,!1),_.colorAttachment.set(t.texture);}n.bindFramebuffer.set(_.framebuffer),n.viewport.set([0,0,h,h]),e.useProgram(\"hillshadePrepare\").draw(n,l.TRIANGLES,a,o,r,zi.disabled,((e,i)=>{const s=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:[s,s],u_zoom:e.overscaledZ,u_unpack:i.getUnpackVector()}})(i.tileID,c),null,s.id,e.rasterBoundsBuffer,e.quadTriangleIndexBuffer,e.rasterBoundsSegments),i.needsHillshadePrepare=!1;}}function ji(e,i,s,a,o,r){const n=a.paint.get(\"raster-fade-duration\");if(!r&&n>0){const a=t.browser.now(),r=(a-e.timeAdded)/n,l=i?(a-i.timeAdded)/n:-1,c=s.getSource(),h=o.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?r:1-l,0,1);return e.refreshedUponExpiration&&r>=1&&(e.refreshedUponExpiration=!1),i?{opacity:1,mix:1-d}:{opacity:d,mix:0}}return {opacity:1,mix:0}}const $i=new t.Color(1,0,0,1),Xi=new t.Color(0,1,0,1),Wi=new t.Color(0,0,1,1),Hi=new t.Color(1,0,1,1),Ki=new t.Color(0,1,1,1);function Yi(t,e,i,s){Qi(t,0,e+i/2,t.transform.width,i,s);}function Ji(t,e,i,s){Qi(t,e-i/2,0,i,t.transform.height,s);}function Qi(t,e,i,s,a,o){const r=t.context,n=r.gl;n.enable(n.SCISSOR_TEST),n.scissor(e*t.pixelRatio,i*t.pixelRatio,s*t.pixelRatio,a*t.pixelRatio),r.clear({color:o}),n.disable(n.SCISSOR_TEST);}function ts(e,i,s){const a=e.context,o=a.gl,r=s.posMatrix,n=e.useProgram(\"debug\"),l=Pi.disabled,c=Mi.disabled,h=e.colorModeForRenderPass(),u=\"$debug\",d=e.style.map.terrain&&e.style.map.terrain.getTerrainData(s);a.activeTexture.set(o.TEXTURE0);const _=i.getTileByID(s.key).latestRawTileData,m=Math.floor((_&&_.byteLength||0)/1024),p=i.getTile(s).tileSize,f=512/Math.min(p,512)*(s.overscaledZ/e.transform.zoom)*.5;let g=s.canonical.toString();s.overscaledZ!==s.canonical.z&&(g+=` => ${s.overscaledZ}`),function(t,e){t.initDebugOverlayCanvas();const i=t.debugOverlayCanvas,s=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(s.LINEAR,s.CLAMP_TO_EDGE);}(e,`${g} ${m}kB`),n.draw(a,o.TRIANGLES,l,c,Si.alphaBlended,zi.disabled,ye(r,t.Color.transparent,f),null,u,e.debugBuffer,e.quadTriangleIndexBuffer,e.debugSegments),n.draw(a,o.LINE_STRIP,l,c,h,zi.disabled,ye(r,t.Color.red),d,u,e.debugBuffer,e.tileBorderIndexBuffer,e.debugSegments);}function es(t,e,i){const s=t.context,a=s.gl,o=t.colorModeForRenderPass(),r=new Pi(a.LEQUAL,Pi.ReadWrite,t.depthRangeFor3D),n=t.useProgram(\"terrain\"),l=e.getTerrainMesh();s.bindFramebuffer.set(null),s.viewport.set([0,0,t.width,t.height]);for(const c of i){const i=t.renderToTexture.getTexture(c),h=e.getTerrainData(c.tileID);s.activeTexture.set(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,i.texture);const u={u_matrix:t.transform.calculatePosMatrix(c.tileID.toUnwrapped()),u_texture:0,u_ele_delta:e.getMeshFrameDelta(t.transform.zoom)};n.draw(s,a.TRIANGLES,r,Mi.disabled,o,zi.backCCW,u,h,\"terrain\",l.vertexBuffer,l.indexBuffer,l.segments);}}class is{constructor(e,i){this.context=new Ci(e),this.transform=i,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:t.create(),renderTime:0},this.setup(),this.numSublayers=K.maxUnderzooming+K.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new Jt;}resize(t,e,i){if(this.width=Math.floor(t*i),this.height=Math.floor(e*i),this.pixelRatio=i,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const t of this.style._order)this.style._layers[t].resize();}setup(){const e=this.context,i=new t.PosArray;i.emplaceBack(0,0),i.emplaceBack(t.EXTENT,0),i.emplaceBack(0,t.EXTENT),i.emplaceBack(t.EXTENT,t.EXTENT),this.tileExtentBuffer=e.createVertexBuffer(i,ae.members),this.tileExtentSegments=t.SegmentVector.simpleSegment(0,0,4,2);const s=new t.PosArray;s.emplaceBack(0,0),s.emplaceBack(t.EXTENT,0),s.emplaceBack(0,t.EXTENT),s.emplaceBack(t.EXTENT,t.EXTENT),this.debugBuffer=e.createVertexBuffer(s,ae.members),this.debugSegments=t.SegmentVector.simpleSegment(0,0,4,5);const a=new t.RasterBoundsArray;a.emplaceBack(0,0,0,0),a.emplaceBack(t.EXTENT,0,t.EXTENT,0),a.emplaceBack(0,t.EXTENT,0,t.EXTENT),a.emplaceBack(t.EXTENT,t.EXTENT,t.EXTENT,t.EXTENT),this.rasterBoundsBuffer=e.createVertexBuffer(a,O.members),this.rasterBoundsSegments=t.SegmentVector.simpleSegment(0,0,4,2);const o=new t.PosArray;o.emplaceBack(0,0),o.emplaceBack(1,0),o.emplaceBack(0,1),o.emplaceBack(1,1),this.viewportBuffer=e.createVertexBuffer(o,ae.members),this.viewportSegments=t.SegmentVector.simpleSegment(0,0,4,2);const r=new t.LineStripIndexArray;r.emplaceBack(0),r.emplaceBack(1),r.emplaceBack(3),r.emplaceBack(2),r.emplaceBack(0),this.tileBorderIndexBuffer=e.createIndexBuffer(r);const n=new t.TriangleIndexArray;n.emplaceBack(0,1,2),n.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=e.createIndexBuffer(n);const l=this.context.gl;this.stencilClearMode=new Mi({func:l.ALWAYS,mask:0},0,255,l.ZERO,l.ZERO,l.ZERO);}clearStencil(){const e=this.context,i=e.gl;this.nextStencilID=1,this.currentStencilSource=void 0;const s=t.create();t.ortho(s,0,this.width,this.height,0,0,1),t.scale(s,s,[i.drawingBufferWidth,i.drawingBufferHeight,0]),this.useProgram(\"clippingMask\").draw(e,i.TRIANGLES,Pi.disabled,this.stencilClearMode,Si.disabled,zi.disabled,be(s),null,\"$clipping\",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments);}_renderTileClippingMasks(t,e){if(this.currentStencilSource===t.source||!t.isTileClipped()||!e||!e.length)return;this.currentStencilSource=t.source;const i=this.context,s=i.gl;this.nextStencilID+e.length>256&&this.clearStencil(),i.setColorMode(Si.disabled),i.setDepthMode(Pi.disabled);const a=this.useProgram(\"clippingMask\");this._tileClippingMaskIDs={};for(const t of e){const e=this._tileClippingMaskIDs[t.key]=this.nextStencilID++,o=this.style.map.terrain&&this.style.map.terrain.getTerrainData(t);a.draw(i,s.TRIANGLES,Pi.disabled,new Mi({func:s.ALWAYS,mask:0},e,255,s.KEEP,s.KEEP,s.REPLACE),Si.disabled,zi.disabled,be(t.posMatrix),o,\"$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 Mi({func:e.NOTEQUAL,mask:255},t,255,e.KEEP,e.KEEP,e.REPLACE)}stencilModeForClipping(t){const e=this.context.gl;return new Mi({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)),s=i[i.length-1].overscaledZ,a=i[0].overscaledZ-s+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[s[this.currentLayer]],e=a[t.source],i=o[t.source];this._renderTileClippingMasks(t,i),this.renderLayer(this,e,t,i);}for(this.renderPass=\"translucent\",this.currentLayer=0;this.currentLayeri.source&&!i.isHidden(e)?[t.sourceCaches[i.source]]:[])),a=s.filter((t=>\"vector\"===t.getSource().type)),o=s.filter((t=>\"vector\"!==t.getSource().type)),r=t=>{(!i||i.getSource().maxzoomr(t))),i||o.forEach((t=>r(t))),i}(this.style,this.transform.zoom);t&&function(t,e,i){for(let s=0;si.style.map.terrain.getElevation(o,t,e):null);}}}(a,e,s,i,s.layout.get(\"text-rotation-alignment\"),s.layout.get(\"text-pitch-alignment\"),o),0!==s.paint.get(\"icon-opacity\").constantOr(1)&&Oi(e,i,s,a,!1,s.paint.get(\"icon-translate\"),s.paint.get(\"icon-translate-anchor\"),s.layout.get(\"icon-rotation-alignment\"),s.layout.get(\"icon-pitch-alignment\"),s.layout.get(\"icon-keep-upright\"),r,n),0!==s.paint.get(\"text-opacity\").constantOr(1)&&Oi(e,i,s,a,!0,s.paint.get(\"text-translate\"),s.paint.get(\"text-translate-anchor\"),s.layout.get(\"text-rotation-alignment\"),s.layout.get(\"text-pitch-alignment\"),s.layout.get(\"text-keep-upright\"),r,n),i.map.showCollisionBoxes&&(Li(e,i,s,a,s.paint.get(\"text-translate\"),s.paint.get(\"text-translate-anchor\"),!0),Li(e,i,s,a,s.paint.get(\"icon-translate\"),s.paint.get(\"icon-translate-anchor\"),!1));}(e,i,s,a,this.style.placement.variableOffsets);break;case\"circle\":!function(e,i,s,a){if(\"translucent\"!==e.renderPass)return;const o=s.paint.get(\"circle-opacity\"),r=s.paint.get(\"circle-stroke-width\"),n=s.paint.get(\"circle-stroke-opacity\"),l=!s.layout.get(\"circle-sort-key\").isConstant();if(0===o.constantOr(1)&&(0===r.constantOr(1)||0===n.constantOr(1)))return;const c=e.context,h=c.gl,u=e.depthModeForSublayer(0,Pi.ReadOnly),d=Mi.disabled,_=e.colorModeForRenderPass(),m=[];for(let o=0;ot.sortKey-e.sortKey));for(const t of m){const{programConfiguration:i,program:a,layoutVertexBuffer:o,indexBuffer:r,uniformValues:n,terrainData:l}=t.state;a.draw(c,h.TRIANGLES,u,d,_,zi.disabled,n,l,s.id,o,r,t.segments,s.paint,e.transform.zoom,i);}}(e,i,s,a);break;case\"heatmap\":!function(e,i,s,a){if(0!==s.paint.get(\"heatmap-opacity\"))if(\"offscreen\"===e.renderPass){const o=e.context,r=o.gl,n=Mi.disabled,l=new Si([r.ONE,r.ONE],t.Color.transparent,[!0,!0,!0,!0]);!function(t,e,i){const s=t.gl;t.activeTexture.set(s.TEXTURE1),t.viewport.set([0,0,e.width/4,e.height/4]);let a=i.heatmapFbo;if(a)s.bindTexture(s.TEXTURE_2D,a.colorAttachment.get()),t.bindFramebuffer.set(a.framebuffer);else {const o=s.createTexture();s.bindTexture(s.TEXTURE_2D,o),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.LINEAR),a=i.heatmapFbo=t.createFramebuffer(e.width/4,e.height/4,!1,!1),function(t,e,i,s){var a,o;const r=t.gl,n=null!==(a=t.HALF_FLOAT)&&void 0!==a?a:r.UNSIGNED_BYTE,l=null!==(o=t.RGBA16F)&&void 0!==o?o:r.RGBA;r.texImage2D(r.TEXTURE_2D,0,l,e.width/4,e.height/4,0,r.RGBA,n,null),s.colorAttachment.set(i);}(t,e,o,a);}}(o,e,s),o.clear({color:t.Color.transparent});for(let t=0;t{const o=t.create();t.ortho(o,0,e.width,e.height,0,0,1);const r=e.context.gl;return {u_matrix:o,u_world:[r.drawingBufferWidth,r.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,s));}(e,i,s,a);break;case\"line\":!function(e,i,s,a){if(\"translucent\"!==e.renderPass)return;const o=s.paint.get(\"line-opacity\"),r=s.paint.get(\"line-width\");if(0===o.constantOr(1)||0===r.constantOr(1))return;const n=e.depthModeForSublayer(0,Pi.ReadOnly),l=e.colorModeForRenderPass(),c=s.paint.get(\"line-dasharray\"),h=s.paint.get(\"line-pattern\"),u=h.constantOr(1),d=s.paint.get(\"line-gradient\"),_=s.getCrossfadeParameters(),m=u?\"linePattern\":c?\"lineSDF\":d?\"lineGradient\":\"line\",p=e.context,f=p.gl;let g=!0;for(const o of a){const a=i.getTile(o);if(u&&!a.patternsLoaded())continue;const r=a.getBucket(s);if(!r)continue;const v=r.programConfigurations.get(s.id),y=e.context.program.get(),b=e.useProgram(m,v),w=g||b.program!==y,T=e.style.map.terrain&&e.style.map.terrain.getTerrainData(o),E=h.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?o:null,S=u?Se(e,a,s,_,I):c?Ce(e,a,s,c,_,I):d?Ie(e,a,s,r.lineClipsArray.length,I):Ee(e,a,s,I);if(u)p.activeTexture.set(f.TEXTURE0),a.imageAtlasTexture.bind(f.LINEAR,f.CLAMP_TO_EDGE),v.updatePaintBuffers(_);else if(c&&(w||e.lineAtlas.dirty))p.activeTexture.set(f.TEXTURE0),e.lineAtlas.bind(p);else if(d){const a=r.gradients[s.id];let n=a.texture;if(s.gradientVersion!==a.version){let l=256;if(s.stepInterpolant){const s=i.getSource().maxzoom,a=o.canonical.z===s?Math.ceil(1<0?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.map.terrain?\"/terrain\":\"\");return this.cache[i]||(this.cache[i]=new he(this.context,re[t],e,Be[t],this._showOverdrawInspector,this.style.map.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 x(this.context,this.debugOverlayCanvas,this.context.gl.RGBA));}destroy(){this.debugOverlayTexture&&this.debugOverlayTexture.destroy();}overLimit(){const{drawingBufferWidth:t,drawingBufferHeight:e}=this.context.gl;return this.width!==t||this.height!==e}}class ss{constructor(t,e){this.points=t,this.planes=e;}static fromInvProjectionMatrix(e,i,s){const a=Math.pow(2,s),o=[[-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((s=>{const o=1/(s=t.transformMat4([],s,e))[3]/i*a;return t.mul$1(s,s,[o,o,1/s[3],o])})),r=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((t=>{const e=function(t,e){var i=e[0],s=e[1],a=e[2],o=i*i+s*s+a*a;return o>0&&(o=1/Math.sqrt(o)),t[0]=e[0]*o,t[1]=e[1]*o,t[2]=e[2]*o,t}([],function(t,e,i){var s=e[0],a=e[1],o=e[2],r=i[0],n=i[1],l=i[2];return t[0]=a*l-o*n,t[1]=o*r-s*l,t[2]=s*n-a*r,t}([],p([],o[t[0]],o[t[1]]),p([],o[t[2]],o[t[1]]))),i=-((s=e)[0]*(a=o[t[1]])[0]+s[1]*a[1]+s[2]*a[2]);var s,a;return e.concat(i)}));return new ss(o,r)}}class as{constructor(t,e){this.min=t,this.max=e,this.center=function(t,e,i){return t[0]=.5*e[0],t[1]=.5*e[1],t[2]=.5*e[2],t}([],function(t,e,i){return t[0]=e[0]+i[0],t[1]=e[1]+i[1],t[2]=e[2]+i[2],t}([],this.min,this.max));}quadrant(t){const e=[t%2==0,t<2],i=_(this.min),s=_(this.max);for(let t=0;t=0&&r++;if(0===r)return 0;r!==i.length&&(s=!1);}if(s)return 2;for(let t=0;t<3;t++){let i=Number.MAX_VALUE,s=-Number.MAX_VALUE;for(let a=0;athis.max[t]-this.min[t])return 0}return 1}}class os{constructor(t=0,e=0,i=0,s=0){if(isNaN(t)||t<0||isNaN(e)||e<0||isNaN(i)||i<0||isNaN(s)||s<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=s;}interpolate(e,i,s){return null!=i.top&&null!=e.top&&(this.top=t.interpolate.number(e.top,i.top,s)),null!=i.bottom&&null!=e.bottom&&(this.bottom=t.interpolate.number(e.bottom,i.bottom,s)),null!=i.left&&null!=e.left&&(this.left=t.interpolate.number(e.left,i.left,s)),null!=i.right&&null!=e.right&&(this.right=t.interpolate.number(e.right,i.right,s)),this}getCenter(e,i){const s=t.clamp((this.left+e-this.right)/2,0,e),a=t.clamp((this.top+i-this.bottom)/2,0,i);return new t.Point(s,a)}equals(t){return this.top===t.top&&this.bottom===t.bottom&&this.left===t.left&&this.right===t.right}clone(){return new os(this.top,this.bottom,this.left,this.right)}toJSON(){return {top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}class rs{constructor(e,i,s,a,o){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=void 0===o||!!o,this._minZoom=e||0,this._maxZoom=i||22,this._minPitch=null==s?0:s,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 os,this._posMatrixCache={},this._alignedPosMatrixCache={},this._minEleveationForCurrentTile=0;}clone(){const t=new rs(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return t.apply(this),t}apply(t){this.tileSize=t.tileSize,this.latRange=t.latRange,this.width=t.width,this.height=t.height,this._center=t._center,this._elevation=t._elevation,this._minEleveationForCurrentTile=t._minEleveationForCurrentTile,this.zoom=t.zoom,this.angle=t.angle,this._fov=t._fov,this._pitch=t._pitch,this._unmodified=t._unmodified,this._edgeInsets=t._edgeInsets.clone(),this._calcMatrices();}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.Point(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;this.angle!==i&&(this._unmodified=!1,this.angle=i,this._calcMatrices(),this.rotationMatrix=function(){var e=new t.ARRAY_TYPE(4);return t.ARRAY_TYPE!=Float32Array&&(e[1]=0,e[2]=0),e[0]=1,e[3]=1,e}(),function(t,e,i){var s=e[0],a=e[1],o=e[2],r=e[3],n=Math.sin(i),l=Math.cos(i);t[0]=s*l+o*n,t[1]=a*l+r*n,t[2]=s*-n+o*l,t[3]=a*-n+r*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.tileZoom=Math.max(0,Math.floor(e)),this.scale=this.zoomScale(e),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 s=this.pointCoordinate(new t.Point(0,0)),a=this.pointCoordinate(new t.Point(this.width,0)),o=this.pointCoordinate(new t.Point(this.width,this.height)),r=this.pointCoordinate(new t.Point(0,this.height)),n=Math.floor(Math.min(s.x,a.x,o.x,r.x)),l=Math.floor(Math.max(s.x,a.x,o.x,r.x)),c=1;for(let s=n-c;s<=l+c;s++)0!==s&&i.push(new t.UnwrappedTileID(s,e));}return i}coveringTiles(e){var i,s;let a=this.coveringZoomLevel(e);const o=a;if(void 0!==e.minzoom&&ae.maxzoom&&(a=e.maxzoom);const r=this.pointCoordinate(this.getCameraPoint()),n=t.MercatorCoordinate.fromLngLat(this.center),l=Math.pow(2,a),c=[l*r.x,l*r.y,0],h=[l*n.x,l*n.y,0],u=ss.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,a);let d=e.minzoom||0;!e.terrain&&this.pitch<=60&&this._edgeInsets.top<.1&&(d=a);const _=e.terrain?2/Math.min(this.tileSize,e.tileSize)*this.tileSize:3,m=t=>({aabb:new as([t*l,0,0],[(t+1)*l,l,0]),zoom:0,x:0,y:0,wrap:t,fullyVisible:!1}),p=[],g=[],v=a,x=e.reparseOverscaled?o:a;if(this._renderWorldCopies)for(let t=1;t<=3;t++)p.push(m(-t)),p.push(m(t));for(p.push(m(0));p.length>0;){const a=p.pop(),o=a.x,r=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,m=a.aabb.distanceX(l),y=a.aabb.distanceY(l),b=Math.max(Math.abs(m),Math.abs(y));if(a.zoom===v||b>_+(1<=d){const e=v-a.zoom,i=c[0]-.5-(o<>1),u=a.zoom+1;let d=a.aabb.quadrant(l);if(e.terrain){const o=new t.OverscaledTileID(u,a.wrap,u,c,h),r=e.terrain.getMinMaxElevation(o),n=null!==(i=r.minElevation)&&void 0!==i?i:this.elevation,l=null!==(s=r.maxElevation)&&void 0!==s?s:this.elevation;d=new as([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 g.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.Point(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)}getCameraPosition(){return {lngLat:this.pointLocation(this.getCameraPoint()),altitude:Math.cos(this._pitch)*this.cameraToCenterDistance/this._pixelPerMeter+this.elevation}}recalculateZoom(e){const i=this.pointLocation(this.centerPoint,e),s=e.getElevationForLngLatZoom(i,this.tileZoom);if(!(this.elevation-s))return;const a=this.getCameraPosition(),o=t.MercatorCoordinate.fromLngLat(a.lngLat,a.altitude),r=t.MercatorCoordinate.fromLngLat(i,s),n=o.x-r.x,l=o.y-r.y,c=o.z-r.z,h=Math.sqrt(n*n+l*l+c*c),u=this.scaleZoom(this.cameraToCenterDistance/h/this.tileSize);this._elevation=s,this._center=i,this.zoom=u;}setLocationAtPoint(e,i){const s=this.pointCoordinate(i),a=this.pointCoordinate(this.centerPoint),o=this.locationCoordinate(e),r=new t.MercatorCoordinate(o.x-(s.x-a.x),o.y-(s.y-a.y));this.center=this.coordinateLocation(r),this._renderWorldCopies&&(this.center=this.center.wrap());}locationPoint(t,e){return e?this.coordinatePoint(this.locationCoordinate(t),e.getElevationForLngLatZoom(t,this.tileZoom),this.pixelMatrix3D):this.coordinatePoint(this.locationCoordinate(t))}pointLocation(t,e){return this.coordinateLocation(this.pointCoordinate(t,e))}locationCoordinate(e){return t.MercatorCoordinate.fromLngLat(e)}coordinateLocation(t){return t&&t.toLngLat()}pointCoordinate(e,i){if(i){const t=i.pointCoordinate(e);if(null!=t)return t}const s=[e.x,e.y,0,1],a=[e.x,e.y,1,1];t.transformMat4(s,s,this.pixelMatrixInverse),t.transformMat4(a,a,this.pixelMatrixInverse);const o=s[3],r=a[3],n=s[1]/o,l=a[1]/r,c=s[2]/o,h=a[2]/r,u=c===h?0:(0-c)/(h-c);return new t.MercatorCoordinate(t.interpolate.number(s[0]/o,a[0]/r,u)/this.worldSize,t.interpolate.number(n,l,u)/this.worldSize)}coordinatePoint(e,i=0,s=this.pixelMatrix){const a=[e.x*this.worldSize,e.y*this.worldSize,i,1];return t.transformMat4(a,a,s),new t.Point(a[0]/a[3],a[1]/a[3])}getBounds(){const e=Math.max(0,this.height/2-this.getHorizon());return (new A).extend(this.pointLocation(new t.Point(0,e))).extend(this.pointLocation(new t.Point(this.width,e))).extend(this.pointLocation(new t.Point(this.width,this.height))).extend(this.pointLocation(new t.Point(0,this.height)))}getMaxBounds(){return this.latRange&&2===this.latRange.length&&this.lngRange&&2===this.lngRange.length?new A([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null}getHorizon(){return Math.tan(Math.PI/2-this._pitch)*this.cameraToCenterDistance*.85}setMaxBounds(t){t?(this.lngRange=[t.getWest(),t.getEast()],this.latRange=[t.getSouth(),t.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude]);}calculatePosMatrix(e,i=!1){const s=e.key,a=i?this._alignedPosMatrixCache:this._posMatrixCache;if(a[s])return a[s];const o=e.canonical,r=this.worldSize/this.zoomScale(o.z),n=o.x+Math.pow(2,o.z)*e.wrap,l=t.identity(new Float64Array(16));return t.translate(l,l,[n*r,o.y*r,0]),t.scale(l,l,[r/t.EXTENT,r/t.EXTENT,1]),t.multiply(l,i?this.alignedProjMatrix:this.projMatrix,l),a[s]=new Float32Array(l),a[s]}customLayerMatrix(){return this.mercatorMatrix.slice()}_constrain(){if(!this.center||!this.width||!this.height||this._constraining)return;this._constraining=!0;let e,i,s,a,o=-90,r=90,n=-180,l=180;const c=this.size,h=this._unmodified;if(this.latRange){const i=this.latRange;o=t.mercatorYfromLat(i[1])*this.worldSize,r=t.mercatorYfromLat(i[0])*this.worldSize,e=r-or&&(a=r-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&&(s=l-a);}void 0===s&&void 0===a||(this.center=this.unproject(new t.Point(void 0!==s?s: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,s=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;const o=this.cameraToCenterDistance+this._elevation*this._pixelPerMeter/Math.cos(this._pitch),r=Math.min(this.elevation,this._minEleveationForCurrentTile),n=o-r*this._pixelPerMeter/Math.cos(this._pitch),l=r<0?n:o,c=Math.PI/2+this._pitch,h=this._fov*(.5+e.y/this.height),u=Math.sin(h)*l/Math.sin(t.clamp(Math.PI-c-h,.01,Math.PI-.01)),d=this.getHorizon(),_=2*Math.atan(d/this.cameraToCenterDistance)*(.5+e.y/(2*d)),m=Math.sin(_)*l/Math.sin(t.clamp(Math.PI-c-_,.01,Math.PI-.01)),p=Math.min(u,m),f=1.01*(Math.cos(Math.PI/2-this._pitch)*p+l),g=this.height/50;a=new Float64Array(16),t.perspective(a,this._fov,this.width/this.height,g,f),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,-s,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 v=this.width%2/2,x=this.height%2/2,y=Math.cos(this.angle),b=Math.sin(this.angle),w=i-Math.round(i)+y*v+b*x,T=s-Math.round(s)+y*x+b*v,E=new Float64Array(a);if(t.translate(E,E,[w>.5?w-1:w,T>.5?T-1:T,0]),this.alignedProjMatrix=E,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.Point(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.Point(0,e))}getCameraQueryGeometry(e){const i=this.getCameraPoint();if(1===e.length)return [e[0],i];{let s=i.x,a=i.y,o=i.x,r=i.y;for(const t of e)s=Math.min(s,t.x),a=Math.min(a,t.y),o=Math.max(o,t.x),r=Math.max(r,t.y);return [new t.Point(s,a),new t.Point(o,a),new t.Point(o,r),new t.Point(s,r),new t.Point(s,a)]}}}function ns(t,e){let i,s=!1,a=null,o=null;const r=()=>{a=null,s&&(t.apply(o,i),a=setTimeout(r,e),s=!1);};return (...t)=>(s=!0,o=this,i=t,a||r(),a)}class ls{constructor(t){this._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(\"/\")},this._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},this._updateHashUnthrottled=()=>{const t=window.location.href.replace(/(#.+)?$/,this.getHashString());try{window.history.replaceState(window.history.state,null,t);}catch(t){}},this._updateHash=ns(this._updateHashUnthrottled,300),this._hashName=t&&encodeURIComponent(t);}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,s=Math.ceil((i*Math.LN2+Math.log(512/360/.5))/Math.LN10),a=Math.pow(10,s),o=Math.round(e.lng*a)/a,r=Math.round(e.lat*a)/a,n=this._map.getBearing(),l=this._map.getPitch();let c=\"\";if(c+=t?`/${o}/${r}/${i}`:`${i}/${r}/${o}`,(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 s=i.split(\"=\")[0];return s===t?(e=!0,`${s}=${c}`):i})).filter((t=>t));return e||i.push(`${t}=${c}`),`#${i.join(\"&\")}`}return `#${c}`}}const cs={linearity:.3,easing:t.bezier(0,0,.3,1)},hs=t.extend({deceleration:2500,maxSpeed:1400},cs),us=t.extend({deceleration:20,maxSpeed:1400},cs),ds=t.extend({deceleration:1e3,maxSpeed:360},cs),_s=t.extend({deceleration:1e3,maxSpeed:90},cs);class ms{constructor(t){this._map=t,this.clear();}clear(){this._inertiaBuffer=[];}record(e){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:t.browser.now(),settings:e});}_drainInertiaBuffer(){const e=this._inertiaBuffer,i=t.browser.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.Point(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 s=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,a={};if(i.pan.mag()){const o=fs(i.pan.mag(),s,t.extend({},hs,e||{}));a.offset=i.pan.mult(o.amount/i.pan.mag()),a.center=this._map.transform.center,ps(a,o);}if(i.zoom){const t=fs(i.zoom,s,us);a.zoom=this._map.transform.zoom+t.amount,ps(a,t);}if(i.bearing){const e=fs(i.bearing,s,ds);a.bearing=this._map.transform.bearing+t.clamp(e.amount,-179,179),ps(a,e);}if(i.pitch){const t=fs(i.pitch,s,_s);a.pitch=this._map.transform.pitch+t.amount,ps(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 ps(t,e){(!t.duration||t.durations.unproject(t))),l=r.reduce(((t,e,i,s)=>t.add(e.div(s.length))),new t.Point(0,0));super(e,{points:r,point:l,lngLats:n,lngLat:s.unproject(l),originalEvent:a}),this._defaultPrevented=!1;}}class xs extends t.Event{preventDefault(){this._defaultPrevented=!0;}get defaultPrevented(){return this._defaultPrevented}constructor(t,e,i){super(t,{originalEvent:i}),this._defaultPrevented=!1;}}class ys{constructor(t,e){this._map=t,this._clickTolerance=e.clickTolerance;}reset(){delete this._mousedownPos;}wheel(t){return this._firePreventable(new xs(t.type,this._map,t))}mousedown(t,e){return this._mousedownPos=e,this._firePreventable(new gs(t.type,this._map,t))}mouseup(t){this._map.fire(new gs(t.type,this._map,t));}click(t,e){this._mousedownPos&&this._mousedownPos.dist(e)>=this._clickTolerance||this._map.fire(new gs(t.type,this._map,t));}dblclick(t){return this._firePreventable(new gs(t.type,this._map,t))}mouseover(t){this._map.fire(new gs(t.type,this._map,t));}mouseout(t){this._map.fire(new gs(t.type,this._map,t));}touchstart(t){return this._firePreventable(new vs(t.type,this._map,t))}touchmove(t){this._map.fire(new vs(t.type,this._map,t));}touchend(t){this._map.fire(new vs(t.type,this._map,t));}touchcancel(t){this._map.fire(new vs(t.type,this._map,t));}_firePreventable(t){if(this._map.fire(t),t.defaultPrevented)return {}}isEnabled(){return !0}isActive(){return !1}enable(){}disable(){}}class bs{constructor(t){this._map=t;}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent;}mousemove(t){this._map.fire(new gs(t.type,this._map,t));}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1;}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new gs(\"contextmenu\",this._map,this._contextMenuEvent)),delete this._contextMenuEvent);}contextmenu(t){this._delayContextMenu?this._contextMenuEvent=t:this._ignoreContextMenu||this._map.fire(new gs(t.type,this._map,t)),this._map.listens(\"contextmenu\")&&t.preventDefault();}isEnabled(){return !0}isActive(){return !1}enable(){}disable(){}}class ws{constructor(t){this._map=t;}get transform(){return this._map._requestedCameraState||this._map.transform}get center(){return {lng:this.transform.center.lng,lat:this.transform.center.lat}}get zoom(){return this.transform.zoom}get pitch(){return this.transform.pitch}get bearing(){return this.transform.bearing}unproject(e){return this.transform.pointLocation(t.Point.convert(e),this._map.terrain)}}class Ts{constructor(t,e){this._map=t,this._tr=new ws(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&&(i.disableDrag(),this._startPos=this._lastPos=e,this._active=!0);}mousemoveWindow(t,e){if(!this._active)return;const s=e;if(this._lastPos.equals(s)||!this._box&&s.dist(this._startPos)t.fitScreenCoordinates(a,o,this._tr.bearing,{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\"),this._box&&(i.remove(this._box),this._box=null),i.enableDrag(),delete this._startPos,delete this._lastPos;}_fireEvent(e,i){return this._map.fire(new t.Event(e,{originalEvent:i}))}}function Es(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 s=0;sthis.numTouches)&&(this.aborted=!0),this.aborted||(void 0===this.startTime&&(this.startTime=e.timeStamp),s.length===this.numTouches&&(this.centroid=function(e){const i=new t.Point(0,0);for(const t of e)i._add(t);return i.div(e.length)}(i),this.touches=Es(s,i)));}touchmove(t,e,i){if(this.aborted||!this.centroid)return;const s=Es(i,e);for(const t in this.touches){const e=s[t];(!e||e.dist(this.touches[t])>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 Ss{constructor(t){this.singleTap=new Is(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 s=this.singleTap.touchend(t,e,i);if(s){const e=t.timeStamp-this.lastTime<500,i=!this.lastTap||this.lastTap.dist(s)<30;if(e&&i||this.reset(),this.count++,this.lastTime=t.timeStamp,this.lastTap=s,this.count===this.numTaps)return this.reset(),s}}}class Cs{constructor(t){this._tr=new ws(t),this._zoomIn=new Ss({numTouches:1,numTaps:2}),this._zoomOut=new Ss({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 s=this._zoomIn.touchend(t,e,i),a=this._zoomOut.touchend(t,e,i),o=this._tr;return s?(this._active=!0,t.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:e=>e.easeTo({duration:300,zoom:o.zoom+1,around:o.unproject(s)},{originalEvent:t})}):a?(this._active=!0,t.preventDefault(),setTimeout((()=>this.reset()),0),{cameraAnimation:e=>e.easeTo({duration:300,zoom:o.zoom-1,around:o.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}}class Ps{constructor(t){this._enabled=!!t.enable,this._moveStateManager=t.moveStateManager,this._clickTolerance=t.clickTolerance||1,this._moveFunction=t.move,this._activateOnStart=!!t.activateOnStart,t.assignEvents(this),this.reset();}reset(t){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(t);}_move(...t){const e=this._moveFunction(...t);if(e.bearingDelta||e.pitchDelta||e.around||e.panDelta)return this._active=!0,e}dragStart(t,e){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(t)&&(this._moveStateManager.startMove(t),this._lastPoint=e.length?e[0]:e,this._activateOnStart&&this._lastPoint&&(this._active=!0));}dragMove(t,e){if(!this.isEnabled())return;const i=this._lastPoint;if(!i)return;if(t.preventDefault(),!this._moveStateManager.isValidMoveEvent(t))return void this.reset(t);const s=e.length?e[0]:e;return !this._moved&&s.dist(i){t.mousedown=t.dragStart,t.mousemoveWindow=t.dragMove,t.mouseup=t.dragEnd,t.contextmenu=function(t){t.preventDefault();};},Ls=({enable:t,clickTolerance:e,bearingDegreesPerPixelMoved:s=.8})=>{const a=new Ms({checkCorrectEvent:t=>0===i.mouseButton(t)&&t.ctrlKey||2===i.mouseButton(t)});return new Ps({clickTolerance:e,move:(t,e)=>({bearingDelta:(e.x-t.x)*s}),moveStateManager:a,enable:t,assignEvents:As})},Rs=({enable:t,clickTolerance:e,pitchDegreesPerPixelMoved:s=-.5})=>{const a=new Ms({checkCorrectEvent:t=>0===i.mouseButton(t)&&t.ctrlKey||2===i.mouseButton(t)});return new Ps({clickTolerance:e,move:(t,e)=>({pitchDelta:(e.y-t.y)*s}),moveStateManager:a,enable:t,assignEvents:As})};class ks{constructor(t,e){this._minTouches=t.cooperativeGestures?2:1,this._clickTolerance=t.clickTolerance||1,this._map=e,this.reset();}reset(){this._active=!1,this._touches={},this._sum=new t.Point(0,0),setTimeout((()=>{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=Es(s,i),o=new t.Point(0,0),r=new t.Point(0,0);let n=0;for(const t in a){const e=a[t],i=this._touches[t];i&&(o._add(e),r._add(e.sub(i)),n++,a[t]=e);}if(this._touches=a,nMath.abs(t.x)}class Vs extends Fs{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,Gs(t[0].sub(t[1]))&&(this._valid=!1);}_move(t,e,i){if(this._map._cooperativeGestures&&this._currentTouchCount<3)return;const s=t[0].sub(this._lastPoints[0]),a=t[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(s,a,i.timeStamp),this._valid?(this._lastPoints=t,this._active=!0,{pitchDelta:(s.y+a.y)/2*-.5}):void 0}gestureBeginsVertically(t,e,i){if(void 0!==this._valid)return this._valid;const s=t.mag()>=2,a=e.mag()>=2;if(!s&&!a)return;if(!s||!a)return void 0===this._firstMove&&(this._firstMove=i),i-this._firstMove<100&&void 0;const o=t.y>0==e.y>0;return Gs(t)&&Gs(e)&&o}}const qs={panStep:100,bearingStep:15,pitchStep:10};class js{constructor(t){this._tr=new ws(t);const e=qs;this._panStep=e.panStep,this._bearingStep=e.bearingStep,this._pitchStep=e.pitchStep,this._rotationDisabled=!1;}reset(){this._active=!1;}keydown(t){if(t.altKey||t.ctrlKey||t.metaKey)return;let e=0,i=0,s=0,a=0,o=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?s=1:(t.preventDefault(),o=-1);break;case 40:t.shiftKey?s=-1:(t.preventDefault(),o=1);break;default:return}return this._rotationDisabled&&(i=0,s=0),{cameraAnimation:r=>{const n=this._tr;r.easeTo({duration:300,easeId:\"keyboardHandler\",easing:$s,zoom:e?Math.round(n.zoom)+e*(t.shiftKey?2:1):n.zoom,bearing:n.bearing+i*this._bearingStep,pitch:n.pitch+s*this._pitchStep,offset:[-a*this._panStep,-o*this._panStep],center:n.center},{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 $s(t){return t*(2-t)}const Xs=4.000244140625;class Ws{constructor(t,e){this._onTimeout=t=>{this._type=\"wheel\",this._delta-=this._lastValue,this._active||this._start(t);},this._map=t,this._tr=new ws(t),this._el=t.getCanvasContainer(),this._triggerRenderFrame=e,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222;}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(!e[this._map._metaKey])return;e.preventDefault();}let i=e.deltaMode===WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY;const s=t.browser.now(),a=s-(this._lastWheelEventTime||0);this._lastWheelEventTime=s,0!==i&&i%Xs==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();}_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 s=i.mousePos(this._el,e),a=this._tr;this._around=t.LngLat.convert(this._aroundCenter?a.center:a.unproject(s)),this._aroundPoint=a.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._triggerRenderFrame());}renderFrame(){if(!this._frameId)return;if(this._frameId=null,!this.isActive())return;const e=this._tr.transform;if(0!==this._delta){const t=\"wheel\"===this._type&&Math.abs(this._delta)>Xs?this._wheelZoomRate:this._defaultZoomRate;let i=2/(1+Math.exp(-Math.abs(this._delta*t)));this._delta<0&&0!==i&&(i=1/i);const s=\"number\"==typeof this._targetZoom?e.zoomScale(this._targetZoom):e.scale;this._targetZoom=Math.min(e.maxZoom,Math.max(e.minZoom,e.scaleZoom(s*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,s=this._startZoom,a=this._easing;let o,r=!1;if(\"wheel\"===this._type&&s&&a){const e=Math.min((t.browser.now()-this._lastWheelEventTime)/200,1),n=a(e);o=t.interpolate.number(s,i,n),e<1?this._frameId||(this._frameId=!0):r=!0;}else o=i,r=!0;return this._active=!0,r&&(this._active=!1,this._finishTimeout=setTimeout((()=>{this._zooming=!1,this._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout;}),200)),{noInertia:!0,needsRenderFrame:!r,zoomDelta:o-e.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(e){let i=t.defaultEasing;if(this._prevEase){const e=this._prevEase,s=(t.browser.now()-e.start)/e.duration,a=e.easing(s+.01)-e.easing(s),o=.27/Math.sqrt(a*a+1e-4)*.01,r=Math.sqrt(.0729-o*o);i=t.bezier(o,r,.25,1);}return this._prevEase={start:t.browser.now(),duration:e,easing:i},i}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);}}class Hs{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 Ks{constructor(t){this._tr=new ws(t),this.reset();}reset(){this._active=!1;}dblclick(t,e){return t.preventDefault(),{cameraAnimation:i=>{i.easeTo({duration:300,zoom:this._tr.zoom+(t.shiftKey?-1:1),around:this._tr.unproject(e)},{originalEvent:t});}}}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}class Ys{constructor(){this._tap=new Ss({numTouches:1,numTaps:1}),this.reset();}reset(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,delete this._tapPoint,this._tap.reset();}touchstart(t,e,i){if(!this._swipePoint)if(this._tapTime){const s=e[0],a=t.timeStamp-this._tapTime<500,o=this._tapPoint.dist(s)<30;a&&o?i.length>0&&(this._swipePoint=s,this._swipeTouch=i[0].identifier):this.reset();}else this._tap.touchstart(t,e,i);}touchmove(t,e,i){if(this._tapTime){if(this._swipePoint){if(i[0].identifier!==this._swipeTouch)return;const s=e[0],a=s.y-this._swipePoint.y;return this._swipePoint=s,t.preventDefault(),this._active=!0,{zoomDelta:a/128}}}else this._tap.touchmove(t,e,i);}touchend(t,e,i){if(this._tapTime)this._swipePoint&&0===i.length&&this.reset();else {const s=this._tap.touchend(t,e,i);s&&(this._tapTime=t.timeStamp,this._tapPoint=s);}}touchcancel(){this.reset();}enable(){this._enabled=!0;}disable(){this._enabled=!1,this.reset();}isEnabled(){return this._enabled}isActive(){return this._active}}class Js{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\");}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove(\"maplibregl-touch-drag-pan\");}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class Qs{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 ta{constructor(t,e,i,s){this._el=t,this._touchZoom=e,this._touchRotate=i,this._tapDragZoom=s,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\");}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove(\"maplibregl-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 ea=t=>t.zoom||t.drag||t.pitch||t.rotate;class ia extends t.Event{}function sa(t){return t.panDelta&&t.panDelta.mag()||t.zoomDelta||t.bearingDelta||t.pitchDelta}class aa{constructor(t,e){this.handleWindowEvent=t=>{this.handleEvent(t,`${t.type}Window`);},this.handleEvent=(t,e)=>{if(\"blur\"===t.type)return void this.stop(!0);this._updatingCamera=!0;const s=\"renderFrame\"===t.type?void 0:t,a={needsRenderFrame:!1},o={},r={},n=t.touches,l=n?this._getMapTouches(n):void 0,c=l?i.touchPos(this._el,l):i.mousePos(this._el,t);for(const{handlerName:i,handler:n,allowed:h}of this._handlers){if(!n.isEnabled())continue;let u;this._blockedByActive(r,h,i)?n.reset():n[e||t.type]&&(u=n[e||t.type](t,c,l),this.mergeHandlerResult(a,o,u,i,s),u&&u.needsRenderFrame&&this._triggerRenderFrame()),(u||n.isActive())&&(r[i]=n);}const h={};for(const t in this._previousActiveHandlers)r[t]||(h[t]=s);this._previousActiveHandlers=r,(Object.keys(h).length||sa(a))&&(this._changes.push([a,o,h]),this._triggerRenderFrame()),(Object.keys(r).length||sa(a))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:u}=a;u&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],u(this._map));},this._map=t,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new ms(t),this._bearingSnap=e.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(e);const s=this._el;this._listeners=[[s,\"touchstart\",{passive:!0}],[s,\"touchmove\",{passive:!1}],[s,\"touchend\",void 0],[s,\"touchcancel\",void 0],[s,\"mousedown\",void 0],[s,\"mousemove\",void 0],[s,\"mouseup\",void 0],[document,\"mousemove\",{capture:!0}],[document,\"mouseup\",void 0],[s,\"mouseover\",void 0],[s,\"mouseout\",void 0],[s,\"dblclick\",void 0],[s,\"click\",void 0],[s,\"keydown\",{capture:!1}],[s,\"keyup\",void 0],[s,\"wheel\",{passive:!1}],[s,\"contextmenu\",void 0],[window,\"blur\",void 0]];for(const[t,e,s]of this._listeners)i.addEventListener(t,e,t===document?this.handleWindowEvent:this.handleEvent,s);}destroy(){for(const[t,e,s]of this._listeners)i.removeEventListener(t,e,t===document?this.handleWindowEvent:this.handleEvent,s);}_addDefaultHandlers(t){const e=this._map,s=e.getCanvasContainer();this._add(\"mapEvent\",new ys(e,t));const a=e.boxZoom=new Ts(e,t);this._add(\"boxZoom\",a),t.interactive&&t.boxZoom&&a.enable();const o=new Cs(e),r=new Ks(e);e.doubleClickZoom=new Hs(r,o),this._add(\"tapZoom\",o),this._add(\"clickZoom\",r),t.interactive&&t.doubleClickZoom&&e.doubleClickZoom.enable();const n=new Ys;this._add(\"tapDragZoom\",n);const l=e.touchPitch=new Vs(e);this._add(\"touchPitch\",l),t.interactive&&t.touchPitch&&e.touchPitch.enable(t.touchPitch);const c=Ls(t),h=Rs(t);e.dragRotate=new Qs(t,c,h),this._add(\"mouseRotate\",c,[\"mousePitch\"]),this._add(\"mousePitch\",h,[\"mouseRotate\"]),t.interactive&&t.dragRotate&&e.dragRotate.enable();const u=(({enable:t,clickTolerance:e})=>{const s=new Ms({checkCorrectEvent:t=>0===i.mouseButton(t)&&!t.ctrlKey});return new Ps({clickTolerance:e,move:(t,e)=>({around:e,panDelta:e.sub(t)}),activateOnStart:!0,moveStateManager:s,enable:t,assignEvents:As})})(t),d=new ks(t,e);e.dragPan=new Js(s,u,d),this._add(\"mousePan\",u),this._add(\"touchPan\",d,[\"touchZoom\",\"touchRotate\"]),t.interactive&&t.dragPan&&e.dragPan.enable(t.dragPan);const _=new Zs,m=new Us;e.touchZoomRotate=new ta(s,m,_,n),this._add(\"touchRotate\",_,[\"touchPan\",\"touchZoom\"]),this._add(\"touchZoom\",m,[\"touchPan\",\"touchRotate\"]),t.interactive&&t.touchZoomRotate&&e.touchZoomRotate.enable(t.touchZoomRotate);const p=e.scrollZoom=new Ws(e,(()=>this._triggerRenderFrame()));this._add(\"scrollZoom\",p,[\"mousePan\"]),t.interactive&&t.scrollZoom&&e.scrollZoom.enable(t.scrollZoom);const f=e.keyboard=new js(e);this._add(\"keyboard\",f),t.interactive&&t.keyboard&&e.keyboard.enable(),this._add(\"blockableMapEvent\",new bs(e));}_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(ea(this._eventsInProgress))||this.isZooming()}_blockedByActive(t,e,i){for(const s in t)if(s!==i&&(!e||e.indexOf(s)<0))return !0;return !1}_getMapTouches(t){const e=[];for(const i of t)this._el.contains(i.target)&&e.push(i);return e}mergeHandlerResult(e,i,s,a,o){if(!s)return;t.extend(e,s);const r={handlerName:a,originalEvent:s.originalEvent||o};void 0!==s.zoomDelta&&(i.zoom=r),void 0!==s.panDelta&&(i.drag=r),void 0!==s.pitchDelta&&(i.pitch=r),void 0!==s.bearingDelta&&(i.rotate=r);}_applyChanges(){const e={},i={},s={};for(const[a,o,r]of this._changes)a.panDelta&&(e.panDelta=(e.panDelta||new t.Point(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,o),t.extend(s,r);this._updateMapTransform(e,i,s),this._changes=[];}_updateMapTransform(t,e,i){const s=this._map,a=s._getTransformForUpdate(),o=s.terrain;if(!(sa(t)||o&&this._terrainMovement))return this._fireEvents(e,i,!0);let{panDelta:r,zoomDelta:n,bearingDelta:l,pitchDelta:c,around:h,pinchAround:u}=t;void 0!==u&&(h=u),s._stop(!0),h=h||s.transform.centerPoint;const d=a.pointLocation(r?h.sub(r):h);l&&(a.bearing+=l),c&&(a.pitch+=c),n&&(a.zoom+=n),o?this._terrainMovement||!e.drag&&!e.zoom?e.drag&&this._terrainMovement?a.center=a.pointLocation(a.centerPoint.sub(r)):a.setLocationAtPoint(d,h):(this._terrainMovement=!0,this._map._elevationFreeze=!0,a.setLocationAtPoint(d,h),this._map.once(\"moveend\",(()=>{this._map._elevationFreeze=!1,this._terrainMovement=!1,a.recalculateZoom(s.terrain);}))):a.setLocationAtPoint(d,h),s._applyUpdatedTransform(a),this._map._update(),t.noInertia||this._inertia.record(t),this._fireEvents(e,i,!0);}_fireEvents(e,i,s){const a=ea(this._eventsInProgress),o=ea(e),r={};for(const t in e){const{originalEvent:i}=e[t];this._eventsInProgress[t]||(r[`${t}start`]=i),this._eventsInProgress[t]=e[t];}!a&&o&&this._fireEvent(\"movestart\",o.originalEvent);for(const t in r)this._fireEvent(t,r[t]);o&&this._fireEvent(\"move\",o.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:s}=this._eventsInProgress[t];this._handlersById[e].isActive()||(delete this._eventsInProgress[t],l=i[e]||s,n[`${t}end`]=l);}for(const t in n)this._fireEvent(t,n[t]);const c=ea(this._eventsInProgress);if(s&&(a||o)&&!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 ia(\"renderFrame\",{timeStamp:t})),this._applyChanges();}))}_triggerRenderFrame(){void 0===this._frameId&&(this._frameId=this._requestFrame());}}class oa extends t.Evented{constructor(e,i){super(),this._renderFrameCallback=()=>{const e=Math.min((t.browser.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(e)),e<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop();},this._moving=!1,this._zooming=!1,this.transform=e,this._bearingSnap=i.bearingSnap,this.on(\"moveend\",(()=>{delete this._requestedCameraState;}));}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,s){return e=t.Point.convert(e).mult(-1),this.panTo(this.transform.center,t.extend({offset:e},i),s)}panTo(e,i,s){return this.easeTo(t.extend({center:e},i),s)}getZoom(){return this.transform.zoom}setZoom(t,e){return this.jumpTo({zoom:t},e),this}zoomTo(e,i,s){return this.easeTo(t.extend({zoom:e},i),s)}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,s){return this.easeTo(t.extend({bearing:e},i),s)}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&&(s.zoom=t.interpolate.number(a,l,m)),this._rotating&&(s.bearing=t.interpolate.number(o,c,m)),this._pitching&&(s.pitch=t.interpolate.number(r,h,m)),this._padding&&(s.interpolatePadding(n,u,m),_=s.centerPoint.add(d)),this.terrain&&!e.freezeElevation&&this._updateElevation(m),x)s.setLocationAtPoint(x,y);else {const t=s.zoomScale(s.zoom-a),e=l>a?Math.min(2,v):Math.max(.5,v),i=Math.pow(e,1-m),o=s.unproject(f.add(g.mult(m*i)).mult(t));s.setLocationAtPoint(s.renderWorldCopies?o.wrap():o,_);}this._applyUpdatedTransform(s),this._fireMoveEvents(i);}),(t=>{this.terrain&&this._finalizeElevation(),this._afterEase(i,t);}),e),this}_prepareEase(e,i,s={}){this._moving=!0,i||s.moving||this.fire(new t.Event(\"movestart\",e)),this._zooming&&!s.zooming&&this.fire(new t.Event(\"zoomstart\",e)),this._rotating&&!s.rotating&&this.fire(new t.Event(\"rotatestart\",e)),this._pitching&&!s.pitching&&this.fire(new t.Event(\"pitchstart\",e));}_prepareElevation(t){this._elevationCenter=t,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(t,this.transform.tileZoom),this._elevationFreeze=!0;}_updateElevation(e){this.transform._minEleveationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);const i=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(e<1&&i!==this._elevationTarget){const t=this._elevationTarget-this._elevationStart;this._elevationStart+=e*(t-(i-(t*e+this._elevationStart))/(1-e)),this._elevationTarget=i;}this.transform.elevation=t.interpolate.number(this._elevationStart,this._elevationTarget,e);}_finalizeElevation(){this._elevationFreeze=!1,this.transform.recalculateZoom(this.terrain);}_getTransformForUpdate(){return this.transformCameraUpdate?(this._requestedCameraState||(this._requestedCameraState=this.transform.clone()),this._requestedCameraState):this.transform}_applyUpdatedTransform(t){if(!this.transformCameraUpdate)return;const e=t.clone(),{center:i,zoom:s,pitch:a,bearing:o,elevation:r}=this.transformCameraUpdate(e);i&&(e.center=i),void 0!==s&&(e.zoom=s),void 0!==a&&(e.pitch=a),void 0!==o&&(e.bearing=o),void 0!==r&&(e.elevation=r),this.transform.apply(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;const s=this._zooming,a=this._rotating,o=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,s&&this.fire(new t.Event(\"zoomend\",e)),a&&this.fire(new t.Event(\"rotateend\",e)),o&&this.fire(new t.Event(\"pitchend\",e)),this.fire(new t.Event(\"moveend\",e));}flyTo(e,i){if(!e.essential&&t.browser.prefersReducedMotion){const s=t.pick(e,[\"center\",\"zoom\",\"bearing\",\"pitch\",\"around\"]);return this.jumpTo(s,i)}this.stop(),e=t.extend({offset:[0,0],speed:1.2,curve:1.42,easing:t.defaultEasing},e);const s=this._getTransformForUpdate(),a=this.getZoom(),o=this.getBearing(),r=this.getPitch(),n=this.getPadding(),l=\"zoom\"in e?t.clamp(+e.zoom,s.minZoom,s.maxZoom):a,c=\"bearing\"in e?this._normalizeBearing(e.bearing,o):o,h=\"pitch\"in e?+e.pitch:r,u=\"padding\"in e?e.padding:s.padding,d=s.zoomScale(l-a),_=t.Point.convert(e.offset);let m=s.centerPoint.add(_);const p=s.pointLocation(m),f=t.LngLat.convert(e.center||p);this._normalizeCenter(f);const g=s.project(p),v=s.project(f).sub(g);let x=e.curve;const y=Math.max(s.width,s.height),b=y/d,w=v.mag();if(\"minZoom\"in e){const i=t.clamp(Math.min(e.minZoom,a,l),s.minZoom,s.maxZoom),o=y/s.zoomScale(i-a);x=Math.sqrt(o/w*2);}const T=x*x;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 S(t){return (Math.exp(t)+Math.exp(-t))/2}const C=E(!1);let P=function(t){return S(C)/S(C+x*t)},D=function(t){return y*((S(C)*(I(e=C+x*t)/S(e))-I(C))/T)/w;var e;},M=(E(!0)-C)/x;if(Math.abs(w)<1e-6||!isFinite(M)){if(Math.abs(y-b)<1e-6)return this.easeTo(e,i);const t=be.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=o!==c,this._pitching=h!==r,this._padding=!s.isPaddingEqual(u),this._prepareEase(i,!1),this.terrain&&this._prepareElevation(f),this._ease((d=>{const p=d*M,x=1/P(p);s.zoom=1===d?l:a+s.scaleZoom(x),this._rotating&&(s.bearing=t.interpolate.number(o,c,d)),this._pitching&&(s.pitch=t.interpolate.number(r,h,d)),this._padding&&(s.interpolatePadding(n,u,d),m=s.centerPoint.add(_)),this.terrain&&!e.freezeElevation&&this._updateElevation(d);const y=1===d?f:s.unproject(g.add(v.mult(D(p))).mult(x));s.setLocationAtPoint(s.renderWorldCopies?y.wrap():y,m),this._applyUpdatedTransform(s),this._fireMoveEvents(i);}),(()=>{this.terrain&&this._finalizeElevation(),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,s){!1===s.animate||0===s.duration?(e(1),i()):(this._easeStart=t.browser.now(),this._easeOptions=s,this._onEaseFrame=e,this._onEaseEnd=i,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback));}_normalizeBearing(e,i){e=t.wrap(e,-180,180);const s=Math.abs(e-i);return Math.abs(e-360-i)180?-360:i<-180?360:0;}queryTerrainElevation(e){return this.terrain?this.terrain.getElevationForLngLatZoom(t.LngLat.convert(e),this.transform.tileZoom)-this.transform.elevation:null}}class ra{constructor(t={}){this._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\")):(this._container.classList.add(\"maplibregl-compact-show\"),this._container.removeAttribute(\"open\")));},this._updateData=t=>{!t||\"metadata\"!==t.sourceDataType&&\"visibility\"!==t.sourceDataType&&\"style\"!==t.dataType&&\"terrain\"!==t.type||this._updateAttributions();},this._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\",\"maplibregl-compact-show\")):(this._container.setAttribute(\"open\",\"\"),this._container.classList.contains(\"maplibregl-compact\")&&this._container.classList.remove(\"maplibregl-compact\",\"maplibregl-compact-show\"));},this._updateCompactMinimize=()=>{this._container.classList.contains(\"maplibregl-compact\")&&this._container.classList.contains(\"maplibregl-compact-show\")&&this._container.classList.remove(\"maplibregl-compact-show\");},this.options=t;}getDefaultPosition(){return \"bottom-right\"}onAdd(t){return this._map=t,this._compact=this.options&&this.options.compact,this._container=i.create(\"details\",\"maplibregl-ctrl maplibregl-ctrl-attrib\"),this._compactButton=i.create(\"summary\",\"maplibregl-ctrl-attrib-button\",this._container),this._compactButton.addEventListener(\"click\",this._toggleAttribution),this._setElementTitle(this._compactButton,\"ToggleAttribution\"),this._innerContainer=i.create(\"div\",\"maplibregl-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(){i.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);}_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 s=e[i];if(s.used||s.usedForTerrain){const e=s.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 s=i+1;s=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\")):this._container.classList.add(\"maplibregl-attrib-empty\"),this._updateCompact(),this._editLink=null);}}class na{constructor(t={}){this._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\"):e.classList.remove(\"maplibregl-compact\");}},this.options=t;}getDefaultPosition(){return \"bottom-left\"}onAdd(t){this._map=t,this._compact=this.options&&this.options.compact,this._container=i.create(\"div\",\"maplibregl-ctrl\");const e=i.create(\"a\",\"maplibregl-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(){i.remove(this._container),this._map.off(\"resize\",this._updateCompact),this._map=void 0,this._compact=void 0;}}class la{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 ca={\"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\"};var ha=t.createLayout([{name:\"a_pos3d\",type:\"Int16\",components:3}]);class ua extends t.Evented{constructor(t){super(),this.sourceCache=t,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.deltaZoom=1,t.usedForTerrain=!0,t.tileSize=this.tileSize*2**this.deltaZoom;}destruct(){this.sourceCache.usedForTerrain=!1,this.sourceCache.tileSize=null;}update(e,i){this.sourceCache.update(e,i),this._renderableTilesKeys=[];const s={};for(const a of e.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:i}))s[a.key]=!0,this._renderableTilesKeys.push(a.key),this._tiles[a.key]||(a.posMatrix=new Float64Array(16),t.ortho(a.posMatrix,0,t.EXTENT,0,t.EXTENT,0,1),this._tiles[a.key]=new X(a,this.tileSize));for(const t in this._tiles)s[t]||delete this._tiles[t];}freeRtt(t){for(const e in this._tiles){const i=this._tiles[e];(!t||i.tileID.equals(t)||i.tileID.isChildOf(t)||t.isChildOf(i.tileID))&&(i.rtt=[]);}}getRenderableTiles(){return this._renderableTilesKeys.map((t=>this.getTileByID(t)))}getTileByID(t){return this._tiles[t]}getTerrainCoords(e){const i={};for(const s of this._renderableTilesKeys){const a=this._tiles[s].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[s]=a;}else if(a.canonical.isChildOf(e.canonical)){const o=e.clone();o.posMatrix=new Float64Array(16);const r=a.canonical.z-e.canonical.z,n=a.canonical.x-(a.canonical.x>>r<>r<>r;t.ortho(o.posMatrix,0,c,0,c,0,1),t.translate(o.posMatrix,o.posMatrix,[-n*c,-l*c,0]),i[s]=o;}else if(e.canonical.isChildOf(a.canonical)){const o=e.clone();o.posMatrix=new Float64Array(16);const r=e.canonical.z-a.canonical.z,n=e.canonical.x-(e.canonical.x>>r<>r<>r;t.ortho(o.posMatrix,0,t.EXTENT,0,t.EXTENT,0,1),t.translate(o.posMatrix,o.posMatrix,[n*c,l*c,0]),t.scale(o.posMatrix,o.posMatrix,[1/2**r,1/2**r,0]),i[s]=o;}}return i}getSourceTile(t,e){const i=this.sourceCache._source;let s=t.overscaledZ-this.deltaZoom;if(s>i.maxzoom&&(s=i.maxzoom),s=i.minzoom&&(!a||!a.dem);)a=this.sourceCache.getTileByID(t.scaledTo(s--).key);return a}tilesAfterTime(t=Date.now()){return Object.values(this._tiles).filter((e=>e.timeAdded>=t))}}class da{constructor(t,e,i){this.painter=t,this.sourceCache=new ua(e),this.options=i,this.exaggeration=\"number\"==typeof i.exaggeration?i.exaggeration:1,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024;}getDEMElevation(e,i,s,a=t.EXTENT){var o;if(!(i>=0&&i=0&&se.canonical.z&&(e.canonical.z>=s?a=e.canonical.z-s:t.warnOnce(\"cannot calculate elevation if elevation maxzoom > source.maxzoom\"));const o=e.canonical.x-(e.canonical.x>>a<>a<>8<<4|t>>8,i[e+3]=0;const s=new t.RGBAImage({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(i.buffer)),a=new x(e,s,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),s=this.painter.context,a=s.gl;s.bindFramebuffer.set(this.getFramebuffer(\"coords\").framebuffer),a.readPixels(e.x,this.painter.height/devicePixelRatio-e.y-1,1,1,a.RGBA,a.UNSIGNED_BYTE,i),s.bindFramebuffer.set(null);const o=i[0]+(i[2]>>4<<8),r=i[1]+((15&i[2])<<8),n=this.coordsIndex[255-i[3]],l=n&&this.sourceCache.getTileByID(n);if(!l)return null;const c=this._coordsTextureSize,h=(1<t.id!==e)),this._recentlyUsed.push(t.id);}stampObject(t){t.stamp=++this._stamp;}getOrCreateFreeObject(){for(const t of this._recentlyUsed)if(!this._objects[t].inUse)return this._objects[t];if(this._objects.length>=this._size)throw new Error(\"No free RenderPool available, call freeAllObjects() required!\");const t=this._createObject(this._objects.length);return this._objects.push(t),t}freeObject(t){t.inUse=!1;}freeAllObjects(){for(const t of this._objects)this.freeObject(t);}isFull(){return !(this._objects.length!t.inUse))}}const ma={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0};class pa{constructor(t,e){this.painter=t,this.terrain=e,this.pool=new _a(t.context,30,e.sourceCache.tileSize*e.qualityFactor);}destruct(){this.pool.destruct();}getTexture(t){return this.pool.getObjectForId(t.rtt[this._stacks.length-1].id).texture}prepareForRender(t,e){this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.sourceCache.getRenderableTiles(),this._renderableLayerIds=t._order.filter((i=>!t._layers[i].isHidden(e))),this._coordsDescendingInv={};for(const e in t.sourceCaches){this._coordsDescendingInv[e]={};const i=t.sourceCaches[e].getVisibleCoordinates();for(const t of i){const i=this.terrain.sourceCache.getTerrainCoords(t);for(const t in i)this._coordsDescendingInv[e][t]||(this._coordsDescendingInv[e][t]=[]),this._coordsDescendingInv[e][t].push(i[t]);}}this._coordsDescendingInvStr={};for(const e of t._order){const i=t._layers[e],s=i.source;if(ma[i.type]&&!this._coordsDescendingInvStr[s]){this._coordsDescendingInvStr[s]={};for(const t in this._coordsDescendingInv[s])this._coordsDescendingInvStr[s][t]=this._coordsDescendingInv[s][t].map((t=>t.key)).sort().join();}}for(const t of this._renderableTiles)for(const e in this._coordsDescendingInvStr){const i=this._coordsDescendingInvStr[e][t.tileID.key];i&&i!==t.rttCoords[e]&&(t.rtt=[]);}}renderLayer(e){if(e.isHidden(this.painter.transform.zoom))return !1;const i=e.type,s=this.painter,a=this._renderableLayerIds[this._renderableLayerIds.length-1]===e.id;if(ma[i]&&(this._prevType&&ma[this._prevType]||this._stacks.push([]),this._prevType=i,this._stacks[this._stacks.length-1].push(e.id),!a))return !0;if(ma[this._prevType]||ma[i]&&a){this._prevType=i;const e=this._stacks.length-1,a=this._stacks[e]||[];for(const i of this._renderableTiles){if(this.pool.isFull()&&(es(this.painter,this.terrain,this._rttTiles),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(i),i.rtt[e]){const t=this.pool.getObjectForId(i.rtt[e].id);if(t.stamp===i.rtt[e].stamp){this.pool.useObject(t);continue}}const o=this.pool.getOrCreateFreeObject();this.pool.useObject(o),this.pool.stampObject(o),i.rtt[e]={id:o.id,stamp:o.stamp},s.context.bindFramebuffer.set(o.fbo.framebuffer),s.context.clear({color:t.Color.transparent,stencil:0}),s.currentStencilSource=void 0;for(let t=0;t{t.touchstart=t.dragStart,t.touchmoveWindow=t.dragMove,t.touchend=t.dragEnd;},xa={showCompass:!0,showZoom:!0,visualizePitch:!1};class ya{constructor(e,s,a=!1){this.mousedown=e=>{this.startMouse(t.extend({},e,{ctrlKey:!0,preventDefault:()=>e.preventDefault()}),i.mousePos(this.element,e)),i.addEventListener(window,\"mousemove\",this.mousemove),i.addEventListener(window,\"mouseup\",this.mouseup);},this.mousemove=t=>{this.moveMouse(t,i.mousePos(this.element,t));},this.mouseup=t=>{this.mouseRotate.dragEnd(t),this.mousePitch&&this.mousePitch.dragEnd(t),this.offTemp();},this.touchstart=t=>{1!==t.targetTouches.length?this.reset():(this._startPos=this._lastPos=i.touchPos(this.element,t.targetTouches)[0],this.startTouch(t,this._startPos),i.addEventListener(window,\"touchmove\",this.touchmove,{passive:!1}),i.addEventListener(window,\"touchend\",this.touchend));},this.touchmove=t=>{1!==t.targetTouches.length?this.reset():(this._lastPos=i.touchPos(this.element,t.targetTouches)[0],this.moveTouch(t,this._lastPos));},this.touchend=t=>{0===t.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos){this.mouseRotate.reset(),this.mousePitch&&this.mousePitch.reset(),this.touchRotate.reset(),this.touchPitch&&this.touchPitch.reset(),delete this._startPos,delete this._lastPos,this.offTemp();},this._clickTolerance=10;const o=e.dragRotate._mouseRotate.getClickTolerance(),r=e.dragRotate._mousePitch.getClickTolerance();this.element=s,this.mouseRotate=Ls({clickTolerance:o,enable:!0}),this.touchRotate=(({enable:t,clickTolerance:e,bearingDegreesPerPixelMoved:i=.8})=>{const s=new zs;return new Ps({clickTolerance:e,move:(t,e)=>({bearingDelta:(e.x-t.x)*i}),moveStateManager:s,enable:t,assignEvents:va})})({clickTolerance:o,enable:!0}),this.map=e,a&&(this.mousePitch=Rs({clickTolerance:r,enable:!0}),this.touchPitch=(({enable:t,clickTolerance:e,pitchDegreesPerPixelMoved:i=-.5})=>{const s=new zs;return new Ps({clickTolerance:e,move:(t,e)=>({pitchDelta:(e.y-t.y)*i}),moveStateManager:s,enable:t,assignEvents:va})})({clickTolerance:r,enable:!0})),i.addEventListener(s,\"mousedown\",this.mousedown),i.addEventListener(s,\"touchstart\",this.touchstart,{passive:!1}),i.addEventListener(s,\"touchcancel\",this.reset);}startMouse(t,e){this.mouseRotate.dragStart(t,e),this.mousePitch&&this.mousePitch.dragStart(t,e),i.disableDrag();}startTouch(t,e){this.touchRotate.dragStart(t,e),this.touchPitch&&this.touchPitch.dragStart(t,e),i.disableDrag();}moveMouse(t,e){const i=this.map,{bearingDelta:s}=this.mouseRotate.dragMove(t,e)||{};if(s&&i.setBearing(i.getBearing()+s),this.mousePitch){const{pitchDelta:s}=this.mousePitch.dragMove(t,e)||{};s&&i.setPitch(i.getPitch()+s);}}moveTouch(t,e){const i=this.map,{bearingDelta:s}=this.touchRotate.dragMove(t,e)||{};if(s&&i.setBearing(i.getBearing()+s),this.touchPitch){const{pitchDelta:s}=this.touchPitch.dragMove(t,e)||{};s&&i.setPitch(i.getPitch()+s);}}off(){const t=this.element;i.removeEventListener(t,\"mousedown\",this.mousedown),i.removeEventListener(t,\"touchstart\",this.touchstart,{passive:!1}),i.removeEventListener(window,\"touchmove\",this.touchmove,{passive:!1}),i.removeEventListener(window,\"touchend\",this.touchend),i.removeEventListener(t,\"touchcancel\",this.reset),this.offTemp();}offTemp(){i.enableDrag(),i.removeEventListener(window,\"mousemove\",this.mousemove),i.removeEventListener(window,\"mouseup\",this.mouseup),i.removeEventListener(window,\"touchmove\",this.touchmove,{passive:!1}),i.removeEventListener(window,\"touchend\",this.touchend);}}let ba;function wa(e,i,s){if(e=new t.LngLat(e.lng,e.lat),i){const a=new t.LngLat(e.lng-360,e.lat),o=new t.LngLat(e.lng+360,e.lat),r=s.locationPoint(e).distSqr(i);s.locationPoint(a).distSqr(i)180;){const t=s.locationPoint(e);if(t.x>=0&&t.y>=0&&t.x<=s.width&&t.y<=s.height)break;e.lng>s.center.lng?e.lng-=360:e.lng+=360;}return e}const Ta={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 Ea(t,e,i){const s=t.classList;for(const t in Ta)s.remove(`maplibregl-${i}-anchor-${t}`);s.add(`maplibregl-${i}-anchor-${e}`);}class Ia extends t.Evented{constructor(e){if(super(),this._onKeyPress=t=>{const e=t.code,i=t.charCode||t.keyCode;\"Space\"!==e&&\"Enter\"!==e&&32!==i&&13!==i||this.togglePopup();},this._onMapClick=t=>{const e=t.originalEvent.target,i=this._element;this._popup&&(e===i||i.contains(e))&&this.togglePopup();},this._update=t=>{if(!this._map)return;const e=this._map.loaded()&&!this._map.isMoving();(\"terrain\"===(null==t?void 0:t.type)||\"render\"===(null==t?void 0:t.type)&&!e)&&this._map.once(\"render\",this._update),this._map.transform.renderWorldCopies&&(this._lngLat=wa(this._lngLat,this._pos,this._map.transform)),this._pos=this._map.project(this._lngLat)._add(this._offset);let s=\"\";\"viewport\"===this._rotationAlignment||\"auto\"===this._rotationAlignment?s=`rotateZ(${this._rotation}deg)`:\"map\"===this._rotationAlignment&&(s=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let a=\"\";\"viewport\"===this._pitchAlignment||\"auto\"===this._pitchAlignment?a=\"rotateX(0deg)\":\"map\"===this._pitchAlignment&&(a=`rotateX(${this._map.getPitch()}deg)`),t&&\"moveend\"!==t.type||(this._pos=this._pos.round()),i.setTransform(this._element,`${Ta[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${a} ${s}`),this._map.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));},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\")));},this._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\";},this._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));},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.Point.convert(e&&e.offset||[0,0]);else {this._defaultMarker=!0,this._element=i.create(\"div\"),this._element.setAttribute(\"aria-label\",\"Map marker\");const s=i.createNS(\"http://www.w3.org/2000/svg\",\"svg\"),a=41,o=27;s.setAttributeNS(null,\"display\",\"block\"),s.setAttributeNS(null,\"height\",`${a}px`),s.setAttributeNS(null,\"width\",`${o}px`),s.setAttributeNS(null,\"viewBox\",`0 0 ${o} ${a}`);const r=i.createNS(\"http://www.w3.org/2000/svg\",\"g\");r.setAttributeNS(null,\"stroke\",\"none\"),r.setAttributeNS(null,\"stroke-width\",\"1\"),r.setAttributeNS(null,\"fill\",\"none\"),r.setAttributeNS(null,\"fill-rule\",\"evenodd\");const n=i.createNS(\"http://www.w3.org/2000/svg\",\"g\");n.setAttributeNS(null,\"fill-rule\",\"nonzero\");const l=i.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=i.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=i.createNS(\"http://www.w3.org/2000/svg\",\"g\");h.setAttributeNS(null,\"fill\",this._color);const u=i.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=i.createNS(\"http://www.w3.org/2000/svg\",\"g\");d.setAttributeNS(null,\"opacity\",\"0.25\"),d.setAttributeNS(null,\"fill\",\"#000000\");const _=i.createNS(\"http://www.w3.org/2000/svg\",\"path\");_.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(_);const m=i.createNS(\"http://www.w3.org/2000/svg\",\"g\");m.setAttributeNS(null,\"transform\",\"translate(6.0, 7.0)\"),m.setAttributeNS(null,\"fill\",\"#FFFFFF\");const p=i.createNS(\"http://www.w3.org/2000/svg\",\"g\");p.setAttributeNS(null,\"transform\",\"translate(8.0, 8.0)\");const f=i.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=i.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(m),n.appendChild(p),s.appendChild(n),s.setAttributeNS(null,\"height\",a*this._scale+\"px\"),s.setAttributeNS(null,\"width\",o*this._scale+\"px\"),this._element.appendChild(s),this._offset=t.Point.convert(e&&e.offset||[0,-14]);}if(this._element.classList.add(\"maplibregl-marker\"),this._element.addEventListener(\"dragstart\",(t=>{t.preventDefault();})),this._element.addEventListener(\"mousedown\",(t=>{t.preventDefault();})),Ea(this._element,this._anchor,\"marker\"),e&&e.className)for(const t of e.className.split(\" \"))this._element.classList.add(t);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),t.on(\"terrain\",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),i.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,s=Math.abs(i)/Math.SQRT2;t.options.offset=this._defaultMarker?{top:[0,0],\"top-left\":[0,0],\"top-right\":[0,0],bottom:[0,-e],\"bottom-left\":[s,-1*(e-i+s)],\"bottom-right\":[-s,-1*(e-i+s)],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}getPopup(){return this._popup}togglePopup(){const t=this._popup;return t?(t.isOpen()?t.remove():t.addTo(this._map),this):this}getOffset(){return this._offset}setOffset(e){return this._offset=t.Point.convert(e),this._update(),this}addClassName(t){this._element.classList.add(t);}removeClassName(t){this._element.classList.remove(t);}toggleClassName(t){return this._element.classList.toggle(t)}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 Sa={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0};let Ca=0,Pa=!1;const Da={maxWidth:100,unit:\"metric\"};function Ma(t,e,i){const s=i&&i.maxWidth||100,a=t._container.clientHeight/2,o=t.unproject([0,a]),r=t.unproject([s,a]),n=o.distanceTo(r);if(i&&\"imperial\"===i.unit){const i=3.2808*n;i>5280?za(e,s,i/5280,t._getUIString(\"ScaleControl.Miles\")):za(e,s,i,t._getUIString(\"ScaleControl.Feet\"));}else i&&\"nautical\"===i.unit?za(e,s,n/1852,t._getUIString(\"ScaleControl.NauticalMiles\")):n>=1e3?za(e,s,n/1e3,t._getUIString(\"ScaleControl.Kilometers\")):za(e,s,n,t._getUIString(\"ScaleControl.Meters\"));}function za(t,e,i,s){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} ${s}`;}const Aa={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:\"\",maxWidth:\"240px\"},La=[\"a[href]\",\"[tabindex]:not([tabindex='-1'])\",\"[contenteditable]:not([contenteditable='false'])\",\"button:not([disabled])\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].join(\", \");function Ra(e){if(e){if(\"number\"==typeof e){const i=Math.round(Math.abs(e)/Math.SQRT2);return {center:new t.Point(0,0),top:new t.Point(0,e),\"top-left\":new t.Point(i,i),\"top-right\":new t.Point(-i,i),bottom:new t.Point(0,-e),\"bottom-left\":new t.Point(i,-i),\"bottom-right\":new t.Point(-i,-i),left:new t.Point(e,0),right:new t.Point(-e,0)}}if(e instanceof t.Point||Array.isArray(e)){const i=t.Point.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.Point.convert(e.center||[0,0]),top:t.Point.convert(e.top||[0,0]),\"top-left\":t.Point.convert(e[\"top-left\"]||[0,0]),\"top-right\":t.Point.convert(e[\"top-right\"]||[0,0]),bottom:t.Point.convert(e.bottom||[0,0]),\"bottom-left\":t.Point.convert(e[\"bottom-left\"]||[0,0]),\"bottom-right\":t.Point.convert(e[\"bottom-right\"]||[0,0]),left:t.Point.convert(e.left||[0,0]),right:t.Point.convert(e.right||[0,0])}}return Ra(new t.Point(0,0))}const ka={extend:(e,...i)=>t.extend(e,...i),run(t){t();},logToElement(t,e=!1,i=\"log\"){const s=window.document.getElementById(i);s&&(e&&(s.innerHTML=\"\"),s.innerHTML+=`
${t}`);}},Fa=e;class Ba{static get version(){return Fa}static get workerCount(){return tt.workerCount}static set workerCount(t){tt.workerCount=t;}static get maxParallelImageRequests(){return t.config.MAX_PARALLEL_IMAGE_REQUESTS}static set maxParallelImageRequests(e){t.config.MAX_PARALLEL_IMAGE_REQUESTS=e;}static get workerUrl(){return t.config.WORKER_URL}static set workerUrl(e){t.config.WORKER_URL=e;}static addProtocol(e,i){t.config.REGISTERED_PROTOCOLS[e]=i;}static removeProtocol(e){delete t.config.REGISTERED_PROTOCOLS[e];}}return Ba.Map=class extends oa{constructor(e){if(t.PerformanceUtils.mark(t.PerformanceMarkers.create),null!=(e=t.extend({},ga,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 rs(e.minZoom,e.maxZoom,e.minPitch,e.maxPitch,e.renderWorldCopies),{bearingSnap:e.bearingSnap}),this._cooperativeGesturesOnWheel=t=>{this._onCooperativeGesture(t,t[this._metaKey],1);},this._contextLost=e=>{e.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new t.Event(\"webglcontextlost\",{originalEvent:e}));},this._contextRestored=e=>{this._setupPainter(),this.resize(),this._update(),this.fire(new t.Event(\"webglcontextrestored\",{originalEvent:e}));},this._onMapScroll=t=>{if(t.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onWindowOnline=()=>{this._update();},this._interactive=e.interactive,this._cooperativeGestures=e.cooperativeGestures,this._metaKey=0===navigator.platform.indexOf(\"Mac\")?\"metaKey\":\"ctrlKey\",this._maxTileCacheSize=e.maxTileCacheSize,this._maxTileCacheZoomLevels=e.maxTileCacheZoomLevels,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 la,this._controls=[],this._mapId=t.uniqueId(),this._locale=t.extend({},ca,e.locale),this._clickTolerance=e.clickTolerance,this._overridePixelRatio=e.pixelRatio,this._maxCanvasSize=e.maxCanvasSize,this.transformCameraUpdate=e.transformCameraUpdate,this._imageQueueHandle=c.addThrottleControl((()=>this.isMoving())),this._requestManager=new u(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),this._setupContainer(),this._setupPainter(),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);})),this.once(\"idle\",(()=>{this._idleTriggered=!0;})),\"undefined\"!=typeof window){addEventListener(\"online\",this._onWindowOnline,!1);let t=!1;const e=ns((t=>{this._trackResize&&!this._removed&&this.resize(t)._update();}),50);this._resizeObserver=new ResizeObserver((i=>{t?e(i):t=!0;})),this._resizeObserver.observe(this._container);}this.handlers=new aa(this,e),this._cooperativeGestures&&this._setupCooperativeGestures(),this._hash=e.hash&&new ls(\"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,this._validateStyle=e.validateStyle,e.style&&this.setStyle(e.style,{localIdeographFontFamily:e.localIdeographFontFamily}),e.attributionControl&&this.addControl(new ra({customAttribution:e.customAttribution})),e.maplibreLogo&&this.addControl(new na,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 s=e.onAdd(this);this._controls.push(e);const a=this._controlPositions[i];return -1!==i.indexOf(\"bottom\")?a.insertBefore(s,a.firstChild):a.appendChild(s),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,s){return null==s&&this.terrain&&(s=this.terrain.getElevationForLngLatZoom(i,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(t,e,i,s)}resize(e){var i;const s=this._containerDimensions(),a=s[0],o=s[1],r=this._getClampedPixelRatio(a,o);if(this._resizeCanvas(a,o,r),this.painter.resize(a,o,r),this.painter.overLimit()){const t=this.painter.context.gl;this._maxCanvasSize=[t.drawingBufferWidth,t.drawingBufferHeight];const e=this._getClampedPixelRatio(a,o);this._resizeCanvas(a,o,e),this.painter.resize(a,o,e);}this.transform.resize(a,o),null===(i=this._requestedCameraState)||void 0===i||i.resize(a,o);const n=!this._moving;return n&&(this.stop(),this.fire(new t.Event(\"movestart\",e)).fire(new t.Event(\"move\",e))),this.fire(new t.Event(\"resize\",e)),n&&this.fire(new t.Event(\"moveend\",e)),this}_getClampedPixelRatio(t,e){const{0:i,1:s}=this._maxCanvasSize,a=this.getPixelRatio(),o=t*a,r=e*a;return Math.min(o>i?i/o:1,r>s?s/r:1)*a}getPixelRatio(){var t;return null!==(t=this._overridePixelRatio)&&void 0!==t?t:devicePixelRatio}setPixelRatio(t){this._overridePixelRatio=t,this.resize();}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(t){return this.transform.setMaxBounds(A.convert(t)),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()}getCooperativeGestures(){return this._cooperativeGestures}setCooperativeGestures(t){return this._cooperativeGestures=t,this._cooperativeGestures?this._setupCooperativeGestures():this._destroyCooperativeGestures(),this}project(e){return this.transform.locationPoint(t.LngLat.convert(e),this.style&&this.terrain)}unproject(e){return this.transform.pointLocation(t.Point.convert(e),this.terrain)}isMoving(){var t;return this._moving||(null===(t=this.handlers)||void 0===t?void 0:t.isMoving())}isZooming(){var t;return this._zooming||(null===(t=this.handlers)||void 0===t?void 0:t.isZooming())}isRotating(){var t;return this._rotating||(null===(t=this.handlers)||void 0===t?void 0:t.isRotating())}_createDelegatedListener(t,e,i){if(\"mouseenter\"===t||\"mouseover\"===t){let s=!1;const a=a=>{const o=this.getLayer(e)?this.queryRenderedFeatures(a.point,{layers:[e]}):[];o.length?s||(s=!0,i.call(this,new gs(t,this,a.originalEvent,{features:o}))):s=!1;};return {layer:e,listener:i,delegates:{mousemove:a,mouseout:()=>{s=!1;}}}}if(\"mouseleave\"===t||\"mouseout\"===t){let s=!1;const a=a=>{(this.getLayer(e)?this.queryRenderedFeatures(a.point,{layers:[e]}):[]).length?s=!0:s&&(s=!1,i.call(this,new gs(t,this,a.originalEvent)));},o=e=>{s&&(s=!1,i.call(this,new gs(t,this,e.originalEvent)));};return {layer:e,listener:i,delegates:{mousemove:a,mouseout:o}}}{const s=t=>{const s=this.getLayer(e)?this.queryRenderedFeatures(t.point,{layers:[e]}):[];s.length&&(t.features=s,i.call(this,t),delete t.features);};return {layer:e,listener:i,delegates:{[t]:s}}}}on(t,e,i){if(void 0===i)return super.on(t,e);const s=this._createDelegatedListener(t,e,i);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[t]=this._delegatedListeners[t]||[],this._delegatedListeners[t].push(s);for(const t in s.delegates)this.on(t,s.delegates[t]);return this}once(t,e,i){if(void 0===i)return super.once(t,e);const s=this._createDelegatedListener(t,e,i);for(const t in s.delegates)this.once(t,s.delegates[t]);return this}off(t,e,i){return void 0===i?super.off(t,e):(this._delegatedListeners&&this._delegatedListeners[t]&&(s=>{const a=this._delegatedListeners[t];for(let t=0;tthis._updateStyle(t,e)));const i=this.style&&e.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!t)),t?(this.style=new se(this,e||{}),this.style.setEventedParent(this,{style:this.style}),\"string\"==typeof t?this.style.loadURL(t,e,i):this.style.loadJSON(t,e,i),this):(delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new se(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty());}_diffStyle(e,i){if(\"string\"==typeof e){const s=this._requestManager.transformRequest(e,h.Style);t.getJSON(s,((e,s)=>{e?this.fire(new t.ErrorEvent(e)):s&&this._updateDiff(s,i);}));}else \"object\"==typeof e&&this._updateDiff(e,i);}_updateDiff(e,i){try{this.style.setState(e,i)&&this._update(!0);}catch(s){t.warnOnce(`Unable to perform style diff: ${s.message||s.error||s}. 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(e){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off(\"data\",this._terrainDataCallback),e){const i=this.style.sourceCaches[e.source];if(!i)throw new Error(`cannot load terrain, because there exists no source with ID: ${e.source}`);for(const i in this.style._layers){const s=this.style._layers[i];\"hillshade\"===s.type&&s.source===e.source&&t.warnOnce(\"You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.\");}this.terrain=new da(this.painter,i,e),this.painter.renderToTexture=new pa(this.painter,this.terrain),this.transform._minEleveationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this._terrainDataCallback=t=>{\"style\"===t.dataType?this.terrain.sourceCache.freeRtt():\"source\"===t.dataType&&t.tile&&(t.sourceId!==e.source||this._elevationFreeze||(this.transform._minEleveationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this.terrain.sourceCache.freeRtt(t.tile.tileID));},this.style.on(\"data\",this._terrainDataCallback);}else this.terrain&&this.terrain.sourceCache.destruct(),this.terrain=null,this.painter.renderToTexture&&this.painter.renderToTexture.destruct(),this.painter.renderToTexture=null,this.transform._minEleveationForCurrentTile=0,this.transform.elevation=0;return this.fire(new t.Event(\"terrain\",{terrain:e})),this}getTerrain(){var t,e;return null!==(e=null===(t=this.terrain)||void 0===t?void 0:t.options)&&void 0!==e?e:null}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,s={}){const{pixelRatio:a=1,sdf:o=!1,stretchX:r,stretchY:n,content:l}=s;if(this._lazyInitEmptyStyle(),!(i instanceof HTMLImageElement||t.isImageBitmap(i))){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:s,height:c,data:h}=i,u=i;return this.style.addImage(e,{data:new t.RGBAImage({width:s,height:c},new Uint8Array(h)),pixelRatio:a,stretchX:r,stretchY:n,content:l,sdf:o,version:0,userImage:u}),u.onAdd&&u.onAdd(this,e),this}}{const{width:s,height:c,data:h}=t.browser.getImageData(i);this.style.addImage(e,{data:new t.RGBAImage({width:s,height:c},h),pixelRatio:a,stretchX:r,stretchY:n,content:l,sdf:o,version:0});}}updateImage(e,i){const s=this.style.getImage(e);if(!s)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.browser.getImageData(i):i,{width:o,height:r,data:n}=a;if(void 0===o||void 0===r)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(o!==s.data.width||r!==s.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));return s.data.replace(n,l),this.style.updateImage(e,s),this}getImage(t){return this.style.getImage(t)}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(t,e){c.getImage(this._requestManager.transformRequest(t,h.Image),e);}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,s={}){return this.style.setPaintProperty(t,e,i,s),this._update(!0)}getPaintProperty(t,e){return this.style.getPaintProperty(t,e)}setLayoutProperty(t,e,i,s={}){return this.style.setLayoutProperty(t,e,i,s),this._update(!0)}getLayoutProperty(t,e){return this.style.getLayoutProperty(t,e)}setGlyphs(t,e={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(t,e),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(t,e,i={}){return this._lazyInitEmptyStyle(),this.style.addSprite(t,e,i,(t=>{t||this._update(!0);})),this}removeSprite(t){return this._lazyInitEmptyStyle(),this.style.removeSprite(t),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(t,e={}){return this._lazyInitEmptyStyle(),this.style.setSprite(t,e,(t=>{t||this._update(!0);})),this}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\");const e=this._canvasContainer=i.create(\"div\",\"maplibregl-canvas-container\",t);this._interactive&&e.classList.add(\"maplibregl-interactive\"),this._canvas=i.create(\"canvas\",\"maplibregl-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 s=this._containerDimensions(),a=this._getClampedPixelRatio(s[0],s[1]);this._resizeCanvas(s[0],s[1],a);const o=this._controlContainer=i.create(\"div\",\"maplibregl-control-container\",t),r=this._controlPositions={};[\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"].forEach((t=>{r[t]=i.create(\"div\",`maplibregl-ctrl-${t} `,o);})),this._container.addEventListener(\"scroll\",this._onMapScroll,!1);}_setupCooperativeGestures(){this._cooperativeGesturesScreen=i.create(\"div\",\"maplibregl-cooperative-gesture-screen\",this._container);let t=\"boolean\"!=typeof this._cooperativeGestures&&this._cooperativeGestures.windowsHelpText?this._cooperativeGestures.windowsHelpText:\"Use Ctrl + scroll to zoom the map\";0===navigator.platform.indexOf(\"Mac\")&&(t=\"boolean\"!=typeof this._cooperativeGestures&&this._cooperativeGestures.macHelpText?this._cooperativeGestures.macHelpText:\"Use ⌘ + scroll to zoom the map\"),this._cooperativeGesturesScreen.innerHTML=`\\n
${t}
\\n
${\"boolean\"!=typeof this._cooperativeGestures&&this._cooperativeGestures.mobileHelpText?this._cooperativeGestures.mobileHelpText:\"Use two fingers to move the map\"}
\\n `,this._cooperativeGesturesScreen.setAttribute(\"aria-hidden\",\"true\"),this._canvasContainer.addEventListener(\"wheel\",this._cooperativeGesturesOnWheel,!1),this._canvasContainer.classList.add(\"maplibregl-cooperative-gestures\");}_destroyCooperativeGestures(){i.remove(this._cooperativeGesturesScreen),this._canvasContainer.removeEventListener(\"wheel\",this._cooperativeGesturesOnWheel,!1),this._canvasContainer.classList.remove(\"maplibregl-cooperative-gestures\");}_resizeCanvas(t,e,i){this._canvas.width=Math.floor(i*t),this._canvas.height=Math.floor(i*e),this._canvas.style.width=`${t}px`,this._canvas.style.height=`${e}px`;}_setupPainter(){const t={alpha:!0,stencil:!0,depth:!0,failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1};let e=null;this._canvas.addEventListener(\"webglcontextcreationerror\",(i=>{e={requestedAttributes:t},i&&(e.statusMessage=i.statusMessage,e.type=i.type);}),{once:!0});const i=this._canvas.getContext(\"webgl2\",t)||this._canvas.getContext(\"webgl\",t);if(!i){const t=\"Failed to initialize WebGL\";throw e?(e.message=t,new Error(JSON.stringify(e))):new Error(t)}this.painter=new is(i,this.transform),s.testSupport(i);}_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.style._loaded?(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){const i=this._idleTriggered?this._fadeDuration:0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(e),this._removed)return;let s=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;const e=this.transform.zoom,a=t.browser.now();this.style.zoomHistory.update(e,a);const o=new t.EvaluationParameters(e,{now:a,fadeDuration:i,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),r=o.crossFadingFactor();1===r&&r===this._crossFadingFactor||(s=!0,this._crossFadingFactor=r),this.style.update(o);}this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.terrain?(this.terrain.sourceCache.update(this.transform,this.terrain),this.transform._minEleveationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this._elevationFreeze||(this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))):(this.transform._minEleveationForCurrentTile=0,this.transform.elevation=0),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,i,this._crossSourceCollisions),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:i,showPadding:this.showPadding}),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()||s)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();const a=this._sourcesDirty||this._styleDirty||this._placementDirty;return a||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new t.Event(\"idle\")),!this._loaded||this._fullyLoaded||a||(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(){var e;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(\"online\",this._onWindowOnline,!1),c.removeThrottleControl(this._imageQueueHandle),null===(e=this._resizeObserver)||void 0===e||e.disconnect();const s=this.painter.context.gl.getExtension(\"WEBGL_lose_context\");s&&s.loseContext(),this._canvas.removeEventListener(\"webglcontextrestored\",this._contextRestored,!1),this._canvas.removeEventListener(\"webglcontextlost\",this._contextLost,!1),i.remove(this._canvasContainer),i.remove(this._controlContainer),this._cooperativeGestures&&this._destroyCooperativeGestures(),this._container.classList.remove(\"maplibregl-map\"),t.PerformanceUtils.clearMetrics(),this._removed=!0,this.fire(new t.Event(\"remove\"));}triggerRepaint(){this.style&&!this._frame&&(this._frame=t.browser.frame((e=>{t.PerformanceUtils.frame(e),this._frame=null,this._render(e);})));}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();}get version(){return fa}getCameraTargetElevation(){return this.transform.elevation}},Ba.NavigationControl=class{constructor(e){this._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());},this._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;},this._setButtonTitle=(t,e)=>{const i=this._map._getUIString(`NavigationControl.${e}`);t.title=i,t.setAttribute(\"aria-label\",i);},this.options=t.extend({},xa,e),this._container=i.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),this._container.addEventListener(\"contextmenu\",(t=>t.preventDefault())),this.options.showZoom&&(this._zoomInButton=this._createButton(\"maplibregl-ctrl-zoom-in\",(t=>this._map.zoomIn({},{originalEvent:t}))),i.create(\"span\",\"maplibregl-ctrl-icon\",this._zoomInButton).setAttribute(\"aria-hidden\",\"true\"),this._zoomOutButton=this._createButton(\"maplibregl-ctrl-zoom-out\",(t=>this._map.zoomOut({},{originalEvent:t}))),i.create(\"span\",\"maplibregl-ctrl-icon\",this._zoomOutButton).setAttribute(\"aria-hidden\",\"true\")),this.options.showCompass&&(this._compass=this._createButton(\"maplibregl-ctrl-compass\",(t=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:t}):this._map.resetNorth({},{originalEvent:t});})),this._compassIcon=i.create(\"span\",\"maplibregl-ctrl-icon\",this._compass),this._compassIcon.setAttribute(\"aria-hidden\",\"true\"));}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 ya(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){i.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 s=i.create(\"button\",t,this._container);return s.type=\"button\",s.addEventListener(\"click\",e),s}},Ba.GeolocateControl=class extends t.Evented{constructor(e){super(),this._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\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\");break;case\"BACKGROUND\":case\"BACKGROUND_ERROR\":this._watchState=\"BACKGROUND\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\"),this._geolocateButton.classList.add(\"maplibregl-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\"),this.fire(new t.Event(\"geolocate\",e)),this._finish();}},this._updateCamera=e=>{const i=new t.LngLat(e.coords.longitude,e.coords.latitude),s=e.coords.accuracy,a=this._map.getBearing(),o=t.extend({bearing:a},this.options.fitBoundsOptions),r=A.fromLngLat(i,s);this._map.fitBounds(r,o,{geolocateSource:!0});},this._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();},this._onZoom=()=>{this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius();},this._onError=e=>{if(this._map){if(this.options.trackUserLocation)if(1===e.code){this._watchState=\"OFF\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"maplibregl-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&&Pa)return;this._setErrorState();}\"OFF\"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add(\"maplibregl-user-location-dot-stale\"),this.fire(new t.Event(\"error\",e)),this._finish();}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0;},this._setupUI=e=>{if(this._map){if(this._container.addEventListener(\"contextmenu\",(t=>t.preventDefault())),this._geolocateButton=i.create(\"button\",\"maplibregl-ctrl-geolocate\",this._container),i.create(\"span\",\"maplibregl-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=i.create(\"div\",\"maplibregl-user-location-dot\"),this._userLocationDotMarker=new Ia({element:this._dotElement}),this._circleElement=i.create(\"div\",\"maplibregl-user-location-accuracy-circle\"),this._accuracyCircleMarker=new Ia({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\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this.fire(new t.Event(\"trackuserlocationend\")));}));}},this.options=t.extend({},Sa,e);}onAdd(t){return this._map=t,this._container=i.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),function(t,e=!1){void 0===ba||e?void 0!==window.navigator.permissions?window.navigator.permissions.query({name:\"geolocation\"}).then((e=>{ba=\"denied\"!==e.state,t(ba);})).catch((()=>{ba=!!window.navigator.geolocation,t(ba);})):(ba=!!window.navigator.geolocation,t(ba)):t(ba);}(this._setupUI),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(),i.remove(this._container),this._map.off(\"zoom\",this._onZoom),this._map=void 0,Ca=0,Pa=!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\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active-error\");break;case\"ACTIVE_LOCK\":this._watchState=\"ACTIVE_ERROR\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\");break;case\"BACKGROUND\":this._watchState=\"BACKGROUND_ERROR\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background-error\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\");break;case\"ACTIVE_ERROR\":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}}_updateCircleRadius(){const t=this._map.getBounds(),e=t.getSouthEast(),i=t.getNorthEast(),s=e.distanceTo(i),a=Math.ceil(this._accuracy/(s/this._map._container.clientHeight)*2);this._circleElement.style.width=`${a}px`,this._circleElement.style.height=`${a}px`;}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\":Ca--,Pa=!1,this._watchState=\"OFF\",this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"),this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"),this._geolocateButton.classList.remove(\"maplibregl-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\"),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\"),this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\");break;case\"ACTIVE_LOCK\":this._geolocateButton.classList.add(\"maplibregl-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\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"true\"),Ca++,Ca>1?(t={maximumAge:6e5,timeout:0},Pa=!0):(t=this.options.positionOptions,Pa=!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\"),this._geolocateButton.setAttribute(\"aria-pressed\",\"false\"),this.options.showUserLocation&&this._updateMarker(null);}},Ba.AttributionControl=ra,Ba.LogoControl=na,Ba.ScaleControl=class{constructor(e){this._onMove=()=>{Ma(this._map,this._container,this.options);},this.setUnit=t=>{this.options.unit=t,Ma(this._map,this._container,this.options);},this.options=t.extend({},Da,e);}getDefaultPosition(){return \"bottom-left\"}onAdd(t){return this._map=t,this._container=i.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-scale\",t.getContainer()),this._map.on(\"move\",this._onMove),this._onMove(),this._container}onRemove(){i.remove(this._container),this._map.off(\"move\",this._onMove),this._map=void 0;}},Ba.FullscreenControl=class extends t.Evented{constructor(e={}){super(),this._onFullscreenChange=()=>{(window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement)===this._container!==this._fullscreen&&this._handleFullscreenChange();},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen();},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.\")),\"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(t){return this._map=t,this._container||(this._container=this._map.getContainer()),this._controlContainer=i.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),this._setupUI(),this._controlContainer}onRemove(){i.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange);}_setupUI(){const t=this._fullscreenButton=i.create(\"button\",\"maplibregl-ctrl-fullscreen\",this._controlContainer);i.create(\"span\",\"maplibregl-ctrl-icon\",t).setAttribute(\"aria-hidden\",\"true\"),t.type=\"button\",this._updateTitle(),this._fullscreenButton.addEventListener(\"click\",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange);}_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}_handleFullscreenChange(){this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle(\"maplibregl-ctrl-shrink\"),this._fullscreenButton.classList.toggle(\"maplibregl-ctrl-fullscreen\"),this._updateTitle(),this._fullscreen?(this.fire(new t.Event(\"fullscreenstart\")),this._map._cooperativeGestures&&(this._prevCooperativeGestures=this._map._cooperativeGestures,this._map.setCooperativeGestures())):(this.fire(new t.Event(\"fullscreenend\")),this._prevCooperativeGestures&&(this._map.setCooperativeGestures(this._prevCooperativeGestures),delete this._prevCooperativeGestures));}_exitFullscreen(){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._togglePseudoFullScreen();}_requestFullscreen(){this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen?this._container.webkitRequestFullscreen():this._togglePseudoFullScreen();}_togglePseudoFullScreen(){this._container.classList.toggle(\"maplibregl-pseudo-fullscreen\"),this._handleFullscreenChange(),this._map.resize();}},Ba.TerrainControl=class{constructor(t){this._toggleTerrain=()=>{this._map.getTerrain()?this._map.setTerrain(null):this._map.setTerrain(this.options),this._updateTerrainIcon();},this._updateTerrainIcon=()=>{this._terrainButton.classList.remove(\"maplibregl-ctrl-terrain\"),this._terrainButton.classList.remove(\"maplibregl-ctrl-terrain-enabled\"),this._map.terrain?(this._terrainButton.classList.add(\"maplibregl-ctrl-terrain-enabled\"),this._terrainButton.title=this._map._getUIString(\"TerrainControl.disableTerrain\")):(this._terrainButton.classList.add(\"maplibregl-ctrl-terrain\"),this._terrainButton.title=this._map._getUIString(\"TerrainControl.enableTerrain\"));},this.options=t;}onAdd(t){return this._map=t,this._container=i.create(\"div\",\"maplibregl-ctrl maplibregl-ctrl-group\"),this._terrainButton=i.create(\"button\",\"maplibregl-ctrl-terrain\",this._container),i.create(\"span\",\"maplibregl-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(){i.remove(this._container),this._map.off(\"terrain\",this._updateTerrainIcon),this._map=void 0;}},Ba.Popup=class extends t.Evented{constructor(e){super(),this.remove=()=>(this._content&&i.remove(this._content),this._container&&(i.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),this._onMouseUp=t=>{this._update(t.point);},this._onMouseMove=t=>{this._update(t.point);},this._onDrag=t=>{this._update(t.point);},this._update=t=>{if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(!this._container){if(this._container=i.create(\"div\",\"maplibregl-popup\",this._map.getContainer()),this._tip=i.create(\"div\",\"maplibregl-popup-tip\",this._container),this._container.appendChild(this._content),this.options.className)for(const t of this.options.className.split(\" \"))this._container.classList.add(t);this._trackPointer&&this._container.classList.add(\"maplibregl-popup-track-pointer\");}if(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=wa(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 s=this.options.anchor;const a=Ra(this.options.offset);if(!s){const t=this._container.offsetWidth,i=this._container.offsetHeight;let o;o=e.y+a.bottom.ythis._map.transform.height-i?[\"bottom\"]:[],e.xthis._map.transform.width-t/2&&o.push(\"right\"),s=0===o.length?\"bottom\":o.join(\"-\");}const o=e.add(a[s]).round();i.setTransform(this._container,`${Ta[s]} translate(${o.x}px,${o.y}px)`),Ea(this._container,s,\"popup\");},this._onClose=()=>{this.remove();},this.options=t.extend(Object.create(Aa),e);}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\"),this._map._canvasContainer.classList.add(\"maplibregl-track-pointer\")):this._map.on(\"move\",this._update),this.fire(new t.Event(\"open\")),this}isOpen(){return !!this._map}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\"),this._map._canvasContainer.classList.remove(\"maplibregl-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\"),this._map._canvasContainer.classList.add(\"maplibregl-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 s;for(i.innerHTML=t;s=i.firstChild,s;)e.appendChild(s);return this.setDOMContent(e)}getMaxWidth(){var t;return null===(t=this._container)||void 0===t?void 0:t.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=i.create(\"div\",\"maplibregl-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=i.create(\"button\",\"maplibregl-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));}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const t=this._container.querySelector(La);t&&t.focus();}},Ba.Marker=Ia,Ba.Style=se,Ba.LngLat=t.LngLat,Ba.LngLatBounds=A,Ba.Point=t.Point,Ba.MercatorCoordinate=t.MercatorCoordinate,Ba.Evented=t.Evented,Ba.AJAXError=t.AJAXError,Ba.config=t.config,Ba.CanvasSource=Z,Ba.GeoJSONSource=B,Ba.ImageSource=U,Ba.RasterDEMTileSource=F,Ba.RasterTileSource=k,Ba.VectorTileSource=R,Ba.VideoSource=N,Ba.setRTLTextPlugin=t.setRTLTextPlugin,Ba.getRTLTextPluginStatus=t.getRTLTextPluginStatus,Ba.prewarm=function(){st().acquire(Q);},Ba.clearPrewarmedResources=function(){const t=it;t&&(t.isPreloaded()&&1===t.numActive()?(t.release(Q),it=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()\"));},ka.extend(Ba,{isSafari:t.isSafari,getPerformanceMetrics:t.PerformanceUtils.getPerformanceMetrics}),Ba}));\n\n//\n// Our custom intro provides a specialized \"define()\" function, called by the\n// AMD modules below, that sets up the worker blob URL and then executes the\n// main module, storing its exported value as 'maplibregl'\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__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\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","/*\nnotes\n- Event infrastructure for RM2\n\ntodo\n- testiranje\n- JSDdoc API dokumentacija\n- definiranje EventArgs za vse OL3 evente\n*/\n\nimport { CoordinateLike } from '../model/RM2Geometry';\nimport { Map } from '../map/RM2Map';\nimport { Layer } from './RM2Layer';\nimport { Feature } from './RM2Feature';\n\n/**\n * Event interface.\n * \n * @interface IEvent\n * @template T\n */\nexport interface IRM2Event {\n /**\n * Subscribes event handler.\n *\n * @param {{ (data?: T): void }} handler\n *\n * @memberOf IEvent\n */\n subscribe(handler: (data?: T) => void): void;\n\n /**\n * Unsubscribes event handler.\n *\n * @param {{ (data?: T): void }} handler\n *\n * @memberOf IEvent\n */\n unsubscribe(handler: (data?: T) => void): void;\n}\n\n/**\n * Event object.\n *\n * @class Event\n * @implements {IRM2Event}\n * @template T\n */\nexport class RM2Event implements IRM2Event {\n private _handlers: ((data?: T) => void)[] = [];\n\n /**\n * Subscribes event handler.\n *\n * @param {{ (data?: T): void }} handler\n *\n * @memberOf Event\n */\n public subscribe(handler: (data?: T) => void): void {\n this._handlers.push(handler);\n }\n\n /**\n * Unsubscribes event handler.\n *\n * @param {{ (data?: T): void }} handler\n *\n * @memberOf Event\n */\n public unsubscribe(handler: (data?: T) => void): void {\n this._handlers = this._handlers.filter(h => h !== handler);\n }\n\n /**\n * Trigger event handlers.\n *\n * @param {T} [data]\n *\n * @memberOf Event\n */\n public trigger(data?: T) {\n this._handlers.slice(0).forEach(h => h(data));\n }\n\n /**\n * Exposes this event.\n *\n * @returns {IEvent}\n *\n * @memberOf Event\n */\n public expose(): IRM2Event {\n return this;\n }\n}\n\n\n/**\n * MapEventArgs interface.\n */\nexport interface MapEventArgs {\n map: Map;\n coordinate?: CoordinateLike;\n projection?: string;\n nativeEvent?: Event;\n // layer?: Layer;\n features?: Array;\n featureLayers?: Array;\n}\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","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","/*\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 { v4 } from \"uuid\";\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 = v4();\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 as any))\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","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 { v4 } from 'uuid';\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 = v4();\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: v4() };\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 = v4();\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: v4() };\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 = v4();\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: v4() };\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 = v4();\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: v4() };\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","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 { v4 } from 'uuid';\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 = v4();\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 { v4 } from 'uuid';\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 = v4();\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 || v4();\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 = v4();\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","const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let 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 log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n this.observers[event] = this.observers[event] || [];\n this.observers[event].push(listener);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event] = this.observers[event].filter(l => l !== listener);\n }\n 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 if (this.observers[event]) {\n const cloned = [].concat(this.observers[event]);\n cloned.forEach(observer => {\n observer(...args);\n });\n }\n if (this.observers['*']) {\n const cloned = [].concat(this.observers['*']);\n cloned.forEach(observer => {\n observer.apply(observer, [event, ...args]);\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((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(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\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 const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const 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 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, s => _entityMap[s]);\n }\n return data;\n}\nconst chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = new RegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const paths = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n if (current[paths[i]] === undefined) {\n let j = 2;\n let p = paths.slice(i, i + j).join(keySeparator);\n let mix = current[p];\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 if (mix === undefined) return undefined;\n if (mix === null) return null;\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n const joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n current = current[paths[i]];\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let 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 if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n const 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 addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const 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 if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const 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 if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\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 const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = resType === '[object Array]';\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\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 let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const defaultValue = options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...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 let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let 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 const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n this.pluralResolver.getSuffixes(language, options).forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\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 if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: resolved,\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${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 codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let 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 static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const 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 return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const 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 getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\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 return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n 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 let 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 toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || 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 fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet 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}];\nlet _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};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (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 this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\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 const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${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 return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const 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 reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const regexpStr = `${this.prefix}(.+?)${this.suffix}`;\n this.regexp = new RegExp(regexpStr, 'g');\n const regexpUnescapeStr = `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`;\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n const nestingRegexpStr = `${this.nestingPrefix}(.+?)${this.nestingSuffix}`;\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\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 replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\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 if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\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 const opts = optStr.split(';');\n opts.forEach(opt => {\n if (!opt) return;\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\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.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.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 if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\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 loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\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(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\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 if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${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 if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\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: false,\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 let 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 if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: (value, format, lng, options) => value,\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 if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && 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 const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\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 let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const 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 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 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 _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\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 _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\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 const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const 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, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n 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 if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\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 if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\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 options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...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 options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\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 const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\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 loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0);\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n 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 const 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 const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\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 clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n 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}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nexport function 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}\nexport function hasXMLHttpRequest() {\n return typeof XMLHttpRequest === 'function' || (typeof XMLHttpRequest === \"undefined\" ? \"undefined\" : _typeof(XMLHttpRequest)) === 'object';\n}\nfunction isPromise(maybePromise) {\n return !!maybePromise && typeof maybePromise.then === 'function';\n}\nexport function makePromise(maybePromise) {\n if (isPromise(maybePromise)) {\n return maybePromise;\n }\n return Promise.resolve(maybePromise);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport { defaults, hasXMLHttpRequest } from './utils.js';\nimport * as fetchNode from './getFetch.cjs';\nvar fetchApi;\nif (typeof fetch === 'function') {\n if (typeof global !== 'undefined' && global.fetch) {\n fetchApi = global.fetch;\n } else if (typeof window !== 'undefined' && window.fetch) {\n fetchApi = window.fetch;\n } else {\n fetchApi = fetch;\n }\n}\nvar XmlHttpRequestApi;\nif (hasXMLHttpRequest()) {\n if (typeof global !== 'undefined' && global.XMLHttpRequest) {\n XmlHttpRequestApi = global.XMLHttpRequest;\n } else if (typeof window !== 'undefined' && window.XMLHttpRequest) {\n XmlHttpRequestApi = window.XMLHttpRequest;\n }\n}\nvar ActiveXObjectApi;\nif (typeof ActiveXObject === 'function') {\n if (typeof global !== 'undefined' && global.ActiveXObject) {\n ActiveXObjectApi = global.ActiveXObject;\n } else if (typeof window !== 'undefined' && window.ActiveXObject) {\n ActiveXObjectApi = window.ActiveXObject;\n }\n}\nif (!fetchApi && fetchNode && !XmlHttpRequestApi && !ActiveXObjectApi) fetchApi = fetchNode.default || fetchNode;\nif (typeof fetchApi !== 'function') fetchApi = undefined;\nvar addQueryString = function addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '';\n for (var paramName in params) {\n queryString += '&' + encodeURIComponent(paramName) + '=' + encodeURIComponent(params[paramName]);\n }\n if (!queryString) return url;\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n return url;\n};\nvar fetchIt = function fetchIt(url, fetchOptions, callback) {\n var resolver = function resolver(response) {\n if (!response.ok) return callback(response.statusText || 'Error', {\n status: response.status\n });\n response.text().then(function (data) {\n callback(null, {\n status: response.status,\n data: data\n });\n }).catch(callback);\n };\n if (typeof fetch === 'function') {\n fetch(url, fetchOptions).then(resolver).catch(callback);\n } else {\n fetchApi(url, fetchOptions).then(resolver).catch(callback);\n }\n};\nvar omitFetchOptions = false;\nvar requestWithFetch = function requestWithFetch(options, url, payload, callback) {\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n var headers = defaults({}, typeof options.customHeaders === 'function' ? options.customHeaders() : options.customHeaders);\n if (payload) headers['Content-Type'] = 'application/json';\n var reqOptions = typeof options.requestOptions === 'function' ? options.requestOptions(payload) : options.requestOptions;\n var fetchOptions = defaults({\n method: payload ? 'POST' : 'GET',\n body: payload ? options.stringify(payload) : undefined,\n headers: headers\n }, omitFetchOptions ? {} : reqOptions);\n try {\n fetchIt(url, fetchOptions, callback);\n } catch (e) {\n if (!reqOptions || Object.keys(reqOptions).length === 0 || !e.message || e.message.indexOf('not implemented') < 0) {\n return callback(e);\n }\n try {\n Object.keys(reqOptions).forEach(function (opt) {\n delete fetchOptions[opt];\n });\n fetchIt(url, fetchOptions, callback);\n omitFetchOptions = true;\n } catch (err) {\n callback(err);\n }\n }\n};\nvar requestWithXmlHttpRequest = function requestWithXmlHttpRequest(options, url, payload, callback) {\n if (payload && _typeof(payload) === 'object') {\n payload = addQueryString('', payload).slice(1);\n }\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n try {\n var x;\n if (XmlHttpRequestApi) {\n x = new XmlHttpRequestApi();\n } else {\n x = new ActiveXObjectApi('MSXML2.XMLHTTP.3.0');\n }\n x.open(payload ? 'POST' : 'GET', url, 1);\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n x.withCredentials = !!options.withCredentials;\n if (payload) {\n x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n if (x.overrideMimeType) {\n x.overrideMimeType('application/json');\n }\n var h = options.customHeaders;\n h = typeof h === 'function' ? h() : h;\n if (h) {\n for (var i in h) {\n x.setRequestHeader(i, h[i]);\n }\n }\n x.onreadystatechange = function () {\n x.readyState > 3 && callback(x.status >= 400 ? x.statusText : null, {\n status: x.status,\n data: x.responseText\n });\n };\n x.send(payload);\n } catch (e) {\n console && console.log(e);\n }\n};\nvar request = function request(options, url, payload, callback) {\n if (typeof payload === 'function') {\n callback = payload;\n payload = undefined;\n }\n callback = callback || function () {};\n if (fetchApi && url.indexOf('file:') !== 0) {\n return requestWithFetch(options, url, payload, callback);\n }\n if (hasXMLHttpRequest() || typeof ActiveXObject === 'function') {\n return requestWithXmlHttpRequest(options, url, payload, callback);\n }\n callback(new Error('No fetch and no xhr implementation found!'));\n};\nexport default request;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { defaults, makePromise } from './utils.js';\nimport request from './request.js';\nvar getDefaults = function getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n parse: function parse(data) {\n return JSON.parse(data);\n },\n stringify: JSON.stringify,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n parseLoadPayload: function parseLoadPayload(languages, namespaces) {\n return undefined;\n },\n request: request,\n reloadInterval: typeof window !== 'undefined' ? false : 60 * 60 * 1000,\n customHeaders: {},\n queryStringParams: {},\n crossDomain: false,\n withCredentials: false,\n overrideMimeType: false,\n requestOptions: {\n mode: 'cors',\n credentials: 'same-origin',\n cache: 'default'\n }\n };\n};\nvar Backend = function () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n _classCallCheck(this, Backend);\n this.services = services;\n this.options = options;\n this.allOptions = allOptions;\n this.type = 'backend';\n this.init(services, options, allOptions);\n }\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var allOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n this.allOptions = allOptions;\n if (this.services && this.options.reloadInterval) {\n setInterval(function () {\n return _this.reload();\n }, this.options.reloadInterval);\n }\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n this._readAny(languages, languages, namespaces, namespaces, callback);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n this._readAny([language], language, [namespace], namespace, callback);\n }\n }, {\n key: \"_readAny\",\n value: function _readAny(languages, loadUrlLanguages, namespaces, loadUrlNamespaces, callback) {\n var _this2 = this;\n var loadPath = this.options.loadPath;\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n loadPath = makePromise(loadPath);\n loadPath.then(function (resolvedLoadPath) {\n if (!resolvedLoadPath) return callback(null, {});\n var url = _this2.services.interpolator.interpolate(resolvedLoadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n _this2.loadUrl(url, callback, loadUrlLanguages, loadUrlNamespaces);\n });\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback, languages, namespaces) {\n var _this3 = this;\n var lng = typeof languages === 'string' ? [languages] : languages;\n var ns = typeof namespaces === 'string' ? [namespaces] : namespaces;\n var payload = this.options.parseLoadPayload(lng, ns);\n this.options.request(this.options, url, payload, function (err, res) {\n if (res && (res.status >= 500 && res.status < 600 || !res.status)) return callback('failed loading ' + url + '; status code: ' + res.status, true);\n if (res && res.status >= 400 && res.status < 500) return callback('failed loading ' + url + '; status code: ' + res.status, false);\n if (!res && err && err.message && err.message.indexOf('Failed to fetch') > -1) return callback('failed loading ' + url + ': ' + err.message, true);\n if (err) return callback(err, false);\n var ret, parseErr;\n try {\n if (typeof res.data === 'string') {\n ret = _this3.options.parse(res.data, languages, namespaces);\n } else {\n ret = res.data;\n }\n } catch (e) {\n parseErr = 'failed parsing ' + url + ' to json';\n }\n if (parseErr) return callback(parseErr, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue, callback) {\n var _this4 = this;\n if (!this.options.addPath) return;\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n var finished = 0;\n var dataArray = [];\n var resArray = [];\n languages.forEach(function (lng) {\n var addPath = _this4.options.addPath;\n if (typeof _this4.options.addPath === 'function') {\n addPath = _this4.options.addPath(lng, namespace);\n }\n var url = _this4.services.interpolator.interpolate(addPath, {\n lng: lng,\n ns: namespace\n });\n _this4.options.request(_this4.options, url, payload, function (data, res) {\n finished += 1;\n dataArray.push(data);\n resArray.push(res);\n if (finished === languages.length) {\n if (typeof callback === 'function') callback(dataArray, resArray);\n }\n });\n });\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this5 = this;\n var _this$services = this.services,\n backendConnector = _this$services.backendConnector,\n languageUtils = _this$services.languageUtils,\n logger = _this$services.logger;\n var currentLanguage = backendConnector.language;\n if (currentLanguage && currentLanguage.toLowerCase() === 'cimode') return;\n var toLoad = [];\n var append = function append(lng) {\n var lngs = languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n append(currentLanguage);\n if (this.allOptions.preload) this.allOptions.preload.forEach(function (l) {\n return append(l);\n });\n toLoad.forEach(function (lng) {\n _this5.allOptions.ns.forEach(function (ns) {\n backendConnector.read(lng, ns, 'read', null, null, function (err, data) {\n if (err) logger.warn(\"loading namespace \".concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) logger.log(\"loaded namespace \".concat(ns, \" for language \").concat(lng), data);\n backendConnector.loaded(\"\".concat(lng, \"|\").concat(ns), err, data);\n });\n });\n });\n }\n }]);\n return Backend;\n}();\nBackend.type = 'backend';\nexport default Backend;","import i18next from 'i18next';\r\nimport jqueryI18next from 'jquery-i18next';\r\nimport XHR from 'i18next-http-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","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\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); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\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 { ExpressionSpecification, LayerSpecification, GeoJSONSourceSpecification } from '@maplibre/maplibre-gl-style-spec';\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\nimport { ILayerMetadata } from '../model/style-metadata/RM2LayerMetadata';\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 private readonly _layerIds = [\r\n this._highlightsSourceName,\r\n this._markerLayerName,\r\n this._polygonLayerName, \r\n this._lineSolidLayerName,\r\n this._lineDottedLayerName,\r\n this._lineDashedLayerName,\r\n this._circleLayerName,\r\n ]\r\n private readonly _layerSpecifications: LayerSpecification[] = []\r\n\r\n protected readonly rmFeatureLabel = 'rm_isFeature';\r\n\r\n private _includeInIdentify: boolean = true;\r\n \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: 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: LayerSpecification = {\r\n 'id': this._polygonLayerName,\r\n 'type': 'fill',\r\n 'source': this._highlightsSourceName,\r\n 'metadata': { includeInIdentify: this._includeInIdentify },\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 this._map.addLayer(polygonMbLayer, topLayer ? topLayer.id : null);\r\n this._layerSpecifications.push(polygonMbLayer);\r\n\r\n const defaultSolidLine = new LineOptions();\r\n const solidLineMbLayer: LayerSpecification = {\r\n 'id': this._lineSolidLayerName,\r\n 'type': 'line',\r\n 'source': this._highlightsSourceName,\r\n 'metadata': { includeInIdentify: this._includeInIdentify },\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 this._map.addLayer(solidLineMbLayer, topLayer ? topLayer.id : null);\r\n this._layerSpecifications.push(solidLineMbLayer);\r\n\r\n const defaultDottedLine = new LineOptions();\r\n const dottedLineMbLayer: LayerSpecification = {\r\n 'id': this._lineDottedLayerName,\r\n 'type': 'line',\r\n 'source': this._highlightsSourceName,\r\n 'metadata': { includeInIdentify: this._includeInIdentify },\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 this._map.addLayer(dottedLineMbLayer, topLayer ? topLayer.id : null);\r\n this._layerSpecifications.push(dottedLineMbLayer);\r\n\r\n const defaultDashedLine = new LineOptions();\r\n const dashedLineMbLayer: LayerSpecification = {\r\n 'id': this._lineDashedLayerName,\r\n 'type': 'line',\r\n 'source': this._highlightsSourceName,\r\n 'metadata': { includeInIdentify: this._includeInIdentify },\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 this._map.addLayer(dashedLineMbLayer, topLayer ? topLayer.id : null);\r\n this._layerSpecifications.push(dashedLineMbLayer);\r\n\r\n const defaultCircle = new CircleOptions();\r\n const circleMbLayer: LayerSpecification = {\r\n 'id': this._circleLayerName,\r\n 'type': 'circle',\r\n 'source': this._highlightsSourceName,\r\n 'metadata': { includeInIdentify: this._includeInIdentify },\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 this._map.addLayer(circleMbLayer, topLayer ? topLayer.id : null);\r\n this._layerSpecifications.push(circleMbLayer);\r\n\r\n const defaultMarker = new MarkerOptions();\r\n const markerMbLayer: LayerSpecification = {\r\n 'id': this._markerLayerName,\r\n 'type': 'symbol',\r\n 'source': this._highlightsSourceName,\r\n 'metadata': { includeInIdentify: this._includeInIdentify },\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 this._map.addLayer(markerMbLayer, topLayer ? topLayer.id : null);\r\n this._layerSpecifications.push(markerMbLayer);\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): 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 public setIncludeInIdentify (includeInIdentify: boolean) {\r\n this._includeInIdentify = includeInIdentify;\r\n this._layerSpecifications.forEach(ls => {\r\n if (ls.metadata)\r\n (ls.metadata as ILayerMetadata).includeInIdentify = includeInIdentify;\r\n })\r\n }\r\n}\r\n","import { CoordinateLike } from '../../model/RM2Geometry';\nimport { RouteHighlightOptions, IRouteHighlightOptions } from '../../services/RM2RoutingService';\n\nexport class MapPickerControlOptions extends RouteHighlightOptions implements IRouteHighlightOptions {\n constructor(opts?: IMapPickerControlOptions) {\n super(opts);\n }\n}\n\nexport interface IMapPickerControlOptions extends IRouteHighlightOptions {\n}\n\nexport interface ILocationSelectData {\n coord: CoordinateLike;\n mouseButton: number;\n index?: number;\n}\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';\n\nexport class GeolocationOptions implements IGeolocationOptions {\n projection?: Projection;\n pan?: boolean;\n rotate?: boolean;\n panIfNotInView?: boolean;\n animate?: boolean;\n isAccurate?: boolean\n showAccuracy?: boolean\n showHeading?: boolean\n minResolution?: number;\n autoZoom?: boolean;\n\n markerScale?: number;\n\n relCenterX?: number;\n relCenterY?: number;\n\n constructor(opts?: IGeolocationOptions) {\n this.pan = false;\n this.rotate = false;\n this.panIfNotInView = false;\n this.animate = false;\n this.isAccurate = true;\n this.showAccuracy = true;\n this.showHeading = true;\n this.minResolution = 1;\n this.autoZoom = true;\n this.markerScale = 1;\n\n if (opts) {\n if (opts.projection != undefined)\n this.projection = opts.projection;\n \n if (opts.pan != undefined)\n this.pan = opts.pan;\n\n if (opts.rotate != undefined)\n this.rotate = opts.rotate;\n\n if (opts.panIfNotInView != undefined)\n this.panIfNotInView = opts.panIfNotInView;\n\n if (opts.animate != undefined)\n this.animate = opts.animate;\n\n if (opts.isAccurate != undefined)\n this.isAccurate = opts.isAccurate;\n\n if (opts.showAccuracy != undefined)\n this.showAccuracy = opts.showAccuracy;\n\n if (opts.showHeading != undefined)\n this.showHeading = opts.showHeading;\n\n if (opts.minResolution != undefined)\n this.minResolution = opts.minResolution;\n\n if (opts.autoZoom != undefined)\n this.autoZoom = opts.autoZoom;\n\n if (opts.relCenterX != undefined && !isNaN(opts.relCenterX) && opts.relCenterX >= 0.00 && opts.relCenterX <= 1.00)\n this.relCenterX = opts.relCenterX;\n\n if (opts.relCenterY != undefined && !isNaN(opts.relCenterY) && opts.relCenterY >= 0.00 && opts.relCenterY <= 1.00)\n this.relCenterY = opts.relCenterY;\n\n if (opts.markerScale != undefined)\n this.markerScale = opts.markerScale;\n }\n }\n\n getPrimaryColor(): string { return this.isAccurate == true ? '#0F3C8F' : '#F0143C'; }\n getSecondaryColor(): string { return '#FFFFFF'; }\n getHeadingIconName(): string { return this.isAccurate == true ? 'geolocation-heading-accurate_B-48' : 'geolocation-heading-inaccurate_B-48'; }\n}\n\nexport interface IGeolocationOptions {\n projection?: Projection;\n pan?: boolean;\n rotate?: boolean;\n panIfNotInView?: boolean;\n animate?: boolean;\n isAccurate?: boolean;\n showAccuracy?: boolean;\n showHeading?: boolean;\n minResolution?: number;\n autoZoom?: boolean;\n\n markerScale?: number;\n\n relCenterX?: number;\n relCenterY?: number;\n}\n","import * as maplibregl from 'maplibre-gl';\r\nimport { LayerSpecification } from '@maplibre/maplibre-gl-style-spec';\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 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: 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: 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: 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: 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 = 'maplibregl-ctrl maplibregl-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 var _a;\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 = (_a = this.id) !== null && _a !== void 0 ? _a : 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 if (id != null) {\n intervalProvider.clearInterval(id);\n }\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 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 = 'maplibregl-ctrl maplibregl-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 = 'maplibregl-ctrl maplibregl-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 maplibregl-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 { v4 } from 'uuid';\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 = v4();\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 = v4();\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 = v4();\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 = 'maplibregl-ctrl maplibregl-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 mobileOverlayEnable: boolean = false;\r\n mobileOverlayText: string = \"rmap.general.mobileOverlay.title\";\r\n mobileOverlayCloseText: string = \"rmap.general.mobileOverlay.close\";\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 mobileOverlayEnable: boolean;\r\n mobileOverlayText: string;\r\n mobileOverlayCloseText: string;\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\n// import { LayerSpecification, SourceSpecification } from 'maplibre-gl';\r\nimport { LayerSpecification, SourceSpecification } from '@maplibre/maplibre-gl-style-spec';\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?: LayerSpecification['layout'];\r\n paint?: LayerSpecification['paint'];\r\n\r\n constructor(layer: 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\nimport { FilterSpecification } from '@maplibre/maplibre-gl-style-spec';\r\n\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: 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 = 'maplibregl-ctrl maplibregl-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 { LayerSpecification, SourceSpecification, StyleSpecification, FilterSpecification, SymbolLayerSpecification, LegacyFilterSpecification } from '@maplibre/maplibre-gl-style-spec';\r\nimport Mustache from 'mustache';\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 { v4 } from 'uuid';\r\nimport { NAPControl } from '../map-controls/nap-control/RM2NAPControl';\r\nimport { IStyleMetadata } from '../model/style-metadata/RM2StyleMetadata';\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: StyleSpecification;\r\n public get style(): 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: 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.Timeout[] = [];\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 : v4();\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 const persistedView = metadata && metadata.persistView && this.getPersistedView();\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\r\n if (persistedView) {\r\n this._mbMap.jumpTo(persistedView);\r\n }\r\n else if (options && options.view) {\r\n this._mbMap.jumpTo(options.view);\r\n }\r\n else if (metadata.startExtent) {\r\n this._mbMap.fitBounds(metadata.startExtent, { animate: false });\r\n }\r\n else {\r\n const 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 this._mbMap.jumpTo(view);\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.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: 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('.maplibregl-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 this.addMobileClickOverlay();\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: 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: 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: LayerSpecification;\r\n if (typeof condition == 'string')\r\n found = this._mbMap.getLayer(condition) as 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 public getSourceFeatures(id: string): Feature[] {\r\n if (id in this._sources) {\r\n return this._sources[id].features;\r\n }\r\n // const mbFtrs = this._mbMap.querySourceFeatures(id);\r\n // if (mbFtrs) {\r\n // return mbFtrs.map(mbf => Feature.fromMb(mbf));\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: LayerSpecification[] = [];\r\n const found = this._mbMap.getLayer(id) as 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?: FilterSpecification) {\r\n this._mbMap.setFilter(layer, filter);\r\n }\r\n\r\n public getFilter(layer: string): void | 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 fitCameraToSources(sourceIds: string[], options?: ICameraChangeOptions): void {\r\n const ftrs = [];\r\n for (let i = 0; i < sourceIds.length; i++) {\r\n const features = this.getSourceFeatures(sourceIds[i]);\r\n if (features) {\r\n for (let j = 0; j < features.length; j++) {\r\n ftrs.push(features[j]);\r\n }\r\n }\r\n }\r\n const fc = new FeatureCollection(ftrs);\r\n this.fitCameraToFeatures(fc, options);\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 if (ftColl && ftColl.getCrsCode) {\r\n const crsCode = ftColl.getCrsCode();\r\n if (crsCode) {\r\n projection = Projection.create(crsCode);\r\n }\r\n }\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 public setFeaturesIncludeInIdentify(includeInIdentify: boolean) {\r\n if (this._highlights) {\r\n this._highlights.setIncludeInIdentify(includeInIdentify);\r\n }\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: 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 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(): 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 if (this._mbMap) {\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 }\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 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: FilterSpecification = ['has', 'point_count'];\r\n const pointCount: FilterSpecification = ['get', 'point_count'];\r\n const notClusterFilter: FilterSpecification = ['!', clusterFilter];\r\n const filter = this._mbMap.getFilter(layer.id);\r\n this._mbMap.setFilter(layer.id, filter ? (['all', filter, notClusterFilter]) as FilterSpecification : 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: 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\n public fullscreenGet = (): boolean => {\r\n var fsc = this.getControl(MapControlType.FullScreen) as maplibregl.FullscreenControl;\r\n if (fsc) {\r\n return fsc._isFullscreen() === true;\r\n }\r\n return false;\r\n }\r\n public fullscreenEnter = (): boolean => {\r\n var fsc = this.getControl(MapControlType.FullScreen) as maplibregl.FullscreenControl;\r\n if (fsc) {\r\n fsc._requestFullscreen();\r\n return true;\r\n }\r\n return false;\r\n }\r\n public fullscreenExit = (): boolean => {\r\n var fsc = this.getControl(MapControlType.FullScreen) as maplibregl.FullscreenControl;\r\n if (fsc) {\r\n fsc._exitFullscreen();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n // mobile click overlay -> fullscreen\r\n private addMobileClickOverlay = () => {\r\n if (this.style && this.style.metadata && (this.style.metadata as IStyleMetadata).mobileOverlayEnable === true) {\r\n var fsc = this.getControl(MapControlType.FullScreen) as maplibregl.FullscreenControl;\r\n if (fsc) {\r\n\r\n const locService = this.getService(ServiceType.Localization) as LocalizationService;\r\n\r\n const overlayDiv = document.createElement('div');\r\n overlayDiv.className = \"rm2-mobile-overlay d-md-none align-items-center justify-content-center\";\r\n overlayDiv.style.position = 'absolute';\r\n overlayDiv.style.left = '0';\r\n overlayDiv.style.top = '0';\r\n overlayDiv.style.width = '100%';\r\n overlayDiv.style.height = '100%';\r\n overlayDiv.style.zIndex = \"1000\";\r\n overlayDiv.style.cursor = \"pointer\";\r\n\r\n let title = (this.style.metadata as IStyleMetadata).mobileOverlayText || \"rmap.general.mobileOverlay.title\";\r\n if (locService) {\r\n title = locService.localize(title);\r\n }\r\n var span = document.createElement(\"span\");\r\n overlayDiv.appendChild(span);\r\n span.classList.add(\"rm2-mobile-overlay-text\")\r\n span.innerText = title;\r\n\r\n overlayDiv.onclick = (ev: MouseEvent) => {\r\n ev.stopPropagation();\r\n ev.preventDefault();\r\n this.fullscreenEnter();\r\n };\r\n\r\n const closeFullscreenContainer = document.createElement('div');\r\n closeFullscreenContainer.className = \"rm2-mobile-overlay-close-container align-items-center justify-content-center\";// maplibregl-ctrl-bottom-right\";\r\n closeFullscreenContainer.style.width = 'calc(100% - 140px)';\r\n closeFullscreenContainer.style.marginLeft = '70px';\r\n closeFullscreenContainer.style.marginRight = '70px';\r\n closeFullscreenContainer.style.marginBottom = '10px';\r\n closeFullscreenContainer.style.pointerEvents = 'none';\r\n closeFullscreenContainer.style.position = 'absolute';\r\n closeFullscreenContainer.style.zIndex = '2';\r\n closeFullscreenContainer.style.right = '0';\r\n closeFullscreenContainer.style.bottom = 'var(--mapControlsMargin)';\r\n\r\n const closeFullscreenContainer2 = document.createElement('div');\r\n closeFullscreenContainer.appendChild(closeFullscreenContainer2);\r\n closeFullscreenContainer2.className = \"rm2-mobile-overlay-close-div maplibregl-ctrl maplibregl-ctrl-group\";\r\n closeFullscreenContainer2.style.marginRight = \"0\";\r\n\r\n const closeFullscreenButton = document.createElement('button');\r\n closeFullscreenContainer2.appendChild(closeFullscreenButton);\r\n closeFullscreenButton.className = \"rm2-mobile-overlay-close-button\"\r\n closeFullscreenButton.style.width = \"inherit\";\r\n\r\n let closeText = (this.style.metadata as IStyleMetadata).mobileOverlayCloseText || \"rmap.general.mobileOverlay.close\";\r\n if (locService) {\r\n closeText = locService.localize(closeText);\r\n }\r\n closeFullscreenButton.innerText = closeText;\r\n closeFullscreenButton.onclick = (ev: MouseEvent) => {\r\n ev.stopPropagation();\r\n ev.preventDefault();\r\n this.fullscreenExit();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n let isFullscreen = false;\r\n const updateMobileOverlay = () => {\r\n // console.log(`updateMobileOverlay width isFullscreen ${isFullscreen}`);\r\n if (!isFullscreen) {\r\n overlayDiv.classList.add(\"d-flex\");\r\n overlayDiv.style.display = undefined;\r\n closeFullscreenContainer.style.display = \"none\";\r\n }\r\n else {\r\n overlayDiv.classList.remove(\"d-flex\");\r\n overlayDiv.style.display = \"none\";\r\n closeFullscreenContainer.style.display = \"flex\";\r\n }\r\n };\r\n\r\n\r\n\r\n\r\n fsc.on(\"fullscreenstart\", () => {\r\n isFullscreen = true;\r\n updateMobileOverlay();\r\n });\r\n fsc.on(\"fullscreenend\", () => {\r\n isFullscreen = false;\r\n updateMobileOverlay();\r\n });\r\n updateMobileOverlay();\r\n\r\n const ctrlsContainer = this._mbMap.getContainer().querySelector('.maplibregl-control-container');\r\n const container = ctrlsContainer && ctrlsContainer.parentNode;\r\n container && container.insertBefore(overlayDiv, ctrlsContainer);\r\n // container && container.insertBefore(closeFullscreenContainer, ctrlsContainer);\r\n ctrlsContainer.appendChild(closeFullscreenContainer);\r\n }\r\n }\r\n }\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 { v4 } from 'uuid';\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 = v4();\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 fitToFeatureCollection = (fc: FeatureCollection, options: FitOptions) => {\r\n const ffc = FeatureCollection.fromGeoJson(fc);\r\n this.map.fitCameraToFeatures(ffc, options);\r\n }\r\n\r\n public fitToSources = (sourceIds: string[], options: FitOptions) => {\r\n this.map.fitCameraToSources(sourceIds, options);\r\n }\r\n\r\n public fitToExtent = (bbox: Coordinate[] | CoordinateLike[], options: FitOptions) => {\r\n this.map.fit(bbox, options);\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 // Dodano za atob, pa smo ugotovili da ni uporabno\r\n // public fullscreenEnter () {\r\n // this.map.fullscreenEnter();\r\n // }\r\n // public fullscreenExit () {\r\n // this.map.fullscreenExit();\r\n // }\r\n // public fullscreenGet (): boolean {\r\n // return this.map.fullscreenGet();\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","leafPrototypes","getProto","maps","argLen","arguments","length","i","push","fns","on","forEach","map","index","off","sync","master","clones","center","getCenter","zoom","getZoom","bearing","getBearing","pitch","getPitch","clone","jumpTo","moveToMapPosition","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","global","__self__","F","fetch","DOMException","support","Symbol","Blob","viewClasses","isArrayBufferView","ArrayBuffer","isView","obj","indexOf","Object","toString","call","normalizeName","name","String","test","TypeError","toLowerCase","normalizeValue","value","iteratorFor","items","iterator","next","shift","done","undefined","Headers","headers","append","Array","isArray","header","getOwnPropertyNames","consumed","bodyUsed","Promise","reject","fileReaderReady","reader","resolve","onload","result","onerror","error","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","slice","view","Uint8Array","byteLength","set","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","get","rejected","arrayBuffer","then","text","readAsText","chars","fromCharCode","join","readArrayBufferAsText","formData","decode","json","JSON","parse","oldValue","has","hasOwnProperty","callback","thisArg","keys","values","entries","methods","Request","input","method","upcased","url","credentials","mode","signal","toUpperCase","referrer","form","trim","split","bytes","replace","decodeURIComponent","Response","bodyInit","status","ok","statusText","response","redirectStatuses","redirect","RangeError","location","err","message","stack","create","constructor","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","line","parts","key","responseURL","responseText","ontimeout","onabort","open","withCredentials","responseType","setRequestHeader","onreadystatechange","readyState","send","polyfill","defineProperty","ponyfill","ctx","ReflectOwnKeys","R","Reflect","ReflectApply","apply","target","receiver","args","Function","ownKeys","getOwnPropertySymbols","concat","NumberIsNaN","Number","isNaN","once","emitter","errorListener","resolver","eventTargetAgnosticAddListener","handler","flags","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","m","events","existing","warning","newListener","unshift","warned","w","count","console","warn","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","_listeners","unwrap","evlistener","arr","ret","unwrapListeners","arrayClone","listenerCount","n","copy","wrapListener","arg","enumerable","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","context","len","listeners","addListener","prependListener","prependOnceListener","list","position","originalListener","pop","spliceOne","removeAllListeners","rawListeners","eventNames","_extends","assign","source","defaults","tName","i18nName","handleName","selectorAttr","targetAttr","optionsAttr","useOptionsAttr","parseDefaultValueFromContent","i18next","$","ele","opts","attr","substr","html","t","extendDefault","dataAttr","translated","val","defaultValue","localize","targetSelector","find","each","k","lng","PJD_3PARAM","PJD_7PARAM","PJD_GRIDSHIFT","PJD_NODATUM","SRS_WGS84_SEMIMAJOR","SRS_WGS84_SEMIMINOR","SRS_WGS84_ESQUARED","SEC_TO_RAD","HALF_PI","PI","SIXTH","RA4","RA6","EPSLN","D2R","R2D","FORTPI","TWO_PI","SPI","ft","to_meter","ignoredChar","match","testkey","lkey","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","NEUTRAL","whitespace","latin","keyword","endThings","digets","level","place","currentObject","mapit","thing","out","newObj","item","sExpr","convert","readCharicter","char","neutral","quoted","afterquote","number","word","afterItem","newObjects","d2r","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","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","end","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","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","hasZ","toPoint","checkSanity","checkNotWGS","adjust_axis","datum_transform","transformer","from","to","coords","transformedArray","splice","checkProj","oProj","fromProj","toProj","coord","single","NUM_100K_SETS","SET_ORIGIN_COLUMN_LETTERS","SET_ORIGIN_ROW_LETTERS","A","I","O","V","mgrs","bbox","UTMtoLL","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","topRight","LetterDesignator","mgrsString","testChar","hunK","sb","substring","east100k","curCol","eastingValue","rewindMarker","getEastingFromChar","north100k","curRow","northingValue","getNorthingFromChar","getMinNorthing","remainder","accuracyBonus","sepEastingString","sepNorthingString","sep","sepEasting","sepNorthing","Point","fromMGRS","mgrsStr","toMGRS","C00","C02","C04","C06","C08","C22","C44","C46","C48","C66","C68","C88","en","sphi","cphi","MAX_ITER","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","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","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","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","AREA_0","AREA_1","AREA_2","AREA_3","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","RC1","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","defaultDatum","Proj","nadgrid","nFields","detectLittleEndian","nSubgridFields","nSubgrids","shiftType","fromSemiMajorAxis","fromSemiMinorAxis","toSemiMajorAxis","toSemiMinorAxis","readHeader","gridOffset","subHeader","lngColumnCount","latColumnCount","readSubgrids","version","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","toJSON","fromJSON","_chooseSubtree","_split","_adjustParentBBoxes","_chooseSplitAxis","_chooseSplitIndex","_allDistMargin","sort","traverseCoords","coordinates","traverseGeoJson","geometryCb","nodeCb","geojson","geometry","features","geometries","detectCrs","crsInfo","properties","stringify","determineCrs","reproject","transformFunc","transformed","gj","MAX_VALUE","_gj","calcBbox","reverse","toWgs84","numberRegexp","coordFormat","RegExp","geoJSON","pairWKT","ringWKT","ringsWKT","wrapParens","multiRingsWKT","gJ","_","srid","re","white","multicoords","elem","depth","rings","pointer","linestring","polygon","newCoordsFormat","multipoint","multilinestring","multipolygon","geometrycollection","fetchApi","default","shared","worker","chunk","workerBundleString","sharedChunk","workerUrl","URL","createObjectURL","throw","__esModule","SuppressedError","_add","sub","_sub","multByPoint","_multByPoint","divByPoint","_divByPoint","mult","_mult","div","_div","rotate","_rotate","rotateAround","_rotateAround","matMult","_matMult","_unit","perp","_perp","_round","mag","equals","dist","distSqr","angle","angleTo","angleWith","angleWithSep","cx","bx","ax","cy","by","ay","p1x","p1y","p2x","p2y","sampleCurveX","sampleCurveY","sampleCurveDerivativeX","solveCurveX","solve","OffscreenCanvas","getContext","createImageBitmap","willReadFrequently","fillStyle","fillRect","getImageData","WorkerGlobalScope","navigator","userAgent","safari","ImageBitmap","VideoFrame","timestamp","format","startsWith","Uint8ClampedArray","copyTo","rect","layout","stride","close","now","performance","Date","frame","requestAnimationFrame","cancel","cancelAnimationFrame","getImageCanvasContext","drawImage","resolveURL","href","hardwareConcurrency","prefersReducedMotion","matchMedia","matches","MAX_PARALLEL_IMAGE_REQUESTS","MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME","MAX_TILE_CACHE_ZOOM_LEVELS","REGISTERED_PROTOCOLS","WORKER_URL","super","protocol","AbortController","cache","catch","actor","getResponseHeader","host","_oneTimeListeners","listens","_eventedParent","_eventedParentData","setEventedParent","$version","$root","required","metadata","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","custom","redFactor","blueFactor","greenFactor","baseShift","source_geojson","maximum","minimum","tolerance","cluster","clusterRadius","clusterMaxZoom","clusterMinPoints","clusterProperties","lineMetrics","generateId","source_video","video","urls","source_image","image","layer","id","fill","symbol","circle","heatmap","hillshade","background","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","within","geometry_type","LineString","Polygon","function","stops","base","exponential","interval","categorical","colorSpace","rgb","lab","hcl","function_stop","anchor","color","intensity","exaggeration","paint_fill","paint_line","paint_circle","paint_heatmap","paint_symbol","overridable","paint_raster","linear","nearest","paint_hillshade","paint_background","duration","delay","constant","Q","tt","setStyle","addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setGeoJSONSourceData","setLayerZoomRange","setLayerProperty","setCenter","setZoom","setBearing","setPitch","setSprite","setGlyphs","setTransition","setLight","et","command","rt","nt","it","at","st","ot","lt","identifier","__line__","ut","ht","bindings","kind","dt","mt","gt","xt","vt","bt","wt","_t","At","St","itemType","kt","It","zt","Mt","Pt","Ct","Bt","Vt","Et","Ft","Tt","$t","Lt","Dt","Ot","Ut","qt","Rt","jt","Zt","Nt","Kt","padEnd","Gt","Jt","Xt","Yt","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","Ht","overwriteGetter","transparent","Wt","sensitivity","locale","collator","Intl","Collator","usage","compare","resolvedLocale","resolvedOptions","Qt","scale","fontStack","textColor","te","sections","fromString","isEmpty","ee","Set","ne","ie","available","ae","se","oe","le","ue","expectedType","evaluate","eachChild","outputDefined","he","string","boolean","object","pe","every","fe","de","Boolean","parseColor","ye","me","globals","feature","featureState","formattedSection","_parseColorCache","availableImages","canonical","geometryType","canonicalID","ge","registry","path","scope","errors","_isConstant","_parse","checkSubtype","typeAnnotation","xe","caseSensitive","diacriticSensitive","ve","be","we","_e","Ae","Se","ke","Ie","ze","Me","Pe","Be","Ve","Fe","Te","$e","boundExpression","Le","_evaluate","definitions","overloads","De","register","Oe","Re","Ue","qe","je","labels","outputs","Ne","Ze","Ke","padding","variableAnchorOffsetCollection","Ge","operator","interpolation","interpolationFactor","Je","controlPoints","Xe","Ye","He","We","needle","haystack","Qe","fromIndex","tr","inputType","cases","otherwise","MAX_SAFE_INTEGER","branches","rr","beginIndex","endIndex","nr","ir","ar","lhs","rhs","hasUntypedArgument","sr","or","lr","ur","cr","pr","currency","minFractionDigits","maxFractionDigits","NumberFormat","minimumFractionDigits","maximumFractionDigits","fr","font","content","dr","yr","mr","case","coalesce","interpolate","let","literal","step","var","gr","xr","vr","br","wr","_r","Ar","Sr","kr","Ir","zr","Mr","Pr","Er","Vr","Br","Fr","interpolationType","zoomStops","Cr","typeof","rgba","heatmapDensity","lineProgress","accumulated","ln2","LN2","log10","LN10","ln","log2","isSupportedScript","upcase","downcase","Tr","_warningHistory","_evaluator","_defaultValue","_enumValues","evaluateWithoutErrorHandling","$r","Lr","enum","formatted","resolvedImage","Dr","_styleExpression","isStateDependent","Or","Ur","qr","Rr","_parameters","_specification","deserialize","serialize","jr","Nr","Zr","needGeometry","Jr","Gr","Kr","Xr","Wr","Yr","Hr","Qr","tn","rn","valueOf","nn","an","valueSpec","objectElementValidators","styleSpec","validateSpec","objectKey","sn","arrayElementValidator","arrayIndex","un","expressionContext","propertyKey","propertyType","cn","hn","pn","layerType","exec","dn","yn","mn","ref","gn","xn","vn","sourceName","includes","bn","wn","_n","An","constants","Sn","kn","In","Mn","zn","Pn","paintProperty","layoutProperty","Bn","Vn","En","Fn","Tn","cells","Int32Array","subarray","bboxes","_insertReadonly","extent","uid","_forEachCell","_insertCell","query","_queryCell","_convertToCellCoord","_convertFromCellCoord","toArrayBuffer","$n","Ln","writeable","klass","omit","shallow","_classRegistryKey","Dn","On","ImageData","$name","Un","first","update","lastIntegerZoom","lastIntegerZoomTime","lastZoom","lastFloorZoom","qn","Arabic","Khmer","Hiragana","Katakana","Bopomofo","Kanbun","jn","Kn","Nn","Zn","Gn","Jn","Xn","Yn","Hn","Wn","ti","ei","ri","ni","ai","pluginStatus","pluginURL","si","oi","li","applyArabicShaping","processBidirectionalText","processStyledBidirectionalText","isLoaded","isLoading","setState","isParsed","getPluginURL","ui","fadeDuration","zoomHistory","crossFadingFactor","getCrossfadeParameters","fromScale","toScale","ci","specification","isDataDriven","possiblyEvaluate","transitioned","fi","untransitioned","_properties","_values","defaultTransitionablePropertyValues","getValue","setValue","getTransition","di","begin","prior","defaultTransitioningPropertyValues","gi","hasTransition","yi","defaultPropertyValues","hasValue","mi","isConstant","constantOr","defaultPossiblyEvaluatedValues","xi","vi","overrides","bi","_calculate","wi","_i","Ai","overridableProperties","Si","ki","_featureFilter","sourceLayer","_unevaluatedLayout","_transitionablePaint","validate","_transitioningPaint","_crossfadeParameters","getLayoutProperty","_validate","getPaintProperty","endsWith","_handleSpecialPaintPropertyUpdate","_handleOverridablePaintPropertyUpdate","isHidden","updateTransitions","recalculate","is3D","isTileClipped","hasOffscreenPass","resize","Ii","Int8","Int8Array","Uint8","Int16","Int16Array","Uint16","Uint16Array","Int32","Uint32","Uint32Array","Float32","Float32Array","zi","_structArray","_pos1","size","_pos2","_pos4","_pos8","Mi","isTransferred","capacity","_trim","bytesPerElement","_refreshViews","reserve","uint8","Pi","members","BYTES_PER_ELEMENT","Ci","components","alignment","Bi","int16","emplaceBack","emplace","Vi","Ei","Fi","Ti","$i","float32","Li","uint16","Di","Oi","Ui","uint32","Ri","qi","ji","Ni","Zi","Ki","Gi","Ji","Xi","Yi","Hi","Wi","Qi","ta","anchorPointX","anchorPointY","x1","y1","x2","y2","featureIndex","sourceLayerIndex","bucketIndex","anchorPoint","ea","ra","anchorX","anchorY","glyphStartIndex","numGlyphs","vertexStartIndex","lineStartIndex","lineLength","segment","lowerSize","upperSize","lineOffsetX","lineOffsetY","writingMode","placedOrientation","hidden","crossTileID","associatedIconIndex","na","ia","rightJustifiedTextSymbolIndex","centerJustifiedTextSymbolIndex","leftJustifiedTextSymbolIndex","verticalPlacedTextSymbolIndex","placedIconSymbolIndex","verticalPlacedIconSymbolIndex","textBoxStartIndex","textBoxEndIndex","verticalTextBoxStartIndex","verticalTextBoxEndIndex","iconBoxStartIndex","iconBoxEndIndex","verticalIconBoxStartIndex","verticalIconBoxEndIndex","numHorizontalGlyphVertices","numVerticalGlyphVertices","numIconVertices","numVerticalIconVertices","useRuntimeCollisionCircles","textBoxScale","collisionCircleDiameter","textAnchorOffsetStartIndex","textAnchorOffsetEndIndex","aa","sa","getoffsetX","oa","getx","gety","gettileUnitDistanceFromAnchor","la","textAnchor","textOffset0","textOffset1","ua","ca","ha","pa","fa","da","ya","ga","va","wa","_a","Aa","Sa","ka","Ia","za","Ma","segments","prepareSegment","MAX_VERTEX_ARRAY_LENGTH","vertexLength","sortKey","vertexOffset","primitiveOffset","primitiveLength","destroy","vaos","simpleSegment","Pa","Ca","Ba","Va","Fa","Ta","$a","murmur3","murmur2","La","Da","ids","positions","indexed","Oa","getPositions","Float64Array","Ua","Ra","qa","gl","ja","current","uniform1f","Na","uniform4f","Za","Ka","Ga","Ja","uniformNames","setUniform","getBinding","Xa","patternFrom","patternTo","pixelRatioFrom","pixelRatioTo","setConstantPatternPositions","pixelRatio","tlbr","Ya","maxValue","paintVertexAttributes","paintVertexArray","populatePaintArray","_setPaintValue","updatePaintArray","upload","paintVertexBuffer","updateData","createVertexBuffer","Ha","useIntegerZoom","Wa","layerId","zoomInPaintVertexArray","zoomOutPaintVertexArray","_setPaintValues","patterns","mid","zoomInPaintVertexBuffer","zoomOutPaintVertexBuffer","Qa","binders","_buffers","rs","cacheKey","getMaxValue","populatePaintArrays","updatePaintArrays","defines","getBinderAttributes","getBinderUniforms","getPaintVertexBuffers","getUniforms","binding","setUniforms","updatePaintBuffers","programConfigurations","needsUpload","_featureMap","_bufferOffset","composite","is","as","ss","loadGeometry","os","ls","us","overscaling","layerIds","hasPattern","layoutVertexArray","indexArray","stateDependentLayerIds","populate","addFeature","stateDependentLayers","uploadPending","uploaded","layoutVertexBuffer","indexBuffer","createIndexBuffer","vs","hs","ms","ps","xs","fs","ys","gs","bs","ws","_s","As","Ss","ks","Is","zs","Ms","Ps","Cs","Bs","Vs","Es","Fs","createBucket","queryRadius","queryIntersectsFeature","Ts","cameraToCenterDistance","$s","Ls","Ds","Os","Us","Rs","js","Ns","resolution","clips","evaluationKey","Zs","_updateColorRamp","colorRamp","colorRampTexture","heatmapFbo","Ks","Gs","Js","Xs","Ys","Ws","Qs","prev","steiner","co","so","oo","eo","So","wo","yo","_o","fo","uo","prevZ","nextZ","no","io","ao","ho","mo","vo","po","bo","lo","xo","go","Ao","deviation","flatten","vertices","holes","dimensions","ko","Io","zo","Po","Mo","Co","Bo","Vo","patternDependencies","Eo","Fo","patternFeatures","indexArray2","segments2","addFeatures","indexBuffer2","To","$o","Lo","Do","Oo","Uo","Ro","qo","jo","No","Zo","_pbf","_geometry","_keys","readFields","Ko","readVarint","Go","types","readSVarint","toGeoJSON","Jo","Xo","Yo","_features","Ho","readString","readFloat","readDouble","readVarint64","readBoolean","Wo","Qo","VectorTile","VectorTileFeature","VectorTileLayer","rl","centroidVertexArray","centroidVertexBuffer","vertexCount","il","sl","ol","ul","hl","pl","fl","yl","xl","lineClipsArray","gradients","layoutVertexArray2","maxLineLength","layoutVertexBuffer2","lineFeatureClips","mapbox_clip_start","mapbox_clip_end","lineClips","addLine","distance","scaledDistance","totalDistance","updateScaledDistance","updateDistance","addCurrentVertex","addHalfVertex","vl","wl","_l","Al","Sl","gradientVersion","gradientExpression","stepInterpolant","kl","Il","zl","Pl","Cl","Bl","toLocaleUpperCase","toLocaleLowerCase","Vl","El","Fl","Ll","Tl","$l","Varint","Fixed64","Bytes","Fixed32","Dl","Ol","Ul","TextDecoder","Rl","ql","jl","realloc","writeVarint","Zl","writeSVarint","Kl","writeFloat","Gl","writeDouble","Jl","writeBoolean","Xl","writeFixed32","Yl","writeSFixed32","Hl","writeFixed64","Wl","writeSFixed64","Ql","tu","eu","skip","readMessage","readFixed32","readSFixed32","readFixed64","readSFixed64","readBytes","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","ru","iu","au","bitmap","advance","su","metrics","ou","lu","uu","cu","stretchX","stretchY","paddedRect","displaySize","hu","haveRenderCallbacks","addImages","iconPositions","patternPositions","hasRenderCallback","patchUpdatedImages","dispatchRenderCallbacks","updatedImages","patchUpdatedImage","getImage","pu","WritingMode","horizontalOnly","fu","du","imageName","forText","forImage","yu","sectionIndex","imageSectionID","fromFeature","addImageSection","addTextSection","getSection","getSectionIndex","getCharCode","verticalizePunctuation","gu","getMaxScale","getNextImageSectionCharCode","Su","positionedLines","iconsInText","verticalizable","positionedGlyphs","lineOffset","glyph","Iu","horizontalAlign","verticalAlign","ku","xu","vu","bu","wu","_u","badness","priorBreak","Au","zu","Mu","collisionPadding","Pu","Cu","Bu","Vu","layoutSize","minZoom","maxZoom","minSize","maxSize","Eu","Fu","Tu","$u","Lu","Du","Ou","dynamicLayoutVertexArray","opacityVertexArray","hasVisibleVertices","placedSymbolArray","dynamicLayoutVertexBuffer","opacityVertexBuffer","itemSize","Uu","layoutAttributes","collisionVertexArray","collisionVertexBuffer","Ru","collisionBoxArray","hasRTLText","sortKeyRanges","collisionCircleArray","placementInvProjMatrix","placementViewportMatrix","textSizeData","iconSizeData","canOverlap","sortFeaturesByKey","sortFeaturesByY","writingModes","sourceID","createArrays","icon","glyphOffsetArray","lineVertexArray","symbolInstances","textAnchorOffsets","calculateGlyphDependencies","iconDependencies","glyphDependencies","getValueAndResolveTokens","allowVerticalPlacement","hasDebugData","textCollisionBox","iconCollisionBox","destroyDebugData","addToLineVertexArray","tileUnitDistanceFromAnchor","addSymbols","tex","pixelOffsetTL","pixelOffsetBR","minFontScaleX","minFontScaleY","glyphOffset","isSDF","_addCollisionDebugVertex","addCollisionDebugVertices","addDebugCollisionBoxes","generateCollisionDebugBuffers","_deserializeCollisionBoxesForSymbol","textBox","textFeatureIndex","verticalTextBox","verticalTextFeatureIndex","iconBox","iconFeatureIndex","verticalIconBox","verticalIconFeatureIndex","deserializeCollisionBoxes","collisionArrays","hasTextData","hasIconData","hasTextCollisionBoxData","hasIconCollisionBoxData","addIndicesForPlacedSymbol","getSortedSymbolIndexes","sortedAngle","symbolInstanceIndexes","addToSortKeyRanges","symbolInstanceEnd","symbolInstanceStart","sortFeatures","featureSortOrder","qu","ju","MAX_GLYPHS","addDynamicAttributes","Nu","runtimeType","getOverride","hasOverride","Zu","Ku","_setPaintOverrides","hasPaintOverride","Gu","Ju","Xu","Yu","Hu","Wu","Qu","onAdd","implementation","painter","onRemove","renderingMode","prerender","tc","_callback","_triggered","MessageChannel","_channel","port2","onmessage","trigger","port1","postMessage","setTimeout","ec","wrap","toArray","distanceTo","nc","ic","ac","sc","oc","lc","uc","fromLngLat","toLngLat","toAltitude","meterInMercatorCoordinateUnits","cc","hc","dc","isChildOf","getTilePoint","pc","fc","overscaledZ","scaledTo","calculateScaledKey","isLessThan","unwrapTo","overscaleFactor","toUnwrapped","yc","dim","_idx","MIN_SAFE_INTEGER","unpack","getUnpackVector","getPixels","backfillBorder","mc","_stringToNumber","_numberToString","gc","_vectorTileFeature","_z","_x","_y","xc","tileID","grid3D","featureIndexArray","loadVTLayers","vtLayers","rawTileData","sourceLayerCoder","queryGeometry","queryPadding","bc","cameraQueryGeometry","wc","loadMatchingFeature","pixelPosMatrix","bucketLayerIDs","getId","getState","vc","intersectionZ","lookupSymbolFeatures","hasLayer","_c","Ac","Sc","angleDelta","kc","Ic","zc","Mc","Pc","Cc","Bc","Vc","Ec","Tc","stretch","$c","fixed","Fc","Lc","boxStartIndex","circleDiameter","boxEndIndex","Dc","Oc","_down","_up","peek","Uc","Rc","qc","SQRT2","jc","TextAnchorEnum","Nc","Zc","POSITIVE_INFINITY","Kc","Gc","Jc","Xc","textMaxSize","Hc","tilePixelRatio","compositeIconSizes","Yc","Wc","sdf","isDoubleResolution","compositeTextSizes","compareText","Qc","th","numItems","nodeSize","ArrayType","IndexArrayType","_pos","_finished","eh","range","ah","nh","ih","sh","PerformanceMarkers","fullLoad","oh","lh","uh","ch","hh","ph","mark","clearMetrics","clearMeasures","clearMarks","getPerformanceMetrics","measure","getEntriesByName","loadTime","fullLoadTime","fps","percentDroppedFrames","totalFrames","AJAXError","ARRAY_TYPE","Actor","receive","targetMapId","mapId","tasks","cancelCallbacks","mustQueue","taskQueue","invoker","processTask","process","callbacks","globalScope","random","hasCallback","sourceMapId","getWorkerSource","AlphaImage","CanonicalTileID","CollisionBoxArray","CollisionCircleLayoutArray","Color","DEMData","DataConstantProperty","DictionaryCoder","EXTENT","ErrorEvent","EvaluationParameters","Event","Evented","FeatureIndex","FillBucket","FillExtrusionBucket","GeoJSONFeature","ImageAtlas","ImagePosition","KDBush","LineBucket","LineStripIndexArray","LngLat","MercatorCoordinate","ONE_EM","OverscaledTileID","PerformanceUtils","Pos3dArray","PosArray","Properties","Protobuf","QuadTriangleArray","RGBAImage","RasterBoundsArray","RequestPerformance","_marks","SegmentVector","SymbolBucket","Transitionable","TriangleIndexArray","Uniform1f","Uniform1i","uniform1i","Uniform2f","uniform2f","Uniform3f","uniform3f","Uniform4f","UniformColor","UniformMatrix4f","uniformMatrix4fv","UnwrappedTileID","ValidationError","ZoomHistory","__awaiter","arrayBufferToImage","Image","revokeObjectURL","src","arrayBufferToImageBitmap","asyncAll","bezier","browser","clamp","clipLine","clone$1","collisionCircleLayout","config","createExpression","createFilter","createLayout","createStyleLayer","deepEqual","defaultEasing","derefLayers","diffStyles","lastIndexOf","dot","earthRadius","emitValidationErrors","emptyStyle","evaluateSizeForFeature","uSize","uSizeT","evaluateSizeForZoom","evented","filterObject","findLineIntersection","fromScaling","getAnchorAlignment","getAnchorJustification","getArrayBuffer","getDefaultExportFromCjs","clearRect","getJSON","getOverlapMode","getProtocolAction","getRTLTextPluginStatus","getReferrer","getVideo","muted","onloadstart","crossOrigin","groupByLayout","invert","isImageBitmap","isOffscreenCanvasDistorted","isSafari","isWorker","keysDifference","lazyLoadRTLTextPlugin","makeRequest","mapObject","mercatorXfromLng","mercatorYfromLat","mercatorZfromAltitude","mul","mul$1","multiply","nextPowerOfTwo","offscreenCanvasSupported","operations","parseCacheControl","parseGlyphPbf","pbf","performSymbolLayout","bucket","iconsNeedLinear","layoutIconSize","layoutTextSize","glyphMap","glyphPositions","imagePositions","imageMap","sdfIcons","showCollisionBoxes","perspective","pick","plugin","pointGeometry","polygonIntersectsPolygon","potpack","readImageUsingVideoFrame","registerForPluginStateChange","renderColorRamp","rotateX","rotateZ","sameOrigin","setRTLTextPlugin","sphericalToCartesian","toEvaluationFeature","transformMat4","translate","triggerPluginCompletionEvent","unicodeBlockLookup","uniqueId","v8Spec","validateCustomStyleLayer","render","validateLight","validateStyle","vectorTile","warnOnce","keyCache","_layerConfigs","_layers","familiesBySource","collectResourceTiming","returnDependencies","inFlightDependencies","dependencySentinel","stacks","icons","buckets","glyphAtlasImage","imageAtlas","iconMap","rawData","cacheControl","expires","messge","layerIndex","loadVectorData","fetching","loading","loaded","loadTile","resourceTiming","reloadTile","abortTile","removeTile","rawImageData","rawGeometry","tags","keycache","valuecache","fromVectorTileJs","fromGeojsonVt","GeoJSONWrapper","minPoints","radius","fround","trees","clusterProps","time","points","_createTree","timeEnd","_cluster","getClusters","_limitZoom","getChildren","_getOriginId","_getOriginZoom","getLeaves","_appendLeaves","getTile","_addTileFeatures","getClusterExpansionZoom","cluster_id","point_count","_map","point_count_abbreviated","numPoints","numSimplified","numFeatures","debug","tileCoords","indexMaxZoom","indexMaxPoints","stats","total","splitTile","Map","_geoJSONIndex","_geojsonTileLayer","_feature","byteOffset","_dataUpdateable","loadGeoJSON","dataDiff","removeAll","delete","removeAllProperties","removeProperties","addOrUpdateProperties","newGeometry","loadData","_pendingRequest","_pendingCallback","abandoned","superclusterOptions","geojsonVtOptions","clusterId","getClusterChildren","getClusterLeaves","limit","layerIndexes","workerSourceTypes","workerSources","demWorkerSources","registerWorkerSource","registerRTLTextPlugin","setReferrer","setImages","setLayers","getLayerIndex","updateLayers","removedIds","loadDEMTile","getDEMWorkerSource","removeDEMTile","loadWorkerSource","importScripts","syncRTLPluginState","getAvailableImages","testProp","docStyle","createNS","createElementNS","disableDrag","selectProp","userSelect","enableDrag","setTransform","transformProp","capture","suppressClickInternal","preventDefault","stopPropagation","suppressClick","mousePos","clientLeft","clientTop","touchPos","mouseButton","button","parentNode","removeChild","documentElement","supported","testSupport","createTexture","bindTexture","TEXTURE_2D","texImage2D","RGBA","UNSIGNED_BYTE","isContextLost","deleteTexture","resetRequestQueue","addThrottleControl","removeThrottleControl","accept","requestParameters","supportImageRefresh","cancelled","completed","innerRequest","HTMLImageElement","fetchPriority","Glyphs","Source","SpriteImage","SpriteJSON","Style","Tile","Unknown","_transformRequestFn","transformRequest","normalizeSpriteURL","authority","setTransformRequest","spriteData","texture","useMipmap","pixelStoreUnpackFlipY","pixelStoreUnpack","pixelStoreUnpackPremultiplyAlpha","premultiply","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","setURL","getGlyphs","requests","ranges","_tinySDF","loadGlyphRange","_doesCharSupportLocalGlyph","tinySDF","TinySDF","fontSize","cutoff","fontFamily","fontWeight","draw","glyphWidth","glyphHeight","glyphLeft","glyphTop","glyphAdvance","fontStyle","_createCanvas","textBaseline","textAlign","gridOuter","gridInner","actualBoundingBoxAscent","actualBoundingBoxDescent","actualBoundingBoxLeft","actualBoundingBoxRight","measureText","fillText","_transitionable","_transitioning","getLight","nextRow","dashEntry","getDash","addDash","getDashRanges","isDash","zeroLength","addRoundDash","addRegularDash","ALPHA","REPEAT","workerPool","actors","currentActor","acquire","broadcast","getActor","release","vector_layers","vectorLayers","vectorLayerIds","setSouthWest","setNorthEast","_ne","_sw","getSouthWest","getNorthEast","getNorthWest","getWest","getNorth","getSouthEast","getEast","getSouth","contains","validateBounds","_loaded","dataType","_tileJSONRequest","_options","_requestManager","sourceCaches","clearTiles","tileBounds","sourceDataType","dispatcher","reparseOverscaled","_collectResourceTiming","hasTile","setSourceProperty","setTiles","setUrl","getPixelRatio","_refreshExpiredTiles","setExpiryData","reloadCallback","unloadTile","unloadVectorData","roundZoom","getTileTexture","extTextureFilterAnisotropic","texParameterf","TEXTURE_MAX_ANISOTROPY_EXT","extTextureFilterAnisotropicMax","saveTileTexture","dem","needsHillshadePrepare","needsTerrainPrepare","neighboringTiles","_getNeighboringTiles","backfilled","demTexture","fbo","_updateWorkerData","_data","_removed","_pendingLoads","workerOptions","setData","setClusterOptions","_request","_finishLoading","prepare","boundsBuffer","_boundsArray","boundsSegments","sourceId","setCoordinates","loop","triggerRepaint","play","paused","pause","seek","seekable","currentTime","canvas","getElementById","_hasInvalidDimensions","_playing","animate","getCanvas","calculatePosMatrix","maxPitchScaleFactor","tilesIn","wrappedTileID","queryResults","tile","queryRenderedFeatures","_state","getFeatureState","timeAdded","fadeEndTime","uses","expirationTime","hasSymbolBuckets","dependencies","rtt","rttCoords","expiredRequestCount","registerFadeDuration","wasRequested","clearTextures","hasData","latestFeatureIndex","latestRawTileData","getLayer","justReloaded","imageAtlasTexture","glyphAtlasTexture","getBucket","querySourceFeatures","patternsLoaded","getTime","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","_didEmitContent","_sourceErrored","_source","_tiles","_cache","_unloadTile","_timers","_cacheTimers","_maxTileCacheSize","_maxTileCacheZoomLevels","_loadedParentTiles","_coveredTiles","_updated","used","usedForTerrain","getSource","resume","_shouldReloadOnResume","_loadTile","_abortTile","imageManager","getIds","getRenderableIds","_isIdRenderable","hasRenderableParent","findLoadedParent","_reloadTile","_tileLoaded","refreshedUponExpiration","_setTileReloadTimer","_backfillDEM","getTileByID","_retainLoadedChildren","_getLoadedTile","updateCacheSize","handleWrapJump","_prevLng","getVisibleUnwrappedCoordinates","coveringTiles","coveringZoomLevel","maxOverzooming","maxUnderzooming","_updateRetainedTiles","_addTile","_fadeDuration","_removeTile","_updateLoadedParentTileCache","releaseSymbolFadeTiles","getCameraQueryGeometry","pointCoordinate","getVisibleCoordinates","posMatrix","reloadTilesForDependencies","active","workers","workerCount","Worker","numActive","terminate","isPreloaded","globalThis","_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","offsets","useVertical","notEnoughRoom","needsFlipping","last","projectionCache","tileAnchorPoint","distanceFromAnchor","getElevation","previousVertex","direction","absOffsetX","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","commit","zoomAtLastRecencyCheck","prevZoomAdjustment","zoomAdjustment","symbolFadeChange","lastPlacementChangeTime","updateLayerOpacities","updateBucketOpacities","hasTransitions","stillRecent","setStale","_sortAcrossTiles","_currentTileIndex","_currentPartIndex","_seenCrossTileIDs","_bucketParts","continuePlacement","placement","_currentPlacementIndex","_forceFullPlacement","_showCollisionBoxes","_done","isDone","_inProgressLayer","_symbolsByKey","crossTileIDs","getScaledCoordinates","findMatches","getCrossTileIDsLists","maxCrossTileID","generate","indexes","usedCrossTileIDs","addBucket","removeBucketCrossTileIDs","removeStaleBuckets","maxBucketInstanceId","bucketsInCurrentPlacement","pruneUnusedLayers","_getMapId","glyphManager","lineAtlas","crossTileSymbolIndex","_spritesImagesIds","_order","_availableImages","_resetUpdates","_rtlTextPluginCallback","_validateLayer","loadURL","_load","loadJSON","loadEmpty","transformStyle","stylesheet","_loadSprite","_createLayers","setTerrain","_serializedLayers","_spriteRequest","_changedImages","_changed","_unloadSprite","flat","_updatedSources","_serializeByIds","_serializedAllLayers","_checkLoaded","_updatedLayers","_removedLayers","_updateWorkerLayers","_reloadSource","_clearSource","_updateTilesForChangedImages","_updateTilesForChangedGlyphs","_updatedPaintProps","_glyphsDidChange","_afterImageUpdated","isSourceLoaded","_layerOrderChanged","_updateLayer","moveLayer","getFilter","_flattenAndSortRenderedFeatures","addSourceType","workerSourceURL","_remove","_updateSources","_generateCollisionBoxes","_updatePlacement","pauseablePlacement","_releaseSymbolFadeTiles","getResource","getGlyphsUrl","addSprite","removeSprite","findIndex","getSprite","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","boundDynamicVertexBuffer2","boundDynamicVertexBuffer3","freshBind","bindVertexArray","dynamicDraw","numAttributes","createVertexArray","enableAttributes","setVertexAttribPointers","currentNumAttributes","deleteVertexArray","program","createProgram","createShader","FRAGMENT_SHADER","failedToCreate","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","attachShader","VERTEX_SHADER","attributes","bindAttribLocation","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","deleteShader","getUniformLocation","fixedUniforms","terrainUniforms","u_depth","u_terrain","u_terrain_dim","u_terrain_matrix","u_terrain_unpack","u_terrain_exaggeration","binderUniforms","setDepthMode","setStencilMode","setColorMode","setCullFace","activeTexture","TEXTURE2","depthTexture","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_ele_delta","u_terrain_coords_id","createBuffer","unbindVAO","bindElementBuffer","bufferData","ELEMENT_ARRAY_BUFFER","DYNAMIC_DRAW","STATIC_DRAW","bufferSubData","deleteBuffer","bindVertexBuffer","ARRAY_BUFFER","enableVertexAttribArray","vertexAttribPointer","WeakMap","getParameter","VERSION","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","bindFramebuffer","FRAMEBUFFER","bindRenderbuffer","RENDERBUFFER","bindBuffer","getExtension","bindVertexArrayOES","pixelStorei","UNPACK_ALIGNMENT","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_FLIP_Y_WEBGL","setDirty","framebufferTexture2D","COLOR_ATTACHMENT0","framebufferRenderbuffer","DEPTH_ATTACHMENT","DEPTH_STENCIL_ATTACHMENT","framebuffer","createFramebuffer","colorAttachment","depthAttachment","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","deleteRenderbuffer","deleteFramebuffer","blendFunction","Replace","disabled","unblended","alphaBlended","stencilTest","depthTest","blend","cullFaceSide","MAX_TEXTURE_MAX_ANISOTROPY_EXT","maxTextureSize","MAX_TEXTURE_SIZE","HALF_FLOAT","RGBA16F","RGBA16F_EXT","RGB16F","RGB16F_EXT","HALF_FLOAT_OES","createRenderbuffer","renderbufferStorage","stencil","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","STENCIL_BUFFER_BIT","fail","depthFail","pass","createVertexArrayOES","deleteVertexArrayOES","ReadOnly","ReadWrite","circleArray","circleOffset","invTransform","colorModeForRenderPass","getTerrainData","backCCW","shiftedAnchor","depthModeForSublayer","rotating","zooming","NEAREST","buffers","uniformValues","atlasTextureIcon","atlasInterpolation","atlasInterpolationIcon","hasHalo","terrainData","TEXTURE1","stencilModeForClipping","moving","rasterBoundsBuffer","quadTriangleIndexBuffer","rasterBoundsSegments","SCISSOR_TEST","scissor","initDebugOverlayCanvas","debugOverlayCanvas","shadowColor","shadowBlur","lineWidth","strokeStyle","strokeText","debugOverlayTexture","debugBuffer","debugSegments","tileBorderIndexBuffer","LEQUAL","depthRangeFor3D","getTerrainMesh","renderToTexture","getTexture","getMeshFrameDelta","vertexBuffer","_tileTextures","terrainFacilitator","matrix","renderTime","setup","numSublayers","depthEpsilon","tileExtentBuffer","tileExtentSegments","viewportBuffer","viewportSegments","stencilClearMode","nextStencilID","currentStencilSource","_renderTileClippingMasks","_tileClippingMaskIDs","REPLACE","stencilModeFor3D","NOTEQUAL","EQUAL","stencilConfigForOverlap","GEQUAL","_showOverdrawInspector","CONSTANT_COLOR","renderPass","opaquePassEnabledForLayer","currentLayer","opaquePassCutoff","prepareForRender","sourceCache","tilesAfterTime","projMatrix","getRenderableTiles","getFramebuffer","devicePixelRatio","getCoordsTexture","coordsIndex","renderLayer","showOverdrawInspector","showTileBoundaries","flatMap","showPadding","centerPoint","programConfiguration","gradient","isPatternMissing","setCustomLayerDefaults","customLayerMatrix","setBaseState","overLimit","planes","fromInvProjectionMatrix","quadrant","distanceX","distanceY","intersects","maxValidLatitude","_renderWorldCopies","_minZoom","_maxZoom","_minPitch","_maxPitch","setMaxBounds","_center","_elevation","_fov","_unmodified","_edgeInsets","_posMatrixCache","_alignedPosMatrixCache","_minEleveationForCurrentTile","maxPitch","latRange","_calcMatrices","minPitch","renderWorldCopies","worldSize","centerOffset","rotationMatrix","fov","_zoom","zoomScale","_constrain","elevation","isPaddingEqual","interpolatePadding","scaleZoom","getCameraPoint","aabb","fullyVisible","distanceSq","tileDistanceToCamera","getMinMaxElevation","minElevation","maxElevation","unmodified","project","unproject","getCameraPosition","lngLat","pointLocation","altitude","_pixelPerMeter","recalculateZoom","getElevationForLngLatZoom","setLocationAtPoint","locationCoordinate","coordinateLocation","locationPoint","coordinatePoint","pixelMatrix3D","pixelMatrixInverse","pixelMatrix","getBounds","getHorizon","getMaxBounds","lngRange","alignedProjMatrix","mercatorMatrix","_constraining","_getCurrentHash","hash","_hashName","_onHashChange","dragRotate","isEnabled","touchZoomRotate","_updateHashUnthrottled","getHashString","history","replaceState","_updateHash","encodeURIComponent","addTo","linearity","easing","deceleration","maxSpeed","_inertiaBuffer","_drainInertiaBuffer","settings","_onMoveEnd","pan","pinchAround","around","zoomDelta","bearingDelta","pitchDelta","panDelta","amount","noMoveStart","_defaultPrevented","defaultPrevented","getCanvasContainer","originalEvent","changedTouches","lngLats","_clickTolerance","clickTolerance","_mousedownPos","wheel","_firePreventable","mousedown","mouseup","click","dblclick","mouseover","mouseout","touchstart","touchmove","touchend","touchcancel","isActive","_delayContextMenu","_ignoreContextMenu","_contextMenuEvent","contextmenu","_requestedCameraState","_tr","_el","_container","_enabled","_active","shiftKey","_startPos","_lastPos","mousemoveWindow","_box","classList","_fireEvent","mouseupWindow","cameraAnimation","fitScreenCoordinates","keydown","keyCode","numTouches","centroid","startTime","timeStamp","singleTap","numTaps","lastTime","lastTap","_zoomIn","_zoomOut","easeTo","_moveStateManager","moveStateManager","_moveFunction","move","_activateOnStart","activateOnStart","assignEvents","_moved","_lastPoint","endMove","_move","dragStart","isValidStartEvent","startMove","dragMove","isValidMoveEvent","dragEnd","isValidEndEvent","getClickTolerance","_correctEvent","checkCorrectEvent","_eventButton","buttons","_firstTouch","_isOneFingerTouch","targetTouches","_isSameTouchEvent","bearingDegreesPerPixelMoved","ctrlKey","pitchDegreesPerPixelMoved","_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","_onTimeout","_type","_delta","_lastValue","_triggerRenderFrame","_defaultZoomRate","_wheelZoomRate","setZoomRate","setWheelZoomRate","_finishTimeout","isZooming","_zooming","_metaKey","deltaMode","WheelEvent","DOM_DELTA_LINE","deltaY","_lastWheelEventTime","_timeout","_lastWheelEvent","_frameId","_around","_aroundPoint","renderFrame","_targetZoom","_startZoom","_easing","_smoothOutEasing","noInertia","needsRenderFrame","_prevEase","_clickZoom","_tapZoom","_tap","_swipePoint","_swipeTouch","_tapTime","_tapPoint","_mousePan","_touchPan","_inertiaOptions","_pitchWithRotate","pitchWithRotate","_mouseRotate","_mousePitch","_touchZoom","_touchRotate","_tapDragZoom","drag","handleWindowEvent","handleEvent","stop","_updatingCamera","_getMapTouches","handlerName","allowed","_handlers","_blockedByActive","mergeHandlerResult","_previousActiveHandlers","_changes","_stop","_inertia","_fireEvents","_handlersById","_bearingSnap","bearingSnap","_eventsInProgress","_addDefaultHandlers","passive","boxZoom","interactive","doubleClickZoom","touchPitch","dragPan","scrollZoom","keyboard","isRotating","isMoving","_applyChanges","_updateMapTransform","_getTransformForUpdate","_terrainMovement","_elevationFreeze","_applyUpdatedTransform","_update","essential","resetNorth","freezeElevation","_requestFrame","_renderTaskQueue","_renderFrameCallback","_easeStart","_easeOptions","_onEaseFrame","_easeFrameId","_requestRenderFrame","_moving","panBy","panTo","zoomTo","zoomIn","zoomOut","getPadding","setPadding","rotateTo","resetNorthPitch","snapToNorth","cameraForBounds","_cameraForBoxAndBearing","fitBounds","_fitInternal","flyTo","calculateCameraOptionsFromTo","_normalizeBearing","_normalizeCenter","_rotating","pitching","_pitching","_padding","_easeId","_prepareEase","_prepareElevation","_ease","_updateElevation","_fireMoveEvents","_finalizeElevation","_afterEase","_elevationCenter","_elevationStart","_elevationTarget","getMinTileElevationForLngLatZoom","transformCameraUpdate","speed","curve","screenSpeed","maxDuration","isEasing","_cancelRenderFrame","_onEaseEnd","handlers","queryTerrainElevation","_toggleAttribution","setAttribute","removeAttribute","_updateData","_updateAttributions","_updateCompact","offsetWidth","_compact","_updateCompactMinimize","getDefaultPosition","compact","_compactButton","_setElementTitle","_innerContainer","_attribHTML","_getUIString","customAttribution","styleOwner","owner","styleId","innerHTML","_editLink","rel","display","_queue","_id","_cleared","_currentlyRunning","run","_renderableTilesKeys","_sourceTileCache","deltaZoom","destruct","freeRtt","getTerrainCoords","getSourceTile","qualityFactor","meshSize","_demMatrixCache","_coordsTextureSize","getDEMElevation","mercatorX","mercatorY","_getOverscaledTileIDFromLngLatZoom","_emptyDemTexture","_emptyDepthTexture","_emptyDemUnpack","_emptyDemMatrix","_fboDepthTexture","_fbo","_fboCoordsTexture","DEPTH_COMPONENT16","_coordsTexture","readPixels","_mesh","_context","_size","_tileSize","_objects","_recentlyUsed","_stamp","_createObject","DEPTH_STENCIL","stamp","inUse","getObjectForId","useObject","stampObject","getOrCreateFreeObject","freeObject","freeAllObjects","isFull","pool","_stacks","_prevType","_rttTiles","_renderableTiles","_renderableLayerIds","_coordsDescendingInv","_coordsDescendingInvStr","attributionControl","maplibreLogo","failIfMajorPerformanceCaveat","preserveDrawingBuffer","trackResize","refreshExpiredTiles","maxTileCacheSize","maxTileCacheZoomLevels","maxCanvasSize","touchmoveWindow","showCompass","showZoom","visualizePitch","startMouse","element","moveMouse","mouseRotate","mousePitch","offTemp","startTouch","moveTouch","touchRotate","Ea","_onKeyPress","charCode","togglePopup","_onMapClick","_element","_popup","_lngLat","_offset","_rotationAlignment","_rotation","_pitchAlignment","_anchor","_opacityTimeout","_isDragging","_pointerdownPos","_positionDelta","setLngLat","_onUp","_addDragHandler","_color","_scale","_draggable","draggable","rotation","rotationAlignment","pitchAlignment","_defaultMarker","setAttributeNS","rx","ry","setDraggable","getLngLat","getElement","setPopup","_originalTabIndex","getAttribute","getPopup","isOpen","getOffset","setOffset","addClassName","removeClassName","toggleClassName","toggle","isDraggable","setRotation","getRotation","setRotationAlignment","getRotationAlignment","setPitchAlignment","getPitchAlignment","positionOptions","enableHighAccuracy","maximumAge","fitBoundsOptions","trackUserLocation","showAccuracyCircle","showUserLocation","maxWidth","clientHeight","closeButton","closeOnClick","focusAfterOpen","logToElement","maxParallelImageRequests","addProtocol","removeProtocol","_cooperativeGesturesOnWheel","_contextLost","_frame","_contextRestored","_setupPainter","_onMapScroll","scrollTop","scrollLeft","_onWindowOnline","_interactive","platform","_failIfMajorPerformanceCaveat","_preserveDrawingBuffer","_antialias","antialias","_trackResize","_crossSourceCollisions","_crossFadingFactor","_controls","_mapId","_locale","_overridePixelRatio","_maxCanvasSize","_imageQueueHandle","HTMLElement","maxBounds","_setupContainer","_idleTriggered","_resizeObserver","ResizeObserver","observe","_setupCooperativeGestures","_hash","_localIdeographFontFamily","_validateStyle","addControl","logoPosition","_controlPositions","insertBefore","firstChild","removeControl","hasControl","_containerDimensions","_getClampedPixelRatio","_resizeCanvas","setPixelRatio","setMinZoom","getMinZoom","setMaxZoom","getMaxZoom","setMinPitch","getMinPitch","setMaxPitch","getMaxPitch","getRenderWorldCopies","setRenderWorldCopies","getCooperativeGestures","setCooperativeGestures","_destroyCooperativeGestures","_createDelegatedListener","delegates","_delegatedListeners","diff","_diffStyle","_updateStyle","_lazyInitEmptyStyle","_updateDiff","getStyle","isStyleLoaded","_terrainDataCallback","getTerrain","areTilesLoaded","hasImage","loadImage","_canvasContainer","_canvas","clientWidth","_cooperativeGesturesScreen","windowsHelpText","macHelpText","mobileHelpText","requestedAttributes","statusMessage","_styleDirty","_sourcesDirty","_render","_placementDirty","_repaint","_fullyLoaded","redraw","disconnect","loseContext","_showTileBoundaries","_showPadding","repaint","_vertices","getCameraTargetElevation","NavigationControl","_updateZoomButtons","_zoomInButton","_zoomOutButton","_rotateCompassArrow","_compassIcon","_setButtonTitle","_createButton","_compass","_handler","GeolocateControl","_onSuccess","_isOutOfMapMaxBounds","_setErrorState","_updateMarker","_finish","_lastKnownPosition","_watchState","_geolocateButton","_updateCamera","_dotElement","longitude","latitude","geolocateSource","_accuracyCircleMarker","_userLocationDotMarker","_accuracy","_updateCircleRadius","_onZoom","_onError","_geolocationWatchID","_clearWatch","_timeoutId","_setupUI","_circleElement","_setup","permissions","geolocation","clearWatch","watchPosition","getCurrentPosition","AttributionControl","LogoControl","ScaleControl","setUnit","FullscreenControl","_onFullscreenChange","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","_fullscreen","_handleFullscreenChange","_onClickFullscreen","_isFullscreen","_exitFullscreen","_requestFullscreen","_fullscreenchange","_fullscreenButton","_updateTitle","_getTitle","_prevCooperativeGestures","exitFullscreen","mozCancelFullScreen","msExitFullscreen","webkitCancelFullScreen","_togglePseudoFullScreen","requestFullscreen","mozRequestFullScreen","msRequestFullscreen","webkitRequestFullscreen","TerrainControl","_toggleTerrain","_updateTerrainIcon","_terrainButton","Popup","_content","_onClose","_onMouseMove","_onDrag","_trackPointer","_tip","offsetHeight","closeOnMove","_focusFirstElement","trackPointer","setText","setDOMContent","createTextNode","setHTML","createDocumentFragment","getMaxWidth","setMaxWidth","hasChildNodes","_createCloseButton","_closeButton","querySelector","focus","Marker","LngLatBounds","CanvasSource","GeoJSONSource","ImageSource","RasterDEMTileSource","RasterTileSource","VectorTileSource","VideoSource","prewarm","clearPrewarmedResources","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","prop","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","cp","definedProjection","_projections","_definition","projection","ex","coordinate","sourceProjection","targetProjection","crsCode","_crsCode","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","fromOrdinates","ordinates","toOrdinates","sequenceFromOrdinates","Envelope","minx","miny","maxx","maxy","fromNumArray","toNumArray","envelope","fromCoordinate","Geometry","getCoordinate","getCentroid","flattenCoords","getCoordinates","getEnvelopeInternal","p1","p2","fromWkt","wktString","fromGeoJson","toWkt","geoJson","MultiLineString","MultiPoint","MultiPolygon","toGeoJson","shell","lsCoords","polygonPaths","CameraChangeOptions","PanOptions","relCenterX","relCenterY","minResolution","FitOptions","PopupCarouselElementId","ServiceType","mbPopup","panOnPositionChange","cameraOptions","closesOnClick","onOpen","_onOpen","onClose","onSlide","_onSlide","_featureCollection","selectedFeature","_selectedFeatureId","_metadata","_handleSlide","getMaxWidthForPage","getService","Localization","refresh","isCarousel","hasCloseButton","addContainer","parentElement","carouselEl","panPopup","topLeftX","topRightX","topRightY","bottomLeftX","bottomLeftY","bottomRightX","mapSW","mapSWPixel","mapNE","mapNEPixel","deltaX","newSW","newNE","newCenter","slideTo","page","carousel","PopupOptions","panOnOpen","showMarkerOnMobile","CarouselPopupOptions","selectedItem","randomUUID","crypto","getRandomValues","rnds8","rng","byteToHex","unsafeStringify","rnds","Feature","setProperties","getKeys","getField","setField","getProperties","getInternalId","setInternalId","instance","toGeoJsonString","fromMb","mbFt","FeatureCollection","_idIndex","_spatialIndex","callbackfn","getAll","getById","getByProperty","setCrsCode","getCrsCode","Crs","getByEnvelope","getByCoordinate","mbFc","fromGeoJsonTyped","ftColl","setProperty","CrsProperties","MapControlType","HighlightType","LineType","CircleRadiusUnitType","NominatimServiceOptions","requestsTimeoutMs","queryUrl","query_v2Url","query_v3Url","reverseGeocodingUrl","GeocodeLocQueryUrl","GeocodeLocReverseUrl","QueryOptions","pageSize","lang","ReverseGeocodingOptions","NominatimService","Nominatim","enabled","res","rej","display_Name","display_name","class","category","dateTime","boundingBox","boundingbox","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","highlightTypeToString","FeatureHighlightOptions","IconPropertyName","AnchorPropertyName","SizePropertyName","OffsetPropertyName","ZIndexKeyPropertyName","zindex","applyOptionsToFeatureProperties","props","FillColorPropertyName","FillOpacityPropertyName","OutlineColorPropertyName","OutlineWidthPropertyName","fillColor","fillOpacity","outlineColor","outlineWidth","LineColorPropertyName","LineOpacityPropertyName","LineWidthPropertyName","LineTypePropertyName","lineColor","lineOpacity","lineType","Solid","lineJoin","lineCap","Line","lineTypeToString","CircleColorPropertyName","CircleOpacityPropertyName","CircleRadiusPropertyName","CircleRadiusUnitTypePropertyName","radiusUnitType","Pixels","Circle","circleRadiusTypeToString","final","bear","calculateFinalBearing","lon1","lon2","origin","longitude1","latitude1","bearingRad","latitude2","startDist","stopDist","overshot","origCoordsLength","travelled","segmentLength","numberOfSegments","isInteger","sliceLineSegments","RouteStatusResponseDTO","dto","fromRoute","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","fromResponse","locations","routes","Routes","Instructions","Id","RoutingService","Routing","setOptions","locs","loc","routingRequest","transformRoute","profile","Mode","async","typeOfRoute","Points","Type","Odsek","Stacionaza","routeStr","postRequest","pointsFt","Title","routev1","routeStatus","Cache","CurrentSegmentIndex","Route","routeMultiple","consoleLogger","Logger","concreteLogger","prefix","logger","_len","_key","_len2","_key2","_len3","_key3","deprecate","_len4","_key4","lvl","debugOnly","moduleName","baseLogger","observers","event","observer","defer","makeString","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","setPath","newValue","getPath","deepExtend","overwrite","regexEscape","str","_entityMap","deepFind","keySeparator","paths","joinedPath","getCleanedCode","ResourceStore","defaultNS","ignoreJSONStructure","addNamespaces","removeNamespaces","addResource","silent","addResources","resources","addResourceBundle","deep","pack","removeResourceBundle","hasResourceBundle","getResourceBundle","compatibilityAPI","getDataByLanguage","hasLanguageSomeTranslations","postProcessor","processors","addPostProcessor","handle","translator","processor","checkedLoadedFor","Translator","services","changeLanguage","language","exists","resolved","extractFromKey","nsSeparator","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","matched","looksLikeObjectPath","interpolator","nestingRegexp","lastKey","overloadTranslationOptionHandler","returnDetails","namespace","appendNamespaceToCIMode","usedKey","exactUsedKey","usedLng","usedNS","resUsedKey","resExactUsedKey","resType","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValueSuffixOrdinalFallback","ordinal","isValidLookup","resForMissing","missingKeyNoValueFallbackToKey","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","_this","defaultVariables","skipInterpolation","skipOnVariables","nestBef","nb","nest","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","extracted","fallbackNS","needsZeroSuffixLookup","shouldUseIntlApi","needsContextHandling","utils","hasLoadedNamespace","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","pluralSeparator","ordinalPrefix","contextKey","contextSeparator","possibleKey","returnNull","returnEmptyString","resourceStore","option","capitalize","LanguageUtil","supportedLngs","getScriptPartFromCode","formatLanguageCode","getLanguagePartFromCode","specialCases","lowerCaseLng","part","cleanCode","isSupportedCode","nonExplicitSupportedLngs","getBestMatchFromCodes","cleanedLng","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","sets","_rulesPluralsTypes","nonIntlVersions","intlVersions","suffixesOrder","zero","one","two","few","many","other","PluralResolver","compatibilityJSON","PluralRules","rules","numbers","plurals","createRules","addRule","getRule","needsPlural","rule","pluralCategories","getPluralFormsOfKey","pluralCategory1","pluralCategory2","pluralCategory","select","getSuffixRetroCompatible","idx","noAbs","simplifyPluralSuffix","returnSuffix","deepFindWithDefaults","defaultData","getPathWithDefaults","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","matchedSingleQuotes","matchedDoubleQuotes","formatters","doReduce","createCachedFormatter","formatter","Formatter","formats","opt","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","ListFormat","addCached","mem","formatName","formatOptions","formatStr","optStr","rest","parseFormatStr","valOptions","formatParams","Connector","backend","store","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","queue","queueLoad","languages","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","pendingCount","pushPath","removePending","loadedKeys","read","fcName","tried","wait","prepareLoading","loadOne","fallbackValue","isUpdate","clb","initImmediate","preload","partialBundledLanguages","tDescription","transformOptions","noop","I18n","inst","modules","external","isInitialized","isClone","defOpts","createClassOnDemand","ClassOrObject","languageDetector","detection","deferred","initializedStoreOnce","loadResources","usedCallback","resolvedLanguage","setResolvedLanguage","reloadResources","use","lngInLngs","_this2","isLanguageChangingTo","setLngProps","setLng","cacheUserLanguage","detect","getFixedT","keyPrefix","_this3","fixedT","resultKey","setDefaultNamespace","lastLng","loadNotPending","loadState","precheck","preResult","loadNamespaces","loadLanguages","preloaded","newLngs","dir","createInstance","cloneInstance","forkResourceStore","mergedOptions","_typeof","hasXMLHttpRequest","XmlHttpRequestApi","ActiveXObjectApi","ActiveXObject","addQueryString","queryString","fetchIt","fetchOptions","omitFetchOptions","payload","queryStringParams","customHeaders","reqOptions","requestOptions","requestWithFetch","crossDomain","overrideMimeType","requestWithXmlHttpRequest","_defineProperties","descriptor","configurable","writable","_toPropertyKey","hint","prim","toPrimitive","_toPrimitive","getDefaults","loadPath","addPath","parsePayload","_defineProperty","parseLoadPayload","reloadInterval","Backend","allOptions","Constructor","_classCallCheck","protoProps","staticProps","setInterval","_readAny","loadUrlLanguages","loadUrlNamespaces","maybePromise","isPromise","resolvedLoadPath","loadUrl","parseErr","_this4","finished","dataArray","resArray","_this5","_this$services","currentLanguage","LocalizationServiceOptions","defaultLanguage","languageFilesPath","LocalizationService","htmlOptionsAttribute","getLanguage","setLanguage","localStorage","getItem","getTarget","localizeElement","extendStatics","setPrototypeOf","__proto__","__extends","__","__values","__read","__spreadArray","createErrorClass","createImpl","ctorFunc","UnsubscriptionError","_super","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","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","toPromise","ObjectUnsubscribedError","Subject","currentObservers","hasError","thrownError","subject","AnonymousSubject","_throwIfClosed","_checkFinalizedStatuses","_innerSubscribe","asObservable","Highlights","featuresAdded","_featuresAdded","featuresRemoved","_featuresRemoved","routeFc","_highlightsSourceName","_markerLayerName","_polygonLayerName","_lineSolidLayerName","_lineDottedLayerName","_lineDashedLayerName","_circleLayerName","_layerIds","_layerSpecifications","rmFeatureLabel","_includeInIdentify","initLayers","showMarker","getFeaturePropertiesFromHighlightOptions","processData","clearMarkers","isRmFeature","showPolygon","clearPolygons","showLine","clearLines","showCircle","clearCircles","clearFeature","filtered","setSourceData","setFeatureValue","indices","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","setIncludeInIdentify","MapPickerControlOptions","MapPickerControl","onProcessingStatusChange","_onProcessingStatusChange","onLocationSelected","_onLocationSelected","onRouteConstructed","_onRouteConstructed","constructRoutes","drawRoutes","onMapClick","nativeEvent","MouseEvent","hide","_localizationService","onclick","removeLocation","popupRemovePoint","openPopup","group","aStart","addLocation","aEnd","popupClick","_routingService","onClick","inject","setRoute","setLoadingStatus","refreshRoute","drawRoute","GeolocationOptions","panIfNotInView","isAccurate","showAccuracy","showHeading","autoZoom","markerScale","getPrimaryColor","getSecondaryColor","getHeadingIconName","Geolocation","PrimaryColorPropertyName","SecondaryColorPropertyName","LocationMarkerScalePropertyName","LocationMarkerOutlineWidthPropertyName","HeadingIconImagePropertyName","HeadingIconScalePropertyName","HeadingIconRotatePropertyName","AccuracyOutlineWidthPropertyName","AccuracyOutlineColorProperyName","AccuracyOpacityPropertyName","metersToPixelsAtMaxZoom","_geolocationSourceName","_accuracyLayerName","_markerInnerCircleLayerName","_markerOuterCircleLayerName","_headingLayerName","initSources","showGeolocation","apos","heading","createGeolocationFeature","updateAccuracyLayerRadius","handleCamera","clearGeolocation","isPositionInsideMap","getView","panOptions","panCoord","mbLayer","LayerGroup","_parent","uiVisible","iconClass","sequenceMode","uiGroupExpandable","uiGroupHeaderVisible","uiGroupAlwaysOpen","getParent","LegendControl","getLayerCheckboxId","getGroupCheckboxId","hoveringCheckbox","layerCheckboxes","resizePanel","getSize","_panel","maxHeight","_button","createButton","createPanel","onLayerVisibilityChanged","onGroupVisibilityChanged","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","clearInterval","AsyncAction","recycleAsyncId","requestAsyncId","flush","_scheduler","execute","_execute","_delay","errorValue","errored","actions","dateTimestampProvider","Scheduler","schedulerActionCtor","asyncScheduler","AsyncScheduler","SchedulerAction","action","operate","hasLift","liftedSource","RoutingInputActionButtonType","OperatorSubscriber","onNext","onComplete","onError","onFinalize","shouldUnsubscribe","closed_1","debounceTime","dueTime","activeTask","lastValue","emitWhenIdle","targetTime","createOperatorSubscriber","RoutingControlOptions","RoutingInput","_actionButtons","btn","placeholderText","placeholderTextAlt","setTarget","getLocation","_location","saveLocation","addActionButton","getActionButton","RoutingInputActionButton","_target","Utils","routeColor","selected","routeOrangeColor","routeRedColor","formatDistance","formatDuration","RoutingControl","searchInputIdWaitingForLocation","getPanelStatus","_searchInputs","inputChangeDebouncing","searchInputPlaceholder","searchToolbarItem","showDisclaimer","transportationModes","isMobile","onSearchTabSelected","focusedTransportationMode","clearHighlight","highlightLocation","_reverseLocations","searchTarget","refreshDisclaimerVisibility","onTransportationModeTabSelected","modeId","showModeRoute","waitingId","waitingInput","onSearchKeyUp","navigateSearchResults","setSearchResultsStatus","stopSearchResultsHideTimeout","searchResultsHideTimeout","startSearchResultsHideTimeout","_nominatimService","_mapPicker","getControl","MapPicker","getLoadingStatus","geocode","clickCoord","setSearchInputValue","selectTransportationModeTab","setPanelStatus","processInputChange","locationHighlight","_panelTop","createPanelTop","createSearchResults","_panelBottom","createPanelBottom","panelTop","createToolbar","inputsContainer","routingInput","createInput","inputAppend","myLocBtn","myLocBtnIcon","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","Length","timeIcon","timeText","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","onRouteSaved","_onRouteSaved","focusedSearchInput","_focusedSearchInput","getNewRoutingLocationsArray","_routingLocationsIncrementCount","getRoutingLocationsArray","responsiveBreakpoint","searchEntryWidth","legendWidth","routingWidth","searchResultsMaxHeight","routeStatusKey","routeIdKey","routeTTBadgeClassKey","weatherLayerName","weatherSourceName","_weatherData","_searchResultsFeatures","refreshRouteDebouncing","searchTextDebouncing","_routingLocations","openLegendKey","injectedRouteId","injectedRouteTitle","myLocExecuting","selectedRoute","resizeElements","_legend","_routing","_weatherContainer","refreshLegendSize","refreshRoutingSize","refreshSearchBarContainerSize","refreshRoutes","onLongClick","openMapClickOptionsMenu","popupRmb","getRoutingStatus","featureLayers","routeId","setRoutesStatus","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","reorder","sel","selectedIndex","clearRoutingTabContainer","_routingTabsContainer","viaPoints","ins","CumulativeDuration","CumulativeLength","detourText","IsDetour","Selected","Start","Destination","Profile","DetourText","Duration","TTClass","TTSpinnerClass","instrAttrName","highlightInstruction","_routingSave","saveBtn","getOtherTabs","detailsSelector","_routingError","changed","threshold","waypointsFts","fetchId","_routingSpinner","spinner","instructionHighlight","drawMarker","mapWidth","refreshId","refreshOnStart","routeStatusRefresh","routeStatusRefreshInterval","statusPromises","ttBadge","legendBody","getRoutingWidth","fetchWeatherData","onlyShowFinalFrame","updateLastWeatherFrame","startWeatherLayerUpdating","_weatherAnimationTimeout","setWeatherSource","srcUrl","srcBbox","weather","valid","show","getDate","StyleMetadata","mobileOverlayEnable","mobileOverlayText","mobileOverlayCloseText","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","filterWidth","detailsWidth","chargingLayerId","refreshFilterSize","refreshDetailsSize","_connectorsDict","_vehiclesDict","onFeaturePopupClicked","contentName","getPolnilnice","polnilnice","setFilterStatus","setDetailsStatus","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","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","_style","_onClick","_onLongClick","onDblClick","_onDblClick","onMouseMove","onLoad","_onLoad","onStyleLoad","_onStyleLoad","onRestyleLayer","_onRestyleLayer","onUserAction","_onUserAction","onSourceChange","_onSourceChange","onViewChange","_onViewChange","onZoom","_onGroupVisibilityChanged","_onLayerVisibilityChanged","onPopupOpened","_onPopupOpened","_onFeaturePopupClicked","onProcessingStatusChanged","_onProcessingStatusChanged","onFeaturesAdded","_onFeaturesAdded","onFeaturesRemoved","_onFeaturesRemoved","_label","theme","_theme","popups","_popups","_projection","styleUrl","_userActionEvents","Light","_mobilePopups","_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","fullscreenGet","fsc","FullScreen","fullscreenEnter","fullscreenExit","addMobileClickOverlay","locService","overlayDiv","cursor","ev","closeFullscreenContainer","marginBottom","closeFullscreenContainer2","closeFullscreenButton","closeText","isFullscreen","updateMobileOverlay","ctrlsContainer","mbOptions","persistedView","getPersistedView","startExtent","setMapTheme","srcId","generateClusterLayers","removeHiddenVectorHybridLayers","mglLayer","forceReloadSources","frs","intervalMS","persisted","getPersistedVisibility","refreshSingleGroupVisibility","notice","noticeStyle","yearPlaceholder","enableSideScroller","getSideScroller","scrollerLeft","backgroundColor","scrollerLeftIcon","routingServiceOpts","routingServiceName","nominatimServiceOpts","nominatimServiceName","localizationServiceOpts","enableRotate","addLocalizationService","_highlights","_geolocation","addControls","startRefreshingGeoJSONUrlSources","onloadend","initEvents","newData","getGroups","getGroup","getLayerFeatures","getSourceFeatures","getLayerVisibility","setMbLayerVisibility","updateUpwards","transformToProjection","fromProjection","transformToProjectionMulti","newCoordinates","transformGeometryToProjection","defaultPanOptions","camOptions","xOffset","yOffset","fit","boundsArray","defaultCameraChangeOptions","setView","fitCameraToSources","sourceIds","ftrs","panProp","fitCameraToCurrentRoute","drawPolygon","drawLine","drawCircle","ctrl","mapPicker","clearMapPicker","drawRouteLegacy","removeFeatures","clearAllHighlights","setFeaturesIncludeInIdentify","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","addLegendControl","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","onReloadLayer","newZoom","setVisibility","sids","sid","drawRouteFromGeoJson","includeInPopup","clearMarker","gjGeometry","clearCircle","clearLine","polygonCoords","clearPolygon","fitToFeatures","fitToFeatureCollection","ffc","fitToSources","fitToExtent","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","initDARSPlugiMap","mapContainerId","ftJson","transformEpsg3912ToEpsg4326","r_eq_str","splt","expectedVal","r_neq_str","closeIcon","createDescription","dscr","tmplt","newDescription","replaceChild","_compare","compareStyleUrl","compareMap"],"sourceRoot":""}