{"version":3,"sources":["webpack://ol/webpack/universalModuleDefinition","webpack://ol/./node_modules/ieee754/index.js","webpack://ol/./node_modules/mapbox-to-css-font/index.js","webpack://ol/./node_modules/pbf/index.js","webpack://ol/./node_modules/rbush/rbush.min.js","webpack://ol/./node_modules/webfont-matcher/lib/fonts/google.js","webpack://ol/webpack/bootstrap","webpack://ol/webpack/runtime/define property getters","webpack://ol/webpack/runtime/hasOwnProperty shorthand","webpack://ol/./build/ol/util.js","webpack://ol/./build/ol/AssertionError.js","webpack://ol/./build/ol/events/Event.js","webpack://ol/./build/ol/ObjectEventType.js","webpack://ol/./build/ol/Disposable.js","webpack://ol/./build/ol/array.js","webpack://ol/./build/ol/functions.js","webpack://ol/./build/ol/obj.js","webpack://ol/./build/ol/events/Target.js","webpack://ol/./build/ol/events/EventType.js","webpack://ol/./build/ol/events.js","webpack://ol/./build/ol/Observable.js","webpack://ol/./build/ol/Object.js","webpack://ol/./build/ol/CollectionEventType.js","webpack://ol/./build/ol/Collection.js","webpack://ol/./build/ol/asserts.js","webpack://ol/./build/ol/Feature.js","webpack://ol/./build/ol/geom/GeometryLayout.js","webpack://ol/./build/ol/geom/GeometryType.js","webpack://ol/./build/ol/proj/Units.js","webpack://ol/./build/ol/transform.js","webpack://ol/./build/ol/has.js","webpack://ol/./build/ol/extent/Corner.js","webpack://ol/./build/ol/extent/Relationship.js","webpack://ol/./build/ol/extent.js","webpack://ol/./build/ol/proj/Projection.js","webpack://ol/./build/ol/math.js","webpack://ol/./build/ol/proj/epsg3857.js","webpack://ol/./build/ol/proj/epsg4326.js","webpack://ol/./build/ol/proj/projections.js","webpack://ol/./build/ol/proj/transforms.js","webpack://ol/./build/ol/sphere.js","webpack://ol/./build/ol/string.js","webpack://ol/./build/ol/coordinate.js","webpack://ol/./build/ol/proj.js","webpack://ol/./build/ol/geom/flat/transform.js","webpack://ol/./build/ol/geom/Geometry.js","webpack://ol/./build/ol/geom/SimpleGeometry.js","webpack://ol/./build/ol/geom/flat/closest.js","webpack://ol/./build/ol/geom/flat/deflate.js","webpack://ol/./build/ol/geom/flat/simplify.js","webpack://ol/./build/ol/geom/flat/inflate.js","webpack://ol/./build/ol/geom/flat/area.js","webpack://ol/./build/ol/geom/LinearRing.js","webpack://ol/./build/ol/geom/Point.js","webpack://ol/./build/ol/geom/flat/contains.js","webpack://ol/./build/ol/geom/flat/interiorpoint.js","webpack://ol/./build/ol/geom/flat/segments.js","webpack://ol/./build/ol/geom/flat/intersectsextent.js","webpack://ol/./build/ol/geom/flat/reverse.js","webpack://ol/./build/ol/geom/flat/orient.js","webpack://ol/./build/ol/geom/Polygon.js","webpack://ol/./build/ol/Geolocation.js","webpack://ol/./build/ol/ImageBase.js","webpack://ol/./build/ol/ImageState.js","webpack://ol/./build/ol/Image.js","webpack://ol/./build/ol/ImageCanvas.js","webpack://ol/./build/ol/TileState.js","webpack://ol/./build/ol/easing.js","webpack://ol/./build/ol/Tile.js","webpack://ol/./build/ol/dom.js","webpack://ol/./build/ol/ImageTile.js","webpack://ol/./build/ol/Kinetic.js","webpack://ol/./build/ol/color.js","webpack://ol/./build/ol/style/IconImageCache.js","webpack://ol/./build/ol/layer/Property.js","webpack://ol/./build/ol/layer/Base.js","webpack://ol/./build/ol/render/EventType.js","webpack://ol/./build/ol/source/State.js","webpack://ol/./build/ol/layer/Layer.js","webpack://ol/./build/ol/renderer/Map.js","webpack://ol/./build/ol/render/Event.js","webpack://ol/./build/ol/css.js","webpack://ol/./build/ol/render/canvas.js","webpack://ol/./build/ol/renderer/Composite.js","webpack://ol/./build/ol/layer/Group.js","webpack://ol/./build/ol/MapEvent.js","webpack://ol/./build/ol/MapBrowserEvent.js","webpack://ol/./build/ol/MapBrowserEventType.js","webpack://ol/./build/ol/pointer/EventType.js","webpack://ol/./build/ol/MapBrowserEventHandler.js","webpack://ol/./build/ol/MapEventType.js","webpack://ol/./build/ol/MapProperty.js","webpack://ol/./build/ol/structs/PriorityQueue.js","webpack://ol/./build/ol/TileQueue.js","webpack://ol/./build/ol/ViewHint.js","webpack://ol/./build/ol/ViewProperty.js","webpack://ol/./build/ol/tilegrid/common.js","webpack://ol/./build/ol/centerconstraint.js","webpack://ol/./build/ol/resolutionconstraint.js","webpack://ol/./build/ol/rotationconstraint.js","webpack://ol/./build/ol/View.js","webpack://ol/./build/ol/size.js","webpack://ol/./build/ol/PluggableMap.js","webpack://ol/./build/ol/control/Control.js","webpack://ol/./build/ol/control/Attribution.js","webpack://ol/./build/ol/control/Rotate.js","webpack://ol/./build/ol/control/Zoom.js","webpack://ol/./build/ol/control.js","webpack://ol/./build/ol/interaction/Property.js","webpack://ol/./build/ol/interaction/Interaction.js","webpack://ol/./build/ol/interaction/DoubleClickZoom.js","webpack://ol/./build/ol/interaction/Pointer.js","webpack://ol/./build/ol/events/condition.js","webpack://ol/./build/ol/interaction/DragPan.js","webpack://ol/./build/ol/interaction/DragRotate.js","webpack://ol/./build/ol/render/Box.js","webpack://ol/./build/ol/interaction/DragBox.js","webpack://ol/./build/ol/interaction/DragZoom.js","webpack://ol/./build/ol/events/KeyCode.js","webpack://ol/./build/ol/interaction/KeyboardPan.js","webpack://ol/./build/ol/interaction/KeyboardZoom.js","webpack://ol/./build/ol/interaction/MouseWheelZoom.js","webpack://ol/./build/ol/interaction/PinchRotate.js","webpack://ol/./build/ol/interaction/PinchZoom.js","webpack://ol/./build/ol/interaction.js","webpack://ol/./build/ol/Map.js","webpack://ol/./build/ol/OverlayPositioning.js","webpack://ol/./build/ol/Overlay.js","webpack://ol/./build/ol/structs/LRUCache.js","webpack://ol/./build/ol/tilecoord.js","webpack://ol/./build/ol/TileCache.js","webpack://ol/./build/ol/TileRange.js","webpack://ol/./build/ol/VectorRenderTile.js","webpack://ol/./build/ol/VectorTile.js","webpack://ol/./build/ol/colorlike.js","webpack://ol/./build/ol/format/FormatType.js","webpack://ol/./build/ol/featureloader.js","webpack://ol/./build/ol/loadingstrategy.js","webpack://ol/./build/ol/net.js","webpack://ol/./build/ol/render/VectorContext.js","webpack://ol/./build/ol/render/canvas/Immediate.js","webpack://ol/./build/ol/render/canvas/BuilderType.js","webpack://ol/./build/ol/renderer/vector.js","webpack://ol/./build/ol/render.js","webpack://ol/./build/ol/source/common.js","webpack://ol/./build/ol/reproj.js","webpack://ol/./build/ol/tilegrid/TileGrid.js","webpack://ol/./build/ol/tilegrid.js","webpack://ol/./build/ol/tileurlfunction.js","webpack://ol/./build/ol/uri.js","webpack://ol/./build/ol/webgl.js","webpack://ol/./build/ol/xml.js","webpack://ol/./build/ol/webgl/Buffer.js","webpack://ol/./build/ol/webgl/ContextEventType.js","webpack://ol/./build/ol/webgl/PostProcessingPass.js","webpack://ol/./build/ol/vec/mat4.js","webpack://ol/./build/ol/webgl/Helper.js","webpack://ol/./build/ol/webgl/RenderTarget.js","webpack://ol/./build/ol/style/expressions.js","webpack://ol/./build/ol/webgl/ShaderBuilder.js","webpack://ol/./build/ol/tilegrid/WMTS.js","webpack://ol/./build/ol/style/Image.js","webpack://ol/./build/ol/style/RegularShape.js","webpack://ol/./build/ol/style/Circle.js","webpack://ol/./build/ol/style/Fill.js","webpack://ol/./build/ol/style/IconAnchorUnits.js","webpack://ol/./build/ol/style/IconOrigin.js","webpack://ol/./build/ol/style/IconImage.js","webpack://ol/./build/ol/style/Icon.js","webpack://ol/./build/ol/style/Stroke.js","webpack://ol/./build/ol/style/Style.js","webpack://ol/./build/ol/style/TextPlacement.js","webpack://ol/./build/ol/style/Text.js","webpack://ol/./build/ol/structs/LinkedList.js","webpack://ol/./build/ol/structs/RBush.js","webpack://ol/./build/ol/reproj/common.js","webpack://ol/./build/ol/reproj/Triangulation.js","webpack://ol/./build/ol/reproj/Tile.js","webpack://ol/./build/ol/source/TileEventType.js","webpack://ol/./build/ol/source/Source.js","webpack://ol/./build/ol/source/Tile.js","webpack://ol/./build/ol/source/UrlTile.js","webpack://ol/./build/ol/source/TileImage.js","webpack://ol/./build/ol/source/BingMaps.js","webpack://ol/./build/ol/source/XYZ.js","webpack://ol/./build/ol/source/CartoDB.js","webpack://ol/./build/ol/source/VectorEventType.js","webpack://ol/./build/ol/source/Vector.js","webpack://ol/./build/ol/source/Cluster.js","webpack://ol/./build/ol/source/Zoomify.js","webpack://ol/./build/ol/format/IIIFInfo.js","webpack://ol/./build/ol/source/IIIF.js","webpack://ol/./build/ol/reproj/Image.js","webpack://ol/./build/ol/source/Image.js","webpack://ol/./build/ol/source/ImageArcGISRest.js","webpack://ol/./build/ol/source/ImageCanvas.js","webpack://ol/./build/ol/source/ImageMapGuide.js","webpack://ol/./build/ol/source/ImageStatic.js","webpack://ol/./build/ol/source/WMSServerType.js","webpack://ol/./build/ol/source/ImageWMS.js","webpack://ol/./build/ol/source/OSM.js","webpack://ol/./build/ol/layer/BaseImage.js","webpack://ol/./build/ol/renderer/Layer.js","webpack://ol/./build/ol/renderer/canvas/Layer.js","webpack://ol/./build/ol/renderer/canvas/ImageLayer.js","webpack://ol/./build/ol/layer/Image.js","webpack://ol/./build/ol/layer/TileProperty.js","webpack://ol/./build/ol/layer/BaseTile.js","webpack://ol/./build/ol/renderer/canvas/TileLayer.js","webpack://ol/./build/ol/layer/Tile.js","webpack://ol/./build/ol/source/Raster.js","webpack://ol/./build/ol/source/Stamen.js","webpack://ol/./build/ol/source/TileArcGISRest.js","webpack://ol/./build/ol/source/TileDebug.js","webpack://ol/./build/ol/source/TileJSON.js","webpack://ol/./build/ol/source/TileWMS.js","webpack://ol/./build/ol/source/UTFGrid.js","webpack://ol/./build/ol/source/VectorTile.js","webpack://ol/./build/ol/source/WMTSRequestEncoding.js","webpack://ol/./build/ol/source/WMTS.js","webpack://ol/./build/ol/renderer/webgl/Layer.js","webpack://ol/./build/ol/layer/BaseVector.js","webpack://ol/./build/ol/worker/webgl.js","webpack://ol/./build/ol/renderer/webgl/PointsLayer.js","webpack://ol/./build/ol/render/canvas/Instruction.js","webpack://ol/./build/ol/render/canvas/Builder.js","webpack://ol/./build/ol/render/canvas/ImageBuilder.js","webpack://ol/./build/ol/render/canvas/LineStringBuilder.js","webpack://ol/./build/ol/render/canvas/PolygonBuilder.js","webpack://ol/./build/ol/geom/flat/straightchunk.js","webpack://ol/./build/ol/render/canvas/TextBuilder.js","webpack://ol/./build/ol/render/canvas/BuilderGroup.js","webpack://ol/./build/ol/geom/flat/textpath.js","webpack://ol/./build/ol/geom/flat/length.js","webpack://ol/./build/ol/render/canvas/Executor.js","webpack://ol/./build/ol/render/canvas/ExecutorGroup.js","webpack://ol/./build/ol/render/canvas/hitdetect.js","webpack://ol/./build/ol/renderer/canvas/VectorLayer.js","webpack://ol/./build/ol/renderer/canvas/VectorImageLayer.js","webpack://ol/./build/ol/layer/VectorTileRenderType.js","webpack://ol/./build/ol/renderer/canvas/VectorTileLayer.js","webpack://ol/./build/ol/geom/flat/interpolate.js","webpack://ol/./build/ol/geom/flat/center.js","webpack://ol/./build/ol/render/Feature.js","webpack://ol/./build/ol/geom/LineString.js","webpack://ol/./build/ol/layer/Vector.js","webpack://ol/./build/ol/geom/flat/geodesic.js","webpack://ol/./build/ol/layer/Graticule.js","webpack://ol/./build/ol/layer/Heatmap.js","webpack://ol/./build/ol/format/Feature.js","webpack://ol/./build/ol/geom/MultiLineString.js","webpack://ol/./build/ol/geom/MultiPoint.js","webpack://ol/./build/ol/geom/MultiPolygon.js","webpack://ol/./build/ol/format/MVT.js","webpack://ol/./build/ol/layer/VectorTile.js","webpack://ol/./build/ol/geom/GeometryCollection.js","webpack://ol/./build/ol/format/JSONFeature.js","webpack://ol/./build/ol/format/GeoJSON.js","webpack://ol/./node_modules/@mapbox/mapbox-gl-style-spec/dist/index.es.js","webpack://ol/./node_modules/ol-mapbox-style/dist/util.js","webpack://ol/./node_modules/ol-mapbox-style/dist/stylefunction.js","webpack://ol/./node_modules/ol-mapbox-style/dist/index.js","webpack://ol/./build/ol/layer/MapboxVector.js","webpack://ol/./build/ol/layer/VectorImage.js","webpack://ol/./build/ol/layer/WebGLPoints.js","webpack://ol/./build/ol/interaction/DragAndDrop.js","webpack://ol/./build/ol/interaction/DragRotateAndZoom.js","webpack://ol/./build/ol/geom/Circle.js","webpack://ol/./build/ol/interaction/Draw.js","webpack://ol/./build/ol/interaction/Extent.js","webpack://ol/./build/ol/interaction/Modify.js","webpack://ol/./build/ol/interaction/Select.js","webpack://ol/./build/ol/interaction/Snap.js","webpack://ol/./build/ol/interaction/Translate.js","webpack://ol/./build/ol/geom/flat/flip.js","webpack://ol/./build/ol/format/EsriJSON.js","webpack://ol/./build/ol/format/XMLFeature.js","webpack://ol/./build/ol/format/GMLBase.js","webpack://ol/./build/ol/format/xsd.js","webpack://ol/./build/ol/format/GML2.js","webpack://ol/./build/ol/format/GML3.js","webpack://ol/./build/ol/format/GML.js","webpack://ol/./build/ol/format/GML32.js","webpack://ol/./build/ol/format/GPX.js","webpack://ol/./build/ol/format/TextFeature.js","webpack://ol/./build/ol/format/KML.js","webpack://ol/./build/ol/format/IGC.js","webpack://ol/./build/ol/format/OSMXML.js","webpack://ol/./build/ol/format/XML.js","webpack://ol/./build/ol/format/xlink.js","webpack://ol/./build/ol/format/OWS.js","webpack://ol/./build/ol/format/Polyline.js","webpack://ol/./build/ol/format/TopoJSON.js","webpack://ol/./build/ol/format/filter/Filter.js","webpack://ol/./build/ol/format/filter/LogicalNary.js","webpack://ol/./build/ol/format/filter/And.js","webpack://ol/./build/ol/format/filter/Bbox.js","webpack://ol/./build/ol/format/filter/Spatial.js","webpack://ol/./build/ol/format/filter/Contains.js","webpack://ol/./build/ol/format/filter/DWithin.js","webpack://ol/./build/ol/format/filter/Disjoint.js","webpack://ol/./build/ol/format/filter/Comparison.js","webpack://ol/./build/ol/format/filter/During.js","webpack://ol/./build/ol/format/filter/ComparisonBinary.js","webpack://ol/./build/ol/format/filter/EqualTo.js","webpack://ol/./build/ol/format/filter/GreaterThan.js","webpack://ol/./build/ol/format/filter/GreaterThanOrEqualTo.js","webpack://ol/./build/ol/format/filter/Intersects.js","webpack://ol/./build/ol/format/filter/IsBetween.js","webpack://ol/./build/ol/format/filter/IsLike.js","webpack://ol/./build/ol/format/filter/IsNull.js","webpack://ol/./build/ol/format/filter/LessThan.js","webpack://ol/./build/ol/format/filter/LessThanOrEqualTo.js","webpack://ol/./build/ol/format/filter/Not.js","webpack://ol/./build/ol/format/filter/NotEqualTo.js","webpack://ol/./build/ol/format/filter/Or.js","webpack://ol/./build/ol/format/filter/ResourceId.js","webpack://ol/./build/ol/format/filter/Within.js","webpack://ol/./build/ol/format/filter.js","webpack://ol/./build/ol/format/WFS.js","webpack://ol/./build/ol/format/WKB.js","webpack://ol/./build/ol/format/WKT.js","webpack://ol/./build/ol/format/WMSCapabilities.js","webpack://ol/./build/ol/format/WMSGetFeatureInfo.js","webpack://ol/./build/ol/format/WMTSCapabilities.js","webpack://ol/./build/ol/control/FullScreen.js","webpack://ol/./build/ol/control/MousePosition.js","webpack://ol/./build/ol/control/OverviewMap.js","webpack://ol/./build/ol/control/ScaleLine.js","webpack://ol/./build/ol/control/ZoomSlider.js","webpack://ol/./build/ol/control/ZoomToExtent.js","webpack://ol/./build/index.js","webpack://ol/./build/ol/geom/flat/topology.js","webpack://ol/./build/ol/proj/proj4.js"],"names":["root","factory","exports","module","define","amd","self","read","buffer","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","i","d","s","NaN","Infinity","Math","pow","write","value","c","rt","abs","isNaN","floor","log","LN2","fontWeights","thin","hairline","light","book","regular","normal","plain","roman","standard","medium","bold","heavy","black","fat","poster","sp","italicRE","fontCache","fonts","size","lineHeight","cssData","Array","isArray","weight","style","fontFamilies","ii","length","parts","split","maybeWeight","toLowerCase","w","pop","test","replace","fontFamily","join","indexOf","push","Pbf","ieee754","buf","this","ArrayBuffer","isView","Uint8Array","pos","type","Varint","Fixed64","Bytes","Fixed32","SHIFT_LEFT_32","SHIFT_RIGHT_32","utf8TextDecoder","TextDecoder","readPackedEnd","pbf","readVarint","toNum","low","high","isSigned","makeRoomForExtraLength","startPos","len","extraLen","realloc","writePackedVarint","arr","writeVarint","writePackedSVarint","writeSVarint","writePackedFloat","writeFloat","writePackedDouble","writeDouble","writePackedBoolean","writeBoolean","writePackedFixed32","writeFixed32","writePackedSFixed32","writeSFixed32","writePackedFixed64","writeFixed64","writePackedSFixed64","writeSFixed64","readUInt32","writeInt32","val","readInt32","prototype","destroy","readFields","readField","result","end","tag","skip","readMessage","readFixed32","readSFixed32","readFixed64","readSFixed64","readFloat","readDouble","b","l","p","h","Error","readVarintRemainder","readVarint64","readSVarint","num","readBoolean","Boolean","readString","decode","subarray","readUtf8TextDecoder","str","b1","b2","b3","b0","bytesPerSequence","String","fromCharCode","readUtf8","readBytes","readPackedVarint","readPackedSVarint","readPackedBoolean","readPackedFloat","readPackedDouble","readPackedFixed32","readPackedSFixed32","readPackedFixed64","readPackedSFixed64","writeTag","min","set","finish","writeBigVarintLow","lsb","writeBigVarintHigh","writeBigVarint","writeString","lead","charCodeAt","writeUtf8","writeBytes","writeRawMessage","fn","obj","writeMessage","writeBytesField","writeFixed32Field","writeSFixed32Field","writeFixed64Field","writeSFixed64Field","writeVarintField","writeSVarintField","writeStringField","writeFloatField","writeDoubleField","writeBooleanField","t","r","a","n","o","f","exp","u","sqrt","max","x","_maxEntries","_minEntries","ceil","clear","children","minX","minY","maxX","maxY","leaf","height","all","_all","data","search","toBBox","collides","load","insert","_build","slice","_splitRoot","_insert","remove","splice","_condense","compareMinX","compareMinY","toJSON","fromJSON","apply","_chooseSubtree","_split","_adjustParentBBoxes","_chooseSplitAxis","_chooseSplitIndex","v","M","_allDistMargin","sort","families","icon","name","title","link","getNames","getLink","normalizeName","call","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","definition","key","Object","defineProperty","enumerable","get","prop","hasOwnProperty","uidCounter_","getUid","ol_uid","extendStatics","VERSION","__extends","setPrototypeOf","__proto__","TypeError","__","constructor","create","_super","AssertionError","code","_this","message","stopPropagation","evt","BaseEvent","propagationStopped","defaultPrevented","target","preventDefault","Disposable","disposed","dispose","disposeInternal","binarySearch","haystack","needle","opt_comparator","mid","cmp","comparator","numberSafeCompareFunction","found","includes","linearFindNearest","direction","reverseSubArray","begin","tmp","extend","extension","find","func","equals","arr1","arr2","len1","findIndex","index","every","el","idx","isSorted","opt_func","opt_strict","compare","currentVal","res","TRUE","FALSE","VOID","memoizeOne","lastResult","lastArgs","lastThis","called","nextArgs","arguments","assign","var_sources","output","source","object","property","getValues","values","isEmpty","Target","opt_target","eventTarget_","pendingRemovals_","dispatching_","listeners_","addEventListener","listener","listeners","listenersForType","dispatchEvent","event","Event","propagate","dispatching","pendingRemovals","handleEvent","pr","removeEventListener","getListeners","hasListener","opt_type","keys","listen","opt_this","opt_once","bind","originalListener_1","eventsKey","listenOnce","unlistenByKey","Observable","on","onInternal","once","onceInternal","un","unInternal","revision_","changed","EventType","getRevision","ol_key","ObjectEvent","oldValue","BaseObject","opt_values","values_","setProperties","getKeys","getProperties","hasProperties","notify","eventType","ObjectEventType","addChangeListener","removeChangeListener","opt_silent","applyProperties","unset","Property","CollectionEvent","opt_element","opt_index","element","Collection","opt_array","opt_options","options","unique_","unique","array_","assertUnique_","updateLength_","getLength","forEach","array","getArray","item","insertAt","elem","CollectionEventType","removeAt","prev","setAt","j","opt_except","assert","assertion","errorCode","createStyleFunction","styles_1","Feature","opt_geometryOrProperties","id_","geometryName_","style_","styleFunction_","geometryChangeKey_","handleGeometryChanged_","geometry","setGeometry","properties","clone","setGeometryName","getGeometryName","getGeometry","getStyle","setStyle","getId","getStyleFunction","handleGeometryChange_","opt_style","setId","id","POINT","LINE_STRING","LINEAR_RING","POLYGON","MULTI_POINT","MULTI_LINE_STRING","MULTI_POLYGON","GEOMETRY_COLLECTION","CIRCLE","Units","DEGREES","FEET","METERS","PIXELS","TILE_PIXELS","USFEET","METERS_PER_UNIT","PI","transformStringDiv","ua","navigator","userAgent","FIREFOX","SAFARI","WEBKIT","MAC","DEVICE_PIXEL_RATIO","devicePixelRatio","WORKER_OFFSCREEN_CANVAS","WorkerGlobalScope","OffscreenCanvas","IMAGE_DECODE","Image","PASSIVE_EVENT_LISTENERS","passive","window","error","tmp_","transform","multiply","transform1","transform2","a1","c1","d1","e1","f1","a2","c2","d2","e2","f2","setFromArray","coordinate","y","rotate","angle","cos","sin","scale","makeScale","translate","dx","dy","compose","dx1","dy1","sx","sy","dx2","dy2","makeInverse","det","determinant","mat","transformString","node","document","createElement","boundingExtent","coordinates","extent","createEmpty","extendCoordinate","opt_extent","closestSquaredDistanceXY","containsCoordinate","containsXY","containsExtent","extent1","extent2","coordinateRelationship","relationship","Relationship","createOrUpdate","createOrUpdateEmpty","createOrUpdateFromCoordinate","createOrUpdateFromFlatCoordinates","flatCoordinates","stride","extendFlatCoordinates","approximatelyEquals","tolerance","extendCoordinates","extendXY","extendRings","rings","forEachCorner","callback","getBottomLeft","getBottomRight","getTopRight","getTopLeft","getArea","area","getWidth","getHeight","getCenter","getCorner","corner","Corner","getForViewAndSize","center","resolution","rotation","cosRotation","sinRotation","xCos","xSin","yCos","ySin","x0","x1","x2","x3","y0","y1","y2","y3","getIntersection","intersection","intersects","returnOrUpdate","scaleFromCenter","deltaX","deltaY","intersectsSegment","start","startRel","endRel","startX","startY","endX","endY","slope","applyTransform","transformFn","opt_stops","width","xs","ys","_boundingExtentXYs","wrapX","projection","projectionExtent","getExtent","canWrapX","worldWidth","Projection","code_","units_","extent_","worldExtent_","worldExtent","axisOrientation_","axisOrientation","global_","global","canWrapX_","getPointResolutionFunc_","getPointResolution","defaultTileGrid_","metersPerUnit_","metersPerUnit","getCode","getUnits","getMetersPerUnit","getWorldExtent","getAxisOrientation","isGlobal","setGlobal","getDefaultTileGrid","setDefaultTileGrid","tileGrid","setExtent","setWorldExtent","setGetPointResolution","getPointResolutionFunc","clamp","cosh","log2","LOG2E","squaredSegmentDistance","solveLinearSystem","maxRow","maxEl","absValue","coef","k","toDegrees","angleInRadians","toRadians","angleInDegrees","modulo","lerp","RADIUS","HALF_SIZE","EXTENT","WORLD_EXTENT","MAX_SAFE_Y","tan","EPSG3857Projection","units","point","PROJECTIONS","fromEPSG4326","input","opt_output","opt_dimension","dimension","toEPSG4326","atan","EPSG4326Projection","opt_axisOrientation","cache","add","transforms","destination","sourceCode","destinationCode","DEFAULT_RADIUS","getDistance","opt_radius","radius","lat1","lat2","deltaLatBy2","deltaLonBy2","atan2","getLengthInternal","getAreaInternal","distance","bearing","lon1","dByR","lat","asin","padNumber","number","opt_precision","numberString","toFixed","decimal","compareVersions","v1","v2","s1","s2","n1","parseInt","n2","delta","closestOnCircle","circle","getRadius","closestOnSegment","segment","along","degreesToStringHDMS","hemispheres","degrees","opt_fractionDigits","normalizedDegrees","dflPrecision","precision","deg","sec","charAt","format","template","coordinate1","coordinate2","cosAngle","sinAngle","squaredDistance","coord1","coord2","squaredDistanceToSegment","toStringXY","worldsAway","getWorldsAway","opt_sourceExtentWidth","sourceExtentWidth","cloneTransform","identityTransform","addProjection","addProjections","projections","projectionLike","opt_units","pointResolution","getter","toEPSG4326_1","getTransformFromProjections","vertices","addEquivalentProjections","addEquivalentTransforms","projections1","projections2","forwardTransform","inverseTransform","projection1","projection2","createProjection","defaultCode","createTransformFromCoordinateTransform","coordTransform","addCoordinateTransforms","forward","inverse","sourceProj","destProj","equivalent","equalUnits","sourceProjection","destinationProjection","transformFunc","getTransform","transformExtent","userProjection","setUserProjection","getUserProjection","toUserCoordinate","fromUserCoordinate","destProjection","toUserExtent","fromUserExtent","createSafeCoordinateTransform","coord","transformed","sourceX","sourceY","sourceExtent","addCommon","transform2D","opt_dest","dest","anchor","anchorX","anchorY","tmpTransform","Geometry","extentRevision_","simplifiedGeometryMaxMinSquaredTolerance","simplifiedGeometryRevision","simplifyTransformedInternal","revision","squaredTolerance","opt_transform","getSimplifiedGeometry","simplifyTransformed","closestPointXY","closestPoint","minSquaredDistance","getClosestPoint","opt_closestPoint","intersectsCoordinate","computeExtent","opt_sy","opt_anchor","simplify","getType","intersectsExtent","inCoordinates","outCoordinates","pixelExtent","projectedExtent","getStrideForLayout","layout","GeometryLayout","transformGeom2D","simpleGeometry","getFlatCoordinates","getStride","SimpleGeometry","getCoordinates","getFirstCoordinate","getLastCoordinate","getLayout","simplifiedGeometry","getSimplifiedGeometryInternal","setFlatCoordinates","setCoordinates","opt_layout","setLayout","nesting","getLayoutForStride","assignClosest","offset1","offset2","maxSquaredDelta","squaredDelta","arrayMaxSquaredDelta","ends","multiArrayMaxSquaredDelta","endss","assignClosestPoint","maxDelta","isRing","opt_tmpPoint","tmpPoint","assignClosestArrayPoint","assignClosestMultiArrayPoint","deflateCoordinate","deflateCoordinates","deflateCoordinatesArray","coordinatess","opt_ends","jj","deflateMultiCoordinatesArray","coordinatesss","opt_endss","douglasPeucker","simplifiedFlatCoordinates","simplifiedOffset","markers","stack","last","first","maxSquaredDistance","squaredDistance_1","douglasPeuckerArray","simplifiedEnds","radialDistance","snap","round","quantize","quantizeArray","quantizeMultiArray","simplifiedEndss","inflateCoordinates","opt_coordinates","inflateCoordinatesArray","opt_coordinatess","inflateMultiCoordinatesArray","opt_coordinatesss","linearRing","twiceArea","linearRings","linearRingss","LinearRing","maxDelta_","maxDeltaRevision_","GeometryType","Point","linearRingContainsExtent","linearRingContainsXY","wn","linearRingsContainsXY","linearRingssContainsXY","getInteriorPointOfArray","flatCenters","flatCentersOffset","intersections","rr","pointX","maxSegmentLength","segmentLength","getInteriorPointsOfMultiArray","interiorPoints","ret","point1","point2","intersectsLineString","coordinatesExtent","intersectsLineStringArray","intersectsLinearRing","intersectsLinearRingArray","intersectsLinearRingMultiArray","linearRingIsClockwise","edge","linearRingsAreOriented","opt_right","right","isClockwise","linearRingssAreOriented","orientLinearRings","orientLinearRingsArray","Polygon","ends_","flatInteriorPointRevision_","flatInteriorPoint_","orientedRevision_","orientedFlatCoordinates_","appendLinearRing","polygon","getOrientedFlatCoordinates","getEnds","getFlatInteriorPoint","flatCenter","getInteriorPoint","getLinearRingCount","getLinearRing","getLinearRings","circular","opt_n","opt_sphereRadius","fromExtent","fromCircle","opt_sides","opt_angle","sides","arrayLength","makeRegular","startAngle","GeolocationError","Geolocation","position_","transform_","watchId_","handleProjectionChanged_","handleTrackingChanged_","setProjection","trackingOptions","setTrackingOptions","setTracking","tracking","getProjection","getTracking","geolocation","watchPosition","positionChange_","positionError_","getTrackingOptions","clearWatch","position","coords","accuracy","altitude","altitudeAccuracy","heading","longitude","latitude","projectedPosition","speed","getAccuracy","getAccuracyGeometry","getAltitude","getAltitudeAccuracy","getHeading","getPosition","getSpeed","ImageBase","pixelRatio","state","pixelRatio_","getImage","getPixelRatio","getResolution","getState","listenImage","image","loadHandler","errorHandler","img","src","promise","listening_1","then","catch","listenerKeys","ImageWrapper","crossOrigin","imageLoadFunction","ImageState","src_","image_","unlisten_","imageLoadFunction_","handleImageError_","unlistenImage_","handleImageLoad_","setImage","ImageCanvas","canvas","opt_loader","loader_","canvas_","error_","getError","handleLoad_","err","easeIn","easeOut","inAndOut","linear","Tile","tileCoord","interimTile","transition_","transition","transitionStarts_","release","getKey","getInterimTile","tile","TileState","refreshInterimChain","getTileCoord","setState","getAlpha","time","inTransition","endTransition","createCanvasContext2D","opt_width","opt_height","opt_canvasPool","opt_Context2DSettings","shift","getContext","offsetWidth","getComputedStyle","marginLeft","marginRight","offsetHeight","marginTop","marginBottom","replaceNode","newNode","oldNode","parent","parentNode","replaceChild","removeNode","removeChild","removeChildren","lastChild","replaceChildren","oldChildren","childNodes","oldChild","newChild","insertBefore","appendChild","ImageTile","tileLoadFunction","crossOrigin_","tileLoadFunction_","ctx","fillStyle","fillRect","naturalWidth","naturalHeight","Kinetic","decay","minVelocity","delay","decay_","minVelocity_","delay_","points_","angle_","initialVelocity_","update","Date","now","lastIndex","firstIndex","duration","getAngle","HEX_COLOR_RE_","NAMED_COLOR_RE_","asString","color","fromNamed","body","rgb","fromString","cacheSize","g","exec","hasAlpha","substr","normalize","map","Number","fromStringInternal_","asArray","isStringColor","IconImageCache","cache_","cacheSize_","maxCacheSize_","canExpireCache","expire","iconImage","setSize","maxCacheSize","shared","BaseLayer","opacity","visible","zIndex","maxResolution","minResolution","minZoom","maxZoom","className_","className","state_","getClassName","getLayerState","opt_managed","layer","managed","getZIndex","getOpacity","sourceState","getSourceState","getVisible","getMaxResolution","getMinResolution","getMinZoom","getMaxZoom","getLayersArray","getLayerStatesArray","opt_states","setMaxResolution","setMinResolution","setMaxZoom","setMinZoom","setOpacity","setVisible","setZIndex","zindex","inView","layerState","viewState","zoom","Layer","baseOptions","mapPrecomposeKey_","mapRenderKey_","sourceChangeKey_","renderer_","render","setMap","handleSourcePropertyChange_","setSource","states","getSource","handleSourceChange_","getFeatures","pixel","Promise","resolve","frameState","layerRenderer","getRenderer","prepareFrame","renderFrame","layerStatesArray","some","arrayLayerState","createRenderer","hasRenderer","Base","expireIconCache","MapRenderer","map_","dispatchRenderEvent","calculateMatrices2D","coordinateToPixelTransform","pixelToCoordinateTransform","forEachFeatureAtCoordinate","hitTolerance","checkWrapped","thisArg","layerFilter","thisArg2","feature","translatedCoordinate","offsets","layerStates","numLayers","matches","tmpCoord","getWrapX","callback_1","order","distanceSq","forEachLayerAtPixel","hasFeatureAtCoordinate","getMap","scheduleExpireIconCache","postRenderFunctions","RenderEvent","opt_inversePixelTransform","opt_frameState","opt_context","inversePixelTransform","context","CLASS_HIDDEN","CLASS_SELECTABLE","CLASS_UNSELECTABLE","CLASS_UNSUPPORTED","CLASS_CONTROL","CLASS_COLLAPSED","fontRegEx","RegExp","fontRegExMatchIndex","getFontParameters","fontSpec","match","variant","family","defaultFont","defaultFillStyle","defaultLineCap","defaultLineDash","defaultLineJoin","defaultMiterLimit","defaultStrokeStyle","defaultTextAlign","defaultTextBaseline","defaultPadding","checkedFonts","labelCache","console","warn","measureFont","measureElement","measureContext","textHeights","registerFont","interval","referenceWidth","referenceFonts","text","isAvailable","fontStyle","fontWeight","available","referenceFont","measureTextWidth","check","done","font","clearInterval","setInterval","measureTextHeight","metrics","measureText","actualBoundingBoxAscent","actualBoundingBoxDescent","innerHTML","minHeight","maxHeight","padding","border","display","left","measureAndCacheTextWidth","measureTextWidths","lines","widths","numLines","currentWidth","drawImageOrLabel","labelOrImage","originX","originY","save","globalAlpha","setTransform","contextInstructions","label","executeLabelInstructions","drawImage","restore","CompositeMapRenderer","fontChangeListenerKey_","redrawText","element_","container","getViewport","firstChild","children_","renderedVisible_","event_1","declutterLayers","previousElement","layerIndex","renderDeclutter","getDataAtPixel","LayerGroup","layers","layersListenerKeys_","listenerKeys_","handleLayersChanged_","setLayers","handleLayerChange_","getLayers","handleLayersAdd_","handleLayersRemove_","layersArray","collectionEvent","ownLayerState","defaultZIndex","MapEvent","MapBrowserEvent","originalEvent","opt_dragging","pixel_","coordinate_","dragging","getEventPixel","configurable","getCoordinateFromPixel","SINGLECLICK","CLICK","DBLCLICK","POINTERDRAG","POINTERMOVE","POINTERDOWN","POINTERUP","POINTEROVER","POINTEROUT","POINTERENTER","POINTERLEAVE","POINTERCANCEL","MapBrowserEventHandler","moveTolerance","clickTimeoutId_","emulateClicks_","dragging_","dragListenerKeys_","moveTolerance_","down_","activePointers_","trackedTouches_","pointerdownListenerKey_","handlePointerDown_","originalPointerMoveEvent_","relayedListenerKey_","relayEvent_","boundHandleTouchMove_","handleTouchMove_","emulateClick_","pointerEvent","newEvent","MapBrowserEventType","clearTimeout","setTimeout","updateActivePointers_","pointerId","handlePointerUp_","isMouseActionButton_","button","doc","getOwnerDocument","handlePointerMove_","getRootNode","isMoving_","cancelable","clientX","clientY","DROP","PriorityQueue","priorityFunction","keyFunction","priorityFunction_","keyFunction_","elements_","priorities_","queuedElements_","dequeue","elements","priorities","siftUp_","elementKey","enqueue","priority","siftDown_","getCount","getLeftChildIndex_","getRightChildIndex_","getParentIndex_","heapify_","isKeyQueued","isQueued","count","startIndex","lIndex","rIndex","smallerChildIndex","parentIndex","reprioritize","TileQueue","tilePriorityFunction","tileChangeCallback","boundHandleTileChange_","handleTileChange","tileChangeCallback_","tilesLoading_","tilesLoadingKeys_","added","getTilesLoading","tileKey","loadMoreTiles","maxTotalLoading","maxNewLoads","newLoads","getTilePriority","tileSourceKey","tileCenter","tileResolution","wantedTiles","DEFAULT_TILE_SIZE","createExtent","onlyCenter","smooth","opt_isMoving","opt_centerShift","viewWidth","viewHeight","shiftX","shiftY","ratio","none","getViewportClampedResolution","maxExtent","viewportSize","showFullExtent","xResolution","yResolution","getSmoothClampedResolution","createSnapToResolutions","resolutions","opt_smooth","opt_maxExtent","opt_showFullExtent","cappedMaxRes","capped","z","createSnapToPower","power","opt_minResolution","minZoomLevel","cappedZoomLevel","zoomLevel","createMinMaxResolution","disable","createSnapToN","theta","createSnapToZero","opt_tolerance","animationCallback","returnValue","createCenterConstraint","smoothExtentConstraint","constrainOnlyCenter","multiWorld","createResolutionConstraint","resolutionConstraint","zoomFactor","smoothResolutionConstraint","projExtent","constrainResolution","defaultMaxResolution","defaultMinResolution","defaultMaxZoom","constraint","createRotationConstraint","enableRotation","constrainRotation","isNoopAnimation","animation","sourceCenter","targetCenter","sourceResolution","targetResolution","sourceRotation","targetRotation","calculateCenterOn","rotX","rotY","View","hints_","animations_","updateAnimationKey_","projection_","viewportSize_","targetCenter_","targetResolution_","targetRotation_","cancelAnchor_","applyOptions_","resolutionConstraintInfo","maxResolution_","minResolution_","zoomFactor_","resolutions_","padding_","minZoom_","centerConstraint","rotationConstraint","constraints_","setRotation","setCenterInternal","setResolution","setZoom","options_","oldPadding","newPadding","offsetX","offsetY","getUpdatedOptions_","newOptions","getZoom","getCenterInternal","getRotation","animate","var_args","isDef","getAnimating","resolveConstraints","args","animateInternal","animationCount","series","complete","easing","getResolutionForZoom","setHint","ViewHint","updateAnimations_","getInteracting","cancelAnimations","cancelAnimationFrame","more","seriesComplete","elapsed","fraction","progress","getViewportSize_","constrainedResolution","calculateCenterZoom","applyTargetState_","constrainedRotation","calculateCenterRotate","filter","requestAnimationFrame","currentCenter","currentResolution","opt_rotation","setViewportSize","opt_size","ViewProperty","getConstraints","getConstrainResolution","getHints","opt_hints","calculateExtent","calculateExtentInternal","getViewportSizeMinusPadding_","getZoomForResolution","setConstrainResolution","enabled","getResolutions","getResolutionForExtent","getResolutionForExtentInternal","getResolutionForValueFunction","opt_power","getConstrainedResolution","getValueForResolutionFunction","logPower","reducedSize","nearest","baseLevel","fit","geometryOrExtent","fitInternal","rotatedExtentForGeometry","minRotX","minRotY","maxRotX","maxRotY","rotatedExtent","centerRot","centerX","centerY","getConstrainedCenter","centerOn","centerOnInternal","calculateCenterShift","centerShift","shiftedCenter","adjustCenter","deltaCoordinates","setCenter","adjustCenterInternal","adjustResolution","adjustResolutionInternal","isMoving","newResolution","adjustZoom","adjustRotation","adjustRotationInternal","newRotation","hint","opt_doNotCancelAnims","opt_forceMoving","newCenter","opt_duration","opt_resolutionDirection","beginInteraction","endInteraction","endInteractionInternal","opt_targetResolution","getConstrainedZoom","targetZoom","opt_direction","targetRes","hasArea","toSize","PluggableMap","optionsInternal","keyboardEventTarget","getElementById","controls","interactions","overlays","layerGroup","MapProperty","view","createOptionsInternal","boundHandleBrowserEvent_","handleBrowserEvent","maxTilesLoading_","maxTilesLoading","postRenderTimeoutHandle_","animationDelayKey_","animationDelay_","renderFrame_","coordinateToPixelTransform_","pixelToCoordinateTransform_","frameIndex_","frameState_","previousExtent_","viewPropertyListenerKey_","viewChangeListenerKey_","layerGroupPropertyListenerKeys_","viewport_","overflow","overlayContainer_","pointerEvents","overlayContainerStopEvent_","mapBrowserEventHandler_","keyboardEventTarget_","keyHandlerKeys_","overlays_","overlayIdIndex_","handleResize_","postRenderFunctions_","tileQueue_","handleTileChange_","handleLayerGroupChanged_","handleViewChanged_","handleSizeChanged_","handleTargetChanged_","control","interaction","addOverlayInternal_","toString","addControl","getControls","addInteraction","getInteractions","addLayer","getLayerGroup","addOverlay","overlay","getOverlays","setTarget","forEachFeatureAtPixel","getCoordinateFromPixelInternal","getFeaturesAtPixel","features","hasFeatureAtPixel","getEventCoordinate","getEventCoordinateInternal","viewportPosition","getBoundingClientRect","eventPosition","changedTouches","top","getTarget","getTargetElement","getView","getOverlayById","getLoading","loading","getPixelFromCoordinate","viewCoordinate","getPixelFromCoordinateInternal","getSize","getOverlayContainer","getOverlayContainerStopEvent","targetElement","ownerDocument","browserEvent","mapBrowserEvent","handleMapBrowserEvent","rootNode","contains","documentElement","interactionsArray","getActive","handlePostRender","tileQueue","hints","viewHints","lowOnFrameBudget","updateSize","handleViewPropertyChanged_","updateViewportSize_","isRendered","renderSync","handleFontsChanged","removeControl","removeInteraction","removeLayer","removeOverlay","previousFrameState","declutterTree","usedTiles","MapEventType","setLayerGroup","setView","computedStyle","parseFloat","Control","target_","mapEvent","Attribution","ulElement_","collapsed_","collapsed","userCollapsed_","overrideCollapsible_","collapsible","collapsible_","tipLabel","expandClassName","collapseLabel","collapseClassName","collapseLabel_","textContent","label_","activeLabel","toggleButton_","setAttribute","handleClick_","cssClasses","renderedAttributions_","collectSourceAttributions_","lookup","visibleAttributions","attributionGetter","getAttributions","attributions","getAttributionsCollapsible","setCollapsible","updateElement_","handleToggle_","classList","toggle","getCollapsible","setCollapsed","getCollapsed","Rotate","compassClassName","callResetNorth_","resetNorth","duration_","autoHide_","autoHide","rotation_","resetNorth_","Zoom","zoomInClassName","zoomOutClassName","zoomInLabel","zoomOutLabel","zoomInTipLabel","zoomOutTipLabel","inElement","createTextNode","outElement","zoomByDelta_","currentZoom","newZoom","defaults","zoomOptions","rotateOptions","attribution","attributionOptions","pan","zoomByDelta","Interaction","setActive","active","DoubleClickZoom","delta_","stopEvent","shiftKey","PointerInteraction","handleDownEvent","handleDragEvent","handleMoveEvent","handleUpEvent","stopDown","handlingDownUpSequence","trackedPointers_","targetPointers","getPointerCount","updateTrackedPointers_","handledUp","handled","isPointerDraggingEvent","conditions","pass","altKeyOnly","altKey","metaKey","ctrlKey","altShiftKeysOnly","activeElement","focusWithTabindex","hasAttribute","always","mouseActionButton","never","singleClick","noModifierKeys","shiftKeyOnly","targetNotEditable","tagName","mouseOnly","pointerType","primaryAction","isPrimary","DragPan","kinetic_","kinetic","lastCentroid","lastPointersCount_","panning_","condition","condition_","onFocusOnly","noKinetic_","centroid","centerpx","Pointer","DragRotate","lastAngle_","RenderBox","geometry_","startPixel_","endPixel_","render_","startPixel","endPixel","px","setPixels","createOrUpdateGeometry","DragBoxEventType","DragBoxEvent","DragBox","box_","minArea_","minArea","onBoxEnd","boxEndCondition_","boxEndCondition","defaultBoxEndCondition","completeBox","DragZoom","out_","out","factor","KeyboardPan","defaultCondition_","pixelDelta_","pixelDelta","keyEvent","keyCode","KeyCode","mapUnitsDelta","KeyboardZoom","charCode","Mode","MouseWheelZoom","totalDelta_","lastDelta_","timeout_","timeout","useAnchor_","useAnchor","constrainResolution_","lastAnchor_","startTime_","timeoutId_","mode_","trackpadEventGap_","trackpadTimeoutId_","deltaPerZoom_","endInteraction_","wheelEvent","deltaMode","WheelEvent","DOM_DELTA_PIXEL","DOM_DELTA_LINE","timeLeft","handleWheelZoom_","setMouseAnchor","PinchRotate","pointerOptions","anchor_","rotating_","rotationDelta_","threshold_","threshold","rotationDelta","touch0","touch1","PinchZoom","lastDistance_","lastScaleDelta_","scaleDelta","altShiftDragRotate","doubleClickZoom","zoomDelta","zoomDuration","dragPan","pinchRotate","pinchZoom","keyboard","mouseWheelZoom","shiftDragZoom","Map","Composite","Overlay","insertFirst","autoPan","autoPanAnimation","margin","autoPanMargin","rendered","mapPostrenderListenerKey","handleElementChanged","handleMapChanged","handleOffsetChanged","handlePositionChanged","handlePositioningChanged","setElement","setOffset","setPositioning","positioning","OverlayPositioning","setPosition","getElement","getOffset","getPositioning","updatePixelPosition","performAutoPan","panIntoView","opt_panIntoViewOptions","mapRect","getRect","overlayRect","panIntoViewOptions","myMargin","offsetLeft","offsetRight","offsetTop","offsetBottom","centerPx","newCenterPx","panOptions","box","pageXOffset","pageYOffset","mapSize","updateRenderedPosition","posX","posY","msTransform","getOptions","LRUCache","opt_highWaterMark","highWaterMark","count_","entries_","oldest_","newest_","containsKey","entry","value_","key_","newer","older","peekLast","peekLastKey","peekFirstKey","opt_tileCoord","getKeyZXY","getCacheKeyForTileKey","_a","substring","lastIndexOf","fromKey","hash","withinExtentAndZ","tileRange","getFullTileRange","TileCache","expireCache","pruneExceptNewestZ","TileRange","containsTileRange","canvasPool","VectorRenderTile","urlTileCoord","getSourceTiles","context_","executorGroups","declutterExecutorGroups","loadingSourceTiles","hitDetectionImageData","replayState_","sourceTiles","errorTileKeys","wantedResolution","wrappedTileCoord","hasContext","getReplayState","dirty","renderedRenderOrder","renderedResolution","renderedRevision","renderedTileResolution","renderedTileRevision","renderedTileZ","VectorTile","format_","features_","url_","getFormat","onLoad","dataProjection","setFeatures","onError","setLoader","loader","asColorLike","withCredentials","loadFeaturesXhr","url","success","failure","xhr","XMLHttpRequest","open","FormatType","responseType","onload","status","responseText","responseXML","DOMParser","parseFromString","readFeatures","featureProjection","readProjection","onerror","send","addFeatures","jsonp","opt_errback","opt_callbackParam","script","cleanup","async","timer","getElementsByTagName","VectorContext","drawCustom","renderer","drawGeometry","drawCircle","circleGeometry","drawFeature","drawGeometryCollection","geometryCollectionGeometry","drawLineString","lineStringGeometry","drawMultiLineString","multiLineStringGeometry","drawMultiPoint","multiPointGeometry","drawMultiPolygon","multiPolygonGeometry","drawPoint","pointGeometry","drawPolygon","polygonGeometry","drawText","setFillStrokeStyle","strokeStyle","setImageStyle","imageStyle","opt_declutterImageWithText","setTextStyle","textStyle","CanvasImmediateRenderer","viewRotation","opt_squaredTolerance","opt_userTransform","viewRotation_","squaredTolerance_","userTransform_","contextFillState_","contextStrokeState_","contextTextState_","fillState_","strokeState_","imageAnchorX_","imageAnchorY_","imageHeight_","imageOpacity_","imageOriginX_","imageOriginY_","imageRotateWithView_","imageRotation_","imageScale_","imageWidth_","text_","textOffsetX_","textOffsetY_","textRotateWithView_","textRotation_","textScale_","textFillState_","textStrokeState_","textState_","pixelCoordinates_","tmpLocalTransform_","drawImages_","pixelCoordinates","localTransform","alpha","drawText_","setContextFillState_","setContextStrokeState_","setContextTextState_","strokeText","fillText","moveToLineTo_","close","moveTo","lineTo","closePath","drawRings_","beginPath","arc","fill","stroke","getFill","getStroke","getText","getGeometryFunction","geometries","getGeometriesArray","flatMidpoint","getFlatMidpoint","geometryExtent","flatMidpoints","getFlatMidpoints","flatInteriorPoint","getEndss","flatInteriorPoints","getFlatInteriorPoints","fillState","contextFillState","strokeState","contextStrokeState","lineCap","setLineDash","lineDash","lineDashOffset","lineJoin","lineWidth","miterLimit","textState","contextTextState","textAlign","textBaseline","fillStyleColor","getColor","strokeStyleColor","strokeStyleLineCap","getLineCap","strokeStyleLineDash","getLineDash","strokeStyleLineDashOffset","getLineDashOffset","strokeStyleLineJoin","getLineJoin","strokeStyleWidth","strokeStyleMiterLimit","getMiterLimit","imageSize","imageAnchor","getAnchor","imageOrigin","getOrigin","getRotateWithView","getScaleArray","textFillStyle","textFillStyleColor","textStrokeStyle","textStrokeStyleColor","textStrokeStyleLineCap","textStrokeStyleLineDash","textStrokeStyleLineDashOffset","textStrokeStyleLineJoin","textStrokeStyleWidth","textStrokeStyleMiterLimit","textFont","getFont","textOffsetX","getOffsetX","textOffsetY","getOffsetY","textRotateWithView","textRotation","textScale","textText","textTextAlign","getTextAlign","textTextBaseline","getTextBaseline","GEOMETRY_RENDERERS","builderGroup","opt_declutterBuilderGroup","declutterImageWithText","getImageState","imageReplay","getBuilder","BuilderType","textReplay","lineStringReplay","polygonReplay","replayGroup","geometryRenderer","circleReplay","defaultOrder","feature1","feature2","getSquaredTolerance","getTolerance","renderFeature","imageState","unlistenImageChange","listenImageChange","renderGeometry","renderFeatureInternal","getGeometries","getVectorContext","userTransform","canvasPixelRatio","brokenDiagonalRendering_","DEFAULT_WMS_VERSION","IMAGE_SMOOTHING_DISABLED","imageSmoothingEnabled","msImageSmoothingEnabled","drawTestTriangle","u1","u2","clip","verifyBrokenDiagonalRendering","calculateSourceResolution","targetProj","targetMetersPerUnit","sourceMetersPerUnit","compensationFactor","isFinite","calculateSourceExtentResolution","targetExtent","triangulation","sources","gutter","opt_renderEdges","opt_contextOptions","pixelRound","globalCompositeOperation","sourceDataExtent","canvasWidthInUnits","canvasHeightInUnits","stitchContext","stitchScale","xPos","yPos","srcWidth","srcHeight","targetTopLeft","getTriangles","triangle","u0","v0","sourceNumericalShiftX","sourceNumericalShiftY","affineCoefs","getImageData","isBrokenDiagonalRendering","ud","vd","step","steps","tmpTileCoord","TileGrid","origins","origin_","origin","origins_","tileSizes_","tileSizes","tileSize_","tileSize","fullTileRanges_","tmpSize_","tmpExtent_","sizes","restrictedTileRange","getTileRangeForExtentAndZ","calculateTileRanges_","forEachTileCoord","forEachTileCoordParentTileRange","opt_tileRange","tileCoordExtent","getTileCoordExtent","getTileCoordChildTileRange","getTileRangeForTileCoordAndZ","tileCoordZ","tileCoordX","tileCoordY","getTileRangeExtent","getTileSize","getTileCoordForXYAndZ_","getTileCoordCenter","getTileCoordForCoordAndResolution","getTileCoordForXYAndResolution_","reverseIntersectionPolicy","getZForResolution","adjustX","adjustY","xFromOrigin","yFromOrigin","getTileCoordForCoordAndZ","getTileCoordResolution","fullTileRanges","getForProjection","createForProjection","extentFromProjection","createForExtent","opt_maxZoom","opt_tileSize","opt_corner","resolutionsFromExtent","xyzOptions","gridOptions","opt_maxResolution","half","createFromTemplate","zRegEx","xRegEx","yRegEx","dashYRegEx","range","createFromTemplates","templates","tileUrlFunctions","createFromTileUrlFunctions","nullTileUrlFunction","expandUrl","urls","startCharCode","stopCharCode","stop_1","appendParams","uri","params","keyParams","encodeURIComponent","qs","supportedExtensions","ARRAY_BUFFER","ELEMENT_ARRAY_BUFFER","DYNAMIC_DRAW","FLOAT","CONTEXT_IDS","opt_attributes","getSupportedExtensions","gl","XML_SCHEMA_INSTANCE_URI","createElementNS","namespaceURI","qualifiedName","getDocument","getAllTextContent","normalizeWhitespace","getAllTextContent_","accumulator","nodeType","Node","CDATA_SECTION_NODE","TEXT_NODE","nodeValue","nextSibling","isDocument","getAttributeNS","parse","xml","makeArrayExtender","valueReader","objectStack","makeArrayPusher","makeReplacer","makeObjectPropertyPusher","opt_property","localName","makeObjectPropertySetter","makeChildAppender","nodeWriter","makeArraySerializer","serializersNS","nodeFactory","serializers","makeSimpleNodeFactory","serialize","opt_nodeName","opt_namespaceURI","fixedNodeName","nodeName","OBJECT_PROPERTY_NODE_FACTORY","makeSequence","orderedKeys","sequence","makeStructureNS","namespaceURIs","structure","opt_structureNS","structureNS","parseNode","parsersNS","firstElementChild","nextElementSibling","parsers","parser","pushParseAndPop","opt_keys","pushSerializeAndPop","xmlSerializer_","getXMLSerializer","XMLSerializer","document_","implementation","createDocument","BufferUsage","getArrayClassForType","Float32Array","Uint32Array","WebGLArrayBuffer","opt_usage","usage","ofSize","fromArray","from","fromArrayBuffer","getUsage","WebGLPostProcessingPass","gl_","webGlContext","scaleRatio_","scaleRatio","renderTargetTexture_","createTexture","renderTargetTextureSize_","frameBuffer_","createFramebuffer","vertexShader","createShader","VERTEX_SHADER","shaderSource","compileShader","fragmentShader","FRAGMENT_SHADER","renderTargetProgram_","createProgram","attachShader","linkProgram","renderTargetVerticesBuffer_","createBuffer","bindBuffer","bufferData","STATIC_DRAW","renderTargetAttribLocation_","getAttribLocation","renderTargetUniformLocation_","getUniformLocation","renderTargetTextureLocation_","uniforms_","uniforms","location","getGL","init","textureSize","drawingBufferWidth","drawingBufferHeight","bindFramebuffer","FRAMEBUFFER","getFrameBuffer","viewport","internalFormat","RGBA","UNSIGNED_BYTE","bindTexture","TEXTURE_2D","texImage2D","texParameteri","TEXTURE_MIN_FILTER","LINEAR","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","framebufferTexture2D","COLOR_ATTACHMENT0","nextPass","activeTexture","TEXTURE0","clearColor","COLOR_BUFFER_BIT","enable","BLEND","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","useProgram","enableVertexAttribArray","vertexAttribPointer","uniform2f","uniform1i","applyUniforms","drawArrays","TRIANGLES","textureSlot","uniform","HTMLCanvasElement","ImageData","texture","uniform3f","uniform4f","uniform1f","fromTransform","mat4","DefaultUniform","AttributeType","UNSIGNED_SHORT","UNSIGNED_INT","computeAttributesStride","attributes","attr","getByteSizeFromType","BYTES_PER_ELEMENT","Uint16Array","WebGLHelper","boundHandleWebGLContextLost_","handleWebGLContextLost","boundHandleWebGLContextRestored_","handleWebGLContextRestored","bufferCache_","currentProgram_","getExtension","ContextEventType","offsetRotateMatrix_","offsetScaleMatrix_","tmpMat4_","uniformLocations_","attribLocations_","name_1","postProcessPasses_","postProcesses","shaderCompileErrors_","bufferKey","bufferCache","webGlBuffer","flushBufferData","deleteBuffer","bufferCacheEntry","isContextLost","prepareDraw","getCanvas","applyFrameState","prepareDrawToRenderTarget","renderTarget","opt_disableAlphaBlend","getFramebuffer","getTexture","ZERO","drawElements","elementType","numItems","offsetInBytes","finalizeDraw","offsetScaleMatrix","offsetRotateMatrix","setUniformMatrixValue","setUniformFloatValue","HTMLImageElement","prevValue","program","shader","getProgram","fragmentShaderSource","vertexShaderSource","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","deleteShader","getProgramParameter","LINK_STATUS","getAttributeLocation","makeProjectionTransform","uniformMatrix4fv","enableAttributeArray_","attribName","enableAttributes","opt_data","opt_texture","tmpArray4","WebGLRenderTarget","helper","helper_","texture_","framebuffer_","size_","data_","dataCacheDirty_","updateSize_","clearCachedData","readAll","readPixels","readPixel","ValueTypes","Operators","getValueType","JSON","stringify","valueArr","operator","getReturnType","isTypeUnique","valueType","numberToGlsl","arrayToGlsl","colorToGlsl","getStringNumberEquivalent","string","stringLiteralsMap","stringToGlsl","expressionToGlsl","typeHint","toGlsl","assertNumber","assertNumbers","assertString","assertBoolean","assertArgsCount","assertArgsMinCount","assertArgsMaxCount","assertArgsEven","assertUniqueInferredType","types","uniformNameForVariable","variableName","getEqualOperator","getDecisionOperator","arg","inFragmentShader","variables","parsedArgs","opt_typeHint","interpolation","outputType","stop1","output1","stop2","fallback","assertArgsOdd","ShaderBuilder","varyings","sizeExpression","rotationExpression","offsetExpression","colorExpression","texCoordExpression","discardExpression","rotateWithView","addUniform","addAttribute","addVarying","expression","setSizeExpression","setRotationExpression","setSymbolOffsetExpression","setColorExpression","setTextureCoordinateExpression","setFragmentDiscardExpression","setSymbolRotateWithView","getSizeExpression","getOffsetExpression","getColorExpression","getTextureCoordinateExpression","getFragmentDiscardExpression","getSymbolVertexShader","forHitDetection","offsetMatrix","concat","attribute","varying","getSymbolFragmentShader","hitDetectionBypass","parseLiteralStyle","symbStyle","symbol","texCoord","textureCoord","vertContext","parsedSize","parsedOffset","parsedTexCoord","parsedRotation","fragContext","parsedColor","parsedOpacity","opacityFilter","visibleSize","symbolType","st","builder","parsedFilter","varName","uniformName","attrName","attributeName","props","WMTSTileGrid","matrixIds_","matrixIds","getMatrixId","getMatrixIds","createFromCapabilitiesMatrixSet","matrixSet","opt_matrixLimits","matrixLimits","switchOriginXY","elt","elt_ml","tileWidth","tileHeight","ImageStyle","opacity_","rotateWithView_","scale_","scaleArray_","displacement_","displacement","getScale","getDisplacement","getHitDetectionImage","getImageSize","setRotateWithView","setScale","RegularShape","hitDetectionCanvas_","fill_","points","radius_","radius1","radius2_","radius2","stroke_","renderOptions_","getPoints","getRadius2","createHitDetectionCanvas_","renderOptions","draw_","calculateLineJoinSize_","strokeWidth","r1","r2","miterRatio","bevelAdd","aa","dd","innerMiterRatio","innerLength","createRenderOptions","maxRadius","createPath_","drawHitDetectionCanvas_","angle0","radiusC","CircleStyle","setRadius","Fill","color_","setColor","taintedTestContext","IconImage","hitDetectionImage_","imageState_","tainted_","isTainted_","dispatchChangeEvent_","replaceColor_","getSrc","imgData","putImageData","Icon","normalizedAnchor_","anchorOrigin_","anchorOrigin","IconOrigin","anchorXUnits_","anchorXUnits","IconAnchorUnits","anchorYUnits_","anchorYUnits","imgSize","iconImage_","offset_","offsetOrigin_","offsetOrigin","setAnchor","iconImageSize","Stroke","lineCap_","lineDash_","lineDashOffset_","lineJoin_","miterLimit_","width_","setLineCap","setLineDashOffset","setLineJoin","setMiterLimit","setWidth","Style","geometryFunction_","defaultGeometryFunction","zIndex_","setRenderer","setFill","setStroke","setText","toFunction","styleFunction","defaultStyles","createDefaultStyle","Circle","createEditingStyle","styles","white","blue","Text","font_","textAlign_","textBaseline_","maxAngle_","maxAngle","placement_","placement","TextPlacement","overflow_","offsetX_","offsetY_","backgroundFill_","backgroundFill","backgroundStroke_","backgroundStroke","getPlacement","getMaxAngle","getOverflow","getBackgroundFill","getBackgroundStroke","getPadding","setOverflow","setFont","setMaxAngle","setOffsetX","setOffsetY","setPlacement","setTextAlign","setTextBaseline","setBackgroundFill","setBackgroundStroke","setPadding","LinkedList","opt_circular","first_","last_","head_","circular_","length_","insertItem","next","head","removeItem","firstItem","lastItem","nextItem","getNextItem","prevItem","getPrevItem","getCurrItem","setFirstItem","list","RBush","opt_maxEntries","rbush_","items_","extents","items","uid","getAll","getInExtent","bbox","forEach_","forEachInExtent","rbush","ENABLE_RASTER_REPROJECTION","Triangulation","maxSourceExtent","errorThreshold","opt_destinationResolution","sourceProj_","targetProj_","transformInvCache","transformInv","transformInv_","maxSourceExtent_","errorThresholdSquared_","triangles_","wrapsXInSource_","canWrapXInSource_","sourceWorldWidth_","targetWorldWidth_","destinationTopLeft","destinationTopRight","destinationBottomRight","destinationBottomLeft","sourceTopLeft","sourceTopRight","sourceBottomRight","sourceBottomLeft","maxSubdivision","addQuad_","leftBound_1","newTriangle","addTriangle_","aSrc","bSrc","cSrc","dSrc","sourceQuadExtent","sourceCoverageX","sourceWorldWidth","wrapsX","needsSubdivision","isNotFinite","centerSrc","bc","bcSrc","da","daSrc","ab","abSrc","cd","cdSrc","calculateSourceExtent","ReprojTile","sourceTileGrid","targetTileGrid","getTileFunction","opt_errorThreshold","renderEdges_","contextOptions_","gutter_","sourceTileGrid_","targetTileGrid_","wrappedTileCoord_","sourceTiles_","sourcesListenerKeys_","sourceZ_","maxTargetExtent","limitedTargetExtent","sourceProjExtent","errorThresholdInPixels","triangulation_","sourceRange","srcX","srcY","reproject_","leftToLoad_1","sourceListenKey_1","unlistenSources_","adaptAttributions","attributionLike","Source","attributions_","attributionsCollapsible_","attributionsCollapsible","wrapX_","getContextOptions","refresh","setAttributions","TileSource","opaque_","opaque","tilePixelRatio_","tilePixelRatio","tileCache","tmpSize","tileOptions","zDirection","getTileCacheForProjection","forEachLoadedTile","tileCoordKey","loaded","covered","getGutterForProjection","setKey","getOpaque","getTile","getTileGrid","getTileGridForProjection","getTilePixelRatio","getTilePixelSize","getTileCoordForTileUrlFunction","opt_projection","updateCacheSize","tileCount","useTile","TileSourceEvent","UrlTile","generateTileUrlFunction_","tileUrlFunction","setUrls","setUrl","tileLoadingKeys_","getTileLoadFunction","getTileUrlFunction","getPrototypeOf","getUrls","tileState","TileEventType","setTileLoadFunction","setTileUrlFunction","defaultTileLoadFunction","imageTile","TileImage","tileClass","tileCacheForProjection","tileGridForProjection","reprojectionErrorThreshold_","reprojectionErrorThreshold","imageSmoothing","renderReprojectionEdges_","usedTileCache","getGutter","thisProj","projKey","createTile_","tileUrl","newTile","getTileInternal","setRenderReprojectionEdges","setTileGridForProjection","tilegrid","proj","quadKey","digits","mask","BingMaps","hidpi","hidpi_","culture_","culture","maxZoom_","apiKey_","imagerySet_","imagerySet","handleImageryMetadataResponse","getApiKey","getImagerySet","response","statusCode","statusDescription","authenticationResultCode","resourceSets","resources","resource","zoomMax","imageWidth","imageHeight","zoomMin","imageUrlSubdomains","subdomain","quadKeyTileCoord","imageUrl","imageryProviders","transform_1","imageryProvider","intersecting","coverageAreas","coverageArea","XYZ","CartoDB","account_","account","mapId_","config_","config","templateCache_","initializeMap_","getConfig","updateConfig","setConfig","paramHash","applyTemplate_","mapUrl","client","handleInitResponse_","handleInitError_","setRequestHeader","tilesUrl","cdn_url","https","layergroupid","VectorSourceEvent","opt_feature","opt_features","VectorSource","overlaps_","overlaps","strategy_","strategy","collection","useSpatialIndex","featuresRtree_","loadedExtentsRtree_","loadingExtentsCount_","nullGeometryFeatures_","idIndex_","uidIndex_","featureChangeKeys_","featuresCollection_","addFeaturesInternal","bindFeaturesCollection_","addFeature","addFeatureInternal","featureKey","addToIndex_","setupChangeEvents_","VectorEventType","handleFeatureChange_","valid","newFeatures","geometryFeatures","length_1","length_2","length_3","modifyingCollection","removeFeature","opt_fast","featureId","removeFeatureInternal","clearEvent","forEachFeature","forEachFeatureAtCoordinateDirect","forEachFeatureInExtent","forEachFeatureIntersectingExtent","getFeaturesCollection","getFeaturesAtCoordinate","getFeaturesInExtent","getClosestFeatureToCoordinate","opt_filter","closestFeature","previousMinSquaredDistance","minDistance","getFeatureById","getFeatureByUid","getOverlaps","getUrl","sid","removeFromIdIndex_","hasFeature","loadFeatures","loadedExtentsRtree","extentsToLoad","_loop_1","extentToLoad","this_1","removeLoadedExtent","removed","Cluster","interpolationRatio","geometryFunction","boundRefresh_","updateDistance","setDistance","setMinDistance","getMinDistance","cluster","mapDistance","clustered","neighbors","neighbor","createCluster","geometry_1","searchCenter","Vector","TierSizeCalculation","CustomTile","zoomifyImage_","Zoomify","tierSizeCalculation","tierSizeInTiles","tileSizeForTierSizeCalculation","reverse","tileCountUpToTier","tileIndex","localContext_1","ZoomifyTileClass","testTileUrl","__spreadArray","to","il","Versions","IIIF_PROFILE_VALUES","supports","formats","qualities","COMPLIANCE_VERSION1","COMPLIANCE_VERSION2","COMPLIANCE_VERSION3","versionFunctions","iiifInfo","levelProfile","getComplianceLevelSupportedFeatures","imageInfo","scale_factors","tile_width","tile_height","additionalProfile","profile","profileSupports","profileFormats","profileQualities","tiles","scaleFactors","extraFormats","preferredFormat","preferredFormats","reduce","acc","extraFeatures","extraQualities","IIIFInfo","setImageInfo","getImageApiVersion","getComplianceLevelEntryFromProfile","identifier","version","getComplianceLevelFromProfile","complianceLevel","level","getTileSourceOptions","opt_preferredOptions","imageOptions","quality","formatPercentage","percentage","toLocaleString","maximumFractionDigits","IIIF","baseUrl","supportsListedSizes","supportsListedTiles","isInteger","supportsArbitraryTiling","maxScaleFactor","ignoredSizesIndex","IiifTileClass","regionParam","sizeParam","tileX","tileY","regionX","regionY","regionW","regionH","sizeW","sizeH","regionWidth","regionHeight","ReprojImage","getImageFunction","sourceImage","sourcePixelRatio","targetExtent_","sourceImage_","sourcePixelRatio_","sourceListenerKey_","unlistenSource_","ImageSourceEventType","ImageSourceEvent","defaultImageLoadFunction","ImageSource","reprojectedImage_","reprojectedRevision_","findNearestResolution","getImageInternal","handleImageChange","ImageArcGISRest","params_","imageSize_","renderedRevision_","ratio_","getParams","halfWidth","halfHeight","imageResolution","getRequestUrl_","getImageLoadFunction","srid","modifiedUrl","setImageLoadFunction","updateParams","ImageCanvasSource","canvasFunction_","canvasFunction","canvasElement","ImageMapGuide","displayDpi_","displayDpi","useOverlay_","useOverlay","dpi","mcsW","mcsH","devW","devH","mpp","baseParams","Static","imageExtent_","imageExtent","getImageExtent","extentWidth","extentHeight","targetWidth","targetHeight","GETFEATUREINFO_IMAGE_SIZE","ImageWMS","v13_","updateV13_","serverType_","getFeatureInfoUrl","projectionObj","sourceProjectionObj","getLegendUrl","LAYERS","mpu","viewExtent","requestExtent","WMSServerType","ATTRIBUTION","OSM","BaseImageLayer","LayerRenderer","boundHandleImageChange_","handleImageChange_","layer_","declutterExecutorGroup","loadedTileCallback","createLoadedTileFinder","getLayer","renderIfReadyAndVisible","loadImage","CanvasLayerRenderer","tempTransform","pixelTransform","containerReused","useContainer","layerClassName","transformOrigin","clipUnrotated","topLeft","topRight","bottomRight","bottomLeft","inverted","dispatchRenderEvent_","preRender","postRender","getRenderTransform","renderPixel","layerExtent","newCanvas","newContext","clearRect","CanvasImageLayerRenderer","imageLayer","viewResolution","imageSource","renderedExtent","imagePixelRatio","viewCenter","size_1","canvasTransform","clipped","dw","dh","previousAlpha","ImageLayer","BaseImage","BaseTileLayer","preload","useInterimTilesOnError","setPreload","setUseInterimTilesOnError","getPreload","TileProperty","getUseInterimTilesOnError","CanvasTileLayerRenderer","tileLayer","extentChanged","renderedExtent_","renderedPixelRatio","renderedProjection","renderedTiles","newTiles_","tmpExtent","tmpTileRange_","isDrawableTile","tileSource","sourceRevision","canvasExtent","tilesToDrawByZ","findLoadedTiles","tmpTileRange","childTileRange","canvasScale","clips","clipZs","currentClip","zs","currentZ","currentTilePixelSize","currentScale","dx_1","dy_1","originTileCoord","originTileExtent","origin_1","tileGutter","tilesToDraw","xIndex","nextX","yIndex","nextY","i_1","drawTileImage","unshift","updateUsedTiles","manageTilePyramid","scheduleExpireCache","getTileImage","tileAlpha","alphaChanged","postRenderFunction","opt_tileCallback","TileLayer","BaseTile","hasImageData","_","newImageData","imageData","createImageData","createMinion","operation","workerHasImageData","newWorkerImageData","buffers","meta","imageOps","numBuffers","numBytes","byteLength","images","Uint8ClampedArray","arrays","pixels","createWorker","onMessage","lib","blob","Blob","URL","createObjectURL","worker","Worker","Processor","threads","_imageOps","workers","_onWorkerMessage","minion","terminated","postMessage","terminate","createFauxWorker","_workers","_queue","_maxQueueLength","queue","_running","_dataLookup","_job","process","inputs","_enqueue","_dispatch","job","slices","_resolveJob","RasterEventType","RasterOperationType","RasterSourceEvent","RasterSource","processor_","operationType_","operationType","threads_","layers_","createLayer","createLayers","requestedFrameState_","renderedImageCanvas_","iMax","sourceOrLayer","sourceAttribution","setOperation","opt_lib","updateFrameState_","allSourcesReady_","ready","processSources_","imageDatas","onWorkerComplete_","sharedContext","layerOrSource","ATTRIBUTIONS","LayerConfig","ProviderConfig","Stamen","provider","providerConfig","layerConfig","TileArcGISRest","getKeyForParams_","tileExtent","TileDebug","strokeRect","TileJSON","tileJSON_","handleTileJSONResponse","handleTileJSONError","onXHRLoad_","onXHRError_","tileJSON","getTileJSON","epsg4326Projection","gridExtent","attributionExtent_1","TileWMS","transparent","preemptive","preemptive_","grid_","keys_","jsonp_","getData","xRelative","yRelative","row","forDataAtCoordinate","opt_request","loadInternal_","handleError_","json","UTFGrid","tileUrlFunction_","template_","getTemplate","forDataAtCoordinateAndResolution","grids","defaultLoadFunction","sourceTileCache","tileGrids_","sourceTile","tileFeatures","candidate","usedSourceTiles","cacheKey","sourceTileGrid_1","sourceZ","sourceTileCoord","sourceTileState","listenChange_1","sourceTileKey","coordKey","empty","WMTS","requestEncoding","WMTSRequestEncoding","version_","dimensions_","dimensions","matrixSet_","requestEncoding_","getKeyForDimensions_","createFromWMTSTemplate","getDimensions","getMatrixSet","getRequestEncoding","getVersion","updateDimensions","WebGLWorkerMessageType","WebGLLayerRenderer","tmpArray_","bufferPositions_","vertexPosition","indexPosition","writePointVertex","colorEncodeId","radix","divide","colorDecodeId","mult","BaseVectorLayer","renderBuffer","updateWhileAnimating","updateWhileInteracting","declutter_","declutter","renderBuffer_","updateWhileAnimating_","updateWhileInteracting_","getDeclutter","getRenderBuffer","getRenderOrder","getUpdateWhileAnimating","getUpdateWhileInteracting","setRenderOrder","renderOrder","WebGLPointsLayerRenderer","projectionMatrixTransform","sourceRevision_","verticesBuffer_","hitVerticesBuffer_","indicesBuffer_","program_","hitDetectionEnabled_","hitFragmentShader","hitVertexShader","hitProgram_","customAttributes","hitDetectionAttributes","currentTransform_","renderTransform_","invertRenderTransform_","renderInstructions_","hitRenderInstructions_","hitRenderTarget_","worker_","received","projectionTransform","hitDetection","vertexBuffer","indexBuffer","renderInstructions","featureCache_","featureCount_","sourceListenKeys_","handleSourceFeatureAdded_","handleSourceFeatureChanged_","handleSourceFeatureDelete_","handleSourceFeatureClear_","renderCount","renderHitDetection","vectorSource","viewNotMoving","sourceChanged","BaseVector","rebuildBuffers_","featureCache","totalInstructionsCount","totalHitInstructionsCount","hitColor","tmpCoords","tmpColor","renderIndex","hitIndex","featureUid","customAttributesCount","hitMessage","Instruction","BEGIN_GEOMETRY","BEGIN_PATH","CLOSE_PATH","CUSTOM","DRAW_CHARS","DRAW_IMAGE","END_GEOMETRY","FILL","MOVE_TO_LINE_TO","SET_FILL_STYLE","SET_STROKE_STYLE","STROKE","fillInstruction","strokeInstruction","beginPathInstruction","closePathInstruction","CanvasBuilder","maxLineWidth","beginGeometryInstruction1_","beginGeometryInstruction2_","bufferedMaxExtent_","instructions","tmpCoordinate_","hitDetectionInstructions","applyPixelRatio","dashArray","dash","appendFlatPointCoordinates","getBufferedMaxExtent","myEnd","appendFlatLineCoordinates","closed","skipFirst","lastRel","nextRel","lastXCoord","lastYCoord","nextCoord","skipped","drawCustomCoordinates_","builderEnds","builderEnd","beginGeometry","builderEndss","builderBegin","myEnds","endGeometry","reverseHitDetectionInstructions","instruction","createFill","applyStroke","createStroke","updateFillStyle","currentFillStyle","updateStrokeStyle","currentStrokeStyle","currentLineCap","currentLineDash","currentLineDashOffset","currentLineJoin","currentLineWidth","currentMiterLimit","endGeometryInstruction","CanvasImageBuilder","imagePixelRatio_","anchorX_","anchorY_","height_","originX_","originY_","declutterImageWithText_","myBegin","opt_sharedData","hitDetectionImage","CanvasLineStringBuilder","drawFlatCoordinates_","moveToLineToInstruction","lastStroke","CanvasPolygonBuilder","drawFlatCoordinatess_","numEnds","setFillStrokeStyles_","circleInstruction","matchingChunk","m12","m23","x12","y12","x23","y23","chunkStart","chunkEnd","chunkM","acos","TEXT_ALIGN","CanvasTextBuilder","labels_","fillStates","strokeStates","textStates","textKey_","fillKey_","strokeKey_","geometryType","geometryWidths","beg_1","keep","saveTextStates_","p0","p1","p2","p3","pixelRatio_1","flatOffset","flatEnd","oo","drawChars_","strokeKey","textKey","fillKey","baseline","BATCH_CONSTRUCTORS","PolygonBuilder","Builder","ImageBuilder","LineStringBuilder","TextBuilder","BuilderGroup","tolerance_","maxExtent_","resolution_","buildersByZIndex_","builderInstructions","zKey","builders","builderKey","builderInstruction","builderType","zIndexKey","replays","replay","Constructor","drawTextOnPath","startM","segmentM","advance","interpolate","beginX","beginY","startOffset","startLength","endM","flat","previousAngle","singleSegment","previousAngle_1","iStart","charLength","chars","lineStringLength","p4","getDeclutterBox","replayImageOrLabelArgs","declutterBox","rtlRegEx","horizontalTextAlign","align","Executor","alignFill_","coordinateCache_","renderedTransform_","widths_","createLabel","renderWidth","OffscreenCanvasRenderingContext2D","CanvasRenderingContext2D","leftRight","replayTextBackground_","setStrokeStyle_","calculateImageOrLabelDimensions_","sheetWidth","sheetHeight","snapToPixel","fillStroke","boxW","boxH","boxX","boxY","drawImageX","drawImageY","drawImageW","drawImageH","replayImageOrLabel_","contextScale","imageOrLabel","strokePadding","repeatSize","drawLabelWithPointPlacement_","execute_","opt_featureCallback","opt_hitExtent","opt_declutterTree","prevX","prevY","roundX","roundY","currentGeometry","pendingFill","pendingStroke","lastFillInstruction","lastStrokeInstruction","coordinateCache","viewRotationFromTransform","batchSize","labelWithAnchor","widthIndex","imageArgs","imageDeclutterBox","measurePixelRatio","pixelRatioScale","cachedWidths","pathLength","textLength","drawChars","cc","part","ii_1","execute","executeHitDetection","ORDER","ExecutorGroup","allInstructions","opt_renderBuffer","executorsByZIndex_","hitDetectionContext_","hitDetectionTransform_","createExecutors_","flatClipCoords","getClipCoords","executors","instructionByZindex","hasExecutors","candidates","declutteredFeatures","contextSize","hitExtent","indexes","getPixelIndexArray","featureCallback","result_1","executor","opt_builderTypes","builderTypes","circlePixelIndexArrayCache","maxDistanceSq","distances","pixelIndex","HIT_DETECT_RESOLUTION","createHitDetectionImageData","featureCount","indexFactor","featuresByZIndex","featureStyleFunction","originalStyle","imgContext","byGeometryType","zIndexKeys","geomAndStyle","kk","hitDetect","resultFeatures","CanvasVectorLayerRenderer","vectorLayer","boundHandleStyleImageChange_","handleStyleImageChange_","animatingOrInteracting_","dirty_","hitDetectionImageData_","renderedFeatures_","renderedResolution_","wrappedRenderedExtent_","renderedRotation_","renderedCenter_","renderedProjection_","renderedRenderOrder_","replayGroup_","replayGroupChanged","clipping","renderWorlds","executorGroup","endWorld","world","animating","interacting","frameStateExtent","vectorLayerRevision","vectorLayerRenderBuffer","vectorLayerRenderOrder","loadExtents","loadExtent","declutterBuilderGroup","userExtent","replayGroupInstructions","CanvasVectorImageLayerRenderer","vectorRenderer_","layerImageRatio_","getImageRatio","coordinateToVectorPixelTransform_","renderedPixelToCoordinateTransform_","vectorPixel","vectorRenderer","imageFrameState_1","image_1","IMAGE_REPLAYS","VECTOR_REPLAYS","CanvasVectorTileLayerRenderer","renderedLayerRevision_","renderTileImageQueue_","tileListenerKeys_","tmpTransform_","prepareTile","tileUid","updateExecutorGroup_","tileImageNeedsRender_","listenerKey","getRenderMode","VectorTileRenderType","renderTileImage_","layerRevision","builderState","layerUid","tt","sourceTileExtent","sharedExtent","builderExtent","bufferedExtent","executorGroupInstructions","replayExtent","renderingReplayGroup","_loop_2","reject","extent_1","tilePixel","hifi","getTileRenderTransform","worldOffset","renderQueuedTileImages_","renderMode","replayTypes","replayState","renderPixelRatio","renderScale","pixelScale","interpolatePoint","cumulativeLengths","lineStringCoordinateAtM","extrapolate","lo","hi","m0","lineStringsCoordinateAtM","RenderFeature","type_","flatCoordinates_","flatInteriorPoints_","flatMidpoints_","properties_","midpoint","LineString","flatMidpoint_","flatMidpointRevision_","appendCoordinate","lineString","forEachSegment","getCoordinateAtM","opt_extrapolate","getCoordinateAt","VectorLayer","line","geoM","fracA","fracB","fracM","geoA","geoB","geoStack","fractionStack","fractions","maxIterations","meridian","lon","frac","parallel","lon2","DEFAULT_STROKE_STYLE","INTERVALS","Graticule","maxLines","targetSize","showLabels","lonLabelFormatter","latLabelFormatter","lonLabelPosition","latLabelPosition","lonLabelStyle","latLabelStyle","intervals","maxLat_","maxLon_","minLat_","minLon_","maxX_","maxY_","minX_","minY_","targetSize_","maxLines_","meridians_","parallels_","strokeStyle_","fromLonLatTransform_","toLonLatTransform_","projectionCenterLonLat_","bottomLeft_","bottomRight_","topLeft_","topRight_","meridiansLabels_","parallelsLabels_","lonLabelFormatter_","latLabelFormatter_","lonLabelPosition_","latLabelPosition_","lonLabelStyleBase_","lonLabelStyle_","latLabelStyleBase_","latLabelStyle_","drawLabels_","intervals_","loaderFunction","strategyFunction","featurePool_","lineStyle_","loadedExtent_","realWorldExtent","renderExtent","updateProjectionInfo_","createGraticule_","featuresColl","poolIndex","addMeridian_","minLat","maxLat","getMeridian_","geom","addParallel_","minLon","maxLon","getParallel_","rotationCenter","rotationExtent","cr","sr","unrotatedWidth","unrotatedHeight","startWorld","labelsAtStart","vectorContext","textPoint","getMeridianPoint_","getParallelPoint_","getInterval_","validCenterP","centerLonLat","cnt","centerLon","centerLat","validExtentP","validExtent","clampedLat","bottom","clampedBottom","clampedTop","getMeridians","clampedLeft","clampedRight","getParallels","toLonLatTransform","split_1","lonLatCoordinates","worldExtentP","DEFAULT_GRADIENT","Heatmap","gradient","blur","gradient_","handleGradientChanged_","setGradient","setBlur","weightFunction_","getBlur","getGradient","colors","createLinearGradient","addColorStop","createGradient","u_size","u_blurSlope","u_gradientTexture","FeatureFormat","defaultFeatureProjection","getReadOptions","adaptOptions","readFeature","readGeometry","writeFeature","writeFeatures","writeGeometry","transformGeometryWithOptions","decimals","power_1","transformExtentWithOptions","MultiLineString","lineStrings","appendLineString","multiLineString","opt_interpolate","getLineString","getLineStrings","midpoints","MultiPoint","appendPoint","multiPoint","getPoint","MultiPolygon","endss_","flatInteriorPointsRevision_","polygons","appendPolygon","newEndss","multiPolygon","getInteriorPoints","getPolygon","prevEnds","getPolygons","lastEnds","layersPBFReader","layerPBFReader","featurePBFReader","readRawFeature","MVT","featureClass_","featureClass","geometryName","layerName_","layerName","idProperty_","idProperty","readRawGeometry_","cmd","coordsLen","currentEnd","cmdLen","createFeature_","rawFeature","getGeometryType","prevEndIndex","ctor","pbfLayers","pbfLayer","VectorTileLayer","renderMode_","cloneGeometries","clonedGeometries","GeometryCollection","opt_geometries","geometries_","changeEventsKeys_","listenGeometriesChange_","unlistenGeometriesChange_","geometryCollection","setGeometries","getGeometriesArrayRecursive","geometriesArray","simplifiedGeometries","simplified","simplifiedGeometryCollection","setGeometriesArray","getObject","JSONFeature","readFeatureFromObject","readFeaturesFromObject","readGeometryFromObject","readProjectionFromObject","writeFeatureObject","writeFeaturesObject","writeGeometryObject","readPointGeometry","readLineStringGeometry","readPolygonGeometry","readMultiPointGeometry","readMultiLineStringGeometry","readMultiPolygonGeometry","readGeometryCollectionGeometry","geoJSON","writePointGeometry","writeLineStringGeometry","rightHanded","writePolygonGeometry","writeMultiPointGeometry","writeMultiLineStringGeometry","writeMultiPolygonGeometry","writeGeometryCollectionGeometry","GeoJSON","extractGeometryName_","extractGeometryName","geoJSONFeature","geoJSONFeatures","crs","objects","v8","$version","$root","required","example","metadata","period","pitch","intensity","terrain","fog","sprite","glyphs","paint","source_vector","vector","bounds","scheme","xyz","tms","minzoom","maxzoom","promoteId","volatile","android","ios","source_raster","raster","source_raster_dem","encoding","terrarium","mapbox","source_geojson","geojson","maximum","minimum","clusterRadius","clusterMaxZoom","clusterMinPoints","clusterProperties","lineMetrics","generateId","source_video","video","source_image","js","macos","heatmap","hillshade","background","sky","layout_background","visibility","layout_sky","layout_fill","interpolated","parameters","layout_circle","layout_heatmap","layout_line","butt","square","bevel","miter","requires","layout_symbol","auto","both","tokens","horizontal","vertical","uppercase","lowercase","layout_raster","layout_hillshade","filter_operator","any","has","within","geometry_type","stops","base","identity","exponential","categorical","colorSpace","lab","hcl","function_stop","expression_name","group","literal","at","coalesce","ln2","pi","boolean","collator","rgba","accumulated","log10","ln","upcase","downcase","exaggeration","paint_fill","paint_line","paint_circle","paint_heatmap","paint_symbol","overridable","paint_raster","paint_hillshade","paint_background","paint_sky","atmosphere","constant","commonjsGlobal","globalThis","createCommonjsModule","punycode","freeExports","freeModule","freeGlobal","maxInt","regexPunycode","regexNonASCII","regexSeparators","errors","stringFromCharCode","RangeError","mapDomain","ucs2decode","extra","counter","ucs2encode","digitToBasic","digit","flag","adapt","numPoints","firstTime","baseMinusTMin","basic","oldi","baseMinusT","codePoint","inputLength","bias","encode","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","util","sep","eq","regexp","maxKeys","kstr","vstr","decodeURIComponent","stringifyPrimitive","ks","querystring","Url","protocol","slashes","auth","host","port","hostname","query","pathname","path","href","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","urlParse","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","rest","trim","simplePath","proto","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","toASCII","ae","esc","escape","qm","relative","resolveObject","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","up","isAbsolute","const","ParsingError","super","Scope","bindings","NullType","kind","NumberType","StringType","BooleanType","ColorType","ObjectType","ValueType","CollatorType","FormattedType","ResolvedImageType","itemType","N","valueMemberTypes","checkSubtype","expected","isValidType","provided","allowedTypes","isValidNativeType","csscolorparser","kCSSColorTable","clamp_css_byte","clamp_css_float","parse_css_int","parse_css_float","css_hue_to_rgb","m1","m2","parseCSSColor","css_str","iv","op","ep","fname","toArray","red","Collator","caseSensitive","diacriticSensitive","locale","sensitivity","Intl","lhs","rhs","resolvedLocale","resolvedOptions","FormattedSection","fontStack","textColor","Formatted","sections","unformatted","section","serialized","ResolvedImage","validateRGBA","isValue","mixed","typeOf","toString$1","Literal","expectedType","evaluate","eachChild","outputDefined","RuntimeError","Assertion","let","parsed","FormatExpression","firstArg","nextTokenMayBeObject","lastExpression","content","evaluatedContent","ImageExpression","evaluatedImageName","availableImages","types$1","Coercion","parseColor","child","geometryTypes","EvaluationContext","globals","featureState","formattedSection","_parseColorCache","canonical","canonicalID","cached","CompoundExpression","_evaluate","definitions","availableOverloads","overloads","signature","signatureContext","ParsingContext","registry","scope","argParseFailed","signatures","actualTypes","register","CollatorExpression","updateBBox","boxWithinBox","bbox1","bbox2","getTileCoordinates","tilesAtZoom","onBoundary","rayIntersect","pointWithinPolygon","inside","ring","len2","pointWithinPolygons","twoSided","q1","q2","det1","det2","lineIntersectPolygon","vectorP","vectorQ","lineStringWithinPolygon","lineStringWithinPolygons","getTilePolygon","getTilePolygons","updatePoint","polyBBox","worldSize","halfWorldSize","getTilePoints","pointBBox","shifts","tilePoints","getTileLines","lineBBox","tileLines","tileLine","resetBBox","Within","isFeatureConstant","isStateConstant","isGlobalPropertyConstant","tilePolygon","tilePolygons","pointsWithinPolygons","linesWithinPolygons","Var","boundExpression","isConstant","isTypeAnnotation","childrenConstant","findStopLessThanOrEqualTo","nextValue","lowerIndex","upperIndex","currentIndex","expr","_parse","annotate","typeAnnotation","Expr","actual","ec","Step","labels","outputs","labelKey","valueKey","stopCount","unitbezier","UnitBezier","p1x","p1y","p2x","p2y","cx","bx","ax","cy","by","ay","sampleCurveX","sampleCurveY","sampleCurveDerivativeX","solveCurveX","epsilon","t0","t1","t2","solve","freeze","Xn","Zn","deg2rad","rad2deg","xyz2lab","lab2xyz","xyz2rgb","rgb2xyz","rgbToLab","rgbColor","labToRgb","labColor","interpolateHue","hclColor","colorSpaces","Interpolate","exponentialInterpolation","lowerValue","upperValue","difference","interpolationFactor","lower","upper","controlPoints","outputLower","outputUpper","Coalesce","needsAnnotation","requestedImageName","argCount","Let","At","In","IndexOf","fromIndex","Match","inputType","cases","otherwise","labelContext","MAX_SAFE_INTEGER","groupedByOutput","outputLookup","outputIndex","coerceLabel","Case","branches","Slice","beginIndex","endIndex","isComparableType","eqCollate","makeComparison","compareBasic","compareWithCollator","isOrderComparison","hasUntypedArgument","Comparison","lt","Equals","NotEquals","LessThan","GreaterThan","LessThanOrEqual","GreaterThanOrEqual","NumberFormat","currency","minFractionDigits","maxFractionDigits","minimumFractionDigits","Length","expressions","varargs","supportsPropertyExpression","spec","supportsZoomExpression","supportsInterpolation","isFunction$1","identityFunction","createFunction","propertySpec","innerFun","hashedStops","categoricalKeyType","isColor","zoomAndFeatureDependent","featureDependent","zoomDependent","stop","default","evaluateExponentialFunction","evaluateIntervalFunction","evaluateCategoricalFunction","evaluateIdentityFunction","featureFunctions","zoomStops","featureFunctionStops","interpolationType","keyType","interp","colorspace","evaluatedLower","evaluatedUpper","heatmapDensity","lineProgress","skyRadialProgress","E","LN10","isSupportedScript","toUpperCase","StyleExpression","_warningHistory","_evaluator","_defaultValue","_enumValues","isExpression","createExpression","enum","formatted","resolvedImage","getExpectedType","evaluateWithoutErrorHandling","ZoomConstantExpression","_styleExpression","isStateDependent","ZoomDependentExpression","createPropertyExpression","isFeatureConstant$1","isZoomConstant","zoomCurve","findZoomCurve","StylePropertyFunction","specification","_parameters","_specification","childResult","convertLiteral","convertFunction","convertIdentityFunction","convertTokenString","featureFunctionParameters","getFunctionType","getInterpolateOperator","appendStopPair","convertPropertyFunction","fixupDegenerateStepCurve","convertZoomAndPropertyFunction","isStep","convertZoomFunction","getFallback","defaultValue","curve","re","isExpressionFilter","deserialize","filterSpec","createFilter","needGeometry","convertFilter","compiled","globalProperties","geometryNeeded","filters","convertComparisonOp","convertNegation","convertInOp","convertHasOp","refProperties","deref","ValidationError","__line__","ParsingError$1","validateConstants","constants","unbundle","valueOf","deepUnbundle","unbundledValue","validateObject","elementSpecs","valueSpec","elementValidators","objectElementValidators","styleSpec","objectKey","elementSpecKey","elementSpec","validateElement","validate","validateArray","arraySpec","validateArrayElement","arrayElementValidator","arrayElementSpec","function","arrayIndex","validateNumber","specMin","specMax","validateFunction","stopKeyType","previousStopDomainValue","previousStopDomainZoom","functionValueSpec","functionType","stopDomainValues","isZoomFunction","isPropertyFunction","isZoomAndPropertyFunction","validateFunctionStop","validateStopDomainValue","reportValue","validateExpression","expressionContext","expressionObj","propertyKey","propertyType","validateEnum","validateFilter","validateNonExpressionFilter","validateProperty","layerSpec","transitionMatch","tokenMatch","layerType","validatePaintProperty","validateLayoutProperty","validateLayer","ref","layerId","otherLayer","sourceType","validateString","validateSource","mapExpr","reduceExpr","validateLight","lightSpec","rootType","validateTerrain","terrainSpec","validateFog","fogSpec","VALIDATORS","validateGlyphsURL","validateStyleMin","sortErrors","wrapCleanErrors","inner","paintProperty","layoutProperty","jsonlint","$V0","$V1","$V2","$V3","$V4","$V5","$V6","$V7","$V8","$V9","trace","yy","2","4","6","8","10","11","14","17","18","21","22","23","24","performAction","yytext","yyleng","yylineno","yystate","$$","_$","$0","$","first_line","table","3","5","7","9","12","13","15","16","1","19","20","25","defaultActions","parseError","recoverable","vstack","lstack","TERROR","EOF","lexer","sharedState","setInput","yylloc","yyloc","ranges","lex","token","symbols_","action","newState","yyval","errStr","terminals_","showPosition","loc","productions_","last_line","first_column","last_column","_input","_more","_backtrack","matched","conditionStack","ch","unput","oldLines","backtrack_lexer","less","pastInput","past","upcomingInput","pre","test_match","indexed_rule","backup","tempMatch","rules","_currentRules","flex","popState","topState","pushState","stateStackSize","yy_","$avoiding_name_collisions","YY_START","Parser","readStyle","Buffer","validateStyle","Set","expression$1","latest","createCanvas","hairSpacePool","applyLetterSpacing","letterSpacing","textWithLetterSpacing","joinSpaceString","ll","getMeasureContext","measureCache","wrapText","em","hardLines","wrappedText","words","maxWidth","word","testLine","line_1","prevWidth","nextWidth","line_2","lineWords","lastWord","renderFeatureCoordinates","emptyObj","zoomObj","functionCache","layoutOrPaint","functions","value_1","isExpr","compiledExpression","rawExpression","expressionData","filterCache","colorWithOpacity","templateRegEx","fromTemplate","recordLayer","olLayer","glStyle","spriteData","spriteImageUrl","getFonts","spriteImage","spriteImgSize","img_1","mapboxSource","allLayers","derefLayers","layersBySourceLayer","mapboxLayers","sourceLayer","source_1","textHalo","iconImageCache","patternCache","featureBelongsToLayer","stylesLength","layerData","evaluateFilter","strokeColor","fillIcon","icon_1","pattern","icon_cache_key","spriteImageData","createPattern","width_1","hasImage","placementAngle","iconImg","skipLabel","styleGeom","iconRotationAlignment","iconSize","iconColor","circleRadius","circleStrokeColor","circleColor","circleStrokeWidth","cache_key","textSize","fontArray","textLineHeight","textTransform","maxTextWidth","wrappedLabel","textAnchor","textHaloWidth","textOffset","textTranslate","vOffset","hOffset","textRotationAlignment","haloColor","halfTextSize","textPadding","loadedFontFamilies","fontFamilyRegEx","stripQuotesRegEx","hasFontFamily","styleSheets","styleSheet","cssRules","cssRule","cssText","processedFontFamilies","googleFamilies","google","fontsKey","googleFontDescriptions","googleFontDescription","fontUrl","querySelector","markup","spriteRegEx","withPath","toSpriteUrl","applyStyle","onChange","sizeFactor_1","spriteUrl_1","fetch","credentials","ok","statusText","spritesJson","mapboxBaseUrl","getMapboxPath","startsWith","normalizeSpriteUrl","mapboxPath","normalizeGlyphsUrl","normalizeStyleUrl","normalizeSourceUrl","ErrorEvent","SourceType","MapboxVectorLayer","sourceId","accessToken","fetchStyle","styleUrl","onStyleLoad","handleError","sourceIdOrLayersList","firstSource","styleSource","VectorImageLayer","imageRatio","imageRatio_","WebGLPointsLayer","parseResult_","hitDetectionDisabled_","disableHitDetection","DragAndDropEventType","DragAndDropEvent","file","DragAndDrop","readAsBuffer_","formats_","formatConstructors","dropListenKeys_","source_","handleResult_","tryReadFeatures_","registerListeners_","dropArea","handleDrop","handleStop","unregisterListeners_","files","dataTransfer","reader","FileReader","readAsArrayBuffer","readAsText","dropEffect","DragRotateAndZoom","lastMagnitude_","magnitude","angleDelta","setCenterAndRadius","getRadiusSquared_","DrawEventType","DrawEvent","Draw","shouldHandle_","downPx_","downTimeout_","lastDragTime_","pointerType_","freehand_","snapTolerance_","snapTolerance","getMode","stopClick_","stopClick","minPoints_","minPoints","maxPoints_","maxPoints","finishCondition_","finishCondition","Constructor_1","mode_1","squaredLength","dragVertexDelay_","dragVertexDelay","finishCoordinate_","sketchFeature_","sketchPoint_","sketchCoords_","sketchLine_","sketchLineCoords_","squaredClickTolerance_","clickTolerance","overlay_","freehandCondition_","freehand","freehandCondition","updateState_","getOverlay","move","addToDrawing_","startDrawing_","startingToDraw","finishDrawing","atFinish_","abortDrawing","downPx","clickPx","modifyDrawing_","createOrUpdateSketchPoint_","potentiallyDone","potentiallyFinishCoordinates","mode","sketchCoords","finishCoordinate","finishPixel","updateSketchFeatures_","createOrUpdateCustomSketchLine_","sketchLineGeom","removeLastPoint","sketchFeature","abortDrawing_","appendCoordinates","newDrawing","ending","sketchFeatures","overlaySource","ExtentEventType","ExtentEvent","getDefaultPointerStyleFunction","getPointHandler","fixedPoint","getEdgeHandler","fixedP1","fixedP2","Extent","pointerHandler_","pixelTolerance_","pixelTolerance","snappedToVertex_","extentFeature_","vertexFeature_","extentOverlay_","boxStyle","vertexOverlay_","pointerStyle","snapToVertex_","pixelCoordinate","getExtentInternal","segments","getSegments","closestSegment","vertex","vertexPixel","pixel1","pixel2","squaredDist1","squaredDist2","dist","createOrUpdatePointerFeature_","createOrUpdateExtentFeature_","extentFeature","vertexFeature","getOpposingPoint","x_","y_","tempExtent","tempSegment","ModifyEventType","ModifyEvent","compareIndexes","projectedDistanceToSegmentDataSquared","pointCoordinates","segmentData","distanceToCenterSquared","distanceToCircumference","closestOnSegmentData","Modify","boundHandleFeatureChange_","defaultDeleteCondition_","deleteCondition_","deleteCondition","insertVertexCondition_","insertVertexCondition","vertexSegments_","lastPixel_","ignoreNextSingleClick_","featuresBeingModified_","rBush_","changingFeature_","dragSegments_","SEGMENT_WRITERS_","writePointGeometry_","writeLineStringGeometry_","writePolygonGeometry_","writeMultiPointGeometry_","writeMultiLineStringGeometry_","writeMultiPolygonGeometry_","writeCircleGeometry_","writeGeometryCollectionGeometry_","hitDetection_","handleSourceAdd_","handleSourceRemove_","addFeature_","handleFeatureAdd_","handleFeatureRemove_","lastPointerEvent_","snapToPointer_","snapToPointer","writer","handlePointerAtPixel_","willModifyFeatures_","ss","removeFeature_","removeFeatureSegmentData_","rBush","nodesToRemove","nodeToRemove","depth","centerSegmentData","circumferenceSegmentData","featureSegments","createOrUpdateVertexFeature_","removePoint","dragSegment","setGeometryCoordinates_","insertVertices","vertexExtent","segmentDataMatches","componentSegments","segmentDataMatch","insertVertex_","opt_coordinate","nodes","hitPointGeometry","vertexSegments","geometryUid","rTree","updateSegmentIndices_","newSegmentData","newSegmentData2","removeVertex_","component","newIndex","dragSegments","segmentsByFeature","deleted","SelectEventType","SelectEvent","selected","deselected","originalFeatureStyles","Select","boundAddFeature_","boundRemoveFeature_","addCondition_","addCondition","removeCondition_","removeCondition","toggleCondition_","toggleCondition","multi_","multi","filter_","hitTolerance_","layers_1","layerFilter_","featureLayerAssociation_","addFeatureLayerAssociation_","getHitTolerance","setHitTolerance","restorePreviousStyle_","applySelectedStyle_","removeFeatureLayerAssociation_","getFeatureFromEvent","Snap","vertex_","edge_","featuresListenerKeys_","featureChangeListenerKeys_","indexedFeaturesExtents_","pendingFeatures_","opt_listen","feature_uid","segmentWriter","forEachFeatureAdd_","forEachFeatureRemove_","getFeatures_","snapTo","snapped","updateFeature_","featuresToUpdate","opt_unlisten","unregister","nodesToRemove_1","currentMap","closestSegmentData","projectedCoordinate","isCircle","TranslateEventType","TranslateEvent","startCoordinate","Translate","lastCoordinate_","startCoordinate_","lastFeature_","handleActiveChanged_","featuresAtPixel_","newCoordinate","deltaX_1","deltaY_1","oldMap","flipXY","opt_destOffset","destOffset","GEOMETRY_READERS","getGeometryLayout","paths","GEOMETRY_WRITERS","_b","esriJSONPolygon","flatRing","outerRings","holes","hole","outerRing","convertRings","geometryReader","hasZ","hasM","getHasZM","geometryWriter","esriJSON","hasZM","EsriJSON","opt_idField","esriJSONFeature","esriJSONFeatures","objectIdFieldName","wkid","XMLFeature","readFeatureFromDocument","readFeatureFromNode","readFeaturesFromDocument","readFeaturesFromNode","ELEMENT_NODE","readGeometryFromDocument","readGeometryFromNode","readProjectionFromDocument","readProjectionFromNode","writeFeatureNode","serializeToString","writeFeaturesNode","writeGeometryNode","GMLNS","ONLY_WHITESPACE_RE","GMLBase","featureType","featureNS","srsName","schemaLocation","FEATURE_COLLECTION_PARSERS","namespace","readFeaturesInternal","ft","ns","featureTypes","readFeatureElement","readGeometryElement","getAttribute","GEOMETRY_PARSERS","readFeatureElementInternal","asFeature","attName","fid","readPoint","readFlatCoordinatesFromNode","readMultiPoint","MULTIPOINT_PARSERS","readMultiLineString","MULTILINESTRING_PARSERS","readMultiPolygon","MULTIPOLYGON_PARSERS","pointMemberParser","POINTMEMBER_PARSERS","lineStringMemberParser","LINESTRINGMEMBER_PARSERS","polygonMemberParser","POLYGONMEMBER_PARSERS","readLineString","readFlatLinearRing","GEOMETRY_FLAT_COORDINATES_PARSERS","readLinearRing","readPolygon","flatLinearRings","FLAT_LINEAR_RINGS_PARSERS","RING_PARSERS","readBooleanString","readDateTime","dateTime","readDecimal","readDecimalString","readNonNegativeInteger","readNonNegativeIntegerString","writeBooleanTextNode","bool","writeStringTextNode","writeCDATASection","createCDATASection","writeDateTimeTextNode","date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","writeDecimalTextNode","toPrecision","writeNonNegativeIntegerTextNode","nonNegativeInteger","MULTIGEOMETRY_TO_MEMBER_NODENAME","GML2","readFlatCoordinates","containerSrs","coordsGroups","readBox","BOX_PARSERS_","innerBoundaryIsParser","flatLinearRing","outerBoundaryIsParser","GEOMETRY_NODE_FACTORY_","multiSurface","surface","multiCurve","writeFeatureElement","writeGeometryElement","writeCurveOrLineString","createCoordinatesNode_","writeCoordinates_","writeCurveSegments_","writeLineStringOrCurveMember","writeMultiCurveOrLineString","LINESTRINGORCURVEMEMBER_SERIALIZERS","MULTIGEOMETRY_MEMBER_NODE_FACTORY_","GEOMETRY_SERIALIZERS","getCoords_","writeSurfaceOrPolygon","RING_SERIALIZERS","RING_NODE_FACTORY_","patches","writeSurfacePatches_","exteriorWritten","writeRing","writeLinearRing","opt_srsName","opt_hasZ","writePoint","writeMultiPoint","POINTMEMBER_SERIALIZERS","writePointMember","writeMultiSurfaceOrPolygon","SURFACEORPOLYGONMEMBER_SERIALIZERS","writeSurfaceOrPolygonMember","writeEnvelope","ENVELOPE_SERIALIZERS","GML3","surface_","curve_","multiCurve_","multiSurface_","readMultiCurve","MULTICURVE_PARSERS","readMultiSurface","MULTISURFACE_PARSERS","curveMemberParser","CURVEMEMBER_PARSERS","surfaceMemberParser","SURFACEMEMBER_PARSERS","readPatch","PATCHES_PARSERS","readSegment","SEGMENTS_PARSERS","readPolygonPatch","readLineStringSegment","interiorParser","exteriorParser","readSurface","SURFACE_PARSERS","readCurve","CURVE_PARSERS","readEnvelope","ENVELOPE_PARSERS","readFlatPos","readFlatPosList","contextDimension","dim","writePos_","srsDimension","writePosList_","posList","writeFeatureMembers_","setAttributeNS","GML","GML32","NAMESPACE_URIS","FEATURE_READER","readRte","readTrk","readWpt","GPX_PARSERS","LINK_PARSERS","GPX_SERIALIZERS","RTE_SEQUENCE","RTE_SERIALIZERS","TRK_SEQUENCE","TRK_SERIALIZERS","writeWptType","GPX","readExtensions_","readExtensions","handleReadExtensions_","extensionsNode","featureReader","gpx","GPX_NODE_FACTORY","RTE_PARSERS","parseLink","parseExtensions","RTEPT_PARSERS","rteValues","layoutOptions","TRK_PARSERS","TRKSEG_PARSERS","TRKPT_PARSERS","trkValues","WPT_PARSERS","LINK_SEQUENCE","LINK_SERIALIZERS","writeLink","RTEPT_TYPE_SEQUENCE","TRKSEG_SERIALIZERS","TRKSEG_NODE_FACTORY","WPT_TYPE_SEQUENCE","WPT_TYPE_SERIALIZERS","GEOMETRY_TYPE_TO_NODENAME","applyLayoutOptions","DEFAULT_COLOR","DEFAULT_IMAGE_STYLE_ANCHOR","DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS","DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS","DEFAULT_IMAGE_STYLE_SIZE","DEFAULT_IMAGE_STYLE_SRC","DEFAULT_IMAGE_SCALE_MULTIPLIER","TextFeature","readFeatureFromText","readFeaturesFromText","readGeometryFromText","readProjectionFromText","writeFeatureText","writeFeaturesText","writeGeometryText","IGCZ","B_RECORD_RE","H_RECORD_RE","HFDTE_RECORD_RE","NEWLINE_RE","IGC","altitudeMode_","altitudeMode","year","month","day","lastDateTime","hour","minute","second","UTC","GX_NAMESPACE_URIS","ICON_ANCHOR_UNITS_MAP","PLACEMARK_PARSERS","extendedDataParser","regionParser","readMultiGeometry","styleMapValue","readStyleMapValue","placemarkObject","readStyleURL","GX_MULTITRACK_GEOMETRY_PARSERS","readGxTrack","NETWORK_LINK_PARSERS","readURI","REGION_PARSERS","LAT_LON_ALT_BOX_PARSERS","regionObject","LOD_PARSERS","lodObject","KML_SEQUENCE","KML_SERIALIZERS","DOCUMENT_SERIALIZERS","DOCUMENT_NODE_FACTORY","writePlacemark","DEFAULT_FILL_STYLE","DEFAULT_NO_IMAGE_STYLE","DEFAULT_IMAGE_STYLE","DEFAULT_TEXT_STROKE_STYLE","DEFAULT_TEXT_STYLE","DEFAULT_STYLE","TEXTAREA","DEFAULT_STYLE_ARRAY","defaultIconUrlFunction","KML","defaultStyle_","defaultStyle","extractStyles_","extractStyles","writeStyles_","writeStyles","sharedStyles_","showPointNames_","showPointNames","iconUrlFunction_","iconUrlFunction","readDocumentOrFolder_","readPlacemark_","readSharedStyle_","readSharedStyleMap_","sharedStyles","drawName","multiGeometryPoints","featureStyle","findStyle","nameStyle","foundStyle","imageScale","createNameStyleFunction","createFeatureStyleFunction","styleUri","baseURI","fs","readName","readNameFromDocument","readNameFromNode","name_2","readNetworkLinks","networkLinks","readNetworkLinksFromDocument","readNetworkLinksFromNode","readRegion","regions","readRegionFromDocument","readRegionFromNode","kml","xmlnsUri","styleValue","readColor","hexColor","readScale","STYLE_MAP_PARSERS","pairObject","PAIR_PARSERS","ICON_STYLE_PARSERS","iconObject","ICON_PARSERS","xunits","yunits","LABEL_STYLE_PARSERS","LINE_STYLE_PARSERS","POLY_STYLE_PARSERS","FLAT_LINEAR_RING_PARSERS","GX_TRACK_PARSERS","whens","when","gxTrackObject","EXTRUDE_AND_ALTITUDE_MODE_PARSERS","MULTI_GEOMETRY_PARSERS","multiGeometry","homogeneous","setCommonGeometryProperties","innerBoundaryFlatLinearRings","INNER_BOUNDARY_IS_PARSERS","OUTER_BOUNDARY_IS_PARSERS","STYLE_PARSERS","styleObject","IconObject","drawIcon","hotSpot","outline","hasExtrude","hasTessellate","hasAltitudeMode","extrudes","tessellates","altitudeModes","DATA_PARSERS","EXTENDED_DATA_PARSERS","featureObject","displayName","SCHEMA_DATA_PARSERS","writeColorTextNode","abgr","hex","EXTENDEDDATA_NODE_SERIALIZERS","pair","DATA_NODE_FACTORY","ICON_SEQUENCE","ICON_SERIALIZERS","GX_NODE_FACTORY","ICON_STYLE_SEQUENCE","ICON_STYLE_SERIALIZERS","vec2","writeScaleTextNode","LABEL_STYLE_SEQUENCE","LABEL_STYLE_SERIALIZERS","LINE_STYLE_SEQUENCE","LINE_STYLE_SERIALIZERS","GEOMETRY_NODE_FACTORY","POINT_NODE_FACTORY","LINE_STRING_NODE_FACTORY","LINEAR_RING_NODE_FACTORY","POLYGON_NODE_FACTORY","MULTI_GEOMETRY_SERIALIZERS","writePrimitiveGeometry","writePolygon","writeMultiGeometry","BOUNDARY_IS_SERIALIZERS","writeBoundaryIs","PLACEMARK_SERIALIZERS","namesAndValues","names","pointStyles","lineStyles","polyStyles","STYLE_SEQUENCE","STYLE_SERIALIZERS","PLACEMARK_SEQUENCE","EXTENDEDDATA_NODE_FACTORY","styleArray","PRIMITIVE_GEOMETRY_SEQUENCE","PRIMITIVE_GEOMETRY_SERIALIZERS","POLY_STYLE_SEQUENCE","POLYGON_SERIALIZERS","INNER_BOUNDARY_NODE_FACTORY","OUTER_BOUNDARY_NODE_FACTORY","POLY_STYLE_SERIALIZERS","iconProperties","WAY_PARSERS","ndrefs","readTag","PARSERS","tags","NODE_PARSERS","ways","OSMXML","XML","readFromDocument","readFromNode","readHref","SERVICE_IDENTIFICATION_PARSERS","SERVICE_PROVIDER_PARSERS","OPERATIONS_METADATA_PARSERS","OWS","owsObject","ADDRESS_PARSERS","ALLOWED_VALUES_PARSERS","CONSTRAINT_PARSERS","CONTACT_INFO_PARSERS","PHONE_PARSERS","DCP_PARSERS","HTTP_PARSERS","REQUEST_METHOD_PARSERS","OPERATION_PARSERS","SERVICE_CONTACT_PARSERS","encodeDeltas","numbers","opt_factor","lastNumbers","encodeFloats","decodeDeltas","encoded","decodeFloats","encodeSignedIntegers","decodeSignedIntegers","encodeUnsignedIntegers","decodeUnsignedIntegers","encodeUnsignedInteger","current","Polyline","factor_","geometryLayout_","geometryLayout","TopoJSON","topoJSONTopology","arcs","transformArc","transformArcs","topoJSONFeatures","objectName","readFeaturesFromGeometryCollection","readFeatureFromGeometry","transformVertex","concatenateArcs","polyArray","ringCoords","indices","Filter","tagName_","getTagName","LogicalNary","And","Bbox","Spatial","Contains","DWithin","unit","Disjoint","propertyName","During","ComparisonBinary","opt_matchCase","matchCase","EqualTo","GreaterThanOrEqualTo","Intersects","IsBetween","lowerBoundary","upperBoundary","IsLike","opt_wildCard","opt_singleChar","opt_escapeChar","wildCard","singleChar","escapeChar","IsNull","LessThanOrEqualTo","Not","NotEqualTo","Or","ResourceId","rid","and","Function","TRANSACTION_SUMMARY_PARSERS","TRANSACTION_RESPONSE_PARSERS","readTransactionSummary","readInsertResults","QUERY_SERIALIZERS","TRANSACTION_SERIALIZERS","writeUpdate","writeDelete","writeProperty","writeNative","FEATURE_PREFIX","XMLNS","OGCNS","WFSNS","FESNS","SCHEMA_LOCATIONS","GML_FORMATS","WFS","featureType_","featureNS_","gmlFormat_","gmlFormat","schemaLocation_","getFeatureType","setFeatureType","readTransactionResponse","readTransactionResponseFromDocument","readTransactionResponseFromNode","readFeatureCollectionMetadata","readFeatureCollectionMetadataFromDocument","readFeatureCollectionMetadataFromNode","writeGetFeature","handle","outputFormat","maxFeatures","resultType","viewParams","featurePrefix","propertyNames","combineBboxAndFilter","completeFilter","bboxFilter","writeTransaction","inserts","updates","deletes","baseObj","gmlOptions","request","gmlVersion","createTransactionRequest","serializeTransactionRequest","nativeElements","OGC_FID_PARSERS","fidParser","INSERT_RESULTS_PARSERS","writeOgcFidFilter","getTypeName","prefix","typeName","nativeElement","vendorId","safeToIgnore","GETFEATURE_SERIALIZERS","writeQuery","writeDuringFilter","writeLogicalFilter","writeNotFilter","writeBboxFilter","writeSpatialFilter","writeDWithinFilter","writeComparisonFilter","writeIsNullFilter","writeIsBetweenFilter","writeIsLikeFilter","typeNameAttr","getFilterNS","writeFilterCondition","writePropertyName","writeExpression","timePeriod","writeTimeInstant","writeLiteral","timeInstant","timePosition","WKBGeometryType","WkbReader","view_","pos_","initialized_","isLittleEndian_","hasZ_","hasM_","srid_","layout_","readUint8","getUint8","readUint32","isLittleEndian","getUint32","getFloat64","numRings","readWkbHeader","expectedTypeId","wkbType","wkbTypeThousandth","hasSRID","typeId","readWkbPayload","readGeometryCollection","readWkbBlock","readWkbCollection","getSrid","WkbWriter","opts","littleEndian","isEWKB_","ewkb","writeQueue_","nodata_","X","Y","Z","nodata","writeUint8","writeUint32","coordsObj","axis","_i","writeLineString","writeWkbHeader","writeMultiLineString","writeMultiPolygon","writeGeometryCollection","findMinimumLayout","geoms","wkblut","geomType","getBuffer","DataView","setUint8","setUint32","setFloat64","getDataView","decodeHexString","byteOffset","WKB","splitCollection","viewCache_","hex_","littleEndian_","ewkb_","nodataZ_","nodataZ","nodataM_","nodataM","encodeHexString","GeometryConstructor","EMPTY","TokenType","WKTGeometryType","Lexer","wkt","index_","isAlpha_","isNumeric_","opt_decimal","isWhiteSpace_","nextChar_","nextToken","readNumber_","readText_","scientificNotation","lexer_","token_","consume_","isTokenType","isMatch","parseGeometry_","parseGeometryLayout_","dimToken","dimInfo","parseGeometryCollectionText_","formatErrorMessage_","parsePointText_","parsePoint_","parseLineStringText_","parsePointList_","parsePolygonText_","parseLineStringTextList_","parseMultiPointText_","parsePointTextList_","parseMultiLineStringText_","parseMultiPolygonText_","parsePolygonTextList_","isEmptyGeometry_","WKT","splitCollection_","parse_","encodePointGeometry","encodeLineStringGeometry","encodePolygonGeometry","GeometryEncoder","components","enc","geometryEncoder","encodeGeometryLayout","SERVICE_PARSERS","CAPABILITY_PARSERS","REQUEST_PARSERS","EXCEPTION_PARSERS","layerObject","LAYER_PARSERS","readLayer","WMSCapabilities","wmsCapabilityObject","readKeywordList","CONTACT_INFORMATION_PARSERS","CONTACT_PERSON_PARSERS","CONTACT_ADDRESS_PARSERS","geographicBoundingBox","EX_GEOGRAPHIC_BOUNDING_BOX_PARSERS","westBoundLongitude","southBoundLatitude","eastBoundLongitude","northBoundLatitude","ATTRIBUTION_PARSERS","authorityObject","readFormatOnlineresource","metadataObject","readSizedFormatOnlineresource","readOperationType","OPERATIONTYPE_PARSERS","DCPTYPE_PARSERS","FORMAT_ONLINERESOURCE_PARSERS","KEYWORDLIST_PARSERS","parentLayerObject","queryable","cascaded","noSubsets","fixedWidth","fixedHeight","childValue","parentValue","formatOnlineresource","WMSGetFeatureInfo","readFeatures_","layerElement","layerFeatures","gmlFeatures","CONTENTS_PARSERS","WMTSCapabilities","owsParser_","WMTSCapabilityObject","TMS_PARSERS","isDefault","TMS_LINKS_PARSERS","DIMENSION_PARSERS","resourceType","legend","TMS_LIMITS_LIST_PARSERS","TMS_LIMITS_PARSERS","WGS84_BBOX_READERS","readCoordinates","TM_PARSERS","events","FullScreenEventType","isFullScreenSupported","requestFullscreen","fullscreenEnabled","isFullScreen","fullscreenElement","requestFullScreen","FullScreen","cssClassName_","activeClassName_","activeClassName","inactiveClassName_","inactiveClassName","labelNode_","labelActive","labelActiveNode_","button_","setClassName_","handleFullScreen_","exitFullscreen","requestFullScreenWithKeys","handleFullScreenChange_","fullscreen","_c","nextClassName","PROJECTION","COORDINATE_FORMAT","MousePosition","coordinateFormat","setCoordinateFormat","renderOnMouseOut","placeholder","undefinedHTML","placeholder_","renderOnMouseOut_","renderedHTML_","mapProjection_","getCoordinateFormat","handleMouseMove","updateHTML_","handleMouseOut","html","MAX_RATIO","MIN_RATIO","ControlledMap","OverviewMap","boundHandleRotationChanged_","handleRotationChanged_","viewExtent_","ovmapDiv_","ovmap_","ovmap","boxSizing","boxOverlay_","overlayBox","mousePosition","endMoving","oldView","unbindView_","handleMapPropertyChange_","bindView_","resetExtent_","updateBoxAfterOvmapIsRendered_","newView","validateExtent_","ovmapSize","ovextent","topLeftPixel","bottomRightPixel","boxWidth","boxHeight","ovmapWidth","ovmapHeight","recenter_","ovview","updateBox_","ovresolution","ovmapPostrenderKey_","getOverviewMap","UNITS_PROP","LEADING_DIGITS","DEFAULT_DPI","ScaleLine","bar","innerElement_","viewState_","minWidth_","minWidth","renderedWidth_","handleUnitsChanged_","setUnits","scaleBar_","scaleBarSteps_","scaleBarText_","dpi_","setDpi","pointResolutionUnits","nominalCount","suffix","metersPerDegree","decimalCount","createScaleBar","mapScale","getScaleForResolution","scaleSteps","stepWidth","backgroundColor","createMarker","createStepText","isLast","lengthString","Direction","ZoomSlider","currentResolution_","direction_","heightLimit_","widthLimit_","startX_","startY_","thumbSize_","sliderInitialized_","thumbElement","containerElement","handleDraggerStart_","handleDraggerDrag_","handleDraggerEnd_","handleContainerClick_","initSlider_","containerWidth","containerHeight","containerStyle","thumb","thumbStyle","thumbWidth","thumbHeight","relativePosition","getRelativePosition_","getResolutionForPosition_","drag","setThumbPosition_","getPositionForResolution_","ZoomToExtent","handleZoomToExtent","ol","unByKey","stableSort","compareFnc","asserts","centerconstraint","colorlike","createStringXY","toStringHDMS","css","dom","outerHeight","outerWidth","upAndDown","click","doubleClick","focus","penOnly","pointerEvt","platformModifierKeyOnly","pointerMove","touchOnly","createOrUpdateFromCoordinates","createOrUpdateFromRings","getEnlargedArea","getIntersectionArea","getMargin","featureloader","setWithCredentials","xhrWithCredentials","getDefaultFillStyle","getDefaultImageStyle","getDefaultStrokeStyle","getDefaultStyle","getDefaultStyleArray","getDefaultTextStyle","writeFilter","opt_version","between","disjoint","during","dwithin","equalTo","greaterThan","greaterThanOrEqualTo","isNull","lessThan","lessThanOrEqualTo","like","not","notEqualTo","or","resourceId","xlink","xsd","closest","deflate","flip","geodesic","greatCircleArc","geoProjection","cosLat1","sinLat1","cosLat2","sinLat2","cosDeltaLon","sinDeltaLon","D","cosD","sinD","inflate","interiorpoint","intersectsextent","linearRingLength","perimeter","orient","douglasPeuckerMultiArray","simplifyLineString","highQuality","opt_simplifiedFlatCoordinates","straightchunk","textpath","topology","lineStringIsClosed","lastCoord","createBox","opt_geometry","boxCoordinates","createRegularPolygon","Group","MapboxVector","VectorImage","WebGLPoints","loadingstrategy","math","net","clearAllProjections","clearUserProjection","epsg3857","epsg4326","fromLonLat","proj4","projCodes","defs","def","projName","to_meter","code1","proj1","code2","proj2","def1","def2","toLonLat","lonLat","transformWithProjections","useGeographic","Box","Immediate","defaultLineDashOffset","defaultLineWidth","hitdetect","rotateAtOffset","getRenderPixel","toContext","webgl","getBlankImageData","writePointFeatureToBuffers","elementIndex","bufferPositions","customAttrs","vPos","iPos","baseIndex","PointsLayer","reproj","common","ERROR_THRESHOLD","resolutionconstraint","rotationconstraint","ImageStatic","Raster","optionsFromCapabilities","wmtsCap","tileMatrixSets","supportedCRS","matrixSetObj","projConfig","matrix","TileMatrix","selectedMatrixLimit","MinTileCol","MinTileRow","MaxTileCol","MatrixWidth","MaxTileRow","MatrixHeight","tileMatrixValue","Identifier","ScaleDenominator","TopLeftCorner","tileSpanX","TileWidth","tileSpanY","TileHeight","matrixSetExtent","wgs84BoundingBox","wgs84ProjectionExtent","wgs84MatrixSetExtent","gets","encodings","sphere","structs","tilecoord","DEFAULT_MAX_ZOOM","createXYZ","tileurlfunction","composeCssTransform","invert","reset","abstract","vec","Helper","PostProcessingPass","RenderTarget","STREAM_DRAW","registerDocument","registerXMLSerializer","xmlSerializer"],"mappings":"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","file":"ol.js","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[\"ol\"] = factory();\n\telse\n\t\troot[\"ol\"] = factory();\n})(self, function() {\nreturn ","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var fontWeights = {\n thin: 100,\n hairline: 100,\n 'ultra-light': 100,\n 'extra-light': 100,\n light: 200,\n book: 300,\n regular: 400,\n normal: 400,\n plain: 400,\n roman: 400,\n standard: 400,\n medium: 500,\n 'semi-bold': 600,\n 'demi-bold': 600,\n bold: 700,\n heavy: 800,\n black: 800,\n 'extra-bold': 800,\n 'ultra-black': 900,\n 'extra-black': 900,\n 'ultra-bold': 900,\n 'heavy-black': 900,\n fat: 900,\n poster: 900\n};\nvar sp = ' ';\nvar italicRE = /(italic|oblique)$/i;\n\nvar fontCache = {};\n\nmodule.exports = function(fonts, size, lineHeight) {\n var cssData = fontCache[fonts];\n if (!cssData) {\n if (!Array.isArray(fonts)) {\n fonts = [fonts];\n }\n var weight = 400;\n var style = 'normal';\n var fontFamilies = [];\n var haveWeight, haveStyle;\n for (var i = 0, ii = fonts.length; i < ii; ++i) {\n var font = fonts[i];\n var parts = font.split(' ');\n var maybeWeight = parts[parts.length - 1].toLowerCase();\n if (maybeWeight == 'normal' || maybeWeight == 'italic' || maybeWeight == 'oblique') {\n style = haveStyle ? style : maybeWeight;\n parts.pop();\n maybeWeight = parts[parts.length - 1].toLowerCase();\n } else if (italicRE.test(maybeWeight)) {\n maybeWeight = maybeWeight.replace(italicRE, '');\n style = haveStyle ? style : parts[parts.length - 1].replace(maybeWeight, '');\n }\n for (var w in fontWeights) {\n if (maybeWeight == w || maybeWeight == w.replace('-', '') || maybeWeight == w.replace('-', sp)) {\n weight = haveWeight ? weight : fontWeights[w];\n parts.pop();\n break;\n }\n }\n if (!haveWeight && typeof maybeWeight == 'number') {\n weight = maybeWeight;\n }\n var fontFamily = parts.join(sp)\n .replace('Klokantech Noto Sans', 'Noto Sans');\n if (fontFamily.indexOf(sp) !== -1) {\n fontFamily = '\"' + fontFamily + '\"';\n }\n fontFamilies.push(fontFamily);\n }\n // CSS font property: font-style font-weight font-size/line-height font-family\n cssData = fontCache[fonts] = [style, weight, fontFamilies];\n }\n return cssData[0] + sp + cssData[1] + sp + size + 'px' + (lineHeight ? '/' + lineHeight : '') + sp + cssData[2];\n};\n","'use strict';\n\nmodule.exports = Pbf;\n\nvar ieee754 = require('ieee754');\n\nfunction Pbf(buf) {\n this.buf = ArrayBuffer.isView && ArrayBuffer.isView(buf) ? buf : new Uint8Array(buf || 0);\n this.pos = 0;\n this.type = 0;\n this.length = this.buf.length;\n}\n\nPbf.Varint = 0; // varint: int32, int64, uint32, uint64, sint32, sint64, bool, enum\nPbf.Fixed64 = 1; // 64-bit: double, fixed64, sfixed64\nPbf.Bytes = 2; // length-delimited: string, bytes, embedded messages, packed repeated fields\nPbf.Fixed32 = 5; // 32-bit: float, fixed32, sfixed32\n\nvar SHIFT_LEFT_32 = (1 << 16) * (1 << 16),\n SHIFT_RIGHT_32 = 1 / SHIFT_LEFT_32;\n\n// Threshold chosen based on both benchmarking and knowledge about browser string\n// data structures (which currently switch structure types at 12 bytes or more)\nvar TEXT_DECODER_MIN_LENGTH = 12;\nvar utf8TextDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf8');\n\nPbf.prototype = {\n\n destroy: function() {\n this.buf = null;\n },\n\n // === READING =================================================================\n\n readFields: function(readField, result, end) {\n end = end || this.length;\n\n while (this.pos < end) {\n var val = this.readVarint(),\n tag = val >> 3,\n startPos = this.pos;\n\n this.type = val & 0x7;\n readField(tag, result, this);\n\n if (this.pos === startPos) this.skip(val);\n }\n return result;\n },\n\n readMessage: function(readField, result) {\n return this.readFields(readField, result, this.readVarint() + this.pos);\n },\n\n readFixed32: function() {\n var val = readUInt32(this.buf, this.pos);\n this.pos += 4;\n return val;\n },\n\n readSFixed32: function() {\n var val = readInt32(this.buf, this.pos);\n this.pos += 4;\n return val;\n },\n\n // 64-bit int handling is based on github.com/dpw/node-buffer-more-ints (MIT-licensed)\n\n readFixed64: function() {\n var val = readUInt32(this.buf, this.pos) + readUInt32(this.buf, this.pos + 4) * SHIFT_LEFT_32;\n this.pos += 8;\n return val;\n },\n\n readSFixed64: function() {\n var val = readUInt32(this.buf, this.pos) + readInt32(this.buf, this.pos + 4) * SHIFT_LEFT_32;\n this.pos += 8;\n return val;\n },\n\n readFloat: function() {\n var val = ieee754.read(this.buf, this.pos, true, 23, 4);\n this.pos += 4;\n return val;\n },\n\n readDouble: function() {\n var val = ieee754.read(this.buf, this.pos, true, 52, 8);\n this.pos += 8;\n return val;\n },\n\n readVarint: function(isSigned) {\n var buf = this.buf,\n val, b;\n\n b = buf[this.pos++]; val = b & 0x7f; if (b < 0x80) return val;\n b = buf[this.pos++]; val |= (b & 0x7f) << 7; if (b < 0x80) return val;\n b = buf[this.pos++]; val |= (b & 0x7f) << 14; if (b < 0x80) return val;\n b = buf[this.pos++]; val |= (b & 0x7f) << 21; if (b < 0x80) return val;\n b = buf[this.pos]; val |= (b & 0x0f) << 28;\n\n return readVarintRemainder(val, isSigned, this);\n },\n\n readVarint64: function() { // for compatibility with v2.0.1\n return this.readVarint(true);\n },\n\n readSVarint: function() {\n var num = this.readVarint();\n return num % 2 === 1 ? (num + 1) / -2 : num / 2; // zigzag encoding\n },\n\n readBoolean: function() {\n return Boolean(this.readVarint());\n },\n\n readString: function() {\n var end = this.readVarint() + this.pos;\n var pos = this.pos;\n this.pos = end;\n\n if (end - pos >= TEXT_DECODER_MIN_LENGTH && utf8TextDecoder) {\n // longer strings are fast with the built-in browser TextDecoder API\n return readUtf8TextDecoder(this.buf, pos, end);\n }\n // short strings are fast with our custom implementation\n return readUtf8(this.buf, pos, end);\n },\n\n readBytes: function() {\n var end = this.readVarint() + this.pos,\n buffer = this.buf.subarray(this.pos, end);\n this.pos = end;\n return buffer;\n },\n\n // verbose for performance reasons; doesn't affect gzipped size\n\n readPackedVarint: function(arr, isSigned) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readVarint(isSigned));\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readVarint(isSigned));\n return arr;\n },\n readPackedSVarint: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readSVarint());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readSVarint());\n return arr;\n },\n readPackedBoolean: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readBoolean());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readBoolean());\n return arr;\n },\n readPackedFloat: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readFloat());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readFloat());\n return arr;\n },\n readPackedDouble: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readDouble());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readDouble());\n return arr;\n },\n readPackedFixed32: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readFixed32());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readFixed32());\n return arr;\n },\n readPackedSFixed32: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readSFixed32());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readSFixed32());\n return arr;\n },\n readPackedFixed64: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readFixed64());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readFixed64());\n return arr;\n },\n readPackedSFixed64: function(arr) {\n if (this.type !== Pbf.Bytes) return arr.push(this.readSFixed64());\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) arr.push(this.readSFixed64());\n return arr;\n },\n\n skip: function(val) {\n var type = val & 0x7;\n if (type === Pbf.Varint) while (this.buf[this.pos++] > 0x7f) {}\n else if (type === Pbf.Bytes) this.pos = this.readVarint() + this.pos;\n else if (type === Pbf.Fixed32) this.pos += 4;\n else if (type === Pbf.Fixed64) this.pos += 8;\n else throw new Error('Unimplemented type: ' + type);\n },\n\n // === WRITING =================================================================\n\n writeTag: function(tag, type) {\n this.writeVarint((tag << 3) | type);\n },\n\n realloc: function(min) {\n var length = this.length || 16;\n\n while (length < this.pos + min) length *= 2;\n\n if (length !== this.length) {\n var buf = new Uint8Array(length);\n buf.set(this.buf);\n this.buf = buf;\n this.length = length;\n }\n },\n\n finish: function() {\n this.length = this.pos;\n this.pos = 0;\n return this.buf.subarray(0, this.length);\n },\n\n writeFixed32: function(val) {\n this.realloc(4);\n writeInt32(this.buf, val, this.pos);\n this.pos += 4;\n },\n\n writeSFixed32: function(val) {\n this.realloc(4);\n writeInt32(this.buf, val, this.pos);\n this.pos += 4;\n },\n\n writeFixed64: function(val) {\n this.realloc(8);\n writeInt32(this.buf, val & -1, this.pos);\n writeInt32(this.buf, Math.floor(val * SHIFT_RIGHT_32), this.pos + 4);\n this.pos += 8;\n },\n\n writeSFixed64: function(val) {\n this.realloc(8);\n writeInt32(this.buf, val & -1, this.pos);\n writeInt32(this.buf, Math.floor(val * SHIFT_RIGHT_32), this.pos + 4);\n this.pos += 8;\n },\n\n writeVarint: function(val) {\n val = +val || 0;\n\n if (val > 0xfffffff || val < 0) {\n writeBigVarint(val, this);\n return;\n }\n\n this.realloc(4);\n\n this.buf[this.pos++] = val & 0x7f | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n this.buf[this.pos++] = ((val >>>= 7) & 0x7f) | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n this.buf[this.pos++] = ((val >>>= 7) & 0x7f) | (val > 0x7f ? 0x80 : 0); if (val <= 0x7f) return;\n this.buf[this.pos++] = (val >>> 7) & 0x7f;\n },\n\n writeSVarint: function(val) {\n this.writeVarint(val < 0 ? -val * 2 - 1 : val * 2);\n },\n\n writeBoolean: function(val) {\n this.writeVarint(Boolean(val));\n },\n\n writeString: function(str) {\n str = String(str);\n this.realloc(str.length * 4);\n\n this.pos++; // reserve 1 byte for short string length\n\n var startPos = this.pos;\n // write the string directly to the buffer and see how much was written\n this.pos = writeUtf8(this.buf, str, this.pos);\n var len = this.pos - startPos;\n\n if (len >= 0x80) makeRoomForExtraLength(startPos, len, this);\n\n // finally, write the message length in the reserved place and restore the position\n this.pos = startPos - 1;\n this.writeVarint(len);\n this.pos += len;\n },\n\n writeFloat: function(val) {\n this.realloc(4);\n ieee754.write(this.buf, val, this.pos, true, 23, 4);\n this.pos += 4;\n },\n\n writeDouble: function(val) {\n this.realloc(8);\n ieee754.write(this.buf, val, this.pos, true, 52, 8);\n this.pos += 8;\n },\n\n writeBytes: function(buffer) {\n var len = buffer.length;\n this.writeVarint(len);\n this.realloc(len);\n for (var i = 0; i < len; i++) this.buf[this.pos++] = buffer[i];\n },\n\n writeRawMessage: function(fn, obj) {\n this.pos++; // reserve 1 byte for short message length\n\n // write the message directly to the buffer and see how much was written\n var startPos = this.pos;\n fn(obj, this);\n var len = this.pos - startPos;\n\n if (len >= 0x80) makeRoomForExtraLength(startPos, len, this);\n\n // finally, write the message length in the reserved place and restore the position\n this.pos = startPos - 1;\n this.writeVarint(len);\n this.pos += len;\n },\n\n writeMessage: function(tag, fn, obj) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeRawMessage(fn, obj);\n },\n\n writePackedVarint: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedVarint, arr); },\n writePackedSVarint: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedSVarint, arr); },\n writePackedBoolean: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedBoolean, arr); },\n writePackedFloat: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedFloat, arr); },\n writePackedDouble: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedDouble, arr); },\n writePackedFixed32: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedFixed32, arr); },\n writePackedSFixed32: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedSFixed32, arr); },\n writePackedFixed64: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedFixed64, arr); },\n writePackedSFixed64: function(tag, arr) { if (arr.length) this.writeMessage(tag, writePackedSFixed64, arr); },\n\n writeBytesField: function(tag, buffer) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeBytes(buffer);\n },\n writeFixed32Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeFixed32(val);\n },\n writeSFixed32Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeSFixed32(val);\n },\n writeFixed64Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeFixed64(val);\n },\n writeSFixed64Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeSFixed64(val);\n },\n writeVarintField: function(tag, val) {\n this.writeTag(tag, Pbf.Varint);\n this.writeVarint(val);\n },\n writeSVarintField: function(tag, val) {\n this.writeTag(tag, Pbf.Varint);\n this.writeSVarint(val);\n },\n writeStringField: function(tag, str) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeString(str);\n },\n writeFloatField: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeFloat(val);\n },\n writeDoubleField: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeDouble(val);\n },\n writeBooleanField: function(tag, val) {\n this.writeVarintField(tag, Boolean(val));\n }\n};\n\nfunction readVarintRemainder(l, s, p) {\n var buf = p.buf,\n h, b;\n\n b = buf[p.pos++]; h = (b & 0x70) >> 4; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 3; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 10; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 17; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x7f) << 24; if (b < 0x80) return toNum(l, h, s);\n b = buf[p.pos++]; h |= (b & 0x01) << 31; if (b < 0x80) return toNum(l, h, s);\n\n throw new Error('Expected varint not more than 10 bytes');\n}\n\nfunction readPackedEnd(pbf) {\n return pbf.type === Pbf.Bytes ?\n pbf.readVarint() + pbf.pos : pbf.pos + 1;\n}\n\nfunction toNum(low, high, isSigned) {\n if (isSigned) {\n return high * 0x100000000 + (low >>> 0);\n }\n\n return ((high >>> 0) * 0x100000000) + (low >>> 0);\n}\n\nfunction writeBigVarint(val, pbf) {\n var low, high;\n\n if (val >= 0) {\n low = (val % 0x100000000) | 0;\n high = (val / 0x100000000) | 0;\n } else {\n low = ~(-val % 0x100000000);\n high = ~(-val / 0x100000000);\n\n if (low ^ 0xffffffff) {\n low = (low + 1) | 0;\n } else {\n low = 0;\n high = (high + 1) | 0;\n }\n }\n\n if (val >= 0x10000000000000000 || val < -0x10000000000000000) {\n throw new Error('Given varint doesn\\'t fit into 10 bytes');\n }\n\n pbf.realloc(10);\n\n writeBigVarintLow(low, high, pbf);\n writeBigVarintHigh(high, pbf);\n}\n\nfunction writeBigVarintLow(low, high, pbf) {\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos++] = low & 0x7f | 0x80; low >>>= 7;\n pbf.buf[pbf.pos] = low & 0x7f;\n}\n\nfunction writeBigVarintHigh(high, pbf) {\n var lsb = (high & 0x07) << 4;\n\n pbf.buf[pbf.pos++] |= lsb | ((high >>>= 3) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f | ((high >>>= 7) ? 0x80 : 0); if (!high) return;\n pbf.buf[pbf.pos++] = high & 0x7f;\n}\n\nfunction makeRoomForExtraLength(startPos, len, pbf) {\n var extraLen =\n len <= 0x3fff ? 1 :\n len <= 0x1fffff ? 2 :\n len <= 0xfffffff ? 3 : Math.floor(Math.log(len) / (Math.LN2 * 7));\n\n // if 1 byte isn't enough for encoding message length, shift the data to the right\n pbf.realloc(extraLen);\n for (var i = pbf.pos - 1; i >= startPos; i--) pbf.buf[i + extraLen] = pbf.buf[i];\n}\n\nfunction writePackedVarint(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeVarint(arr[i]); }\nfunction writePackedSVarint(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeSVarint(arr[i]); }\nfunction writePackedFloat(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeFloat(arr[i]); }\nfunction writePackedDouble(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeDouble(arr[i]); }\nfunction writePackedBoolean(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeBoolean(arr[i]); }\nfunction writePackedFixed32(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeFixed32(arr[i]); }\nfunction writePackedSFixed32(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeSFixed32(arr[i]); }\nfunction writePackedFixed64(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeFixed64(arr[i]); }\nfunction writePackedSFixed64(arr, pbf) { for (var i = 0; i < arr.length; i++) pbf.writeSFixed64(arr[i]); }\n\n// Buffer code below from https://github.com/feross/buffer, MIT-licensed\n\nfunction readUInt32(buf, pos) {\n return ((buf[pos]) |\n (buf[pos + 1] << 8) |\n (buf[pos + 2] << 16)) +\n (buf[pos + 3] * 0x1000000);\n}\n\nfunction writeInt32(buf, val, pos) {\n buf[pos] = val;\n buf[pos + 1] = (val >>> 8);\n buf[pos + 2] = (val >>> 16);\n buf[pos + 3] = (val >>> 24);\n}\n\nfunction readInt32(buf, pos) {\n return ((buf[pos]) |\n (buf[pos + 1] << 8) |\n (buf[pos + 2] << 16)) +\n (buf[pos + 3] << 24);\n}\n\nfunction readUtf8(buf, pos, end) {\n var str = '';\n var i = pos;\n\n while (i < end) {\n var b0 = buf[i];\n var c = null; // codepoint\n var bytesPerSequence =\n b0 > 0xEF ? 4 :\n b0 > 0xDF ? 3 :\n b0 > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence > end) break;\n\n var b1, b2, b3;\n\n if (bytesPerSequence === 1) {\n if (b0 < 0x80) {\n c = b0;\n }\n } else if (bytesPerSequence === 2) {\n b1 = buf[i + 1];\n if ((b1 & 0xC0) === 0x80) {\n c = (b0 & 0x1F) << 0x6 | (b1 & 0x3F);\n if (c <= 0x7F) {\n c = null;\n }\n }\n } else if (bytesPerSequence === 3) {\n b1 = buf[i + 1];\n b2 = buf[i + 2];\n if ((b1 & 0xC0) === 0x80 && (b2 & 0xC0) === 0x80) {\n c = (b0 & 0xF) << 0xC | (b1 & 0x3F) << 0x6 | (b2 & 0x3F);\n if (c <= 0x7FF || (c >= 0xD800 && c <= 0xDFFF)) {\n c = null;\n }\n }\n } else if (bytesPerSequence === 4) {\n b1 = buf[i + 1];\n b2 = buf[i + 2];\n b3 = buf[i + 3];\n if ((b1 & 0xC0) === 0x80 && (b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n c = (b0 & 0xF) << 0x12 | (b1 & 0x3F) << 0xC | (b2 & 0x3F) << 0x6 | (b3 & 0x3F);\n if (c <= 0xFFFF || c >= 0x110000) {\n c = null;\n }\n }\n }\n\n if (c === null) {\n c = 0xFFFD;\n bytesPerSequence = 1;\n\n } else if (c > 0xFFFF) {\n c -= 0x10000;\n str += String.fromCharCode(c >>> 10 & 0x3FF | 0xD800);\n c = 0xDC00 | c & 0x3FF;\n }\n\n str += String.fromCharCode(c);\n i += bytesPerSequence;\n }\n\n return str;\n}\n\nfunction readUtf8TextDecoder(buf, pos, end) {\n return utf8TextDecoder.decode(buf.subarray(pos, end));\n}\n\nfunction writeUtf8(buf, str, pos) {\n for (var i = 0, c, lead; i < str.length; i++) {\n c = str.charCodeAt(i); // code point\n\n if (c > 0xD7FF && c < 0xE000) {\n if (lead) {\n if (c < 0xDC00) {\n buf[pos++] = 0xEF;\n buf[pos++] = 0xBF;\n buf[pos++] = 0xBD;\n lead = c;\n continue;\n } else {\n c = lead - 0xD800 << 10 | c - 0xDC00 | 0x10000;\n lead = null;\n }\n } else {\n if (c > 0xDBFF || (i + 1 === str.length)) {\n buf[pos++] = 0xEF;\n buf[pos++] = 0xBF;\n buf[pos++] = 0xBD;\n } else {\n lead = c;\n }\n continue;\n }\n } else if (lead) {\n buf[pos++] = 0xEF;\n buf[pos++] = 0xBF;\n buf[pos++] = 0xBD;\n lead = null;\n }\n\n if (c < 0x80) {\n buf[pos++] = c;\n } else {\n if (c < 0x800) {\n buf[pos++] = c >> 0x6 | 0xC0;\n } else {\n if (c < 0x10000) {\n buf[pos++] = c >> 0xC | 0xE0;\n } else {\n buf[pos++] = c >> 0x12 | 0xF0;\n buf[pos++] = c >> 0xC & 0x3F | 0x80;\n }\n buf[pos++] = c >> 0x6 & 0x3F | 0x80;\n }\n buf[pos++] = c & 0x3F | 0x80;\n }\n }\n return pos;\n}\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","// Generated by CoffeeScript 1.10.0\n(function() {\n var families;\n\n module.exports = {\n icon: 'icons/google.svg',\n name: 'google',\n title: 'Google Fonts',\n link: 'google.com/fonts',\n getNames: function() {\n return families;\n },\n getLink: function(name) {\n return \"https://fonts.google.com/specimen/\" + (name.replace(/( )/g, '+'));\n },\n normalizeName: function(name) {\n return name;\n }\n };\n\n families = [\"ABeeZee\", \"Abel\", \"Abril Fatface\", \"Aclonica\", \"Acme\", \"Actor\", \"Adamina\", \"Advent Pro\", \"Aguafina Script\", \"Akronim\", \"Aladin\", \"Aldrich\", \"Alef\", \"Alegreya\", \"Alegreya SC\", \"Alegreya Sans\", \"Alegreya Sans SC\", \"Alex Brush\", \"Alfa Slab One\", \"Alice\", \"Alike\", \"Alike Angular\", \"Allan\", \"Allerta\", \"Allerta Stencil\", \"Allura\", \"Almendra\", \"Almendra Display\", \"Almendra SC\", \"Amarante\", \"Amaranth\", \"Amatic SC\", \"Amethysta\", \"Amiri\", \"Amita\", \"Anaheim\", \"Andada\", \"Andika\", \"Angkor\", \"Annie Use Your Telescope\", \"Anonymous Pro\", \"Antic\", \"Antic Didone\", \"Antic Slab\", \"Anton\", \"Arapey\", \"Arbutus\", \"Arbutus Slab\", \"Architects Daughter\", \"Archivo Black\", \"Archivo Narrow\", \"Arimo\", \"Arizonia\", \"Armata\", \"Artifika\", \"Arvo\", \"Arya\", \"Asap\", \"Asar\", \"Asset\", \"Astloch\", \"Asul\", \"Atomic Age\", \"Aubrey\", \"Audiowide\", \"Autour One\", \"Average\", \"Average Sans\", \"Averia Gruesa Libre\", \"Averia Libre\", \"Averia Sans Libre\", \"Averia Serif Libre\", \"Bad Script\", \"Balthazar\", \"Bangers\", \"Basic\", \"Battambang\", \"Baumans\", \"Bayon\", \"Belgrano\", \"Belleza\", \"BenchNine\", \"Bentham\", \"Berkshire Swash\", \"Bevan\", \"Bigelow Rules\", \"Bigshot One\", \"Bilbo\", \"Bilbo Swash Caps\", \"Biryani\", \"Bitter\", \"Black Ops One\", \"Bokor\", \"Bonbon\", \"Boogaloo\", \"Bowlby One\", \"Bowlby One SC\", \"Brawler\", \"Bree Serif\", \"Bubblegum Sans\", \"Bubbler One\", \"Buda\", \"Buenard\", \"Butcherman\", \"Butterfly Kids\", \"Cabin\", \"Cabin Condensed\", \"Cabin Sketch\", \"Caesar Dressing\", \"Cagliostro\", \"Calligraffitti\", \"Cambay\", \"Cambo\", \"Candal\", \"Cantarell\", \"Cantata One\", \"Cantora One\", \"Capriola\", \"Cardo\", \"Carme\", \"Carrois Gothic\", \"Carrois Gothic SC\", \"Carter One\", \"Catamaran\", \"Caudex\", \"Caveat\", \"Caveat Brush\", \"Cedarville Cursive\", \"Ceviche One\", \"Changa One\", \"Chango\", \"Chau Philomene One\", \"Chela One\", \"Chelsea Market\", \"Chenla\", \"Cherry Cream Soda\", \"Cherry Swash\", \"Chewy\", \"Chicle\", \"Chivo\", \"Chonburi\", \"Cinzel\", \"Cinzel Decorative\", \"Clicker Script\", \"Coda\", \"Coda Caption\", \"Codystar\", \"Combo\", \"Comfortaa\", \"Coming Soon\", \"Concert One\", \"Condiment\", \"Content\", \"Contrail One\", \"Convergence\", \"Cookie\", \"Copse\", \"Corben\", \"Courgette\", \"Cousine\", \"Coustard\", \"Covered By Your Grace\", \"Crafty Girls\", \"Creepster\", \"Crete Round\", \"Crimson Text\", \"Croissant One\", \"Crushed\", \"Cuprum\", \"Cutive\", \"Cutive Mono\", \"Damion\", \"Dancing Script\", \"Dangrek\", \"Dawning of a New Day\", \"Days One\", \"Dekko\", \"Delius\", \"Delius Swash Caps\", \"Delius Unicase\", \"Della Respira\", \"Denk One\", \"Devonshire\", \"Dhurjati\", \"Didact Gothic\", \"Diplomata\", \"Diplomata SC\", \"Domine\", \"Donegal One\", \"Doppio One\", \"Dorsa\", \"Dosis\", \"Dr Sugiyama\", \"Droid Sans\", \"Droid Sans Mono\", \"Droid Serif\", \"Duru Sans\", \"Dynalight\", \"EB Garamond\", \"Eagle Lake\", \"Eater\", \"Economica\", \"Eczar\", \"Ek Mukta\", \"Electrolize\", \"Elsie\", \"Elsie Swash Caps\", \"Emblema One\", \"Emilys Candy\", \"Engagement\", \"Englebert\", \"Enriqueta\", \"Erica One\", \"Esteban\", \"Euphoria Script\", \"Ewert\", \"Exo\", \"Exo 2\", \"Expletus Sans\", \"Fanwood Text\", \"Fascinate\", \"Fascinate Inline\", \"Faster One\", \"Fasthand\", \"Fauna One\", \"Federant\", \"Federo\", \"Felipa\", \"Fenix\", \"Finger Paint\", \"Fira Mono\", \"Fira Sans\", \"Fjalla One\", \"Fjord One\", \"Flamenco\", \"Flavors\", \"Fondamento\", \"Fontdiner Swanky\", \"Forum\", \"Francois One\", \"Freckle Face\", \"Fredericka the Great\", \"Fredoka One\", \"Freehand\", \"Fresca\", \"Frijole\", \"Fruktur\", \"Fugaz One\", \"GFS Didot\", \"GFS Neohellenic\", \"Gabriela\", \"Gafata\", \"Galdeano\", \"Galindo\", \"Gentium Basic\", \"Gentium Book Basic\", \"Geo\", \"Geostar\", \"Geostar Fill\", \"Germania One\", \"Gidugu\", \"Gilda Display\", \"Give You Glory\", \"Glass Antiqua\", \"Glegoo\", \"Gloria Hallelujah\", \"Goblin One\", \"Gochi Hand\", \"Gorditas\", \"Goudy Bookletter 1911\", \"Graduate\", \"Grand Hotel\", \"Gravitas One\", \"Great Vibes\", \"Griffy\", \"Gruppo\", \"Gudea\", \"Gurajada\", \"Habibi\", \"Halant\", \"Hammersmith One\", \"Hanalei\", \"Hanalei Fill\", \"Handlee\", \"Hanuman\", \"Happy Monkey\", \"Headland One\", \"Henny Penny\", \"Herr Von Muellerhoff\", \"Hind\", \"Hind Siliguri\", \"Hind Vadodara\", \"Holtwood One SC\", \"Homemade Apple\", \"Homenaje\", \"IM Fell DW Pica\", \"IM Fell DW Pica SC\", \"IM Fell Double Pica\", \"IM Fell Double Pica SC\", \"IM Fell English\", \"IM Fell English SC\", \"IM Fell French Canon\", \"IM Fell French Canon SC\", \"IM Fell Great Primer\", \"IM Fell Great Primer SC\", \"Iceberg\", \"Iceland\", \"Imprima\", \"Inconsolata\", \"Inder\", \"Indie Flower\", \"Inika\", \"Inknut Antiqua\", \"Irish Grover\", \"Istok Web\", \"Italiana\", \"Italianno\", \"Itim\", \"Jacques Francois\", \"Jacques Francois Shadow\", \"Jaldi\", \"Jim Nightshade\", \"Jockey One\", \"Jolly Lodger\", \"Josefin Sans\", \"Josefin Slab\", \"Joti One\", \"Judson\", \"Julee\", \"Julius Sans One\", \"Junge\", \"Jura\", \"Just Another Hand\", \"Just Me Again Down Here\", \"Kadwa\", \"Kalam\", \"Kameron\", \"Kantumruy\", \"Karla\", \"Karma\", \"Kaushan Script\", \"Kavoon\", \"Kdam Thmor\", \"Keania One\", \"Kelly Slab\", \"Kenia\", \"Khand\", \"Khmer\", \"Khula\", \"Kite One\", \"Knewave\", \"Kotta One\", \"Koulen\", \"Kranky\", \"Kreon\", \"Kristi\", \"Krona One\", \"Kurale\", \"La Belle Aurore\", \"Laila\", \"Lakki Reddy\", \"Lancelot\", \"Lateef\", \"Lato\", \"League Script\", \"Leckerli One\", \"Ledger\", \"Lekton\", \"Lemon\", \"Libre Baskerville\", \"Life Savers\", \"Lilita One\", \"Lily Script One\", \"Limelight\", \"Linden Hill\", \"Lobster\", \"Lobster Two\", \"Londrina Outline\", \"Londrina Shadow\", \"Londrina Sketch\", \"Londrina Solid\", \"Lora\", \"Love Ya Like A Sister\", \"Loved by the King\", \"Lovers Quarrel\", \"Luckiest Guy\", \"Lusitana\", \"Lustria\", \"Macondo\", \"Macondo Swash Caps\", \"Magra\", \"Maiden Orange\", \"Mako\", \"Mallanna\", \"Mandali\", \"Marcellus\", \"Marcellus SC\", \"Marck Script\", \"Margarine\", \"Marko One\", \"Marmelad\", \"Martel\", \"Martel Sans\", \"Marvel\", \"Mate\", \"Mate SC\", \"Maven Pro\", \"McLaren\", \"Meddon\", \"MedievalSharp\", \"Medula One\", \"Megrim\", \"Meie Script\", \"Merienda\", \"Merienda One\", \"Merriweather\", \"Merriweather Sans\", \"Metal\", \"Metal Mania\", \"Metamorphous\", \"Metrophobic\", \"Michroma\", \"Milonga\", \"Miltonian\", \"Miltonian Tattoo\", \"Miniver\", \"Miss Fajardose\", \"Modak\", \"Modern Antiqua\", \"Molengo\", \"Molle\", \"Monda\", \"Monofett\", \"Monoton\", \"Monsieur La Doulaise\", \"Montaga\", \"Montez\", \"Montserrat\", \"Montserrat Alternates\", \"Montserrat Subrayada\", \"Moul\", \"Moulpali\", \"Mountains of Christmas\", \"Mouse Memoirs\", \"Mr Bedfort\", \"Mr Dafoe\", \"Mr De Haviland\", \"Mrs Saint Delafield\", \"Mrs Sheppards\", \"Muli\", \"Mystery Quest\", \"NTR\", \"Neucha\", \"Neuton\", \"New Rocker\", \"News Cycle\", \"Niconne\", \"Nixie One\", \"Nobile\", \"Nokora\", \"Norican\", \"Nosifer\", \"Nothing You Could Do\", \"Noticia Text\", \"Noto Sans\", \"Noto Serif\", \"Nova Cut\", \"Nova Flat\", \"Nova Mono\", \"Nova Oval\", \"Nova Round\", \"Nova Script\", \"Nova Slim\", \"Nova Square\", \"Numans\", \"Nunito\", \"Odor Mean Chey\", \"Offside\", \"Old Standard TT\", \"Oldenburg\", \"Oleo Script\", \"Oleo Script Swash Caps\", \"Open Sans\", \"Open Sans Condensed\", \"Oranienbaum\", \"Orbitron\", \"Oregano\", \"Orienta\", \"Original Surfer\", \"Oswald\", \"Over the Rainbow\", \"Overlock\", \"Overlock SC\", \"Ovo\", \"Oxygen\", \"Oxygen Mono\", \"PT Mono\", \"PT Sans\", \"PT Sans Caption\", \"PT Sans Narrow\", \"PT Serif\", \"PT Serif Caption\", \"Pacifico\", \"Palanquin\", \"Palanquin Dark\", \"Paprika\", \"Parisienne\", \"Passero One\", \"Passion One\", \"Pathway Gothic One\", \"Patrick Hand\", \"Patrick Hand SC\", \"Patua One\", \"Paytone One\", \"Peddana\", \"Peralta\", \"Permanent Marker\", \"Petit Formal Script\", \"Petrona\", \"Philosopher\", \"Piedra\", \"Pinyon Script\", \"Pirata One\", \"Plaster\", \"Play\", \"Playball\", \"Playfair Display\", \"Playfair Display SC\", \"Podkova\", \"Poiret One\", \"Poller One\", \"Poly\", \"Pompiere\", \"Pontano Sans\", \"Poppins\", \"Port Lligat Sans\", \"Port Lligat Slab\", \"Pragati Narrow\", \"Prata\", \"Preahvihear\", \"Press Start 2P\", \"Princess Sofia\", \"Prociono\", \"Prosto One\", \"Puritan\", \"Purple Purse\", \"Quando\", \"Quantico\", \"Quattrocento\", \"Quattrocento Sans\", \"Questrial\", \"Quicksand\", \"Quintessential\", \"Qwigley\", \"Racing Sans One\", \"Radley\", \"Rajdhani\", \"Raleway\", \"Raleway Dots\", \"Ramabhadra\", \"Ramaraja\", \"Rambla\", \"Rammetto One\", \"Ranchers\", \"Rancho\", \"Ranga\", \"Rationale\", \"Ravi Prakash\", \"Redressed\", \"Reenie Beanie\", \"Revalia\", \"Rhodium Libre\", \"Ribeye\", \"Ribeye Marrow\", \"Righteous\", \"Risque\", \"Roboto\", \"Roboto Condensed\", \"Roboto Mono\", \"Roboto Slab\", \"Rochester\", \"Rock Salt\", \"Rokkitt\", \"Romanesco\", \"Ropa Sans\", \"Rosario\", \"Rosarivo\", \"Rouge Script\", \"Rozha One\", \"Rubik\", \"Rubik Mono One\", \"Rubik One\", \"Ruda\", \"Rufina\", \"Ruge Boogie\", \"Ruluko\", \"Rum Raisin\", \"Ruslan Display\", \"Russo One\", \"Ruthie\", \"Rye\", \"Sacramento\", \"Sahitya\", \"Sail\", \"Salsa\", \"Sanchez\", \"Sancreek\", \"Sansita One\", \"Sarala\", \"Sarina\", \"Sarpanch\", \"Satisfy\", \"Scada\", \"Scheherazade\", \"Schoolbell\", \"Seaweed Script\", \"Sevillana\", \"Seymour One\", \"Shadows Into Light\", \"Shadows Into Light Two\", \"Shanti\", \"Share\", \"Share Tech\", \"Share Tech Mono\", \"Shojumaru\", \"Short Stack\", \"Siemreap\", \"Sigmar One\", \"Signika\", \"Signika Negative\", \"Simonetta\", \"Sintony\", \"Sirin Stencil\", \"Six Caps\", \"Skranji\", \"Slabo 13px\", \"Slabo 27px\", \"Slackey\", \"Smokum\", \"Smythe\", \"Sniglet\", \"Snippet\", \"Snowburst One\", \"Sofadi One\", \"Sofia\", \"Sonsie One\", \"Sorts Mill Goudy\", \"Source Code Pro\", \"Source Sans Pro\", \"Source Serif Pro\", \"Special Elite\", \"Spicy Rice\", \"Spinnaker\", \"Spirax\", \"Squada One\", \"Sree Krushnadevaraya\", \"Stalemate\", \"Stalinist One\", \"Stardos Stencil\", \"Stint Ultra Condensed\", \"Stint Ultra Expanded\", \"Stoke\", \"Strait\", \"Sue Ellen Francisco\", \"Sumana\", \"Sunshiney\", \"Supermercado One\", \"Sura\", \"Suranna\", \"Suravaram\", \"Suwannaphum\", \"Swanky and Moo Moo\", \"Syncopate\", \"Tangerine\", \"Taprom\", \"Tauri\", \"Teko\", \"Telex\", \"Tenali Ramakrishna\", \"Tenor Sans\", \"Text Me One\", \"The Girl Next Door\", \"Tienne\", \"Tillana\", \"Timmana\", \"Tinos\", \"Titan One\", \"Titillium Web\", \"Trade Winds\", \"Trocchi\", \"Trochut\", \"Trykker\", \"Tulpen One\", \"Ubuntu\", \"Ubuntu Condensed\", \"Ubuntu Mono\", \"Ultra\", \"Uncial Antiqua\", \"Underdog\", \"Unica One\", \"UnifrakturCook\", \"UnifrakturMaguntia\", \"Unkempt\", \"Unlock\", \"Unna\", \"VT323\", \"Vampiro One\", \"Varela\", \"Varela Round\", \"Vast Shadow\", \"Vesper Libre\", \"Vibur\", \"Vidaloka\", \"Viga\", \"Voces\", \"Volkhov\", \"Vollkorn\", \"Voltaire\", \"Waiting for the Sunrise\", \"Wallpoet\", \"Walter Turncoat\", \"Warnes\", \"Wellfleet\", \"Wendy One\", \"Wire One\", \"Work Sans\", \"Yanone Kaffeesatz\", \"Yantramanav\", \"Yellowtail\", \"Yeseva One\", \"Yesteryear\", \"Zeyada\"];\n\n}).call(this);\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","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","/**\n * @module ol/util\n */\n/**\n * @return {?} Any return.\n */\nexport function abstract() {\n return /** @type {?} */ ((function () {\n throw new Error('Unimplemented abstract method.');\n })());\n}\n/**\n * Counter for getUid.\n * @type {number}\n * @private\n */\nvar uidCounter_ = 0;\n/**\n * Gets a unique ID for an object. This mutates the object so that further calls\n * with the same object as a parameter returns the same value. Unique IDs are generated\n * as a strictly increasing sequence. Adapted from goog.getUid.\n *\n * @param {Object} obj The object to get the unique ID for.\n * @return {string} The unique ID for the object.\n * @api\n */\nexport function getUid(obj) {\n return obj.ol_uid || (obj.ol_uid = String(++uidCounter_));\n}\n/**\n * OpenLayers version.\n * @type {string}\n */\nexport var VERSION = '6.6.0';\n//# sourceMappingURL=util.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/AssertionError\n */\nimport { VERSION } from './util.js';\n/**\n * Error object thrown when an assertion failed. This is an ECMA-262 Error,\n * extended with a `code` property.\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error.\n */\nvar AssertionError = /** @class */ (function (_super) {\n __extends(AssertionError, _super);\n /**\n * @param {number} code Error code.\n */\n function AssertionError(code) {\n var _this = this;\n var path = VERSION === 'latest' ? VERSION : 'v' + VERSION.split('-')[0];\n var message = 'Assertion failed. See https://openlayers.org/en/' +\n path +\n '/doc/errors/#' +\n code +\n ' for details.';\n _this = _super.call(this, message) || this;\n /**\n * Error code. The meaning of the code can be found on\n * https://openlayers.org/en/latest/doc/errors/ (replace `latest` with\n * the version found in the OpenLayers script's header comment if a version\n * other than the latest is used).\n * @type {number}\n * @api\n */\n _this.code = code;\n /**\n * @type {string}\n */\n _this.name = 'AssertionError';\n // Re-assign message, see https://github.com/Rich-Harris/buble/issues/40\n _this.message = message;\n return _this;\n }\n return AssertionError;\n}(Error));\nexport default AssertionError;\n//# sourceMappingURL=AssertionError.js.map","/**\n * @module ol/events/Event\n */\n/**\n * @classdesc\n * Stripped down implementation of the W3C DOM Level 2 Event interface.\n * See https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-interface.\n *\n * This implementation only provides `type` and `target` properties, and\n * `stopPropagation` and `preventDefault` methods. It is meant as base class\n * for higher level events defined in the library, and works with\n * {@link module:ol/events/Target~Target}.\n */\nvar BaseEvent = /** @class */ (function () {\n /**\n * @param {string} type Type.\n */\n function BaseEvent(type) {\n /**\n * @type {boolean}\n */\n this.propagationStopped;\n /**\n * @type {boolean}\n */\n this.defaultPrevented;\n /**\n * The event type.\n * @type {string}\n * @api\n */\n this.type = type;\n /**\n * The event target.\n * @type {Object}\n * @api\n */\n this.target = null;\n }\n /**\n * Prevent default. This means that no emulated `click`, `singleclick` or `doubleclick` events\n * will be fired.\n * @api\n */\n BaseEvent.prototype.preventDefault = function () {\n this.defaultPrevented = true;\n };\n /**\n * Stop event propagation.\n * @api\n */\n BaseEvent.prototype.stopPropagation = function () {\n this.propagationStopped = true;\n };\n return BaseEvent;\n}());\n/**\n * @param {Event|import(\"./Event.js\").default} evt Event\n */\nexport function stopPropagation(evt) {\n evt.stopPropagation();\n}\n/**\n * @param {Event|import(\"./Event.js\").default} evt Event\n */\nexport function preventDefault(evt) {\n evt.preventDefault();\n}\nexport default BaseEvent;\n//# sourceMappingURL=Event.js.map","/**\n * @module ol/ObjectEventType\n */\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered when a property is changed.\n * @event module:ol/Object.ObjectEvent#propertychange\n * @api\n */\n PROPERTYCHANGE: 'propertychange',\n};\n/**\n * @typedef {'propertychange'} Types\n */\n//# sourceMappingURL=ObjectEventType.js.map","/**\n * @module ol/Disposable\n */\n/**\n * @classdesc\n * Objects that need to clean up after themselves.\n */\nvar Disposable = /** @class */ (function () {\n function Disposable() {\n /**\n * The object has already been disposed.\n * @type {boolean}\n * @protected\n */\n this.disposed = false;\n }\n /**\n * Clean up.\n */\n Disposable.prototype.dispose = function () {\n if (!this.disposed) {\n this.disposed = true;\n this.disposeInternal();\n }\n };\n /**\n * Extension point for disposable objects.\n * @protected\n */\n Disposable.prototype.disposeInternal = function () { };\n return Disposable;\n}());\nexport default Disposable;\n//# sourceMappingURL=Disposable.js.map","/**\n * @module ol/array\n */\n/**\n * Performs a binary search on the provided sorted list and returns the index of the item if found. If it can't be found it'll return -1.\n * https://github.com/darkskyapp/binary-search\n *\n * @param {Array<*>} haystack Items to search through.\n * @param {*} needle The item to look for.\n * @param {Function} [opt_comparator] Comparator function.\n * @return {number} The index of the item if found, -1 if not.\n */\nexport function binarySearch(haystack, needle, opt_comparator) {\n var mid, cmp;\n var comparator = opt_comparator || numberSafeCompareFunction;\n var low = 0;\n var high = haystack.length;\n var found = false;\n while (low < high) {\n /* Note that \"(low + high) >>> 1\" may overflow, and results in a typecast\n * to double (which gives the wrong results). */\n mid = low + ((high - low) >> 1);\n cmp = +comparator(haystack[mid], needle);\n if (cmp < 0.0) {\n /* Too low. */\n low = mid + 1;\n }\n else {\n /* Key found or too high */\n high = mid;\n found = !cmp;\n }\n }\n /* Key not found. */\n return found ? low : ~low;\n}\n/**\n * Compare function for array sort that is safe for numbers.\n * @param {*} a The first object to be compared.\n * @param {*} b The second object to be compared.\n * @return {number} A negative number, zero, or a positive number as the first\n * argument is less than, equal to, or greater than the second.\n */\nexport function numberSafeCompareFunction(a, b) {\n return a > b ? 1 : a < b ? -1 : 0;\n}\n/**\n * Whether the array contains the given object.\n * @param {Array<*>} arr The array to test for the presence of the element.\n * @param {*} obj The object for which to test.\n * @return {boolean} The object is in the array.\n */\nexport function includes(arr, obj) {\n return arr.indexOf(obj) >= 0;\n}\n/**\n * {@link module:ol/tilegrid/TileGrid~TileGrid#getZForResolution} can use a function\n * of this type to determine which nearest resolution to use.\n *\n * This function takes a `{number}` representing a value between two array entries,\n * a `{number}` representing the value of the nearest higher entry and\n * a `{number}` representing the value of the nearest lower entry\n * as arguments and returns a `{number}`. If a negative number or zero is returned\n * the lower value will be used, if a positive number is returned the higher value\n * will be used.\n * @typedef {function(number, number, number): number} NearestDirectionFunction\n * @api\n */\n/**\n * @param {Array} arr Array in desccending order.\n * @param {number} target Target.\n * @param {number|NearestDirectionFunction} direction\n * 0 means return the nearest,\n * > 0 means return the largest nearest,\n * < 0 means return the smallest nearest.\n * @return {number} Index.\n */\nexport function linearFindNearest(arr, target, direction) {\n var n = arr.length;\n if (arr[0] <= target) {\n return 0;\n }\n else if (target <= arr[n - 1]) {\n return n - 1;\n }\n else {\n var i = void 0;\n if (direction > 0) {\n for (i = 1; i < n; ++i) {\n if (arr[i] < target) {\n return i - 1;\n }\n }\n }\n else if (direction < 0) {\n for (i = 1; i < n; ++i) {\n if (arr[i] <= target) {\n return i;\n }\n }\n }\n else {\n for (i = 1; i < n; ++i) {\n if (arr[i] == target) {\n return i;\n }\n else if (arr[i] < target) {\n if (typeof direction === 'function') {\n if (direction(target, arr[i - 1], arr[i]) > 0) {\n return i - 1;\n }\n else {\n return i;\n }\n }\n else if (arr[i - 1] - target < target - arr[i]) {\n return i - 1;\n }\n else {\n return i;\n }\n }\n }\n }\n return n - 1;\n }\n}\n/**\n * @param {Array<*>} arr Array.\n * @param {number} begin Begin index.\n * @param {number} end End index.\n */\nexport function reverseSubArray(arr, begin, end) {\n while (begin < end) {\n var tmp = arr[begin];\n arr[begin] = arr[end];\n arr[end] = tmp;\n ++begin;\n --end;\n }\n}\n/**\n * @param {Array} arr The array to modify.\n * @param {!Array|VALUE} data The elements or arrays of elements to add to arr.\n * @template VALUE\n */\nexport function extend(arr, data) {\n var extension = Array.isArray(data) ? data : [data];\n var length = extension.length;\n for (var i = 0; i < length; i++) {\n arr[arr.length] = extension[i];\n }\n}\n/**\n * @param {Array} arr The array to modify.\n * @param {VALUE} obj The element to remove.\n * @template VALUE\n * @return {boolean} If the element was removed.\n */\nexport function remove(arr, obj) {\n var i = arr.indexOf(obj);\n var found = i > -1;\n if (found) {\n arr.splice(i, 1);\n }\n return found;\n}\n/**\n * @param {Array} arr The array to search in.\n * @param {function(VALUE, number, ?) : boolean} func The function to compare.\n * @template VALUE\n * @return {VALUE|null} The element found or null.\n */\nexport function find(arr, func) {\n var length = arr.length >>> 0;\n var value;\n for (var i = 0; i < length; i++) {\n value = arr[i];\n if (func(value, i, arr)) {\n return value;\n }\n }\n return null;\n}\n/**\n * @param {Array|Uint8ClampedArray} arr1 The first array to compare.\n * @param {Array|Uint8ClampedArray} arr2 The second array to compare.\n * @return {boolean} Whether the two arrays are equal.\n */\nexport function equals(arr1, arr2) {\n var len1 = arr1.length;\n if (len1 !== arr2.length) {\n return false;\n }\n for (var i = 0; i < len1; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Sort the passed array such that the relative order of equal elements is preverved.\n * See https://en.wikipedia.org/wiki/Sorting_algorithm#Stability for details.\n * @param {Array<*>} arr The array to sort (modifies original).\n * @param {!function(*, *): number} compareFnc Comparison function.\n * @api\n */\nexport function stableSort(arr, compareFnc) {\n var length = arr.length;\n var tmp = Array(arr.length);\n var i;\n for (i = 0; i < length; i++) {\n tmp[i] = { index: i, value: arr[i] };\n }\n tmp.sort(function (a, b) {\n return compareFnc(a.value, b.value) || a.index - b.index;\n });\n for (i = 0; i < arr.length; i++) {\n arr[i] = tmp[i].value;\n }\n}\n/**\n * @param {Array<*>} arr The array to search in.\n * @param {Function} func Comparison function.\n * @return {number} Return index.\n */\nexport function findIndex(arr, func) {\n var index;\n var found = !arr.every(function (el, idx) {\n index = idx;\n return !func(el, idx, arr);\n });\n return found ? index : -1;\n}\n/**\n * @param {Array<*>} arr The array to test.\n * @param {Function} [opt_func] Comparison function.\n * @param {boolean} [opt_strict] Strictly sorted (default false).\n * @return {boolean} Return index.\n */\nexport function isSorted(arr, opt_func, opt_strict) {\n var compare = opt_func || numberSafeCompareFunction;\n return arr.every(function (currentVal, index) {\n if (index === 0) {\n return true;\n }\n var res = compare(arr[index - 1], currentVal);\n return !(res > 0 || (opt_strict && res === 0));\n });\n}\n//# sourceMappingURL=array.js.map","/**\n * @module ol/functions\n */\nimport { equals as arrayEquals } from './array.js';\n/**\n * Always returns true.\n * @return {boolean} true.\n */\nexport function TRUE() {\n return true;\n}\n/**\n * Always returns false.\n * @return {boolean} false.\n */\nexport function FALSE() {\n return false;\n}\n/**\n * A reusable function, used e.g. as a default for callbacks.\n *\n * @return {void} Nothing.\n */\nexport function VOID() { }\n/**\n * Wrap a function in another function that remembers the last return. If the\n * returned function is called twice in a row with the same arguments and the same\n * this object, it will return the value from the first call in the second call.\n *\n * @param {function(...any): ReturnType} fn The function to memoize.\n * @return {function(...any): ReturnType} The memoized function.\n * @template ReturnType\n */\nexport function memoizeOne(fn) {\n var called = false;\n /** @type {ReturnType} */\n var lastResult;\n /** @type {Array} */\n var lastArgs;\n var lastThis;\n return function () {\n var nextArgs = Array.prototype.slice.call(arguments);\n if (!called || this !== lastThis || !arrayEquals(nextArgs, lastArgs)) {\n called = true;\n lastThis = this;\n lastArgs = nextArgs;\n lastResult = fn.apply(this, arguments);\n }\n return lastResult;\n };\n}\n//# sourceMappingURL=functions.js.map","/**\n * @module ol/obj\n */\n/**\n * Polyfill for Object.assign(). Assigns enumerable and own properties from\n * one or more source objects to a target object.\n * See https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign.\n *\n * @param {!Object} target The target object.\n * @param {...Object} var_sources The source object(s).\n * @return {!Object} The modified target object.\n */\nexport var assign = typeof Object.assign === 'function'\n ? Object.assign\n : function (target, var_sources) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var output = Object(target);\n for (var i = 1, ii = arguments.length; i < ii; ++i) {\n var source = arguments[i];\n if (source !== undefined && source !== null) {\n for (var key in source) {\n if (source.hasOwnProperty(key)) {\n output[key] = source[key];\n }\n }\n }\n }\n return output;\n };\n/**\n * Removes all properties from an object.\n * @param {Object} object The object to clear.\n */\nexport function clear(object) {\n for (var property in object) {\n delete object[property];\n }\n}\n/**\n * Polyfill for Object.values(). Get an array of property values from an object.\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values\n *\n * @param {!Object} object The object from which to get the values.\n * @return {!Array} The property values.\n * @template K,V\n */\nexport var getValues = typeof Object.values === 'function'\n ? Object.values\n : function (object) {\n var values = [];\n for (var property in object) {\n values.push(object[property]);\n }\n return values;\n };\n/**\n * Determine if an object has any properties.\n * @param {Object} object The object to check.\n * @return {boolean} The object is empty.\n */\nexport function isEmpty(object) {\n var property;\n for (property in object) {\n return false;\n }\n return !property;\n}\n//# sourceMappingURL=obj.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/events/Target\n */\nimport Disposable from '../Disposable.js';\nimport Event from './Event.js';\nimport { VOID } from '../functions.js';\nimport { clear } from '../obj.js';\n/**\n * @typedef {EventTarget|Target} EventTargetLike\n */\n/**\n * @classdesc\n * A simplified implementation of the W3C DOM Level 2 EventTarget interface.\n * See https://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-EventTarget.\n *\n * There are two important simplifications compared to the specification:\n *\n * 1. The handling of `useCapture` in `addEventListener` and\n * `removeEventListener`. There is no real capture model.\n * 2. The handling of `stopPropagation` and `preventDefault` on `dispatchEvent`.\n * There is no event target hierarchy. When a listener calls\n * `stopPropagation` or `preventDefault` on an event object, it means that no\n * more listeners after this one will be called. Same as when the listener\n * returns false.\n */\nvar Target = /** @class */ (function (_super) {\n __extends(Target, _super);\n /**\n * @param {*} [opt_target] Default event target for dispatched events.\n */\n function Target(opt_target) {\n var _this = _super.call(this) || this;\n /**\n * @private\n * @type {*}\n */\n _this.eventTarget_ = opt_target;\n /**\n * @private\n * @type {Object}\n */\n _this.pendingRemovals_ = null;\n /**\n * @private\n * @type {Object}\n */\n _this.dispatching_ = null;\n /**\n * @private\n * @type {Object>}\n */\n _this.listeners_ = null;\n return _this;\n }\n /**\n * @param {string} type Type.\n * @param {import(\"../events.js\").Listener} listener Listener.\n */\n Target.prototype.addEventListener = function (type, listener) {\n if (!type || !listener) {\n return;\n }\n var listeners = this.listeners_ || (this.listeners_ = {});\n var listenersForType = listeners[type] || (listeners[type] = []);\n if (listenersForType.indexOf(listener) === -1) {\n listenersForType.push(listener);\n }\n };\n /**\n * Dispatches an event and calls all listeners listening for events\n * of this type. The event parameter can either be a string or an\n * Object with a `type` property.\n *\n * @param {import(\"./Event.js\").default|string} event Event object.\n * @return {boolean|undefined} `false` if anyone called preventDefault on the\n * event object or if any of the listeners returned false.\n * @api\n */\n Target.prototype.dispatchEvent = function (event) {\n /** @type {import(\"./Event.js\").default|Event} */\n var evt = typeof event === 'string' ? new Event(event) : event;\n var type = evt.type;\n if (!evt.target) {\n evt.target = this.eventTarget_ || this;\n }\n var listeners = this.listeners_ && this.listeners_[type];\n var propagate;\n if (listeners) {\n var dispatching = this.dispatching_ || (this.dispatching_ = {});\n var pendingRemovals = this.pendingRemovals_ || (this.pendingRemovals_ = {});\n if (!(type in dispatching)) {\n dispatching[type] = 0;\n pendingRemovals[type] = 0;\n }\n ++dispatching[type];\n for (var i = 0, ii = listeners.length; i < ii; ++i) {\n if ('handleEvent' in listeners[i]) {\n propagate = /** @type {import(\"../events.js\").ListenerObject} */ (listeners[i]).handleEvent(evt);\n }\n else {\n propagate = /** @type {import(\"../events.js\").ListenerFunction} */ (listeners[i]).call(this, evt);\n }\n if (propagate === false || evt.propagationStopped) {\n propagate = false;\n break;\n }\n }\n --dispatching[type];\n if (dispatching[type] === 0) {\n var pr = pendingRemovals[type];\n delete pendingRemovals[type];\n while (pr--) {\n this.removeEventListener(type, VOID);\n }\n delete dispatching[type];\n }\n return propagate;\n }\n };\n /**\n * Clean up.\n */\n Target.prototype.disposeInternal = function () {\n this.listeners_ && clear(this.listeners_);\n };\n /**\n * Get the listeners for a specified event type. Listeners are returned in the\n * order that they will be called in.\n *\n * @param {string} type Type.\n * @return {Array|undefined} Listeners.\n */\n Target.prototype.getListeners = function (type) {\n return (this.listeners_ && this.listeners_[type]) || undefined;\n };\n /**\n * @param {string} [opt_type] Type. If not provided,\n * `true` will be returned if this event target has any listeners.\n * @return {boolean} Has listeners.\n */\n Target.prototype.hasListener = function (opt_type) {\n if (!this.listeners_) {\n return false;\n }\n return opt_type\n ? opt_type in this.listeners_\n : Object.keys(this.listeners_).length > 0;\n };\n /**\n * @param {string} type Type.\n * @param {import(\"../events.js\").Listener} listener Listener.\n */\n Target.prototype.removeEventListener = function (type, listener) {\n var listeners = this.listeners_ && this.listeners_[type];\n if (listeners) {\n var index = listeners.indexOf(listener);\n if (index !== -1) {\n if (this.pendingRemovals_ && type in this.pendingRemovals_) {\n // make listener a no-op, and remove later in #dispatchEvent()\n listeners[index] = VOID;\n ++this.pendingRemovals_[type];\n }\n else {\n listeners.splice(index, 1);\n if (listeners.length === 0) {\n delete this.listeners_[type];\n }\n }\n }\n }\n };\n return Target;\n}(Disposable));\nexport default Target;\n//# sourceMappingURL=Target.js.map","/**\n * @module ol/events/EventType\n */\n/**\n * @enum {string}\n * @const\n */\nexport default {\n /**\n * Generic change event. Triggered when the revision counter is increased.\n * @event module:ol/events/Event~BaseEvent#change\n * @api\n */\n CHANGE: 'change',\n /**\n * Generic error event. Triggered when an error occurs.\n * @event module:ol/events/Event~BaseEvent#error\n * @api\n */\n ERROR: 'error',\n BLUR: 'blur',\n CLEAR: 'clear',\n CONTEXTMENU: 'contextmenu',\n CLICK: 'click',\n DBLCLICK: 'dblclick',\n DRAGENTER: 'dragenter',\n DRAGOVER: 'dragover',\n DROP: 'drop',\n FOCUS: 'focus',\n KEYDOWN: 'keydown',\n KEYPRESS: 'keypress',\n LOAD: 'load',\n RESIZE: 'resize',\n TOUCHMOVE: 'touchmove',\n WHEEL: 'wheel',\n};\n//# sourceMappingURL=EventType.js.map","/**\n * @module ol/events\n */\nimport { clear } from './obj.js';\n/**\n * Key to use with {@link module:ol/Observable~Observable#unByKey}.\n * @typedef {Object} EventsKey\n * @property {ListenerFunction} listener Listener.\n * @property {import(\"./events/Target.js\").EventTargetLike} target Target.\n * @property {string} type Type.\n * @api\n */\n/**\n * Listener function. This function is called with an event object as argument.\n * When the function returns `false`, event propagation will stop.\n *\n * @typedef {function((Event|import(\"./events/Event.js\").default)): (void|boolean)} ListenerFunction\n * @api\n */\n/**\n * @typedef {Object} ListenerObject\n * @property {ListenerFunction} handleEvent HandleEvent listener function.\n */\n/**\n * @typedef {ListenerFunction|ListenerObject} Listener\n */\n/**\n * Registers an event listener on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * This function efficiently binds a `listener` to a `this` object, and returns\n * a key for use with {@link module:ol/events.unlistenByKey}.\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Event target.\n * @param {string} type Event type.\n * @param {ListenerFunction} listener Listener.\n * @param {Object} [opt_this] Object referenced by the `this` keyword in the\n * listener. Default is the `target`.\n * @param {boolean} [opt_once] If true, add the listener as one-off listener.\n * @return {EventsKey} Unique key for the listener.\n */\nexport function listen(target, type, listener, opt_this, opt_once) {\n if (opt_this && opt_this !== target) {\n listener = listener.bind(opt_this);\n }\n if (opt_once) {\n var originalListener_1 = listener;\n listener = function () {\n target.removeEventListener(type, listener);\n originalListener_1.apply(this, arguments);\n };\n }\n var eventsKey = {\n target: target,\n type: type,\n listener: listener,\n };\n target.addEventListener(type, listener);\n return eventsKey;\n}\n/**\n * Registers a one-off event listener on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * This function efficiently binds a `listener` as self-unregistering listener\n * to a `this` object, and returns a key for use with\n * {@link module:ol/events.unlistenByKey} in case the listener needs to be\n * unregistered before it is called.\n *\n * When {@link module:ol/events.listen} is called with the same arguments after this\n * function, the self-unregistering listener will be turned into a permanent\n * listener.\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Event target.\n * @param {string} type Event type.\n * @param {ListenerFunction} listener Listener.\n * @param {Object} [opt_this] Object referenced by the `this` keyword in the\n * listener. Default is the `target`.\n * @return {EventsKey} Key for unlistenByKey.\n */\nexport function listenOnce(target, type, listener, opt_this) {\n return listen(target, type, listener, opt_this, true);\n}\n/**\n * Unregisters event listeners on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * The argument passed to this function is the key returned from\n * {@link module:ol/events.listen} or {@link module:ol/events.listenOnce}.\n *\n * @param {EventsKey} key The key.\n */\nexport function unlistenByKey(key) {\n if (key && key.target) {\n key.target.removeEventListener(key.type, key.listener);\n clear(key);\n }\n}\n//# sourceMappingURL=events.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/Observable\n */\nimport EventTarget from './events/Target.js';\nimport EventType from './events/EventType.js';\nimport { listen, listenOnce, unlistenByKey } from './events.js';\n/***\n * @template {string} Type\n * @template {Event|import(\"./events/Event.js\").default} EventClass\n * @template Return\n * @typedef {(type: Type|Type[], listener: (event: EventClass) => (void|boolean)) => Return} OnSignature\n */\n/***\n * @template {string} Type\n * @template Return\n * @typedef {(type: Type[], listener: (event: Event|import(\"./events/Event\").default) => (void|boolean)) => Return} CombinedOnSignature\n */\n/***\n * @typedef {import(\"./events\").EventsKey|Array} OnReturn\n */\n/**\n * @typedef {'change'|'error'} EventTypes\n */\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * An event target providing convenient methods for listener registration\n * and unregistration. A generic `change` event is always available through\n * {@link module:ol/Observable~Observable#changed}.\n *\n * @fires import(\"./events/Event.js\").default\n * @api\n */\nvar Observable = /** @class */ (function (_super) {\n __extends(Observable, _super);\n function Observable() {\n var _this = _super.call(this) || this;\n /***\n * @type {OnSignature}\n */\n _this.on = _this.onInternal;\n /***\n * @type {OnSignature}\n */\n _this.once = _this.onceInternal;\n /***\n * @type {OnSignature}\n */\n _this.un = _this.unInternal;\n /**\n * @private\n * @type {number}\n */\n _this.revision_ = 0;\n return _this;\n }\n /**\n * Increases the revision counter and dispatches a 'change' event.\n * @api\n */\n Observable.prototype.changed = function () {\n ++this.revision_;\n this.dispatchEvent(EventType.CHANGE);\n };\n /**\n * Get the version number for this object. Each time the object is modified,\n * its version number will be incremented.\n * @return {number} Revision.\n * @api\n */\n Observable.prototype.getRevision = function () {\n return this.revision_;\n };\n /**\n * @param {string|Array} type Type.\n * @param {function(?): (void|boolean)} listener Listener.\n * @return {import(\"./events.js\").EventsKey|Array} Event key.\n * @protected\n */\n Observable.prototype.onInternal = function (type, listener) {\n if (Array.isArray(type)) {\n var len = type.length;\n var keys = new Array(len);\n for (var i = 0; i < len; ++i) {\n keys[i] = listen(this, type[i], listener);\n }\n return keys;\n }\n else {\n return listen(this, /** @type {string} */ (type), listener);\n }\n };\n /**\n * @param {string|Array} type Type.\n * @param {function(?): (void|boolean)} listener Listener.\n * @return {import(\"./events.js\").EventsKey|Array} Event key.\n * @protected\n */\n Observable.prototype.onceInternal = function (type, listener) {\n var key;\n if (Array.isArray(type)) {\n var len = type.length;\n key = new Array(len);\n for (var i = 0; i < len; ++i) {\n key[i] = listenOnce(this, type[i], listener);\n }\n }\n else {\n key = listenOnce(this, /** @type {string} */ (type), listener);\n }\n /** @type {Object} */ (listener).ol_key = key;\n return key;\n };\n /**\n * Unlisten for a certain type of event.\n * @param {string|Array} type Type.\n * @param {function(?): (void|boolean)} listener Listener.\n * @protected\n */\n Observable.prototype.unInternal = function (type, listener) {\n var key = /** @type {Object} */ (listener).ol_key;\n if (key) {\n unByKey(key);\n }\n else if (Array.isArray(type)) {\n for (var i = 0, ii = type.length; i < ii; ++i) {\n this.removeEventListener(type[i], listener);\n }\n }\n else {\n this.removeEventListener(type, listener);\n }\n };\n return Observable;\n}(EventTarget));\n/**\n * Listen for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): (void|boolean)} listener The listener function.\n * @return {import(\"./events.js\").EventsKey|Array} Unique key for the listener. If\n * called with an array of event types as the first argument, the return\n * will be an array of keys.\n * @api\n */\nObservable.prototype.on;\n/**\n * Listen once for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): (void|boolean)} listener The listener function.\n * @return {import(\"./events.js\").EventsKey|Array} Unique key for the listener. If\n * called with an array of event types as the first argument, the return\n * will be an array of keys.\n * @api\n */\nObservable.prototype.once;\n/**\n * Unlisten for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): (void|boolean)} listener The listener function.\n * @api\n */\nObservable.prototype.un;\n/**\n * Removes an event listener using the key returned by `on()` or `once()`.\n * @param {import(\"./events.js\").EventsKey|Array} key The key returned by `on()`\n * or `once()` (or an array of keys).\n * @api\n */\nexport function unByKey(key) {\n if (Array.isArray(key)) {\n for (var i = 0, ii = key.length; i < ii; ++i) {\n unlistenByKey(key[i]);\n }\n }\n else {\n unlistenByKey(/** @type {import(\"./events.js\").EventsKey} */ (key));\n }\n}\nexport default Observable;\n//# sourceMappingURL=Observable.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/Object\n */\nimport Event from './events/Event.js';\nimport ObjectEventType from './ObjectEventType.js';\nimport Observable from './Observable.js';\nimport { assign, isEmpty } from './obj.js';\nimport { getUid } from './util.js';\n/**\n * @classdesc\n * Events emitted by {@link module:ol/Object~BaseObject} instances are instances of this type.\n */\nvar ObjectEvent = /** @class */ (function (_super) {\n __extends(ObjectEvent, _super);\n /**\n * @param {string} type The event type.\n * @param {string} key The property name.\n * @param {*} oldValue The old value for `key`.\n */\n function ObjectEvent(type, key, oldValue) {\n var _this = _super.call(this, type) || this;\n /**\n * The name of the property whose value is changing.\n * @type {string}\n * @api\n */\n _this.key = key;\n /**\n * The old value. To get the new value use `e.target.get(e.key)` where\n * `e` is the event object.\n * @type {*}\n * @api\n */\n _this.oldValue = oldValue;\n return _this;\n }\n return ObjectEvent;\n}(Event));\nexport { ObjectEvent };\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} ObjectOnSignature\n */\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Most non-trivial classes inherit from this.\n *\n * This extends {@link module:ol/Observable} with observable\n * properties, where each property is observable as well as the object as a\n * whole.\n *\n * Classes that inherit from this have pre-defined properties, to which you can\n * add your owns. The pre-defined properties are listed in this documentation as\n * 'Observable Properties', and have their own accessors; for example,\n * {@link module:ol/Map~Map} has a `target` property, accessed with\n * `getTarget()` and changed with `setTarget()`. Not all properties are however\n * settable. There are also general-purpose accessors `get()` and `set()`. For\n * example, `get('target')` is equivalent to `getTarget()`.\n *\n * The `set` accessors trigger a change event, and you can monitor this by\n * registering a listener. For example, {@link module:ol/View~View} has a\n * `center` property, so `view.on('change:center', function(evt) {...});` would\n * call the function whenever the value of the center property changes. Within\n * the function, `evt.target` would be the view, so `evt.target.getCenter()`\n * would return the new center.\n *\n * You can add your own observable properties with\n * `object.set('prop', 'value')`, and retrieve that with `object.get('prop')`.\n * You can listen for changes on that property value with\n * `object.on('change:prop', listener)`. You can get a list of all\n * properties with {@link module:ol/Object~BaseObject#getProperties}.\n *\n * Note that the observable properties are separate from standard JS properties.\n * You can, for example, give your map object a title with\n * `map.title='New title'` and with `map.set('title', 'Another title')`. The\n * first will be a `hasOwnProperty`; the second will appear in\n * `getProperties()`. Only the second is observable.\n *\n * Properties can be deleted by using the unset method. E.g.\n * object.unset('foo').\n *\n * @fires ObjectEvent\n * @api\n */\nvar BaseObject = /** @class */ (function (_super) {\n __extends(BaseObject, _super);\n /**\n * @param {Object} [opt_values] An object with key-value pairs.\n */\n function BaseObject(opt_values) {\n var _this = _super.call(this) || this;\n /***\n * @type {ObjectOnSignature}\n */\n _this.on;\n /***\n * @type {ObjectOnSignature}\n */\n _this.once;\n /***\n * @type {ObjectOnSignature}\n */\n _this.un;\n // Call {@link module:ol/util.getUid} to ensure that the order of objects' ids is\n // the same as the order in which they were created. This also helps to\n // ensure that object properties are always added in the same order, which\n // helps many JavaScript engines generate faster code.\n getUid(_this);\n /**\n * @private\n * @type {Object}\n */\n _this.values_ = null;\n if (opt_values !== undefined) {\n _this.setProperties(opt_values);\n }\n return _this;\n }\n /**\n * Gets a value.\n * @param {string} key Key name.\n * @return {*} Value.\n * @api\n */\n BaseObject.prototype.get = function (key) {\n var value;\n if (this.values_ && this.values_.hasOwnProperty(key)) {\n value = this.values_[key];\n }\n return value;\n };\n /**\n * Get a list of object property names.\n * @return {Array} List of property names.\n * @api\n */\n BaseObject.prototype.getKeys = function () {\n return (this.values_ && Object.keys(this.values_)) || [];\n };\n /**\n * Get an object of all property names and values.\n * @return {Object} Object.\n * @api\n */\n BaseObject.prototype.getProperties = function () {\n return (this.values_ && assign({}, this.values_)) || {};\n };\n /**\n * @return {boolean} The object has properties.\n */\n BaseObject.prototype.hasProperties = function () {\n return !!this.values_;\n };\n /**\n * @param {string} key Key name.\n * @param {*} oldValue Old value.\n */\n BaseObject.prototype.notify = function (key, oldValue) {\n var eventType;\n eventType = \"change:\" + key;\n this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));\n eventType = ObjectEventType.PROPERTYCHANGE;\n this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));\n };\n /**\n * @param {string} key Key name.\n * @param {import(\"./events.js\").Listener} listener Listener.\n */\n BaseObject.prototype.addChangeListener = function (key, listener) {\n this.addEventListener(\"change:\" + key, listener);\n };\n /**\n * @param {string} key Key name.\n * @param {import(\"./events.js\").Listener} listener Listener.\n */\n BaseObject.prototype.removeChangeListener = function (key, listener) {\n this.removeEventListener(\"change:\" + key, listener);\n };\n /**\n * Sets a value.\n * @param {string} key Key name.\n * @param {*} value Value.\n * @param {boolean} [opt_silent] Update without triggering an event.\n * @api\n */\n BaseObject.prototype.set = function (key, value, opt_silent) {\n var values = this.values_ || (this.values_ = {});\n if (opt_silent) {\n values[key] = value;\n }\n else {\n var oldValue = values[key];\n values[key] = value;\n if (oldValue !== value) {\n this.notify(key, oldValue);\n }\n }\n };\n /**\n * Sets a collection of key-value pairs. Note that this changes any existing\n * properties and adds new ones (it does not remove any existing properties).\n * @param {Object} values Values.\n * @param {boolean} [opt_silent] Update without triggering an event.\n * @api\n */\n BaseObject.prototype.setProperties = function (values, opt_silent) {\n for (var key in values) {\n this.set(key, values[key], opt_silent);\n }\n };\n /**\n * Apply any properties from another object without triggering events.\n * @param {BaseObject} source The source object.\n * @protected\n */\n BaseObject.prototype.applyProperties = function (source) {\n if (!source.values_) {\n return;\n }\n assign(this.values_ || (this.values_ = {}), source.values_);\n };\n /**\n * Unsets a property.\n * @param {string} key Key name.\n * @param {boolean} [opt_silent] Unset without triggering an event.\n * @api\n */\n BaseObject.prototype.unset = function (key, opt_silent) {\n if (this.values_ && key in this.values_) {\n var oldValue = this.values_[key];\n delete this.values_[key];\n if (isEmpty(this.values_)) {\n this.values_ = null;\n }\n if (!opt_silent) {\n this.notify(key, oldValue);\n }\n }\n };\n return BaseObject;\n}(Observable));\nexport default BaseObject;\n//# sourceMappingURL=Object.js.map","/**\n * @module ol/CollectionEventType\n */\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered when an item is added to the collection.\n * @event module:ol/Collection.CollectionEvent#add\n * @api\n */\n ADD: 'add',\n /**\n * Triggered when an item is removed from the collection.\n * @event module:ol/Collection.CollectionEvent#remove\n * @api\n */\n REMOVE: 'remove',\n};\n//# sourceMappingURL=CollectionEventType.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/Collection\n */\nimport AssertionError from './AssertionError.js';\nimport BaseObject from './Object.js';\nimport CollectionEventType from './CollectionEventType.js';\nimport Event from './events/Event.js';\n/**\n * @enum {string}\n * @private\n */\nvar Property = {\n LENGTH: 'length',\n};\n/**\n * @classdesc\n * Events emitted by {@link module:ol/Collection~Collection} instances are instances of this\n * type.\n */\nvar CollectionEvent = /** @class */ (function (_super) {\n __extends(CollectionEvent, _super);\n /**\n * @param {import(\"./CollectionEventType.js\").default} type Type.\n * @param {*} [opt_element] Element.\n * @param {number} [opt_index] The index of the added or removed element.\n */\n function CollectionEvent(type, opt_element, opt_index) {\n var _this = _super.call(this, type) || this;\n /**\n * The element that is added to or removed from the collection.\n * @type {*}\n * @api\n */\n _this.element = opt_element;\n /**\n * The index of the added or removed element.\n * @type {number}\n * @api\n */\n _this.index = opt_index;\n return _this;\n }\n return CollectionEvent;\n}(Event));\nexport { CollectionEvent };\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature<'add'|'remove', CollectionEvent, Return> &\n * import(\"./Observable\").CombinedOnSignature} CollectionOnSignature\n */\n/**\n * @typedef {Object} Options\n * @property {boolean} [unique=false] Disallow the same item from being added to\n * the collection twice.\n */\n/**\n * @classdesc\n * An expanded version of standard JS Array, adding convenience methods for\n * manipulation. Add and remove changes to the Collection trigger a Collection\n * event. Note that this does not cover changes to the objects _within_ the\n * Collection; they trigger events on the appropriate object, not on the\n * Collection as a whole.\n *\n * @fires CollectionEvent\n *\n * @template T\n * @api\n */\nvar Collection = /** @class */ (function (_super) {\n __extends(Collection, _super);\n /**\n * @param {Array} [opt_array] Array.\n * @param {Options} [opt_options] Collection options.\n */\n function Collection(opt_array, opt_options) {\n var _this = _super.call(this) || this;\n /***\n * @type {CollectionOnSignature}\n */\n _this.on;\n /***\n * @type {CollectionOnSignature}\n */\n _this.once;\n /***\n * @type {CollectionOnSignature}\n */\n _this.un;\n var options = opt_options || {};\n /**\n * @private\n * @type {boolean}\n */\n _this.unique_ = !!options.unique;\n /**\n * @private\n * @type {!Array}\n */\n _this.array_ = opt_array ? opt_array : [];\n if (_this.unique_) {\n for (var i = 0, ii = _this.array_.length; i < ii; ++i) {\n _this.assertUnique_(_this.array_[i], i);\n }\n }\n _this.updateLength_();\n return _this;\n }\n /**\n * Remove all elements from the collection.\n * @api\n */\n Collection.prototype.clear = function () {\n while (this.getLength() > 0) {\n this.pop();\n }\n };\n /**\n * Add elements to the collection. This pushes each item in the provided array\n * to the end of the collection.\n * @param {!Array} arr Array.\n * @return {Collection} This collection.\n * @api\n */\n Collection.prototype.extend = function (arr) {\n for (var i = 0, ii = arr.length; i < ii; ++i) {\n this.push(arr[i]);\n }\n return this;\n };\n /**\n * Iterate over each element, calling the provided callback.\n * @param {function(T, number, Array): *} f The function to call\n * for every element. This function takes 3 arguments (the element, the\n * index and the array). The return value is ignored.\n * @api\n */\n Collection.prototype.forEach = function (f) {\n var array = this.array_;\n for (var i = 0, ii = array.length; i < ii; ++i) {\n f(array[i], i, array);\n }\n };\n /**\n * Get a reference to the underlying Array object. Warning: if the array\n * is mutated, no events will be dispatched by the collection, and the\n * collection's \"length\" property won't be in sync with the actual length\n * of the array.\n * @return {!Array} Array.\n * @api\n */\n Collection.prototype.getArray = function () {\n return this.array_;\n };\n /**\n * Get the element at the provided index.\n * @param {number} index Index.\n * @return {T} Element.\n * @api\n */\n Collection.prototype.item = function (index) {\n return this.array_[index];\n };\n /**\n * Get the length of this collection.\n * @return {number} The length of the array.\n * @observable\n * @api\n */\n Collection.prototype.getLength = function () {\n return this.get(Property.LENGTH);\n };\n /**\n * Insert an element at the provided index.\n * @param {number} index Index.\n * @param {T} elem Element.\n * @api\n */\n Collection.prototype.insertAt = function (index, elem) {\n if (this.unique_) {\n this.assertUnique_(elem);\n }\n this.array_.splice(index, 0, elem);\n this.updateLength_();\n this.dispatchEvent(new CollectionEvent(CollectionEventType.ADD, elem, index));\n };\n /**\n * Remove the last element of the collection and return it.\n * Return `undefined` if the collection is empty.\n * @return {T|undefined} Element.\n * @api\n */\n Collection.prototype.pop = function () {\n return this.removeAt(this.getLength() - 1);\n };\n /**\n * Insert the provided element at the end of the collection.\n * @param {T} elem Element.\n * @return {number} New length of the collection.\n * @api\n */\n Collection.prototype.push = function (elem) {\n if (this.unique_) {\n this.assertUnique_(elem);\n }\n var n = this.getLength();\n this.insertAt(n, elem);\n return this.getLength();\n };\n /**\n * Remove the first occurrence of an element from the collection.\n * @param {T} elem Element.\n * @return {T|undefined} The removed element or undefined if none found.\n * @api\n */\n Collection.prototype.remove = function (elem) {\n var arr = this.array_;\n for (var i = 0, ii = arr.length; i < ii; ++i) {\n if (arr[i] === elem) {\n return this.removeAt(i);\n }\n }\n return undefined;\n };\n /**\n * Remove the element at the provided index and return it.\n * Return `undefined` if the collection does not contain this index.\n * @param {number} index Index.\n * @return {T|undefined} Value.\n * @api\n */\n Collection.prototype.removeAt = function (index) {\n var prev = this.array_[index];\n this.array_.splice(index, 1);\n this.updateLength_();\n this.dispatchEvent(new CollectionEvent(CollectionEventType.REMOVE, prev, index));\n return prev;\n };\n /**\n * Set the element at the provided index.\n * @param {number} index Index.\n * @param {T} elem Element.\n * @api\n */\n Collection.prototype.setAt = function (index, elem) {\n var n = this.getLength();\n if (index < n) {\n if (this.unique_) {\n this.assertUnique_(elem, index);\n }\n var prev = this.array_[index];\n this.array_[index] = elem;\n this.dispatchEvent(new CollectionEvent(CollectionEventType.REMOVE, prev, index));\n this.dispatchEvent(new CollectionEvent(CollectionEventType.ADD, elem, index));\n }\n else {\n for (var j = n; j < index; ++j) {\n this.insertAt(j, undefined);\n }\n this.insertAt(index, elem);\n }\n };\n /**\n * @private\n */\n Collection.prototype.updateLength_ = function () {\n this.set(Property.LENGTH, this.array_.length);\n };\n /**\n * @private\n * @param {T} elem Element.\n * @param {number} [opt_except] Optional index to ignore.\n */\n Collection.prototype.assertUnique_ = function (elem, opt_except) {\n for (var i = 0, ii = this.array_.length; i < ii; ++i) {\n if (this.array_[i] === elem && i !== opt_except) {\n throw new AssertionError(58);\n }\n }\n };\n return Collection;\n}(BaseObject));\nexport default Collection;\n//# sourceMappingURL=Collection.js.map","/**\n * @module ol/asserts\n */\nimport AssertionError from './AssertionError.js';\n/**\n * @param {*} assertion Assertion we expected to be truthy.\n * @param {number} errorCode Error code.\n */\nexport function assert(assertion, errorCode) {\n if (!assertion) {\n throw new AssertionError(errorCode);\n }\n}\n//# sourceMappingURL=asserts.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/Feature\n */\nimport BaseObject from './Object.js';\nimport EventType from './events/EventType.js';\nimport { assert } from './asserts.js';\nimport { listen, unlistenByKey } from './events.js';\n/**\n * @typedef {typeof Feature|typeof import(\"./render/Feature.js\").default} FeatureClass\n */\n/**\n * @typedef {Feature|import(\"./render/Feature.js\").default} FeatureLike\n */\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} FeatureOnSignature\n */\n/**\n * @classdesc\n * A vector object for geographic features with a geometry and other\n * attribute properties, similar to the features in vector file formats like\n * GeoJSON.\n *\n * Features can be styled individually with `setStyle`; otherwise they use the\n * style of their vector layer.\n *\n * Note that attribute properties are set as {@link module:ol/Object} properties on\n * the feature object, so they are observable, and have get/set accessors.\n *\n * Typically, a feature has a single geometry property. You can set the\n * geometry using the `setGeometry` method and get it with `getGeometry`.\n * It is possible to store more than one geometry on a feature using attribute\n * properties. By default, the geometry used for rendering is identified by\n * the property name `geometry`. If you want to use another geometry property\n * for rendering, use the `setGeometryName` method to change the attribute\n * property associated with the geometry for the feature. For example:\n *\n * ```js\n *\n * import Feature from 'ol/Feature';\n * import Polygon from 'ol/geom/Polygon';\n * import Point from 'ol/geom/Point';\n *\n * var feature = new Feature({\n * geometry: new Polygon(polyCoords),\n * labelPoint: new Point(labelCoords),\n * name: 'My Polygon'\n * });\n *\n * // get the polygon geometry\n * var poly = feature.getGeometry();\n *\n * // Render the feature as a point using the coordinates from labelPoint\n * feature.setGeometryName('labelPoint');\n *\n * // get the point geometry\n * var point = feature.getGeometry();\n * ```\n *\n * @api\n * @template {import(\"./geom/Geometry.js\").default} Geometry\n */\nvar Feature = /** @class */ (function (_super) {\n __extends(Feature, _super);\n /**\n * @param {Geometry|Object} [opt_geometryOrProperties]\n * You may pass a Geometry object directly, or an object literal containing\n * properties. If you pass an object literal, you may include a Geometry\n * associated with a `geometry` key.\n */\n function Feature(opt_geometryOrProperties) {\n var _this = _super.call(this) || this;\n /***\n * @type {FeatureOnSignature}\n */\n _this.on;\n /***\n * @type {FeatureOnSignature}\n */\n _this.once;\n /***\n * @type {FeatureOnSignature}\n */\n _this.un;\n /**\n * @private\n * @type {number|string|undefined}\n */\n _this.id_ = undefined;\n /**\n * @type {string}\n * @private\n */\n _this.geometryName_ = 'geometry';\n /**\n * User provided style.\n * @private\n * @type {import(\"./style/Style.js\").StyleLike}\n */\n _this.style_ = null;\n /**\n * @private\n * @type {import(\"./style/Style.js\").StyleFunction|undefined}\n */\n _this.styleFunction_ = undefined;\n /**\n * @private\n * @type {?import(\"./events.js\").EventsKey}\n */\n _this.geometryChangeKey_ = null;\n _this.addChangeListener(_this.geometryName_, _this.handleGeometryChanged_);\n if (opt_geometryOrProperties) {\n if (typeof (\n /** @type {?} */ (opt_geometryOrProperties).getSimplifiedGeometry) === 'function') {\n var geometry = /** @type {Geometry} */ (opt_geometryOrProperties);\n _this.setGeometry(geometry);\n }\n else {\n /** @type {Object} */\n var properties = opt_geometryOrProperties;\n _this.setProperties(properties);\n }\n }\n return _this;\n }\n /**\n * Clone this feature. If the original feature has a geometry it\n * is also cloned. The feature id is not set in the clone.\n * @return {Feature} The clone.\n * @api\n */\n Feature.prototype.clone = function () {\n var clone = new Feature(this.hasProperties() ? this.getProperties() : null);\n clone.setGeometryName(this.getGeometryName());\n var geometry = this.getGeometry();\n if (geometry) {\n clone.setGeometry(geometry.clone());\n }\n var style = this.getStyle();\n if (style) {\n clone.setStyle(style);\n }\n return clone;\n };\n /**\n * Get the feature's default geometry. A feature may have any number of named\n * geometries. The \"default\" geometry (the one that is rendered by default) is\n * set when calling {@link module:ol/Feature~Feature#setGeometry}.\n * @return {Geometry|undefined} The default geometry for the feature.\n * @api\n * @observable\n */\n Feature.prototype.getGeometry = function () {\n return /** @type {Geometry|undefined} */ (this.get(this.geometryName_));\n };\n /**\n * Get the feature identifier. This is a stable identifier for the feature and\n * is either set when reading data from a remote source or set explicitly by\n * calling {@link module:ol/Feature~Feature#setId}.\n * @return {number|string|undefined} Id.\n * @api\n */\n Feature.prototype.getId = function () {\n return this.id_;\n };\n /**\n * Get the name of the feature's default geometry. By default, the default\n * geometry is named `geometry`.\n * @return {string} Get the property name associated with the default geometry\n * for this feature.\n * @api\n */\n Feature.prototype.getGeometryName = function () {\n return this.geometryName_;\n };\n /**\n * Get the feature's style. Will return what was provided to the\n * {@link module:ol/Feature~Feature#setStyle} method.\n * @return {import(\"./style/Style.js\").StyleLike|undefined} The feature style.\n * @api\n */\n Feature.prototype.getStyle = function () {\n return this.style_;\n };\n /**\n * Get the feature's style function.\n * @return {import(\"./style/Style.js\").StyleFunction|undefined} Return a function\n * representing the current style of this feature.\n * @api\n */\n Feature.prototype.getStyleFunction = function () {\n return this.styleFunction_;\n };\n /**\n * @private\n */\n Feature.prototype.handleGeometryChange_ = function () {\n this.changed();\n };\n /**\n * @private\n */\n Feature.prototype.handleGeometryChanged_ = function () {\n if (this.geometryChangeKey_) {\n unlistenByKey(this.geometryChangeKey_);\n this.geometryChangeKey_ = null;\n }\n var geometry = this.getGeometry();\n if (geometry) {\n this.geometryChangeKey_ = listen(geometry, EventType.CHANGE, this.handleGeometryChange_, this);\n }\n this.changed();\n };\n /**\n * Set the default geometry for the feature. This will update the property\n * with the name returned by {@link module:ol/Feature~Feature#getGeometryName}.\n * @param {Geometry|undefined} geometry The new geometry.\n * @api\n * @observable\n */\n Feature.prototype.setGeometry = function (geometry) {\n this.set(this.geometryName_, geometry);\n };\n /**\n * Set the style for the feature to override the layer style. This can be a\n * single style object, an array of styles, or a function that takes a\n * resolution and returns an array of styles. To unset the feature style, call\n * `setStyle()` without arguments or a falsey value.\n * @param {import(\"./style/Style.js\").StyleLike} [opt_style] Style for this feature.\n * @api\n * @fires module:ol/events/Event~BaseEvent#event:change\n */\n Feature.prototype.setStyle = function (opt_style) {\n this.style_ = opt_style;\n this.styleFunction_ = !opt_style\n ? undefined\n : createStyleFunction(opt_style);\n this.changed();\n };\n /**\n * Set the feature id. The feature id is considered stable and may be used when\n * requesting features or comparing identifiers returned from a remote source.\n * The feature id can be used with the\n * {@link module:ol/source/Vector~VectorSource#getFeatureById} method.\n * @param {number|string|undefined} id The feature id.\n * @api\n * @fires module:ol/events/Event~BaseEvent#event:change\n */\n Feature.prototype.setId = function (id) {\n this.id_ = id;\n this.changed();\n };\n /**\n * Set the property name to be used when getting the feature's default geometry.\n * When calling {@link module:ol/Feature~Feature#getGeometry}, the value of the property with\n * this name will be returned.\n * @param {string} name The property name of the default geometry.\n * @api\n */\n Feature.prototype.setGeometryName = function (name) {\n this.removeChangeListener(this.geometryName_, this.handleGeometryChanged_);\n this.geometryName_ = name;\n this.addChangeListener(this.geometryName_, this.handleGeometryChanged_);\n this.handleGeometryChanged_();\n };\n return Feature;\n}(BaseObject));\n/**\n * Convert the provided object into a feature style function. Functions passed\n * through unchanged. Arrays of Style or single style objects wrapped\n * in a new feature style function.\n * @param {!import(\"./style/Style.js\").StyleFunction|!Array|!import(\"./style/Style.js\").default} obj\n * A feature style function, a single style, or an array of styles.\n * @return {import(\"./style/Style.js\").StyleFunction} A style function.\n */\nexport function createStyleFunction(obj) {\n if (typeof obj === 'function') {\n return obj;\n }\n else {\n /**\n * @type {Array}\n */\n var styles_1;\n if (Array.isArray(obj)) {\n styles_1 = obj;\n }\n else {\n assert(typeof ( /** @type {?} */(obj).getZIndex) === 'function', 41); // Expected an `import(\"./style/Style.js\").Style` or an array of `import(\"./style/Style.js\").Style`\n var style = /** @type {import(\"./style/Style.js\").default} */ (obj);\n styles_1 = [style];\n }\n return function () {\n return styles_1;\n };\n }\n}\nexport default Feature;\n//# sourceMappingURL=Feature.js.map","/**\n * @module ol/geom/GeometryLayout\n */\n/**\n * The coordinate layout for geometries, indicating whether a 3rd or 4th z ('Z')\n * or measure ('M') coordinate is available. Supported values are `'XY'`,\n * `'XYZ'`, `'XYM'`, `'XYZM'`.\n * @enum {string}\n */\nexport default {\n XY: 'XY',\n XYZ: 'XYZ',\n XYM: 'XYM',\n XYZM: 'XYZM',\n};\n//# sourceMappingURL=GeometryLayout.js.map","/**\n * @module ol/geom/GeometryType\n */\n/**\n * The geometry type. One of `'Point'`, `'LineString'`, `'LinearRing'`,\n * `'Polygon'`, `'MultiPoint'`, `'MultiLineString'`, `'MultiPolygon'`,\n * `'GeometryCollection'`, `'Circle'`.\n * @enum {string}\n */\nexport default {\n POINT: 'Point',\n LINE_STRING: 'LineString',\n LINEAR_RING: 'LinearRing',\n POLYGON: 'Polygon',\n MULTI_POINT: 'MultiPoint',\n MULTI_LINE_STRING: 'MultiLineString',\n MULTI_POLYGON: 'MultiPolygon',\n GEOMETRY_COLLECTION: 'GeometryCollection',\n CIRCLE: 'Circle',\n};\n//# sourceMappingURL=GeometryType.js.map","/**\n * @module ol/proj/Units\n */\n/**\n * Projection units: `'degrees'`, `'ft'`, `'m'`, `'pixels'`, `'tile-pixels'` or\n * `'us-ft'`.\n * @enum {string}\n */\nvar Units = {\n /**\n * Degrees\n * @api\n */\n DEGREES: 'degrees',\n /**\n * Feet\n * @api\n */\n FEET: 'ft',\n /**\n * Meters\n * @api\n */\n METERS: 'm',\n /**\n * Pixels\n * @api\n */\n PIXELS: 'pixels',\n /**\n * Tile Pixels\n * @api\n */\n TILE_PIXELS: 'tile-pixels',\n /**\n * US Feet\n * @api\n */\n USFEET: 'us-ft',\n};\n/**\n * Meters per unit lookup table.\n * @const\n * @type {Object}\n * @api\n */\nexport var METERS_PER_UNIT = {};\n// use the radius of the Normal sphere\nMETERS_PER_UNIT[Units.DEGREES] = (2 * Math.PI * 6370997) / 360;\nMETERS_PER_UNIT[Units.FEET] = 0.3048;\nMETERS_PER_UNIT[Units.METERS] = 1;\nMETERS_PER_UNIT[Units.USFEET] = 1200 / 3937;\nexport default Units;\n//# sourceMappingURL=Units.js.map","/**\n * @module ol/transform\n */\nimport { WORKER_OFFSCREEN_CANVAS } from './has.js';\nimport { assert } from './asserts.js';\n/**\n * An array representing an affine 2d transformation for use with\n * {@link module:ol/transform} functions. The array has 6 elements.\n * @typedef {!Array} Transform\n * @api\n */\n/**\n * Collection of affine 2d transformation functions. The functions work on an\n * array of 6 elements. The element order is compatible with the [SVGMatrix\n * interface](https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix) and is\n * a subset (elements a to f) of a 3×3 matrix:\n * ```\n * [ a c e ]\n * [ b d f ]\n * [ 0 0 1 ]\n * ```\n */\n/**\n * @private\n * @type {Transform}\n */\nvar tmp_ = new Array(6);\n/**\n * Create an identity transform.\n * @return {!Transform} Identity transform.\n */\nexport function create() {\n return [1, 0, 0, 1, 0, 0];\n}\n/**\n * Resets the given transform to an identity transform.\n * @param {!Transform} transform Transform.\n * @return {!Transform} Transform.\n */\nexport function reset(transform) {\n return set(transform, 1, 0, 0, 1, 0, 0);\n}\n/**\n * Multiply the underlying matrices of two transforms and return the result in\n * the first transform.\n * @param {!Transform} transform1 Transform parameters of matrix 1.\n * @param {!Transform} transform2 Transform parameters of matrix 2.\n * @return {!Transform} transform1 multiplied with transform2.\n */\nexport function multiply(transform1, transform2) {\n var a1 = transform1[0];\n var b1 = transform1[1];\n var c1 = transform1[2];\n var d1 = transform1[3];\n var e1 = transform1[4];\n var f1 = transform1[5];\n var a2 = transform2[0];\n var b2 = transform2[1];\n var c2 = transform2[2];\n var d2 = transform2[3];\n var e2 = transform2[4];\n var f2 = transform2[5];\n transform1[0] = a1 * a2 + c1 * b2;\n transform1[1] = b1 * a2 + d1 * b2;\n transform1[2] = a1 * c2 + c1 * d2;\n transform1[3] = b1 * c2 + d1 * d2;\n transform1[4] = a1 * e2 + c1 * f2 + e1;\n transform1[5] = b1 * e2 + d1 * f2 + f1;\n return transform1;\n}\n/**\n * Set the transform components a-f on a given transform.\n * @param {!Transform} transform Transform.\n * @param {number} a The a component of the transform.\n * @param {number} b The b component of the transform.\n * @param {number} c The c component of the transform.\n * @param {number} d The d component of the transform.\n * @param {number} e The e component of the transform.\n * @param {number} f The f component of the transform.\n * @return {!Transform} Matrix with transform applied.\n */\nexport function set(transform, a, b, c, d, e, f) {\n transform[0] = a;\n transform[1] = b;\n transform[2] = c;\n transform[3] = d;\n transform[4] = e;\n transform[5] = f;\n return transform;\n}\n/**\n * Set transform on one matrix from another matrix.\n * @param {!Transform} transform1 Matrix to set transform to.\n * @param {!Transform} transform2 Matrix to set transform from.\n * @return {!Transform} transform1 with transform from transform2 applied.\n */\nexport function setFromArray(transform1, transform2) {\n transform1[0] = transform2[0];\n transform1[1] = transform2[1];\n transform1[2] = transform2[2];\n transform1[3] = transform2[3];\n transform1[4] = transform2[4];\n transform1[5] = transform2[5];\n return transform1;\n}\n/**\n * Transforms the given coordinate with the given transform returning the\n * resulting, transformed coordinate. The coordinate will be modified in-place.\n *\n * @param {Transform} transform The transformation.\n * @param {import(\"./coordinate.js\").Coordinate|import(\"./pixel.js\").Pixel} coordinate The coordinate to transform.\n * @return {import(\"./coordinate.js\").Coordinate|import(\"./pixel.js\").Pixel} return coordinate so that operations can be\n * chained together.\n */\nexport function apply(transform, coordinate) {\n var x = coordinate[0];\n var y = coordinate[1];\n coordinate[0] = transform[0] * x + transform[2] * y + transform[4];\n coordinate[1] = transform[1] * x + transform[3] * y + transform[5];\n return coordinate;\n}\n/**\n * Applies rotation to the given transform.\n * @param {!Transform} transform Transform.\n * @param {number} angle Angle in radians.\n * @return {!Transform} The rotated transform.\n */\nexport function rotate(transform, angle) {\n var cos = Math.cos(angle);\n var sin = Math.sin(angle);\n return multiply(transform, set(tmp_, cos, sin, -sin, cos, 0, 0));\n}\n/**\n * Applies scale to a given transform.\n * @param {!Transform} transform Transform.\n * @param {number} x Scale factor x.\n * @param {number} y Scale factor y.\n * @return {!Transform} The scaled transform.\n */\nexport function scale(transform, x, y) {\n return multiply(transform, set(tmp_, x, 0, 0, y, 0, 0));\n}\n/**\n * Creates a scale transform.\n * @param {!Transform} target Transform to overwrite.\n * @param {number} x Scale factor x.\n * @param {number} y Scale factor y.\n * @return {!Transform} The scale transform.\n */\nexport function makeScale(target, x, y) {\n return set(target, x, 0, 0, y, 0, 0);\n}\n/**\n * Applies translation to the given transform.\n * @param {!Transform} transform Transform.\n * @param {number} dx Translation x.\n * @param {number} dy Translation y.\n * @return {!Transform} The translated transform.\n */\nexport function translate(transform, dx, dy) {\n return multiply(transform, set(tmp_, 1, 0, 0, 1, dx, dy));\n}\n/**\n * Creates a composite transform given an initial translation, scale, rotation, and\n * final translation (in that order only, not commutative).\n * @param {!Transform} transform The transform (will be modified in place).\n * @param {number} dx1 Initial translation x.\n * @param {number} dy1 Initial translation y.\n * @param {number} sx Scale factor x.\n * @param {number} sy Scale factor y.\n * @param {number} angle Rotation (in counter-clockwise radians).\n * @param {number} dx2 Final translation x.\n * @param {number} dy2 Final translation y.\n * @return {!Transform} The composite transform.\n */\nexport function compose(transform, dx1, dy1, sx, sy, angle, dx2, dy2) {\n var sin = Math.sin(angle);\n var cos = Math.cos(angle);\n transform[0] = sx * cos;\n transform[1] = sy * sin;\n transform[2] = -sx * sin;\n transform[3] = sy * cos;\n transform[4] = dx2 * sx * cos - dy2 * sx * sin + dx1;\n transform[5] = dx2 * sy * sin + dy2 * sy * cos + dy1;\n return transform;\n}\n/**\n * Creates a composite transform given an initial translation, scale, rotation, and\n * final translation (in that order only, not commutative). The resulting transform\n * string can be applied as `transform` property of an HTMLElement's style.\n * @param {number} dx1 Initial translation x.\n * @param {number} dy1 Initial translation y.\n * @param {number} sx Scale factor x.\n * @param {number} sy Scale factor y.\n * @param {number} angle Rotation (in counter-clockwise radians).\n * @param {number} dx2 Final translation x.\n * @param {number} dy2 Final translation y.\n * @return {string} The composite css transform.\n * @api\n */\nexport function composeCssTransform(dx1, dy1, sx, sy, angle, dx2, dy2) {\n return toString(compose(create(), dx1, dy1, sx, sy, angle, dx2, dy2));\n}\n/**\n * Invert the given transform.\n * @param {!Transform} source The source transform to invert.\n * @return {!Transform} The inverted (source) transform.\n */\nexport function invert(source) {\n return makeInverse(source, source);\n}\n/**\n * Invert the given transform.\n * @param {!Transform} target Transform to be set as the inverse of\n * the source transform.\n * @param {!Transform} source The source transform to invert.\n * @return {!Transform} The inverted (target) transform.\n */\nexport function makeInverse(target, source) {\n var det = determinant(source);\n assert(det !== 0, 32); // Transformation matrix cannot be inverted\n var a = source[0];\n var b = source[1];\n var c = source[2];\n var d = source[3];\n var e = source[4];\n var f = source[5];\n target[0] = d / det;\n target[1] = -b / det;\n target[2] = -c / det;\n target[3] = a / det;\n target[4] = (c * f - d * e) / det;\n target[5] = -(a * f - b * e) / det;\n return target;\n}\n/**\n * Returns the determinant of the given matrix.\n * @param {!Transform} mat Matrix.\n * @return {number} Determinant.\n */\nexport function determinant(mat) {\n return mat[0] * mat[3] - mat[1] * mat[2];\n}\n/**\n * @type {HTMLElement}\n * @private\n */\nvar transformStringDiv;\n/**\n * A rounded string version of the transform. This can be used\n * for CSS transforms.\n * @param {!Transform} mat Matrix.\n * @return {string} The transform as a string.\n */\nexport function toString(mat) {\n var transformString = 'matrix(' + mat.join(', ') + ')';\n if (WORKER_OFFSCREEN_CANVAS) {\n return transformString;\n }\n var node = transformStringDiv || (transformStringDiv = document.createElement('div'));\n node.style.transform = transformString;\n return node.style.transform;\n}\n//# sourceMappingURL=transform.js.map","/**\n * @module ol/has\n */\nvar ua = typeof navigator !== 'undefined' && typeof navigator.userAgent !== 'undefined'\n ? navigator.userAgent.toLowerCase()\n : '';\n/**\n * User agent string says we are dealing with Firefox as browser.\n * @type {boolean}\n */\nexport var FIREFOX = ua.indexOf('firefox') !== -1;\n/**\n * User agent string says we are dealing with Safari as browser.\n * @type {boolean}\n */\nexport var SAFARI = ua.indexOf('safari') !== -1 && ua.indexOf('chrom') == -1;\n/**\n * User agent string says we are dealing with a WebKit engine.\n * @type {boolean}\n */\nexport var WEBKIT = ua.indexOf('webkit') !== -1 && ua.indexOf('edge') == -1;\n/**\n * User agent string says we are dealing with a Mac as platform.\n * @type {boolean}\n */\nexport var MAC = ua.indexOf('macintosh') !== -1;\n/**\n * The ratio between physical pixels and device-independent pixels\n * (dips) on the device (`window.devicePixelRatio`).\n * @const\n * @type {number}\n * @api\n */\nexport var DEVICE_PIXEL_RATIO = typeof devicePixelRatio !== 'undefined' ? devicePixelRatio : 1;\n/**\n * The execution context is a worker with OffscreenCanvas available.\n * @const\n * @type {boolean}\n */\nexport var WORKER_OFFSCREEN_CANVAS = typeof WorkerGlobalScope !== 'undefined' &&\n typeof OffscreenCanvas !== 'undefined' &&\n self instanceof WorkerGlobalScope; //eslint-disable-line\n/**\n * Image.prototype.decode() is supported.\n * @type {boolean}\n */\nexport var IMAGE_DECODE = typeof Image !== 'undefined' && Image.prototype.decode;\n/**\n * @type {boolean}\n */\nexport var PASSIVE_EVENT_LISTENERS = (function () {\n var passive = false;\n try {\n var options = Object.defineProperty({}, 'passive', {\n get: function () {\n passive = true;\n },\n });\n window.addEventListener('_', null, options);\n window.removeEventListener('_', null, options);\n }\n catch (error) {\n // passive not supported\n }\n return passive;\n})();\n//# sourceMappingURL=has.js.map","/**\n * @module ol/extent/Corner\n */\n/**\n * Extent corner.\n * @enum {string}\n */\nexport default {\n BOTTOM_LEFT: 'bottom-left',\n BOTTOM_RIGHT: 'bottom-right',\n TOP_LEFT: 'top-left',\n TOP_RIGHT: 'top-right',\n};\n//# sourceMappingURL=Corner.js.map","/**\n * @module ol/extent/Relationship\n */\n/**\n * Relationship to an extent.\n * @enum {number}\n */\nexport default {\n UNKNOWN: 0,\n INTERSECTING: 1,\n ABOVE: 2,\n RIGHT: 4,\n BELOW: 8,\n LEFT: 16,\n};\n//# sourceMappingURL=Relationship.js.map","/**\n * @module ol/extent\n */\nimport Corner from './extent/Corner.js';\nimport Relationship from './extent/Relationship.js';\nimport { assert } from './asserts.js';\n/**\n * An array of numbers representing an extent: `[minx, miny, maxx, maxy]`.\n * @typedef {Array} Extent\n * @api\n */\n/**\n * Build an extent that includes all given coordinates.\n *\n * @param {Array} coordinates Coordinates.\n * @return {Extent} Bounding extent.\n * @api\n */\nexport function boundingExtent(coordinates) {\n var extent = createEmpty();\n for (var i = 0, ii = coordinates.length; i < ii; ++i) {\n extendCoordinate(extent, coordinates[i]);\n }\n return extent;\n}\n/**\n * @param {Array} xs Xs.\n * @param {Array} ys Ys.\n * @param {Extent} [opt_extent] Destination extent.\n * @private\n * @return {Extent} Extent.\n */\nfunction _boundingExtentXYs(xs, ys, opt_extent) {\n var minX = Math.min.apply(null, xs);\n var minY = Math.min.apply(null, ys);\n var maxX = Math.max.apply(null, xs);\n var maxY = Math.max.apply(null, ys);\n return createOrUpdate(minX, minY, maxX, maxY, opt_extent);\n}\n/**\n * Return extent increased by the provided value.\n * @param {Extent} extent Extent.\n * @param {number} value The amount by which the extent should be buffered.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n * @api\n */\nexport function buffer(extent, value, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = extent[0] - value;\n opt_extent[1] = extent[1] - value;\n opt_extent[2] = extent[2] + value;\n opt_extent[3] = extent[3] + value;\n return opt_extent;\n }\n else {\n return [\n extent[0] - value,\n extent[1] - value,\n extent[2] + value,\n extent[3] + value,\n ];\n }\n}\n/**\n * Creates a clone of an extent.\n *\n * @param {Extent} extent Extent to clone.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} The clone.\n */\nexport function clone(extent, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = extent[0];\n opt_extent[1] = extent[1];\n opt_extent[2] = extent[2];\n opt_extent[3] = extent[3];\n return opt_extent;\n }\n else {\n return extent.slice();\n }\n}\n/**\n * @param {Extent} extent Extent.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {number} Closest squared distance.\n */\nexport function closestSquaredDistanceXY(extent, x, y) {\n var dx, dy;\n if (x < extent[0]) {\n dx = extent[0] - x;\n }\n else if (extent[2] < x) {\n dx = x - extent[2];\n }\n else {\n dx = 0;\n }\n if (y < extent[1]) {\n dy = extent[1] - y;\n }\n else if (extent[3] < y) {\n dy = y - extent[3];\n }\n else {\n dy = 0;\n }\n return dx * dx + dy * dy;\n}\n/**\n * Check if the passed coordinate is contained or on the edge of the extent.\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} The coordinate is contained in the extent.\n * @api\n */\nexport function containsCoordinate(extent, coordinate) {\n return containsXY(extent, coordinate[0], coordinate[1]);\n}\n/**\n * Check if one extent contains another.\n *\n * An extent is deemed contained if it lies completely within the other extent,\n * including if they share one or more edges.\n *\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {boolean} The second extent is contained by or on the edge of the\n * first.\n * @api\n */\nexport function containsExtent(extent1, extent2) {\n return (extent1[0] <= extent2[0] &&\n extent2[2] <= extent1[2] &&\n extent1[1] <= extent2[1] &&\n extent2[3] <= extent1[3]);\n}\n/**\n * Check if the passed coordinate is contained or on the edge of the extent.\n *\n * @param {Extent} extent Extent.\n * @param {number} x X coordinate.\n * @param {number} y Y coordinate.\n * @return {boolean} The x, y values are contained in the extent.\n * @api\n */\nexport function containsXY(extent, x, y) {\n return extent[0] <= x && x <= extent[2] && extent[1] <= y && y <= extent[3];\n}\n/**\n * Get the relationship between a coordinate and extent.\n * @param {Extent} extent The extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate The coordinate.\n * @return {import(\"./extent/Relationship.js\").default} The relationship (bitwise compare with\n * import(\"./extent/Relationship.js\").Relationship).\n */\nexport function coordinateRelationship(extent, coordinate) {\n var minX = extent[0];\n var minY = extent[1];\n var maxX = extent[2];\n var maxY = extent[3];\n var x = coordinate[0];\n var y = coordinate[1];\n var relationship = Relationship.UNKNOWN;\n if (x < minX) {\n relationship = relationship | Relationship.LEFT;\n }\n else if (x > maxX) {\n relationship = relationship | Relationship.RIGHT;\n }\n if (y < minY) {\n relationship = relationship | Relationship.BELOW;\n }\n else if (y > maxY) {\n relationship = relationship | Relationship.ABOVE;\n }\n if (relationship === Relationship.UNKNOWN) {\n relationship = Relationship.INTERSECTING;\n }\n return relationship;\n}\n/**\n * Create an empty extent.\n * @return {Extent} Empty extent.\n * @api\n */\nexport function createEmpty() {\n return [Infinity, Infinity, -Infinity, -Infinity];\n}\n/**\n * Create a new extent or update the provided extent.\n * @param {number} minX Minimum X.\n * @param {number} minY Minimum Y.\n * @param {number} maxX Maximum X.\n * @param {number} maxY Maximum Y.\n * @param {Extent} [opt_extent] Destination extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdate(minX, minY, maxX, maxY, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = minX;\n opt_extent[1] = minY;\n opt_extent[2] = maxX;\n opt_extent[3] = maxY;\n return opt_extent;\n }\n else {\n return [minX, minY, maxX, maxY];\n }\n}\n/**\n * Create a new empty extent or make the provided one empty.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateEmpty(opt_extent) {\n return createOrUpdate(Infinity, Infinity, -Infinity, -Infinity, opt_extent);\n}\n/**\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromCoordinate(coordinate, opt_extent) {\n var x = coordinate[0];\n var y = coordinate[1];\n return createOrUpdate(x, y, x, y, opt_extent);\n}\n/**\n * @param {Array} coordinates Coordinates.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromCoordinates(coordinates, opt_extent) {\n var extent = createOrUpdateEmpty(opt_extent);\n return extendCoordinates(extent, coordinates);\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromFlatCoordinates(flatCoordinates, offset, end, stride, opt_extent) {\n var extent = createOrUpdateEmpty(opt_extent);\n return extendFlatCoordinates(extent, flatCoordinates, offset, end, stride);\n}\n/**\n * @param {Array>} rings Rings.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromRings(rings, opt_extent) {\n var extent = createOrUpdateEmpty(opt_extent);\n return extendRings(extent, rings);\n}\n/**\n * Determine if two extents are equivalent.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {boolean} The two extents are equivalent.\n * @api\n */\nexport function equals(extent1, extent2) {\n return (extent1[0] == extent2[0] &&\n extent1[2] == extent2[2] &&\n extent1[1] == extent2[1] &&\n extent1[3] == extent2[3]);\n}\n/**\n * Determine if two extents are approximately equivalent.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @param {number} tolerance Tolerance in extent coordinate units.\n * @return {boolean} The two extents differ by less than the tolerance.\n */\nexport function approximatelyEquals(extent1, extent2, tolerance) {\n return (Math.abs(extent1[0] - extent2[0]) < tolerance &&\n Math.abs(extent1[2] - extent2[2]) < tolerance &&\n Math.abs(extent1[1] - extent2[1]) < tolerance &&\n Math.abs(extent1[3] - extent2[3]) < tolerance);\n}\n/**\n * Modify an extent to include another extent.\n * @param {Extent} extent1 The extent to be modified.\n * @param {Extent} extent2 The extent that will be included in the first.\n * @return {Extent} A reference to the first (extended) extent.\n * @api\n */\nexport function extend(extent1, extent2) {\n if (extent2[0] < extent1[0]) {\n extent1[0] = extent2[0];\n }\n if (extent2[2] > extent1[2]) {\n extent1[2] = extent2[2];\n }\n if (extent2[1] < extent1[1]) {\n extent1[1] = extent2[1];\n }\n if (extent2[3] > extent1[3]) {\n extent1[3] = extent2[3];\n }\n return extent1;\n}\n/**\n * @param {Extent} extent Extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n */\nexport function extendCoordinate(extent, coordinate) {\n if (coordinate[0] < extent[0]) {\n extent[0] = coordinate[0];\n }\n if (coordinate[0] > extent[2]) {\n extent[2] = coordinate[0];\n }\n if (coordinate[1] < extent[1]) {\n extent[1] = coordinate[1];\n }\n if (coordinate[1] > extent[3]) {\n extent[3] = coordinate[1];\n }\n}\n/**\n * @param {Extent} extent Extent.\n * @param {Array} coordinates Coordinates.\n * @return {Extent} Extent.\n */\nexport function extendCoordinates(extent, coordinates) {\n for (var i = 0, ii = coordinates.length; i < ii; ++i) {\n extendCoordinate(extent, coordinates[i]);\n }\n return extent;\n}\n/**\n * @param {Extent} extent Extent.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {Extent} Extent.\n */\nexport function extendFlatCoordinates(extent, flatCoordinates, offset, end, stride) {\n for (; offset < end; offset += stride) {\n extendXY(extent, flatCoordinates[offset], flatCoordinates[offset + 1]);\n }\n return extent;\n}\n/**\n * @param {Extent} extent Extent.\n * @param {Array>} rings Rings.\n * @return {Extent} Extent.\n */\nexport function extendRings(extent, rings) {\n for (var i = 0, ii = rings.length; i < ii; ++i) {\n extendCoordinates(extent, rings[i]);\n }\n return extent;\n}\n/**\n * @param {Extent} extent Extent.\n * @param {number} x X.\n * @param {number} y Y.\n */\nexport function extendXY(extent, x, y) {\n extent[0] = Math.min(extent[0], x);\n extent[1] = Math.min(extent[1], y);\n extent[2] = Math.max(extent[2], x);\n extent[3] = Math.max(extent[3], y);\n}\n/**\n * This function calls `callback` for each corner of the extent. If the\n * callback returns a truthy value the function returns that value\n * immediately. Otherwise the function returns `false`.\n * @param {Extent} extent Extent.\n * @param {function(import(\"./coordinate.js\").Coordinate): S} callback Callback.\n * @return {S|boolean} Value.\n * @template S\n */\nexport function forEachCorner(extent, callback) {\n var val;\n val = callback(getBottomLeft(extent));\n if (val) {\n return val;\n }\n val = callback(getBottomRight(extent));\n if (val) {\n return val;\n }\n val = callback(getTopRight(extent));\n if (val) {\n return val;\n }\n val = callback(getTopLeft(extent));\n if (val) {\n return val;\n }\n return false;\n}\n/**\n * Get the size of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Area.\n * @api\n */\nexport function getArea(extent) {\n var area = 0;\n if (!isEmpty(extent)) {\n area = getWidth(extent) * getHeight(extent);\n }\n return area;\n}\n/**\n * Get the bottom left coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Bottom left coordinate.\n * @api\n */\nexport function getBottomLeft(extent) {\n return [extent[0], extent[1]];\n}\n/**\n * Get the bottom right coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Bottom right coordinate.\n * @api\n */\nexport function getBottomRight(extent) {\n return [extent[2], extent[1]];\n}\n/**\n * Get the center coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Center.\n * @api\n */\nexport function getCenter(extent) {\n return [(extent[0] + extent[2]) / 2, (extent[1] + extent[3]) / 2];\n}\n/**\n * Get a corner coordinate of an extent.\n * @param {Extent} extent Extent.\n * @param {import(\"./extent/Corner.js\").default} corner Corner.\n * @return {import(\"./coordinate.js\").Coordinate} Corner coordinate.\n */\nexport function getCorner(extent, corner) {\n var coordinate;\n if (corner === Corner.BOTTOM_LEFT) {\n coordinate = getBottomLeft(extent);\n }\n else if (corner === Corner.BOTTOM_RIGHT) {\n coordinate = getBottomRight(extent);\n }\n else if (corner === Corner.TOP_LEFT) {\n coordinate = getTopLeft(extent);\n }\n else if (corner === Corner.TOP_RIGHT) {\n coordinate = getTopRight(extent);\n }\n else {\n assert(false, 13); // Invalid corner\n }\n return coordinate;\n}\n/**\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {number} Enlarged area.\n */\nexport function getEnlargedArea(extent1, extent2) {\n var minX = Math.min(extent1[0], extent2[0]);\n var minY = Math.min(extent1[1], extent2[1]);\n var maxX = Math.max(extent1[2], extent2[2]);\n var maxY = Math.max(extent1[3], extent2[3]);\n return (maxX - minX) * (maxY - minY);\n}\n/**\n * @param {import(\"./coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {import(\"./size.js\").Size} size Size.\n * @param {Extent} [opt_extent] Destination extent.\n * @return {Extent} Extent.\n */\nexport function getForViewAndSize(center, resolution, rotation, size, opt_extent) {\n var dx = (resolution * size[0]) / 2;\n var dy = (resolution * size[1]) / 2;\n var cosRotation = Math.cos(rotation);\n var sinRotation = Math.sin(rotation);\n var xCos = dx * cosRotation;\n var xSin = dx * sinRotation;\n var yCos = dy * cosRotation;\n var ySin = dy * sinRotation;\n var x = center[0];\n var y = center[1];\n var x0 = x - xCos + ySin;\n var x1 = x - xCos - ySin;\n var x2 = x + xCos - ySin;\n var x3 = x + xCos + ySin;\n var y0 = y - xSin - yCos;\n var y1 = y - xSin + yCos;\n var y2 = y + xSin + yCos;\n var y3 = y + xSin - yCos;\n return createOrUpdate(Math.min(x0, x1, x2, x3), Math.min(y0, y1, y2, y3), Math.max(x0, x1, x2, x3), Math.max(y0, y1, y2, y3), opt_extent);\n}\n/**\n * Get the height of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Height.\n * @api\n */\nexport function getHeight(extent) {\n return extent[3] - extent[1];\n}\n/**\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {number} Intersection area.\n */\nexport function getIntersectionArea(extent1, extent2) {\n var intersection = getIntersection(extent1, extent2);\n return getArea(intersection);\n}\n/**\n * Get the intersection of two extents.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @param {Extent} [opt_extent] Optional extent to populate with intersection.\n * @return {Extent} Intersecting extent.\n * @api\n */\nexport function getIntersection(extent1, extent2, opt_extent) {\n var intersection = opt_extent ? opt_extent : createEmpty();\n if (intersects(extent1, extent2)) {\n if (extent1[0] > extent2[0]) {\n intersection[0] = extent1[0];\n }\n else {\n intersection[0] = extent2[0];\n }\n if (extent1[1] > extent2[1]) {\n intersection[1] = extent1[1];\n }\n else {\n intersection[1] = extent2[1];\n }\n if (extent1[2] < extent2[2]) {\n intersection[2] = extent1[2];\n }\n else {\n intersection[2] = extent2[2];\n }\n if (extent1[3] < extent2[3]) {\n intersection[3] = extent1[3];\n }\n else {\n intersection[3] = extent2[3];\n }\n }\n else {\n createOrUpdateEmpty(intersection);\n }\n return intersection;\n}\n/**\n * @param {Extent} extent Extent.\n * @return {number} Margin.\n */\nexport function getMargin(extent) {\n return getWidth(extent) + getHeight(extent);\n}\n/**\n * Get the size (width, height) of an extent.\n * @param {Extent} extent The extent.\n * @return {import(\"./size.js\").Size} The extent size.\n * @api\n */\nexport function getSize(extent) {\n return [extent[2] - extent[0], extent[3] - extent[1]];\n}\n/**\n * Get the top left coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Top left coordinate.\n * @api\n */\nexport function getTopLeft(extent) {\n return [extent[0], extent[3]];\n}\n/**\n * Get the top right coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Top right coordinate.\n * @api\n */\nexport function getTopRight(extent) {\n return [extent[2], extent[3]];\n}\n/**\n * Get the width of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Width.\n * @api\n */\nexport function getWidth(extent) {\n return extent[2] - extent[0];\n}\n/**\n * Determine if one extent intersects another.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent.\n * @return {boolean} The two extents intersect.\n * @api\n */\nexport function intersects(extent1, extent2) {\n return (extent1[0] <= extent2[2] &&\n extent1[2] >= extent2[0] &&\n extent1[1] <= extent2[3] &&\n extent1[3] >= extent2[1]);\n}\n/**\n * Determine if an extent is empty.\n * @param {Extent} extent Extent.\n * @return {boolean} Is empty.\n * @api\n */\nexport function isEmpty(extent) {\n return extent[2] < extent[0] || extent[3] < extent[1];\n}\n/**\n * @param {Extent} extent Extent.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function returnOrUpdate(extent, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = extent[0];\n opt_extent[1] = extent[1];\n opt_extent[2] = extent[2];\n opt_extent[3] = extent[3];\n return opt_extent;\n }\n else {\n return extent;\n }\n}\n/**\n * @param {Extent} extent Extent.\n * @param {number} value Value.\n */\nexport function scaleFromCenter(extent, value) {\n var deltaX = ((extent[2] - extent[0]) / 2) * (value - 1);\n var deltaY = ((extent[3] - extent[1]) / 2) * (value - 1);\n extent[0] -= deltaX;\n extent[2] += deltaX;\n extent[1] -= deltaY;\n extent[3] += deltaY;\n}\n/**\n * Determine if the segment between two coordinates intersects (crosses,\n * touches, or is contained by) the provided extent.\n * @param {Extent} extent The extent.\n * @param {import(\"./coordinate.js\").Coordinate} start Segment start coordinate.\n * @param {import(\"./coordinate.js\").Coordinate} end Segment end coordinate.\n * @return {boolean} The segment intersects the extent.\n */\nexport function intersectsSegment(extent, start, end) {\n var intersects = false;\n var startRel = coordinateRelationship(extent, start);\n var endRel = coordinateRelationship(extent, end);\n if (startRel === Relationship.INTERSECTING ||\n endRel === Relationship.INTERSECTING) {\n intersects = true;\n }\n else {\n var minX = extent[0];\n var minY = extent[1];\n var maxX = extent[2];\n var maxY = extent[3];\n var startX = start[0];\n var startY = start[1];\n var endX = end[0];\n var endY = end[1];\n var slope = (endY - startY) / (endX - startX);\n var x = void 0, y = void 0;\n if (!!(endRel & Relationship.ABOVE) && !(startRel & Relationship.ABOVE)) {\n // potentially intersects top\n x = endX - (endY - maxY) / slope;\n intersects = x >= minX && x <= maxX;\n }\n if (!intersects &&\n !!(endRel & Relationship.RIGHT) &&\n !(startRel & Relationship.RIGHT)) {\n // potentially intersects right\n y = endY - (endX - maxX) * slope;\n intersects = y >= minY && y <= maxY;\n }\n if (!intersects &&\n !!(endRel & Relationship.BELOW) &&\n !(startRel & Relationship.BELOW)) {\n // potentially intersects bottom\n x = endX - (endY - minY) / slope;\n intersects = x >= minX && x <= maxX;\n }\n if (!intersects &&\n !!(endRel & Relationship.LEFT) &&\n !(startRel & Relationship.LEFT)) {\n // potentially intersects left\n y = endY - (endX - minX) * slope;\n intersects = y >= minY && y <= maxY;\n }\n }\n return intersects;\n}\n/**\n * Apply a transform function to the extent.\n * @param {Extent} extent Extent.\n * @param {import(\"./proj.js\").TransformFunction} transformFn Transform function.\n * Called with `[minX, minY, maxX, maxY]` extent coordinates.\n * @param {Extent} [opt_extent] Destination extent.\n * @param {number} [opt_stops] Number of stops per side used for the transform.\n * By default only the corners are used.\n * @return {Extent} Extent.\n * @api\n */\nexport function applyTransform(extent, transformFn, opt_extent, opt_stops) {\n var coordinates = [];\n if (opt_stops > 1) {\n var width = extent[2] - extent[0];\n var height = extent[3] - extent[1];\n for (var i = 0; i < opt_stops; ++i) {\n coordinates.push(extent[0] + (width * i) / opt_stops, extent[1], extent[2], extent[1] + (height * i) / opt_stops, extent[2] - (width * i) / opt_stops, extent[3], extent[0], extent[3] - (height * i) / opt_stops);\n }\n }\n else {\n coordinates = [\n extent[0],\n extent[1],\n extent[2],\n extent[1],\n extent[2],\n extent[3],\n extent[0],\n extent[3],\n ];\n }\n transformFn(coordinates, coordinates, 2);\n var xs = [];\n var ys = [];\n for (var i = 0, l = coordinates.length; i < l; i += 2) {\n xs.push(coordinates[i]);\n ys.push(coordinates[i + 1]);\n }\n return _boundingExtentXYs(xs, ys, opt_extent);\n}\n/**\n * Modifies the provided extent in-place to be within the real world\n * extent.\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./proj/Projection.js\").default} projection Projection\n * @return {Extent} The extent within the real world extent.\n */\nexport function wrapX(extent, projection) {\n var projectionExtent = projection.getExtent();\n var center = getCenter(extent);\n if (projection.canWrapX() &&\n (center[0] < projectionExtent[0] || center[0] >= projectionExtent[2])) {\n var worldWidth = getWidth(projectionExtent);\n var worldsAway = Math.floor((center[0] - projectionExtent[0]) / worldWidth);\n var offset = worldsAway * worldWidth;\n extent[0] -= offset;\n extent[2] -= offset;\n }\n return extent;\n}\n//# sourceMappingURL=extent.js.map","/**\n * @module ol/proj/Projection\n */\nimport { METERS_PER_UNIT } from './Units.js';\n/**\n * @typedef {Object} Options\n * @property {string} code The SRS identifier code, e.g. `EPSG:4326`.\n * @property {import(\"./Units.js\").default|string} [units] Units. Required unless a\n * proj4 projection is defined for `code`.\n * @property {import(\"../extent.js\").Extent} [extent] The validity extent for the SRS.\n * @property {string} [axisOrientation='enu'] The axis orientation as specified in Proj4.\n * @property {boolean} [global=false] Whether the projection is valid for the whole globe.\n * @property {number} [metersPerUnit] The meters per unit for the SRS.\n * If not provided, the `units` are used to get the meters per unit from the {@link module:ol/proj/Units~METERS_PER_UNIT}\n * lookup table.\n * @property {import(\"../extent.js\").Extent} [worldExtent] The world extent for the SRS.\n * @property {function(number, import(\"../coordinate.js\").Coordinate):number} [getPointResolution]\n * Function to determine resolution at a point. The function is called with a\n * `number` view resolution and a {@link module:ol/coordinate~Coordinate Coordinate} as arguments, and returns\n * the `number` resolution in projection units at the passed coordinate. If this is `undefined`,\n * the default {@link module:ol/proj.getPointResolution getPointResolution()} function will be used.\n */\n/**\n * @classdesc\n * Projection definition class. One of these is created for each projection\n * supported in the application and stored in the {@link module:ol/proj} namespace.\n * You can use these in applications, but this is not required, as API params\n * and options use {@link module:ol/proj~ProjectionLike} which means the simple string\n * code will suffice.\n *\n * You can use {@link module:ol/proj.get} to retrieve the object for a particular\n * projection.\n *\n * The library includes definitions for `EPSG:4326` and `EPSG:3857`, together\n * with the following aliases:\n * * `EPSG:4326`: CRS:84, urn:ogc:def:crs:EPSG:6.6:4326,\n * urn:ogc:def:crs:OGC:1.3:CRS84, urn:ogc:def:crs:OGC:2:84,\n * http://www.opengis.net/gml/srs/epsg.xml#4326,\n * urn:x-ogc:def:crs:EPSG:4326\n * * `EPSG:3857`: EPSG:102100, EPSG:102113, EPSG:900913,\n * urn:ogc:def:crs:EPSG:6.18:3:3857,\n * http://www.opengis.net/gml/srs/epsg.xml#3857\n *\n * If you use [proj4js](https://github.com/proj4js/proj4js), aliases can\n * be added using `proj4.defs()`. After all required projection definitions are\n * added, call the {@link module:ol/proj/proj4.register} function.\n *\n * @api\n */\nvar Projection = /** @class */ (function () {\n /**\n * @param {Options} options Projection options.\n */\n function Projection(options) {\n /**\n * @private\n * @type {string}\n */\n this.code_ = options.code;\n /**\n * Units of projected coordinates. When set to `TILE_PIXELS`, a\n * `this.extent_` and `this.worldExtent_` must be configured properly for each\n * tile.\n * @private\n * @type {import(\"./Units.js\").default}\n */\n this.units_ = /** @type {import(\"./Units.js\").default} */ (options.units);\n /**\n * Validity extent of the projection in projected coordinates. For projections\n * with `TILE_PIXELS` units, this is the extent of the tile in\n * tile pixel space.\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.extent_ = options.extent !== undefined ? options.extent : null;\n /**\n * Extent of the world in EPSG:4326. For projections with\n * `TILE_PIXELS` units, this is the extent of the tile in\n * projected coordinate space.\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.worldExtent_ =\n options.worldExtent !== undefined ? options.worldExtent : null;\n /**\n * @private\n * @type {string}\n */\n this.axisOrientation_ =\n options.axisOrientation !== undefined ? options.axisOrientation : 'enu';\n /**\n * @private\n * @type {boolean}\n */\n this.global_ = options.global !== undefined ? options.global : false;\n /**\n * @private\n * @type {boolean}\n */\n this.canWrapX_ = !!(this.global_ && this.extent_);\n /**\n * @private\n * @type {function(number, import(\"../coordinate.js\").Coordinate):number|undefined}\n */\n this.getPointResolutionFunc_ = options.getPointResolution;\n /**\n * @private\n * @type {import(\"../tilegrid/TileGrid.js\").default}\n */\n this.defaultTileGrid_ = null;\n /**\n * @private\n * @type {number|undefined}\n */\n this.metersPerUnit_ = options.metersPerUnit;\n }\n /**\n * @return {boolean} The projection is suitable for wrapping the x-axis\n */\n Projection.prototype.canWrapX = function () {\n return this.canWrapX_;\n };\n /**\n * Get the code for this projection, e.g. 'EPSG:4326'.\n * @return {string} Code.\n * @api\n */\n Projection.prototype.getCode = function () {\n return this.code_;\n };\n /**\n * Get the validity extent for this projection.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n Projection.prototype.getExtent = function () {\n return this.extent_;\n };\n /**\n * Get the units of this projection.\n * @return {import(\"./Units.js\").default} Units.\n * @api\n */\n Projection.prototype.getUnits = function () {\n return this.units_;\n };\n /**\n * Get the amount of meters per unit of this projection. If the projection is\n * not configured with `metersPerUnit` or a units identifier, the return is\n * `undefined`.\n * @return {number|undefined} Meters.\n * @api\n */\n Projection.prototype.getMetersPerUnit = function () {\n return this.metersPerUnit_ || METERS_PER_UNIT[this.units_];\n };\n /**\n * Get the world extent for this projection.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n Projection.prototype.getWorldExtent = function () {\n return this.worldExtent_;\n };\n /**\n * Get the axis orientation of this projection.\n * Example values are:\n * enu - the default easting, northing, elevation.\n * neu - northing, easting, up - useful for \"lat/long\" geographic coordinates,\n * or south orientated transverse mercator.\n * wnu - westing, northing, up - some planetary coordinate systems have\n * \"west positive\" coordinate systems\n * @return {string} Axis orientation.\n * @api\n */\n Projection.prototype.getAxisOrientation = function () {\n return this.axisOrientation_;\n };\n /**\n * Is this projection a global projection which spans the whole world?\n * @return {boolean} Whether the projection is global.\n * @api\n */\n Projection.prototype.isGlobal = function () {\n return this.global_;\n };\n /**\n * Set if the projection is a global projection which spans the whole world\n * @param {boolean} global Whether the projection is global.\n * @api\n */\n Projection.prototype.setGlobal = function (global) {\n this.global_ = global;\n this.canWrapX_ = !!(global && this.extent_);\n };\n /**\n * @return {import(\"../tilegrid/TileGrid.js\").default} The default tile grid.\n */\n Projection.prototype.getDefaultTileGrid = function () {\n return this.defaultTileGrid_;\n };\n /**\n * @param {import(\"../tilegrid/TileGrid.js\").default} tileGrid The default tile grid.\n */\n Projection.prototype.setDefaultTileGrid = function (tileGrid) {\n this.defaultTileGrid_ = tileGrid;\n };\n /**\n * Set the validity extent for this projection.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @api\n */\n Projection.prototype.setExtent = function (extent) {\n this.extent_ = extent;\n this.canWrapX_ = !!(this.global_ && extent);\n };\n /**\n * Set the world extent for this projection.\n * @param {import(\"../extent.js\").Extent} worldExtent World extent\n * [minlon, minlat, maxlon, maxlat].\n * @api\n */\n Projection.prototype.setWorldExtent = function (worldExtent) {\n this.worldExtent_ = worldExtent;\n };\n /**\n * Set the getPointResolution function (see {@link module:ol/proj.getPointResolution}\n * for this projection.\n * @param {function(number, import(\"../coordinate.js\").Coordinate):number} func Function\n * @api\n */\n Projection.prototype.setGetPointResolution = function (func) {\n this.getPointResolutionFunc_ = func;\n };\n /**\n * Get the custom point resolution function for this projection (if set).\n * @return {function(number, import(\"../coordinate.js\").Coordinate):number|undefined} The custom point\n * resolution function (if set).\n */\n Projection.prototype.getPointResolutionFunc = function () {\n return this.getPointResolutionFunc_;\n };\n return Projection;\n}());\nexport default Projection;\n//# sourceMappingURL=Projection.js.map","/**\n * @module ol/math\n */\n/**\n * Takes a number and clamps it to within the provided bounds.\n * @param {number} value The input number.\n * @param {number} min The minimum value to return.\n * @param {number} max The maximum value to return.\n * @return {number} The input number if it is within bounds, or the nearest\n * number within the bounds.\n */\nexport function clamp(value, min, max) {\n return Math.min(Math.max(value, min), max);\n}\n/**\n * Return the hyperbolic cosine of a given number. The method will use the\n * native `Math.cosh` function if it is available, otherwise the hyperbolic\n * cosine will be calculated via the reference implementation of the Mozilla\n * developer network.\n *\n * @param {number} x X.\n * @return {number} Hyperbolic cosine of x.\n */\nexport var cosh = (function () {\n // Wrapped in a iife, to save the overhead of checking for the native\n // implementation on every invocation.\n var cosh;\n if ('cosh' in Math) {\n // The environment supports the native Math.cosh function, use it…\n cosh = Math.cosh;\n }\n else {\n // … else, use the reference implementation of MDN:\n cosh = function (x) {\n var y = /** @type {Math} */ (Math).exp(x);\n return (y + 1 / y) / 2;\n };\n }\n return cosh;\n})();\n/**\n * Return the base 2 logarithm of a given number. The method will use the\n * native `Math.log2` function if it is available, otherwise the base 2\n * logarithm will be calculated via the reference implementation of the\n * Mozilla developer network.\n *\n * @param {number} x X.\n * @return {number} Base 2 logarithm of x.\n */\nexport var log2 = (function () {\n // Wrapped in a iife, to save the overhead of checking for the native\n // implementation on every invocation.\n var log2;\n if ('log2' in Math) {\n // The environment supports the native Math.log2 function, use it…\n log2 = Math.log2;\n }\n else {\n // … else, use the reference implementation of MDN:\n log2 = function (x) {\n return Math.log(x) * Math.LOG2E;\n };\n }\n return log2;\n})();\n/**\n * Returns the square of the closest distance between the point (x, y) and the\n * line segment (x1, y1) to (x2, y2).\n * @param {number} x X.\n * @param {number} y Y.\n * @param {number} x1 X1.\n * @param {number} y1 Y1.\n * @param {number} x2 X2.\n * @param {number} y2 Y2.\n * @return {number} Squared distance.\n */\nexport function squaredSegmentDistance(x, y, x1, y1, x2, y2) {\n var dx = x2 - x1;\n var dy = y2 - y1;\n if (dx !== 0 || dy !== 0) {\n var t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n x1 = x2;\n y1 = y2;\n }\n else if (t > 0) {\n x1 += dx * t;\n y1 += dy * t;\n }\n }\n return squaredDistance(x, y, x1, y1);\n}\n/**\n * Returns the square of the distance between the points (x1, y1) and (x2, y2).\n * @param {number} x1 X1.\n * @param {number} y1 Y1.\n * @param {number} x2 X2.\n * @param {number} y2 Y2.\n * @return {number} Squared distance.\n */\nexport function squaredDistance(x1, y1, x2, y2) {\n var dx = x2 - x1;\n var dy = y2 - y1;\n return dx * dx + dy * dy;\n}\n/**\n * Solves system of linear equations using Gaussian elimination method.\n *\n * @param {Array>} mat Augmented matrix (n x n + 1 column)\n * in row-major order.\n * @return {Array} The resulting vector.\n */\nexport function solveLinearSystem(mat) {\n var n = mat.length;\n for (var i = 0; i < n; i++) {\n // Find max in the i-th column (ignoring i - 1 first rows)\n var maxRow = i;\n var maxEl = Math.abs(mat[i][i]);\n for (var r = i + 1; r < n; r++) {\n var absValue = Math.abs(mat[r][i]);\n if (absValue > maxEl) {\n maxEl = absValue;\n maxRow = r;\n }\n }\n if (maxEl === 0) {\n return null; // matrix is singular\n }\n // Swap max row with i-th (current) row\n var tmp = mat[maxRow];\n mat[maxRow] = mat[i];\n mat[i] = tmp;\n // Subtract the i-th row to make all the remaining rows 0 in the i-th column\n for (var j = i + 1; j < n; j++) {\n var coef = -mat[j][i] / mat[i][i];\n for (var k = i; k < n + 1; k++) {\n if (i == k) {\n mat[j][k] = 0;\n }\n else {\n mat[j][k] += coef * mat[i][k];\n }\n }\n }\n }\n // Solve Ax=b for upper triangular matrix A (mat)\n var x = new Array(n);\n for (var l = n - 1; l >= 0; l--) {\n x[l] = mat[l][n] / mat[l][l];\n for (var m = l - 1; m >= 0; m--) {\n mat[m][n] -= mat[m][l] * x[l];\n }\n }\n return x;\n}\n/**\n * Converts radians to to degrees.\n *\n * @param {number} angleInRadians Angle in radians.\n * @return {number} Angle in degrees.\n */\nexport function toDegrees(angleInRadians) {\n return (angleInRadians * 180) / Math.PI;\n}\n/**\n * Converts degrees to radians.\n *\n * @param {number} angleInDegrees Angle in degrees.\n * @return {number} Angle in radians.\n */\nexport function toRadians(angleInDegrees) {\n return (angleInDegrees * Math.PI) / 180;\n}\n/**\n * Returns the modulo of a / b, depending on the sign of b.\n *\n * @param {number} a Dividend.\n * @param {number} b Divisor.\n * @return {number} Modulo.\n */\nexport function modulo(a, b) {\n var r = a % b;\n return r * b < 0 ? r + b : r;\n}\n/**\n * Calculates the linearly interpolated value of x between a and b.\n *\n * @param {number} a Number\n * @param {number} b Number\n * @param {number} x Value to be interpolated.\n * @return {number} Interpolated value.\n */\nexport function lerp(a, b, x) {\n return a + x * (b - a);\n}\n//# sourceMappingURL=math.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/proj/epsg3857\n */\nimport Projection from './Projection.js';\nimport Units from './Units.js';\nimport { cosh } from '../math.js';\n/**\n * Radius of WGS84 sphere\n *\n * @const\n * @type {number}\n */\nexport var RADIUS = 6378137;\n/**\n * @const\n * @type {number}\n */\nexport var HALF_SIZE = Math.PI * RADIUS;\n/**\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport var EXTENT = [-HALF_SIZE, -HALF_SIZE, HALF_SIZE, HALF_SIZE];\n/**\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport var WORLD_EXTENT = [-180, -85, 180, 85];\n/**\n * Maximum safe value in y direction\n * @const\n * @type {number}\n */\nexport var MAX_SAFE_Y = RADIUS * Math.log(Math.tan(Math.PI / 2));\n/**\n * @classdesc\n * Projection object for web/spherical Mercator (EPSG:3857).\n */\nvar EPSG3857Projection = /** @class */ (function (_super) {\n __extends(EPSG3857Projection, _super);\n /**\n * @param {string} code Code.\n */\n function EPSG3857Projection(code) {\n return _super.call(this, {\n code: code,\n units: Units.METERS,\n extent: EXTENT,\n global: true,\n worldExtent: WORLD_EXTENT,\n getPointResolution: function (resolution, point) {\n return resolution / cosh(point[1] / RADIUS);\n },\n }) || this;\n }\n return EPSG3857Projection;\n}(Projection));\n/**\n * Projections equal to EPSG:3857.\n *\n * @const\n * @type {Array}\n */\nexport var PROJECTIONS = [\n new EPSG3857Projection('EPSG:3857'),\n new EPSG3857Projection('EPSG:102100'),\n new EPSG3857Projection('EPSG:102113'),\n new EPSG3857Projection('EPSG:900913'),\n new EPSG3857Projection('http://www.opengis.net/gml/srs/epsg.xml#3857'),\n];\n/**\n * Transformation from EPSG:4326 to EPSG:3857.\n *\n * @param {Array} input Input array of coordinate values.\n * @param {Array} [opt_output] Output array of coordinate values.\n * @param {number} [opt_dimension] Dimension (default is `2`).\n * @return {Array} Output array of coordinate values.\n */\nexport function fromEPSG4326(input, opt_output, opt_dimension) {\n var length = input.length;\n var dimension = opt_dimension > 1 ? opt_dimension : 2;\n var output = opt_output;\n if (output === undefined) {\n if (dimension > 2) {\n // preserve values beyond second dimension\n output = input.slice();\n }\n else {\n output = new Array(length);\n }\n }\n for (var i = 0; i < length; i += dimension) {\n output[i] = (HALF_SIZE * input[i]) / 180;\n var y = RADIUS * Math.log(Math.tan((Math.PI * (+input[i + 1] + 90)) / 360));\n if (y > MAX_SAFE_Y) {\n y = MAX_SAFE_Y;\n }\n else if (y < -MAX_SAFE_Y) {\n y = -MAX_SAFE_Y;\n }\n output[i + 1] = y;\n }\n return output;\n}\n/**\n * Transformation from EPSG:3857 to EPSG:4326.\n *\n * @param {Array} input Input array of coordinate values.\n * @param {Array} [opt_output] Output array of coordinate values.\n * @param {number} [opt_dimension] Dimension (default is `2`).\n * @return {Array} Output array of coordinate values.\n */\nexport function toEPSG4326(input, opt_output, opt_dimension) {\n var length = input.length;\n var dimension = opt_dimension > 1 ? opt_dimension : 2;\n var output = opt_output;\n if (output === undefined) {\n if (dimension > 2) {\n // preserve values beyond second dimension\n output = input.slice();\n }\n else {\n output = new Array(length);\n }\n }\n for (var i = 0; i < length; i += dimension) {\n output[i] = (180 * input[i]) / HALF_SIZE;\n output[i + 1] =\n (360 * Math.atan(Math.exp(input[i + 1] / RADIUS))) / Math.PI - 90;\n }\n return output;\n}\n//# sourceMappingURL=epsg3857.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/proj/epsg4326\n */\nimport Projection from './Projection.js';\nimport Units from './Units.js';\n/**\n * Semi-major radius of the WGS84 ellipsoid.\n *\n * @const\n * @type {number}\n */\nexport var RADIUS = 6378137;\n/**\n * Extent of the EPSG:4326 projection which is the whole world.\n *\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport var EXTENT = [-180, -90, 180, 90];\n/**\n * @const\n * @type {number}\n */\nexport var METERS_PER_UNIT = (Math.PI * RADIUS) / 180;\n/**\n * @classdesc\n * Projection object for WGS84 geographic coordinates (EPSG:4326).\n *\n * Note that OpenLayers does not strictly comply with the EPSG definition.\n * The EPSG registry defines 4326 as a CRS for Latitude,Longitude (y,x).\n * OpenLayers treats EPSG:4326 as a pseudo-projection, with x,y coordinates.\n */\nvar EPSG4326Projection = /** @class */ (function (_super) {\n __extends(EPSG4326Projection, _super);\n /**\n * @param {string} code Code.\n * @param {string} [opt_axisOrientation] Axis orientation.\n */\n function EPSG4326Projection(code, opt_axisOrientation) {\n return _super.call(this, {\n code: code,\n units: Units.DEGREES,\n extent: EXTENT,\n axisOrientation: opt_axisOrientation,\n global: true,\n metersPerUnit: METERS_PER_UNIT,\n worldExtent: EXTENT,\n }) || this;\n }\n return EPSG4326Projection;\n}(Projection));\n/**\n * Projections equal to EPSG:4326.\n *\n * @const\n * @type {Array}\n */\nexport var PROJECTIONS = [\n new EPSG4326Projection('CRS:84'),\n new EPSG4326Projection('EPSG:4326', 'neu'),\n new EPSG4326Projection('urn:ogc:def:crs:OGC:1.3:CRS84'),\n new EPSG4326Projection('urn:ogc:def:crs:OGC:2:84'),\n new EPSG4326Projection('http://www.opengis.net/gml/srs/epsg.xml#4326', 'neu'),\n];\n//# sourceMappingURL=epsg4326.js.map","/**\n * @module ol/proj/projections\n */\n/**\n * @type {Object}\n */\nvar cache = {};\n/**\n * Clear the projections cache.\n */\nexport function clear() {\n cache = {};\n}\n/**\n * Get a cached projection by code.\n * @param {string} code The code for the projection.\n * @return {import(\"./Projection.js\").default} The projection (if cached).\n */\nexport function get(code) {\n return (cache[code] ||\n cache[code.replace(/urn:(x-)?ogc:def:crs:EPSG:(.*:)?(\\w+)$/, 'EPSG:$3')] ||\n null);\n}\n/**\n * Add a projection to the cache.\n * @param {string} code The projection code.\n * @param {import(\"./Projection.js\").default} projection The projection to cache.\n */\nexport function add(code, projection) {\n cache[code] = projection;\n}\n//# sourceMappingURL=projections.js.map","/**\n * @module ol/proj/transforms\n */\nimport { isEmpty } from '../obj.js';\n/**\n * @private\n * @type {!Object>}\n */\nvar transforms = {};\n/**\n * Clear the transform cache.\n */\nexport function clear() {\n transforms = {};\n}\n/**\n * Registers a conversion function to convert coordinates from the source\n * projection to the destination projection.\n *\n * @param {import(\"./Projection.js\").default} source Source.\n * @param {import(\"./Projection.js\").default} destination Destination.\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform.\n */\nexport function add(source, destination, transformFn) {\n var sourceCode = source.getCode();\n var destinationCode = destination.getCode();\n if (!(sourceCode in transforms)) {\n transforms[sourceCode] = {};\n }\n transforms[sourceCode][destinationCode] = transformFn;\n}\n/**\n * Unregisters the conversion function to convert coordinates from the source\n * projection to the destination projection. This method is used to clean up\n * cached transforms during testing.\n *\n * @param {import(\"./Projection.js\").default} source Source projection.\n * @param {import(\"./Projection.js\").default} destination Destination projection.\n * @return {import(\"../proj.js\").TransformFunction} transformFn The unregistered transform.\n */\nexport function remove(source, destination) {\n var sourceCode = source.getCode();\n var destinationCode = destination.getCode();\n var transform = transforms[sourceCode][destinationCode];\n delete transforms[sourceCode][destinationCode];\n if (isEmpty(transforms[sourceCode])) {\n delete transforms[sourceCode];\n }\n return transform;\n}\n/**\n * Get a transform given a source code and a destination code.\n * @param {string} sourceCode The code for the source projection.\n * @param {string} destinationCode The code for the destination projection.\n * @return {import(\"../proj.js\").TransformFunction|undefined} The transform function (if found).\n */\nexport function get(sourceCode, destinationCode) {\n var transform;\n if (sourceCode in transforms && destinationCode in transforms[sourceCode]) {\n transform = transforms[sourceCode][destinationCode];\n }\n return transform;\n}\n//# sourceMappingURL=transforms.js.map","/**\n * @module ol/sphere\n */\nimport GeometryType from './geom/GeometryType.js';\nimport { toDegrees, toRadians } from './math.js';\n/**\n * Object literal with options for the {@link getLength} or {@link getArea}\n * functions.\n * @typedef {Object} SphereMetricOptions\n * @property {import(\"./proj.js\").ProjectionLike} [projection='EPSG:3857']\n * Projection of the geometry. By default, the geometry is assumed to be in\n * Web Mercator.\n * @property {number} [radius=6371008.8] Sphere radius. By default, the\n * [mean Earth radius](https://en.wikipedia.org/wiki/Earth_radius#Mean_radius)\n * for the WGS84 ellipsoid is used.\n */\n/**\n * The mean Earth radius (1/3 * (2a + b)) for the WGS84 ellipsoid.\n * https://en.wikipedia.org/wiki/Earth_radius#Mean_radius\n * @type {number}\n */\nexport var DEFAULT_RADIUS = 6371008.8;\n/**\n * Get the great circle distance (in meters) between two geographic coordinates.\n * @param {Array} c1 Starting coordinate.\n * @param {Array} c2 Ending coordinate.\n * @param {number} [opt_radius] The sphere radius to use. Defaults to the Earth's\n * mean radius using the WGS84 ellipsoid.\n * @return {number} The great circle distance between the points (in meters).\n * @api\n */\nexport function getDistance(c1, c2, opt_radius) {\n var radius = opt_radius || DEFAULT_RADIUS;\n var lat1 = toRadians(c1[1]);\n var lat2 = toRadians(c2[1]);\n var deltaLatBy2 = (lat2 - lat1) / 2;\n var deltaLonBy2 = toRadians(c2[0] - c1[0]) / 2;\n var a = Math.sin(deltaLatBy2) * Math.sin(deltaLatBy2) +\n Math.sin(deltaLonBy2) *\n Math.sin(deltaLonBy2) *\n Math.cos(lat1) *\n Math.cos(lat2);\n return 2 * radius * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n}\n/**\n * Get the cumulative great circle length of linestring coordinates (geographic).\n * @param {Array} coordinates Linestring coordinates.\n * @param {number} radius The sphere radius to use.\n * @return {number} The length (in meters).\n */\nfunction getLengthInternal(coordinates, radius) {\n var length = 0;\n for (var i = 0, ii = coordinates.length; i < ii - 1; ++i) {\n length += getDistance(coordinates[i], coordinates[i + 1], radius);\n }\n return length;\n}\n/**\n * Get the spherical length of a geometry. This length is the sum of the\n * great circle distances between coordinates. For polygons, the length is\n * the sum of all rings. For points, the length is zero. For multi-part\n * geometries, the length is the sum of the length of each part.\n * @param {import(\"./geom/Geometry.js\").default} geometry A geometry.\n * @param {SphereMetricOptions} [opt_options] Options for the\n * length calculation. By default, geometries are assumed to be in 'EPSG:3857'.\n * You can change this by providing a `projection` option.\n * @return {number} The spherical length (in meters).\n * @api\n */\nexport function getLength(geometry, opt_options) {\n var options = opt_options || {};\n var radius = options.radius || DEFAULT_RADIUS;\n var projection = options.projection || 'EPSG:3857';\n var type = geometry.getType();\n if (type !== GeometryType.GEOMETRY_COLLECTION) {\n geometry = geometry.clone().transform(projection, 'EPSG:4326');\n }\n var length = 0;\n var coordinates, coords, i, ii, j, jj;\n switch (type) {\n case GeometryType.POINT:\n case GeometryType.MULTI_POINT: {\n break;\n }\n case GeometryType.LINE_STRING:\n case GeometryType.LINEAR_RING: {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometry).getCoordinates();\n length = getLengthInternal(coordinates, radius);\n break;\n }\n case GeometryType.MULTI_LINE_STRING:\n case GeometryType.POLYGON: {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometry).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n length += getLengthInternal(coordinates[i], radius);\n }\n break;\n }\n case GeometryType.MULTI_POLYGON: {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometry).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n coords = coordinates[i];\n for (j = 0, jj = coords.length; j < jj; ++j) {\n length += getLengthInternal(coords[j], radius);\n }\n }\n break;\n }\n case GeometryType.GEOMETRY_COLLECTION: {\n var geometries = \n /** @type {import(\"./geom/GeometryCollection.js\").default} */ (geometry).getGeometries();\n for (i = 0, ii = geometries.length; i < ii; ++i) {\n length += getLength(geometries[i], opt_options);\n }\n break;\n }\n default: {\n throw new Error('Unsupported geometry type: ' + type);\n }\n }\n return length;\n}\n/**\n * Returns the spherical area for a list of coordinates.\n *\n * [Reference](https://trs.jpl.nasa.gov/handle/2014/40409)\n * Robert. G. Chamberlain and William H. Duquette, \"Some Algorithms for\n * Polygons on a Sphere\", JPL Publication 07-03, Jet Propulsion\n * Laboratory, Pasadena, CA, June 2007\n *\n * @param {Array} coordinates List of coordinates of a linear\n * ring. If the ring is oriented clockwise, the area will be positive,\n * otherwise it will be negative.\n * @param {number} radius The sphere radius.\n * @return {number} Area (in square meters).\n */\nfunction getAreaInternal(coordinates, radius) {\n var area = 0;\n var len = coordinates.length;\n var x1 = coordinates[len - 1][0];\n var y1 = coordinates[len - 1][1];\n for (var i = 0; i < len; i++) {\n var x2 = coordinates[i][0];\n var y2 = coordinates[i][1];\n area +=\n toRadians(x2 - x1) *\n (2 + Math.sin(toRadians(y1)) + Math.sin(toRadians(y2)));\n x1 = x2;\n y1 = y2;\n }\n return (area * radius * radius) / 2.0;\n}\n/**\n * Get the spherical area of a geometry. This is the area (in meters) assuming\n * that polygon edges are segments of great circles on a sphere.\n * @param {import(\"./geom/Geometry.js\").default} geometry A geometry.\n * @param {SphereMetricOptions} [opt_options] Options for the area\n * calculation. By default, geometries are assumed to be in 'EPSG:3857'.\n * You can change this by providing a `projection` option.\n * @return {number} The spherical area (in square meters).\n * @api\n */\nexport function getArea(geometry, opt_options) {\n var options = opt_options || {};\n var radius = options.radius || DEFAULT_RADIUS;\n var projection = options.projection || 'EPSG:3857';\n var type = geometry.getType();\n if (type !== GeometryType.GEOMETRY_COLLECTION) {\n geometry = geometry.clone().transform(projection, 'EPSG:4326');\n }\n var area = 0;\n var coordinates, coords, i, ii, j, jj;\n switch (type) {\n case GeometryType.POINT:\n case GeometryType.MULTI_POINT:\n case GeometryType.LINE_STRING:\n case GeometryType.MULTI_LINE_STRING:\n case GeometryType.LINEAR_RING: {\n break;\n }\n case GeometryType.POLYGON: {\n coordinates = /** @type {import(\"./geom/Polygon.js\").default} */ (geometry).getCoordinates();\n area = Math.abs(getAreaInternal(coordinates[0], radius));\n for (i = 1, ii = coordinates.length; i < ii; ++i) {\n area -= Math.abs(getAreaInternal(coordinates[i], radius));\n }\n break;\n }\n case GeometryType.MULTI_POLYGON: {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometry).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n coords = coordinates[i];\n area += Math.abs(getAreaInternal(coords[0], radius));\n for (j = 1, jj = coords.length; j < jj; ++j) {\n area -= Math.abs(getAreaInternal(coords[j], radius));\n }\n }\n break;\n }\n case GeometryType.GEOMETRY_COLLECTION: {\n var geometries = \n /** @type {import(\"./geom/GeometryCollection.js\").default} */ (geometry).getGeometries();\n for (i = 0, ii = geometries.length; i < ii; ++i) {\n area += getArea(geometries[i], opt_options);\n }\n break;\n }\n default: {\n throw new Error('Unsupported geometry type: ' + type);\n }\n }\n return area;\n}\n/**\n * Returns the coordinate at the given distance and bearing from `c1`.\n *\n * @param {import(\"./coordinate.js\").Coordinate} c1 The origin point (`[lon, lat]` in degrees).\n * @param {number} distance The great-circle distance between the origin\n * point and the target point.\n * @param {number} bearing The bearing (in radians).\n * @param {number} [opt_radius] The sphere radius to use. Defaults to the Earth's\n * mean radius using the WGS84 ellipsoid.\n * @return {import(\"./coordinate.js\").Coordinate} The target point.\n */\nexport function offset(c1, distance, bearing, opt_radius) {\n var radius = opt_radius || DEFAULT_RADIUS;\n var lat1 = toRadians(c1[1]);\n var lon1 = toRadians(c1[0]);\n var dByR = distance / radius;\n var lat = Math.asin(Math.sin(lat1) * Math.cos(dByR) +\n Math.cos(lat1) * Math.sin(dByR) * Math.cos(bearing));\n var lon = lon1 +\n Math.atan2(Math.sin(bearing) * Math.sin(dByR) * Math.cos(lat1), Math.cos(dByR) - Math.sin(lat1) * Math.sin(lat));\n return [toDegrees(lon), toDegrees(lat)];\n}\n//# sourceMappingURL=sphere.js.map","/**\n * @module ol/string\n */\n/**\n * @param {number} number Number to be formatted\n * @param {number} width The desired width\n * @param {number} [opt_precision] Precision of the output string (i.e. number of decimal places)\n * @return {string} Formatted string\n */\nexport function padNumber(number, width, opt_precision) {\n var numberString = opt_precision !== undefined ? number.toFixed(opt_precision) : '' + number;\n var decimal = numberString.indexOf('.');\n decimal = decimal === -1 ? numberString.length : decimal;\n return decimal > width\n ? numberString\n : new Array(1 + width - decimal).join('0') + numberString;\n}\n/**\n * Adapted from https://github.com/omichelsen/compare-versions/blob/master/index.js\n * @param {string|number} v1 First version\n * @param {string|number} v2 Second version\n * @return {number} Value\n */\nexport function compareVersions(v1, v2) {\n var s1 = ('' + v1).split('.');\n var s2 = ('' + v2).split('.');\n for (var i = 0; i < Math.max(s1.length, s2.length); i++) {\n var n1 = parseInt(s1[i] || '0', 10);\n var n2 = parseInt(s2[i] || '0', 10);\n if (n1 > n2) {\n return 1;\n }\n if (n2 > n1) {\n return -1;\n }\n }\n return 0;\n}\n//# sourceMappingURL=string.js.map","/**\n * @module ol/coordinate\n */\nimport { getWidth } from './extent.js';\nimport { modulo } from './math.js';\nimport { padNumber } from './string.js';\n/**\n * An array of numbers representing an xy coordinate. Example: `[16, 48]`.\n * @typedef {Array} Coordinate\n * @api\n */\n/**\n * A function that takes a {@link module:ol/coordinate~Coordinate} and\n * transforms it into a `{string}`.\n *\n * @typedef {function((Coordinate|undefined)): string} CoordinateFormat\n * @api\n */\n/**\n * Add `delta` to `coordinate`. `coordinate` is modified in place and returned\n * by the function.\n *\n * Example:\n *\n * import {add} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * add(coord, [-2, 4]);\n * // coord is now [5.85, 51.983333]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {Coordinate} delta Delta.\n * @return {Coordinate} The input coordinate adjusted by\n * the given delta.\n * @api\n */\nexport function add(coordinate, delta) {\n coordinate[0] += +delta[0];\n coordinate[1] += +delta[1];\n return coordinate;\n}\n/**\n * Calculates the point closest to the passed coordinate on the passed circle.\n *\n * @param {Coordinate} coordinate The coordinate.\n * @param {import(\"./geom/Circle.js\").default} circle The circle.\n * @return {Coordinate} Closest point on the circumference.\n */\nexport function closestOnCircle(coordinate, circle) {\n var r = circle.getRadius();\n var center = circle.getCenter();\n var x0 = center[0];\n var y0 = center[1];\n var x1 = coordinate[0];\n var y1 = coordinate[1];\n var dx = x1 - x0;\n var dy = y1 - y0;\n if (dx === 0 && dy === 0) {\n dx = 1;\n }\n var d = Math.sqrt(dx * dx + dy * dy);\n var x = x0 + (r * dx) / d;\n var y = y0 + (r * dy) / d;\n return [x, y];\n}\n/**\n * Calculates the point closest to the passed coordinate on the passed segment.\n * This is the foot of the perpendicular of the coordinate to the segment when\n * the foot is on the segment, or the closest segment coordinate when the foot\n * is outside the segment.\n *\n * @param {Coordinate} coordinate The coordinate.\n * @param {Array} segment The two coordinates\n * of the segment.\n * @return {Coordinate} The foot of the perpendicular of\n * the coordinate to the segment.\n */\nexport function closestOnSegment(coordinate, segment) {\n var x0 = coordinate[0];\n var y0 = coordinate[1];\n var start = segment[0];\n var end = segment[1];\n var x1 = start[0];\n var y1 = start[1];\n var x2 = end[0];\n var y2 = end[1];\n var dx = x2 - x1;\n var dy = y2 - y1;\n var along = dx === 0 && dy === 0\n ? 0\n : (dx * (x0 - x1) + dy * (y0 - y1)) / (dx * dx + dy * dy || 0);\n var x, y;\n if (along <= 0) {\n x = x1;\n y = y1;\n }\n else if (along >= 1) {\n x = x2;\n y = y2;\n }\n else {\n x = x1 + along * dx;\n y = y1 + along * dy;\n }\n return [x, y];\n}\n/**\n * Returns a {@link module:ol/coordinate~CoordinateFormat} function that can be\n * used to format\n * a {Coordinate} to a string.\n *\n * Example without specifying the fractional digits:\n *\n * import {createStringXY} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var stringifyFunc = createStringXY();\n * var out = stringifyFunc(coord);\n * // out is now '8, 48'\n *\n * Example with explicitly specifying 2 fractional digits:\n *\n * import {createStringXY} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var stringifyFunc = createStringXY(2);\n * var out = stringifyFunc(coord);\n * // out is now '7.85, 47.98'\n *\n * @param {number} [opt_fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {CoordinateFormat} Coordinate format.\n * @api\n */\nexport function createStringXY(opt_fractionDigits) {\n return (\n /**\n * @param {Coordinate} coordinate Coordinate.\n * @return {string} String XY.\n */\n function (coordinate) {\n return toStringXY(coordinate, opt_fractionDigits);\n });\n}\n/**\n * @param {string} hemispheres Hemispheres.\n * @param {number} degrees Degrees.\n * @param {number} [opt_fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} String.\n */\nexport function degreesToStringHDMS(hemispheres, degrees, opt_fractionDigits) {\n var normalizedDegrees = modulo(degrees + 180, 360) - 180;\n var x = Math.abs(3600 * normalizedDegrees);\n var dflPrecision = opt_fractionDigits || 0;\n var precision = Math.pow(10, dflPrecision);\n var deg = Math.floor(x / 3600);\n var min = Math.floor((x - deg * 3600) / 60);\n var sec = x - deg * 3600 - min * 60;\n sec = Math.ceil(sec * precision) / precision;\n if (sec >= 60) {\n sec = 0;\n min += 1;\n }\n if (min >= 60) {\n min = 0;\n deg += 1;\n }\n return (deg +\n '\\u00b0 ' +\n padNumber(min, 2) +\n '\\u2032 ' +\n padNumber(sec, 2, dflPrecision) +\n '\\u2033' +\n (normalizedDegrees == 0\n ? ''\n : ' ' + hemispheres.charAt(normalizedDegrees < 0 ? 1 : 0)));\n}\n/**\n * Transforms the given {@link module:ol/coordinate~Coordinate} to a string\n * using the given string template. The strings `{x}` and `{y}` in the template\n * will be replaced with the first and second coordinate values respectively.\n *\n * Example without specifying the fractional digits:\n *\n * import {format} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var template = 'Coordinate is ({x}|{y}).';\n * var out = format(coord, template);\n * // out is now 'Coordinate is (8|48).'\n *\n * Example explicitly specifying the fractional digits:\n *\n * import {format} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var template = 'Coordinate is ({x}|{y}).';\n * var out = format(coord, template, 2);\n * // out is now 'Coordinate is (7.85|47.98).'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {string} template A template string with `{x}` and `{y}` placeholders\n * that will be replaced by first and second coordinate values.\n * @param {number} [opt_fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} Formatted coordinate.\n * @api\n */\nexport function format(coordinate, template, opt_fractionDigits) {\n if (coordinate) {\n return template\n .replace('{x}', coordinate[0].toFixed(opt_fractionDigits))\n .replace('{y}', coordinate[1].toFixed(opt_fractionDigits));\n }\n else {\n return '';\n }\n}\n/**\n * @param {Coordinate} coordinate1 First coordinate.\n * @param {Coordinate} coordinate2 Second coordinate.\n * @return {boolean} The two coordinates are equal.\n */\nexport function equals(coordinate1, coordinate2) {\n var equals = true;\n for (var i = coordinate1.length - 1; i >= 0; --i) {\n if (coordinate1[i] != coordinate2[i]) {\n equals = false;\n break;\n }\n }\n return equals;\n}\n/**\n * Rotate `coordinate` by `angle`. `coordinate` is modified in place and\n * returned by the function.\n *\n * Example:\n *\n * import {rotate} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var rotateRadians = Math.PI / 2; // 90 degrees\n * rotate(coord, rotateRadians);\n * // coord is now [-47.983333, 7.85]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} angle Angle in radian.\n * @return {Coordinate} Coordinate.\n * @api\n */\nexport function rotate(coordinate, angle) {\n var cosAngle = Math.cos(angle);\n var sinAngle = Math.sin(angle);\n var x = coordinate[0] * cosAngle - coordinate[1] * sinAngle;\n var y = coordinate[1] * cosAngle + coordinate[0] * sinAngle;\n coordinate[0] = x;\n coordinate[1] = y;\n return coordinate;\n}\n/**\n * Scale `coordinate` by `scale`. `coordinate` is modified in place and returned\n * by the function.\n *\n * Example:\n *\n * import {scale as scaleCoordinate} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var scale = 1.2;\n * scaleCoordinate(coord, scale);\n * // coord is now [9.42, 57.5799996]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} scale Scale factor.\n * @return {Coordinate} Coordinate.\n */\nexport function scale(coordinate, scale) {\n coordinate[0] *= scale;\n coordinate[1] *= scale;\n return coordinate;\n}\n/**\n * @param {Coordinate} coord1 First coordinate.\n * @param {Coordinate} coord2 Second coordinate.\n * @return {number} Squared distance between coord1 and coord2.\n */\nexport function squaredDistance(coord1, coord2) {\n var dx = coord1[0] - coord2[0];\n var dy = coord1[1] - coord2[1];\n return dx * dx + dy * dy;\n}\n/**\n * @param {Coordinate} coord1 First coordinate.\n * @param {Coordinate} coord2 Second coordinate.\n * @return {number} Distance between coord1 and coord2.\n */\nexport function distance(coord1, coord2) {\n return Math.sqrt(squaredDistance(coord1, coord2));\n}\n/**\n * Calculate the squared distance from a coordinate to a line segment.\n *\n * @param {Coordinate} coordinate Coordinate of the point.\n * @param {Array} segment Line segment (2\n * coordinates).\n * @return {number} Squared distance from the point to the line segment.\n */\nexport function squaredDistanceToSegment(coordinate, segment) {\n return squaredDistance(coordinate, closestOnSegment(coordinate, segment));\n}\n/**\n * Format a geographic coordinate with the hemisphere, degrees, minutes, and\n * seconds.\n *\n * Example without specifying fractional digits:\n *\n * import {toStringHDMS} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var out = toStringHDMS(coord);\n * // out is now '47° 58′ 60″ N 7° 50′ 60″ E'\n *\n * Example explicitly specifying 1 fractional digit:\n *\n * import {toStringHDMS} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var out = toStringHDMS(coord, 1);\n * // out is now '47° 58′ 60.0″ N 7° 50′ 60.0″ E'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} [opt_fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} Hemisphere, degrees, minutes and seconds.\n * @api\n */\nexport function toStringHDMS(coordinate, opt_fractionDigits) {\n if (coordinate) {\n return (degreesToStringHDMS('NS', coordinate[1], opt_fractionDigits) +\n ' ' +\n degreesToStringHDMS('EW', coordinate[0], opt_fractionDigits));\n }\n else {\n return '';\n }\n}\n/**\n * Format a coordinate as a comma delimited string.\n *\n * Example without specifying fractional digits:\n *\n * import {toStringXY} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var out = toStringXY(coord);\n * // out is now '8, 48'\n *\n * Example explicitly specifying 1 fractional digit:\n *\n * import {toStringXY} from 'ol/coordinate';\n *\n * var coord = [7.85, 47.983333];\n * var out = toStringXY(coord, 1);\n * // out is now '7.8, 48.0'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} [opt_fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} XY.\n * @api\n */\nexport function toStringXY(coordinate, opt_fractionDigits) {\n return format(coordinate, '{x}, {y}', opt_fractionDigits);\n}\n/**\n * Modifies the provided coordinate in-place to be within the real world\n * extent. The lower projection extent boundary is inclusive, the upper one\n * exclusive.\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @return {Coordinate} The coordinate within the real world extent.\n */\nexport function wrapX(coordinate, projection) {\n if (projection.canWrapX()) {\n var worldWidth = getWidth(projection.getExtent());\n var worldsAway = getWorldsAway(coordinate, projection, worldWidth);\n if (worldsAway) {\n coordinate[0] -= worldsAway * worldWidth;\n }\n }\n return coordinate;\n}\n/**\n * @param {Coordinate} coordinate Coordinate.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @param {number} [opt_sourceExtentWidth] Width of the source extent.\n * @return {number} Offset in world widths.\n */\nexport function getWorldsAway(coordinate, projection, opt_sourceExtentWidth) {\n var projectionExtent = projection.getExtent();\n var worldsAway = 0;\n if (projection.canWrapX() &&\n (coordinate[0] < projectionExtent[0] || coordinate[0] > projectionExtent[2])) {\n var sourceExtentWidth = opt_sourceExtentWidth || getWidth(projectionExtent);\n worldsAway = Math.floor((coordinate[0] - projectionExtent[0]) / sourceExtentWidth);\n }\n return worldsAway;\n}\n//# sourceMappingURL=coordinate.js.map","/**\n * @module ol/proj\n */\n/**\n * The ol/proj module stores:\n * * a list of {@link module:ol/proj/Projection}\n * objects, one for each projection supported by the application\n * * a list of transform functions needed to convert coordinates in one projection\n * into another.\n *\n * The static functions are the methods used to maintain these.\n * Each transform function can handle not only simple coordinate pairs, but also\n * large arrays of coordinates such as vector geometries.\n *\n * When loaded, the library adds projection objects for EPSG:4326 (WGS84\n * geographic coordinates) and EPSG:3857 (Web or Spherical Mercator, as used\n * for example by Bing Maps or OpenStreetMap), together with the relevant\n * transform functions.\n *\n * Additional transforms may be added by using the http://proj4js.org/\n * library (version 2.2 or later). You can use the full build supplied by\n * Proj4js, or create a custom build to support those projections you need; see\n * the Proj4js website for how to do this. You also need the Proj4js definitions\n * for the required projections. These definitions can be obtained from\n * https://epsg.io/, and are a JS function, so can be loaded in a script\n * tag (as in the examples) or pasted into your application.\n *\n * After all required projection definitions are added to proj4's registry (by\n * using `proj4.defs()`), simply call `register(proj4)` from the `ol/proj/proj4`\n * package. Existing transforms are not changed by this function. See\n * examples/wms-image-custom-proj for an example of this.\n *\n * Additional projection definitions can be registered with `proj4.defs()` any\n * time. Just make sure to call `register(proj4)` again; for example, with user-supplied data where you don't\n * know in advance what projections are needed, you can initially load minimal\n * support and then load whichever are requested.\n *\n * Note that Proj4js does not support projection extents. If you want to add\n * one for creating default tile grids, you can add it after the Projection\n * object has been created with `setExtent`, for example,\n * `get('EPSG:1234').setExtent(extent)`.\n *\n * In addition to Proj4js support, any transform functions can be added with\n * {@link module:ol/proj.addCoordinateTransforms}. To use this, you must first create\n * a {@link module:ol/proj/Projection} object for the new projection and add it with\n * {@link module:ol/proj.addProjection}. You can then add the forward and inverse\n * functions with {@link module:ol/proj.addCoordinateTransforms}. See\n * examples/wms-custom-proj for an example of this.\n *\n * Note that if no transforms are needed and you only need to define the\n * projection, just add a {@link module:ol/proj/Projection} with\n * {@link module:ol/proj.addProjection}. See examples/wms-no-proj for an example of\n * this.\n */\nimport Projection from './proj/Projection.js';\nimport Units, { METERS_PER_UNIT } from './proj/Units.js';\nimport { PROJECTIONS as EPSG3857_PROJECTIONS, fromEPSG4326, toEPSG4326, } from './proj/epsg3857.js';\nimport { PROJECTIONS as EPSG4326_PROJECTIONS } from './proj/epsg4326.js';\nimport { add as addProj, clear as clearProj, get as getProj, } from './proj/projections.js';\nimport { add as addTransformFunc, clear as clearTransformFuncs, get as getTransformFunc, } from './proj/transforms.js';\nimport { applyTransform, getWidth } from './extent.js';\nimport { clamp, modulo } from './math.js';\nimport { getDistance } from './sphere.js';\nimport { getWorldsAway } from './coordinate.js';\n/**\n * A projection as {@link module:ol/proj/Projection}, SRS identifier\n * string or undefined.\n * @typedef {Projection|string|undefined} ProjectionLike\n * @api\n */\n/**\n * A transform function accepts an array of input coordinate values, an optional\n * output array, and an optional dimension (default should be 2). The function\n * transforms the input coordinate values, populates the output array, and\n * returns the output array.\n *\n * @typedef {function(Array, Array=, number=): Array} TransformFunction\n * @api\n */\nexport { METERS_PER_UNIT };\nexport { Projection };\n/**\n * @param {Array} input Input coordinate array.\n * @param {Array} [opt_output] Output array of coordinate values.\n * @param {number} [opt_dimension] Dimension.\n * @return {Array} Output coordinate array (new array, same coordinate\n * values).\n */\nexport function cloneTransform(input, opt_output, opt_dimension) {\n var output;\n if (opt_output !== undefined) {\n for (var i = 0, ii = input.length; i < ii; ++i) {\n opt_output[i] = input[i];\n }\n output = opt_output;\n }\n else {\n output = input.slice();\n }\n return output;\n}\n/**\n * @param {Array} input Input coordinate array.\n * @param {Array} [opt_output] Output array of coordinate values.\n * @param {number} [opt_dimension] Dimension.\n * @return {Array} Input coordinate array (same array as input).\n */\nexport function identityTransform(input, opt_output, opt_dimension) {\n if (opt_output !== undefined && input !== opt_output) {\n for (var i = 0, ii = input.length; i < ii; ++i) {\n opt_output[i] = input[i];\n }\n input = opt_output;\n }\n return input;\n}\n/**\n * Add a Projection object to the list of supported projections that can be\n * looked up by their code.\n *\n * @param {Projection} projection Projection instance.\n * @api\n */\nexport function addProjection(projection) {\n addProj(projection.getCode(), projection);\n addTransformFunc(projection, projection, cloneTransform);\n}\n/**\n * @param {Array} projections Projections.\n */\nexport function addProjections(projections) {\n projections.forEach(addProjection);\n}\n/**\n * Fetches a Projection object for the code specified.\n *\n * @param {ProjectionLike} projectionLike Either a code string which is\n * a combination of authority and identifier such as \"EPSG:4326\", or an\n * existing projection object, or undefined.\n * @return {Projection} Projection object, or null if not in list.\n * @api\n */\nexport function get(projectionLike) {\n return typeof projectionLike === 'string'\n ? getProj(/** @type {string} */ (projectionLike))\n : /** @type {Projection} */ (projectionLike) || null;\n}\n/**\n * Get the resolution of the point in degrees or distance units.\n * For projections with degrees as the unit this will simply return the\n * provided resolution. For other projections the point resolution is\n * by default estimated by transforming the 'point' pixel to EPSG:4326,\n * measuring its width and height on the normal sphere,\n * and taking the average of the width and height.\n * A custom function can be provided for a specific projection, either\n * by setting the `getPointResolution` option in the\n * {@link module:ol/proj/Projection~Projection} constructor or by using\n * {@link module:ol/proj/Projection~Projection#setGetPointResolution} to change an existing\n * projection object.\n * @param {ProjectionLike} projection The projection.\n * @param {number} resolution Nominal resolution in projection units.\n * @param {import(\"./coordinate.js\").Coordinate} point Point to find adjusted resolution at.\n * @param {import(\"./proj/Units.js\").default} [opt_units] Units to get the point resolution in.\n * Default is the projection's units.\n * @return {number} Point resolution.\n * @api\n */\nexport function getPointResolution(projection, resolution, point, opt_units) {\n projection = get(projection);\n var pointResolution;\n var getter = projection.getPointResolutionFunc();\n if (getter) {\n pointResolution = getter(resolution, point);\n if (opt_units && opt_units !== projection.getUnits()) {\n var metersPerUnit = projection.getMetersPerUnit();\n if (metersPerUnit) {\n pointResolution =\n (pointResolution * metersPerUnit) / METERS_PER_UNIT[opt_units];\n }\n }\n }\n else {\n var units = projection.getUnits();\n if ((units == Units.DEGREES && !opt_units) || opt_units == Units.DEGREES) {\n pointResolution = resolution;\n }\n else {\n // Estimate point resolution by transforming the center pixel to EPSG:4326,\n // measuring its width and height on the normal sphere, and taking the\n // average of the width and height.\n var toEPSG4326_1 = getTransformFromProjections(projection, get('EPSG:4326'));\n if (toEPSG4326_1 === identityTransform && units !== Units.DEGREES) {\n // no transform is available\n pointResolution = resolution * projection.getMetersPerUnit();\n }\n else {\n var vertices = [\n point[0] - resolution / 2,\n point[1],\n point[0] + resolution / 2,\n point[1],\n point[0],\n point[1] - resolution / 2,\n point[0],\n point[1] + resolution / 2,\n ];\n vertices = toEPSG4326_1(vertices, vertices, 2);\n var width = getDistance(vertices.slice(0, 2), vertices.slice(2, 4));\n var height = getDistance(vertices.slice(4, 6), vertices.slice(6, 8));\n pointResolution = (width + height) / 2;\n }\n var metersPerUnit = opt_units\n ? METERS_PER_UNIT[opt_units]\n : projection.getMetersPerUnit();\n if (metersPerUnit !== undefined) {\n pointResolution /= metersPerUnit;\n }\n }\n }\n return pointResolution;\n}\n/**\n * Registers transformation functions that don't alter coordinates. Those allow\n * to transform between projections with equal meaning.\n *\n * @param {Array} projections Projections.\n * @api\n */\nexport function addEquivalentProjections(projections) {\n addProjections(projections);\n projections.forEach(function (source) {\n projections.forEach(function (destination) {\n if (source !== destination) {\n addTransformFunc(source, destination, cloneTransform);\n }\n });\n });\n}\n/**\n * Registers transformation functions to convert coordinates in any projection\n * in projection1 to any projection in projection2.\n *\n * @param {Array} projections1 Projections with equal\n * meaning.\n * @param {Array} projections2 Projections with equal\n * meaning.\n * @param {TransformFunction} forwardTransform Transformation from any\n * projection in projection1 to any projection in projection2.\n * @param {TransformFunction} inverseTransform Transform from any projection\n * in projection2 to any projection in projection1..\n */\nexport function addEquivalentTransforms(projections1, projections2, forwardTransform, inverseTransform) {\n projections1.forEach(function (projection1) {\n projections2.forEach(function (projection2) {\n addTransformFunc(projection1, projection2, forwardTransform);\n addTransformFunc(projection2, projection1, inverseTransform);\n });\n });\n}\n/**\n * Clear all cached projections and transforms.\n */\nexport function clearAllProjections() {\n clearProj();\n clearTransformFuncs();\n}\n/**\n * @param {Projection|string|undefined} projection Projection.\n * @param {string} defaultCode Default code.\n * @return {Projection} Projection.\n */\nexport function createProjection(projection, defaultCode) {\n if (!projection) {\n return get(defaultCode);\n }\n else if (typeof projection === 'string') {\n return get(projection);\n }\n else {\n return /** @type {Projection} */ (projection);\n }\n}\n/**\n * Creates a {@link module:ol/proj~TransformFunction} from a simple 2D coordinate transform\n * function.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} coordTransform Coordinate\n * transform.\n * @return {TransformFunction} Transform function.\n */\nexport function createTransformFromCoordinateTransform(coordTransform) {\n return (\n /**\n * @param {Array} input Input.\n * @param {Array} [opt_output] Output.\n * @param {number} [opt_dimension] Dimension.\n * @return {Array} Output.\n */\n function (input, opt_output, opt_dimension) {\n var length = input.length;\n var dimension = opt_dimension !== undefined ? opt_dimension : 2;\n var output = opt_output !== undefined ? opt_output : new Array(length);\n for (var i = 0; i < length; i += dimension) {\n var point = coordTransform([input[i], input[i + 1]]);\n output[i] = point[0];\n output[i + 1] = point[1];\n for (var j = dimension - 1; j >= 2; --j) {\n output[i + j] = input[i + j];\n }\n }\n return output;\n });\n}\n/**\n * Registers coordinate transform functions to convert coordinates between the\n * source projection and the destination projection.\n * The forward and inverse functions convert coordinate pairs; this function\n * converts these into the functions used internally which also handle\n * extents and coordinate arrays.\n *\n * @param {ProjectionLike} source Source projection.\n * @param {ProjectionLike} destination Destination projection.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} forward The forward transform\n * function (that is, from the source projection to the destination\n * projection) that takes a {@link module:ol/coordinate~Coordinate} as argument and returns\n * the transformed {@link module:ol/coordinate~Coordinate}.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} inverse The inverse transform\n * function (that is, from the destination projection to the source\n * projection) that takes a {@link module:ol/coordinate~Coordinate} as argument and returns\n * the transformed {@link module:ol/coordinate~Coordinate}.\n * @api\n */\nexport function addCoordinateTransforms(source, destination, forward, inverse) {\n var sourceProj = get(source);\n var destProj = get(destination);\n addTransformFunc(sourceProj, destProj, createTransformFromCoordinateTransform(forward));\n addTransformFunc(destProj, sourceProj, createTransformFromCoordinateTransform(inverse));\n}\n/**\n * Transforms a coordinate from longitude/latitude to a different projection.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate as longitude and latitude, i.e.\n * an array with longitude as 1st and latitude as 2nd element.\n * @param {ProjectionLike} [opt_projection] Target projection. The\n * default is Web Mercator, i.e. 'EPSG:3857'.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate projected to the target projection.\n * @api\n */\nexport function fromLonLat(coordinate, opt_projection) {\n return transform(coordinate, 'EPSG:4326', opt_projection !== undefined ? opt_projection : 'EPSG:3857');\n}\n/**\n * Transforms a coordinate to longitude/latitude.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Projected coordinate.\n * @param {ProjectionLike} [opt_projection] Projection of the coordinate.\n * The default is Web Mercator, i.e. 'EPSG:3857'.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate as longitude and latitude, i.e. an array\n * with longitude as 1st and latitude as 2nd element.\n * @api\n */\nexport function toLonLat(coordinate, opt_projection) {\n var lonLat = transform(coordinate, opt_projection !== undefined ? opt_projection : 'EPSG:3857', 'EPSG:4326');\n var lon = lonLat[0];\n if (lon < -180 || lon > 180) {\n lonLat[0] = modulo(lon + 180, 360) - 180;\n }\n return lonLat;\n}\n/**\n * Checks if two projections are the same, that is every coordinate in one\n * projection does represent the same geographic point as the same coordinate in\n * the other projection.\n *\n * @param {Projection} projection1 Projection 1.\n * @param {Projection} projection2 Projection 2.\n * @return {boolean} Equivalent.\n * @api\n */\nexport function equivalent(projection1, projection2) {\n if (projection1 === projection2) {\n return true;\n }\n var equalUnits = projection1.getUnits() === projection2.getUnits();\n if (projection1.getCode() === projection2.getCode()) {\n return equalUnits;\n }\n else {\n var transformFunc = getTransformFromProjections(projection1, projection2);\n return transformFunc === cloneTransform && equalUnits;\n }\n}\n/**\n * Searches in the list of transform functions for the function for converting\n * coordinates from the source projection to the destination projection.\n *\n * @param {Projection} sourceProjection Source Projection object.\n * @param {Projection} destinationProjection Destination Projection\n * object.\n * @return {TransformFunction} Transform function.\n */\nexport function getTransformFromProjections(sourceProjection, destinationProjection) {\n var sourceCode = sourceProjection.getCode();\n var destinationCode = destinationProjection.getCode();\n var transformFunc = getTransformFunc(sourceCode, destinationCode);\n if (!transformFunc) {\n transformFunc = identityTransform;\n }\n return transformFunc;\n}\n/**\n * Given the projection-like objects, searches for a transformation\n * function to convert a coordinates array from the source projection to the\n * destination projection.\n *\n * @param {ProjectionLike} source Source.\n * @param {ProjectionLike} destination Destination.\n * @return {TransformFunction} Transform function.\n * @api\n */\nexport function getTransform(source, destination) {\n var sourceProjection = get(source);\n var destinationProjection = get(destination);\n return getTransformFromProjections(sourceProjection, destinationProjection);\n}\n/**\n * Transforms a coordinate from source projection to destination projection.\n * This returns a new coordinate (and does not modify the original).\n *\n * See {@link module:ol/proj.transformExtent} for extent transformation.\n * See the transform method of {@link module:ol/geom/Geometry~Geometry} and its\n * subclasses for geometry transforms.\n *\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {ProjectionLike} source Source projection-like.\n * @param {ProjectionLike} destination Destination projection-like.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate.\n * @api\n */\nexport function transform(coordinate, source, destination) {\n var transformFunc = getTransform(source, destination);\n return transformFunc(coordinate, undefined, coordinate.length);\n}\n/**\n * Transforms an extent from source projection to destination projection. This\n * returns a new extent (and does not modify the original).\n *\n * @param {import(\"./extent.js\").Extent} extent The extent to transform.\n * @param {ProjectionLike} source Source projection-like.\n * @param {ProjectionLike} destination Destination projection-like.\n * @param {number} [opt_stops] Number of stops per side used for the transform.\n * By default only the corners are used.\n * @return {import(\"./extent.js\").Extent} The transformed extent.\n * @api\n */\nexport function transformExtent(extent, source, destination, opt_stops) {\n var transformFunc = getTransform(source, destination);\n return applyTransform(extent, transformFunc, undefined, opt_stops);\n}\n/**\n * Transforms the given point to the destination projection.\n *\n * @param {import(\"./coordinate.js\").Coordinate} point Point.\n * @param {Projection} sourceProjection Source projection.\n * @param {Projection} destinationProjection Destination projection.\n * @return {import(\"./coordinate.js\").Coordinate} Point.\n */\nexport function transformWithProjections(point, sourceProjection, destinationProjection) {\n var transformFunc = getTransformFromProjections(sourceProjection, destinationProjection);\n return transformFunc(point);\n}\n/**\n * @type {?Projection}\n */\nvar userProjection = null;\n/**\n * Set the projection for coordinates supplied from and returned by API methods.\n * Note that this method is not yet a part of the stable API. Support for user\n * projections is not yet complete and should be considered experimental.\n * @param {ProjectionLike} projection The user projection.\n */\nexport function setUserProjection(projection) {\n userProjection = get(projection);\n}\n/**\n * Clear the user projection if set. Note that this method is not yet a part of\n * the stable API. Support for user projections is not yet complete and should\n * be considered experimental.\n */\nexport function clearUserProjection() {\n userProjection = null;\n}\n/**\n * Get the projection for coordinates supplied from and returned by API methods.\n * Note that this method is not yet a part of the stable API. Support for user\n * projections is not yet complete and should be considered experimental.\n * @return {?Projection} The user projection (or null if not set).\n */\nexport function getUserProjection() {\n return userProjection;\n}\n/**\n * Use geographic coordinates (WGS-84 datum) in API methods. Note that this\n * method is not yet a part of the stable API. Support for user projections is\n * not yet complete and should be considered experimental.\n */\nexport function useGeographic() {\n setUserProjection('EPSG:4326');\n}\n/**\n * Return a coordinate transformed into the user projection. If no user projection\n * is set, the original coordinate is returned.\n * @param {Array} coordinate Input coordinate.\n * @param {ProjectionLike} sourceProjection The input coordinate projection.\n * @return {Array} The input coordinate in the user projection.\n */\nexport function toUserCoordinate(coordinate, sourceProjection) {\n if (!userProjection) {\n return coordinate;\n }\n return transform(coordinate, sourceProjection, userProjection);\n}\n/**\n * Return a coordinate transformed from the user projection. If no user projection\n * is set, the original coordinate is returned.\n * @param {Array} coordinate Input coordinate.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {Array} The input coordinate transformed.\n */\nexport function fromUserCoordinate(coordinate, destProjection) {\n if (!userProjection) {\n return coordinate;\n }\n return transform(coordinate, userProjection, destProjection);\n}\n/**\n * Return an extent transformed into the user projection. If no user projection\n * is set, the original extent is returned.\n * @param {import(\"./extent.js\").Extent} extent Input extent.\n * @param {ProjectionLike} sourceProjection The input extent projection.\n * @return {import(\"./extent.js\").Extent} The input extent in the user projection.\n */\nexport function toUserExtent(extent, sourceProjection) {\n if (!userProjection) {\n return extent;\n }\n return transformExtent(extent, sourceProjection, userProjection);\n}\n/**\n * Return an extent transformed from the user projection. If no user projection\n * is set, the original extent is returned.\n * @param {import(\"./extent.js\").Extent} extent Input extent.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {import(\"./extent.js\").Extent} The input extent transformed.\n */\nexport function fromUserExtent(extent, destProjection) {\n if (!userProjection) {\n return extent;\n }\n return transformExtent(extent, userProjection, destProjection);\n}\n/**\n * Creates a safe coordinate transform function from a coordinate transform function.\n * \"Safe\" means that it can handle wrapping of x-coordinates for global projections,\n * and that coordinates exceeding the source projection validity extent's range will be\n * clamped to the validity range.\n * @param {Projection} sourceProj Source projection.\n * @param {Projection} destProj Destination projection.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} transform Transform function (source to destiation).\n * @return {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} Safe transform function (source to destiation).\n */\nexport function createSafeCoordinateTransform(sourceProj, destProj, transform) {\n return function (coord) {\n var sourceX = coord[0];\n var sourceY = coord[1];\n var transformed, worldsAway;\n if (sourceProj.canWrapX()) {\n var sourceExtent = sourceProj.getExtent();\n var sourceExtentWidth = getWidth(sourceExtent);\n worldsAway = getWorldsAway(coord, sourceProj, sourceExtentWidth);\n if (worldsAway) {\n // Move x to the real world\n sourceX = sourceX - worldsAway * sourceExtentWidth;\n }\n sourceX = clamp(sourceX, sourceExtent[0], sourceExtent[2]);\n sourceY = clamp(sourceY, sourceExtent[1], sourceExtent[3]);\n transformed = transform([sourceX, sourceY]);\n }\n else {\n transformed = transform(coord);\n }\n if (worldsAway && destProj.canWrapX()) {\n // Move transformed coordinate back to the offset world\n transformed[0] += worldsAway * getWidth(destProj.getExtent());\n }\n return transformed;\n };\n}\n/**\n * Add transforms to and from EPSG:4326 and EPSG:3857. This function is called\n * by when this module is executed and should only need to be called again after\n * `clearAllProjections()` is called (e.g. in tests).\n */\nexport function addCommon() {\n // Add transformations that don't alter coordinates to convert within set of\n // projections with equal meaning.\n addEquivalentProjections(EPSG3857_PROJECTIONS);\n addEquivalentProjections(EPSG4326_PROJECTIONS);\n // Add transformations to convert EPSG:4326 like coordinates to EPSG:3857 like\n // coordinates and back.\n addEquivalentTransforms(EPSG4326_PROJECTIONS, EPSG3857_PROJECTIONS, fromEPSG4326, toEPSG4326);\n}\naddCommon();\n//# sourceMappingURL=proj.js.map","/**\n * @module ol/geom/flat/transform\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../transform.js\").Transform} transform Transform.\n * @param {Array} [opt_dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function transform2D(flatCoordinates, offset, end, stride, transform, opt_dest) {\n var dest = opt_dest ? opt_dest : [];\n var i = 0;\n for (var j = offset; j < end; j += stride) {\n var x = flatCoordinates[j];\n var y = flatCoordinates[j + 1];\n dest[i++] = transform[0] * x + transform[2] * y + transform[4];\n dest[i++] = transform[1] * x + transform[3] * y + transform[5];\n }\n if (opt_dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} angle Angle.\n * @param {Array} anchor Rotation anchor point.\n * @param {Array} [opt_dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function rotate(flatCoordinates, offset, end, stride, angle, anchor, opt_dest) {\n var dest = opt_dest ? opt_dest : [];\n var cos = Math.cos(angle);\n var sin = Math.sin(angle);\n var anchorX = anchor[0];\n var anchorY = anchor[1];\n var i = 0;\n for (var j = offset; j < end; j += stride) {\n var deltaX = flatCoordinates[j] - anchorX;\n var deltaY = flatCoordinates[j + 1] - anchorY;\n dest[i++] = anchorX + deltaX * cos - deltaY * sin;\n dest[i++] = anchorY + deltaX * sin + deltaY * cos;\n for (var k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (opt_dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n/**\n * Scale the coordinates.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} sx Scale factor in the x-direction.\n * @param {number} sy Scale factor in the y-direction.\n * @param {Array} anchor Scale anchor point.\n * @param {Array} [opt_dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function scale(flatCoordinates, offset, end, stride, sx, sy, anchor, opt_dest) {\n var dest = opt_dest ? opt_dest : [];\n var anchorX = anchor[0];\n var anchorY = anchor[1];\n var i = 0;\n for (var j = offset; j < end; j += stride) {\n var deltaX = flatCoordinates[j] - anchorX;\n var deltaY = flatCoordinates[j + 1] - anchorY;\n dest[i++] = anchorX + sx * deltaX;\n dest[i++] = anchorY + sy * deltaY;\n for (var k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (opt_dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @param {Array} [opt_dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function translate(flatCoordinates, offset, end, stride, deltaX, deltaY, opt_dest) {\n var dest = opt_dest ? opt_dest : [];\n var i = 0;\n for (var j = offset; j < end; j += stride) {\n dest[i++] = flatCoordinates[j] + deltaX;\n dest[i++] = flatCoordinates[j + 1] + deltaY;\n for (var k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (opt_dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n//# sourceMappingURL=transform.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/geom/Geometry\n */\nimport BaseObject from '../Object.js';\nimport Units from '../proj/Units.js';\nimport { abstract } from '../util.js';\nimport { compose as composeTransform, create as createTransform, } from '../transform.js';\nimport { createEmpty, createOrUpdateEmpty, getHeight, returnOrUpdate, } from '../extent.js';\nimport { get as getProjection, getTransform } from '../proj.js';\nimport { memoizeOne } from '../functions.js';\nimport { transform2D } from './flat/transform.js';\n/**\n * @type {import(\"../transform.js\").Transform}\n */\nvar tmpTransform = createTransform();\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Base class for vector geometries.\n *\n * To get notified of changes to the geometry, register a listener for the\n * generic `change` event on your geometry instance.\n *\n * @abstract\n * @api\n */\nvar Geometry = /** @class */ (function (_super) {\n __extends(Geometry, _super);\n function Geometry() {\n var _this = _super.call(this) || this;\n /**\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n _this.extent_ = createEmpty();\n /**\n * @private\n * @type {number}\n */\n _this.extentRevision_ = -1;\n /**\n * @protected\n * @type {number}\n */\n _this.simplifiedGeometryMaxMinSquaredTolerance = 0;\n /**\n * @protected\n * @type {number}\n */\n _this.simplifiedGeometryRevision = 0;\n /**\n * Get a transformed and simplified version of the geometry.\n * @abstract\n * @param {number} revision The geometry revision.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {import(\"../proj.js\").TransformFunction} [opt_transform] Optional transform function.\n * @return {Geometry} Simplified geometry.\n */\n _this.simplifyTransformedInternal = memoizeOne(function (revision, squaredTolerance, opt_transform) {\n if (!opt_transform) {\n return this.getSimplifiedGeometry(squaredTolerance);\n }\n var clone = this.clone();\n clone.applyTransform(opt_transform);\n return clone.getSimplifiedGeometry(squaredTolerance);\n });\n return _this;\n }\n /**\n * Get a transformed and simplified version of the geometry.\n * @abstract\n * @param {number} squaredTolerance Squared tolerance.\n * @param {import(\"../proj.js\").TransformFunction} [opt_transform] Optional transform function.\n * @return {Geometry} Simplified geometry.\n */\n Geometry.prototype.simplifyTransformed = function (squaredTolerance, opt_transform) {\n return this.simplifyTransformedInternal(this.getRevision(), squaredTolerance, opt_transform);\n };\n /**\n * Make a complete copy of the geometry.\n * @abstract\n * @return {!Geometry} Clone.\n */\n Geometry.prototype.clone = function () {\n return abstract();\n };\n /**\n * @abstract\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n Geometry.prototype.closestPointXY = function (x, y, closestPoint, minSquaredDistance) {\n return abstract();\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\n Geometry.prototype.containsXY = function (x, y) {\n var coord = this.getClosestPoint([x, y]);\n return coord[0] === x && coord[1] === y;\n };\n /**\n * Return the closest point of the geometry to the passed point as\n * {@link module:ol/coordinate~Coordinate coordinate}.\n * @param {import(\"../coordinate.js\").Coordinate} point Point.\n * @param {import(\"../coordinate.js\").Coordinate} [opt_closestPoint] Closest point.\n * @return {import(\"../coordinate.js\").Coordinate} Closest point.\n * @api\n */\n Geometry.prototype.getClosestPoint = function (point, opt_closestPoint) {\n var closestPoint = opt_closestPoint ? opt_closestPoint : [NaN, NaN];\n this.closestPointXY(point[0], point[1], closestPoint, Infinity);\n return closestPoint;\n };\n /**\n * Returns true if this geometry includes the specified coordinate. If the\n * coordinate is on the boundary of the geometry, returns false.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} Contains coordinate.\n * @api\n */\n Geometry.prototype.intersectsCoordinate = function (coordinate) {\n return this.containsXY(coordinate[0], coordinate[1]);\n };\n /**\n * @abstract\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n Geometry.prototype.computeExtent = function (extent) {\n return abstract();\n };\n /**\n * Get the extent of the geometry.\n * @param {import(\"../extent.js\").Extent} [opt_extent] Extent.\n * @return {import(\"../extent.js\").Extent} extent Extent.\n * @api\n */\n Geometry.prototype.getExtent = function (opt_extent) {\n if (this.extentRevision_ != this.getRevision()) {\n var extent = this.computeExtent(this.extent_);\n if (isNaN(extent[0]) || isNaN(extent[1])) {\n createOrUpdateEmpty(extent);\n }\n this.extentRevision_ = this.getRevision();\n }\n return returnOrUpdate(this.extent_, opt_extent);\n };\n /**\n * Rotate the geometry around a given coordinate. This modifies the geometry\n * coordinates in place.\n * @abstract\n * @param {number} angle Rotation angle in radians.\n * @param {import(\"../coordinate.js\").Coordinate} anchor The rotation center.\n * @api\n */\n Geometry.prototype.rotate = function (angle, anchor) {\n abstract();\n };\n /**\n * Scale the geometry (with an optional origin). This modifies the geometry\n * coordinates in place.\n * @abstract\n * @param {number} sx The scaling factor in the x-direction.\n * @param {number} [opt_sy] The scaling factor in the y-direction (defaults to sx).\n * @param {import(\"../coordinate.js\").Coordinate} [opt_anchor] The scale origin (defaults to the center\n * of the geometry extent).\n * @api\n */\n Geometry.prototype.scale = function (sx, opt_sy, opt_anchor) {\n abstract();\n };\n /**\n * Create a simplified version of this geometry. For linestrings, this uses\n * the [Douglas Peucker](https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm)\n * algorithm. For polygons, a quantization-based\n * simplification is used to preserve topology.\n * @param {number} tolerance The tolerance distance for simplification.\n * @return {Geometry} A new, simplified version of the original geometry.\n * @api\n */\n Geometry.prototype.simplify = function (tolerance) {\n return this.getSimplifiedGeometry(tolerance * tolerance);\n };\n /**\n * Create a simplified version of this geometry using the Douglas Peucker\n * algorithm.\n * See https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm.\n * @abstract\n * @param {number} squaredTolerance Squared tolerance.\n * @return {Geometry} Simplified geometry.\n */\n Geometry.prototype.getSimplifiedGeometry = function (squaredTolerance) {\n return abstract();\n };\n /**\n * Get the type of this geometry.\n * @abstract\n * @return {import(\"./GeometryType.js\").default} Geometry type.\n */\n Geometry.prototype.getType = function () {\n return abstract();\n };\n /**\n * Apply a transform function to the coordinates of the geometry.\n * The geometry is modified in place.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n * @abstract\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform function.\n * Called with a flat array of geometry coordinates.\n */\n Geometry.prototype.applyTransform = function (transformFn) {\n abstract();\n };\n /**\n * Test if the geometry and the passed extent intersect.\n * @abstract\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n */\n Geometry.prototype.intersectsExtent = function (extent) {\n return abstract();\n };\n /**\n * Translate the geometry. This modifies the geometry coordinates in place. If\n * instead you want a new geometry, first `clone()` this geometry.\n * @abstract\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @api\n */\n Geometry.prototype.translate = function (deltaX, deltaY) {\n abstract();\n };\n /**\n * Transform each coordinate of the geometry from one coordinate reference\n * system to another. The geometry is modified in place.\n * For example, a line will be transformed to a line and a circle to a circle.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n *\n * @param {import(\"../proj.js\").ProjectionLike} source The current projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @param {import(\"../proj.js\").ProjectionLike} destination The desired projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @return {Geometry} This geometry. Note that original geometry is\n * modified in place.\n * @api\n */\n Geometry.prototype.transform = function (source, destination) {\n /** @type {import(\"../proj/Projection.js\").default} */\n var sourceProj = getProjection(source);\n var transformFn = sourceProj.getUnits() == Units.TILE_PIXELS\n ? function (inCoordinates, outCoordinates, stride) {\n var pixelExtent = sourceProj.getExtent();\n var projectedExtent = sourceProj.getWorldExtent();\n var scale = getHeight(projectedExtent) / getHeight(pixelExtent);\n composeTransform(tmpTransform, projectedExtent[0], projectedExtent[3], scale, -scale, 0, 0, 0);\n transform2D(inCoordinates, 0, inCoordinates.length, stride, tmpTransform, outCoordinates);\n return getTransform(sourceProj, destination)(inCoordinates, outCoordinates, stride);\n }\n : getTransform(sourceProj, destination);\n this.applyTransform(transformFn);\n return this;\n };\n return Geometry;\n}(BaseObject));\nexport default Geometry;\n//# sourceMappingURL=Geometry.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/geom/SimpleGeometry\n */\nimport Geometry from './Geometry.js';\nimport GeometryLayout from './GeometryLayout.js';\nimport { abstract } from '../util.js';\nimport { createOrUpdateFromFlatCoordinates, getCenter } from '../extent.js';\nimport { rotate, scale, transform2D, translate } from './flat/transform.js';\n/**\n * @classdesc\n * Abstract base class; only used for creating subclasses; do not instantiate\n * in apps, as cannot be rendered.\n *\n * @abstract\n * @api\n */\nvar SimpleGeometry = /** @class */ (function (_super) {\n __extends(SimpleGeometry, _super);\n function SimpleGeometry() {\n var _this = _super.call(this) || this;\n /**\n * @protected\n * @type {import(\"./GeometryLayout.js\").default}\n */\n _this.layout = GeometryLayout.XY;\n /**\n * @protected\n * @type {number}\n */\n _this.stride = 2;\n /**\n * @protected\n * @type {Array}\n */\n _this.flatCoordinates = null;\n return _this;\n }\n /**\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n SimpleGeometry.prototype.computeExtent = function (extent) {\n return createOrUpdateFromFlatCoordinates(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, extent);\n };\n /**\n * @abstract\n * @return {Array<*>} Coordinates.\n */\n SimpleGeometry.prototype.getCoordinates = function () {\n return abstract();\n };\n /**\n * Return the first coordinate of the geometry.\n * @return {import(\"../coordinate.js\").Coordinate} First coordinate.\n * @api\n */\n SimpleGeometry.prototype.getFirstCoordinate = function () {\n return this.flatCoordinates.slice(0, this.stride);\n };\n /**\n * @return {Array} Flat coordinates.\n */\n SimpleGeometry.prototype.getFlatCoordinates = function () {\n return this.flatCoordinates;\n };\n /**\n * Return the last coordinate of the geometry.\n * @return {import(\"../coordinate.js\").Coordinate} Last point.\n * @api\n */\n SimpleGeometry.prototype.getLastCoordinate = function () {\n return this.flatCoordinates.slice(this.flatCoordinates.length - this.stride);\n };\n /**\n * Return the {@link module:ol/geom/GeometryLayout layout} of the geometry.\n * @return {import(\"./GeometryLayout.js\").default} Layout.\n * @api\n */\n SimpleGeometry.prototype.getLayout = function () {\n return this.layout;\n };\n /**\n * Create a simplified version of this geometry using the Douglas Peucker algorithm.\n * @param {number} squaredTolerance Squared tolerance.\n * @return {SimpleGeometry} Simplified geometry.\n */\n SimpleGeometry.prototype.getSimplifiedGeometry = function (squaredTolerance) {\n if (this.simplifiedGeometryRevision !== this.getRevision()) {\n this.simplifiedGeometryMaxMinSquaredTolerance = 0;\n this.simplifiedGeometryRevision = this.getRevision();\n }\n // If squaredTolerance is negative or if we know that simplification will not\n // have any effect then just return this.\n if (squaredTolerance < 0 ||\n (this.simplifiedGeometryMaxMinSquaredTolerance !== 0 &&\n squaredTolerance <= this.simplifiedGeometryMaxMinSquaredTolerance)) {\n return this;\n }\n var simplifiedGeometry = this.getSimplifiedGeometryInternal(squaredTolerance);\n var simplifiedFlatCoordinates = simplifiedGeometry.getFlatCoordinates();\n if (simplifiedFlatCoordinates.length < this.flatCoordinates.length) {\n return simplifiedGeometry;\n }\n else {\n // Simplification did not actually remove any coordinates. We now know\n // that any calls to getSimplifiedGeometry with a squaredTolerance less\n // than or equal to the current squaredTolerance will also not have any\n // effect. This allows us to short circuit simplification (saving CPU\n // cycles) and prevents the cache of simplified geometries from filling\n // up with useless identical copies of this geometry (saving memory).\n this.simplifiedGeometryMaxMinSquaredTolerance = squaredTolerance;\n return this;\n }\n };\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {SimpleGeometry} Simplified geometry.\n * @protected\n */\n SimpleGeometry.prototype.getSimplifiedGeometryInternal = function (squaredTolerance) {\n return this;\n };\n /**\n * @return {number} Stride.\n */\n SimpleGeometry.prototype.getStride = function () {\n return this.stride;\n };\n /**\n * @param {import(\"./GeometryLayout.js\").default} layout Layout.\n * @param {Array} flatCoordinates Flat coordinates.\n */\n SimpleGeometry.prototype.setFlatCoordinates = function (layout, flatCoordinates) {\n this.stride = getStrideForLayout(layout);\n this.layout = layout;\n this.flatCoordinates = flatCoordinates;\n };\n /**\n * @abstract\n * @param {!Array<*>} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n */\n SimpleGeometry.prototype.setCoordinates = function (coordinates, opt_layout) {\n abstract();\n };\n /**\n * @param {import(\"./GeometryLayout.js\").default|undefined} layout Layout.\n * @param {Array<*>} coordinates Coordinates.\n * @param {number} nesting Nesting.\n * @protected\n */\n SimpleGeometry.prototype.setLayout = function (layout, coordinates, nesting) {\n /** @type {number} */\n var stride;\n if (layout) {\n stride = getStrideForLayout(layout);\n }\n else {\n for (var i = 0; i < nesting; ++i) {\n if (coordinates.length === 0) {\n this.layout = GeometryLayout.XY;\n this.stride = 2;\n return;\n }\n else {\n coordinates = /** @type {Array} */ (coordinates[0]);\n }\n }\n stride = coordinates.length;\n layout = getLayoutForStride(stride);\n }\n this.layout = layout;\n this.stride = stride;\n };\n /**\n * Apply a transform function to the coordinates of the geometry.\n * The geometry is modified in place.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform function.\n * Called with a flat array of geometry coordinates.\n * @api\n */\n SimpleGeometry.prototype.applyTransform = function (transformFn) {\n if (this.flatCoordinates) {\n transformFn(this.flatCoordinates, this.flatCoordinates, this.stride);\n this.changed();\n }\n };\n /**\n * Rotate the geometry around a given coordinate. This modifies the geometry\n * coordinates in place.\n * @param {number} angle Rotation angle in counter-clockwise radians.\n * @param {import(\"../coordinate.js\").Coordinate} anchor The rotation center.\n * @api\n */\n SimpleGeometry.prototype.rotate = function (angle, anchor) {\n var flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n var stride = this.getStride();\n rotate(flatCoordinates, 0, flatCoordinates.length, stride, angle, anchor, flatCoordinates);\n this.changed();\n }\n };\n /**\n * Scale the geometry (with an optional origin). This modifies the geometry\n * coordinates in place.\n * @param {number} sx The scaling factor in the x-direction.\n * @param {number} [opt_sy] The scaling factor in the y-direction (defaults to sx).\n * @param {import(\"../coordinate.js\").Coordinate} [opt_anchor] The scale origin (defaults to the center\n * of the geometry extent).\n * @api\n */\n SimpleGeometry.prototype.scale = function (sx, opt_sy, opt_anchor) {\n var sy = opt_sy;\n if (sy === undefined) {\n sy = sx;\n }\n var anchor = opt_anchor;\n if (!anchor) {\n anchor = getCenter(this.getExtent());\n }\n var flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n var stride = this.getStride();\n scale(flatCoordinates, 0, flatCoordinates.length, stride, sx, sy, anchor, flatCoordinates);\n this.changed();\n }\n };\n /**\n * Translate the geometry. This modifies the geometry coordinates in place. If\n * instead you want a new geometry, first `clone()` this geometry.\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @api\n */\n SimpleGeometry.prototype.translate = function (deltaX, deltaY) {\n var flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n var stride = this.getStride();\n translate(flatCoordinates, 0, flatCoordinates.length, stride, deltaX, deltaY, flatCoordinates);\n this.changed();\n }\n };\n return SimpleGeometry;\n}(Geometry));\n/**\n * @param {number} stride Stride.\n * @return {import(\"./GeometryLayout.js\").default} layout Layout.\n */\nfunction getLayoutForStride(stride) {\n var layout;\n if (stride == 2) {\n layout = GeometryLayout.XY;\n }\n else if (stride == 3) {\n layout = GeometryLayout.XYZ;\n }\n else if (stride == 4) {\n layout = GeometryLayout.XYZM;\n }\n return /** @type {import(\"./GeometryLayout.js\").default} */ (layout);\n}\n/**\n * @param {import(\"./GeometryLayout.js\").default} layout Layout.\n * @return {number} Stride.\n */\nexport function getStrideForLayout(layout) {\n var stride;\n if (layout == GeometryLayout.XY) {\n stride = 2;\n }\n else if (layout == GeometryLayout.XYZ || layout == GeometryLayout.XYM) {\n stride = 3;\n }\n else if (layout == GeometryLayout.XYZM) {\n stride = 4;\n }\n return /** @type {number} */ (stride);\n}\n/**\n * @param {SimpleGeometry} simpleGeometry Simple geometry.\n * @param {import(\"../transform.js\").Transform} transform Transform.\n * @param {Array} [opt_dest] Destination.\n * @return {Array} Transformed flat coordinates.\n */\nexport function transformGeom2D(simpleGeometry, transform, opt_dest) {\n var flatCoordinates = simpleGeometry.getFlatCoordinates();\n if (!flatCoordinates) {\n return null;\n }\n else {\n var stride = simpleGeometry.getStride();\n return transform2D(flatCoordinates, 0, flatCoordinates.length, stride, transform, opt_dest);\n }\n}\nexport default SimpleGeometry;\n//# sourceMappingURL=SimpleGeometry.js.map","/**\n * @module ol/geom/flat/closest\n */\nimport { lerp, squaredDistance as squaredDx } from '../../math.js';\n/**\n * Returns the point on the 2D line segment flatCoordinates[offset1] to\n * flatCoordinates[offset2] that is closest to the point (x, y). Extra\n * dimensions are linearly interpolated.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset1 Offset 1.\n * @param {number} offset2 Offset 2.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n */\nfunction assignClosest(flatCoordinates, offset1, offset2, stride, x, y, closestPoint) {\n var x1 = flatCoordinates[offset1];\n var y1 = flatCoordinates[offset1 + 1];\n var dx = flatCoordinates[offset2] - x1;\n var dy = flatCoordinates[offset2 + 1] - y1;\n var offset;\n if (dx === 0 && dy === 0) {\n offset = offset1;\n }\n else {\n var t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n offset = offset2;\n }\n else if (t > 0) {\n for (var i = 0; i < stride; ++i) {\n closestPoint[i] = lerp(flatCoordinates[offset1 + i], flatCoordinates[offset2 + i], t);\n }\n closestPoint.length = stride;\n return;\n }\n else {\n offset = offset1;\n }\n }\n for (var i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[offset + i];\n }\n closestPoint.length = stride;\n}\n/**\n * Return the squared of the largest distance between any pair of consecutive\n * coordinates.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function maxSquaredDelta(flatCoordinates, offset, end, stride, max) {\n var x1 = flatCoordinates[offset];\n var y1 = flatCoordinates[offset + 1];\n for (offset += stride; offset < end; offset += stride) {\n var x2 = flatCoordinates[offset];\n var y2 = flatCoordinates[offset + 1];\n var squaredDelta = squaredDx(x1, y1, x2, y2);\n if (squaredDelta > max) {\n max = squaredDelta;\n }\n x1 = x2;\n y1 = y2;\n }\n return max;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function arrayMaxSquaredDelta(flatCoordinates, offset, ends, stride, max) {\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n max = maxSquaredDelta(flatCoordinates, offset, end, stride, max);\n offset = end;\n }\n return max;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function multiArrayMaxSquaredDelta(flatCoordinates, offset, endss, stride, max) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n max = arrayMaxSquaredDelta(flatCoordinates, offset, ends, stride, max);\n offset = ends[ends.length - 1];\n }\n return max;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array} [opt_tmpPoint] Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestPoint(flatCoordinates, offset, end, stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance, opt_tmpPoint) {\n if (offset == end) {\n return minSquaredDistance;\n }\n var i, squaredDistance;\n if (maxDelta === 0) {\n // All points are identical, so just test the first point.\n squaredDistance = squaredDx(x, y, flatCoordinates[offset], flatCoordinates[offset + 1]);\n if (squaredDistance < minSquaredDistance) {\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[offset + i];\n }\n closestPoint.length = stride;\n return squaredDistance;\n }\n else {\n return minSquaredDistance;\n }\n }\n var tmpPoint = opt_tmpPoint ? opt_tmpPoint : [NaN, NaN];\n var index = offset + stride;\n while (index < end) {\n assignClosest(flatCoordinates, index - stride, index, stride, x, y, tmpPoint);\n squaredDistance = squaredDx(x, y, tmpPoint[0], tmpPoint[1]);\n if (squaredDistance < minSquaredDistance) {\n minSquaredDistance = squaredDistance;\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = tmpPoint[i];\n }\n closestPoint.length = stride;\n index += stride;\n }\n else {\n // Skip ahead multiple points, because we know that all the skipped\n // points cannot be any closer than the closest point we have found so\n // far. We know this because we know how close the current point is, how\n // close the closest point we have found so far is, and the maximum\n // distance between consecutive points. For example, if we're currently\n // at distance 10, the best we've found so far is 3, and that the maximum\n // distance between consecutive points is 2, then we'll need to skip at\n // least (10 - 3) / 2 == 3 (rounded down) points to have any chance of\n // finding a closer point. We use Math.max(..., 1) to ensure that we\n // always advance at least one point, to avoid an infinite loop.\n index +=\n stride *\n Math.max(((Math.sqrt(squaredDistance) - Math.sqrt(minSquaredDistance)) /\n maxDelta) |\n 0, 1);\n }\n }\n if (isRing) {\n // Check the closing segment.\n assignClosest(flatCoordinates, end - stride, offset, stride, x, y, tmpPoint);\n squaredDistance = squaredDx(x, y, tmpPoint[0], tmpPoint[1]);\n if (squaredDistance < minSquaredDistance) {\n minSquaredDistance = squaredDistance;\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = tmpPoint[i];\n }\n closestPoint.length = stride;\n }\n }\n return minSquaredDistance;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array} [opt_tmpPoint] Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestArrayPoint(flatCoordinates, offset, ends, stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance, opt_tmpPoint) {\n var tmpPoint = opt_tmpPoint ? opt_tmpPoint : [NaN, NaN];\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n minSquaredDistance = assignClosestPoint(flatCoordinates, offset, end, stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance, tmpPoint);\n offset = end;\n }\n return minSquaredDistance;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array} [opt_tmpPoint] Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestMultiArrayPoint(flatCoordinates, offset, endss, stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance, opt_tmpPoint) {\n var tmpPoint = opt_tmpPoint ? opt_tmpPoint : [NaN, NaN];\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n minSquaredDistance = assignClosestArrayPoint(flatCoordinates, offset, ends, stride, maxDelta, isRing, x, y, closestPoint, minSquaredDistance, tmpPoint);\n offset = ends[ends.length - 1];\n }\n return minSquaredDistance;\n}\n//# sourceMappingURL=closest.js.map","/**\n * @module ol/geom/flat/deflate\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {import(\"../../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {number} stride Stride.\n * @return {number} offset Offset.\n */\nexport function deflateCoordinate(flatCoordinates, offset, coordinate, stride) {\n for (var i = 0, ii = coordinate.length; i < ii; ++i) {\n flatCoordinates[offset++] = coordinate[i];\n }\n return offset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} coordinates Coordinates.\n * @param {number} stride Stride.\n * @return {number} offset Offset.\n */\nexport function deflateCoordinates(flatCoordinates, offset, coordinates, stride) {\n for (var i = 0, ii = coordinates.length; i < ii; ++i) {\n var coordinate = coordinates[i];\n for (var j = 0; j < stride; ++j) {\n flatCoordinates[offset++] = coordinate[j];\n }\n }\n return offset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} coordinatess Coordinatess.\n * @param {number} stride Stride.\n * @param {Array} [opt_ends] Ends.\n * @return {Array} Ends.\n */\nexport function deflateCoordinatesArray(flatCoordinates, offset, coordinatess, stride, opt_ends) {\n var ends = opt_ends ? opt_ends : [];\n var i = 0;\n for (var j = 0, jj = coordinatess.length; j < jj; ++j) {\n var end = deflateCoordinates(flatCoordinates, offset, coordinatess[j], stride);\n ends[i++] = end;\n offset = end;\n }\n ends.length = i;\n return ends;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>>} coordinatesss Coordinatesss.\n * @param {number} stride Stride.\n * @param {Array>} [opt_endss] Endss.\n * @return {Array>} Endss.\n */\nexport function deflateMultiCoordinatesArray(flatCoordinates, offset, coordinatesss, stride, opt_endss) {\n var endss = opt_endss ? opt_endss : [];\n var i = 0;\n for (var j = 0, jj = coordinatesss.length; j < jj; ++j) {\n var ends = deflateCoordinatesArray(flatCoordinates, offset, coordinatesss[j], stride, endss[i]);\n endss[i++] = ends;\n offset = ends[ends.length - 1];\n }\n endss.length = i;\n return endss;\n}\n//# sourceMappingURL=deflate.js.map","/**\n * @module ol/geom/flat/simplify\n */\n// Based on simplify-js https://github.com/mourner/simplify-js\n// Copyright (c) 2012, Vladimir Agafonkin\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are met:\n//\n// 1. Redistributions of source code must retain the above copyright notice,\n// this list of conditions and the following disclaimer.\n//\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n// POSSIBILITY OF SUCH DAMAGE.\nimport { squaredDistance, squaredSegmentDistance } from '../../math.js';\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {boolean} highQuality Highest quality.\n * @param {Array} [opt_simplifiedFlatCoordinates] Simplified flat\n * coordinates.\n * @return {Array} Simplified line string.\n */\nexport function simplifyLineString(flatCoordinates, offset, end, stride, squaredTolerance, highQuality, opt_simplifiedFlatCoordinates) {\n var simplifiedFlatCoordinates = opt_simplifiedFlatCoordinates !== undefined\n ? opt_simplifiedFlatCoordinates\n : [];\n if (!highQuality) {\n end = radialDistance(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, 0);\n flatCoordinates = simplifiedFlatCoordinates;\n offset = 0;\n stride = 2;\n }\n simplifiedFlatCoordinates.length = douglasPeucker(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, 0);\n return simplifiedFlatCoordinates;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function douglasPeucker(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset) {\n var n = (end - offset) / stride;\n if (n < 3) {\n for (; offset < end; offset += stride) {\n simplifiedFlatCoordinates[simplifiedOffset++] = flatCoordinates[offset];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + 1];\n }\n return simplifiedOffset;\n }\n /** @type {Array} */\n var markers = new Array(n);\n markers[0] = 1;\n markers[n - 1] = 1;\n /** @type {Array} */\n var stack = [offset, end - stride];\n var index = 0;\n while (stack.length > 0) {\n var last = stack.pop();\n var first = stack.pop();\n var maxSquaredDistance = 0;\n var x1 = flatCoordinates[first];\n var y1 = flatCoordinates[first + 1];\n var x2 = flatCoordinates[last];\n var y2 = flatCoordinates[last + 1];\n for (var i = first + stride; i < last; i += stride) {\n var x = flatCoordinates[i];\n var y = flatCoordinates[i + 1];\n var squaredDistance_1 = squaredSegmentDistance(x, y, x1, y1, x2, y2);\n if (squaredDistance_1 > maxSquaredDistance) {\n index = i;\n maxSquaredDistance = squaredDistance_1;\n }\n }\n if (maxSquaredDistance > squaredTolerance) {\n markers[(index - offset) / stride] = 1;\n if (first + stride < index) {\n stack.push(first, index);\n }\n if (index + stride < last) {\n stack.push(index, last);\n }\n }\n }\n for (var i = 0; i < n; ++i) {\n if (markers[i]) {\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + i * stride];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + i * stride + 1];\n }\n }\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array} simplifiedEnds Simplified ends.\n * @return {number} Simplified offset.\n */\nexport function douglasPeuckerArray(flatCoordinates, offset, ends, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds) {\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n simplifiedOffset = douglasPeucker(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset);\n simplifiedEnds.push(simplifiedOffset);\n offset = end;\n }\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array>} simplifiedEndss Simplified endss.\n * @return {number} Simplified offset.\n */\nexport function douglasPeuckerMultiArray(flatCoordinates, offset, endss, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEndss) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n var simplifiedEnds = [];\n simplifiedOffset = douglasPeuckerArray(flatCoordinates, offset, ends, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds);\n simplifiedEndss.push(simplifiedEnds);\n offset = ends[ends.length - 1];\n }\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function radialDistance(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset) {\n if (end <= offset + stride) {\n // zero or one point, no simplification possible, so copy and return\n for (; offset < end; offset += stride) {\n simplifiedFlatCoordinates[simplifiedOffset++] = flatCoordinates[offset];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + 1];\n }\n return simplifiedOffset;\n }\n var x1 = flatCoordinates[offset];\n var y1 = flatCoordinates[offset + 1];\n // copy first point\n simplifiedFlatCoordinates[simplifiedOffset++] = x1;\n simplifiedFlatCoordinates[simplifiedOffset++] = y1;\n var x2 = x1;\n var y2 = y1;\n for (offset += stride; offset < end; offset += stride) {\n x2 = flatCoordinates[offset];\n y2 = flatCoordinates[offset + 1];\n if (squaredDistance(x1, y1, x2, y2) > squaredTolerance) {\n // copy point at offset\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n x1 = x2;\n y1 = y2;\n }\n }\n if (x2 != x1 || y2 != y1) {\n // copy last point\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n }\n return simplifiedOffset;\n}\n/**\n * @param {number} value Value.\n * @param {number} tolerance Tolerance.\n * @return {number} Rounded value.\n */\nexport function snap(value, tolerance) {\n return tolerance * Math.round(value / tolerance);\n}\n/**\n * Simplifies a line string using an algorithm designed by Tim Schaub.\n * Coordinates are snapped to the nearest value in a virtual grid and\n * consecutive duplicate coordinates are discarded. This effectively preserves\n * topology as the simplification of any subsection of a line string is\n * independent of the rest of the line string. This means that, for examples,\n * the common edge between two polygons will be simplified to the same line\n * string independently in both polygons. This implementation uses a single\n * pass over the coordinates and eliminates intermediate collinear points.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function quantize(flatCoordinates, offset, end, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset) {\n // do nothing if the line is empty\n if (offset == end) {\n return simplifiedOffset;\n }\n // snap the first coordinate (P1)\n var x1 = snap(flatCoordinates[offset], tolerance);\n var y1 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n // add the first coordinate to the output\n simplifiedFlatCoordinates[simplifiedOffset++] = x1;\n simplifiedFlatCoordinates[simplifiedOffset++] = y1;\n // find the next coordinate that does not snap to the same value as the first\n // coordinate (P2)\n var x2, y2;\n do {\n x2 = snap(flatCoordinates[offset], tolerance);\n y2 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n if (offset == end) {\n // all coordinates snap to the same value, the line collapses to a point\n // push the last snapped value anyway to ensure that the output contains\n // at least two points\n // FIXME should we really return at least two points anyway?\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n return simplifiedOffset;\n }\n } while (x2 == x1 && y2 == y1);\n while (offset < end) {\n // snap the next coordinate (P3)\n var x3 = snap(flatCoordinates[offset], tolerance);\n var y3 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n // skip P3 if it is equal to P2\n if (x3 == x2 && y3 == y2) {\n continue;\n }\n // calculate the delta between P1 and P2\n var dx1 = x2 - x1;\n var dy1 = y2 - y1;\n // calculate the delta between P3 and P1\n var dx2 = x3 - x1;\n var dy2 = y3 - y1;\n // if P1, P2, and P3 are colinear and P3 is further from P1 than P2 is from\n // P1 in the same direction then P2 is on the straight line between P1 and\n // P3\n if (dx1 * dy2 == dy1 * dx2 &&\n ((dx1 < 0 && dx2 < dx1) || dx1 == dx2 || (dx1 > 0 && dx2 > dx1)) &&\n ((dy1 < 0 && dy2 < dy1) || dy1 == dy2 || (dy1 > 0 && dy2 > dy1))) {\n // discard P2 and set P2 = P3\n x2 = x3;\n y2 = y3;\n continue;\n }\n // either P1, P2, and P3 are not colinear, or they are colinear but P3 is\n // between P3 and P1 or on the opposite half of the line to P2. add P2,\n // and continue with P1 = P2 and P2 = P3\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n x1 = x2;\n y1 = y2;\n x2 = x3;\n y2 = y3;\n }\n // add the last point (P2)\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array} simplifiedEnds Simplified ends.\n * @return {number} Simplified offset.\n */\nexport function quantizeArray(flatCoordinates, offset, ends, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds) {\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n simplifiedOffset = quantize(flatCoordinates, offset, end, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset);\n simplifiedEnds.push(simplifiedOffset);\n offset = end;\n }\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array>} simplifiedEndss Simplified endss.\n * @return {number} Simplified offset.\n */\nexport function quantizeMultiArray(flatCoordinates, offset, endss, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEndss) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n var simplifiedEnds = [];\n simplifiedOffset = quantizeArray(flatCoordinates, offset, ends, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds);\n simplifiedEndss.push(simplifiedEnds);\n offset = ends[ends.length - 1];\n }\n return simplifiedOffset;\n}\n//# sourceMappingURL=simplify.js.map","/**\n * @module ol/geom/flat/inflate\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {Array} [opt_coordinates] Coordinates.\n * @return {Array} Coordinates.\n */\nexport function inflateCoordinates(flatCoordinates, offset, end, stride, opt_coordinates) {\n var coordinates = opt_coordinates !== undefined ? opt_coordinates : [];\n var i = 0;\n for (var j = offset; j < end; j += stride) {\n coordinates[i++] = flatCoordinates.slice(j, j + stride);\n }\n coordinates.length = i;\n return coordinates;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {Array>} [opt_coordinatess] Coordinatess.\n * @return {Array>} Coordinatess.\n */\nexport function inflateCoordinatesArray(flatCoordinates, offset, ends, stride, opt_coordinatess) {\n var coordinatess = opt_coordinatess !== undefined ? opt_coordinatess : [];\n var i = 0;\n for (var j = 0, jj = ends.length; j < jj; ++j) {\n var end = ends[j];\n coordinatess[i++] = inflateCoordinates(flatCoordinates, offset, end, stride, coordinatess[i]);\n offset = end;\n }\n coordinatess.length = i;\n return coordinatess;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {Array>>} [opt_coordinatesss]\n * Coordinatesss.\n * @return {Array>>} Coordinatesss.\n */\nexport function inflateMultiCoordinatesArray(flatCoordinates, offset, endss, stride, opt_coordinatesss) {\n var coordinatesss = opt_coordinatesss !== undefined ? opt_coordinatesss : [];\n var i = 0;\n for (var j = 0, jj = endss.length; j < jj; ++j) {\n var ends = endss[j];\n coordinatesss[i++] = inflateCoordinatesArray(flatCoordinates, offset, ends, stride, coordinatesss[i]);\n offset = ends[ends.length - 1];\n }\n coordinatesss.length = i;\n return coordinatesss;\n}\n//# sourceMappingURL=inflate.js.map","/**\n * @module ol/geom/flat/area\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRing(flatCoordinates, offset, end, stride) {\n var twiceArea = 0;\n var x1 = flatCoordinates[end - stride];\n var y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n var x2 = flatCoordinates[offset];\n var y2 = flatCoordinates[offset + 1];\n twiceArea += y1 * x2 - x1 * y2;\n x1 = x2;\n y1 = y2;\n }\n return twiceArea / 2;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRings(flatCoordinates, offset, ends, stride) {\n var area = 0;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n area += linearRing(flatCoordinates, offset, end, stride);\n offset = end;\n }\n return area;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @return {number} Area.\n */\nexport function linearRingss(flatCoordinates, offset, endss, stride) {\n var area = 0;\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n area += linearRings(flatCoordinates, offset, ends, stride);\n offset = ends[ends.length - 1];\n }\n return area;\n}\n//# sourceMappingURL=area.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/geom/LinearRing\n */\nimport GeometryLayout from './GeometryLayout.js';\nimport GeometryType from './GeometryType.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport { assignClosestPoint, maxSquaredDelta } from './flat/closest.js';\nimport { closestSquaredDistanceXY } from '../extent.js';\nimport { deflateCoordinates } from './flat/deflate.js';\nimport { douglasPeucker } from './flat/simplify.js';\nimport { inflateCoordinates } from './flat/inflate.js';\nimport { linearRing as linearRingArea } from './flat/area.js';\n/**\n * @classdesc\n * Linear ring geometry. Only used as part of polygon; cannot be rendered\n * on its own.\n *\n * @api\n */\nvar LinearRing = /** @class */ (function (_super) {\n __extends(LinearRing, _super);\n /**\n * @param {Array|Array} coordinates Coordinates.\n * For internal use, flat coordinates in combination with `opt_layout` are also accepted.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n */\n function LinearRing(coordinates, opt_layout) {\n var _this = _super.call(this) || this;\n /**\n * @private\n * @type {number}\n */\n _this.maxDelta_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.maxDeltaRevision_ = -1;\n if (opt_layout !== undefined && !Array.isArray(coordinates[0])) {\n _this.setFlatCoordinates(opt_layout, \n /** @type {Array} */ (coordinates));\n }\n else {\n _this.setCoordinates(\n /** @type {Array} */ (coordinates), opt_layout);\n }\n return _this;\n }\n /**\n * Make a complete copy of the geometry.\n * @return {!LinearRing} Clone.\n * @api\n */\n LinearRing.prototype.clone = function () {\n return new LinearRing(this.flatCoordinates.slice(), this.layout);\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n LinearRing.prototype.closestPointXY = function (x, y, closestPoint, minSquaredDistance) {\n if (minSquaredDistance < closestSquaredDistanceXY(this.getExtent(), x, y)) {\n return minSquaredDistance;\n }\n if (this.maxDeltaRevision_ != this.getRevision()) {\n this.maxDelta_ = Math.sqrt(maxSquaredDelta(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, 0));\n this.maxDeltaRevision_ = this.getRevision();\n }\n return assignClosestPoint(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, this.maxDelta_, true, x, y, closestPoint, minSquaredDistance);\n };\n /**\n * Return the area of the linear ring on projected plane.\n * @return {number} Area (on projected plane).\n * @api\n */\n LinearRing.prototype.getArea = function () {\n return linearRingArea(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride);\n };\n /**\n * Return the coordinates of the linear ring.\n * @return {Array} Coordinates.\n * @api\n */\n LinearRing.prototype.getCoordinates = function () {\n return inflateCoordinates(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride);\n };\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {LinearRing} Simplified LinearRing.\n * @protected\n */\n LinearRing.prototype.getSimplifiedGeometryInternal = function (squaredTolerance) {\n var simplifiedFlatCoordinates = [];\n simplifiedFlatCoordinates.length = douglasPeucker(this.flatCoordinates, 0, this.flatCoordinates.length, this.stride, squaredTolerance, simplifiedFlatCoordinates, 0);\n return new LinearRing(simplifiedFlatCoordinates, GeometryLayout.XY);\n };\n /**\n * Get the type of this geometry.\n * @return {import(\"./GeometryType.js\").default} Geometry type.\n * @api\n */\n LinearRing.prototype.getType = function () {\n return GeometryType.LINEAR_RING;\n };\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n LinearRing.prototype.intersectsExtent = function (extent) {\n return false;\n };\n /**\n * Set the coordinates of the linear ring.\n * @param {!Array} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n * @api\n */\n LinearRing.prototype.setCoordinates = function (coordinates, opt_layout) {\n this.setLayout(opt_layout, coordinates, 1);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n this.flatCoordinates.length = deflateCoordinates(this.flatCoordinates, 0, coordinates, this.stride);\n this.changed();\n };\n return LinearRing;\n}(SimpleGeometry));\nexport default LinearRing;\n//# sourceMappingURL=LinearRing.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/geom/Point\n */\nimport GeometryType from './GeometryType.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport { containsXY, createOrUpdateFromCoordinate } from '../extent.js';\nimport { deflateCoordinate } from './flat/deflate.js';\nimport { squaredDistance as squaredDx } from '../math.js';\n/**\n * @classdesc\n * Point geometry.\n *\n * @api\n */\nvar Point = /** @class */ (function (_super) {\n __extends(Point, _super);\n /**\n * @param {import(\"../coordinate.js\").Coordinate} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n */\n function Point(coordinates, opt_layout) {\n var _this = _super.call(this) || this;\n _this.setCoordinates(coordinates, opt_layout);\n return _this;\n }\n /**\n * Make a complete copy of the geometry.\n * @return {!Point} Clone.\n * @api\n */\n Point.prototype.clone = function () {\n var point = new Point(this.flatCoordinates.slice(), this.layout);\n point.applyProperties(this);\n return point;\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n Point.prototype.closestPointXY = function (x, y, closestPoint, minSquaredDistance) {\n var flatCoordinates = this.flatCoordinates;\n var squaredDistance = squaredDx(x, y, flatCoordinates[0], flatCoordinates[1]);\n if (squaredDistance < minSquaredDistance) {\n var stride = this.stride;\n for (var i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[i];\n }\n closestPoint.length = stride;\n return squaredDistance;\n }\n else {\n return minSquaredDistance;\n }\n };\n /**\n * Return the coordinate of the point.\n * @return {import(\"../coordinate.js\").Coordinate} Coordinates.\n * @api\n */\n Point.prototype.getCoordinates = function () {\n return !this.flatCoordinates ? [] : this.flatCoordinates.slice();\n };\n /**\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n Point.prototype.computeExtent = function (extent) {\n return createOrUpdateFromCoordinate(this.flatCoordinates, extent);\n };\n /**\n * Get the type of this geometry.\n * @return {import(\"./GeometryType.js\").default} Geometry type.\n * @api\n */\n Point.prototype.getType = function () {\n return GeometryType.POINT;\n };\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n Point.prototype.intersectsExtent = function (extent) {\n return containsXY(extent, this.flatCoordinates[0], this.flatCoordinates[1]);\n };\n /**\n * @param {!Array<*>} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n * @api\n */\n Point.prototype.setCoordinates = function (coordinates, opt_layout) {\n this.setLayout(opt_layout, coordinates, 0);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n this.flatCoordinates.length = deflateCoordinate(this.flatCoordinates, 0, coordinates, this.stride);\n this.changed();\n };\n return Point;\n}(SimpleGeometry));\nexport default Point;\n//# sourceMappingURL=Point.js.map","/**\n * @module ol/geom/flat/contains\n */\nimport { forEachCorner } from '../../extent.js';\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} Contains extent.\n */\nexport function linearRingContainsExtent(flatCoordinates, offset, end, stride, extent) {\n var outside = forEachCorner(extent, \n /**\n * @param {import(\"../../coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} Contains (x, y).\n */\n function (coordinate) {\n return !linearRingContainsXY(flatCoordinates, offset, end, stride, coordinate[0], coordinate[1]);\n });\n return !outside;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingContainsXY(flatCoordinates, offset, end, stride, x, y) {\n // https://geomalgorithms.com/a03-_inclusion.html\n // Copyright 2000 softSurfer, 2012 Dan Sunday\n // This code may be freely used and modified for any purpose\n // providing that this copyright notice is included with it.\n // SoftSurfer makes no warranty for this code, and cannot be held\n // liable for any real or imagined damage resulting from its use.\n // Users of this code must verify correctness for their application.\n var wn = 0;\n var x1 = flatCoordinates[end - stride];\n var y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n var x2 = flatCoordinates[offset];\n var y2 = flatCoordinates[offset + 1];\n if (y1 <= y) {\n if (y2 > y && (x2 - x1) * (y - y1) - (x - x1) * (y2 - y1) > 0) {\n wn++;\n }\n }\n else if (y2 <= y && (x2 - x1) * (y - y1) - (x - x1) * (y2 - y1) < 0) {\n wn--;\n }\n x1 = x2;\n y1 = y2;\n }\n return wn !== 0;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y) {\n if (ends.length === 0) {\n return false;\n }\n if (!linearRingContainsXY(flatCoordinates, offset, ends[0], stride, x, y)) {\n return false;\n }\n for (var i = 1, ii = ends.length; i < ii; ++i) {\n if (linearRingContainsXY(flatCoordinates, ends[i - 1], ends[i], stride, x, y)) {\n return false;\n }\n }\n return true;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingssContainsXY(flatCoordinates, offset, endss, stride, x, y) {\n if (endss.length === 0) {\n return false;\n }\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n if (linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y)) {\n return true;\n }\n offset = ends[ends.length - 1];\n }\n return false;\n}\n//# sourceMappingURL=contains.js.map","/**\n * @module ol/geom/flat/interiorpoint\n */\nimport { linearRingsContainsXY } from './contains.js';\nimport { numberSafeCompareFunction } from '../../array.js';\n/**\n * Calculates a point that is likely to lie in the interior of the linear rings.\n * Inspired by JTS's com.vividsolutions.jts.geom.Geometry#getInteriorPoint.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {Array} flatCenters Flat centers.\n * @param {number} flatCentersOffset Flat center offset.\n * @param {Array} [opt_dest] Destination.\n * @return {Array} Destination point as XYM coordinate, where M is the\n * length of the horizontal intersection that the point belongs to.\n */\nexport function getInteriorPointOfArray(flatCoordinates, offset, ends, stride, flatCenters, flatCentersOffset, opt_dest) {\n var i, ii, x, x1, x2, y1, y2;\n var y = flatCenters[flatCentersOffset + 1];\n /** @type {Array} */\n var intersections = [];\n // Calculate intersections with the horizontal line\n for (var r = 0, rr = ends.length; r < rr; ++r) {\n var end = ends[r];\n x1 = flatCoordinates[end - stride];\n y1 = flatCoordinates[end - stride + 1];\n for (i = offset; i < end; i += stride) {\n x2 = flatCoordinates[i];\n y2 = flatCoordinates[i + 1];\n if ((y <= y1 && y2 <= y) || (y1 <= y && y <= y2)) {\n x = ((y - y1) / (y2 - y1)) * (x2 - x1) + x1;\n intersections.push(x);\n }\n x1 = x2;\n y1 = y2;\n }\n }\n // Find the longest segment of the horizontal line that has its center point\n // inside the linear ring.\n var pointX = NaN;\n var maxSegmentLength = -Infinity;\n intersections.sort(numberSafeCompareFunction);\n x1 = intersections[0];\n for (i = 1, ii = intersections.length; i < ii; ++i) {\n x2 = intersections[i];\n var segmentLength = Math.abs(x2 - x1);\n if (segmentLength > maxSegmentLength) {\n x = (x1 + x2) / 2;\n if (linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y)) {\n pointX = x;\n maxSegmentLength = segmentLength;\n }\n }\n x1 = x2;\n }\n if (isNaN(pointX)) {\n // There is no horizontal line that has its center point inside the linear\n // ring. Use the center of the the linear ring's extent.\n pointX = flatCenters[flatCentersOffset];\n }\n if (opt_dest) {\n opt_dest.push(pointX, y, maxSegmentLength);\n return opt_dest;\n }\n else {\n return [pointX, y, maxSegmentLength];\n }\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {Array} flatCenters Flat centers.\n * @return {Array} Interior points as XYM coordinates, where M is the\n * length of the horizontal intersection that the point belongs to.\n */\nexport function getInteriorPointsOfMultiArray(flatCoordinates, offset, endss, stride, flatCenters) {\n var interiorPoints = [];\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n interiorPoints = getInteriorPointOfArray(flatCoordinates, offset, ends, stride, flatCenters, 2 * i, interiorPoints);\n offset = ends[ends.length - 1];\n }\n return interiorPoints;\n}\n//# sourceMappingURL=interiorpoint.js.map","/**\n * @module ol/geom/flat/segments\n */\n/**\n * This function calls `callback` for each segment of the flat coordinates\n * array. If the callback returns a truthy value the function returns that\n * value immediately. Otherwise the function returns `false`.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {function(import(\"../../coordinate.js\").Coordinate, import(\"../../coordinate.js\").Coordinate): T} callback Function\n * called for each segment.\n * @return {T|boolean} Value.\n * @template T\n */\nexport function forEach(flatCoordinates, offset, end, stride, callback) {\n var point1 = [flatCoordinates[offset], flatCoordinates[offset + 1]];\n var point2 = [];\n var ret;\n for (; offset + stride < end; offset += stride) {\n point2[0] = flatCoordinates[offset + stride];\n point2[1] = flatCoordinates[offset + stride + 1];\n ret = callback(point1, point2);\n if (ret) {\n return ret;\n }\n point1[0] = point2[0];\n point1[1] = point2[1];\n }\n return false;\n}\n//# sourceMappingURL=segments.js.map","/**\n * @module ol/geom/flat/intersectsextent\n */\nimport { containsExtent, createEmpty, extendFlatCoordinates, intersects, intersectsSegment, } from '../../extent.js';\nimport { forEach as forEachSegment } from './segments.js';\nimport { linearRingContainsExtent, linearRingContainsXY } from './contains.js';\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLineString(flatCoordinates, offset, end, stride, extent) {\n var coordinatesExtent = extendFlatCoordinates(createEmpty(), flatCoordinates, offset, end, stride);\n if (!intersects(extent, coordinatesExtent)) {\n return false;\n }\n if (containsExtent(extent, coordinatesExtent)) {\n return true;\n }\n if (coordinatesExtent[0] >= extent[0] && coordinatesExtent[2] <= extent[2]) {\n return true;\n }\n if (coordinatesExtent[1] >= extent[1] && coordinatesExtent[3] <= extent[3]) {\n return true;\n }\n return forEachSegment(flatCoordinates, offset, end, stride, \n /**\n * @param {import(\"../../coordinate.js\").Coordinate} point1 Start point.\n * @param {import(\"../../coordinate.js\").Coordinate} point2 End point.\n * @return {boolean} `true` if the segment and the extent intersect,\n * `false` otherwise.\n */\n function (point1, point2) {\n return intersectsSegment(extent, point1, point2);\n });\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLineStringArray(flatCoordinates, offset, ends, stride, extent) {\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n if (intersectsLineString(flatCoordinates, offset, ends[i], stride, extent)) {\n return true;\n }\n offset = ends[i];\n }\n return false;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLinearRing(flatCoordinates, offset, end, stride, extent) {\n if (intersectsLineString(flatCoordinates, offset, end, stride, extent)) {\n return true;\n }\n if (linearRingContainsXY(flatCoordinates, offset, end, stride, extent[0], extent[1])) {\n return true;\n }\n if (linearRingContainsXY(flatCoordinates, offset, end, stride, extent[0], extent[3])) {\n return true;\n }\n if (linearRingContainsXY(flatCoordinates, offset, end, stride, extent[2], extent[1])) {\n return true;\n }\n if (linearRingContainsXY(flatCoordinates, offset, end, stride, extent[2], extent[3])) {\n return true;\n }\n return false;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLinearRingArray(flatCoordinates, offset, ends, stride, extent) {\n if (!intersectsLinearRing(flatCoordinates, offset, ends[0], stride, extent)) {\n return false;\n }\n if (ends.length === 1) {\n return true;\n }\n for (var i = 1, ii = ends.length; i < ii; ++i) {\n if (linearRingContainsExtent(flatCoordinates, ends[i - 1], ends[i], stride, extent)) {\n if (!intersectsLineString(flatCoordinates, ends[i - 1], ends[i], stride, extent)) {\n return false;\n }\n }\n }\n return true;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} True if the geometry and the extent intersect.\n */\nexport function intersectsLinearRingMultiArray(flatCoordinates, offset, endss, stride, extent) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n if (intersectsLinearRingArray(flatCoordinates, offset, ends, stride, extent)) {\n return true;\n }\n offset = ends[ends.length - 1];\n }\n return false;\n}\n//# sourceMappingURL=intersectsextent.js.map","/**\n * @module ol/geom/flat/reverse\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n */\nexport function coordinates(flatCoordinates, offset, end, stride) {\n while (offset < end - stride) {\n for (var i = 0; i < stride; ++i) {\n var tmp = flatCoordinates[offset + i];\n flatCoordinates[offset + i] = flatCoordinates[end - stride + i];\n flatCoordinates[end - stride + i] = tmp;\n }\n offset += stride;\n end -= stride;\n }\n}\n//# sourceMappingURL=reverse.js.map","/**\n * @module ol/geom/flat/orient\n */\nimport { coordinates as reverseCoordinates } from './reverse.js';\n/**\n * Is the linear ring oriented clockwise in a coordinate system with a bottom-left\n * coordinate origin? For a coordinate system with a top-left coordinate origin,\n * the ring's orientation is clockwise when this function returns false.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {boolean} Is clockwise.\n */\nexport function linearRingIsClockwise(flatCoordinates, offset, end, stride) {\n // https://stackoverflow.com/q/1165647/clockwise-method#1165943\n // https://github.com/OSGeo/gdal/blob/master/gdal/ogr/ogrlinearring.cpp\n var edge = 0;\n var x1 = flatCoordinates[end - stride];\n var y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n var x2 = flatCoordinates[offset];\n var y2 = flatCoordinates[offset + 1];\n edge += (x2 - x1) * (y2 + y1);\n x1 = x2;\n y1 = y2;\n }\n return edge === 0 ? undefined : edge > 0;\n}\n/**\n * Determines if linear rings are oriented. By default, left-hand orientation\n * is tested (first ring must be clockwise, remaining rings counter-clockwise).\n * To test for right-hand orientation, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean} [opt_right] Test for right-hand orientation\n * (counter-clockwise exterior ring and clockwise interior rings).\n * @return {boolean} Rings are correctly oriented.\n */\nexport function linearRingsAreOriented(flatCoordinates, offset, ends, stride, opt_right) {\n var right = opt_right !== undefined ? opt_right : false;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var isClockwise = linearRingIsClockwise(flatCoordinates, offset, end, stride);\n if (i === 0) {\n if ((right && isClockwise) || (!right && !isClockwise)) {\n return false;\n }\n }\n else {\n if ((right && !isClockwise) || (!right && isClockwise)) {\n return false;\n }\n }\n offset = end;\n }\n return true;\n}\n/**\n * Determines if linear rings are oriented. By default, left-hand orientation\n * is tested (first ring must be clockwise, remaining rings counter-clockwise).\n * To test for right-hand orientation, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Array of array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean} [opt_right] Test for right-hand orientation\n * (counter-clockwise exterior ring and clockwise interior rings).\n * @return {boolean} Rings are correctly oriented.\n */\nexport function linearRingssAreOriented(flatCoordinates, offset, endss, stride, opt_right) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n if (!linearRingsAreOriented(flatCoordinates, offset, ends, stride, opt_right)) {\n return false;\n }\n if (ends.length) {\n offset = ends[ends.length - 1];\n }\n }\n return true;\n}\n/**\n * Orient coordinates in a flat array of linear rings. By default, rings\n * are oriented following the left-hand rule (clockwise for exterior and\n * counter-clockwise for interior rings). To orient according to the\n * right-hand rule, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {boolean} [opt_right] Follow the right-hand rule for orientation.\n * @return {number} End.\n */\nexport function orientLinearRings(flatCoordinates, offset, ends, stride, opt_right) {\n var right = opt_right !== undefined ? opt_right : false;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var isClockwise = linearRingIsClockwise(flatCoordinates, offset, end, stride);\n var reverse = i === 0\n ? (right && isClockwise) || (!right && !isClockwise)\n : (right && !isClockwise) || (!right && isClockwise);\n if (reverse) {\n reverseCoordinates(flatCoordinates, offset, end, stride);\n }\n offset = end;\n }\n return offset;\n}\n/**\n * Orient coordinates in a flat array of linear rings. By default, rings\n * are oriented following the left-hand rule (clockwise for exterior and\n * counter-clockwise for interior rings). To orient according to the\n * right-hand rule, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Array of array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean} [opt_right] Follow the right-hand rule for orientation.\n * @return {number} End.\n */\nexport function orientLinearRingsArray(flatCoordinates, offset, endss, stride, opt_right) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n offset = orientLinearRings(flatCoordinates, offset, endss[i], stride, opt_right);\n }\n return offset;\n}\n//# sourceMappingURL=orient.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/geom/Polygon\n */\nimport GeometryLayout from './GeometryLayout.js';\nimport GeometryType from './GeometryType.js';\nimport LinearRing from './LinearRing.js';\nimport Point from './Point.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport { arrayMaxSquaredDelta, assignClosestArrayPoint } from './flat/closest.js';\nimport { closestSquaredDistanceXY, getCenter } from '../extent.js';\nimport { deflateCoordinatesArray } from './flat/deflate.js';\nimport { extend } from '../array.js';\nimport { getInteriorPointOfArray } from './flat/interiorpoint.js';\nimport { inflateCoordinatesArray } from './flat/inflate.js';\nimport { intersectsLinearRingArray } from './flat/intersectsextent.js';\nimport { linearRingsAreOriented, orientLinearRings } from './flat/orient.js';\nimport { linearRings as linearRingsArea } from './flat/area.js';\nimport { linearRingsContainsXY } from './flat/contains.js';\nimport { modulo } from '../math.js';\nimport { quantizeArray } from './flat/simplify.js';\nimport { offset as sphereOffset } from '../sphere.js';\n/**\n * @classdesc\n * Polygon geometry.\n *\n * @api\n */\nvar Polygon = /** @class */ (function (_super) {\n __extends(Polygon, _super);\n /**\n * @param {!Array>|!Array} coordinates\n * Array of linear rings that define the polygon. The first linear ring of the\n * array defines the outer-boundary or surface of the polygon. Each subsequent\n * linear ring defines a hole in the surface of the polygon. A linear ring is\n * an array of vertices' coordinates where the first coordinate and the last are\n * equivalent. (For internal use, flat coordinates in combination with\n * `opt_layout` and `opt_ends` are also accepted.)\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n * @param {Array} [opt_ends] Ends (for internal use with flat coordinates).\n */\n function Polygon(coordinates, opt_layout, opt_ends) {\n var _this = _super.call(this) || this;\n /**\n * @type {Array}\n * @private\n */\n _this.ends_ = [];\n /**\n * @private\n * @type {number}\n */\n _this.flatInteriorPointRevision_ = -1;\n /**\n * @private\n * @type {import(\"../coordinate.js\").Coordinate}\n */\n _this.flatInteriorPoint_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.maxDelta_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.maxDeltaRevision_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.orientedRevision_ = -1;\n /**\n * @private\n * @type {Array}\n */\n _this.orientedFlatCoordinates_ = null;\n if (opt_layout !== undefined && opt_ends) {\n _this.setFlatCoordinates(opt_layout, \n /** @type {Array} */ (coordinates));\n _this.ends_ = opt_ends;\n }\n else {\n _this.setCoordinates(\n /** @type {Array>} */ (coordinates), opt_layout);\n }\n return _this;\n }\n /**\n * Append the passed linear ring to this polygon.\n * @param {LinearRing} linearRing Linear ring.\n * @api\n */\n Polygon.prototype.appendLinearRing = function (linearRing) {\n if (!this.flatCoordinates) {\n this.flatCoordinates = linearRing.getFlatCoordinates().slice();\n }\n else {\n extend(this.flatCoordinates, linearRing.getFlatCoordinates());\n }\n this.ends_.push(this.flatCoordinates.length);\n this.changed();\n };\n /**\n * Make a complete copy of the geometry.\n * @return {!Polygon} Clone.\n * @api\n */\n Polygon.prototype.clone = function () {\n var polygon = new Polygon(this.flatCoordinates.slice(), this.layout, this.ends_.slice());\n polygon.applyProperties(this);\n return polygon;\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n Polygon.prototype.closestPointXY = function (x, y, closestPoint, minSquaredDistance) {\n if (minSquaredDistance < closestSquaredDistanceXY(this.getExtent(), x, y)) {\n return minSquaredDistance;\n }\n if (this.maxDeltaRevision_ != this.getRevision()) {\n this.maxDelta_ = Math.sqrt(arrayMaxSquaredDelta(this.flatCoordinates, 0, this.ends_, this.stride, 0));\n this.maxDeltaRevision_ = this.getRevision();\n }\n return assignClosestArrayPoint(this.flatCoordinates, 0, this.ends_, this.stride, this.maxDelta_, true, x, y, closestPoint, minSquaredDistance);\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\n Polygon.prototype.containsXY = function (x, y) {\n return linearRingsContainsXY(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride, x, y);\n };\n /**\n * Return the area of the polygon on projected plane.\n * @return {number} Area (on projected plane).\n * @api\n */\n Polygon.prototype.getArea = function () {\n return linearRingsArea(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride);\n };\n /**\n * Get the coordinate array for this geometry. This array has the structure\n * of a GeoJSON coordinate array for polygons.\n *\n * @param {boolean} [opt_right] Orient coordinates according to the right-hand\n * rule (counter-clockwise for exterior and clockwise for interior rings).\n * If `false`, coordinates will be oriented according to the left-hand rule\n * (clockwise for exterior and counter-clockwise for interior rings).\n * By default, coordinate orientation will depend on how the geometry was\n * constructed.\n * @return {Array>} Coordinates.\n * @api\n */\n Polygon.prototype.getCoordinates = function (opt_right) {\n var flatCoordinates;\n if (opt_right !== undefined) {\n flatCoordinates = this.getOrientedFlatCoordinates().slice();\n orientLinearRings(flatCoordinates, 0, this.ends_, this.stride, opt_right);\n }\n else {\n flatCoordinates = this.flatCoordinates;\n }\n return inflateCoordinatesArray(flatCoordinates, 0, this.ends_, this.stride);\n };\n /**\n * @return {Array} Ends.\n */\n Polygon.prototype.getEnds = function () {\n return this.ends_;\n };\n /**\n * @return {Array} Interior point.\n */\n Polygon.prototype.getFlatInteriorPoint = function () {\n if (this.flatInteriorPointRevision_ != this.getRevision()) {\n var flatCenter = getCenter(this.getExtent());\n this.flatInteriorPoint_ = getInteriorPointOfArray(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride, flatCenter, 0);\n this.flatInteriorPointRevision_ = this.getRevision();\n }\n return this.flatInteriorPoint_;\n };\n /**\n * Return an interior point of the polygon.\n * @return {Point} Interior point as XYM coordinate, where M is the\n * length of the horizontal intersection that the point belongs to.\n * @api\n */\n Polygon.prototype.getInteriorPoint = function () {\n return new Point(this.getFlatInteriorPoint(), GeometryLayout.XYM);\n };\n /**\n * Return the number of rings of the polygon, this includes the exterior\n * ring and any interior rings.\n *\n * @return {number} Number of rings.\n * @api\n */\n Polygon.prototype.getLinearRingCount = function () {\n return this.ends_.length;\n };\n /**\n * Return the Nth linear ring of the polygon geometry. Return `null` if the\n * given index is out of range.\n * The exterior linear ring is available at index `0` and the interior rings\n * at index `1` and beyond.\n *\n * @param {number} index Index.\n * @return {LinearRing} Linear ring.\n * @api\n */\n Polygon.prototype.getLinearRing = function (index) {\n if (index < 0 || this.ends_.length <= index) {\n return null;\n }\n return new LinearRing(this.flatCoordinates.slice(index === 0 ? 0 : this.ends_[index - 1], this.ends_[index]), this.layout);\n };\n /**\n * Return the linear rings of the polygon.\n * @return {Array} Linear rings.\n * @api\n */\n Polygon.prototype.getLinearRings = function () {\n var layout = this.layout;\n var flatCoordinates = this.flatCoordinates;\n var ends = this.ends_;\n var linearRings = [];\n var offset = 0;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var linearRing = new LinearRing(flatCoordinates.slice(offset, end), layout);\n linearRings.push(linearRing);\n offset = end;\n }\n return linearRings;\n };\n /**\n * @return {Array} Oriented flat coordinates.\n */\n Polygon.prototype.getOrientedFlatCoordinates = function () {\n if (this.orientedRevision_ != this.getRevision()) {\n var flatCoordinates = this.flatCoordinates;\n if (linearRingsAreOriented(flatCoordinates, 0, this.ends_, this.stride)) {\n this.orientedFlatCoordinates_ = flatCoordinates;\n }\n else {\n this.orientedFlatCoordinates_ = flatCoordinates.slice();\n this.orientedFlatCoordinates_.length = orientLinearRings(this.orientedFlatCoordinates_, 0, this.ends_, this.stride);\n }\n this.orientedRevision_ = this.getRevision();\n }\n return this.orientedFlatCoordinates_;\n };\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {Polygon} Simplified Polygon.\n * @protected\n */\n Polygon.prototype.getSimplifiedGeometryInternal = function (squaredTolerance) {\n var simplifiedFlatCoordinates = [];\n var simplifiedEnds = [];\n simplifiedFlatCoordinates.length = quantizeArray(this.flatCoordinates, 0, this.ends_, this.stride, Math.sqrt(squaredTolerance), simplifiedFlatCoordinates, 0, simplifiedEnds);\n return new Polygon(simplifiedFlatCoordinates, GeometryLayout.XY, simplifiedEnds);\n };\n /**\n * Get the type of this geometry.\n * @return {import(\"./GeometryType.js\").default} Geometry type.\n * @api\n */\n Polygon.prototype.getType = function () {\n return GeometryType.POLYGON;\n };\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n Polygon.prototype.intersectsExtent = function (extent) {\n return intersectsLinearRingArray(this.getOrientedFlatCoordinates(), 0, this.ends_, this.stride, extent);\n };\n /**\n * Set the coordinates of the polygon.\n * @param {!Array>} coordinates Coordinates.\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n * @api\n */\n Polygon.prototype.setCoordinates = function (coordinates, opt_layout) {\n this.setLayout(opt_layout, coordinates, 2);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n var ends = deflateCoordinatesArray(this.flatCoordinates, 0, coordinates, this.stride, this.ends_);\n this.flatCoordinates.length = ends.length === 0 ? 0 : ends[ends.length - 1];\n this.changed();\n };\n return Polygon;\n}(SimpleGeometry));\nexport default Polygon;\n/**\n * Create an approximation of a circle on the surface of a sphere.\n * @param {import(\"../coordinate.js\").Coordinate} center Center (`[lon, lat]` in degrees).\n * @param {number} radius The great-circle distance from the center to\n * the polygon vertices in meters.\n * @param {number} [opt_n] Optional number of vertices for the resulting\n * polygon. Default is `32`.\n * @param {number} [opt_sphereRadius] Optional radius for the sphere (defaults to\n * the Earth's mean radius using the WGS84 ellipsoid).\n * @return {Polygon} The \"circular\" polygon.\n * @api\n */\nexport function circular(center, radius, opt_n, opt_sphereRadius) {\n var n = opt_n ? opt_n : 32;\n /** @type {Array} */\n var flatCoordinates = [];\n for (var i = 0; i < n; ++i) {\n extend(flatCoordinates, sphereOffset(center, radius, (2 * Math.PI * i) / n, opt_sphereRadius));\n }\n flatCoordinates.push(flatCoordinates[0], flatCoordinates[1]);\n return new Polygon(flatCoordinates, GeometryLayout.XY, [\n flatCoordinates.length,\n ]);\n}\n/**\n * Create a polygon from an extent. The layout used is `XY`.\n * @param {import(\"../extent.js\").Extent} extent The extent.\n * @return {Polygon} The polygon.\n * @api\n */\nexport function fromExtent(extent) {\n var minX = extent[0];\n var minY = extent[1];\n var maxX = extent[2];\n var maxY = extent[3];\n var flatCoordinates = [\n minX,\n minY,\n minX,\n maxY,\n maxX,\n maxY,\n maxX,\n minY,\n minX,\n minY,\n ];\n return new Polygon(flatCoordinates, GeometryLayout.XY, [\n flatCoordinates.length,\n ]);\n}\n/**\n * Create a regular polygon from a circle.\n * @param {import(\"./Circle.js\").default} circle Circle geometry.\n * @param {number} [opt_sides] Number of sides of the polygon. Default is 32.\n * @param {number} [opt_angle] Start angle for the first vertex of the polygon in\n * counter-clockwise radians. 0 means East. Default is 0.\n * @return {Polygon} Polygon geometry.\n * @api\n */\nexport function fromCircle(circle, opt_sides, opt_angle) {\n var sides = opt_sides ? opt_sides : 32;\n var stride = circle.getStride();\n var layout = circle.getLayout();\n var center = circle.getCenter();\n var arrayLength = stride * (sides + 1);\n var flatCoordinates = new Array(arrayLength);\n for (var i = 0; i < arrayLength; i += stride) {\n flatCoordinates[i] = 0;\n flatCoordinates[i + 1] = 0;\n for (var j = 2; j < stride; j++) {\n flatCoordinates[i + j] = center[j];\n }\n }\n var ends = [flatCoordinates.length];\n var polygon = new Polygon(flatCoordinates, layout, ends);\n makeRegular(polygon, center, circle.getRadius(), opt_angle);\n return polygon;\n}\n/**\n * Modify the coordinates of a polygon to make it a regular polygon.\n * @param {Polygon} polygon Polygon geometry.\n * @param {import(\"../coordinate.js\").Coordinate} center Center of the regular polygon.\n * @param {number} radius Radius of the regular polygon.\n * @param {number} [opt_angle] Start angle for the first vertex of the polygon in\n * counter-clockwise radians. 0 means East. Default is 0.\n */\nexport function makeRegular(polygon, center, radius, opt_angle) {\n var flatCoordinates = polygon.getFlatCoordinates();\n var stride = polygon.getStride();\n var sides = flatCoordinates.length / stride - 1;\n var startAngle = opt_angle ? opt_angle : 0;\n for (var i = 0; i <= sides; ++i) {\n var offset = i * stride;\n var angle = startAngle + (modulo(i, sides) * 2 * Math.PI) / sides;\n flatCoordinates[offset] = center[0] + radius * Math.cos(angle);\n flatCoordinates[offset + 1] = center[1] + radius * Math.sin(angle);\n }\n polygon.changed();\n}\n//# sourceMappingURL=Polygon.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/Geolocation\n */\nimport BaseEvent from './events/Event.js';\nimport BaseObject from './Object.js';\nimport EventType from './events/EventType.js';\nimport { circular as circularPolygon } from './geom/Polygon.js';\nimport { get as getProjection, getTransformFromProjections, identityTransform, } from './proj.js';\nimport { toRadians } from './math.js';\n/**\n * @enum {string}\n */\nvar Property = {\n ACCURACY: 'accuracy',\n ACCURACY_GEOMETRY: 'accuracyGeometry',\n ALTITUDE: 'altitude',\n ALTITUDE_ACCURACY: 'altitudeAccuracy',\n HEADING: 'heading',\n POSITION: 'position',\n PROJECTION: 'projection',\n SPEED: 'speed',\n TRACKING: 'tracking',\n TRACKING_OPTIONS: 'trackingOptions',\n};\n/**\n * @classdesc\n * Events emitted on Geolocation error.\n */\nvar GeolocationError = /** @class */ (function (_super) {\n __extends(GeolocationError, _super);\n /**\n * @param {GeolocationPositionError} error error object.\n */\n function GeolocationError(error) {\n var _this = _super.call(this, EventType.ERROR) || this;\n /**\n * @type {number}\n */\n _this.code = error.code;\n /**\n * @type {string}\n */\n _this.message = error.message;\n return _this;\n }\n return GeolocationError;\n}(BaseEvent));\n/**\n * @typedef {Object} Options\n * @property {boolean} [tracking=false] Start Tracking right after\n * instantiation.\n * @property {PositionOptions} [trackingOptions] Tracking options.\n * See https://www.w3.org/TR/geolocation-API/#position_options_interface.\n * @property {import(\"./proj.js\").ProjectionLike} [projection] The projection the position\n * is reported in.\n */\n/**\n * @typedef {import(\"./ObjectEventType\").Types|'change:accuracy'|'change:accuracyGeometry'|'change:altitude'|\n * 'change:altitudeAccuracy'|'change:heading'|'change:position'|'change:projection'|'change:speed'|'change:tracking'|\n * 'change:trackingOptions'} GeolocationObjectEventTypes\n */\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature<'error', GeolocationError, Return> &\n * import(\"./Observable\").CombinedOnSignature} GeolocationOnSignature\n */\n/**\n * @classdesc\n * Helper class for providing HTML5 Geolocation capabilities.\n * The [Geolocation API](https://www.w3.org/TR/geolocation-API/)\n * is used to locate a user's position.\n *\n * To get notified of position changes, register a listener for the generic\n * `change` event on your instance of {@link module:ol/Geolocation~Geolocation}.\n *\n * Example:\n *\n * var geolocation = new Geolocation({\n * // take the projection to use from the map's view\n * projection: view.getProjection()\n * });\n * // listen to changes in position\n * geolocation.on('change', function(evt) {\n * window.console.log(geolocation.getPosition());\n * });\n *\n * @fires module:ol/events/Event~BaseEvent#event:error\n * @api\n */\nvar Geolocation = /** @class */ (function (_super) {\n __extends(Geolocation, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function Geolocation(opt_options) {\n var _this = _super.call(this) || this;\n /***\n * @type {GeolocationOnSignature}\n */\n _this.on;\n /***\n * @type {GeolocationOnSignature}\n */\n _this.once;\n /***\n * @type {GeolocationOnSignature}\n */\n _this.un;\n var options = opt_options || {};\n /**\n * The unprojected (EPSG:4326) device position.\n * @private\n * @type {?import(\"./coordinate.js\").Coordinate}\n */\n _this.position_ = null;\n /**\n * @private\n * @type {import(\"./proj.js\").TransformFunction}\n */\n _this.transform_ = identityTransform;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.watchId_ = undefined;\n _this.addChangeListener(Property.PROJECTION, _this.handleProjectionChanged_);\n _this.addChangeListener(Property.TRACKING, _this.handleTrackingChanged_);\n if (options.projection !== undefined) {\n _this.setProjection(options.projection);\n }\n if (options.trackingOptions !== undefined) {\n _this.setTrackingOptions(options.trackingOptions);\n }\n _this.setTracking(options.tracking !== undefined ? options.tracking : false);\n return _this;\n }\n /**\n * Clean up.\n */\n Geolocation.prototype.disposeInternal = function () {\n this.setTracking(false);\n _super.prototype.disposeInternal.call(this);\n };\n /**\n * @private\n */\n Geolocation.prototype.handleProjectionChanged_ = function () {\n var projection = this.getProjection();\n if (projection) {\n this.transform_ = getTransformFromProjections(getProjection('EPSG:4326'), projection);\n if (this.position_) {\n this.set(Property.POSITION, this.transform_(this.position_));\n }\n }\n };\n /**\n * @private\n */\n Geolocation.prototype.handleTrackingChanged_ = function () {\n if ('geolocation' in navigator) {\n var tracking = this.getTracking();\n if (tracking && this.watchId_ === undefined) {\n this.watchId_ = navigator.geolocation.watchPosition(this.positionChange_.bind(this), this.positionError_.bind(this), this.getTrackingOptions());\n }\n else if (!tracking && this.watchId_ !== undefined) {\n navigator.geolocation.clearWatch(this.watchId_);\n this.watchId_ = undefined;\n }\n }\n };\n /**\n * @private\n * @param {GeolocationPosition} position position event.\n */\n Geolocation.prototype.positionChange_ = function (position) {\n var coords = position.coords;\n this.set(Property.ACCURACY, coords.accuracy);\n this.set(Property.ALTITUDE, coords.altitude === null ? undefined : coords.altitude);\n this.set(Property.ALTITUDE_ACCURACY, coords.altitudeAccuracy === null ? undefined : coords.altitudeAccuracy);\n this.set(Property.HEADING, coords.heading === null ? undefined : toRadians(coords.heading));\n if (!this.position_) {\n this.position_ = [coords.longitude, coords.latitude];\n }\n else {\n this.position_[0] = coords.longitude;\n this.position_[1] = coords.latitude;\n }\n var projectedPosition = this.transform_(this.position_);\n this.set(Property.POSITION, projectedPosition);\n this.set(Property.SPEED, coords.speed === null ? undefined : coords.speed);\n var geometry = circularPolygon(this.position_, coords.accuracy);\n geometry.applyTransform(this.transform_);\n this.set(Property.ACCURACY_GEOMETRY, geometry);\n this.changed();\n };\n /**\n * @private\n * @param {GeolocationPositionError} error error object.\n */\n Geolocation.prototype.positionError_ = function (error) {\n this.dispatchEvent(new GeolocationError(error));\n };\n /**\n * Get the accuracy of the position in meters.\n * @return {number|undefined} The accuracy of the position measurement in\n * meters.\n * @observable\n * @api\n */\n Geolocation.prototype.getAccuracy = function () {\n return /** @type {number|undefined} */ (this.get(Property.ACCURACY));\n };\n /**\n * Get a geometry of the position accuracy.\n * @return {?import(\"./geom/Polygon.js\").default} A geometry of the position accuracy.\n * @observable\n * @api\n */\n Geolocation.prototype.getAccuracyGeometry = function () {\n return /** @type {?import(\"./geom/Polygon.js\").default} */ (this.get(Property.ACCURACY_GEOMETRY) || null);\n };\n /**\n * Get the altitude associated with the position.\n * @return {number|undefined} The altitude of the position in meters above mean\n * sea level.\n * @observable\n * @api\n */\n Geolocation.prototype.getAltitude = function () {\n return /** @type {number|undefined} */ (this.get(Property.ALTITUDE));\n };\n /**\n * Get the altitude accuracy of the position.\n * @return {number|undefined} The accuracy of the altitude measurement in\n * meters.\n * @observable\n * @api\n */\n Geolocation.prototype.getAltitudeAccuracy = function () {\n return /** @type {number|undefined} */ (this.get(Property.ALTITUDE_ACCURACY));\n };\n /**\n * Get the heading as radians clockwise from North.\n * Note: depending on the browser, the heading is only defined if the `enableHighAccuracy`\n * is set to `true` in the tracking options.\n * @return {number|undefined} The heading of the device in radians from north.\n * @observable\n * @api\n */\n Geolocation.prototype.getHeading = function () {\n return /** @type {number|undefined} */ (this.get(Property.HEADING));\n };\n /**\n * Get the position of the device.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} The current position of the device reported\n * in the current projection.\n * @observable\n * @api\n */\n Geolocation.prototype.getPosition = function () {\n return /** @type {import(\"./coordinate.js\").Coordinate|undefined} */ (this.get(Property.POSITION));\n };\n /**\n * Get the projection associated with the position.\n * @return {import(\"./proj/Projection.js\").default|undefined} The projection the position is\n * reported in.\n * @observable\n * @api\n */\n Geolocation.prototype.getProjection = function () {\n return /** @type {import(\"./proj/Projection.js\").default|undefined} */ (this.get(Property.PROJECTION));\n };\n /**\n * Get the speed in meters per second.\n * @return {number|undefined} The instantaneous speed of the device in meters\n * per second.\n * @observable\n * @api\n */\n Geolocation.prototype.getSpeed = function () {\n return /** @type {number|undefined} */ (this.get(Property.SPEED));\n };\n /**\n * Determine if the device location is being tracked.\n * @return {boolean} The device location is being tracked.\n * @observable\n * @api\n */\n Geolocation.prototype.getTracking = function () {\n return /** @type {boolean} */ (this.get(Property.TRACKING));\n };\n /**\n * Get the tracking options.\n * See https://www.w3.org/TR/geolocation-API/#position-options.\n * @return {PositionOptions|undefined} PositionOptions as defined by\n * the [HTML5 Geolocation spec\n * ](https://www.w3.org/TR/geolocation-API/#position_options_interface).\n * @observable\n * @api\n */\n Geolocation.prototype.getTrackingOptions = function () {\n return /** @type {PositionOptions|undefined} */ (this.get(Property.TRACKING_OPTIONS));\n };\n /**\n * Set the projection to use for transforming the coordinates.\n * @param {import(\"./proj.js\").ProjectionLike} projection The projection the position is\n * reported in.\n * @observable\n * @api\n */\n Geolocation.prototype.setProjection = function (projection) {\n this.set(Property.PROJECTION, getProjection(projection));\n };\n /**\n * Enable or disable tracking.\n * @param {boolean} tracking Enable tracking.\n * @observable\n * @api\n */\n Geolocation.prototype.setTracking = function (tracking) {\n this.set(Property.TRACKING, tracking);\n };\n /**\n * Set the tracking options.\n * See http://www.w3.org/TR/geolocation-API/#position-options.\n * @param {PositionOptions} options PositionOptions as defined by the\n * [HTML5 Geolocation spec\n * ](http://www.w3.org/TR/geolocation-API/#position_options_interface).\n * @observable\n * @api\n */\n Geolocation.prototype.setTrackingOptions = function (options) {\n this.set(Property.TRACKING_OPTIONS, options);\n };\n return Geolocation;\n}(BaseObject));\nexport default Geolocation;\n//# sourceMappingURL=Geolocation.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/ImageBase\n */\nimport EventTarget from './events/Target.js';\nimport EventType from './events/EventType.js';\nimport { abstract } from './util.js';\n/**\n * @abstract\n */\nvar ImageBase = /** @class */ (function (_super) {\n __extends(ImageBase, _super);\n /**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number|undefined} resolution Resolution.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"./ImageState.js\").default} state State.\n */\n function ImageBase(extent, resolution, pixelRatio, state) {\n var _this = _super.call(this) || this;\n /**\n * @protected\n * @type {import(\"./extent.js\").Extent}\n */\n _this.extent = extent;\n /**\n * @private\n * @type {number}\n */\n _this.pixelRatio_ = pixelRatio;\n /**\n * @protected\n * @type {number|undefined}\n */\n _this.resolution = resolution;\n /**\n * @protected\n * @type {import(\"./ImageState.js\").default}\n */\n _this.state = state;\n return _this;\n }\n /**\n * @protected\n */\n ImageBase.prototype.changed = function () {\n this.dispatchEvent(EventType.CHANGE);\n };\n /**\n * @return {import(\"./extent.js\").Extent} Extent.\n */\n ImageBase.prototype.getExtent = function () {\n return this.extent;\n };\n /**\n * @abstract\n * @return {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} Image.\n */\n ImageBase.prototype.getImage = function () {\n return abstract();\n };\n /**\n * @return {number} PixelRatio.\n */\n ImageBase.prototype.getPixelRatio = function () {\n return this.pixelRatio_;\n };\n /**\n * @return {number} Resolution.\n */\n ImageBase.prototype.getResolution = function () {\n return /** @type {number} */ (this.resolution);\n };\n /**\n * @return {import(\"./ImageState.js\").default} State.\n */\n ImageBase.prototype.getState = function () {\n return this.state;\n };\n /**\n * Load not yet loaded URI.\n * @abstract\n */\n ImageBase.prototype.load = function () {\n abstract();\n };\n return ImageBase;\n}(EventTarget));\nexport default ImageBase;\n//# sourceMappingURL=ImageBase.js.map","/**\n * @module ol/ImageState\n */\n/**\n * @enum {number}\n */\nexport default {\n IDLE: 0,\n LOADING: 1,\n LOADED: 2,\n ERROR: 3,\n EMPTY: 4,\n};\n//# sourceMappingURL=ImageState.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/Image\n */\nimport EventType from './events/EventType.js';\nimport ImageBase from './ImageBase.js';\nimport ImageState from './ImageState.js';\nimport { IMAGE_DECODE } from './has.js';\nimport { getHeight } from './extent.js';\nimport { listenOnce, unlistenByKey } from './events.js';\n/**\n * A function that takes an {@link module:ol/Image~Image} for the image and a\n * `{string}` for the src as arguments. It is supposed to make it so the\n * underlying image {@link module:ol/Image~Image#getImage} is assigned the\n * content specified by the src. If not specified, the default is\n *\n * function(image, src) {\n * image.getImage().src = src;\n * }\n *\n * Providing a custom `imageLoadFunction` can be useful to load images with\n * post requests or - in general - through XHR requests, where the src of the\n * image element would be set to a data URI when the content is loaded.\n *\n * @typedef {function(ImageWrapper, string): void} LoadFunction\n * @api\n */\nvar ImageWrapper = /** @class */ (function (_super) {\n __extends(ImageWrapper, _super);\n /**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number|undefined} resolution Resolution.\n * @param {number} pixelRatio Pixel ratio.\n * @param {string} src Image source URI.\n * @param {?string} crossOrigin Cross origin.\n * @param {LoadFunction} imageLoadFunction Image load function.\n */\n function ImageWrapper(extent, resolution, pixelRatio, src, crossOrigin, imageLoadFunction) {\n var _this = _super.call(this, extent, resolution, pixelRatio, ImageState.IDLE) || this;\n /**\n * @private\n * @type {string}\n */\n _this.src_ = src;\n /**\n * @private\n * @type {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement}\n */\n _this.image_ = new Image();\n if (crossOrigin !== null) {\n _this.image_.crossOrigin = crossOrigin;\n }\n /**\n * @private\n * @type {?function():void}\n */\n _this.unlisten_ = null;\n /**\n * @protected\n * @type {import(\"./ImageState.js\").default}\n */\n _this.state = ImageState.IDLE;\n /**\n * @private\n * @type {LoadFunction}\n */\n _this.imageLoadFunction_ = imageLoadFunction;\n return _this;\n }\n /**\n * @return {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} Image.\n * @api\n */\n ImageWrapper.prototype.getImage = function () {\n return this.image_;\n };\n /**\n * Tracks loading or read errors.\n *\n * @private\n */\n ImageWrapper.prototype.handleImageError_ = function () {\n this.state = ImageState.ERROR;\n this.unlistenImage_();\n this.changed();\n };\n /**\n * Tracks successful image load.\n *\n * @private\n */\n ImageWrapper.prototype.handleImageLoad_ = function () {\n if (this.resolution === undefined) {\n this.resolution = getHeight(this.extent) / this.image_.height;\n }\n this.state = ImageState.LOADED;\n this.unlistenImage_();\n this.changed();\n };\n /**\n * Load the image or retry if loading previously failed.\n * Loading is taken care of by the tile queue, and calling this method is\n * only needed for preloading or for reloading in case of an error.\n * @api\n */\n ImageWrapper.prototype.load = function () {\n if (this.state == ImageState.IDLE || this.state == ImageState.ERROR) {\n this.state = ImageState.LOADING;\n this.changed();\n this.imageLoadFunction_(this, this.src_);\n this.unlisten_ = listenImage(this.image_, this.handleImageLoad_.bind(this), this.handleImageError_.bind(this));\n }\n };\n /**\n * @param {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} image Image.\n */\n ImageWrapper.prototype.setImage = function (image) {\n this.image_ = image;\n this.resolution = getHeight(this.extent) / this.image_.height;\n };\n /**\n * Discards event handlers which listen for load completion or errors.\n *\n * @private\n */\n ImageWrapper.prototype.unlistenImage_ = function () {\n if (this.unlisten_) {\n this.unlisten_();\n this.unlisten_ = null;\n }\n };\n return ImageWrapper;\n}(ImageBase));\n/**\n * @param {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} image Image element.\n * @param {function():any} loadHandler Load callback function.\n * @param {function():any} errorHandler Error callback function.\n * @return {function():void} Callback to stop listening.\n */\nexport function listenImage(image, loadHandler, errorHandler) {\n var img = /** @type {HTMLImageElement} */ (image);\n if (img.src && IMAGE_DECODE) {\n var promise = img.decode();\n var listening_1 = true;\n var unlisten = function () {\n listening_1 = false;\n };\n promise\n .then(function () {\n if (listening_1) {\n loadHandler();\n }\n })\n .catch(function (error) {\n if (listening_1) {\n // FIXME: Unconditionally call errorHandler() when this bug is fixed upstream:\n // https://bugs.webkit.org/show_bug.cgi?id=198527\n if (error.name === 'EncodingError' &&\n error.message === 'Invalid image type.') {\n loadHandler();\n }\n else {\n errorHandler();\n }\n }\n });\n return unlisten;\n }\n var listenerKeys = [\n listenOnce(img, EventType.LOAD, loadHandler),\n listenOnce(img, EventType.ERROR, errorHandler),\n ];\n return function unlisten() {\n listenerKeys.forEach(unlistenByKey);\n };\n}\nexport default ImageWrapper;\n//# sourceMappingURL=Image.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/ImageCanvas\n */\nimport ImageBase from './ImageBase.js';\nimport ImageState from './ImageState.js';\n/**\n * A function that is called to trigger asynchronous canvas drawing. It is\n * called with a \"done\" callback that should be called when drawing is done.\n * If any error occurs during drawing, the \"done\" callback should be called with\n * that error.\n *\n * @typedef {function(function(Error=): void): void} Loader\n */\nvar ImageCanvas = /** @class */ (function (_super) {\n __extends(ImageCanvas, _super);\n /**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @param {number} pixelRatio Pixel ratio.\n * @param {HTMLCanvasElement} canvas Canvas.\n * @param {Loader} [opt_loader] Optional loader function to\n * support asynchronous canvas drawing.\n */\n function ImageCanvas(extent, resolution, pixelRatio, canvas, opt_loader) {\n var _this = this;\n var state = opt_loader !== undefined ? ImageState.IDLE : ImageState.LOADED;\n _this = _super.call(this, extent, resolution, pixelRatio, state) || this;\n /**\n * Optional canvas loader function.\n * @type {?Loader}\n * @private\n */\n _this.loader_ = opt_loader !== undefined ? opt_loader : null;\n /**\n * @private\n * @type {HTMLCanvasElement}\n */\n _this.canvas_ = canvas;\n /**\n * @private\n * @type {?Error}\n */\n _this.error_ = null;\n return _this;\n }\n /**\n * Get any error associated with asynchronous rendering.\n * @return {?Error} Any error that occurred during rendering.\n */\n ImageCanvas.prototype.getError = function () {\n return this.error_;\n };\n /**\n * Handle async drawing complete.\n * @param {Error} [err] Any error during drawing.\n * @private\n */\n ImageCanvas.prototype.handleLoad_ = function (err) {\n if (err) {\n this.error_ = err;\n this.state = ImageState.ERROR;\n }\n else {\n this.state = ImageState.LOADED;\n }\n this.changed();\n };\n /**\n * Load not yet loaded URI.\n */\n ImageCanvas.prototype.load = function () {\n if (this.state == ImageState.IDLE) {\n this.state = ImageState.LOADING;\n this.changed();\n this.loader_(this.handleLoad_.bind(this));\n }\n };\n /**\n * @return {HTMLCanvasElement} Canvas element.\n */\n ImageCanvas.prototype.getImage = function () {\n return this.canvas_;\n };\n return ImageCanvas;\n}(ImageBase));\nexport default ImageCanvas;\n//# sourceMappingURL=ImageCanvas.js.map","/**\n * @module ol/TileState\n */\n/**\n * @enum {number}\n */\nexport default {\n IDLE: 0,\n LOADING: 1,\n LOADED: 2,\n /**\n * Indicates that tile loading failed\n * @type {number}\n */\n ERROR: 3,\n EMPTY: 4,\n};\n//# sourceMappingURL=TileState.js.map","/**\n * @module ol/easing\n */\n/**\n * Start slow and speed up.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function easeIn(t) {\n return Math.pow(t, 3);\n}\n/**\n * Start fast and slow down.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function easeOut(t) {\n return 1 - easeIn(1 - t);\n}\n/**\n * Start slow, speed up, and then slow down again.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function inAndOut(t) {\n return 3 * t * t - 2 * t * t * t;\n}\n/**\n * Maintain a constant speed over time.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function linear(t) {\n return t;\n}\n/**\n * Start slow, speed up, and at the very end slow down again. This has the\n * same general behavior as {@link module:ol/easing.inAndOut}, but the final\n * slowdown is delayed.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function upAndDown(t) {\n if (t < 0.5) {\n return inAndOut(2 * t);\n }\n else {\n return 1 - inAndOut(2 * (t - 0.5));\n }\n}\n//# sourceMappingURL=easing.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/Tile\n */\nimport EventTarget from './events/Target.js';\nimport EventType from './events/EventType.js';\nimport TileState from './TileState.js';\nimport { abstract } from './util.js';\nimport { easeIn } from './easing.js';\n/**\n * A function that takes an {@link module:ol/Tile} for the tile and a\n * `{string}` for the url as arguments. The default is\n * ```js\n * source.setTileLoadFunction(function(tile, src) {\n * tile.getImage().src = src;\n * });\n * ```\n * For more fine grained control, the load function can use fetch or XMLHttpRequest and involve\n * error handling:\n *\n * ```js\n * import TileState from 'ol/TileState';\n *\n * source.setTileLoadFunction(function(tile, src) {\n * var xhr = new XMLHttpRequest();\n * xhr.responseType = 'blob';\n * xhr.addEventListener('loadend', function (evt) {\n * var data = this.response;\n * if (data !== undefined) {\n * tile.getImage().src = URL.createObjectURL(data);\n * } else {\n * tile.setState(TileState.ERROR);\n * }\n * });\n * xhr.addEventListener('error', function () {\n * tile.setState(TileState.ERROR);\n * });\n * xhr.open('GET', src);\n * xhr.send();\n * });\n * ```\n *\n * @typedef {function(Tile, string): void} LoadFunction\n * @api\n */\n/**\n * {@link module:ol/source/Tile~Tile} sources use a function of this type to get\n * the url that provides a tile for a given tile coordinate.\n *\n * This function takes an {@link module:ol/tilecoord~TileCoord} for the tile\n * coordinate, a `{number}` representing the pixel ratio and a\n * {@link module:ol/proj/Projection} for the projection as arguments\n * and returns a `{string}` representing the tile URL, or undefined if no tile\n * should be requested for the passed tile coordinate.\n *\n * @typedef {function(import(\"./tilecoord.js\").TileCoord, number,\n * import(\"./proj/Projection.js\").default): (string|undefined)} UrlFunction\n * @api\n */\n/**\n * @typedef {Object} Options\n * @property {number} [transition=250] A duration for tile opacity\n * transitions in milliseconds. A duration of 0 disables the opacity transition.\n * @api\n */\n/**\n * @classdesc\n * Base class for tiles.\n *\n * @abstract\n */\nvar Tile = /** @class */ (function (_super) {\n __extends(Tile, _super);\n /**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {import(\"./TileState.js\").default} state State.\n * @param {Options} [opt_options] Tile options.\n */\n function Tile(tileCoord, state, opt_options) {\n var _this = _super.call(this) || this;\n var options = opt_options ? opt_options : {};\n /**\n * @type {import(\"./tilecoord.js\").TileCoord}\n */\n _this.tileCoord = tileCoord;\n /**\n * @protected\n * @type {import(\"./TileState.js\").default}\n */\n _this.state = state;\n /**\n * An \"interim\" tile for this tile. The interim tile may be used while this\n * one is loading, for \"smooth\" transitions when changing params/dimensions\n * on the source.\n * @type {Tile}\n */\n _this.interimTile = null;\n /**\n * A key assigned to the tile. This is used by the tile source to determine\n * if this tile can effectively be used, or if a new tile should be created\n * and this one be used as an interim tile for this new tile.\n * @type {string}\n */\n _this.key = '';\n /**\n * The duration for the opacity transition.\n * @type {number}\n */\n _this.transition_ =\n options.transition === undefined ? 250 : options.transition;\n /**\n * Lookup of start times for rendering transitions. If the start time is\n * equal to -1, the transition is complete.\n * @type {Object}\n */\n _this.transitionStarts_ = {};\n return _this;\n }\n /**\n * @protected\n */\n Tile.prototype.changed = function () {\n this.dispatchEvent(EventType.CHANGE);\n };\n /**\n * Called by the tile cache when the tile is removed from the cache due to expiry\n */\n Tile.prototype.release = function () { };\n /**\n * @return {string} Key.\n */\n Tile.prototype.getKey = function () {\n return this.key + '/' + this.tileCoord;\n };\n /**\n * Get the interim tile most suitable for rendering using the chain of interim\n * tiles. This corresponds to the most recent tile that has been loaded, if no\n * such tile exists, the original tile is returned.\n * @return {!Tile} Best tile for rendering.\n */\n Tile.prototype.getInterimTile = function () {\n if (!this.interimTile) {\n //empty chain\n return this;\n }\n var tile = this.interimTile;\n // find the first loaded tile and return it. Since the chain is sorted in\n // decreasing order of creation time, there is no need to search the remainder\n // of the list (all those tiles correspond to older requests and will be\n // cleaned up by refreshInterimChain)\n do {\n if (tile.getState() == TileState.LOADED) {\n // Show tile immediately instead of fading it in after loading, because\n // the interim tile is in place already\n this.transition_ = 0;\n return tile;\n }\n tile = tile.interimTile;\n } while (tile);\n // we can not find a better tile\n return this;\n };\n /**\n * Goes through the chain of interim tiles and discards sections of the chain\n * that are no longer relevant.\n */\n Tile.prototype.refreshInterimChain = function () {\n if (!this.interimTile) {\n return;\n }\n var tile = this.interimTile;\n var prev = /** @type {Tile} */ (this);\n do {\n if (tile.getState() == TileState.LOADED) {\n //we have a loaded tile, we can discard the rest of the list\n //we would could abort any LOADING tile request\n //older than this tile (i.e. any LOADING tile following this entry in the chain)\n tile.interimTile = null;\n break;\n }\n else if (tile.getState() == TileState.LOADING) {\n //keep this LOADING tile any loaded tiles later in the chain are\n //older than this tile, so we're still interested in the request\n prev = tile;\n }\n else if (tile.getState() == TileState.IDLE) {\n //the head of the list is the most current tile, we don't need\n //to start any other requests for this chain\n prev.interimTile = tile.interimTile;\n }\n else {\n prev = tile;\n }\n tile = prev.interimTile;\n } while (tile);\n };\n /**\n * Get the tile coordinate for this tile.\n * @return {import(\"./tilecoord.js\").TileCoord} The tile coordinate.\n * @api\n */\n Tile.prototype.getTileCoord = function () {\n return this.tileCoord;\n };\n /**\n * @return {import(\"./TileState.js\").default} State.\n */\n Tile.prototype.getState = function () {\n return this.state;\n };\n /**\n * Sets the state of this tile. If you write your own {@link module:ol/Tile~LoadFunction tileLoadFunction} ,\n * it is important to set the state correctly to {@link module:ol/TileState~ERROR}\n * when the tile cannot be loaded. Otherwise the tile cannot be removed from\n * the tile queue and will block other requests.\n * @param {import(\"./TileState.js\").default} state State.\n * @api\n */\n Tile.prototype.setState = function (state) {\n if (this.state !== TileState.ERROR && this.state > state) {\n throw new Error('Tile load sequence violation');\n }\n this.state = state;\n this.changed();\n };\n /**\n * Load the image or retry if loading previously failed.\n * Loading is taken care of by the tile queue, and calling this method is\n * only needed for preloading or for reloading in case of an error.\n * @abstract\n * @api\n */\n Tile.prototype.load = function () {\n abstract();\n };\n /**\n * Get the alpha value for rendering.\n * @param {string} id An id for the renderer.\n * @param {number} time The render frame time.\n * @return {number} A number between 0 and 1.\n */\n Tile.prototype.getAlpha = function (id, time) {\n if (!this.transition_) {\n return 1;\n }\n var start = this.transitionStarts_[id];\n if (!start) {\n start = time;\n this.transitionStarts_[id] = start;\n }\n else if (start === -1) {\n return 1;\n }\n var delta = time - start + 1000 / 60; // avoid rendering at 0\n if (delta >= this.transition_) {\n return 1;\n }\n return easeIn(delta / this.transition_);\n };\n /**\n * Determine if a tile is in an alpha transition. A tile is considered in\n * transition if tile.getAlpha() has not yet been called or has been called\n * and returned 1.\n * @param {string} id An id for the renderer.\n * @return {boolean} The tile is in transition.\n */\n Tile.prototype.inTransition = function (id) {\n if (!this.transition_) {\n return false;\n }\n return this.transitionStarts_[id] !== -1;\n };\n /**\n * Mark a transition as complete.\n * @param {string} id An id for the renderer.\n */\n Tile.prototype.endTransition = function (id) {\n if (this.transition_) {\n this.transitionStarts_[id] = -1;\n }\n };\n return Tile;\n}(EventTarget));\nexport default Tile;\n//# sourceMappingURL=Tile.js.map","import { WORKER_OFFSCREEN_CANVAS } from './has.js';\n/**\n * @module ol/dom\n */\n//FIXME Move this function to the canvas module\n/**\n * Create an html canvas element and returns its 2d context.\n * @param {number} [opt_width] Canvas width.\n * @param {number} [opt_height] Canvas height.\n * @param {Array} [opt_canvasPool] Canvas pool to take existing canvas from.\n * @param {CanvasRenderingContext2DSettings} [opt_Context2DSettings] CanvasRenderingContext2DSettings\n * @return {CanvasRenderingContext2D} The context.\n */\nexport function createCanvasContext2D(opt_width, opt_height, opt_canvasPool, opt_Context2DSettings) {\n var canvas = opt_canvasPool && opt_canvasPool.length\n ? opt_canvasPool.shift()\n : WORKER_OFFSCREEN_CANVAS\n ? new OffscreenCanvas(opt_width || 300, opt_height || 300)\n : document.createElement('canvas');\n if (opt_width) {\n canvas.width = opt_width;\n }\n if (opt_height) {\n canvas.height = opt_height;\n }\n //FIXME Allow OffscreenCanvasRenderingContext2D as return type\n return /** @type {CanvasRenderingContext2D} */ (canvas.getContext('2d', opt_Context2DSettings));\n}\n/**\n * Get the current computed width for the given element including margin,\n * padding and border.\n * Equivalent to jQuery's `$(el).outerWidth(true)`.\n * @param {!HTMLElement} element Element.\n * @return {number} The width.\n */\nexport function outerWidth(element) {\n var width = element.offsetWidth;\n var style = getComputedStyle(element);\n width += parseInt(style.marginLeft, 10) + parseInt(style.marginRight, 10);\n return width;\n}\n/**\n * Get the current computed height for the given element including margin,\n * padding and border.\n * Equivalent to jQuery's `$(el).outerHeight(true)`.\n * @param {!HTMLElement} element Element.\n * @return {number} The height.\n */\nexport function outerHeight(element) {\n var height = element.offsetHeight;\n var style = getComputedStyle(element);\n height += parseInt(style.marginTop, 10) + parseInt(style.marginBottom, 10);\n return height;\n}\n/**\n * @param {Node} newNode Node to replace old node\n * @param {Node} oldNode The node to be replaced\n */\nexport function replaceNode(newNode, oldNode) {\n var parent = oldNode.parentNode;\n if (parent) {\n parent.replaceChild(newNode, oldNode);\n }\n}\n/**\n * @param {Node} node The node to remove.\n * @return {Node} The node that was removed or null.\n */\nexport function removeNode(node) {\n return node && node.parentNode ? node.parentNode.removeChild(node) : null;\n}\n/**\n * @param {Node} node The node to remove the children from.\n */\nexport function removeChildren(node) {\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n}\n/**\n * Transform the children of a parent node so they match the\n * provided list of children. This function aims to efficiently\n * remove, add, and reorder child nodes while maintaining a simple\n * implementation (it is not guaranteed to minimize DOM operations).\n * @param {Node} node The parent node whose children need reworking.\n * @param {Array} children The desired children.\n */\nexport function replaceChildren(node, children) {\n var oldChildren = node.childNodes;\n for (var i = 0; true; ++i) {\n var oldChild = oldChildren[i];\n var newChild = children[i];\n // check if our work is done\n if (!oldChild && !newChild) {\n break;\n }\n // check if children match\n if (oldChild === newChild) {\n continue;\n }\n // check if a new child needs to be added\n if (!oldChild) {\n node.appendChild(newChild);\n continue;\n }\n // check if an old child needs to be removed\n if (!newChild) {\n node.removeChild(oldChild);\n --i;\n continue;\n }\n // reorder\n node.insertBefore(newChild, oldChild);\n }\n}\n//# sourceMappingURL=dom.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/ImageTile\n */\nimport Tile from './Tile.js';\nimport TileState from './TileState.js';\nimport { createCanvasContext2D } from './dom.js';\nimport { listenImage } from './Image.js';\nvar ImageTile = /** @class */ (function (_super) {\n __extends(ImageTile, _super);\n /**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {import(\"./TileState.js\").default} state State.\n * @param {string} src Image source URI.\n * @param {?string} crossOrigin Cross origin.\n * @param {import(\"./Tile.js\").LoadFunction} tileLoadFunction Tile load function.\n * @param {import(\"./Tile.js\").Options} [opt_options] Tile options.\n */\n function ImageTile(tileCoord, state, src, crossOrigin, tileLoadFunction, opt_options) {\n var _this = _super.call(this, tileCoord, state, opt_options) || this;\n /**\n * @private\n * @type {?string}\n */\n _this.crossOrigin_ = crossOrigin;\n /**\n * Image URI\n *\n * @private\n * @type {string}\n */\n _this.src_ = src;\n _this.key = src;\n /**\n * @private\n * @type {HTMLImageElement|HTMLCanvasElement}\n */\n _this.image_ = new Image();\n if (crossOrigin !== null) {\n _this.image_.crossOrigin = crossOrigin;\n }\n /**\n * @private\n * @type {?function():void}\n */\n _this.unlisten_ = null;\n /**\n * @private\n * @type {import(\"./Tile.js\").LoadFunction}\n */\n _this.tileLoadFunction_ = tileLoadFunction;\n return _this;\n }\n /**\n * Get the HTML image element for this tile (may be a Canvas, Image, or Video).\n * @return {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} Image.\n * @api\n */\n ImageTile.prototype.getImage = function () {\n return this.image_;\n };\n /**\n * Sets an HTML image element for this tile (may be a Canvas or preloaded Image).\n * @param {HTMLCanvasElement|HTMLImageElement} element Element.\n */\n ImageTile.prototype.setImage = function (element) {\n this.image_ = element;\n this.state = TileState.LOADED;\n this.unlistenImage_();\n this.changed();\n };\n /**\n * Tracks loading or read errors.\n *\n * @private\n */\n ImageTile.prototype.handleImageError_ = function () {\n this.state = TileState.ERROR;\n this.unlistenImage_();\n this.image_ = getBlankImage();\n this.changed();\n };\n /**\n * Tracks successful image load.\n *\n * @private\n */\n ImageTile.prototype.handleImageLoad_ = function () {\n var image = /** @type {HTMLImageElement} */ (this.image_);\n if (image.naturalWidth && image.naturalHeight) {\n this.state = TileState.LOADED;\n }\n else {\n this.state = TileState.EMPTY;\n }\n this.unlistenImage_();\n this.changed();\n };\n /**\n * Load not yet loaded URI.\n * @api\n */\n ImageTile.prototype.load = function () {\n if (this.state == TileState.ERROR) {\n this.state = TileState.IDLE;\n this.image_ = new Image();\n if (this.crossOrigin_ !== null) {\n this.image_.crossOrigin = this.crossOrigin_;\n }\n }\n if (this.state == TileState.IDLE) {\n this.state = TileState.LOADING;\n this.changed();\n this.tileLoadFunction_(this, this.src_);\n this.unlisten_ = listenImage(this.image_, this.handleImageLoad_.bind(this), this.handleImageError_.bind(this));\n }\n };\n /**\n * Discards event handlers which listen for load completion or errors.\n *\n * @private\n */\n ImageTile.prototype.unlistenImage_ = function () {\n if (this.unlisten_) {\n this.unlisten_();\n this.unlisten_ = null;\n }\n };\n return ImageTile;\n}(Tile));\n/**\n * Get a 1-pixel blank image.\n * @return {HTMLCanvasElement} Blank image.\n */\nfunction getBlankImage() {\n var ctx = createCanvasContext2D(1, 1);\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return ctx.canvas;\n}\nexport default ImageTile;\n//# sourceMappingURL=ImageTile.js.map","/**\n * @module ol/Kinetic\n */\n/**\n * @classdesc\n * Implementation of inertial deceleration for map movement.\n *\n * @api\n */\nvar Kinetic = /** @class */ (function () {\n /**\n * @param {number} decay Rate of decay (must be negative).\n * @param {number} minVelocity Minimum velocity (pixels/millisecond).\n * @param {number} delay Delay to consider to calculate the kinetic\n * initial values (milliseconds).\n */\n function Kinetic(decay, minVelocity, delay) {\n /**\n * @private\n * @type {number}\n */\n this.decay_ = decay;\n /**\n * @private\n * @type {number}\n */\n this.minVelocity_ = minVelocity;\n /**\n * @private\n * @type {number}\n */\n this.delay_ = delay;\n /**\n * @private\n * @type {Array}\n */\n this.points_ = [];\n /**\n * @private\n * @type {number}\n */\n this.angle_ = 0;\n /**\n * @private\n * @type {number}\n */\n this.initialVelocity_ = 0;\n }\n /**\n * FIXME empty description for jsdoc\n */\n Kinetic.prototype.begin = function () {\n this.points_.length = 0;\n this.angle_ = 0;\n this.initialVelocity_ = 0;\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n */\n Kinetic.prototype.update = function (x, y) {\n this.points_.push(x, y, Date.now());\n };\n /**\n * @return {boolean} Whether we should do kinetic animation.\n */\n Kinetic.prototype.end = function () {\n if (this.points_.length < 6) {\n // at least 2 points are required (i.e. there must be at least 6 elements\n // in the array)\n return false;\n }\n var delay = Date.now() - this.delay_;\n var lastIndex = this.points_.length - 3;\n if (this.points_[lastIndex + 2] < delay) {\n // the last tracked point is too old, which means that the user stopped\n // panning before releasing the map\n return false;\n }\n // get the first point which still falls into the delay time\n var firstIndex = lastIndex - 3;\n while (firstIndex > 0 && this.points_[firstIndex + 2] > delay) {\n firstIndex -= 3;\n }\n var duration = this.points_[lastIndex + 2] - this.points_[firstIndex + 2];\n // we don't want a duration of 0 (divide by zero)\n // we also make sure the user panned for a duration of at least one frame\n // (1/60s) to compute sane displacement values\n if (duration < 1000 / 60) {\n return false;\n }\n var dx = this.points_[lastIndex] - this.points_[firstIndex];\n var dy = this.points_[lastIndex + 1] - this.points_[firstIndex + 1];\n this.angle_ = Math.atan2(dy, dx);\n this.initialVelocity_ = Math.sqrt(dx * dx + dy * dy) / duration;\n return this.initialVelocity_ > this.minVelocity_;\n };\n /**\n * @return {number} Total distance travelled (pixels).\n */\n Kinetic.prototype.getDistance = function () {\n return (this.minVelocity_ - this.initialVelocity_) / this.decay_;\n };\n /**\n * @return {number} Angle of the kinetic panning animation (radians).\n */\n Kinetic.prototype.getAngle = function () {\n return this.angle_;\n };\n return Kinetic;\n}());\nexport default Kinetic;\n//# sourceMappingURL=Kinetic.js.map","/**\n * @module ol/color\n */\nimport { assert } from './asserts.js';\nimport { clamp } from './math.js';\n/**\n * A color represented as a short array [red, green, blue, alpha].\n * red, green, and blue should be integers in the range 0..255 inclusive.\n * alpha should be a float in the range 0..1 inclusive. If no alpha value is\n * given then `1` will be used.\n * @typedef {Array} Color\n * @api\n */\n/**\n * This RegExp matches # followed by 3, 4, 6, or 8 hex digits.\n * @const\n * @type {RegExp}\n * @private\n */\nvar HEX_COLOR_RE_ = /^#([a-f0-9]{3}|[a-f0-9]{4}(?:[a-f0-9]{2}){0,2})$/i;\n/**\n * Regular expression for matching potential named color style strings.\n * @const\n * @type {RegExp}\n * @private\n */\nvar NAMED_COLOR_RE_ = /^([a-z]*)$|^hsla?\\(.*\\)$/i;\n/**\n * Return the color as an rgba string.\n * @param {Color|string} color Color.\n * @return {string} Rgba string.\n * @api\n */\nexport function asString(color) {\n if (typeof color === 'string') {\n return color;\n }\n else {\n return toString(color);\n }\n}\n/**\n * Return named color as an rgba string.\n * @param {string} color Named color.\n * @return {string} Rgb string.\n */\nfunction fromNamed(color) {\n var el = document.createElement('div');\n el.style.color = color;\n if (el.style.color !== '') {\n document.body.appendChild(el);\n var rgb = getComputedStyle(el).color;\n document.body.removeChild(el);\n return rgb;\n }\n else {\n return '';\n }\n}\n/**\n * @param {string} s String.\n * @return {Color} Color.\n */\nexport var fromString = (function () {\n // We maintain a small cache of parsed strings. To provide cheap LRU-like\n // semantics, whenever the cache grows too large we simply delete an\n // arbitrary 25% of the entries.\n /**\n * @const\n * @type {number}\n */\n var MAX_CACHE_SIZE = 1024;\n /**\n * @type {Object}\n */\n var cache = {};\n /**\n * @type {number}\n */\n var cacheSize = 0;\n return (\n /**\n * @param {string} s String.\n * @return {Color} Color.\n */\n function (s) {\n var color;\n if (cache.hasOwnProperty(s)) {\n color = cache[s];\n }\n else {\n if (cacheSize >= MAX_CACHE_SIZE) {\n var i = 0;\n for (var key in cache) {\n if ((i++ & 3) === 0) {\n delete cache[key];\n --cacheSize;\n }\n }\n }\n color = fromStringInternal_(s);\n cache[s] = color;\n ++cacheSize;\n }\n return color;\n });\n})();\n/**\n * Return the color as an array. This function maintains a cache of calculated\n * arrays which means the result should not be modified.\n * @param {Color|string} color Color.\n * @return {Color} Color.\n * @api\n */\nexport function asArray(color) {\n if (Array.isArray(color)) {\n return color;\n }\n else {\n return fromString(color);\n }\n}\n/**\n * @param {string} s String.\n * @private\n * @return {Color} Color.\n */\nfunction fromStringInternal_(s) {\n var r, g, b, a, color;\n if (NAMED_COLOR_RE_.exec(s)) {\n s = fromNamed(s);\n }\n if (HEX_COLOR_RE_.exec(s)) {\n // hex\n var n = s.length - 1; // number of hex digits\n var d = // number of digits per channel\n void 0; // number of digits per channel\n if (n <= 4) {\n d = 1;\n }\n else {\n d = 2;\n }\n var hasAlpha = n === 4 || n === 8;\n r = parseInt(s.substr(1 + 0 * d, d), 16);\n g = parseInt(s.substr(1 + 1 * d, d), 16);\n b = parseInt(s.substr(1 + 2 * d, d), 16);\n if (hasAlpha) {\n a = parseInt(s.substr(1 + 3 * d, d), 16);\n }\n else {\n a = 255;\n }\n if (d == 1) {\n r = (r << 4) + r;\n g = (g << 4) + g;\n b = (b << 4) + b;\n if (hasAlpha) {\n a = (a << 4) + a;\n }\n }\n color = [r, g, b, a / 255];\n }\n else if (s.indexOf('rgba(') == 0) {\n // rgba()\n color = s.slice(5, -1).split(',').map(Number);\n normalize(color);\n }\n else if (s.indexOf('rgb(') == 0) {\n // rgb()\n color = s.slice(4, -1).split(',').map(Number);\n color.push(1);\n normalize(color);\n }\n else {\n assert(false, 14); // Invalid color\n }\n return color;\n}\n/**\n * TODO this function is only used in the test, we probably shouldn't export it\n * @param {Color} color Color.\n * @return {Color} Clamped color.\n */\nexport function normalize(color) {\n color[0] = clamp((color[0] + 0.5) | 0, 0, 255);\n color[1] = clamp((color[1] + 0.5) | 0, 0, 255);\n color[2] = clamp((color[2] + 0.5) | 0, 0, 255);\n color[3] = clamp(color[3], 0, 1);\n return color;\n}\n/**\n * @param {Color} color Color.\n * @return {string} String.\n */\nexport function toString(color) {\n var r = color[0];\n if (r != (r | 0)) {\n r = (r + 0.5) | 0;\n }\n var g = color[1];\n if (g != (g | 0)) {\n g = (g + 0.5) | 0;\n }\n var b = color[2];\n if (b != (b | 0)) {\n b = (b + 0.5) | 0;\n }\n var a = color[3] === undefined ? 1 : color[3];\n return 'rgba(' + r + ',' + g + ',' + b + ',' + a + ')';\n}\n/**\n * @param {string} s String.\n * @return {boolean} Whether the string is actually a valid color\n */\nexport function isStringColor(s) {\n if (NAMED_COLOR_RE_.test(s)) {\n s = fromNamed(s);\n }\n return (HEX_COLOR_RE_.test(s) || s.indexOf('rgba(') === 0 || s.indexOf('rgb(') === 0);\n}\n//# sourceMappingURL=color.js.map","/**\n * @module ol/style/IconImageCache\n */\nimport { asString } from '../color.js';\n/**\n * @classdesc\n * Singleton class. Available through {@link module:ol/style/IconImageCache~shared}.\n */\nvar IconImageCache = /** @class */ (function () {\n function IconImageCache() {\n /**\n * @type {!Object}\n * @private\n */\n this.cache_ = {};\n /**\n * @type {number}\n * @private\n */\n this.cacheSize_ = 0;\n /**\n * @type {number}\n * @private\n */\n this.maxCacheSize_ = 32;\n }\n /**\n * FIXME empty description for jsdoc\n */\n IconImageCache.prototype.clear = function () {\n this.cache_ = {};\n this.cacheSize_ = 0;\n };\n /**\n * @return {boolean} Can expire cache.\n */\n IconImageCache.prototype.canExpireCache = function () {\n return this.cacheSize_ > this.maxCacheSize_;\n };\n /**\n * FIXME empty description for jsdoc\n */\n IconImageCache.prototype.expire = function () {\n if (this.canExpireCache()) {\n var i = 0;\n for (var key in this.cache_) {\n var iconImage = this.cache_[key];\n if ((i++ & 3) === 0 && !iconImage.hasListener()) {\n delete this.cache_[key];\n --this.cacheSize_;\n }\n }\n }\n };\n /**\n * @param {string} src Src.\n * @param {?string} crossOrigin Cross origin.\n * @param {import(\"../color.js\").Color} color Color.\n * @return {import(\"./IconImage.js\").default} Icon image.\n */\n IconImageCache.prototype.get = function (src, crossOrigin, color) {\n var key = getKey(src, crossOrigin, color);\n return key in this.cache_ ? this.cache_[key] : null;\n };\n /**\n * @param {string} src Src.\n * @param {?string} crossOrigin Cross origin.\n * @param {import(\"../color.js\").Color} color Color.\n * @param {import(\"./IconImage.js\").default} iconImage Icon image.\n */\n IconImageCache.prototype.set = function (src, crossOrigin, color, iconImage) {\n var key = getKey(src, crossOrigin, color);\n this.cache_[key] = iconImage;\n ++this.cacheSize_;\n };\n /**\n * Set the cache size of the icon cache. Default is `32`. Change this value when\n * your map uses more than 32 different icon images and you are not caching icon\n * styles on the application level.\n * @param {number} maxCacheSize Cache max size.\n * @api\n */\n IconImageCache.prototype.setSize = function (maxCacheSize) {\n this.maxCacheSize_ = maxCacheSize;\n this.expire();\n };\n return IconImageCache;\n}());\n/**\n * @param {string} src Src.\n * @param {?string} crossOrigin Cross origin.\n * @param {import(\"../color.js\").Color} color Color.\n * @return {string} Cache key.\n */\nfunction getKey(src, crossOrigin, color) {\n var colorString = color ? asString(color) : 'null';\n return crossOrigin + ':' + src + ':' + colorString;\n}\nexport default IconImageCache;\n/**\n * The {@link module:ol/style/IconImageCache~IconImageCache} for\n * {@link module:ol/style/Icon~Icon} images.\n * @api\n */\nexport var shared = new IconImageCache();\n//# sourceMappingURL=IconImageCache.js.map","/**\n * @module ol/layer/Property\n */\n/**\n * @enum {string}\n */\nexport default {\n OPACITY: 'opacity',\n VISIBLE: 'visible',\n EXTENT: 'extent',\n Z_INDEX: 'zIndex',\n MAX_RESOLUTION: 'maxResolution',\n MIN_RESOLUTION: 'minResolution',\n MAX_ZOOM: 'maxZoom',\n MIN_ZOOM: 'minZoom',\n SOURCE: 'source',\n};\n//# sourceMappingURL=Property.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/layer/Base\n */\nimport BaseObject from '../Object.js';\nimport LayerProperty from './Property.js';\nimport { abstract } from '../util.js';\nimport { assert } from '../asserts.js';\nimport { assign } from '../obj.js';\nimport { clamp } from '../math.js';\n/**\n * @typedef {import(\"../ObjectEventType\").Types|'change:extent'|'change:maxResolution'|'change:maxZoom'|\n * 'change:minResolution'|'change:minZoom'|'change:opacity'|'change:visible'|'change:zIndex'} BaseLayerObjectEventTypes\n */\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} BaseLayerOnSignature\n */\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-layer'] A CSS class name to set to the layer element.\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {number} [minZoom] The minimum view zoom level (exclusive) above which this layer will be\n * visible.\n * @property {number} [maxZoom] The maximum view zoom level (inclusive) at which this layer will\n * be visible.\n * @property {Object} [properties] Arbitrary observable properties. Can be accessed with `#get()` and `#set()`.\n */\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Note that with {@link module:ol/layer/Base} and all its subclasses, any property set in\n * the options is set as a {@link module:ol/Object} property on the layer object, so\n * is observable, and has get/set accessors.\n *\n * @api\n */\nvar BaseLayer = /** @class */ (function (_super) {\n __extends(BaseLayer, _super);\n /**\n * @param {Options} options Layer options.\n */\n function BaseLayer(options) {\n var _this = _super.call(this) || this;\n /***\n * @type {BaseLayerOnSignature}\n */\n _this.on;\n /***\n * @type {BaseLayerOnSignature}\n */\n _this.once;\n /***\n * @type {BaseLayerOnSignature}\n */\n _this.un;\n /**\n * @type {Object}\n */\n var properties = assign({}, options);\n if (typeof options.properties === 'object') {\n delete properties.properties;\n assign(properties, options.properties);\n }\n properties[LayerProperty.OPACITY] =\n options.opacity !== undefined ? options.opacity : 1;\n assert(typeof properties[LayerProperty.OPACITY] === 'number', 64); // Layer opacity must be a number\n properties[LayerProperty.VISIBLE] =\n options.visible !== undefined ? options.visible : true;\n properties[LayerProperty.Z_INDEX] = options.zIndex;\n properties[LayerProperty.MAX_RESOLUTION] =\n options.maxResolution !== undefined ? options.maxResolution : Infinity;\n properties[LayerProperty.MIN_RESOLUTION] =\n options.minResolution !== undefined ? options.minResolution : 0;\n properties[LayerProperty.MIN_ZOOM] =\n options.minZoom !== undefined ? options.minZoom : -Infinity;\n properties[LayerProperty.MAX_ZOOM] =\n options.maxZoom !== undefined ? options.maxZoom : Infinity;\n /**\n * @type {string}\n * @private\n */\n _this.className_ =\n properties.className !== undefined ? options.className : 'ol-layer';\n delete properties.className;\n _this.setProperties(properties);\n /**\n * @type {import(\"./Layer.js\").State}\n * @private\n */\n _this.state_ = null;\n return _this;\n }\n /**\n * @return {string} CSS class name.\n */\n BaseLayer.prototype.getClassName = function () {\n return this.className_;\n };\n /**\n * This method is not meant to be called by layers or layer renderers because the state\n * is incorrect if the layer is included in a layer group.\n *\n * @param {boolean} [opt_managed] Layer is managed.\n * @return {import(\"./Layer.js\").State} Layer state.\n */\n BaseLayer.prototype.getLayerState = function (opt_managed) {\n /** @type {import(\"./Layer.js\").State} */\n var state = this.state_ ||\n /** @type {?} */ ({\n layer: this,\n managed: opt_managed === undefined ? true : opt_managed,\n });\n var zIndex = this.getZIndex();\n state.opacity = clamp(Math.round(this.getOpacity() * 100) / 100, 0, 1);\n state.sourceState = this.getSourceState();\n state.visible = this.getVisible();\n state.extent = this.getExtent();\n state.zIndex = zIndex === undefined && !state.managed ? Infinity : zIndex;\n state.maxResolution = this.getMaxResolution();\n state.minResolution = Math.max(this.getMinResolution(), 0);\n state.minZoom = this.getMinZoom();\n state.maxZoom = this.getMaxZoom();\n this.state_ = state;\n return state;\n };\n /**\n * @abstract\n * @param {Array} [opt_array] Array of layers (to be\n * modified in place).\n * @return {Array} Array of layers.\n */\n BaseLayer.prototype.getLayersArray = function (opt_array) {\n return abstract();\n };\n /**\n * @abstract\n * @param {Array} [opt_states] Optional list of layer\n * states (to be modified in place).\n * @return {Array} List of layer states.\n */\n BaseLayer.prototype.getLayerStatesArray = function (opt_states) {\n return abstract();\n };\n /**\n * Return the {@link module:ol/extent~Extent extent} of the layer or `undefined` if it\n * will be visible regardless of extent.\n * @return {import(\"../extent.js\").Extent|undefined} The layer extent.\n * @observable\n * @api\n */\n BaseLayer.prototype.getExtent = function () {\n return /** @type {import(\"../extent.js\").Extent|undefined} */ (this.get(LayerProperty.EXTENT));\n };\n /**\n * Return the maximum resolution of the layer.\n * @return {number} The maximum resolution of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getMaxResolution = function () {\n return /** @type {number} */ (this.get(LayerProperty.MAX_RESOLUTION));\n };\n /**\n * Return the minimum resolution of the layer.\n * @return {number} The minimum resolution of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getMinResolution = function () {\n return /** @type {number} */ (this.get(LayerProperty.MIN_RESOLUTION));\n };\n /**\n * Return the minimum zoom level of the layer.\n * @return {number} The minimum zoom level of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getMinZoom = function () {\n return /** @type {number} */ (this.get(LayerProperty.MIN_ZOOM));\n };\n /**\n * Return the maximum zoom level of the layer.\n * @return {number} The maximum zoom level of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getMaxZoom = function () {\n return /** @type {number} */ (this.get(LayerProperty.MAX_ZOOM));\n };\n /**\n * Return the opacity of the layer (between 0 and 1).\n * @return {number} The opacity of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getOpacity = function () {\n return /** @type {number} */ (this.get(LayerProperty.OPACITY));\n };\n /**\n * @abstract\n * @return {import(\"../source/State.js\").default} Source state.\n */\n BaseLayer.prototype.getSourceState = function () {\n return abstract();\n };\n /**\n * Return the visibility of the layer (`true` or `false`).\n * @return {boolean} The visibility of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getVisible = function () {\n return /** @type {boolean} */ (this.get(LayerProperty.VISIBLE));\n };\n /**\n * Return the Z-index of the layer, which is used to order layers before\n * rendering. The default Z-index is 0.\n * @return {number} The Z-index of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getZIndex = function () {\n return /** @type {number} */ (this.get(LayerProperty.Z_INDEX));\n };\n /**\n * Set the extent at which the layer is visible. If `undefined`, the layer\n * will be visible at all extents.\n * @param {import(\"../extent.js\").Extent|undefined} extent The extent of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setExtent = function (extent) {\n this.set(LayerProperty.EXTENT, extent);\n };\n /**\n * Set the maximum resolution at which the layer is visible.\n * @param {number} maxResolution The maximum resolution of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setMaxResolution = function (maxResolution) {\n this.set(LayerProperty.MAX_RESOLUTION, maxResolution);\n };\n /**\n * Set the minimum resolution at which the layer is visible.\n * @param {number} minResolution The minimum resolution of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setMinResolution = function (minResolution) {\n this.set(LayerProperty.MIN_RESOLUTION, minResolution);\n };\n /**\n * Set the maximum zoom (exclusive) at which the layer is visible.\n * Note that the zoom levels for layer visibility are based on the\n * view zoom level, which may be different from a tile source zoom level.\n * @param {number} maxZoom The maximum zoom of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setMaxZoom = function (maxZoom) {\n this.set(LayerProperty.MAX_ZOOM, maxZoom);\n };\n /**\n * Set the minimum zoom (inclusive) at which the layer is visible.\n * Note that the zoom levels for layer visibility are based on the\n * view zoom level, which may be different from a tile source zoom level.\n * @param {number} minZoom The minimum zoom of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setMinZoom = function (minZoom) {\n this.set(LayerProperty.MIN_ZOOM, minZoom);\n };\n /**\n * Set the opacity of the layer, allowed values range from 0 to 1.\n * @param {number} opacity The opacity of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setOpacity = function (opacity) {\n assert(typeof opacity === 'number', 64); // Layer opacity must be a number\n this.set(LayerProperty.OPACITY, opacity);\n };\n /**\n * Set the visibility of the layer (`true` or `false`).\n * @param {boolean} visible The visibility of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setVisible = function (visible) {\n this.set(LayerProperty.VISIBLE, visible);\n };\n /**\n * Set Z-index of the layer, which is used to order layers before rendering.\n * The default Z-index is 0.\n * @param {number} zindex The z-index of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setZIndex = function (zindex) {\n this.set(LayerProperty.Z_INDEX, zindex);\n };\n /**\n * Clean up.\n */\n BaseLayer.prototype.disposeInternal = function () {\n if (this.state_) {\n this.state_.layer = null;\n this.state_ = null;\n }\n _super.prototype.disposeInternal.call(this);\n };\n return BaseLayer;\n}(BaseObject));\nexport default BaseLayer;\n//# sourceMappingURL=Base.js.map","/**\n * @module ol/render/EventType\n */\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered before a layer is rendered.\n * @event module:ol/render/Event~RenderEvent#prerender\n * @api\n */\n PRERENDER: 'prerender',\n /**\n * Triggered after a layer is rendered.\n * @event module:ol/render/Event~RenderEvent#postrender\n * @api\n */\n POSTRENDER: 'postrender',\n /**\n * Triggered before layers are rendered.\n * The event object will not have a `context` set.\n * @event module:ol/render/Event~RenderEvent#precompose\n * @api\n */\n PRECOMPOSE: 'precompose',\n /**\n * Triggered after all layers are rendered.\n * The event object will not have a `context` set.\n * @event module:ol/render/Event~RenderEvent#postcompose\n * @api\n */\n POSTCOMPOSE: 'postcompose',\n /**\n * Triggered when rendering is complete, i.e. all sources and tiles have\n * finished loading for the current viewport, and all tiles are faded in.\n * The event object will not have a `context` set.\n * @event module:ol/render/Event~RenderEvent#rendercomplete\n * @api\n */\n RENDERCOMPLETE: 'rendercomplete',\n};\n/**\n * @typedef {'postrender'|'precompose'|'postcompose'|'rendercomplete'} MapRenderEventTypes\n */\n/**\n * @typedef {'postrender'|'prerender'} LayerRenderEventTypes\n */\n//# sourceMappingURL=EventType.js.map","/**\n * @module ol/source/State\n */\n/**\n * @enum {string}\n * State of the source, one of 'undefined', 'loading', 'ready' or 'error'.\n */\nexport default {\n UNDEFINED: 'undefined',\n LOADING: 'loading',\n READY: 'ready',\n ERROR: 'error',\n};\n//# sourceMappingURL=State.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/layer/Layer\n */\nimport BaseLayer from './Base.js';\nimport EventType from '../events/EventType.js';\nimport LayerProperty from './Property.js';\nimport RenderEventType from '../render/EventType.js';\nimport SourceState from '../source/State.js';\nimport { assert } from '../asserts.js';\nimport { assign } from '../obj.js';\nimport { listen, unlistenByKey } from '../events.js';\n/**\n * @typedef {function(import(\"../PluggableMap.js\").FrameState):HTMLElement} RenderFunction\n */\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} LayerOnSignature\n */\n/**\n * @template {import(\"../source/Source.js\").default} SourceType\n * @typedef {Object} Options\n * @property {string} [className='ol-layer'] A CSS class name to set to the layer element.\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {number} [minZoom] The minimum view zoom level (exclusive) above which this layer will be\n * visible.\n * @property {number} [maxZoom] The maximum view zoom level (inclusive) at which this layer will\n * be visible.\n * @property {SourceType} [source] Source for this layer. If not provided to the constructor,\n * the source can be set by calling {@link module:ol/layer/Layer~Layer#setSource layer.setSource(source)} after\n * construction.\n * @property {import(\"../PluggableMap.js\").default} [map] Map.\n * @property {RenderFunction} [render] Render function. Takes the frame state as input and is expected to return an\n * HTML element. Will overwrite the default rendering for the layer.\n * @property {Object} [properties] Arbitrary observable properties. Can be accessed with `#get()` and `#set()`.\n */\n/**\n * @typedef {Object} State\n * @property {import(\"./Layer.js\").default} layer Layer.\n * @property {number} opacity Opacity, the value is rounded to two digits to appear after the decimal point.\n * @property {import(\"../source/State.js\").default} sourceState SourceState.\n * @property {boolean} visible Visible.\n * @property {boolean} managed Managed.\n * @property {import(\"../extent.js\").Extent} [extent] Extent.\n * @property {number} zIndex ZIndex.\n * @property {number} maxResolution Maximum resolution.\n * @property {number} minResolution Minimum resolution.\n * @property {number} minZoom Minimum zoom.\n * @property {number} maxZoom Maximum zoom.\n */\n/**\n * @classdesc\n * Base class from which all layer types are derived. This should only be instantiated\n * in the case where a custom layer is be added to the map with a custom `render` function.\n * Such a function can be specified in the `options` object, and is expected to return an HTML element.\n *\n * A visual representation of raster or vector map data.\n * Layers group together those properties that pertain to how the data is to be\n * displayed, irrespective of the source of that data.\n *\n * Layers are usually added to a map with {@link import(\"../PluggableMap.js\").default#addLayer map.addLayer()}. Components\n * like {@link module:ol/interaction/Select~Select} use unmanaged layers\n * internally. These unmanaged layers are associated with the map using\n * {@link module:ol/layer/Layer~Layer#setMap} instead.\n *\n * A generic `change` event is fired when the state of the source changes.\n *\n * Please note that for performance reasons several layers might get rendered to\n * the same HTML element, which will cause {@link import(\"../PluggableMap.js\").default#forEachLayerAtPixel map.forEachLayerAtPixel()} to\n * give false positives. To avoid this, apply different `className` properties to the\n * layers at creation time.\n *\n * @fires import(\"../render/Event.js\").RenderEvent#prerender\n * @fires import(\"../render/Event.js\").RenderEvent#postrender\n *\n * @template {import(\"../source/Source.js\").default} SourceType\n * @api\n */\nvar Layer = /** @class */ (function (_super) {\n __extends(Layer, _super);\n /**\n * @param {Options} options Layer options.\n */\n function Layer(options) {\n var _this = this;\n var baseOptions = assign({}, options);\n delete baseOptions.source;\n _this = _super.call(this, baseOptions) || this;\n /***\n * @type {LayerOnSignature}\n */\n _this.on;\n /***\n * @type {LayerOnSignature}\n */\n _this.once;\n /***\n * @type {LayerOnSignature}\n */\n _this.un;\n /**\n * @private\n * @type {?import(\"../events.js\").EventsKey}\n */\n _this.mapPrecomposeKey_ = null;\n /**\n * @private\n * @type {?import(\"../events.js\").EventsKey}\n */\n _this.mapRenderKey_ = null;\n /**\n * @private\n * @type {?import(\"../events.js\").EventsKey}\n */\n _this.sourceChangeKey_ = null;\n /**\n * @private\n * @type {import(\"../renderer/Layer.js\").default}\n */\n _this.renderer_ = null;\n // Overwrite default render method with a custom one\n if (options.render) {\n _this.render = options.render;\n }\n if (options.map) {\n _this.setMap(options.map);\n }\n _this.addChangeListener(LayerProperty.SOURCE, _this.handleSourcePropertyChange_);\n var source = options.source\n ? /** @type {SourceType} */ (options.source)\n : null;\n _this.setSource(source);\n return _this;\n }\n /**\n * @param {Array} [opt_array] Array of layers (to be modified in place).\n * @return {Array} Array of layers.\n */\n Layer.prototype.getLayersArray = function (opt_array) {\n var array = opt_array ? opt_array : [];\n array.push(this);\n return array;\n };\n /**\n * @param {Array} [opt_states] Optional list of layer states (to be modified in place).\n * @return {Array} List of layer states.\n */\n Layer.prototype.getLayerStatesArray = function (opt_states) {\n var states = opt_states ? opt_states : [];\n states.push(this.getLayerState());\n return states;\n };\n /**\n * Get the layer source.\n * @return {SourceType} The layer source (or `null` if not yet set).\n * @observable\n * @api\n */\n Layer.prototype.getSource = function () {\n return /** @type {SourceType} */ (this.get(LayerProperty.SOURCE)) || null;\n };\n /**\n * @return {import(\"../source/State.js\").default} Source state.\n */\n Layer.prototype.getSourceState = function () {\n var source = this.getSource();\n return !source ? SourceState.UNDEFINED : source.getState();\n };\n /**\n * @private\n */\n Layer.prototype.handleSourceChange_ = function () {\n this.changed();\n };\n /**\n * @private\n */\n Layer.prototype.handleSourcePropertyChange_ = function () {\n if (this.sourceChangeKey_) {\n unlistenByKey(this.sourceChangeKey_);\n this.sourceChangeKey_ = null;\n }\n var source = this.getSource();\n if (source) {\n this.sourceChangeKey_ = listen(source, EventType.CHANGE, this.handleSourceChange_, this);\n }\n this.changed();\n };\n /**\n * @param {import(\"../pixel\").Pixel} pixel Pixel.\n * @return {Promise>} Promise that resolves with\n * an array of features.\n */\n Layer.prototype.getFeatures = function (pixel) {\n if (!this.renderer_) {\n return new Promise(function (resolve) { return resolve([]); });\n }\n return this.renderer_.getFeatures(pixel);\n };\n /**\n * In charge to manage the rendering of the layer. One layer type is\n * bounded with one layer renderer.\n * @param {?import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {HTMLElement} target Target which the renderer may (but need not) use\n * for rendering its content.\n * @return {HTMLElement} The rendered element.\n */\n Layer.prototype.render = function (frameState, target) {\n var layerRenderer = this.getRenderer();\n if (layerRenderer.prepareFrame(frameState)) {\n return layerRenderer.renderFrame(frameState, target);\n }\n };\n /**\n * Sets the layer to be rendered on top of other layers on a map. The map will\n * not manage this layer in its layers collection, and the callback in\n * {@link module:ol/Map~Map#forEachLayerAtPixel} will receive `null` as layer. This\n * is useful for temporary layers. To remove an unmanaged layer from the map,\n * use `#setMap(null)`.\n *\n * To add the layer to a map and have it managed by the map, use\n * {@link module:ol/Map~Map#addLayer} instead.\n * @param {import(\"../PluggableMap.js\").default} map Map.\n * @api\n */\n Layer.prototype.setMap = function (map) {\n if (this.mapPrecomposeKey_) {\n unlistenByKey(this.mapPrecomposeKey_);\n this.mapPrecomposeKey_ = null;\n }\n if (!map) {\n this.changed();\n }\n if (this.mapRenderKey_) {\n unlistenByKey(this.mapRenderKey_);\n this.mapRenderKey_ = null;\n }\n if (map) {\n this.mapPrecomposeKey_ = listen(map, RenderEventType.PRECOMPOSE, function (evt) {\n var renderEvent = \n /** @type {import(\"../render/Event.js\").default} */ (evt);\n var layerStatesArray = renderEvent.frameState.layerStatesArray;\n var layerState = this.getLayerState(false);\n // A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both.\n assert(!layerStatesArray.some(function (arrayLayerState) {\n return arrayLayerState.layer === layerState.layer;\n }), 67);\n layerStatesArray.push(layerState);\n }, this);\n this.mapRenderKey_ = listen(this, EventType.CHANGE, map.render, map);\n this.changed();\n }\n };\n /**\n * Set the layer source.\n * @param {SourceType} source The layer source.\n * @observable\n * @api\n */\n Layer.prototype.setSource = function (source) {\n this.set(LayerProperty.SOURCE, source);\n };\n /**\n * Get the renderer for this layer.\n * @return {import(\"../renderer/Layer.js\").default} The layer renderer.\n */\n Layer.prototype.getRenderer = function () {\n if (!this.renderer_) {\n this.renderer_ = this.createRenderer();\n }\n return this.renderer_;\n };\n /**\n * @return {boolean} The layer has a renderer.\n */\n Layer.prototype.hasRenderer = function () {\n return !!this.renderer_;\n };\n /**\n * Create a renderer for this layer.\n * @return {import(\"../renderer/Layer.js\").default} A layer renderer.\n * @protected\n */\n Layer.prototype.createRenderer = function () {\n return null;\n };\n /**\n * Clean up.\n */\n Layer.prototype.disposeInternal = function () {\n this.setSource(null);\n _super.prototype.disposeInternal.call(this);\n };\n return Layer;\n}(BaseLayer));\n/**\n * Return `true` if the layer is visible and if the provided view state\n * has resolution and zoom levels that are in range of the layer's min/max.\n * @param {State} layerState Layer state.\n * @param {import(\"../View.js\").State} viewState View state.\n * @return {boolean} The layer is visible at the given view state.\n */\nexport function inView(layerState, viewState) {\n if (!layerState.visible) {\n return false;\n }\n var resolution = viewState.resolution;\n if (resolution < layerState.minResolution ||\n resolution >= layerState.maxResolution) {\n return false;\n }\n var zoom = viewState.zoom;\n return zoom > layerState.minZoom && zoom <= layerState.maxZoom;\n}\nexport default Layer;\n//# sourceMappingURL=Layer.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/renderer/Map\n */\nimport Disposable from '../Disposable.js';\nimport { TRUE } from '../functions.js';\nimport { abstract } from '../util.js';\nimport { compose as composeTransform, makeInverse } from '../transform.js';\nimport { getWidth } from '../extent.js';\nimport { shared as iconImageCache } from '../style/IconImageCache.js';\nimport { inView } from '../layer/Layer.js';\nimport { wrapX } from '../coordinate.js';\n/**\n * @typedef HitMatch\n * @property {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @property {import(\"../layer/Layer.js\").default} layer Layer.\n * @property {import(\"../geom/SimpleGeometry.js\").default} geometry Geometry.\n * @property {number} distanceSq Squared distance.\n * @property {import(\"./vector.js\").FeatureCallback} callback Callback.\n * @template T\n */\n/**\n * @abstract\n */\nvar MapRenderer = /** @class */ (function (_super) {\n __extends(MapRenderer, _super);\n /**\n * @param {import(\"../PluggableMap.js\").default} map Map.\n */\n function MapRenderer(map) {\n var _this = _super.call(this) || this;\n /**\n * @private\n * @type {import(\"../PluggableMap.js\").default}\n */\n _this.map_ = map;\n return _this;\n }\n /**\n * @abstract\n * @param {import(\"../render/EventType.js\").default} type Event type.\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n */\n MapRenderer.prototype.dispatchRenderEvent = function (type, frameState) {\n abstract();\n };\n /**\n * @param {import(\"../PluggableMap.js\").FrameState} frameState FrameState.\n * @protected\n */\n MapRenderer.prototype.calculateMatrices2D = function (frameState) {\n var viewState = frameState.viewState;\n var coordinateToPixelTransform = frameState.coordinateToPixelTransform;\n var pixelToCoordinateTransform = frameState.pixelToCoordinateTransform;\n composeTransform(coordinateToPixelTransform, frameState.size[0] / 2, frameState.size[1] / 2, 1 / viewState.resolution, -1 / viewState.resolution, -viewState.rotation, -viewState.center[0], -viewState.center[1]);\n makeInverse(pixelToCoordinateTransform, coordinateToPixelTransform);\n };\n /**\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"../PluggableMap.js\").FrameState} frameState FrameState.\n * @param {number} hitTolerance Hit tolerance in pixels.\n * @param {boolean} checkWrapped Check for wrapped geometries.\n * @param {import(\"./vector.js\").FeatureCallback} callback Feature callback.\n * @param {S} thisArg Value to use as `this` when executing `callback`.\n * @param {function(this: U, import(\"../layer/Layer.js\").default): boolean} layerFilter Layer filter\n * function, only layers which are visible and for which this function\n * returns `true` will be tested for features. By default, all visible\n * layers will be tested.\n * @param {U} thisArg2 Value to use as `this` when executing `layerFilter`.\n * @return {T|undefined} Callback result.\n * @template S,T,U\n */\n MapRenderer.prototype.forEachFeatureAtCoordinate = function (coordinate, frameState, hitTolerance, checkWrapped, callback, thisArg, layerFilter, thisArg2) {\n var result;\n var viewState = frameState.viewState;\n /**\n * @param {boolean} managed Managed layer.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../layer/Layer.js\").default} layer Layer.\n * @param {import(\"../geom/Geometry.js\").default} geometry Geometry.\n * @return {T|undefined} Callback result.\n */\n function forEachFeatureAtCoordinate(managed, feature, layer, geometry) {\n return callback.call(thisArg, feature, managed ? layer : null, geometry);\n }\n var projection = viewState.projection;\n var translatedCoordinate = wrapX(coordinate.slice(), projection);\n var offsets = [[0, 0]];\n if (projection.canWrapX() && checkWrapped) {\n var projectionExtent = projection.getExtent();\n var worldWidth = getWidth(projectionExtent);\n offsets.push([-worldWidth, 0], [worldWidth, 0]);\n }\n var layerStates = frameState.layerStatesArray;\n var numLayers = layerStates.length;\n var matches = /** @type {Array>} */ ([]);\n var tmpCoord = [];\n for (var i = 0; i < offsets.length; i++) {\n for (var j = numLayers - 1; j >= 0; --j) {\n var layerState = layerStates[j];\n var layer = layerState.layer;\n if (layer.hasRenderer() &&\n inView(layerState, viewState) &&\n layerFilter.call(thisArg2, layer)) {\n var layerRenderer = layer.getRenderer();\n var source = layer.getSource();\n if (layerRenderer && source) {\n var coordinates = source.getWrapX()\n ? translatedCoordinate\n : coordinate;\n var callback_1 = forEachFeatureAtCoordinate.bind(null, layerState.managed);\n tmpCoord[0] = coordinates[0] + offsets[i][0];\n tmpCoord[1] = coordinates[1] + offsets[i][1];\n result = layerRenderer.forEachFeatureAtCoordinate(tmpCoord, frameState, hitTolerance, callback_1, matches);\n }\n if (result) {\n return result;\n }\n }\n }\n }\n if (matches.length === 0) {\n return undefined;\n }\n var order = 1 / matches.length;\n matches.forEach(function (m, i) { return (m.distanceSq += i * order); });\n matches.sort(function (a, b) { return a.distanceSq - b.distanceSq; });\n matches.some(function (m) {\n return (result = m.callback(m.feature, m.layer, m.geometry));\n });\n return result;\n };\n /**\n * @abstract\n * @param {import(\"../pixel.js\").Pixel} pixel Pixel.\n * @param {import(\"../PluggableMap.js\").FrameState} frameState FrameState.\n * @param {number} hitTolerance Hit tolerance in pixels.\n * @param {function(import(\"../layer/Layer.js\").default, (Uint8ClampedArray|Uint8Array)): T} callback Layer\n * callback.\n * @param {function(import(\"../layer/Layer.js\").default): boolean} layerFilter Layer filter\n * function, only layers which are visible and for which this function\n * returns `true` will be tested for features. By default, all visible\n * layers will be tested.\n * @return {T|undefined} Callback result.\n * @template T\n */\n MapRenderer.prototype.forEachLayerAtPixel = function (pixel, frameState, hitTolerance, callback, layerFilter) {\n return abstract();\n };\n /**\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"../PluggableMap.js\").FrameState} frameState FrameState.\n * @param {number} hitTolerance Hit tolerance in pixels.\n * @param {boolean} checkWrapped Check for wrapped geometries.\n * @param {function(this: U, import(\"../layer/Layer.js\").default): boolean} layerFilter Layer filter\n * function, only layers which are visible and for which this function\n * returns `true` will be tested for features. By default, all visible\n * layers will be tested.\n * @param {U} thisArg Value to use as `this` when executing `layerFilter`.\n * @return {boolean} Is there a feature at the given coordinate?\n * @template U\n */\n MapRenderer.prototype.hasFeatureAtCoordinate = function (coordinate, frameState, hitTolerance, checkWrapped, layerFilter, thisArg) {\n var hasFeature = this.forEachFeatureAtCoordinate(coordinate, frameState, hitTolerance, checkWrapped, TRUE, this, layerFilter, thisArg);\n return hasFeature !== undefined;\n };\n /**\n * @return {import(\"../PluggableMap.js\").default} Map.\n */\n MapRenderer.prototype.getMap = function () {\n return this.map_;\n };\n /**\n * Render.\n * @abstract\n * @param {?import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n */\n MapRenderer.prototype.renderFrame = function (frameState) {\n abstract();\n };\n /**\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @protected\n */\n MapRenderer.prototype.scheduleExpireIconCache = function (frameState) {\n if (iconImageCache.canExpireCache()) {\n frameState.postRenderFunctions.push(expireIconCache);\n }\n };\n return MapRenderer;\n}(Disposable));\n/**\n * @param {import(\"../PluggableMap.js\").default} map Map.\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n */\nfunction expireIconCache(map, frameState) {\n iconImageCache.expire();\n}\nexport default MapRenderer;\n//# sourceMappingURL=Map.js.map","/**\n * @module ol/render/Event\n */\nvar __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\nimport Event from '../events/Event.js';\nvar RenderEvent = /** @class */ (function (_super) {\n __extends(RenderEvent, _super);\n /**\n * @param {import(\"./EventType.js\").default} type Type.\n * @param {import(\"../transform.js\").Transform} [opt_inversePixelTransform] Transform for\n * CSS pixels to rendered pixels.\n * @param {import(\"../PluggableMap.js\").FrameState} [opt_frameState] Frame state.\n * @param {?CanvasRenderingContext2D} [opt_context] Context.\n */\n function RenderEvent(type, opt_inversePixelTransform, opt_frameState, opt_context) {\n var _this = _super.call(this, type) || this;\n /**\n * Transform from CSS pixels (relative to the top-left corner of the map viewport)\n * to rendered pixels on this event's `context`. Only available when a Canvas renderer is used, null otherwise.\n * @type {import(\"../transform.js\").Transform|undefined}\n * @api\n */\n _this.inversePixelTransform = opt_inversePixelTransform;\n /**\n * An object representing the current render frame state.\n * @type {import(\"../PluggableMap.js\").FrameState|undefined}\n * @api\n */\n _this.frameState = opt_frameState;\n /**\n * Canvas context. Not available when the event is dispatched by the map. Only available\n * when a Canvas renderer is used, null otherwise.\n * @type {CanvasRenderingContext2D|null|undefined}\n * @api\n */\n _this.context = opt_context;\n return _this;\n }\n return RenderEvent;\n}(Event));\nexport default RenderEvent;\n//# sourceMappingURL=Event.js.map","/**\n * @module ol/css\n */\n/**\n * @typedef {Object} FontParameters\n * @property {string} style Style.\n * @property {string} variant Variant.\n * @property {string} weight Weight.\n * @property {string} size Size.\n * @property {string} lineHeight LineHeight.\n * @property {string} family Family.\n * @property {Array} families Families.\n */\n/**\n * The CSS class for hidden feature.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_HIDDEN = 'ol-hidden';\n/**\n * The CSS class that we'll give the DOM elements to have them selectable.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_SELECTABLE = 'ol-selectable';\n/**\n * The CSS class that we'll give the DOM elements to have them unselectable.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_UNSELECTABLE = 'ol-unselectable';\n/**\n * The CSS class for unsupported feature.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_UNSUPPORTED = 'ol-unsupported';\n/**\n * The CSS class for controls.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_CONTROL = 'ol-control';\n/**\n * The CSS class that we'll give the DOM elements that are collapsed, i.e.\n * to those elements which usually can be expanded.\n *\n * @const\n * @type {string}\n */\nexport var CLASS_COLLAPSED = 'ol-collapsed';\n/**\n * From https://stackoverflow.com/questions/10135697/regex-to-parse-any-css-font\n * @type {RegExp}\n */\nvar fontRegEx = new RegExp([\n '^\\\\s*(?=(?:(?:[-a-z]+\\\\s*){0,2}(italic|oblique))?)',\n '(?=(?:(?:[-a-z]+\\\\s*){0,2}(small-caps))?)',\n '(?=(?:(?:[-a-z]+\\\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)',\n '(?:(?:normal|\\\\1|\\\\2|\\\\3)\\\\s*){0,3}((?:xx?-)?',\n '(?:small|large)|medium|smaller|larger|[\\\\.\\\\d]+(?:\\\\%|in|[cem]m|ex|p[ctx]))',\n '(?:\\\\s*\\\\/\\\\s*(normal|[\\\\.\\\\d]+(?:\\\\%|in|[cem]m|ex|p[ctx])?))',\n '?\\\\s*([-,\\\\\"\\\\\\'\\\\sa-z]+?)\\\\s*$',\n].join(''), 'i');\nvar fontRegExMatchIndex = [\n 'style',\n 'variant',\n 'weight',\n 'size',\n 'lineHeight',\n 'family',\n];\n/**\n * Get the list of font families from a font spec. Note that this doesn't work\n * for font families that have commas in them.\n * @param {string} fontSpec The CSS font property.\n * @return {FontParameters} The font parameters (or null if the input spec is invalid).\n */\nexport var getFontParameters = function (fontSpec) {\n var match = fontSpec.match(fontRegEx);\n if (!match) {\n return null;\n }\n var style = /** @type {FontParameters} */ ({\n lineHeight: 'normal',\n size: '1.2em',\n style: 'normal',\n weight: 'normal',\n variant: 'normal',\n });\n for (var i = 0, ii = fontRegExMatchIndex.length; i < ii; ++i) {\n var value = match[i + 1];\n if (value !== undefined) {\n style[fontRegExMatchIndex[i]] = value;\n }\n }\n style.families = style.family.split(/,\\s?/);\n return style;\n};\n//# sourceMappingURL=css.js.map","/**\n * @module ol/render/canvas\n */\nimport BaseObject from '../Object.js';\nimport EventTarget from '../events/Target.js';\nimport { WORKER_OFFSCREEN_CANVAS } from '../has.js';\nimport { clear } from '../obj.js';\nimport { createCanvasContext2D } from '../dom.js';\nimport { getFontParameters } from '../css.js';\n/**\n * @typedef {Object} FillState\n * @property {import(\"../colorlike.js\").ColorLike} fillStyle FillStyle.\n */\n/**\n * @typedef Label\n * @property {number} width Width.\n * @property {number} height Height.\n * @property {Array} contextInstructions ContextInstructions.\n */\n/**\n * @typedef {Object} FillStrokeState\n * @property {import(\"../colorlike.js\").ColorLike} [currentFillStyle] Current FillStyle.\n * @property {import(\"../colorlike.js\").ColorLike} [currentStrokeStyle] Current StrokeStyle.\n * @property {CanvasLineCap} [currentLineCap] Current LineCap.\n * @property {Array} currentLineDash Current LineDash.\n * @property {number} [currentLineDashOffset] Current LineDashOffset.\n * @property {CanvasLineJoin} [currentLineJoin] Current LineJoin.\n * @property {number} [currentLineWidth] Current LineWidth.\n * @property {number} [currentMiterLimit] Current MiterLimit.\n * @property {number} [lastStroke] Last stroke.\n * @property {import(\"../colorlike.js\").ColorLike} [fillStyle] FillStyle.\n * @property {import(\"../colorlike.js\").ColorLike} [strokeStyle] StrokeStyle.\n * @property {CanvasLineCap} [lineCap] LineCap.\n * @property {Array} lineDash LineDash.\n * @property {number} [lineDashOffset] LineDashOffset.\n * @property {CanvasLineJoin} [lineJoin] LineJoin.\n * @property {number} [lineWidth] LineWidth.\n * @property {number} [miterLimit] MiterLimit.\n */\n/**\n * @typedef {Object} StrokeState\n * @property {CanvasLineCap} lineCap LineCap.\n * @property {Array} lineDash LineDash.\n * @property {number} lineDashOffset LineDashOffset.\n * @property {CanvasLineJoin} lineJoin LineJoin.\n * @property {number} lineWidth LineWidth.\n * @property {number} miterLimit MiterLimit.\n * @property {import(\"../colorlike.js\").ColorLike} strokeStyle StrokeStyle.\n */\n/**\n * @typedef {Object} TextState\n * @property {string} font Font.\n * @property {string} [textAlign] TextAlign.\n * @property {string} textBaseline TextBaseline.\n * @property {string} [placement] Placement.\n * @property {number} [maxAngle] MaxAngle.\n * @property {boolean} [overflow] Overflow.\n * @property {import(\"../style/Fill.js\").default} [backgroundFill] BackgroundFill.\n * @property {import(\"../style/Stroke.js\").default} [backgroundStroke] BackgroundStroke.\n * @property {import(\"../size.js\").Size} [scale] Scale.\n * @property {Array} [padding] Padding.\n */\n/**\n * @typedef {Object} SerializableInstructions\n * @property {Array<*>} instructions The rendering instructions.\n * @property {Array<*>} hitDetectionInstructions The rendering hit detection instructions.\n * @property {Array} coordinates The array of all coordinates.\n * @property {!Object} [textStates] The text states (decluttering).\n * @property {!Object} [fillStates] The fill states (decluttering).\n * @property {!Object} [strokeStates] The stroke states (decluttering).\n */\n/**\n * @typedef {Object} DeclutterImageWithText\n */\n/**\n * @const\n * @type {string}\n */\nexport var defaultFont = '10px sans-serif';\n/**\n * @const\n * @type {import(\"../colorlike.js\").ColorLike}\n */\nexport var defaultFillStyle = '#000';\n/**\n * @const\n * @type {CanvasLineCap}\n */\nexport var defaultLineCap = 'round';\n/**\n * @const\n * @type {Array}\n */\nexport var defaultLineDash = [];\n/**\n * @const\n * @type {number}\n */\nexport var defaultLineDashOffset = 0;\n/**\n * @const\n * @type {CanvasLineJoin}\n */\nexport var defaultLineJoin = 'round';\n/**\n * @const\n * @type {number}\n */\nexport var defaultMiterLimit = 10;\n/**\n * @const\n * @type {import(\"../colorlike.js\").ColorLike}\n */\nexport var defaultStrokeStyle = '#000';\n/**\n * @const\n * @type {string}\n */\nexport var defaultTextAlign = 'center';\n/**\n * @const\n * @type {string}\n */\nexport var defaultTextBaseline = 'middle';\n/**\n * @const\n * @type {Array}\n */\nexport var defaultPadding = [0, 0, 0, 0];\n/**\n * @const\n * @type {number}\n */\nexport var defaultLineWidth = 1;\n/**\n * @type {BaseObject}\n */\nexport var checkedFonts = new BaseObject();\n/**\n * The label cache for text rendering. To change the default cache size of 2048\n * entries, use {@link module:ol/structs/LRUCache~LRUCache#setSize cache.setSize()}.\n * Deprecated - there is no label cache any more.\n * @type {?}\n * @api\n * @deprecated\n */\nexport var labelCache = new EventTarget();\nlabelCache.setSize = function () {\n console.warn('labelCache is deprecated.'); //eslint-disable-line\n};\n/**\n * @type {CanvasRenderingContext2D}\n */\nvar measureContext = null;\n/**\n * @type {string}\n */\nvar measureFont;\n/**\n * @type {!Object}\n */\nexport var textHeights = {};\n/**\n * Clears the label cache when a font becomes available.\n * @param {string} fontSpec CSS font spec.\n */\nexport var registerFont = (function () {\n var retries = 100;\n var size = '32px ';\n var referenceFonts = ['monospace', 'serif'];\n var len = referenceFonts.length;\n var text = 'wmytzilWMYTZIL@#/&?$%10\\uF013';\n var interval, referenceWidth;\n /**\n * @param {string} fontStyle Css font-style\n * @param {string} fontWeight Css font-weight\n * @param {*} fontFamily Css font-family\n * @return {boolean} Font with style and weight is available\n */\n function isAvailable(fontStyle, fontWeight, fontFamily) {\n var available = true;\n for (var i = 0; i < len; ++i) {\n var referenceFont = referenceFonts[i];\n referenceWidth = measureTextWidth(fontStyle + ' ' + fontWeight + ' ' + size + referenceFont, text);\n if (fontFamily != referenceFont) {\n var width = measureTextWidth(fontStyle +\n ' ' +\n fontWeight +\n ' ' +\n size +\n fontFamily +\n ',' +\n referenceFont, text);\n // If width and referenceWidth are the same, then the fallback was used\n // instead of the font we wanted, so the font is not available.\n available = available && width != referenceWidth;\n }\n }\n if (available) {\n return true;\n }\n return false;\n }\n function check() {\n var done = true;\n var fonts = checkedFonts.getKeys();\n for (var i = 0, ii = fonts.length; i < ii; ++i) {\n var font = fonts[i];\n if (checkedFonts.get(font) < retries) {\n if (isAvailable.apply(this, font.split('\\n'))) {\n clear(textHeights);\n // Make sure that loaded fonts are picked up by Safari\n measureContext = null;\n measureFont = undefined;\n checkedFonts.set(font, retries);\n }\n else {\n checkedFonts.set(font, checkedFonts.get(font) + 1, true);\n done = false;\n }\n }\n }\n if (done) {\n clearInterval(interval);\n interval = undefined;\n }\n }\n return function (fontSpec) {\n var font = getFontParameters(fontSpec);\n if (!font) {\n return;\n }\n var families = font.families;\n for (var i = 0, ii = families.length; i < ii; ++i) {\n var family = families[i];\n var key = font.style + '\\n' + font.weight + '\\n' + family;\n if (checkedFonts.get(key) === undefined) {\n checkedFonts.set(key, retries, true);\n if (!isAvailable(font.style, font.weight, family)) {\n checkedFonts.set(key, 0, true);\n if (interval === undefined) {\n interval = setInterval(check, 32);\n }\n }\n }\n }\n };\n})();\n/**\n * @param {string} font Font to use for measuring.\n * @return {import(\"../size.js\").Size} Measurement.\n */\nexport var measureTextHeight = (function () {\n /**\n * @type {HTMLDivElement}\n */\n var measureElement;\n return function (fontSpec) {\n var height = textHeights[fontSpec];\n if (height == undefined) {\n if (WORKER_OFFSCREEN_CANVAS) {\n var font = getFontParameters(fontSpec);\n var metrics = measureText(fontSpec, 'Žg');\n var lineHeight = isNaN(Number(font.lineHeight))\n ? 1.2\n : Number(font.lineHeight);\n height =\n lineHeight *\n (metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent);\n }\n else {\n if (!measureElement) {\n measureElement = document.createElement('div');\n measureElement.innerHTML = 'M';\n measureElement.style.minHeight = '0';\n measureElement.style.maxHeight = 'none';\n measureElement.style.height = 'auto';\n measureElement.style.padding = '0';\n measureElement.style.border = 'none';\n measureElement.style.position = 'absolute';\n measureElement.style.display = 'block';\n measureElement.style.left = '-99999px';\n }\n measureElement.style.font = fontSpec;\n document.body.appendChild(measureElement);\n height = measureElement.offsetHeight;\n document.body.removeChild(measureElement);\n }\n textHeights[fontSpec] = height;\n }\n return height;\n };\n})();\n/**\n * @param {string} font Font.\n * @param {string} text Text.\n * @return {TextMetrics} Text metrics.\n */\nfunction measureText(font, text) {\n if (!measureContext) {\n measureContext = createCanvasContext2D(1, 1);\n }\n if (font != measureFont) {\n measureContext.font = font;\n measureFont = measureContext.font;\n }\n return measureContext.measureText(text);\n}\n/**\n * @param {string} font Font.\n * @param {string} text Text.\n * @return {number} Width.\n */\nexport function measureTextWidth(font, text) {\n return measureText(font, text).width;\n}\n/**\n * Measure text width using a cache.\n * @param {string} font The font.\n * @param {string} text The text to measure.\n * @param {Object} cache A lookup of cached widths by text.\n * @return {number} The text width.\n */\nexport function measureAndCacheTextWidth(font, text, cache) {\n if (text in cache) {\n return cache[text];\n }\n var width = measureTextWidth(font, text);\n cache[text] = width;\n return width;\n}\n/**\n * @param {string} font Font to use for measuring.\n * @param {Array} lines Lines to measure.\n * @param {Array} widths Array will be populated with the widths of\n * each line.\n * @return {number} Width of the whole text.\n */\nexport function measureTextWidths(font, lines, widths) {\n var numLines = lines.length;\n var width = 0;\n for (var i = 0; i < numLines; ++i) {\n var currentWidth = measureTextWidth(font, lines[i]);\n width = Math.max(width, currentWidth);\n widths.push(currentWidth);\n }\n return width;\n}\n/**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {number} rotation Rotation.\n * @param {number} offsetX X offset.\n * @param {number} offsetY Y offset.\n */\nexport function rotateAtOffset(context, rotation, offsetX, offsetY) {\n if (rotation !== 0) {\n context.translate(offsetX, offsetY);\n context.rotate(rotation);\n context.translate(-offsetX, -offsetY);\n }\n}\n/**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../transform.js\").Transform|null} transform Transform.\n * @param {number} opacity Opacity.\n * @param {Label|HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} labelOrImage Label.\n * @param {number} originX Origin X.\n * @param {number} originY Origin Y.\n * @param {number} w Width.\n * @param {number} h Height.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../size.js\").Size} scale Scale.\n */\nexport function drawImageOrLabel(context, transform, opacity, labelOrImage, originX, originY, w, h, x, y, scale) {\n context.save();\n if (opacity !== 1) {\n context.globalAlpha *= opacity;\n }\n if (transform) {\n context.setTransform.apply(context, transform);\n }\n if ( /** @type {*} */(labelOrImage).contextInstructions) {\n // label\n context.translate(x, y);\n context.scale(scale[0], scale[1]);\n executeLabelInstructions(/** @type {Label} */ (labelOrImage), context);\n }\n else if (scale[0] < 0 || scale[1] < 0) {\n // flipped image\n context.translate(x, y);\n context.scale(scale[0], scale[1]);\n context.drawImage(\n /** @type {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} */ (labelOrImage), originX, originY, w, h, 0, 0, w, h);\n }\n else {\n // if image not flipped translate and scale can be avoided\n context.drawImage(\n /** @type {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} */ (labelOrImage), originX, originY, w, h, x, y, w * scale[0], h * scale[1]);\n }\n context.restore();\n}\n/**\n * @param {Label} label Label.\n * @param {CanvasRenderingContext2D} context Context.\n */\nfunction executeLabelInstructions(label, context) {\n var contextInstructions = label.contextInstructions;\n for (var i = 0, ii = contextInstructions.length; i < ii; i += 2) {\n if (Array.isArray(contextInstructions[i + 1])) {\n context[contextInstructions[i]].apply(context, contextInstructions[i + 1]);\n }\n else {\n context[contextInstructions[i]] = contextInstructions[i + 1];\n }\n }\n}\n//# sourceMappingURL=canvas.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/renderer/Composite\n */\nimport MapRenderer from './Map.js';\nimport ObjectEventType from '../ObjectEventType.js';\nimport RenderEvent from '../render/Event.js';\nimport RenderEventType from '../render/EventType.js';\nimport SourceState from '../source/State.js';\nimport { CLASS_UNSELECTABLE } from '../css.js';\nimport { checkedFonts } from '../render/canvas.js';\nimport { inView } from '../layer/Layer.js';\nimport { listen, unlistenByKey } from '../events.js';\nimport { replaceChildren } from '../dom.js';\n/**\n * @classdesc\n * Canvas map renderer.\n * @api\n */\nvar CompositeMapRenderer = /** @class */ (function (_super) {\n __extends(CompositeMapRenderer, _super);\n /**\n * @param {import(\"../PluggableMap.js\").default} map Map.\n */\n function CompositeMapRenderer(map) {\n var _this = _super.call(this, map) || this;\n /**\n * @type {import(\"../events.js\").EventsKey}\n */\n _this.fontChangeListenerKey_ = listen(checkedFonts, ObjectEventType.PROPERTYCHANGE, map.redrawText.bind(map));\n /**\n * @private\n * @type {HTMLDivElement}\n */\n _this.element_ = document.createElement('div');\n var style = _this.element_.style;\n style.position = 'absolute';\n style.width = '100%';\n style.height = '100%';\n style.zIndex = '0';\n _this.element_.className = CLASS_UNSELECTABLE + ' ol-layers';\n var container = map.getViewport();\n container.insertBefore(_this.element_, container.firstChild || null);\n /**\n * @private\n * @type {Array}\n */\n _this.children_ = [];\n /**\n * @private\n * @type {boolean}\n */\n _this.renderedVisible_ = true;\n return _this;\n }\n /**\n * @param {import(\"../render/EventType.js\").default} type Event type.\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n */\n CompositeMapRenderer.prototype.dispatchRenderEvent = function (type, frameState) {\n var map = this.getMap();\n if (map.hasListener(type)) {\n var event_1 = new RenderEvent(type, undefined, frameState);\n map.dispatchEvent(event_1);\n }\n };\n CompositeMapRenderer.prototype.disposeInternal = function () {\n unlistenByKey(this.fontChangeListenerKey_);\n this.element_.parentNode.removeChild(this.element_);\n _super.prototype.disposeInternal.call(this);\n };\n /**\n * Render.\n * @param {?import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n */\n CompositeMapRenderer.prototype.renderFrame = function (frameState) {\n if (!frameState) {\n if (this.renderedVisible_) {\n this.element_.style.display = 'none';\n this.renderedVisible_ = false;\n }\n return;\n }\n this.calculateMatrices2D(frameState);\n this.dispatchRenderEvent(RenderEventType.PRECOMPOSE, frameState);\n var layerStatesArray = frameState.layerStatesArray.sort(function (a, b) {\n return a.zIndex - b.zIndex;\n });\n var viewState = frameState.viewState;\n this.children_.length = 0;\n /**\n * @type {Array}\n */\n var declutterLayers = [];\n var previousElement = null;\n for (var i = 0, ii = layerStatesArray.length; i < ii; ++i) {\n var layerState = layerStatesArray[i];\n frameState.layerIndex = i;\n if (!inView(layerState, viewState) ||\n (layerState.sourceState != SourceState.READY &&\n layerState.sourceState != SourceState.UNDEFINED)) {\n continue;\n }\n var layer = layerState.layer;\n var element = layer.render(frameState, previousElement);\n if (!element) {\n continue;\n }\n if (element !== previousElement) {\n this.children_.push(element);\n previousElement = element;\n }\n if ('getDeclutter' in layer) {\n declutterLayers.push(\n /** @type {import(\"../layer/BaseVector.js\").default} */ (layer));\n }\n }\n for (var i = declutterLayers.length - 1; i >= 0; --i) {\n declutterLayers[i].renderDeclutter(frameState);\n }\n replaceChildren(this.element_, this.children_);\n this.dispatchRenderEvent(RenderEventType.POSTCOMPOSE, frameState);\n if (!this.renderedVisible_) {\n this.element_.style.display = '';\n this.renderedVisible_ = true;\n }\n this.scheduleExpireIconCache(frameState);\n };\n /**\n * @param {import(\"../pixel.js\").Pixel} pixel Pixel.\n * @param {import(\"../PluggableMap.js\").FrameState} frameState FrameState.\n * @param {number} hitTolerance Hit tolerance in pixels.\n * @param {function(import(\"../layer/Layer.js\").default, (Uint8ClampedArray|Uint8Array)): T} callback Layer\n * callback.\n * @param {function(import(\"../layer/Layer.js\").default): boolean} layerFilter Layer filter\n * function, only layers which are visible and for which this function\n * returns `true` will be tested for features. By default, all visible\n * layers will be tested.\n * @return {T|undefined} Callback result.\n * @template T\n */\n CompositeMapRenderer.prototype.forEachLayerAtPixel = function (pixel, frameState, hitTolerance, callback, layerFilter) {\n var viewState = frameState.viewState;\n var layerStates = frameState.layerStatesArray;\n var numLayers = layerStates.length;\n for (var i = numLayers - 1; i >= 0; --i) {\n var layerState = layerStates[i];\n var layer = layerState.layer;\n if (layer.hasRenderer() &&\n inView(layerState, viewState) &&\n layerFilter(layer)) {\n var layerRenderer = layer.getRenderer();\n var data = layerRenderer.getDataAtPixel(pixel, frameState, hitTolerance);\n if (data) {\n var result = callback(layer, data);\n if (result) {\n return result;\n }\n }\n }\n }\n return undefined;\n };\n return CompositeMapRenderer;\n}(MapRenderer));\nexport default CompositeMapRenderer;\n//# sourceMappingURL=Composite.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/layer/Group\n */\nimport BaseLayer from './Base.js';\nimport Collection from '../Collection.js';\nimport CollectionEventType from '../CollectionEventType.js';\nimport EventType from '../events/EventType.js';\nimport ObjectEventType from '../ObjectEventType.js';\nimport SourceState from '../source/State.js';\nimport { assert } from '../asserts.js';\nimport { assign, clear } from '../obj.js';\nimport { getIntersection } from '../extent.js';\nimport { getUid } from '../util.js';\nimport { listen, unlistenByKey } from '../events.js';\n/**\n * @typedef {Object} Options\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {number} [minZoom] The minimum view zoom level (exclusive) above which this layer will be\n * visible.\n * @property {number} [maxZoom] The maximum view zoom level (inclusive) at which this layer will\n * be visible.\n * @property {Array|import(\"../Collection.js\").default} [layers] Child layers.\n * @property {Object} [properties] Arbitrary observable properties. Can be accessed with `#get()` and `#set()`.\n */\n/**\n * @enum {string}\n * @private\n */\nvar Property = {\n LAYERS: 'layers',\n};\n/**\n * @classdesc\n * A {@link module:ol/Collection~Collection} of layers that are handled together.\n *\n * A generic `change` event is triggered when the group/Collection changes.\n *\n * @api\n */\nvar LayerGroup = /** @class */ (function (_super) {\n __extends(LayerGroup, _super);\n /**\n * @param {Options} [opt_options] Layer options.\n */\n function LayerGroup(opt_options) {\n var _this = this;\n var options = opt_options || {};\n var baseOptions = /** @type {Options} */ (assign({}, options));\n delete baseOptions.layers;\n var layers = options.layers;\n _this = _super.call(this, baseOptions) || this;\n /**\n * @private\n * @type {Array}\n */\n _this.layersListenerKeys_ = [];\n /**\n * @private\n * @type {Object>}\n */\n _this.listenerKeys_ = {};\n _this.addChangeListener(Property.LAYERS, _this.handleLayersChanged_);\n if (layers) {\n if (Array.isArray(layers)) {\n layers = new Collection(layers.slice(), { unique: true });\n }\n else {\n assert(typeof ( /** @type {?} */(layers).getArray) === 'function', 43); // Expected `layers` to be an array or a `Collection`\n }\n }\n else {\n layers = new Collection(undefined, { unique: true });\n }\n _this.setLayers(layers);\n return _this;\n }\n /**\n * @private\n */\n LayerGroup.prototype.handleLayerChange_ = function () {\n this.changed();\n };\n /**\n * @private\n */\n LayerGroup.prototype.handleLayersChanged_ = function () {\n this.layersListenerKeys_.forEach(unlistenByKey);\n this.layersListenerKeys_.length = 0;\n var layers = this.getLayers();\n this.layersListenerKeys_.push(listen(layers, CollectionEventType.ADD, this.handleLayersAdd_, this), listen(layers, CollectionEventType.REMOVE, this.handleLayersRemove_, this));\n for (var id in this.listenerKeys_) {\n this.listenerKeys_[id].forEach(unlistenByKey);\n }\n clear(this.listenerKeys_);\n var layersArray = layers.getArray();\n for (var i = 0, ii = layersArray.length; i < ii; i++) {\n var layer = layersArray[i];\n this.listenerKeys_[getUid(layer)] = [\n listen(layer, ObjectEventType.PROPERTYCHANGE, this.handleLayerChange_, this),\n listen(layer, EventType.CHANGE, this.handleLayerChange_, this),\n ];\n }\n this.changed();\n };\n /**\n * @param {import(\"../Collection.js\").CollectionEvent} collectionEvent CollectionEvent.\n * @private\n */\n LayerGroup.prototype.handleLayersAdd_ = function (collectionEvent) {\n var layer = /** @type {import(\"./Base.js\").default} */ (collectionEvent.element);\n this.listenerKeys_[getUid(layer)] = [\n listen(layer, ObjectEventType.PROPERTYCHANGE, this.handleLayerChange_, this),\n listen(layer, EventType.CHANGE, this.handleLayerChange_, this),\n ];\n this.changed();\n };\n /**\n * @param {import(\"../Collection.js\").CollectionEvent} collectionEvent CollectionEvent.\n * @private\n */\n LayerGroup.prototype.handleLayersRemove_ = function (collectionEvent) {\n var layer = /** @type {import(\"./Base.js\").default} */ (collectionEvent.element);\n var key = getUid(layer);\n this.listenerKeys_[key].forEach(unlistenByKey);\n delete this.listenerKeys_[key];\n this.changed();\n };\n /**\n * Returns the {@link module:ol/Collection collection} of {@link module:ol/layer/Layer~Layer layers}\n * in this group.\n * @return {!import(\"../Collection.js\").default} Collection of\n * {@link module:ol/layer/Base layers} that are part of this group.\n * @observable\n * @api\n */\n LayerGroup.prototype.getLayers = function () {\n return /** @type {!import(\"../Collection.js\").default} */ (this.get(Property.LAYERS));\n };\n /**\n * Set the {@link module:ol/Collection collection} of {@link module:ol/layer/Layer~Layer layers}\n * in this group.\n * @param {!import(\"../Collection.js\").default} layers Collection of\n * {@link module:ol/layer/Base layers} that are part of this group.\n * @observable\n * @api\n */\n LayerGroup.prototype.setLayers = function (layers) {\n this.set(Property.LAYERS, layers);\n };\n /**\n * @param {Array} [opt_array] Array of layers (to be modified in place).\n * @return {Array} Array of layers.\n */\n LayerGroup.prototype.getLayersArray = function (opt_array) {\n var array = opt_array !== undefined ? opt_array : [];\n this.getLayers().forEach(function (layer) {\n layer.getLayersArray(array);\n });\n return array;\n };\n /**\n * Get the layer states list and use this groups z-index as the default\n * for all layers in this and nested groups, if it is unset at this point.\n * If opt_states is not provided and this group's z-index is undefined\n * 0 is used a the default z-index.\n * @param {Array} [opt_states] Optional list\n * of layer states (to be modified in place).\n * @return {Array} List of layer states.\n */\n LayerGroup.prototype.getLayerStatesArray = function (opt_states) {\n var states = opt_states !== undefined ? opt_states : [];\n var pos = states.length;\n this.getLayers().forEach(function (layer) {\n layer.getLayerStatesArray(states);\n });\n var ownLayerState = this.getLayerState();\n var defaultZIndex = ownLayerState.zIndex;\n if (!opt_states && ownLayerState.zIndex === undefined) {\n defaultZIndex = 0;\n }\n for (var i = pos, ii = states.length; i < ii; i++) {\n var layerState = states[i];\n layerState.opacity *= ownLayerState.opacity;\n layerState.visible = layerState.visible && ownLayerState.visible;\n layerState.maxResolution = Math.min(layerState.maxResolution, ownLayerState.maxResolution);\n layerState.minResolution = Math.max(layerState.minResolution, ownLayerState.minResolution);\n layerState.minZoom = Math.max(layerState.minZoom, ownLayerState.minZoom);\n layerState.maxZoom = Math.min(layerState.maxZoom, ownLayerState.maxZoom);\n if (ownLayerState.extent !== undefined) {\n if (layerState.extent !== undefined) {\n layerState.extent = getIntersection(layerState.extent, ownLayerState.extent);\n }\n else {\n layerState.extent = ownLayerState.extent;\n }\n }\n if (layerState.zIndex === undefined) {\n layerState.zIndex = defaultZIndex;\n }\n }\n return states;\n };\n /**\n * @return {import(\"../source/State.js\").default} Source state.\n */\n LayerGroup.prototype.getSourceState = function () {\n return SourceState.READY;\n };\n return LayerGroup;\n}(BaseLayer));\nexport default LayerGroup;\n//# sourceMappingURL=Group.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/MapEvent\n */\nimport Event from './events/Event.js';\n/**\n * @classdesc\n * Events emitted as map events are instances of this type.\n * See {@link module:ol/PluggableMap~PluggableMap} for which events trigger a map event.\n */\nvar MapEvent = /** @class */ (function (_super) {\n __extends(MapEvent, _super);\n /**\n * @param {string} type Event type.\n * @param {import(\"./PluggableMap.js\").default} map Map.\n * @param {?import(\"./PluggableMap.js\").FrameState} [opt_frameState] Frame state.\n */\n function MapEvent(type, map, opt_frameState) {\n var _this = _super.call(this, type) || this;\n /**\n * The map where the event occurred.\n * @type {import(\"./PluggableMap.js\").default}\n * @api\n */\n _this.map = map;\n /**\n * The frame state at the time of the event.\n * @type {?import(\"./PluggableMap.js\").FrameState}\n * @api\n */\n _this.frameState = opt_frameState !== undefined ? opt_frameState : null;\n return _this;\n }\n return MapEvent;\n}(Event));\nexport default MapEvent;\n//# sourceMappingURL=MapEvent.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/MapBrowserEvent\n */\nimport MapEvent from './MapEvent.js';\n/**\n * @classdesc\n * Events emitted as map browser events are instances of this type.\n * See {@link module:ol/PluggableMap~PluggableMap} for which events trigger a map browser event.\n * @template {UIEvent} EVENT\n */\nvar MapBrowserEvent = /** @class */ (function (_super) {\n __extends(MapBrowserEvent, _super);\n /**\n * @param {string} type Event type.\n * @param {import(\"./PluggableMap.js\").default} map Map.\n * @param {EVENT} originalEvent Original event.\n * @param {boolean} [opt_dragging] Is the map currently being dragged?\n * @param {?import(\"./PluggableMap.js\").FrameState} [opt_frameState] Frame state.\n */\n function MapBrowserEvent(type, map, originalEvent, opt_dragging, opt_frameState) {\n var _this = _super.call(this, type, map, opt_frameState) || this;\n /**\n * The original browser event.\n * @const\n * @type {EVENT}\n * @api\n */\n _this.originalEvent = originalEvent;\n /**\n * The map pixel relative to the viewport corresponding to the original browser event.\n * @type {?import(\"./pixel.js\").Pixel}\n */\n _this.pixel_ = null;\n /**\n * The coordinate in the user projection corresponding to the original browser event.\n * @type {?import(\"./coordinate.js\").Coordinate}\n */\n _this.coordinate_ = null;\n /**\n * Indicates if the map is currently being dragged. Only set for\n * `POINTERDRAG` and `POINTERMOVE` events. Default is `false`.\n *\n * @type {boolean}\n * @api\n */\n _this.dragging = opt_dragging !== undefined ? opt_dragging : false;\n return _this;\n }\n Object.defineProperty(MapBrowserEvent.prototype, \"pixel\", {\n /**\n * The map pixel relative to the viewport corresponding to the original event.\n * @type {import(\"./pixel.js\").Pixel}\n * @api\n */\n get: function () {\n if (!this.pixel_) {\n this.pixel_ = this.map.getEventPixel(this.originalEvent);\n }\n return this.pixel_;\n },\n set: function (pixel) {\n this.pixel_ = pixel;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MapBrowserEvent.prototype, \"coordinate\", {\n /**\n * The coordinate corresponding to the original browser event. This will be in the user\n * projection if one is set. Otherwise it will be in the view projection.\n * @type {import(\"./coordinate.js\").Coordinate}\n * @api\n */\n get: function () {\n if (!this.coordinate_) {\n this.coordinate_ = this.map.getCoordinateFromPixel(this.pixel);\n }\n return this.coordinate_;\n },\n set: function (coordinate) {\n this.coordinate_ = coordinate;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Prevents the default browser action.\n * See https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault.\n * @api\n */\n MapBrowserEvent.prototype.preventDefault = function () {\n _super.prototype.preventDefault.call(this);\n if ('preventDefault' in this.originalEvent) {\n /** @type {UIEvent} */ (this.originalEvent).preventDefault();\n }\n };\n /**\n * Prevents further propagation of the current event.\n * See https://developer.mozilla.org/en-US/docs/Web/API/event.stopPropagation.\n * @api\n */\n MapBrowserEvent.prototype.stopPropagation = function () {\n _super.prototype.stopPropagation.call(this);\n if ('stopPropagation' in this.originalEvent) {\n /** @type {UIEvent} */ (this.originalEvent).stopPropagation();\n }\n };\n return MapBrowserEvent;\n}(MapEvent));\nexport default MapBrowserEvent;\n//# sourceMappingURL=MapBrowserEvent.js.map","/**\n * @module ol/MapBrowserEventType\n */\nimport EventType from './events/EventType.js';\n/**\n * Constants for event names.\n * @enum {string}\n */\nexport default {\n /**\n * A true single click with no dragging and no double click. Note that this\n * event is delayed by 250 ms to ensure that it is not a double click.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#singleclick\n * @api\n */\n SINGLECLICK: 'singleclick',\n /**\n * A click with no dragging. A double click will fire two of this.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#click\n * @api\n */\n CLICK: EventType.CLICK,\n /**\n * A true double click, with no dragging.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#dblclick\n * @api\n */\n DBLCLICK: EventType.DBLCLICK,\n /**\n * Triggered when a pointer is dragged.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#pointerdrag\n * @api\n */\n POINTERDRAG: 'pointerdrag',\n /**\n * Triggered when a pointer is moved. Note that on touch devices this is\n * triggered when the map is panned, so is not the same as mousemove.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#pointermove\n * @api\n */\n POINTERMOVE: 'pointermove',\n POINTERDOWN: 'pointerdown',\n POINTERUP: 'pointerup',\n POINTEROVER: 'pointerover',\n POINTEROUT: 'pointerout',\n POINTERENTER: 'pointerenter',\n POINTERLEAVE: 'pointerleave',\n POINTERCANCEL: 'pointercancel',\n};\n/***\n * @typedef {'singleclick'|'click'|'dblclick'|'pointerdrag'|'pointermove'} Types\n */\n//# sourceMappingURL=MapBrowserEventType.js.map","/**\n * @module ol/pointer/EventType\n */\n/**\n * Constants for event names.\n * @enum {string}\n */\nexport default {\n POINTERMOVE: 'pointermove',\n POINTERDOWN: 'pointerdown',\n POINTERUP: 'pointerup',\n POINTEROVER: 'pointerover',\n POINTEROUT: 'pointerout',\n POINTERENTER: 'pointerenter',\n POINTERLEAVE: 'pointerleave',\n POINTERCANCEL: 'pointercancel',\n};\n//# sourceMappingURL=EventType.js.map","/**\n * @module ol/MapBrowserEventHandler\n */\nvar __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\nimport EventType from './events/EventType.js';\nimport MapBrowserEvent from './MapBrowserEvent.js';\nimport MapBrowserEventType from './MapBrowserEventType.js';\nimport PointerEventType from './pointer/EventType.js';\nimport Target from './events/Target.js';\nimport { PASSIVE_EVENT_LISTENERS } from './has.js';\nimport { VOID } from './functions.js';\nimport { listen, unlistenByKey } from './events.js';\nvar MapBrowserEventHandler = /** @class */ (function (_super) {\n __extends(MapBrowserEventHandler, _super);\n /**\n * @param {import(\"./PluggableMap.js\").default} map The map with the viewport to listen to events on.\n * @param {number} [moveTolerance] The minimal distance the pointer must travel to trigger a move.\n */\n function MapBrowserEventHandler(map, moveTolerance) {\n var _this = _super.call(this, map) || this;\n /**\n * This is the element that we will listen to the real events on.\n * @type {import(\"./PluggableMap.js\").default}\n * @private\n */\n _this.map_ = map;\n /**\n * @type {any}\n * @private\n */\n _this.clickTimeoutId_;\n /**\n * Emulate dblclick and singleclick. Will be true when only one pointer is active.\n * @type {boolean}\n */\n _this.emulateClicks_ = false;\n /**\n * @type {boolean}\n * @private\n */\n _this.dragging_ = false;\n /**\n * @type {!Array}\n * @private\n */\n _this.dragListenerKeys_ = [];\n /**\n * @type {number}\n * @private\n */\n _this.moveTolerance_ = moveTolerance === undefined ? 1 : moveTolerance;\n /**\n * The most recent \"down\" type event (or null if none have occurred).\n * Set on pointerdown.\n * @type {PointerEvent}\n * @private\n */\n _this.down_ = null;\n var element = _this.map_.getViewport();\n /**\n * @type {number}\n * @private\n */\n _this.activePointers_ = 0;\n /**\n * @type {!Object}\n * @private\n */\n _this.trackedTouches_ = {};\n _this.element_ = element;\n /**\n * @type {?import(\"./events.js\").EventsKey}\n * @private\n */\n _this.pointerdownListenerKey_ = listen(element, PointerEventType.POINTERDOWN, _this.handlePointerDown_, _this);\n /**\n * @type {PointerEvent}\n * @private\n */\n _this.originalPointerMoveEvent_;\n /**\n * @type {?import(\"./events.js\").EventsKey}\n * @private\n */\n _this.relayedListenerKey_ = listen(element, PointerEventType.POINTERMOVE, _this.relayEvent_, _this);\n /**\n * @private\n */\n _this.boundHandleTouchMove_ = _this.handleTouchMove_.bind(_this);\n _this.element_.addEventListener(EventType.TOUCHMOVE, _this.boundHandleTouchMove_, PASSIVE_EVENT_LISTENERS ? { passive: false } : false);\n return _this;\n }\n /**\n * @param {PointerEvent} pointerEvent Pointer\n * event.\n * @private\n */\n MapBrowserEventHandler.prototype.emulateClick_ = function (pointerEvent) {\n var newEvent = new MapBrowserEvent(MapBrowserEventType.CLICK, this.map_, pointerEvent);\n this.dispatchEvent(newEvent);\n if (this.clickTimeoutId_ !== undefined) {\n // double-click\n clearTimeout(this.clickTimeoutId_);\n this.clickTimeoutId_ = undefined;\n newEvent = new MapBrowserEvent(MapBrowserEventType.DBLCLICK, this.map_, pointerEvent);\n this.dispatchEvent(newEvent);\n }\n else {\n // click\n this.clickTimeoutId_ = setTimeout(\n /** @this {MapBrowserEventHandler} */\n function () {\n this.clickTimeoutId_ = undefined;\n var newEvent = new MapBrowserEvent(MapBrowserEventType.SINGLECLICK, this.map_, pointerEvent);\n this.dispatchEvent(newEvent);\n }.bind(this), 250);\n }\n };\n /**\n * Keeps track on how many pointers are currently active.\n *\n * @param {PointerEvent} pointerEvent Pointer\n * event.\n * @private\n */\n MapBrowserEventHandler.prototype.updateActivePointers_ = function (pointerEvent) {\n var event = pointerEvent;\n if (event.type == MapBrowserEventType.POINTERUP ||\n event.type == MapBrowserEventType.POINTERCANCEL) {\n delete this.trackedTouches_[event.pointerId];\n }\n else if (event.type == MapBrowserEventType.POINTERDOWN) {\n this.trackedTouches_[event.pointerId] = true;\n }\n this.activePointers_ = Object.keys(this.trackedTouches_).length;\n };\n /**\n * @param {PointerEvent} pointerEvent Pointer\n * event.\n * @private\n */\n MapBrowserEventHandler.prototype.handlePointerUp_ = function (pointerEvent) {\n this.updateActivePointers_(pointerEvent);\n var newEvent = new MapBrowserEvent(MapBrowserEventType.POINTERUP, this.map_, pointerEvent);\n this.dispatchEvent(newEvent);\n // We emulate click events on left mouse button click, touch contact, and pen\n // contact. isMouseActionButton returns true in these cases (evt.button is set\n // to 0).\n // See http://www.w3.org/TR/pointerevents/#button-states\n // We only fire click, singleclick, and doubleclick if nobody has called\n // event.preventDefault().\n if (this.emulateClicks_ &&\n !newEvent.defaultPrevented &&\n !this.dragging_ &&\n this.isMouseActionButton_(pointerEvent)) {\n this.emulateClick_(this.down_);\n }\n if (this.activePointers_ === 0) {\n this.dragListenerKeys_.forEach(unlistenByKey);\n this.dragListenerKeys_.length = 0;\n this.dragging_ = false;\n this.down_ = null;\n }\n };\n /**\n * @param {PointerEvent} pointerEvent Pointer\n * event.\n * @return {boolean} If the left mouse button was pressed.\n * @private\n */\n MapBrowserEventHandler.prototype.isMouseActionButton_ = function (pointerEvent) {\n return pointerEvent.button === 0;\n };\n /**\n * @param {PointerEvent} pointerEvent Pointer\n * event.\n * @private\n */\n MapBrowserEventHandler.prototype.handlePointerDown_ = function (pointerEvent) {\n this.emulateClicks_ = this.activePointers_ === 0;\n this.updateActivePointers_(pointerEvent);\n var newEvent = new MapBrowserEvent(MapBrowserEventType.POINTERDOWN, this.map_, pointerEvent);\n this.dispatchEvent(newEvent);\n // Store a copy of the down event\n this.down_ = /** @type {PointerEvent} */ ({});\n for (var property in pointerEvent) {\n var value = pointerEvent[property];\n this.down_[property] = typeof value === 'function' ? VOID : value;\n }\n if (this.dragListenerKeys_.length === 0) {\n var doc = this.map_.getOwnerDocument();\n this.dragListenerKeys_.push(listen(doc, MapBrowserEventType.POINTERMOVE, this.handlePointerMove_, this), listen(doc, MapBrowserEventType.POINTERUP, this.handlePointerUp_, this), \n /* Note that the listener for `pointercancel is set up on\n * `pointerEventHandler_` and not `documentPointerEventHandler_` like\n * the `pointerup` and `pointermove` listeners.\n *\n * The reason for this is the following: `TouchSource.vacuumTouches_()`\n * issues `pointercancel` events, when there was no `touchend` for a\n * `touchstart`. Now, let's say a first `touchstart` is registered on\n * `pointerEventHandler_`. The `documentPointerEventHandler_` is set up.\n * But `documentPointerEventHandler_` doesn't know about the first\n * `touchstart`. If there is no `touchend` for the `touchstart`, we can\n * only receive a `touchcancel` from `pointerEventHandler_`, because it is\n * only registered there.\n */\n listen(this.element_, MapBrowserEventType.POINTERCANCEL, this.handlePointerUp_, this));\n if (this.element_.getRootNode && this.element_.getRootNode() !== doc) {\n this.dragListenerKeys_.push(listen(this.element_.getRootNode(), MapBrowserEventType.POINTERUP, this.handlePointerUp_, this));\n }\n }\n };\n /**\n * @param {PointerEvent} pointerEvent Pointer\n * event.\n * @private\n */\n MapBrowserEventHandler.prototype.handlePointerMove_ = function (pointerEvent) {\n // Between pointerdown and pointerup, pointermove events are triggered.\n // To avoid a 'false' touchmove event to be dispatched, we test if the pointer\n // moved a significant distance.\n if (this.isMoving_(pointerEvent)) {\n this.dragging_ = true;\n var newEvent = new MapBrowserEvent(MapBrowserEventType.POINTERDRAG, this.map_, pointerEvent, this.dragging_);\n this.dispatchEvent(newEvent);\n }\n };\n /**\n * Wrap and relay a pointer event. Note that this requires that the type\n * string for the MapBrowserEvent matches the PointerEvent type.\n * @param {PointerEvent} pointerEvent Pointer\n * event.\n * @private\n */\n MapBrowserEventHandler.prototype.relayEvent_ = function (pointerEvent) {\n this.originalPointerMoveEvent_ = pointerEvent;\n var dragging = !!(this.down_ && this.isMoving_(pointerEvent));\n this.dispatchEvent(new MapBrowserEvent(pointerEvent.type, this.map_, pointerEvent, dragging));\n };\n /**\n * Flexible handling of a `touch-action: none` css equivalent: because calling\n * `preventDefault()` on a `pointermove` event does not stop native page scrolling\n * and zooming, we also listen for `touchmove` and call `preventDefault()` on it\n * when an interaction (currently `DragPan` handles the event.\n * @param {TouchEvent} event Event.\n * @private\n */\n MapBrowserEventHandler.prototype.handleTouchMove_ = function (event) {\n // Due to https://github.com/mpizenberg/elm-pep/issues/2, `this.originalPointerMoveEvent_`\n // may not be initialized yet when we get here on a platform without native pointer events.\n var originalEvent = this.originalPointerMoveEvent_;\n if ((!originalEvent || originalEvent.defaultPrevented) &&\n (typeof event.cancelable !== 'boolean' || event.cancelable === true)) {\n event.preventDefault();\n }\n };\n /**\n * @param {PointerEvent} pointerEvent Pointer\n * event.\n * @return {boolean} Is moving.\n * @private\n */\n MapBrowserEventHandler.prototype.isMoving_ = function (pointerEvent) {\n return (this.dragging_ ||\n Math.abs(pointerEvent.clientX - this.down_.clientX) >\n this.moveTolerance_ ||\n Math.abs(pointerEvent.clientY - this.down_.clientY) > this.moveTolerance_);\n };\n /**\n * Clean up.\n */\n MapBrowserEventHandler.prototype.disposeInternal = function () {\n if (this.relayedListenerKey_) {\n unlistenByKey(this.relayedListenerKey_);\n this.relayedListenerKey_ = null;\n }\n this.element_.removeEventListener(EventType.TOUCHMOVE, this.boundHandleTouchMove_);\n if (this.pointerdownListenerKey_) {\n unlistenByKey(this.pointerdownListenerKey_);\n this.pointerdownListenerKey_ = null;\n }\n this.dragListenerKeys_.forEach(unlistenByKey);\n this.dragListenerKeys_.length = 0;\n this.element_ = null;\n _super.prototype.disposeInternal.call(this);\n };\n return MapBrowserEventHandler;\n}(Target));\nexport default MapBrowserEventHandler;\n//# sourceMappingURL=MapBrowserEventHandler.js.map","/**\n * @module ol/MapEventType\n */\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered after a map frame is rendered.\n * @event module:ol/MapEvent~MapEvent#postrender\n * @api\n */\n POSTRENDER: 'postrender',\n /**\n * Triggered when the map starts moving.\n * @event module:ol/MapEvent~MapEvent#movestart\n * @api\n */\n MOVESTART: 'movestart',\n /**\n * Triggered after the map is moved.\n * @event module:ol/MapEvent~MapEvent#moveend\n * @api\n */\n MOVEEND: 'moveend',\n};\n/***\n * @typedef {'postrender'|'movestart'|'moveend'} Types\n */\n//# sourceMappingURL=MapEventType.js.map","/**\n * @module ol/MapProperty\n */\n/**\n * @enum {string}\n */\nexport default {\n LAYERGROUP: 'layergroup',\n SIZE: 'size',\n TARGET: 'target',\n VIEW: 'view',\n};\n//# sourceMappingURL=MapProperty.js.map","/**\n * @module ol/structs/PriorityQueue\n */\nimport { assert } from '../asserts.js';\nimport { clear } from '../obj.js';\n/**\n * @type {number}\n */\nexport var DROP = Infinity;\n/**\n * @classdesc\n * Priority queue.\n *\n * The implementation is inspired from the Closure Library's Heap class and\n * Python's heapq module.\n *\n * See https://github.com/google/closure-library/blob/master/closure/goog/structs/heap.js\n * and https://hg.python.org/cpython/file/2.7/Lib/heapq.py.\n *\n * @template T\n */\nvar PriorityQueue = /** @class */ (function () {\n /**\n * @param {function(T): number} priorityFunction Priority function.\n * @param {function(T): string} keyFunction Key function.\n */\n function PriorityQueue(priorityFunction, keyFunction) {\n /**\n * @type {function(T): number}\n * @private\n */\n this.priorityFunction_ = priorityFunction;\n /**\n * @type {function(T): string}\n * @private\n */\n this.keyFunction_ = keyFunction;\n /**\n * @type {Array}\n * @private\n */\n this.elements_ = [];\n /**\n * @type {Array}\n * @private\n */\n this.priorities_ = [];\n /**\n * @type {!Object}\n * @private\n */\n this.queuedElements_ = {};\n }\n /**\n * FIXME empty description for jsdoc\n */\n PriorityQueue.prototype.clear = function () {\n this.elements_.length = 0;\n this.priorities_.length = 0;\n clear(this.queuedElements_);\n };\n /**\n * Remove and return the highest-priority element. O(log N).\n * @return {T} Element.\n */\n PriorityQueue.prototype.dequeue = function () {\n var elements = this.elements_;\n var priorities = this.priorities_;\n var element = elements[0];\n if (elements.length == 1) {\n elements.length = 0;\n priorities.length = 0;\n }\n else {\n elements[0] = elements.pop();\n priorities[0] = priorities.pop();\n this.siftUp_(0);\n }\n var elementKey = this.keyFunction_(element);\n delete this.queuedElements_[elementKey];\n return element;\n };\n /**\n * Enqueue an element. O(log N).\n * @param {T} element Element.\n * @return {boolean} The element was added to the queue.\n */\n PriorityQueue.prototype.enqueue = function (element) {\n assert(!(this.keyFunction_(element) in this.queuedElements_), 31); // Tried to enqueue an `element` that was already added to the queue\n var priority = this.priorityFunction_(element);\n if (priority != DROP) {\n this.elements_.push(element);\n this.priorities_.push(priority);\n this.queuedElements_[this.keyFunction_(element)] = true;\n this.siftDown_(0, this.elements_.length - 1);\n return true;\n }\n return false;\n };\n /**\n * @return {number} Count.\n */\n PriorityQueue.prototype.getCount = function () {\n return this.elements_.length;\n };\n /**\n * Gets the index of the left child of the node at the given index.\n * @param {number} index The index of the node to get the left child for.\n * @return {number} The index of the left child.\n * @private\n */\n PriorityQueue.prototype.getLeftChildIndex_ = function (index) {\n return index * 2 + 1;\n };\n /**\n * Gets the index of the right child of the node at the given index.\n * @param {number} index The index of the node to get the right child for.\n * @return {number} The index of the right child.\n * @private\n */\n PriorityQueue.prototype.getRightChildIndex_ = function (index) {\n return index * 2 + 2;\n };\n /**\n * Gets the index of the parent of the node at the given index.\n * @param {number} index The index of the node to get the parent for.\n * @return {number} The index of the parent.\n * @private\n */\n PriorityQueue.prototype.getParentIndex_ = function (index) {\n return (index - 1) >> 1;\n };\n /**\n * Make this a heap. O(N).\n * @private\n */\n PriorityQueue.prototype.heapify_ = function () {\n var i;\n for (i = (this.elements_.length >> 1) - 1; i >= 0; i--) {\n this.siftUp_(i);\n }\n };\n /**\n * @return {boolean} Is empty.\n */\n PriorityQueue.prototype.isEmpty = function () {\n return this.elements_.length === 0;\n };\n /**\n * @param {string} key Key.\n * @return {boolean} Is key queued.\n */\n PriorityQueue.prototype.isKeyQueued = function (key) {\n return key in this.queuedElements_;\n };\n /**\n * @param {T} element Element.\n * @return {boolean} Is queued.\n */\n PriorityQueue.prototype.isQueued = function (element) {\n return this.isKeyQueued(this.keyFunction_(element));\n };\n /**\n * @param {number} index The index of the node to move down.\n * @private\n */\n PriorityQueue.prototype.siftUp_ = function (index) {\n var elements = this.elements_;\n var priorities = this.priorities_;\n var count = elements.length;\n var element = elements[index];\n var priority = priorities[index];\n var startIndex = index;\n while (index < count >> 1) {\n var lIndex = this.getLeftChildIndex_(index);\n var rIndex = this.getRightChildIndex_(index);\n var smallerChildIndex = rIndex < count && priorities[rIndex] < priorities[lIndex]\n ? rIndex\n : lIndex;\n elements[index] = elements[smallerChildIndex];\n priorities[index] = priorities[smallerChildIndex];\n index = smallerChildIndex;\n }\n elements[index] = element;\n priorities[index] = priority;\n this.siftDown_(startIndex, index);\n };\n /**\n * @param {number} startIndex The index of the root.\n * @param {number} index The index of the node to move up.\n * @private\n */\n PriorityQueue.prototype.siftDown_ = function (startIndex, index) {\n var elements = this.elements_;\n var priorities = this.priorities_;\n var element = elements[index];\n var priority = priorities[index];\n while (index > startIndex) {\n var parentIndex = this.getParentIndex_(index);\n if (priorities[parentIndex] > priority) {\n elements[index] = elements[parentIndex];\n priorities[index] = priorities[parentIndex];\n index = parentIndex;\n }\n else {\n break;\n }\n }\n elements[index] = element;\n priorities[index] = priority;\n };\n /**\n * FIXME empty description for jsdoc\n */\n PriorityQueue.prototype.reprioritize = function () {\n var priorityFunction = this.priorityFunction_;\n var elements = this.elements_;\n var priorities = this.priorities_;\n var index = 0;\n var n = elements.length;\n var element, i, priority;\n for (i = 0; i < n; ++i) {\n element = elements[i];\n priority = priorityFunction(element);\n if (priority == DROP) {\n delete this.queuedElements_[this.keyFunction_(element)];\n }\n else {\n priorities[index] = priority;\n elements[index++] = element;\n }\n }\n elements.length = index;\n priorities.length = index;\n this.heapify_();\n };\n return PriorityQueue;\n}());\nexport default PriorityQueue;\n//# sourceMappingURL=PriorityQueue.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/TileQueue\n */\nimport EventType from './events/EventType.js';\nimport PriorityQueue, { DROP } from './structs/PriorityQueue.js';\nimport TileState from './TileState.js';\n/**\n * @typedef {function(import(\"./Tile.js\").default, string, import(\"./coordinate.js\").Coordinate, number): number} PriorityFunction\n */\nvar TileQueue = /** @class */ (function (_super) {\n __extends(TileQueue, _super);\n /**\n * @param {PriorityFunction} tilePriorityFunction Tile priority function.\n * @param {function(): ?} tileChangeCallback Function called on each tile change event.\n */\n function TileQueue(tilePriorityFunction, tileChangeCallback) {\n var _this = _super.call(this, \n /**\n * @param {Array} element Element.\n * @return {number} Priority.\n */\n function (element) {\n return tilePriorityFunction.apply(null, element);\n }, \n /**\n * @param {Array} element Element.\n * @return {string} Key.\n */\n function (element) {\n return /** @type {import(\"./Tile.js\").default} */ (element[0]).getKey();\n }) || this;\n /** @private */\n _this.boundHandleTileChange_ = _this.handleTileChange.bind(_this);\n /**\n * @private\n * @type {function(): ?}\n */\n _this.tileChangeCallback_ = tileChangeCallback;\n /**\n * @private\n * @type {number}\n */\n _this.tilesLoading_ = 0;\n /**\n * @private\n * @type {!Object}\n */\n _this.tilesLoadingKeys_ = {};\n return _this;\n }\n /**\n * @param {Array} element Element.\n * @return {boolean} The element was added to the queue.\n */\n TileQueue.prototype.enqueue = function (element) {\n var added = _super.prototype.enqueue.call(this, element);\n if (added) {\n var tile = element[0];\n tile.addEventListener(EventType.CHANGE, this.boundHandleTileChange_);\n }\n return added;\n };\n /**\n * @return {number} Number of tiles loading.\n */\n TileQueue.prototype.getTilesLoading = function () {\n return this.tilesLoading_;\n };\n /**\n * @param {import(\"./events/Event.js\").default} event Event.\n * @protected\n */\n TileQueue.prototype.handleTileChange = function (event) {\n var tile = /** @type {import(\"./Tile.js\").default} */ (event.target);\n var state = tile.getState();\n if (state === TileState.LOADED ||\n state === TileState.ERROR ||\n state === TileState.EMPTY) {\n tile.removeEventListener(EventType.CHANGE, this.boundHandleTileChange_);\n var tileKey = tile.getKey();\n if (tileKey in this.tilesLoadingKeys_) {\n delete this.tilesLoadingKeys_[tileKey];\n --this.tilesLoading_;\n }\n this.tileChangeCallback_();\n }\n };\n /**\n * @param {number} maxTotalLoading Maximum number tiles to load simultaneously.\n * @param {number} maxNewLoads Maximum number of new tiles to load.\n */\n TileQueue.prototype.loadMoreTiles = function (maxTotalLoading, maxNewLoads) {\n var newLoads = 0;\n var state, tile, tileKey;\n while (this.tilesLoading_ < maxTotalLoading &&\n newLoads < maxNewLoads &&\n this.getCount() > 0) {\n tile = /** @type {import(\"./Tile.js\").default} */ (this.dequeue()[0]);\n tileKey = tile.getKey();\n state = tile.getState();\n if (state === TileState.IDLE && !(tileKey in this.tilesLoadingKeys_)) {\n this.tilesLoadingKeys_[tileKey] = true;\n ++this.tilesLoading_;\n ++newLoads;\n tile.load();\n }\n }\n };\n return TileQueue;\n}(PriorityQueue));\nexport default TileQueue;\n/**\n * @param {import('./PluggableMap.js').FrameState} frameState Frame state.\n * @param {import(\"./Tile.js\").default} tile Tile.\n * @param {string} tileSourceKey Tile source key.\n * @param {import(\"./coordinate.js\").Coordinate} tileCenter Tile center.\n * @param {number} tileResolution Tile resolution.\n * @return {number} Tile priority.\n */\nexport function getTilePriority(frameState, tile, tileSourceKey, tileCenter, tileResolution) {\n // Filter out tiles at higher zoom levels than the current zoom level, or that\n // are outside the visible extent.\n if (!frameState || !(tileSourceKey in frameState.wantedTiles)) {\n return DROP;\n }\n if (!frameState.wantedTiles[tileSourceKey][tile.getKey()]) {\n return DROP;\n }\n // Prioritize the highest zoom level tiles closest to the focus.\n // Tiles at higher zoom levels are prioritized using Math.log(tileResolution).\n // Within a zoom level, tiles are prioritized by the distance in pixels between\n // the center of the tile and the center of the viewport. The factor of 65536\n // means that the prioritization should behave as desired for tiles up to\n // 65536 * Math.log(2) = 45426 pixels from the focus.\n var center = frameState.viewState.center;\n var deltaX = tileCenter[0] - center[0];\n var deltaY = tileCenter[1] - center[1];\n return (65536 * Math.log(tileResolution) +\n Math.sqrt(deltaX * deltaX + deltaY * deltaY) / tileResolution);\n}\n//# sourceMappingURL=TileQueue.js.map","/**\n * @module ol/ViewHint\n */\n/**\n * @enum {number}\n */\nexport default {\n ANIMATING: 0,\n INTERACTING: 1,\n};\n//# sourceMappingURL=ViewHint.js.map","/**\n * @module ol/ViewProperty\n */\n/**\n * @enum {string}\n */\nexport default {\n CENTER: 'center',\n RESOLUTION: 'resolution',\n ROTATION: 'rotation',\n};\n//# sourceMappingURL=ViewProperty.js.map","/**\n * @module ol/tilegrid/common\n */\n/**\n * Default maximum zoom for default tile grids.\n * @type {number}\n */\nexport var DEFAULT_MAX_ZOOM = 42;\n/**\n * Default tile size.\n * @type {number}\n */\nexport var DEFAULT_TILE_SIZE = 256;\n//# sourceMappingURL=common.js.map","/**\n * @module ol/centerconstraint\n */\nimport { clamp } from './math.js';\n/**\n * @typedef {function((import(\"./coordinate.js\").Coordinate|undefined), number, import(\"./size.js\").Size, boolean=, Array=): (import(\"./coordinate.js\").Coordinate|undefined)} Type\n */\n/**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {boolean} onlyCenter If true, the constraint will only apply to the view center.\n * @param {boolean} smooth If true, the view will be able to go slightly out of the given extent\n * (only during interaction and animation).\n * @return {Type} The constraint.\n */\nexport function createExtent(extent, onlyCenter, smooth) {\n return (\n /**\n * @param {import(\"./coordinate.js\").Coordinate|undefined} center Center.\n * @param {number} resolution Resolution.\n * @param {import(\"./size.js\").Size} size Viewport size; unused if `onlyCenter` was specified.\n * @param {boolean} [opt_isMoving] True if an interaction or animation is in progress.\n * @param {Array} [opt_centerShift] Shift between map center and viewport center.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center.\n */\n function (center, resolution, size, opt_isMoving, opt_centerShift) {\n if (center) {\n var viewWidth = onlyCenter ? 0 : size[0] * resolution;\n var viewHeight = onlyCenter ? 0 : size[1] * resolution;\n var shiftX = opt_centerShift ? opt_centerShift[0] : 0;\n var shiftY = opt_centerShift ? opt_centerShift[1] : 0;\n var minX = extent[0] + viewWidth / 2 + shiftX;\n var maxX = extent[2] - viewWidth / 2 + shiftX;\n var minY = extent[1] + viewHeight / 2 + shiftY;\n var maxY = extent[3] - viewHeight / 2 + shiftY;\n // note: when zooming out of bounds, min and max values for x and y may\n // end up inverted (min > max); this has to be accounted for\n if (minX > maxX) {\n minX = (maxX + minX) / 2;\n maxX = minX;\n }\n if (minY > maxY) {\n minY = (maxY + minY) / 2;\n maxY = minY;\n }\n var x = clamp(center[0], minX, maxX);\n var y = clamp(center[1], minY, maxY);\n var ratio = 30 * resolution;\n // during an interaction, allow some overscroll\n if (opt_isMoving && smooth) {\n x +=\n -ratio * Math.log(1 + Math.max(0, minX - center[0]) / ratio) +\n ratio * Math.log(1 + Math.max(0, center[0] - maxX) / ratio);\n y +=\n -ratio * Math.log(1 + Math.max(0, minY - center[1]) / ratio) +\n ratio * Math.log(1 + Math.max(0, center[1] - maxY) / ratio);\n }\n return [x, y];\n }\n else {\n return undefined;\n }\n });\n}\n/**\n * @param {import(\"./coordinate.js\").Coordinate} [center] Center.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center.\n */\nexport function none(center) {\n return center;\n}\n//# sourceMappingURL=centerconstraint.js.map","/**\n * @module ol/resolutionconstraint\n */\nimport { clamp } from './math.js';\nimport { getHeight, getWidth } from './extent.js';\nimport { linearFindNearest } from './array.js';\n/**\n * @typedef {function((number|undefined), number, import(\"./size.js\").Size, boolean=): (number|undefined)} Type\n */\n/**\n * Returns a modified resolution taking into account the viewport size and maximum\n * allowed extent.\n * @param {number} resolution Resolution\n * @param {import(\"./extent.js\").Extent} maxExtent Maximum allowed extent.\n * @param {import(\"./size.js\").Size} viewportSize Viewport size.\n * @param {boolean} showFullExtent Whether to show the full extent.\n * @return {number} Capped resolution.\n */\nfunction getViewportClampedResolution(resolution, maxExtent, viewportSize, showFullExtent) {\n var xResolution = getWidth(maxExtent) / viewportSize[0];\n var yResolution = getHeight(maxExtent) / viewportSize[1];\n if (showFullExtent) {\n return Math.min(resolution, Math.max(xResolution, yResolution));\n }\n return Math.min(resolution, Math.min(xResolution, yResolution));\n}\n/**\n * Returns a modified resolution to be between maxResolution and minResolution while\n * still allowing the value to be slightly out of bounds.\n * Note: the computation is based on the logarithm function (ln):\n * - at 1, ln(x) is 0\n * - above 1, ln(x) keeps increasing but at a much slower pace than x\n * The final result is clamped to prevent getting too far away from bounds.\n * @param {number} resolution Resolution.\n * @param {number} maxResolution Max resolution.\n * @param {number} minResolution Min resolution.\n * @return {number} Smoothed resolution.\n */\nfunction getSmoothClampedResolution(resolution, maxResolution, minResolution) {\n var result = Math.min(resolution, maxResolution);\n var ratio = 50;\n result *=\n Math.log(1 + ratio * Math.max(0, resolution / maxResolution - 1)) / ratio +\n 1;\n if (minResolution) {\n result = Math.max(result, minResolution);\n result /=\n Math.log(1 + ratio * Math.max(0, minResolution / resolution - 1)) /\n ratio +\n 1;\n }\n return clamp(result, minResolution / 2, maxResolution * 2);\n}\n/**\n * @param {Array} resolutions Resolutions.\n * @param {boolean} [opt_smooth] If true, the view will be able to slightly exceed resolution limits. Default: true.\n * @param {import(\"./extent.js\").Extent} [opt_maxExtent] Maximum allowed extent.\n * @param {boolean} [opt_showFullExtent] If true, allows us to show the full extent. Default: false.\n * @return {Type} Zoom function.\n */\nexport function createSnapToResolutions(resolutions, opt_smooth, opt_maxExtent, opt_showFullExtent) {\n return (\n /**\n * @param {number|undefined} resolution Resolution.\n * @param {number} direction Direction.\n * @param {import(\"./size.js\").Size} size Viewport size.\n * @param {boolean} [opt_isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Resolution.\n */\n function (resolution, direction, size, opt_isMoving) {\n if (resolution !== undefined) {\n var maxResolution = resolutions[0];\n var minResolution = resolutions[resolutions.length - 1];\n var cappedMaxRes = opt_maxExtent\n ? getViewportClampedResolution(maxResolution, opt_maxExtent, size, opt_showFullExtent)\n : maxResolution;\n // during interacting or animating, allow intermediary values\n if (opt_isMoving) {\n var smooth = opt_smooth !== undefined ? opt_smooth : true;\n if (!smooth) {\n return clamp(resolution, minResolution, cappedMaxRes);\n }\n return getSmoothClampedResolution(resolution, cappedMaxRes, minResolution);\n }\n var capped = Math.min(cappedMaxRes, resolution);\n var z = Math.floor(linearFindNearest(resolutions, capped, direction));\n if (resolutions[z] > cappedMaxRes && z < resolutions.length - 1) {\n return resolutions[z + 1];\n }\n return resolutions[z];\n }\n else {\n return undefined;\n }\n });\n}\n/**\n * @param {number} power Power.\n * @param {number} maxResolution Maximum resolution.\n * @param {number} [opt_minResolution] Minimum resolution.\n * @param {boolean} [opt_smooth] If true, the view will be able to slightly exceed resolution limits. Default: true.\n * @param {import(\"./extent.js\").Extent} [opt_maxExtent] Maximum allowed extent.\n * @param {boolean} [opt_showFullExtent] If true, allows us to show the full extent. Default: false.\n * @return {Type} Zoom function.\n */\nexport function createSnapToPower(power, maxResolution, opt_minResolution, opt_smooth, opt_maxExtent, opt_showFullExtent) {\n return (\n /**\n * @param {number|undefined} resolution Resolution.\n * @param {number} direction Direction.\n * @param {import(\"./size.js\").Size} size Viewport size.\n * @param {boolean} [opt_isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Resolution.\n */\n function (resolution, direction, size, opt_isMoving) {\n if (resolution !== undefined) {\n var cappedMaxRes = opt_maxExtent\n ? getViewportClampedResolution(maxResolution, opt_maxExtent, size, opt_showFullExtent)\n : maxResolution;\n var minResolution = opt_minResolution !== undefined ? opt_minResolution : 0;\n // during interacting or animating, allow intermediary values\n if (opt_isMoving) {\n var smooth = opt_smooth !== undefined ? opt_smooth : true;\n if (!smooth) {\n return clamp(resolution, minResolution, cappedMaxRes);\n }\n return getSmoothClampedResolution(resolution, cappedMaxRes, minResolution);\n }\n var tolerance = 1e-9;\n var minZoomLevel = Math.ceil(Math.log(maxResolution / cappedMaxRes) / Math.log(power) - tolerance);\n var offset = -direction * (0.5 - tolerance) + 0.5;\n var capped = Math.min(cappedMaxRes, resolution);\n var cappedZoomLevel = Math.floor(Math.log(maxResolution / capped) / Math.log(power) + offset);\n var zoomLevel = Math.max(minZoomLevel, cappedZoomLevel);\n var newResolution = maxResolution / Math.pow(power, zoomLevel);\n return clamp(newResolution, minResolution, cappedMaxRes);\n }\n else {\n return undefined;\n }\n });\n}\n/**\n * @param {number} maxResolution Max resolution.\n * @param {number} minResolution Min resolution.\n * @param {boolean} [opt_smooth] If true, the view will be able to slightly exceed resolution limits. Default: true.\n * @param {import(\"./extent.js\").Extent} [opt_maxExtent] Maximum allowed extent.\n * @param {boolean} [opt_showFullExtent] If true, allows us to show the full extent. Default: false.\n * @return {Type} Zoom function.\n */\nexport function createMinMaxResolution(maxResolution, minResolution, opt_smooth, opt_maxExtent, opt_showFullExtent) {\n return (\n /**\n * @param {number|undefined} resolution Resolution.\n * @param {number} direction Direction.\n * @param {import(\"./size.js\").Size} size Viewport size.\n * @param {boolean} [opt_isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Resolution.\n */\n function (resolution, direction, size, opt_isMoving) {\n if (resolution !== undefined) {\n var cappedMaxRes = opt_maxExtent\n ? getViewportClampedResolution(maxResolution, opt_maxExtent, size, opt_showFullExtent)\n : maxResolution;\n var smooth = opt_smooth !== undefined ? opt_smooth : true;\n if (!smooth || !opt_isMoving) {\n return clamp(resolution, minResolution, cappedMaxRes);\n }\n return getSmoothClampedResolution(resolution, cappedMaxRes, minResolution);\n }\n else {\n return undefined;\n }\n });\n}\n//# sourceMappingURL=resolutionconstraint.js.map","/**\n * @module ol/rotationconstraint\n */\nimport { toRadians } from './math.js';\n/**\n * @typedef {function((number|undefined), boolean=): (number|undefined)} Type\n */\n/**\n * @param {number|undefined} rotation Rotation.\n * @return {number|undefined} Rotation.\n */\nexport function disable(rotation) {\n if (rotation !== undefined) {\n return 0;\n }\n else {\n return undefined;\n }\n}\n/**\n * @param {number|undefined} rotation Rotation.\n * @return {number|undefined} Rotation.\n */\nexport function none(rotation) {\n if (rotation !== undefined) {\n return rotation;\n }\n else {\n return undefined;\n }\n}\n/**\n * @param {number} n N.\n * @return {Type} Rotation constraint.\n */\nexport function createSnapToN(n) {\n var theta = (2 * Math.PI) / n;\n return (\n /**\n * @param {number|undefined} rotation Rotation.\n * @param {boolean} [opt_isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Rotation.\n */\n function (rotation, opt_isMoving) {\n if (opt_isMoving) {\n return rotation;\n }\n if (rotation !== undefined) {\n rotation = Math.floor(rotation / theta + 0.5) * theta;\n return rotation;\n }\n else {\n return undefined;\n }\n });\n}\n/**\n * @param {number} [opt_tolerance] Tolerance.\n * @return {Type} Rotation constraint.\n */\nexport function createSnapToZero(opt_tolerance) {\n var tolerance = opt_tolerance || toRadians(5);\n return (\n /**\n * @param {number|undefined} rotation Rotation.\n * @param {boolean} [opt_isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Rotation.\n */\n function (rotation, opt_isMoving) {\n if (opt_isMoving) {\n return rotation;\n }\n if (rotation !== undefined) {\n if (Math.abs(rotation) <= tolerance) {\n return 0;\n }\n else {\n return rotation;\n }\n }\n else {\n return undefined;\n }\n });\n}\n//# sourceMappingURL=rotationconstraint.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/View\n */\nimport BaseObject from './Object.js';\nimport GeometryType from './geom/GeometryType.js';\nimport Units from './proj/Units.js';\nimport ViewHint from './ViewHint.js';\nimport ViewProperty from './ViewProperty.js';\nimport { DEFAULT_TILE_SIZE } from './tilegrid/common.js';\nimport { METERS_PER_UNIT, createProjection, fromUserCoordinate, fromUserExtent, getUserProjection, toUserCoordinate, toUserExtent, } from './proj.js';\nimport { VOID } from './functions.js';\nimport { add as addCoordinate, equals as coordinatesEqual, rotate as rotateCoordinate, } from './coordinate.js';\nimport { assert } from './asserts.js';\nimport { assign } from './obj.js';\nimport { none as centerNone, createExtent } from './centerconstraint.js';\nimport { clamp, modulo } from './math.js';\nimport { createMinMaxResolution } from './resolutionconstraint.js';\nimport { createSnapToN, createSnapToZero, disable, none as rotationNone, } from './rotationconstraint.js';\nimport { createSnapToPower, createSnapToResolutions, } from './resolutionconstraint.js';\nimport { easeOut } from './easing.js';\nimport { equals } from './coordinate.js';\nimport { getCenter, getForViewAndSize, getHeight, getWidth, isEmpty, } from './extent.js';\nimport { inAndOut } from './easing.js';\nimport { linearFindNearest } from './array.js';\nimport { fromExtent as polygonFromExtent } from './geom/Polygon.js';\n/**\n * An animation configuration\n *\n * @typedef {Object} Animation\n * @property {import(\"./coordinate.js\").Coordinate} [sourceCenter] Source center.\n * @property {import(\"./coordinate.js\").Coordinate} [targetCenter] Target center.\n * @property {number} [sourceResolution] Source resolution.\n * @property {number} [targetResolution] Target resolution.\n * @property {number} [sourceRotation] Source rotation.\n * @property {number} [targetRotation] Target rotation.\n * @property {import(\"./coordinate.js\").Coordinate} [anchor] Anchor.\n * @property {number} start Start.\n * @property {number} duration Duration.\n * @property {boolean} complete Complete.\n * @property {function(number):number} easing Easing.\n * @property {function(boolean):void} callback Callback.\n */\n/**\n * @typedef {Object} Constraints\n * @property {import(\"./centerconstraint.js\").Type} center Center.\n * @property {import(\"./resolutionconstraint.js\").Type} resolution Resolution.\n * @property {import(\"./rotationconstraint.js\").Type} rotation Rotation.\n */\n/**\n * @typedef {Object} FitOptions\n * @property {import(\"./size.js\").Size} [size] The size in pixels of the box to fit\n * the extent into. Default is the current size of the first map in the DOM that\n * uses this view, or `[100, 100]` if no such map is found.\n * @property {!Array} [padding=[0, 0, 0, 0]] Padding (in pixels) to be\n * cleared inside the view. Values in the array are top, right, bottom and left\n * padding.\n * @property {boolean} [nearest=false] If the view `constrainResolution` option is `true`,\n * get the nearest extent instead of the closest that actually fits the view.\n * @property {number} [minResolution=0] Minimum resolution that we zoom to.\n * @property {number} [maxZoom] Maximum zoom level that we zoom to. If\n * `minResolution` is given, this property is ignored.\n * @property {number} [duration] The duration of the animation in milliseconds.\n * By default, there is no animation to the target extent.\n * @property {function(number):number} [easing] The easing function used during\n * the animation (defaults to {@link module:ol/easing.inAndOut}).\n * The function will be called for each frame with a number representing a\n * fraction of the animation's duration. The function should return a number\n * between 0 and 1 representing the progress toward the destination state.\n * @property {function(boolean):void} [callback] Function called when the view is in\n * its final position. The callback will be called with `true` if the animation\n * series completed on its own or `false` if it was cancelled.\n */\n/**\n * @typedef {Object} ViewOptions\n * @property {import(\"./coordinate.js\").Coordinate} [center] The initial center for\n * the view. If a user projection is not set, the coordinate system for the center is\n * specified with the `projection` option. Layer sources will not be fetched if this\n * is not set, but the center can be set later with {@link #setCenter}.\n * @property {boolean|number} [constrainRotation=true] Rotation constraint.\n * `false` means no constraint. `true` means no constraint, but snap to zero\n * near zero. A number constrains the rotation to that number of values. For\n * example, `4` will constrain the rotation to 0, 90, 180, and 270 degrees.\n * @property {boolean} [enableRotation=true] Enable rotation.\n * If `false`, a rotation constraint that always sets the rotation to zero is\n * used. The `constrainRotation` option has no effect if `enableRotation` is\n * `false`.\n * @property {import(\"./extent.js\").Extent} [extent] The extent that constrains the\n * view, in other words, nothing outside of this extent can be visible on the map.\n * @property {boolean} [constrainOnlyCenter=false] If true, the extent\n * constraint will only apply to the view center and not the whole extent.\n * @property {boolean} [smoothExtentConstraint=true] If true, the extent\n * constraint will be applied smoothly, i.e. allow the view to go slightly outside\n * of the given `extent`.\n * @property {number} [maxResolution] The maximum resolution used to determine\n * the resolution constraint. It is used together with `minResolution` (or\n * `maxZoom`) and `zoomFactor`. If unspecified it is calculated in such a way\n * that the projection's validity extent fits in a 256x256 px tile. If the\n * projection is Spherical Mercator (the default) then `maxResolution` defaults\n * to `40075016.68557849 / 256 = 156543.03392804097`.\n * @property {number} [minResolution] The minimum resolution used to determine\n * the resolution constraint. It is used together with `maxResolution` (or\n * `minZoom`) and `zoomFactor`. If unspecified it is calculated assuming 29\n * zoom levels (with a factor of 2). If the projection is Spherical Mercator\n * (the default) then `minResolution` defaults to\n * `40075016.68557849 / 256 / Math.pow(2, 28) = 0.0005831682455839253`.\n * @property {number} [maxZoom=28] The maximum zoom level used to determine the\n * resolution constraint. It is used together with `minZoom` (or\n * `maxResolution`) and `zoomFactor`. Note that if `minResolution` is also\n * provided, it is given precedence over `maxZoom`.\n * @property {number} [minZoom=0] The minimum zoom level used to determine the\n * resolution constraint. It is used together with `maxZoom` (or\n * `minResolution`) and `zoomFactor`. Note that if `maxResolution` is also\n * provided, it is given precedence over `minZoom`.\n * @property {boolean} [multiWorld=false] If `false` the view is constrained so\n * only one world is visible, and you cannot pan off the edge. If `true` the map\n * may show multiple worlds at low zoom levels. Only used if the `projection` is\n * global. Note that if `extent` is also provided it is given precedence.\n * @property {boolean} [constrainResolution=false] If true, the view will always\n * animate to the closest zoom level after an interaction; false means\n * intermediary zoom levels are allowed.\n * @property {boolean} [smoothResolutionConstraint=true] If true, the resolution\n * min/max values will be applied smoothly, i. e. allow the view to exceed slightly\n * the given resolution or zoom bounds.\n * @property {boolean} [showFullExtent=false] Allow the view to be zoomed out to\n * show the full configured extent. By default, when a view is configured with an\n * extent, users will not be able to zoom out so the viewport exceeds the extent in\n * either dimension. This means the full extent may not be visible if the viewport\n * is taller or wider than the aspect ratio of the configured extent. If\n * showFullExtent is true, the user will be able to zoom out so that the viewport\n * exceeds the height or width of the configured extent, but not both, allowing the\n * full extent to be shown.\n * @property {import(\"./proj.js\").ProjectionLike} [projection='EPSG:3857'] The\n * projection. The default is Spherical Mercator.\n * @property {number} [resolution] The initial resolution for the view. The\n * units are `projection` units per pixel (e.g. meters per pixel). An\n * alternative to setting this is to set `zoom`. Layer sources will not be\n * fetched if neither this nor `zoom` are defined, but they can be set later\n * with {@link #setZoom} or {@link #setResolution}.\n * @property {Array} [resolutions] Resolutions that determine the\n * zoom levels if specified. The index in the array corresponds to the zoom level,\n * therefore the resolution values have to be in descending order. It also constrains\n * the resolution by the minimum and maximum value. If set the `maxResolution`,\n * `minResolution`, `minZoom`, `maxZoom`, and `zoomFactor` options are ignored.\n * @property {number} [rotation=0] The initial rotation for the view in radians\n * (positive rotation clockwise, 0 means North).\n * @property {number} [zoom] Only used if `resolution` is not defined. Zoom\n * level used to calculate the initial resolution for the view.\n * @property {number} [zoomFactor=2] The zoom factor used to compute the\n * corresponding resolution.\n * @property {!Array} [padding=[0, 0, 0, 0]] Padding (in css pixels).\n * If the map viewport is partially covered with other content (overlays) along\n * its edges, this setting allows to shift the center of the viewport away from\n * that content. The order of the values is top, right, bottom, left.\n */\n/**\n * @typedef {Object} AnimationOptions\n * @property {import(\"./coordinate.js\").Coordinate} [center] The center of the view at the end of\n * the animation.\n * @property {number} [zoom] The zoom level of the view at the end of the\n * animation. This takes precedence over `resolution`.\n * @property {number} [resolution] The resolution of the view at the end\n * of the animation. If `zoom` is also provided, this option will be ignored.\n * @property {number} [rotation] The rotation of the view at the end of\n * the animation.\n * @property {import(\"./coordinate.js\").Coordinate} [anchor] Optional anchor to remain fixed\n * during a rotation or resolution animation.\n * @property {number} [duration=1000] The duration of the animation in milliseconds.\n * @property {function(number):number} [easing] The easing function used\n * during the animation (defaults to {@link module:ol/easing.inAndOut}).\n * The function will be called for each frame with a number representing a\n * fraction of the animation's duration. The function should return a number\n * between 0 and 1 representing the progress toward the destination state.\n */\n/**\n * @typedef {Object} State\n * @property {import(\"./coordinate.js\").Coordinate} center Center.\n * @property {import(\"./proj/Projection.js\").default} projection Projection.\n * @property {number} resolution Resolution.\n * @property {number} rotation Rotation.\n * @property {number} zoom Zoom.\n */\n/**\n * Default min zoom level for the map view.\n * @type {number}\n */\nvar DEFAULT_MIN_ZOOM = 0;\n/**\n * @typedef {import(\"./ObjectEventType\").Types|'change:center'|'change:resolution'|'change:rotation'} ViewObjectEventTypes\n */\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} ViewOnSignature\n */\n/**\n * @classdesc\n * A View object represents a simple 2D view of the map.\n *\n * This is the object to act upon to change the center, resolution,\n * and rotation of the map.\n *\n * A View has a `projection`. The projection determines the\n * coordinate system of the center, and its units determine the units of the\n * resolution (projection units per pixel). The default projection is\n * Spherical Mercator (EPSG:3857).\n *\n * ### The view states\n *\n * A View is determined by three states: `center`, `resolution`,\n * and `rotation`. Each state has a corresponding getter and setter, e.g.\n * `getCenter` and `setCenter` for the `center` state.\n *\n * The `zoom` state is actually not saved on the view: all computations\n * internally use the `resolution` state. Still, the `setZoom` and `getZoom`\n * methods are available, as well as `getResolutionForZoom` and\n * `getZoomForResolution` to switch from one system to the other.\n *\n * ### The constraints\n *\n * `setCenter`, `setResolution` and `setRotation` can be used to change the\n * states of the view, but any constraint defined in the constructor will\n * be applied along the way.\n *\n * A View object can have a *resolution constraint*, a *rotation constraint*\n * and a *center constraint*.\n *\n * The *resolution constraint* typically restricts min/max values and\n * snaps to specific resolutions. It is determined by the following\n * options: `resolutions`, `maxResolution`, `maxZoom` and `zoomFactor`.\n * If `resolutions` is set, the other three options are ignored. See\n * documentation for each option for more information. By default, the view\n * only has a min/max restriction and allow intermediary zoom levels when\n * pinch-zooming for example.\n *\n * The *rotation constraint* snaps to specific angles. It is determined\n * by the following options: `enableRotation` and `constrainRotation`.\n * By default rotation is allowed and its value is snapped to zero when approaching the\n * horizontal.\n *\n * The *center constraint* is determined by the `extent` option. By\n * default the view center is not constrained at all.\n *\n * ### Changing the view state\n *\n * It is important to note that `setZoom`, `setResolution`, `setCenter` and\n * `setRotation` are subject to the above mentioned constraints. As such, it\n * may sometimes not be possible to know in advance the resulting state of the\n * View. For example, calling `setResolution(10)` does not guarantee that\n * `getResolution()` will return `10`.\n *\n * A consequence of this is that, when applying a delta on the view state, one\n * should use `adjustCenter`, `adjustRotation`, `adjustZoom` and `adjustResolution`\n * rather than the corresponding setters. This will let view do its internal\n * computations. Besides, the `adjust*` methods also take an `opt_anchor`\n * argument which allows specifying an origin for the transformation.\n *\n * ### Interacting with the view\n *\n * View constraints are usually only applied when the view is *at rest*, meaning that\n * no interaction or animation is ongoing. As such, if the user puts the view in a\n * state that is not equivalent to a constrained one (e.g. rotating the view when\n * the snap angle is 0), an animation will be triggered at the interaction end to\n * put back the view to a stable state;\n *\n * @api\n */\nvar View = /** @class */ (function (_super) {\n __extends(View, _super);\n /**\n * @param {ViewOptions} [opt_options] View options.\n */\n function View(opt_options) {\n var _this = _super.call(this) || this;\n /***\n * @type {ViewOnSignature}\n */\n _this.on;\n /***\n * @type {ViewOnSignature}\n */\n _this.once;\n /***\n * @type {ViewOnSignature}\n */\n _this.un;\n var options = assign({}, opt_options);\n /**\n * @private\n * @type {Array}\n */\n _this.hints_ = [0, 0];\n /**\n * @private\n * @type {Array>}\n */\n _this.animations_ = [];\n /**\n * @private\n * @type {number|undefined}\n */\n _this.updateAnimationKey_;\n /**\n * @private\n * @const\n * @type {import(\"./proj/Projection.js\").default}\n */\n _this.projection_ = createProjection(options.projection, 'EPSG:3857');\n /**\n * @private\n * @type {import(\"./size.js\").Size}\n */\n _this.viewportSize_ = [100, 100];\n /**\n * @private\n * @type {import(\"./coordinate.js\").Coordinate|undefined}\n */\n _this.targetCenter_ = null;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.targetResolution_;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.targetRotation_;\n /**\n * @private\n * @type {import(\"./coordinate.js\").Coordinate|undefined}\n */\n _this.cancelAnchor_ = undefined;\n if (options.center) {\n options.center = fromUserCoordinate(options.center, _this.projection_);\n }\n if (options.extent) {\n options.extent = fromUserExtent(options.extent, _this.projection_);\n }\n _this.applyOptions_(options);\n return _this;\n }\n /**\n * Set up the view with the given options.\n * @param {ViewOptions} options View options.\n */\n View.prototype.applyOptions_ = function (options) {\n /**\n * @type {Object}\n */\n var properties = {};\n var resolutionConstraintInfo = createResolutionConstraint(options);\n /**\n * @private\n * @type {number}\n */\n this.maxResolution_ = resolutionConstraintInfo.maxResolution;\n /**\n * @private\n * @type {number}\n */\n this.minResolution_ = resolutionConstraintInfo.minResolution;\n /**\n * @private\n * @type {number}\n */\n this.zoomFactor_ = resolutionConstraintInfo.zoomFactor;\n /**\n * @private\n * @type {Array|undefined}\n */\n this.resolutions_ = options.resolutions;\n /**\n * @type {Array|undefined}\n * @private\n */\n this.padding_ = options.padding;\n /**\n * @private\n * @type {number}\n */\n this.minZoom_ = resolutionConstraintInfo.minZoom;\n var centerConstraint = createCenterConstraint(options);\n var resolutionConstraint = resolutionConstraintInfo.constraint;\n var rotationConstraint = createRotationConstraint(options);\n /**\n * @private\n * @type {Constraints}\n */\n this.constraints_ = {\n center: centerConstraint,\n resolution: resolutionConstraint,\n rotation: rotationConstraint,\n };\n this.setRotation(options.rotation !== undefined ? options.rotation : 0);\n this.setCenterInternal(options.center !== undefined ? options.center : null);\n if (options.resolution !== undefined) {\n this.setResolution(options.resolution);\n }\n else if (options.zoom !== undefined) {\n this.setZoom(options.zoom);\n }\n this.setProperties(properties);\n /**\n * @private\n * @type {ViewOptions}\n */\n this.options_ = options;\n };\n Object.defineProperty(View.prototype, \"padding\", {\n /**\n * Padding (in css pixels).\n * If the map viewport is partially covered with other content (overlays) along\n * its edges, this setting allows to shift the center of the viewport away from that\n * content. The order of the values in the array is top, right, bottom, left.\n * The default is no padding, which is equivalent to `[0, 0, 0, 0]`.\n * @type {Array|undefined}\n * @api\n */\n get: function () {\n return this.padding_;\n },\n set: function (padding) {\n var oldPadding = this.padding_;\n this.padding_ = padding;\n var center = this.getCenter();\n if (center) {\n var newPadding = padding || [0, 0, 0, 0];\n oldPadding = oldPadding || [0, 0, 0, 0];\n var resolution = this.getResolution();\n var offsetX = (resolution / 2) *\n (newPadding[3] - oldPadding[3] + oldPadding[1] - newPadding[1]);\n var offsetY = (resolution / 2) *\n (newPadding[0] - oldPadding[0] + oldPadding[2] - newPadding[2]);\n this.setCenterInternal([center[0] + offsetX, center[1] - offsetY]);\n }\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Get an updated version of the view options used to construct the view. The\n * current resolution (or zoom), center, and rotation are applied to any stored\n * options. The provided options can be used to apply new min/max zoom or\n * resolution limits.\n * @param {ViewOptions} newOptions New options to be applied.\n * @return {ViewOptions} New options updated with the current view state.\n */\n View.prototype.getUpdatedOptions_ = function (newOptions) {\n var options = assign({}, this.options_);\n // preserve resolution (or zoom)\n if (options.resolution !== undefined) {\n options.resolution = this.getResolution();\n }\n else {\n options.zoom = this.getZoom();\n }\n // preserve center\n options.center = this.getCenterInternal();\n // preserve rotation\n options.rotation = this.getRotation();\n return assign({}, options, newOptions);\n };\n /**\n * Animate the view. The view's center, zoom (or resolution), and rotation\n * can be animated for smooth transitions between view states. For example,\n * to animate the view to a new zoom level:\n *\n * view.animate({zoom: view.getZoom() + 1});\n *\n * By default, the animation lasts one second and uses in-and-out easing. You\n * can customize this behavior by including `duration` (in milliseconds) and\n * `easing` options (see {@link module:ol/easing}).\n *\n * To chain together multiple animations, call the method with multiple\n * animation objects. For example, to first zoom and then pan:\n *\n * view.animate({zoom: 10}, {center: [0, 0]});\n *\n * If you provide a function as the last argument to the animate method, it\n * will get called at the end of an animation series. The callback will be\n * called with `true` if the animation series completed on its own or `false`\n * if it was cancelled.\n *\n * Animations are cancelled by user interactions (e.g. dragging the map) or by\n * calling `view.setCenter()`, `view.setResolution()`, or `view.setRotation()`\n * (or another method that calls one of these).\n *\n * @param {...(AnimationOptions|function(boolean): void)} var_args Animation\n * options. Multiple animations can be run in series by passing multiple\n * options objects. To run multiple animations in parallel, call the method\n * multiple times. An optional callback can be provided as a final\n * argument. The callback will be called with a boolean indicating whether\n * the animation completed without being cancelled.\n * @api\n */\n View.prototype.animate = function (var_args) {\n if (this.isDef() && !this.getAnimating()) {\n this.resolveConstraints(0);\n }\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; ++i) {\n var options = arguments[i];\n if (options.center) {\n options = assign({}, options);\n options.center = fromUserCoordinate(options.center, this.getProjection());\n }\n if (options.anchor) {\n options = assign({}, options);\n options.anchor = fromUserCoordinate(options.anchor, this.getProjection());\n }\n args[i] = options;\n }\n this.animateInternal.apply(this, args);\n };\n /**\n * @param {...(AnimationOptions|function(boolean): void)} var_args Animation options.\n */\n View.prototype.animateInternal = function (var_args) {\n var animationCount = arguments.length;\n var callback;\n if (animationCount > 1 &&\n typeof arguments[animationCount - 1] === 'function') {\n callback = arguments[animationCount - 1];\n --animationCount;\n }\n if (!this.isDef()) {\n // if view properties are not yet set, shortcut to the final state\n var state = arguments[animationCount - 1];\n if (state.center) {\n this.setCenterInternal(state.center);\n }\n if (state.zoom !== undefined) {\n this.setZoom(state.zoom);\n }\n if (state.rotation !== undefined) {\n this.setRotation(state.rotation);\n }\n if (callback) {\n animationCallback(callback, true);\n }\n return;\n }\n var start = Date.now();\n var center = this.targetCenter_.slice();\n var resolution = this.targetResolution_;\n var rotation = this.targetRotation_;\n var series = [];\n for (var i = 0; i < animationCount; ++i) {\n var options = /** @type {AnimationOptions} */ (arguments[i]);\n var animation = {\n start: start,\n complete: false,\n anchor: options.anchor,\n duration: options.duration !== undefined ? options.duration : 1000,\n easing: options.easing || inAndOut,\n callback: callback,\n };\n if (options.center) {\n animation.sourceCenter = center;\n animation.targetCenter = options.center.slice();\n center = animation.targetCenter;\n }\n if (options.zoom !== undefined) {\n animation.sourceResolution = resolution;\n animation.targetResolution = this.getResolutionForZoom(options.zoom);\n resolution = animation.targetResolution;\n }\n else if (options.resolution) {\n animation.sourceResolution = resolution;\n animation.targetResolution = options.resolution;\n resolution = animation.targetResolution;\n }\n if (options.rotation !== undefined) {\n animation.sourceRotation = rotation;\n var delta = modulo(options.rotation - rotation + Math.PI, 2 * Math.PI) - Math.PI;\n animation.targetRotation = rotation + delta;\n rotation = animation.targetRotation;\n }\n // check if animation is a no-op\n if (isNoopAnimation(animation)) {\n animation.complete = true;\n // we still push it onto the series for callback handling\n }\n else {\n start += animation.duration;\n }\n series.push(animation);\n }\n this.animations_.push(series);\n this.setHint(ViewHint.ANIMATING, 1);\n this.updateAnimations_();\n };\n /**\n * Determine if the view is being animated.\n * @return {boolean} The view is being animated.\n * @api\n */\n View.prototype.getAnimating = function () {\n return this.hints_[ViewHint.ANIMATING] > 0;\n };\n /**\n * Determine if the user is interacting with the view, such as panning or zooming.\n * @return {boolean} The view is being interacted with.\n * @api\n */\n View.prototype.getInteracting = function () {\n return this.hints_[ViewHint.INTERACTING] > 0;\n };\n /**\n * Cancel any ongoing animations.\n * @api\n */\n View.prototype.cancelAnimations = function () {\n this.setHint(ViewHint.ANIMATING, -this.hints_[ViewHint.ANIMATING]);\n var anchor;\n for (var i = 0, ii = this.animations_.length; i < ii; ++i) {\n var series = this.animations_[i];\n if (series[0].callback) {\n animationCallback(series[0].callback, false);\n }\n if (!anchor) {\n for (var j = 0, jj = series.length; j < jj; ++j) {\n var animation = series[j];\n if (!animation.complete) {\n anchor = animation.anchor;\n break;\n }\n }\n }\n }\n this.animations_.length = 0;\n this.cancelAnchor_ = anchor;\n };\n /**\n * Update all animations.\n */\n View.prototype.updateAnimations_ = function () {\n if (this.updateAnimationKey_ !== undefined) {\n cancelAnimationFrame(this.updateAnimationKey_);\n this.updateAnimationKey_ = undefined;\n }\n if (!this.getAnimating()) {\n return;\n }\n var now = Date.now();\n var more = false;\n for (var i = this.animations_.length - 1; i >= 0; --i) {\n var series = this.animations_[i];\n var seriesComplete = true;\n for (var j = 0, jj = series.length; j < jj; ++j) {\n var animation = series[j];\n if (animation.complete) {\n continue;\n }\n var elapsed = now - animation.start;\n var fraction = animation.duration > 0 ? elapsed / animation.duration : 1;\n if (fraction >= 1) {\n animation.complete = true;\n fraction = 1;\n }\n else {\n seriesComplete = false;\n }\n var progress = animation.easing(fraction);\n if (animation.sourceCenter) {\n var x0 = animation.sourceCenter[0];\n var y0 = animation.sourceCenter[1];\n var x1 = animation.targetCenter[0];\n var y1 = animation.targetCenter[1];\n var x = x0 + progress * (x1 - x0);\n var y = y0 + progress * (y1 - y0);\n this.targetCenter_ = [x, y];\n }\n if (animation.sourceResolution && animation.targetResolution) {\n var resolution = progress === 1\n ? animation.targetResolution\n : animation.sourceResolution +\n progress *\n (animation.targetResolution - animation.sourceResolution);\n if (animation.anchor) {\n var size = this.getViewportSize_(this.getRotation());\n var constrainedResolution = this.constraints_.resolution(resolution, 0, size, true);\n this.targetCenter_ = this.calculateCenterZoom(constrainedResolution, animation.anchor);\n }\n this.targetResolution_ = resolution;\n this.applyTargetState_(true);\n }\n if (animation.sourceRotation !== undefined &&\n animation.targetRotation !== undefined) {\n var rotation = progress === 1\n ? modulo(animation.targetRotation + Math.PI, 2 * Math.PI) -\n Math.PI\n : animation.sourceRotation +\n progress *\n (animation.targetRotation - animation.sourceRotation);\n if (animation.anchor) {\n var constrainedRotation = this.constraints_.rotation(rotation, true);\n this.targetCenter_ = this.calculateCenterRotate(constrainedRotation, animation.anchor);\n }\n this.targetRotation_ = rotation;\n }\n this.applyTargetState_(true);\n more = true;\n if (!animation.complete) {\n break;\n }\n }\n if (seriesComplete) {\n this.animations_[i] = null;\n this.setHint(ViewHint.ANIMATING, -1);\n var callback = series[0].callback;\n if (callback) {\n animationCallback(callback, true);\n }\n }\n }\n // prune completed series\n this.animations_ = this.animations_.filter(Boolean);\n if (more && this.updateAnimationKey_ === undefined) {\n this.updateAnimationKey_ = requestAnimationFrame(this.updateAnimations_.bind(this));\n }\n };\n /**\n * @param {number} rotation Target rotation.\n * @param {import(\"./coordinate.js\").Coordinate} anchor Rotation anchor.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center for rotation and anchor.\n */\n View.prototype.calculateCenterRotate = function (rotation, anchor) {\n var center;\n var currentCenter = this.getCenterInternal();\n if (currentCenter !== undefined) {\n center = [currentCenter[0] - anchor[0], currentCenter[1] - anchor[1]];\n rotateCoordinate(center, rotation - this.getRotation());\n addCoordinate(center, anchor);\n }\n return center;\n };\n /**\n * @param {number} resolution Target resolution.\n * @param {import(\"./coordinate.js\").Coordinate} anchor Zoom anchor.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center for resolution and anchor.\n */\n View.prototype.calculateCenterZoom = function (resolution, anchor) {\n var center;\n var currentCenter = this.getCenterInternal();\n var currentResolution = this.getResolution();\n if (currentCenter !== undefined && currentResolution !== undefined) {\n var x = anchor[0] -\n (resolution * (anchor[0] - currentCenter[0])) / currentResolution;\n var y = anchor[1] -\n (resolution * (anchor[1] - currentCenter[1])) / currentResolution;\n center = [x, y];\n }\n return center;\n };\n /**\n * Returns the current viewport size.\n * @private\n * @param {number} [opt_rotation] Take into account the rotation of the viewport when giving the size\n * @return {import(\"./size.js\").Size} Viewport size or `[100, 100]` when no viewport is found.\n */\n View.prototype.getViewportSize_ = function (opt_rotation) {\n var size = this.viewportSize_;\n if (opt_rotation) {\n var w = size[0];\n var h = size[1];\n return [\n Math.abs(w * Math.cos(opt_rotation)) +\n Math.abs(h * Math.sin(opt_rotation)),\n Math.abs(w * Math.sin(opt_rotation)) +\n Math.abs(h * Math.cos(opt_rotation)),\n ];\n }\n else {\n return size;\n }\n };\n /**\n * Stores the viewport size on the view. The viewport size is not read every time from the DOM\n * to avoid performance hit and layout reflow.\n * This should be done on map size change.\n * Note: the constraints are not resolved during an animation to avoid stopping it\n * @param {import(\"./size.js\").Size} [opt_size] Viewport size; if undefined, [100, 100] is assumed\n */\n View.prototype.setViewportSize = function (opt_size) {\n this.viewportSize_ = Array.isArray(opt_size)\n ? opt_size.slice()\n : [100, 100];\n if (!this.getAnimating()) {\n this.resolveConstraints(0);\n }\n };\n /**\n * Get the view center.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} The center of the view.\n * @observable\n * @api\n */\n View.prototype.getCenter = function () {\n var center = this.getCenterInternal();\n if (!center) {\n return center;\n }\n return toUserCoordinate(center, this.getProjection());\n };\n /**\n * Get the view center without transforming to user projection.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} The center of the view.\n */\n View.prototype.getCenterInternal = function () {\n return /** @type {import(\"./coordinate.js\").Coordinate|undefined} */ (this.get(ViewProperty.CENTER));\n };\n /**\n * @return {Constraints} Constraints.\n */\n View.prototype.getConstraints = function () {\n return this.constraints_;\n };\n /**\n * @return {boolean} Resolution constraint is set\n */\n View.prototype.getConstrainResolution = function () {\n return this.options_.constrainResolution;\n };\n /**\n * @param {Array} [opt_hints] Destination array.\n * @return {Array} Hint.\n */\n View.prototype.getHints = function (opt_hints) {\n if (opt_hints !== undefined) {\n opt_hints[0] = this.hints_[0];\n opt_hints[1] = this.hints_[1];\n return opt_hints;\n }\n else {\n return this.hints_.slice();\n }\n };\n /**\n * Calculate the extent for the current view state and the passed size.\n * The size is the pixel dimensions of the box into which the calculated extent\n * should fit. In most cases you want to get the extent of the entire map,\n * that is `map.getSize()`.\n * @param {import(\"./size.js\").Size} [opt_size] Box pixel size. If not provided, the size\n * of the map that uses this view will be used.\n * @return {import(\"./extent.js\").Extent} Extent.\n * @api\n */\n View.prototype.calculateExtent = function (opt_size) {\n var extent = this.calculateExtentInternal(opt_size);\n return toUserExtent(extent, this.getProjection());\n };\n /**\n * @param {import(\"./size.js\").Size} [opt_size] Box pixel size. If not provided,\n * the map's last known viewport size will be used.\n * @return {import(\"./extent.js\").Extent} Extent.\n */\n View.prototype.calculateExtentInternal = function (opt_size) {\n var size = opt_size || this.getViewportSizeMinusPadding_();\n var center = /** @type {!import(\"./coordinate.js\").Coordinate} */ (this.getCenterInternal());\n assert(center, 1); // The view center is not defined\n var resolution = /** @type {!number} */ (this.getResolution());\n assert(resolution !== undefined, 2); // The view resolution is not defined\n var rotation = /** @type {!number} */ (this.getRotation());\n assert(rotation !== undefined, 3); // The view rotation is not defined\n return getForViewAndSize(center, resolution, rotation, size);\n };\n /**\n * Get the maximum resolution of the view.\n * @return {number} The maximum resolution of the view.\n * @api\n */\n View.prototype.getMaxResolution = function () {\n return this.maxResolution_;\n };\n /**\n * Get the minimum resolution of the view.\n * @return {number} The minimum resolution of the view.\n * @api\n */\n View.prototype.getMinResolution = function () {\n return this.minResolution_;\n };\n /**\n * Get the maximum zoom level for the view.\n * @return {number} The maximum zoom level.\n * @api\n */\n View.prototype.getMaxZoom = function () {\n return /** @type {number} */ (this.getZoomForResolution(this.minResolution_));\n };\n /**\n * Set a new maximum zoom level for the view.\n * @param {number} zoom The maximum zoom level.\n * @api\n */\n View.prototype.setMaxZoom = function (zoom) {\n this.applyOptions_(this.getUpdatedOptions_({ maxZoom: zoom }));\n };\n /**\n * Get the minimum zoom level for the view.\n * @return {number} The minimum zoom level.\n * @api\n */\n View.prototype.getMinZoom = function () {\n return /** @type {number} */ (this.getZoomForResolution(this.maxResolution_));\n };\n /**\n * Set a new minimum zoom level for the view.\n * @param {number} zoom The minimum zoom level.\n * @api\n */\n View.prototype.setMinZoom = function (zoom) {\n this.applyOptions_(this.getUpdatedOptions_({ minZoom: zoom }));\n };\n /**\n * Set whether the view should allow intermediary zoom levels.\n * @param {boolean} enabled Whether the resolution is constrained.\n * @api\n */\n View.prototype.setConstrainResolution = function (enabled) {\n this.applyOptions_(this.getUpdatedOptions_({ constrainResolution: enabled }));\n };\n /**\n * Get the view projection.\n * @return {import(\"./proj/Projection.js\").default} The projection of the view.\n * @api\n */\n View.prototype.getProjection = function () {\n return this.projection_;\n };\n /**\n * Get the view resolution.\n * @return {number|undefined} The resolution of the view.\n * @observable\n * @api\n */\n View.prototype.getResolution = function () {\n return /** @type {number|undefined} */ (this.get(ViewProperty.RESOLUTION));\n };\n /**\n * Get the resolutions for the view. This returns the array of resolutions\n * passed to the constructor of the View, or undefined if none were given.\n * @return {Array|undefined} The resolutions of the view.\n * @api\n */\n View.prototype.getResolutions = function () {\n return this.resolutions_;\n };\n /**\n * Get the resolution for a provided extent (in map units) and size (in pixels).\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {import(\"./size.js\").Size} [opt_size] Box pixel size.\n * @return {number} The resolution at which the provided extent will render at\n * the given size.\n * @api\n */\n View.prototype.getResolutionForExtent = function (extent, opt_size) {\n return this.getResolutionForExtentInternal(fromUserExtent(extent, this.getProjection()), opt_size);\n };\n /**\n * Get the resolution for a provided extent (in map units) and size (in pixels).\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {import(\"./size.js\").Size} [opt_size] Box pixel size.\n * @return {number} The resolution at which the provided extent will render at\n * the given size.\n */\n View.prototype.getResolutionForExtentInternal = function (extent, opt_size) {\n var size = opt_size || this.getViewportSizeMinusPadding_();\n var xResolution = getWidth(extent) / size[0];\n var yResolution = getHeight(extent) / size[1];\n return Math.max(xResolution, yResolution);\n };\n /**\n * Return a function that returns a value between 0 and 1 for a\n * resolution. Exponential scaling is assumed.\n * @param {number} [opt_power] Power.\n * @return {function(number): number} Resolution for value function.\n */\n View.prototype.getResolutionForValueFunction = function (opt_power) {\n var power = opt_power || 2;\n var maxResolution = this.getConstrainedResolution(this.maxResolution_);\n var minResolution = this.minResolution_;\n var max = Math.log(maxResolution / minResolution) / Math.log(power);\n return (\n /**\n * @param {number} value Value.\n * @return {number} Resolution.\n */\n function (value) {\n var resolution = maxResolution / Math.pow(power, value * max);\n return resolution;\n });\n };\n /**\n * Get the view rotation.\n * @return {number} The rotation of the view in radians.\n * @observable\n * @api\n */\n View.prototype.getRotation = function () {\n return /** @type {number} */ (this.get(ViewProperty.ROTATION));\n };\n /**\n * Return a function that returns a resolution for a value between\n * 0 and 1. Exponential scaling is assumed.\n * @param {number} [opt_power] Power.\n * @return {function(number): number} Value for resolution function.\n */\n View.prototype.getValueForResolutionFunction = function (opt_power) {\n var logPower = Math.log(opt_power || 2);\n var maxResolution = this.getConstrainedResolution(this.maxResolution_);\n var minResolution = this.minResolution_;\n var max = Math.log(maxResolution / minResolution) / logPower;\n return (\n /**\n * @param {number} resolution Resolution.\n * @return {number} Value.\n */\n function (resolution) {\n var value = Math.log(maxResolution / resolution) / logPower / max;\n return value;\n });\n };\n /**\n * Returns the size of the viewport minus padding.\n * @private\n * @param {number} [opt_rotation] Take into account the rotation of the viewport when giving the size\n * @return {import(\"./size.js\").Size} Viewport size reduced by the padding.\n */\n View.prototype.getViewportSizeMinusPadding_ = function (opt_rotation) {\n var size = this.getViewportSize_(opt_rotation);\n var padding = this.padding_;\n if (padding) {\n size = [\n size[0] - padding[1] - padding[3],\n size[1] - padding[0] - padding[2],\n ];\n }\n return size;\n };\n /**\n * @return {State} View state.\n */\n View.prototype.getState = function () {\n var projection = this.getProjection();\n var resolution = /** @type {number} */ (this.getResolution());\n var rotation = this.getRotation();\n var center = /** @type {import(\"./coordinate.js\").Coordinate} */ (this.getCenterInternal());\n var padding = this.padding_;\n if (padding) {\n var reducedSize = this.getViewportSizeMinusPadding_();\n center = calculateCenterOn(center, this.getViewportSize_(), [reducedSize[0] / 2 + padding[3], reducedSize[1] / 2 + padding[0]], resolution, rotation);\n }\n return {\n center: center.slice(0),\n projection: projection !== undefined ? projection : null,\n resolution: resolution,\n rotation: rotation,\n zoom: this.getZoom(),\n };\n };\n /**\n * Get the current zoom level. This method may return non-integer zoom levels\n * if the view does not constrain the resolution, or if an interaction or\n * animation is underway.\n * @return {number|undefined} Zoom.\n * @api\n */\n View.prototype.getZoom = function () {\n var zoom;\n var resolution = this.getResolution();\n if (resolution !== undefined) {\n zoom = this.getZoomForResolution(resolution);\n }\n return zoom;\n };\n /**\n * Get the zoom level for a resolution.\n * @param {number} resolution The resolution.\n * @return {number|undefined} The zoom level for the provided resolution.\n * @api\n */\n View.prototype.getZoomForResolution = function (resolution) {\n var offset = this.minZoom_ || 0;\n var max, zoomFactor;\n if (this.resolutions_) {\n var nearest = linearFindNearest(this.resolutions_, resolution, 1);\n offset = nearest;\n max = this.resolutions_[nearest];\n if (nearest == this.resolutions_.length - 1) {\n zoomFactor = 2;\n }\n else {\n zoomFactor = max / this.resolutions_[nearest + 1];\n }\n }\n else {\n max = this.maxResolution_;\n zoomFactor = this.zoomFactor_;\n }\n return offset + Math.log(max / resolution) / Math.log(zoomFactor);\n };\n /**\n * Get the resolution for a zoom level.\n * @param {number} zoom Zoom level.\n * @return {number} The view resolution for the provided zoom level.\n * @api\n */\n View.prototype.getResolutionForZoom = function (zoom) {\n if (this.resolutions_) {\n if (this.resolutions_.length <= 1) {\n return 0;\n }\n var baseLevel = clamp(Math.floor(zoom), 0, this.resolutions_.length - 2);\n var zoomFactor = this.resolutions_[baseLevel] / this.resolutions_[baseLevel + 1];\n return (this.resolutions_[baseLevel] /\n Math.pow(zoomFactor, clamp(zoom - baseLevel, 0, 1)));\n }\n else {\n return (this.maxResolution_ / Math.pow(this.zoomFactor_, zoom - this.minZoom_));\n }\n };\n /**\n * Fit the given geometry or extent based on the given map size and border.\n * The size is pixel dimensions of the box to fit the extent into.\n * In most cases you will want to use the map size, that is `map.getSize()`.\n * Takes care of the map angle.\n * @param {import(\"./geom/SimpleGeometry.js\").default|import(\"./extent.js\").Extent} geometryOrExtent The geometry or\n * extent to fit the view to.\n * @param {FitOptions} [opt_options] Options.\n * @api\n */\n View.prototype.fit = function (geometryOrExtent, opt_options) {\n /** @type {import(\"./geom/SimpleGeometry.js\").default} */\n var geometry;\n assert(Array.isArray(geometryOrExtent) ||\n typeof ( /** @type {?} */(geometryOrExtent).getSimplifiedGeometry) ===\n 'function', 24); // Invalid extent or geometry provided as `geometry`\n if (Array.isArray(geometryOrExtent)) {\n assert(!isEmpty(geometryOrExtent), 25); // Cannot fit empty extent provided as `geometry`\n var extent = fromUserExtent(geometryOrExtent, this.getProjection());\n geometry = polygonFromExtent(extent);\n }\n else if (geometryOrExtent.getType() === GeometryType.CIRCLE) {\n var extent = fromUserExtent(geometryOrExtent.getExtent(), this.getProjection());\n geometry = polygonFromExtent(extent);\n geometry.rotate(this.getRotation(), getCenter(extent));\n }\n else {\n var userProjection = getUserProjection();\n if (userProjection) {\n geometry = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (geometryOrExtent\n .clone()\n .transform(userProjection, this.getProjection()));\n }\n else {\n geometry = geometryOrExtent;\n }\n }\n this.fitInternal(geometry, opt_options);\n };\n /**\n * Calculate rotated extent\n * @param {import(\"./geom/SimpleGeometry.js\").default} geometry The geometry.\n * @return {import(\"./extent\").Extent} The rotated extent for the geometry.\n */\n View.prototype.rotatedExtentForGeometry = function (geometry) {\n var rotation = this.getRotation();\n var cosAngle = Math.cos(rotation);\n var sinAngle = Math.sin(-rotation);\n var coords = geometry.getFlatCoordinates();\n var stride = geometry.getStride();\n var minRotX = +Infinity;\n var minRotY = +Infinity;\n var maxRotX = -Infinity;\n var maxRotY = -Infinity;\n for (var i = 0, ii = coords.length; i < ii; i += stride) {\n var rotX = coords[i] * cosAngle - coords[i + 1] * sinAngle;\n var rotY = coords[i] * sinAngle + coords[i + 1] * cosAngle;\n minRotX = Math.min(minRotX, rotX);\n minRotY = Math.min(minRotY, rotY);\n maxRotX = Math.max(maxRotX, rotX);\n maxRotY = Math.max(maxRotY, rotY);\n }\n return [minRotX, minRotY, maxRotX, maxRotY];\n };\n /**\n * @param {import(\"./geom/SimpleGeometry.js\").default} geometry The geometry.\n * @param {FitOptions} [opt_options] Options.\n */\n View.prototype.fitInternal = function (geometry, opt_options) {\n var options = opt_options || {};\n var size = options.size;\n if (!size) {\n size = this.getViewportSizeMinusPadding_();\n }\n var padding = options.padding !== undefined ? options.padding : [0, 0, 0, 0];\n var nearest = options.nearest !== undefined ? options.nearest : false;\n var minResolution;\n if (options.minResolution !== undefined) {\n minResolution = options.minResolution;\n }\n else if (options.maxZoom !== undefined) {\n minResolution = this.getResolutionForZoom(options.maxZoom);\n }\n else {\n minResolution = 0;\n }\n var rotatedExtent = this.rotatedExtentForGeometry(geometry);\n // calculate resolution\n var resolution = this.getResolutionForExtentInternal(rotatedExtent, [\n size[0] - padding[1] - padding[3],\n size[1] - padding[0] - padding[2],\n ]);\n resolution = isNaN(resolution)\n ? minResolution\n : Math.max(resolution, minResolution);\n resolution = this.getConstrainedResolution(resolution, nearest ? 0 : 1);\n // calculate center\n var rotation = this.getRotation();\n var sinAngle = Math.sin(rotation);\n var cosAngle = Math.cos(rotation);\n var centerRot = getCenter(rotatedExtent);\n centerRot[0] += ((padding[1] - padding[3]) / 2) * resolution;\n centerRot[1] += ((padding[0] - padding[2]) / 2) * resolution;\n var centerX = centerRot[0] * cosAngle - centerRot[1] * sinAngle;\n var centerY = centerRot[1] * cosAngle + centerRot[0] * sinAngle;\n var center = this.getConstrainedCenter([centerX, centerY], resolution);\n var callback = options.callback ? options.callback : VOID;\n if (options.duration !== undefined) {\n this.animateInternal({\n resolution: resolution,\n center: center,\n duration: options.duration,\n easing: options.easing,\n }, callback);\n }\n else {\n this.targetResolution_ = resolution;\n this.targetCenter_ = center;\n this.applyTargetState_(false, true);\n animationCallback(callback, true);\n }\n };\n /**\n * Center on coordinate and view position.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"./size.js\").Size} size Box pixel size.\n * @param {import(\"./pixel.js\").Pixel} position Position on the view to center on.\n * @api\n */\n View.prototype.centerOn = function (coordinate, size, position) {\n this.centerOnInternal(fromUserCoordinate(coordinate, this.getProjection()), size, position);\n };\n /**\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"./size.js\").Size} size Box pixel size.\n * @param {import(\"./pixel.js\").Pixel} position Position on the view to center on.\n */\n View.prototype.centerOnInternal = function (coordinate, size, position) {\n this.setCenterInternal(calculateCenterOn(coordinate, size, position, this.getResolution(), this.getRotation()));\n };\n /**\n * Calculates the shift between map and viewport center.\n * @param {import(\"./coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {import(\"./size.js\").Size} size Size.\n * @return {Array|undefined} Center shift.\n */\n View.prototype.calculateCenterShift = function (center, resolution, rotation, size) {\n var centerShift;\n var padding = this.padding_;\n if (padding && center) {\n var reducedSize = this.getViewportSizeMinusPadding_(-rotation);\n var shiftedCenter = calculateCenterOn(center, size, [reducedSize[0] / 2 + padding[3], reducedSize[1] / 2 + padding[0]], resolution, rotation);\n centerShift = [\n center[0] - shiftedCenter[0],\n center[1] - shiftedCenter[1],\n ];\n }\n return centerShift;\n };\n /**\n * @return {boolean} Is defined.\n */\n View.prototype.isDef = function () {\n return !!this.getCenterInternal() && this.getResolution() !== undefined;\n };\n /**\n * Adds relative coordinates to the center of the view. Any extent constraint will apply.\n * @param {import(\"./coordinate.js\").Coordinate} deltaCoordinates Relative value to add.\n * @api\n */\n View.prototype.adjustCenter = function (deltaCoordinates) {\n var center = toUserCoordinate(this.targetCenter_, this.getProjection());\n this.setCenter([\n center[0] + deltaCoordinates[0],\n center[1] + deltaCoordinates[1],\n ]);\n };\n /**\n * Adds relative coordinates to the center of the view. Any extent constraint will apply.\n * @param {import(\"./coordinate.js\").Coordinate} deltaCoordinates Relative value to add.\n */\n View.prototype.adjustCenterInternal = function (deltaCoordinates) {\n var center = this.targetCenter_;\n this.setCenterInternal([\n center[0] + deltaCoordinates[0],\n center[1] + deltaCoordinates[1],\n ]);\n };\n /**\n * Multiply the view resolution by a ratio, optionally using an anchor. Any resolution\n * constraint will apply.\n * @param {number} ratio The ratio to apply on the view resolution.\n * @param {import(\"./coordinate.js\").Coordinate} [opt_anchor] The origin of the transformation.\n * @api\n */\n View.prototype.adjustResolution = function (ratio, opt_anchor) {\n var anchor = opt_anchor && fromUserCoordinate(opt_anchor, this.getProjection());\n this.adjustResolutionInternal(ratio, anchor);\n };\n /**\n * Multiply the view resolution by a ratio, optionally using an anchor. Any resolution\n * constraint will apply.\n * @param {number} ratio The ratio to apply on the view resolution.\n * @param {import(\"./coordinate.js\").Coordinate} [opt_anchor] The origin of the transformation.\n */\n View.prototype.adjustResolutionInternal = function (ratio, opt_anchor) {\n var isMoving = this.getAnimating() || this.getInteracting();\n var size = this.getViewportSize_(this.getRotation());\n var newResolution = this.constraints_.resolution(this.targetResolution_ * ratio, 0, size, isMoving);\n if (opt_anchor) {\n this.targetCenter_ = this.calculateCenterZoom(newResolution, opt_anchor);\n }\n this.targetResolution_ *= ratio;\n this.applyTargetState_();\n };\n /**\n * Adds a value to the view zoom level, optionally using an anchor. Any resolution\n * constraint will apply.\n * @param {number} delta Relative value to add to the zoom level.\n * @param {import(\"./coordinate.js\").Coordinate} [opt_anchor] The origin of the transformation.\n * @api\n */\n View.prototype.adjustZoom = function (delta, opt_anchor) {\n this.adjustResolution(Math.pow(this.zoomFactor_, -delta), opt_anchor);\n };\n /**\n * Adds a value to the view rotation, optionally using an anchor. Any rotation\n * constraint will apply.\n * @param {number} delta Relative value to add to the zoom rotation, in radians.\n * @param {import(\"./coordinate.js\").Coordinate} [opt_anchor] The rotation center.\n * @api\n */\n View.prototype.adjustRotation = function (delta, opt_anchor) {\n if (opt_anchor) {\n opt_anchor = fromUserCoordinate(opt_anchor, this.getProjection());\n }\n this.adjustRotationInternal(delta, opt_anchor);\n };\n /**\n * @param {number} delta Relative value to add to the zoom rotation, in radians.\n * @param {import(\"./coordinate.js\").Coordinate} [opt_anchor] The rotation center.\n */\n View.prototype.adjustRotationInternal = function (delta, opt_anchor) {\n var isMoving = this.getAnimating() || this.getInteracting();\n var newRotation = this.constraints_.rotation(this.targetRotation_ + delta, isMoving);\n if (opt_anchor) {\n this.targetCenter_ = this.calculateCenterRotate(newRotation, opt_anchor);\n }\n this.targetRotation_ += delta;\n this.applyTargetState_();\n };\n /**\n * Set the center of the current view. Any extent constraint will apply.\n * @param {import(\"./coordinate.js\").Coordinate|undefined} center The center of the view.\n * @observable\n * @api\n */\n View.prototype.setCenter = function (center) {\n this.setCenterInternal(fromUserCoordinate(center, this.getProjection()));\n };\n /**\n * Set the center using the view projection (not the user projection).\n * @param {import(\"./coordinate.js\").Coordinate|undefined} center The center of the view.\n */\n View.prototype.setCenterInternal = function (center) {\n this.targetCenter_ = center;\n this.applyTargetState_();\n };\n /**\n * @param {import(\"./ViewHint.js\").default} hint Hint.\n * @param {number} delta Delta.\n * @return {number} New value.\n */\n View.prototype.setHint = function (hint, delta) {\n this.hints_[hint] += delta;\n this.changed();\n return this.hints_[hint];\n };\n /**\n * Set the resolution for this view. Any resolution constraint will apply.\n * @param {number|undefined} resolution The resolution of the view.\n * @observable\n * @api\n */\n View.prototype.setResolution = function (resolution) {\n this.targetResolution_ = resolution;\n this.applyTargetState_();\n };\n /**\n * Set the rotation for this view. Any rotation constraint will apply.\n * @param {number} rotation The rotation of the view in radians.\n * @observable\n * @api\n */\n View.prototype.setRotation = function (rotation) {\n this.targetRotation_ = rotation;\n this.applyTargetState_();\n };\n /**\n * Zoom to a specific zoom level. Any resolution constrain will apply.\n * @param {number} zoom Zoom level.\n * @api\n */\n View.prototype.setZoom = function (zoom) {\n this.setResolution(this.getResolutionForZoom(zoom));\n };\n /**\n * Recompute rotation/resolution/center based on target values.\n * Note: we have to compute rotation first, then resolution and center considering that\n * parameters can influence one another in case a view extent constraint is present.\n * @param {boolean} [opt_doNotCancelAnims] Do not cancel animations.\n * @param {boolean} [opt_forceMoving] Apply constraints as if the view is moving.\n * @private\n */\n View.prototype.applyTargetState_ = function (opt_doNotCancelAnims, opt_forceMoving) {\n var isMoving = this.getAnimating() || this.getInteracting() || opt_forceMoving;\n // compute rotation\n var newRotation = this.constraints_.rotation(this.targetRotation_, isMoving);\n var size = this.getViewportSize_(newRotation);\n var newResolution = this.constraints_.resolution(this.targetResolution_, 0, size, isMoving);\n var newCenter = this.constraints_.center(this.targetCenter_, newResolution, size, isMoving, this.calculateCenterShift(this.targetCenter_, newResolution, newRotation, size));\n if (this.get(ViewProperty.ROTATION) !== newRotation) {\n this.set(ViewProperty.ROTATION, newRotation);\n }\n if (this.get(ViewProperty.RESOLUTION) !== newResolution) {\n this.set(ViewProperty.RESOLUTION, newResolution);\n }\n if (!this.get(ViewProperty.CENTER) ||\n !equals(this.get(ViewProperty.CENTER), newCenter)) {\n this.set(ViewProperty.CENTER, newCenter);\n }\n if (this.getAnimating() && !opt_doNotCancelAnims) {\n this.cancelAnimations();\n }\n this.cancelAnchor_ = undefined;\n };\n /**\n * If any constraints need to be applied, an animation will be triggered.\n * This is typically done on interaction end.\n * Note: calling this with a duration of 0 will apply the constrained values straight away,\n * without animation.\n * @param {number} [opt_duration] The animation duration in ms.\n * @param {number} [opt_resolutionDirection] Which direction to zoom.\n * @param {import(\"./coordinate.js\").Coordinate} [opt_anchor] The origin of the transformation.\n */\n View.prototype.resolveConstraints = function (opt_duration, opt_resolutionDirection, opt_anchor) {\n var duration = opt_duration !== undefined ? opt_duration : 200;\n var direction = opt_resolutionDirection || 0;\n var newRotation = this.constraints_.rotation(this.targetRotation_);\n var size = this.getViewportSize_(newRotation);\n var newResolution = this.constraints_.resolution(this.targetResolution_, direction, size);\n var newCenter = this.constraints_.center(this.targetCenter_, newResolution, size, false, this.calculateCenterShift(this.targetCenter_, newResolution, newRotation, size));\n if (duration === 0 && !this.cancelAnchor_) {\n this.targetResolution_ = newResolution;\n this.targetRotation_ = newRotation;\n this.targetCenter_ = newCenter;\n this.applyTargetState_();\n return;\n }\n var anchor = opt_anchor || (duration === 0 ? this.cancelAnchor_ : undefined);\n this.cancelAnchor_ = undefined;\n if (this.getResolution() !== newResolution ||\n this.getRotation() !== newRotation ||\n !this.getCenterInternal() ||\n !equals(this.getCenterInternal(), newCenter)) {\n if (this.getAnimating()) {\n this.cancelAnimations();\n }\n this.animateInternal({\n rotation: newRotation,\n center: newCenter,\n resolution: newResolution,\n duration: duration,\n easing: easeOut,\n anchor: anchor,\n });\n }\n };\n /**\n * Notify the View that an interaction has started.\n * The view state will be resolved to a stable one if needed\n * (depending on its constraints).\n * @api\n */\n View.prototype.beginInteraction = function () {\n this.resolveConstraints(0);\n this.setHint(ViewHint.INTERACTING, 1);\n };\n /**\n * Notify the View that an interaction has ended. The view state will be resolved\n * to a stable one if needed (depending on its constraints).\n * @param {number} [opt_duration] Animation duration in ms.\n * @param {number} [opt_resolutionDirection] Which direction to zoom.\n * @param {import(\"./coordinate.js\").Coordinate} [opt_anchor] The origin of the transformation.\n * @api\n */\n View.prototype.endInteraction = function (opt_duration, opt_resolutionDirection, opt_anchor) {\n var anchor = opt_anchor && fromUserCoordinate(opt_anchor, this.getProjection());\n this.endInteractionInternal(opt_duration, opt_resolutionDirection, anchor);\n };\n /**\n * Notify the View that an interaction has ended. The view state will be resolved\n * to a stable one if needed (depending on its constraints).\n * @param {number} [opt_duration] Animation duration in ms.\n * @param {number} [opt_resolutionDirection] Which direction to zoom.\n * @param {import(\"./coordinate.js\").Coordinate} [opt_anchor] The origin of the transformation.\n */\n View.prototype.endInteractionInternal = function (opt_duration, opt_resolutionDirection, opt_anchor) {\n this.setHint(ViewHint.INTERACTING, -1);\n this.resolveConstraints(opt_duration, opt_resolutionDirection, opt_anchor);\n };\n /**\n * Get a valid position for the view center according to the current constraints.\n * @param {import(\"./coordinate.js\").Coordinate|undefined} targetCenter Target center position.\n * @param {number} [opt_targetResolution] Target resolution. If not supplied, the current one will be used.\n * This is useful to guess a valid center position at a different zoom level.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Valid center position.\n */\n View.prototype.getConstrainedCenter = function (targetCenter, opt_targetResolution) {\n var size = this.getViewportSize_(this.getRotation());\n return this.constraints_.center(targetCenter, opt_targetResolution || this.getResolution(), size);\n };\n /**\n * Get a valid zoom level according to the current view constraints.\n * @param {number|undefined} targetZoom Target zoom.\n * @param {number} [opt_direction=0] Indicate which resolution should be used\n * by a renderer if the view resolution does not match any resolution of the tile source.\n * If 0, the nearest resolution will be used. If 1, the nearest lower resolution\n * will be used. If -1, the nearest higher resolution will be used.\n * @return {number|undefined} Valid zoom level.\n */\n View.prototype.getConstrainedZoom = function (targetZoom, opt_direction) {\n var targetRes = this.getResolutionForZoom(targetZoom);\n return this.getZoomForResolution(this.getConstrainedResolution(targetRes, opt_direction));\n };\n /**\n * Get a valid resolution according to the current view constraints.\n * @param {number|undefined} targetResolution Target resolution.\n * @param {number} [opt_direction=0] Indicate which resolution should be used\n * by a renderer if the view resolution does not match any resolution of the tile source.\n * If 0, the nearest resolution will be used. If 1, the nearest lower resolution\n * will be used. If -1, the nearest higher resolution will be used.\n * @return {number|undefined} Valid resolution.\n */\n View.prototype.getConstrainedResolution = function (targetResolution, opt_direction) {\n var direction = opt_direction || 0;\n var size = this.getViewportSize_(this.getRotation());\n return this.constraints_.resolution(targetResolution, direction, size);\n };\n return View;\n}(BaseObject));\n/**\n * @param {Function} callback Callback.\n * @param {*} returnValue Return value.\n */\nfunction animationCallback(callback, returnValue) {\n setTimeout(function () {\n callback(returnValue);\n }, 0);\n}\n/**\n * @param {ViewOptions} options View options.\n * @return {import(\"./centerconstraint.js\").Type} The constraint.\n */\nexport function createCenterConstraint(options) {\n if (options.extent !== undefined) {\n var smooth = options.smoothExtentConstraint !== undefined\n ? options.smoothExtentConstraint\n : true;\n return createExtent(options.extent, options.constrainOnlyCenter, smooth);\n }\n var projection = createProjection(options.projection, 'EPSG:3857');\n if (options.multiWorld !== true && projection.isGlobal()) {\n var extent = projection.getExtent().slice();\n extent[0] = -Infinity;\n extent[2] = Infinity;\n return createExtent(extent, false, false);\n }\n return centerNone;\n}\n/**\n * @param {ViewOptions} options View options.\n * @return {{constraint: import(\"./resolutionconstraint.js\").Type, maxResolution: number,\n * minResolution: number, minZoom: number, zoomFactor: number}} The constraint.\n */\nexport function createResolutionConstraint(options) {\n var resolutionConstraint;\n var maxResolution;\n var minResolution;\n // TODO: move these to be ol constants\n // see https://github.com/openlayers/openlayers/issues/2076\n var defaultMaxZoom = 28;\n var defaultZoomFactor = 2;\n var minZoom = options.minZoom !== undefined ? options.minZoom : DEFAULT_MIN_ZOOM;\n var maxZoom = options.maxZoom !== undefined ? options.maxZoom : defaultMaxZoom;\n var zoomFactor = options.zoomFactor !== undefined ? options.zoomFactor : defaultZoomFactor;\n var multiWorld = options.multiWorld !== undefined ? options.multiWorld : false;\n var smooth = options.smoothResolutionConstraint !== undefined\n ? options.smoothResolutionConstraint\n : true;\n var showFullExtent = options.showFullExtent !== undefined ? options.showFullExtent : false;\n var projection = createProjection(options.projection, 'EPSG:3857');\n var projExtent = projection.getExtent();\n var constrainOnlyCenter = options.constrainOnlyCenter;\n var extent = options.extent;\n if (!multiWorld && !extent && projection.isGlobal()) {\n constrainOnlyCenter = false;\n extent = projExtent;\n }\n if (options.resolutions !== undefined) {\n var resolutions = options.resolutions;\n maxResolution = resolutions[minZoom];\n minResolution =\n resolutions[maxZoom] !== undefined\n ? resolutions[maxZoom]\n : resolutions[resolutions.length - 1];\n if (options.constrainResolution) {\n resolutionConstraint = createSnapToResolutions(resolutions, smooth, !constrainOnlyCenter && extent, showFullExtent);\n }\n else {\n resolutionConstraint = createMinMaxResolution(maxResolution, minResolution, smooth, !constrainOnlyCenter && extent, showFullExtent);\n }\n }\n else {\n // calculate the default min and max resolution\n var size = !projExtent\n ? // use an extent that can fit the whole world if need be\n (360 * METERS_PER_UNIT[Units.DEGREES]) / projection.getMetersPerUnit()\n : Math.max(getWidth(projExtent), getHeight(projExtent));\n var defaultMaxResolution = size / DEFAULT_TILE_SIZE / Math.pow(defaultZoomFactor, DEFAULT_MIN_ZOOM);\n var defaultMinResolution = defaultMaxResolution /\n Math.pow(defaultZoomFactor, defaultMaxZoom - DEFAULT_MIN_ZOOM);\n // user provided maxResolution takes precedence\n maxResolution = options.maxResolution;\n if (maxResolution !== undefined) {\n minZoom = 0;\n }\n else {\n maxResolution = defaultMaxResolution / Math.pow(zoomFactor, minZoom);\n }\n // user provided minResolution takes precedence\n minResolution = options.minResolution;\n if (minResolution === undefined) {\n if (options.maxZoom !== undefined) {\n if (options.maxResolution !== undefined) {\n minResolution = maxResolution / Math.pow(zoomFactor, maxZoom);\n }\n else {\n minResolution = defaultMaxResolution / Math.pow(zoomFactor, maxZoom);\n }\n }\n else {\n minResolution = defaultMinResolution;\n }\n }\n // given discrete zoom levels, minResolution may be different than provided\n maxZoom =\n minZoom +\n Math.floor(Math.log(maxResolution / minResolution) / Math.log(zoomFactor));\n minResolution = maxResolution / Math.pow(zoomFactor, maxZoom - minZoom);\n if (options.constrainResolution) {\n resolutionConstraint = createSnapToPower(zoomFactor, maxResolution, minResolution, smooth, !constrainOnlyCenter && extent, showFullExtent);\n }\n else {\n resolutionConstraint = createMinMaxResolution(maxResolution, minResolution, smooth, !constrainOnlyCenter && extent, showFullExtent);\n }\n }\n return {\n constraint: resolutionConstraint,\n maxResolution: maxResolution,\n minResolution: minResolution,\n minZoom: minZoom,\n zoomFactor: zoomFactor,\n };\n}\n/**\n * @param {ViewOptions} options View options.\n * @return {import(\"./rotationconstraint.js\").Type} Rotation constraint.\n */\nexport function createRotationConstraint(options) {\n var enableRotation = options.enableRotation !== undefined ? options.enableRotation : true;\n if (enableRotation) {\n var constrainRotation = options.constrainRotation;\n if (constrainRotation === undefined || constrainRotation === true) {\n return createSnapToZero();\n }\n else if (constrainRotation === false) {\n return rotationNone;\n }\n else if (typeof constrainRotation === 'number') {\n return createSnapToN(constrainRotation);\n }\n else {\n return rotationNone;\n }\n }\n else {\n return disable;\n }\n}\n/**\n * Determine if an animation involves no view change.\n * @param {Animation} animation The animation.\n * @return {boolean} The animation involves no view change.\n */\nexport function isNoopAnimation(animation) {\n if (animation.sourceCenter && animation.targetCenter) {\n if (!coordinatesEqual(animation.sourceCenter, animation.targetCenter)) {\n return false;\n }\n }\n if (animation.sourceResolution !== animation.targetResolution) {\n return false;\n }\n if (animation.sourceRotation !== animation.targetRotation) {\n return false;\n }\n return true;\n}\n/**\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"./size.js\").Size} size Box pixel size.\n * @param {import(\"./pixel.js\").Pixel} position Position on the view to center on.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @return {import(\"./coordinate.js\").Coordinate} Shifted center.\n */\nfunction calculateCenterOn(coordinate, size, position, resolution, rotation) {\n // calculate rotated position\n var cosAngle = Math.cos(-rotation);\n var sinAngle = Math.sin(-rotation);\n var rotX = coordinate[0] * cosAngle - coordinate[1] * sinAngle;\n var rotY = coordinate[1] * cosAngle + coordinate[0] * sinAngle;\n rotX += (size[0] / 2 - position[0]) * resolution;\n rotY += (position[1] - size[1] / 2) * resolution;\n // go back to original angle\n sinAngle = -sinAngle; // go back to original rotation\n var centerX = rotX * cosAngle - rotY * sinAngle;\n var centerY = rotY * cosAngle + rotX * sinAngle;\n return [centerX, centerY];\n}\nexport default View;\n//# sourceMappingURL=View.js.map","/**\n * @module ol/size\n */\n/**\n * An array of numbers representing a size: `[width, height]`.\n * @typedef {Array} Size\n * @api\n */\n/**\n * Returns a buffered size.\n * @param {Size} size Size.\n * @param {number} num The amount by which to buffer.\n * @param {Size} [opt_size] Optional reusable size array.\n * @return {Size} The buffered size.\n */\nexport function buffer(size, num, opt_size) {\n if (opt_size === undefined) {\n opt_size = [0, 0];\n }\n opt_size[0] = size[0] + 2 * num;\n opt_size[1] = size[1] + 2 * num;\n return opt_size;\n}\n/**\n * Determines if a size has a positive area.\n * @param {Size} size The size to test.\n * @return {boolean} The size has a positive area.\n */\nexport function hasArea(size) {\n return size[0] > 0 && size[1] > 0;\n}\n/**\n * Returns a size scaled by a ratio. The result will be an array of integers.\n * @param {Size} size Size.\n * @param {number} ratio Ratio.\n * @param {Size} [opt_size] Optional reusable size array.\n * @return {Size} The scaled size.\n */\nexport function scale(size, ratio, opt_size) {\n if (opt_size === undefined) {\n opt_size = [0, 0];\n }\n opt_size[0] = (size[0] * ratio + 0.5) | 0;\n opt_size[1] = (size[1] * ratio + 0.5) | 0;\n return opt_size;\n}\n/**\n * Returns an `Size` array for the passed in number (meaning: square) or\n * `Size` array.\n * (meaning: non-square),\n * @param {number|Size} size Width and height.\n * @param {Size} [opt_size] Optional reusable size array.\n * @return {Size} Size.\n * @api\n */\nexport function toSize(size, opt_size) {\n if (Array.isArray(size)) {\n return size;\n }\n else {\n if (opt_size === undefined) {\n opt_size = [size, size];\n }\n else {\n opt_size[0] = size;\n opt_size[1] = size;\n }\n return opt_size;\n }\n}\n//# sourceMappingURL=size.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/PluggableMap\n */\nimport BaseObject from './Object.js';\nimport Collection from './Collection.js';\nimport CollectionEventType from './CollectionEventType.js';\nimport EventType from './events/EventType.js';\nimport LayerGroup from './layer/Group.js';\nimport MapBrowserEvent from './MapBrowserEvent.js';\nimport MapBrowserEventHandler from './MapBrowserEventHandler.js';\nimport MapBrowserEventType from './MapBrowserEventType.js';\nimport MapEvent from './MapEvent.js';\nimport MapEventType from './MapEventType.js';\nimport MapProperty from './MapProperty.js';\nimport ObjectEventType from './ObjectEventType.js';\nimport PointerEventType from './pointer/EventType.js';\nimport RenderEventType from './render/EventType.js';\nimport TileQueue, { getTilePriority } from './TileQueue.js';\nimport View from './View.js';\nimport ViewHint from './ViewHint.js';\nimport { DEVICE_PIXEL_RATIO, PASSIVE_EVENT_LISTENERS } from './has.js';\nimport { TRUE } from './functions.js';\nimport { apply as applyTransform, create as createTransform, } from './transform.js';\nimport { assert } from './asserts.js';\nimport { clone, createOrUpdateEmpty, equals, getForViewAndSize, isEmpty, } from './extent.js';\nimport { fromUserCoordinate, toUserCoordinate } from './proj.js';\nimport { hasArea } from './size.js';\nimport { listen, unlistenByKey } from './events.js';\nimport { removeNode } from './dom.js';\n/**\n * State of the current frame. Only `pixelRatio`, `time` and `viewState` should\n * be used in applications.\n * @typedef {Object} FrameState\n * @property {number} pixelRatio The pixel ratio of the frame.\n * @property {number} time The time when rendering of the frame was requested.\n * @property {import(\"./View.js\").State} viewState The state of the current view.\n * @property {boolean} animate Animate.\n * @property {import(\"./transform.js\").Transform} coordinateToPixelTransform CoordinateToPixelTransform.\n * @property {import(\"rbush\").default} declutterTree DeclutterTree.\n * @property {null|import(\"./extent.js\").Extent} extent Extent.\n * @property {number} index Index.\n * @property {Array} layerStatesArray LayerStatesArray.\n * @property {number} layerIndex LayerIndex.\n * @property {import(\"./transform.js\").Transform} pixelToCoordinateTransform PixelToCoordinateTransform.\n * @property {Array} postRenderFunctions PostRenderFunctions.\n * @property {import(\"./size.js\").Size} size Size.\n * @property {TileQueue} tileQueue TileQueue.\n * @property {!Object>} usedTiles UsedTiles.\n * @property {Array} viewHints ViewHints.\n * @property {!Object>} wantedTiles WantedTiles.\n */\n/**\n * @typedef {function(PluggableMap, ?FrameState): any} PostRenderFunction\n */\n/**\n * @typedef {Object} AtPixelOptions\n * @property {undefined|function(import(\"./layer/Layer.js\").default): boolean} [layerFilter] Layer filter\n * function. The filter function will receive one argument, the\n * {@link module:ol/layer/Layer layer-candidate} and it should return a boolean value.\n * Only layers which are visible and for which this function returns `true`\n * will be tested for features. By default, all visible layers will be tested.\n * @property {number} [hitTolerance=0] Hit-detection tolerance in css pixels. Pixels\n * inside the radius around the given position will be checked for features.\n * @property {boolean} [checkWrapped=true] Check-Wrapped Will check for for wrapped geometries inside the range of\n * +/- 1 world width. Works only if a projection is used that can be wrapped.\n */\n/**\n * @typedef {Object} MapOptionsInternal\n * @property {Collection} [controls] Controls.\n * @property {Collection} [interactions] Interactions.\n * @property {HTMLElement|Document} keyboardEventTarget KeyboardEventTarget.\n * @property {Collection} overlays Overlays.\n * @property {Object} values Values.\n */\n/**\n * @typedef {import(\"./ObjectEventType\").Types|'change:layergroup'|'change:size'|'change:target'|'change:view'} MapObjectEventTypes\n */\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} PluggableMapOnSignature\n */\n/**\n * Object literal with config options for the map.\n * @typedef {Object} MapOptions\n * @property {Collection|Array} [controls]\n * Controls initially added to the map. If not specified,\n * {@link module:ol/control.defaults} is used.\n * @property {number} [pixelRatio=window.devicePixelRatio] The ratio between\n * physical pixels and device-independent pixels (dips) on the device.\n * @property {Collection|Array} [interactions]\n * Interactions that are initially added to the map. If not specified,\n * {@link module:ol/interaction.defaults} is used.\n * @property {HTMLElement|Document|string} [keyboardEventTarget] The element to\n * listen to keyboard events on. This determines when the `KeyboardPan` and\n * `KeyboardZoom` interactions trigger. For example, if this option is set to\n * `document` the keyboard interactions will always trigger. If this option is\n * not specified, the element the library listens to keyboard events on is the\n * map target (i.e. the user-provided div for the map). If this is not\n * `document`, the target element needs to be focused for key events to be\n * emitted, requiring that the target element has a `tabindex` attribute.\n * @property {Array|Collection|LayerGroup} [layers]\n * Layers. If this is not defined, a map with no layers will be rendered. Note\n * that layers are rendered in the order supplied, so if you want, for example,\n * a vector layer to appear on top of a tile layer, it must come after the tile\n * layer.\n * @property {number} [maxTilesLoading=16] Maximum number tiles to load\n * simultaneously.\n * @property {number} [moveTolerance=1] The minimum distance in pixels the\n * cursor must move to be detected as a map move event instead of a click.\n * Increasing this value can make it easier to click on the map.\n * @property {Collection|Array} [overlays]\n * Overlays initially added to the map. By default, no overlays are added.\n * @property {HTMLElement|string} [target] The container for the map, either the\n * element itself or the `id` of the element. If not specified at construction\n * time, {@link module:ol/Map~Map#setTarget} must be called for the map to be\n * rendered. If passed by element, the container can be in a secondary document.\n * @property {View} [view] The map's view. No layer sources will be\n * fetched unless this is specified at construction time or through\n * {@link module:ol/Map~Map#setView}.\n */\n/**\n * @api\n */\nvar PluggableMap = /** @class */ (function (_super) {\n __extends(PluggableMap, _super);\n /**\n * @param {MapOptions} options Map options.\n */\n function PluggableMap(options) {\n var _this = _super.call(this) || this;\n /***\n * @type {PluggableMapOnSignature}\n */\n _this.on;\n /***\n * @type {PluggableMapOnSignature}\n */\n _this.once;\n /***\n * @type {PluggableMapOnSignature}\n */\n _this.un;\n var optionsInternal = createOptionsInternal(options);\n /** @private */\n _this.boundHandleBrowserEvent_ = _this.handleBrowserEvent.bind(_this);\n /**\n * @type {number}\n * @private\n */\n _this.maxTilesLoading_ =\n options.maxTilesLoading !== undefined ? options.maxTilesLoading : 16;\n /**\n * @private\n * @type {number}\n */\n _this.pixelRatio_ =\n options.pixelRatio !== undefined\n ? options.pixelRatio\n : DEVICE_PIXEL_RATIO;\n /**\n * @private\n * @type {*}\n */\n _this.postRenderTimeoutHandle_;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.animationDelayKey_;\n /**\n * @private\n */\n _this.animationDelay_ = /** @this {PluggableMap} */ function () {\n this.animationDelayKey_ = undefined;\n this.renderFrame_(Date.now());\n }.bind(_this);\n /**\n * @private\n * @type {import(\"./transform.js\").Transform}\n */\n _this.coordinateToPixelTransform_ = createTransform();\n /**\n * @private\n * @type {import(\"./transform.js\").Transform}\n */\n _this.pixelToCoordinateTransform_ = createTransform();\n /**\n * @private\n * @type {number}\n */\n _this.frameIndex_ = 0;\n /**\n * @private\n * @type {?FrameState}\n */\n _this.frameState_ = null;\n /**\n * The extent at the previous 'moveend' event.\n * @private\n * @type {import(\"./extent.js\").Extent}\n */\n _this.previousExtent_ = null;\n /**\n * @private\n * @type {?import(\"./events.js\").EventsKey}\n */\n _this.viewPropertyListenerKey_ = null;\n /**\n * @private\n * @type {?import(\"./events.js\").EventsKey}\n */\n _this.viewChangeListenerKey_ = null;\n /**\n * @private\n * @type {?Array}\n */\n _this.layerGroupPropertyListenerKeys_ = null;\n /**\n * @private\n * @type {!HTMLElement}\n */\n _this.viewport_ = document.createElement('div');\n _this.viewport_.className =\n 'ol-viewport' + ('ontouchstart' in window ? ' ol-touch' : '');\n _this.viewport_.style.position = 'relative';\n _this.viewport_.style.overflow = 'hidden';\n _this.viewport_.style.width = '100%';\n _this.viewport_.style.height = '100%';\n /**\n * @private\n * @type {!HTMLElement}\n */\n _this.overlayContainer_ = document.createElement('div');\n _this.overlayContainer_.style.position = 'absolute';\n _this.overlayContainer_.style.zIndex = '0';\n _this.overlayContainer_.style.width = '100%';\n _this.overlayContainer_.style.height = '100%';\n _this.overlayContainer_.style.pointerEvents = 'none';\n _this.overlayContainer_.className = 'ol-overlaycontainer';\n _this.viewport_.appendChild(_this.overlayContainer_);\n /**\n * @private\n * @type {!HTMLElement}\n */\n _this.overlayContainerStopEvent_ = document.createElement('div');\n _this.overlayContainerStopEvent_.style.position = 'absolute';\n _this.overlayContainerStopEvent_.style.zIndex = '0';\n _this.overlayContainerStopEvent_.style.width = '100%';\n _this.overlayContainerStopEvent_.style.height = '100%';\n _this.overlayContainerStopEvent_.style.pointerEvents = 'none';\n _this.overlayContainerStopEvent_.className = 'ol-overlaycontainer-stopevent';\n _this.viewport_.appendChild(_this.overlayContainerStopEvent_);\n /**\n * @private\n * @type {MapBrowserEventHandler}\n */\n _this.mapBrowserEventHandler_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.moveTolerance_ = options.moveTolerance;\n /**\n * @private\n * @type {HTMLElement|Document}\n */\n _this.keyboardEventTarget_ = optionsInternal.keyboardEventTarget;\n /**\n * @private\n * @type {?Array}\n */\n _this.keyHandlerKeys_ = null;\n /**\n * @type {Collection}\n * @protected\n */\n _this.controls = optionsInternal.controls || new Collection();\n /**\n * @type {Collection}\n * @protected\n */\n _this.interactions = optionsInternal.interactions || new Collection();\n /**\n * @type {Collection}\n * @private\n */\n _this.overlays_ = optionsInternal.overlays;\n /**\n * A lookup of overlays by id.\n * @private\n * @type {Object}\n */\n _this.overlayIdIndex_ = {};\n /**\n * @type {import(\"./renderer/Map.js\").default}\n * @private\n */\n _this.renderer_ = null;\n /**\n * @type {undefined|function(Event): void}\n * @private\n */\n _this.handleResize_;\n /**\n * @private\n * @type {!Array}\n */\n _this.postRenderFunctions_ = [];\n /**\n * @private\n * @type {TileQueue}\n */\n _this.tileQueue_ = new TileQueue(_this.getTilePriority.bind(_this), _this.handleTileChange_.bind(_this));\n _this.addChangeListener(MapProperty.LAYERGROUP, _this.handleLayerGroupChanged_);\n _this.addChangeListener(MapProperty.VIEW, _this.handleViewChanged_);\n _this.addChangeListener(MapProperty.SIZE, _this.handleSizeChanged_);\n _this.addChangeListener(MapProperty.TARGET, _this.handleTargetChanged_);\n // setProperties will trigger the rendering of the map if the map\n // is \"defined\" already.\n _this.setProperties(optionsInternal.values);\n _this.controls.forEach(\n /**\n * @param {import(\"./control/Control.js\").default} control Control.\n * @this {PluggableMap}\n */\n function (control) {\n control.setMap(this);\n }.bind(_this));\n _this.controls.addEventListener(CollectionEventType.ADD, \n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function (event) {\n event.element.setMap(this);\n }.bind(_this));\n _this.controls.addEventListener(CollectionEventType.REMOVE, \n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function (event) {\n event.element.setMap(null);\n }.bind(_this));\n _this.interactions.forEach(\n /**\n * @param {import(\"./interaction/Interaction.js\").default} interaction Interaction.\n * @this {PluggableMap}\n */\n function (interaction) {\n interaction.setMap(this);\n }.bind(_this));\n _this.interactions.addEventListener(CollectionEventType.ADD, \n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function (event) {\n event.element.setMap(this);\n }.bind(_this));\n _this.interactions.addEventListener(CollectionEventType.REMOVE, \n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function (event) {\n event.element.setMap(null);\n }.bind(_this));\n _this.overlays_.forEach(_this.addOverlayInternal_.bind(_this));\n _this.overlays_.addEventListener(CollectionEventType.ADD, \n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function (event) {\n this.addOverlayInternal_(\n /** @type {import(\"./Overlay.js\").default} */ (event.element));\n }.bind(_this));\n _this.overlays_.addEventListener(CollectionEventType.REMOVE, \n /**\n * @param {import(\"./Collection.js\").CollectionEvent} event CollectionEvent.\n */\n function (event) {\n var overlay = /** @type {import(\"./Overlay.js\").default} */ (event.element);\n var id = overlay.getId();\n if (id !== undefined) {\n delete this.overlayIdIndex_[id.toString()];\n }\n event.element.setMap(null);\n }.bind(_this));\n return _this;\n }\n /**\n * @abstract\n * @return {import(\"./renderer/Map.js\").default} The map renderer\n */\n PluggableMap.prototype.createRenderer = function () {\n throw new Error('Use a map type that has a createRenderer method');\n };\n /**\n * Add the given control to the map.\n * @param {import(\"./control/Control.js\").default} control Control.\n * @api\n */\n PluggableMap.prototype.addControl = function (control) {\n this.getControls().push(control);\n };\n /**\n * Add the given interaction to the map. If you want to add an interaction\n * at another point of the collection use `getInteraction()` and the methods\n * available on {@link module:ol/Collection~Collection}. This can be used to\n * stop the event propagation from the handleEvent function. The interactions\n * get to handle the events in the reverse order of this collection.\n * @param {import(\"./interaction/Interaction.js\").default} interaction Interaction to add.\n * @api\n */\n PluggableMap.prototype.addInteraction = function (interaction) {\n this.getInteractions().push(interaction);\n };\n /**\n * Adds the given layer to the top of this map. If you want to add a layer\n * elsewhere in the stack, use `getLayers()` and the methods available on\n * {@link module:ol/Collection~Collection}.\n * @param {import(\"./layer/Base.js\").default} layer Layer.\n * @api\n */\n PluggableMap.prototype.addLayer = function (layer) {\n var layers = this.getLayerGroup().getLayers();\n layers.push(layer);\n };\n /**\n * Add the given overlay to the map.\n * @param {import(\"./Overlay.js\").default} overlay Overlay.\n * @api\n */\n PluggableMap.prototype.addOverlay = function (overlay) {\n this.getOverlays().push(overlay);\n };\n /**\n * This deals with map's overlay collection changes.\n * @param {import(\"./Overlay.js\").default} overlay Overlay.\n * @private\n */\n PluggableMap.prototype.addOverlayInternal_ = function (overlay) {\n var id = overlay.getId();\n if (id !== undefined) {\n this.overlayIdIndex_[id.toString()] = overlay;\n }\n overlay.setMap(this);\n };\n /**\n *\n * Clean up.\n */\n PluggableMap.prototype.disposeInternal = function () {\n this.setTarget(null);\n _super.prototype.disposeInternal.call(this);\n };\n /**\n * Detect features that intersect a pixel on the viewport, and execute a\n * callback with each intersecting feature. Layers included in the detection can\n * be configured through the `layerFilter` option in `opt_options`.\n * @param {import(\"./pixel.js\").Pixel} pixel Pixel.\n * @param {function(import(\"./Feature.js\").FeatureLike, import(\"./layer/Layer.js\").default, import(\"./geom/SimpleGeometry.js\").default): T} callback Feature callback. The callback will be\n * called with two arguments. The first argument is one\n * {@link module:ol/Feature feature} or\n * {@link module:ol/render/Feature render feature} at the pixel, the second is\n * the {@link module:ol/layer/Layer layer} of the feature and will be null for\n * unmanaged layers. To stop detection, callback functions can return a\n * truthy value.\n * @param {AtPixelOptions} [opt_options] Optional options.\n * @return {T|undefined} Callback result, i.e. the return value of last\n * callback execution, or the first truthy callback return value.\n * @template S,T\n * @api\n */\n PluggableMap.prototype.forEachFeatureAtPixel = function (pixel, callback, opt_options) {\n if (!this.frameState_) {\n return;\n }\n var coordinate = this.getCoordinateFromPixelInternal(pixel);\n opt_options = opt_options !== undefined ? opt_options : {};\n var hitTolerance = opt_options.hitTolerance !== undefined ? opt_options.hitTolerance : 0;\n var layerFilter = opt_options.layerFilter !== undefined ? opt_options.layerFilter : TRUE;\n var checkWrapped = opt_options.checkWrapped !== false;\n return this.renderer_.forEachFeatureAtCoordinate(coordinate, this.frameState_, hitTolerance, checkWrapped, callback, null, layerFilter, null);\n };\n /**\n * Get all features that intersect a pixel on the viewport.\n * @param {import(\"./pixel.js\").Pixel} pixel Pixel.\n * @param {AtPixelOptions} [opt_options] Optional options.\n * @return {Array} The detected features or\n * an empty array if none were found.\n * @api\n */\n PluggableMap.prototype.getFeaturesAtPixel = function (pixel, opt_options) {\n var features = [];\n this.forEachFeatureAtPixel(pixel, function (feature) {\n features.push(feature);\n }, opt_options);\n return features;\n };\n /**\n * Detect layers that have a color value at a pixel on the viewport, and\n * execute a callback with each matching layer. Layers included in the\n * detection can be configured through `opt_layerFilter`.\n *\n * Note: this may give false positives unless the map layers have had different `className`\n * properties assigned to them.\n *\n * @param {import(\"./pixel.js\").Pixel} pixel Pixel.\n * @param {function(this: S, import(\"./layer/Layer.js\").default, (Uint8ClampedArray|Uint8Array)): T} callback\n * Layer callback. This callback will receive two arguments: first is the\n * {@link module:ol/layer/Layer layer}, second argument is an array representing\n * [R, G, B, A] pixel values (0 - 255) and will be `null` for layer types\n * that do not currently support this argument. To stop detection, callback\n * functions can return a truthy value.\n * @param {AtPixelOptions} [opt_options] Configuration options.\n * @return {T|undefined} Callback result, i.e. the return value of last\n * callback execution, or the first truthy callback return value.\n * @template S,T\n * @api\n */\n PluggableMap.prototype.forEachLayerAtPixel = function (pixel, callback, opt_options) {\n if (!this.frameState_) {\n return;\n }\n var options = opt_options || {};\n var hitTolerance = options.hitTolerance !== undefined ? options.hitTolerance : 0;\n var layerFilter = options.layerFilter || TRUE;\n return this.renderer_.forEachLayerAtPixel(pixel, this.frameState_, hitTolerance, callback, layerFilter);\n };\n /**\n * Detect if features intersect a pixel on the viewport. Layers included in the\n * detection can be configured through `opt_layerFilter`.\n * @param {import(\"./pixel.js\").Pixel} pixel Pixel.\n * @param {AtPixelOptions} [opt_options] Optional options.\n * @return {boolean} Is there a feature at the given pixel?\n * @api\n */\n PluggableMap.prototype.hasFeatureAtPixel = function (pixel, opt_options) {\n if (!this.frameState_) {\n return false;\n }\n var coordinate = this.getCoordinateFromPixelInternal(pixel);\n opt_options = opt_options !== undefined ? opt_options : {};\n var layerFilter = opt_options.layerFilter !== undefined ? opt_options.layerFilter : TRUE;\n var hitTolerance = opt_options.hitTolerance !== undefined ? opt_options.hitTolerance : 0;\n var checkWrapped = opt_options.checkWrapped !== false;\n return this.renderer_.hasFeatureAtCoordinate(coordinate, this.frameState_, hitTolerance, checkWrapped, layerFilter, null);\n };\n /**\n * Returns the coordinate in user projection for a browser event.\n * @param {MouseEvent} event Event.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate.\n * @api\n */\n PluggableMap.prototype.getEventCoordinate = function (event) {\n return this.getCoordinateFromPixel(this.getEventPixel(event));\n };\n /**\n * Returns the coordinate in view projection for a browser event.\n * @param {MouseEvent} event Event.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate.\n */\n PluggableMap.prototype.getEventCoordinateInternal = function (event) {\n return this.getCoordinateFromPixelInternal(this.getEventPixel(event));\n };\n /**\n * Returns the map pixel position for a browser event relative to the viewport.\n * @param {UIEvent} event Event.\n * @return {import(\"./pixel.js\").Pixel} Pixel.\n * @api\n */\n PluggableMap.prototype.getEventPixel = function (event) {\n var viewportPosition = this.viewport_.getBoundingClientRect();\n var eventPosition = \n //FIXME Are we really calling this with a TouchEvent anywhere?\n 'changedTouches' in event\n ? /** @type {TouchEvent} */ (event).changedTouches[0]\n : /** @type {MouseEvent} */ (event);\n return [\n eventPosition.clientX - viewportPosition.left,\n eventPosition.clientY - viewportPosition.top,\n ];\n };\n /**\n * Get the target in which this map is rendered.\n * Note that this returns what is entered as an option or in setTarget:\n * if that was an element, it returns an element; if a string, it returns that.\n * @return {HTMLElement|string|undefined} The Element or id of the Element that the\n * map is rendered in.\n * @observable\n * @api\n */\n PluggableMap.prototype.getTarget = function () {\n return /** @type {HTMLElement|string|undefined} */ (this.get(MapProperty.TARGET));\n };\n /**\n * Get the DOM element into which this map is rendered. In contrast to\n * `getTarget` this method always return an `Element`, or `null` if the\n * map has no target.\n * @return {HTMLElement} The element that the map is rendered in.\n * @api\n */\n PluggableMap.prototype.getTargetElement = function () {\n var target = this.getTarget();\n if (target !== undefined) {\n return typeof target === 'string'\n ? document.getElementById(target)\n : target;\n }\n else {\n return null;\n }\n };\n /**\n * Get the coordinate for a given pixel. This returns a coordinate in the\n * user projection.\n * @param {import(\"./pixel.js\").Pixel} pixel Pixel position in the map viewport.\n * @return {import(\"./coordinate.js\").Coordinate} The coordinate for the pixel position.\n * @api\n */\n PluggableMap.prototype.getCoordinateFromPixel = function (pixel) {\n return toUserCoordinate(this.getCoordinateFromPixelInternal(pixel), this.getView().getProjection());\n };\n /**\n * Get the coordinate for a given pixel. This returns a coordinate in the\n * map view projection.\n * @param {import(\"./pixel.js\").Pixel} pixel Pixel position in the map viewport.\n * @return {import(\"./coordinate.js\").Coordinate} The coordinate for the pixel position.\n */\n PluggableMap.prototype.getCoordinateFromPixelInternal = function (pixel) {\n var frameState = this.frameState_;\n if (!frameState) {\n return null;\n }\n else {\n return applyTransform(frameState.pixelToCoordinateTransform, pixel.slice());\n }\n };\n /**\n * Get the map controls. Modifying this collection changes the controls\n * associated with the map.\n * @return {Collection} Controls.\n * @api\n */\n PluggableMap.prototype.getControls = function () {\n return this.controls;\n };\n /**\n * Get the map overlays. Modifying this collection changes the overlays\n * associated with the map.\n * @return {Collection} Overlays.\n * @api\n */\n PluggableMap.prototype.getOverlays = function () {\n return this.overlays_;\n };\n /**\n * Get an overlay by its identifier (the value returned by overlay.getId()).\n * Note that the index treats string and numeric identifiers as the same. So\n * `map.getOverlayById(2)` will return an overlay with id `'2'` or `2`.\n * @param {string|number} id Overlay identifier.\n * @return {import(\"./Overlay.js\").default} Overlay.\n * @api\n */\n PluggableMap.prototype.getOverlayById = function (id) {\n var overlay = this.overlayIdIndex_[id.toString()];\n return overlay !== undefined ? overlay : null;\n };\n /**\n * Get the map interactions. Modifying this collection changes the interactions\n * associated with the map.\n *\n * Interactions are used for e.g. pan, zoom and rotate.\n * @return {Collection} Interactions.\n * @api\n */\n PluggableMap.prototype.getInteractions = function () {\n return this.interactions;\n };\n /**\n * Get the layergroup associated with this map.\n * @return {LayerGroup} A layer group containing the layers in this map.\n * @observable\n * @api\n */\n PluggableMap.prototype.getLayerGroup = function () {\n return /** @type {LayerGroup} */ (this.get(MapProperty.LAYERGROUP));\n };\n /**\n * Get the collection of layers associated with this map.\n * @return {!Collection} Layers.\n * @api\n */\n PluggableMap.prototype.getLayers = function () {\n var layers = this.getLayerGroup().getLayers();\n return layers;\n };\n /**\n * @return {boolean} Layers have sources that are still loading.\n */\n PluggableMap.prototype.getLoading = function () {\n var layerStatesArray = this.getLayerGroup().getLayerStatesArray();\n for (var i = 0, ii = layerStatesArray.length; i < ii; ++i) {\n var layer = layerStatesArray[i].layer;\n var source = /** @type {import(\"./layer/Layer.js\").default} */ (layer).getSource();\n if (source && source.loading) {\n return true;\n }\n }\n return false;\n };\n /**\n * Get the pixel for a coordinate. This takes a coordinate in the user\n * projection and returns the corresponding pixel.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate A map coordinate.\n * @return {import(\"./pixel.js\").Pixel} A pixel position in the map viewport.\n * @api\n */\n PluggableMap.prototype.getPixelFromCoordinate = function (coordinate) {\n var viewCoordinate = fromUserCoordinate(coordinate, this.getView().getProjection());\n return this.getPixelFromCoordinateInternal(viewCoordinate);\n };\n /**\n * Get the pixel for a coordinate. This takes a coordinate in the map view\n * projection and returns the corresponding pixel.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate A map coordinate.\n * @return {import(\"./pixel.js\").Pixel} A pixel position in the map viewport.\n */\n PluggableMap.prototype.getPixelFromCoordinateInternal = function (coordinate) {\n var frameState = this.frameState_;\n if (!frameState) {\n return null;\n }\n else {\n return applyTransform(frameState.coordinateToPixelTransform, coordinate.slice(0, 2));\n }\n };\n /**\n * Get the map renderer.\n * @return {import(\"./renderer/Map.js\").default} Renderer\n */\n PluggableMap.prototype.getRenderer = function () {\n return this.renderer_;\n };\n /**\n * Get the size of this map.\n * @return {import(\"./size.js\").Size|undefined} The size in pixels of the map in the DOM.\n * @observable\n * @api\n */\n PluggableMap.prototype.getSize = function () {\n return /** @type {import(\"./size.js\").Size|undefined} */ (this.get(MapProperty.SIZE));\n };\n /**\n * Get the view associated with this map. A view manages properties such as\n * center and resolution.\n * @return {View} The view that controls this map.\n * @observable\n * @api\n */\n PluggableMap.prototype.getView = function () {\n return /** @type {View} */ (this.get(MapProperty.VIEW));\n };\n /**\n * Get the element that serves as the map viewport.\n * @return {HTMLElement} Viewport.\n * @api\n */\n PluggableMap.prototype.getViewport = function () {\n return this.viewport_;\n };\n /**\n * Get the element that serves as the container for overlays. Elements added to\n * this container will let mousedown and touchstart events through to the map,\n * so clicks and gestures on an overlay will trigger {@link module:ol/MapBrowserEvent~MapBrowserEvent}\n * events.\n * @return {!HTMLElement} The map's overlay container.\n */\n PluggableMap.prototype.getOverlayContainer = function () {\n return this.overlayContainer_;\n };\n /**\n * Get the element that serves as a container for overlays that don't allow\n * event propagation. Elements added to this container won't let mousedown and\n * touchstart events through to the map, so clicks and gestures on an overlay\n * don't trigger any {@link module:ol/MapBrowserEvent~MapBrowserEvent}.\n * @return {!HTMLElement} The map's overlay container that stops events.\n */\n PluggableMap.prototype.getOverlayContainerStopEvent = function () {\n return this.overlayContainerStopEvent_;\n };\n /**\n * @return {!Document} The document where the map is displayed.\n */\n PluggableMap.prototype.getOwnerDocument = function () {\n var targetElement = this.getTargetElement();\n return targetElement ? targetElement.ownerDocument : document;\n };\n /**\n * @param {import(\"./Tile.js\").default} tile Tile.\n * @param {string} tileSourceKey Tile source key.\n * @param {import(\"./coordinate.js\").Coordinate} tileCenter Tile center.\n * @param {number} tileResolution Tile resolution.\n * @return {number} Tile priority.\n */\n PluggableMap.prototype.getTilePriority = function (tile, tileSourceKey, tileCenter, tileResolution) {\n return getTilePriority(this.frameState_, tile, tileSourceKey, tileCenter, tileResolution);\n };\n /**\n * @param {UIEvent} browserEvent Browser event.\n * @param {string} [opt_type] Type.\n */\n PluggableMap.prototype.handleBrowserEvent = function (browserEvent, opt_type) {\n var type = opt_type || browserEvent.type;\n var mapBrowserEvent = new MapBrowserEvent(type, this, browserEvent);\n this.handleMapBrowserEvent(mapBrowserEvent);\n };\n /**\n * @param {MapBrowserEvent} mapBrowserEvent The event to handle.\n */\n PluggableMap.prototype.handleMapBrowserEvent = function (mapBrowserEvent) {\n if (!this.frameState_) {\n // With no view defined, we cannot translate pixels into geographical\n // coordinates so interactions cannot be used.\n return;\n }\n var originalEvent = /** @type {PointerEvent} */ (mapBrowserEvent.originalEvent);\n var eventType = originalEvent.type;\n if (eventType === PointerEventType.POINTERDOWN ||\n eventType === EventType.WHEEL ||\n eventType === EventType.KEYDOWN) {\n var doc = this.getOwnerDocument();\n var rootNode = this.viewport_.getRootNode\n ? this.viewport_.getRootNode()\n : doc;\n var target = /** @type {Node} */ (originalEvent.target);\n if (\n // Abort if the target is a child of the container for elements whose events are not meant\n // to be handled by map interactions.\n this.overlayContainerStopEvent_.contains(target) ||\n // Abort if the event target is a child of the container that is no longer in the page.\n // It's possible for the target to no longer be in the page if it has been removed in an\n // event listener, this might happen in a Control that recreates it's content based on\n // user interaction either manually or via a render in something like https://reactjs.org/\n !(rootNode === doc ? doc.documentElement : rootNode).contains(target)) {\n return;\n }\n }\n mapBrowserEvent.frameState = this.frameState_;\n if (this.dispatchEvent(mapBrowserEvent) !== false) {\n var interactionsArray = this.getInteractions().getArray().slice();\n for (var i = interactionsArray.length - 1; i >= 0; i--) {\n var interaction = interactionsArray[i];\n if (interaction.getMap() !== this ||\n !interaction.getActive() ||\n !this.getTargetElement()) {\n continue;\n }\n var cont = interaction.handleEvent(mapBrowserEvent);\n if (!cont || mapBrowserEvent.propagationStopped) {\n break;\n }\n }\n }\n };\n /**\n * @protected\n */\n PluggableMap.prototype.handlePostRender = function () {\n var frameState = this.frameState_;\n // Manage the tile queue\n // Image loads are expensive and a limited resource, so try to use them\n // efficiently:\n // * When the view is static we allow a large number of parallel tile loads\n // to complete the frame as quickly as possible.\n // * When animating or interacting, image loads can cause janks, so we reduce\n // the maximum number of loads per frame and limit the number of parallel\n // tile loads to remain reactive to view changes and to reduce the chance of\n // loading tiles that will quickly disappear from view.\n var tileQueue = this.tileQueue_;\n if (!tileQueue.isEmpty()) {\n var maxTotalLoading = this.maxTilesLoading_;\n var maxNewLoads = maxTotalLoading;\n if (frameState) {\n var hints = frameState.viewHints;\n if (hints[ViewHint.ANIMATING] || hints[ViewHint.INTERACTING]) {\n var lowOnFrameBudget = Date.now() - frameState.time > 8;\n maxTotalLoading = lowOnFrameBudget ? 0 : 8;\n maxNewLoads = lowOnFrameBudget ? 0 : 2;\n }\n }\n if (tileQueue.getTilesLoading() < maxTotalLoading) {\n tileQueue.reprioritize(); // FIXME only call if view has changed\n tileQueue.loadMoreTiles(maxTotalLoading, maxNewLoads);\n }\n }\n if (frameState &&\n this.hasListener(RenderEventType.RENDERCOMPLETE) &&\n !frameState.animate &&\n !this.tileQueue_.getTilesLoading() &&\n !this.getLoading()) {\n this.renderer_.dispatchRenderEvent(RenderEventType.RENDERCOMPLETE, frameState);\n }\n var postRenderFunctions = this.postRenderFunctions_;\n for (var i = 0, ii = postRenderFunctions.length; i < ii; ++i) {\n postRenderFunctions[i](this, frameState);\n }\n postRenderFunctions.length = 0;\n };\n /**\n * @private\n */\n PluggableMap.prototype.handleSizeChanged_ = function () {\n if (this.getView() && !this.getView().getAnimating()) {\n this.getView().resolveConstraints(0);\n }\n this.render();\n };\n /**\n * @private\n */\n PluggableMap.prototype.handleTargetChanged_ = function () {\n // target may be undefined, null, a string or an Element.\n // If it's a string we convert it to an Element before proceeding.\n // If it's not now an Element we remove the viewport from the DOM.\n // If it's an Element we append the viewport element to it.\n var targetElement;\n if (this.getTarget()) {\n targetElement = this.getTargetElement();\n }\n if (this.mapBrowserEventHandler_) {\n for (var i = 0, ii = this.keyHandlerKeys_.length; i < ii; ++i) {\n unlistenByKey(this.keyHandlerKeys_[i]);\n }\n this.keyHandlerKeys_ = null;\n this.viewport_.removeEventListener(EventType.CONTEXTMENU, this.boundHandleBrowserEvent_);\n this.viewport_.removeEventListener(EventType.WHEEL, this.boundHandleBrowserEvent_);\n if (this.handleResize_ !== undefined) {\n removeEventListener(EventType.RESIZE, this.handleResize_, false);\n this.handleResize_ = undefined;\n }\n this.mapBrowserEventHandler_.dispose();\n this.mapBrowserEventHandler_ = null;\n removeNode(this.viewport_);\n }\n if (!targetElement) {\n if (this.renderer_) {\n clearTimeout(this.postRenderTimeoutHandle_);\n this.postRenderTimeoutHandle_ = undefined;\n this.postRenderFunctions_.length = 0;\n this.renderer_.dispose();\n this.renderer_ = null;\n }\n if (this.animationDelayKey_) {\n cancelAnimationFrame(this.animationDelayKey_);\n this.animationDelayKey_ = undefined;\n }\n }\n else {\n targetElement.appendChild(this.viewport_);\n if (!this.renderer_) {\n this.renderer_ = this.createRenderer();\n }\n this.mapBrowserEventHandler_ = new MapBrowserEventHandler(this, this.moveTolerance_);\n for (var key in MapBrowserEventType) {\n this.mapBrowserEventHandler_.addEventListener(MapBrowserEventType[key], this.handleMapBrowserEvent.bind(this));\n }\n this.viewport_.addEventListener(EventType.CONTEXTMENU, this.boundHandleBrowserEvent_, false);\n this.viewport_.addEventListener(EventType.WHEEL, this.boundHandleBrowserEvent_, PASSIVE_EVENT_LISTENERS ? { passive: false } : false);\n var keyboardEventTarget = !this.keyboardEventTarget_\n ? targetElement\n : this.keyboardEventTarget_;\n this.keyHandlerKeys_ = [\n listen(keyboardEventTarget, EventType.KEYDOWN, this.handleBrowserEvent, this),\n listen(keyboardEventTarget, EventType.KEYPRESS, this.handleBrowserEvent, this),\n ];\n if (!this.handleResize_) {\n this.handleResize_ = this.updateSize.bind(this);\n window.addEventListener(EventType.RESIZE, this.handleResize_, false);\n }\n }\n this.updateSize();\n // updateSize calls setSize, so no need to call this.render\n // ourselves here.\n };\n /**\n * @private\n */\n PluggableMap.prototype.handleTileChange_ = function () {\n this.render();\n };\n /**\n * @private\n */\n PluggableMap.prototype.handleViewPropertyChanged_ = function () {\n this.render();\n };\n /**\n * @private\n */\n PluggableMap.prototype.handleViewChanged_ = function () {\n if (this.viewPropertyListenerKey_) {\n unlistenByKey(this.viewPropertyListenerKey_);\n this.viewPropertyListenerKey_ = null;\n }\n if (this.viewChangeListenerKey_) {\n unlistenByKey(this.viewChangeListenerKey_);\n this.viewChangeListenerKey_ = null;\n }\n var view = this.getView();\n if (view) {\n this.updateViewportSize_();\n this.viewPropertyListenerKey_ = listen(view, ObjectEventType.PROPERTYCHANGE, this.handleViewPropertyChanged_, this);\n this.viewChangeListenerKey_ = listen(view, EventType.CHANGE, this.handleViewPropertyChanged_, this);\n view.resolveConstraints(0);\n }\n this.render();\n };\n /**\n * @private\n */\n PluggableMap.prototype.handleLayerGroupChanged_ = function () {\n if (this.layerGroupPropertyListenerKeys_) {\n this.layerGroupPropertyListenerKeys_.forEach(unlistenByKey);\n this.layerGroupPropertyListenerKeys_ = null;\n }\n var layerGroup = this.getLayerGroup();\n if (layerGroup) {\n this.layerGroupPropertyListenerKeys_ = [\n listen(layerGroup, ObjectEventType.PROPERTYCHANGE, this.render, this),\n listen(layerGroup, EventType.CHANGE, this.render, this),\n ];\n }\n this.render();\n };\n /**\n * @return {boolean} Is rendered.\n */\n PluggableMap.prototype.isRendered = function () {\n return !!this.frameState_;\n };\n /**\n * Requests an immediate render in a synchronous manner.\n * @api\n */\n PluggableMap.prototype.renderSync = function () {\n if (this.animationDelayKey_) {\n cancelAnimationFrame(this.animationDelayKey_);\n }\n this.animationDelay_();\n };\n /**\n * Redraws all text after new fonts have loaded\n */\n PluggableMap.prototype.redrawText = function () {\n var layerStates = this.getLayerGroup().getLayerStatesArray();\n for (var i = 0, ii = layerStates.length; i < ii; ++i) {\n var layer = layerStates[i].layer;\n if (layer.hasRenderer()) {\n layer.getRenderer().handleFontsChanged();\n }\n }\n };\n /**\n * Request a map rendering (at the next animation frame).\n * @api\n */\n PluggableMap.prototype.render = function () {\n if (this.renderer_ && this.animationDelayKey_ === undefined) {\n this.animationDelayKey_ = requestAnimationFrame(this.animationDelay_);\n }\n };\n /**\n * Remove the given control from the map.\n * @param {import(\"./control/Control.js\").default} control Control.\n * @return {import(\"./control/Control.js\").default|undefined} The removed control (or undefined\n * if the control was not found).\n * @api\n */\n PluggableMap.prototype.removeControl = function (control) {\n return this.getControls().remove(control);\n };\n /**\n * Remove the given interaction from the map.\n * @param {import(\"./interaction/Interaction.js\").default} interaction Interaction to remove.\n * @return {import(\"./interaction/Interaction.js\").default|undefined} The removed interaction (or\n * undefined if the interaction was not found).\n * @api\n */\n PluggableMap.prototype.removeInteraction = function (interaction) {\n return this.getInteractions().remove(interaction);\n };\n /**\n * Removes the given layer from the map.\n * @param {import(\"./layer/Base.js\").default} layer Layer.\n * @return {import(\"./layer/Base.js\").default|undefined} The removed layer (or undefined if the\n * layer was not found).\n * @api\n */\n PluggableMap.prototype.removeLayer = function (layer) {\n var layers = this.getLayerGroup().getLayers();\n return layers.remove(layer);\n };\n /**\n * Remove the given overlay from the map.\n * @param {import(\"./Overlay.js\").default} overlay Overlay.\n * @return {import(\"./Overlay.js\").default|undefined} The removed overlay (or undefined\n * if the overlay was not found).\n * @api\n */\n PluggableMap.prototype.removeOverlay = function (overlay) {\n return this.getOverlays().remove(overlay);\n };\n /**\n * @param {number} time Time.\n * @private\n */\n PluggableMap.prototype.renderFrame_ = function (time) {\n var _this = this;\n var size = this.getSize();\n var view = this.getView();\n var previousFrameState = this.frameState_;\n /** @type {?FrameState} */\n var frameState = null;\n if (size !== undefined && hasArea(size) && view && view.isDef()) {\n var viewHints = view.getHints(this.frameState_ ? this.frameState_.viewHints : undefined);\n var viewState = view.getState();\n frameState = {\n animate: false,\n coordinateToPixelTransform: this.coordinateToPixelTransform_,\n declutterTree: null,\n extent: getForViewAndSize(viewState.center, viewState.resolution, viewState.rotation, size),\n index: this.frameIndex_++,\n layerIndex: 0,\n layerStatesArray: this.getLayerGroup().getLayerStatesArray(),\n pixelRatio: this.pixelRatio_,\n pixelToCoordinateTransform: this.pixelToCoordinateTransform_,\n postRenderFunctions: [],\n size: size,\n tileQueue: this.tileQueue_,\n time: time,\n usedTiles: {},\n viewState: viewState,\n viewHints: viewHints,\n wantedTiles: {},\n };\n }\n this.frameState_ = frameState;\n this.renderer_.renderFrame(frameState);\n if (frameState) {\n if (frameState.animate) {\n this.render();\n }\n Array.prototype.push.apply(this.postRenderFunctions_, frameState.postRenderFunctions);\n if (previousFrameState) {\n var moveStart = !this.previousExtent_ ||\n (!isEmpty(this.previousExtent_) &&\n !equals(frameState.extent, this.previousExtent_));\n if (moveStart) {\n this.dispatchEvent(new MapEvent(MapEventType.MOVESTART, this, previousFrameState));\n this.previousExtent_ = createOrUpdateEmpty(this.previousExtent_);\n }\n }\n var idle = this.previousExtent_ &&\n !frameState.viewHints[ViewHint.ANIMATING] &&\n !frameState.viewHints[ViewHint.INTERACTING] &&\n !equals(frameState.extent, this.previousExtent_);\n if (idle) {\n this.dispatchEvent(new MapEvent(MapEventType.MOVEEND, this, frameState));\n clone(frameState.extent, this.previousExtent_);\n }\n }\n this.dispatchEvent(new MapEvent(MapEventType.POSTRENDER, this, frameState));\n if (!this.postRenderTimeoutHandle_) {\n this.postRenderTimeoutHandle_ = setTimeout(function () {\n _this.postRenderTimeoutHandle_ = undefined;\n _this.handlePostRender();\n }, 0);\n }\n };\n /**\n * Sets the layergroup of this map.\n * @param {LayerGroup} layerGroup A layer group containing the layers in this map.\n * @observable\n * @api\n */\n PluggableMap.prototype.setLayerGroup = function (layerGroup) {\n this.set(MapProperty.LAYERGROUP, layerGroup);\n };\n /**\n * Set the size of this map.\n * @param {import(\"./size.js\").Size|undefined} size The size in pixels of the map in the DOM.\n * @observable\n * @api\n */\n PluggableMap.prototype.setSize = function (size) {\n this.set(MapProperty.SIZE, size);\n };\n /**\n * Set the target element to render this map into.\n * @param {HTMLElement|string|undefined} target The Element or id of the Element\n * that the map is rendered in.\n * @observable\n * @api\n */\n PluggableMap.prototype.setTarget = function (target) {\n this.set(MapProperty.TARGET, target);\n };\n /**\n * Set the view for this map.\n * @param {View} view The view that controls this map.\n * @observable\n * @api\n */\n PluggableMap.prototype.setView = function (view) {\n this.set(MapProperty.VIEW, view);\n };\n /**\n * Force a recalculation of the map viewport size. This should be called when\n * third-party code changes the size of the map viewport.\n * @api\n */\n PluggableMap.prototype.updateSize = function () {\n var targetElement = this.getTargetElement();\n var size = undefined;\n if (targetElement) {\n var computedStyle = getComputedStyle(targetElement);\n var width = targetElement.offsetWidth -\n parseFloat(computedStyle['borderLeftWidth']) -\n parseFloat(computedStyle['paddingLeft']) -\n parseFloat(computedStyle['paddingRight']) -\n parseFloat(computedStyle['borderRightWidth']);\n var height = targetElement.offsetHeight -\n parseFloat(computedStyle['borderTopWidth']) -\n parseFloat(computedStyle['paddingTop']) -\n parseFloat(computedStyle['paddingBottom']) -\n parseFloat(computedStyle['borderBottomWidth']);\n if (!isNaN(width) && !isNaN(height)) {\n size = [width, height];\n if (!hasArea(size)) {\n // eslint-disable-next-line\n console.warn(\"No map visible because the map container's width or height are 0.\");\n }\n }\n }\n this.setSize(size);\n this.updateViewportSize_();\n };\n /**\n * Recomputes the viewport size and save it on the view object (if any)\n * @private\n */\n PluggableMap.prototype.updateViewportSize_ = function () {\n var view = this.getView();\n if (view) {\n var size = undefined;\n var computedStyle = getComputedStyle(this.viewport_);\n if (computedStyle.width && computedStyle.height) {\n size = [\n parseInt(computedStyle.width, 10),\n parseInt(computedStyle.height, 10),\n ];\n }\n view.setViewportSize(size);\n }\n };\n return PluggableMap;\n}(BaseObject));\n/**\n * @param {MapOptions} options Map options.\n * @return {MapOptionsInternal} Internal map options.\n */\nfunction createOptionsInternal(options) {\n /**\n * @type {HTMLElement|Document}\n */\n var keyboardEventTarget = null;\n if (options.keyboardEventTarget !== undefined) {\n keyboardEventTarget =\n typeof options.keyboardEventTarget === 'string'\n ? document.getElementById(options.keyboardEventTarget)\n : options.keyboardEventTarget;\n }\n /**\n * @type {Object}\n */\n var values = {};\n var layerGroup = options.layers &&\n typeof ( /** @type {?} */(options.layers).getLayers) === 'function'\n ? /** @type {LayerGroup} */ (options.layers)\n : new LayerGroup({ layers: /** @type {Collection} */ (options.layers) });\n values[MapProperty.LAYERGROUP] = layerGroup;\n values[MapProperty.TARGET] = options.target;\n values[MapProperty.VIEW] =\n options.view !== undefined ? options.view : new View();\n var controls;\n if (options.controls !== undefined) {\n if (Array.isArray(options.controls)) {\n controls = new Collection(options.controls.slice());\n }\n else {\n assert(typeof ( /** @type {?} */(options.controls).getArray) === 'function', 47); // Expected `controls` to be an array or an `import(\"./Collection.js\").Collection`\n controls = /** @type {Collection} */ (options.controls);\n }\n }\n var interactions;\n if (options.interactions !== undefined) {\n if (Array.isArray(options.interactions)) {\n interactions = new Collection(options.interactions.slice());\n }\n else {\n assert(typeof ( /** @type {?} */(options.interactions).getArray) ===\n 'function', 48); // Expected `interactions` to be an array or an `import(\"./Collection.js\").Collection`\n interactions = /** @type {Collection} */ (options.interactions);\n }\n }\n var overlays;\n if (options.overlays !== undefined) {\n if (Array.isArray(options.overlays)) {\n overlays = new Collection(options.overlays.slice());\n }\n else {\n assert(typeof ( /** @type {?} */(options.overlays).getArray) === 'function', 49); // Expected `overlays` to be an array or an `import(\"./Collection.js\").Collection`\n overlays = options.overlays;\n }\n }\n else {\n overlays = new Collection();\n }\n return {\n controls: controls,\n interactions: interactions,\n keyboardEventTarget: keyboardEventTarget,\n overlays: overlays,\n values: values,\n };\n}\nexport default PluggableMap;\n//# sourceMappingURL=PluggableMap.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/control/Control\n */\nimport BaseObject from '../Object.js';\nimport MapEventType from '../MapEventType.js';\nimport { VOID } from '../functions.js';\nimport { listen, unlistenByKey } from '../events.js';\nimport { removeNode } from '../dom.js';\n/**\n * @typedef {Object} Options\n * @property {HTMLElement} [element] The element is the control's\n * container element. This only needs to be specified if you're developing\n * a custom control.\n * @property {function(import(\"../MapEvent.js\").default):void} [render] Function called when\n * the control should be re-rendered. This is called in a `requestAnimationFrame`\n * callback.\n * @property {HTMLElement|string} [target] Specify a target if you want\n * the control to be rendered outside of the map's viewport.\n */\n/**\n * @classdesc\n * A control is a visible widget with a DOM element in a fixed position on the\n * screen. They can involve user input (buttons), or be informational only;\n * the position is determined using CSS. By default these are placed in the\n * container with CSS class name `ol-overlaycontainer-stopevent`, but can use\n * any outside DOM element.\n *\n * This is the base class for controls. You can use it for simple custom\n * controls by creating the element with listeners, creating an instance:\n * ```js\n * var myControl = new Control({element: myElement});\n * ```\n * and then adding this to the map.\n *\n * The main advantage of having this as a control rather than a simple separate\n * DOM element is that preventing propagation is handled for you. Controls\n * will also be objects in a {@link module:ol/Collection~Collection}, so you can use their methods.\n *\n * You can also extend this base for your own control class. See\n * examples/custom-controls for an example of how to do this.\n *\n * @api\n */\nvar Control = /** @class */ (function (_super) {\n __extends(Control, _super);\n /**\n * @param {Options} options Control options.\n */\n function Control(options) {\n var _this = _super.call(this) || this;\n var element = options.element;\n if (element && !options.target && !element.style.pointerEvents) {\n element.style.pointerEvents = 'auto';\n }\n /**\n * @protected\n * @type {HTMLElement}\n */\n _this.element = element ? element : null;\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.target_ = null;\n /**\n * @private\n * @type {import(\"../PluggableMap.js\").default}\n */\n _this.map_ = null;\n /**\n * @protected\n * @type {!Array}\n */\n _this.listenerKeys = [];\n if (options.render) {\n _this.render = options.render;\n }\n if (options.target) {\n _this.setTarget(options.target);\n }\n return _this;\n }\n /**\n * Clean up.\n */\n Control.prototype.disposeInternal = function () {\n removeNode(this.element);\n _super.prototype.disposeInternal.call(this);\n };\n /**\n * Get the map associated with this control.\n * @return {import(\"../PluggableMap.js\").default} Map.\n * @api\n */\n Control.prototype.getMap = function () {\n return this.map_;\n };\n /**\n * Remove the control from its current map and attach it to the new map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../PluggableMap.js\").default} map Map.\n * @api\n */\n Control.prototype.setMap = function (map) {\n if (this.map_) {\n removeNode(this.element);\n }\n for (var i = 0, ii = this.listenerKeys.length; i < ii; ++i) {\n unlistenByKey(this.listenerKeys[i]);\n }\n this.listenerKeys.length = 0;\n this.map_ = map;\n if (this.map_) {\n var target = this.target_\n ? this.target_\n : map.getOverlayContainerStopEvent();\n target.appendChild(this.element);\n if (this.render !== VOID) {\n this.listenerKeys.push(listen(map, MapEventType.POSTRENDER, this.render, this));\n }\n map.render();\n }\n };\n /**\n * Renders the control.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @api\n */\n Control.prototype.render = function (mapEvent) { };\n /**\n * This function is used to set a target element for the control. It has no\n * effect if it is called after the control has been added to the map (i.e.\n * after `setMap` is called on the control). If no `target` is set in the\n * options passed to the control constructor and if `setTarget` is not called\n * then the control is added to the map's overlay container.\n * @param {HTMLElement|string} target Target.\n * @api\n */\n Control.prototype.setTarget = function (target) {\n this.target_ =\n typeof target === 'string' ? document.getElementById(target) : target;\n };\n return Control;\n}(BaseObject));\nexport default Control;\n//# sourceMappingURL=Control.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/control/Attribution\n */\nimport Control from './Control.js';\nimport EventType from '../events/EventType.js';\nimport { CLASS_COLLAPSED, CLASS_CONTROL, CLASS_UNSELECTABLE } from '../css.js';\nimport { equals } from '../array.js';\nimport { inView } from '../layer/Layer.js';\nimport { removeChildren, replaceNode } from '../dom.js';\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-attribution'] CSS class name.\n * @property {HTMLElement|string} [target] Specify a target if you\n * want the control to be rendered outside of the map's\n * viewport.\n * @property {boolean} [collapsible] Specify if attributions can\n * be collapsed. If not specified, sources control this behavior with their\n * `attributionsCollapsible` setting.\n * @property {boolean} [collapsed=true] Specify if attributions should\n * be collapsed at startup.\n * @property {string} [tipLabel='Attributions'] Text label to use for the button tip.\n * @property {string} [label='i'] Text label to use for the\n * collapsed attributions button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [expandClassName=className + '-expand'] CSS class name for the\n * collapsed attributions button.\n * @property {string|HTMLElement} [collapseLabel='»'] Text label to use\n * for the expanded attributions button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [collapseClassName=className + '-collapse'] CSS class name for the\n * expanded attributions button.\n * @property {function(import(\"../MapEvent.js\").default):void} [render] Function called when\n * the control should be re-rendered. This is called in a `requestAnimationFrame`\n * callback.\n */\n/**\n * @classdesc\n * Control to show all the attributions associated with the layer sources\n * in the map. This control is one of the default controls included in maps.\n * By default it will show in the bottom right portion of the map, but this can\n * be changed by using a css selector for `.ol-attribution`.\n *\n * @api\n */\nvar Attribution = /** @class */ (function (_super) {\n __extends(Attribution, _super);\n /**\n * @param {Options} [opt_options] Attribution options.\n */\n function Attribution(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n element: document.createElement('div'),\n render: options.render,\n target: options.target,\n }) || this;\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.ulElement_ = document.createElement('ul');\n /**\n * @private\n * @type {boolean}\n */\n _this.collapsed_ =\n options.collapsed !== undefined ? options.collapsed : true;\n /**\n * @private\n * @type {boolean}\n */\n _this.userCollapsed_ = _this.collapsed_;\n /**\n * @private\n * @type {boolean}\n */\n _this.overrideCollapsible_ = options.collapsible !== undefined;\n /**\n * @private\n * @type {boolean}\n */\n _this.collapsible_ =\n options.collapsible !== undefined ? options.collapsible : true;\n if (!_this.collapsible_) {\n _this.collapsed_ = false;\n }\n var className = options.className !== undefined ? options.className : 'ol-attribution';\n var tipLabel = options.tipLabel !== undefined ? options.tipLabel : 'Attributions';\n var expandClassName = options.expandClassName !== undefined\n ? options.expandClassName\n : className + '-expand';\n var collapseLabel = options.collapseLabel !== undefined ? options.collapseLabel : '\\u00BB';\n var collapseClassName = options.collapseClassName !== undefined\n ? options.collapseClassName\n : className + '-collpase';\n if (typeof collapseLabel === 'string') {\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.collapseLabel_ = document.createElement('span');\n _this.collapseLabel_.textContent = collapseLabel;\n _this.collapseLabel_.className = collapseClassName;\n }\n else {\n _this.collapseLabel_ = collapseLabel;\n }\n var label = options.label !== undefined ? options.label : 'i';\n if (typeof label === 'string') {\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.label_ = document.createElement('span');\n _this.label_.textContent = label;\n _this.label_.className = expandClassName;\n }\n else {\n _this.label_ = label;\n }\n var activeLabel = _this.collapsible_ && !_this.collapsed_ ? _this.collapseLabel_ : _this.label_;\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.toggleButton_ = document.createElement('button');\n _this.toggleButton_.setAttribute('type', 'button');\n _this.toggleButton_.setAttribute('aria-expanded', String(!_this.collapsed_));\n _this.toggleButton_.title = tipLabel;\n _this.toggleButton_.appendChild(activeLabel);\n _this.toggleButton_.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this), false);\n var cssClasses = className +\n ' ' +\n CLASS_UNSELECTABLE +\n ' ' +\n CLASS_CONTROL +\n (_this.collapsed_ && _this.collapsible_ ? ' ' + CLASS_COLLAPSED : '') +\n (_this.collapsible_ ? '' : ' ol-uncollapsible');\n var element = _this.element;\n element.className = cssClasses;\n element.appendChild(_this.toggleButton_);\n element.appendChild(_this.ulElement_);\n /**\n * A list of currently rendered resolutions.\n * @type {Array}\n * @private\n */\n _this.renderedAttributions_ = [];\n /**\n * @private\n * @type {boolean}\n */\n _this.renderedVisible_ = true;\n return _this;\n }\n /**\n * Collect a list of visible attributions and set the collapsible state.\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @return {Array} Attributions.\n * @private\n */\n Attribution.prototype.collectSourceAttributions_ = function (frameState) {\n /**\n * Used to determine if an attribution already exists.\n * @type {!Object}\n */\n var lookup = {};\n /**\n * A list of visible attributions.\n * @type {Array}\n */\n var visibleAttributions = [];\n var collapsible = true;\n var layerStatesArray = frameState.layerStatesArray;\n for (var i = 0, ii = layerStatesArray.length; i < ii; ++i) {\n var layerState = layerStatesArray[i];\n if (!inView(layerState, frameState.viewState)) {\n continue;\n }\n var source = /** @type {import(\"../layer/Layer.js\").default} */ (layerState.layer).getSource();\n if (!source) {\n continue;\n }\n var attributionGetter = source.getAttributions();\n if (!attributionGetter) {\n continue;\n }\n var attributions = attributionGetter(frameState);\n if (!attributions) {\n continue;\n }\n collapsible =\n collapsible && source.getAttributionsCollapsible() !== false;\n if (Array.isArray(attributions)) {\n for (var j = 0, jj = attributions.length; j < jj; ++j) {\n if (!(attributions[j] in lookup)) {\n visibleAttributions.push(attributions[j]);\n lookup[attributions[j]] = true;\n }\n }\n }\n else {\n if (!(attributions in lookup)) {\n visibleAttributions.push(attributions);\n lookup[attributions] = true;\n }\n }\n }\n if (!this.overrideCollapsible_) {\n this.setCollapsible(collapsible);\n }\n return visibleAttributions;\n };\n /**\n * @private\n * @param {?import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n */\n Attribution.prototype.updateElement_ = function (frameState) {\n if (!frameState) {\n if (this.renderedVisible_) {\n this.element.style.display = 'none';\n this.renderedVisible_ = false;\n }\n return;\n }\n var attributions = this.collectSourceAttributions_(frameState);\n var visible = attributions.length > 0;\n if (this.renderedVisible_ != visible) {\n this.element.style.display = visible ? '' : 'none';\n this.renderedVisible_ = visible;\n }\n if (equals(attributions, this.renderedAttributions_)) {\n return;\n }\n removeChildren(this.ulElement_);\n // append the attributions\n for (var i = 0, ii = attributions.length; i < ii; ++i) {\n var element = document.createElement('li');\n element.innerHTML = attributions[i];\n this.ulElement_.appendChild(element);\n }\n this.renderedAttributions_ = attributions;\n };\n /**\n * @param {MouseEvent} event The event to handle\n * @private\n */\n Attribution.prototype.handleClick_ = function (event) {\n event.preventDefault();\n this.handleToggle_();\n this.userCollapsed_ = this.collapsed_;\n };\n /**\n * @private\n */\n Attribution.prototype.handleToggle_ = function () {\n this.element.classList.toggle(CLASS_COLLAPSED);\n if (this.collapsed_) {\n replaceNode(this.collapseLabel_, this.label_);\n }\n else {\n replaceNode(this.label_, this.collapseLabel_);\n }\n this.collapsed_ = !this.collapsed_;\n this.toggleButton_.setAttribute('aria-expanded', String(!this.collapsed_));\n };\n /**\n * Return `true` if the attribution is collapsible, `false` otherwise.\n * @return {boolean} True if the widget is collapsible.\n * @api\n */\n Attribution.prototype.getCollapsible = function () {\n return this.collapsible_;\n };\n /**\n * Set whether the attribution should be collapsible.\n * @param {boolean} collapsible True if the widget is collapsible.\n * @api\n */\n Attribution.prototype.setCollapsible = function (collapsible) {\n if (this.collapsible_ === collapsible) {\n return;\n }\n this.collapsible_ = collapsible;\n this.element.classList.toggle('ol-uncollapsible');\n if (this.userCollapsed_) {\n this.handleToggle_();\n }\n };\n /**\n * Collapse or expand the attribution according to the passed parameter. Will\n * not do anything if the attribution isn't collapsible or if the current\n * collapsed state is already the one requested.\n * @param {boolean} collapsed True if the widget is collapsed.\n * @api\n */\n Attribution.prototype.setCollapsed = function (collapsed) {\n this.userCollapsed_ = collapsed;\n if (!this.collapsible_ || this.collapsed_ === collapsed) {\n return;\n }\n this.handleToggle_();\n };\n /**\n * Return `true` when the attribution is currently collapsed or `false`\n * otherwise.\n * @return {boolean} True if the widget is collapsed.\n * @api\n */\n Attribution.prototype.getCollapsed = function () {\n return this.collapsed_;\n };\n /**\n * Update the attribution element.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @override\n */\n Attribution.prototype.render = function (mapEvent) {\n this.updateElement_(mapEvent.frameState);\n };\n return Attribution;\n}(Control));\nexport default Attribution;\n//# sourceMappingURL=Attribution.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/control/Rotate\n */\nimport Control from './Control.js';\nimport EventType from '../events/EventType.js';\nimport { CLASS_CONTROL, CLASS_HIDDEN, CLASS_UNSELECTABLE } from '../css.js';\nimport { easeOut } from '../easing.js';\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-rotate'] CSS class name.\n * @property {string|HTMLElement} [label='⇧'] Text label to use for the rotate button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [tipLabel='Reset rotation'] Text label to use for the rotate tip.\n * @property {string} [compassClassName='ol-compass'] CSS class name for the compass.\n * @property {number} [duration=250] Animation duration in milliseconds.\n * @property {boolean} [autoHide=true] Hide the control when rotation is 0.\n * @property {function(import(\"../MapEvent.js\").default):void} [render] Function called when the control should\n * be re-rendered. This is called in a `requestAnimationFrame` callback.\n * @property {function():void} [resetNorth] Function called when the control is clicked.\n * This will override the default `resetNorth`.\n * @property {HTMLElement|string} [target] Specify a target if you want the control to be\n * rendered outside of the map's viewport.\n */\n/**\n * @classdesc\n * A button control to reset rotation to 0.\n * To style this control use css selector `.ol-rotate`. A `.ol-hidden` css\n * selector is added to the button when the rotation is 0.\n *\n * @api\n */\nvar Rotate = /** @class */ (function (_super) {\n __extends(Rotate, _super);\n /**\n * @param {Options} [opt_options] Rotate options.\n */\n function Rotate(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n element: document.createElement('div'),\n render: options.render,\n target: options.target,\n }) || this;\n var className = options.className !== undefined ? options.className : 'ol-rotate';\n var label = options.label !== undefined ? options.label : '\\u21E7';\n var compassClassName = options.compassClassName !== undefined\n ? options.compassClassName\n : 'ol-compass';\n /**\n * @type {HTMLElement}\n * @private\n */\n _this.label_ = null;\n if (typeof label === 'string') {\n _this.label_ = document.createElement('span');\n _this.label_.className = compassClassName;\n _this.label_.textContent = label;\n }\n else {\n _this.label_ = label;\n _this.label_.classList.add(compassClassName);\n }\n var tipLabel = options.tipLabel ? options.tipLabel : 'Reset rotation';\n var button = document.createElement('button');\n button.className = className + '-reset';\n button.setAttribute('type', 'button');\n button.title = tipLabel;\n button.appendChild(_this.label_);\n button.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this), false);\n var cssClasses = className + ' ' + CLASS_UNSELECTABLE + ' ' + CLASS_CONTROL;\n var element = _this.element;\n element.className = cssClasses;\n element.appendChild(button);\n _this.callResetNorth_ = options.resetNorth ? options.resetNorth : undefined;\n /**\n * @type {number}\n * @private\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 250;\n /**\n * @type {boolean}\n * @private\n */\n _this.autoHide_ = options.autoHide !== undefined ? options.autoHide : true;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.rotation_ = undefined;\n if (_this.autoHide_) {\n _this.element.classList.add(CLASS_HIDDEN);\n }\n return _this;\n }\n /**\n * @param {MouseEvent} event The event to handle\n * @private\n */\n Rotate.prototype.handleClick_ = function (event) {\n event.preventDefault();\n if (this.callResetNorth_ !== undefined) {\n this.callResetNorth_();\n }\n else {\n this.resetNorth_();\n }\n };\n /**\n * @private\n */\n Rotate.prototype.resetNorth_ = function () {\n var map = this.getMap();\n var view = map.getView();\n if (!view) {\n // the map does not have a view, so we can't act\n // upon it\n return;\n }\n var rotation = view.getRotation();\n if (rotation !== undefined) {\n if (this.duration_ > 0 && rotation % (2 * Math.PI) !== 0) {\n view.animate({\n rotation: 0,\n duration: this.duration_,\n easing: easeOut,\n });\n }\n else {\n view.setRotation(0);\n }\n }\n };\n /**\n * Update the rotate control element.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @override\n */\n Rotate.prototype.render = function (mapEvent) {\n var frameState = mapEvent.frameState;\n if (!frameState) {\n return;\n }\n var rotation = frameState.viewState.rotation;\n if (rotation != this.rotation_) {\n var transform = 'rotate(' + rotation + 'rad)';\n if (this.autoHide_) {\n var contains = this.element.classList.contains(CLASS_HIDDEN);\n if (!contains && rotation === 0) {\n this.element.classList.add(CLASS_HIDDEN);\n }\n else if (contains && rotation !== 0) {\n this.element.classList.remove(CLASS_HIDDEN);\n }\n }\n this.label_.style.transform = transform;\n }\n this.rotation_ = rotation;\n };\n return Rotate;\n}(Control));\nexport default Rotate;\n//# sourceMappingURL=Rotate.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/control/Zoom\n */\nimport Control from './Control.js';\nimport EventType from '../events/EventType.js';\nimport { CLASS_CONTROL, CLASS_UNSELECTABLE } from '../css.js';\nimport { easeOut } from '../easing.js';\n/**\n * @typedef {Object} Options\n * @property {number} [duration=250] Animation duration in milliseconds.\n * @property {string} [className='ol-zoom'] CSS class name.\n * @property {string} [zoomInClassName=className + '-in'] CSS class name for the zoom-in button.\n * @property {string} [zoomOutClassName=className + '-out'] CSS class name for the zoom-out button.\n * @property {string|HTMLElement} [zoomInLabel='+'] Text label to use for the zoom-in\n * button. Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string|HTMLElement} [zoomOutLabel='-'] Text label to use for the zoom-out button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [zoomInTipLabel='Zoom in'] Text label to use for the button tip.\n * @property {string} [zoomOutTipLabel='Zoom out'] Text label to use for the button tip.\n * @property {number} [delta=1] The zoom delta applied on each click.\n * @property {HTMLElement|string} [target] Specify a target if you want the control to be\n * rendered outside of the map's viewport.\n */\n/**\n * @classdesc\n * A control with 2 buttons, one for zoom in and one for zoom out.\n * This control is one of the default controls of a map. To style this control\n * use css selectors `.ol-zoom-in` and `.ol-zoom-out`.\n *\n * @api\n */\nvar Zoom = /** @class */ (function (_super) {\n __extends(Zoom, _super);\n /**\n * @param {Options} [opt_options] Zoom options.\n */\n function Zoom(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n element: document.createElement('div'),\n target: options.target,\n }) || this;\n var className = options.className !== undefined ? options.className : 'ol-zoom';\n var delta = options.delta !== undefined ? options.delta : 1;\n var zoomInClassName = options.zoomInClassName !== undefined\n ? options.zoomInClassName\n : className + '-in';\n var zoomOutClassName = options.zoomOutClassName !== undefined\n ? options.zoomOutClassName\n : className + '-out';\n var zoomInLabel = options.zoomInLabel !== undefined ? options.zoomInLabel : '+';\n var zoomOutLabel = options.zoomOutLabel !== undefined ? options.zoomOutLabel : '\\u2212';\n var zoomInTipLabel = options.zoomInTipLabel !== undefined ? options.zoomInTipLabel : 'Zoom in';\n var zoomOutTipLabel = options.zoomOutTipLabel !== undefined\n ? options.zoomOutTipLabel\n : 'Zoom out';\n var inElement = document.createElement('button');\n inElement.className = zoomInClassName;\n inElement.setAttribute('type', 'button');\n inElement.title = zoomInTipLabel;\n inElement.appendChild(typeof zoomInLabel === 'string'\n ? document.createTextNode(zoomInLabel)\n : zoomInLabel);\n inElement.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this, delta), false);\n var outElement = document.createElement('button');\n outElement.className = zoomOutClassName;\n outElement.setAttribute('type', 'button');\n outElement.title = zoomOutTipLabel;\n outElement.appendChild(typeof zoomOutLabel === 'string'\n ? document.createTextNode(zoomOutLabel)\n : zoomOutLabel);\n outElement.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this, -delta), false);\n var cssClasses = className + ' ' + CLASS_UNSELECTABLE + ' ' + CLASS_CONTROL;\n var element = _this.element;\n element.className = cssClasses;\n element.appendChild(inElement);\n element.appendChild(outElement);\n /**\n * @type {number}\n * @private\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 250;\n return _this;\n }\n /**\n * @param {number} delta Zoom delta.\n * @param {MouseEvent} event The event to handle\n * @private\n */\n Zoom.prototype.handleClick_ = function (delta, event) {\n event.preventDefault();\n this.zoomByDelta_(delta);\n };\n /**\n * @param {number} delta Zoom delta.\n * @private\n */\n Zoom.prototype.zoomByDelta_ = function (delta) {\n var map = this.getMap();\n var view = map.getView();\n if (!view) {\n // the map does not have a view, so we can't act\n // upon it\n return;\n }\n var currentZoom = view.getZoom();\n if (currentZoom !== undefined) {\n var newZoom = view.getConstrainedZoom(currentZoom + delta);\n if (this.duration_ > 0) {\n if (view.getAnimating()) {\n view.cancelAnimations();\n }\n view.animate({\n zoom: newZoom,\n duration: this.duration_,\n easing: easeOut,\n });\n }\n else {\n view.setZoom(newZoom);\n }\n }\n };\n return Zoom;\n}(Control));\nexport default Zoom;\n//# sourceMappingURL=Zoom.js.map","/**\n * @module ol/control\n */\nimport Attribution from './control/Attribution.js';\nimport Collection from './Collection.js';\nimport Rotate from './control/Rotate.js';\nimport Zoom from './control/Zoom.js';\nexport { default as Attribution } from './control/Attribution.js';\nexport { default as Control } from './control/Control.js';\nexport { default as FullScreen } from './control/FullScreen.js';\nexport { default as MousePosition } from './control/MousePosition.js';\nexport { default as OverviewMap } from './control/OverviewMap.js';\nexport { default as Rotate } from './control/Rotate.js';\nexport { default as ScaleLine } from './control/ScaleLine.js';\nexport { default as Zoom } from './control/Zoom.js';\nexport { default as ZoomSlider } from './control/ZoomSlider.js';\nexport { default as ZoomToExtent } from './control/ZoomToExtent.js';\n/**\n * @typedef {Object} DefaultsOptions\n * @property {boolean} [attribution=true] Include\n * {@link module:ol/control/Attribution~Attribution}.\n * @property {import(\"./control/Attribution.js\").Options} [attributionOptions]\n * Options for {@link module:ol/control/Attribution~Attribution}.\n * @property {boolean} [rotate=true] Include\n * {@link module:ol/control/Rotate~Rotate}.\n * @property {import(\"./control/Rotate.js\").Options} [rotateOptions] Options\n * for {@link module:ol/control/Rotate~Rotate}.\n * @property {boolean} [zoom] Include {@link module:ol/control/Zoom~Zoom}.\n * @property {import(\"./control/Zoom.js\").Options} [zoomOptions] Options for\n * {@link module:ol/control/Zoom~Zoom}.\n * @api\n */\n/**\n * Set of controls included in maps by default. Unless configured otherwise,\n * this returns a collection containing an instance of each of the following\n * controls:\n * * {@link module:ol/control/Zoom~Zoom}\n * * {@link module:ol/control/Rotate~Rotate}\n * * {@link module:ol/control/Attribution~Attribution}\n *\n * @param {DefaultsOptions} [opt_options]\n * Defaults options.\n * @return {Collection}\n * Controls.\n * @api\n */\nexport function defaults(opt_options) {\n var options = opt_options ? opt_options : {};\n var controls = new Collection();\n var zoomControl = options.zoom !== undefined ? options.zoom : true;\n if (zoomControl) {\n controls.push(new Zoom(options.zoomOptions));\n }\n var rotateControl = options.rotate !== undefined ? options.rotate : true;\n if (rotateControl) {\n controls.push(new Rotate(options.rotateOptions));\n }\n var attributionControl = options.attribution !== undefined ? options.attribution : true;\n if (attributionControl) {\n controls.push(new Attribution(options.attributionOptions));\n }\n return controls;\n}\n//# sourceMappingURL=control.js.map","/**\n * @module ol/interaction/Property\n */\n/**\n * @enum {string}\n */\nexport default {\n ACTIVE: 'active',\n};\n//# sourceMappingURL=Property.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/interaction/Interaction\n */\nimport BaseObject from '../Object.js';\nimport InteractionProperty from './Property.js';\nimport { easeOut, linear } from '../easing.js';\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} InteractionOnSignature\n */\n/**\n * Object literal with config options for interactions.\n * @typedef {Object} InteractionOptions\n * @property {function(import(\"../MapBrowserEvent.js\").default):boolean} handleEvent\n * Method called by the map to notify the interaction that a browser event was\n * dispatched to the map. If the function returns a falsy value, propagation of\n * the event to other interactions in the map's interactions chain will be\n * prevented (this includes functions with no explicit return). The interactions\n * are traversed in reverse order of the interactions collection of the map.\n */\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * User actions that change the state of the map. Some are similar to controls,\n * but are not associated with a DOM element.\n * For example, {@link module:ol/interaction/KeyboardZoom~KeyboardZoom} is\n * functionally the same as {@link module:ol/control/Zoom~Zoom}, but triggered\n * by a keyboard event not a button element event.\n * Although interactions do not have a DOM element, some of them do render\n * vectors and so are visible on the screen.\n * @api\n */\nvar Interaction = /** @class */ (function (_super) {\n __extends(Interaction, _super);\n /**\n * @param {InteractionOptions} [opt_options] Options.\n */\n function Interaction(opt_options) {\n var _this = _super.call(this) || this;\n /***\n * @type {InteractionOnSignature}\n */\n _this.on;\n /***\n * @type {InteractionOnSignature}\n */\n _this.once;\n /***\n * @type {InteractionOnSignature}\n */\n _this.un;\n if (opt_options && opt_options.handleEvent) {\n _this.handleEvent = opt_options.handleEvent;\n }\n /**\n * @private\n * @type {import(\"../PluggableMap.js\").default}\n */\n _this.map_ = null;\n _this.setActive(true);\n return _this;\n }\n /**\n * Return whether the interaction is currently active.\n * @return {boolean} `true` if the interaction is active, `false` otherwise.\n * @observable\n * @api\n */\n Interaction.prototype.getActive = function () {\n return /** @type {boolean} */ (this.get(InteractionProperty.ACTIVE));\n };\n /**\n * Get the map associated with this interaction.\n * @return {import(\"../PluggableMap.js\").default} Map.\n * @api\n */\n Interaction.prototype.getMap = function () {\n return this.map_;\n };\n /**\n * Handles the {@link module:ol/MapBrowserEvent map browser event}.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n * @api\n */\n Interaction.prototype.handleEvent = function (mapBrowserEvent) {\n return true;\n };\n /**\n * Activate or deactivate the interaction.\n * @param {boolean} active Active.\n * @observable\n * @api\n */\n Interaction.prototype.setActive = function (active) {\n this.set(InteractionProperty.ACTIVE, active);\n };\n /**\n * Remove the interaction from its current map and attach it to the new map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../PluggableMap.js\").default} map Map.\n */\n Interaction.prototype.setMap = function (map) {\n this.map_ = map;\n };\n return Interaction;\n}(BaseObject));\n/**\n * @param {import(\"../View.js\").default} view View.\n * @param {import(\"../coordinate.js\").Coordinate} delta Delta.\n * @param {number} [opt_duration] Duration.\n */\nexport function pan(view, delta, opt_duration) {\n var currentCenter = view.getCenterInternal();\n if (currentCenter) {\n var center = [currentCenter[0] + delta[0], currentCenter[1] + delta[1]];\n view.animateInternal({\n duration: opt_duration !== undefined ? opt_duration : 250,\n easing: linear,\n center: view.getConstrainedCenter(center),\n });\n }\n}\n/**\n * @param {import(\"../View.js\").default} view View.\n * @param {number} delta Delta from previous zoom level.\n * @param {import(\"../coordinate.js\").Coordinate} [opt_anchor] Anchor coordinate in the user projection.\n * @param {number} [opt_duration] Duration.\n */\nexport function zoomByDelta(view, delta, opt_anchor, opt_duration) {\n var currentZoom = view.getZoom();\n if (currentZoom === undefined) {\n return;\n }\n var newZoom = view.getConstrainedZoom(currentZoom + delta);\n var newResolution = view.getResolutionForZoom(newZoom);\n if (view.getAnimating()) {\n view.cancelAnimations();\n }\n view.animate({\n resolution: newResolution,\n anchor: opt_anchor,\n duration: opt_duration !== undefined ? opt_duration : 250,\n easing: easeOut,\n });\n}\nexport default Interaction;\n//# sourceMappingURL=Interaction.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/interaction/DoubleClickZoom\n */\nimport Interaction, { zoomByDelta } from './Interaction.js';\nimport MapBrowserEventType from '../MapBrowserEventType.js';\n/**\n * @typedef {Object} Options\n * @property {number} [duration=250] Animation duration in milliseconds.\n * @property {number} [delta=1] The zoom delta applied on each double click.\n */\n/**\n * @classdesc\n * Allows the user to zoom by double-clicking on the map.\n * @api\n */\nvar DoubleClickZoom = /** @class */ (function (_super) {\n __extends(DoubleClickZoom, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function DoubleClickZoom(opt_options) {\n var _this = _super.call(this) || this;\n var options = opt_options ? opt_options : {};\n /**\n * @private\n * @type {number}\n */\n _this.delta_ = options.delta ? options.delta : 1;\n /**\n * @private\n * @type {number}\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 250;\n return _this;\n }\n /**\n * Handles the {@link module:ol/MapBrowserEvent map browser event} (if it was a\n * doubleclick) and eventually zooms the map.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n */\n DoubleClickZoom.prototype.handleEvent = function (mapBrowserEvent) {\n var stopEvent = false;\n if (mapBrowserEvent.type == MapBrowserEventType.DBLCLICK) {\n var browserEvent = /** @type {MouseEvent} */ (mapBrowserEvent.originalEvent);\n var map = mapBrowserEvent.map;\n var anchor = mapBrowserEvent.coordinate;\n var delta = browserEvent.shiftKey ? -this.delta_ : this.delta_;\n var view = map.getView();\n zoomByDelta(view, delta, anchor, this.duration_);\n browserEvent.preventDefault();\n stopEvent = true;\n }\n return !stopEvent;\n };\n return DoubleClickZoom;\n}(Interaction));\nexport default DoubleClickZoom;\n//# sourceMappingURL=DoubleClickZoom.js.map","var __extends = (this && this.__extends) || (function () {\n var 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 return function (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})();\n/**\n * @module ol/interaction/Pointer\n */\nimport Interaction from './Interaction.js';\nimport MapBrowserEventType from '../MapBrowserEventType.js';\nimport { getValues } from '../obj.js';\n/**\n * @typedef {Object} Options\n * @property {function(import(\"../MapBrowserEvent.js\").default):boolean} [handleDownEvent]\n * Function handling \"down\" events. If the function returns `true` then a drag\n * sequence is started.\n * @property {function(import(\"../MapBrowserEvent.js\").default):void} [handleDragEvent]\n * Function handling \"drag\" events. This function is called on \"move\" events\n * during a drag sequence.\n * @property {function(import(\"../MapBrowserEvent.js\").default):boolean} [handleEvent]\n * Method called by the map to notify the interaction that a browser event was\n * dispatched to the map. The function may return `false` to prevent the\n * propagation of the event to other interactions in the map's interactions\n * chain.\n * @property {function(import(\"../MapBrowserEvent.js\").default):void} [handleMoveEvent]\n * Function handling \"move\" events. This function is called on \"move\" events.\n * This functions is also called during a drag sequence, so during a drag\n * sequence both the `handleDragEvent` function and this function are called.\n * If `handleDownEvent` is defined and it returns true this function will not\n * be called during a drag sequence.\n * @property {function(import(\"../MapBrowserEvent.js\").default):boolean} [handleUpEvent]\n * Function handling \"up\" events. If the function returns `false` then the\n * current drag sequence is stopped.\n * @property {function(boolean):boolean} [stopDown]\n * Should the down event be propagated to other interactions, or should be\n * stopped?\n */\n/**\n * @classdesc\n * Base class that calls user-defined functions on `down`, `move` and `up`\n * events. This class also manages \"drag sequences\".\n *\n * When the `handleDownEvent` user function returns `true` a drag sequence is\n * started. During a drag sequence the `handleDragEvent` user function is\n * called on `move` events. The drag sequence ends when the `handleUpEvent`\n * user function is called and returns `false`.\n * @api\n */\nvar PointerInteraction = /** @class */ (function (_super) {\n __extends(PointerInteraction, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function PointerInteraction(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, \n /** @type {import(\"./Interaction.js\").InteractionOptions} */ (options)) || this;\n if (options.handleDownEvent) {\n _this.handleDownEvent = options.handleDownEvent;\n }\n if (options.handleDragEvent) {\n _this.handleDragEvent = options.handleDragEvent;\n }\n if (options.handleMoveEvent) {\n _this.handleMoveEvent = options.handleMoveEvent;\n }\n if (options.handleUpEvent) {\n _this.handleUpEvent = options.handleUpEvent;\n }\n if (options.stopDown) {\n _this.stopDown = options.stopDown;\n }\n /**\n * @type {boolean}\n * @protected\n */\n _this.handlingDownUpSequence = false;\n /**\n * @type {!Object}\n * @private\n */\n _this.trackedPointers_ = {};\n /**\n * @type {Array}\n * @protected\n */\n _this.targetPointers = [];\n return _this;\n }\n /**\n * Returns the current number of pointers involved in the interaction,\n * e.g. `2` when two fingers are used.\n * @return {number} The number of pointers.\n * @api\n */\n PointerInteraction.prototype.getPointerCount = function () {\n return this.targetPointers.length;\n };\n /**\n * Handle pointer down events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n * @protected\n */\n PointerInteraction.prototype.handleDownEvent = function (mapBrowserEvent) {\n return false;\n };\n /**\n * Handle pointer drag events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @protected\n */\n PointerInteraction.prototype.handleDragEvent = function (mapBrowserEvent) { };\n /**\n * Handles the {@link module:ol/MapBrowserEvent map browser event} and may call into\n * other functions, if event sequences like e.g. 'drag' or 'down-up' etc. are\n * detected.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n * @api\n */\n PointerInteraction.prototype.handleEvent = function (mapBrowserEvent) {\n if (!mapBrowserEvent.originalEvent) {\n return true;\n }\n var stopEvent = false;\n this.updateTrackedPointers_(mapBrowserEvent);\n if (this.handlingDownUpSequence) {\n if (mapBrowserEvent.type == MapBrowserEventType.POINTERDRAG) {\n this.handleDragEvent(mapBrowserEvent);\n // prevent page scrolling during dragging\n mapBrowserEvent.originalEvent.preventDefault();\n }\n else if (mapBrowserEvent.type == MapBrowserEventType.POINTERUP) {\n var handledUp = this.handleUpEvent(mapBrowserEvent);\n this.handlingDownUpSequence =\n handledUp && this.targetPointers.length > 0;\n }\n }\n else {\n if (mapBrowserEvent.type == MapBrowserEventType.POINTERDOWN) {\n var handled = this.handleDownEvent(mapBrowserEvent);\n this.handlingDownUpSequence = handled;\n stopEvent = this.stopDown(handled);\n }\n else if (mapBrowserEvent.type == MapBrowserEventType.POINTERMOVE) {\n this.handleMoveEvent(mapBrowserEvent);\n }\n }\n return !stopEvent;\n };\n /**\n * Handle pointer move events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @protected\n */\n PointerInteraction.prototype.handleMoveEvent = function (mapBrowserEvent) { };\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n * @protected\n */\n PointerInteraction.prototype.handleUpEvent = function (mapBrowserEvent) {\n return false;\n };\n /**\n * This function is used to determine if \"down\" events should be propagated\n * to other interactions or should be stopped.\n * @param {boolean} handled Was the event handled by the interaction?\n * @return {boolean} Should the `down` event be stopped?\n */\n PointerInteraction.prototype.stopDown = function (handled) {\n return handled;\n };\n /**\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @private\n */\n PointerInteraction.prototype.updateTrackedPointers_ = function (mapBrowserEvent) {\n if (isPointerDraggingEvent(mapBrowserEvent)) {\n var event_1 = mapBrowserEvent.originalEvent;\n var id = event_1.pointerId.toString();\n if (mapBrowserEvent.type == MapBrowserEventType.POINTERUP) {\n delete this.trackedPointers_[id];\n }\n else if (mapBrowserEvent.type == MapBrowserEventType.POINTERDOWN) {\n this.trackedPointers_[id] = event_1;\n }\n else if (id in this.trackedPointers_) {\n // update only when there was a pointerdown event for this pointer\n this.trackedPointers_[id] = event_1;\n }\n this.targetPointers = getValues(this.trackedPointers_);\n }\n };\n return PointerInteraction;\n}(Interaction));\n/**\n * @param {Array} pointerEvents List of events.\n * @return {import(\"../pixel.js\").Pixel} Centroid pixel.\n */\nexport function centroid(pointerEvents) {\n var length = pointerEvents.length;\n var clientX = 0;\n var clientY = 0;\n for (var i = 0; i < length; i++) {\n clientX += pointerEvents[i].clientX;\n clientY += pointerEvents[i].clientY;\n }\n return [clientX / length, clientY / length];\n}\n/**\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} Whether the event is a pointerdown, pointerdrag\n * or pointerup event.\n */\nfunction isPointerDraggingEvent(mapBrowserEvent) {\n var type = mapBrowserEvent.type;\n return (type === MapBrowserEventType.POINTERDOWN ||\n type === MapBrowserEventType.POINTERDRAG ||\n type === MapBrowserEventType.POINTERUP);\n}\nexport default PointerInteraction;\n//# sourceMappingURL=Pointer.js.map","/**\n * @module ol/events/condition\n */\nimport MapBrowserEventType from '../MapBrowserEventType.js';\nimport { FALSE, TRUE } from '../functions.js';\nimport { MAC, WEBKIT } from '../has.js';\nimport { assert } from '../asserts.js';\n/**\n * A function that takes an {@link module:ol/MapBrowserEvent} and returns a\n * `{boolean}`. If the condition is met, true should be returned.\n *\n * @typedef {function(this: ?, import(\"../MapBrowserEvent.js\").default): boolean} Condition\n */\n/**\n * Creates a condition function that passes when all provided conditions pass.\n * @param {...Condition} var_args Conditions to check.\n * @return {Condition} Condition function.\n */\nexport function all(var_args) {\n var conditions = arguments;\n /**\n * @param {import(\"../MapBrowserEvent.js\").default} event Event.\n * @return {boolean} All conditions passed.\n */\n return function (event) {\n var pass = true;\n for (var i = 0, ii = conditions.length; i < ii; ++i) {\n pass = pass && conditions[i](event);\n if (!pass) {\n break;\n }\n }\n return pass;\n };\n}\n/**\n * Return `true` if only the alt-key is pressed, `false` otherwise (e.g. when\n * additionally the shift-key is pressed).\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if only the alt key is pressed.\n * @api\n */\nexport var altKeyOnly = function (mapBrowserEvent) {\n var originalEvent = /** @type {KeyboardEvent|MouseEvent|TouchEvent} */ (mapBrowserEvent.originalEvent);\n return (originalEvent.altKey &&\n !(originalEvent.metaKey || originalEvent.ctrlKey) &&\n !originalEvent.shiftKey);\n};\n/**\n * Return `true` if only the alt-key and shift-key is pressed, `false` otherwise\n * (e.g. when additionally the platform-modifier-key is pressed).\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if only the alt and shift keys are pressed.\n * @api\n */\nexport var altShiftKeysOnly = function (mapBrowserEvent) {\n var originalEvent = /** @type {KeyboardEvent|MouseEvent|TouchEvent} */ (mapBrowserEvent.originalEvent);\n return (originalEvent.altKey &&\n !(originalEvent.metaKey || originalEvent.ctrlKey) &&\n originalEvent.shiftKey);\n};\n/**\n * Return `true` if the map has the focus. This condition requires a map target\n * element with a `tabindex` attribute, e.g. `
`.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} event Map browser event.\n * @return {boolean} The map has the focus.\n * @api\n */\nexport var focus = function (event) {\n return event.target.getTargetElement().contains(document.activeElement);\n};\n/**\n * Return `true` if the map has the focus or no 'tabindex' attribute set.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} event Map browser event.\n * @return {boolean} The map container has the focus or no 'tabindex' attribute.\n */\nexport var focusWithTabindex = function (event) {\n return event.map.getTargetElement().hasAttribute('tabindex')\n ? focus(event)\n : true;\n};\n/**\n * Return always true.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True.\n * @api\n */\nexport var always = TRUE;\n/**\n * Return `true` if the event is a `click` event, `false` otherwise.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the event is a map `click` event.\n * @api\n */\nexport var click = function (mapBrowserEvent) {\n return mapBrowserEvent.type == MapBrowserEventType.CLICK;\n};\n/**\n * Return `true` if the event has an \"action\"-producing mouse button.\n *\n * By definition, this includes left-click on windows/linux, and left-click\n * without the ctrl key on Macs.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} The result.\n */\nexport var mouseActionButton = function (mapBrowserEvent) {\n var originalEvent = /** @type {MouseEvent} */ (mapBrowserEvent.originalEvent);\n return originalEvent.button == 0 && !(WEBKIT && MAC && originalEvent.ctrlKey);\n};\n/**\n * Return always false.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} False.\n * @api\n */\nexport var never = FALSE;\n/**\n * Return `true` if the browser event is a `pointermove` event, `false`\n * otherwise.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the browser event is a `pointermove` event.\n * @api\n */\nexport var pointerMove = function (mapBrowserEvent) {\n return mapBrowserEvent.type == 'pointermove';\n};\n/**\n * Return `true` if the event is a map `singleclick` event, `false` otherwise.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the event is a map `singleclick` event.\n * @api\n */\nexport var singleClick = function (mapBrowserEvent) {\n return mapBrowserEvent.type == MapBrowserEventType.SINGLECLICK;\n};\n/**\n * Return `true` if the event is a map `dblclick` event, `false` otherwise.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the event is a map `dblclick` event.\n * @api\n */\nexport var doubleClick = function (mapBrowserEvent) {\n return mapBrowserEvent.type == MapBrowserEventType.DBLCLICK;\n};\n/**\n * Return `true` if no modifier key (alt-, shift- or platform-modifier-key) is\n * pressed.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True only if there no modifier keys are pressed.\n * @api\n */\nexport var noModifierKeys = function (mapBrowserEvent) {\n var originalEvent = /** @type {KeyboardEvent|MouseEvent|TouchEvent} */ (mapBrowserEvent.originalEvent);\n return (!originalEvent.altKey &&\n !(originalEvent.metaKey || originalEvent.ctrlKey) &&\n !originalEvent.shiftKey);\n};\n/**\n * Return `true` if only the platform-modifier-key (the meta-key on Mac,\n * ctrl-key otherwise) is pressed, `false` otherwise (e.g. when additionally\n * the shift-key is pressed).\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if only the platform modifier key is pressed.\n * @api\n */\nexport var platformModifierKeyOnly = function (mapBrowserEvent) {\n var originalEvent = /** @type {KeyboardEvent|MouseEvent|TouchEvent} */ (mapBrowserEvent.originalEvent);\n return (!originalEvent.altKey &&\n (MAC ? originalEvent.metaKey : originalEvent.ctrlKey) &&\n !originalEvent.shiftKey);\n};\n/**\n * Return `true` if only the shift-key is pressed, `false` otherwise (e.g. when\n * additionally the alt-key is pressed).\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if only the shift key is pressed.\n * @api\n */\nexport var shiftKeyOnly = function (mapBrowserEvent) {\n var originalEvent = /** @type {KeyboardEvent|MouseEvent|TouchEvent} */ (mapBrowserEvent.originalEvent);\n return (!originalEvent.altKey &&\n !(originalEvent.metaKey || originalEvent.ctrlKey) &&\n originalEvent.shiftKey);\n};\n/**\n * Return `true` if the target element is not editable, i.e. not a ``-,\n * `