{"version":3,"sources":["webpack:///./node_modules/ol/events/EventType.js","webpack:///./node_modules/ol/tilegrid/common.js","webpack:///./node_modules/ol/extent/Relationship.js","webpack:///./node_modules/ol/events/condition.js","webpack:///./node_modules/ol/render/EventType.js","webpack:///./node_modules/ol/Overlay.js","webpack:///./node_modules/ol/tilegrid.js","webpack:///./node_modules/ol/dom.js","webpack:///./node_modules/ol/geom/flat/interiorpoint.js","webpack:///./node_modules/ol/extent.js","webpack:///./node_modules/ol/renderer/canvas/common.js","webpack:///./node_modules/ol/MapBrowserEventType.js","webpack:///./src/components/zonification/Zonification.vue?bd9e","webpack:///./src/components/zonification/Zonification.vue?77b1","webpack:///./src/components/zonification/UploadZones.vue?f516","webpack:///src/components/zonification/UploadZones.vue","webpack:///./src/components/zonification/UploadZones.vue?cdb2","webpack:///./src/components/zonification/UploadZones.vue","webpack:///./src/components/zonification/DrawingTools.vue?528e","webpack:///src/components/zonification/DrawingTools.vue","webpack:///./src/components/zonification/DrawingTools.vue?ef1f","webpack:///./src/components/zonification/DrawingTools.vue","webpack:///./src/components/resource/ResourceItem.vue?763a","webpack:///src/components/resource/ResourceItem.vue","webpack:///./src/components/resource/ResourceItem.vue?eb36","webpack:///./src/components/resource/ResourceItem.vue","webpack:///src/components/zonification/Zonification.vue","webpack:///./src/components/zonification/Zonification.vue?3d5f","webpack:///./src/components/zonification/Zonification.vue","webpack:///./node_modules/ol/render/Feature.js","webpack:///./node_modules/ol/geom/flat/straightchunk.js","webpack:///./node_modules/ol/render/canvas/TextBuilder.js","webpack:///./node_modules/ol/events/Target.js","webpack:///./node_modules/ol/util.js","webpack:///./node_modules/ol/renderer/Layer.js","webpack:///./node_modules/ol/renderer/canvas/Layer.js","webpack:///./node_modules/ol/CollectionEventType.js","webpack:///./node_modules/ol/layer/Layer.js","webpack:///./node_modules/ol/geom/flat/simplify.js","webpack:///./node_modules/ol/events.js","webpack:///./node_modules/ol/control/Attribution.js","webpack:///./node_modules/ol/control/Rotate.js","webpack:///./node_modules/ol/control/Zoom.js","webpack:///./node_modules/ol/control.js","webpack:///./src/models/zone.js","webpack:///./node_modules/ol/proj/epsg3857.js","webpack:///./node_modules/ol/proj/epsg4326.js","webpack:///./node_modules/ol/proj/projections.js","webpack:///./node_modules/ol/proj/transforms.js","webpack:///./node_modules/ol/proj.js","webpack:///./node_modules/rbush/rbush.min.js","webpack:///./node_modules/ol/geom/flat/contains.js","webpack:///./node_modules/ol/style/TextPlacement.js","webpack:///./node_modules/ol/tilecoord.js","webpack:///./node_modules/ol/interaction/Select.js","webpack:///./node_modules/ol/reproj.js","webpack:///./node_modules/ol/reproj/Triangulation.js","webpack:///./node_modules/ol/reproj/Tile.js","webpack:///./node_modules/ol/renderer/vector.js","webpack:///./node_modules/ol/render/Event.js","webpack:///./node_modules/ol/size.js","webpack:///./node_modules/ol/Observable.js","webpack:///./src/components/resource/ResourceItem.vue?f99c","webpack:///./node_modules/core-js/modules/_wks-ext.js","webpack:///./node_modules/ol/obj.js","webpack:///./node_modules/ol/control/Control.js","webpack:///./node_modules/ol/render/canvas/Immediate.js","webpack:///./node_modules/ol/render/canvas/hitdetect.js","webpack:///./node_modules/ol/interaction/DoubleClickZoom.js","webpack:///./node_modules/ol/interaction/DragPan.js","webpack:///./node_modules/ol/interaction/DragRotate.js","webpack:///./node_modules/ol/render/Box.js","webpack:///./node_modules/ol/interaction/DragBox.js","webpack:///./node_modules/ol/interaction/DragZoom.js","webpack:///./node_modules/ol/events/KeyCode.js","webpack:///./node_modules/ol/interaction/KeyboardPan.js","webpack:///./node_modules/ol/interaction/KeyboardZoom.js","webpack:///./node_modules/ol/Kinetic.js","webpack:///./node_modules/ol/interaction/MouseWheelZoom.js","webpack:///./node_modules/ol/interaction/PinchRotate.js","webpack:///./node_modules/ol/interaction/PinchZoom.js","webpack:///./node_modules/ol/interaction.js","webpack:///./node_modules/core-js/modules/_wks-define.js","webpack:///./node_modules/ol/style/IconImageCache.js","webpack:///./node_modules/ol/renderer/canvas/VectorLayer.js","webpack:///./node_modules/ol/layer/Vector.js","webpack:///./node_modules/ol/interaction/Pointer.js","webpack:///./src/components/resource/user-list/ResourceList.vue?c12f","webpack:///./src/components/resource/user-list/cell-renderer/CellRendererLink.vue?944e","webpack:///src/components/resource/user-list/cell-renderer/CellRendererLink.vue","webpack:///./src/components/resource/user-list/cell-renderer/CellRendererLink.vue?b8f1","webpack:///./src/components/resource/user-list/cell-renderer/CellRendererLink.vue","webpack:///src/components/resource/user-list/ResourceList.vue","webpack:///./src/components/resource/user-list/ResourceList.vue?2058","webpack:///./src/components/resource/user-list/ResourceList.vue","webpack:///./node_modules/ol/interaction/Interaction.js","webpack:///./node_modules/ol/geom/MultiLineString.js","webpack:///./node_modules/ol/layer/BaseTile.js","webpack:///./node_modules/ol/layer/Tile.js","webpack:///./node_modules/ol/ViewHint.js","webpack:///./node_modules/ol/Feature.js","webpack:///./node_modules/ol/geom/flat/reverse.js","webpack:///./node_modules/ol/geom/flat/orient.js","webpack:///./node_modules/ol/MapBrowserEvent.js","webpack:///./node_modules/ol/geom/GeometryLayout.js","webpack:///./node_modules/ol/source/TileEventType.js","webpack:///./node_modules/ol/source/Tile.js","webpack:///./node_modules/ol/tileurlfunction.js","webpack:///./node_modules/ol/source/UrlTile.js","webpack:///./node_modules/ol/layer/Base.js","webpack:///./src/components/zonification/DrawingTools.vue?08fa","webpack:///./node_modules/ol/functions.js","webpack:///./node_modules/ol/structs/RBush.js","webpack:///./node_modules/ol/source/VectorEventType.js","webpack:///./node_modules/ol/loadingstrategy.js","webpack:///./node_modules/ol/source/Vector.js","webpack:///./node_modules/ol/MapEventType.js","webpack:///./node_modules/ol/geom/flat/length.js","webpack:///./node_modules/@carto/carto.js/carto.js","webpack:///./node_modules/ol/geom/LinearRing.js","webpack:///./node_modules/ol/geom/Polygon.js","webpack:///./node_modules/ol/xml.js","webpack:///./node_modules/ol/format/XMLFeature.js","webpack:///./node_modules/ol/format/xsd.js","webpack:///./node_modules/ol/format/KML.js","webpack:///./node_modules/ol/source/TileImage.js","webpack:///./node_modules/ol/source/XYZ.js","webpack:///./node_modules/ol/source/OSM.js","webpack:///./src/core/plugins/ol/TileLayer.js","webpack:///./src/core/plugins/ol/OlAnuket.js","webpack:///./node_modules/ol/color.js","webpack:///./node_modules/ol/Tile.js","webpack:///./node_modules/ol/renderer/Map.js","webpack:///./node_modules/ol/renderer/Composite.js","webpack:///./node_modules/ol/layer/Group.js","webpack:///./node_modules/ol/pointer/EventType.js","webpack:///./node_modules/ol/MapBrowserEventHandler.js","webpack:///./node_modules/ol/structs/PriorityQueue.js","webpack:///./node_modules/ol/TileQueue.js","webpack:///./node_modules/ol/PluggableMap.js","webpack:///./node_modules/ol/Map.js","webpack:///./node_modules/ol/has.js","webpack:///./node_modules/ol/render/canvas/Instruction.js","webpack:///./node_modules/ol/ImageBase.js","webpack:///./node_modules/ol/Image.js","webpack:///./node_modules/ol/style/Style.js","webpack:///./node_modules/ol/style/IconImage.js","webpack:///./node_modules/ol/style/Icon.js","webpack:///./node_modules/ol/featureloader.js","webpack:///./node_modules/ol/MapEvent.js","webpack:///./src/components/resource/user-list/ResourceList.vue?6a95","webpack:///./node_modules/ol/tilegrid/TileGrid.js","webpack:///./node_modules/ol/VectorTile.js","webpack:///./node_modules/ol/VectorRenderTile.js","webpack:///./node_modules/ol/source/VectorTile.js","webpack:///./node_modules/ol/sphere.js","webpack:///./node_modules/pbf/index.js","webpack:///./node_modules/ol/geom/LineString.js","webpack:///./node_modules/ol/ObjectEventType.js","webpack:///./node_modules/core-js/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/modules/es6.number.is-integer.js","webpack:///./node_modules/ol/ImageTile.js","webpack:///./node_modules/ol/math.js","webpack:///./node_modules/ol/style/Text.js","webpack:///./node_modules/ol/style/IconAnchorUnits.js","webpack:///./node_modules/ol/AssertionError.js","webpack:///./node_modules/ol/style/Fill.js","webpack:///./node_modules/ol/style/Stroke.js","webpack:///./node_modules/ol/ImageState.js","webpack:///./node_modules/ol/geom/MultiPolygon.js","webpack:///./node_modules/core-js/modules/es6.symbol.js","webpack:///./node_modules/ol/rotationconstraint.js","webpack:///./node_modules/ol/structs/LRUCache.js","webpack:///./node_modules/ol/TileCache.js","webpack:///./node_modules/ol/geom/Geometry.js","webpack:///./node_modules/ol/geom/flat/center.js","webpack:///./node_modules/ol/asserts.js","webpack:///./src/models/VisitPoint.js","webpack:///./node_modules/ol/geom/flat/closest.js","webpack:///./node_modules/ol/layer/VectorTileRenderType.js","webpack:///./node_modules/ol/renderer/canvas/VectorTileLayer.js","webpack:///./node_modules/ol/layer/VectorTile.js","webpack:///./node_modules/ol/geom/MultiPoint.js","webpack:///./node_modules/ol/geom/SimpleGeometry.js","webpack:///./node_modules/core-js/modules/_is-integer.js","webpack:///./node_modules/ol/array.js","webpack:///./node_modules/ol/layer/TileProperty.js","webpack:///./node_modules/ol/ViewProperty.js","webpack:///./node_modules/ol/centerconstraint.js","webpack:///./node_modules/ol/resolutionconstraint.js","webpack:///./node_modules/ol/View.js","webpack:///./node_modules/ol/format/JSONFeature.js","webpack:///./node_modules/ol/format/GeoJSON.js","webpack:///./node_modules/ol/reproj/common.js","webpack:///./node_modules/ol/coordinate.js","webpack:///./node_modules/ol/transform.js","webpack:///./node_modules/ol/style/Image.js","webpack:///./node_modules/ol/geom/flat/deflate.js","webpack:///./node_modules/ol/interaction/Draw.js","webpack:///./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/ol/TileState.js","webpack:///./node_modules/ol/layer/BaseVector.js","webpack:///./src/core/components/PopupCustomize.vue?7ef7","webpack:///src/core/components/PopupCustomize.vue","webpack:///./src/core/components/PopupCustomize.vue?befd","webpack:///./src/core/components/PopupCustomize.vue","webpack:///./node_modules/ol/string.js","webpack:///./node_modules/ol/geom/flat/interpolate.js","webpack:///./node_modules/core-js/modules/es6.string.link.js","webpack:///./node_modules/ol/geom/flat/area.js","webpack:///./src/store/visit-point/moduleVisitPointState.js","webpack:///./src/store/visit-point/moduleVisitPointMutations.js","webpack:///./src/store/visit-point/moduleVisitPointActions.js","webpack:///./src/store/visit-point/moduleVisitPointGetters.js","webpack:///./src/store/visit-point/moduleVisitPoint.js","webpack:///./node_modules/ol/format/Feature.js","webpack:///./node_modules/ol/renderer/canvas/TileLayer.js","webpack:///./node_modules/ol/geom/flat/inflate.js","webpack:///./src/components/zonification/UploadZones.vue?1421","webpack:///./node_modules/ol/geom/flat/transform.js","webpack:///./node_modules/ol/interaction/Property.js","webpack:///./node_modules/ol/control/FullScreen.js","webpack:///./node_modules/ol/geom/flat/intersectsextent.js","webpack:///./node_modules/ol/easing.js","webpack:///./node_modules/ol/css.js","webpack:///./node_modules/ol/style/RegularShape.js","webpack:///./node_modules/ol/style/Circle.js","webpack:///./node_modules/ol/events/Event.js","webpack:///./node_modules/ol/interaction/Translate.js","webpack:///./node_modules/ol/style/IconOrigin.js","webpack:///./node_modules/ol/geom/GeometryCollection.js","webpack:///./node_modules/core-js/modules/_enum-keys.js","webpack:///./src/core/components/ol/OlMap.vue?ee5e","webpack:///src/core/components/ol/OlMap.vue","webpack:///./src/core/components/ol/OlMap.vue?9854","webpack:///./src/core/components/ol/OlMap.vue","webpack:///./node_modules/ol/Disposable.js","webpack:///./node_modules/ol/render/canvas/ImageBuilder.js","webpack:///./node_modules/ol/render/canvas/LineStringBuilder.js","webpack:///./node_modules/ol/render/canvas/PolygonBuilder.js","webpack:///./node_modules/ol/render/canvas/BuilderGroup.js","webpack:///./node_modules/ol/TileRange.js","webpack:///./node_modules/ol/render/canvas/Builder.js","webpack:///./node_modules/ol/render/canvas.js","webpack:///./src/constants/cartodb.js","webpack:///./node_modules/ol/layer/Property.js","webpack:///./node_modules/ol/Object.js","webpack:///./node_modules/ol/Collection.js","webpack:///./node_modules/ol/MapProperty.js","webpack:///./node_modules/ol/geom/flat/textpath.js","webpack:///./node_modules/ol/render/canvas/Executor.js","webpack:///./node_modules/ol/render/canvas/ExecutorGroup.js","webpack:///./node_modules/ol/colorlike.js","webpack:///./node_modules/ol/geom/Point.js","webpack:///./node_modules/ol/proj/Projection.js","webpack:///./node_modules/ol/render/VectorContext.js","webpack:///./node_modules/ol/geom/Circle.js","webpack:///./node_modules/ol-popup/dist/ol-popup.js","webpack:///./node_modules/ol/proj/Units.js","webpack:///./node_modules/ol/geom/flat/segments.js","webpack:///./node_modules/ol/format/MVT.js","webpack:///./src/helpers/cartoDB.js","webpack:///./node_modules/ol/source/Source.js"],"names":["CHANGE","ERROR","BLUR","CLEAR","CONTEXTMENU","CLICK","DBLCLICK","DRAGENTER","DRAGOVER","DROP","FOCUS","KEYDOWN","KEYPRESS","LOAD","RESIZE","TOUCHMOVE","WHEEL","DEFAULT_MAX_ZOOM","DEFAULT_TILE_SIZE","UNKNOWN","INTERSECTING","ABOVE","RIGHT","BELOW","LEFT","all","var_args","conditions","arguments","event","pass","i","ii","length","altShiftKeysOnly","mapBrowserEvent","originalEvent","altKey","metaKey","ctrlKey","shiftKey","focus","targetElement","map","getTargetElement","activeElement","getOwnerDocument","contains","focusWithTabindex","hasAttribute","always","mouseActionButton","button","never","singleClick","type","SINGLECLICK","noModifierKeys","shiftKeyOnly","targetNotEditable","tagName","target","isContentEditable","mouseOnly","pointerEvent","undefined","pointerType","primaryAction","isPrimary","PRERENDER","POSTRENDER","PRECOMPOSE","POSTCOMPOSE","RENDERCOMPLETE","__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","TypeError","String","__","this","constructor","create","Property","ELEMENT","MAP","OFFSET","POSITION","POSITIONING","Overlay","_super","options","_this","on","once","un","id","insertFirst","stopEvent","element","document","createElement","className","style","position","pointerEvents","autoPan","animation","autoPanAnimation","margin","autoPanMargin","rendered","transform_","visible","mapPostrenderListenerKey","addChangeListener","handleElementChanged","handleMapChanged","handleOffsetChanged","handlePositionChanged","handlePositioningChanged","setElement","setOffset","offset","setPositioning","positioning","setPosition","getElement","get","getId","getMap","getOffset","getPosition","getPositioning","appendChild","render","updatePixelPosition","container","getOverlayContainerStopEvent","getOverlayContainer","insertBefore","childNodes","performAutoPan","set","setMap","panIntoView","opt_panIntoViewOptions","mapRect","getRect","getSize","overlayRect","panIntoViewOptions","myMargin","offsetLeft","offsetRight","offsetTop","offsetBottom","delta","Math","abs","center","getView","getCenterInternal","centerPx","getPixelFromCoordinateInternal","newCenterPx","panOptions","animateInternal","getCoordinateFromPixelInternal","duration","easing","size","box","getBoundingClientRect","offsetX","left","window","pageXOffset","offsetY","top","pageYOffset","setVisible","display","isRendered","pixel","getPixelFromCoordinate","mapSize","updateRenderedPosition","x","round","y","posX","posY","transform","concat","msTransform","getOptions","getForProjection","projection","tileGrid","getDefaultTileGrid","createForProjection","setDefaultTileGrid","wrapX","tileCoord","z","getTileCoordCenter","projectionExtent","extentFromProjection","worldWidth","worldsAway","ceil","getTileCoordForCoordAndZ","createForExtent","extent","opt_maxZoom","opt_tileSize","opt_corner","corner","resolutions","resolutionsFromExtent","origin","tileSize","createXYZ","opt_options","xyzOptions","getExtent","gridOptions","minZoom","maxZoom","maxResolution","opt_maxResolution","height","width","max","pow","half","DEGREES","getMetersPerUnit","createCanvasContext2D","opt_width","opt_height","opt_canvasPool","opt_Context2DSettings","canvas","shift","OffscreenCanvas","getContext","releaseCanvas","context","clearRect","outerWidth","offsetWidth","getComputedStyle","parseInt","marginLeft","marginRight","outerHeight","offsetHeight","marginTop","marginBottom","replaceNode","newNode","oldNode","parent","parentNode","replaceChild","removeNode","node","removeChild","removeChildren","lastChild","replaceChildren","children","oldChildren","oldChild","newChild","getInteriorPointOfArray","flatCoordinates","ends","stride","flatCenters","flatCentersOffset","opt_dest","x1","x2","y1","y2","intersections","r","rr","end","push","pointX","NaN","maxSegmentLength","Infinity","sort","segmentLength","isNaN","getInteriorPointsOfMultiArray","endss","interiorPoints","boundingExtent","coordinates","createEmpty","extendCoordinate","_boundingExtentXYs","xs","ys","opt_extent","minX","min","apply","minY","maxX","maxY","createOrUpdate","buffer","value","clone","slice","closestSquaredDistanceXY","dx","dy","containsCoordinate","coordinate","containsXY","containsExtent","extent1","extent2","coordinateRelationship","relationship","createOrUpdateEmpty","createOrUpdateFromCoordinate","createOrUpdateFromFlatCoordinates","extendFlatCoordinates","equals","extend","extendXY","forEachCorner","callback","val","getBottomLeft","getBottomRight","getTopRight","getTopLeft","getArea","area","isEmpty","getWidth","getHeight","getCenter","getCorner","getForViewAndSize","resolution","rotation","_a","getRotatedViewport","x0","y0","x3","y3","cosRotation","cos","sinRotation","sin","xCos","xSin","yCos","ySin","getIntersection","intersection","intersects","returnOrUpdate","intersectsSegment","start","startRel","endRel","startX","startY","endX","endY","slope","applyTransform","transformFn","opt_stops","l","canWrapX","floor","wrapAndSliceX","isFinite","IMAGE_SMOOTHING_DISABLED","imageSmoothingEnabled","msImageSmoothingEnabled","IMAGE_SMOOTHING_ENABLED","POINTERDRAG","POINTERMOVE","POINTERDOWN","POINTERUP","POINTEROVER","POINTEROUT","POINTERENTER","POINTERLEAVE","POINTERCANCEL","_vm","_h","$createElement","_c","_self","attrs","$t","staticClass","colorTabs","model","$$v","activeTab","expression","directives","name","rawName","$event","windowHeight","domProps","_s","layerOptions","$vs","rtl","scopedSlots","_u","key","fn","ref","search","searching","_v","_e","selectedLayer","optionsMulti","zones","zonificationCreatePermission","zonificationUpdatePermission","alertPolygon","staticStyle","assignedResources","_l","resource","uid","removeAssignedResource","activeAlert2","activeAlert3","selectedResourceLayer","zonesChecked","zonesCheckedResource","zonesBoolean","idCapa","selectedZone","modeAssigUpdate","confirmDeleteAssigZoneResource","deleteShape","changeColor","openCapaPrompt","deleteZoneCapa","clearMapLayer","deleteOnlyCapa","openEditZonePrompt","changeNameCapa","showPopup","assigZoneResource","callbackDraw","shapeSelectedRemove","widthMap","olMap","promptCapaTitle","activeCapaPrompt","nameCapa","statusSelected","cancelCapaPromt","acceptCapaAlert","closeCapaPrompt","statusOptions","status_local_sel","errors","has","first","promptZoneTitle","activePrompt","nameZone","cancelPromt","acceptAlert","cartodb_id","descriptionZone","resourceMounted","resourceListConfig","closepopupEmit","staticRenderFns","onFileChange","class","uploadStatus","fileName","percent","progressColor","dataFile","preventDefault","uploadFile","component","activeItem","slot","selectTool","composing","shapeColor","activePolygon","activeSelection","activeCircle","editZone","activeRemoveFigure","activeRemove","zonificationDeletePermission","nuevaCapa","activeSettingsCapaOptions","showPopupResource","activeAssignedResourceSave","activeDeleteAssignedResource","deleteAssigZoneResource","isActiveChatUser","photoURL","lastname","email","tmpTransform","RenderFeature","properties","styleFunction","extent_","id_","type_","flatCoordinates_","flatInteriorPoints_","flatMidpoints_","ends_","properties_","getFlatInteriorPoint","flatCenter","getFlatInteriorPoints","getFlatMidpoint","getFlatMidpoints","midpoint","getOrientedFlatCoordinates","getGeometry","getSimplifiedGeometry","squaredTolerance","simplifyTransformed","opt_transform","getProperties","getStride","getStyleFunction","getType","pixelExtent","projectedExtent","getWorldExtent","scale","getEnds","getEndss","getFlatCoordinates","matchingChunk","maxAngle","acos","m12","m23","x12","y12","x23","y23","chunkStart","chunkEnd","chunkM","m","sqrt","TEXT_ALIGN","CanvasTextBuilder","tolerance","maxExtent","pixelRatio","labels_","text_","textOffsetX_","textOffsetY_","textRotateWithView_","textRotation_","textFillState_","fillStates","textStrokeState_","strokeStates","textState_","textStates","textKey_","fillKey_","strokeKey_","declutterImageWithText_","finish","instructions","drawText","geometry","feature","fillState","strokeState","textState","begin","geometryType","placement","TextPlacement","LINE","geometryWidths","overflow","appendFlatPointCoordinates","beg_1","filter","w","keep","saveTextStates_","backgroundFill","backgroundStroke","setFillStrokeStyle","updateFillStyle","state","createFill","hitDetectionInstructions","updateStrokeStyle","applyStroke","createStroke","beginGeometry","padding","p0","p1","p2","p3","pixelRatio_1","DRAW_IMAGE","endGeometry","getBufferedMaxExtent","textAlign","flatOffset","flatEnd","o","oo","range","drawChars_","strokeKey","strokeStyle","lineCap","lineDashOffset","lineWidth","lineJoin","miterLimit","lineDash","textKey","font","justify","textBaseline","fillKey","fillStyle","baseline","text","strokeWidth","DRAW_CHARS","setTextStyle","textStyle","opt_sharedData","textFillStyle","getFill","getColor","textStrokeStyle","getStroke","getLineDash","getLineDashOffset","getMiterLimit","getLineCap","getLineJoin","getFont","textScale","getScaleArray","getOverflow","getMaxAngle","getPlacement","getTextAlign","getJustify","getTextBaseline","getBackgroundFill","getBackgroundStroke","getPadding","textOffsetX","getOffsetX","textOffsetY","getOffsetY","textRotateWithView","getRotateWithView","textRotation","getRotation","getText","join","Target","opt_target","eventTarget_","pendingRemovals_","dispatching_","listeners_","addEventListener","listener","listeners","listenersForType","indexOf","dispatchEvent","isString","evt","propagate","dispatching","pendingRemovals","handleEvent","propagationStopped","pr","removeEventListener","disposeInternal","getListeners","hasListener","opt_type","keys","index","splice","abstract","Error","uidCounter_","getUid","obj","ol_uid","VERSION","LayerRenderer","layer","ready","boundHandleImageChange_","handleImageChange_","bind","layer_","declutterExecutorGroup","getFeatures","getData","prepareFrame","frameState","renderFrame","loadedTileCallback","tiles","zoom","tile","toString","createLoadedTileFinder","source","tileRange","forEachLoadedTile","forEachFeatureAtCoordinate","hitTolerance","matches","getDataAtPixel","getLayer","handleFontsChanged","image","getState","ImageState","LOADED","renderIfReadyAndVisible","loadImage","imageState","EventType","IDLE","load","getVisible","getSourceState","changed","Observable","Layer","canvasPool","createPixelContext","CanvasLayerRenderer","renderedResolution","tempTransform","pixelTransform","inversePixelTransform","containerReused","pixelContext_","getImageData","col","row","data","drawImage","err","getBackground","background","viewState","useContainer","opt_backgroundColor","layerClassName","getClassName","backgroundColor","firstElementChild","HTMLCanvasElement","transformOrigin","clipUnrotated","topLeft","topRight","bottomRight","bottomLeft","coordinateToPixelTransform","inverted","save","beginPath","moveTo","lineTo","clip","dispatchRenderEvent_","event_1","preRender","postRender","getRenderTransform","dx1","dy1","sx","sy","dx2","dy2","renderPixel","layerExtent","renderCoordinate","pixelToCoordinateTransform","pixelContext","pixelCanvas","Uint8Array","ADD","REMOVE","baseOptions","mapPrecomposeKey_","mapRenderKey_","sourceChangeKey_","renderer_","SOURCE","handleSourcePropertyChange_","setSource","getLayersArray","opt_array","array","getLayerStatesArray","opt_states","states","getLayerState","getSource","getRenderSource","handleSourceChange_","Promise","resolve","layerRenderer","getRenderer","unrender","setMapInternal","getMapInternal","renderEvent","layerStatesArray","layerState","some","arrayLayerState","createRenderer","hasRenderer","dispose","inView","minResolution","douglasPeucker","simplifiedFlatCoordinates","simplifiedOffset","n","markers","stack","last","pop","maxSquaredDistance","squaredDistance_1","douglasPeuckerArray","simplifiedEnds","snap","quantize","quantizeArray","quantizeMultiArray","simplifiedEndss","listen","opt_this","opt_once","originalListener_1","eventsKey","listenOnce","unlistenByKey","Attribution","ulElement_","collapsed_","collapsed","userCollapsed_","overrideCollapsible_","collapsible","collapsible_","tipLabel","expandClassName","collapseLabel","collapseClassName","collapseLabel_","textContent","label","label_","activeLabel","toggleButton_","setAttribute","title","handleClick_","cssClasses","renderedAttributions_","renderedVisible_","collectSourceAttributions_","lookup","visibleAttributions","attributionGetter","getAttributions","attributions","getAttributionsCollapsible","isArray","j","jj","setCollapsible","updateElement_","innerHTML","handleToggle_","classList","toggle","getCollapsible","setCollapsed","getCollapsed","mapEvent","Control","Rotate","compassClassName","add","callResetNorth_","resetNorth","duration_","autoHide_","autoHide","rotation_","resetNorth_","view","PI","animate","setRotation","remove","Zoom","zoomInClassName","zoomOutClassName","zoomInLabel","zoomOutLabel","zoomInTipLabel","zoomOutTipLabel","inElement","createTextNode","outElement","zoomByDelta_","currentZoom","getZoom","newZoom","getConstrainedZoom","getAnimating","cancelAnimations","setZoom","defaults","controls","Collection","zoomControl","zoomOptions","rotateControl","rotate","rotateOptions","attributionControl","attribution","attributionOptions","Zone","description","the_geom","the_geom_webmercator","generateTheGeom","crs","RADIUS","HALF_SIZE","EXTENT","WORLD_EXTENT","MAX_SAFE_Y","log","tan","EPSG3857Projection","code","units","Units","METERS","global","worldExtent","getPointResolution","point","Projection","PROJECTIONS","fromEPSG4326","input","opt_output","opt_dimension","dimension","output","toEPSG4326","atan","exp","METERS_PER_UNIT","EPSG4326Projection","opt_axisOrientation","axisOrientation","metersPerUnit","cache","replace","transforms","destination","sourceCode","getCode","destinationCode","showCoordinateWarning","disableCoordinateWarning","opt_disable","hide","cloneTransform","identityTransform","addProjection","addProjections","projections","forEach","projectionLike","opt_units","pointResolution","getter","getPointResolutionFunc","getUnits","toEPSG4326_1","getTransformFromProjections","vertices","addEquivalentProjections","addEquivalentTransforms","projections1","projections2","forwardTransform","inverseTransform","projection1","projection2","createProjection","defaultCode","fromLonLat","opt_projection","equivalent","equalUnits","transformFunc","sourceProjection","destinationProjection","getTransform","transformExtent","userProjection","getUserProjection","toUserCoordinate","fromUserCoordinate","destProjection","console","warn","toUserExtent","fromUserExtent","toUserResolution","sourceUnits","userUnits","fromUserResolution","addCommon","t","module","exports","e","a","h","s","f","u","c","_maxEntries","_minEntries","clear","leaf","_all","toBBox","collides","insert","_build","_splitRoot","_insert","_condense","compareMinX","compareMinY","toJSON","fromJSON","_chooseSubtree","_split","_adjustParentBBoxes","_chooseSplitAxis","_chooseSplitIndex","v","M","_allDistMargin","linearRingContainsExtent","outside","linearRingContainsXY","wn","linearRingsContainsXY","linearRingssContainsXY","POINT","opt_tileCoord","getKeyZXY","getKey","getCacheKeyForTileKey","tileKey","substring","lastIndexOf","split","Number","fromKey","hash","withinExtentAndZ","getMinZoom","getMaxZoom","getFullTileRange","SelectEventType","SELECT","SelectEvent","selected","deselected","originalFeatureStyles","Select","layerFilter","boundAddFeature_","addFeature_","boundRemoveFeature_","removeFeature_","condition_","condition","addCondition_","addCondition","removeCondition_","removeCondition","toggleCondition_","toggleCondition","multi_","multi","filter_","hitTolerance_","style_","getDefaultStyleFunction","features_","features","layers","layers_1","layerFilter_","featureLayerAssociation_","addFeatureLayerAssociation_","getHitTolerance","setHitTolerance","currentMap","restorePreviousStyle_","applySelectedStyle_","getAllLayers","find","hasFeature","getStyle","setStyle","interactions","getInteractions","getArray","interaction","removeFeatureLayerAssociation_","forEachFeatureAtPixel","getLength","item","styles","brokenDiagonalRendering_","MAX_SUBDIVISION","MAX_TRIANGLE_WIDTH","Triangulation","sourceProj","targetProj","targetExtent","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","triangle","arr","newTriangle","addTriangle_","aSrc","bSrc","cSrc","dSrc","sourceQuadExtent","sourceCoverageX","sourceWorldWidth","wrapsX","needsSubdivision","isGlobal","targetQuadExtent","targetCoverageX","isNotFinite","centerSrc","centerSrcEstimX","centerSrcErrorSquared","bc","bcSrc","da","daSrc","ab","abSrc","cd","cdSrc","calculateSourceExtent","src","getTriangles","drawTestTriangle","ctx","u1","v1","u2","v2","closePath","fillRect","restore","verifyBrokenDiagonalRendering","isBrokenDiagonalRendering","globalCompositeOperation","calculateSourceResolution","targetCenter","targetResolution","sourceCenter","sourceResolution","targetMetersPerUnit","sourceMetersPerUnit","sourceExtent","compensationFactor","calculateSourceExtentResolution","triangulation","sources","gutter","opt_renderEdges","opt_interpolate","pixelRound","sourceDataExtent","canvasWidthInUnits","canvasHeightInUnits","stitchContext","stitchScale","xPos","yPos","srcWidth","srcHeight","targetTopLeft","u0","v0","sourceNumericalShiftX","sourceNumericalShiftY","augmentedMatrix","affineCoefs","steps","ud","vd","step","translate","stroke","ReprojTile","sourceTileGrid","targetTileGrid","wrappedTileCoord","getTileFunction","opt_errorThreshold","TileState","interpolate","renderEdges_","pixelRatio_","gutter_","canvas_","sourceTileGrid_","targetTileGrid_","wrappedTileCoord_","sourceTiles_","sourcesListenerKeys_","sourceZ_","getTileCoordExtent","maxTargetExtent","limitedTargetExtent","EMPTY","sourceProjExtent","getResolution","errorThresholdInPixels","triangulation_","getZForResolution","sourceRange","getTileRangeForExtentAndZ","srcX","srcY","getImage","reproject_","getTileSize","LOADING","leftToLoad_1","sourceListenKey_1","unlistenSources_","setTimeout","release","Tile","SIMPLIFY_TOLERANCE","GEOMETRY_RENDERERS","renderPointGeometry","renderLineStringGeometry","renderPolygonGeometry","renderMultiPointGeometry","renderMultiLineStringGeometry","renderMultiPolygonGeometry","renderGeometryCollectionGeometry","renderCircleGeometry","defaultOrder","feature1","feature2","getSquaredTolerance","getTolerance","builderGroup","opt_declutterBuilderGroup","circleReplay","getBuilder","getZIndex","drawCircle","textReplay","renderFeature","replayGroup","loading","imageStyle","getImageState","unlistenImageChange","listenImageChange","renderFeatureInternal","getGeometryFunction","simplifiedGeometry","renderer","renderGeometry","geometryRenderer","replay","drawCustom","getHitDetectionRenderer","geometries","getGeometries","getGeometriesArray","lineStringReplay","drawLineString","drawMultiLineString","polygonReplay","drawMultiPolygon","declutterImageWithText","imageBuilderGroup","declutterMode","getDeclutterMode","imageReplay_1","setImageStyle","drawPoint","imageReplay","textBuilderGroup","imageReplay_2","drawMultiPoint","drawPolygon","RenderEvent","opt_inversePixelTransform","opt_frameState","opt_context","hasArea","ratio","opt_size","toSize","revision_","getRevision","onInternal","len","onceInternal","ol_key","unInternal","unByKey","assign","var_sources","object","property","getValues","values","target_","map_","listenerKeys","setTarget","getElementById","CanvasImmediateRenderer","viewRotation","opt_squaredTolerance","opt_userTransform","context_","viewRotation_","squaredTolerance_","userTransform_","contextFillState_","contextStrokeState_","contextTextState_","fillState_","strokeState_","image_","imageAnchorX_","imageAnchorY_","imageHeight_","imageOpacity_","imageOriginX_","imageOriginY_","imageRotateWithView_","imageRotation_","imageScale_","imageWidth_","textScale_","pixelCoordinates_","tmpLocalTransform_","drawImages_","pixelCoordinates","localTransform","alpha","globalAlpha","centerX","centerY","setTransform","drawText_","setContextFillState_","setContextStrokeState_","setContextTextState_","strokeText","fillText","moveToLineTo_","close","drawRings_","radius","arc","fill","drawGeometry","drawGeometryCollection","drawFeature","flatMidpoint","geometryExtent","flatMidpoints","flatInteriorPoint","flatInteriorPoints","contextFillState","contextStrokeState","setLineDash","contextTextState","fillStyleColor","strokeStyleColor","strokeStyleLineCap","strokeStyleLineDash","strokeStyleLineDashOffset","strokeStyleLineJoin","strokeStyleWidth","strokeStyleMiterLimit","imageSize","imageAnchor","getAnchor","imageOrigin","getOrigin","getOpacity","textFillStyleColor","textStrokeStyleColor","textStrokeStyleLineCap","textStrokeStyleLineDash","textStrokeStyleLineDashOffset","textStrokeStyleLineJoin","textStrokeStyleWidth","textStrokeStyleMiterLimit","textFont","textText","textTextAlign","textTextBaseline","reduce","acc","VectorContext","HIT_DETECT_RESOLUTION","createHitDetectionImageData","featureCount","indexFactor","featuresByZIndex","featureStyleFunction","color","originalStyle","setColor","setText","imgSize","getImageSize","imgContext","img","setImage","Icon","anchor","anchorXUnits","IconAnchorUnits","PIXELS","anchorYUnits","opacity","getScale","rotateWithView","zIndex","byGeometryType","zIndexKeys","geomAndStyle","k","kk","hitDetect","imageData","resultFeatures","g","DoubleClickZoom","delta_","MapBrowserEventType","browserEvent","Interaction","DragPan","stopDown","kinetic_","kinetic","lastCentroid","lastPointersCount_","panning_","onFocusOnly","noKinetic_","handleDragEvent","beginInteraction","targetPointers","centroid","update","adjustCenterInternal","handleUpEvent","distance","getDistance","angle","getAngle","centerpx","dest","getConstrainedCenter","endInteraction","handleDownEvent","Pointer","DragRotate","lastAngle_","getConstraints","theta","atan2","adjustRotationInternal","RenderBox","geometry_","element_","startPixel_","endPixel_","render_","startPixel","endPixel","px","setPixels","createOrUpdateGeometry","pixels","setCoordinates","Polygon","Disposable","DragBoxEventType","BOXSTART","BOXDRAG","BOXEND","BOXCANCEL","DragBoxEvent","Event","DragBox","box_","minArea_","minArea","onBoxEnd","boxEndCondition_","boxEndCondition","defaultBoxEndCondition","completeBox","DragZoom","out_","out","rotatedExtent","rotatedExtentForGeometry","getResolutionForExtentInternal","factor","fitInternal","UP","DOWN","KeyboardPan","defaultCondition_","pixelDelta_","pixelDelta","keyEvent","keyCode","KeyCode","mapUnitsDelta","deltaX","deltaY","KeyboardZoom","charCode","charCodeAt","Kinetic","decay","minVelocity","delay","decay_","minVelocity_","delay_","points_","angle_","initialVelocity_","Date","now","lastIndex","firstIndex","Mode","TRACKPAD","MouseWheelZoom","totalDelta_","lastDelta_","maxDelta_","maxDelta","timeout_","timeout","useAnchor_","useAnchor","constrainResolution_","constrainResolution","lastAnchor_","startTime_","timeoutId_","mode_","trackpadEventGap_","trackpadTimeoutId_","deltaPerZoom_","endInteraction_","wheelEvent","deltaMode","WheelEvent","DOM_DELTA_PIXEL","DOM_DELTA_LINE","getConstrainResolution","clearTimeout","adjustZoom","timeLeft","handleWheelZoom_","setMouseAnchor","PinchRotate","pointerOptions","anchor_","rotating_","rotationDelta_","threshold_","threshold","rotationDelta","touch0","touch1","clientY","clientX","viewportPosition","getViewport","handlingDownUpSequence","PinchZoom","lastDistance_","lastScaleDelta_","scaleDelta","adjustResolutionInternal","direction","altShiftDragRotate","doubleClickZoom","zoomDelta","zoomDuration","dragPan","pinchRotate","pinchZoom","keyboard","mouseWheelZoom","shiftDragZoom","core","LIBRARY","wksExt","defineProperty","$Symbol","Symbol","charAt","IconImageCache","cache_","cacheSize_","maxCacheSize_","canExpireCache","expire","iconImage","crossOrigin","setSize","maxCacheSize","colorString","shared","CanvasVectorLayerRenderer","vectorLayer","boundHandleStyleImageChange_","handleStyleImageChange_","animatingOrInteracting_","hitDetectionImageData_","renderedFeatures_","renderedRevision_","renderedResolution_","renderedExtent_","wrappedRenderedExtent_","renderedRotation_","renderedCenter_","renderedProjection_","renderedRenderOrder_","replayGroup_","replayGroupChanged","clipping","compositionContext_","opacity_","renderWorlds","executorGroup","opt_declutterTree","vectorSource","viewHints","snapToPixel","ViewHint","ANIMATING","INTERACTING","multiWorld","getWrapX","endWorld","world","execute","setupCompositionContext_","compositionContext","releaseCompositionContext_","renderDeclutter","declutterTree","layerIndex","canvasTransform","clipped","result","featureCallback","distanceSq","match","executorGroups","animating","interacting","updateWhileAnimating","getUpdateWhileAnimating","updateWhileInteracting","getUpdateWhileInteracting","frameStateExtent","vectorLayerRevision","vectorLayerRenderBuffer","getRenderBuffer","vectorLayerRenderOrder","getRenderOrder","renderedExtent","loadExtents","loadExtent","declutterBuilderGroup","getDeclutter","userTransform","extent_1","userExtent_1","loadFeatures","dirty","userExtent","getFeaturesInExtent","replayGroupInstructions","ExecutorGroup","getOverlaps","VectorLayer","BaseVector","PointerInteraction","handleMoveEvent","getPointerCount","updateTrackedPointers_","handledUp","handled","activePointers","customConfig","popupMode","stopPropagation","$emit","activePrompt1","clearFields","exportList","formats","selectedFormat","cellAutoWidth","activePrompt2","exportList2","typologyOptions","typologyIdForExport","searchField","setSearchField","_k","searchResource","searchQuery","activateExport","refresh","goToCreate","searchOptions","searchFieldSelected","placeholder","rowSelection","hasAnimation","getCheckedResources","components","columnDefs","defaultColDef","resourcesData","paginationPageSize","onSelectionChanged","rowSelected","onGridReady","totalPages","currentPage","assigSelectedResorces","message","params","avatar","$router","url","setActive","getActive","ACTIVE","active","pan","opt_duration","currentCenter","zoomByDelta","opt_anchor","newResolution","getResolutionForZoom","MultiLineString","opt_layout","opt_ends","maxDeltaRevision_","setFlatCoordinates","layout","getLayout","lineStrings","lineString","appendLineString","multiLineString","applyProperties","closestPointXY","closestPoint","minSquaredDistance","getCoordinateAtM","opt_extrapolate","XYM","XYZM","extrapolate","getCoordinates","getLineString","getLineStrings","midpoints","getSimplifiedGeometryInternal","XY","intersectsExtent","setLayout","BaseTileLayer","preload","useInterimTilesOnError","setPreload","setUseInterimTilesOnError","getPreload","TileProperty","PRELOAD","getUseInterimTilesOnError","USE_INTERIM_TILES_ON_ERROR","BaseTile","TileLayer","Feature","opt_geometryOrProperties","geometryName_","styleFunction_","geometryChangeKey_","handleGeometryChanged_","setGeometry","setProperties","hasProperties","setGeometryName","getGeometryName","handleGeometryChange_","opt_style","createStyleFunction","setId","removeChangeListener","styles_1","tmp","linearRingIsClockwise","edge","linearRingsAreOriented","opt_right","right","isClockwise","linearRingssAreOriented","orientLinearRings","reverse","orientLinearRingsArray","inflateEnds","prevEndIndex","MapBrowserEvent","opt_dragging","opt_activePointers","pixel_","coordinate_","dragging","getEventPixel","enumerable","configurable","getCoordinateFromPixel","XYZ","TILELOADSTART","TILELOADEND","TILELOADERROR","TileSource","attributionsCollapsible","opaque_","opaque","tilePixelRatio_","tilePixelRatio","tileCache","TileCache","cacheSize","tmpSize","key_","tileOptions","transition","zDirection","expireCache","usedTiles","getTileCacheForProjection","tileCoordKey","loaded","covered","containsKey","getGutterForProjection","setKey","getOpaque","getResolutions","getTile","getTileGrid","getTileGridForProjection","getProjection","getTilePixelRatio","getTilePixelSize","getTileCoordForTileUrlFunction","updateCacheSize","tileCount","highWaterMark","useTile","Source","TileSourceEvent","createFromTemplate","template","zRegEx","xRegEx","yRegEx","dashYRegEx","createFromTemplates","templates","tileUrlFunctions","createFromTileUrlFunctions","expandUrl","urls","exec","startCharCode","stopCharCode","fromCharCode","stop_1","UrlTile","generateTileUrlFunction_","tileUrlFunction","tileLoadFunction","setUrls","setUrl","tileLoadingKeys_","getTileLoadFunction","getTileUrlFunction","getPrototypeOf","getUrls","handleTileChange","tileState","TileEventType","setTileLoadFunction","setTileUrlFunction","pruneExceptNewestZ","BaseLayer","background_","OPACITY","VISIBLE","Z_INDEX","MAX_RESOLUTION","MIN_RESOLUTION","MIN_ZOOM","MAX_ZOOM","className_","state_","opt_managed","managed","getMaxResolution","getMinResolution","setBackground","opt_background","setExtent","setMaxResolution","setMinResolution","setMaxZoom","setMinZoom","setOpacity","setZIndex","zindex","TRUE","FALSE","VOID","memoizeOne","lastResult","lastArgs","lastThis","called","nextArgs","RBush","opt_maxEntries","rbush_","items_","extents","items","bbox","getAll","getInExtent","forEach_","forEachInExtent","rbush","ADDFEATURE","CHANGEFEATURE","REMOVEFEATURE","FEATURESLOADSTART","FEATURESLOADEND","FEATURESLOADERROR","VectorSourceEvent","opt_feature","opt_features","VectorSource","loader_","format_","format","overlaps_","overlaps","url_","loader","strategy_","strategy","collection","useSpatialIndex","featuresRtree_","loadedExtentsRtree_","loadingExtentsCount_","nullGeometryFeatures_","idIndex_","uidIndex_","featureChangeKeys_","featuresCollection_","addFeaturesInternal","bindFeaturesCollection_","addFeature","addFeatureInternal","featureKey","addToIndex_","setupChangeEvents_","VectorEventType","handleFeatureChange_","ObjectEventType","PROPERTYCHANGE","valid","addFeatures","newFeatures","geometryFeatures","length_1","length_2","length_3","modifyingCollection","CollectionEventType","removeFeature","opt_fast","featureId","removeAndIgnoreReturn","removeFeatureInternal","clearEvent","forEachFeature","forEachFeatureAtCoordinateDirect","forEachFeatureInExtent","intersectsCoordinate","forEachFeatureIntersectingExtent","getFeaturesCollection","getFeaturesAtCoordinate","anExtent","getClosestFeatureToCoordinate","opt_filter","closestFeature","previousMinSquaredDistance","minDistance","getFeatureById","getFeatureByUid","getFormat","getUrl","sid","removeFromIdIndex_","loadedExtentsRtree","extentsToLoad","_loop_1","extentToLoad","alreadyLoaded","this_1","removeLoadedExtent","featureChangeKeys","removed","setLoader","MOVESTART","MOVEEND","LOADSTART","LOADEND","lineStringLength","root","factory","modules","installedModules","__webpack_require__","moduleId","toStringTag","mode","__esModule","ns","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","previousUnderscore","_","ArrayProto","ObjProto","FuncProto","Function","nativeIsArray","nativeKeys","nativeBind","nativeCreate","Ctor","_wrapped","optimizeCb","func","argCount","other","accumulator","cb","identity","isFunction","isObject","matcher","iteratee","createAssigner","keysFunc","undefinedOnly","baseCreate","MAX_ARRAY_INDEX","isArrayLike","createReduce","dir","iterator","memo","currentKey","each","collect","results","foldl","inject","reduceRight","foldr","detect","predicate","findIndex","findKey","select","list","reject","negate","every","any","includes","include","fromIndex","guard","invoke","method","args","isFunc","pluck","where","findWhere","computed","lastComputed","shuffle","rand","shuffled","random","sample","sortBy","criteria","group","behavior","groupBy","indexBy","countBy","toArray","partition","fail","head","take","initial","rest","tail","drop","compact","flatten","shallow","strict","startIndex","idx","isArguments","createPredicateIndexFinder","createIndexFinder","predicateFind","sortedIndex","without","difference","uniq","unique","isSorted","isBoolean","seen","union","argsLength","zip","unzip","findLastIndex","low","high","mid","stop","executeBound","sourceFunc","boundFunc","callingContext","self","bound","partial","boundArgs","bindAll","memoize","hasher","address","wait","defer","throttle","previous","later","leading","remaining","trailing","debounce","immediate","timestamp","callNow","wrap","wrapper","compose","after","times","before","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","collectNonEnumProps","nonEnumIdx","proto","prop","allKeys","mapObject","pairs","invert","functions","methods","names","extendOwn","pick","oiteratee","omit","props","tap","interceptor","isMatch","eq","aStack","bStack","areArrays","aCtor","bCtor","isEqual","isElement","nodeType","Int8Array","parseFloat","isNumber","isNull","isUndefined","noConflict","constant","noop","propertyOf","accum","getTime","escapeMap","unescapeMap","createEscaper","escaper","testRegexp","RegExp","replaceRegexp","string","test","escape","unescape","fallback","idCounter","uniqueId","prefix","templateSettings","evaluate","noMatch","escapes","escapeChar","settings","oldSettings","variable","argument","chain","instance","_chain","mixin","valueOf","$","Backbone","previousBackbone","emulateHTTP","emulateJSON","addMethod","attribute","defaultVal","unshift","addUnderscoreMethods","Class","_isModel","modelMatcher","attributes","Events","eventSplitter","eventsApi","events","opts","internalOn","listening","_events","onApi","_listeners","listenTo","_listenId","listeningTo","_listeningTo","thisId","objId","count","handlers","off","offApi","stopListening","ids","handler","_callback","onceMap","listenToOnce","offer","trigger","triggerApi","objEvents","allEvents","triggerEvents","ev","a1","a2","a3","unbind","Model","cid","cidPrefix","parse","initialize","validationError","idAttribute","sync","attr","_validate","unset","silent","changes","changing","_changing","_previousAttributes","current","prev","_pending","hasChanged","changedAttributes","diff","old","previousAttributes","fetch","success","resp","serverAttrs","wrapError","validate","isNew","patch","xhr","destroy","base","urlError","encodeURIComponent","isValid","error","modelMethods","models","comparator","_reset","reset","setOptions","merge","addOptions","at","singular","_removeModels","toAdd","toRemove","modelMap","sortable","sortAttr","existing","_prepareModel","_addReference","orderChanged","_removeReference","previousModels","modelId","_byId","callbackOpts","_onModelEvent","prevId","collectionMethods","View","viewOptions","_ensureElement","delegateEventSplitter","selector","$el","_removeElement","undelegateEvents","_setElement","delegateEvents","el","delegate","eventName","undelegate","_createElement","_setAttributes","methodMap","dataType","contentType","JSON","stringify","_method","beforeSend","setRequestHeader","processData","textStatus","errorThrown","ajax","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","escapeRegExp","route","isRegExp","_routeToRegExp","router","history","fragment","_extractParameters","navigate","optional","param","decodeURIComponent","History","checkUrl","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","path","pathname","getSearch","matchRoot","decodeFragment","decodeURI","href","getHash","getPath","getFragment","_usePushState","_wantsHashChange","hashChange","_hasHashChange","documentMode","_useHashChange","_wantsPushState","pushState","_hasPushState","iframe","tabIndex","body","iWindow","firstChild","contentWindow","open","attachEvent","_checkUrlInterval","setInterval","loadUrl","detachEvent","clearInterval","_updateHash","protoProps","staticProps","child","Surrogate","__super__","when","done","setIdAttribute","retrigger","retrigEvent","opt1","opt2","promise","CartoError","CartoValidationError","errorExtender","errorTracker","UNEXPECTED_ERROR","GENERIC_ORIGIN","cartoError","_isWindshaftError","_transformWindshaftError","analysis","_isAjaxError","_transformAjaxError","extraFields","getExtraFields","friendlyMessage","errorCode","originalError","track","responseText","findById","layerId","sourceId","analysisId","_handleAjaxResponse","statusText","errorMessage","parsedError","exc","operation","COUNT","SUM","AVG","MAX","MIN","isValidOperation","op","status","NOT_LOADED","timeAggregation","AUTO","MILLENNIUM","CENTURY","DECADE","YEAR","QUARTER","MONTH","WEEK","DAY","HOUR","MINUTE","isValidTimeAggregation","agg","ATTRIBUTION","Base","_getValidationError","util","XMLHttpRequest","byteArr","encoded","btoa","encodeBase64Native","encodeBase64","o1","o2","o3","h1","h2","h3","h4","bits","b64","ac","enc","tmpArr","str","_callback_c","crc32","crcTable","_crcTable","_makeCRCTable","crc","ua","browser","detectIE","msie","trident","getIEVersion","compatMode","querySelector","atob","navigator","userAgent","ie","version","chrome","firefox","opera","safari","_inferBrowser","isMobileDevice","supportsTouch","msMaxTouchPoints","webGLSupportedAndEnabled","isWebGLSupported","WebGLRenderingContext","endsWith","suffix","checkRequiredOpts","actualOpts","requiredOpts","from","isLeafletLoaded","L","isGoogleMapsLoaded","google","maps","types","BBOX","CIRCLE","POLYGON","REQUIRED_OPTS","STATUS","PENDING","WAITING","RUNNING","FAILED","READY","AnalysisModel","_camshaftReference","camshaftReference","_engine","engine","_initBinds","_referencedBy","authToken","tokens","token","setOk","setError","_reload","getParamNames","paramName","_hadStatus","isReady","isSourceOfAnyModel","reload","_onMapReloadError","findAnalysisById","_getSourceNames","sourceName","getSourceNamesForAnalysisType","isDone","_hasStatus","isLoading","isFailed","statuses","_getStatus","json","sourceNames","sourceInfo","getParamNamesForAnalysisType","getNodes","nodes","getNodesCollection","analysisModel","markAsSourceOf","isSourceOf","unmarkAsSourceOf","SourceBase","FilterBase","SQLFilterBase","SpatialFilterTypes","getStatus","_status","isLoaded","hasError","enable","_setEnabled","disable","isEnabled","_enabled","_source","setColumn","column","_checkColumn","_column","_internalModel","getColumn","addFilter","_checkFilter","_addSpatialFilter","removeFilter","_removeSpatialFilter","hasFilter","hasBBoxFilter","_boundingBoxFilter","hasCircleFilter","_circleFilter","hasPolygonFilter","_polygonFilter","DEFAULTS","_initialize","_checkSource","_checkOptions","_options","_createInternalModel","enabled","_listenToInternalModelSharedEvents","_onDataChanged","_onColumnChanged","_onStatusLoading","_onStatusLoaded","_onStatusError","_triggerError","_changeProperty","internalKey","prevValue","_triggerChange","_changeProperties","internalDataviewError","spatialFilter","_addBoundingBoxFilter","_addCircleFilter","_addPolygonFilter","_removeBoundingBoxFilter","_removeCircleFilter","_removePolygonFilter","bboxFilter","addBBoxFilter","$getInternalModel","removeBBoxFilter","circleFilter","addCircleFilter","removeCircleFilter","polygonFilter","addPolygonFilter","removePolygonFilter","$setEngine","_createClass","defineProperties","descriptor","writable","Constructor","_defineProperty","_classCallCheck","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","getObjectValue","ALLOWED_OPTIONS","DEFAULT_JOIN_OPERATOR","SQLBase","_Base","_filters","filterType","filterValue","newFilter","_checkFilters","filters","setFilters","_this2","sql","_interpolateFilter","Boolean","includeNull","_includeNullInQuery","_this3","isFilterValid","ALLOWED_FILTERS","parameters","PARAMETER_SPECIFICATION","haveCorrectType","parameter","parameterValue","allowedTypes","parameterIsOfType","_this4","option","isOptionValid","_this5","isDate","toISOString","_convertValueToSQLString","normalizeString","filterValues","sqlString","SQL_TEMPLATES","parameterType","FiltersCollection","EVENTS","_id","$generateId","_hasFiltersApplied","_appliedFilters","$nextId","internalError","$getEngine","getFilters","addFilters","removeFilters","Engine","NON_RESETEABLE_DEFAULT_ATTRS","LegendModelBase","preHTMLSnippet","postHTMLSnippet","STATE_LOADING","deps","RELOAD_STARTED","_onEngineReloadStarted","isError","STATE_ERROR","isSuccess","STATE_SUCCESS","show","isVisible","getNonResettableAttrs","isAvailable","SUCCESS","PROPERTY_KEY","MAPPING_KEY","RANGE_FILTER_TYPE","CATEGORY_FILTER_TYPE","DEFAULT_FILTER_TYPE","Rule","rule","_rule","matchesAnyProperty","_matches","matchesAnyMapping","mappings","acceptedValues","getBucketsWithRangeFilter","_getBucketsByFilterType","getBucketsWithCategoryFilter","getBucketsWithDefaultFilter","buckets","bucket","getMapping","mapping","getProperty","getFilterAvg","stats","filter_avg","TILED_LAYER_TYPE","PLAIN_LAYER_TYPE","WMS_LAYER_TYPE","GMAPS_BASE_LAYER_TYPE","CARTODB_LAYER_TYPE","TORQUE_LAYER_TYPE","isLayerOfType","layerModel","layerType","toLowerCase","isTiledLayer","isPlainLayer","isWMSLayer","isGoogleMapsBaseLayer","isCartoDBLayer","isTorqueLayer","noGlobal","class2type","hasOwn","support","jQuery","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","letter","toUpperCase","isArraylike","isWindow","jquery","num","pushStack","elems","ret","prevObject","elem","copy","copyIsArray","deep","isPlainObject","expando","msg","isNumeric","isEmptyObject","globalEval","script","indirect","eval","trim","camelCase","nodeName","makeArray","inArray","second","grep","callbackInverse","callbackExpect","arg","guid","proxy","Sizzle","Expr","isXML","tokenize","compile","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","sortOrder","MAX_NEGATIVE","push_native","booleans","whitespace","characterEncoding","identifier","pseudos","rwhitespace","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","escaped","escapedWhitespace","unloadHandler","els","seed","groups","nid","newContext","newSelector","ownerDocument","getElementsByTagName","getElementsByClassName","qsa","getAttribute","toSelector","testContext","querySelectorAll","qsaError","removeAttribute","cacheLength","markFunction","assert","div","addHandle","attrHandle","siblingCheck","cur","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","matchIndexes","documentElement","hasCompare","doc","defaultView","createComment","getById","getElementsByName","attrId","getAttributeNode","tag","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","elements","specified","uniqueSort","duplicates","detectDuplicates","sortStable","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","xml","outerCache","nodeIndex","useCache","pseudo","matched","unmatched","innerText","lang","elemLang","hasFocus","disabled","checked","selectedIndex","radio","checkbox","file","password","submit","addCombinator","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","parseOnly","soFar","preFilters","cached","compiled","div1","defaultValue","isXMLDoc","rneedsContext","needsContext","rsingleTag","risSimple","winnow","qualifier","not","is","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","contents","next","sibling","until","truncate","targets","closest","pos","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","readyList","rnotwhite","optionsCache","createOptions","flag","completed","Callbacks","memory","fired","firing","firingStart","firingLength","firingIndex","fire","stopOnFalse","empty","lock","locked","fireWith","Deferred","tuples","deferred","then","fns","newDefer","tuple","returned","progress","notify","pipe","stateString","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","notifyWith","resolveWith","readyWait","holdReady","hold","triggerHandler","readyState","access","chainable","emptyGet","raw","bulk","Data","acceptData","owner","accepts","unlock","stored","camel","hasData","discard","data_priv","data_user","rbrace","rmultiDash","dataAttr","parseJSON","removeData","_data","_removeData","camelKey","queue","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","pnum","cssExpand","isHidden","css","rcheckableType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","strundefined","focusinBubbles","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","handleObjIn","eventHandle","handleObj","special","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","onlyHandlers","bubbleType","ontype","eventPath","isTrigger","namespace_re","noBubble","parentWindow","isPropagationStopped","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","postDispatch","sel","fixHooks","keyHooks","original","which","mouseHooks","eventDoc","pageX","scrollLeft","clientLeft","pageY","scrollTop","clientTop","fixHook","blur","click","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","relatedTarget","attaches","one","origFn","rxhtmlTag","rtagName","rhtml","rnoInnerhtml","rchecked","rscriptType","rscriptTypeMasked","rcleanScript","wrapMap","thead","tr","td","manipulationTarget","content","disableScript","restoreScript","setGlobalEval","refElements","cloneCopyEvent","pdataOld","pdataCur","udataOld","udataCur","fixInput","optgroup","tbody","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","buildFragment","scripts","selection","cleanData","append","domManip","prepend","keepData","html","replaceWith","detach","hasScripts","iNoClone","_evalUrl","appendTo","prependTo","insertAfter","replaceAll","elemdisplay","actualDisplay","getDefaultComputedStyle","defaultDisplay","write","rmargin","rnumnonpx","getStyles","opener","curCSS","minWidth","maxWidth","getPropertyValue","addGetHookIf","conditionFn","hookFn","pixelPositionVal","boxSizingReliableVal","computePixelPositionAndBoxSizingReliable","cssText","divStyle","backgroundClip","clearCloneStyle","pixelPosition","boxSizingReliable","reliableMarginRight","marginDiv","swap","rdisplayswap","rnumsplit","rrelNum","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","vendorPropName","capName","origName","setPositiveNumber","subtract","augmentWidthOrHeight","extra","isBorderBox","getWidthOrHeight","valueIsBorderBox","showHide","hidden","Tween","cssHooks","cssNumber","cssProps","border","expand","expanded","parts","unit","propHooks","run","eased","tween","fx","linear","swing","fxNow","timerId","rfxtypes","rfxnum","rrun","animationPrefilters","defaultPrefilter","tweeners","createTween","maxIterations","createFxNow","genFx","includeWidth","oldfire","checkDisplay","anim","dataShow","unqueued","overflowX","overflowY","propFilter","specialEasing","Animation","stopped","tick","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","rejectWith","timer","complete","tweener","prefilter","speed","opt","speeds","fadeTo","to","optall","doAnimation","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","time","checkOn","optSelected","optDisabled","radioValue","nodeHook","boolHook","removeAttr","nType","attrHooks","bool","propName","attrNames","propFix","rfocusable","removeProp","notxml","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","hover","fnOver","fnOut","nonce","rquery","parseXML","DOMParser","parseFromString","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","transports","allTypes","ajaxLocation","ajaxLocParts","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","conv2","conv","responseFields","dataFilter","lastModified","etag","isLocal","async","ajaxSetup","ajaxPrefilter","ajaxTransport","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","fireGlobals","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","lname","overrideMimeType","abort","finalText","crossDomain","traditional","hasContent","ifModified","headers","send","nativeStatusText","modified","getJSON","getScript","wrapAll","wrapInner","unwrap","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","serialize","serializeArray","xhrId","xhrCallbacks","xhrSuccessStatus","0","1223","xhrSupported","cors","username","xhrFields","onload","onerror","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","animated","getWindow","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","andSelf","_jQuery","_$","BOUNDING_BOX_FILTER_WAIT","mapAdapter","_bounds","_mapAdapter","setBounds","getBounds","_boundsChanged","_stopBinds","bounds","areBoundsAvailable","west","south","east","north","clean","_xhr","BackboneAbortSync","parseWindshaftErrors","UNFETCHED_STATUS","FETCHING_STATUS","FETCHED_STATUS","FETCH_ERROR_STATUS","REQUEST_GET_MAX_URL_LENGTH","sync_on_bbox_change","sync_on_circle_change","sync_on_polygon_change","_getSpatialFilterParam","_getDataviewSpecificURLParams","_addAuthTo","urlWithParams","getApiKey","getAuthToken","_bboxFilter","_getBoundingBoxFilterParam","_getCircleFilterParam","_getPolygonFilterParam","_checkBBoxFilter","syncsOnBoundingBoxChanges","_checkCircleFilter","syncsOnCircleChanges","_checkPolygonFilter","syncsOnPolygonChanges","_hasBinds","_checkSourceAttribute","_addSpatialFilterFrom","_fetch","_onFilterChanged","_onAnalysisStatusChange","_onChangeBinds","_newDataAvailable","_shouldFetchOnURLChange","mdl","_onMapBoundsChanged","_shouldFetchOnBoundingBoxChange","_onCircleChanged","_shouldFetchOnCircleChange","_onPolygonChanged","_shouldFetchOnPolygonChange","_triggerLoading","_triggerStatusError","getSourceId","_reloadAndForceFetch","forceFetch","_sourceAffectsMyOwnSource","sourceAnalysis","_stopListeningBBoxChanges","_listenToBBoxChanges","_stopListeningCircleChanges","_listenToCircleChanges","_stopListeningPolygonChanges","_listenToPolygonChanges","ATTRS_NAMES","getPreviousData","successCallback","_model","_errorWithBigPolygonFilter","_parseError","usingPolygonFilter","getSourceType","isSourceType","isFiltered","_removeExistingAnalysisBindings","isFetched","isUnavailable","setUnavailable","_triggerFilterChange","filterIndex","removedElement","sqlFilters","$getSQL","joinedFilters","JOIN_OPERATOR","StaticLegendModelBase","EventTypes","Aggregation","OVERLAY_TYPES","HEADER","LIMITS","TILES","LOADER","LOGO","SEARCH","ZOOM","MAP_PROVIDER_TYPES","GMAPS","LEAFLET","GMAPS_BASE_LAYER_TYPES","WINDSHAFT_ERRORS","ANALYSIS","LAYER","LIMIT","TILE","GENERIC","WindshaftError","responseJSON","errors_with_context","cdb","info","debug","DEBUG","getVersion","PARAM_TYPES","NODE","NUMBER","STRING","ENUM","SOURCE_ANALYSIS_TYPE","ANALYSIS_TYPE_TO_SOURCE_PARAM_NAMES_MAP","ANALYSIS_TYPE_TO_PARAM_NAMES_MAP","analysesReference","analyses","analysisType","analysisParams","paramType","paramNames","Analysis","LayerTypes","AnalysisService","_apiKey","apiKey","_authToken","_analysisNodes","_getAnalysesFromLayers","layersCollection","_getCartoDBAndTorqueLayers","_getAnalysesFromDataviews","dataviewsCollection","dataview","analyse","analysisDefinition","findNodeById","analysisAttrs","_getAnalysisAttributesFromAnalysisDefinition","_onAnalysisRemoved","analysisNodes","sourceNamesForAnalysisType","sourceParams","createAnalysisForLayer","layerQuery","query","getUniqueAnalysisNodes","uniqueAnalysisNodes","analysisList","getAnalysisList","analysisNode","analisis","layerAnalyses","dataviewsAnalyses","AGGREGATION_DATA","minute","hour","day","week","month","quarter","year","decade","century","millennium","helper","trimBuckets","filledBuckets","totalBuckets","keepGoing","_getDaysInMonth","_isLeapYear","fillTimestampBuckets","aggregation","numberOfBins","definedBucket","bucketStart","nextBucketStart","bin","freq","fillNumericBuckets","commonBucketEnd","isLastBucket","bucketEnd","filledBucket","hasChangedSomeOf","number","date","setUTCSeconds","getUTCSeconds","setUTCMinutes","getUTCMinutes","setUTCHours","getUTCHours","setUTCDate","getUTCDate","setUTCMonth","getUTCMonth","getUTCFullYear","d3","DataviewModelBase","HistogramDataModel","dateUtils","totalAmount","filteredAmount","hasNulls","localTimezone","getCurrentOffset","_localOffset","getLocalOffset","_totals","bins","column_type","localOffset","setRange","_updateURLBinding","_onTotalsDataFetched","_updateBindings","_onTotalsError","_onLocalTimezoneChanged","_onFieldsChanged","_onColumnTypeChanged","_onUrlChanged","enableFilter","disableFilter","getUnfilteredData","getUnfilteredDataModel","getColumnType","bins_count","bin_width","timestamp_start","bins_start","parsedData","nulls","_calculateTotalAmount","_calculateFilteredAmount","indexes","_findBinsIndexes","_sumBinsFreq","startBin","endBin","acum","getDistributionType","histogram","freqAccessor","osc","mean","sumFreqs","sum","freqs","ajus","maxAjus","minAjus","uniques","A_TYPES","U_TYPES","columnType","resetFilter","_resetFilterAndFetch","_setTotalsStartEnd","aggregationChangedToUndefined","_resetFilter","startEndChanged","startEndValid","hasDifferentValues","unsetRange","CategoryItemModel","COUNT_AGGREGATION_TYPE","aggregationModel","category","isModel","isOtherAvailable","Map","EventEmitter","TileLoader","Interactive","gridUrl","_bindMap","_tileLoader","_tileSize","_eventEmitter","_tilejson","grids","_map","_onMapClick","_onMapMouseMove","eventClone","cloneEvent","coords","_getTileCoordsFromMouseEvent","loadTile","_objectForEvent","catch","pixelPoint","project","_unscale","eventType","_unscale2","grid","gridX","gridY","_utfDecode","_triggerEvent","extendedEvent","char","GoogleMap","LeafletMap","nativeMap","__gm","latLng","fromLatLngToPoint","addListener","latlng","containerPoint","layerPoint","move","_url","_cache","newValue","_buildTileUrl","_handleLimitErrors","CartoDBLayerGroupViewBase","layerGroupModel","_mapModel","mapModel","onLayerVisibilityChanged","_reloadInteraction","_clearInteraction","forEachGroupedLayer","isInteractive","isFeatureInteractivityEnabled","_enableInteraction","layerIndexInLayerGroup","tilejson","_generateTileJSON","previousLayerInteraction","interactionClass","zeraEvent","_interactionDisabled","_manageOnEvents","_manageInteractivityErrors","_manageOffEvents","payload","hasURLs","scheme","getGridURLTemplatesWithSubdomains","getTileURLTemplatesWithSubdomains","formatter","tilesOk","internalEvent","lat","lng","_type","_mapping","_property","$setError","_error","newEngine","getFieldNames","fields","field","PopupFields","otherFields","myFields","subtype","truncateMessage","isLayerError","isAnalysisError","node_id","MAX_SIZE","originalType","forcedType","genericType","isGlobalError","errorType","MAPS_API_BASE_URL","versions","AnalysisPoller","AnonymousMapSerializer","CartoDBLayerGroup","DataviewsCollection","LayersCollection","ModelUpdater","NamedMapSerializer","Request","Response","WindshaftClient","RELOAD_DEBOUNCE_TIME_IN_MILIS","_isNamedMap","templateName","_timeout","_stackCalls","_batchOptions","_windshaftSettings","urlTemplate","serverUrl","userName","client","_windshaftClient","_eventEmmitter","_analysisPoller","_layersCollection","_dataviewsCollection","_cartoLayerGroup","_bindCartoLayerGroupError","_modelUpdater","getLayerGroup","includeFilters","_performReload","windshaftError","windshaftOptions","_buildWindshaftOptions","serverResponse","_onReloadSuccess","_onReloadError","_buildParams","_getSerializer","request","instantiateMap","_manageClientError","addLayer","removeLayer","moveLayer","toIndex","addDataview","removeDataview","responseWrapper","updateModels","_restartAnalysisPolling","RELOAD_SUCCESS","_getSimpleWindshaftError","setErrors","RELOAD_ERROR","errorCallback","api_key","auth_token","resetAnalysisNodes","change","LAYER_ERROR","__webpack_exports__","ascending","bisector","ascendingComparator","lo","hi","ascendingBisect","bisectRight","bisectLeft","bisect","pair","cross","values0","values1","i0","i1","value0","n0","n1","descending","variance","valueof","deviation","array_array","e10","e5","e2","ticks","tickIncrement","power","LN10","tickStep","step0","step1","sturges","LN2","src_histogram","domain","xz","tz","thresholds","quantile","value1","freedmanDiaconis","scott","src_max","src_mean","median","numbers","arrays","merged","src_min","permute","permutes","scan","xi","xj","src_sum","src_transpose","matrix","transpose_length","transpose","OR","_FiltersCollection","AND","RANGE_COMPARISON_OPERATORS","lt","lte","gt","gte","between","notBetween","betweenSymmetric","notBetweenSymmetric","freeze","Range","_SQLBase","_getSQLTemplates","CATEGORY_COMPARISON_OPERATORS","in","notIn","notEq","like","similarTo","Category","_polygon","setPolygon","polygon","getPolygon","PolygonFilterModel","_checkPolygon","resetPolygon","_circle","setCircle","circle","getCircle","CircleFilterModel","Circle","_checkCircle","resetCircle","_isReady","_debouncedTriggerBoundsChanged","_triggerBoundsChanged","mapBounds","sw","getSouthWest","ne","getNorthEast","clearListeners","GoogleMapsBoundingBoxAdapter","BoundingBoxFilterModel","utils","BoundingBoxGoogleMaps","_isGoogleMap","_onBoundsChanged","LeafletBoundingBoxAdapter","BoundingBoxLeaflet","_isLeafletMap","BoundingBox","_checkBounds","resetBounds","secondsToHours","seconds","parseTimeSeriesData","compactData","maxBin","maxFreq","_createBins","normalized","HistogramDataviewModel","TimeSeries","_aggregation","_offset","_hoursToSeconds","_localTimezone","useLocalTimezone","hours","_secondsToHours","setAggregation","_validateAggregation","getAggregation","_validateOffset","_validateLocalTimezone","isUsingLocalTimezone","parseHistogramData","getTimezoneOffset","hasBeenFetched","_getCurrentOffset","setBins","Histogram","_bins","_start","_end","_validateBins","getBins","setStartEnd","_validateStartEnd","getStart","getEnd","bothAreNumbers","bothAreNull","parseFormulaData","constants","FormulaDataviewModel","Formula","_operation","setOperation","_checkOperation","getOperation","parseCategoryData","categories","_createCategories","WindshaftFilterBase","rejectAll","rejectedCategories","acceptedCategories","accept","applyFilter","rejectedMdls","acceptedMdls","acceptAll","cleanFilter","isAccepted","isRejected","acceptCount","triggerChange","areAllRejected","rejectCount","acceptedCats","rejectedCats","getAcceptedCategoryNames","getRejectedCategoryNames","totalCount","categoriesCount","queryOptions","CategoriesCollection","q","fetchIfSearchIsApplied","isSearchApplied","setData","_parseData","getCount","resetData","getSearchQuery","newData","SearchModel","CategoryModelRange","filterEnabled","allCategoryNames","_rangeModel","_searchModel","_bindSearchModelEvents","_onSearchDataChange","getSearchResult","setSearchQuery","isSearchValid","getSearchCount","applySearch","cleanSearch","setupSearch","numberOfAcceptedCategories","numberOfRejectedCategories","totalCategories","cat","isCategoryInData","_tmpArray","allNewCategories","allNewCategoryNames","acceptedCategoryNames","datum","aggregationColumn","CategoryDataviewModel","CategoryFilter","operationColumn","_limit","limit","_operationColumn","setLimit","_checkLimit","getLimit","setOperationColumn","_checkOperationColumn","getOperationColumn","aggregation_column","CONTENT_CHANGED","CartoCSS","_checkContent","_content","_onContentChanged","newContent","getContent","setContent","CamshaftReference","SQL","_checkQuery","_query","_updateInternalModelQuery","_getQueryToApply","setQuery","_triggerQueryChanged","getQuery","internalModel","whereClause","Dataset","tableName","_checkTableName","_tableName","setTableName","_triggerTableNameChanged","getTableName","datasetQuery","MAX_HISTORY","Profiler","Metric","t0","metrics","_backend","MAX_VALUE","avg","total","Float32Array","backend","new_value","performance","print_stats","_elapsed","inc","qty","dec","mark","elapsed","metric","Projector","OverlayView","draw","latLngToPixel","fromLatLngToContainerPixel","Point","pixelToLatLng","fromContainerPixelToLatLng","LatLng","GMapsLayerView","_onModelUpdated","gmapsMap","showLimitErrors","addToMap","zera","C","OPACITY_FILTER","EMPTY_GIF","setImageOpacityIE8","generateId","GMapsCartoDBLayerGroupView","hovers","previousEvent","_featureOver","featureOver","_featureOut","featureOut","_featureClick","featureClick","eventTimeout","latlon","pxPos","blankImage","interactive","Size","projector","overlayMapTypes","setAt","overlayIndex","_getOverlayIndex","removeAt","finishLoading","invalidate","pixelPos","getLayerInLayerGroupAt","ok","coord","ielt9","added","hasTileURLTemplates","Image","_getTile","loadTime","finished","addError","_getTileUrl","mod","tileURLTemplates","_refreshView","overlays","getAt","_checkLayer","overlay","_newPoint","triggerLayerFeatureEvent","GoogleMapsMapType","_layers","_hoveredLayers","_internalView","_onFeatureClick","_onFeatureOver","_onFeatureOut","_onFeatureError","FEATURE_CLICKED","draggableCursor","FEATURE_OVER","FEATURE_OUT","TILE_ERROR","LeafletLayerView","leafletMap","leafletLayer","nativeLayer","_createLeafletLayer","setModel","_modelUpdated","notifyRemove","redraw","LeafletCartoDBLayerGroupView","tileLayer","_setUrl","noDraw","tileURLTemplate","getTileURLTemplate","subdomains","getSubdomains","Util","layerPointToContainerPoint","containerPointToLatLng","_onFeatureClicked","OPERATIONS","MODE","PLACEMENTS","SAMPLE","GRID","CENTROID","VALID_RESOLUTIONS","_checkValidPlacement","columns","_checkAndTransformColumns","_checkColumns","aggregatedColumn","aggregateFunction","_columnToSnakeCase","aggregate_function","aggregated_column","Categories","categoryBuckets","defaultBuckets","_categories","_defaultValue","getCategories","getDefaultValue","Buckets","rangeBuckets","_buckets","_avg","_min","_max","getBuckets","getAverage","getMin","getMax","BucketsMetadata","CategoriesMetadata","getMetadataFromRules","rulesData","metadata","ruleData","_isBucketsMetadata","_isCategoriesMetadata","TorqueLegendModel","CustomChoroplethLegendModel","leftLabel","rightLabel","colors","CustomLegendModel","ChoroplethLegendModel","BubbleLegendModel","fillColor","CategoryLegendModel","LEGENDS_METADATA","modelClass","definitionAttrs","dynamic","choropleth","custom","custom_choropleth","torque","SHARED_ATTRS","Legends","legendsData","_legendsData","legendMetadata","legendType","_createLegendModel","_findDataForLegend","ModelClass","definition","modelAttrs","attrNameInData","attrNameForModel","legendModel","hasAnyLegend","legendTypes","legend","TooltipTemplate","vertical_offset","horizontal_offset","alternative_names","hasFields","hasTemplate","InfowindowTemplate","maxHeight","template_type","MapLayer","hasSource","Config","REPORT_ERROR_URL","ERROR_TRACK_ENABLED","config","cartodb_attributions","cartodb_logo_link","LayerModelBase","ATTRIBUTES_THAT_TRIGGER_VIS_RELOAD","CartoDBLayer","cartocss","infowindow","tooltip","legends","_onAttributeChanged","restoreCartoCSS","_hasInfowindowFields","_hasTooltipFields","getInteractiveColumnNames","isInfowindowEnabled","isTooltipEnabled","getName","getEstimatedFeatureCount","meta","estimatedFeatureCount","newSource","table_name","StyleBase","metadataParser","_checkStyle","_client","_style","_visible","_featureClickColumns","featureClickColumns","_featureOverColumns","featureOverColumns","_minzoom","minzoom","_maxzoom","maxzoom","_validateAggregationColumnsAndInteractivity","_getInteractivityFields","_isStyleError","_rejectAndTriggerError","_areColumnsTheSame","newColumns","oldColumns","aggregationColumns","clickColumns","overColumns","aggColumns","_validateColumnsConcordance","interactivityColumns","interactivity","notInAggregation","clickColumn","prevStyle","prevSource","setFeatureClickColumns","prevColumns","getFeatureClickColumns","setFeatureOverColumns","getFeatureOverColumns","prevStatus","setOrder","bringToBack","bringToFront","rules","cartocss_meta","styleMetadataList","$setClient","LeafletCartoLayerGroupView","LeafletLayer","addTo","removeFrom","getContainer","cursor","Layers","RequestTracker","maxNumberOfRequests","_maxNumberOfRequests","lastRequestEquals","lastResponseEquals","maxNumberOfRequestsReached","_lastRequest","_lastResponse","_numberOfRequests","canRequestBePerformed","LZMA","$moduleName","action_compress","action_decompress","update_progress","callback_num","postMessage","action","expandoNames_0","expandoValues_0","N8000000000000000_longLit","N1_longLit","P0_longLit","P1_longLit","P4_longLit","P1000_longLit","Pffffff_longLit","P1000000_longLit","Pff000000_longLit","Pffffffff_longLit","P7fffffffffffffff_longLit","getClass_18","Ljava_lang_Object_2_classLit","Object_0","getClass_22","Ljava_lang_Throwable_2_classLit","Throwable","getClass_13","Ljava_lang_Exception_2_classLit","Exception","$RuntimeException","this$static","detailMessage","getClass_19","Ljava_lang_RuntimeException_2_classLit","RuntimeException","$JavaScriptException","getClass_0","Lcom_google_gwt_core_client_JavaScriptException_2_classLit","JavaScriptException","$append","explicitLength","$appendNonNull","$toString","s_0","createFromSeed","seedType","length_0","getClass_2","arrayClass$","initDim","arrayClass","typeId","queryId","$clinit_4","wrapArray","typeId$","queryId$","initValues","setCheck","canCastUnsafe","ArrayStoreException","typeMarker$","nullMethod","Array_0","initExpandos","protoType","expandoNames","expandoValues","name_0","canCast","srcId","dstId","typeIdArray","dynamicCast","ClassCastException","instanceOf","round_int","getClass$","boxedValues","LN_2","MIN_VALUE","NEG_ONE","ONE","TWO","TWO_PWR_24","ZERO","CrcTable","g_FastPos","ProbPrices","1","2","10","11","4","5","6","7","8","9","caught","newHigh","newLow","addTimes","and","makeFromBits","lowBits_0","nega","negb","sub","valueLow","valueHigh","diffHigh","diffLow","approx","deltaRem","deltaResult","halfa","rem","$ArithmeticException","ArithmeticException","$clinit_10","shr","shl","mul","neg","fromDouble","toDoubleRoundDown","toDoubleRoundUp","fromInt","rebase","$clinit_9","internalFromInt","highBits","lowBits","a4","b1","b2","b3","b4","res","multByMinValue","pwrAsDouble","twoToN","shiftFact","shru","sr","magnitute","toSubtract","toString_0","digits","remDivTenPower","tenPowerLong","zeroesNeeded","_3_3D_classLit","getClass_6","Ljava_io_InputStream_2_classLit","InputStream","$ByteArrayInputStream","buf","$ByteArrayInputStream_0","$read","$read_0","arraycopy","getClass_3","Ljava_io_ByteArrayInputStream_2_classLit","ByteArrayInputStream","getClass_7","Ljava_io_OutputStream_2_classLit","OutputStream","$ByteArrayOutputStream","_3B_classLit","$ensureCapacity","newbuf","$toByteArray","$write","$write_0","getClass_4","Ljava_io_ByteArrayOutputStream_2_classLit","ByteArrayOutputStream","$IOException","getClass_5","Ljava_io_IOException_2_classLit","IOException","explanation","getClass_8","Ljava_lang_ArithmeticException_2_classLit","$ArrayStoreException","getClass_9","Ljava_lang_ArrayStoreException_2_classLit","createForArray","packageName","typeName","createForClass","createForEnum","getClass_11","Ljava_lang_Class_2_classLit","getClass_10","Ljava_lang_ClassCastException_2_classLit","getClass_12","Ljava_lang_Enum_2_classLit","Enum","$IllegalArgumentException","getClass_14","Ljava_lang_IllegalArgumentException_2_classLit","IllegalArgumentException","getClass_15","Ljava_lang_IllegalStateException_2_classLit","IllegalStateException","getClass_16","Ljava_lang_IndexOutOfBoundsException_2_classLit","IndexOutOfBoundsException","getClass_17","Ljava_lang_NullPointerException_2_classLit","NullPointerException","$equals","$getChars","srcBegin","srcEnd","dst","dstBegin","srcIdx","getClass_21","Ljava_lang_String_2_classLit","$StringBuilder","getClass_20","Ljava_lang_StringBuilder_2_classLit","StringBuilder","srcOfs","destOfs","destArray","destEnd","destTypeName","destlen","srcArray","srcTypeName","srclen","Lcom_google_gwt_core_client_JavaScriptObject_2_classLit","$configure","encoder","$SetDictionarySize_0","dictionarySize","$SetNumFastBytes","fb","$SetMatchFinder","matchFinder","$SetLcLpPb_0","lc","lp","pb","getClass_23","Lorg_dellroad_lzma_client_CompressionMode_2_classLit","CompressionMode","$execute","$e0","$processChunk","chunker","$init","$Encoder","Encoder","_writeEndMark","$WriteCoderProperties","_needReleaseMFStream","_inStream","_finished","$Create_2","_rangeEncoder","Stream","$Init_4","$FillDistancesPrices","$FillAlignPrices","_lenEncoder","_tableSize","_numFastBytes","$UpdateTables","_posStateBits","_repMatchLenEncoder","nowPos64","$Chunker_0","Chunker","getClass_26","Lorg_dellroad_lzma_client_LZMACompressor_2_classLit","LZMACompressor","$LZMAByteArrayCompressor","getClass_24","Lorg_dellroad_lzma_client_LZMAByteArrayCompressor_2_classLit","LZMAByteArrayCompressor","$execute_0","exception","$init_0","decoder","tmp_length","hex_length","$Decoder","Decoder","$SetDecoderProperties","$CodeInChunks","getClass_27","Lorg_dellroad_lzma_client_LZMADecompressor_2_classLit","LZMADecompressor","$LZMAByteArrayDecompressor","getClass_25","Lorg_dellroad_lzma_client_LZMAByteArrayDecompressor_2_classLit","LZMAByteArrayDecompressor","$Create_4","keepSizeBefore","keepSizeAfter","keepSizeReserv","blockSize","_keepSizeBefore","_keepSizeAfter","_bufferBase","_blockSize","_pointerToLastSafePosition","$GetIndexByte","_bufferOffset","_pos","$GetMatchLen","pby","_streamEndWasReached","_streamPos","$GetNumAvailableBytes","$MoveBlock","numBytes","$MovePos_1","pointerToPostion","_posLimit","$ReadBlock","numReadBytes","_stream","$ReduceOffsets","subValue","getClass_40","Lorg_dellroad_lzma_client_SevenZip_Compression_LZ_InWindow_2_classLit","InWindow","$clinit_60","_3I_classLit","$Create_3","historySize","keepAddBufferBefore","matchMaxLen","keepAddBufferAfter","cyclicBufferSize","hs","windowReservSize","_cutValue","_matchMaxLen","_cyclicBufferSize","_son","HASH_ARRAY","_hashMask","kFixHashSize","_hashSizeSum","_hash","$GetMatches","distances","curMatch","curMatch2","curMatch3","cyclicPos","hash2Value","hash3Value","hashValue","len0","len1","lenLimit","matchMinPos","maxLen","pby1","ptr0","ptr1","kMinMatchCheck","$MovePos_0","_cyclicBufferPos","kNumHashDirectBytes","$Init_5","$NormalizeLinks","numItems","$SetType","numHashBytes","$Skip","getClass_39","Lorg_dellroad_lzma_client_SevenZip_Compression_LZ_BinTree_2_classLit","BinTree","$CopyBlock","_windowSize","_buffer","$Flush_0","$Create_5","windowSize","$GetByte","$Init_7","solid","$PutByte","$ReleaseStream","$SetStream_0","stream","getClass_41","Lorg_dellroad_lzma_client_SevenZip_Compression_LZ_OutWindow_2_classLit","OutWindow","GetLenToPosState","StateUpdateChar","alive","$Chunker","$processEncoderChunk","$processDecoderChunk","$CodeOneChunk","inBytesProcessed","outBytesProcessed","outSize","$CodeFinish","$CodeOneBlock","processedInSize","processedOutSize","$ReleaseStreams","getClass_28","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Chunker_2_classLit","m_OutWindow","m_RangeDecoder","inStream","outStream","$Init_1","rep0","rep1","rep2","rep3","prevByte","decoder2","numDirectBits","posSlot","posState","m_PosStateMask","$DecodeBit","m_IsMatchDecoders","$GetDecoder","m_LiteralDecoder","$DecodeNormal","$DecodeWithMatchByte","m_IsRepDecoders","m_IsRepG0Decoders","m_IsRep0LongDecoders","m_IsRepG1Decoders","m_IsRepG2Decoders","$Decode","m_RepLenDecoder","m_LenDecoder","$Decode_0","m_PosSlotDecoder","ReverseDecode","m_PosDecoders","$DecodeDirectBits","$ReverseDecode","m_PosAlignDecoder","m_DictionarySizeCheck","Decoder_0","_3S_classLit","_3Lorg_dellroad_lzma_client_SevenZip_Compression_RangeCoder_BitTreeDecoder_2_classLit","$BitTreeDecoder","BitTreeDecoder","$Decoder$LenDecoder","Decoder$LenDecoder","Decoder$LiteralDecoder","InitBitModels","$Init_0","Models","$Init","$Init_8","remainder","$SetLcLpPb","$SetDictionarySize","m_DictionarySize","numPosStates","$Create_0","$Create","getClass_32","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Decoder_2_classLit","m_NumPosStates","m_LowCoder","m_MidCoder","rangeDecoder","symbol","m_Choice","m_HighCoder","getClass_29","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Decoder$LenDecoder_2_classLit","numPosBits","numPrevBits","numStates","m_Coders","m_NumPrevBits","m_NumPosBits","m_PosMask","_3Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Decoder$LiteralDecoder$Decoder2_2_classLit","$Decoder$LiteralDecoder$Decoder2","Decoder$LiteralDecoder$Decoder2","m_Decoders","getClass_31","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Decoder$LiteralDecoder_2_classLit","matchByte","bit","matchBit","getClass_30","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Decoder$LiteralDecoder$Decoder2_2_classLit","$clinit_59","slotFast","$Backward","backCur","backMem","posMem","posPrev","_optimumEndIndex","_optimum","PosPrev","BackPrev","Prev1IsChar","$MakeAsChar","Prev2","PosPrev2","BackPrev2","backRes","_optimumCurrentIndex","$BaseInit","_state","_previousByte","_repDistances","inSize","baseVal","complexState","curByte","footerBits","lenToPosState","posReduced","progressPosValuePrev","subCoder","_matchFinder","$Flush","$ReadMatchDistances","_posStateMask","$Encode_3","_isMatch","_additionalOffset","$Encode_1","$GetSubCoder","_literalEncoder","$GetOptimum","$EncodeMatched","_isRep","_isRepG0","_isRep0Long","_isRepG1","_isRepG2","$Encode_0","GetPosSlot","$Encode_2","_posSlotEncoder","ReverseEncode","_posEncoders","$EncodeDirectBits","$ReverseEncode","_posAlignEncoder","_alignPriceCount","_matchPriceCount","$GetProcessedSizeAdd","bt","_matchFinderType","$Create_1","_numLiteralPosStateBits","_numLiteralContextBits","_dictionarySize","_dictionarySizePrev","_numFastBytesPrev","_3Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Encoder$Optimal_2_classLit","$clinit_66","Encoder_0","_3Lorg_dellroad_lzma_client_SevenZip_Compression_RangeCoder_BitTreeEncoder_2_classLit","$BitTreeEncoder","BitTreeEncoder","$Encoder$LenPriceTableEncoder","Encoder$LenPriceTableEncoder","Encoder$LiteralEncoder","_matchDistances","_posSlotPrices","_distancesPrices","_alignPrices","reps","repLens","_3J_classLit","_3Z_classLit","tempPrices","Encoder$Optimal","$ReverseGetPrice","st","st2","ReverseGetPrice","_distTableSize","$GetPrice_1","nowPos","$ReleaseMFStream","$WriteEndMarker","$FlushData","curAnd1Price","curAndLenCharPrice","curAndLenPrice","curBack","curPrice","currentByte","lenEnd","lenMain","lenRes","lenTest","lenTest2","lenTestTemp","matchPrice","newLen","nextIsChar","nextMatchPrice","nextOptimum","nextRepMatchPrice","normalMatchPrice","numAvailableBytes","numAvailableBytesFull","numDistancePairs","offs","optimum","posStateNext","price_4","repIndex","repLen","repMatchPrice","repMaxIndex","shortRepPrice","startLen","state2","price","price_0","price_1","price_2","price_3","_longestMatchWasFound","_longestMatchLength","_numDistancePairs","$MovePos","State","Price","$GetPrice_0","$GetRepLen1Price","$MakeAsShortRep","Backs0","Backs1","Backs2","Backs3","$GetPureRepPrice","$GetPrice","$GetPosLenPrice","GetPosSlot2","GetPrice","$Init_9","InitBitModels_0","$Init_3","$Init_2","dicLogSize","matchFinderIndex","matchFinderIndexPrev","numFastBytes","getClass_38","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Encoder_2_classLit","$Encode","rangeEncoder","_choice","_lowCoder","_midCoder","_highCoder","$Encoder$LenEncoder","$SetPrices","numSymbols","prices","a0","b0","getClass_33","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Encoder$LenEncoder_2_classLit","Encoder$LenEncoder","_counters","_prices","getClass_34","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Encoder$LenPriceTableEncoder_2_classLit","_3Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Encoder$LiteralEncoder$Encoder2_2_classLit","$Encoder$LiteralEncoder$Encoder2","Encoder$LiteralEncoder$Encoder2","m_Encoders","getClass_36","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Encoder$LiteralEncoder_2_classLit","same","matchMode","getClass_35","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Encoder$LiteralEncoder$Encoder2_2_classLit","getClass_37","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Encoder$Optimal_2_classLit","numBitLevels","NumBitLevels","bitIndex","getClass_42","Lorg_dellroad_lzma_client_SevenZip_Compression_RangeCoder_BitTreeDecoder_2_classLit","getClass_43","Lorg_dellroad_lzma_client_SevenZip_Compression_RangeCoder_BitTreeEncoder_2_classLit","probs","newBound","prob","Code","numTotalBits","getClass_44","Lorg_dellroad_lzma_client_SevenZip_Compression_RangeCoder_Decoder_2_classLit","Low","$ShiftLow","_cacheSize","_position","LowHi","Prob","getClass_45","Lorg_dellroad_lzma_client_SevenZip_Compression_RangeCoder_Encoder_2_classLit","decode","utf","encode","ch","chars","elen","charArr","_3C_classLit","$LZMADemo","toDouble","compress","on_finish","on_progress","LZMADemo","do_action","get_mode_obj","decompress","byte_arr","getClass_46","Lorg_dellroad_lzma_demo_client_LZMADemo_2_classLit","$stats","moduleName","subSystem","evtGroup","millis","gwtOnLoad","errFn","modName","modBase","modes","WindshaftConfig","validatePresenceOfOptions","requiredOptions","missingOptions","MAX_URL_LENGTH","COMPRESSION_LEVEL","MAP_INSTANTIATION_LIMIT","endpoints","post","_requestTracker","_performRequest","parsedErrors","ajaxOptions","mapDefinition","encodedURL","_generateEncodedURL","_isURLValid","_get","_generateCompressedURL","compressedURL","_getURL","_post","compressedPayload","lzma","array2hex","_abortPreviousRequest","_previousRequest","_jsonpCallbackName","queryString","_convertParamsToQueryString","endpoint","oneValue","uniqueCallbackName","windshaftSettings","_layerGroupId","layergroupid","_dataviews","dataviews","_analyses","_cdnUrl","cdn_url","getLayerIndexesByType","_getLayers","layerIndexes","getBaseURL","_getHost","getStaticBaseURL","protocol","getProtocol","cdnUrl","cdnHost","_isHttps","getSupportedSubdomains","getLayerMetadata","layerMeta","getDataviewMetadata","dataviewId","_getDataviews","layersDataviews","widgets","layerDataviews","getAnalysisNodeMetadata","_getAnalyses","toHashCode","buffersize","mvt","_getStylesFromLayers","VALID_PROPS","VALID_MAPPINGS","isEveryBucketValid","generateCategories","bucketsColor","bucketsIcon","bucketColor","bucketIcon","icon","_extractURL","canAdapt","adapt","ruleColor","ruleIcon","categoryBucketsColor","categoryBucketsIcon","defaultBucketsColor","defaultBucketsIcon","default","generateColors","labelStart","labelEnd","lastBucket","firstBucket","calculateValues","sizes","ADAPTERS","getAdapterForLegend","helpers","RuleToLegendModelAdapters","getSubdomain","_layerGroupModel","_updateLayerModels","_updateLayerGroupModel","_updateDataviewModels","_updateAnalysisModels","_generateTileURLTemplate","_calculateGridURLTemplatesForCartoDBLayers","_calculateAttributesBaseURLsForCartoDBLayers","_calculateStaticMapURL","indexOfLayersInWindshaft","urlTemplates","indexesOfMapnikLayers","layerUrlTemplates","gridURLTemplate","_generateGridURLTemplate","subdomain","_generateAttributesBaseURL","baseURL","getCartoDBLayers","localLayerIndex","responseWrapperLayerIndex","_updateLegendModels","indexesOfTorqueLayers","getTorqueLayers","_calculateTileURLTemplatesForTorqueLayers","_generateTorqueTileURLTemplate","remoteLayerIndex","layerMetadata","_getLayerLegends","_updateLegendModel","cartoCSSRules","newLegendAttrs","adapter","rulesForLegend","dataviewModel","dataviewMetadata","_getProtocol","analysisNodesCollection","_getUniqueAnalysisNodesCollection","analysisMetadata","error_message","_setError","_setLegendErrors","legendModels","_assignIndexes","order","layersByType","lastOrder","sortedTypes","_getLayersByType","getTiledLayers","getLayersWithLegends","moveCartoDBLayer","movingLayer","isAnyDataviewFiltered","_getGroupedLayers","getIndexOfLayerInLayerGroup","getCartoLayerById","_areAllLayersHidden","_generatePNGTileURLTemplate","_generateMTVTileURLTemplate","mapnikLayersIndexes","_getIndexesOfVisibleMapnikLayers","_appendAuthParamsToURL","_getIndexesOfVisibleLayers","gridURLTemplates","getAttributesBaseURL","getStaticImageURLTemplate","staticImageURLTemplate","_appendParamsToURL","fetchAttributes","featureID","attributeBaseURL","separator","_isLayerGrouped","onLayerAdded","DEFAULT_CARTOCSS_VERSION","HTTP_LAYER_TYPE","MAPNIK_LAYER_TYPE","_calculateLayerJSON","optionsForHTTPLayer","optionsForPlainLayer","optionsForWMSLayer","optionsForMapnikLayer","optionsForTorqueLayer","tms","imageUrl","sharedOptionsForMapnikAndTorqueLayers","cartocss_version","sql_wrap","AnalysisGraph","wantedVersion","reference","extendDefinition","nodeId","extendedWithParams","extendWithParamsKey","objK","filterMissingOptionalNodes","childNodeParamName","appendAllNodes","allNodes","reduceById","nodesMap","nodeRef","childNodesNames","isOptionalParam","getNodesWithId","getChildNodesNames","getNodesList","getDefinitionWith","webpackContext","req","webpackContextResolve","_generateUniqueAnalysisList","analysisIds","_isAnalysisPartOfOtherAnalyses","otherAnalysisModel","AnalisysSerializer","DataviewSerializer","LayerSerializer","__WEBPACK_AMD_DEFINE_FACTORY__","pollers","findPoller","poller","PollingManager","Poller","autostart","delayedRun","continueOnError","flush","delayed","timeoutId","backoff","getDelay","BackbonePoller","_pollers","CONFIG","START_DELAY","MAX_DELAY","DELAY_MULTIPLIER","analysisModels","_poll","_canBePolled","_createPoller","_findPoller","pollerOptions","trackJs","messageRegex","generic","auth","windshaft","validation","ERROR_LIST","errorlist","_getErrorList","listedError","_getListedError","errorList","errorListkeys","_replaceRegex","_buildErrorCode","replaced","fragments","LayerBase","getValidationError","DEFAULT_SERVER_URL","Client","_checkSettings","_bindEngine","_checkLayerIndex","_checkApiKey","_checkUsername","_checkServerUrl","urlregex","addLayers","_addLayer","removeLayers","layersToRemove","_removeLayer","_moveLayer","getLayers","addDataviews","_addDataview","dataviewIndex","getDataviews","getLeafletLayer","_leafletLayer","getGoogleMapsMapType","_gmapsMapType","_checkDuplicatedLayerId","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","Item","nextTick","env","argv","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","setImmediate","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","installNextTickImplementation","canUsePostMessage","installPostMessageImplementation","MessageChannel","installMessageChannelImplementation","installReadyStateChangeImplementation","installSetTimeoutImplementation","clearImmediate","task","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","messagePrefix","onGlobalMessage","channel","port1","port2","onreadystatechange","scope","Timeout","clearFn","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","setTimeoutFunc","thisArg","_handled","_value","_deferreds","doResolve","_immediateFn","onFulfilled","onRejected","finale","_unhandledRejectionFn","Handler","reason","ex","prom","race","_setImmediateFn","_setUnhandledRejectionFn","searchParams","iterable","blob","Blob","formData","arrayBuffer","viewClasses","isDataView","DataView","isPrototypeOf","isArrayBufferView","ArrayBuffer","isView","Headers","normalizeName","normalizeValue","oldValue","iteratorFor","entries","_bodyInit","Body","redirectStatuses","redirect","RangeError","parseHeaders","responseURL","ontimeout","credentials","withCredentials","responseType","polyfill","header","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","FileReader","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","bufferClone","byteLength","_initBody","_bodyText","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","rejected","normalizeMethod","upcased","referrer","form","bytes","rawHeaders","preProcessedHeaders","line","bodyInit","carto","LinearRing","inflate","GeometryLayout","deflate","SimpleGeometry","flatInteriorPointRevision_","flatInteriorPoint_","orientedRevision_","orientedFlatCoordinates_","appendLinearRing","linearRing","orient","getInteriorPoint","getLinearRingCount","getLinearRing","getLinearRings","linearRings","fromExtent","fromCircle","opt_sides","opt_angle","sides","arrayLength","makeRegular","getRadius","startAngle","XML_SCHEMA_INSTANCE_URI","createElementNS","namespaceURI","qualifiedName","getDocument","getAllTextContent","normalizeWhitespace","getAllTextContent_","Node","CDATA_SECTION_NODE","TEXT_NODE","isDocument","makeArrayExtender","valueReader","objectStack","makeArrayPusher","makeReplacer","makeObjectPropertySetter","opt_property","localName","makeChildAppender","nodeWriter","makeSimpleNodeFactory","opt_nodeName","opt_namespaceURI","fixedNodeName","OBJECT_PROPERTY_NODE_FACTORY","makeSequence","orderedKeys","sequence","makeStructureNS","namespaceURIs","opt_structureNS","structureNS","parseNode","parsersNS","nextElementSibling","parsers","parser","pushParseAndPop","serializersNS","nodeFactory","opt_keys","pushSerializeAndPop","xmlSerializer_","getXMLSerializer","XMLSerializer","document_","implementation","createDocument","XMLFeature","readFeature","readFeatureFromDocument","readFeatureFromNode","readFeaturesFromDocument","readFeatures","readFeaturesFromNode","ELEMENT_NODE","readGeometry","readGeometryFromDocument","readGeometryFromNode","readProjection","readProjectionFromDocument","readProjectionFromNode","dataProjection","writeFeature","writeFeatureNode","serializeToString","writeFeatures","writeFeaturesNode","writeGeometry","writeGeometryNode","readBoolean","readBooleanString","readDecimal","readDecimalString","readString","writeBooleanTextNode","writeStringTextNode","writeCDATASection","createCDATASection","writeDecimalTextNode","decimal","toPrecision","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","GX_NAMESPACE_URIS","NAMESPACE_URIS","SCHEMA_LOCATION","ICON_ANCHOR_UNITS_MAP","FRACTION","PLACEMARK_PARSERS","extendedDataParser","regionParser","readMultiGeometry","readLineString","readLinearRing","readPoint","readPolygon","readStyle","placemarkStyleMapParser","readStyleURL","readGxMultiTrack","readGxTrack","NETWORK_LINK_PARSERS","linkParser","LINK_PARSERS","readURI","REGION_PARSERS","latLonAltBoxParser","lodParser","KML_SEQUENCE","KML_SERIALIZERS","writeDocument","writePlacemark","DEFAULT_FILL_STYLE","DEFAULT_NO_IMAGE_STYLE","DEFAULT_IMAGE_STYLE","DEFAULT_TEXT_STROKE_STYLE","DEFAULT_STROKE_STYLE","DEFAULT_TEXT_STYLE","DEFAULT_STYLE","TEXTAREA","DEFAULT_STYLE_ARRAY","scaleForSize","createStyleDefaults","Fill","anchorOrigin","IconOrigin","BOTTOM_LEFT","Stroke","Text","Style","defaultIconUrlFunction","KML","defaultStyle_","defaultStyle","extractStyles_","extractStyles","writeStyles_","writeStyles","sharedStyles_","showPointNames_","showPointNames","crossOrigin_","iconUrlFunction_","iconUrlFunction","supportedMediaTypes","readDocumentOrFolder_","readPlacemark_","readSharedStyle_","readSharedStyleMap_","styleUrl","createFeatureStyleFunction","styleUri","baseURI","URL","styleMapValue","readStyleMapValue","getReadOptions","fs","readName","readNameFromDocument","readNameFromNode","name_1","name_2","readNetworkLinks","networkLinks","readNetworkLinksFromDocument","readNetworkLinksFromNode","readRegion","regions","readRegionFromDocument","readRegionFromNode","adaptOptions","kml","xmlnsUri","setAttributeNS","createNameStyleFunction","foundStyle","textOffset","imageScale","setFont","setScale","setFill","setStroke","setOffsetX","setOffsetY","setTextAlign","nameStyle","sharedStyles","drawName","multiGeometryPoints","GeometryCollection","getGeometriesArrayRecursive","featureStyle","findStyle","baseStyle","styleValue","readColor","hexColor","substr","readFlatCoordinates","re","readVec2","xunits","yunits","TOP_LEFT","BOTTOM_RIGHT","TOP_RIGHT","readScale","STYLE_MAP_PARSERS","pairDataParser","ICON_STYLE_PARSERS","readIcon","iconStyleParser","styleObject","IconObject","drawIcon","hotSpot","heading","imageStyle_1","offsetOrigin","imageScale_1","listener_1","imageSize_1","resizeScale","LABEL_STYLE_PARSERS","labelStyleParser","LINE_STYLE_PARSERS","lineStyleParser","POLY_STYLE_PARSERS","polyStyleParser","outline","FLAT_LINEAR_RING_PARSERS","readFlatLinearRing","gxCoordParser","gxTrackObject","GX_MULTITRACK_GEOMETRY_PARSERS","GX_TRACK_PARSERS","whenParser","whens","LineString","ICON_PARSERS","iconObject","GEOMETRY_FLAT_COORDINATES_PARSERS","readFlatCoordinatesFromNode","EXTRUDE_AND_ALTITUDE_MODE_PARSERS","MULTI_GEOMETRY_PARSERS","multiGeometry","homogeneous","MultiPoint","setCommonGeometryProperties","MultiPolygon","FLAT_LINEAR_RINGS_PARSERS","innerBoundaryIsParser","outerBoundaryIsParser","flatLinearRings","STYLE_PARSERS","hasExtrude","hasTessellate","hasAltitudeMode","extrudes","tessellates","altitudeModes","DATA_PARSERS","dataParser","featureObject","displayName","EXTENDED_DATA_PARSERS","schemaDataParser","PAIR_PARSERS","pairObject","placemarkObject","SCHEMA_DATA_PARSERS","simpleDataParser","LAT_LON_ALT_BOX_PARSERS","regionObject","LOD_PARSERS","lodObject","INNER_BOUNDARY_IS_PARSERS","innerBoundaryFlatLinearRings","OUTER_BOUNDARY_IS_PARSERS","flatLinearRing","writeColorTextNode","rgba","abgr","hex","writeCoordinatesTextNode","EXTENDEDDATA_NODE_SERIALIZERS","writeDataNode","writeDataNodeValue","writeDataNodeName","DOCUMENT_SERIALIZERS","DOCUMENT_NODE_FACTORY","DATA_NODE_FACTORY","writeExtendedData","namesAndValues","ICON_SEQUENCE","ICON_SERIALIZERS","GX_NODE_FACTORY","writeIcon","ICON_STYLE_SEQUENCE","ICON_STYLE_SERIALIZERS","writeVec2","writeScaleTextNode","writeIconStyle","getSrc","iconImageSize","iconProperties","origin_1","LABEL_STYLE_SEQUENCE","LABEL_STYLE_SERIALIZERS","writeLabelStyle","LINE_STYLE_SEQUENCE","LINE_STYLE_SERIALIZERS","writeLineStyle","GEOMETRY_TYPE_TO_NODENAME","GEOMETRY_NODE_FACTORY","POINT_NODE_FACTORY","LINE_STRING_NODE_FACTORY","LINEAR_RING_NODE_FACTORY","POLYGON_NODE_FACTORY","MULTI_GEOMETRY_SERIALIZERS","writePrimitiveGeometry","writePolygon","writeMultiGeometry","getPoints","getPolygons","BOUNDARY_IS_SERIALIZERS","writeBoundaryIs","PLACEMARK_SERIALIZERS","writeStyle","PLACEMARK_SEQUENCE","EXTENDEDDATA_NODE_FACTORY","styleArray","pointStyles","lineStyles","polyStyles","PRIMITIVE_GEOMETRY_SEQUENCE","PRIMITIVE_GEOMETRY_SERIALIZERS","POLY_STYLE_SEQUENCE","POLYGON_SERIALIZERS","INNER_BOUNDARY_NODE_FACTORY","OUTER_BOUNDARY_NODE_FACTORY","outerRing","POLY_STYLE_SERIALIZERS","writePolyStyle","STYLE_SEQUENCE","STYLE_SERIALIZERS","vec2","TileImage","imageSmoothing","defaultTileLoadFunction","tileClass","ImageTile","tileCacheForProjection","tileGridForProjection","reprojectionErrorThreshold_","reprojectionErrorThreshold","renderReprojectionEdges_","usedTileCache","getGutter","getInterpolate","thisProj","projKey","createTile_","urlTileCoord","tileUrl","newTile","getTileInternal","interimTile","refreshInterimChain","setRenderReprojectionEdges","setTileGridForProjection","tilegrid","proj","imageTile","OSM","createUrl","tpl","layerDesc","getHereTileLayer","hereLayers","urlTpl","uri","hereLayer","getFullYear","getGoogleTileLayer","getTileLayer","mapType","baseMap","defaultCity","cartodb","selectInteraction","city","convertToRGB","red","green","blue","eventsMarker","popup","Popup","addOverlay","_opts","onClick","infoWindow","initializeOlMap","mapContainer","streetView","fullScreen","geolocation","control","defaultControls","FullScreen","getCurrentPosition","addMarker","draggable","activatePopup","onDragend","markerFeature","onClose","trailheads","getFeaturesAtPixel","strokeColor","strokeOpacity","strokeWeight","fillOpacity","isInteger","editable","clearMap","removePolygons","removePolylines","circleFigure","circleFeature","colorFinalStroke","colorFinalFill","colorRgbStroke","colorRgbFill","centerMap","setCenter","latitude","longitude","fitBounds","shape","transformExtent1","fit","removeMarkers","removeCircles","fitBoundsMarkerGroup","markerArray","featuresOnLayers","extentOfAllFeatures","flatFeatures","flat","removeInteraction","addInteraction","callBack","vec","Draw","newShape","ol","addCartoDb","mapConfig","Accept","layerGroup","tileJson","vector","parcelsLayer","VectorTile","VectorTileSource","MVT","layerName","showPopupLayer","infowindowContentLayerCarto","hit","removeTileLayers","addSelectToFigure","selectStyle","HEX_COLOR_RE_","NAMED_COLOR_RE_","asString","fromNamed","rgb","fromString","MAX_CACHE_SIZE","fromStringInternal_","asArray","hasAlpha","normalize","transition_","transitionStarts_","getInterimTile","getTileCoord","setState","getAlpha","inTransition","endTransition","MapRenderer","dispatchRenderEvent","calculateMatrices2D","checkWrapped","thisArg2","translatedCoordinate","offsets","layerStates","numLayers","tmpCoord","callback_1","forEachLayerAtPixel","hasFeatureAtCoordinate","scheduleExpireIconCache","postRenderFunctions","expireIconCache","CompositeMapRenderer","fontChangeListenerKey_","redrawText","children_","declutterLayers","previousElement","sourceState","Composite","GroupEvent","LAYERS","LayerGroup","layersListenerKeys_","listenerKeys_","handleLayersChanged_","setLayers","handleLayerChange_","handleLayersAdd_","handleLayersRemove_","layersArray","registerLayerListeners_","handleLayerGroupAdd_","handleLayerGroupRemove_","collectionEvent","currentLayers","ownLayerState","defaultZIndex","MapBrowserEventHandler","moveTolerance","clickTimeoutId_","emulateClicks_","dragging_","dragListenerKeys_","moveTolerance_","down_","activePointers_","trackedTouches_","pointerdownListenerKey_","handlePointerDown_","originalPointerMoveEvent_","relayedListenerKey_","relayMoveEvent_","boundHandleTouchMove_","handleTouchMove_","passive","emulateClick_","newEvent","updateActivePointers_","pointerId","handlePointerUp_","isMouseActionButton_","handlePointerMove_","getRootNode","isMoving_","cancelable","PriorityQueue","priorityFunction","keyFunction","priorityFunction_","keyFunction_","elements_","priorities_","queuedElements_","priorities","siftUp_","elementKey","enqueue","priority","siftDown_","getLeftChildIndex_","getRightChildIndex_","getParentIndex_","heapify_","isKeyQueued","isQueued","lIndex","rIndex","smallerChildIndex","parentIndex","reprioritize","TileQueue","tilePriorityFunction","tileChangeCallback","boundHandleTileChange_","tileChangeCallback_","tilesLoading_","tilesLoadingKeys_","getTilesLoading","loadMoreTiles","maxTotalLoading","maxNewLoads","newLoads","getTilePriority","tileSourceKey","tileCenter","tileResolution","wantedTiles","removeLayerMapProperty","setLayerMapProperty","PluggableMap","optionsInternal","createOptionsInternal","renderComplete_","loaded_","boundHandleBrowserEvent_","handleBrowserEvent","maxTilesLoading_","maxTilesLoading","postRenderTimeoutHandle_","animationDelayKey_","animationDelay_","renderFrame_","coordinateToPixelTransform_","pixelToCoordinateTransform_","frameIndex_","frameState_","previousExtent_","viewPropertyListenerKey_","viewChangeListenerKey_","layerGroupPropertyListenerKeys_","viewport_","overlayContainer_","overlayContainerStopEvent_","mapBrowserEventHandler_","keyboardEventTarget_","keyboardEventTarget","targetChangeHandlerKeys_","overlays_","overlayIdIndex_","postRenderFunctions_","tileQueue_","handleTileChange_","MapProperty","LAYERGROUP","handleLayerGroupChanged_","VIEW","handleViewChanged_","SIZE","handleSizeChanged_","TARGET","handleTargetChanged_","setView","addOverlayInternal_","addControl","getControls","handleLayerAdd_","getOverlays","addLayersFrom","hasFeatureAtPixel","getEventCoordinate","getEventCoordinateInternal","eventPosition","changedTouches","getTarget","getOverlayById","getLoadingOrNotReady","viewCoordinate","handleMapBrowserEvent","rootNode","interactionsArray","cont","handlePostRender","tileQueue","hints","lowOnFrameBudget","MapEvent","MapEventType","resolveConstraints","updateSize","cancelAnimationFrame","handleViewPropertyChanged_","updateViewportSize_","handleLayerRemove_","renderSync","requestAnimationFrame","removeControl","removeOverlay","previousFrameState","isDef","getHints","mapId","renderTargets","nextCenter","nextResolution","nextRotation","nextExtent","moveStart","idle","setLayerGroup","oldLayerGroup","computedStyle","getClientRects","setViewportSize","FIREFOX","SAFARI","WEBKIT","MAC","DEVICE_PIXEL_RATIO","devicePixelRatio","WORKER_OFFSCREEN_CANVAS","WorkerGlobalScope","IMAGE_DECODE","PASSIVE_EVENT_LISTENERS","Instruction","BEGIN_GEOMETRY","BEGIN_PATH","CLOSE_PATH","CUSTOM","END_GEOMETRY","FILL","MOVE_TO_LINE_TO","SET_FILL_STYLE","SET_STROKE_STYLE","STROKE","fillInstruction","strokeInstruction","beginPathInstruction","closePathInstruction","ImageBase","getPixelRatio","ImageWrapper","imageLoadFunction","src_","unlisten_","imageLoadFunction_","handleImageError_","unlistenImage_","handleImageLoad_","listenImage","loadHandler","errorHandler","decoding","geometryFunction_","defaultGeometryFunction","fill_","hitDetectionRenderer_","hitDetectionRenderer","stroke_","zIndex_","setRenderer","setHitDetectionRenderer","toFunction","defaultStyles","createDefaultStyle","createEditingStyle","white","taintedTestContext","IconImage","hitDetectionImage_","color_","imageState_","size_","tainted_","isTainted_","dispatchChangeEvent_","replaceColor_","getHitDetectionImage","imgData","putImageData","displacement","normalizedAnchor_","anchorOrigin_","anchorXUnits_","anchorYUnits_","imgSize_","iconImage_","offset_","offsetOrigin_","origin_","getDisplacement","setAnchor","loadFeaturesXhr","failure","responseXML","featureProjection","tmpTileCoord","DECIMALS","TileGrid","zoomFactor","resolutions_","origins","zoomFactor_","origins_","tileSizes_","tileSizes","tileSize_","fullTileRanges_","tmpSize_","tmpExtent_","restrictedTileRange","calculateTileRanges_","forEachTileCoord","forEachTileCoordParentTileRange","opt_tileRange","tileCoordExtent","getTileCoordChildTileRange","getTileRangeForTileCoordAndZ","tileCoordZ","tileCoordX","tileCoordY","getTileRangeExtent","getTileCoordForXYAndZ_","getTileCoordForCoordAndResolution","getTileCoordForXYAndResolution_","reverseIntersectionPolicy","getTileCoordResolution","opt_direction","tileCoordIntersectsViewport","viewport","fullTileRanges","tileLoadFunction_","onLoad","setFeatures","onError","VectorRenderTile","getSourceTiles","declutterExecutorGroups","loadingSourceTiles","hitDetectionImageData","replayState_","sourceTiles","errorTileKeys","wantedResolution","hasContext","getReplayState","renderedRenderOrder","renderedRevision","renderedTileResolution","renderedTileRevision","renderedTileZ","defaultLoadFunction","sourceTileCache","tileGrids_","peekFirstKey","sourceTile","tileFeatures","candidate","usedSourceTiles","cacheKey","peek","sourceTileGrid_1","sourceZ","sourceTileCoord","sourceTileState","listenChange_1","sourceTileKey","coordKey","tileExtent","sourceTileGrid_2","DEFAULT_RADIUS","c1","c2","opt_radius","lat1","lat2","deltaLatBy2","deltaLonBy2","bearing","lon1","dByR","asin","lon","Pbf","ieee754","Varint","Fixed64","Bytes","Fixed32","SHIFT_LEFT_32","SHIFT_RIGHT_32","TEXT_DECODER_MIN_LENGTH","utf8TextDecoder","TextDecoder","readVarintRemainder","toNum","readPackedEnd","pbf","readVarint","isSigned","writeBigVarint","realloc","writeBigVarintLow","writeBigVarintHigh","lsb","makeRoomForExtraLength","startPos","extraLen","writePackedVarint","writeVarint","writePackedSVarint","writeSVarint","writePackedFloat","writeFloat","writePackedDouble","writeDouble","writePackedBoolean","writeBoolean","writePackedFixed32","writeFixed32","writePackedSFixed32","writeSFixed32","writePackedFixed64","writeFixed64","writePackedSFixed64","writeSFixed64","readUInt32","writeInt32","readInt32","readUtf8","bytesPerSequence","readUtf8TextDecoder","subarray","writeUtf8","lead","readFields","readField","skip","readMessage","readFixed32","readSFixed32","readFixed64","readSFixed64","readFloat","read","readDouble","readVarint64","readSVarint","readBytes","readPackedVarint","readPackedSVarint","readPackedBoolean","readPackedFloat","readPackedDouble","readPackedFixed32","readPackedSFixed32","readPackedFixed64","readPackedSFixed64","writeTag","writeString","writeBytes","writeRawMessage","writeMessage","writeBytesField","writeFixed32Field","writeSFixed32Field","writeFixed64Field","writeSFixed64Field","writeVarintField","writeSVarintField","writeStringField","writeFloatField","writeDoubleField","writeBooleanField","flatMidpoint_","flatMidpointRevision_","appendCoordinate","forEachSegment","getCoordinateAt","fraction","toIObject","gOPN","windowNames","getWindowNames","it","$export","S","getBlankImage","naturalWidth","naturalHeight","clamp","cosh","log2","LOG2E","squaredSegmentDistance","squaredDistance","solveLinearSystem","mat","maxRow","maxEl","absValue","coef","toDegrees","angleInRadians","toRadians","angleInDegrees","modulo","lerp","toFixed","decimals","DEFAULT_FILL_COLOR","font_","rotateWithView_","scale_","scaleArray_","textAlign_","justify_","textBaseline_","maxAngle_","placement_","overflow_","offsetX_","offsetY_","backgroundFill_","backgroundStroke_","padding_","setOverflow","setMaxAngle","setPlacement","setRotateWithView","setJustify","setTextBaseline","setBackgroundFill","setBackgroundStroke","setPadding","AssertionError","lineCap_","lineDash_","lineDashOffset_","lineJoin_","miterLimit_","width_","setLineCap","setLineDashOffset","setLineJoin","setMiterLimit","setWidth","opt_endss","endss_","flatInteriorPointsRevision_","polygons","appendPolygon","newEndss","multiPolygon","getInteriorPoints","prevEnds","lastEnds","DESCRIPTORS","redefine","META","KEY","$fails","setToStringTag","wks","wksDefine","enumKeys","anObject","toPrimitive","createDesc","_create","gOPNExt","$GOPD","$DP","$keys","gOPD","dP","$JSON","_stringify","PROTOTYPE","HIDDEN","TO_PRIMITIVE","isEnum","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","USE_NATIVE","QObject","findChild","setSymbolDesc","D","protoDesc","sym","isSymbol","$defineProperty","$defineProperties","P","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","G","W","F","es6Symbols","wellKnownSymbols","store","keyFor","useSetter","useSimple","getOwnPropertyDescriptor","getOwnPropertySymbols","replacer","$replacer","none","createSnapToN","opt_isMoving","createSnapToZero","opt_tolerance","LRUCache","opt_highWaterMark","count_","entries_","oldest_","newest_","entry","value_","newer","older","getKeys","peekLast","peekLastKey","Geometry","extentRevision_","simplifiedGeometryMaxMinSquaredTolerance","simplifiedGeometryRevision","simplifyTransformedInternal","revision","getClosestPoint","opt_closestPoint","computeExtent","opt_sy","simplify","TILE_PIXELS","inCoordinates","outCoordinates","linearRingss","assertion","VisitPoint","identification","country","phone","cy","cx","typology_id","status_id","additional_info","typology_name","category_id","department","dataFields","additionalProperties","additional","required","tipology","json_properties","setAddtionalInfo","assignClosest","offset1","offset2","maxSquaredDelta","squaredDelta","arrayMaxSquaredDelta","multiArrayMaxSquaredDelta","assignClosestPoint","isRing","opt_tmpPoint","tmpPoint","assignClosestArrayPoint","assignClosestMultiArrayPoint","IMAGE","HYBRID","VECTOR","IMAGE_REPLAYS","VECTOR_REPLAYS","CanvasVectorTileLayerRenderer","renderedLayerRevision_","renderedPixelToCoordinateTransform_","tmpTransform_","prepareTile","updateExecutorGroup_","tileImageNeedsRender_","hifi","getRenderMode","VectorTileRenderType","renderTileImage_","isDrawableTile","getTileImage","layerRevision","renderedTiles","renderOrder","builderState","declutter","layerUid","tt","sourceTileExtent","sharedExtent","builderExtent","tmpExtent","bufferedExtent","executorGroupInstructions","replayExtent","renderingReplayGroup","hitExtent","found","_loop_2","declutteredFeatures","renderedProjection","tilePixel","getTileRenderTransform","worldOffset","renderMode","replayTypes","tileSource","clips","clipZs","hasExecutors","currentZ","contextSaved","currentClip","getClipCoords","replayState","renderPixelRatio","renderScale","pixelScale","VectorTileLayer","renderMode_","appendPoint","multiPoint","getPoint","points","getFirstCoordinate","getLastCoordinate","getStrideForLayout","nesting","getLayoutForStride","transformGeom2D","simpleGeometry","binarySearch","haystack","needle","opt_comparator","cmp","numberSafeCompareFunction","linearFindNearest","reverseSubArray","extension","arr1","arr2","opt_func","opt_strict","currentVal","CENTER","RESOLUTION","ROTATION","createExtent","onlyCenter","smooth","opt_centerShift","viewWidth","viewHeight","shiftX","shiftY","getViewportClampedResolution","viewportSize","showFullExtent","xResolution","yResolution","getSmoothClampedResolution","createSnapToResolutions","opt_smooth","opt_maxExtent","opt_showFullExtent","cappedMaxRes","capped","createSnapToPower","opt_minResolution","minZoomLevel","cappedZoomLevel","zoomLevel","createMinMaxResolution","DEFAULT_MIN_ZOOM","hints_","animations_","updateAnimationKey_","projection_","viewportSize_","targetCenter_","targetResolution_","targetRotation_","nextCenter_","nextResolution_","nextRotation_","cancelAnchor_","applyOptions_","ViewProperty","resolutionConstraintInfo","createResolutionConstraint","maxResolution_","minResolution_","minZoom_","centerConstraint","createCenterConstraint","resolutionConstraint","constraint","rotationConstraint","createRotationConstraint","constraints_","setCenterInternal","setResolution","oldPadding","newPadding","getUpdatedOptions_","newOptions","animationCount","series","sourceRotation","targetRotation","isNoopAnimation","setHint","updateAnimations_","animationCallback","getInteracting","more","seriesComplete","getViewportSize_","constrainedResolution","calculateCenterZoom","applyTargetState_","constrainedRotation","calculateCenterRotate","currentResolution","opt_rotation","opt_hints","calculateExtent","calculateExtentInternal","getViewportSizeMinusPadding_","getZoomForResolution","setConstrainResolution","getResolutionForExtent","getResolutionForValueFunction","opt_power","getConstrainedResolution","getValueForResolutionFunction","logPower","reducedSize","calculateCenterOn","nearest","baseLevel","geometryOrExtent","cosAngle","sinAngle","minRotX","minRotY","maxRotX","maxRotY","rotX","rotY","centerRot","centerOn","centerOnInternal","calculateCenterShift","centerShift","shiftedCenter","adjustCenter","deltaCoordinates","adjustResolution","isMoving","adjustRotation","newRotation","hint","opt_doNotCancelAnims","opt_forceMoving","newCenter","opt_resolutionDirection","endInteractionInternal","opt_targetResolution","targetZoom","targetRes","smoothExtentConstraint","constrainOnlyCenter","defaultMaxZoom","defaultZoomFactor","smoothResolutionConstraint","projExtent","defaultMaxResolution","defaultMinResolution","enableRotation","constrainRotation","JSONFeature","readFeatureFromObject","getObject","readFeaturesFromObject","readGeometryFromObject","readProjectionFromObject","writeFeatureObject","writeFeaturesObject","writeGeometryObject","GeoJSON","defaultFeatureProjection","geometryName","extractGeometryName_","extractGeometryName","geoJSONFeature","geoJSONObject","geoJSONFeatureCollection","geoJSONFeatures","objects","readPointGeometry","readLineStringGeometry","readPolygonGeometry","readMultiPointGeometry","readMultiLineStringGeometry","readMultiPolygonGeometry","readGeometryCollectionGeometry","geoJSON","writePointGeometry","writeLineStringGeometry","writePolygonGeometry","writeMultiPointGeometry","writeMultiLineStringGeometry","writeMultiPolygonGeometry","writeGeometryCollectionGeometry","rightHanded","ERROR_THRESHOLD","ENABLE_RASTER_REPROJECTION","coordinate1","coordinate2","coord1","coord2","getWorldsAway","opt_sourceExtentWidth","sourceExtentWidth","transformStringDiv","tmp_","multiply","transform1","transform2","d1","e1","f1","d2","f2","setFromArray","makeScale","makeInverse","det","determinant","transformString","ImageStyle","displacement_","declutterMode_","setDisplacement","deflateCoordinate","deflateCoordinates","deflateCoordinatesArray","coordinatess","deflateMultiCoordinatesArray","coordinatesss","LINE_STRING","DrawEventType","DRAWSTART","DRAWEND","DRAWABORT","DrawEvent","shouldHandle_","downPx_","downTimeout_","lastDragTime_","pointerType_","freehand_","source_","snapTolerance_","snapTolerance","getMode","stopClick_","stopClick","minPoints_","minPoints","maxPoints_","maxPoints","finishCondition_","finishCondition","geometryLayout_","geometryLayout","geometryFunction","Constructor_1","mode_1","squaredLength","setCenterAndRadius","dragVertexDelay_","dragVertexDelay","finishCoordinate_","sketchFeature_","sketchPoint_","sketchCoords_","sketchLine_","sketchLineCoords_","squaredClickTolerance_","clickTolerance","overlay_","freehandCondition_","freehand","freehandCondition","updateState_","getOverlay","addToDrawing_","startDrawing_","startingToDraw","finishDrawing","atFinish_","abortDrawing","downPx","clickPx","modifyDrawing_","createOrUpdateSketchPoint_","potentiallyDone","potentiallyFinishCoordinates","sketchCoords","finishCoordinate","finishPixel","sketchPointGeom","updateSketchFeatures_","createOrUpdateCustomSketchLine_","ring","sketchLineGeom","removeLastPoint","sketchFeature","abortDrawing_","appendCoordinates","newDrawing","ending","sketchFeatures","overlaySource","RENDER_ORDER","BaseVectorLayer","renderBuffer","declutter_","renderBuffer_","updateWhileAnimating_","updateWhileInteracting_","setRenderOrder","fullscreen","activeValue","hiddenBoolean","_t","padNumber","opt_precision","numberString","interpolatePoint","cumulativeLengths","lineStringCoordinateAtM","m0","m1","lineStringsCoordinateAtM","createHTML","twiceArea","visitPoints","selectedVisitPoints","assignedVisitPoints","selectedCategory","pagination","next_page","total_pages","total_records","checkedVisitPoits","currentVisitPoint","currentVisitPointId","ADD_VISIT_POINT","ADD_VISIT_POINT_CHECKED","itemIndex","SET_VISIT_POINTS","UPDATE_VISIT_POINT","visitPoint","visitPointIndex","REMOVE_VISIT_POINT","itemId","ItemIndex","UPDATE_PAGINATION","dataPagination","SELECTED_VISIT_POINT","SET_SELECTED_VISIT_POINTS","SET_ASSIGNED_VISIT_POINT","arrayNew","REMOVE_ASSIGNED_VISIT_POINT","CLEAR_ASSIGNED_VISIT_POINT","SET_SELECTED_CATEGORY","REMOVE_SELECTED_VISIT_POINT","itemIds","DEL_VISIT_POINT_CHECKED","CLEAR_DEL_VISIT_POINT_CHECKED","SET_VISIT_POINT_CHECKED","addVisitPoint","commit","Api","fetchVisitPoint","fetchVisitPointPaginated","page","quantity","order_by","resource_id","exact_values","on_demand","records","fetchVisitPointById","fetchVisitpointsnotscheduled","updateVisitPoint","put","removeVisitPoint","visitpoint_id","fetchDivipola","currentVisitPointSelected","setSelectedVisitPoint","removeMassiveVisitPoint","delete","removeMultiVisitPoint","visitPointIds","getVisitPoints","downloadVisitPoints","sendCode","getVisitPonitById","visitPointId","getCurrentVisitPoint","isRegistered","namespaced","mutations","actions","getters","FeatureFormat","setWorldExtent","transformGeometryWithOptions","transformed","power_1","CanvasTileLayerRenderer","extentChanged","renderedPixelRatio","newTiles_","tmpTileRange_","tileOrigin","viewResolution","viewCenter","sourceRevision","canvasExtent","tilesToDrawByZ","findLoadedTiles","tmpTileRange","childTileRange","canvasScale","zs","currentTilePixelSize","currentScale","dx_1","dy_1","originTileCoord","originTileExtent","tileGutter","tilesToDraw","xIndex","nextX","yIndex","nextY","i_1","drawTileImage","updateUsedTiles","manageTilePyramid","scheduleExpireCache","alphaChanged","postRenderFunction","opt_tileCallback","inflateCoordinates","opt_coordinates","inflateCoordinatesArray","opt_coordinatess","inflateMultiCoordinatesArray","opt_coordinatesss","transform2D","anchorX","anchorY","FullScreenEventType","ENTERFULLSCREEN","LEAVEFULLSCREEN","keys_","isInFullscreen_","boundHandleMapTargetChange_","handleMapTargetChange_","cssClassName_","documentListeners_","activeClassName_","activeClassName","inactiveClassName_","inactiveClassName","labelNode_","labelActive","labelActiveNode_","button_","setClassName_","handleFullScreen_","isFullScreenSupported","isFullScreen","exitFullScreen","requestFullScreenWithKeys","requestFullScreen","handleFullScreenChange_","wasInFullscreen","_b","_d","oldMap","requestFullscreen","fullscreenEnabled","fullscreenElement","exitFullscreen","intersectsLineString","coordinatesExtent","point1","point2","intersectsLineStringArray","intersectsLinearRing","intersectsLinearRingArray","intersectsLinearRingMultiArray","easeIn","easeOut","inAndOut","CLASS_HIDDEN","CLASS_SELECTABLE","CLASS_UNSELECTABLE","CLASS_UNSUPPORTED","CLASS_CONTROL","CLASS_COLLAPSED","fontRegEx","fontRegExMatchIndex","getFontParameters","fontSpec","lineHeight","weight","variant","families","family","RegularShape","hitDetectionCanvas_","radius_","radius1","radius2_","radius2","renderOptions_","getRadius2","createHitDetectionCanvas_","renderOptions","draw_","calculateLineJoinSize_","r1","r2","miterRatio","maxr","bevelAdd","aa","bb","dd","ee","innerMiterRatio","innerLength","createRenderOptions","maxRadius","createPath_","drawHitDetectionCanvas_","angle0","radiusC","CircleStyle","setRadius","BaseEvent","TranslateEventType","TRANSLATESTART","TRANSLATING","TRANSLATEEND","TranslateEvent","startCoordinate","Translate","lastCoordinate_","startCoordinate_","lastFeature_","handleActiveChanged_","featuresAtPixel_","newCoordinate","deltaX_1","deltaY_1","geom","opt_geometries","geometries_","changeEventsKeys_","listenGeometriesChange_","unlistenGeometriesChange_","geometryCollection","setGeometries","cloneGeometries","geometriesArray","simplifiedGeometries","simplified","simplifiedGeometryCollection","setGeometriesArray","clonedGeometries","gOPS","pIE","getSymbols","symbols","divName","disposed","CanvasImageBuilder","imagePixelRatio_","anchorX_","anchorY_","height_","originX_","originY_","pointGeometry","myBegin","myEnd","multiPointGeometry","reverseHitDetectionInstructions","CanvasLineStringBuilder","drawFlatCoordinates_","appendFlatLineCoordinates","moveToLineToInstruction","lineStringGeometry","multiLineStringGeometry","lastStroke","CanvasPolygonBuilder","drawFlatCoordinatess_","numEnds","circleGeometry","setFillStrokeStyles_","circleInstruction","polygonGeometry","multiPolygonGeometry","BATCH_CONSTRUCTORS","PolygonBuilder","Builder","ImageBuilder","LineStringBuilder","TextBuilder","BuilderGroup","tolerance_","maxExtent_","resolution_","buildersByZIndex_","builderInstructions","zKey","builders","builderKey","builderInstruction","builderType","zIndexKey","replays","TileRange","containsTileRange","CanvasBuilder","maxLineWidth","beginGeometryInstruction1_","beginGeometryInstruction2_","bufferedMaxExtent_","tmpCoordinate_","applyPixelRatio","dashArray","dash","closed","skipFirst","lastRel","nextRel","lastXCoord","lastYCoord","nextCoord","skipped","drawCustomCoordinates_","builderEnds","builderEnd","builderEndss","builderBegin","myEnds","instruction","currentFillStyle","currentStrokeStyle","currentLineCap","currentLineDash","currentLineDashOffset","currentLineJoin","currentLineWidth","currentMiterLimit","endGeometryInstruction","defaultFont","defaultFillStyle","defaultLineCap","defaultLineDash","defaultLineDashOffset","defaultLineJoin","defaultMiterLimit","defaultStrokeStyle","defaultTextAlign","defaultTextBaseline","defaultPadding","defaultLineWidth","checkedFonts","labelCache","measureFont","measureContext","textHeights","registerFont","referenceWidth","retries","referenceFonts","fontStyle","fontFamily","available","referenceFont","measureTextWidth","fonts","measureTextHeight","measureElement","measureText","actualBoundingBoxAscent","actualBoundingBoxDescent","minHeight","measureAndCacheTextWidth","curr","getTextDimensions","chunks","widths","heights","lineWidths","currentWidth","currentHeight","drawImageOrLabel","labelOrImage","originX","originY","contextInstructions","executeLabelInstructions","userInfo","User","localStorage","getItem","cartoTableName","cartoTable","datarutas_company_id","ObjectEvent","BaseObject","opt_values","values_","opt_silent","LENGTH","CollectionEvent","opt_element","opt_index","unique_","array_","assertUnique_","updateLength_","insertAt","opt_except","drawTextOnPath","startM","segmentM","advance","beginX","beginY","startOffset","endM","previousAngle","singleSegment","iStart","charLength","p4","getDeclutterBox","replayImageOrLabelArgs","declutterBox","rtlRegEx","horizontalTextAlign","align","createTextChunks","Executor","alignFill_","coordinateCache_","renderedTransform_","widths_","createLabel","textIsArray","renderWidth","Context","OffscreenCanvasRenderingContext2D","CanvasRenderingContext2D","previousFont","leftRight","strokeInstructions","fillInstructions","lineOffset","widthHeightIndex","lineWidthIndex","text_1","fillStrokeArgs","replayTextBackground_","setStrokeStyle_","calculateImageOrLabelDimensions_","sheetWidth","sheetHeight","fillStroke","boxW","boxH","boxX","boxY","drawImageX","drawImageY","drawImageW","drawImageH","replayImageOrLabel_","contextScale","imageOrLabel","dimensions","strokePadding","repeatSize","drawLabelWithPointPlacement_","execute_","opt_featureCallback","opt_hitExtent","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","executeHitDetection","ORDER","allInstructions","opt_renderBuffer","executorsByZIndex_","hitDetectionContext_","hitDetectionTransform_","createExecutors_","flatClipCoords","executors","instructionByZindex","candidates","contextSize","getPixelIndexArray","result_1","executor","opt_builderTypes","builderTypes","circlePixelIndexArrayCache","maxDistanceSq","pixelIndex","asColorLike","code_","units_","worldExtent_","axisOrientation_","global_","canWrapX_","getPointResolutionFunc_","defaultTileGrid_","metersPerUnit_","getAxisOrientation","setGlobal","setGetPointResolution","geometryCollectionGeometry","opt_declutterImageWithText","getRadiusSquared_","circleExtent","super","closer","that","enableTouchScroll_","HTMLElement","createEvent","elm","isTouchDevice_","scrollStartPos","touches","RADIANS","FEET","USFEET","featureClass_","featureClass","layerName_","layers_","idProperty_","idProperty","readRawGeometry_","cmd","coordsLen","currentEnd","cmdLen","createFeature_","rawFeature","getGeometryType","ctor","pbfLayers","layersPBFReader","pbfLayer","readRawFeature","layerPBFReader","featurePBFReader","executeQuery","axios","executeQueryWithBounds","executeQueryImport","urlFile","create_vis","privacy","type_guessing","content_guessing","axiosConfig","generateUpdateQuery","featureObj","generateUpdateQueryZoneInfo","generateCreateQuery","generateCreateTableQuery","generateDeleteZoneQuery","cartodbIds","generateDeleteAllZonesQuery","generateCartoCSS","polygonFill","validateCreateTableQuery","attributions_","adaptAttributions","attributionsCollapsible_","wrapX_","interpolate_","viewResolver","viewRejector","viewPromise_","setAttributions","attributionLike"],"mappings":"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Y,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,4CCqaf,G,UAAA,mBAEA,GACA,YACA,sBACA,sBACA,YACA,eACA,eACA,eACA,cACA,0BACA,gBAEA,KAZA,WAaA,OACA,WACA,oBACA,wBACA,gBACA,2BACA,0BACA,gDACA,uDACA,sBACA,sBACA,YACA,SACA,YACA,4BACA,mBACA,eACA,mBACA,qBACA,YACA,YACA,mBACA,UACA,WACA,YACA,eACA,gBACA,oBACA,YAEA,SAEA,cACA,CACA,OACA,UACA,UACA,CACA,QACA,eAKA,eACA,6BAEA,wBACA,gBAEA,mBAEA,oBACA,sBACA,kBACA,sFACA,kBACA,qBACA,cAEA,gBACA,gBACA,qBACA,gBACA,iBACA,0BACA,mBACA,2BACA,2BACA,UACA,oBACA,aACA,iBAGA,QAxFA,WAwFA,WACA,sBACA,sDACA,wBAEA,sBACA,oDACA,wBAGA,sBACA,kDACA,wBAGA,sBACA,wDACA,wBAEA,sBAEA,4BACA,kBACA,YACA,+DACA,kBACA,0BAEA,mBACA,uBAGA,QAxHA,WAwHA,WACA,6CACA,qCAEA,kBAEA,SACA,6BACA,UACA,eACA,sCAFA,KAKA,OACA,UADA,SACA,GAEA,GADA,iBACA,MACA,qCACA,oCAEA,2BACA,cACA,wBACA,QACA,0DACA,oBACA,cACA,kBAEA,6DACA,wBACA,sBAEA,SApBA,SAoBA,GACA,6DACA,WACA,0BAEA,4BAGA,cA5BA,SA4BA,GACA,MAIA,OAHA,2BACA,sBACA,eAGA,6BACA,2BACA,iBACA,eAEA,MAxCA,SAwCA,GACA,uBACA,gCACA,kDAFA,CAMA,+CACA,WACA,2BAEA,2BACA,iCACA,sBAGA,wBAxDA,SAwDA,GACA,uBACA,gCACA,kDAFA,CAMA,+CACA,WACA,2BAEA,2BACA,iCACA,sBAGA,mBAxEA,SAwEA,GAEA,qBADA,EACA,wCACA,wCAEA,kBA7EA,SA6EA,GACA,YACA,sCAGA,sBAlFA,SAkFA,GACA,MAIA,OAHA,2BACA,0BACA,8BAGA,8BACA,2BACA,qBACA,8BAEA,aA9FA,SA8FA,GACA,+BACA,2CAGA,OAFA,2DACA,iCAGA,gCAGA,+CACA,WACA,0BAEA,6BAIA,UACA,YADA,WAEA,sCAEA,SAJA,WAKA,SAQA,OAPA,qDACA,WACA,qBACA,WACA,uBACA,UAEA,GAEA,OAfA,WAgBA,UAIA,OAHA,wBACA,sBAEA,GAEA,2BAtBA,WAuBA,8DAEA,6BAzBA,WA0BA,8DAEA,6BA5BA,WA6BA,8DAEA,6BA/BA,WAgCA,8DAEA,aAlCA,WAmCA,0BAEA,aArCA,WAsCA,2FAEA,cAxCA,WAyCA,2DAEA,gBA3CA,WA4CA,mDAEA,kBA9CA,WA+CA,+FAEA,0BAjDA,WAkDA,UAEA,kBACA,IADA,WAEA,4BAEA,IAJA,SAIA,GACA,yBAIA,SACA,uBADA,SACA,GAEA,gEACA,wBACA,qBACA,wBACA,sBACA,2BACA,oBAEA,UAXA,SAWA,GACA,uBACA,2BAEA,eAfA,SAeA,GACA,uBACA,2BAEA,qBAnBA,SAmBA,GACA,OACA,2DACA,+BACA,aAEA,8BACA,OACA,gBACA,aACA,kBAIA,uBAEA,gBAnCA,WAoCA,qBAEA,gBAtCA,WAuCA,qBAEA,gBAzCA,WA0CA,wBACA,uBAEA,oBAGA,eAhDA,WAiDA,2BACA,yBACA,kBAEA,YArDA,WAsDA,oBAEA,YAxDA,WAyDA,+BACA,sBAEA,mBAGA,YA/DA,WAgEA,oBAEA,aAlEA,WAmEA,0BAEA,WArEA,WAqEA,gEACA,uDAEA,YAxEA,WAwEA,WACA,GACA,mBACA,qCAEA,aAIA,mBACA,YACA,8CACA,kBACA,qBACA,iBACA,iBACA,gBAGA,OACA,YACA,iBACA,UACA,CACA,QACA,cAKA,iBACA,uDAEA,kBACA,oBAEA,mBAEA,MADA,iBACA,iBAhCA,uBAmCA,eAjHA,WAiHA,WACA,YACA,mDACA,kBACA,wBACA,oBAGA,mBACA,uBAGA,gBA7HA,WA6HA,WACA,GACA,mBACA,4BACA,qCAEA,aAIA,mBACA,YACA,iDACA,kBACA,iBACA,cACA,gBACA,oDACA,uDAGA,mBAEA,MADA,iBACA,iBAhBA,uBAmBA,eAvJA,SAuJA,cACA,OACA,aADA,wBACA,EADA,8BACA,EADA,MAEA,kBACA,kEACA,0EACA,uCAEA,mBACA,uBAGA,oBAnKA,WAmKA,WACA,kCACA,2BACA,WACA,uBACA,SACA,eACA,iBACA,iBACA,sBAEA,mBACA,mBAIA,uBAIA,eAvLA,SAuLA,GACA,yFAYA,GAXA,iTAWA,GAeA,GAdA,0BACA,+TAUA,+GACA,EADA,8BACA,EADA,MAGA,kTAUA,2BACA,kEAEA,qBAEA,gBAlOA,SAkOA,GACA,OACA,uBADA,sEAEA,EAFA,iCAEA,EAFA,uUASA,kBACA,WACA,6BACA,SACA,0CACA,qBAEA,gBACA,YACA,YACA,YACA,yBACA,cACA,aAEA,cACA,aAEA,cACA,aAEA,cACA,gBAGA,kDAEA,kDAEA,8BACA,0BACA,0BACA,0BACA,YACA,iCAGA,kBAjRA,SAiRA,GACA,4FAEA,oTAWA,2BACA,kEAEA,oBACA,yBAEA,qBArSA,SAqSA,OACA,oCACA,mBACA,iCAGA,IAGA,aA9SA,SA8SA,GAGA,OAFA,yBACA,qBACA,WACA,cACA,yDACA,8CACA,sBACA,mDACA,MACA,aACA,sBACA,MACA,QACA,QAGA,oBA/TA,SA+TA,GACA,wBACA,sBAEA,YAnUA,WAoUA,4BAGA,6DACA,0BAEA,YA1UA,SA0UA,GACA,8CAEA,eA7UA,WA6UA,WACA,mFACA,OACA,gBACA,kBACA,cACA,gBACA,4CACA,4CAEA,WACA,8BACA,gBACA,sBAEA,mBACA,uBAGA,eAhWA,WAiWA,uBACA,OACA,MACA,OACA,+BACA,iBACA,eACA,gBACA,yDACA,uDACA,2BACA,8BACA,gCAGA,qBACA,iBACA,yBAEA,MACA,OACA,iCACA,qBACA,iBACA,wBACA,MACA,QACA,QAGA,cA/XA,SA+XA,GACA,uBACA,yDACA,gBACA,mBACA,mBACA,mDACA,+IAEA,EAFA,4IAMA,EANA,YAMA,EANA,kDAOA,EAPA,6CAYA,+QAUA,2BACA,kEAEA,sBAGA,WAlaA,WAkaA,WACA,GACA,iCACA,8DACA,mBACA,qCAEA,gBACA,oCACA,oCACA,gCACA,mBACA,OACA,gBACA,kBACA,+BAGA,0BAEA,iBACA,iCAEA,kBASA,OARA,cACA,gBACA,0CACA,0CAEA,iEACA,iBACA,gBACA,KAEA,mBAOA,MANA,iBACA,cACA,eACA,kDACA,kDAEA,iBAGA,OA9cA,WA8cA,qEACA,6DACA,cACA,eACA,iEACA,mBACA,OACA,gBACA,kBACA,kBACA,oFAEA,kBACA,iBACA,qBACA,cACA,gBACA,mDACA,mDAEA,EACA,kBAEA,iEAEA,8BACA,2BAGA,mBAEA,GADA,iBAEA,8BACA,gCACA,eACA,CACA,SAUA,OATA,qDACA,kBACA,aAGA,gCACA,8BACA,6BACA,6CAQA,MALA,cACA,eACA,kDACA,kDAEA,kBAIA,wBAvgBA,WAugBA,WACA,+DACA,mBACA,6BACA,sFACA,yBACA,YAEA,SACA,YACA,iEACA,iBACA,8BACA,wBACA,WACA,qBACA,cACA,gBACA,oDACA,uDAGA,YACA,iBACA,cACA,eACA,yDACA,6DAKA,eAviBA,WAwiBA,iBACA,eACA,eACA,gDACA,8CACA,oCACA,kCACA,gCAGA,eAljBA,WAkjBA,WACA,qCACA,mDACA,4DACA,mBACA,OACA,gBACA,kBACA,cACA,gBACA,4CACA,6CAEA,iEACA,iBACA,iCAEA,mBAOA,MANA,iBACA,cACA,eACA,qDACA,qDAEA,iBAGA,mBA7kBA,WA8kBA,qBACA,qCACA,oDAEA,cAllBA,WAmlBA,iBACA,eAEA,eAtlBA,WAulBA,qBACA,iBACA,gBACA,gDACA,gDAKA,yCAYA,iBACA,eACA,eACA,+DACA,6DACA,mBACA,kCACA,+BAlBA,iBACA,eACA,eACA,+DACA,6DACA,oCACA,kCACA,gCAeA,eAvnBA,WAwnBA,2BACA,yBACA,oEAGA,kBA7nBA,WA8nBA,oDACA,gCAEA,wBAjoBA,WAioBA,WACA,4DACA,KAEA,EADA,6BACA,sEAEA,+CAEA,mBACA,YACA,uDACA,cACA,YAEA,kBACA,6CACA,iBACA,qBACA,cACA,gBACA,oDACA,4DAGA,mBAGA,MAFA,iBACA,eACA,iBAGA,wBA/pBA,WA+pBA,WACA,KAEA,EADA,6BACA,sEACA,2BACA,+CAEA,uDAEA,gEACA,mBACA,YACA,uDACA,cACA,YAEA,kBACA,6CACA,iBACA,cACA,gBACA,oDACA,4DAGA,mBAGA,MAFA,iBACA,eACA,iBAGA,wBA9rBA,WA8rBA,WACA,KAEA,EADA,6BACA,4BACA,2BAEA,4BACA,uFACA,6BAGA,4BACA,+FACA,6BAEA,mBACA,YACA,0BACA,yEAEA,MACA,YACA,iBACA,6DACA,4BACA,cACA,gBACA,oDACA,yDAEA,sBAEA,YAGA,MAFA,iBACA,eACA,iBAIA,uBAruBA,SAquBA,cACA,mBACA,YACA,0DACA,kBACA,KAKA,OAJA,2BACA,+DAEA,qBACA,gDACA,EADA,+BACA,aADA,aAKA,MADA,qBACA,2BAGA,kBACA,MAYA,yDAVA,4CACA,yEACA,KAGA,OAFA,0BAEA,4CACA,EADA,8BACA,QADA,SAQA,kBACA,MAqBA,0DApBA,kEACA,OACA,iCACA,oCACA,aAEA,wCACA,OACA,gBACA,aACA,kBAGA,mBACA,2BACA,kBACA,uCACA,gDAKA,oBAEA,mBACA,iBACA,6BACA,qBAGA,uBAvyBA,WAuyBA,WACA,OACA,aADA,wBACA,EADA,8BACA,iCADA,MAEA,kBACA,kEACA,OACA,iCACA,oCACA,aAEA,wCACA,OACA,gBACA,aACA,kBAGA,sBAEA,mBACA,uBAGA,+BA9zBA,WA+zBA,iBACA,eACA,eACA,6DACA,2DACA,oCACA,kCACA,gCAGA,WAz0BA,WA00BA,iBACA,eACA,4BACA,gCAGA,YAh1BA,SAg1BA,cACA,4CAEA,qBACA,OACA,wCACA,iBACA,oBACA,mCAEA,mBACA,gCAGA,iDC1kDqW,ICQjW,G,UAAY,eACd,EACAuC,EACAwW,GACA,EACA,KACA,WACA,OAIa,e,6CCnBf,gMAkBIiC,EAAe,iBAMfC,EAA+B,WAS/B,SAASA,EAAcne,EAAMwO,EAAiBC,EAAM2P,EAAYlb,GAI5DhB,KAAKmc,cAKLnc,KAAKoc,QAKLpc,KAAKqc,IAAMrb,EAKXhB,KAAKsc,MAAQxe,EA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BACA,eAEA,iBACA,aACA,YAEA,iBACA,YACA,WAEA,iBACA,YACA,aAGA,YACA,yBACA,YAEA,mBACA,0BACA,4BACA,2BACA,sBAEA,KA1DA,WA2DA,OAEA,qCACA,uCACA,2CACA,mBACA,0BACA,0BACA,yBAEA,2CACA,eAEA,aACA,eACA,eACA,YACA,aACA,iBAGA,YACA,mBACA,0BACA,4BACA,4BAGA,oBACA,iCACA,oCACA,0CACA,gCACA,qCAEA,YACA,YACA,cACA,iBAEA,mBACA,uBACA,0BACA,mBAEA,YACA,6BACA,iBACA,sBACA,iBACA,iBACA,aACA,gBACA,oBACA,oBACA,iBACA,0BACA,OACA,gBACA,QACA,WACA,YACA,oBAEA,WACA,OACA,WACA,WACA,QACA,iBACA,OACA,YACA,QACA,WACA,YACA,WAEA,6BACA,sBACA,mBACA,gBACA,2DAGA,OACA,WADA,SACA,GACA,sCAEA,aAJA,SAIA,GACA,wCAEA,iBAPA,SAOA,GACA,2DACA,uCAEA,iBAXA,SAWA,GACA,4CAEA,YAdA,SAcA,GACA,oBACA,iBACA,iCAEA,oBAnBA,WAoBA,mBACA,qBAEA,gBAvBA,WAwBA,oBACA,uBACA,kCACA,qBAGA,oBA9BA,SA8BA,GACA,2BAGA,cAjLA,WAkLA,gEACA,qEAEA,UAEA,WAFA,WAGA,SAEA,GACA,CACA,+BACA,iBACA,SACA,uCACA,mEACA,uBACA,uEACA,uCACA,0BACA,gGAIA,CACA,gBACA,WACA,UACA,UAEA,CACA,2BACA,aACA,SACA,oCAEA,CACA,+BACA,iBACA,SACA,wCAEA,CACA,4BACA,cACA,SACA,qCAEA,CACA,qCACA,uBACA,SACA,8CAEA,CACA,2BACA,cACA,SACA,WAEA,CACA,6BACA,eACA,SACA,UACA,4CAEA,CACA,2BACA,sBACA,SACA,WAEA,CACA,yCACA,oBACA,SACA,WAEA,CACA,8BACA,qBACA,UACA,4CACA,iBAKA,OACA,kEACA,0BACA,GAQA,OAPA,aACA,wBACA,uBACA,aAIA,GAEA,cAlGA,WAmGA,wBACA,8FAEA,4CA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","file":"js/chunk-14a512aa.e6d70ac4.js","sourcesContent":["/**\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/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/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/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~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 var targetElement = event.map.getTargetElement();\n var activeElement = event.map.getOwnerDocument().activeElement;\n return targetElement.contains(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 an `input`,\n * `select`, or `textarea` element and no `contenteditable` attribute is\n * set or inherited, `false` otherwise.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True only if the target element is not editable.\n * @api\n */\nexport var targetNotEditable = function (mapBrowserEvent) {\n var originalEvent = /** @type {KeyboardEvent|MouseEvent|TouchEvent} */ (mapBrowserEvent.originalEvent);\n var tagName = /** @type {Element} */ (originalEvent.target).tagName;\n return (tagName !== 'INPUT' &&\n tagName !== 'SELECT' &&\n tagName !== 'TEXTAREA' &&\n // `isContentEditable` is only available on `HTMLElement`, but it may also be a\n // different type like `SVGElement`.\n // @ts-ignore\n !originalEvent.target.isContentEditable);\n};\n/**\n * Return `true` if the event originates from a mouse device.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the event originates from a mouse device.\n * @api\n */\nexport var mouseOnly = function (mapBrowserEvent) {\n var pointerEvent = /** @type {import(\"../MapBrowserEvent\").default} */ (mapBrowserEvent).originalEvent;\n assert(pointerEvent !== undefined, 56); // mapBrowserEvent must originate from a pointer event\n // see https://www.w3.org/TR/pointerevents/#widl-PointerEvent-pointerType\n return pointerEvent.pointerType == 'mouse';\n};\n/**\n * Return `true` if the event originates from a touchable device.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the event originates from a touchable device.\n * @api\n */\nexport var touchOnly = function (mapBrowserEvent) {\n var pointerEvt = /** @type {import(\"../MapBrowserEvent\").default} */ (mapBrowserEvent).originalEvent;\n assert(pointerEvt !== undefined, 56); // mapBrowserEvent must originate from a pointer event\n // see https://www.w3.org/TR/pointerevents/#widl-PointerEvent-pointerType\n return pointerEvt.pointerType === 'touch';\n};\n/**\n * Return `true` if the event originates from a digital pen.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the event originates from a digital pen.\n * @api\n */\nexport var penOnly = function (mapBrowserEvent) {\n var pointerEvt = /** @type {import(\"../MapBrowserEvent\").default} */ (mapBrowserEvent).originalEvent;\n assert(pointerEvt !== undefined, 56); // mapBrowserEvent must originate from a pointer event\n // see https://www.w3.org/TR/pointerevents/#widl-PointerEvent-pointerType\n return pointerEvt.pointerType === 'pen';\n};\n/**\n * Return `true` if the event originates from a primary pointer in\n * contact with the surface or if the left mouse button is pressed.\n * See https://www.w3.org/TR/pointerevents/#button-states.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the event originates from a primary pointer.\n * @api\n */\nexport var primaryAction = function (mapBrowserEvent) {\n var pointerEvent = /** @type {import(\"../MapBrowserEvent\").default} */ (mapBrowserEvent).originalEvent;\n assert(pointerEvent !== undefined, 56); // mapBrowserEvent must originate from a pointer event\n return pointerEvent.isPrimary && pointerEvent.button === 0;\n};\n//# sourceMappingURL=condition.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 composed. When dispatched by the map, the event object will not have\n * a `context` set. When dispatched by a layer, the event object will have a `context` set. Only\n * WebGL layers currently dispatch this event.\n * @event module:ol/render/Event~RenderEvent#precompose\n * @api\n */\n PRECOMPOSE: 'precompose',\n /**\n * Triggered after layers are composed. When dispatched by the map, the event object will not have\n * a `context` set. When dispatched by a layer, the event object will have a `context` set. Only\n * WebGL layers currently dispatch this event.\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","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/Overlay\n */\nimport BaseObject from './Object.js';\nimport MapEventType from './MapEventType.js';\nimport { CLASS_SELECTABLE } from './css.js';\nimport { containsExtent } from './extent.js';\nimport { listen, unlistenByKey } from './events.js';\nimport { outerHeight, outerWidth, removeChildren, removeNode } from './dom.js';\n/**\n * @typedef {'bottom-left' | 'bottom-center' | 'bottom-right' | 'center-left' | 'center-center' | 'center-right' | 'top-left' | 'top-center' | 'top-right'} Positioning\n * The overlay position: `'bottom-left'`, `'bottom-center'`, `'bottom-right'`,\n * `'center-left'`, `'center-center'`, `'center-right'`, `'top-left'`,\n * `'top-center'`, or `'top-right'`.\n */\n/**\n * @typedef {Object} Options\n * @property {number|string} [id] Set the overlay id. The overlay id can be used\n * with the {@link module:ol/Map~Map#getOverlayById} method.\n * @property {HTMLElement} [element] The overlay element.\n * @property {Array} [offset=[0, 0]] Offsets in pixels used when positioning\n * the overlay. The first element in the\n * array is the horizontal offset. A positive value shifts the overlay right.\n * The second element in the array is the vertical offset. A positive value\n * shifts the overlay down.\n * @property {import(\"./coordinate.js\").Coordinate} [position] The overlay position\n * in map projection.\n * @property {Positioning} [positioning='top-left'] Defines how\n * the overlay is actually positioned with respect to its `position` property.\n * Possible values are `'bottom-left'`, `'bottom-center'`, `'bottom-right'`,\n * `'center-left'`, `'center-center'`, `'center-right'`, `'top-left'`,\n * `'top-center'`, and `'top-right'`.\n * @property {boolean} [stopEvent=true] Whether event propagation to the map\n * viewport should be stopped. If `true` the overlay is placed in the same\n * container as that of the controls (CSS class name\n * `ol-overlaycontainer-stopevent`); if `false` it is placed in the container\n * with CSS class name specified by the `className` property.\n * @property {boolean} [insertFirst=true] Whether the overlay is inserted first\n * in the overlay container, or appended. If the overlay is placed in the same\n * container as that of the controls (see the `stopEvent` option) you will\n * probably set `insertFirst` to `true` so the overlay is displayed below the\n * controls.\n * @property {PanIntoViewOptions|boolean} [autoPan=false] Pan the map when calling\n * `setPosition`, so that the overlay is entirely visible in the current viewport?\n * If `true` (deprecated), then `autoPanAnimation` and `autoPanMargin` will be\n * used to determine the panning parameters; if an object is supplied then other\n * parameters are ignored.\n * @property {PanOptions} [autoPanAnimation] The animation options used to pan\n * the overlay into view. This animation is only used when `autoPan` is enabled.\n * A `duration` and `easing` may be provided to customize the animation.\n * Deprecated and ignored if `autoPan` is supplied as an object.\n * @property {number} [autoPanMargin=20] The margin (in pixels) between the\n * overlay and the borders of the map when autopanning. Deprecated and ignored\n * if `autoPan` is supplied as an object.\n * @property {PanIntoViewOptions} [autoPanOptions] The options to use for the\n * autoPan. This is only used when `autoPan` is enabled and has preference over\n * the individual `autoPanMargin` and `autoPanOptions`.\n * @property {string} [className='ol-overlay-container ol-selectable'] CSS class\n * name.\n */\n/**\n * @typedef {Object} PanOptions\n * @property {number} [duration=1000] The duration of the animation in\n * milliseconds.\n * @property {function(number):number} [easing] The easing function to use. Can\n * be one from {@link module:ol/easing} or a custom function.\n * Default is {@link module:ol/easing.inAndOut}.\n */\n/**\n * @typedef {Object} PanIntoViewOptions\n * @property {PanOptions} [animation={}] The animation parameters for the pan\n * @property {number} [margin=20] The margin (in pixels) between the\n * overlay and the borders of the map when panning into view.\n */\n/**\n * @enum {string}\n * @protected\n */\nvar Property = {\n ELEMENT: 'element',\n MAP: 'map',\n OFFSET: 'offset',\n POSITION: 'position',\n POSITIONING: 'positioning',\n};\n/**\n * @typedef {import(\"./ObjectEventType\").Types|'change:element'|'change:map'|'change:offset'|'change:position'|\n * 'change:positioning'} OverlayObjectEventTypes\n */\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} OverlayOnSignature\n */\n/**\n * @classdesc\n * An element to be displayed over the map and attached to a single map\n * location. Like {@link module:ol/control/Control~Control}, Overlays are\n * visible widgets. Unlike Controls, they are not in a fixed position on the\n * screen, but are tied to a geographical coordinate, so panning the map will\n * move an Overlay but not a Control.\n *\n * Example:\n *\n * import Overlay from 'ol/Overlay';\n *\n * var popup = new Overlay({\n * element: document.getElementById('popup')\n * });\n * popup.setPosition(coordinate);\n * map.addOverlay(popup);\n *\n * @api\n */\nvar Overlay = /** @class */ (function (_super) {\n __extends(Overlay, _super);\n /**\n * @param {Options} options Overlay options.\n */\n function Overlay(options) {\n var _this = _super.call(this) || this;\n /***\n * @type {OverlayOnSignature}\n */\n _this.on;\n /***\n * @type {OverlayOnSignature}\n */\n _this.once;\n /***\n * @type {OverlayOnSignature}\n */\n _this.un;\n /**\n * @protected\n * @type {Options}\n */\n _this.options = options;\n /**\n * @protected\n * @type {number|string|undefined}\n */\n _this.id = options.id;\n /**\n * @protected\n * @type {boolean}\n */\n _this.insertFirst =\n options.insertFirst !== undefined ? options.insertFirst : true;\n /**\n * @protected\n * @type {boolean}\n */\n _this.stopEvent = options.stopEvent !== undefined ? options.stopEvent : true;\n /**\n * @protected\n * @type {HTMLElement}\n */\n _this.element = document.createElement('div');\n _this.element.className =\n options.className !== undefined\n ? options.className\n : 'ol-overlay-container ' + CLASS_SELECTABLE;\n _this.element.style.position = 'absolute';\n _this.element.style.pointerEvents = 'auto';\n var autoPan = options.autoPan;\n if (autoPan && 'object' !== typeof autoPan) {\n autoPan = {\n animation: options.autoPanAnimation,\n margin: options.autoPanMargin,\n };\n }\n /**\n * @protected\n * @type {PanIntoViewOptions|false}\n */\n _this.autoPan = /** @type {PanIntoViewOptions} */ (autoPan) || false;\n /**\n * @protected\n * @type {{transform_: string,\n * visible: boolean}}\n */\n _this.rendered = {\n transform_: '',\n visible: true,\n };\n /**\n * @protected\n * @type {?import(\"./events.js\").EventsKey}\n */\n _this.mapPostrenderListenerKey = null;\n _this.addChangeListener(Property.ELEMENT, _this.handleElementChanged);\n _this.addChangeListener(Property.MAP, _this.handleMapChanged);\n _this.addChangeListener(Property.OFFSET, _this.handleOffsetChanged);\n _this.addChangeListener(Property.POSITION, _this.handlePositionChanged);\n _this.addChangeListener(Property.POSITIONING, _this.handlePositioningChanged);\n if (options.element !== undefined) {\n _this.setElement(options.element);\n }\n _this.setOffset(options.offset !== undefined ? options.offset : [0, 0]);\n _this.setPositioning(options.positioning || 'top-left');\n if (options.position !== undefined) {\n _this.setPosition(options.position);\n }\n return _this;\n }\n /**\n * Get the DOM element of this overlay.\n * @return {HTMLElement|undefined} The Element containing the overlay.\n * @observable\n * @api\n */\n Overlay.prototype.getElement = function () {\n return /** @type {HTMLElement|undefined} */ (this.get(Property.ELEMENT));\n };\n /**\n * Get the overlay identifier which is set on constructor.\n * @return {number|string|undefined} Id.\n * @api\n */\n Overlay.prototype.getId = function () {\n return this.id;\n };\n /**\n * Get the map associated with this overlay.\n * @return {import(\"./PluggableMap.js\").default|null} The map that the\n * overlay is part of.\n * @observable\n * @api\n */\n Overlay.prototype.getMap = function () {\n return /** @type {import(\"./PluggableMap.js\").default|null} */ (this.get(Property.MAP) || null);\n };\n /**\n * Get the offset of this overlay.\n * @return {Array} The offset.\n * @observable\n * @api\n */\n Overlay.prototype.getOffset = function () {\n return /** @type {Array} */ (this.get(Property.OFFSET));\n };\n /**\n * Get the current position of this overlay.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} The spatial point that the overlay is\n * anchored at.\n * @observable\n * @api\n */\n Overlay.prototype.getPosition = function () {\n return /** @type {import(\"./coordinate.js\").Coordinate|undefined} */ (this.get(Property.POSITION));\n };\n /**\n * Get the current positioning of this overlay.\n * @return {Positioning} How the overlay is positioned\n * relative to its point on the map.\n * @observable\n * @api\n */\n Overlay.prototype.getPositioning = function () {\n return /** @type {Positioning} */ (this.get(Property.POSITIONING));\n };\n /**\n * @protected\n */\n Overlay.prototype.handleElementChanged = function () {\n removeChildren(this.element);\n var element = this.getElement();\n if (element) {\n this.element.appendChild(element);\n }\n };\n /**\n * @protected\n */\n Overlay.prototype.handleMapChanged = function () {\n if (this.mapPostrenderListenerKey) {\n removeNode(this.element);\n unlistenByKey(this.mapPostrenderListenerKey);\n this.mapPostrenderListenerKey = null;\n }\n var map = this.getMap();\n if (map) {\n this.mapPostrenderListenerKey = listen(map, MapEventType.POSTRENDER, this.render, this);\n this.updatePixelPosition();\n var container = this.stopEvent\n ? map.getOverlayContainerStopEvent()\n : map.getOverlayContainer();\n if (this.insertFirst) {\n container.insertBefore(this.element, container.childNodes[0] || null);\n }\n else {\n container.appendChild(this.element);\n }\n this.performAutoPan();\n }\n };\n /**\n * @protected\n */\n Overlay.prototype.render = function () {\n this.updatePixelPosition();\n };\n /**\n * @protected\n */\n Overlay.prototype.handleOffsetChanged = function () {\n this.updatePixelPosition();\n };\n /**\n * @protected\n */\n Overlay.prototype.handlePositionChanged = function () {\n this.updatePixelPosition();\n this.performAutoPan();\n };\n /**\n * @protected\n */\n Overlay.prototype.handlePositioningChanged = function () {\n this.updatePixelPosition();\n };\n /**\n * Set the DOM element to be associated with this overlay.\n * @param {HTMLElement|undefined} element The Element containing the overlay.\n * @observable\n * @api\n */\n Overlay.prototype.setElement = function (element) {\n this.set(Property.ELEMENT, element);\n };\n /**\n * Set the map to be associated with this overlay.\n * @param {import(\"./PluggableMap.js\").default|null} map The map that the\n * overlay is part of. Pass `null` to just remove the overlay from the current map.\n * @observable\n * @api\n */\n Overlay.prototype.setMap = function (map) {\n this.set(Property.MAP, map);\n };\n /**\n * Set the offset for this overlay.\n * @param {Array} offset Offset.\n * @observable\n * @api\n */\n Overlay.prototype.setOffset = function (offset) {\n this.set(Property.OFFSET, offset);\n };\n /**\n * Set the position for this overlay. If the position is `undefined` the\n * overlay is hidden.\n * @param {import(\"./coordinate.js\").Coordinate|undefined} position The spatial point that the overlay\n * is anchored at.\n * @observable\n * @api\n */\n Overlay.prototype.setPosition = function (position) {\n this.set(Property.POSITION, position);\n };\n /**\n * Pan the map so that the overlay is entirely visible in the current viewport\n * (if necessary) using the configured autoPan parameters\n * @protected\n */\n Overlay.prototype.performAutoPan = function () {\n if (this.autoPan) {\n this.panIntoView(this.autoPan);\n }\n };\n /**\n * Pan the map so that the overlay is entirely visible in the current viewport\n * (if necessary).\n * @param {PanIntoViewOptions} [opt_panIntoViewOptions] Options for the pan action\n * @api\n */\n Overlay.prototype.panIntoView = function (opt_panIntoViewOptions) {\n var map = this.getMap();\n if (!map || !map.getTargetElement() || !this.get(Property.POSITION)) {\n return;\n }\n var mapRect = this.getRect(map.getTargetElement(), map.getSize());\n var element = this.getElement();\n var overlayRect = this.getRect(element, [\n outerWidth(element),\n outerHeight(element),\n ]);\n var panIntoViewOptions = opt_panIntoViewOptions || {};\n var myMargin = panIntoViewOptions.margin === undefined ? 20 : panIntoViewOptions.margin;\n if (!containsExtent(mapRect, overlayRect)) {\n // the overlay is not completely inside the viewport, so pan the map\n var offsetLeft = overlayRect[0] - mapRect[0];\n var offsetRight = mapRect[2] - overlayRect[2];\n var offsetTop = overlayRect[1] - mapRect[1];\n var offsetBottom = mapRect[3] - overlayRect[3];\n var delta = [0, 0];\n if (offsetLeft < 0) {\n // move map to the left\n delta[0] = offsetLeft - myMargin;\n }\n else if (offsetRight < 0) {\n // move map to the right\n delta[0] = Math.abs(offsetRight) + myMargin;\n }\n if (offsetTop < 0) {\n // move map up\n delta[1] = offsetTop - myMargin;\n }\n else if (offsetBottom < 0) {\n // move map down\n delta[1] = Math.abs(offsetBottom) + myMargin;\n }\n if (delta[0] !== 0 || delta[1] !== 0) {\n var center = /** @type {import(\"./coordinate.js\").Coordinate} */ (map.getView().getCenterInternal());\n var centerPx = map.getPixelFromCoordinateInternal(center);\n if (!centerPx) {\n return;\n }\n var newCenterPx = [centerPx[0] + delta[0], centerPx[1] + delta[1]];\n var panOptions = panIntoViewOptions.animation || {};\n map.getView().animateInternal({\n center: map.getCoordinateFromPixelInternal(newCenterPx),\n duration: panOptions.duration,\n easing: panOptions.easing,\n });\n }\n }\n };\n /**\n * Get the extent of an element relative to the document\n * @param {HTMLElement} element The element.\n * @param {import(\"./size.js\").Size} size The size of the element.\n * @return {import(\"./extent.js\").Extent} The extent.\n * @protected\n */\n Overlay.prototype.getRect = function (element, size) {\n var box = element.getBoundingClientRect();\n var offsetX = box.left + window.pageXOffset;\n var offsetY = box.top + window.pageYOffset;\n return [offsetX, offsetY, offsetX + size[0], offsetY + size[1]];\n };\n /**\n * Set the positioning for this overlay.\n * @param {Positioning} positioning how the overlay is\n * positioned relative to its point on the map.\n * @observable\n * @api\n */\n Overlay.prototype.setPositioning = function (positioning) {\n this.set(Property.POSITIONING, positioning);\n };\n /**\n * Modify the visibility of the element.\n * @param {boolean} visible Element visibility.\n * @protected\n */\n Overlay.prototype.setVisible = function (visible) {\n if (this.rendered.visible !== visible) {\n this.element.style.display = visible ? '' : 'none';\n this.rendered.visible = visible;\n }\n };\n /**\n * Update pixel position.\n * @protected\n */\n Overlay.prototype.updatePixelPosition = function () {\n var map = this.getMap();\n var position = this.getPosition();\n if (!map || !map.isRendered() || !position) {\n this.setVisible(false);\n return;\n }\n var pixel = map.getPixelFromCoordinate(position);\n var mapSize = map.getSize();\n this.updateRenderedPosition(pixel, mapSize);\n };\n /**\n * @param {import(\"./pixel.js\").Pixel} pixel The pixel location.\n * @param {import(\"./size.js\").Size|undefined} mapSize The map size.\n * @protected\n */\n Overlay.prototype.updateRenderedPosition = function (pixel, mapSize) {\n var style = this.element.style;\n var offset = this.getOffset();\n var positioning = this.getPositioning();\n this.setVisible(true);\n var x = Math.round(pixel[0] + offset[0]) + 'px';\n var y = Math.round(pixel[1] + offset[1]) + 'px';\n var posX = '0%';\n var posY = '0%';\n if (positioning == 'bottom-right' ||\n positioning == 'center-right' ||\n positioning == 'top-right') {\n posX = '-100%';\n }\n else if (positioning == 'bottom-center' ||\n positioning == 'center-center' ||\n positioning == 'top-center') {\n posX = '-50%';\n }\n if (positioning == 'bottom-left' ||\n positioning == 'bottom-center' ||\n positioning == 'bottom-right') {\n posY = '-100%';\n }\n else if (positioning == 'center-left' ||\n positioning == 'center-center' ||\n positioning == 'center-right') {\n posY = '-50%';\n }\n var transform = \"translate(\".concat(posX, \", \").concat(posY, \") translate(\").concat(x, \", \").concat(y, \")\");\n if (this.rendered.transform_ != transform) {\n this.rendered.transform_ = transform;\n style.transform = transform;\n // @ts-ignore IE9\n style.msTransform = transform;\n }\n };\n /**\n * returns the options this Overlay has been created with\n * @return {Options} overlay options\n */\n Overlay.prototype.getOptions = function () {\n return this.options;\n };\n return Overlay;\n}(BaseObject));\nexport default Overlay;\n//# sourceMappingURL=Overlay.js.map","/**\n * @module ol/tilegrid\n */\nimport TileGrid from './tilegrid/TileGrid.js';\nimport Units from './proj/Units.js';\nimport { DEFAULT_MAX_ZOOM, DEFAULT_TILE_SIZE } from './tilegrid/common.js';\nimport { METERS_PER_UNIT, get as getProjection } from './proj.js';\nimport { containsCoordinate, createOrUpdate, getCorner, getHeight, getWidth, } from './extent.js';\nimport { toSize } from './size.js';\n/**\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @return {!TileGrid} Default tile grid for the\n * passed projection.\n */\nexport function getForProjection(projection) {\n var tileGrid = projection.getDefaultTileGrid();\n if (!tileGrid) {\n tileGrid = createForProjection(projection);\n projection.setDefaultTileGrid(tileGrid);\n }\n return tileGrid;\n}\n/**\n * @param {TileGrid} tileGrid Tile grid.\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @return {import(\"./tilecoord.js\").TileCoord} Tile coordinate.\n */\nexport function wrapX(tileGrid, tileCoord, projection) {\n var z = tileCoord[0];\n var center = tileGrid.getTileCoordCenter(tileCoord);\n var projectionExtent = extentFromProjection(projection);\n if (!containsCoordinate(projectionExtent, center)) {\n var worldWidth = getWidth(projectionExtent);\n var worldsAway = Math.ceil((projectionExtent[0] - center[0]) / worldWidth);\n center[0] += worldWidth * worldsAway;\n return tileGrid.getTileCoordForCoordAndZ(center, z);\n }\n else {\n return tileCoord;\n }\n}\n/**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number} [opt_maxZoom] Maximum zoom level (default is\n * DEFAULT_MAX_ZOOM).\n * @param {number|import(\"./size.js\").Size} [opt_tileSize] Tile size (default uses\n * DEFAULT_TILE_SIZE).\n * @param {import(\"./extent.js\").Corner} [opt_corner] Extent corner (default is `'top-left'`).\n * @return {!TileGrid} TileGrid instance.\n */\nexport function createForExtent(extent, opt_maxZoom, opt_tileSize, opt_corner) {\n var corner = opt_corner !== undefined ? opt_corner : 'top-left';\n var resolutions = resolutionsFromExtent(extent, opt_maxZoom, opt_tileSize);\n return new TileGrid({\n extent: extent,\n origin: getCorner(extent, corner),\n resolutions: resolutions,\n tileSize: opt_tileSize,\n });\n}\n/**\n * @typedef {Object} XYZOptions\n * @property {import(\"./extent.js\").Extent} [extent] Extent for the tile grid. The origin for an XYZ tile grid is the\n * top-left corner of the extent. If `maxResolution` is not provided the zero level of the grid is defined by the resolution\n * at which one tile fits in the provided extent. If not provided, the extent of the EPSG:3857 projection is used.\n * @property {number} [maxResolution] Resolution at level zero.\n * @property {number} [maxZoom] Maximum zoom. The default is `42`. This determines the number of levels\n * in the grid set. For example, a `maxZoom` of 21 means there are 22 levels in the grid set.\n * @property {number} [minZoom=0] Minimum zoom.\n * @property {number|import(\"./size.js\").Size} [tileSize=[256, 256]] Tile size in pixels.\n */\n/**\n * Creates a tile grid with a standard XYZ tiling scheme.\n * @param {XYZOptions} [opt_options] Tile grid options.\n * @return {!TileGrid} Tile grid instance.\n * @api\n */\nexport function createXYZ(opt_options) {\n var xyzOptions = opt_options || {};\n var extent = xyzOptions.extent || getProjection('EPSG:3857').getExtent();\n var gridOptions = {\n extent: extent,\n minZoom: xyzOptions.minZoom,\n tileSize: xyzOptions.tileSize,\n resolutions: resolutionsFromExtent(extent, xyzOptions.maxZoom, xyzOptions.tileSize, xyzOptions.maxResolution),\n };\n return new TileGrid(gridOptions);\n}\n/**\n * Create a resolutions array from an extent. A zoom factor of 2 is assumed.\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number} [opt_maxZoom] Maximum zoom level (default is\n * DEFAULT_MAX_ZOOM).\n * @param {number|import(\"./size.js\").Size} [opt_tileSize] Tile size (default uses\n * DEFAULT_TILE_SIZE).\n * @param {number} [opt_maxResolution] Resolution at level zero.\n * @return {!Array} Resolutions array.\n */\nfunction resolutionsFromExtent(extent, opt_maxZoom, opt_tileSize, opt_maxResolution) {\n var maxZoom = opt_maxZoom !== undefined ? opt_maxZoom : DEFAULT_MAX_ZOOM;\n var height = getHeight(extent);\n var width = getWidth(extent);\n var tileSize = toSize(opt_tileSize !== undefined ? opt_tileSize : DEFAULT_TILE_SIZE);\n var maxResolution = opt_maxResolution > 0\n ? opt_maxResolution\n : Math.max(width / tileSize[0], height / tileSize[1]);\n var length = maxZoom + 1;\n var resolutions = new Array(length);\n for (var z = 0; z < length; ++z) {\n resolutions[z] = maxResolution / Math.pow(2, z);\n }\n return resolutions;\n}\n/**\n * @param {import(\"./proj.js\").ProjectionLike} projection Projection.\n * @param {number} [opt_maxZoom] Maximum zoom level (default is\n * DEFAULT_MAX_ZOOM).\n * @param {number|import(\"./size.js\").Size} [opt_tileSize] Tile size (default uses\n * DEFAULT_TILE_SIZE).\n * @param {import(\"./extent.js\").Corner} [opt_corner] Extent corner (default is `'top-left'`).\n * @return {!TileGrid} TileGrid instance.\n */\nexport function createForProjection(projection, opt_maxZoom, opt_tileSize, opt_corner) {\n var extent = extentFromProjection(projection);\n return createForExtent(extent, opt_maxZoom, opt_tileSize, opt_corner);\n}\n/**\n * Generate a tile grid extent from a projection. If the projection has an\n * extent, it is used. If not, a global extent is assumed.\n * @param {import(\"./proj.js\").ProjectionLike} projection Projection.\n * @return {import(\"./extent.js\").Extent} Extent.\n */\nexport function extentFromProjection(projection) {\n projection = getProjection(projection);\n var extent = projection.getExtent();\n if (!extent) {\n var half = (180 * METERS_PER_UNIT[Units.DEGREES]) / projection.getMetersPerUnit();\n extent = createOrUpdate(-half, -half, half, half);\n }\n return extent;\n}\n//# sourceMappingURL=tilegrid.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 /** @type {HTMLCanvasElement|OffscreenCanvas} */\n var canvas;\n if (opt_canvasPool && opt_canvasPool.length) {\n canvas = opt_canvasPool.shift();\n }\n else if (WORKER_OFFSCREEN_CANVAS) {\n canvas = new OffscreenCanvas(opt_width || 300, opt_height || 300);\n }\n else {\n canvas = document.createElement('canvas');\n }\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 * Releases canvas memory to avoid exceeding memory limits in Safari.\n * See https://pqina.nl/blog/total-canvas-memory-use-exceeds-the-maximum-limit/\n * @param {CanvasRenderingContext2D} context Context.\n */\nexport function releaseCanvas(context) {\n var canvas = context.canvas;\n canvas.width = 1;\n canvas.height = 1;\n context.clearRect(0, 0, 1, 1);\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|null} 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","/**\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/extent\n */\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 * Extent corner.\n * @typedef {'bottom-left' | 'bottom-right' | 'top-left' | 'top-right'} Corner\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 {Corner} corner Corner.\n * @return {import(\"./coordinate.js\").Coordinate} Corner coordinate.\n */\nexport function getCorner(extent, corner) {\n var coordinate;\n if (corner === 'bottom-left') {\n coordinate = getBottomLeft(extent);\n }\n else if (corner === 'bottom-right') {\n coordinate = getBottomRight(extent);\n }\n else if (corner === 'top-left') {\n coordinate = getTopLeft(extent);\n }\n else if (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 _a = getRotatedViewport(center, resolution, rotation, size), x0 = _a[0], y0 = _a[1], x1 = _a[2], y1 = _a[3], x2 = _a[4], y2 = _a[5], x3 = _a[6], y3 = _a[7];\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 * @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} Linear ring representing the viewport.\n */\nexport function getRotatedViewport(center, resolution, rotation, size) {\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 return [\n x - xCos + ySin,\n y - xSin - yCos,\n x - xCos - ySin,\n y - xSin + yCos,\n x + xCos - ySin,\n y + xSin + yCos,\n x + xCos + ySin,\n y + xSin - yCos,\n x - xCos + ySin,\n y - xSin - yCos,\n ];\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/**\n * Fits the extent to the real world\n *\n * If the extent does not cross the anti meridian, this will return the extent in an array\n * If the extent crosses the anti meridian, the extent will be sliced, so each part fits within the\n * real world\n *\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./proj/Projection.js\").default} projection Projection\n * @return {Array} The extent within the real world extent.\n */\nexport function wrapAndSliceX(extent, projection) {\n if (projection.canWrapX()) {\n var projectionExtent = projection.getExtent();\n if (!isFinite(extent[0]) || !isFinite(extent[2])) {\n return [[projectionExtent[0], extent[1], projectionExtent[2], extent[3]]];\n }\n wrapX(extent, projection);\n var worldWidth = getWidth(projectionExtent);\n if (getWidth(extent) > worldWidth) {\n // the extent wraps around on itself\n return [[projectionExtent[0], extent[1], projectionExtent[2], extent[3]]];\n }\n else if (extent[0] < projectionExtent[0]) {\n // the extent crosses the anti meridian, so it needs to be sliced\n return [\n [extent[0] + worldWidth, extent[1], projectionExtent[2], extent[3]],\n [projectionExtent[0], extent[1], extent[2], extent[3]],\n ];\n }\n else if (extent[2] > projectionExtent[2]) {\n // the extent crosses the anti meridian, so it needs to be sliced\n return [\n [extent[0], extent[1], projectionExtent[2], extent[3]],\n [projectionExtent[0], extent[1], extent[2] - worldWidth, extent[3]],\n ];\n }\n }\n return [extent];\n}\n//# sourceMappingURL=extent.js.map","/**\n * @module ol/renderer/canvas/common\n */\n/**\n * Context options to disable image smoothing.\n * @type {Object}\n */\nexport var IMAGE_SMOOTHING_DISABLED = {\n imageSmoothingEnabled: false,\n msImageSmoothingEnabled: false,\n};\n/**\n * Context options to enable image smoothing.\n * @type {Object}\n */\nexport var IMAGE_SMOOTHING_ENABLED = {\n imageSmoothingEnabled: true,\n msImageSmoothingEnabled: true,\n};\n//# sourceMappingURL=common.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","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Zonification.vue?vue&type=style&index=0&id=426d99d5&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('bread-crumbs',{attrs:{\"title\":_vm.$t('Zonification.Zonification'),\"subTitle\":_vm.$t('general.SubTitleZonification'),\"sizeTitle\":30,\"lineHeightTitle\":37,\"sizeSubTitle\":15,\"lineHeightSubTitle\":18}}),_c('div',{staticClass:\"vx-row\"},[_c('div',{staticClass:\"vx-col md:w-2/5 w-full mb-base\"},[_c('vx-card',[_c('vs-tabs',{staticClass:\"tab-action-btn-fill-conatiner\",attrs:{\"alignment\":\"fixed\",\"color\":_vm.colorTabs},model:{value:(_vm.activeTab),callback:function ($$v) {_vm.activeTab=$$v},expression:\"activeTab\"}},[_c('vs-tab',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.zonificationReadPermission),expression:\"zonificationReadPermission\"}],attrs:{\"icon\":\"\",\"label\":_vm.$t('Zonification.View')},on:{\"click\":function($event){_vm.colorTabs = '#F9841E'}}},[_c('div',{style:({height: _vm.windowHeight < 600 ? '100%' : 31.6 + 'rem'})},[_c('div',{staticClass:\"vx-row\"},[_c('div',{staticClass:\"vx-col md:w-1/1 w-full\"},[_c('div',{staticClass:\"mt-4\"},[_c('label',{staticClass:\"vs-input--label g-label\",domProps:{\"textContent\":_vm._s(_vm.$t('general.Selectt') + ' ' + _vm.$t('Zonification.Layers'))}}),_c('v-select',{attrs:{\"options\":_vm.layerOptions,\"dir\":_vm.$vs.rtl ? 'rtl' : 'ltr',\"default-expand-level\":1,\"placeholder\":_vm.$t('Select')},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\nvar search = ref.search;\nvar searching = ref.searching;\nreturn [(searching)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"general.NoResultsFoundFor\") + \" \")),_c('em',[_vm._v(_vm._s(search))])]:_vm._e()]}}]),model:{value:(_vm.selectedLayer),callback:function ($$v) {_vm.selectedLayer=$$v},expression:\"selectedLayer\"}})],1)]),_c('div',{staticClass:\"vx-col md:w-1/1 w-full\"},[_c('div',{staticClass:\"mt-4\"},[_c('label',{staticClass:\"vs-input--label g-label\",domProps:{\"textContent\":_vm._s(_vm.$t('general.Selectt') + ' ' + _vm.$t('Zonification.Zones'))}}),_c('treeselect',{attrs:{\"value-consists-of\":\"LEAF_PRIORITY\",\"openDirection\":\"bottom\",\"default-expand-level\":1,\"multiple\":true,\"options\":_vm.optionsMulti,\"placeholder\":_vm.$t('Select')},model:{value:(_vm.zones),callback:function ($$v) {_vm.zones=$$v},expression:\"zones\"}})],1)]),_c('div',{staticClass:\"vx-col md:w-1/1 w-full\"})])])]),(_vm.activeTab === 1 ? 'colorTabs = red' : 'colorTabs = blue')?_c('vs-tab',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.zonificationCreatePermission || _vm.zonificationUpdatePermission),expression:\"zonificationCreatePermission || zonificationUpdatePermission\"}],attrs:{\"icon\":\"\",\"label\":_vm.$t('Zonification.Draw') + ' / ' + _vm.$t('Crud.Update') + ' ' + _vm.$t('Zonification.Layers')}},[_c('div',{style:({height: _vm.windowHeight < 600 ? '100%' : 31.6 + 'rem'})},[_c('div',{staticClass:\"vx-row\"},[_c('div',{staticClass:\"vx-col md:w-1/1 w-full\"},[_c('div',{staticClass:\"mt-4\"},[_c('label',{staticClass:\"vs-input--label\"},[_vm._v(_vm._s(_vm.$t(\"Zonification.Layers\")))]),_c('v-select',{attrs:{\"options\":_vm.layerOptions,\"dir\":_vm.$vs.rtl ? 'rtl' : 'ltr',\"placeholder\":_vm.$t('Select')},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\nvar search = ref.search;\nvar searching = ref.searching;\nreturn [(searching)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"general.NoResultsFoundFor\") + \" \")),_c('em',[_vm._v(_vm._s(search))])]:_vm._e()]}}],null,false,3263140256),model:{value:(_vm.selectedLayer),callback:function ($$v) {_vm.selectedLayer=$$v},expression:\"selectedLayer\"}})],1)]),_c('div',{staticClass:\"vx-col md:w-1/1 w-full\"},[_c('vs-alert',{staticClass:\"mt-4\",attrs:{\"color\":\"success\",\"title\":\"Agregar zonas\",\"active\":_vm.alertPolygon,\"closable\":\"\",\"icon-pack\":\"feather\",\"close-icon\":\"icon-x\"},on:{\"update:active\":function($event){_vm.alertPolygon=$event}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"Zonification.UseTool\"))+\" \")]),_c('span',{staticClass:\"text-inherit underline\",staticStyle:{\"cursor\":\"pointer\"}},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"HexagonIcon\",\"svgClasses\":\"h-4 w-4\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"Zonification.Polygon\"))+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\")],1),_c('span',[_vm._v(_vm._s(_vm.$t(\"Zonification.DrawAndAddZones\")))])])],1),_c('div',{staticClass:\"vx-col md:w-1/1 w-full\"},[_c('div',{staticClass:\"mt-4\"},[_c('label',{staticClass:\"vs-input--label\"},[_vm._v(_vm._s(_vm.$t(\"Zonification.Zones\")))]),_c('treeselect',{attrs:{\"value-consists-of\":\"LEAF_PRIORITY\",\"openDirection\":\"bottom\",\"default-expand-level\":1,\"multiple\":true,\"options\":_vm.optionsMulti,\"placeholder\":_vm.$t('Select')},model:{value:(_vm.zones),callback:function ($$v) {_vm.zones=$$v},expression:\"zones\"}})],1)]),_c('div',{staticClass:\"vx-col md:w-1/1 w-full\"})])])]):_vm._e(),_c('vs-tab',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.zonificationReadPermission),expression:\"zonificationReadPermission\"}],staticClass:\"tabResponsive\",attrs:{\"label\":_vm.$t('Resource.AssigResources'),\"icon\":\"\"}},[_c('hr',{staticClass:\"mt-2\"}),_c('div',{style:({height: _vm.windowHeight < 600 ? '100%' : 31.6 + 'rem'})},[_c('div',{staticClass:\"vx-row\"},[_c('div',{staticClass:\"vx-col md:w-1/1 w-full\"},[(_vm.assignedResources.length > 0)?_c('ul',_vm._l((_vm.assignedResources),function(resource){return _c('li',{key:resource.uid,staticClass:\"cursor-pointer\"},[_c('resource-item',{attrs:{\"resource\":resource,\"removeAssignedResource\":_vm.removeAssignedResource}})],1)}),0):_vm._e(),(_vm.assignedResources.length === 0)?_c('p',[_c('vs-alert',{staticClass:\"mt-2\",staticStyle:{\"overflow-y\":\"auto\"},attrs:{\"closable\":\"\",\"icon-pack\":\"feather\",\"close-icon\":\"icon-x\",\"color\":\"success\",\"active\":_vm.activeAlert2,\"title\":_vm.$t('Resource.AssigResources')},on:{\"update:active\":function($event){_vm.activeAlert2=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"Zonification.AlertTextOne\"))+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"),_c('span',{staticClass:\"text-inherit underline\",staticStyle:{\"cursor\":\"pointer\"}},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"UserPlusIcon\",\"svgClasses\":\"h-4 w-4\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"Resource.AssigResources\"))+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\")],1),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"Reports.AlertTextTwo\"))+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\")])],1):_vm._e()]),_c('div',{staticClass:\"vx-col md:w-1/1 w-full\"},[(_vm.assignedResources.length > 0)?_c('p',[_c('vs-alert',{staticClass:\"mt-2\",attrs:{\"active\":_vm.activeAlert3,\"closable\":\"\",\"icon-pack\":\"feather\",\"close-icon\":\"icon-x\",\"color\":\"success\",\"title\":_vm.$t('Zonification.AlertSelectLayerTitle')},on:{\"update:active\":function($event){_vm.activeAlert3=$event}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"Zonification.AlertSelectLayerText\"))+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"Zonification.AlertSelectLayerText2\"))+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"),_c('span',{staticClass:\"text-inherit underline\",staticStyle:{\"cursor\":\"pointer\"}},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"SaveIcon\",\"svgClasses\":\"h-4 w-4\"}})],1),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"Zonification.AlertSelectLayerText3\"))+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"),_c('span',{staticClass:\"text-inherit underline\",staticStyle:{\"cursor\":\"pointer\"}},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"Trash2Icon\",\"svgClasses\":\"h-4 w-4\"}})],1),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"Zonification.AlertSelectLayerText4\"))+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\")])],1):_vm._e()]),(_vm.assignedResources.length > 0)?_c('div',{staticClass:\"vx-col md:w-1/1 w-full\"},[_c('div',{staticClass:\"mt-4\"},[_c('label',{staticClass:\"vs-input--label\"},[_vm._v(_vm._s(_vm.$t(\"Zonification.Layers\")))]),_c('v-select',{attrs:{\"options\":_vm.layerOptions,\"dir\":_vm.$vs.rtl ? 'rtl' : 'ltr',\"placeholder\":_vm.$t('Select')},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\nvar search = ref.search;\nvar searching = ref.searching;\nreturn [(searching)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"general.NoResultsFoundFor\") + \" \")),_c('em',[_vm._v(_vm._s(search))])]:_vm._e()]}}],null,false,3263140256),model:{value:(_vm.selectedResourceLayer),callback:function ($$v) {_vm.selectedResourceLayer=$$v},expression:\"selectedResourceLayer\"}})],1)]):_vm._e(),(_vm.assignedResources.length > 0)?_c('div',{staticClass:\"vx-col md:w-1/1 w-full\"},[_c('div',{staticClass:\"mt-4\"},[_c('label',{staticClass:\"vs-input--label\"},[_vm._v(_vm._s(_vm.$t(\"Zonification.Zones\")))]),(_vm.zonesBoolean)?_c('treeselect',{attrs:{\"value-consists-of\":\"LEAF_PRIORITY\",\"default-expand-level\":1,\"multiple\":true,\"options\":_vm.optionsMulti,\"openDirection\":\"top\"},on:{\"open\":function($event){(_vm.zonesChecked = _vm.zonesCheckedResource), (_vm.zonesBoolean = false)}},model:{value:(_vm.zonesCheckedResource),callback:function ($$v) {_vm.zonesCheckedResource=$$v},expression:\"zonesCheckedResource\"}}):_c('treeselect',{attrs:{\"value-consists-of\":\"LEAF_PRIORITY\",\"default-expand-level\":1,\"multiple\":true,\"options\":_vm.optionsMulti,\"value\":_vm.zonesChecked},model:{value:(_vm.zonesChecked),callback:function ($$v) {_vm.zonesChecked=$$v},expression:\"zonesChecked\"}})],1)]):_vm._e()])])])],1)],1)],1),_c('div',{staticClass:\"vx-col md:w-3/5 w-full mb-base\"},[_c('vx-card',[_c('div',{staticClass:\"vx-row\"},[_c('div',{staticClass:\"vx-col w-full\"},[_c('drawing-tools',{attrs:{\"global\":this,\"mode\":_vm.activeTab,\"idCapa\":_vm.idCapa,\"selectedLayer\":_vm.selectedLayer,\"selectedZone\":_vm.selectedZone,\"selectedResource\":_vm.assignedResources,\"zonesSelected\":_vm.zones,\"zonesResourceChecked\":_vm.zonesChecked,\"modeAssigUpdate\":_vm.modeAssigUpdate},on:{\"deleteAssigZoneResourceEmit\":_vm.confirmDeleteAssigZoneResource,\"deleteShapeEmit\":_vm.deleteShape,\"changeColorEmit\":_vm.changeColor,\"nuevaCapaEmit\":_vm.openCapaPrompt,\"deleteZoneCapaEmit\":_vm.deleteZoneCapa,\"clearMapLayerEmit\":_vm.clearMapLayer,\"deleteOnlyCapaEmit\":_vm.deleteOnlyCapa,\"editZoneEmit\":_vm.openEditZonePrompt,\"changeNameCapaEmit\":_vm.changeNameCapa,\"showPopupResourceEmit\":_vm.showPopup,\"assigZoneResourceEmit\":_vm.assigZoneResource,\"callbackDrawEmit\":_vm.callbackDraw,\"featureSelectedEmit\":_vm.shapeSelectedRemove}})],1)]),_c('div',{staticClass:\"map-custom-container\"},[_c('ol-map-container',{ref:\"moduleMap\",attrs:{\"name\":\"theMap\",\"latitude\":\"4.686699\",\"longitude\":\"-74.0837187\",\"zoom\":\"13\",\"mapType\":\"here\",\"width\":_vm.widthMap,\"height\":\"74.3vh\"},on:{\"instanceOlMap\":function($event){_vm.olMap = $event}}})],1)])],1),_c('vs-prompt',{attrs:{\"title\":_vm.promptCapaTitle,\"active\":_vm.activeCapaPrompt,\"is-valid\":_vm.nameCapa.length > 0 && _vm.statusSelected !== null},on:{\"cancel\":_vm.cancelCapaPromt,\"accept\":_vm.acceptCapaAlert,\"close\":_vm.closeCapaPrompt,\"update:active\":function($event){_vm.activeCapaPrompt=$event}}},[_c('div',{staticClass:\"con-exemple-prompt\"},[_c('p',[_vm._v(_vm._s(_vm.$t(\"Zonification.AssignNameLayer\")))]),_c('vs-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"mt-3 w-full mb-4\",attrs:{\"placeholder\":_vm.$t('Zonification.AssignNameLayer'),\"vs-placeholder\":_vm.$t('Zonification.AssignNameLayer')},model:{value:(_vm.nameCapa),callback:function ($$v) {_vm.nameCapa=$$v},expression:\"nameCapa\"}})],1),_c('div',{staticClass:\"mt-4\"},[_c('label',{staticClass:\"vs-input--label\"},[_vm._v(_vm._s(_vm.$t(\"Status\")))]),_c('v-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],attrs:{\"clearable\":false,\"options\":_vm.statusOptions,\"name\":\"status\",\"placeholder\":_vm.$t('Select')},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\nvar search = ref.search;\nvar searching = ref.searching;\nreturn [(searching)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"general.NoResultsFoundFor\") + \" \")),_c('em',[_vm._v(_vm._s(search))])]:_vm._e()]}}]),model:{value:(_vm.status_local_sel),callback:function ($$v) {_vm.status_local_sel=$$v},expression:\"status_local_sel\"}}),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.errors.has('status')),expression:\"errors.has('status')\"}],staticClass:\"text-danger text-sm\"},[_vm._v(_vm._s(_vm.errors.first(\"status\")))])],1)]),_c('vs-prompt',{attrs:{\"title\":_vm.promptZoneTitle,\"active\":_vm.activePrompt,\"is-valid\":_vm.nameZone.length > 0},on:{\"cancel\":_vm.cancelPromt,\"accept\":_vm.acceptAlert,\"close\":_vm.cancelPromt,\"update:active\":function($event){_vm.activePrompt=$event}}},[_c('div',{staticClass:\"con-exemple-prompt\"},[(_vm.selectedZone.cartodb_id > 0)?_c('small',[_vm._v(_vm._s(_vm.$t(\"Zonification.EditZoneSelected\")))]):_c('small',[_vm._v(_vm._s(_vm.$t(\"Zonification.AddZoneInLayer\")))]),_c('vs-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"mt-3 w-full mb-4\",attrs:{\"placeholder\":_vm.$t('Name'),\"vs-placeholder\":_vm.$t('Name')},model:{value:(_vm.nameZone),callback:function ($$v) {_vm.nameZone=$$v},expression:\"nameZone\"}}),_c('vs-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"mt-3 w-full mb-4\",attrs:{\"placeholder\":_vm.$t('Description'),\"vs-placeholder\":_vm.$t('Description'),\"name\":\"description\"},model:{value:(_vm.descriptionZone),callback:function ($$v) {_vm.descriptionZone=$$v},expression:\"descriptionZone\"}})],1)]),_c('popup-customize',{staticClass:\"vs-popup--custom\",attrs:{\"fullscreen\":false,\"title\":null,\"active\":_vm.resourceMounted,\"hidden-boolean\":true}},[(_vm.resourceMounted)?_c('resource-list',{ref:\"ResourceList\",attrs:{\"removeColumns\":true,\"customConfig\":_vm.resourceListConfig},on:{\"showPopupEmmit\":_vm.showPopup,\"closePopup\":_vm.closepopupEmit}}):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"no-shadow\":\"\"}},[_c('vs-input',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"mt-3 w-full mb-4\",attrs:{\"id\":\"file-upload\",\"type\":\"file\"},on:{\"change\":_vm.onFileChange}}),_c('div',{staticClass:\"custom-file-upload\",attrs:{\"for\":\"file-upload\"}},[_c('label',{staticClass:\"custom-file-upload__icon\",class:_vm.uploadStatus},[_c('feather-icon',{staticClass:\"cursor-pointer mr-2\",attrs:{\"icon\":\"UploadCloudIcon\",\"svgClasses\":\"h-8 w-8\"}})],1),_c('label',{staticClass:\"custom-file-upload__text\",class:_vm.uploadStatus},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(this.fileName)+\"\\n\\t\\t\")])]),_c('p',[_vm._v(_vm._s(_vm.$t(\"Zonification.UploadZones.SelectFileText\")))]),_c('div',{staticClass:\"mt-4\"},[_c('vs-progress',{attrs:{\"height\":12,\"percent\":_vm.percent,\"color\":_vm.progressColor}})],1),_c('vs-button',{staticClass:\"ml-auto mt-4 vs-con-loading__container\",attrs:{\"id\":\"btn-save-visit-point\",\"disabled\":!_vm.dataFile},on:{\"click\":function($event){$event.preventDefault();return _vm.uploadFile.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.$t(\"Upload\"))+\"\\n\\t\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadZones.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadZones.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UploadZones.vue?vue&type=template&id=232eb02a&\"\nimport script from \"./UploadZones.vue?vue&type=script&lang=js&\"\nexport * from \"./UploadZones.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UploadZones.vue?vue&type=style&index=0&lang=css&scope=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vs-navbar',{staticClass:\"nabarx\",model:{value:(_vm.activeItem),callback:function ($$v) {_vm.activeItem=$$v},expression:\"activeItem\"}},[_c('div',{staticClass:\"pt-5 pb-5\",attrs:{\"slot\":\"title\"},slot:\"title\"},[_c('vs-navbar-title',{staticClass:\"pr-0 pl-0\"},[_c('span',{staticClass:\"g-tools--description\"},[_vm._v(_vm._s(_vm.$t(\"Zonification.Tools\")))])])],1),_c('div',{staticClass:\"flex justify-end items-center mb-2\"},[(_vm.activeRectangle)?_c('vs-navbar-item',{attrs:{\"index\":\"1\"}},[_c('a',{staticClass:\"text-center\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.selectTool('rectangle')}}},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"SquareIcon\"}}),_c('br'),_c('small',[_vm._v(_vm._s(_vm.$t(\"Zonification.Rectangle\")))])],1)]):_vm._e(),(_vm.activePolyline)?_c('vs-navbar-item',{attrs:{\"index\":\"2\"}},[_c('a',{staticClass:\"text-center\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.selectTool('polyline')}}},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"Edit2Icon\"}}),_c('br'),_c('small',[_vm._v(_vm._s(_vm.$t(\"Zonification.Polyline\")))])],1)]):_vm._e(),(_vm.activeMarker)?_c('vs-navbar-item',{attrs:{\"index\":\"3\"}},[_c('a',{staticClass:\"text-center\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.selectTool('marker')}}},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"MapPinIcon\"}}),_c('br'),_c('small',[_vm._v(_vm._s(_vm.$t(\"Zonification.Marker\")))])],1)]):_vm._e(),(_vm.activeFillColor)?_c('vs-navbar-item',{attrs:{\"index\":\"4\"}},[_c('a',{staticClass:\"text-center\",attrs:{\"href\":\"#\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.shapeColor),expression:\"shapeColor\"}],attrs:{\"type\":\"color\",\"name\":\"\",\"value\":\"\"},domProps:{\"value\":(_vm.shapeColor)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.shapeColor=$event.target.value}}}),_c('br'),_c('small',[_vm._v(_vm._s(_vm.$t(\"Zonification.FillColor\")))])])]):_vm._e(),_c('vs-navbar-item',{attrs:{\"index\":\"5\"}},[(false)?_c('a',{staticClass:\"text-center\",attrs:{\"href\":\"#\"},on:{\"click\":_vm.nuevaCapa}},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"LayersIcon\"}}),_c('br'),_c('small',[_vm._v(_vm._s(_vm.$t(\"Zonification.NewLayer\")))])],1):_vm._e()]),(_vm.activePolygon && _vm.zonificationCreatePermission)?_c('vs-navbar-item',{staticClass:\"pr-4\",attrs:{\"index\":\"6\"}},[_c('vx-tooltip',{attrs:{\"text\":_vm.$t('Zonification.Polygon')}},[_c('vs-button',{attrs:{\"color\":\"#FF8C34\",\"type\":\"filled\",\"icon-pack\":\"feather\",\"icon\":\"icon-octagon\"},on:{\"click\":function($event){$event.preventDefault();return _vm.selectTool('Polygon')}}})],1)],1):_vm._e(),(_vm.activeCircle)?_c('vs-navbar-item',{staticClass:\"pr-4\",attrs:{\"index\":\"7\"}},[_c('vx-tooltip',{attrs:{\"text\":_vm.$t('Zonification.Circle')}},[_c('vs-button',{attrs:{\"color\":\"#FF8C34\",\"type\":\"filled\",\"icon-pack\":\"feather\",\"icon\":\"icon-circle\"},on:{\"click\":function($event){$event.preventDefault();return _vm.selectTool('Circle')}}})],1)],1):_vm._e(),(_vm.activeSelection || _vm.activeCircle)?_c('vs-navbar-item',{staticClass:\"pr-4\",attrs:{\"index\":\"8\"}},[_c('vx-tooltip',{attrs:{\"text\":_vm.$t('Selection')}},[_c('vs-button',{attrs:{\"color\":\"primary\",\"icon-pack\":\"feather\",\"icon\":\"icon-navigation\"},on:{\"click\":function($event){$event.preventDefault();return _vm.selectTool(null)}}})],1)],1):_vm._e(),(_vm.activeEditInfo)?_c('vs-navbar-item',{staticClass:\"pr-4\",attrs:{\"index\":\"9\"}},[_c('vx-tooltip',{attrs:{\"text\":_vm.$t('Edit') + ' ' + _vm.$t('Information')}},[_c('vs-button',{staticClass:\"cursor-pointer\",attrs:{\"color\":\"primary\",\"icon-pack\":\"feather\",\"icon\":\"icon-edit\"},on:{\"click\":function($event){$event.preventDefault();return _vm.editZone.apply(null, arguments)}}})],1)],1):_vm._e(),(_vm.activeRemoveFigure && _vm.activeRemove)?_c('vs-navbar-item',{attrs:{\"index\":\"10\"}},[_c('vx-tooltip',{attrs:{\"text\":_vm.$t('RemoveFigure')}},[_c('vs-button',{staticClass:\"cursor-pointer\",attrs:{\"color\":\"primary\",\"icon-pack\":\"feather\",\"icon\":\"icon-x-square\"},on:{\"click\":function($event){$event.preventDefault();return _vm.deleteShape.apply(null, arguments)}}})],1)],1):_vm._e(),_c('vs-navbar-item',{staticClass:\"pr-4\",attrs:{\"index\":\"11\"}},[_c('vx-tooltip',{attrs:{\"text\":_vm.$t('Zonification.RemoveZones')}},[(_vm.activePolygon && _vm.zonificationDeletePermission)?_c('vs-button',{attrs:{\"color\":\"primary\",\"icon-pack\":\"feather\",\"icon\":\"icon-delete\"},on:{\"click\":function($event){$event.preventDefault();return _vm.deleteZoneCapa.apply(null, arguments)}}}):_vm._e()],1)],1),_c('vs-navbar-item',{staticClass:\"pr-4\",attrs:{\"index\":\"12\"}},[_c('vx-tooltip',{attrs:{\"text\":_vm.$t('general.ClearMap')}},[((_vm.activePolygon || _vm.activeCircle) && _vm.zonificationDeletePermission)?_c('vs-button',{attrs:{\"color\":\"#FF4B55\",\"icon-pack\":\"feather\",\"icon\":\"icon-trash-2\"},on:{\"click\":function($event){$event.preventDefault();return _vm.clearMapLayer.apply(null, arguments)}}}):_vm._e()],1)],1),(_vm.activeSettingsCapa)?_c('vs-navbar-item',{attrs:{\"index\":\"13\"}},[_c('vx-tooltip',{attrs:{\"text\":_vm.$t('Zonification.Layer')}},[_c('vs-dropdown',{staticClass:\"cursor-pointer\",attrs:{\"vs-custom-content\":\"\",\"vs-trigger-click\":\"\"}},[_c('vs-button',{attrs:{\"color\":\"#FF8C34\",\"type\":\"filled\",\"icon-pack\":\"feather\",\"icon\":\"icon-layers\"}}),_c('vs-dropdown-menu',{staticClass:\"w-48 i18n-dropdown vx-navbar-dropdown\"},[_c('vs-dropdown-item',{on:{\"click\":_vm.nuevaCapa}},[(_vm.zonificationCreatePermission)?_c('feather-icon',{staticClass:\"cursor-pointer mr-2\",attrs:{\"icon\":\"LayersIcon\",\"svgClasses\":\"h-5 w-5\"}}):_vm._e(),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t \"+_vm._s(_vm.$t(\"Zonification.NewLayer\"))+\"\\n\\t\\t\\t\\t\\t\\t\")],1),(_vm.activeSettingsCapaOptions && _vm.zonificationUpdatePermission)?_c('vs-dropdown-item',{on:{\"click\":_vm.changeNameCapa}},[_c('feather-icon',{staticClass:\"cursor-pointer mr-2\",attrs:{\"icon\":\"Edit2Icon\",\"svgClasses\":\"h-5 w-5\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t \"+_vm._s(_vm.$t(\"Zonification.EditName\"))+\"\\n\\t\\t\\t\\t\\t\\t\")],1):_vm._e(),(_vm.activeSettingsCapaOptions && _vm.zonificationDeletePermission)?_c('vs-dropdown-item',{on:{\"click\":_vm.deleteOnlyCapa}},[_c('feather-icon',{staticClass:\"cursor-pointer mr-2\",attrs:{\"icon\":\"Trash2Icon\",\"svgClasses\":\"h-5 w-5\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t \"+_vm._s(_vm.$t(\"Zonification.RemoveLayer.Title\"))+\"\\n\\t\\t\\t\\t\\t\\t\")],1):_vm._e()],1)],1)],1)],1):_vm._e(),_c('vs-navbar-item',{attrs:{\"index\":\"14\"}},[(_vm.activeResource)?_c('vs-button',{staticClass:\"btn-resource\",attrs:{\"color\":\"primary\",\"type\":\"filled\",\"icon-pack\":\"feather\",\"icon\":\"icon-plus\"},on:{\"click\":function($event){$event.preventDefault();return _vm.showPopupResource.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"Resource.AssigResources\"))+\"\\n\\t\\t\\t\")]):_vm._e()],1),_c('vs-navbar-item',{staticClass:\"pr-4\",attrs:{\"index\":\"15\"}},[_c('vx-tooltip',{attrs:{\"text\":_vm.$t('Save')}},[(\n\t\t\t\t\t\t_vm.activeAssignedResourceSave && _vm.zonificationUpdatePermission && _vm.zonificationCreatePermission\n\t\t\t\t\t)?_c('vs-button',{attrs:{\"color\":\"#FF8C34\",\"icon-pack\":\"feather\",\"icon\":\"icon-save\"},on:{\"click\":function($event){$event.preventDefault();return _vm.assigZoneResource.apply(null, arguments)}}}):_vm._e()],1)],1),(_vm.activeDeleteAssignedResource && _vm.zonificationDeletePermission)?_c('vs-navbar-item',{attrs:{\"index\":\"16\"}},[_c('vx-tooltip',{attrs:{\"text\":_vm.$t('Crud.Delete')}},[_c('vs-button',{attrs:{\"color\":\"#FF4B55\",\"icon-pack\":\"feather\",\"icon\":\"icon-trash\"},on:{\"click\":function($event){$event.preventDefault();return _vm.deleteAssigZoneResource.apply(null, arguments)}}})],1)],1):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawingTools.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawingTools.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DrawingTools.vue?vue&type=template&id=b4dec6ec&scoped=true&\"\nimport script from \"./DrawingTools.vue?vue&type=script&lang=js&\"\nexport * from \"./DrawingTools.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DrawingTools.vue?vue&type=style&index=0&id=b4dec6ec&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b4dec6ec\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"chat__contact flex items-center pb-2\",class:{'bg-primary-gradient text-white shadow-lg': _vm.isActiveChatUser}},[_c('div',{staticClass:\"contact__avatar mr-1\"},[_c('vs-avatar',{staticClass:\"border-2 border-solid border-white\",attrs:{\"src\":_vm.photoURL,\"size\":\"42px\"}})],1),_c('div',{staticClass:\"contact__container w-full flex items-center justify-between overflow-hidden\"},[_c('div',{staticClass:\"contact__info flex flex-col truncate w-4/5\"},[_c('h5',{staticClass:\"truncate g-tools--description\",class:{'text-white': _vm.isActiveChatUser}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.resource.name)+\" \"+_vm._s(_vm.resource.lastname)+\"\\n\\t\\t\\t\")]),_c('span',{staticClass:\"truncate title-resource\"},[_vm._v(_vm._s(_vm.resource.email))])]),_c('div',{staticClass:\"chat__contact__meta flex self-start flex-col items-end w-1/5\"},[_c('vs-button',{staticClass:\"mr-2\",attrs:{\"color\":\"danger\",\"type\":\"flat\",\"icon-pack\":\"feather\",\"icon\":\"icon-trash-2\"},on:{\"click\":function($event){return _vm.removeAssignedResource(_vm.resource.id)}}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ResourceItem.vue?vue&type=template&id=07e37291&scoped=true&\"\nimport script from \"./ResourceItem.vue?vue&type=script&lang=js&\"\nexport * from \"./ResourceItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ResourceItem.vue?vue&type=style&index=0&id=07e37291&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"07e37291\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Zonification.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Zonification.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Zonification.vue?vue&type=template&id=426d99d5&scoped=true&\"\nimport script from \"./Zonification.vue?vue&type=script&lang=js&\"\nexport * from \"./Zonification.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Zonification.vue?vue&type=style&index=0&id=426d99d5&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"426d99d5\",\n null\n \n)\n\nexport default component.exports","/**\n * @module ol/render/Feature\n */\nimport Feature from '../Feature.js';\nimport GeometryLayout from '../geom/GeometryLayout.js';\nimport { LineString, MultiLineString, MultiPoint, MultiPolygon, Point, Polygon, } from '../geom.js';\nimport { compose as composeTransform, create as createTransform, } from '../transform.js';\nimport { createOrUpdateFromCoordinate, createOrUpdateFromFlatCoordinates, getCenter, getHeight, } from '../extent.js';\nimport { extend } from '../array.js';\nimport { getInteriorPointOfArray, getInteriorPointsOfMultiArray, } from '../geom/flat/interiorpoint.js';\nimport { get as getProjection } from '../proj.js';\nimport { inflateEnds } from '../geom/flat/orient.js';\nimport { interpolatePoint } from '../geom/flat/interpolate.js';\nimport { linearRingss as linearRingssCenter } from '../geom/flat/center.js';\nimport { transform2D } from '../geom/flat/transform.js';\n/**\n * @type {import(\"../transform.js\").Transform}\n */\nvar tmpTransform = createTransform();\n/**\n * Lightweight, read-only, {@link module:ol/Feature~Feature} and {@link module:ol/geom/Geometry~Geometry} like\n * structure, optimized for vector tile rendering and styling. Geometry access\n * through the API is limited to getting the type and extent of the geometry.\n */\nvar RenderFeature = /** @class */ (function () {\n /**\n * @param {import(\"../geom/Geometry.js\").Type} type Geometry type.\n * @param {Array} flatCoordinates Flat coordinates. These always need\n * to be right-handed for polygons.\n * @param {Array|Array>} ends Ends or Endss.\n * @param {Object} properties Properties.\n * @param {number|string|undefined} id Feature id.\n */\n function RenderFeature(type, flatCoordinates, ends, properties, id) {\n /**\n * @type {import(\"../style/Style.js\").StyleFunction|undefined}\n */\n this.styleFunction;\n /**\n * @private\n * @type {import(\"../extent.js\").Extent|undefined}\n */\n this.extent_;\n /**\n * @private\n * @type {number|string|undefined}\n */\n this.id_ = id;\n /**\n * @private\n * @type {import(\"../geom/Geometry.js\").Type}\n */\n this.type_ = type;\n /**\n * @private\n * @type {Array}\n */\n this.flatCoordinates_ = flatCoordinates;\n /**\n * @private\n * @type {Array}\n */\n this.flatInteriorPoints_ = null;\n /**\n * @private\n * @type {Array}\n */\n this.flatMidpoints_ = null;\n /**\n * @private\n * @type {Array|Array>}\n */\n this.ends_ = ends;\n /**\n * @private\n * @type {Object}\n */\n this.properties_ = properties;\n }\n /**\n * Get a feature property by its key.\n * @param {string} key Key\n * @return {*} Value for the requested key.\n * @api\n */\n RenderFeature.prototype.get = function (key) {\n return this.properties_[key];\n };\n /**\n * Get the extent of this feature's geometry.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n RenderFeature.prototype.getExtent = function () {\n if (!this.extent_) {\n this.extent_ =\n this.type_ === 'Point'\n ? createOrUpdateFromCoordinate(this.flatCoordinates_)\n : createOrUpdateFromFlatCoordinates(this.flatCoordinates_, 0, this.flatCoordinates_.length, 2);\n }\n return this.extent_;\n };\n /**\n * @return {Array} Flat interior points.\n */\n RenderFeature.prototype.getFlatInteriorPoint = function () {\n if (!this.flatInteriorPoints_) {\n var flatCenter = getCenter(this.getExtent());\n this.flatInteriorPoints_ = getInteriorPointOfArray(this.flatCoordinates_, 0, \n /** @type {Array} */ (this.ends_), 2, flatCenter, 0);\n }\n return this.flatInteriorPoints_;\n };\n /**\n * @return {Array} Flat interior points.\n */\n RenderFeature.prototype.getFlatInteriorPoints = function () {\n if (!this.flatInteriorPoints_) {\n var flatCenters = linearRingssCenter(this.flatCoordinates_, 0, \n /** @type {Array>} */ (this.ends_), 2);\n this.flatInteriorPoints_ = getInteriorPointsOfMultiArray(this.flatCoordinates_, 0, \n /** @type {Array>} */ (this.ends_), 2, flatCenters);\n }\n return this.flatInteriorPoints_;\n };\n /**\n * @return {Array} Flat midpoint.\n */\n RenderFeature.prototype.getFlatMidpoint = function () {\n if (!this.flatMidpoints_) {\n this.flatMidpoints_ = interpolatePoint(this.flatCoordinates_, 0, this.flatCoordinates_.length, 2, 0.5);\n }\n return this.flatMidpoints_;\n };\n /**\n * @return {Array} Flat midpoints.\n */\n RenderFeature.prototype.getFlatMidpoints = function () {\n if (!this.flatMidpoints_) {\n this.flatMidpoints_ = [];\n var flatCoordinates = this.flatCoordinates_;\n var offset = 0;\n var ends = /** @type {Array} */ (this.ends_);\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var midpoint = interpolatePoint(flatCoordinates, offset, end, 2, 0.5);\n extend(this.flatMidpoints_, midpoint);\n offset = end;\n }\n }\n return this.flatMidpoints_;\n };\n /**\n * Get the feature identifier. This is a stable identifier for the feature and\n * is set when reading data from a remote source.\n * @return {number|string|undefined} Id.\n * @api\n */\n RenderFeature.prototype.getId = function () {\n return this.id_;\n };\n /**\n * @return {Array} Flat coordinates.\n */\n RenderFeature.prototype.getOrientedFlatCoordinates = function () {\n return this.flatCoordinates_;\n };\n /**\n * For API compatibility with {@link module:ol/Feature~Feature}, this method is useful when\n * determining the geometry type in style function (see {@link #getType}).\n * @return {RenderFeature} Feature.\n * @api\n */\n RenderFeature.prototype.getGeometry = function () {\n return this;\n };\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {RenderFeature} Simplified geometry.\n */\n RenderFeature.prototype.getSimplifiedGeometry = function (squaredTolerance) {\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 {RenderFeature} Simplified geometry.\n */\n RenderFeature.prototype.simplifyTransformed = function (squaredTolerance, opt_transform) {\n return this;\n };\n /**\n * Get the feature properties.\n * @return {Object} Feature properties.\n * @api\n */\n RenderFeature.prototype.getProperties = function () {\n return this.properties_;\n };\n /**\n * @return {number} Stride.\n */\n RenderFeature.prototype.getStride = function () {\n return 2;\n };\n /**\n * @return {import('../style/Style.js').StyleFunction|undefined} Style\n */\n RenderFeature.prototype.getStyleFunction = function () {\n return this.styleFunction;\n };\n /**\n * Get the type of this feature's geometry.\n * @return {import(\"../geom/Geometry.js\").Type} Geometry type.\n * @api\n */\n RenderFeature.prototype.getType = function () {\n return this.type_;\n };\n /**\n * Transform geometry coordinates from tile pixel space to projected.\n *\n * @param {import(\"../proj.js\").ProjectionLike} projection The data projection\n */\n RenderFeature.prototype.transform = function (projection) {\n projection = getProjection(projection);\n var pixelExtent = projection.getExtent();\n var projectedExtent = projection.getWorldExtent();\n if (pixelExtent && projectedExtent) {\n var scale = getHeight(projectedExtent) / getHeight(pixelExtent);\n composeTransform(tmpTransform, projectedExtent[0], projectedExtent[3], scale, -scale, 0, 0, 0);\n transform2D(this.flatCoordinates_, 0, this.flatCoordinates_.length, 2, tmpTransform, this.flatCoordinates_);\n }\n };\n /**\n * @return {Array|Array>} Ends or endss.\n */\n RenderFeature.prototype.getEnds = function () {\n return this.ends_;\n };\n return RenderFeature;\n}());\nRenderFeature.prototype.getEndss = RenderFeature.prototype.getEnds;\n/**\n * @return {Array} Flat coordinates.\n */\nRenderFeature.prototype.getFlatCoordinates =\n RenderFeature.prototype.getOrientedFlatCoordinates;\n/**\n * Create a geometry from an `ol/render/Feature`\n * @param {RenderFeature} renderFeature\n * Render Feature\n * @return {Point|MultiPoint|LineString|MultiLineString|Polygon|MultiPolygon}\n * New geometry instance.\n * @api\n */\nexport function toGeometry(renderFeature) {\n var geometryType = renderFeature.getType();\n switch (geometryType) {\n case 'Point':\n return new Point(renderFeature.getFlatCoordinates());\n case 'MultiPoint':\n return new MultiPoint(renderFeature.getFlatCoordinates(), GeometryLayout.XY);\n case 'LineString':\n return new LineString(renderFeature.getFlatCoordinates(), GeometryLayout.XY);\n case 'MultiLineString':\n return new MultiLineString(renderFeature.getFlatCoordinates(), GeometryLayout.XY, \n /** @type {Array} */ (renderFeature.getEnds()));\n case 'Polygon':\n var flatCoordinates = renderFeature.getFlatCoordinates();\n var ends = /** @type {Array} */ (renderFeature.getEnds());\n var endss = inflateEnds(flatCoordinates, ends);\n return endss.length > 1\n ? new MultiPolygon(flatCoordinates, GeometryLayout.XY, endss)\n : new Polygon(flatCoordinates, GeometryLayout.XY, ends);\n default:\n throw new Error('Invalid geometry type:' + geometryType);\n }\n}\n/**\n * Create an `ol/Feature` from an `ol/render/Feature`\n * @param {RenderFeature} renderFeature RenderFeature\n * @param {string} [opt_geometryName='geometry'] Geometry name to use\n * when creating the Feature.\n * @return {Feature} Newly constructed `ol/Feature` with properties,\n * geometry, and id copied over.\n * @api\n */\nexport function toFeature(renderFeature, opt_geometryName) {\n var id = renderFeature.getId();\n var geometry = toGeometry(renderFeature);\n var properties = renderFeature.getProperties();\n var feature = new Feature();\n if (opt_geometryName !== undefined) {\n feature.setGeometryName(opt_geometryName);\n }\n feature.setGeometry(geometry);\n if (id !== undefined) {\n feature.setId(id);\n }\n feature.setProperties(properties, true);\n return feature;\n}\nexport default RenderFeature;\n//# sourceMappingURL=Feature.js.map","/**\n * @module ol/geom/flat/straightchunk\n */\n/**\n * @param {number} maxAngle Maximum acceptable angle delta between segments.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {Array} Start and end of the first suitable chunk of the\n * given `flatCoordinates`.\n */\nexport function matchingChunk(maxAngle, flatCoordinates, offset, end, stride) {\n var chunkStart = offset;\n var chunkEnd = offset;\n var chunkM = 0;\n var m = 0;\n var start = offset;\n var acos, i, m12, m23, x1, y1, x12, y12, x23, y23;\n for (i = offset; i < end; i += stride) {\n var x2 = flatCoordinates[i];\n var y2 = flatCoordinates[i + 1];\n if (x1 !== undefined) {\n x23 = x2 - x1;\n y23 = y2 - y1;\n m23 = Math.sqrt(x23 * x23 + y23 * y23);\n if (x12 !== undefined) {\n m += m12;\n acos = Math.acos((x12 * x23 + y12 * y23) / (m12 * m23));\n if (acos > maxAngle) {\n if (m > chunkM) {\n chunkM = m;\n chunkStart = start;\n chunkEnd = i;\n }\n m = 0;\n start = i - stride;\n }\n }\n m12 = m23;\n x12 = x23;\n y12 = y23;\n }\n x1 = x2;\n y1 = y2;\n }\n m += m23;\n return m > chunkM ? [start, i] : [chunkStart, chunkEnd];\n}\n//# sourceMappingURL=straightchunk.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/render/canvas/TextBuilder\n */\nimport CanvasBuilder from './Builder.js';\nimport CanvasInstruction from './Instruction.js';\nimport TextPlacement from '../../style/TextPlacement.js';\nimport { asColorLike } from '../../colorlike.js';\nimport { defaultFillStyle, defaultFont, defaultLineCap, defaultLineDash, defaultLineDashOffset, defaultLineJoin, defaultLineWidth, defaultMiterLimit, defaultPadding, defaultStrokeStyle, defaultTextAlign, defaultTextBaseline, registerFont, } from '../canvas.js';\nimport { getUid } from '../../util.js';\nimport { intersects } from '../../extent.js';\nimport { matchingChunk } from '../../geom/flat/straightchunk.js';\n/**\n * @const\n * @enum {number}\n */\nexport var TEXT_ALIGN = {\n 'left': 0,\n 'end': 0,\n 'center': 0.5,\n 'right': 1,\n 'start': 1,\n 'top': 0,\n 'middle': 0.5,\n 'hanging': 0.2,\n 'alphabetic': 0.8,\n 'ideographic': 0.8,\n 'bottom': 1,\n};\nvar CanvasTextBuilder = /** @class */ (function (_super) {\n __extends(CanvasTextBuilder, _super);\n /**\n * @param {number} tolerance Tolerance.\n * @param {import(\"../../extent.js\").Extent} maxExtent Maximum extent.\n * @param {number} resolution Resolution.\n * @param {number} pixelRatio Pixel ratio.\n */\n function CanvasTextBuilder(tolerance, maxExtent, resolution, pixelRatio) {\n var _this = _super.call(this, tolerance, maxExtent, resolution, pixelRatio) || this;\n /**\n * @private\n * @type {Array}\n */\n _this.labels_ = null;\n /**\n * @private\n * @type {string|Array}\n */\n _this.text_ = '';\n /**\n * @private\n * @type {number}\n */\n _this.textOffsetX_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.textOffsetY_ = 0;\n /**\n * @private\n * @type {boolean|undefined}\n */\n _this.textRotateWithView_ = undefined;\n /**\n * @private\n * @type {number}\n */\n _this.textRotation_ = 0;\n /**\n * @private\n * @type {?import(\"../canvas.js\").FillState}\n */\n _this.textFillState_ = null;\n /**\n * @type {!Object}\n */\n _this.fillStates = {};\n /**\n * @private\n * @type {?import(\"../canvas.js\").StrokeState}\n */\n _this.textStrokeState_ = null;\n /**\n * @type {!Object}\n */\n _this.strokeStates = {};\n /**\n * @private\n * @type {import(\"../canvas.js\").TextState}\n */\n _this.textState_ = /** @type {import(\"../canvas.js\").TextState} */ ({});\n /**\n * @type {!Object}\n */\n _this.textStates = {};\n /**\n * @private\n * @type {string}\n */\n _this.textKey_ = '';\n /**\n * @private\n * @type {string}\n */\n _this.fillKey_ = '';\n /**\n * @private\n * @type {string}\n */\n _this.strokeKey_ = '';\n /**\n * Data shared with an image builder for combined decluttering.\n * @private\n * @type {import(\"../canvas.js\").DeclutterImageWithText}\n */\n _this.declutterImageWithText_ = undefined;\n return _this;\n }\n /**\n * @return {import(\"../canvas.js\").SerializableInstructions} the serializable instructions.\n */\n CanvasTextBuilder.prototype.finish = function () {\n var instructions = _super.prototype.finish.call(this);\n instructions.textStates = this.textStates;\n instructions.fillStates = this.fillStates;\n instructions.strokeStates = this.strokeStates;\n return instructions;\n };\n /**\n * @param {import(\"../../geom/SimpleGeometry.js\").default|import(\"../Feature.js\").default} geometry Geometry.\n * @param {import(\"../../Feature.js\").FeatureLike} feature Feature.\n */\n CanvasTextBuilder.prototype.drawText = function (geometry, feature) {\n var fillState = this.textFillState_;\n var strokeState = this.textStrokeState_;\n var textState = this.textState_;\n if (this.text_ === '' || !textState || (!fillState && !strokeState)) {\n return;\n }\n var coordinates = this.coordinates;\n var begin = coordinates.length;\n var geometryType = geometry.getType();\n var flatCoordinates = null;\n var stride = geometry.getStride();\n if (textState.placement === TextPlacement.LINE &&\n (geometryType == 'LineString' ||\n geometryType == 'MultiLineString' ||\n geometryType == 'Polygon' ||\n geometryType == 'MultiPolygon')) {\n if (!intersects(this.getBufferedMaxExtent(), geometry.getExtent())) {\n return;\n }\n var ends = void 0;\n flatCoordinates = geometry.getFlatCoordinates();\n if (geometryType == 'LineString') {\n ends = [flatCoordinates.length];\n }\n else if (geometryType == 'MultiLineString') {\n ends = /** @type {import(\"../../geom/MultiLineString.js\").default} */ (geometry).getEnds();\n }\n else if (geometryType == 'Polygon') {\n ends = /** @type {import(\"../../geom/Polygon.js\").default} */ (geometry)\n .getEnds()\n .slice(0, 1);\n }\n else if (geometryType == 'MultiPolygon') {\n var endss = \n /** @type {import(\"../../geom/MultiPolygon.js\").default} */ (geometry).getEndss();\n ends = [];\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n ends.push(endss[i][0]);\n }\n }\n this.beginGeometry(geometry, feature);\n var textAlign = textState.textAlign;\n // No `justify` support for line placement.\n var flatOffset = 0;\n var flatEnd = void 0;\n for (var o = 0, oo = ends.length; o < oo; ++o) {\n if (textAlign == undefined) {\n var range = matchingChunk(textState.maxAngle, flatCoordinates, flatOffset, ends[o], stride);\n flatOffset = range[0];\n flatEnd = range[1];\n }\n else {\n flatEnd = ends[o];\n }\n for (var i = flatOffset; i < flatEnd; i += stride) {\n coordinates.push(flatCoordinates[i], flatCoordinates[i + 1]);\n }\n var end = coordinates.length;\n flatOffset = ends[o];\n this.drawChars_(begin, end);\n begin = end;\n }\n this.endGeometry(feature);\n }\n else {\n var geometryWidths = textState.overflow ? null : [];\n switch (geometryType) {\n case 'Point':\n case 'MultiPoint':\n flatCoordinates =\n /** @type {import(\"../../geom/MultiPoint.js\").default} */ (geometry).getFlatCoordinates();\n break;\n case 'LineString':\n flatCoordinates =\n /** @type {import(\"../../geom/LineString.js\").default} */ (geometry).getFlatMidpoint();\n break;\n case 'Circle':\n flatCoordinates =\n /** @type {import(\"../../geom/Circle.js\").default} */ (geometry).getCenter();\n break;\n case 'MultiLineString':\n flatCoordinates =\n /** @type {import(\"../../geom/MultiLineString.js\").default} */ (geometry).getFlatMidpoints();\n stride = 2;\n break;\n case 'Polygon':\n flatCoordinates =\n /** @type {import(\"../../geom/Polygon.js\").default} */ (geometry).getFlatInteriorPoint();\n if (!textState.overflow) {\n geometryWidths.push(flatCoordinates[2] / this.resolution);\n }\n stride = 3;\n break;\n case 'MultiPolygon':\n var interiorPoints = \n /** @type {import(\"../../geom/MultiPolygon.js\").default} */ (geometry).getFlatInteriorPoints();\n flatCoordinates = [];\n for (var i = 0, ii = interiorPoints.length; i < ii; i += 3) {\n if (!textState.overflow) {\n geometryWidths.push(interiorPoints[i + 2] / this.resolution);\n }\n flatCoordinates.push(interiorPoints[i], interiorPoints[i + 1]);\n }\n if (flatCoordinates.length === 0) {\n return;\n }\n stride = 2;\n break;\n default:\n }\n var end = this.appendFlatPointCoordinates(flatCoordinates, stride);\n if (end === begin) {\n return;\n }\n if (geometryWidths &&\n (end - begin) / 2 !== flatCoordinates.length / stride) {\n var beg_1 = begin / 2;\n geometryWidths = geometryWidths.filter(function (w, i) {\n var keep = coordinates[(beg_1 + i) * 2] === flatCoordinates[i * stride] &&\n coordinates[(beg_1 + i) * 2 + 1] === flatCoordinates[i * stride + 1];\n if (!keep) {\n --beg_1;\n }\n return keep;\n });\n }\n this.saveTextStates_();\n if (textState.backgroundFill || textState.backgroundStroke) {\n this.setFillStrokeStyle(textState.backgroundFill, textState.backgroundStroke);\n if (textState.backgroundFill) {\n this.updateFillStyle(this.state, this.createFill);\n this.hitDetectionInstructions.push(this.createFill(this.state));\n }\n if (textState.backgroundStroke) {\n this.updateStrokeStyle(this.state, this.applyStroke);\n this.hitDetectionInstructions.push(this.createStroke(this.state));\n }\n }\n this.beginGeometry(geometry, feature);\n // adjust padding for negative scale\n var padding = textState.padding;\n if (padding != defaultPadding &&\n (textState.scale[0] < 0 || textState.scale[1] < 0)) {\n var p0 = textState.padding[0];\n var p1 = textState.padding[1];\n var p2 = textState.padding[2];\n var p3 = textState.padding[3];\n if (textState.scale[0] < 0) {\n p1 = -p1;\n p3 = -p3;\n }\n if (textState.scale[1] < 0) {\n p0 = -p0;\n p2 = -p2;\n }\n padding = [p0, p1, p2, p3];\n }\n // The image is unknown at this stage so we pass null; it will be computed at render time.\n // For clarity, we pass NaN for offsetX, offsetY, width and height, which will be computed at\n // render time.\n var pixelRatio_1 = this.pixelRatio;\n this.instructions.push([\n CanvasInstruction.DRAW_IMAGE,\n begin,\n end,\n null,\n NaN,\n NaN,\n NaN,\n 1,\n 0,\n 0,\n this.textRotateWithView_,\n this.textRotation_,\n [1, 1],\n NaN,\n undefined,\n this.declutterImageWithText_,\n padding == defaultPadding\n ? defaultPadding\n : padding.map(function (p) {\n return p * pixelRatio_1;\n }),\n !!textState.backgroundFill,\n !!textState.backgroundStroke,\n this.text_,\n this.textKey_,\n this.strokeKey_,\n this.fillKey_,\n this.textOffsetX_,\n this.textOffsetY_,\n geometryWidths,\n ]);\n var scale = 1 / pixelRatio_1;\n this.hitDetectionInstructions.push([\n CanvasInstruction.DRAW_IMAGE,\n begin,\n end,\n null,\n NaN,\n NaN,\n NaN,\n 1,\n 0,\n 0,\n this.textRotateWithView_,\n this.textRotation_,\n [scale, scale],\n NaN,\n undefined,\n this.declutterImageWithText_,\n padding,\n !!textState.backgroundFill,\n !!textState.backgroundStroke,\n this.text_,\n this.textKey_,\n this.strokeKey_,\n this.fillKey_,\n this.textOffsetX_,\n this.textOffsetY_,\n geometryWidths,\n ]);\n this.endGeometry(feature);\n }\n };\n /**\n * @private\n */\n CanvasTextBuilder.prototype.saveTextStates_ = function () {\n var strokeState = this.textStrokeState_;\n var textState = this.textState_;\n var fillState = this.textFillState_;\n var strokeKey = this.strokeKey_;\n if (strokeState) {\n if (!(strokeKey in this.strokeStates)) {\n this.strokeStates[strokeKey] = {\n strokeStyle: strokeState.strokeStyle,\n lineCap: strokeState.lineCap,\n lineDashOffset: strokeState.lineDashOffset,\n lineWidth: strokeState.lineWidth,\n lineJoin: strokeState.lineJoin,\n miterLimit: strokeState.miterLimit,\n lineDash: strokeState.lineDash,\n };\n }\n }\n var textKey = this.textKey_;\n if (!(textKey in this.textStates)) {\n this.textStates[textKey] = {\n font: textState.font,\n textAlign: textState.textAlign || defaultTextAlign,\n justify: textState.justify,\n textBaseline: textState.textBaseline || defaultTextBaseline,\n scale: textState.scale,\n };\n }\n var fillKey = this.fillKey_;\n if (fillState) {\n if (!(fillKey in this.fillStates)) {\n this.fillStates[fillKey] = {\n fillStyle: fillState.fillStyle,\n };\n }\n }\n };\n /**\n * @private\n * @param {number} begin Begin.\n * @param {number} end End.\n */\n CanvasTextBuilder.prototype.drawChars_ = function (begin, end) {\n var strokeState = this.textStrokeState_;\n var textState = this.textState_;\n var strokeKey = this.strokeKey_;\n var textKey = this.textKey_;\n var fillKey = this.fillKey_;\n this.saveTextStates_();\n var pixelRatio = this.pixelRatio;\n var baseline = TEXT_ALIGN[textState.textBaseline];\n var offsetY = this.textOffsetY_ * pixelRatio;\n var text = this.text_;\n var strokeWidth = strokeState\n ? (strokeState.lineWidth * Math.abs(textState.scale[0])) / 2\n : 0;\n this.instructions.push([\n CanvasInstruction.DRAW_CHARS,\n begin,\n end,\n baseline,\n textState.overflow,\n fillKey,\n textState.maxAngle,\n pixelRatio,\n offsetY,\n strokeKey,\n strokeWidth * pixelRatio,\n text,\n textKey,\n 1,\n ]);\n this.hitDetectionInstructions.push([\n CanvasInstruction.DRAW_CHARS,\n begin,\n end,\n baseline,\n textState.overflow,\n fillKey,\n textState.maxAngle,\n 1,\n offsetY,\n strokeKey,\n strokeWidth,\n text,\n textKey,\n 1 / pixelRatio,\n ]);\n };\n /**\n * @param {import(\"../../style/Text.js\").default} textStyle Text style.\n * @param {Object} [opt_sharedData] Shared data.\n */\n CanvasTextBuilder.prototype.setTextStyle = function (textStyle, opt_sharedData) {\n var textState, fillState, strokeState;\n if (!textStyle) {\n this.text_ = '';\n }\n else {\n var textFillStyle = textStyle.getFill();\n if (!textFillStyle) {\n fillState = null;\n this.textFillState_ = fillState;\n }\n else {\n fillState = this.textFillState_;\n if (!fillState) {\n fillState = /** @type {import(\"../canvas.js\").FillState} */ ({});\n this.textFillState_ = fillState;\n }\n fillState.fillStyle = asColorLike(textFillStyle.getColor() || defaultFillStyle);\n }\n var textStrokeStyle = textStyle.getStroke();\n if (!textStrokeStyle) {\n strokeState = null;\n this.textStrokeState_ = strokeState;\n }\n else {\n strokeState = this.textStrokeState_;\n if (!strokeState) {\n strokeState = /** @type {import(\"../canvas.js\").StrokeState} */ ({});\n this.textStrokeState_ = strokeState;\n }\n var lineDash = textStrokeStyle.getLineDash();\n var lineDashOffset = textStrokeStyle.getLineDashOffset();\n var lineWidth = textStrokeStyle.getWidth();\n var miterLimit = textStrokeStyle.getMiterLimit();\n strokeState.lineCap = textStrokeStyle.getLineCap() || defaultLineCap;\n strokeState.lineDash = lineDash ? lineDash.slice() : defaultLineDash;\n strokeState.lineDashOffset =\n lineDashOffset === undefined ? defaultLineDashOffset : lineDashOffset;\n strokeState.lineJoin = textStrokeStyle.getLineJoin() || defaultLineJoin;\n strokeState.lineWidth =\n lineWidth === undefined ? defaultLineWidth : lineWidth;\n strokeState.miterLimit =\n miterLimit === undefined ? defaultMiterLimit : miterLimit;\n strokeState.strokeStyle = asColorLike(textStrokeStyle.getColor() || defaultStrokeStyle);\n }\n textState = this.textState_;\n var font = textStyle.getFont() || defaultFont;\n registerFont(font);\n var textScale = textStyle.getScaleArray();\n textState.overflow = textStyle.getOverflow();\n textState.font = font;\n textState.maxAngle = textStyle.getMaxAngle();\n textState.placement = textStyle.getPlacement();\n textState.textAlign = textStyle.getTextAlign();\n textState.justify = textStyle.getJustify();\n textState.textBaseline =\n textStyle.getTextBaseline() || defaultTextBaseline;\n textState.backgroundFill = textStyle.getBackgroundFill();\n textState.backgroundStroke = textStyle.getBackgroundStroke();\n textState.padding = textStyle.getPadding() || defaultPadding;\n textState.scale = textScale === undefined ? [1, 1] : textScale;\n var textOffsetX = textStyle.getOffsetX();\n var textOffsetY = textStyle.getOffsetY();\n var textRotateWithView = textStyle.getRotateWithView();\n var textRotation = textStyle.getRotation();\n this.text_ = textStyle.getText() || '';\n this.textOffsetX_ = textOffsetX === undefined ? 0 : textOffsetX;\n this.textOffsetY_ = textOffsetY === undefined ? 0 : textOffsetY;\n this.textRotateWithView_ =\n textRotateWithView === undefined ? false : textRotateWithView;\n this.textRotation_ = textRotation === undefined ? 0 : textRotation;\n this.strokeKey_ = strokeState\n ? (typeof strokeState.strokeStyle == 'string'\n ? strokeState.strokeStyle\n : getUid(strokeState.strokeStyle)) +\n strokeState.lineCap +\n strokeState.lineDashOffset +\n '|' +\n strokeState.lineWidth +\n strokeState.lineJoin +\n strokeState.miterLimit +\n '[' +\n strokeState.lineDash.join() +\n ']'\n : '';\n this.textKey_ =\n textState.font +\n textState.scale +\n (textState.textAlign || '?') +\n (textState.justify || '?') +\n (textState.textBaseline || '?');\n this.fillKey_ = fillState\n ? typeof fillState.fillStyle == 'string'\n ? fillState.fillStyle\n : '|' + getUid(fillState.fillStyle)\n : '';\n }\n this.declutterImageWithText_ = opt_sharedData;\n };\n return CanvasTextBuilder;\n}(CanvasBuilder));\nexport default CanvasTextBuilder;\n//# sourceMappingURL=TextBuilder.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 var isString = typeof event === 'string';\n var type = isString ? event : event.type;\n var listeners = this.listeners_ && this.listeners_[type];\n if (!listeners) {\n return;\n }\n var evt = isString ? new Event(event) : /** @type {Event} */ (event);\n if (!evt.target) {\n evt.target = this.eventTarget_ || this;\n }\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 var propagate;\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 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 * 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/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.15.1';\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/renderer/Layer\n */\nimport EventType from '../events/EventType.js';\nimport ImageState from '../ImageState.js';\nimport Observable from '../Observable.js';\nimport { abstract } from '../util.js';\n/**\n * @template {import(\"../layer/Layer.js\").default} LayerType\n */\nvar LayerRenderer = /** @class */ (function (_super) {\n __extends(LayerRenderer, _super);\n /**\n * @param {LayerType} layer Layer.\n */\n function LayerRenderer(layer) {\n var _this = _super.call(this) || this;\n /**\n * The renderer is initialized and ready to render.\n * @type {boolean}\n */\n _this.ready = true;\n /** @private */\n _this.boundHandleImageChange_ = _this.handleImageChange_.bind(_this);\n /**\n * @protected\n * @type {LayerType}\n */\n _this.layer_ = layer;\n /**\n * @type {import(\"../render/canvas/ExecutorGroup\").default}\n */\n _this.declutterExecutorGroup = null;\n return _this;\n }\n /**\n * Asynchronous layer level hit detection.\n * @param {import(\"../pixel.js\").Pixel} pixel Pixel.\n * @return {Promise>} Promise that resolves with\n * an array of features.\n */\n LayerRenderer.prototype.getFeatures = function (pixel) {\n return abstract();\n };\n /**\n * @param {import(\"../pixel.js\").Pixel} pixel Pixel.\n * @return {Uint8ClampedArray|Uint8Array|Float32Array|DataView|null} Pixel data.\n */\n LayerRenderer.prototype.getData = function (pixel) {\n return null;\n };\n /**\n * Determine whether render should be called.\n * @abstract\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @return {boolean} Layer is ready to be rendered.\n */\n LayerRenderer.prototype.prepareFrame = function (frameState) {\n return abstract();\n };\n /**\n * Render the layer.\n * @abstract\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {HTMLElement} target Target that may be used to render content to.\n * @return {HTMLElement} The rendered element.\n */\n LayerRenderer.prototype.renderFrame = function (frameState, target) {\n return abstract();\n };\n /**\n * @param {Object>} tiles Lookup of loaded tiles by zoom level.\n * @param {number} zoom Zoom level.\n * @param {import(\"../Tile.js\").default} tile Tile.\n * @return {boolean|void} If `false`, the tile will not be considered loaded.\n */\n LayerRenderer.prototype.loadedTileCallback = function (tiles, zoom, tile) {\n if (!tiles[zoom]) {\n tiles[zoom] = {};\n }\n tiles[zoom][tile.tileCoord.toString()] = tile;\n return undefined;\n };\n /**\n * Create a function that adds loaded tiles to the tile lookup.\n * @param {import(\"../source/Tile.js\").default} source Tile source.\n * @param {import(\"../proj/Projection.js\").default} projection Projection of the tiles.\n * @param {Object>} tiles Lookup of loaded tiles by zoom level.\n * @return {function(number, import(\"../TileRange.js\").default):boolean} A function that can be\n * called with a zoom level and a tile range to add loaded tiles to the lookup.\n * @protected\n */\n LayerRenderer.prototype.createLoadedTileFinder = function (source, projection, tiles) {\n return (\n /**\n * @param {number} zoom Zoom level.\n * @param {import(\"../TileRange.js\").default} tileRange Tile range.\n * @return {boolean} The tile range is fully loaded.\n * @this {LayerRenderer}\n */\n function (zoom, tileRange) {\n var callback = this.loadedTileCallback.bind(this, tiles, zoom);\n return source.forEachLoadedTile(projection, zoom, tileRange, callback);\n }.bind(this));\n };\n /**\n * @abstract\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {number} hitTolerance Hit tolerance in pixels.\n * @param {import(\"./vector.js\").FeatureCallback} callback Feature callback.\n * @param {Array>} matches The hit detected matches with tolerance.\n * @return {T|undefined} Callback result.\n * @template T\n */\n LayerRenderer.prototype.forEachFeatureAtCoordinate = function (coordinate, frameState, hitTolerance, callback, matches) {\n return undefined;\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 * @return {Uint8ClampedArray|Uint8Array} The result. If there is no data at the pixel\n * location, null will be returned. If there is data, but pixel values cannot be\n * returned, and empty array will be returned.\n */\n LayerRenderer.prototype.getDataAtPixel = function (pixel, frameState, hitTolerance) {\n return null;\n };\n /**\n * @return {LayerType} Layer.\n */\n LayerRenderer.prototype.getLayer = function () {\n return this.layer_;\n };\n /**\n * Perform action necessary to get the layer rendered after new fonts have loaded\n * @abstract\n */\n LayerRenderer.prototype.handleFontsChanged = function () { };\n /**\n * Handle changes in image state.\n * @param {import(\"../events/Event.js\").default} event Image change event.\n * @private\n */\n LayerRenderer.prototype.handleImageChange_ = function (event) {\n var image = /** @type {import(\"../Image.js\").default} */ (event.target);\n if (image.getState() === ImageState.LOADED) {\n this.renderIfReadyAndVisible();\n }\n };\n /**\n * Load the image if not already loaded, and register the image change\n * listener if needed.\n * @param {import(\"../ImageBase.js\").default} image Image.\n * @return {boolean} `true` if the image is already loaded, `false` otherwise.\n * @protected\n */\n LayerRenderer.prototype.loadImage = function (image) {\n var imageState = image.getState();\n if (imageState != ImageState.LOADED && imageState != ImageState.ERROR) {\n image.addEventListener(EventType.CHANGE, this.boundHandleImageChange_);\n }\n if (imageState == ImageState.IDLE) {\n image.load();\n imageState = image.getState();\n }\n return imageState == ImageState.LOADED;\n };\n /**\n * @protected\n */\n LayerRenderer.prototype.renderIfReadyAndVisible = function () {\n var layer = this.getLayer();\n if (layer && layer.getVisible() && layer.getSourceState() === 'ready') {\n layer.changed();\n }\n };\n /**\n * Clean up.\n */\n LayerRenderer.prototype.disposeInternal = function () {\n delete this.layer_;\n _super.prototype.disposeInternal.call(this);\n };\n return LayerRenderer;\n}(Observable));\nexport default LayerRenderer;\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/canvas/Layer\n */\nimport LayerRenderer from '../Layer.js';\nimport RenderEvent from '../../render/Event.js';\nimport RenderEventType from '../../render/EventType.js';\nimport { apply as applyTransform, compose as composeTransform, create as createTransform, } from '../../transform.js';\nimport { asArray } from '../../color.js';\nimport { containsCoordinate, getBottomLeft, getBottomRight, getTopLeft, getTopRight, } from '../../extent.js';\nimport { createCanvasContext2D } from '../../dom.js';\nimport { equals } from '../../array.js';\n/**\n * @type {Array}\n */\nexport var canvasPool = [];\n/**\n * @type {CanvasRenderingContext2D}\n */\nvar pixelContext = null;\nfunction createPixelContext() {\n var canvas = document.createElement('canvas');\n canvas.width = 1;\n canvas.height = 1;\n pixelContext = canvas.getContext('2d');\n}\n/**\n * @abstract\n * @template {import(\"../../layer/Layer.js\").default} LayerType\n * @extends {LayerRenderer}\n */\nvar CanvasLayerRenderer = /** @class */ (function (_super) {\n __extends(CanvasLayerRenderer, _super);\n /**\n * @param {LayerType} layer Layer.\n */\n function CanvasLayerRenderer(layer) {\n var _this = _super.call(this, layer) || this;\n /**\n * @protected\n * @type {HTMLElement}\n */\n _this.container = null;\n /**\n * @protected\n * @type {number}\n */\n _this.renderedResolution;\n /**\n * A temporary transform. The values in this transform should only be used in a\n * function that sets the values.\n * @protected\n * @type {import(\"../../transform.js\").Transform}\n */\n _this.tempTransform = createTransform();\n /**\n * The transform for rendered pixels to viewport CSS pixels. This transform must\n * be set when rendering a frame and may be used by other functions after rendering.\n * @protected\n * @type {import(\"../../transform.js\").Transform}\n */\n _this.pixelTransform = createTransform();\n /**\n * The transform for viewport CSS pixels to rendered pixels. This transform must\n * be set when rendering a frame and may be used by other functions after rendering.\n * @protected\n * @type {import(\"../../transform.js\").Transform}\n */\n _this.inversePixelTransform = createTransform();\n /**\n * @type {CanvasRenderingContext2D}\n */\n _this.context = null;\n /**\n * @type {boolean}\n */\n _this.containerReused = false;\n /**\n * @private\n * @type {CanvasRenderingContext2D}\n */\n _this.pixelContext_ = null;\n /**\n * @protected\n * @type {import(\"../../PluggableMap.js\").FrameState|null}\n */\n _this.frameState = null;\n return _this;\n }\n /**\n * @param {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} image Image.\n * @param {number} col The column index.\n * @param {number} row The row index.\n * @return {Uint8ClampedArray|null} The image data.\n */\n CanvasLayerRenderer.prototype.getImageData = function (image, col, row) {\n if (!pixelContext) {\n createPixelContext();\n }\n pixelContext.clearRect(0, 0, 1, 1);\n var data;\n try {\n pixelContext.drawImage(image, col, row, 1, 1, 0, 0, 1, 1);\n data = pixelContext.getImageData(0, 0, 1, 1).data;\n }\n catch (err) {\n pixelContext = null;\n return null;\n }\n return data;\n };\n /**\n * @param {import('../../PluggableMap.js').FrameState} frameState Frame state.\n * @return {string} Background color.\n */\n CanvasLayerRenderer.prototype.getBackground = function (frameState) {\n var layer = this.getLayer();\n var background = layer.getBackground();\n if (typeof background === 'function') {\n background = background(frameState.viewState.resolution);\n }\n return background || undefined;\n };\n /**\n * Get a rendering container from an existing target, if compatible.\n * @param {HTMLElement} target Potential render target.\n * @param {string} transform CSS Transform.\n * @param {string} [opt_backgroundColor] Background color.\n */\n CanvasLayerRenderer.prototype.useContainer = function (target, transform, opt_backgroundColor) {\n var layerClassName = this.getLayer().getClassName();\n var container, context;\n if (target &&\n target.className === layerClassName &&\n (!opt_backgroundColor ||\n (target &&\n target.style.backgroundColor &&\n equals(asArray(target.style.backgroundColor), asArray(opt_backgroundColor))))) {\n var canvas = target.firstElementChild;\n if (canvas instanceof HTMLCanvasElement) {\n context = canvas.getContext('2d');\n }\n }\n if (context && context.canvas.style.transform === transform) {\n // Container of the previous layer renderer can be used.\n this.container = target;\n this.context = context;\n this.containerReused = true;\n }\n else if (this.containerReused) {\n // Previously reused container cannot be used any more.\n this.container = null;\n this.context = null;\n this.containerReused = false;\n }\n if (!this.container) {\n container = document.createElement('div');\n container.className = layerClassName;\n var style = container.style;\n style.position = 'absolute';\n style.width = '100%';\n style.height = '100%';\n context = createCanvasContext2D();\n var canvas = context.canvas;\n container.appendChild(canvas);\n style = canvas.style;\n style.position = 'absolute';\n style.left = '0';\n style.transformOrigin = 'top left';\n this.container = container;\n this.context = context;\n }\n if (!this.containerReused &&\n opt_backgroundColor &&\n !this.container.style.backgroundColor) {\n this.container.style.backgroundColor = opt_backgroundColor;\n }\n };\n /**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {import(\"../../extent.js\").Extent} extent Clip extent.\n * @protected\n */\n CanvasLayerRenderer.prototype.clipUnrotated = function (context, frameState, extent) {\n var topLeft = getTopLeft(extent);\n var topRight = getTopRight(extent);\n var bottomRight = getBottomRight(extent);\n var bottomLeft = getBottomLeft(extent);\n applyTransform(frameState.coordinateToPixelTransform, topLeft);\n applyTransform(frameState.coordinateToPixelTransform, topRight);\n applyTransform(frameState.coordinateToPixelTransform, bottomRight);\n applyTransform(frameState.coordinateToPixelTransform, bottomLeft);\n var inverted = this.inversePixelTransform;\n applyTransform(inverted, topLeft);\n applyTransform(inverted, topRight);\n applyTransform(inverted, bottomRight);\n applyTransform(inverted, bottomLeft);\n context.save();\n context.beginPath();\n context.moveTo(Math.round(topLeft[0]), Math.round(topLeft[1]));\n context.lineTo(Math.round(topRight[0]), Math.round(topRight[1]));\n context.lineTo(Math.round(bottomRight[0]), Math.round(bottomRight[1]));\n context.lineTo(Math.round(bottomLeft[0]), Math.round(bottomLeft[1]));\n context.clip();\n };\n /**\n * @param {import(\"../../render/EventType.js\").default} type Event type.\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @private\n */\n CanvasLayerRenderer.prototype.dispatchRenderEvent_ = function (type, context, frameState) {\n var layer = this.getLayer();\n if (layer.hasListener(type)) {\n var event_1 = new RenderEvent(type, this.inversePixelTransform, frameState, context);\n layer.dispatchEvent(event_1);\n }\n };\n /**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @protected\n */\n CanvasLayerRenderer.prototype.preRender = function (context, frameState) {\n this.frameState = frameState;\n this.dispatchRenderEvent_(RenderEventType.PRERENDER, context, frameState);\n };\n /**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @protected\n */\n CanvasLayerRenderer.prototype.postRender = function (context, frameState) {\n this.dispatchRenderEvent_(RenderEventType.POSTRENDER, context, frameState);\n };\n /**\n * Creates a transform for rendering to an element that will be rotated after rendering.\n * @param {import(\"../../coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {number} pixelRatio Pixel ratio.\n * @param {number} width Width of the rendered element (in pixels).\n * @param {number} height Height of the rendered element (in pixels).\n * @param {number} offsetX Offset on the x-axis in view coordinates.\n * @protected\n * @return {!import(\"../../transform.js\").Transform} Transform.\n */\n CanvasLayerRenderer.prototype.getRenderTransform = function (center, resolution, rotation, pixelRatio, width, height, offsetX) {\n var dx1 = width / 2;\n var dy1 = height / 2;\n var sx = pixelRatio / resolution;\n var sy = -sx;\n var dx2 = -center[0] + offsetX;\n var dy2 = -center[1];\n return composeTransform(this.tempTransform, dx1, dy1, sx, sy, -rotation, dx2, dy2);\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 * @return {Uint8ClampedArray|Uint8Array} The result. If there is no data at the pixel\n * location, null will be returned. If there is data, but pixel values cannot be\n * returned, and empty array will be returned.\n */\n CanvasLayerRenderer.prototype.getDataAtPixel = function (pixel, frameState, hitTolerance) {\n var renderPixel = applyTransform(this.inversePixelTransform, pixel.slice());\n var context = this.context;\n var layer = this.getLayer();\n var layerExtent = layer.getExtent();\n if (layerExtent) {\n var renderCoordinate = applyTransform(frameState.pixelToCoordinateTransform, pixel.slice());\n /** get only data inside of the layer extent */\n if (!containsCoordinate(layerExtent, renderCoordinate)) {\n return null;\n }\n }\n var x = Math.round(renderPixel[0]);\n var y = Math.round(renderPixel[1]);\n var pixelContext = this.pixelContext_;\n if (!pixelContext) {\n var pixelCanvas = document.createElement('canvas');\n pixelCanvas.width = 1;\n pixelCanvas.height = 1;\n pixelContext = pixelCanvas.getContext('2d');\n this.pixelContext_ = pixelContext;\n }\n pixelContext.clearRect(0, 0, 1, 1);\n var data;\n try {\n pixelContext.drawImage(context.canvas, x, y, 1, 1, 0, 0, 1, 1);\n data = pixelContext.getImageData(0, 0, 1, 1).data;\n }\n catch (err) {\n if (err.name === 'SecurityError') {\n // tainted canvas, we assume there is data at the given pixel (although there might not be)\n this.pixelContext_ = null;\n return new Uint8Array();\n }\n return data;\n }\n if (data[3] === 0) {\n return null;\n }\n return data;\n };\n /**\n * Clean up.\n */\n CanvasLayerRenderer.prototype.disposeInternal = function () {\n delete this.frameState;\n _super.prototype.disposeInternal.call(this);\n };\n return CanvasLayerRenderer;\n}(LayerRenderer));\nexport default CanvasLayerRenderer;\n//# sourceMappingURL=Layer.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/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 { 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=import(\"../source/Source.js\").default]\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|null} [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 {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 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/Draw~Draw} 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=import(\"../source/Source.js\").default]\n * @template {import(\"../renderer/Layer.js\").default} [RendererType=import(\"../renderer/Layer.js\").default]\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 {RendererType}\n */\n _this.renderer_ = null;\n /**\n * @protected\n * @type {boolean}\n */\n _this.rendered = false;\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|null} 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 {SourceType|null} The source being rendered.\n */\n Layer.prototype.getRenderSource = function () {\n return this.getSource();\n };\n /**\n * @return {import(\"../source/Source.js\").State} Source state.\n */\n Layer.prototype.getSourceState = function () {\n var source = this.getSource();\n return !source ? '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 * @param {import(\"../pixel\").Pixel} pixel Pixel.\n * @return {Uint8ClampedArray|Uint8Array|Float32Array|DataView|null} Pixel data.\n */\n Layer.prototype.getData = function (pixel) {\n if (!this.renderer_ || !this.rendered) {\n return null;\n }\n return this.renderer_.getData(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 this.rendered = true;\n return layerRenderer.renderFrame(frameState, target);\n }\n };\n /**\n * Called when a layer is not visible during a map render.\n */\n Layer.prototype.unrender = function () {\n this.rendered = false;\n };\n /**\n * For use inside the library only.\n * @param {import(\"../PluggableMap.js\").default|null} map Map.\n */\n Layer.prototype.setMapInternal = function (map) {\n if (!map) {\n this.unrender();\n }\n this.set(LayerProperty.MAP, map);\n };\n /**\n * For use inside the library only.\n * @return {import(\"../PluggableMap.js\").default|null} Map.\n */\n Layer.prototype.getMapInternal = function () {\n return this.get(LayerProperty.MAP);\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|null} 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|null} 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 {RendererType|null} 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 {RendererType} 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 if (this.renderer_) {\n this.renderer_.dispose();\n delete this.renderer_;\n }\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","/**\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/events\n */\nimport { clear } from './obj.js';\n/**\n * Key to use with {@link module:ol/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/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|HTMLElement} [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 : '\\u203A';\n var collapseClassName = options.collapseClassName !== undefined\n ? options.collapseClassName\n : className + '-collapse';\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 : '\\u2013';\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","export default class Zone {\n\tconstructor({cartodb_id, description, layer, name, the_geom, the_geom_webmercator, coordinates}) {\n\t\tthis.cartodb_id = cartodb_id || 0;\n\t\tthis.description = description || \"\";\n\t\tthis.layer = layer || \"\";\n\t\tthis.name = name || \"type your zone here!\";\n\t\tthis.the_geom = the_geom ? the_geom : this.generateTheGeom({description, layer, name, coordinates});\n\t\tthis.the_geom_webmercator = the_geom_webmercator\n\t\t\t? the_geom_webmercator\n\t\t\t: this.generateTheGeom({description, layer, name, coordinates});\n\t}\n\n\t/**\n\t * Method to generete body for a geometry field cartodb\n\t * @param {String} description some descrition text\n\t * @param {String} layer code layer received from the service\n\t * @param {String} name name of the layer received from the service\n\t * @param {Array} coordinates array of geographic coordinate array with format like\n\t * [ [-91.23046875,45.460130637921],[-69.08203125,43.452918893555],[-88.2421875,32.694865977875],[-91.23046875,45.460130637921] ]\n\t * @returns Object\n\t */\n\tgenerateTheGeom({description, layer, name, coordinates}) {\n\t\treturn {\n\t\t\ttype: \"Polygon\",\n\t\t\tcoordinates: [coordinates || []],\n\t\t\tcrs: {type: name, properties: {name: \"EPSG:4326\"}},\n\t\t\tproperties: {\n\t\t\t\tdescription,\n\t\t\t\tlayer,\n\t\t\t\tname,\n\t\t\t},\n\t\t};\n\t}\n}\n","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/def/crs/EPSG/0/3857'),\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/def/crs/OGC/1.3/CRS84'),\n new EPSG4326Projection('http://www.opengis.net/gml/srs/epsg.xml#4326', 'neu'),\n new EPSG4326Projection('http://www.opengis.net/def/crs/EPSG/0/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/proj\n */\n/**\n * The ol/proj module stores:\n * * a list of {@link module:ol/proj/Projection~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~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~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 { equals, getWorldsAway } from './coordinate.js';\nimport { getDistance } from './sphere.js';\n/**\n * A projection as {@link module:ol/proj/Projection~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 };\nvar showCoordinateWarning = true;\n/**\n * @param {boolean} [opt_disable = true] Disable console info about `useGeographic()`\n */\nexport function disableCoordinateWarning(opt_disable) {\n var hide = opt_disable === undefined ? true : opt_disable;\n showCoordinateWarning = !hide;\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} 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|null} 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.slice(i, i + dimension));\n var pointLength = point.length;\n for (var j = 0, jj = dimension; j < jj; ++j) {\n output[i + j] = j >= pointLength ? input[i + j] : point[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}. If the transform function can only\n * transform less dimensions than the input coordinate, it is supposeed to return a coordinate\n * with only the length it can transform. The other dimensions will be taken unchanged from the\n * source.\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 disableCoordinateWarning();\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|null}\n */\nvar userProjection = null;\n/**\n * Set the projection for coordinates supplied from and returned by API methods.\n * This includes all API methods except for those interacting with tile grids.\n * @param {ProjectionLike} projection The user projection.\n * @api\n */\nexport function setUserProjection(projection) {\n userProjection = get(projection);\n}\n/**\n * Clear the user projection if set.\n * @api\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|null} The user projection (or null if not set).\n * @api\n */\nexport function getUserProjection() {\n return userProjection;\n}\n/**\n * Use geographic coordinates (WGS-84 datum) in API methods. This includes all API\n * methods except for those interacting with tile grids.\n * @api\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 if (showCoordinateWarning &&\n !equals(coordinate, [0, 0]) &&\n coordinate[0] >= -180 &&\n coordinate[0] <= 180 &&\n coordinate[1] >= -90 &&\n coordinate[1] <= 90) {\n showCoordinateWarning = false;\n // eslint-disable-next-line no-console\n console.warn('Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.');\n }\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 * Return the resolution in user projection units per pixel. If no user projection\n * is set, or source or user projection are missing units, the original resolution\n * is returned.\n * @param {number} resolution Resolution in input projection units per pixel.\n * @param {ProjectionLike} sourceProjection The input projection.\n * @return {number} Resolution in user projection units per pixel.\n */\nexport function toUserResolution(resolution, sourceProjection) {\n if (!userProjection) {\n return resolution;\n }\n var sourceUnits = get(sourceProjection).getUnits();\n var userUnits = userProjection.getUnits();\n return sourceUnits && userUnits\n ? (resolution * METERS_PER_UNIT[sourceUnits]) / METERS_PER_UNIT[userUnits]\n : resolution;\n}\n/**\n * Return the resolution in user projection units per pixel. If no user projection\n * is set, or source or user projection are missing units, the original resolution\n * is returned.\n * @param {number} resolution Resolution in user projection units per pixel.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {number} Resolution in destination projection units per pixel.\n */\nexport function fromUserResolution(resolution, destProjection) {\n if (!userProjection) {\n return resolution;\n }\n var sourceUnits = get(destProjection).getUnits();\n var userUnits = userProjection.getUnits();\n return sourceUnits && userUnits\n ? (resolution * METERS_PER_UNIT[userUnits]) / METERS_PER_UNIT[sourceUnits]\n : resolution;\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 transformed, worldsAway;\n if (sourceProj.canWrapX()) {\n var sourceExtent = sourceProj.getExtent();\n var sourceExtentWidth = getWidth(sourceExtent);\n coord = coord.slice(0);\n worldsAway = getWorldsAway(coord, sourceProj, sourceExtentWidth);\n if (worldsAway) {\n // Move x to the real world\n coord[0] = coord[0] - worldsAway * sourceExtentWidth;\n }\n coord[0] = clamp(coord[0], sourceExtent[0], sourceExtent[2]);\n coord[1] = clamp(coord[1], sourceExtent[1], sourceExtent[3]);\n transformed = transform(coord);\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","!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","/**\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/style/TextPlacement\n */\n/**\n * Text placement. One of `'point'`, `'line'`. Default is `'point'`. Note that\n * `'line'` requires the underlying geometry to be a {@link module:ol/geom/LineString~LineString},\n * {@link module:ol/geom/Polygon~Polygon}, {@link module:ol/geom/MultiLineString~MultiLineString} or\n * {@link module:ol/geom/MultiPolygon~MultiPolygon}.\n * @enum {string}\n */\nexport default {\n POINT: 'point',\n LINE: 'line',\n};\n//# sourceMappingURL=TextPlacement.js.map","/**\n * @module ol/tilecoord\n */\n/**\n * An array of three numbers representing the location of a tile in a tile\n * grid. The order is `z` (zoom level), `x` (column), and `y` (row).\n * @typedef {Array} TileCoord\n * @api\n */\n/**\n * @param {number} z Z.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {TileCoord} [opt_tileCoord] Tile coordinate.\n * @return {TileCoord} Tile coordinate.\n */\nexport function createOrUpdate(z, x, y, opt_tileCoord) {\n if (opt_tileCoord !== undefined) {\n opt_tileCoord[0] = z;\n opt_tileCoord[1] = x;\n opt_tileCoord[2] = y;\n return opt_tileCoord;\n }\n else {\n return [z, x, y];\n }\n}\n/**\n * @param {number} z Z.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {string} Key.\n */\nexport function getKeyZXY(z, x, y) {\n return z + '/' + x + '/' + y;\n}\n/**\n * Get the key for a tile coord.\n * @param {TileCoord} tileCoord The tile coord.\n * @return {string} Key.\n */\nexport function getKey(tileCoord) {\n return getKeyZXY(tileCoord[0], tileCoord[1], tileCoord[2]);\n}\n/**\n * Get the tile cache key for a tile key obtained through `tile.getKey()`.\n * @param {string} tileKey The tile key.\n * @return {string} The cache key.\n */\nexport function getCacheKeyForTileKey(tileKey) {\n var _a = tileKey\n .substring(tileKey.lastIndexOf('/') + 1, tileKey.length)\n .split(',')\n .map(Number), z = _a[0], x = _a[1], y = _a[2];\n return getKeyZXY(z, x, y);\n}\n/**\n * Get a tile coord given a key.\n * @param {string} key The tile coord key.\n * @return {TileCoord} The tile coord.\n */\nexport function fromKey(key) {\n return key.split('/').map(Number);\n}\n/**\n * @param {TileCoord} tileCoord Tile coord.\n * @return {number} Hash.\n */\nexport function hash(tileCoord) {\n return (tileCoord[1] << tileCoord[0]) + tileCoord[2];\n}\n/**\n * @param {TileCoord} tileCoord Tile coordinate.\n * @param {!import(\"./tilegrid/TileGrid.js\").default} tileGrid Tile grid.\n * @return {boolean} Tile coordinate is within extent and zoom level range.\n */\nexport function withinExtentAndZ(tileCoord, tileGrid) {\n var z = tileCoord[0];\n var x = tileCoord[1];\n var y = tileCoord[2];\n if (tileGrid.getMinZoom() > z || z > tileGrid.getMaxZoom()) {\n return false;\n }\n var tileRange = tileGrid.getFullTileRange(z);\n if (!tileRange) {\n return true;\n }\n else {\n return tileRange.containsXY(x, y);\n }\n}\n//# sourceMappingURL=tilecoord.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/Select\n */\nimport Collection from '../Collection.js';\nimport CollectionEventType from '../CollectionEventType.js';\nimport Event from '../events/Event.js';\nimport Interaction from './Interaction.js';\nimport VectorLayer from '../layer/Vector.js';\nimport { TRUE } from '../functions.js';\nimport { clear } from '../obj.js';\nimport { createEditingStyle } from '../style/Style.js';\nimport { extend, includes } from '../array.js';\nimport { getUid } from '../util.js';\nimport { never, shiftKeyOnly, singleClick } from '../events/condition.js';\n/**\n * @enum {string}\n */\nvar SelectEventType = {\n /**\n * Triggered when feature(s) has been (de)selected.\n * @event SelectEvent#select\n * @api\n */\n SELECT: 'select',\n};\n/**\n * A function that takes an {@link module:ol/Feature~Feature} or\n * {@link module:ol/render/Feature~RenderFeature} and an\n * {@link module:ol/layer/Layer~Layer} and returns `true` if the feature may be\n * selected or `false` otherwise.\n * @typedef {function(import(\"../Feature.js\").FeatureLike, import(\"../layer/Layer.js\").default):boolean} FilterFunction\n */\n/**\n * @typedef {Object} Options\n * @property {import(\"../events/condition.js\").Condition} [addCondition] A function\n * that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled.\n * By default, this is {@link module:ol/events/condition.never}. Use this if you\n * want to use different events for add and remove instead of `toggle`.\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that\n * takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled. This is the event\n * for the selected features as a whole. By default, this is\n * {@link module:ol/events/condition.singleClick}. Clicking on a feature selects that\n * feature and removes any that were in the selection. Clicking outside any\n * feature removes all from the selection.\n * See `toggle`, `add`, `remove` options for adding/removing extra features to/\n * from the selection.\n * @property {Array|function(import(\"../layer/Layer.js\").default): boolean} [layers]\n * A list of layers from which features should be selected. Alternatively, a\n * filter function can be provided. The function will be called for each layer\n * in the map and should return `true` for layers that you want to be\n * selectable. If the option is absent, all visible layers will be considered\n * selectable.\n * @property {import(\"../style/Style.js\").StyleLike|null} [style]\n * Style for the selected features. By default the default edit style is used\n * (see {@link module:ol/style/Style~Style}). Set to `null` if this interaction should not apply\n * any style changes for selected features.\n * If set to a falsey value, the selected feature's style will not change.\n * @property {import(\"../events/condition.js\").Condition} [removeCondition] A function\n * that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled.\n * By default, this is {@link module:ol/events/condition.never}. Use this if you\n * want to use different events for add and remove instead of `toggle`.\n * @property {import(\"../events/condition.js\").Condition} [toggleCondition] A function\n * that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled. This is in addition\n * to the `condition` event. By default,\n * {@link module:ol/events/condition.shiftKeyOnly}, i.e. pressing `shift` as\n * well as the `condition` event, adds that feature to the current selection if\n * it is not currently selected, and removes it if it is. See `add` and `remove`\n * if you want to use different events instead of a toggle.\n * @property {boolean} [multi=false] A boolean that determines if the default\n * behaviour should select only single features or all (overlapping) features at\n * the clicked map position. The default of `false` means single select.\n * @property {import(\"../Collection.js\").default} [features]\n * Collection where the interaction will place selected features. Optional. If\n * not set the interaction will create a collection. In any case the collection\n * used by the interaction is returned by\n * {@link module:ol/interaction/Select~Select#getFeatures}.\n * @property {FilterFunction} [filter] A function\n * that takes an {@link module:ol/Feature~Feature} and an\n * {@link module:ol/layer/Layer~Layer} and returns `true` if the feature may be\n * selected or `false` otherwise.\n * @property {number} [hitTolerance=0] Hit-detection tolerance. Pixels inside\n * the radius around the given position will be checked for features.\n */\n/**\n * @classdesc\n * Events emitted by {@link module:ol/interaction/Select~Select} instances are instances of\n * this type.\n */\nvar SelectEvent = /** @class */ (function (_super) {\n __extends(SelectEvent, _super);\n /**\n * @param {SelectEventType} type The event type.\n * @param {Array} selected Selected features.\n * @param {Array} deselected Deselected features.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Associated\n * {@link module:ol/MapBrowserEvent~MapBrowserEvent}.\n */\n function SelectEvent(type, selected, deselected, mapBrowserEvent) {\n var _this = _super.call(this, type) || this;\n /**\n * Selected features array.\n * @type {Array}\n * @api\n */\n _this.selected = selected;\n /**\n * Deselected features array.\n * @type {Array}\n * @api\n */\n _this.deselected = deselected;\n /**\n * Associated {@link module:ol/MapBrowserEvent~MapBrowserEvent}.\n * @type {import(\"../MapBrowserEvent.js\").default}\n * @api\n */\n _this.mapBrowserEvent = mapBrowserEvent;\n return _this;\n }\n return SelectEvent;\n}(Event));\nexport { SelectEvent };\n/**\n * Original feature styles to reset to when features are no longer selected.\n * @type {Object|import(\"../style/Style.js\").StyleFunction>}\n */\nvar originalFeatureStyles = {};\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature<'select', SelectEvent, Return> &\n * import(\"../Observable\").CombinedOnSignature} SelectOnSignature\n */\n/**\n * @classdesc\n * Interaction for selecting vector features. By default, selected features are\n * styled differently, so this interaction can be used for visual highlighting,\n * as well as selecting features for other actions, such as modification or\n * output. There are three ways of controlling which features are selected:\n * using the browser event as defined by the `condition` and optionally the\n * `toggle`, `add`/`remove`, and `multi` options; a `layers` filter; and a\n * further feature filter using the `filter` option.\n *\n * @fires SelectEvent\n * @api\n */\nvar Select = /** @class */ (function (_super) {\n __extends(Select, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function Select(opt_options) {\n var _this = _super.call(this) || this;\n /***\n * @type {SelectOnSignature}\n */\n _this.on;\n /***\n * @type {SelectOnSignature}\n */\n _this.once;\n /***\n * @type {SelectOnSignature}\n */\n _this.un;\n var options = opt_options ? opt_options : {};\n /**\n * @private\n */\n _this.boundAddFeature_ = _this.addFeature_.bind(_this);\n /**\n * @private\n */\n _this.boundRemoveFeature_ = _this.removeFeature_.bind(_this);\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.condition_ = options.condition ? options.condition : singleClick;\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.addCondition_ = options.addCondition ? options.addCondition : never;\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.removeCondition_ = options.removeCondition\n ? options.removeCondition\n : never;\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.toggleCondition_ = options.toggleCondition\n ? options.toggleCondition\n : shiftKeyOnly;\n /**\n * @private\n * @type {boolean}\n */\n _this.multi_ = options.multi ? options.multi : false;\n /**\n * @private\n * @type {FilterFunction}\n */\n _this.filter_ = options.filter ? options.filter : TRUE;\n /**\n * @private\n * @type {number}\n */\n _this.hitTolerance_ = options.hitTolerance ? options.hitTolerance : 0;\n /**\n * @private\n * @type {import(\"../style/Style.js\").default|Array|import(\"../style/Style.js\").StyleFunction|null}\n */\n _this.style_ =\n options.style !== undefined ? options.style : getDefaultStyleFunction();\n /**\n * @private\n * @type {import(\"../Collection.js\").default}\n */\n _this.features_ = options.features || new Collection();\n /** @type {function(import(\"../layer/Layer.js\").default): boolean} */\n var layerFilter;\n if (options.layers) {\n if (typeof options.layers === 'function') {\n layerFilter = options.layers;\n }\n else {\n var layers_1 = options.layers;\n layerFilter = function (layer) {\n return includes(layers_1, layer);\n };\n }\n }\n else {\n layerFilter = TRUE;\n }\n /**\n * @private\n * @type {function(import(\"../layer/Layer.js\").default): boolean}\n */\n _this.layerFilter_ = layerFilter;\n /**\n * An association between selected feature (key)\n * and layer (value)\n * @private\n * @type {Object}\n */\n _this.featureLayerAssociation_ = {};\n return _this;\n }\n /**\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../layer/Layer.js\").default} layer Layer.\n * @private\n */\n Select.prototype.addFeatureLayerAssociation_ = function (feature, layer) {\n this.featureLayerAssociation_[getUid(feature)] = layer;\n };\n /**\n * Get the selected features.\n * @return {import(\"../Collection.js\").default} Features collection.\n * @api\n */\n Select.prototype.getFeatures = function () {\n return this.features_;\n };\n /**\n * Returns the Hit-detection tolerance.\n * @return {number} Hit tolerance in pixels.\n * @api\n */\n Select.prototype.getHitTolerance = function () {\n return this.hitTolerance_;\n };\n /**\n * Returns the associated {@link module:ol/layer/Vector~VectorLayer vector layer} of\n * a selected feature.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature\n * @return {import('../layer/Vector.js').default} Layer.\n * @api\n */\n Select.prototype.getLayer = function (feature) {\n return /** @type {import('../layer/Vector.js').default} */ (this.featureLayerAssociation_[getUid(feature)]);\n };\n /**\n * Hit-detection tolerance. Pixels inside the radius around the given position\n * will be checked for features.\n * @param {number} hitTolerance Hit tolerance in pixels.\n * @api\n */\n Select.prototype.setHitTolerance = function (hitTolerance) {\n this.hitTolerance_ = hitTolerance;\n };\n /**\n * Remove the interaction from its current map, if any, and attach it to a new\n * map, if any. Pass `null` to just remove the interaction from the current map.\n * @param {import(\"../PluggableMap.js\").default|null} map Map.\n * @api\n */\n Select.prototype.setMap = function (map) {\n var currentMap = this.getMap();\n if (currentMap && this.style_) {\n this.features_.forEach(this.restorePreviousStyle_.bind(this));\n }\n _super.prototype.setMap.call(this, map);\n if (map) {\n this.features_.addEventListener(CollectionEventType.ADD, this.boundAddFeature_);\n this.features_.addEventListener(CollectionEventType.REMOVE, this.boundRemoveFeature_);\n if (this.style_) {\n this.features_.forEach(this.applySelectedStyle_.bind(this));\n }\n }\n else {\n this.features_.removeEventListener(CollectionEventType.ADD, this.boundAddFeature_);\n this.features_.removeEventListener(CollectionEventType.REMOVE, this.boundRemoveFeature_);\n }\n };\n /**\n * @param {import(\"../Collection.js\").CollectionEvent} evt Event.\n * @private\n */\n Select.prototype.addFeature_ = function (evt) {\n var feature = evt.element;\n if (this.style_) {\n this.applySelectedStyle_(feature);\n }\n if (!this.getLayer(feature)) {\n var layer = /** @type {VectorLayer} */ (this.getMap()\n .getAllLayers()\n .find(function (layer) {\n if (layer instanceof VectorLayer &&\n layer.getSource() &&\n layer.getSource().hasFeature(feature)) {\n return layer;\n }\n }));\n if (layer) {\n this.addFeatureLayerAssociation_(feature, layer);\n }\n }\n };\n /**\n * @param {import(\"../Collection.js\").CollectionEvent} evt Event.\n * @private\n */\n Select.prototype.removeFeature_ = function (evt) {\n var feature = evt.element;\n if (this.style_) {\n this.restorePreviousStyle_(feature);\n }\n };\n /**\n * @return {import(\"../style/Style.js\").StyleLike|null} Select style.\n */\n Select.prototype.getStyle = function () {\n return this.style_;\n };\n /**\n * @param {import(\"../Feature.js\").default} feature Feature\n * @private\n */\n Select.prototype.applySelectedStyle_ = function (feature) {\n var key = getUid(feature);\n if (!(key in originalFeatureStyles)) {\n originalFeatureStyles[key] = feature.getStyle();\n }\n feature.setStyle(this.style_);\n };\n /**\n * @param {import(\"../Feature.js\").default} feature Feature\n * @private\n */\n Select.prototype.restorePreviousStyle_ = function (feature) {\n var interactions = this.getMap().getInteractions().getArray();\n for (var i = interactions.length - 1; i >= 0; --i) {\n var interaction = interactions[i];\n if (interaction !== this &&\n interaction instanceof Select &&\n interaction.getStyle() &&\n interaction.getFeatures().getArray().lastIndexOf(feature) !== -1) {\n feature.setStyle(interaction.getStyle());\n return;\n }\n }\n var key = getUid(feature);\n feature.setStyle(originalFeatureStyles[key]);\n delete originalFeatureStyles[key];\n };\n /**\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @private\n */\n Select.prototype.removeFeatureLayerAssociation_ = function (feature) {\n delete this.featureLayerAssociation_[getUid(feature)];\n };\n /**\n * Handles the {@link module:ol/MapBrowserEvent~MapBrowserEvent map browser event} and may change the\n * selected state of features.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n * @this {Select}\n */\n Select.prototype.handleEvent = function (mapBrowserEvent) {\n if (!this.condition_(mapBrowserEvent)) {\n return true;\n }\n var add = this.addCondition_(mapBrowserEvent);\n var remove = this.removeCondition_(mapBrowserEvent);\n var toggle = this.toggleCondition_(mapBrowserEvent);\n var set = !add && !remove && !toggle;\n var map = mapBrowserEvent.map;\n var features = this.getFeatures();\n var deselected = [];\n var selected = [];\n if (set) {\n // Replace the currently selected feature(s) with the feature(s) at the\n // pixel, or clear the selected feature(s) if there is no feature at\n // the pixel.\n clear(this.featureLayerAssociation_);\n map.forEachFeatureAtPixel(mapBrowserEvent.pixel, \n /**\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../layer/Layer.js\").default} layer Layer.\n * @return {boolean|undefined} Continue to iterate over the features.\n */\n function (feature, layer) {\n if (this.filter_(feature, layer)) {\n this.addFeatureLayerAssociation_(feature, layer);\n selected.push(feature);\n return !this.multi_;\n }\n }.bind(this), {\n layerFilter: this.layerFilter_,\n hitTolerance: this.hitTolerance_,\n });\n for (var i = features.getLength() - 1; i >= 0; --i) {\n var feature = features.item(i);\n var index = selected.indexOf(feature);\n if (index > -1) {\n // feature is already selected\n selected.splice(index, 1);\n }\n else {\n features.remove(feature);\n deselected.push(feature);\n }\n }\n if (selected.length !== 0) {\n features.extend(selected);\n }\n }\n else {\n // Modify the currently selected feature(s).\n map.forEachFeatureAtPixel(mapBrowserEvent.pixel, \n /**\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../layer/Layer.js\").default} layer Layer.\n * @return {boolean|undefined} Continue to iterate over the features.\n */\n function (feature, layer) {\n if (this.filter_(feature, layer)) {\n if ((add || toggle) && !includes(features.getArray(), feature)) {\n this.addFeatureLayerAssociation_(feature, layer);\n selected.push(feature);\n }\n else if ((remove || toggle) &&\n includes(features.getArray(), feature)) {\n deselected.push(feature);\n this.removeFeatureLayerAssociation_(feature);\n }\n return !this.multi_;\n }\n }.bind(this), {\n layerFilter: this.layerFilter_,\n hitTolerance: this.hitTolerance_,\n });\n for (var j = deselected.length - 1; j >= 0; --j) {\n features.remove(deselected[j]);\n }\n features.extend(selected);\n }\n if (selected.length > 0 || deselected.length > 0) {\n this.dispatchEvent(new SelectEvent(SelectEventType.SELECT, selected, deselected, mapBrowserEvent));\n }\n return true;\n };\n return Select;\n}(Interaction));\n/**\n * @return {import(\"../style/Style.js\").StyleFunction} Styles.\n */\nfunction getDefaultStyleFunction() {\n var styles = createEditingStyle();\n extend(styles['Polygon'], styles['LineString']);\n extend(styles['GeometryCollection'], styles['LineString']);\n return function (feature) {\n if (!feature.getGeometry()) {\n return null;\n }\n return styles[feature.getGeometry().getType()];\n };\n}\nexport default Select;\n//# sourceMappingURL=Select.js.map","/**\n * @module ol/reproj\n */\nimport { IMAGE_SMOOTHING_DISABLED } from './renderer/canvas/common.js';\nimport { assign } from './obj.js';\nimport { containsCoordinate, createEmpty, extend, forEachCorner, getCenter, getHeight, getTopLeft, getWidth, } from './extent.js';\nimport { createCanvasContext2D } from './dom.js';\nimport { getPointResolution, transform } from './proj.js';\nimport { solveLinearSystem } from './math.js';\nvar brokenDiagonalRendering_;\n/**\n * @type {Array}\n */\nexport var canvasPool = [];\n/**\n * This draws a small triangle into a canvas by setting the triangle as the clip region\n * and then drawing a (too large) rectangle\n *\n * @param {CanvasRenderingContext2D} ctx The context in which to draw the triangle\n * @param {number} u1 The x-coordinate of the second point. The first point is 0,0.\n * @param {number} v1 The y-coordinate of the second point.\n * @param {number} u2 The x-coordinate of the third point.\n * @param {number} v2 The y-coordinate of the third point.\n */\nfunction drawTestTriangle(ctx, u1, v1, u2, v2) {\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(u1, v1);\n ctx.lineTo(u2, v2);\n ctx.closePath();\n ctx.save();\n ctx.clip();\n ctx.fillRect(0, 0, Math.max(u1, u2) + 1, Math.max(v1, v2));\n ctx.restore();\n}\n/**\n * Given the data from getImageData, see if the right values appear at the provided offset.\n * Returns true if either the color or transparency is off\n *\n * @param {Uint8ClampedArray} data The data returned from getImageData\n * @param {number} offset The pixel offset from the start of data.\n * @return {boolean} true if the diagonal rendering is broken\n */\nfunction verifyBrokenDiagonalRendering(data, offset) {\n // the values ought to be close to the rgba(210, 0, 0, 0.75)\n return (Math.abs(data[offset * 4] - 210) > 2 ||\n Math.abs(data[offset * 4 + 3] - 0.75 * 255) > 2);\n}\n/**\n * Determines if the current browser configuration can render triangular clip regions correctly.\n * This value is cached so the function is only expensive the first time called.\n * Firefox on Windows (as of now) does not if HWA is enabled. See https://bugzilla.mozilla.org/show_bug.cgi?id=1606976\n * IE also doesn't. Chrome works, and everything seems to work on OSX and Android. This function caches the\n * result. I suppose that it is conceivably possible that a browser might flip modes while the app is\n * running, but lets hope not.\n *\n * @return {boolean} true if the Diagonal Rendering is broken.\n */\nfunction isBrokenDiagonalRendering() {\n if (brokenDiagonalRendering_ === undefined) {\n var ctx = document.createElement('canvas').getContext('2d');\n ctx.globalCompositeOperation = 'lighter';\n ctx.fillStyle = 'rgba(210, 0, 0, 0.75)';\n drawTestTriangle(ctx, 4, 5, 4, 0);\n drawTestTriangle(ctx, 4, 5, 0, 5);\n var data = ctx.getImageData(0, 0, 3, 3).data;\n brokenDiagonalRendering_ =\n verifyBrokenDiagonalRendering(data, 0) ||\n verifyBrokenDiagonalRendering(data, 4) ||\n verifyBrokenDiagonalRendering(data, 8);\n }\n return brokenDiagonalRendering_;\n}\n/**\n * Calculates ideal resolution to use from the source in order to achieve\n * pixel mapping as close as possible to 1:1 during reprojection.\n * The resolution is calculated regardless of what resolutions\n * are actually available in the dataset (TileGrid, Image, ...).\n *\n * @param {import(\"./proj/Projection.js\").default} sourceProj Source projection.\n * @param {import(\"./proj/Projection.js\").default} targetProj Target projection.\n * @param {import(\"./coordinate.js\").Coordinate} targetCenter Target center.\n * @param {number} targetResolution Target resolution.\n * @return {number} The best resolution to use. Can be +-Infinity, NaN or 0.\n */\nexport function calculateSourceResolution(sourceProj, targetProj, targetCenter, targetResolution) {\n var sourceCenter = transform(targetCenter, targetProj, sourceProj);\n // calculate the ideal resolution of the source data\n var sourceResolution = getPointResolution(targetProj, targetResolution, targetCenter);\n var targetMetersPerUnit = targetProj.getMetersPerUnit();\n if (targetMetersPerUnit !== undefined) {\n sourceResolution *= targetMetersPerUnit;\n }\n var sourceMetersPerUnit = sourceProj.getMetersPerUnit();\n if (sourceMetersPerUnit !== undefined) {\n sourceResolution /= sourceMetersPerUnit;\n }\n // Based on the projection properties, the point resolution at the specified\n // coordinates may be slightly different. We need to reverse-compensate this\n // in order to achieve optimal results.\n var sourceExtent = sourceProj.getExtent();\n if (!sourceExtent || containsCoordinate(sourceExtent, sourceCenter)) {\n var compensationFactor = getPointResolution(sourceProj, sourceResolution, sourceCenter) /\n sourceResolution;\n if (isFinite(compensationFactor) && compensationFactor > 0) {\n sourceResolution /= compensationFactor;\n }\n }\n return sourceResolution;\n}\n/**\n * Calculates ideal resolution to use from the source in order to achieve\n * pixel mapping as close as possible to 1:1 during reprojection.\n * The resolution is calculated regardless of what resolutions\n * are actually available in the dataset (TileGrid, Image, ...).\n *\n * @param {import(\"./proj/Projection.js\").default} sourceProj Source projection.\n * @param {import(\"./proj/Projection.js\").default} targetProj Target projection.\n * @param {import(\"./extent.js\").Extent} targetExtent Target extent\n * @param {number} targetResolution Target resolution.\n * @return {number} The best resolution to use. Can be +-Infinity, NaN or 0.\n */\nexport function calculateSourceExtentResolution(sourceProj, targetProj, targetExtent, targetResolution) {\n var targetCenter = getCenter(targetExtent);\n var sourceResolution = calculateSourceResolution(sourceProj, targetProj, targetCenter, targetResolution);\n if (!isFinite(sourceResolution) || sourceResolution <= 0) {\n forEachCorner(targetExtent, function (corner) {\n sourceResolution = calculateSourceResolution(sourceProj, targetProj, corner, targetResolution);\n return isFinite(sourceResolution) && sourceResolution > 0;\n });\n }\n return sourceResolution;\n}\n/**\n * @typedef {Object} ImageExtent\n * @property {import(\"./extent.js\").Extent} extent Extent.\n * @property {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} image Image.\n */\n/**\n * Renders the source data into new canvas based on the triangulation.\n *\n * @param {number} width Width of the canvas.\n * @param {number} height Height of the canvas.\n * @param {number} pixelRatio Pixel ratio.\n * @param {number} sourceResolution Source resolution.\n * @param {import(\"./extent.js\").Extent} sourceExtent Extent of the data source.\n * @param {number} targetResolution Target resolution.\n * @param {import(\"./extent.js\").Extent} targetExtent Target extent.\n * @param {import(\"./reproj/Triangulation.js\").default} triangulation Calculated triangulation.\n * @param {Array} sources Array of sources.\n * @param {number} gutter Gutter of the sources.\n * @param {boolean} [opt_renderEdges] Render reprojection edges.\n * @param {boolean} [opt_interpolate] Use linear interpolation when resampling.\n * @return {HTMLCanvasElement} Canvas with reprojected data.\n */\nexport function render(width, height, pixelRatio, sourceResolution, sourceExtent, targetResolution, targetExtent, triangulation, sources, gutter, opt_renderEdges, opt_interpolate) {\n var context = createCanvasContext2D(Math.round(pixelRatio * width), Math.round(pixelRatio * height), canvasPool);\n if (!opt_interpolate) {\n assign(context, IMAGE_SMOOTHING_DISABLED);\n }\n if (sources.length === 0) {\n return context.canvas;\n }\n context.scale(pixelRatio, pixelRatio);\n function pixelRound(value) {\n return Math.round(value * pixelRatio) / pixelRatio;\n }\n context.globalCompositeOperation = 'lighter';\n var sourceDataExtent = createEmpty();\n sources.forEach(function (src, i, arr) {\n extend(sourceDataExtent, src.extent);\n });\n var canvasWidthInUnits = getWidth(sourceDataExtent);\n var canvasHeightInUnits = getHeight(sourceDataExtent);\n var stitchContext = createCanvasContext2D(Math.round((pixelRatio * canvasWidthInUnits) / sourceResolution), Math.round((pixelRatio * canvasHeightInUnits) / sourceResolution));\n if (!opt_interpolate) {\n assign(stitchContext, IMAGE_SMOOTHING_DISABLED);\n }\n var stitchScale = pixelRatio / sourceResolution;\n sources.forEach(function (src, i, arr) {\n var xPos = src.extent[0] - sourceDataExtent[0];\n var yPos = -(src.extent[3] - sourceDataExtent[3]);\n var srcWidth = getWidth(src.extent);\n var srcHeight = getHeight(src.extent);\n // This test should never fail -- but it does. Need to find a fix the upstream condition\n if (src.image.width > 0 && src.image.height > 0) {\n stitchContext.drawImage(src.image, gutter, gutter, src.image.width - 2 * gutter, src.image.height - 2 * gutter, xPos * stitchScale, yPos * stitchScale, srcWidth * stitchScale, srcHeight * stitchScale);\n }\n });\n var targetTopLeft = getTopLeft(targetExtent);\n triangulation.getTriangles().forEach(function (triangle, i, arr) {\n /* Calculate affine transform (src -> dst)\n * Resulting matrix can be used to transform coordinate\n * from `sourceProjection` to destination pixels.\n *\n * To optimize number of context calls and increase numerical stability,\n * we also do the following operations:\n * trans(-topLeftExtentCorner), scale(1 / targetResolution), scale(1, -1)\n * here before solving the linear system so [ui, vi] are pixel coordinates.\n *\n * Src points: xi, yi\n * Dst points: ui, vi\n * Affine coefficients: aij\n *\n * | x0 y0 1 0 0 0 | |a00| |u0|\n * | x1 y1 1 0 0 0 | |a01| |u1|\n * | x2 y2 1 0 0 0 | x |a02| = |u2|\n * | 0 0 0 x0 y0 1 | |a10| |v0|\n * | 0 0 0 x1 y1 1 | |a11| |v1|\n * | 0 0 0 x2 y2 1 | |a12| |v2|\n */\n var source = triangle.source;\n var target = triangle.target;\n var x0 = source[0][0], y0 = source[0][1];\n var x1 = source[1][0], y1 = source[1][1];\n var x2 = source[2][0], y2 = source[2][1];\n // Make sure that everything is on pixel boundaries\n var u0 = pixelRound((target[0][0] - targetTopLeft[0]) / targetResolution);\n var v0 = pixelRound(-(target[0][1] - targetTopLeft[1]) / targetResolution);\n var u1 = pixelRound((target[1][0] - targetTopLeft[0]) / targetResolution);\n var v1 = pixelRound(-(target[1][1] - targetTopLeft[1]) / targetResolution);\n var u2 = pixelRound((target[2][0] - targetTopLeft[0]) / targetResolution);\n var v2 = pixelRound(-(target[2][1] - targetTopLeft[1]) / targetResolution);\n // Shift all the source points to improve numerical stability\n // of all the subsequent calculations. The [x0, y0] is used here.\n // This is also used to simplify the linear system.\n var sourceNumericalShiftX = x0;\n var sourceNumericalShiftY = y0;\n x0 = 0;\n y0 = 0;\n x1 -= sourceNumericalShiftX;\n y1 -= sourceNumericalShiftY;\n x2 -= sourceNumericalShiftX;\n y2 -= sourceNumericalShiftY;\n var augmentedMatrix = [\n [x1, y1, 0, 0, u1 - u0],\n [x2, y2, 0, 0, u2 - u0],\n [0, 0, x1, y1, v1 - v0],\n [0, 0, x2, y2, v2 - v0],\n ];\n var affineCoefs = solveLinearSystem(augmentedMatrix);\n if (!affineCoefs) {\n return;\n }\n context.save();\n context.beginPath();\n if (isBrokenDiagonalRendering() || !opt_interpolate) {\n // Make sure that all lines are horizontal or vertical\n context.moveTo(u1, v1);\n // This is the diagonal line. Do it in 4 steps\n var steps = 4;\n var ud = u0 - u1;\n var vd = v0 - v1;\n for (var step = 0; step < steps; step++) {\n // Go horizontally\n context.lineTo(u1 + pixelRound(((step + 1) * ud) / steps), v1 + pixelRound((step * vd) / (steps - 1)));\n // Go vertically\n if (step != steps - 1) {\n context.lineTo(u1 + pixelRound(((step + 1) * ud) / steps), v1 + pixelRound(((step + 1) * vd) / (steps - 1)));\n }\n }\n // We are almost at u0r, v0r\n context.lineTo(u2, v2);\n }\n else {\n context.moveTo(u1, v1);\n context.lineTo(u0, v0);\n context.lineTo(u2, v2);\n }\n context.clip();\n context.transform(affineCoefs[0], affineCoefs[2], affineCoefs[1], affineCoefs[3], u0, v0);\n context.translate(sourceDataExtent[0] - sourceNumericalShiftX, sourceDataExtent[3] - sourceNumericalShiftY);\n context.scale(sourceResolution / pixelRatio, -sourceResolution / pixelRatio);\n context.drawImage(stitchContext.canvas, 0, 0);\n context.restore();\n });\n if (opt_renderEdges) {\n context.save();\n context.globalCompositeOperation = 'source-over';\n context.strokeStyle = 'black';\n context.lineWidth = 1;\n triangulation.getTriangles().forEach(function (triangle, i, arr) {\n var target = triangle.target;\n var u0 = (target[0][0] - targetTopLeft[0]) / targetResolution;\n var v0 = -(target[0][1] - targetTopLeft[1]) / targetResolution;\n var u1 = (target[1][0] - targetTopLeft[0]) / targetResolution;\n var v1 = -(target[1][1] - targetTopLeft[1]) / targetResolution;\n var u2 = (target[2][0] - targetTopLeft[0]) / targetResolution;\n var v2 = -(target[2][1] - targetTopLeft[1]) / targetResolution;\n context.beginPath();\n context.moveTo(u1, v1);\n context.lineTo(u0, v0);\n context.lineTo(u2, v2);\n context.closePath();\n context.stroke();\n });\n context.restore();\n }\n return context.canvas;\n}\n//# sourceMappingURL=reproj.js.map","/**\n * @module ol/reproj/Triangulation\n */\nimport { boundingExtent, createEmpty, extendCoordinate, getArea, getBottomLeft, getBottomRight, getTopLeft, getTopRight, getWidth, intersects, } from '../extent.js';\nimport { getTransform } from '../proj.js';\nimport { log2, modulo } from '../math.js';\n/**\n * Single triangle; consists of 3 source points and 3 target points.\n * @typedef {Object} Triangle\n * @property {Array} source Source.\n * @property {Array} target Target.\n */\n/**\n * Maximum number of subdivision steps during raster reprojection triangulation.\n * Prevents high memory usage and large number of proj4 calls (for certain\n * transformations and areas). At most `2*(2^this)` triangles are created for\n * each triangulated extent (tile/image).\n * @type {number}\n */\nvar MAX_SUBDIVISION = 10;\n/**\n * Maximum allowed size of triangle relative to world width. When transforming\n * corners of world extent between certain projections, the resulting\n * triangulation seems to have zero error and no subdivision is performed. If\n * the triangle width is more than this (relative to world width; 0-1),\n * subdivison is forced (up to `MAX_SUBDIVISION`). Default is `0.25`.\n * @type {number}\n */\nvar MAX_TRIANGLE_WIDTH = 0.25;\n/**\n * @classdesc\n * Class containing triangulation of the given target extent.\n * Used for determining source data and the reprojection itself.\n */\nvar Triangulation = /** @class */ (function () {\n /**\n * @param {import(\"../proj/Projection.js\").default} sourceProj Source projection.\n * @param {import(\"../proj/Projection.js\").default} targetProj Target projection.\n * @param {import(\"../extent.js\").Extent} targetExtent Target extent to triangulate.\n * @param {import(\"../extent.js\").Extent} maxSourceExtent Maximal source extent that can be used.\n * @param {number} errorThreshold Acceptable error (in source units).\n * @param {?number} opt_destinationResolution The (optional) resolution of the destination.\n */\n function Triangulation(sourceProj, targetProj, targetExtent, maxSourceExtent, errorThreshold, opt_destinationResolution) {\n /**\n * @type {import(\"../proj/Projection.js\").default}\n * @private\n */\n this.sourceProj_ = sourceProj;\n /**\n * @type {import(\"../proj/Projection.js\").default}\n * @private\n */\n this.targetProj_ = targetProj;\n /** @type {!Object} */\n var transformInvCache = {};\n var transformInv = getTransform(this.targetProj_, this.sourceProj_);\n /**\n * @param {import(\"../coordinate.js\").Coordinate} c A coordinate.\n * @return {import(\"../coordinate.js\").Coordinate} Transformed coordinate.\n * @private\n */\n this.transformInv_ = function (c) {\n var key = c[0] + '/' + c[1];\n if (!transformInvCache[key]) {\n transformInvCache[key] = transformInv(c);\n }\n return transformInvCache[key];\n };\n /**\n * @type {import(\"../extent.js\").Extent}\n * @private\n */\n this.maxSourceExtent_ = maxSourceExtent;\n /**\n * @type {number}\n * @private\n */\n this.errorThresholdSquared_ = errorThreshold * errorThreshold;\n /**\n * @type {Array}\n * @private\n */\n this.triangles_ = [];\n /**\n * Indicates that the triangulation crosses edge of the source projection.\n * @type {boolean}\n * @private\n */\n this.wrapsXInSource_ = false;\n /**\n * @type {boolean}\n * @private\n */\n this.canWrapXInSource_ =\n this.sourceProj_.canWrapX() &&\n !!maxSourceExtent &&\n !!this.sourceProj_.getExtent() &&\n getWidth(maxSourceExtent) == getWidth(this.sourceProj_.getExtent());\n /**\n * @type {?number}\n * @private\n */\n this.sourceWorldWidth_ = this.sourceProj_.getExtent()\n ? getWidth(this.sourceProj_.getExtent())\n : null;\n /**\n * @type {?number}\n * @private\n */\n this.targetWorldWidth_ = this.targetProj_.getExtent()\n ? getWidth(this.targetProj_.getExtent())\n : null;\n var destinationTopLeft = getTopLeft(targetExtent);\n var destinationTopRight = getTopRight(targetExtent);\n var destinationBottomRight = getBottomRight(targetExtent);\n var destinationBottomLeft = getBottomLeft(targetExtent);\n var sourceTopLeft = this.transformInv_(destinationTopLeft);\n var sourceTopRight = this.transformInv_(destinationTopRight);\n var sourceBottomRight = this.transformInv_(destinationBottomRight);\n var sourceBottomLeft = this.transformInv_(destinationBottomLeft);\n /*\n * The maxSubdivision controls how many splittings of the target area can\n * be done. The idea here is to do a linear mapping of the target areas\n * but the actual overal reprojection (can be) extremely non-linear. The\n * default value of MAX_SUBDIVISION was chosen based on mapping a 256x256\n * tile size. However this function is also called to remap canvas rendered\n * layers which can be much larger. This calculation increases the maxSubdivision\n * value by the right factor so that each 256x256 pixel area has\n * MAX_SUBDIVISION divisions.\n */\n var maxSubdivision = MAX_SUBDIVISION +\n (opt_destinationResolution\n ? Math.max(0, Math.ceil(log2(getArea(targetExtent) /\n (opt_destinationResolution *\n opt_destinationResolution *\n 256 *\n 256))))\n : 0);\n this.addQuad_(destinationTopLeft, destinationTopRight, destinationBottomRight, destinationBottomLeft, sourceTopLeft, sourceTopRight, sourceBottomRight, sourceBottomLeft, maxSubdivision);\n if (this.wrapsXInSource_) {\n var leftBound_1 = Infinity;\n this.triangles_.forEach(function (triangle, i, arr) {\n leftBound_1 = Math.min(leftBound_1, triangle.source[0][0], triangle.source[1][0], triangle.source[2][0]);\n });\n // Shift triangles to be as close to `leftBound` as possible\n // (if the distance is more than `worldWidth / 2` it can be closer.\n this.triangles_.forEach(function (triangle) {\n if (Math.max(triangle.source[0][0], triangle.source[1][0], triangle.source[2][0]) -\n leftBound_1 >\n this.sourceWorldWidth_ / 2) {\n var newTriangle = [\n [triangle.source[0][0], triangle.source[0][1]],\n [triangle.source[1][0], triangle.source[1][1]],\n [triangle.source[2][0], triangle.source[2][1]],\n ];\n if (newTriangle[0][0] - leftBound_1 > this.sourceWorldWidth_ / 2) {\n newTriangle[0][0] -= this.sourceWorldWidth_;\n }\n if (newTriangle[1][0] - leftBound_1 > this.sourceWorldWidth_ / 2) {\n newTriangle[1][0] -= this.sourceWorldWidth_;\n }\n if (newTriangle[2][0] - leftBound_1 > this.sourceWorldWidth_ / 2) {\n newTriangle[2][0] -= this.sourceWorldWidth_;\n }\n // Rarely (if the extent contains both the dateline and prime meridian)\n // the shift can in turn break some triangles.\n // Detect this here and don't shift in such cases.\n var minX = Math.min(newTriangle[0][0], newTriangle[1][0], newTriangle[2][0]);\n var maxX = Math.max(newTriangle[0][0], newTriangle[1][0], newTriangle[2][0]);\n if (maxX - minX < this.sourceWorldWidth_ / 2) {\n triangle.source = newTriangle;\n }\n }\n }.bind(this));\n }\n transformInvCache = {};\n }\n /**\n * Adds triangle to the triangulation.\n * @param {import(\"../coordinate.js\").Coordinate} a The target a coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} b The target b coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} c The target c coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} aSrc The source a coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} bSrc The source b coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} cSrc The source c coordinate.\n * @private\n */\n Triangulation.prototype.addTriangle_ = function (a, b, c, aSrc, bSrc, cSrc) {\n this.triangles_.push({\n source: [aSrc, bSrc, cSrc],\n target: [a, b, c],\n });\n };\n /**\n * Adds quad (points in clock-wise order) to the triangulation\n * (and reprojects the vertices) if valid.\n * Performs quad subdivision if needed to increase precision.\n *\n * @param {import(\"../coordinate.js\").Coordinate} a The target a coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} b The target b coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} c The target c coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} d The target d coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} aSrc The source a coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} bSrc The source b coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} cSrc The source c coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} dSrc The source d coordinate.\n * @param {number} maxSubdivision Maximal allowed subdivision of the quad.\n * @private\n */\n Triangulation.prototype.addQuad_ = function (a, b, c, d, aSrc, bSrc, cSrc, dSrc, maxSubdivision) {\n var sourceQuadExtent = boundingExtent([aSrc, bSrc, cSrc, dSrc]);\n var sourceCoverageX = this.sourceWorldWidth_\n ? getWidth(sourceQuadExtent) / this.sourceWorldWidth_\n : null;\n var sourceWorldWidth = /** @type {number} */ (this.sourceWorldWidth_);\n // when the quad is wrapped in the source projection\n // it covers most of the projection extent, but not fully\n var wrapsX = this.sourceProj_.canWrapX() &&\n sourceCoverageX > 0.5 &&\n sourceCoverageX < 1;\n var needsSubdivision = false;\n if (maxSubdivision > 0) {\n if (this.targetProj_.isGlobal() && this.targetWorldWidth_) {\n var targetQuadExtent = boundingExtent([a, b, c, d]);\n var targetCoverageX = getWidth(targetQuadExtent) / this.targetWorldWidth_;\n needsSubdivision =\n targetCoverageX > MAX_TRIANGLE_WIDTH || needsSubdivision;\n }\n if (!wrapsX && this.sourceProj_.isGlobal() && sourceCoverageX) {\n needsSubdivision =\n sourceCoverageX > MAX_TRIANGLE_WIDTH || needsSubdivision;\n }\n }\n if (!needsSubdivision && this.maxSourceExtent_) {\n if (isFinite(sourceQuadExtent[0]) &&\n isFinite(sourceQuadExtent[1]) &&\n isFinite(sourceQuadExtent[2]) &&\n isFinite(sourceQuadExtent[3])) {\n if (!intersects(sourceQuadExtent, this.maxSourceExtent_)) {\n // whole quad outside source projection extent -> ignore\n return;\n }\n }\n }\n var isNotFinite = 0;\n if (!needsSubdivision) {\n if (!isFinite(aSrc[0]) ||\n !isFinite(aSrc[1]) ||\n !isFinite(bSrc[0]) ||\n !isFinite(bSrc[1]) ||\n !isFinite(cSrc[0]) ||\n !isFinite(cSrc[1]) ||\n !isFinite(dSrc[0]) ||\n !isFinite(dSrc[1])) {\n if (maxSubdivision > 0) {\n needsSubdivision = true;\n }\n else {\n // It might be the case that only 1 of the points is infinite. In this case\n // we can draw a single triangle with the other three points\n isNotFinite =\n (!isFinite(aSrc[0]) || !isFinite(aSrc[1]) ? 8 : 0) +\n (!isFinite(bSrc[0]) || !isFinite(bSrc[1]) ? 4 : 0) +\n (!isFinite(cSrc[0]) || !isFinite(cSrc[1]) ? 2 : 0) +\n (!isFinite(dSrc[0]) || !isFinite(dSrc[1]) ? 1 : 0);\n if (isNotFinite != 1 &&\n isNotFinite != 2 &&\n isNotFinite != 4 &&\n isNotFinite != 8) {\n return;\n }\n }\n }\n }\n if (maxSubdivision > 0) {\n if (!needsSubdivision) {\n var center = [(a[0] + c[0]) / 2, (a[1] + c[1]) / 2];\n var centerSrc = this.transformInv_(center);\n var dx = void 0;\n if (wrapsX) {\n var centerSrcEstimX = (modulo(aSrc[0], sourceWorldWidth) +\n modulo(cSrc[0], sourceWorldWidth)) /\n 2;\n dx = centerSrcEstimX - modulo(centerSrc[0], sourceWorldWidth);\n }\n else {\n dx = (aSrc[0] + cSrc[0]) / 2 - centerSrc[0];\n }\n var dy = (aSrc[1] + cSrc[1]) / 2 - centerSrc[1];\n var centerSrcErrorSquared = dx * dx + dy * dy;\n needsSubdivision = centerSrcErrorSquared > this.errorThresholdSquared_;\n }\n if (needsSubdivision) {\n if (Math.abs(a[0] - c[0]) <= Math.abs(a[1] - c[1])) {\n // split horizontally (top & bottom)\n var bc = [(b[0] + c[0]) / 2, (b[1] + c[1]) / 2];\n var bcSrc = this.transformInv_(bc);\n var da = [(d[0] + a[0]) / 2, (d[1] + a[1]) / 2];\n var daSrc = this.transformInv_(da);\n this.addQuad_(a, b, bc, da, aSrc, bSrc, bcSrc, daSrc, maxSubdivision - 1);\n this.addQuad_(da, bc, c, d, daSrc, bcSrc, cSrc, dSrc, maxSubdivision - 1);\n }\n else {\n // split vertically (left & right)\n var ab = [(a[0] + b[0]) / 2, (a[1] + b[1]) / 2];\n var abSrc = this.transformInv_(ab);\n var cd = [(c[0] + d[0]) / 2, (c[1] + d[1]) / 2];\n var cdSrc = this.transformInv_(cd);\n this.addQuad_(a, ab, cd, d, aSrc, abSrc, cdSrc, dSrc, maxSubdivision - 1);\n this.addQuad_(ab, b, c, cd, abSrc, bSrc, cSrc, cdSrc, maxSubdivision - 1);\n }\n return;\n }\n }\n if (wrapsX) {\n if (!this.canWrapXInSource_) {\n return;\n }\n this.wrapsXInSource_ = true;\n }\n // Exactly zero or one of *Src is not finite\n // The triangles must have the diagonal line as the first side\n // This is to allow easy code in reproj.s to make it straight for broken\n // browsers that can't handle diagonal clipping\n if ((isNotFinite & 0xb) == 0) {\n this.addTriangle_(a, c, d, aSrc, cSrc, dSrc);\n }\n if ((isNotFinite & 0xe) == 0) {\n this.addTriangle_(a, c, b, aSrc, cSrc, bSrc);\n }\n if (isNotFinite) {\n // Try the other two triangles\n if ((isNotFinite & 0xd) == 0) {\n this.addTriangle_(b, d, a, bSrc, dSrc, aSrc);\n }\n if ((isNotFinite & 0x7) == 0) {\n this.addTriangle_(b, d, c, bSrc, dSrc, cSrc);\n }\n }\n };\n /**\n * Calculates extent of the `source` coordinates from all the triangles.\n *\n * @return {import(\"../extent.js\").Extent} Calculated extent.\n */\n Triangulation.prototype.calculateSourceExtent = function () {\n var extent = createEmpty();\n this.triangles_.forEach(function (triangle, i, arr) {\n var src = triangle.source;\n extendCoordinate(extent, src[0]);\n extendCoordinate(extent, src[1]);\n extendCoordinate(extent, src[2]);\n });\n return extent;\n };\n /**\n * @return {Array} Array of the calculated triangles.\n */\n Triangulation.prototype.getTriangles = function () {\n return this.triangles_;\n };\n return Triangulation;\n}());\nexport default Triangulation;\n//# sourceMappingURL=Triangulation.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/reproj/Tile\n */\nimport { ERROR_THRESHOLD } from './common.js';\nimport EventType from '../events/EventType.js';\nimport Tile from '../Tile.js';\nimport TileState from '../TileState.js';\nimport Triangulation from './Triangulation.js';\nimport { calculateSourceExtentResolution, canvasPool, render as renderReprojected, } from '../reproj.js';\nimport { clamp } from '../math.js';\nimport { getArea, getIntersection } from '../extent.js';\nimport { listen, unlistenByKey } from '../events.js';\nimport { releaseCanvas } from '../dom.js';\n/**\n * @typedef {function(number, number, number, number) : import(\"../Tile.js\").default} FunctionType\n */\n/**\n * @classdesc\n * Class encapsulating single reprojected tile.\n * See {@link module:ol/source/TileImage~TileImage}.\n *\n */\nvar ReprojTile = /** @class */ (function (_super) {\n __extends(ReprojTile, _super);\n /**\n * @param {import(\"../proj/Projection.js\").default} sourceProj Source projection.\n * @param {import(\"../tilegrid/TileGrid.js\").default} sourceTileGrid Source tile grid.\n * @param {import(\"../proj/Projection.js\").default} targetProj Target projection.\n * @param {import(\"../tilegrid/TileGrid.js\").default} targetTileGrid Target tile grid.\n * @param {import(\"../tilecoord.js\").TileCoord} tileCoord Coordinate of the tile.\n * @param {import(\"../tilecoord.js\").TileCoord} wrappedTileCoord Coordinate of the tile wrapped in X.\n * @param {number} pixelRatio Pixel ratio.\n * @param {number} gutter Gutter of the source tiles.\n * @param {FunctionType} getTileFunction\n * Function returning source tiles (z, x, y, pixelRatio).\n * @param {number} [opt_errorThreshold] Acceptable reprojection error (in px).\n * @param {boolean} [opt_renderEdges] Render reprojection edges.\n * @param {boolean} [opt_interpolate] Use linear interpolation when resampling.\n */\n function ReprojTile(sourceProj, sourceTileGrid, targetProj, targetTileGrid, tileCoord, wrappedTileCoord, pixelRatio, gutter, getTileFunction, opt_errorThreshold, opt_renderEdges, opt_interpolate) {\n var _this = _super.call(this, tileCoord, TileState.IDLE, { interpolate: !!opt_interpolate }) || this;\n /**\n * @private\n * @type {boolean}\n */\n _this.renderEdges_ = opt_renderEdges !== undefined ? opt_renderEdges : false;\n /**\n * @private\n * @type {number}\n */\n _this.pixelRatio_ = pixelRatio;\n /**\n * @private\n * @type {number}\n */\n _this.gutter_ = gutter;\n /**\n * @private\n * @type {HTMLCanvasElement}\n */\n _this.canvas_ = null;\n /**\n * @private\n * @type {import(\"../tilegrid/TileGrid.js\").default}\n */\n _this.sourceTileGrid_ = sourceTileGrid;\n /**\n * @private\n * @type {import(\"../tilegrid/TileGrid.js\").default}\n */\n _this.targetTileGrid_ = targetTileGrid;\n /**\n * @private\n * @type {import(\"../tilecoord.js\").TileCoord}\n */\n _this.wrappedTileCoord_ = wrappedTileCoord ? wrappedTileCoord : tileCoord;\n /**\n * @private\n * @type {!Array}\n */\n _this.sourceTiles_ = [];\n /**\n * @private\n * @type {?Array}\n */\n _this.sourcesListenerKeys_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.sourceZ_ = 0;\n var targetExtent = targetTileGrid.getTileCoordExtent(_this.wrappedTileCoord_);\n var maxTargetExtent = _this.targetTileGrid_.getExtent();\n var maxSourceExtent = _this.sourceTileGrid_.getExtent();\n var limitedTargetExtent = maxTargetExtent\n ? getIntersection(targetExtent, maxTargetExtent)\n : targetExtent;\n if (getArea(limitedTargetExtent) === 0) {\n // Tile is completely outside range -> EMPTY\n // TODO: is it actually correct that the source even creates the tile ?\n _this.state = TileState.EMPTY;\n return _this;\n }\n var sourceProjExtent = sourceProj.getExtent();\n if (sourceProjExtent) {\n if (!maxSourceExtent) {\n maxSourceExtent = sourceProjExtent;\n }\n else {\n maxSourceExtent = getIntersection(maxSourceExtent, sourceProjExtent);\n }\n }\n var targetResolution = targetTileGrid.getResolution(_this.wrappedTileCoord_[0]);\n var sourceResolution = calculateSourceExtentResolution(sourceProj, targetProj, limitedTargetExtent, targetResolution);\n if (!isFinite(sourceResolution) || sourceResolution <= 0) {\n // invalid sourceResolution -> EMPTY\n // probably edges of the projections when no extent is defined\n _this.state = TileState.EMPTY;\n return _this;\n }\n var errorThresholdInPixels = opt_errorThreshold !== undefined ? opt_errorThreshold : ERROR_THRESHOLD;\n /**\n * @private\n * @type {!import(\"./Triangulation.js\").default}\n */\n _this.triangulation_ = new Triangulation(sourceProj, targetProj, limitedTargetExtent, maxSourceExtent, sourceResolution * errorThresholdInPixels, targetResolution);\n if (_this.triangulation_.getTriangles().length === 0) {\n // no valid triangles -> EMPTY\n _this.state = TileState.EMPTY;\n return _this;\n }\n _this.sourceZ_ = sourceTileGrid.getZForResolution(sourceResolution);\n var sourceExtent = _this.triangulation_.calculateSourceExtent();\n if (maxSourceExtent) {\n if (sourceProj.canWrapX()) {\n sourceExtent[1] = clamp(sourceExtent[1], maxSourceExtent[1], maxSourceExtent[3]);\n sourceExtent[3] = clamp(sourceExtent[3], maxSourceExtent[1], maxSourceExtent[3]);\n }\n else {\n sourceExtent = getIntersection(sourceExtent, maxSourceExtent);\n }\n }\n if (!getArea(sourceExtent)) {\n _this.state = TileState.EMPTY;\n }\n else {\n var sourceRange = sourceTileGrid.getTileRangeForExtentAndZ(sourceExtent, _this.sourceZ_);\n for (var srcX = sourceRange.minX; srcX <= sourceRange.maxX; srcX++) {\n for (var srcY = sourceRange.minY; srcY <= sourceRange.maxY; srcY++) {\n var tile = getTileFunction(_this.sourceZ_, srcX, srcY, pixelRatio);\n if (tile) {\n _this.sourceTiles_.push(tile);\n }\n }\n }\n if (_this.sourceTiles_.length === 0) {\n _this.state = TileState.EMPTY;\n }\n }\n return _this;\n }\n /**\n * Get the HTML Canvas element for this tile.\n * @return {HTMLCanvasElement} Canvas.\n */\n ReprojTile.prototype.getImage = function () {\n return this.canvas_;\n };\n /**\n * @private\n */\n ReprojTile.prototype.reproject_ = function () {\n var sources = [];\n this.sourceTiles_.forEach(function (tile, i, arr) {\n if (tile && tile.getState() == TileState.LOADED) {\n sources.push({\n extent: this.sourceTileGrid_.getTileCoordExtent(tile.tileCoord),\n image: tile.getImage(),\n });\n }\n }.bind(this));\n this.sourceTiles_.length = 0;\n if (sources.length === 0) {\n this.state = TileState.ERROR;\n }\n else {\n var z = this.wrappedTileCoord_[0];\n var size = this.targetTileGrid_.getTileSize(z);\n var width = typeof size === 'number' ? size : size[0];\n var height = typeof size === 'number' ? size : size[1];\n var targetResolution = this.targetTileGrid_.getResolution(z);\n var sourceResolution = this.sourceTileGrid_.getResolution(this.sourceZ_);\n var targetExtent = this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);\n this.canvas_ = renderReprojected(width, height, this.pixelRatio_, sourceResolution, this.sourceTileGrid_.getExtent(), targetResolution, targetExtent, this.triangulation_, sources, this.gutter_, this.renderEdges_, this.interpolate);\n this.state = TileState.LOADED;\n }\n this.changed();\n };\n /**\n * Load not yet loaded URI.\n */\n ReprojTile.prototype.load = function () {\n if (this.state == TileState.IDLE) {\n this.state = TileState.LOADING;\n this.changed();\n var leftToLoad_1 = 0;\n this.sourcesListenerKeys_ = [];\n this.sourceTiles_.forEach(function (tile, i, arr) {\n var state = tile.getState();\n if (state == TileState.IDLE || state == TileState.LOADING) {\n leftToLoad_1++;\n var sourceListenKey_1 = listen(tile, EventType.CHANGE, function (e) {\n var state = tile.getState();\n if (state == TileState.LOADED ||\n state == TileState.ERROR ||\n state == TileState.EMPTY) {\n unlistenByKey(sourceListenKey_1);\n leftToLoad_1--;\n if (leftToLoad_1 === 0) {\n this.unlistenSources_();\n this.reproject_();\n }\n }\n }, this);\n this.sourcesListenerKeys_.push(sourceListenKey_1);\n }\n }.bind(this));\n if (leftToLoad_1 === 0) {\n setTimeout(this.reproject_.bind(this), 0);\n }\n else {\n this.sourceTiles_.forEach(function (tile, i, arr) {\n var state = tile.getState();\n if (state == TileState.IDLE) {\n tile.load();\n }\n });\n }\n }\n };\n /**\n * @private\n */\n ReprojTile.prototype.unlistenSources_ = function () {\n this.sourcesListenerKeys_.forEach(unlistenByKey);\n this.sourcesListenerKeys_ = null;\n };\n /**\n * Remove from the cache due to expiry\n */\n ReprojTile.prototype.release = function () {\n if (this.canvas_) {\n releaseCanvas(this.canvas_.getContext('2d'));\n canvasPool.push(this.canvas_);\n this.canvas_ = null;\n }\n _super.prototype.release.call(this);\n };\n return ReprojTile;\n}(Tile));\nexport default ReprojTile;\n//# sourceMappingURL=Tile.js.map","/**\n * @module ol/renderer/vector\n */\nimport ImageState from '../ImageState.js';\nimport { getUid } from '../util.js';\n/**\n * Feature callback. The callback will be called with three arguments. The first\n * argument is one {@link module:ol/Feature~Feature feature} or {@link module:ol/render/Feature~RenderFeature render feature}\n * at the pixel, the second is the {@link module:ol/layer/Layer~Layer layer} of the feature and will be null for\n * unmanaged layers. The third is the {@link module:ol/geom/SimpleGeometry~SimpleGeometry} of the feature. For features\n * with a GeometryCollection geometry, it will be the first detected geometry from the collection.\n * @template T\n * @typedef {function(import(\"../Feature.js\").FeatureLike, import(\"../layer/Layer.js\").default, import(\"../geom/SimpleGeometry.js\").default): T} FeatureCallback\n */\n/**\n * Tolerance for geometry simplification in device pixels.\n * @type {number}\n */\nvar SIMPLIFY_TOLERANCE = 0.5;\n/**\n * @const\n * @type {Object}\n */\nvar GEOMETRY_RENDERERS = {\n 'Point': renderPointGeometry,\n 'LineString': renderLineStringGeometry,\n 'Polygon': renderPolygonGeometry,\n 'MultiPoint': renderMultiPointGeometry,\n 'MultiLineString': renderMultiLineStringGeometry,\n 'MultiPolygon': renderMultiPolygonGeometry,\n 'GeometryCollection': renderGeometryCollectionGeometry,\n 'Circle': renderCircleGeometry,\n};\n/**\n * @param {import(\"../Feature.js\").FeatureLike} feature1 Feature 1.\n * @param {import(\"../Feature.js\").FeatureLike} feature2 Feature 2.\n * @return {number} Order.\n */\nexport function defaultOrder(feature1, feature2) {\n return parseInt(getUid(feature1), 10) - parseInt(getUid(feature2), 10);\n}\n/**\n * @param {number} resolution Resolution.\n * @param {number} pixelRatio Pixel ratio.\n * @return {number} Squared pixel tolerance.\n */\nexport function getSquaredTolerance(resolution, pixelRatio) {\n var tolerance = getTolerance(resolution, pixelRatio);\n return tolerance * tolerance;\n}\n/**\n * @param {number} resolution Resolution.\n * @param {number} pixelRatio Pixel ratio.\n * @return {number} Pixel tolerance.\n */\nexport function getTolerance(resolution, pixelRatio) {\n return (SIMPLIFY_TOLERANCE * resolution) / pixelRatio;\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} builderGroup Builder group.\n * @param {import(\"../geom/Circle.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderCircleGeometry(builderGroup, geometry, style, feature, opt_declutterBuilderGroup) {\n var fillStyle = style.getFill();\n var strokeStyle = style.getStroke();\n if (fillStyle || strokeStyle) {\n var circleReplay = builderGroup.getBuilder(style.getZIndex(), 'Circle');\n circleReplay.setFillStrokeStyle(fillStyle, strokeStyle);\n circleReplay.drawCircle(geometry, feature);\n }\n var textStyle = style.getText();\n if (textStyle && textStyle.getText()) {\n var textReplay = (opt_declutterBuilderGroup || builderGroup).getBuilder(style.getZIndex(), 'Text');\n textReplay.setTextStyle(textStyle);\n textReplay.drawText(geometry, feature);\n }\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} replayGroup Replay group.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {function(import(\"../events/Event.js\").default): void} listener Listener function.\n * @param {import(\"../proj.js\").TransformFunction} [opt_transform] Transform from user to view projection.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n * @return {boolean} `true` if style is loading.\n */\nexport function renderFeature(replayGroup, feature, style, squaredTolerance, listener, opt_transform, opt_declutterBuilderGroup) {\n var loading = false;\n var imageStyle = style.getImage();\n if (imageStyle) {\n var imageState = imageStyle.getImageState();\n if (imageState == ImageState.LOADED || imageState == ImageState.ERROR) {\n imageStyle.unlistenImageChange(listener);\n }\n else {\n if (imageState == ImageState.IDLE) {\n imageStyle.load();\n }\n imageStyle.listenImageChange(listener);\n loading = true;\n }\n }\n renderFeatureInternal(replayGroup, feature, style, squaredTolerance, opt_transform, opt_declutterBuilderGroup);\n return loading;\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} replayGroup Replay group.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {import(\"../proj.js\").TransformFunction} [opt_transform] Optional transform function.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderFeatureInternal(replayGroup, feature, style, squaredTolerance, opt_transform, opt_declutterBuilderGroup) {\n var geometry = style.getGeometryFunction()(feature);\n if (!geometry) {\n return;\n }\n var simplifiedGeometry = geometry.simplifyTransformed(squaredTolerance, opt_transform);\n var renderer = style.getRenderer();\n if (renderer) {\n renderGeometry(replayGroup, simplifiedGeometry, style, feature);\n }\n else {\n var geometryRenderer = GEOMETRY_RENDERERS[simplifiedGeometry.getType()];\n geometryRenderer(replayGroup, simplifiedGeometry, style, feature, opt_declutterBuilderGroup);\n }\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} replayGroup Replay group.\n * @param {import(\"../geom/Geometry.js\").default|import(\"../render/Feature.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n */\nfunction renderGeometry(replayGroup, geometry, style, feature) {\n if (geometry.getType() == 'GeometryCollection') {\n var geometries = \n /** @type {import(\"../geom/GeometryCollection.js\").default} */ (geometry).getGeometries();\n for (var i = 0, ii = geometries.length; i < ii; ++i) {\n renderGeometry(replayGroup, geometries[i], style, feature);\n }\n return;\n }\n var replay = replayGroup.getBuilder(style.getZIndex(), 'Default');\n replay.drawCustom(\n /** @type {import(\"../geom/SimpleGeometry.js\").default} */ (geometry), feature, style.getRenderer(), style.getHitDetectionRenderer());\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} replayGroup Replay group.\n * @param {import(\"../geom/GeometryCollection.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderGeometryCollectionGeometry(replayGroup, geometry, style, feature, opt_declutterBuilderGroup) {\n var geometries = geometry.getGeometriesArray();\n var i, ii;\n for (i = 0, ii = geometries.length; i < ii; ++i) {\n var geometryRenderer = GEOMETRY_RENDERERS[geometries[i].getType()];\n geometryRenderer(replayGroup, geometries[i], style, feature, opt_declutterBuilderGroup);\n }\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} builderGroup Replay group.\n * @param {import(\"../geom/LineString.js\").default|import(\"../render/Feature.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderLineStringGeometry(builderGroup, geometry, style, feature, opt_declutterBuilderGroup) {\n var strokeStyle = style.getStroke();\n if (strokeStyle) {\n var lineStringReplay = builderGroup.getBuilder(style.getZIndex(), 'LineString');\n lineStringReplay.setFillStrokeStyle(null, strokeStyle);\n lineStringReplay.drawLineString(geometry, feature);\n }\n var textStyle = style.getText();\n if (textStyle && textStyle.getText()) {\n var textReplay = (opt_declutterBuilderGroup || builderGroup).getBuilder(style.getZIndex(), 'Text');\n textReplay.setTextStyle(textStyle);\n textReplay.drawText(geometry, feature);\n }\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} builderGroup Replay group.\n * @param {import(\"../geom/MultiLineString.js\").default|import(\"../render/Feature.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderMultiLineStringGeometry(builderGroup, geometry, style, feature, opt_declutterBuilderGroup) {\n var strokeStyle = style.getStroke();\n if (strokeStyle) {\n var lineStringReplay = builderGroup.getBuilder(style.getZIndex(), 'LineString');\n lineStringReplay.setFillStrokeStyle(null, strokeStyle);\n lineStringReplay.drawMultiLineString(geometry, feature);\n }\n var textStyle = style.getText();\n if (textStyle && textStyle.getText()) {\n var textReplay = (opt_declutterBuilderGroup || builderGroup).getBuilder(style.getZIndex(), 'Text');\n textReplay.setTextStyle(textStyle);\n textReplay.drawText(geometry, feature);\n }\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} builderGroup Replay group.\n * @param {import(\"../geom/MultiPolygon.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderMultiPolygonGeometry(builderGroup, geometry, style, feature, opt_declutterBuilderGroup) {\n var fillStyle = style.getFill();\n var strokeStyle = style.getStroke();\n if (strokeStyle || fillStyle) {\n var polygonReplay = builderGroup.getBuilder(style.getZIndex(), 'Polygon');\n polygonReplay.setFillStrokeStyle(fillStyle, strokeStyle);\n polygonReplay.drawMultiPolygon(geometry, feature);\n }\n var textStyle = style.getText();\n if (textStyle && textStyle.getText()) {\n var textReplay = (opt_declutterBuilderGroup || builderGroup).getBuilder(style.getZIndex(), 'Text');\n textReplay.setTextStyle(textStyle);\n textReplay.drawText(geometry, feature);\n }\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} builderGroup Replay group.\n * @param {import(\"../geom/Point.js\").default|import(\"../render/Feature.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderPointGeometry(builderGroup, geometry, style, feature, opt_declutterBuilderGroup) {\n var imageStyle = style.getImage();\n var textStyle = style.getText();\n /** @type {import(\"../render/canvas.js\").DeclutterImageWithText} */\n var declutterImageWithText;\n if (imageStyle) {\n if (imageStyle.getImageState() != ImageState.LOADED) {\n return;\n }\n var imageBuilderGroup = builderGroup;\n if (opt_declutterBuilderGroup) {\n var declutterMode = imageStyle.getDeclutterMode();\n if (declutterMode !== 'none') {\n imageBuilderGroup = opt_declutterBuilderGroup;\n if (declutterMode === 'obstacle') {\n // draw in non-declutter group:\n var imageReplay_1 = builderGroup.getBuilder(style.getZIndex(), 'Image');\n imageReplay_1.setImageStyle(imageStyle, declutterImageWithText);\n imageReplay_1.drawPoint(geometry, feature);\n }\n else if (textStyle && textStyle.getText()) {\n declutterImageWithText = {};\n }\n }\n }\n var imageReplay = imageBuilderGroup.getBuilder(style.getZIndex(), 'Image');\n imageReplay.setImageStyle(imageStyle, declutterImageWithText);\n imageReplay.drawPoint(geometry, feature);\n }\n if (textStyle && textStyle.getText()) {\n var textBuilderGroup = builderGroup;\n if (opt_declutterBuilderGroup) {\n textBuilderGroup = opt_declutterBuilderGroup;\n }\n var textReplay = textBuilderGroup.getBuilder(style.getZIndex(), 'Text');\n textReplay.setTextStyle(textStyle, declutterImageWithText);\n textReplay.drawText(geometry, feature);\n }\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} builderGroup Replay group.\n * @param {import(\"../geom/MultiPoint.js\").default|import(\"../render/Feature.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderMultiPointGeometry(builderGroup, geometry, style, feature, opt_declutterBuilderGroup) {\n var imageStyle = style.getImage();\n var textStyle = style.getText();\n /** @type {import(\"../render/canvas.js\").DeclutterImageWithText} */\n var declutterImageWithText;\n if (imageStyle) {\n if (imageStyle.getImageState() != ImageState.LOADED) {\n return;\n }\n var imageBuilderGroup = builderGroup;\n if (opt_declutterBuilderGroup) {\n var declutterMode = imageStyle.getDeclutterMode();\n if (declutterMode !== 'none') {\n imageBuilderGroup = opt_declutterBuilderGroup;\n if (declutterMode === 'obstacle') {\n // draw in non-declutter group:\n var imageReplay_2 = builderGroup.getBuilder(style.getZIndex(), 'Image');\n imageReplay_2.setImageStyle(imageStyle, declutterImageWithText);\n imageReplay_2.drawMultiPoint(geometry, feature);\n }\n else if (textStyle && textStyle.getText()) {\n declutterImageWithText = {};\n }\n }\n }\n var imageReplay = imageBuilderGroup.getBuilder(style.getZIndex(), 'Image');\n imageReplay.setImageStyle(imageStyle, declutterImageWithText);\n imageReplay.drawMultiPoint(geometry, feature);\n }\n if (textStyle && textStyle.getText()) {\n var textBuilderGroup = builderGroup;\n if (opt_declutterBuilderGroup) {\n textBuilderGroup = opt_declutterBuilderGroup;\n }\n var textReplay = textBuilderGroup.getBuilder(style.getZIndex(), 'Text');\n textReplay.setTextStyle(textStyle, declutterImageWithText);\n textReplay.drawText(geometry, feature);\n }\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} builderGroup Replay group.\n * @param {import(\"../geom/Polygon.js\").default|import(\"../render/Feature.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderPolygonGeometry(builderGroup, geometry, style, feature, opt_declutterBuilderGroup) {\n var fillStyle = style.getFill();\n var strokeStyle = style.getStroke();\n if (fillStyle || strokeStyle) {\n var polygonReplay = builderGroup.getBuilder(style.getZIndex(), 'Polygon');\n polygonReplay.setFillStrokeStyle(fillStyle, strokeStyle);\n polygonReplay.drawPolygon(geometry, feature);\n }\n var textStyle = style.getText();\n if (textStyle && textStyle.getText()) {\n var textReplay = (opt_declutterBuilderGroup || builderGroup).getBuilder(style.getZIndex(), 'Text');\n textReplay.setTextStyle(textStyle);\n textReplay.drawText(geometry, feature);\n }\n}\n//# sourceMappingURL=vector.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|WebGLRenderingContext)} [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. For Canvas 2D layers,\n * the context will be the 2D rendering context. For WebGL layers, the context will be the WebGL\n * context.\n * @type {CanvasRenderingContext2D|WebGLRenderingContext|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/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/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, listener: (event: EventClass) => ?) => Return} OnSignature\n */\n/***\n * @template {string} Type\n * @template Return\n * @typedef {(type: Type[], listener: (event: Event|import(\"./events/Event\").default) => ?) => Return extends void ? void : Return[]} CombinedOnSignature\n */\n/**\n * @typedef {'change'|'error'} EventTypes\n */\n/***\n * @template Return\n * @typedef {OnSignature & CombinedOnSignature} ObservableOnSignature\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 _this.on =\n /** @type {ObservableOnSignature} */ (_this.onInternal);\n _this.once =\n /** @type {ObservableOnSignature} */ (_this.onceInternal);\n _this.un = /** @type {ObservableOnSignature} */ (_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((Event|import(\"./events/Event\").default)): ?} 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((Event|import(\"./events/Event\").default)): ?} 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((Event|import(\"./events/Event\").default)): ?} 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)): ?} 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)): ?} 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)): ?} 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","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceItem.vue?vue&type=style&index=0&id=07e37291&lang=scss&scoped=true&\"","exports.f = require('./_wks');\n","/**\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/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|null}\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|null} 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 * Pass `null` to just remove the control from the current map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../PluggableMap.js\").default|null} 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 (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","/**\n * @module ol/render/canvas/Immediate\n */\n// FIXME test, especially polygons with holes and multipolygons\n// FIXME need to handle large thick features (where pixel size matters)\n// FIXME add offset and end to ol/geom/flat/transform~transform2D?\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 VectorContext from '../VectorContext.js';\nimport { asColorLike } from '../../colorlike.js';\nimport { compose as composeTransform, create as createTransform, } from '../../transform.js';\nimport { defaultFillStyle, defaultFont, defaultLineCap, defaultLineDash, defaultLineDashOffset, defaultLineJoin, defaultLineWidth, defaultMiterLimit, defaultStrokeStyle, defaultTextAlign, defaultTextBaseline, } from '../canvas.js';\nimport { equals } from '../../array.js';\nimport { intersects } from '../../extent.js';\nimport { transform2D } from '../../geom/flat/transform.js';\nimport { transformGeom2D } from '../../geom/SimpleGeometry.js';\n/**\n * @classdesc\n * A concrete subclass of {@link module:ol/render/VectorContext~VectorContext VectorContext} that implements\n * direct rendering of features and geometries to an HTML5 Canvas context.\n * Instances of this class are created internally by the library and\n * provided to application code as vectorContext member of the\n * {@link module:ol/render/Event~RenderEvent RenderEvent} object associated with postcompose, precompose and\n * render events emitted by layers and maps.\n */\nvar CanvasImmediateRenderer = /** @class */ (function (_super) {\n __extends(CanvasImmediateRenderer, _super);\n /**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @param {import(\"../../transform.js\").Transform} transform Transform.\n * @param {number} viewRotation View rotation.\n * @param {number} [opt_squaredTolerance] Optional squared tolerance for simplification.\n * @param {import(\"../../proj.js\").TransformFunction} [opt_userTransform] Transform from user to view projection.\n */\n function CanvasImmediateRenderer(context, pixelRatio, extent, transform, viewRotation, opt_squaredTolerance, opt_userTransform) {\n var _this = _super.call(this) || this;\n /**\n * @private\n * @type {CanvasRenderingContext2D}\n */\n _this.context_ = context;\n /**\n * @private\n * @type {number}\n */\n _this.pixelRatio_ = pixelRatio;\n /**\n * @private\n * @type {import(\"../../extent.js\").Extent}\n */\n _this.extent_ = extent;\n /**\n * @private\n * @type {import(\"../../transform.js\").Transform}\n */\n _this.transform_ = transform;\n /**\n * @private\n * @type {number}\n */\n _this.viewRotation_ = viewRotation;\n /**\n * @private\n * @type {number}\n */\n _this.squaredTolerance_ = opt_squaredTolerance;\n /**\n * @private\n * @type {import(\"../../proj.js\").TransformFunction}\n */\n _this.userTransform_ = opt_userTransform;\n /**\n * @private\n * @type {?import(\"../canvas.js\").FillState}\n */\n _this.contextFillState_ = null;\n /**\n * @private\n * @type {?import(\"../canvas.js\").StrokeState}\n */\n _this.contextStrokeState_ = null;\n /**\n * @private\n * @type {?import(\"../canvas.js\").TextState}\n */\n _this.contextTextState_ = null;\n /**\n * @private\n * @type {?import(\"../canvas.js\").FillState}\n */\n _this.fillState_ = null;\n /**\n * @private\n * @type {?import(\"../canvas.js\").StrokeState}\n */\n _this.strokeState_ = null;\n /**\n * @private\n * @type {HTMLCanvasElement|HTMLVideoElement|HTMLImageElement}\n */\n _this.image_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.imageAnchorX_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.imageAnchorY_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.imageHeight_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.imageOpacity_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.imageOriginX_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.imageOriginY_ = 0;\n /**\n * @private\n * @type {boolean}\n */\n _this.imageRotateWithView_ = false;\n /**\n * @private\n * @type {number}\n */\n _this.imageRotation_ = 0;\n /**\n * @private\n * @type {import(\"../../size.js\").Size}\n */\n _this.imageScale_ = [0, 0];\n /**\n * @private\n * @type {number}\n */\n _this.imageWidth_ = 0;\n /**\n * @private\n * @type {string}\n */\n _this.text_ = '';\n /**\n * @private\n * @type {number}\n */\n _this.textOffsetX_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.textOffsetY_ = 0;\n /**\n * @private\n * @type {boolean}\n */\n _this.textRotateWithView_ = false;\n /**\n * @private\n * @type {number}\n */\n _this.textRotation_ = 0;\n /**\n * @private\n * @type {import(\"../../size.js\").Size}\n */\n _this.textScale_ = [0, 0];\n /**\n * @private\n * @type {?import(\"../canvas.js\").FillState}\n */\n _this.textFillState_ = null;\n /**\n * @private\n * @type {?import(\"../canvas.js\").StrokeState}\n */\n _this.textStrokeState_ = null;\n /**\n * @private\n * @type {?import(\"../canvas.js\").TextState}\n */\n _this.textState_ = null;\n /**\n * @private\n * @type {Array}\n */\n _this.pixelCoordinates_ = [];\n /**\n * @private\n * @type {import(\"../../transform.js\").Transform}\n */\n _this.tmpLocalTransform_ = createTransform();\n return _this;\n }\n /**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @private\n */\n CanvasImmediateRenderer.prototype.drawImages_ = function (flatCoordinates, offset, end, stride) {\n if (!this.image_) {\n return;\n }\n var pixelCoordinates = transform2D(flatCoordinates, offset, end, stride, this.transform_, this.pixelCoordinates_);\n var context = this.context_;\n var localTransform = this.tmpLocalTransform_;\n var alpha = context.globalAlpha;\n if (this.imageOpacity_ != 1) {\n context.globalAlpha = alpha * this.imageOpacity_;\n }\n var rotation = this.imageRotation_;\n if (this.imageRotateWithView_) {\n rotation += this.viewRotation_;\n }\n for (var i = 0, ii = pixelCoordinates.length; i < ii; i += 2) {\n var x = pixelCoordinates[i] - this.imageAnchorX_;\n var y = pixelCoordinates[i + 1] - this.imageAnchorY_;\n if (rotation !== 0 ||\n this.imageScale_[0] != 1 ||\n this.imageScale_[1] != 1) {\n var centerX = x + this.imageAnchorX_;\n var centerY = y + this.imageAnchorY_;\n composeTransform(localTransform, centerX, centerY, 1, 1, rotation, -centerX, -centerY);\n context.setTransform.apply(context, localTransform);\n context.translate(centerX, centerY);\n context.scale(this.imageScale_[0], this.imageScale_[1]);\n context.drawImage(this.image_, this.imageOriginX_, this.imageOriginY_, this.imageWidth_, this.imageHeight_, -this.imageAnchorX_, -this.imageAnchorY_, this.imageWidth_, this.imageHeight_);\n context.setTransform(1, 0, 0, 1, 0, 0);\n }\n else {\n context.drawImage(this.image_, this.imageOriginX_, this.imageOriginY_, this.imageWidth_, this.imageHeight_, x, y, this.imageWidth_, this.imageHeight_);\n }\n }\n if (this.imageOpacity_ != 1) {\n context.globalAlpha = alpha;\n }\n };\n /**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @private\n */\n CanvasImmediateRenderer.prototype.drawText_ = function (flatCoordinates, offset, end, stride) {\n if (!this.textState_ || this.text_ === '') {\n return;\n }\n if (this.textFillState_) {\n this.setContextFillState_(this.textFillState_);\n }\n if (this.textStrokeState_) {\n this.setContextStrokeState_(this.textStrokeState_);\n }\n this.setContextTextState_(this.textState_);\n var pixelCoordinates = transform2D(flatCoordinates, offset, end, stride, this.transform_, this.pixelCoordinates_);\n var context = this.context_;\n var rotation = this.textRotation_;\n if (this.textRotateWithView_) {\n rotation += this.viewRotation_;\n }\n for (; offset < end; offset += stride) {\n var x = pixelCoordinates[offset] + this.textOffsetX_;\n var y = pixelCoordinates[offset + 1] + this.textOffsetY_;\n if (rotation !== 0 ||\n this.textScale_[0] != 1 ||\n this.textScale_[1] != 1) {\n var localTransform = composeTransform(this.tmpLocalTransform_, x, y, 1, 1, rotation, -x, -y);\n context.setTransform.apply(context, localTransform);\n context.translate(x, y);\n context.scale(this.textScale_[0], this.textScale_[1]);\n if (this.textStrokeState_) {\n context.strokeText(this.text_, 0, 0);\n }\n if (this.textFillState_) {\n context.fillText(this.text_, 0, 0);\n }\n context.setTransform(1, 0, 0, 1, 0, 0);\n }\n else {\n if (this.textStrokeState_) {\n context.strokeText(this.text_, x, y);\n }\n if (this.textFillState_) {\n context.fillText(this.text_, x, y);\n }\n }\n }\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 {boolean} close Close.\n * @private\n * @return {number} end End.\n */\n CanvasImmediateRenderer.prototype.moveToLineTo_ = function (flatCoordinates, offset, end, stride, close) {\n var context = this.context_;\n var pixelCoordinates = transform2D(flatCoordinates, offset, end, stride, this.transform_, this.pixelCoordinates_);\n context.moveTo(pixelCoordinates[0], pixelCoordinates[1]);\n var length = pixelCoordinates.length;\n if (close) {\n length -= 2;\n }\n for (var i = 2; i < length; i += 2) {\n context.lineTo(pixelCoordinates[i], pixelCoordinates[i + 1]);\n }\n if (close) {\n context.closePath();\n }\n return end;\n };\n /**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @private\n * @return {number} End.\n */\n CanvasImmediateRenderer.prototype.drawRings_ = function (flatCoordinates, offset, ends, stride) {\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n offset = this.moveToLineTo_(flatCoordinates, offset, ends[i], stride, true);\n }\n return offset;\n };\n /**\n * Render a circle geometry into the canvas. Rendering is immediate and uses\n * the current fill and stroke styles.\n *\n * @param {import(\"../../geom/Circle.js\").default} geometry Circle geometry.\n * @api\n */\n CanvasImmediateRenderer.prototype.drawCircle = function (geometry) {\n if (!intersects(this.extent_, geometry.getExtent())) {\n return;\n }\n if (this.fillState_ || this.strokeState_) {\n if (this.fillState_) {\n this.setContextFillState_(this.fillState_);\n }\n if (this.strokeState_) {\n this.setContextStrokeState_(this.strokeState_);\n }\n var pixelCoordinates = transformGeom2D(geometry, this.transform_, this.pixelCoordinates_);\n var dx = pixelCoordinates[2] - pixelCoordinates[0];\n var dy = pixelCoordinates[3] - pixelCoordinates[1];\n var radius = Math.sqrt(dx * dx + dy * dy);\n var context = this.context_;\n context.beginPath();\n context.arc(pixelCoordinates[0], pixelCoordinates[1], radius, 0, 2 * Math.PI);\n if (this.fillState_) {\n context.fill();\n }\n if (this.strokeState_) {\n context.stroke();\n }\n }\n if (this.text_ !== '') {\n this.drawText_(geometry.getCenter(), 0, 2, 2);\n }\n };\n /**\n * Set the rendering style. Note that since this is an immediate rendering API,\n * any `zIndex` on the provided style will be ignored.\n *\n * @param {import(\"../../style/Style.js\").default} style The rendering style.\n * @api\n */\n CanvasImmediateRenderer.prototype.setStyle = function (style) {\n this.setFillStrokeStyle(style.getFill(), style.getStroke());\n this.setImageStyle(style.getImage());\n this.setTextStyle(style.getText());\n };\n /**\n * @param {import(\"../../transform.js\").Transform} transform Transform.\n */\n CanvasImmediateRenderer.prototype.setTransform = function (transform) {\n this.transform_ = transform;\n };\n /**\n * Render a geometry into the canvas. Call\n * {@link module:ol/render/canvas/Immediate~CanvasImmediateRenderer#setStyle renderer.setStyle()} first to set the rendering style.\n *\n * @param {import(\"../../geom/Geometry.js\").default|import(\"../Feature.js\").default} geometry The geometry to render.\n * @api\n */\n CanvasImmediateRenderer.prototype.drawGeometry = function (geometry) {\n var type = geometry.getType();\n switch (type) {\n case 'Point':\n this.drawPoint(\n /** @type {import(\"../../geom/Point.js\").default} */ (geometry));\n break;\n case 'LineString':\n this.drawLineString(\n /** @type {import(\"../../geom/LineString.js\").default} */ (geometry));\n break;\n case 'Polygon':\n this.drawPolygon(\n /** @type {import(\"../../geom/Polygon.js\").default} */ (geometry));\n break;\n case 'MultiPoint':\n this.drawMultiPoint(\n /** @type {import(\"../../geom/MultiPoint.js\").default} */ (geometry));\n break;\n case 'MultiLineString':\n this.drawMultiLineString(\n /** @type {import(\"../../geom/MultiLineString.js\").default} */ (geometry));\n break;\n case 'MultiPolygon':\n this.drawMultiPolygon(\n /** @type {import(\"../../geom/MultiPolygon.js\").default} */ (geometry));\n break;\n case 'GeometryCollection':\n this.drawGeometryCollection(\n /** @type {import(\"../../geom/GeometryCollection.js\").default} */ (geometry));\n break;\n case 'Circle':\n this.drawCircle(\n /** @type {import(\"../../geom/Circle.js\").default} */ (geometry));\n break;\n default:\n }\n };\n /**\n * Render a feature into the canvas. Note that any `zIndex` on the provided\n * style will be ignored - features are rendered immediately in the order that\n * this method is called. If you need `zIndex` support, you should be using an\n * {@link module:ol/layer/Vector~VectorLayer VectorLayer} instead.\n *\n * @param {import(\"../../Feature.js\").default} feature Feature.\n * @param {import(\"../../style/Style.js\").default} style Style.\n * @api\n */\n CanvasImmediateRenderer.prototype.drawFeature = function (feature, style) {\n var geometry = style.getGeometryFunction()(feature);\n if (!geometry || !intersects(this.extent_, geometry.getExtent())) {\n return;\n }\n this.setStyle(style);\n this.drawGeometry(geometry);\n };\n /**\n * Render a GeometryCollection to the canvas. Rendering is immediate and\n * uses the current styles appropriate for each geometry in the collection.\n *\n * @param {import(\"../../geom/GeometryCollection.js\").default} geometry Geometry collection.\n */\n CanvasImmediateRenderer.prototype.drawGeometryCollection = function (geometry) {\n var geometries = geometry.getGeometriesArray();\n for (var i = 0, ii = geometries.length; i < ii; ++i) {\n this.drawGeometry(geometries[i]);\n }\n };\n /**\n * Render a Point geometry into the canvas. Rendering is immediate and uses\n * the current style.\n *\n * @param {import(\"../../geom/Point.js\").default|import(\"../Feature.js\").default} geometry Point geometry.\n */\n CanvasImmediateRenderer.prototype.drawPoint = function (geometry) {\n if (this.squaredTolerance_) {\n geometry = /** @type {import(\"../../geom/Point.js\").default} */ (geometry.simplifyTransformed(this.squaredTolerance_, this.userTransform_));\n }\n var flatCoordinates = geometry.getFlatCoordinates();\n var stride = geometry.getStride();\n if (this.image_) {\n this.drawImages_(flatCoordinates, 0, flatCoordinates.length, stride);\n }\n if (this.text_ !== '') {\n this.drawText_(flatCoordinates, 0, flatCoordinates.length, stride);\n }\n };\n /**\n * Render a MultiPoint geometry into the canvas. Rendering is immediate and\n * uses the current style.\n *\n * @param {import(\"../../geom/MultiPoint.js\").default|import(\"../Feature.js\").default} geometry MultiPoint geometry.\n */\n CanvasImmediateRenderer.prototype.drawMultiPoint = function (geometry) {\n if (this.squaredTolerance_) {\n geometry = /** @type {import(\"../../geom/MultiPoint.js\").default} */ (geometry.simplifyTransformed(this.squaredTolerance_, this.userTransform_));\n }\n var flatCoordinates = geometry.getFlatCoordinates();\n var stride = geometry.getStride();\n if (this.image_) {\n this.drawImages_(flatCoordinates, 0, flatCoordinates.length, stride);\n }\n if (this.text_ !== '') {\n this.drawText_(flatCoordinates, 0, flatCoordinates.length, stride);\n }\n };\n /**\n * Render a LineString into the canvas. Rendering is immediate and uses\n * the current style.\n *\n * @param {import(\"../../geom/LineString.js\").default|import(\"../Feature.js\").default} geometry LineString geometry.\n */\n CanvasImmediateRenderer.prototype.drawLineString = function (geometry) {\n if (this.squaredTolerance_) {\n geometry = /** @type {import(\"../../geom/LineString.js\").default} */ (geometry.simplifyTransformed(this.squaredTolerance_, this.userTransform_));\n }\n if (!intersects(this.extent_, geometry.getExtent())) {\n return;\n }\n if (this.strokeState_) {\n this.setContextStrokeState_(this.strokeState_);\n var context = this.context_;\n var flatCoordinates = geometry.getFlatCoordinates();\n context.beginPath();\n this.moveToLineTo_(flatCoordinates, 0, flatCoordinates.length, geometry.getStride(), false);\n context.stroke();\n }\n if (this.text_ !== '') {\n var flatMidpoint = geometry.getFlatMidpoint();\n this.drawText_(flatMidpoint, 0, 2, 2);\n }\n };\n /**\n * Render a MultiLineString geometry into the canvas. Rendering is immediate\n * and uses the current style.\n *\n * @param {import(\"../../geom/MultiLineString.js\").default|import(\"../Feature.js\").default} geometry MultiLineString geometry.\n */\n CanvasImmediateRenderer.prototype.drawMultiLineString = function (geometry) {\n if (this.squaredTolerance_) {\n geometry =\n /** @type {import(\"../../geom/MultiLineString.js\").default} */ (geometry.simplifyTransformed(this.squaredTolerance_, this.userTransform_));\n }\n var geometryExtent = geometry.getExtent();\n if (!intersects(this.extent_, geometryExtent)) {\n return;\n }\n if (this.strokeState_) {\n this.setContextStrokeState_(this.strokeState_);\n var context = this.context_;\n var flatCoordinates = geometry.getFlatCoordinates();\n var offset = 0;\n var ends = /** @type {Array} */ (geometry.getEnds());\n var stride = geometry.getStride();\n context.beginPath();\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n offset = this.moveToLineTo_(flatCoordinates, offset, ends[i], stride, false);\n }\n context.stroke();\n }\n if (this.text_ !== '') {\n var flatMidpoints = geometry.getFlatMidpoints();\n this.drawText_(flatMidpoints, 0, flatMidpoints.length, 2);\n }\n };\n /**\n * Render a Polygon geometry into the canvas. Rendering is immediate and uses\n * the current style.\n *\n * @param {import(\"../../geom/Polygon.js\").default|import(\"../Feature.js\").default} geometry Polygon geometry.\n */\n CanvasImmediateRenderer.prototype.drawPolygon = function (geometry) {\n if (this.squaredTolerance_) {\n geometry = /** @type {import(\"../../geom/Polygon.js\").default} */ (geometry.simplifyTransformed(this.squaredTolerance_, this.userTransform_));\n }\n if (!intersects(this.extent_, geometry.getExtent())) {\n return;\n }\n if (this.strokeState_ || this.fillState_) {\n if (this.fillState_) {\n this.setContextFillState_(this.fillState_);\n }\n if (this.strokeState_) {\n this.setContextStrokeState_(this.strokeState_);\n }\n var context = this.context_;\n context.beginPath();\n this.drawRings_(geometry.getOrientedFlatCoordinates(), 0, \n /** @type {Array} */ (geometry.getEnds()), geometry.getStride());\n if (this.fillState_) {\n context.fill();\n }\n if (this.strokeState_) {\n context.stroke();\n }\n }\n if (this.text_ !== '') {\n var flatInteriorPoint = geometry.getFlatInteriorPoint();\n this.drawText_(flatInteriorPoint, 0, 2, 2);\n }\n };\n /**\n * Render MultiPolygon geometry into the canvas. Rendering is immediate and\n * uses the current style.\n * @param {import(\"../../geom/MultiPolygon.js\").default} geometry MultiPolygon geometry.\n */\n CanvasImmediateRenderer.prototype.drawMultiPolygon = function (geometry) {\n if (this.squaredTolerance_) {\n geometry = /** @type {import(\"../../geom/MultiPolygon.js\").default} */ (geometry.simplifyTransformed(this.squaredTolerance_, this.userTransform_));\n }\n if (!intersects(this.extent_, geometry.getExtent())) {\n return;\n }\n if (this.strokeState_ || this.fillState_) {\n if (this.fillState_) {\n this.setContextFillState_(this.fillState_);\n }\n if (this.strokeState_) {\n this.setContextStrokeState_(this.strokeState_);\n }\n var context = this.context_;\n var flatCoordinates = geometry.getOrientedFlatCoordinates();\n var offset = 0;\n var endss = geometry.getEndss();\n var stride = geometry.getStride();\n context.beginPath();\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n offset = this.drawRings_(flatCoordinates, offset, ends, stride);\n }\n if (this.fillState_) {\n context.fill();\n }\n if (this.strokeState_) {\n context.stroke();\n }\n }\n if (this.text_ !== '') {\n var flatInteriorPoints = geometry.getFlatInteriorPoints();\n this.drawText_(flatInteriorPoints, 0, flatInteriorPoints.length, 2);\n }\n };\n /**\n * @param {import(\"../canvas.js\").FillState} fillState Fill state.\n * @private\n */\n CanvasImmediateRenderer.prototype.setContextFillState_ = function (fillState) {\n var context = this.context_;\n var contextFillState = this.contextFillState_;\n if (!contextFillState) {\n context.fillStyle = fillState.fillStyle;\n this.contextFillState_ = {\n fillStyle: fillState.fillStyle,\n };\n }\n else {\n if (contextFillState.fillStyle != fillState.fillStyle) {\n contextFillState.fillStyle = fillState.fillStyle;\n context.fillStyle = fillState.fillStyle;\n }\n }\n };\n /**\n * @param {import(\"../canvas.js\").StrokeState} strokeState Stroke state.\n * @private\n */\n CanvasImmediateRenderer.prototype.setContextStrokeState_ = function (strokeState) {\n var context = this.context_;\n var contextStrokeState = this.contextStrokeState_;\n if (!contextStrokeState) {\n context.lineCap = strokeState.lineCap;\n if (context.setLineDash) {\n context.setLineDash(strokeState.lineDash);\n context.lineDashOffset = strokeState.lineDashOffset;\n }\n context.lineJoin = strokeState.lineJoin;\n context.lineWidth = strokeState.lineWidth;\n context.miterLimit = strokeState.miterLimit;\n context.strokeStyle = strokeState.strokeStyle;\n this.contextStrokeState_ = {\n lineCap: strokeState.lineCap,\n lineDash: strokeState.lineDash,\n lineDashOffset: strokeState.lineDashOffset,\n lineJoin: strokeState.lineJoin,\n lineWidth: strokeState.lineWidth,\n miterLimit: strokeState.miterLimit,\n strokeStyle: strokeState.strokeStyle,\n };\n }\n else {\n if (contextStrokeState.lineCap != strokeState.lineCap) {\n contextStrokeState.lineCap = strokeState.lineCap;\n context.lineCap = strokeState.lineCap;\n }\n if (context.setLineDash) {\n if (!equals(contextStrokeState.lineDash, strokeState.lineDash)) {\n context.setLineDash((contextStrokeState.lineDash = strokeState.lineDash));\n }\n if (contextStrokeState.lineDashOffset != strokeState.lineDashOffset) {\n contextStrokeState.lineDashOffset = strokeState.lineDashOffset;\n context.lineDashOffset = strokeState.lineDashOffset;\n }\n }\n if (contextStrokeState.lineJoin != strokeState.lineJoin) {\n contextStrokeState.lineJoin = strokeState.lineJoin;\n context.lineJoin = strokeState.lineJoin;\n }\n if (contextStrokeState.lineWidth != strokeState.lineWidth) {\n contextStrokeState.lineWidth = strokeState.lineWidth;\n context.lineWidth = strokeState.lineWidth;\n }\n if (contextStrokeState.miterLimit != strokeState.miterLimit) {\n contextStrokeState.miterLimit = strokeState.miterLimit;\n context.miterLimit = strokeState.miterLimit;\n }\n if (contextStrokeState.strokeStyle != strokeState.strokeStyle) {\n contextStrokeState.strokeStyle = strokeState.strokeStyle;\n context.strokeStyle = strokeState.strokeStyle;\n }\n }\n };\n /**\n * @param {import(\"../canvas.js\").TextState} textState Text state.\n * @private\n */\n CanvasImmediateRenderer.prototype.setContextTextState_ = function (textState) {\n var context = this.context_;\n var contextTextState = this.contextTextState_;\n var textAlign = textState.textAlign\n ? textState.textAlign\n : defaultTextAlign;\n if (!contextTextState) {\n context.font = textState.font;\n context.textAlign = /** @type {CanvasTextAlign} */ (textAlign);\n context.textBaseline = /** @type {CanvasTextBaseline} */ (textState.textBaseline);\n this.contextTextState_ = {\n font: textState.font,\n textAlign: textAlign,\n textBaseline: textState.textBaseline,\n };\n }\n else {\n if (contextTextState.font != textState.font) {\n contextTextState.font = textState.font;\n context.font = textState.font;\n }\n if (contextTextState.textAlign != textAlign) {\n contextTextState.textAlign = /** @type {CanvasTextAlign} */ (textAlign);\n context.textAlign = /** @type {CanvasTextAlign} */ (textAlign);\n }\n if (contextTextState.textBaseline != textState.textBaseline) {\n contextTextState.textBaseline = /** @type {CanvasTextBaseline} */ (textState.textBaseline);\n context.textBaseline = /** @type {CanvasTextBaseline} */ (textState.textBaseline);\n }\n }\n };\n /**\n * Set the fill and stroke style for subsequent draw operations. To clear\n * either fill or stroke styles, pass null for the appropriate parameter.\n *\n * @param {import(\"../../style/Fill.js\").default} fillStyle Fill style.\n * @param {import(\"../../style/Stroke.js\").default} strokeStyle Stroke style.\n */\n CanvasImmediateRenderer.prototype.setFillStrokeStyle = function (fillStyle, strokeStyle) {\n var _this = this;\n if (!fillStyle) {\n this.fillState_ = null;\n }\n else {\n var fillStyleColor = fillStyle.getColor();\n this.fillState_ = {\n fillStyle: asColorLike(fillStyleColor ? fillStyleColor : defaultFillStyle),\n };\n }\n if (!strokeStyle) {\n this.strokeState_ = null;\n }\n else {\n var strokeStyleColor = strokeStyle.getColor();\n var strokeStyleLineCap = strokeStyle.getLineCap();\n var strokeStyleLineDash = strokeStyle.getLineDash();\n var strokeStyleLineDashOffset = strokeStyle.getLineDashOffset();\n var strokeStyleLineJoin = strokeStyle.getLineJoin();\n var strokeStyleWidth = strokeStyle.getWidth();\n var strokeStyleMiterLimit = strokeStyle.getMiterLimit();\n var lineDash = strokeStyleLineDash\n ? strokeStyleLineDash\n : defaultLineDash;\n this.strokeState_ = {\n lineCap: strokeStyleLineCap !== undefined\n ? strokeStyleLineCap\n : defaultLineCap,\n lineDash: this.pixelRatio_ === 1\n ? lineDash\n : lineDash.map(function (n) { return n * _this.pixelRatio_; }),\n lineDashOffset: (strokeStyleLineDashOffset\n ? strokeStyleLineDashOffset\n : defaultLineDashOffset) * this.pixelRatio_,\n lineJoin: strokeStyleLineJoin !== undefined\n ? strokeStyleLineJoin\n : defaultLineJoin,\n lineWidth: (strokeStyleWidth !== undefined\n ? strokeStyleWidth\n : defaultLineWidth) * this.pixelRatio_,\n miterLimit: strokeStyleMiterLimit !== undefined\n ? strokeStyleMiterLimit\n : defaultMiterLimit,\n strokeStyle: asColorLike(strokeStyleColor ? strokeStyleColor : defaultStrokeStyle),\n };\n }\n };\n /**\n * Set the image style for subsequent draw operations. Pass null to remove\n * the image style.\n *\n * @param {import(\"../../style/Image.js\").default} imageStyle Image style.\n */\n CanvasImmediateRenderer.prototype.setImageStyle = function (imageStyle) {\n var imageSize;\n if (!imageStyle || !(imageSize = imageStyle.getSize())) {\n this.image_ = null;\n return;\n }\n var imageAnchor = imageStyle.getAnchor();\n var imageOrigin = imageStyle.getOrigin();\n this.image_ = imageStyle.getImage(this.pixelRatio_);\n this.imageAnchorX_ = imageAnchor[0] * this.pixelRatio_;\n this.imageAnchorY_ = imageAnchor[1] * this.pixelRatio_;\n this.imageHeight_ = imageSize[1] * this.pixelRatio_;\n this.imageOpacity_ = imageStyle.getOpacity();\n this.imageOriginX_ = imageOrigin[0];\n this.imageOriginY_ = imageOrigin[1];\n this.imageRotateWithView_ = imageStyle.getRotateWithView();\n this.imageRotation_ = imageStyle.getRotation();\n this.imageScale_ = imageStyle.getScaleArray();\n this.imageWidth_ = imageSize[0] * this.pixelRatio_;\n };\n /**\n * Set the text style for subsequent draw operations. Pass null to\n * remove the text style.\n *\n * @param {import(\"../../style/Text.js\").default} textStyle Text style.\n */\n CanvasImmediateRenderer.prototype.setTextStyle = function (textStyle) {\n if (!textStyle) {\n this.text_ = '';\n }\n else {\n var textFillStyle = textStyle.getFill();\n if (!textFillStyle) {\n this.textFillState_ = null;\n }\n else {\n var textFillStyleColor = textFillStyle.getColor();\n this.textFillState_ = {\n fillStyle: asColorLike(textFillStyleColor ? textFillStyleColor : defaultFillStyle),\n };\n }\n var textStrokeStyle = textStyle.getStroke();\n if (!textStrokeStyle) {\n this.textStrokeState_ = null;\n }\n else {\n var textStrokeStyleColor = textStrokeStyle.getColor();\n var textStrokeStyleLineCap = textStrokeStyle.getLineCap();\n var textStrokeStyleLineDash = textStrokeStyle.getLineDash();\n var textStrokeStyleLineDashOffset = textStrokeStyle.getLineDashOffset();\n var textStrokeStyleLineJoin = textStrokeStyle.getLineJoin();\n var textStrokeStyleWidth = textStrokeStyle.getWidth();\n var textStrokeStyleMiterLimit = textStrokeStyle.getMiterLimit();\n this.textStrokeState_ = {\n lineCap: textStrokeStyleLineCap !== undefined\n ? textStrokeStyleLineCap\n : defaultLineCap,\n lineDash: textStrokeStyleLineDash\n ? textStrokeStyleLineDash\n : defaultLineDash,\n lineDashOffset: textStrokeStyleLineDashOffset\n ? textStrokeStyleLineDashOffset\n : defaultLineDashOffset,\n lineJoin: textStrokeStyleLineJoin !== undefined\n ? textStrokeStyleLineJoin\n : defaultLineJoin,\n lineWidth: textStrokeStyleWidth !== undefined\n ? textStrokeStyleWidth\n : defaultLineWidth,\n miterLimit: textStrokeStyleMiterLimit !== undefined\n ? textStrokeStyleMiterLimit\n : defaultMiterLimit,\n strokeStyle: asColorLike(textStrokeStyleColor ? textStrokeStyleColor : defaultStrokeStyle),\n };\n }\n var textFont = textStyle.getFont();\n var textOffsetX = textStyle.getOffsetX();\n var textOffsetY = textStyle.getOffsetY();\n var textRotateWithView = textStyle.getRotateWithView();\n var textRotation = textStyle.getRotation();\n var textScale = textStyle.getScaleArray();\n var textText = textStyle.getText();\n var textTextAlign = textStyle.getTextAlign();\n var textTextBaseline = textStyle.getTextBaseline();\n this.textState_ = {\n font: textFont !== undefined ? textFont : defaultFont,\n textAlign: textTextAlign !== undefined ? textTextAlign : defaultTextAlign,\n textBaseline: textTextBaseline !== undefined\n ? textTextBaseline\n : defaultTextBaseline,\n };\n this.text_ =\n textText !== undefined\n ? Array.isArray(textText)\n ? textText.reduce(function (acc, t, i) { return (acc += i % 2 ? ' ' : t); }, '')\n : textText\n : '';\n this.textOffsetX_ =\n textOffsetX !== undefined ? this.pixelRatio_ * textOffsetX : 0;\n this.textOffsetY_ =\n textOffsetY !== undefined ? this.pixelRatio_ * textOffsetY : 0;\n this.textRotateWithView_ =\n textRotateWithView !== undefined ? textRotateWithView : false;\n this.textRotation_ = textRotation !== undefined ? textRotation : 0;\n this.textScale_ = [\n this.pixelRatio_ * textScale[0],\n this.pixelRatio_ * textScale[1],\n ];\n }\n };\n return CanvasImmediateRenderer;\n}(VectorContext));\nexport default CanvasImmediateRenderer;\n//# sourceMappingURL=Immediate.js.map","/**\n * @module ol/render/canvas/hitdetect\n */\nimport CanvasImmediateRenderer from './Immediate.js';\nimport IconAnchorUnits from '../../style/IconAnchorUnits.js';\nimport { Icon } from '../../style.js';\nimport { clamp } from '../../math.js';\nimport { createCanvasContext2D } from '../../dom.js';\nimport { intersects } from '../../extent.js';\nimport { numberSafeCompareFunction } from '../../array.js';\nexport var HIT_DETECT_RESOLUTION = 0.5;\n/**\n * @param {import(\"../../size.js\").Size} size Canvas size in css pixels.\n * @param {Array} transforms Transforms\n * for rendering features to all worlds of the viewport, from coordinates to css\n * pixels.\n * @param {Array} features\n * Features to consider for hit detection.\n * @param {import(\"../../style/Style.js\").StyleFunction|undefined} styleFunction\n * Layer style function.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @return {ImageData} Hit detection image data.\n */\nexport function createHitDetectionImageData(size, transforms, features, styleFunction, extent, resolution, rotation) {\n var width = size[0] * HIT_DETECT_RESOLUTION;\n var height = size[1] * HIT_DETECT_RESOLUTION;\n var context = createCanvasContext2D(width, height);\n context.imageSmoothingEnabled = false;\n var canvas = context.canvas;\n var renderer = new CanvasImmediateRenderer(context, HIT_DETECT_RESOLUTION, extent, null, rotation);\n var featureCount = features.length;\n // Stretch hit detection index to use the whole available color range\n var indexFactor = Math.floor((256 * 256 * 256 - 1) / featureCount);\n var featuresByZIndex = {};\n for (var i = 1; i <= featureCount; ++i) {\n var feature = features[i - 1];\n var featureStyleFunction = feature.getStyleFunction() || styleFunction;\n if (!styleFunction) {\n continue;\n }\n var styles = featureStyleFunction(feature, resolution);\n if (!styles) {\n continue;\n }\n if (!Array.isArray(styles)) {\n styles = [styles];\n }\n var index = i * indexFactor;\n var color = '#' + ('000000' + index.toString(16)).slice(-6);\n for (var j = 0, jj = styles.length; j < jj; ++j) {\n var originalStyle = styles[j];\n var geometry = originalStyle.getGeometryFunction()(feature);\n if (!geometry || !intersects(extent, geometry.getExtent())) {\n continue;\n }\n var style = originalStyle.clone();\n var fill = style.getFill();\n if (fill) {\n fill.setColor(color);\n }\n var stroke = style.getStroke();\n if (stroke) {\n stroke.setColor(color);\n stroke.setLineDash(null);\n }\n style.setText(undefined);\n var image = originalStyle.getImage();\n if (image && image.getOpacity() !== 0) {\n var imgSize = image.getImageSize();\n if (!imgSize) {\n continue;\n }\n var imgContext = createCanvasContext2D(imgSize[0], imgSize[1], undefined, { alpha: false });\n var img = imgContext.canvas;\n imgContext.fillStyle = color;\n imgContext.fillRect(0, 0, img.width, img.height);\n style.setImage(new Icon({\n img: img,\n imgSize: imgSize,\n anchor: image.getAnchor(),\n anchorXUnits: IconAnchorUnits.PIXELS,\n anchorYUnits: IconAnchorUnits.PIXELS,\n offset: image.getOrigin(),\n opacity: 1,\n size: image.getSize(),\n scale: image.getScale(),\n rotation: image.getRotation(),\n rotateWithView: image.getRotateWithView(),\n }));\n }\n var zIndex = style.getZIndex() || 0;\n var byGeometryType = featuresByZIndex[zIndex];\n if (!byGeometryType) {\n byGeometryType = {};\n featuresByZIndex[zIndex] = byGeometryType;\n byGeometryType['Polygon'] = [];\n byGeometryType['Circle'] = [];\n byGeometryType['LineString'] = [];\n byGeometryType['Point'] = [];\n }\n byGeometryType[geometry.getType().replace('Multi', '')].push(geometry, style);\n }\n }\n var zIndexKeys = Object.keys(featuresByZIndex)\n .map(Number)\n .sort(numberSafeCompareFunction);\n for (var i = 0, ii = zIndexKeys.length; i < ii; ++i) {\n var byGeometryType = featuresByZIndex[zIndexKeys[i]];\n for (var type in byGeometryType) {\n var geomAndStyle = byGeometryType[type];\n for (var j = 0, jj = geomAndStyle.length; j < jj; j += 2) {\n renderer.setStyle(geomAndStyle[j + 1]);\n for (var k = 0, kk = transforms.length; k < kk; ++k) {\n renderer.setTransform(transforms[k]);\n renderer.drawGeometry(geomAndStyle[j]);\n }\n }\n }\n }\n return context.getImageData(0, 0, canvas.width, canvas.height);\n}\n/**\n * @param {import(\"../../pixel\").Pixel} pixel Pixel coordinate on the hit\n * detection canvas in css pixels.\n * @param {Array} features Features. Has to\n * match the `features` array that was passed to `createHitDetectionImageData()`.\n * @param {ImageData} imageData Hit detection image data generated by\n * `createHitDetectionImageData()`.\n * @return {Array} features Features.\n */\nexport function hitDetect(pixel, features, imageData) {\n var resultFeatures = [];\n if (imageData) {\n var x = Math.floor(Math.round(pixel[0]) * HIT_DETECT_RESOLUTION);\n var y = Math.floor(Math.round(pixel[1]) * HIT_DETECT_RESOLUTION);\n // The pixel coordinate is clamped down to the hit-detect canvas' size to account\n // for browsers returning coordinates slightly larger than the actual canvas size\n // due to a non-integer pixel ratio.\n var index = (clamp(x, 0, imageData.width - 1) +\n clamp(y, 0, imageData.height - 1) * imageData.width) *\n 4;\n var r = imageData.data[index];\n var g = imageData.data[index + 1];\n var b = imageData.data[index + 2];\n var i = b + 256 * (g + 256 * r);\n var indexFactor = Math.floor((256 * 256 * 256 - 1) / features.length);\n if (i && i % indexFactor === 0) {\n resultFeatures.push(features[i / indexFactor - 1]);\n }\n }\n return resultFeatures;\n}\n//# sourceMappingURL=hitdetect.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~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/DragPan\n */\nimport PointerInteraction, { centroid as centroidFromPointers, } from './Pointer.js';\nimport { FALSE } from '../functions.js';\nimport { all, focusWithTabindex, noModifierKeys, primaryAction, } from '../events/condition.js';\nimport { easeOut } from '../easing.js';\nimport { rotate as rotateCoordinate, scale as scaleCoordinate, } from '../coordinate.js';\n/**\n * @typedef {Object} Options\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a boolean\n * to indicate whether that event should be handled.\n * Default is {@link module:ol/events/condition.noModifierKeys} and {@link module:ol/events/condition.primaryAction}.\n * @property {boolean} [onFocusOnly=false] When the map's target has a `tabindex` attribute set,\n * the interaction will only handle events when the map has the focus.\n * @property {import(\"../Kinetic.js\").default} [kinetic] Kinetic inertia to apply to the pan.\n */\n/**\n * @classdesc\n * Allows the user to pan the map by dragging the map.\n * @api\n */\nvar DragPan = /** @class */ (function (_super) {\n __extends(DragPan, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function DragPan(opt_options) {\n var _this = _super.call(this, {\n stopDown: FALSE,\n }) || this;\n var options = opt_options ? opt_options : {};\n /**\n * @private\n * @type {import(\"../Kinetic.js\").default|undefined}\n */\n _this.kinetic_ = options.kinetic;\n /**\n * @type {import(\"../pixel.js\").Pixel}\n */\n _this.lastCentroid = null;\n /**\n * @type {number}\n */\n _this.lastPointersCount_;\n /**\n * @type {boolean}\n */\n _this.panning_ = false;\n var condition = options.condition\n ? options.condition\n : all(noModifierKeys, primaryAction);\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.condition_ = options.onFocusOnly\n ? all(focusWithTabindex, condition)\n : condition;\n /**\n * @private\n * @type {boolean}\n */\n _this.noKinetic_ = false;\n return _this;\n }\n /**\n * Handle pointer drag events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n */\n DragPan.prototype.handleDragEvent = function (mapBrowserEvent) {\n if (!this.panning_) {\n this.panning_ = true;\n this.getMap().getView().beginInteraction();\n }\n var targetPointers = this.targetPointers;\n var centroid = centroidFromPointers(targetPointers);\n if (targetPointers.length == this.lastPointersCount_) {\n if (this.kinetic_) {\n this.kinetic_.update(centroid[0], centroid[1]);\n }\n if (this.lastCentroid) {\n var delta = [\n this.lastCentroid[0] - centroid[0],\n centroid[1] - this.lastCentroid[1],\n ];\n var map = mapBrowserEvent.map;\n var view = map.getView();\n scaleCoordinate(delta, view.getResolution());\n rotateCoordinate(delta, view.getRotation());\n view.adjustCenterInternal(delta);\n }\n }\n else if (this.kinetic_) {\n // reset so we don't overestimate the kinetic energy after\n // after one finger down, tiny drag, second finger down\n this.kinetic_.begin();\n }\n this.lastCentroid = centroid;\n this.lastPointersCount_ = targetPointers.length;\n mapBrowserEvent.originalEvent.preventDefault();\n };\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n DragPan.prototype.handleUpEvent = function (mapBrowserEvent) {\n var map = mapBrowserEvent.map;\n var view = map.getView();\n if (this.targetPointers.length === 0) {\n if (!this.noKinetic_ && this.kinetic_ && this.kinetic_.end()) {\n var distance = this.kinetic_.getDistance();\n var angle = this.kinetic_.getAngle();\n var center = view.getCenterInternal();\n var centerpx = map.getPixelFromCoordinateInternal(center);\n var dest = map.getCoordinateFromPixelInternal([\n centerpx[0] - distance * Math.cos(angle),\n centerpx[1] - distance * Math.sin(angle),\n ]);\n view.animateInternal({\n center: view.getConstrainedCenter(dest),\n duration: 500,\n easing: easeOut,\n });\n }\n if (this.panning_) {\n this.panning_ = false;\n view.endInteraction();\n }\n return false;\n }\n else {\n if (this.kinetic_) {\n // reset so we don't overestimate the kinetic energy after\n // after one finger up, tiny drag, second finger up\n this.kinetic_.begin();\n }\n this.lastCentroid = null;\n return true;\n }\n };\n /**\n * Handle pointer down events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n DragPan.prototype.handleDownEvent = function (mapBrowserEvent) {\n if (this.targetPointers.length > 0 && this.condition_(mapBrowserEvent)) {\n var map = mapBrowserEvent.map;\n var view = map.getView();\n this.lastCentroid = null;\n // stop any current animation\n if (view.getAnimating()) {\n view.cancelAnimations();\n }\n if (this.kinetic_) {\n this.kinetic_.begin();\n }\n // No kinetic as soon as more than one pointer on the screen is\n // detected. This is to prevent nasty pans after pinch.\n this.noKinetic_ = this.targetPointers.length > 1;\n return true;\n }\n else {\n return false;\n }\n };\n return DragPan;\n}(PointerInteraction));\nexport default DragPan;\n//# sourceMappingURL=DragPan.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/DragRotate\n */\nimport PointerInteraction from './Pointer.js';\nimport { FALSE } from '../functions.js';\nimport { altShiftKeysOnly, mouseActionButton, mouseOnly, } from '../events/condition.js';\nimport { disable } from '../rotationconstraint.js';\n/**\n * @typedef {Object} Options\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that takes an\n * {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a boolean\n * to indicate whether that event should be handled.\n * Default is {@link module:ol/events/condition.altShiftKeysOnly}.\n * @property {number} [duration=250] Animation duration in milliseconds.\n */\n/**\n * @classdesc\n * Allows the user to rotate the map by clicking and dragging on the map,\n * normally combined with an {@link module:ol/events/condition} that limits\n * it to when the alt and shift keys are held down.\n *\n * This interaction is only supported for mouse devices.\n * @api\n */\nvar DragRotate = /** @class */ (function (_super) {\n __extends(DragRotate, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function DragRotate(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n stopDown: FALSE,\n }) || this;\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.condition_ = options.condition ? options.condition : altShiftKeysOnly;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.lastAngle_ = undefined;\n /**\n * @private\n * @type {number}\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 250;\n return _this;\n }\n /**\n * Handle pointer drag events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n */\n DragRotate.prototype.handleDragEvent = function (mapBrowserEvent) {\n if (!mouseOnly(mapBrowserEvent)) {\n return;\n }\n var map = mapBrowserEvent.map;\n var view = map.getView();\n if (view.getConstraints().rotation === disable) {\n return;\n }\n var size = map.getSize();\n var offset = mapBrowserEvent.pixel;\n var theta = Math.atan2(size[1] / 2 - offset[1], offset[0] - size[0] / 2);\n if (this.lastAngle_ !== undefined) {\n var delta = theta - this.lastAngle_;\n view.adjustRotationInternal(-delta);\n }\n this.lastAngle_ = theta;\n };\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n DragRotate.prototype.handleUpEvent = function (mapBrowserEvent) {\n if (!mouseOnly(mapBrowserEvent)) {\n return true;\n }\n var map = mapBrowserEvent.map;\n var view = map.getView();\n view.endInteraction(this.duration_);\n return false;\n };\n /**\n * Handle pointer down events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n DragRotate.prototype.handleDownEvent = function (mapBrowserEvent) {\n if (!mouseOnly(mapBrowserEvent)) {\n return false;\n }\n if (mouseActionButton(mapBrowserEvent) &&\n this.condition_(mapBrowserEvent)) {\n var map = mapBrowserEvent.map;\n map.getView().beginInteraction();\n this.lastAngle_ = undefined;\n return true;\n }\n else {\n return false;\n }\n };\n return DragRotate;\n}(PointerInteraction));\nexport default DragRotate;\n//# sourceMappingURL=DragRotate.js.map","/**\n * @module ol/render/Box\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 Disposable from '../Disposable.js';\nimport Polygon from '../geom/Polygon.js';\nvar RenderBox = /** @class */ (function (_super) {\n __extends(RenderBox, _super);\n /**\n * @param {string} className CSS class name.\n */\n function RenderBox(className) {\n var _this = _super.call(this) || this;\n /**\n * @type {import(\"../geom/Polygon.js\").default}\n * @private\n */\n _this.geometry_ = null;\n /**\n * @type {HTMLDivElement}\n * @private\n */\n _this.element_ = document.createElement('div');\n _this.element_.style.position = 'absolute';\n _this.element_.style.pointerEvents = 'auto';\n _this.element_.className = 'ol-box ' + className;\n /**\n * @private\n * @type {import(\"../PluggableMap.js\").default|null}\n */\n _this.map_ = null;\n /**\n * @private\n * @type {import(\"../pixel.js\").Pixel}\n */\n _this.startPixel_ = null;\n /**\n * @private\n * @type {import(\"../pixel.js\").Pixel}\n */\n _this.endPixel_ = null;\n return _this;\n }\n /**\n * Clean up.\n */\n RenderBox.prototype.disposeInternal = function () {\n this.setMap(null);\n };\n /**\n * @private\n */\n RenderBox.prototype.render_ = function () {\n var startPixel = this.startPixel_;\n var endPixel = this.endPixel_;\n var px = 'px';\n var style = this.element_.style;\n style.left = Math.min(startPixel[0], endPixel[0]) + px;\n style.top = Math.min(startPixel[1], endPixel[1]) + px;\n style.width = Math.abs(endPixel[0] - startPixel[0]) + px;\n style.height = Math.abs(endPixel[1] - startPixel[1]) + px;\n };\n /**\n * @param {import(\"../PluggableMap.js\").default|null} map Map.\n */\n RenderBox.prototype.setMap = function (map) {\n if (this.map_) {\n this.map_.getOverlayContainer().removeChild(this.element_);\n var style = this.element_.style;\n style.left = 'inherit';\n style.top = 'inherit';\n style.width = 'inherit';\n style.height = 'inherit';\n }\n this.map_ = map;\n if (this.map_) {\n this.map_.getOverlayContainer().appendChild(this.element_);\n }\n };\n /**\n * @param {import(\"../pixel.js\").Pixel} startPixel Start pixel.\n * @param {import(\"../pixel.js\").Pixel} endPixel End pixel.\n */\n RenderBox.prototype.setPixels = function (startPixel, endPixel) {\n this.startPixel_ = startPixel;\n this.endPixel_ = endPixel;\n this.createOrUpdateGeometry();\n this.render_();\n };\n /**\n * Creates or updates the cached geometry.\n */\n RenderBox.prototype.createOrUpdateGeometry = function () {\n var startPixel = this.startPixel_;\n var endPixel = this.endPixel_;\n var pixels = [\n startPixel,\n [startPixel[0], endPixel[1]],\n endPixel,\n [endPixel[0], startPixel[1]],\n ];\n var coordinates = pixels.map(this.map_.getCoordinateFromPixelInternal, this.map_);\n // close the polygon\n coordinates[4] = coordinates[0].slice();\n if (!this.geometry_) {\n this.geometry_ = new Polygon([coordinates]);\n }\n else {\n this.geometry_.setCoordinates([coordinates]);\n }\n };\n /**\n * @return {import(\"../geom/Polygon.js\").default} Geometry.\n */\n RenderBox.prototype.getGeometry = function () {\n return this.geometry_;\n };\n return RenderBox;\n}(Disposable));\nexport default RenderBox;\n//# sourceMappingURL=Box.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/DragBox\n */\n// FIXME draw drag box\nimport Event from '../events/Event.js';\nimport PointerInteraction from './Pointer.js';\nimport RenderBox from '../render/Box.js';\nimport { mouseActionButton } from '../events/condition.js';\n/**\n * A function that takes a {@link module:ol/MapBrowserEvent~MapBrowserEvent} and two\n * {@link module:ol/pixel~Pixel}s and returns a `{boolean}`. If the condition is met,\n * true should be returned.\n * @typedef {function(this: ?, import(\"../MapBrowserEvent.js\").default, import(\"../pixel.js\").Pixel, import(\"../pixel.js\").Pixel):boolean} EndCondition\n */\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-dragbox'] CSS class name for styling the box.\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a boolean\n * to indicate whether that event should be handled.\n * Default is {@link ol/events/condition~mouseActionButton}.\n * @property {number} [minArea=64] The minimum area of the box in pixel, this value is used by the default\n * `boxEndCondition` function.\n * @property {EndCondition} [boxEndCondition] A function that takes a {@link module:ol/MapBrowserEvent~MapBrowserEvent} and two\n * {@link module:ol/pixel~Pixel}s to indicate whether a `boxend` event should be fired.\n * Default is `true` if the area of the box is bigger than the `minArea` option.\n * @property {function(this:DragBox, import(\"../MapBrowserEvent.js\").default):void} [onBoxEnd] Code to execute just\n * before `boxend` is fired.\n */\n/**\n * @enum {string}\n */\nvar DragBoxEventType = {\n /**\n * Triggered upon drag box start.\n * @event DragBoxEvent#boxstart\n * @api\n */\n BOXSTART: 'boxstart',\n /**\n * Triggered on drag when box is active.\n * @event DragBoxEvent#boxdrag\n * @api\n */\n BOXDRAG: 'boxdrag',\n /**\n * Triggered upon drag box end.\n * @event DragBoxEvent#boxend\n * @api\n */\n BOXEND: 'boxend',\n /**\n * Triggered upon drag box canceled.\n * @event DragBoxEvent#boxcancel\n * @api\n */\n BOXCANCEL: 'boxcancel',\n};\n/**\n * @classdesc\n * Events emitted by {@link module:ol/interaction/DragBox~DragBox} instances are instances of\n * this type.\n */\nvar DragBoxEvent = /** @class */ (function (_super) {\n __extends(DragBoxEvent, _super);\n /**\n * @param {string} type The event type.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate The event coordinate.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Originating event.\n */\n function DragBoxEvent(type, coordinate, mapBrowserEvent) {\n var _this = _super.call(this, type) || this;\n /**\n * The coordinate of the drag event.\n * @const\n * @type {import(\"../coordinate.js\").Coordinate}\n * @api\n */\n _this.coordinate = coordinate;\n /**\n * @const\n * @type {import(\"../MapBrowserEvent.js\").default}\n * @api\n */\n _this.mapBrowserEvent = mapBrowserEvent;\n return _this;\n }\n return DragBoxEvent;\n}(Event));\nexport { DragBoxEvent };\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature<'boxcancel'|'boxdrag'|'boxend'|'boxstart', DragBoxEvent, Return> &\n * import(\"../Observable\").CombinedOnSignature} DragBoxOnSignature\n */\n/**\n * @classdesc\n * Allows the user to draw a vector box by clicking and dragging on the map,\n * normally combined with an {@link module:ol/events/condition} that limits\n * it to when the shift or other key is held down. This is used, for example,\n * for zooming to a specific area of the map\n * (see {@link module:ol/interaction/DragZoom~DragZoom} and\n * {@link module:ol/interaction/DragRotateAndZoom~DragRotateAndZoom}).\n *\n * @fires DragBoxEvent\n * @api\n */\nvar DragBox = /** @class */ (function (_super) {\n __extends(DragBox, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function DragBox(opt_options) {\n var _this = _super.call(this) || this;\n /***\n * @type {DragBoxOnSignature}\n */\n _this.on;\n /***\n * @type {DragBoxOnSignature}\n */\n _this.once;\n /***\n * @type {DragBoxOnSignature}\n */\n _this.un;\n var options = opt_options ? opt_options : {};\n /**\n * @type {import(\"../render/Box.js\").default}\n * @private\n */\n _this.box_ = new RenderBox(options.className || 'ol-dragbox');\n /**\n * @type {number}\n * @private\n */\n _this.minArea_ = options.minArea !== undefined ? options.minArea : 64;\n if (options.onBoxEnd) {\n _this.onBoxEnd = options.onBoxEnd;\n }\n /**\n * @type {import(\"../pixel.js\").Pixel}\n * @private\n */\n _this.startPixel_ = null;\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.condition_ = options.condition ? options.condition : mouseActionButton;\n /**\n * @private\n * @type {EndCondition}\n */\n _this.boxEndCondition_ = options.boxEndCondition\n ? options.boxEndCondition\n : _this.defaultBoxEndCondition;\n return _this;\n }\n /**\n * The default condition for determining whether the boxend event\n * should fire.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent The originating MapBrowserEvent\n * leading to the box end.\n * @param {import(\"../pixel.js\").Pixel} startPixel The starting pixel of the box.\n * @param {import(\"../pixel.js\").Pixel} endPixel The end pixel of the box.\n * @return {boolean} Whether or not the boxend condition should be fired.\n */\n DragBox.prototype.defaultBoxEndCondition = function (mapBrowserEvent, startPixel, endPixel) {\n var width = endPixel[0] - startPixel[0];\n var height = endPixel[1] - startPixel[1];\n return width * width + height * height >= this.minArea_;\n };\n /**\n * Returns geometry of last drawn box.\n * @return {import(\"../geom/Polygon.js\").default} Geometry.\n * @api\n */\n DragBox.prototype.getGeometry = function () {\n return this.box_.getGeometry();\n };\n /**\n * Handle pointer drag events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n */\n DragBox.prototype.handleDragEvent = function (mapBrowserEvent) {\n this.box_.setPixels(this.startPixel_, mapBrowserEvent.pixel);\n this.dispatchEvent(new DragBoxEvent(DragBoxEventType.BOXDRAG, mapBrowserEvent.coordinate, mapBrowserEvent));\n };\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n DragBox.prototype.handleUpEvent = function (mapBrowserEvent) {\n this.box_.setMap(null);\n var completeBox = this.boxEndCondition_(mapBrowserEvent, this.startPixel_, mapBrowserEvent.pixel);\n if (completeBox) {\n this.onBoxEnd(mapBrowserEvent);\n }\n this.dispatchEvent(new DragBoxEvent(completeBox ? DragBoxEventType.BOXEND : DragBoxEventType.BOXCANCEL, mapBrowserEvent.coordinate, mapBrowserEvent));\n return false;\n };\n /**\n * Handle pointer down events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n DragBox.prototype.handleDownEvent = function (mapBrowserEvent) {\n if (this.condition_(mapBrowserEvent)) {\n this.startPixel_ = mapBrowserEvent.pixel;\n this.box_.setMap(mapBrowserEvent.map);\n this.box_.setPixels(this.startPixel_, this.startPixel_);\n this.dispatchEvent(new DragBoxEvent(DragBoxEventType.BOXSTART, mapBrowserEvent.coordinate, mapBrowserEvent));\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * Function to execute just before `onboxend` is fired\n * @param {import(\"../MapBrowserEvent.js\").default} event Event.\n */\n DragBox.prototype.onBoxEnd = function (event) { };\n return DragBox;\n}(PointerInteraction));\nexport default DragBox;\n//# sourceMappingURL=DragBox.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/DragZoom\n */\nimport DragBox from './DragBox.js';\nimport { easeOut } from '../easing.js';\nimport { shiftKeyOnly } from '../events/condition.js';\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-dragzoom'] CSS class name for styling the\n * box.\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that\n * takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled.\n * Default is {@link module:ol/events/condition.shiftKeyOnly}.\n * @property {number} [duration=200] Animation duration in milliseconds.\n * @property {boolean} [out=false] Use interaction for zooming out.\n * @property {number} [minArea=64] The minimum area of the box in pixel, this value is used by the parent default\n * `boxEndCondition` function.\n */\n/**\n * @classdesc\n * Allows the user to zoom the map by clicking and dragging on the map,\n * normally combined with an {@link module:ol/events/condition} that limits\n * it to when a key, shift by default, is held down.\n *\n * To change the style of the box, use CSS and the `.ol-dragzoom` selector, or\n * your custom one configured with `className`.\n * @api\n */\nvar DragZoom = /** @class */ (function (_super) {\n __extends(DragZoom, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function DragZoom(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n var condition = options.condition ? options.condition : shiftKeyOnly;\n _this = _super.call(this, {\n condition: condition,\n className: options.className || 'ol-dragzoom',\n minArea: options.minArea,\n }) || this;\n /**\n * @private\n * @type {number}\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 200;\n /**\n * @private\n * @type {boolean}\n */\n _this.out_ = options.out !== undefined ? options.out : false;\n return _this;\n }\n /**\n * Function to execute just before `onboxend` is fired\n * @param {import(\"../MapBrowserEvent.js\").default} event Event.\n */\n DragZoom.prototype.onBoxEnd = function (event) {\n var map = this.getMap();\n var view = /** @type {!import(\"../View.js\").default} */ (map.getView());\n var geometry = this.getGeometry();\n if (this.out_) {\n var rotatedExtent = view.rotatedExtentForGeometry(geometry);\n var resolution = view.getResolutionForExtentInternal(rotatedExtent);\n var factor = view.getResolution() / resolution;\n geometry = geometry.clone();\n geometry.scale(factor * factor);\n }\n view.fitInternal(geometry, {\n duration: this.duration_,\n easing: easeOut,\n });\n };\n return DragZoom;\n}(DragBox));\nexport default DragZoom;\n//# sourceMappingURL=DragZoom.js.map","/**\n * @module ol/events/KeyCode\n */\n/**\n * @enum {number}\n * @const\n */\nexport default {\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n};\n//# sourceMappingURL=KeyCode.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/KeyboardPan\n */\nimport EventType from '../events/EventType.js';\nimport Interaction, { pan } from './Interaction.js';\nimport KeyCode from '../events/KeyCode.js';\nimport { noModifierKeys, targetNotEditable } from '../events/condition.js';\nimport { rotate as rotateCoordinate } from '../coordinate.js';\n/**\n * @typedef {Object} Options\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that\n * takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled. Default is\n * {@link module:ol/events/condition.noModifierKeys} and\n * {@link module:ol/events/condition.targetNotEditable}.\n * @property {number} [duration=100] Animation duration in milliseconds.\n * @property {number} [pixelDelta=128] The amount of pixels to pan on each key\n * press.\n */\n/**\n * @classdesc\n * Allows the user to pan the map using keyboard arrows.\n * Note that, although this interaction is by default included in maps,\n * the keys can only be used when browser focus is on the element to which\n * the keyboard events are attached. By default, this is the map div,\n * though you can change this with the `keyboardEventTarget` in\n * {@link module:ol/Map~Map}. `document` never loses focus but, for any other\n * element, focus will have to be on, and returned to, this element if the keys\n * are to function.\n * See also {@link module:ol/interaction/KeyboardZoom~KeyboardZoom}.\n * @api\n */\nvar KeyboardPan = /** @class */ (function (_super) {\n __extends(KeyboardPan, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function KeyboardPan(opt_options) {\n var _this = _super.call(this) || this;\n var options = opt_options || {};\n /**\n * @private\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Browser event.\n * @return {boolean} Combined condition result.\n */\n _this.defaultCondition_ = function (mapBrowserEvent) {\n return (noModifierKeys(mapBrowserEvent) && targetNotEditable(mapBrowserEvent));\n };\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.condition_ =\n options.condition !== undefined\n ? options.condition\n : _this.defaultCondition_;\n /**\n * @private\n * @type {number}\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 100;\n /**\n * @private\n * @type {number}\n */\n _this.pixelDelta_ =\n options.pixelDelta !== undefined ? options.pixelDelta : 128;\n return _this;\n }\n /**\n * Handles the {@link module:ol/MapBrowserEvent~MapBrowserEvent map browser event} if it was a\n * `KeyEvent`, and decides the direction to pan to (if an arrow key was\n * pressed).\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n * @this {KeyboardPan}\n */\n KeyboardPan.prototype.handleEvent = function (mapBrowserEvent) {\n var stopEvent = false;\n if (mapBrowserEvent.type == EventType.KEYDOWN) {\n var keyEvent = /** @type {KeyboardEvent} */ (mapBrowserEvent.originalEvent);\n var keyCode = keyEvent.keyCode;\n if (this.condition_(mapBrowserEvent) &&\n (keyCode == KeyCode.DOWN ||\n keyCode == KeyCode.LEFT ||\n keyCode == KeyCode.RIGHT ||\n keyCode == KeyCode.UP)) {\n var map = mapBrowserEvent.map;\n var view = map.getView();\n var mapUnitsDelta = view.getResolution() * this.pixelDelta_;\n var deltaX = 0, deltaY = 0;\n if (keyCode == KeyCode.DOWN) {\n deltaY = -mapUnitsDelta;\n }\n else if (keyCode == KeyCode.LEFT) {\n deltaX = -mapUnitsDelta;\n }\n else if (keyCode == KeyCode.RIGHT) {\n deltaX = mapUnitsDelta;\n }\n else {\n deltaY = mapUnitsDelta;\n }\n var delta = [deltaX, deltaY];\n rotateCoordinate(delta, view.getRotation());\n pan(view, delta, this.duration_);\n keyEvent.preventDefault();\n stopEvent = true;\n }\n }\n return !stopEvent;\n };\n return KeyboardPan;\n}(Interaction));\nexport default KeyboardPan;\n//# sourceMappingURL=KeyboardPan.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/KeyboardZoom\n */\nimport EventType from '../events/EventType.js';\nimport Interaction, { zoomByDelta } from './Interaction.js';\nimport { targetNotEditable } from '../events/condition.js';\n/**\n * @typedef {Object} Options\n * @property {number} [duration=100] Animation duration in milliseconds.\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that\n * takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled. Default is\n * {@link module:ol/events/condition.targetNotEditable}.\n * @property {number} [delta=1] The zoom level delta on each key press.\n */\n/**\n * @classdesc\n * Allows the user to zoom the map using keyboard + and -.\n * Note that, although this interaction is by default included in maps,\n * the keys can only be used when browser focus is on the element to which\n * the keyboard events are attached. By default, this is the map div,\n * though you can change this with the `keyboardEventTarget` in\n * {@link module:ol/Map~Map}. `document` never loses focus but, for any other\n * element, focus will have to be on, and returned to, this element if the keys\n * are to function.\n * See also {@link module:ol/interaction/KeyboardPan~KeyboardPan}.\n * @api\n */\nvar KeyboardZoom = /** @class */ (function (_super) {\n __extends(KeyboardZoom, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function KeyboardZoom(opt_options) {\n var _this = _super.call(this) || this;\n var options = opt_options ? opt_options : {};\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.condition_ = options.condition ? options.condition : targetNotEditable;\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 : 100;\n return _this;\n }\n /**\n * Handles the {@link module:ol/MapBrowserEvent~MapBrowserEvent map browser event} if it was a\n * `KeyEvent`, and decides whether to zoom in or out (depending on whether the\n * key pressed was '+' or '-').\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n * @this {KeyboardZoom}\n */\n KeyboardZoom.prototype.handleEvent = function (mapBrowserEvent) {\n var stopEvent = false;\n if (mapBrowserEvent.type == EventType.KEYDOWN ||\n mapBrowserEvent.type == EventType.KEYPRESS) {\n var keyEvent = /** @type {KeyboardEvent} */ (mapBrowserEvent.originalEvent);\n var charCode = keyEvent.charCode;\n if (this.condition_(mapBrowserEvent) &&\n (charCode == '+'.charCodeAt(0) || charCode == '-'.charCodeAt(0))) {\n var map = mapBrowserEvent.map;\n var delta = charCode == '+'.charCodeAt(0) ? this.delta_ : -this.delta_;\n var view = map.getView();\n zoomByDelta(view, delta, undefined, this.duration_);\n keyEvent.preventDefault();\n stopEvent = true;\n }\n }\n return !stopEvent;\n };\n return KeyboardZoom;\n}(Interaction));\nexport default KeyboardZoom;\n//# sourceMappingURL=KeyboardZoom.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","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/MouseWheelZoom\n */\nimport EventType from '../events/EventType.js';\nimport Interaction, { zoomByDelta } from './Interaction.js';\nimport { DEVICE_PIXEL_RATIO, FIREFOX } from '../has.js';\nimport { all, always, focusWithTabindex } from '../events/condition.js';\nimport { clamp } from '../math.js';\n/**\n * @enum {string}\n */\nexport var Mode = {\n TRACKPAD: 'trackpad',\n WHEEL: 'wheel',\n};\n/**\n * @typedef {Object} Options\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that\n * takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled. Default is\n * {@link module:ol/events/condition.always}.\n * @property {boolean} [onFocusOnly=false] When the map's target has a `tabindex` attribute set,\n * the interaction will only handle events when the map has the focus.\n * @property {number} [maxDelta=1] Maximum mouse wheel delta.\n * @property {number} [duration=250] Animation duration in milliseconds.\n * @property {number} [timeout=80] Mouse wheel timeout duration in milliseconds.\n * @property {boolean} [useAnchor=true] Enable zooming using the mouse's\n * location as the anchor. When set to `false`, zooming in and out will zoom to\n * the center of the screen instead of zooming on the mouse's location.\n * @property {boolean} [constrainResolution=false] If true, the mouse wheel zoom\n * event will always animate to the closest zoom level after an interaction;\n * false means intermediary zoom levels are allowed.\n */\n/**\n * @classdesc\n * Allows the user to zoom the map by scrolling the mouse wheel.\n * @api\n */\nvar MouseWheelZoom = /** @class */ (function (_super) {\n __extends(MouseWheelZoom, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function MouseWheelZoom(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 /**\n * @private\n * @type {number}\n */\n _this.totalDelta_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.lastDelta_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.maxDelta_ = options.maxDelta !== undefined ? options.maxDelta : 1;\n /**\n * @private\n * @type {number}\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 250;\n /**\n * @private\n * @type {number}\n */\n _this.timeout_ = options.timeout !== undefined ? options.timeout : 80;\n /**\n * @private\n * @type {boolean}\n */\n _this.useAnchor_ =\n options.useAnchor !== undefined ? options.useAnchor : true;\n /**\n * @private\n * @type {boolean}\n */\n _this.constrainResolution_ =\n options.constrainResolution !== undefined\n ? options.constrainResolution\n : false;\n var condition = options.condition ? options.condition : always;\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.condition_ = options.onFocusOnly\n ? all(focusWithTabindex, condition)\n : condition;\n /**\n * @private\n * @type {?import(\"../coordinate.js\").Coordinate}\n */\n _this.lastAnchor_ = null;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.startTime_ = undefined;\n /**\n * @private\n * @type {?}\n */\n _this.timeoutId_;\n /**\n * @private\n * @type {Mode|undefined}\n */\n _this.mode_ = undefined;\n /**\n * Trackpad events separated by this delay will be considered separate\n * interactions.\n * @type {number}\n */\n _this.trackpadEventGap_ = 400;\n /**\n * @type {?}\n */\n _this.trackpadTimeoutId_;\n /**\n * The number of delta values per zoom level\n * @private\n * @type {number}\n */\n _this.deltaPerZoom_ = 300;\n return _this;\n }\n /**\n * @private\n */\n MouseWheelZoom.prototype.endInteraction_ = function () {\n this.trackpadTimeoutId_ = undefined;\n var map = this.getMap();\n if (!map) {\n return;\n }\n var view = map.getView();\n view.endInteraction(undefined, this.lastDelta_ ? (this.lastDelta_ > 0 ? 1 : -1) : 0, this.lastAnchor_);\n };\n /**\n * Handles the {@link module:ol/MapBrowserEvent~MapBrowserEvent map browser event} (if it was a mousewheel-event) and eventually\n * zooms the map.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n */\n MouseWheelZoom.prototype.handleEvent = function (mapBrowserEvent) {\n if (!this.condition_(mapBrowserEvent)) {\n return true;\n }\n var type = mapBrowserEvent.type;\n if (type !== EventType.WHEEL) {\n return true;\n }\n var map = mapBrowserEvent.map;\n var wheelEvent = /** @type {WheelEvent} */ (mapBrowserEvent.originalEvent);\n wheelEvent.preventDefault();\n if (this.useAnchor_) {\n this.lastAnchor_ = mapBrowserEvent.coordinate;\n }\n // Delta normalisation inspired by\n // https://github.com/mapbox/mapbox-gl-js/blob/001c7b9/js/ui/handler/scroll_zoom.js\n var delta;\n if (mapBrowserEvent.type == EventType.WHEEL) {\n delta = wheelEvent.deltaY;\n if (FIREFOX && wheelEvent.deltaMode === WheelEvent.DOM_DELTA_PIXEL) {\n delta /= DEVICE_PIXEL_RATIO;\n }\n if (wheelEvent.deltaMode === WheelEvent.DOM_DELTA_LINE) {\n delta *= 40;\n }\n }\n if (delta === 0) {\n return false;\n }\n else {\n this.lastDelta_ = delta;\n }\n var now = Date.now();\n if (this.startTime_ === undefined) {\n this.startTime_ = now;\n }\n if (!this.mode_ || now - this.startTime_ > this.trackpadEventGap_) {\n this.mode_ = Math.abs(delta) < 4 ? Mode.TRACKPAD : Mode.WHEEL;\n }\n var view = map.getView();\n if (this.mode_ === Mode.TRACKPAD &&\n !(view.getConstrainResolution() || this.constrainResolution_)) {\n if (this.trackpadTimeoutId_) {\n clearTimeout(this.trackpadTimeoutId_);\n }\n else {\n if (view.getAnimating()) {\n view.cancelAnimations();\n }\n view.beginInteraction();\n }\n this.trackpadTimeoutId_ = setTimeout(this.endInteraction_.bind(this), this.timeout_);\n view.adjustZoom(-delta / this.deltaPerZoom_, this.lastAnchor_);\n this.startTime_ = now;\n return false;\n }\n this.totalDelta_ += delta;\n var timeLeft = Math.max(this.timeout_ - (now - this.startTime_), 0);\n clearTimeout(this.timeoutId_);\n this.timeoutId_ = setTimeout(this.handleWheelZoom_.bind(this, map), timeLeft);\n return false;\n };\n /**\n * @private\n * @param {import(\"../PluggableMap.js\").default} map Map.\n */\n MouseWheelZoom.prototype.handleWheelZoom_ = function (map) {\n var view = map.getView();\n if (view.getAnimating()) {\n view.cancelAnimations();\n }\n var delta = -clamp(this.totalDelta_, -this.maxDelta_ * this.deltaPerZoom_, this.maxDelta_ * this.deltaPerZoom_) / this.deltaPerZoom_;\n if (view.getConstrainResolution() || this.constrainResolution_) {\n // view has a zoom constraint, zoom by 1\n delta = delta ? (delta > 0 ? 1 : -1) : 0;\n }\n zoomByDelta(view, delta, this.lastAnchor_, this.duration_);\n this.mode_ = undefined;\n this.totalDelta_ = 0;\n this.lastAnchor_ = null;\n this.startTime_ = undefined;\n this.timeoutId_ = undefined;\n };\n /**\n * Enable or disable using the mouse's location as an anchor when zooming\n * @param {boolean} useAnchor true to zoom to the mouse's location, false\n * to zoom to the center of the map\n * @api\n */\n MouseWheelZoom.prototype.setMouseAnchor = function (useAnchor) {\n this.useAnchor_ = useAnchor;\n if (!useAnchor) {\n this.lastAnchor_ = null;\n }\n };\n return MouseWheelZoom;\n}(Interaction));\nexport default MouseWheelZoom;\n//# sourceMappingURL=MouseWheelZoom.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/PinchRotate\n */\nimport PointerInteraction, { centroid as centroidFromPointers, } from './Pointer.js';\nimport { FALSE } from '../functions.js';\nimport { disable } from '../rotationconstraint.js';\n/**\n * @typedef {Object} Options\n * @property {number} [duration=250] The duration of the animation in\n * milliseconds.\n * @property {number} [threshold=0.3] Minimal angle in radians to start a rotation.\n */\n/**\n * @classdesc\n * Allows the user to rotate the map by twisting with two fingers\n * on a touch screen.\n * @api\n */\nvar PinchRotate = /** @class */ (function (_super) {\n __extends(PinchRotate, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function PinchRotate(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n var pointerOptions = /** @type {import(\"./Pointer.js\").Options} */ (options);\n if (!pointerOptions.stopDown) {\n pointerOptions.stopDown = FALSE;\n }\n _this = _super.call(this, pointerOptions) || this;\n /**\n * @private\n * @type {import(\"../coordinate.js\").Coordinate}\n */\n _this.anchor_ = null;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.lastAngle_ = undefined;\n /**\n * @private\n * @type {boolean}\n */\n _this.rotating_ = false;\n /**\n * @private\n * @type {number}\n */\n _this.rotationDelta_ = 0.0;\n /**\n * @private\n * @type {number}\n */\n _this.threshold_ = options.threshold !== undefined ? options.threshold : 0.3;\n /**\n * @private\n * @type {number}\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 250;\n return _this;\n }\n /**\n * Handle pointer drag events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n */\n PinchRotate.prototype.handleDragEvent = function (mapBrowserEvent) {\n var rotationDelta = 0.0;\n var touch0 = this.targetPointers[0];\n var touch1 = this.targetPointers[1];\n // angle between touches\n var angle = Math.atan2(touch1.clientY - touch0.clientY, touch1.clientX - touch0.clientX);\n if (this.lastAngle_ !== undefined) {\n var delta = angle - this.lastAngle_;\n this.rotationDelta_ += delta;\n if (!this.rotating_ && Math.abs(this.rotationDelta_) > this.threshold_) {\n this.rotating_ = true;\n }\n rotationDelta = delta;\n }\n this.lastAngle_ = angle;\n var map = mapBrowserEvent.map;\n var view = map.getView();\n if (view.getConstraints().rotation === disable) {\n return;\n }\n // rotate anchor point.\n // FIXME: should be the intersection point between the lines:\n // touch0,touch1 and previousTouch0,previousTouch1\n var viewportPosition = map.getViewport().getBoundingClientRect();\n var centroid = centroidFromPointers(this.targetPointers);\n centroid[0] -= viewportPosition.left;\n centroid[1] -= viewportPosition.top;\n this.anchor_ = map.getCoordinateFromPixelInternal(centroid);\n // rotate\n if (this.rotating_) {\n map.render();\n view.adjustRotationInternal(rotationDelta, this.anchor_);\n }\n };\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n PinchRotate.prototype.handleUpEvent = function (mapBrowserEvent) {\n if (this.targetPointers.length < 2) {\n var map = mapBrowserEvent.map;\n var view = map.getView();\n view.endInteraction(this.duration_);\n return false;\n }\n else {\n return true;\n }\n };\n /**\n * Handle pointer down events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n PinchRotate.prototype.handleDownEvent = function (mapBrowserEvent) {\n if (this.targetPointers.length >= 2) {\n var map = mapBrowserEvent.map;\n this.anchor_ = null;\n this.lastAngle_ = undefined;\n this.rotating_ = false;\n this.rotationDelta_ = 0.0;\n if (!this.handlingDownUpSequence) {\n map.getView().beginInteraction();\n }\n return true;\n }\n else {\n return false;\n }\n };\n return PinchRotate;\n}(PointerInteraction));\nexport default PinchRotate;\n//# sourceMappingURL=PinchRotate.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/PinchZoom\n */\nimport PointerInteraction, { centroid as centroidFromPointers, } from './Pointer.js';\nimport { FALSE } from '../functions.js';\n/**\n * @typedef {Object} Options\n * @property {number} [duration=400] Animation duration in milliseconds.\n */\n/**\n * @classdesc\n * Allows the user to zoom the map by pinching with two fingers\n * on a touch screen.\n * @api\n */\nvar PinchZoom = /** @class */ (function (_super) {\n __extends(PinchZoom, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function PinchZoom(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n var pointerOptions = /** @type {import(\"./Pointer.js\").Options} */ (options);\n if (!pointerOptions.stopDown) {\n pointerOptions.stopDown = FALSE;\n }\n _this = _super.call(this, pointerOptions) || this;\n /**\n * @private\n * @type {import(\"../coordinate.js\").Coordinate}\n */\n _this.anchor_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 400;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.lastDistance_ = undefined;\n /**\n * @private\n * @type {number}\n */\n _this.lastScaleDelta_ = 1;\n return _this;\n }\n /**\n * Handle pointer drag events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n */\n PinchZoom.prototype.handleDragEvent = function (mapBrowserEvent) {\n var scaleDelta = 1.0;\n var touch0 = this.targetPointers[0];\n var touch1 = this.targetPointers[1];\n var dx = touch0.clientX - touch1.clientX;\n var dy = touch0.clientY - touch1.clientY;\n // distance between touches\n var distance = Math.sqrt(dx * dx + dy * dy);\n if (this.lastDistance_ !== undefined) {\n scaleDelta = this.lastDistance_ / distance;\n }\n this.lastDistance_ = distance;\n var map = mapBrowserEvent.map;\n var view = map.getView();\n if (scaleDelta != 1.0) {\n this.lastScaleDelta_ = scaleDelta;\n }\n // scale anchor point.\n var viewportPosition = map.getViewport().getBoundingClientRect();\n var centroid = centroidFromPointers(this.targetPointers);\n centroid[0] -= viewportPosition.left;\n centroid[1] -= viewportPosition.top;\n this.anchor_ = map.getCoordinateFromPixelInternal(centroid);\n // scale, bypass the resolution constraint\n map.render();\n view.adjustResolutionInternal(scaleDelta, this.anchor_);\n };\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n PinchZoom.prototype.handleUpEvent = function (mapBrowserEvent) {\n if (this.targetPointers.length < 2) {\n var map = mapBrowserEvent.map;\n var view = map.getView();\n var direction = this.lastScaleDelta_ > 1 ? 1 : -1;\n view.endInteraction(this.duration_, direction);\n return false;\n }\n else {\n return true;\n }\n };\n /**\n * Handle pointer down events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n PinchZoom.prototype.handleDownEvent = function (mapBrowserEvent) {\n if (this.targetPointers.length >= 2) {\n var map = mapBrowserEvent.map;\n this.anchor_ = null;\n this.lastDistance_ = undefined;\n this.lastScaleDelta_ = 1;\n if (!this.handlingDownUpSequence) {\n map.getView().beginInteraction();\n }\n return true;\n }\n else {\n return false;\n }\n };\n return PinchZoom;\n}(PointerInteraction));\nexport default PinchZoom;\n//# sourceMappingURL=PinchZoom.js.map","/**\n * @module ol/interaction\n */\nimport Collection from './Collection.js';\nimport DoubleClickZoom from './interaction/DoubleClickZoom.js';\nimport DragPan from './interaction/DragPan.js';\nimport DragRotate from './interaction/DragRotate.js';\nimport DragZoom from './interaction/DragZoom.js';\nimport KeyboardPan from './interaction/KeyboardPan.js';\nimport KeyboardZoom from './interaction/KeyboardZoom.js';\nimport Kinetic from './Kinetic.js';\nimport MouseWheelZoom from './interaction/MouseWheelZoom.js';\nimport PinchRotate from './interaction/PinchRotate.js';\nimport PinchZoom from './interaction/PinchZoom.js';\nexport { default as DoubleClickZoom } from './interaction/DoubleClickZoom.js';\nexport { default as DragAndDrop } from './interaction/DragAndDrop.js';\nexport { default as DragBox } from './interaction/DragBox.js';\nexport { default as DragPan } from './interaction/DragPan.js';\nexport { default as DragRotate } from './interaction/DragRotate.js';\nexport { default as DragRotateAndZoom } from './interaction/DragRotateAndZoom.js';\nexport { default as DragZoom } from './interaction/DragZoom.js';\nexport { default as Draw } from './interaction/Draw.js';\nexport { default as Extent } from './interaction/Extent.js';\nexport { default as Interaction } from './interaction/Interaction.js';\nexport { default as KeyboardPan } from './interaction/KeyboardPan.js';\nexport { default as KeyboardZoom } from './interaction/KeyboardZoom.js';\nexport { default as Modify } from './interaction/Modify.js';\nexport { default as MouseWheelZoom } from './interaction/MouseWheelZoom.js';\nexport { default as PinchRotate } from './interaction/PinchRotate.js';\nexport { default as PinchZoom } from './interaction/PinchZoom.js';\nexport { default as Pointer } from './interaction/Pointer.js';\nexport { default as Select } from './interaction/Select.js';\nexport { default as Snap } from './interaction/Snap.js';\nexport { default as Translate } from './interaction/Translate.js';\n/**\n * @typedef {Object} DefaultsOptions\n * @property {boolean} [altShiftDragRotate=true] Whether Alt-Shift-drag rotate is\n * desired.\n * @property {boolean} [onFocusOnly=false] Interact only when the map has the\n * focus. This affects the `MouseWheelZoom` and `DragPan` interactions and is\n * useful when page scroll is desired for maps that do not have the browser's\n * focus.\n * @property {boolean} [doubleClickZoom=true] Whether double click zoom is\n * desired.\n * @property {boolean} [keyboard=true] Whether keyboard interaction is desired.\n * @property {boolean} [mouseWheelZoom=true] Whether mousewheel zoom is desired.\n * @property {boolean} [shiftDragZoom=true] Whether Shift-drag zoom is desired.\n * @property {boolean} [dragPan=true] Whether drag pan is desired.\n * @property {boolean} [pinchRotate=true] Whether pinch rotate is desired.\n * @property {boolean} [pinchZoom=true] Whether pinch zoom is desired.\n * @property {number} [zoomDelta] Zoom level delta when using keyboard or double click zoom.\n * @property {number} [zoomDuration] Duration of the zoom animation in\n * milliseconds.\n */\n/**\n * Set of interactions included in maps by default. Specific interactions can be\n * excluded by setting the appropriate option to false in the constructor\n * options, but the order of the interactions is fixed. If you want to specify\n * a different order for interactions, you will need to create your own\n * {@link module:ol/interaction/Interaction~Interaction} instances and insert\n * them into a {@link module:ol/Collection~Collection} in the order you want\n * before creating your {@link module:ol/Map~Map} instance. Changing the order can\n * be of interest if the event propagation needs to be stopped at a point.\n * The default set of interactions, in sequence, is:\n * * {@link module:ol/interaction/DragRotate~DragRotate}\n * * {@link module:ol/interaction/DoubleClickZoom~DoubleClickZoom}\n * * {@link module:ol/interaction/DragPan~DragPan}\n * * {@link module:ol/interaction/PinchRotate~PinchRotate}\n * * {@link module:ol/interaction/PinchZoom~PinchZoom}\n * * {@link module:ol/interaction/KeyboardPan~KeyboardPan}\n * * {@link module:ol/interaction/KeyboardZoom~KeyboardZoom}\n * * {@link module:ol/interaction/MouseWheelZoom~MouseWheelZoom}\n * * {@link module:ol/interaction/DragZoom~DragZoom}\n *\n * @param {DefaultsOptions} [opt_options] Defaults options.\n * @return {import(\"./Collection.js\").default}\n * A collection of interactions to be used with the {@link module:ol/Map~Map}\n * constructor's `interactions` option.\n * @api\n */\nexport function defaults(opt_options) {\n var options = opt_options ? opt_options : {};\n var interactions = new Collection();\n var kinetic = new Kinetic(-0.005, 0.05, 100);\n var altShiftDragRotate = options.altShiftDragRotate !== undefined\n ? options.altShiftDragRotate\n : true;\n if (altShiftDragRotate) {\n interactions.push(new DragRotate());\n }\n var doubleClickZoom = options.doubleClickZoom !== undefined ? options.doubleClickZoom : true;\n if (doubleClickZoom) {\n interactions.push(new DoubleClickZoom({\n delta: options.zoomDelta,\n duration: options.zoomDuration,\n }));\n }\n var dragPan = options.dragPan !== undefined ? options.dragPan : true;\n if (dragPan) {\n interactions.push(new DragPan({\n onFocusOnly: options.onFocusOnly,\n kinetic: kinetic,\n }));\n }\n var pinchRotate = options.pinchRotate !== undefined ? options.pinchRotate : true;\n if (pinchRotate) {\n interactions.push(new PinchRotate());\n }\n var pinchZoom = options.pinchZoom !== undefined ? options.pinchZoom : true;\n if (pinchZoom) {\n interactions.push(new PinchZoom({\n duration: options.zoomDuration,\n }));\n }\n var keyboard = options.keyboard !== undefined ? options.keyboard : true;\n if (keyboard) {\n interactions.push(new KeyboardPan());\n interactions.push(new KeyboardZoom({\n delta: options.zoomDelta,\n duration: options.zoomDuration,\n }));\n }\n var mouseWheelZoom = options.mouseWheelZoom !== undefined ? options.mouseWheelZoom : true;\n if (mouseWheelZoom) {\n interactions.push(new MouseWheelZoom({\n onFocusOnly: options.onFocusOnly,\n duration: options.zoomDuration,\n }));\n }\n var shiftDragZoom = options.shiftDragZoom !== undefined ? options.shiftDragZoom : true;\n if (shiftDragZoom) {\n interactions.push(new DragZoom({\n duration: options.zoomDuration,\n }));\n }\n return interactions;\n}\n//# sourceMappingURL=interaction.js.map","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","/**\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","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/canvas/VectorLayer\n */\nimport CanvasBuilderGroup from '../../render/canvas/BuilderGroup.js';\nimport CanvasLayerRenderer, { canvasPool } from './Layer.js';\nimport ExecutorGroup from '../../render/canvas/ExecutorGroup.js';\nimport ViewHint from '../../ViewHint.js';\nimport { HIT_DETECT_RESOLUTION, createHitDetectionImageData, hitDetect, } from '../../render/canvas/hitdetect.js';\nimport { apply, makeInverse, makeScale, toString as transformToString, } from '../../transform.js';\nimport { buffer, containsExtent, createEmpty, getWidth, intersects as intersectsExtent, wrapX as wrapExtentX, } from '../../extent.js';\nimport { createCanvasContext2D, releaseCanvas } from '../../dom.js';\nimport { defaultOrder as defaultRenderOrder, getTolerance as getRenderTolerance, getSquaredTolerance as getSquaredRenderTolerance, renderFeature, } from '../vector.js';\nimport { equals } from '../../array.js';\nimport { fromUserExtent, getTransformFromProjections, getUserProjection, toUserExtent, toUserResolution, } from '../../proj.js';\nimport { getUid } from '../../util.js';\nimport { wrapX as wrapCoordinateX } from '../../coordinate.js';\n/**\n * @classdesc\n * Canvas renderer for vector layers.\n * @api\n */\nvar CanvasVectorLayerRenderer = /** @class */ (function (_super) {\n __extends(CanvasVectorLayerRenderer, _super);\n /**\n * @param {import(\"../../layer/BaseVector.js\").default} vectorLayer Vector layer.\n */\n function CanvasVectorLayerRenderer(vectorLayer) {\n var _this = _super.call(this, vectorLayer) || this;\n /** @private */\n _this.boundHandleStyleImageChange_ = _this.handleStyleImageChange_.bind(_this);\n /**\n * @type {boolean}\n */\n _this.animatingOrInteracting_;\n /**\n * @type {ImageData}\n */\n _this.hitDetectionImageData_ = null;\n /**\n * @type {Array}\n */\n _this.renderedFeatures_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.renderedRevision_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.renderedResolution_ = NaN;\n /**\n * @private\n * @type {import(\"../../extent.js\").Extent}\n */\n _this.renderedExtent_ = createEmpty();\n /**\n * @private\n * @type {import(\"../../extent.js\").Extent}\n */\n _this.wrappedRenderedExtent_ = createEmpty();\n /**\n * @private\n * @type {number}\n */\n _this.renderedRotation_;\n /**\n * @private\n * @type {import(\"../../coordinate\").Coordinate}\n */\n _this.renderedCenter_ = null;\n /**\n * @private\n * @type {import(\"../../proj/Projection\").default}\n */\n _this.renderedProjection_ = null;\n /**\n * @private\n * @type {function(import(\"../../Feature.js\").default, import(\"../../Feature.js\").default): number|null}\n */\n _this.renderedRenderOrder_ = null;\n /**\n * @private\n * @type {import(\"../../render/canvas/ExecutorGroup\").default}\n */\n _this.replayGroup_ = null;\n /**\n * A new replay group had to be created by `prepareFrame()`\n * @type {boolean}\n */\n _this.replayGroupChanged = true;\n /**\n * @type {import(\"../../render/canvas/ExecutorGroup\").default}\n */\n _this.declutterExecutorGroup = null;\n /**\n * Clipping to be performed by `renderFrame()`\n * @type {boolean}\n */\n _this.clipping = true;\n /**\n * @private\n * @type {CanvasRenderingContext2D}\n */\n _this.compositionContext_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.opacity_ = 1;\n return _this;\n }\n /**\n * @param {ExecutorGroup} executorGroup Executor group.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {import(\"rbush\").default} [opt_declutterTree] Declutter tree.\n */\n CanvasVectorLayerRenderer.prototype.renderWorlds = function (executorGroup, frameState, opt_declutterTree) {\n var extent = frameState.extent;\n var viewState = frameState.viewState;\n var center = viewState.center;\n var resolution = viewState.resolution;\n var projection = viewState.projection;\n var rotation = viewState.rotation;\n var projectionExtent = projection.getExtent();\n var vectorSource = this.getLayer().getSource();\n var pixelRatio = frameState.pixelRatio;\n var viewHints = frameState.viewHints;\n var snapToPixel = !(viewHints[ViewHint.ANIMATING] || viewHints[ViewHint.INTERACTING]);\n var context = this.compositionContext_;\n var width = Math.round(frameState.size[0] * pixelRatio);\n var height = Math.round(frameState.size[1] * pixelRatio);\n var multiWorld = vectorSource.getWrapX() && projection.canWrapX();\n var worldWidth = multiWorld ? getWidth(projectionExtent) : null;\n var endWorld = multiWorld\n ? Math.ceil((extent[2] - projectionExtent[2]) / worldWidth) + 1\n : 1;\n var world = multiWorld\n ? Math.floor((extent[0] - projectionExtent[0]) / worldWidth)\n : 0;\n do {\n var transform = this.getRenderTransform(center, resolution, rotation, pixelRatio, width, height, world * worldWidth);\n executorGroup.execute(context, 1, transform, rotation, snapToPixel, undefined, opt_declutterTree);\n } while (++world < endWorld);\n };\n CanvasVectorLayerRenderer.prototype.setupCompositionContext_ = function () {\n if (this.opacity_ !== 1) {\n var compositionContext = createCanvasContext2D(this.context.canvas.width, this.context.canvas.height, canvasPool);\n this.compositionContext_ = compositionContext;\n }\n else {\n this.compositionContext_ = this.context;\n }\n };\n CanvasVectorLayerRenderer.prototype.releaseCompositionContext_ = function () {\n if (this.opacity_ !== 1) {\n var alpha = this.context.globalAlpha;\n this.context.globalAlpha = this.opacity_;\n this.context.drawImage(this.compositionContext_.canvas, 0, 0);\n this.context.globalAlpha = alpha;\n releaseCanvas(this.compositionContext_);\n canvasPool.push(this.compositionContext_.canvas);\n this.compositionContext_ = null;\n }\n };\n /**\n * Render declutter items for this layer\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n */\n CanvasVectorLayerRenderer.prototype.renderDeclutter = function (frameState) {\n if (this.declutterExecutorGroup) {\n this.setupCompositionContext_();\n this.renderWorlds(this.declutterExecutorGroup, frameState, frameState.declutterTree);\n this.releaseCompositionContext_();\n }\n };\n /**\n * Render the layer.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {HTMLElement} target Target that may be used to render content to.\n * @return {HTMLElement} The rendered element.\n */\n CanvasVectorLayerRenderer.prototype.renderFrame = function (frameState, target) {\n var pixelRatio = frameState.pixelRatio;\n var layerState = frameState.layerStatesArray[frameState.layerIndex];\n // set forward and inverse pixel transforms\n makeScale(this.pixelTransform, 1 / pixelRatio, 1 / pixelRatio);\n makeInverse(this.inversePixelTransform, this.pixelTransform);\n var canvasTransform = transformToString(this.pixelTransform);\n this.useContainer(target, canvasTransform, this.getBackground(frameState));\n var context = this.context;\n var canvas = context.canvas;\n var replayGroup = this.replayGroup_;\n var declutterExecutorGroup = this.declutterExecutorGroup;\n if ((!replayGroup || replayGroup.isEmpty()) &&\n (!declutterExecutorGroup || declutterExecutorGroup.isEmpty())) {\n return null;\n }\n // resize and clear\n var width = Math.round(frameState.size[0] * pixelRatio);\n var height = Math.round(frameState.size[1] * pixelRatio);\n if (canvas.width != width || canvas.height != height) {\n canvas.width = width;\n canvas.height = height;\n if (canvas.style.transform !== canvasTransform) {\n canvas.style.transform = canvasTransform;\n }\n }\n else if (!this.containerReused) {\n context.clearRect(0, 0, width, height);\n }\n this.preRender(context, frameState);\n var viewState = frameState.viewState;\n var projection = viewState.projection;\n this.opacity_ = layerState.opacity;\n this.setupCompositionContext_();\n // clipped rendering if layer extent is set\n var clipped = false;\n var render = true;\n if (layerState.extent && this.clipping) {\n var layerExtent = fromUserExtent(layerState.extent, projection);\n render = intersectsExtent(layerExtent, frameState.extent);\n clipped = render && !containsExtent(layerExtent, frameState.extent);\n if (clipped) {\n this.clipUnrotated(this.compositionContext_, frameState, layerExtent);\n }\n }\n if (render) {\n this.renderWorlds(replayGroup, frameState);\n }\n if (clipped) {\n this.compositionContext_.restore();\n }\n this.releaseCompositionContext_();\n this.postRender(context, frameState);\n if (this.renderedRotation_ !== viewState.rotation) {\n this.renderedRotation_ = viewState.rotation;\n this.hitDetectionImageData_ = null;\n }\n return this.container;\n };\n /**\n * Asynchronous layer level hit detection.\n * @param {import(\"../../pixel.js\").Pixel} pixel Pixel.\n * @return {Promise>} Promise that resolves with an array of features.\n */\n CanvasVectorLayerRenderer.prototype.getFeatures = function (pixel) {\n return new Promise(\n /**\n * @param {function(Array): void} resolve Resolver function.\n * @this {CanvasVectorLayerRenderer}\n */\n function (resolve) {\n if (!this.hitDetectionImageData_ && !this.animatingOrInteracting_) {\n var size = [this.context.canvas.width, this.context.canvas.height];\n apply(this.pixelTransform, size);\n var center = this.renderedCenter_;\n var resolution = this.renderedResolution_;\n var rotation = this.renderedRotation_;\n var projection = this.renderedProjection_;\n var extent = this.wrappedRenderedExtent_;\n var layer = this.getLayer();\n var transforms = [];\n var width = size[0] * HIT_DETECT_RESOLUTION;\n var height = size[1] * HIT_DETECT_RESOLUTION;\n transforms.push(this.getRenderTransform(center, resolution, rotation, HIT_DETECT_RESOLUTION, width, height, 0).slice());\n var source = layer.getSource();\n var projectionExtent = projection.getExtent();\n if (source.getWrapX() &&\n projection.canWrapX() &&\n !containsExtent(projectionExtent, extent)) {\n var startX = extent[0];\n var worldWidth = getWidth(projectionExtent);\n var world = 0;\n var offsetX = void 0;\n while (startX < projectionExtent[0]) {\n --world;\n offsetX = worldWidth * world;\n transforms.push(this.getRenderTransform(center, resolution, rotation, HIT_DETECT_RESOLUTION, width, height, offsetX).slice());\n startX += worldWidth;\n }\n world = 0;\n startX = extent[2];\n while (startX > projectionExtent[2]) {\n ++world;\n offsetX = worldWidth * world;\n transforms.push(this.getRenderTransform(center, resolution, rotation, HIT_DETECT_RESOLUTION, width, height, offsetX).slice());\n startX -= worldWidth;\n }\n }\n this.hitDetectionImageData_ = createHitDetectionImageData(size, transforms, this.renderedFeatures_, layer.getStyleFunction(), extent, resolution, rotation);\n }\n resolve(hitDetect(pixel, this.renderedFeatures_, this.hitDetectionImageData_));\n }.bind(this));\n };\n /**\n * @param {import(\"../../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {number} hitTolerance Hit tolerance in pixels.\n * @param {import(\"../vector.js\").FeatureCallback} callback Feature callback.\n * @param {Array>} matches The hit detected matches with tolerance.\n * @return {T|undefined} Callback result.\n * @template T\n */\n CanvasVectorLayerRenderer.prototype.forEachFeatureAtCoordinate = function (coordinate, frameState, hitTolerance, callback, matches) {\n var _this = this;\n if (!this.replayGroup_) {\n return undefined;\n }\n var resolution = frameState.viewState.resolution;\n var rotation = frameState.viewState.rotation;\n var layer = this.getLayer();\n /** @type {!Object|true>} */\n var features = {};\n /**\n * @param {import(\"../../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../../geom/SimpleGeometry.js\").default} geometry Geometry.\n * @param {number} distanceSq The squared distance to the click position\n * @return {T|undefined} Callback result.\n */\n var featureCallback = function (feature, geometry, distanceSq) {\n var key = getUid(feature);\n var match = features[key];\n if (!match) {\n if (distanceSq === 0) {\n features[key] = true;\n return callback(feature, layer, geometry);\n }\n matches.push((features[key] = {\n feature: feature,\n layer: layer,\n geometry: geometry,\n distanceSq: distanceSq,\n callback: callback,\n }));\n }\n else if (match !== true && distanceSq < match.distanceSq) {\n if (distanceSq === 0) {\n features[key] = true;\n matches.splice(matches.lastIndexOf(match), 1);\n return callback(feature, layer, geometry);\n }\n match.geometry = geometry;\n match.distanceSq = distanceSq;\n }\n return undefined;\n };\n var result;\n var executorGroups = [this.replayGroup_];\n if (this.declutterExecutorGroup) {\n executorGroups.push(this.declutterExecutorGroup);\n }\n executorGroups.some(function (executorGroup) {\n return (result = executorGroup.forEachFeatureAtCoordinate(coordinate, resolution, rotation, hitTolerance, featureCallback, executorGroup === _this.declutterExecutorGroup &&\n frameState.declutterTree\n ? frameState.declutterTree.all().map(function (item) { return item.value; })\n : null));\n });\n return result;\n };\n /**\n * Perform action necessary to get the layer rendered after new fonts have loaded\n */\n CanvasVectorLayerRenderer.prototype.handleFontsChanged = function () {\n var layer = this.getLayer();\n if (layer.getVisible() && this.replayGroup_) {\n layer.changed();\n }\n };\n /**\n * Handle changes in image style state.\n * @param {import(\"../../events/Event.js\").default} event Image style change event.\n * @private\n */\n CanvasVectorLayerRenderer.prototype.handleStyleImageChange_ = function (event) {\n this.renderIfReadyAndVisible();\n };\n /**\n * Determine whether render should be called.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @return {boolean} Layer is ready to be rendered.\n */\n CanvasVectorLayerRenderer.prototype.prepareFrame = function (frameState) {\n var vectorLayer = this.getLayer();\n var vectorSource = vectorLayer.getSource();\n if (!vectorSource) {\n return false;\n }\n var animating = frameState.viewHints[ViewHint.ANIMATING];\n var interacting = frameState.viewHints[ViewHint.INTERACTING];\n var updateWhileAnimating = vectorLayer.getUpdateWhileAnimating();\n var updateWhileInteracting = vectorLayer.getUpdateWhileInteracting();\n if ((this.ready && !updateWhileAnimating && animating) ||\n (!updateWhileInteracting && interacting)) {\n this.animatingOrInteracting_ = true;\n return true;\n }\n this.animatingOrInteracting_ = false;\n var frameStateExtent = frameState.extent;\n var viewState = frameState.viewState;\n var projection = viewState.projection;\n var resolution = viewState.resolution;\n var pixelRatio = frameState.pixelRatio;\n var vectorLayerRevision = vectorLayer.getRevision();\n var vectorLayerRenderBuffer = vectorLayer.getRenderBuffer();\n var vectorLayerRenderOrder = vectorLayer.getRenderOrder();\n if (vectorLayerRenderOrder === undefined) {\n vectorLayerRenderOrder = defaultRenderOrder;\n }\n var center = viewState.center.slice();\n var extent = buffer(frameStateExtent, vectorLayerRenderBuffer * resolution);\n var renderedExtent = extent.slice();\n var loadExtents = [extent.slice()];\n var projectionExtent = projection.getExtent();\n if (vectorSource.getWrapX() &&\n projection.canWrapX() &&\n !containsExtent(projectionExtent, frameState.extent)) {\n // For the replay group, we need an extent that intersects the real world\n // (-180° to +180°). To support geometries in a coordinate range from -540°\n // to +540°, we add at least 1 world width on each side of the projection\n // extent. If the viewport is wider than the world, we need to add half of\n // the viewport width to make sure we cover the whole viewport.\n var worldWidth = getWidth(projectionExtent);\n var gutter = Math.max(getWidth(extent) / 2, worldWidth);\n extent[0] = projectionExtent[0] - gutter;\n extent[2] = projectionExtent[2] + gutter;\n wrapCoordinateX(center, projection);\n var loadExtent = wrapExtentX(loadExtents[0], projection);\n // If the extent crosses the date line, we load data for both edges of the worlds\n if (loadExtent[0] < projectionExtent[0] &&\n loadExtent[2] < projectionExtent[2]) {\n loadExtents.push([\n loadExtent[0] + worldWidth,\n loadExtent[1],\n loadExtent[2] + worldWidth,\n loadExtent[3],\n ]);\n }\n else if (loadExtent[0] > projectionExtent[0] &&\n loadExtent[2] > projectionExtent[2]) {\n loadExtents.push([\n loadExtent[0] - worldWidth,\n loadExtent[1],\n loadExtent[2] - worldWidth,\n loadExtent[3],\n ]);\n }\n }\n if (this.ready &&\n this.renderedResolution_ == resolution &&\n this.renderedRevision_ == vectorLayerRevision &&\n this.renderedRenderOrder_ == vectorLayerRenderOrder &&\n containsExtent(this.wrappedRenderedExtent_, extent)) {\n if (!equals(this.renderedExtent_, renderedExtent)) {\n this.hitDetectionImageData_ = null;\n this.renderedExtent_ = renderedExtent;\n }\n this.renderedCenter_ = center;\n this.replayGroupChanged = false;\n return true;\n }\n this.replayGroup_ = null;\n var replayGroup = new CanvasBuilderGroup(getRenderTolerance(resolution, pixelRatio), extent, resolution, pixelRatio);\n var declutterBuilderGroup;\n if (this.getLayer().getDeclutter()) {\n declutterBuilderGroup = new CanvasBuilderGroup(getRenderTolerance(resolution, pixelRatio), extent, resolution, pixelRatio);\n }\n var userProjection = getUserProjection();\n var userTransform;\n if (userProjection) {\n for (var i = 0, ii = loadExtents.length; i < ii; ++i) {\n var extent_1 = loadExtents[i];\n var userExtent_1 = toUserExtent(extent_1, projection);\n vectorSource.loadFeatures(userExtent_1, toUserResolution(resolution, projection), userProjection);\n }\n userTransform = getTransformFromProjections(userProjection, projection);\n }\n else {\n for (var i = 0, ii = loadExtents.length; i < ii; ++i) {\n vectorSource.loadFeatures(loadExtents[i], resolution, projection);\n }\n }\n var squaredTolerance = getSquaredRenderTolerance(resolution, pixelRatio);\n var ready = true;\n var render = \n /**\n * @param {import(\"../../Feature.js\").default} feature Feature.\n * @this {CanvasVectorLayerRenderer}\n */\n function (feature) {\n var styles;\n var styleFunction = feature.getStyleFunction() || vectorLayer.getStyleFunction();\n if (styleFunction) {\n styles = styleFunction(feature, resolution);\n }\n if (styles) {\n var dirty = this.renderFeature(feature, squaredTolerance, styles, replayGroup, userTransform, declutterBuilderGroup);\n ready = ready && !dirty;\n }\n }.bind(this);\n var userExtent = toUserExtent(extent, projection);\n /** @type {Array} */\n var features = vectorSource.getFeaturesInExtent(userExtent);\n if (vectorLayerRenderOrder) {\n features.sort(vectorLayerRenderOrder);\n }\n for (var i = 0, ii = features.length; i < ii; ++i) {\n render(features[i]);\n }\n this.renderedFeatures_ = features;\n this.ready = ready;\n var replayGroupInstructions = replayGroup.finish();\n var executorGroup = new ExecutorGroup(extent, resolution, pixelRatio, vectorSource.getOverlaps(), replayGroupInstructions, vectorLayer.getRenderBuffer());\n if (declutterBuilderGroup) {\n this.declutterExecutorGroup = new ExecutorGroup(extent, resolution, pixelRatio, vectorSource.getOverlaps(), declutterBuilderGroup.finish(), vectorLayer.getRenderBuffer());\n }\n this.renderedResolution_ = resolution;\n this.renderedRevision_ = vectorLayerRevision;\n this.renderedRenderOrder_ = vectorLayerRenderOrder;\n this.renderedExtent_ = renderedExtent;\n this.wrappedRenderedExtent_ = extent;\n this.renderedCenter_ = center;\n this.renderedProjection_ = projection;\n this.replayGroup_ = executorGroup;\n this.hitDetectionImageData_ = null;\n this.replayGroupChanged = true;\n return true;\n };\n /**\n * @param {import(\"../../Feature.js\").default} feature Feature.\n * @param {number} squaredTolerance Squared render tolerance.\n * @param {import(\"../../style/Style.js\").default|Array} styles The style or array of styles.\n * @param {import(\"../../render/canvas/BuilderGroup.js\").default} builderGroup Builder group.\n * @param {import(\"../../proj.js\").TransformFunction} [opt_transform] Transform from user to view projection.\n * @param {import(\"../../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n * @return {boolean} `true` if an image is loading.\n */\n CanvasVectorLayerRenderer.prototype.renderFeature = function (feature, squaredTolerance, styles, builderGroup, opt_transform, opt_declutterBuilderGroup) {\n if (!styles) {\n return false;\n }\n var loading = false;\n if (Array.isArray(styles)) {\n for (var i = 0, ii = styles.length; i < ii; ++i) {\n loading =\n renderFeature(builderGroup, feature, styles[i], squaredTolerance, this.boundHandleStyleImageChange_, opt_transform, opt_declutterBuilderGroup) || loading;\n }\n }\n else {\n loading = renderFeature(builderGroup, feature, styles, squaredTolerance, this.boundHandleStyleImageChange_, opt_transform, opt_declutterBuilderGroup);\n }\n return loading;\n };\n return CanvasVectorLayerRenderer;\n}(CanvasLayerRenderer));\nexport default CanvasVectorLayerRenderer;\n//# sourceMappingURL=VectorLayer.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/Vector\n */\nimport BaseVectorLayer from './BaseVector.js';\nimport CanvasVectorLayerRenderer from '../renderer/canvas/VectorLayer.js';\n/**\n * @classdesc\n * Vector data is rendered client-side, as vectors. This layer type provides most accurate rendering\n * even during animations. Points and labels stay upright on rotated views. For very large\n * amounts of vector data, performance may suffer during pan and zoom animations. In this case,\n * try {@link module:ol/layer/VectorImage~VectorImageLayer}.\n *\n * Note that any property set in the options is set as a {@link module:ol/Object~BaseObject}\n * property on the layer object; for example, setting `title: 'My Title'` in the\n * options means that `title` is observable, and has get/set accessors.\n *\n * @template {import(\"../source/Vector.js\").default} VectorSourceType\n * @extends {BaseVectorLayer}\n * @api\n */\nvar VectorLayer = /** @class */ (function (_super) {\n __extends(VectorLayer, _super);\n /**\n * @param {import(\"./BaseVector.js\").Options} [opt_options] Options.\n */\n function VectorLayer(opt_options) {\n return _super.call(this, opt_options) || this;\n }\n VectorLayer.prototype.createRenderer = function () {\n return new CanvasVectorLayerRenderer(this);\n };\n return VectorLayer;\n}(BaseVectorLayer));\nexport default VectorLayer;\n//# sourceMappingURL=Vector.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';\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 {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~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 (mapBrowserEvent.activePointers) {\n this.targetPointers = mapBrowserEvent.activePointers;\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}\nexport default PointerInteraction;\n//# sourceMappingURL=Pointer.js.map","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.resourceReadPermission)?_c('div',{attrs:{\"id\":\"page-user-list\"}},[(_vm.customConfig.module != 'company')?_c('div',[(!_vm.customConfig.popupMode)?_c('bread-crumbs',{attrs:{\"title\":_vm.$t('ResourceList'),\"subTitle\":_vm.$t('general.SubtitleResource'),\"sizeTitle\":30,\"lineHeightTitle\":37,\"sizeSubTitle\":15,\"lineHeightSubTitle\":18}}):_c('div',{staticClass:\"flex items-start justify-between\"},[_c('bread-crumbs',{attrs:{\"title\":_vm.$t('ResourceList'),\"subTitle\":_vm.$t('general.SubtitleResource'),\"sizeTitle\":22,\"lineHeightTitle\":27,\"sizeSubTitle\":13,\"lineHeightSubTitle\":16}}),_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"XIcon\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('closePopup', false)}}})],1)],1):_vm._e(),_c('vs-prompt',{staticClass:\"export-options\",attrs:{\"title\":_vm.$t('ExportToExcel') + ' ' + _vm.$t('Selected'),\"accept-text\":\"Export\",\"active\":_vm.activePrompt1},on:{\"cancel\":_vm.clearFields,\"accept\":_vm.exportList,\"close\":_vm.clearFields,\"update:active\":function($event){_vm.activePrompt1=$event}}},[_c('vs-input',{staticClass:\"w-full\",attrs:{\"placeholder\":\"Enter File Name..\"},model:{value:(_vm.fileName),callback:function ($$v) {_vm.fileName=$$v},expression:\"fileName\"}}),_c('v-select',{staticClass:\"my-4\",attrs:{\"options\":_vm.formats},model:{value:(_vm.selectedFormat),callback:function ($$v) {_vm.selectedFormat=$$v},expression:\"selectedFormat\"}}),_c('div',{staticClass:\"flex\"},[_c('span',{staticClass:\"mr-4\"},[_vm._v(_vm._s(_vm.$t(\"MapModule.CellAutoWith\"))+\":\")]),_c('vs-switch',{model:{value:(_vm.cellAutoWidth),callback:function ($$v) {_vm.cellAutoWidth=$$v},expression:\"cellAutoWidth\"}},[_vm._v(_vm._s(_vm.$t(\"MapModule.CellAutoWith\")))])],1)],1),_c('vs-prompt',{staticClass:\"export-options\",attrs:{\"title\":_vm.$t('ExportToExcel') + ' ' + _vm.$t('All'),\"accept-text\":\"Export\",\"active\":_vm.activePrompt2},on:{\"cancel\":_vm.clearFields,\"accept\":_vm.exportList2,\"close\":_vm.clearFields,\"update:active\":function($event){_vm.activePrompt2=$event}}},[_c('v-select',{staticClass:\"my-4\",attrs:{\"options\":_vm.typologyOptions},model:{value:(_vm.typologyIdForExport),callback:function ($$v) {_vm.typologyIdForExport=$$v},expression:\"typologyIdForExport\"}}),_c('v-select',{staticClass:\"my-4\",attrs:{\"options\":_vm.formats},model:{value:(_vm.selectedFormat),callback:function ($$v) {_vm.selectedFormat=$$v},expression:\"selectedFormat\"}}),_c('div',{staticClass:\"flex\"},[_c('span',{staticClass:\"mr-4\"},[_vm._v(_vm._s(_vm.$t(\"MapModule.CellAutoWith\"))+\":\")]),_c('vs-switch',{model:{value:(_vm.cellAutoWidth),callback:function ($$v) {_vm.cellAutoWidth=$$v},expression:\"cellAutoWidth\"}},[_vm._v(_vm._s(_vm.$t(\"MapModule.CellAutoWith\")))])],1)],1),_c('div',{class:_vm.customConfig.popupMode === true || _vm.customConfig.module === 'massiveassignment' ? '' : 'vx-card p-6'},[(!_vm.customConfig.popupMode)?_c('div',{staticClass:\"vx-row\"},[_c('div',{staticClass:\"vx-col flex w-full md:w-4/5 mb-2\"},[[_c('vs-dropdown',{staticClass:\"cursor-pointer mr-2 w-1/2\",attrs:{\"vs-trigger-click\":\"\"}},[_c('div',{staticClass:\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tp-3\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tborder border-solid\\n\\t\\t\\t\\t\\t\\t\\t\\t\\td-theme-border-grey-light\\n\\t\\t\\t\\t\\t\\t\\t\\t\\trounded-lg\\n\\t\\t\\t\\t\\t\\t\\t\\t\\td-theme-dark-bg\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tcursor-pointer\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tfont-medium\\n\\t\\t\\t\\t\\t\\t\\t\\t\"},[_c('span',[_vm._v(_vm._s(_vm.$t(\"SearchBy\"))+\" \"+_vm._s(_vm.$t((\"\" + _vm.searchField))))]),_c('feather-icon',{attrs:{\"icon\":\"ChevronDownIcon\",\"svgClasses\":\"h-4 w-4\"}})],1),_c('vs-dropdown-menu',[_c('vs-dropdown-item',{on:{\"click\":function($event){return _vm.setSearchField('Name')}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"Name\")))])]),_c('vs-dropdown-item',{on:{\"click\":function($event){return _vm.setSearchField('Lastname')}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"Lastname\")))])]),_c('vs-dropdown-item',{on:{\"click\":function($event){return _vm.setSearchField('Identification')}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"Identification\")))])]),_c('vs-dropdown-item',{on:{\"click\":function($event){return _vm.setSearchField('Email')}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"Email\")))])]),_c('vs-dropdown-item',{on:{\"click\":function($event){return _vm.setSearchField('Username')}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"User\")))])])],1)],1)],_c('vx-input-group',{staticClass:\"w-full\"},[_c('vs-input',{staticClass:\"w-full\",attrs:{\"icon-no-border\":\"\",\"placeholder\":_vm.$t('Search')},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.searchResource.apply(null, arguments)}},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}}),_c('template',{slot:\"append\"},[_c('div',{staticClass:\"btn-addon\"},[_c('vs-button',{staticClass:\"cursor-pointer\",attrs:{\"type\":\"filled\",\"color\":\"primary\",\"icon-pack\":\"feather\",\"icon\":\"icon-search\",\"title\":_vm.$t('Search')},on:{\"click\":_vm.searchResource}})],1)])],2)],2),_c('div',{staticClass:\"vx-col flex justify-end items-center md:w-1/5 mb-2\"},[_c('vs-button',{staticClass:\"mr-2 cursor-pointer\",attrs:{\"color\":\"primary\",\"type\":\"filled\",\"icon-pack\":\"feather\",\"icon\":\"icon-download\",\"title\":_vm.$t('Export') + ' ' + _vm.$t('Resource.Resources')},on:{\"click\":function($event){$event.preventDefault();return _vm.activateExport.apply(null, arguments)}}}),_c('vs-button',{staticClass:\"mr-2 cursor-pointer\",attrs:{\"type\":\"filled\",\"color\":\"primary\",\"icon-pack\":\"feather\",\"icon\":\"icon-refresh-cw\",\"title\":_vm.$t('Schedule.Refresh')},on:{\"click\":function($event){$event.preventDefault();return _vm.refresh.apply(null, arguments)}}}),_c('vs-button',{staticClass:\"cursor-pointer\",attrs:{\"type\":\"filled\",\"icon-pack\":\"feather\",\"icon\":\"icon-plus\",\"title\":_vm.$t('CreateResource')},on:{\"click\":function($event){$event.preventDefault();return _vm.goToCreate.apply(null, arguments)}}})],1)]):_vm._e(),(_vm.customConfig.popupMode)?_c('div',{staticClass:\"vx-row\"},[_c('div',{staticClass:\"vx-col w-full sm:w-1/1 md:w-1/3\"},[_c('v-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],attrs:{\"name\":\"country\",\"clearable\":false,\"options\":_vm.searchOptions,\"dir\":_vm.$vs.rtl ? 'rtl' : 'ltr'},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\nvar search = ref.search;\nvar searching = ref.searching;\nreturn [(searching)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"general.NoResultsFoundFor\") + \" \")),_c('em',[_vm._v(_vm._s(search))])]:_vm._e()]}}],null,false,3712116936),model:{value:(_vm.searchFieldSelected),callback:function ($$v) {_vm.searchFieldSelected=$$v},expression:\"searchFieldSelected\"}})],1),_c('div',{staticClass:\"vx-col w-full md:w-5/12\"},[_c('vs-input',{staticClass:\"w-full\",attrs:{\"placeholder\":_vm.placeholder},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.searchResource.apply(null, arguments)}},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}})],1),_c('div',{staticClass:\"vx-col md:w-1/5 flex items-center\"},[(_vm.customConfig.btnAssigResources)?_c('vs-button',{attrs:{\"type\":\"filled\",\"color\":\"primary\",\"icon-pack\":\"feather\",\"icon\":\"icon-search\"},on:{\"click\":_vm.searchResource}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"Search\"))+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e(),_c('vs-button',{staticClass:\"ml-2\",staticStyle:{\"width\":\"167px\"},attrs:{\"type\":\"filled\",\"color\":\"primary\",\"icon-pack\":\"feather\",\"icon\":\"icon-refresh-cw\"},on:{\"click\":function($event){$event.preventDefault();return _vm.refresh.apply(null, arguments)}}})],1)]):_vm._e(),(_vm.customConfig.module === 'report' && _vm.customConfig.rowSelection !== 'single')?_c('div',{staticClass:\"vx-row pt-2\"},[_c('div',{staticClass:\"vx-col w-full flex justify-end\"},[_c('p',{staticClass:\"g-label--normal text-warning mr-1\"},[_vm._v(_vm._s(_vm.$t(\"general.MaximumResourceReport\")))]),_c('p',{staticClass:\"g-label--normal text-warning\",class:_vm.hasAnimation ? 'bounce-enter-active' : ''},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(\"(\" + _vm.getCheckedResources.length + \"/3)\")+\"\\n\\t\\t\\t\\t\\t\")])])]):_vm._e(),_c('ag-grid-vue',{ref:\"agGridTable\",staticClass:\"ag-theme-material w-100 my-4 ag-grid-table\",attrs:{\"colResizeDefault\":\"shift\",\"components\":_vm.components,\"gridOptions\":_vm.gridOptions,\"columnDefs\":_vm.columnDefs,\"defaultColDef\":_vm.defaultColDef,\"rowData\":_vm.resourcesData,\"rowSelection\":_vm.customConfig.rowSelection,\"animateRows\":true,\"floatingFilter\":false,\"pagination\":true,\"paginationPageSize\":_vm.paginationPageSize,\"suppressPaginationPanel\":true,\"enableRtl\":_vm.$vs.rtl},on:{\"selection-changed\":_vm.onSelectionChanged,\"rowSelected\":_vm.rowSelected,\"grid-ready\":_vm.onGridReady}}),_c('vs-pagination',{attrs:{\"total\":_vm.totalPages,\"max\":5,\"goto\":\"\"},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}}),(_vm.customConfig.btnAssigResources)?_c('div',{staticClass:\"text-right\"},[_c('vs-button',{staticClass:\"g-btn--resourcePopup justify-items-end\",attrs:{\"type\":\"filled\",\"color\":\"#31C918\",\"disabled\":!_vm.getCheckedResources.length > 0},on:{\"click\":_vm.assigSelectedResorces}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"Resource.AssigResources\"))+\"\\n\\t\\t\\t\\t\")])],1):_vm._e()],1)],1):_c('not-permission',{attrs:{\"message\":_vm.message}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"flex items-center\"},[_c('vs-avatar',{staticClass:\"flex-shrink-0 mr-2\",attrs:{\"src\":_vm.params.data.avatar,\"size\":\"30px\"},on:{\"click\":function($event){return _vm.$router.push(_vm.url)}}}),_c('router-link',{staticClass:\"text-inherit hover:text-primary\",attrs:{\"to\":_vm.url},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();}}},[_vm._v(_vm._s(_vm.params.value)+\"\\n\\t\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CellRendererLink.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CellRendererLink.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CellRendererLink.vue?vue&type=template&id=6763748c&\"\nimport script from \"./CellRendererLink.vue?vue&type=script&lang=js&\"\nexport * from \"./CellRendererLink.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ResourceList.vue?vue&type=template&id=b4c89d86&scoped=true&\"\nimport script from \"./ResourceList.vue?vue&type=script&lang=js&\"\nexport * from \"./ResourceList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ResourceList.vue?vue&type=style&index=0&id=b4c89d86&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b4c89d86\",\n null\n \n)\n\nexport default component.exports","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|null}\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|null} Map.\n * @api\n */\n Interaction.prototype.getMap = function () {\n return this.map_;\n };\n /**\n * Handles the {@link module:ol/MapBrowserEvent~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|null} 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/geom/MultiLineString\n */\nimport GeometryLayout from './GeometryLayout.js';\nimport LineString from './LineString.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport { arrayMaxSquaredDelta, assignClosestArrayPoint } from './flat/closest.js';\nimport { closestSquaredDistanceXY } from '../extent.js';\nimport { deflateCoordinatesArray } from './flat/deflate.js';\nimport { douglasPeuckerArray } from './flat/simplify.js';\nimport { extend } from '../array.js';\nimport { inflateCoordinatesArray } from './flat/inflate.js';\nimport { interpolatePoint, lineStringsCoordinateAtM, } from './flat/interpolate.js';\nimport { intersectsLineStringArray } from './flat/intersectsextent.js';\n/**\n * @classdesc\n * Multi-linestring geometry.\n *\n * @api\n */\nvar MultiLineString = /** @class */ (function (_super) {\n __extends(MultiLineString, _super);\n /**\n * @param {Array|LineString>|Array} coordinates\n * Coordinates or LineString geometries. (For internal use, flat coordinates in\n * combination with `opt_layout` and `opt_ends` are also accepted.)\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n * @param {Array} [opt_ends] Flat coordinate ends for internal use.\n */\n function MultiLineString(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.maxDelta_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.maxDeltaRevision_ = -1;\n if (Array.isArray(coordinates[0])) {\n _this.setCoordinates(\n /** @type {Array>} */ (coordinates), opt_layout);\n }\n else if (opt_layout !== undefined && opt_ends) {\n _this.setFlatCoordinates(opt_layout, \n /** @type {Array} */ (coordinates));\n _this.ends_ = opt_ends;\n }\n else {\n var layout = _this.getLayout();\n var lineStrings = /** @type {Array} */ (coordinates);\n var flatCoordinates = [];\n var ends = [];\n for (var i = 0, ii = lineStrings.length; i < ii; ++i) {\n var lineString = lineStrings[i];\n if (i === 0) {\n layout = lineString.getLayout();\n }\n extend(flatCoordinates, lineString.getFlatCoordinates());\n ends.push(flatCoordinates.length);\n }\n _this.setFlatCoordinates(layout, flatCoordinates);\n _this.ends_ = ends;\n }\n return _this;\n }\n /**\n * Append the passed linestring to the multilinestring.\n * @param {LineString} lineString LineString.\n * @api\n */\n MultiLineString.prototype.appendLineString = function (lineString) {\n if (!this.flatCoordinates) {\n this.flatCoordinates = lineString.getFlatCoordinates().slice();\n }\n else {\n extend(this.flatCoordinates, lineString.getFlatCoordinates().slice());\n }\n this.ends_.push(this.flatCoordinates.length);\n this.changed();\n };\n /**\n * Make a complete copy of the geometry.\n * @return {!MultiLineString} Clone.\n * @api\n */\n MultiLineString.prototype.clone = function () {\n var multiLineString = new MultiLineString(this.flatCoordinates.slice(), this.layout, this.ends_.slice());\n multiLineString.applyProperties(this);\n return multiLineString;\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 MultiLineString.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_, false, x, y, closestPoint, minSquaredDistance);\n };\n /**\n * Returns the coordinate at `m` using linear interpolation, or `null` if no\n * such coordinate exists.\n *\n * `opt_extrapolate` controls extrapolation beyond the range of Ms in the\n * MultiLineString. If `opt_extrapolate` is `true` then Ms less than the first\n * M will return the first coordinate and Ms greater than the last M will\n * return the last coordinate.\n *\n * `opt_interpolate` controls interpolation between consecutive LineStrings\n * within the MultiLineString. If `opt_interpolate` is `true` the coordinates\n * will be linearly interpolated between the last coordinate of one LineString\n * and the first coordinate of the next LineString. If `opt_interpolate` is\n * `false` then the function will return `null` for Ms falling between\n * LineStrings.\n *\n * @param {number} m M.\n * @param {boolean} [opt_extrapolate] Extrapolate. Default is `false`.\n * @param {boolean} [opt_interpolate] Interpolate. Default is `false`.\n * @return {import(\"../coordinate.js\").Coordinate|null} Coordinate.\n * @api\n */\n MultiLineString.prototype.getCoordinateAtM = function (m, opt_extrapolate, opt_interpolate) {\n if ((this.layout != GeometryLayout.XYM &&\n this.layout != GeometryLayout.XYZM) ||\n this.flatCoordinates.length === 0) {\n return null;\n }\n var extrapolate = opt_extrapolate !== undefined ? opt_extrapolate : false;\n var interpolate = opt_interpolate !== undefined ? opt_interpolate : false;\n return lineStringsCoordinateAtM(this.flatCoordinates, 0, this.ends_, this.stride, m, extrapolate, interpolate);\n };\n /**\n * Return the coordinates of the multilinestring.\n * @return {Array>} Coordinates.\n * @api\n */\n MultiLineString.prototype.getCoordinates = function () {\n return inflateCoordinatesArray(this.flatCoordinates, 0, this.ends_, this.stride);\n };\n /**\n * @return {Array} Ends.\n */\n MultiLineString.prototype.getEnds = function () {\n return this.ends_;\n };\n /**\n * Return the linestring at the specified index.\n * @param {number} index Index.\n * @return {LineString} LineString.\n * @api\n */\n MultiLineString.prototype.getLineString = function (index) {\n if (index < 0 || this.ends_.length <= index) {\n return null;\n }\n return new LineString(this.flatCoordinates.slice(index === 0 ? 0 : this.ends_[index - 1], this.ends_[index]), this.layout);\n };\n /**\n * Return the linestrings of this multilinestring.\n * @return {Array} LineStrings.\n * @api\n */\n MultiLineString.prototype.getLineStrings = function () {\n var flatCoordinates = this.flatCoordinates;\n var ends = this.ends_;\n var layout = this.layout;\n /** @type {Array} */\n var lineStrings = [];\n var offset = 0;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var lineString = new LineString(flatCoordinates.slice(offset, end), layout);\n lineStrings.push(lineString);\n offset = end;\n }\n return lineStrings;\n };\n /**\n * @return {Array} Flat midpoints.\n */\n MultiLineString.prototype.getFlatMidpoints = function () {\n var midpoints = [];\n var flatCoordinates = this.flatCoordinates;\n var offset = 0;\n var ends = this.ends_;\n var stride = this.stride;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var midpoint = interpolatePoint(flatCoordinates, offset, end, stride, 0.5);\n extend(midpoints, midpoint);\n offset = end;\n }\n return midpoints;\n };\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {MultiLineString} Simplified MultiLineString.\n * @protected\n */\n MultiLineString.prototype.getSimplifiedGeometryInternal = function (squaredTolerance) {\n var simplifiedFlatCoordinates = [];\n var simplifiedEnds = [];\n simplifiedFlatCoordinates.length = douglasPeuckerArray(this.flatCoordinates, 0, this.ends_, this.stride, squaredTolerance, simplifiedFlatCoordinates, 0, simplifiedEnds);\n return new MultiLineString(simplifiedFlatCoordinates, GeometryLayout.XY, simplifiedEnds);\n };\n /**\n * Get the type of this geometry.\n * @return {import(\"./Geometry.js\").Type} Geometry type.\n * @api\n */\n MultiLineString.prototype.getType = function () {\n return 'MultiLineString';\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 MultiLineString.prototype.intersectsExtent = function (extent) {\n return intersectsLineStringArray(this.flatCoordinates, 0, this.ends_, this.stride, extent);\n };\n /**\n * Set the coordinates of the multilinestring.\n * @param {!Array>} coordinates Coordinates.\n * @param {GeometryLayout} [opt_layout] Layout.\n * @api\n */\n MultiLineString.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 MultiLineString;\n}(SimpleGeometry));\nexport default MultiLineString;\n//# sourceMappingURL=MultiLineString.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/BaseTile\n */\nimport Layer from './Layer.js';\nimport TileProperty from './TileProperty.js';\nimport { assign } from '../obj.js';\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} BaseTileLayerOnSignature\n */\n/**\n * @template {import(\"../source/Tile.js\").default} TileSourceType\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 {number} [preload=0] Preload. Load low-resolution tiles up to `preload` levels. `0`\n * means no preloading.\n * @property {TileSourceType} [source] Source for this layer.\n * @property {import(\"../PluggableMap.js\").default} [map] Sets the layer as overlay on a map. The map will not manage\n * this layer in its layers collection, and the layer will be rendered on top. This is useful for\n * temporary layers. The standard way to add a layer to a map and have it managed by the map is to\n * use {@link import(\"../PluggableMap.js\").default#addLayer map.addLayer()}.\n * @property {boolean} [useInterimTilesOnError=true] Use interim tiles on error.\n * @property {Object} [properties] Arbitrary observable properties. Can be accessed with `#get()` and `#set()`.\n */\n/**\n * @classdesc\n * For layer sources that provide pre-rendered, tiled images in grids that are\n * organized by zoom levels for specific resolutions.\n * Note that any property set in the options is set as a {@link module:ol/Object~BaseObject}\n * property on the layer object; for example, setting `title: 'My Title'` in the\n * options means that `title` is observable, and has get/set accessors.\n *\n * @template {import(\"../source/Tile.js\").default} TileSourceType\n * @template {import(\"../renderer/Layer.js\").default} RendererType\n * @extends {Layer}\n * @api\n */\nvar BaseTileLayer = /** @class */ (function (_super) {\n __extends(BaseTileLayer, _super);\n /**\n * @param {Options} [opt_options] Tile layer options.\n */\n function BaseTileLayer(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n var baseOptions = assign({}, options);\n delete baseOptions.preload;\n delete baseOptions.useInterimTilesOnError;\n _this = _super.call(this, baseOptions) || this;\n /***\n * @type {BaseTileLayerOnSignature}\n */\n _this.on;\n /***\n * @type {BaseTileLayerOnSignature}\n */\n _this.once;\n /***\n * @type {BaseTileLayerOnSignature}\n */\n _this.un;\n _this.setPreload(options.preload !== undefined ? options.preload : 0);\n _this.setUseInterimTilesOnError(options.useInterimTilesOnError !== undefined\n ? options.useInterimTilesOnError\n : true);\n return _this;\n }\n /**\n * Return the level as number to which we will preload tiles up to.\n * @return {number} The level to preload tiles up to.\n * @observable\n * @api\n */\n BaseTileLayer.prototype.getPreload = function () {\n return /** @type {number} */ (this.get(TileProperty.PRELOAD));\n };\n /**\n * Set the level as number to which we will preload tiles up to.\n * @param {number} preload The level to preload tiles up to.\n * @observable\n * @api\n */\n BaseTileLayer.prototype.setPreload = function (preload) {\n this.set(TileProperty.PRELOAD, preload);\n };\n /**\n * Whether we use interim tiles on error.\n * @return {boolean} Use interim tiles on error.\n * @observable\n * @api\n */\n BaseTileLayer.prototype.getUseInterimTilesOnError = function () {\n return /** @type {boolean} */ (this.get(TileProperty.USE_INTERIM_TILES_ON_ERROR));\n };\n /**\n * Set whether we use interim tiles on error.\n * @param {boolean} useInterimTilesOnError Use interim tiles on error.\n * @observable\n * @api\n */\n BaseTileLayer.prototype.setUseInterimTilesOnError = function (useInterimTilesOnError) {\n this.set(TileProperty.USE_INTERIM_TILES_ON_ERROR, useInterimTilesOnError);\n };\n /**\n * Get data for a pixel location. The return type depends on the source data. For image tiles,\n * a four element RGBA array will be returned. For data tiles, the array length will match the\n * number of bands in the dataset. For requests outside the layer extent, `null` will be returned.\n * Data for a image tiles can only be retrieved if the source's `crossOrigin` property is set.\n *\n * ```js\n * // display layer data on every pointer move\n * map.on('pointermove', (event) => {\n * console.log(layer.getData(event.pixel));\n * });\n * ```\n * @param {import(\"../pixel\").Pixel} pixel Pixel.\n * @return {Uint8ClampedArray|Uint8Array|Float32Array|DataView|null} Pixel data.\n * @api\n */\n BaseTileLayer.prototype.getData = function (pixel) {\n return _super.prototype.getData.call(this, pixel);\n };\n return BaseTileLayer;\n}(Layer));\nexport default BaseTileLayer;\n//# sourceMappingURL=BaseTile.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/Tile\n */\nimport BaseTileLayer from './BaseTile.js';\nimport CanvasTileLayerRenderer from '../renderer/canvas/TileLayer.js';\n/**\n * @classdesc\n * For layer sources that provide pre-rendered, tiled images in grids that are\n * organized by zoom levels for specific resolutions.\n * Note that any property set in the options is set as a {@link module:ol/Object~BaseObject}\n * property on the layer object; for example, setting `title: 'My Title'` in the\n * options means that `title` is observable, and has get/set accessors.\n *\n * @template {import(\"../source/Tile.js\").default} TileSourceType\n * @extends BaseTileLayer\n * @api\n */\nvar TileLayer = /** @class */ (function (_super) {\n __extends(TileLayer, _super);\n /**\n * @param {import(\"./BaseTile.js\").Options} [opt_options] Tile layer options.\n */\n function TileLayer(opt_options) {\n return _super.call(this, opt_options) || this;\n }\n TileLayer.prototype.createRenderer = function () {\n return new CanvasTileLayerRenderer(this);\n };\n return TileLayer;\n}(BaseTileLayer));\nexport default TileLayer;\n//# sourceMappingURL=Tile.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","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 * @template Geometry\n * @typedef {Object & { geometry?: Geometry }} ObjectWithGeometry\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~BaseObject} 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=import(\"./geom/Geometry.js\").default]\n */\nvar Feature = /** @class */ (function (_super) {\n __extends(Feature, _super);\n /**\n * @param {Geometry|ObjectWithGeometry} [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 = /** @type {Feature} */ (new Feature(this.hasProperties() ? this.getProperties() : null));\n clone.setGeometryName(this.getGeometryName());\n var geometry = this.getGeometry();\n if (geometry) {\n clone.setGeometry(/** @type {Geometry} */ (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/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/**\n * Return a two-dimensional endss\n * @param {Array} flatCoordinates Flat coordinates\n * @param {Array} ends Linear ring end indexes\n * @return {Array>} Two dimensional endss array that can\n * be used to contruct a MultiPolygon\n */\nexport function inflateEnds(flatCoordinates, ends) {\n var endss = [];\n var offset = 0;\n var prevEndIndex = 0;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n // classifies an array of rings into polygons with outer rings and holes\n if (!linearRingIsClockwise(flatCoordinates, offset, end, 2)) {\n endss.push(ends.slice(prevEndIndex, i + 1));\n }\n else {\n if (endss.length === 0) {\n continue;\n }\n endss[endss.length - 1].push(ends[prevEndIndex]);\n }\n prevEndIndex = i + 1;\n offset = end;\n }\n return endss;\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/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 * @param {Array} [opt_activePointers] Active pointers.\n */\n function MapBrowserEvent(type, map, originalEvent, opt_dragging, opt_frameState, opt_activePointers) {\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 /**\n * @type {Array|undefined}\n */\n _this.activePointers = opt_activePointers;\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/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/source/TileEventType\n */\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered when a tile starts loading.\n * @event module:ol/source/Tile.TileSourceEvent#tileloadstart\n * @api\n */\n TILELOADSTART: 'tileloadstart',\n /**\n * Triggered when a tile finishes loading, either when its data is loaded,\n * or when loading was aborted because the tile is no longer needed.\n * @event module:ol/source/Tile.TileSourceEvent#tileloadend\n * @api\n */\n TILELOADEND: 'tileloadend',\n /**\n * Triggered if tile loading results in an error.\n * @event module:ol/source/Tile.TileSourceEvent#tileloaderror\n * @api\n */\n TILELOADERROR: 'tileloaderror',\n};\n/**\n * @typedef {'tileloadstart'|'tileloadend'|'tileloaderror'} TileSourceEventTypes\n */\n//# sourceMappingURL=TileEventType.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/source/Tile\n */\nimport Event from '../events/Event.js';\nimport Source from './Source.js';\nimport TileCache from '../TileCache.js';\nimport TileState from '../TileState.js';\nimport { abstract } from '../util.js';\nimport { assert } from '../asserts.js';\nimport { equivalent } from '../proj.js';\nimport { getKeyZXY, withinExtentAndZ } from '../tilecoord.js';\nimport { getForProjection as getTileGridForProjection, wrapX, } from '../tilegrid.js';\nimport { scale as scaleSize, toSize } from '../size.js';\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} TileSourceOnSignature\n */\n/**\n * @typedef {Object} Options\n * @property {import(\"./Source.js\").AttributionLike} [attributions] Attributions.\n * @property {boolean} [attributionsCollapsible=true] Attributions are collapsible.\n * @property {number} [cacheSize] CacheSize.\n * @property {boolean} [opaque=false] Whether the layer is opaque.\n * @property {number} [tilePixelRatio] TilePixelRatio.\n * @property {import(\"../proj.js\").ProjectionLike} [projection] Projection.\n * @property {import(\"./Source.js\").State} [state] State.\n * @property {import(\"../tilegrid/TileGrid.js\").default} [tileGrid] TileGrid.\n * @property {boolean} [wrapX=false] WrapX.\n * @property {number} [transition] Transition.\n * @property {string} [key] Key.\n * @property {number|import(\"../array.js\").NearestDirectionFunction} [zDirection=0] ZDirection.\n * @property {boolean} [interpolate=false] Use interpolated values when resampling. By default,\n * the nearest neighbor is used when resampling.\n */\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Base class for sources providing images divided into a tile grid.\n * @abstract\n * @api\n */\nvar TileSource = /** @class */ (function (_super) {\n __extends(TileSource, _super);\n /**\n * @param {Options} options SourceTile source options.\n */\n function TileSource(options) {\n var _this = _super.call(this, {\n attributions: options.attributions,\n attributionsCollapsible: options.attributionsCollapsible,\n projection: options.projection,\n state: options.state,\n wrapX: options.wrapX,\n interpolate: options.interpolate,\n }) || this;\n /***\n * @type {TileSourceOnSignature}\n */\n _this.on;\n /***\n * @type {TileSourceOnSignature}\n */\n _this.once;\n /***\n * @type {TileSourceOnSignature}\n */\n _this.un;\n /**\n * @private\n * @type {boolean}\n */\n _this.opaque_ = options.opaque !== undefined ? options.opaque : false;\n /**\n * @private\n * @type {number}\n */\n _this.tilePixelRatio_ =\n options.tilePixelRatio !== undefined ? options.tilePixelRatio : 1;\n /**\n * @type {import(\"../tilegrid/TileGrid.js\").default|null}\n */\n _this.tileGrid = options.tileGrid !== undefined ? options.tileGrid : null;\n var tileSize = [256, 256];\n if (_this.tileGrid) {\n toSize(_this.tileGrid.getTileSize(_this.tileGrid.getMinZoom()), tileSize);\n }\n /**\n * @protected\n * @type {import(\"../TileCache.js\").default}\n */\n _this.tileCache = new TileCache(options.cacheSize || 0);\n /**\n * @protected\n * @type {import(\"../size.js\").Size}\n */\n _this.tmpSize = [0, 0];\n /**\n * @private\n * @type {string}\n */\n _this.key_ = options.key || '';\n /**\n * @protected\n * @type {import(\"../Tile.js\").Options}\n */\n _this.tileOptions = {\n transition: options.transition,\n interpolate: options.interpolate,\n };\n /**\n * zDirection hint, read by the renderer. Indicates which resolution should be used\n * by a renderer if the views 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 * @type {number|import(\"../array.js\").NearestDirectionFunction}\n */\n _this.zDirection = options.zDirection ? options.zDirection : 0;\n return _this;\n }\n /**\n * @return {boolean} Can expire cache.\n */\n TileSource.prototype.canExpireCache = function () {\n return this.tileCache.canExpireCache();\n };\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @param {!Object} usedTiles Used tiles.\n */\n TileSource.prototype.expireCache = function (projection, usedTiles) {\n var tileCache = this.getTileCacheForProjection(projection);\n if (tileCache) {\n tileCache.expireCache(usedTiles);\n }\n };\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @param {number} z Zoom level.\n * @param {import(\"../TileRange.js\").default} tileRange Tile range.\n * @param {function(import(\"../Tile.js\").default):(boolean|void)} callback Called with each\n * loaded tile. If the callback returns `false`, the tile will not be\n * considered loaded.\n * @return {boolean} The tile range is fully covered with loaded tiles.\n */\n TileSource.prototype.forEachLoadedTile = function (projection, z, tileRange, callback) {\n var tileCache = this.getTileCacheForProjection(projection);\n if (!tileCache) {\n return false;\n }\n var covered = true;\n var tile, tileCoordKey, loaded;\n for (var x = tileRange.minX; x <= tileRange.maxX; ++x) {\n for (var y = tileRange.minY; y <= tileRange.maxY; ++y) {\n tileCoordKey = getKeyZXY(z, x, y);\n loaded = false;\n if (tileCache.containsKey(tileCoordKey)) {\n tile = /** @type {!import(\"../Tile.js\").default} */ (tileCache.get(tileCoordKey));\n loaded = tile.getState() === TileState.LOADED;\n if (loaded) {\n loaded = callback(tile) !== false;\n }\n }\n if (!loaded) {\n covered = false;\n }\n }\n }\n return covered;\n };\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {number} Gutter.\n */\n TileSource.prototype.getGutterForProjection = function (projection) {\n return 0;\n };\n /**\n * Return the key to be used for all tiles in the source.\n * @return {string} The key for all tiles.\n */\n TileSource.prototype.getKey = function () {\n return this.key_;\n };\n /**\n * Set the value to be used as the key for all tiles in the source.\n * @param {string} key The key for tiles.\n * @protected\n */\n TileSource.prototype.setKey = function (key) {\n if (this.key_ !== key) {\n this.key_ = key;\n this.changed();\n }\n };\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {boolean} Opaque.\n */\n TileSource.prototype.getOpaque = function (projection) {\n return this.opaque_;\n };\n /**\n * @return {Array|null} Resolutions.\n */\n TileSource.prototype.getResolutions = function () {\n if (!this.tileGrid) {\n return null;\n }\n return this.tileGrid.getResolutions();\n };\n /**\n * @abstract\n * @param {number} z Tile coordinate z.\n * @param {number} x Tile coordinate x.\n * @param {number} y Tile coordinate y.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {!import(\"../Tile.js\").default} Tile.\n */\n TileSource.prototype.getTile = function (z, x, y, pixelRatio, projection) {\n return abstract();\n };\n /**\n * Return the tile grid of the tile source.\n * @return {import(\"../tilegrid/TileGrid.js\").default|null} Tile grid.\n * @api\n */\n TileSource.prototype.getTileGrid = function () {\n return this.tileGrid;\n };\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {!import(\"../tilegrid/TileGrid.js\").default} Tile grid.\n */\n TileSource.prototype.getTileGridForProjection = function (projection) {\n if (!this.tileGrid) {\n return getTileGridForProjection(projection);\n }\n else {\n return this.tileGrid;\n }\n };\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {import(\"../TileCache.js\").default} Tile cache.\n * @protected\n */\n TileSource.prototype.getTileCacheForProjection = function (projection) {\n var sourceProjection = this.getProjection();\n assert(sourceProjection === null || equivalent(sourceProjection, projection), 68 // A VectorTile source can only be rendered if it has a projection compatible with the view projection.\n );\n return this.tileCache;\n };\n /**\n * Get the tile pixel ratio for this source. Subclasses may override this\n * method, which is meant to return a supported pixel ratio that matches the\n * provided `pixelRatio` as close as possible.\n * @param {number} pixelRatio Pixel ratio.\n * @return {number} Tile pixel ratio.\n */\n TileSource.prototype.getTilePixelRatio = function (pixelRatio) {\n return this.tilePixelRatio_;\n };\n /**\n * @param {number} z Z.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {import(\"../size.js\").Size} Tile size.\n */\n TileSource.prototype.getTilePixelSize = function (z, pixelRatio, projection) {\n var tileGrid = this.getTileGridForProjection(projection);\n var tilePixelRatio = this.getTilePixelRatio(pixelRatio);\n var tileSize = toSize(tileGrid.getTileSize(z), this.tmpSize);\n if (tilePixelRatio == 1) {\n return tileSize;\n }\n else {\n return scaleSize(tileSize, tilePixelRatio, this.tmpSize);\n }\n };\n /**\n * Returns a tile coordinate wrapped around the x-axis. When the tile coordinate\n * is outside the resolution and extent range of the tile grid, `null` will be\n * returned.\n * @param {import(\"../tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {import(\"../proj/Projection.js\").default} [opt_projection] Projection.\n * @return {import(\"../tilecoord.js\").TileCoord} Tile coordinate to be passed to the tileUrlFunction or\n * null if no tile URL should be created for the passed `tileCoord`.\n */\n TileSource.prototype.getTileCoordForTileUrlFunction = function (tileCoord, opt_projection) {\n var projection = opt_projection !== undefined ? opt_projection : this.getProjection();\n var tileGrid = this.getTileGridForProjection(projection);\n if (this.getWrapX() && projection.isGlobal()) {\n tileCoord = wrapX(tileGrid, tileCoord, projection);\n }\n return withinExtentAndZ(tileCoord, tileGrid) ? tileCoord : null;\n };\n /**\n * Remove all cached tiles from the source. The next render cycle will fetch new tiles.\n * @api\n */\n TileSource.prototype.clear = function () {\n this.tileCache.clear();\n };\n TileSource.prototype.refresh = function () {\n this.clear();\n _super.prototype.refresh.call(this);\n };\n /**\n * Increases the cache size if needed\n * @param {number} tileCount Minimum number of tiles needed.\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n */\n TileSource.prototype.updateCacheSize = function (tileCount, projection) {\n var tileCache = this.getTileCacheForProjection(projection);\n if (tileCount > tileCache.highWaterMark) {\n tileCache.highWaterMark = tileCount;\n }\n };\n /**\n * Marks a tile coord as being used, without triggering a load.\n * @abstract\n * @param {number} z Tile coordinate z.\n * @param {number} x Tile coordinate x.\n * @param {number} y Tile coordinate y.\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n */\n TileSource.prototype.useTile = function (z, x, y, projection) { };\n return TileSource;\n}(Source));\n/**\n * @classdesc\n * Events emitted by {@link module:ol/source/Tile~TileSource} instances are instances of this\n * type.\n */\nvar TileSourceEvent = /** @class */ (function (_super) {\n __extends(TileSourceEvent, _super);\n /**\n * @param {string} type Type.\n * @param {import(\"../Tile.js\").default} tile The tile.\n */\n function TileSourceEvent(type, tile) {\n var _this = _super.call(this, type) || this;\n /**\n * The tile related to the event.\n * @type {import(\"../Tile.js\").default}\n * @api\n */\n _this.tile = tile;\n return _this;\n }\n return TileSourceEvent;\n}(Event));\nexport { TileSourceEvent };\nexport default TileSource;\n//# sourceMappingURL=Tile.js.map","/**\n * @module ol/tileurlfunction\n */\nimport { assert } from './asserts.js';\nimport { modulo } from './math.js';\nimport { hash as tileCoordHash } from './tilecoord.js';\n/**\n * @param {string} template Template.\n * @param {import(\"./tilegrid/TileGrid.js\").default} tileGrid Tile grid.\n * @return {import(\"./Tile.js\").UrlFunction} Tile URL function.\n */\nexport function createFromTemplate(template, tileGrid) {\n var zRegEx = /\\{z\\}/g;\n var xRegEx = /\\{x\\}/g;\n var yRegEx = /\\{y\\}/g;\n var dashYRegEx = /\\{-y\\}/g;\n return (\n /**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile Coordinate.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @return {string|undefined} Tile URL.\n */\n function (tileCoord, pixelRatio, projection) {\n if (!tileCoord) {\n return undefined;\n }\n else {\n return template\n .replace(zRegEx, tileCoord[0].toString())\n .replace(xRegEx, tileCoord[1].toString())\n .replace(yRegEx, tileCoord[2].toString())\n .replace(dashYRegEx, function () {\n var z = tileCoord[0];\n var range = tileGrid.getFullTileRange(z);\n assert(range, 55); // The {-y} placeholder requires a tile grid with extent\n var y = range.getHeight() - tileCoord[2] - 1;\n return y.toString();\n });\n }\n });\n}\n/**\n * @param {Array} templates Templates.\n * @param {import(\"./tilegrid/TileGrid.js\").default} tileGrid Tile grid.\n * @return {import(\"./Tile.js\").UrlFunction} Tile URL function.\n */\nexport function createFromTemplates(templates, tileGrid) {\n var len = templates.length;\n var tileUrlFunctions = new Array(len);\n for (var i = 0; i < len; ++i) {\n tileUrlFunctions[i] = createFromTemplate(templates[i], tileGrid);\n }\n return createFromTileUrlFunctions(tileUrlFunctions);\n}\n/**\n * @param {Array} tileUrlFunctions Tile URL Functions.\n * @return {import(\"./Tile.js\").UrlFunction} Tile URL function.\n */\nexport function createFromTileUrlFunctions(tileUrlFunctions) {\n if (tileUrlFunctions.length === 1) {\n return tileUrlFunctions[0];\n }\n return (\n /**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile Coordinate.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @return {string|undefined} Tile URL.\n */\n function (tileCoord, pixelRatio, projection) {\n if (!tileCoord) {\n return undefined;\n }\n else {\n var h = tileCoordHash(tileCoord);\n var index = modulo(h, tileUrlFunctions.length);\n return tileUrlFunctions[index](tileCoord, pixelRatio, projection);\n }\n });\n}\n/**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @return {string|undefined} Tile URL.\n */\nexport function nullTileUrlFunction(tileCoord, pixelRatio, projection) {\n return undefined;\n}\n/**\n * @param {string} url URL.\n * @return {Array} Array of urls.\n */\nexport function expandUrl(url) {\n var urls = [];\n var match = /\\{([a-z])-([a-z])\\}/.exec(url);\n if (match) {\n // char range\n var startCharCode = match[1].charCodeAt(0);\n var stopCharCode = match[2].charCodeAt(0);\n var charCode = void 0;\n for (charCode = startCharCode; charCode <= stopCharCode; ++charCode) {\n urls.push(url.replace(match[0], String.fromCharCode(charCode)));\n }\n return urls;\n }\n match = /\\{(\\d+)-(\\d+)\\}/.exec(url);\n if (match) {\n // number range\n var stop_1 = parseInt(match[2], 10);\n for (var i = parseInt(match[1], 10); i <= stop_1; i++) {\n urls.push(url.replace(match[0], i.toString()));\n }\n return urls;\n }\n urls.push(url);\n return urls;\n}\n//# sourceMappingURL=tileurlfunction.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/source/UrlTile\n */\nimport TileEventType from './TileEventType.js';\nimport TileSource, { TileSourceEvent } from './Tile.js';\nimport TileState from '../TileState.js';\nimport { createFromTemplates, expandUrl } from '../tileurlfunction.js';\nimport { getKeyZXY } from '../tilecoord.js';\nimport { getUid } from '../util.js';\n/**\n * @typedef {Object} Options\n * @property {import(\"./Source.js\").AttributionLike} [attributions] Attributions.\n * @property {boolean} [attributionsCollapsible=true] Attributions are collapsible.\n * @property {number} [cacheSize] Cache size.\n * @property {boolean} [opaque=false] Whether the layer is opaque.\n * @property {import(\"../proj.js\").ProjectionLike} [projection] Projection.\n * @property {import(\"./Source.js\").State} [state] State.\n * @property {import(\"../tilegrid/TileGrid.js\").default} [tileGrid] TileGrid.\n * @property {import(\"../Tile.js\").LoadFunction} tileLoadFunction TileLoadFunction.\n * @property {number} [tilePixelRatio] TilePixelRatio.\n * @property {import(\"../Tile.js\").UrlFunction} [tileUrlFunction] TileUrlFunction.\n * @property {string} [url] Url.\n * @property {Array} [urls] Urls.\n * @property {boolean} [wrapX=true] WrapX.\n * @property {number} [transition] Transition.\n * @property {string} [key] Key.\n * @property {number|import(\"../array.js\").NearestDirectionFunction} [zDirection=0] ZDirection.\n * @property {boolean} [interpolate=false] Use interpolated values when resampling. By default,\n * the nearest neighbor is used when resampling.\n */\n/**\n * @classdesc\n * Base class for sources providing tiles divided into a tile grid over http.\n *\n * @fires import(\"./Tile.js\").TileSourceEvent\n */\nvar UrlTile = /** @class */ (function (_super) {\n __extends(UrlTile, _super);\n /**\n * @param {Options} options Image tile options.\n */\n function UrlTile(options) {\n var _this = _super.call(this, {\n attributions: options.attributions,\n cacheSize: options.cacheSize,\n opaque: options.opaque,\n projection: options.projection,\n state: options.state,\n tileGrid: options.tileGrid,\n tilePixelRatio: options.tilePixelRatio,\n wrapX: options.wrapX,\n transition: options.transition,\n interpolate: options.interpolate,\n key: options.key,\n attributionsCollapsible: options.attributionsCollapsible,\n zDirection: options.zDirection,\n }) || this;\n /**\n * @private\n * @type {boolean}\n */\n _this.generateTileUrlFunction_ =\n _this.tileUrlFunction === UrlTile.prototype.tileUrlFunction;\n /**\n * @protected\n * @type {import(\"../Tile.js\").LoadFunction}\n */\n _this.tileLoadFunction = options.tileLoadFunction;\n if (options.tileUrlFunction) {\n _this.tileUrlFunction = options.tileUrlFunction;\n }\n /**\n * @protected\n * @type {!Array|null}\n */\n _this.urls = null;\n if (options.urls) {\n _this.setUrls(options.urls);\n }\n else if (options.url) {\n _this.setUrl(options.url);\n }\n /**\n * @private\n * @type {!Object}\n */\n _this.tileLoadingKeys_ = {};\n return _this;\n }\n /**\n * Return the tile load function of the source.\n * @return {import(\"../Tile.js\").LoadFunction} TileLoadFunction\n * @api\n */\n UrlTile.prototype.getTileLoadFunction = function () {\n return this.tileLoadFunction;\n };\n /**\n * Return the tile URL function of the source.\n * @return {import(\"../Tile.js\").UrlFunction} TileUrlFunction\n * @api\n */\n UrlTile.prototype.getTileUrlFunction = function () {\n return Object.getPrototypeOf(this).tileUrlFunction === this.tileUrlFunction\n ? this.tileUrlFunction.bind(this)\n : this.tileUrlFunction;\n };\n /**\n * Return the URLs used for this source.\n * When a tileUrlFunction is used instead of url or urls,\n * null will be returned.\n * @return {!Array|null} URLs.\n * @api\n */\n UrlTile.prototype.getUrls = function () {\n return this.urls;\n };\n /**\n * Handle tile change events.\n * @param {import(\"../events/Event.js\").default} event Event.\n * @protected\n */\n UrlTile.prototype.handleTileChange = function (event) {\n var tile = /** @type {import(\"../Tile.js\").default} */ (event.target);\n var uid = getUid(tile);\n var tileState = tile.getState();\n var type;\n if (tileState == TileState.LOADING) {\n this.tileLoadingKeys_[uid] = true;\n type = TileEventType.TILELOADSTART;\n }\n else if (uid in this.tileLoadingKeys_) {\n delete this.tileLoadingKeys_[uid];\n type =\n tileState == TileState.ERROR\n ? TileEventType.TILELOADERROR\n : tileState == TileState.LOADED\n ? TileEventType.TILELOADEND\n : undefined;\n }\n if (type != undefined) {\n this.dispatchEvent(new TileSourceEvent(type, tile));\n }\n };\n /**\n * Set the tile load function of the source.\n * @param {import(\"../Tile.js\").LoadFunction} tileLoadFunction Tile load function.\n * @api\n */\n UrlTile.prototype.setTileLoadFunction = function (tileLoadFunction) {\n this.tileCache.clear();\n this.tileLoadFunction = tileLoadFunction;\n this.changed();\n };\n /**\n * Set the tile URL function of the source.\n * @param {import(\"../Tile.js\").UrlFunction} tileUrlFunction Tile URL function.\n * @param {string} [key] Optional new tile key for the source.\n * @api\n */\n UrlTile.prototype.setTileUrlFunction = function (tileUrlFunction, key) {\n this.tileUrlFunction = tileUrlFunction;\n this.tileCache.pruneExceptNewestZ();\n if (typeof key !== 'undefined') {\n this.setKey(key);\n }\n else {\n this.changed();\n }\n };\n /**\n * Set the URL to use for requests.\n * @param {string} url URL.\n * @api\n */\n UrlTile.prototype.setUrl = function (url) {\n var urls = expandUrl(url);\n this.urls = urls;\n this.setUrls(urls);\n };\n /**\n * Set the URLs to use for requests.\n * @param {Array} urls URLs.\n * @api\n */\n UrlTile.prototype.setUrls = function (urls) {\n this.urls = urls;\n var key = urls.join('\\n');\n if (this.generateTileUrlFunction_) {\n this.setTileUrlFunction(createFromTemplates(urls, this.tileGrid), key);\n }\n else {\n this.setKey(key);\n }\n };\n /**\n * @param {import(\"../tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {string|undefined} Tile URL.\n */\n UrlTile.prototype.tileUrlFunction = function (tileCoord, pixelRatio, projection) {\n return undefined;\n };\n /**\n * Marks a tile coord as being used, without triggering a load.\n * @param {number} z Tile coordinate z.\n * @param {number} x Tile coordinate x.\n * @param {number} y Tile coordinate y.\n */\n UrlTile.prototype.useTile = function (z, x, y) {\n var tileCoordKey = getKeyZXY(z, x, y);\n if (this.tileCache.containsKey(tileCoordKey)) {\n this.tileCache.get(tileCoordKey);\n }\n };\n return UrlTile;\n}(TileSource));\nexport default UrlTile;\n//# sourceMappingURL=UrlTile.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 * A css color, or a function called with a view resolution returning a css color.\n *\n * @typedef {string|function(number):string} BackgroundColor\n * @api\n */\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 {BackgroundColor} [background] Background color for the layer. If not specified, no background\n * will be rendered.\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~BaseLayer} and all its subclasses, any property set in\n * the options is set as a {@link module:ol/Object~BaseObject} 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 {BackgroundColor|false}\n * @private\n */\n _this.background_ = options.background;\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 ? properties.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 * Get the background for this layer.\n * @return {BackgroundColor|false} Layer background.\n */\n BaseLayer.prototype.getBackground = function () {\n return this.background_;\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.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/Source.js\").State} 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 * Sets the background color.\n * @param {BackgroundColor} [opt_background] Background color.\n */\n BaseLayer.prototype.setBackground = function (opt_background) {\n this.background_ = opt_background;\n this.changed();\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","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DrawingTools.vue?vue&type=style&index=0&id=b4dec6ec&lang=scss&scoped=true&\"","/**\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/**\n * @template T\n * @param {function(): (T | Promise)} getter A function that returns a value or a promise for a value.\n * @return {Promise} A promise for the value.\n */\nexport function toPromise(getter) {\n function promiseGetter() {\n var value;\n try {\n value = getter();\n }\n catch (err) {\n return Promise.reject(err);\n }\n if (value instanceof Promise) {\n return value;\n }\n return Promise.resolve(value);\n }\n return promiseGetter();\n}\n//# sourceMappingURL=functions.js.map","/**\n * @module ol/structs/RBush\n */\nimport RBush_ from 'rbush';\nimport { createOrUpdate, equals } from '../extent.js';\nimport { getUid } from '../util.js';\nimport { isEmpty } from '../obj.js';\n/**\n * @typedef {Object} Entry\n * @property {number} minX MinX.\n * @property {number} minY MinY.\n * @property {number} maxX MaxX.\n * @property {number} maxY MaxY.\n * @property {Object} [value] Value.\n */\n/**\n * @classdesc\n * Wrapper around the RBush by Vladimir Agafonkin.\n * See https://github.com/mourner/rbush.\n *\n * @template T\n */\nvar RBush = /** @class */ (function () {\n /**\n * @param {number} [opt_maxEntries] Max entries.\n */\n function RBush(opt_maxEntries) {\n /**\n * @private\n */\n this.rbush_ = new RBush_(opt_maxEntries);\n /**\n * A mapping between the objects added to this rbush wrapper\n * and the objects that are actually added to the internal rbush.\n * @private\n * @type {Object}\n */\n this.items_ = {};\n }\n /**\n * Insert a value into the RBush.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {T} value Value.\n */\n RBush.prototype.insert = function (extent, value) {\n /** @type {Entry} */\n var item = {\n minX: extent[0],\n minY: extent[1],\n maxX: extent[2],\n maxY: extent[3],\n value: value,\n };\n this.rbush_.insert(item);\n this.items_[getUid(value)] = item;\n };\n /**\n * Bulk-insert values into the RBush.\n * @param {Array} extents Extents.\n * @param {Array} values Values.\n */\n RBush.prototype.load = function (extents, values) {\n var items = new Array(values.length);\n for (var i = 0, l = values.length; i < l; i++) {\n var extent = extents[i];\n var value = values[i];\n /** @type {Entry} */\n var item = {\n minX: extent[0],\n minY: extent[1],\n maxX: extent[2],\n maxY: extent[3],\n value: value,\n };\n items[i] = item;\n this.items_[getUid(value)] = item;\n }\n this.rbush_.load(items);\n };\n /**\n * Remove a value from the RBush.\n * @param {T} value Value.\n * @return {boolean} Removed.\n */\n RBush.prototype.remove = function (value) {\n var uid = getUid(value);\n // get the object in which the value was wrapped when adding to the\n // internal rbush. then use that object to do the removal.\n var item = this.items_[uid];\n delete this.items_[uid];\n return this.rbush_.remove(item) !== null;\n };\n /**\n * Update the extent of a value in the RBush.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {T} value Value.\n */\n RBush.prototype.update = function (extent, value) {\n var item = this.items_[getUid(value)];\n var bbox = [item.minX, item.minY, item.maxX, item.maxY];\n if (!equals(bbox, extent)) {\n this.remove(value);\n this.insert(extent, value);\n }\n };\n /**\n * Return all values in the RBush.\n * @return {Array} All.\n */\n RBush.prototype.getAll = function () {\n var items = this.rbush_.all();\n return items.map(function (item) {\n return item.value;\n });\n };\n /**\n * Return all values in the given extent.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {Array} All in extent.\n */\n RBush.prototype.getInExtent = function (extent) {\n /** @type {Entry} */\n var bbox = {\n minX: extent[0],\n minY: extent[1],\n maxX: extent[2],\n maxY: extent[3],\n };\n var items = this.rbush_.search(bbox);\n return items.map(function (item) {\n return item.value;\n });\n };\n /**\n * Calls a callback function with each value in the tree.\n * If the callback returns a truthy value, this value is returned without\n * checking the rest of the tree.\n * @param {function(T): *} callback Callback.\n * @return {*} Callback return value.\n */\n RBush.prototype.forEach = function (callback) {\n return this.forEach_(this.getAll(), callback);\n };\n /**\n * Calls a callback function with each value in the provided extent.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {function(T): *} callback Callback.\n * @return {*} Callback return value.\n */\n RBush.prototype.forEachInExtent = function (extent, callback) {\n return this.forEach_(this.getInExtent(extent), callback);\n };\n /**\n * @param {Array} values Values.\n * @param {function(T): *} callback Callback.\n * @private\n * @return {*} Callback return value.\n */\n RBush.prototype.forEach_ = function (values, callback) {\n var result;\n for (var i = 0, l = values.length; i < l; i++) {\n result = callback(values[i]);\n if (result) {\n return result;\n }\n }\n return result;\n };\n /**\n * @return {boolean} Is empty.\n */\n RBush.prototype.isEmpty = function () {\n return isEmpty(this.items_);\n };\n /**\n * Remove all values from the RBush.\n */\n RBush.prototype.clear = function () {\n this.rbush_.clear();\n this.items_ = {};\n };\n /**\n * @param {import(\"../extent.js\").Extent} [opt_extent] Extent.\n * @return {import(\"../extent.js\").Extent} Extent.\n */\n RBush.prototype.getExtent = function (opt_extent) {\n var data = this.rbush_.toJSON();\n return createOrUpdate(data.minX, data.minY, data.maxX, data.maxY, opt_extent);\n };\n /**\n * @param {RBush} rbush R-Tree.\n */\n RBush.prototype.concat = function (rbush) {\n this.rbush_.load(rbush.rbush_.all());\n for (var i in rbush.items_) {\n this.items_[i] = rbush.items_[i];\n }\n };\n return RBush;\n}());\nexport default RBush;\n//# sourceMappingURL=RBush.js.map","/**\n * @module ol/source/VectorEventType\n */\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered when a feature is added to the source.\n * @event module:ol/source/Vector.VectorSourceEvent#addfeature\n * @api\n */\n ADDFEATURE: 'addfeature',\n /**\n * Triggered when a feature is updated.\n * @event module:ol/source/Vector.VectorSourceEvent#changefeature\n * @api\n */\n CHANGEFEATURE: 'changefeature',\n /**\n * Triggered when the clear method is called on the source.\n * @event module:ol/source/Vector.VectorSourceEvent#clear\n * @api\n */\n CLEAR: 'clear',\n /**\n * Triggered when a feature is removed from the source.\n * See {@link module:ol/source/Vector~VectorSource#clear source.clear()} for exceptions.\n * @event module:ol/source/Vector.VectorSourceEvent#removefeature\n * @api\n */\n REMOVEFEATURE: 'removefeature',\n /**\n * Triggered when features starts loading.\n * @event module:ol/source/Vector.VectorSourceEvent#featuresloadstart\n * @api\n */\n FEATURESLOADSTART: 'featuresloadstart',\n /**\n * Triggered when features finishes loading.\n * @event module:ol/source/Vector.VectorSourceEvent#featuresloadend\n * @api\n */\n FEATURESLOADEND: 'featuresloadend',\n /**\n * Triggered if feature loading results in an error.\n * @event module:ol/source/Vector.VectorSourceEvent#featuresloaderror\n * @api\n */\n FEATURESLOADERROR: 'featuresloaderror',\n};\n/**\n * @typedef {'addfeature'|'changefeature'|'clear'|'removefeature'|'featuresloadstart'|'featuresloadend'|'featuresloaderror'} VectorSourceEventTypes\n */\n//# sourceMappingURL=VectorEventType.js.map","/**\n * @module ol/loadingstrategy\n */\nimport { fromUserExtent, fromUserResolution, toUserExtent } from './proj.js';\n/**\n * Strategy function for loading all features with a single request.\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @return {Array} Extents.\n * @api\n */\nexport function all(extent, resolution) {\n return [[-Infinity, -Infinity, Infinity, Infinity]];\n}\n/**\n * Strategy function for loading features based on the view's extent and\n * resolution.\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @return {Array} Extents.\n * @api\n */\nexport function bbox(extent, resolution) {\n return [extent];\n}\n/**\n * Creates a strategy function for loading features based on a tile grid.\n * @param {import(\"./tilegrid/TileGrid.js\").default} tileGrid Tile grid.\n * @return {function(import(\"./extent.js\").Extent, number, import(\"./proj.js\").Projection): Array} Loading strategy.\n * @api\n */\nexport function tile(tileGrid) {\n return (\n /**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @param {import(\"./proj.js\").Projection} projection Projection.\n * @return {Array} Extents.\n */\n function (extent, resolution, projection) {\n var z = tileGrid.getZForResolution(fromUserResolution(resolution, projection));\n var tileRange = tileGrid.getTileRangeForExtentAndZ(fromUserExtent(extent, projection), z);\n /** @type {Array} */\n var extents = [];\n /** @type {import(\"./tilecoord.js\").TileCoord} */\n var tileCoord = [z, 0, 0];\n for (tileCoord[1] = tileRange.minX; tileCoord[1] <= tileRange.maxX; ++tileCoord[1]) {\n for (tileCoord[2] = tileRange.minY; tileCoord[2] <= tileRange.maxY; ++tileCoord[2]) {\n extents.push(toUserExtent(tileGrid.getTileCoordExtent(tileCoord), projection));\n }\n }\n return extents;\n });\n}\n//# sourceMappingURL=loadingstrategy.js.map","/**\n * @module ol/source/Vector\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 Collection from '../Collection.js';\nimport CollectionEventType from '../CollectionEventType.js';\nimport Event from '../events/Event.js';\nimport EventType from '../events/EventType.js';\nimport ObjectEventType from '../ObjectEventType.js';\nimport RBush from '../structs/RBush.js';\nimport Source from './Source.js';\nimport VectorEventType from './VectorEventType.js';\nimport { TRUE, VOID } from '../functions.js';\nimport { all as allStrategy } from '../loadingstrategy.js';\nimport { assert } from '../asserts.js';\nimport { containsExtent, equals, wrapAndSliceX } from '../extent.js';\nimport { extend } from '../array.js';\nimport { getUid } from '../util.js';\nimport { getValues, isEmpty } from '../obj.js';\nimport { listen, unlistenByKey } from '../events.js';\nimport { xhr } from '../featureloader.js';\n/**\n * A function that takes an {@link module:ol/extent~Extent} and a resolution as arguments, and\n * returns an array of {@link module:ol/extent~Extent} with the extents to load. Usually this\n * is one of the standard {@link module:ol/loadingstrategy} strategies.\n *\n * @typedef {function(import(\"../extent.js\").Extent, number, import(\"../proj/Projection.js\").default): Array} LoadingStrategy\n * @api\n */\n/**\n * @classdesc\n * Events emitted by {@link module:ol/source/Vector~VectorSource} instances are instances of this\n * type.\n * @template {import(\"../geom/Geometry.js\").default} [Geometry=import(\"../geom/Geometry.js\").default]\n */\nvar VectorSourceEvent = /** @class */ (function (_super) {\n __extends(VectorSourceEvent, _super);\n /**\n * @param {string} type Type.\n * @param {import(\"../Feature.js\").default} [opt_feature] Feature.\n * @param {Array>} [opt_features] Features.\n */\n function VectorSourceEvent(type, opt_feature, opt_features) {\n var _this = _super.call(this, type) || this;\n /**\n * The added or removed feature for the `ADDFEATURE` and `REMOVEFEATURE` events, `undefined` otherwise.\n * @type {import(\"../Feature.js\").default|undefined}\n * @api\n */\n _this.feature = opt_feature;\n /**\n * The loaded features for the `FEATURESLOADED` event, `undefined` otherwise.\n * @type {Array>|undefined}\n * @api\n */\n _this.features = opt_features;\n return _this;\n }\n return VectorSourceEvent;\n}(Event));\nexport { VectorSourceEvent };\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} VectorSourceOnSignature\n */\n/**\n * @typedef {Object} Options\n * @property {import(\"./Source.js\").AttributionLike} [attributions] Attributions.\n * @property {Array|Collection} [features]\n * Features. If provided as {@link module:ol/Collection~Collection}, the features in the source\n * and the collection will stay in sync.\n * @property {import(\"../format/Feature.js\").default} [format] The feature format used by the XHR\n * feature loader when `url` is set. Required if `url` is set, otherwise ignored.\n * @property {import(\"../featureloader.js\").FeatureLoader} [loader]\n * The loader function used to load features, from a remote source for example.\n * If this is not set and `url` is set, the source will create and use an XHR\n * feature loader. The `'featuresloadend'` and `'featuresloaderror'` events\n * will only fire if the `success` and `failure` callbacks are used.\n *\n * Example:\n *\n * ```js\n * import {Vector} from 'ol/source';\n * import {GeoJSON} from 'ol/format';\n * import {bbox} from 'ol/loadingstrategy';\n *\n * var vectorSource = new Vector({\n * format: new GeoJSON(),\n * loader: function(extent, resolution, projection, success, failure) {\n * var proj = projection.getCode();\n * var url = 'https://ahocevar.com/geoserver/wfs?service=WFS&' +\n * 'version=1.1.0&request=GetFeature&typename=osm:water_areas&' +\n * 'outputFormat=application/json&srsname=' + proj + '&' +\n * 'bbox=' + extent.join(',') + ',' + proj;\n * var xhr = new XMLHttpRequest();\n * xhr.open('GET', url);\n * var onError = function() {\n * vectorSource.removeLoadedExtent(extent);\n * failure();\n * }\n * xhr.onerror = onError;\n * xhr.onload = function() {\n * if (xhr.status == 200) {\n * var features = vectorSource.getFormat().readFeatures(xhr.responseText);\n * vectorSource.addFeatures(features);\n * success(features);\n * } else {\n * onError();\n * }\n * }\n * xhr.send();\n * },\n * strategy: bbox\n * });\n * ```\n * @property {boolean} [overlaps=true] This source may have overlapping geometries.\n * Setting this to `false` (e.g. for sources with polygons that represent administrative\n * boundaries or TopoJSON sources) allows the renderer to optimise fill and\n * stroke operations.\n * @property {LoadingStrategy} [strategy] The loading strategy to use.\n * By default an {@link module:ol/loadingstrategy.all}\n * strategy is used, a one-off strategy which loads all features at once.\n * @property {string|import(\"../featureloader.js\").FeatureUrlFunction} [url]\n * Setting this option instructs the source to load features using an XHR loader\n * (see {@link module:ol/featureloader.xhr}). Use a `string` and an\n * {@link module:ol/loadingstrategy.all} for a one-off download of all features from\n * the given URL. Use a {@link module:ol/featureloader~FeatureUrlFunction} to generate the url with\n * other loading strategies.\n * Requires `format` to be set as well.\n * When default XHR feature loader is provided, the features will\n * be transformed from the data projection to the view projection\n * during parsing. If your remote data source does not advertise its projection\n * properly, this transformation will be incorrect. For some formats, the\n * default projection (usually EPSG:4326) can be overridden by setting the\n * dataProjection constructor option on the format.\n * Note that if a source contains non-feature data, such as a GeoJSON geometry\n * or a KML NetworkLink, these will be ignored. Use a custom loader to load these.\n * @property {boolean} [useSpatialIndex=true]\n * By default, an RTree is used as spatial index. When features are removed and\n * added frequently, and the total number of features is low, setting this to\n * `false` may improve performance.\n *\n * Note that\n * {@link module:ol/source/Vector~VectorSource#getFeaturesInExtent},\n * {@link module:ol/source/Vector~VectorSource#getClosestFeatureToCoordinate} and\n * {@link module:ol/source/Vector~VectorSource#getExtent} cannot be used when `useSpatialIndex` is\n * set to `false`, and {@link module:ol/source/Vector~VectorSource#forEachFeatureInExtent} will loop\n * through all features.\n *\n * When set to `false`, the features will be maintained in an\n * {@link module:ol/Collection~Collection}, which can be retrieved through\n * {@link module:ol/source/Vector~VectorSource#getFeaturesCollection}.\n * @property {boolean} [wrapX=true] Wrap the world horizontally. For vector editing across the\n * -180° and 180° meridians to work properly, this should be set to `false`. The\n * resulting geometry coordinates will then exceed the world bounds.\n */\n/**\n * @classdesc\n * Provides a source of features for vector layers. Vector features provided\n * by this source are suitable for editing. See {@link module:ol/source/VectorTile~VectorTile} for\n * vector data that is optimized for rendering.\n *\n * @fires VectorSourceEvent\n * @api\n * @template {import(\"../geom/Geometry.js\").default} [Geometry=import(\"../geom/Geometry.js\").default]\n */\nvar VectorSource = /** @class */ (function (_super) {\n __extends(VectorSource, _super);\n /**\n * @param {Options} [opt_options] Vector source options.\n */\n function VectorSource(opt_options) {\n var _this = this;\n var options = opt_options || {};\n _this = _super.call(this, {\n attributions: options.attributions,\n interpolate: true,\n projection: undefined,\n state: 'ready',\n wrapX: options.wrapX !== undefined ? options.wrapX : true,\n }) || this;\n /***\n * @type {VectorSourceOnSignature}\n */\n _this.on;\n /***\n * @type {VectorSourceOnSignature}\n */\n _this.once;\n /***\n * @type {VectorSourceOnSignature}\n */\n _this.un;\n /**\n * @private\n * @type {import(\"../featureloader.js\").FeatureLoader}\n */\n _this.loader_ = VOID;\n /**\n * @private\n * @type {import(\"../format/Feature.js\").default|undefined}\n */\n _this.format_ = options.format;\n /**\n * @private\n * @type {boolean}\n */\n _this.overlaps_ = options.overlaps === undefined ? true : options.overlaps;\n /**\n * @private\n * @type {string|import(\"../featureloader.js\").FeatureUrlFunction|undefined}\n */\n _this.url_ = options.url;\n if (options.loader !== undefined) {\n _this.loader_ = options.loader;\n }\n else if (_this.url_ !== undefined) {\n assert(_this.format_, 7); // `format` must be set when `url` is set\n // create a XHR feature loader for \"url\" and \"format\"\n _this.loader_ = xhr(_this.url_, \n /** @type {import(\"../format/Feature.js\").default} */ (_this.format_));\n }\n /**\n * @private\n * @type {LoadingStrategy}\n */\n _this.strategy_ =\n options.strategy !== undefined ? options.strategy : allStrategy;\n var useSpatialIndex = options.useSpatialIndex !== undefined ? options.useSpatialIndex : true;\n /**\n * @private\n * @type {RBush>}\n */\n _this.featuresRtree_ = useSpatialIndex ? new RBush() : null;\n /**\n * @private\n * @type {RBush<{extent: import(\"../extent.js\").Extent}>}\n */\n _this.loadedExtentsRtree_ = new RBush();\n /**\n * @type {number}\n * @private\n */\n _this.loadingExtentsCount_ = 0;\n /**\n * @private\n * @type {!Object>}\n */\n _this.nullGeometryFeatures_ = {};\n /**\n * A lookup of features by id (the return from feature.getId()).\n * @private\n * @type {!Object>}\n */\n _this.idIndex_ = {};\n /**\n * A lookup of features by uid (using getUid(feature)).\n * @private\n * @type {!Object>}\n */\n _this.uidIndex_ = {};\n /**\n * @private\n * @type {Object>}\n */\n _this.featureChangeKeys_ = {};\n /**\n * @private\n * @type {Collection>|null}\n */\n _this.featuresCollection_ = null;\n var collection, features;\n if (Array.isArray(options.features)) {\n features =\n /** @type {Array>} */ (options.features);\n }\n else if (options.features) {\n collection =\n /** @type {Collection>} */ (options.features);\n features = collection.getArray();\n }\n if (!useSpatialIndex && collection === undefined) {\n collection = new Collection(features);\n }\n if (features !== undefined) {\n _this.addFeaturesInternal(features);\n }\n if (collection !== undefined) {\n _this.bindFeaturesCollection_(collection);\n }\n return _this;\n }\n /**\n * Add a single feature to the source. If you want to add a batch of features\n * at once, call {@link module:ol/source/Vector~VectorSource#addFeatures #addFeatures()}\n * instead. A feature will not be added to the source if feature with\n * the same id is already there. The reason for this behavior is to avoid\n * feature duplication when using bbox or tile loading strategies.\n * Note: this also applies if an {@link module:ol/Collection~Collection} is used for features,\n * meaning that if a feature with a duplicate id is added in the collection, it will\n * be removed from it right away.\n * @param {import(\"../Feature.js\").default} feature Feature to add.\n * @api\n */\n VectorSource.prototype.addFeature = function (feature) {\n this.addFeatureInternal(feature);\n this.changed();\n };\n /**\n * Add a feature without firing a `change` event.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @protected\n */\n VectorSource.prototype.addFeatureInternal = function (feature) {\n var featureKey = getUid(feature);\n if (!this.addToIndex_(featureKey, feature)) {\n if (this.featuresCollection_) {\n this.featuresCollection_.remove(feature);\n }\n return;\n }\n this.setupChangeEvents_(featureKey, feature);\n var geometry = feature.getGeometry();\n if (geometry) {\n var extent = geometry.getExtent();\n if (this.featuresRtree_) {\n this.featuresRtree_.insert(extent, feature);\n }\n }\n else {\n this.nullGeometryFeatures_[featureKey] = feature;\n }\n this.dispatchEvent(new VectorSourceEvent(VectorEventType.ADDFEATURE, feature));\n };\n /**\n * @param {string} featureKey Unique identifier for the feature.\n * @param {import(\"../Feature.js\").default} feature The feature.\n * @private\n */\n VectorSource.prototype.setupChangeEvents_ = function (featureKey, feature) {\n this.featureChangeKeys_[featureKey] = [\n listen(feature, EventType.CHANGE, this.handleFeatureChange_, this),\n listen(feature, ObjectEventType.PROPERTYCHANGE, this.handleFeatureChange_, this),\n ];\n };\n /**\n * @param {string} featureKey Unique identifier for the feature.\n * @param {import(\"../Feature.js\").default} feature The feature.\n * @return {boolean} The feature is \"valid\", in the sense that it is also a\n * candidate for insertion into the Rtree.\n * @private\n */\n VectorSource.prototype.addToIndex_ = function (featureKey, feature) {\n var valid = true;\n var id = feature.getId();\n if (id !== undefined) {\n if (!(id.toString() in this.idIndex_)) {\n this.idIndex_[id.toString()] = feature;\n }\n else {\n valid = false;\n }\n }\n if (valid) {\n assert(!(featureKey in this.uidIndex_), 30); // The passed `feature` was already added to the source\n this.uidIndex_[featureKey] = feature;\n }\n return valid;\n };\n /**\n * Add a batch of features to the source.\n * @param {Array>} features Features to add.\n * @api\n */\n VectorSource.prototype.addFeatures = function (features) {\n this.addFeaturesInternal(features);\n this.changed();\n };\n /**\n * Add features without firing a `change` event.\n * @param {Array>} features Features.\n * @protected\n */\n VectorSource.prototype.addFeaturesInternal = function (features) {\n var extents = [];\n var newFeatures = [];\n var geometryFeatures = [];\n for (var i = 0, length_1 = features.length; i < length_1; i++) {\n var feature = features[i];\n var featureKey = getUid(feature);\n if (this.addToIndex_(featureKey, feature)) {\n newFeatures.push(feature);\n }\n }\n for (var i = 0, length_2 = newFeatures.length; i < length_2; i++) {\n var feature = newFeatures[i];\n var featureKey = getUid(feature);\n this.setupChangeEvents_(featureKey, feature);\n var geometry = feature.getGeometry();\n if (geometry) {\n var extent = geometry.getExtent();\n extents.push(extent);\n geometryFeatures.push(feature);\n }\n else {\n this.nullGeometryFeatures_[featureKey] = feature;\n }\n }\n if (this.featuresRtree_) {\n this.featuresRtree_.load(extents, geometryFeatures);\n }\n if (this.hasListener(VectorEventType.ADDFEATURE)) {\n for (var i = 0, length_3 = newFeatures.length; i < length_3; i++) {\n this.dispatchEvent(new VectorSourceEvent(VectorEventType.ADDFEATURE, newFeatures[i]));\n }\n }\n };\n /**\n * @param {!Collection>} collection Collection.\n * @private\n */\n VectorSource.prototype.bindFeaturesCollection_ = function (collection) {\n var modifyingCollection = false;\n this.addEventListener(VectorEventType.ADDFEATURE, \n /**\n * @param {VectorSourceEvent} evt The vector source event\n */\n function (evt) {\n if (!modifyingCollection) {\n modifyingCollection = true;\n collection.push(evt.feature);\n modifyingCollection = false;\n }\n });\n this.addEventListener(VectorEventType.REMOVEFEATURE, \n /**\n * @param {VectorSourceEvent} evt The vector source event\n */\n function (evt) {\n if (!modifyingCollection) {\n modifyingCollection = true;\n collection.remove(evt.feature);\n modifyingCollection = false;\n }\n });\n collection.addEventListener(CollectionEventType.ADD, \n /**\n * @param {import(\"../Collection.js\").CollectionEvent} evt The collection event\n */\n function (evt) {\n if (!modifyingCollection) {\n modifyingCollection = true;\n this.addFeature(\n /** @type {import(\"../Feature.js\").default} */ (evt.element));\n modifyingCollection = false;\n }\n }.bind(this));\n collection.addEventListener(CollectionEventType.REMOVE, \n /**\n * @param {import(\"../Collection.js\").CollectionEvent} evt The collection event\n */\n function (evt) {\n if (!modifyingCollection) {\n modifyingCollection = true;\n this.removeFeature(\n /** @type {import(\"../Feature.js\").default} */ (evt.element));\n modifyingCollection = false;\n }\n }.bind(this));\n this.featuresCollection_ = collection;\n };\n /**\n * Remove all features from the source.\n * @param {boolean} [opt_fast] Skip dispatching of {@link module:ol/source/Vector.VectorSourceEvent#event:removefeature removefeature} events.\n * @api\n */\n VectorSource.prototype.clear = function (opt_fast) {\n if (opt_fast) {\n for (var featureId in this.featureChangeKeys_) {\n var keys = this.featureChangeKeys_[featureId];\n keys.forEach(unlistenByKey);\n }\n if (!this.featuresCollection_) {\n this.featureChangeKeys_ = {};\n this.idIndex_ = {};\n this.uidIndex_ = {};\n }\n }\n else {\n if (this.featuresRtree_) {\n var removeAndIgnoreReturn = function (feature) {\n this.removeFeatureInternal(feature);\n }.bind(this);\n this.featuresRtree_.forEach(removeAndIgnoreReturn);\n for (var id in this.nullGeometryFeatures_) {\n this.removeFeatureInternal(this.nullGeometryFeatures_[id]);\n }\n }\n }\n if (this.featuresCollection_) {\n this.featuresCollection_.clear();\n }\n if (this.featuresRtree_) {\n this.featuresRtree_.clear();\n }\n this.nullGeometryFeatures_ = {};\n var clearEvent = new VectorSourceEvent(VectorEventType.CLEAR);\n this.dispatchEvent(clearEvent);\n this.changed();\n };\n /**\n * Iterate through all features on the source, calling the provided callback\n * with each one. If the callback returns any \"truthy\" value, iteration will\n * stop and the function will return the same value.\n * Note: this function only iterate through the feature that have a defined geometry.\n *\n * @param {function(import(\"../Feature.js\").default): T} callback Called with each feature\n * on the source. Return a truthy value to stop iteration.\n * @return {T|undefined} The return value from the last call to the callback.\n * @template T\n * @api\n */\n VectorSource.prototype.forEachFeature = function (callback) {\n if (this.featuresRtree_) {\n return this.featuresRtree_.forEach(callback);\n }\n else if (this.featuresCollection_) {\n this.featuresCollection_.forEach(callback);\n }\n };\n /**\n * Iterate through all features whose geometries contain the provided\n * coordinate, calling the callback with each feature. If the callback returns\n * a \"truthy\" value, iteration will stop and the function will return the same\n * value.\n *\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {function(import(\"../Feature.js\").default): T} callback Called with each feature\n * whose goemetry contains the provided coordinate.\n * @return {T|undefined} The return value from the last call to the callback.\n * @template T\n */\n VectorSource.prototype.forEachFeatureAtCoordinateDirect = function (coordinate, callback) {\n var extent = [coordinate[0], coordinate[1], coordinate[0], coordinate[1]];\n return this.forEachFeatureInExtent(extent, function (feature) {\n var geometry = feature.getGeometry();\n if (geometry.intersectsCoordinate(coordinate)) {\n return callback(feature);\n }\n else {\n return undefined;\n }\n });\n };\n /**\n * Iterate through all features whose bounding box intersects the provided\n * extent (note that the feature's geometry may not intersect the extent),\n * calling the callback with each feature. If the callback returns a \"truthy\"\n * value, iteration will stop and the function will return the same value.\n *\n * If you are interested in features whose geometry intersects an extent, call\n * the {@link module:ol/source/Vector~VectorSource#forEachFeatureIntersectingExtent #forEachFeatureIntersectingExtent()} method instead.\n *\n * When `useSpatialIndex` is set to false, this method will loop through all\n * features, equivalent to {@link module:ol/source/Vector~VectorSource#forEachFeature #forEachFeature()}.\n *\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {function(import(\"../Feature.js\").default): T} callback Called with each feature\n * whose bounding box intersects the provided extent.\n * @return {T|undefined} The return value from the last call to the callback.\n * @template T\n * @api\n */\n VectorSource.prototype.forEachFeatureInExtent = function (extent, callback) {\n if (this.featuresRtree_) {\n return this.featuresRtree_.forEachInExtent(extent, callback);\n }\n else if (this.featuresCollection_) {\n this.featuresCollection_.forEach(callback);\n }\n };\n /**\n * Iterate through all features whose geometry intersects the provided extent,\n * calling the callback with each feature. If the callback returns a \"truthy\"\n * value, iteration will stop and the function will return the same value.\n *\n * If you only want to test for bounding box intersection, call the\n * {@link module:ol/source/Vector~VectorSource#forEachFeatureInExtent #forEachFeatureInExtent()} method instead.\n *\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {function(import(\"../Feature.js\").default): T} callback Called with each feature\n * whose geometry intersects the provided extent.\n * @return {T|undefined} The return value from the last call to the callback.\n * @template T\n * @api\n */\n VectorSource.prototype.forEachFeatureIntersectingExtent = function (extent, callback) {\n return this.forEachFeatureInExtent(extent, \n /**\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @return {T|undefined} The return value from the last call to the callback.\n */\n function (feature) {\n var geometry = feature.getGeometry();\n if (geometry.intersectsExtent(extent)) {\n var result = callback(feature);\n if (result) {\n return result;\n }\n }\n });\n };\n /**\n * Get the features collection associated with this source. Will be `null`\n * unless the source was configured with `useSpatialIndex` set to `false`, or\n * with an {@link module:ol/Collection~Collection} as `features`.\n * @return {Collection>|null} The collection of features.\n * @api\n */\n VectorSource.prototype.getFeaturesCollection = function () {\n return this.featuresCollection_;\n };\n /**\n * Get a snapshot of the features currently on the source in random order. The returned array\n * is a copy, the features are references to the features in the source.\n * @return {Array>} Features.\n * @api\n */\n VectorSource.prototype.getFeatures = function () {\n var features;\n if (this.featuresCollection_) {\n features = this.featuresCollection_.getArray().slice(0);\n }\n else if (this.featuresRtree_) {\n features = this.featuresRtree_.getAll();\n if (!isEmpty(this.nullGeometryFeatures_)) {\n extend(features, getValues(this.nullGeometryFeatures_));\n }\n }\n return /** @type {Array>} */ (features);\n };\n /**\n * Get all features whose geometry intersects the provided coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {Array>} Features.\n * @api\n */\n VectorSource.prototype.getFeaturesAtCoordinate = function (coordinate) {\n var features = [];\n this.forEachFeatureAtCoordinateDirect(coordinate, function (feature) {\n features.push(feature);\n });\n return features;\n };\n /**\n * Get all features whose bounding box intersects the provided extent. Note that this returns an array of\n * all features intersecting the given extent in random order (so it may include\n * features whose geometries do not intersect the extent).\n *\n * When `useSpatialIndex` is set to false, this method will return all\n * features.\n *\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {import(\"../proj/Projection.js\").default} [opt_projection] Include features\n * where `extent` exceeds the x-axis bounds of `projection` and wraps around the world.\n * @return {Array>} Features.\n * @api\n */\n VectorSource.prototype.getFeaturesInExtent = function (extent, opt_projection) {\n var _this = this;\n if (this.featuresRtree_) {\n var multiWorld = opt_projection && opt_projection.canWrapX() && this.getWrapX();\n if (!multiWorld) {\n return this.featuresRtree_.getInExtent(extent);\n }\n var extents = wrapAndSliceX(extent, opt_projection);\n return [].concat.apply([], extents.map(function (anExtent) { return _this.featuresRtree_.getInExtent(anExtent); }));\n }\n else if (this.featuresCollection_) {\n return this.featuresCollection_.getArray().slice(0);\n }\n else {\n return [];\n }\n };\n /**\n * Get the closest feature to the provided coordinate.\n *\n * This method is not available when the source is configured with\n * `useSpatialIndex` set to `false`.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {function(import(\"../Feature.js\").default):boolean} [opt_filter] Feature filter function.\n * The filter function will receive one argument, the {@link module:ol/Feature~Feature feature}\n * and it should return a boolean value. By default, no filtering is made.\n * @return {import(\"../Feature.js\").default} Closest feature.\n * @api\n */\n VectorSource.prototype.getClosestFeatureToCoordinate = function (coordinate, opt_filter) {\n // Find the closest feature using branch and bound. We start searching an\n // infinite extent, and find the distance from the first feature found. This\n // becomes the closest feature. We then compute a smaller extent which any\n // closer feature must intersect. We continue searching with this smaller\n // extent, trying to find a closer feature. Every time we find a closer\n // feature, we update the extent being searched so that any even closer\n // feature must intersect it. We continue until we run out of features.\n var x = coordinate[0];\n var y = coordinate[1];\n var closestFeature = null;\n var closestPoint = [NaN, NaN];\n var minSquaredDistance = Infinity;\n var extent = [-Infinity, -Infinity, Infinity, Infinity];\n var filter = opt_filter ? opt_filter : TRUE;\n this.featuresRtree_.forEachInExtent(extent, \n /**\n * @param {import(\"../Feature.js\").default} feature Feature.\n */\n function (feature) {\n if (filter(feature)) {\n var geometry = feature.getGeometry();\n var previousMinSquaredDistance = minSquaredDistance;\n minSquaredDistance = geometry.closestPointXY(x, y, closestPoint, minSquaredDistance);\n if (minSquaredDistance < previousMinSquaredDistance) {\n closestFeature = feature;\n // This is sneaky. Reduce the extent that it is currently being\n // searched while the R-Tree traversal using this same extent object\n // is still in progress. This is safe because the new extent is\n // strictly contained by the old extent.\n var minDistance = Math.sqrt(minSquaredDistance);\n extent[0] = x - minDistance;\n extent[1] = y - minDistance;\n extent[2] = x + minDistance;\n extent[3] = y + minDistance;\n }\n }\n });\n return closestFeature;\n };\n /**\n * Get the extent of the features currently in the source.\n *\n * This method is not available when the source is configured with\n * `useSpatialIndex` set to `false`.\n * @param {import(\"../extent.js\").Extent} [opt_extent] Destination extent. If provided, no new extent\n * will be created. Instead, that extent's coordinates will be overwritten.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n VectorSource.prototype.getExtent = function (opt_extent) {\n return this.featuresRtree_.getExtent(opt_extent);\n };\n /**\n * Get a feature by its identifier (the value returned by feature.getId()).\n * Note that the index treats string and numeric identifiers as the same. So\n * `source.getFeatureById(2)` will return a feature with id `'2'` or `2`.\n *\n * @param {string|number} id Feature identifier.\n * @return {import(\"../Feature.js\").default|null} The feature (or `null` if not found).\n * @api\n */\n VectorSource.prototype.getFeatureById = function (id) {\n var feature = this.idIndex_[id.toString()];\n return feature !== undefined ? feature : null;\n };\n /**\n * Get a feature by its internal unique identifier (using `getUid`).\n *\n * @param {string} uid Feature identifier.\n * @return {import(\"../Feature.js\").default|null} The feature (or `null` if not found).\n */\n VectorSource.prototype.getFeatureByUid = function (uid) {\n var feature = this.uidIndex_[uid];\n return feature !== undefined ? feature : null;\n };\n /**\n * Get the format associated with this source.\n *\n * @return {import(\"../format/Feature.js\").default|undefined} The feature format.\n * @api\n */\n VectorSource.prototype.getFormat = function () {\n return this.format_;\n };\n /**\n * @return {boolean} The source can have overlapping geometries.\n */\n VectorSource.prototype.getOverlaps = function () {\n return this.overlaps_;\n };\n /**\n * Get the url associated with this source.\n *\n * @return {string|import(\"../featureloader.js\").FeatureUrlFunction|undefined} The url.\n * @api\n */\n VectorSource.prototype.getUrl = function () {\n return this.url_;\n };\n /**\n * @param {Event} event Event.\n * @private\n */\n VectorSource.prototype.handleFeatureChange_ = function (event) {\n var feature = /** @type {import(\"../Feature.js\").default} */ (event.target);\n var featureKey = getUid(feature);\n var geometry = feature.getGeometry();\n if (!geometry) {\n if (!(featureKey in this.nullGeometryFeatures_)) {\n if (this.featuresRtree_) {\n this.featuresRtree_.remove(feature);\n }\n this.nullGeometryFeatures_[featureKey] = feature;\n }\n }\n else {\n var extent = geometry.getExtent();\n if (featureKey in this.nullGeometryFeatures_) {\n delete this.nullGeometryFeatures_[featureKey];\n if (this.featuresRtree_) {\n this.featuresRtree_.insert(extent, feature);\n }\n }\n else {\n if (this.featuresRtree_) {\n this.featuresRtree_.update(extent, feature);\n }\n }\n }\n var id = feature.getId();\n if (id !== undefined) {\n var sid = id.toString();\n if (this.idIndex_[sid] !== feature) {\n this.removeFromIdIndex_(feature);\n this.idIndex_[sid] = feature;\n }\n }\n else {\n this.removeFromIdIndex_(feature);\n this.uidIndex_[featureKey] = feature;\n }\n this.changed();\n this.dispatchEvent(new VectorSourceEvent(VectorEventType.CHANGEFEATURE, feature));\n };\n /**\n * Returns true if the feature is contained within the source.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @return {boolean} Has feature.\n * @api\n */\n VectorSource.prototype.hasFeature = function (feature) {\n var id = feature.getId();\n if (id !== undefined) {\n return id in this.idIndex_;\n }\n else {\n return getUid(feature) in this.uidIndex_;\n }\n };\n /**\n * @return {boolean} Is empty.\n */\n VectorSource.prototype.isEmpty = function () {\n if (this.featuresRtree_) {\n return (this.featuresRtree_.isEmpty() && isEmpty(this.nullGeometryFeatures_));\n }\n if (this.featuresCollection_) {\n return this.featuresCollection_.getLength() === 0;\n }\n return true;\n };\n /**\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n */\n VectorSource.prototype.loadFeatures = function (extent, resolution, projection) {\n var loadedExtentsRtree = this.loadedExtentsRtree_;\n var extentsToLoad = this.strategy_(extent, resolution, projection);\n var _loop_1 = function (i, ii) {\n var extentToLoad = extentsToLoad[i];\n var alreadyLoaded = loadedExtentsRtree.forEachInExtent(extentToLoad, \n /**\n * @param {{extent: import(\"../extent.js\").Extent}} object Object.\n * @return {boolean} Contains.\n */\n function (object) {\n return containsExtent(object.extent, extentToLoad);\n });\n if (!alreadyLoaded) {\n ++this_1.loadingExtentsCount_;\n this_1.dispatchEvent(new VectorSourceEvent(VectorEventType.FEATURESLOADSTART));\n this_1.loader_.call(this_1, extentToLoad, resolution, projection, function (features) {\n --this.loadingExtentsCount_;\n this.dispatchEvent(new VectorSourceEvent(VectorEventType.FEATURESLOADEND, undefined, features));\n }.bind(this_1), function () {\n --this.loadingExtentsCount_;\n this.dispatchEvent(new VectorSourceEvent(VectorEventType.FEATURESLOADERROR));\n }.bind(this_1));\n loadedExtentsRtree.insert(extentToLoad, { extent: extentToLoad.slice() });\n }\n };\n var this_1 = this;\n for (var i = 0, ii = extentsToLoad.length; i < ii; ++i) {\n _loop_1(i, ii);\n }\n this.loading =\n this.loader_.length < 4 ? false : this.loadingExtentsCount_ > 0;\n };\n VectorSource.prototype.refresh = function () {\n this.clear(true);\n this.loadedExtentsRtree_.clear();\n _super.prototype.refresh.call(this);\n };\n /**\n * Remove an extent from the list of loaded extents.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @api\n */\n VectorSource.prototype.removeLoadedExtent = function (extent) {\n var loadedExtentsRtree = this.loadedExtentsRtree_;\n var obj;\n loadedExtentsRtree.forEachInExtent(extent, function (object) {\n if (equals(object.extent, extent)) {\n obj = object;\n return true;\n }\n });\n if (obj) {\n loadedExtentsRtree.remove(obj);\n }\n };\n /**\n * Remove a single feature from the source. If you want to remove all features\n * at once, use the {@link module:ol/source/Vector~VectorSource#clear #clear()} method\n * instead.\n * @param {import(\"../Feature.js\").default} feature Feature to remove.\n * @api\n */\n VectorSource.prototype.removeFeature = function (feature) {\n if (!feature) {\n return;\n }\n var featureKey = getUid(feature);\n if (featureKey in this.nullGeometryFeatures_) {\n delete this.nullGeometryFeatures_[featureKey];\n }\n else {\n if (this.featuresRtree_) {\n this.featuresRtree_.remove(feature);\n }\n }\n var result = this.removeFeatureInternal(feature);\n if (result) {\n this.changed();\n }\n };\n /**\n * Remove feature without firing a `change` event.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @return {import(\"../Feature.js\").default|undefined} The removed feature\n * (or undefined if the feature was not found).\n * @protected\n */\n VectorSource.prototype.removeFeatureInternal = function (feature) {\n var featureKey = getUid(feature);\n var featureChangeKeys = this.featureChangeKeys_[featureKey];\n if (!featureChangeKeys) {\n return;\n }\n featureChangeKeys.forEach(unlistenByKey);\n delete this.featureChangeKeys_[featureKey];\n var id = feature.getId();\n if (id !== undefined) {\n delete this.idIndex_[id.toString()];\n }\n delete this.uidIndex_[featureKey];\n this.dispatchEvent(new VectorSourceEvent(VectorEventType.REMOVEFEATURE, feature));\n return feature;\n };\n /**\n * Remove a feature from the id index. Called internally when the feature id\n * may have changed.\n * @param {import(\"../Feature.js\").default} feature The feature.\n * @return {boolean} Removed the feature from the index.\n * @private\n */\n VectorSource.prototype.removeFromIdIndex_ = function (feature) {\n var removed = false;\n for (var id in this.idIndex_) {\n if (this.idIndex_[id] === feature) {\n delete this.idIndex_[id];\n removed = true;\n break;\n }\n }\n return removed;\n };\n /**\n * Set the new loader of the source. The next render cycle will use the\n * new loader.\n * @param {import(\"../featureloader.js\").FeatureLoader} loader The loader to set.\n * @api\n */\n VectorSource.prototype.setLoader = function (loader) {\n this.loader_ = loader;\n };\n /**\n * Points the source to a new url. The next render cycle will use the new url.\n * @param {string|import(\"../featureloader.js\").FeatureUrlFunction} url Url.\n * @api\n */\n VectorSource.prototype.setUrl = function (url) {\n assert(this.format_, 7); // `format` must be set when `url` is set\n this.url_ = url;\n this.setLoader(xhr(url, this.format_));\n };\n return VectorSource;\n}(Source));\nexport default VectorSource;\n//# sourceMappingURL=Vector.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 * Triggered when loading of additional map data (tiles, images, features) starts.\n * @event module:ol/MapEvent~MapEvent#loadstart\n * @api\n */\n LOADSTART: 'loadstart',\n /**\n * Triggered when loading of additional map data has completed.\n * @event module:ol/MapEvent~MapEvent#loadend\n * @api\n */\n LOADEND: 'loadend',\n};\n/***\n * @typedef {'postrender'|'movestart'|'moveend'|'loadstart'|'loadend'} Types\n */\n//# sourceMappingURL=MapEventType.js.map","/**\n * @module ol/geom/flat/length\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} Length.\n */\nexport function lineStringLength(flatCoordinates, offset, end, stride) {\n var x1 = flatCoordinates[offset];\n var y1 = flatCoordinates[offset + 1];\n var length = 0;\n for (var i = offset + stride; i < end; i += stride) {\n var x2 = flatCoordinates[i];\n var y2 = flatCoordinates[i + 1];\n length += Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n x1 = x2;\n y1 = y2;\n }\n return length;\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} Perimeter.\n */\nexport function linearRingLength(flatCoordinates, offset, end, stride) {\n var perimeter = lineStringLength(flatCoordinates, offset, end, stride);\n var dx = flatCoordinates[end - stride] - flatCoordinates[offset];\n var dy = flatCoordinates[end - stride + 1] - flatCoordinates[offset + 1];\n perimeter += Math.sqrt(dx * dx + dy * dy);\n return perimeter;\n}\n//# sourceMappingURL=length.js.map","/*!\n * CARTO.js https://carto.com/\n * Version: 4.2.0\n * \n */\n(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[\"carto\"] = factory();\n\telse\n\t\troot[\"carto\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 150);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Underscore.js 1.8.3\n// http://underscorejs.org\n// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n(function() {\n\n // Baseline setup\n // --------------\n\n // Establish the root object, `window` in the browser, or `exports` on the server.\n var root = this;\n\n // Save the previous value of the `_` variable.\n var previousUnderscore = root._;\n\n // Save bytes in the minified (but not gzipped) version:\n var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;\n\n // Create quick reference variables for speed access to core prototypes.\n var\n push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n // All **ECMAScript 5** native function implementations that we hope to use\n // are declared here.\n var\n nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeBind = FuncProto.bind,\n nativeCreate = Object.create;\n\n // Naked function reference for surrogate-prototype-swapping.\n var Ctor = function(){};\n\n // Create a safe reference to the Underscore object for use below.\n var _ = function(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n };\n\n // Export the Underscore object for **Node.js**, with\n // backwards-compatibility for the old `require()` API. If we're in\n // the browser, add `_` as a global object.\n if (true) {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = _;\n }\n exports._ = _;\n } else {}\n\n // Current version.\n _.VERSION = '1.8.3';\n\n // Internal function that returns an efficient (for current engines) version\n // of the passed-in callback, to be repeatedly applied in other Underscore\n // functions.\n var optimizeCb = function(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n case 2: return function(value, other) {\n return func.call(context, value, other);\n };\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n };\n\n // A mostly-internal function to generate callbacks that can be applied\n // to each element in a collection, returning the desired result — either\n // identity, an arbitrary callback, a property matcher, or a property accessor.\n var cb = function(value, context, argCount) {\n if (value == null) return _.identity;\n if (_.isFunction(value)) return optimizeCb(value, context, argCount);\n if (_.isObject(value)) return _.matcher(value);\n return _.property(value);\n };\n _.iteratee = function(value, context) {\n return cb(value, context, Infinity);\n };\n\n // An internal function for creating assigner functions.\n var createAssigner = function(keysFunc, undefinedOnly) {\n return function(obj) {\n var length = arguments.length;\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n };\n\n // An internal function for creating a new object that inherits from another.\n var baseCreate = function(prototype) {\n if (!_.isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n };\n\n var property = function(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n };\n\n // Helper for collection methods to determine whether a collection\n // should be iterated as an array or as an object\n // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\n var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n var getLength = property('length');\n var isArrayLike = function(collection) {\n var length = getLength(collection);\n return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n };\n\n // Collection Functions\n // --------------------\n\n // The cornerstone, an `each` implementation, aka `forEach`.\n // Handles raw objects in addition to array-likes. Treats all\n // sparse array-likes as if they were dense.\n _.each = _.forEach = function(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var keys = _.keys(obj);\n for (i = 0, length = keys.length; i < length; i++) {\n iteratee(obj[keys[i]], keys[i], obj);\n }\n }\n return obj;\n };\n\n // Return the results of applying the iteratee to each element.\n _.map = _.collect = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Create a reducing function iterating left or right.\n function createReduce(dir) {\n // Optimized iterator function as using arguments.length\n // in the main function will deoptimize the, see #1991.\n function iterator(obj, iteratee, memo, keys, index, length) {\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = keys ? keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n }\n\n return function(obj, iteratee, memo, context) {\n iteratee = optimizeCb(iteratee, context, 4);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n // Determine the initial value if none is provided.\n if (arguments.length < 3) {\n memo = obj[keys ? keys[index] : index];\n index += dir;\n }\n return iterator(obj, iteratee, memo, keys, index, length);\n };\n }\n\n // **Reduce** builds up a single result from a list of values, aka `inject`,\n // or `foldl`.\n _.reduce = _.foldl = _.inject = createReduce(1);\n\n // The right-associative version of reduce, also known as `foldr`.\n _.reduceRight = _.foldr = createReduce(-1);\n\n // Return the first value which passes a truth test. Aliased as `detect`.\n _.find = _.detect = function(obj, predicate, context) {\n var key;\n if (isArrayLike(obj)) {\n key = _.findIndex(obj, predicate, context);\n } else {\n key = _.findKey(obj, predicate, context);\n }\n if (key !== void 0 && key !== -1) return obj[key];\n };\n\n // Return all the elements that pass a truth test.\n // Aliased as `select`.\n _.filter = _.select = function(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n _.each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n };\n\n // Return all the elements for which a truth test fails.\n _.reject = function(obj, predicate, context) {\n return _.filter(obj, _.negate(cb(predicate)), context);\n };\n\n // Determine whether all of the elements match a truth test.\n // Aliased as `all`.\n _.every = _.all = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n };\n\n // Determine if at least one element in the object matches a truth test.\n // Aliased as `any`.\n _.some = _.any = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n };\n\n // Determine if the array or object contains a given item (using `===`).\n // Aliased as `includes` and `include`.\n _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return _.indexOf(obj, item, fromIndex) >= 0;\n };\n\n // Invoke a method (with arguments) on every item in a collection.\n _.invoke = function(obj, method) {\n var args = slice.call(arguments, 2);\n var isFunc = _.isFunction(method);\n return _.map(obj, function(value) {\n var func = isFunc ? method : value[method];\n return func == null ? func : func.apply(value, args);\n });\n };\n\n // Convenience version of a common use case of `map`: fetching a property.\n _.pluck = function(obj, key) {\n return _.map(obj, _.property(key));\n };\n\n // Convenience version of a common use case of `filter`: selecting only objects\n // containing specific `key:value` pairs.\n _.where = function(obj, attrs) {\n return _.filter(obj, _.matcher(attrs));\n };\n\n // Convenience version of a common use case of `find`: getting the first object\n // containing specific `key:value` pairs.\n _.findWhere = function(obj, attrs) {\n return _.find(obj, _.matcher(attrs));\n };\n\n // Return the maximum element (or element-based computation).\n _.max = function(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index, list) {\n computed = iteratee(value, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Return the minimum element (or element-based computation).\n _.min = function(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index, list) {\n computed = iteratee(value, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Shuffle a collection, using the modern version of the\n // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n _.shuffle = function(obj) {\n var set = isArrayLike(obj) ? obj : _.values(obj);\n var length = set.length;\n var shuffled = Array(length);\n for (var index = 0, rand; index < length; index++) {\n rand = _.random(0, index);\n if (rand !== index) shuffled[index] = shuffled[rand];\n shuffled[rand] = set[index];\n }\n return shuffled;\n };\n\n // Sample **n** random values from a collection.\n // If **n** is not specified, returns a single random element.\n // The internal `guard` argument allows it to work with `map`.\n _.sample = function(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n return obj[_.random(obj.length - 1)];\n }\n return _.shuffle(obj).slice(0, Math.max(0, n));\n };\n\n // Sort the object's values by a criterion produced by an iteratee.\n _.sortBy = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n return _.pluck(_.map(obj, function(value, index, list) {\n return {\n value: value,\n index: index,\n criteria: iteratee(value, index, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n };\n\n // An internal function used for aggregate \"group by\" operations.\n var group = function(behavior) {\n return function(obj, iteratee, context) {\n var result = {};\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n };\n\n // Groups the object's values by a criterion. Pass either a string attribute\n // to group by, or a function that returns the criterion.\n _.groupBy = group(function(result, value, key) {\n if (_.has(result, key)) result[key].push(value); else result[key] = [value];\n });\n\n // Indexes the object's values by a criterion, similar to `groupBy`, but for\n // when you know that your index values will be unique.\n _.indexBy = group(function(result, value, key) {\n result[key] = value;\n });\n\n // Counts instances of an object that group by a certain criterion. Pass\n // either a string attribute to count by, or a function that returns the\n // criterion.\n _.countBy = group(function(result, value, key) {\n if (_.has(result, key)) result[key]++; else result[key] = 1;\n });\n\n // Safely create a real, live array from anything iterable.\n _.toArray = function(obj) {\n if (!obj) return [];\n if (_.isArray(obj)) return slice.call(obj);\n if (isArrayLike(obj)) return _.map(obj, _.identity);\n return _.values(obj);\n };\n\n // Return the number of elements in an object.\n _.size = function(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : _.keys(obj).length;\n };\n\n // Split a collection into two arrays: one whose elements all satisfy the given\n // predicate, and one whose elements all do not satisfy the predicate.\n _.partition = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var pass = [], fail = [];\n _.each(obj, function(value, key, obj) {\n (predicate(value, key, obj) ? pass : fail).push(value);\n });\n return [pass, fail];\n };\n\n // Array Functions\n // ---------------\n\n // Get the first element of an array. Passing **n** will return the first N\n // values in the array. Aliased as `head` and `take`. The **guard** check\n // allows it to work with `_.map`.\n _.first = _.head = _.take = function(array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[0];\n return _.initial(array, array.length - n);\n };\n\n // Returns everything but the last entry of the array. Especially useful on\n // the arguments object. Passing **n** will return all the values in\n // the array, excluding the last N.\n _.initial = function(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n };\n\n // Get the last element of an array. Passing **n** will return the last N\n // values in the array.\n _.last = function(array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[array.length - 1];\n return _.rest(array, Math.max(0, array.length - n));\n };\n\n // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.\n // Especially useful on the arguments object. Passing an **n** will return\n // the rest N values in the array.\n _.rest = _.tail = _.drop = function(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n };\n\n // Trim out all falsy values from an array.\n _.compact = function(array) {\n return _.filter(array, _.identity);\n };\n\n // Internal implementation of a recursive `flatten` function.\n var flatten = function(input, shallow, strict, startIndex) {\n var output = [], idx = 0;\n for (var i = startIndex || 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) {\n //flatten current level of array or arguments object\n if (!shallow) value = flatten(value, shallow, strict);\n var j = 0, len = value.length;\n output.length += len;\n while (j < len) {\n output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n };\n\n // Flatten out an array, either recursively (by default), or just one level.\n _.flatten = function(array, shallow) {\n return flatten(array, shallow, false);\n };\n\n // Return a version of the array that does not contain the specified value(s).\n _.without = function(array) {\n return _.difference(array, slice.call(arguments, 1));\n };\n\n // Produce a duplicate-free version of the array. If the array has already\n // been sorted, you have the option of using a faster algorithm.\n // Aliased as `unique`.\n _.uniq = _.unique = function(array, isSorted, iteratee, context) {\n if (!_.isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!_.contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!_.contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n };\n\n // Produce an array that contains the union: each distinct element from all of\n // the passed-in arrays.\n _.union = function() {\n return _.uniq(flatten(arguments, true, true));\n };\n\n // Produce an array that contains every item shared between all the\n // passed-in arrays.\n _.intersection = function(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (_.contains(result, item)) continue;\n for (var j = 1; j < argsLength; j++) {\n if (!_.contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n };\n\n // Take the difference between one array and a number of other arrays.\n // Only the elements present in just the first array will remain.\n _.difference = function(array) {\n var rest = flatten(arguments, true, true, 1);\n return _.filter(array, function(value){\n return !_.contains(rest, value);\n });\n };\n\n // Zip together multiple lists into a single array -- elements that share\n // an index go together.\n _.zip = function() {\n return _.unzip(arguments);\n };\n\n // Complement of _.zip. Unzip accepts an array of arrays and groups\n // each array's elements on shared indices\n _.unzip = function(array) {\n var length = array && _.max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = _.pluck(array, index);\n }\n return result;\n };\n\n // Converts lists into objects. Pass either a single array of `[key, value]`\n // pairs, or two parallel arrays of the same length -- one of keys, and one of\n // the corresponding values.\n _.object = function(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n };\n\n // Generator function to create the findIndex and findLastIndex functions\n function createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n }\n\n // Returns the first index on an array-like that passes a predicate test\n _.findIndex = createPredicateIndexFinder(1);\n _.findLastIndex = createPredicateIndexFinder(-1);\n\n // Use a comparator function to figure out the smallest index at which\n // an object should be inserted so as to maintain order. Uses binary search.\n _.sortedIndex = function(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n };\n\n // Generator function to create the indexOf and lastIndexOf functions\n function createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), _.isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n }\n\n // Return the position of the first occurrence of an item in an array,\n // or -1 if the item is not included in the array.\n // If the array is large and already in sort order, pass `true`\n // for **isSorted** to use binary search.\n _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex);\n _.lastIndexOf = createIndexFinder(-1, _.findLastIndex);\n\n // Generate an integer Array containing an arithmetic progression. A port of\n // the native Python `range()` function. See\n // [the Python documentation](http://docs.python.org/library/functions.html#range).\n _.range = function(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n step = step || 1;\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n };\n\n // Function (ahem) Functions\n // ------------------\n\n // Determines whether to execute a function as a constructor\n // or a normal function with the provided arguments\n var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (_.isObject(result)) return result;\n return self;\n };\n\n // Create a function bound to a given object (assigning `this`, and arguments,\n // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if\n // available.\n _.bind = function(func, context) {\n if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));\n if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function');\n var args = slice.call(arguments, 2);\n var bound = function() {\n return executeBound(func, bound, context, this, args.concat(slice.call(arguments)));\n };\n return bound;\n };\n\n // Partially apply a function by creating a version that has had some of its\n // arguments pre-filled, without changing its dynamic `this` context. _ acts\n // as a placeholder, allowing any combination of arguments to be pre-filled.\n _.partial = function(func) {\n var boundArgs = slice.call(arguments, 1);\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === _ ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n };\n\n // Bind a number of an object's methods to that object. Remaining arguments\n // are the method names to be bound. Useful for ensuring that all callbacks\n // defined on an object belong to it.\n _.bindAll = function(obj) {\n var i, length = arguments.length, key;\n if (length <= 1) throw new Error('bindAll must be passed function names');\n for (i = 1; i < length; i++) {\n key = arguments[i];\n obj[key] = _.bind(obj[key], obj);\n }\n return obj;\n };\n\n // Memoize an expensive function by storing its results.\n _.memoize = function(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!_.has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n };\n\n // Delays a function for the given number of milliseconds, and then calls\n // it with the arguments supplied.\n _.delay = function(func, wait) {\n var args = slice.call(arguments, 2);\n return setTimeout(function(){\n return func.apply(null, args);\n }, wait);\n };\n\n // Defers a function, scheduling it to run after the current call stack has\n // cleared.\n _.defer = _.partial(_.delay, _, 1);\n\n // Returns a function, that, when invoked, will only be triggered at most once\n // during a given window of time. Normally, the throttled function will run\n // as much as it can, without ever going more than once per `wait` duration;\n // but if you'd like to disable the execution on the leading edge, pass\n // `{leading: false}`. To disable execution on the trailing edge, ditto.\n _.throttle = function(func, wait, options) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n if (!options) options = {};\n var later = function() {\n previous = options.leading === false ? 0 : _.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n return function() {\n var now = _.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n };\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n _.debounce = function(func, wait, immediate) {\n var timeout, args, context, timestamp, result;\n\n var later = function() {\n var last = _.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n }\n }\n };\n\n return function() {\n context = this;\n args = arguments;\n timestamp = _.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n };\n\n // Returns the first function passed as an argument to the second,\n // allowing you to adjust arguments, run code before and after, and\n // conditionally execute the original function.\n _.wrap = function(func, wrapper) {\n return _.partial(wrapper, func);\n };\n\n // Returns a negated version of the passed-in predicate.\n _.negate = function(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n };\n\n // Returns a function that is the composition of a list of functions, each\n // consuming the return value of the function that follows.\n _.compose = function() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n };\n\n // Returns a function that will only be executed on and after the Nth call.\n _.after = function(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n };\n\n // Returns a function that will only be executed up to (but not including) the Nth call.\n _.before = function(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n };\n\n // Returns a function that will be executed at most one time, no matter how\n // often you call it. Useful for lazy initialization.\n _.once = _.partial(_.before, 2);\n\n // Object Functions\n // ----------------\n\n // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\n var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\n var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n function collectNonEnumProps(obj, keys) {\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) {\n keys.push(prop);\n }\n }\n }\n\n // Retrieve the names of an object's own properties.\n // Delegates to **ECMAScript 5**'s native `Object.keys`\n _.keys = function(obj) {\n if (!_.isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (_.has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve all the property names of an object.\n _.allKeys = function(obj) {\n if (!_.isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve the values of an object's properties.\n _.values = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[keys[i]];\n }\n return values;\n };\n\n // Returns the results of applying the iteratee to each element of the object\n // In contrast to _.map it returns an object\n _.mapObject = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = _.keys(obj),\n length = keys.length,\n results = {},\n currentKey;\n for (var index = 0; index < length; index++) {\n currentKey = keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Convert an object into a list of `[key, value]` pairs.\n _.pairs = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [keys[i], obj[keys[i]]];\n }\n return pairs;\n };\n\n // Invert the keys and values of an object. The values must be serializable.\n _.invert = function(obj) {\n var result = {};\n var keys = _.keys(obj);\n for (var i = 0, length = keys.length; i < length; i++) {\n result[obj[keys[i]]] = keys[i];\n }\n return result;\n };\n\n // Return a sorted list of the function names available on the object.\n // Aliased as `methods`\n _.functions = _.methods = function(obj) {\n var names = [];\n for (var key in obj) {\n if (_.isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n };\n\n // Extend a given object with all the properties in passed-in object(s).\n _.extend = createAssigner(_.allKeys);\n\n // Assigns a given object with all the own properties in the passed-in object(s)\n // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\n _.extendOwn = _.assign = createAssigner(_.keys);\n\n // Returns the first key on an object that passes a predicate test\n _.findKey = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = _.keys(obj), key;\n for (var i = 0, length = keys.length; i < length; i++) {\n key = keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n };\n\n // Return a copy of the object only containing the whitelisted properties.\n _.pick = function(object, oiteratee, context) {\n var result = {}, obj = object, iteratee, keys;\n if (obj == null) return result;\n if (_.isFunction(oiteratee)) {\n keys = _.allKeys(obj);\n iteratee = optimizeCb(oiteratee, context);\n } else {\n keys = flatten(arguments, false, false, 1);\n iteratee = function(value, key, obj) { return key in obj; };\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n };\n\n // Return a copy of the object without the blacklisted properties.\n _.omit = function(obj, iteratee, context) {\n if (_.isFunction(iteratee)) {\n iteratee = _.negate(iteratee);\n } else {\n var keys = _.map(flatten(arguments, false, false, 1), String);\n iteratee = function(value, key) {\n return !_.contains(keys, key);\n };\n }\n return _.pick(obj, iteratee, context);\n };\n\n // Fill in a given object with default properties.\n _.defaults = createAssigner(_.allKeys, true);\n\n // Creates an object that inherits from the given prototype object.\n // If additional properties are provided then they will be added to the\n // created object.\n _.create = function(prototype, props) {\n var result = baseCreate(prototype);\n if (props) _.extendOwn(result, props);\n return result;\n };\n\n // Create a (shallow-cloned) duplicate of an object.\n _.clone = function(obj) {\n if (!_.isObject(obj)) return obj;\n return _.isArray(obj) ? obj.slice() : _.extend({}, obj);\n };\n\n // Invokes interceptor with the obj, and then returns obj.\n // The primary purpose of this method is to \"tap into\" a method chain, in\n // order to perform operations on intermediate results within the chain.\n _.tap = function(obj, interceptor) {\n interceptor(obj);\n return obj;\n };\n\n // Returns whether an object has a given set of `key:value` pairs.\n _.isMatch = function(object, attrs) {\n var keys = _.keys(attrs), length = keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n };\n\n\n // Internal recursive comparison function for `isEqual`.\n var eq = function(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // A strict comparison is necessary because `null == undefined`.\n if (a == null || b == null) return a === b;\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor &&\n _.isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var keys = _.keys(a), key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (_.keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(_.has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n };\n\n // Perform a deep comparison to check if two objects are equal.\n _.isEqual = function(a, b) {\n return eq(a, b);\n };\n\n // Is a given array, string, or object empty?\n // An \"empty\" object has no enumerable own-properties.\n _.isEmpty = function(obj) {\n if (obj == null) return true;\n if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;\n return _.keys(obj).length === 0;\n };\n\n // Is a given value a DOM element?\n _.isElement = function(obj) {\n return !!(obj && obj.nodeType === 1);\n };\n\n // Is a given value an array?\n // Delegates to ECMA5's native Array.isArray\n _.isArray = nativeIsArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n };\n\n // Is a given variable an object?\n _.isObject = function(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n };\n\n // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError.\n _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) {\n _['is' + name] = function(obj) {\n return toString.call(obj) === '[object ' + name + ']';\n };\n });\n\n // Define a fallback version of the method in browsers (ahem, IE < 9), where\n // there isn't any inspectable \"Arguments\" type.\n if (!_.isArguments(arguments)) {\n _.isArguments = function(obj) {\n return _.has(obj, 'callee');\n };\n }\n\n // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,\n // IE 11 (#1621), and in Safari 8 (#1929).\n if (typeof /./ != 'function' && typeof Int8Array != 'object') {\n _.isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n }\n\n // Is a given object a finite number?\n _.isFinite = function(obj) {\n return isFinite(obj) && !isNaN(parseFloat(obj));\n };\n\n // Is the given value `NaN`? (NaN is the only number which does not equal itself).\n _.isNaN = function(obj) {\n return _.isNumber(obj) && obj !== +obj;\n };\n\n // Is a given value a boolean?\n _.isBoolean = function(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n };\n\n // Is a given value equal to null?\n _.isNull = function(obj) {\n return obj === null;\n };\n\n // Is a given variable undefined?\n _.isUndefined = function(obj) {\n return obj === void 0;\n };\n\n // Shortcut function for checking if an object has a given property directly\n // on itself (in other words, not on a prototype).\n _.has = function(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n };\n\n // Utility Functions\n // -----------------\n\n // Run Underscore.js in *noConflict* mode, returning the `_` variable to its\n // previous owner. Returns a reference to the Underscore object.\n _.noConflict = function() {\n root._ = previousUnderscore;\n return this;\n };\n\n // Keep the identity function around for default iteratees.\n _.identity = function(value) {\n return value;\n };\n\n // Predicate-generating functions. Often useful outside of Underscore.\n _.constant = function(value) {\n return function() {\n return value;\n };\n };\n\n _.noop = function(){};\n\n _.property = property;\n\n // Generates a function for a given object that returns a given property.\n _.propertyOf = function(obj) {\n return obj == null ? function(){} : function(key) {\n return obj[key];\n };\n };\n\n // Returns a predicate for checking whether an object has a given set of\n // `key:value` pairs.\n _.matcher = _.matches = function(attrs) {\n attrs = _.extendOwn({}, attrs);\n return function(obj) {\n return _.isMatch(obj, attrs);\n };\n };\n\n // Run a function **n** times.\n _.times = function(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n };\n\n // Return a random integer between min and max (inclusive).\n _.random = function(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n };\n\n // A (possibly faster) way to get the current timestamp as an integer.\n _.now = Date.now || function() {\n return new Date().getTime();\n };\n\n // List of HTML entities for escaping.\n var escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n };\n var unescapeMap = _.invert(escapeMap);\n\n // Functions for escaping and unescaping strings to/from HTML interpolation.\n var createEscaper = function(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped\n var source = '(?:' + _.keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n };\n _.escape = createEscaper(escapeMap);\n _.unescape = createEscaper(unescapeMap);\n\n // If the value of the named `property` is a function then invoke it with the\n // `object` as context; otherwise, return it.\n _.result = function(object, property, fallback) {\n var value = object == null ? void 0 : object[property];\n if (value === void 0) {\n value = fallback;\n }\n return _.isFunction(value) ? value.call(object) : value;\n };\n\n // Generate a unique integer id (unique within the entire client session).\n // Useful for temporary DOM ids.\n var idCounter = 0;\n _.uniqueId = function(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n };\n\n // By default, Underscore uses ERB-style template delimiters, change the\n // following template settings to use alternative delimiters.\n _.templateSettings = {\n evaluate : /<%([\\s\\S]+?)%>/g,\n interpolate : /<%=([\\s\\S]+?)%>/g,\n escape : /<%-([\\s\\S]+?)%>/g\n };\n\n // When customizing `templateSettings`, if you don't want to define an\n // interpolation, evaluation or escaping regex, we need one that is\n // guaranteed not to match.\n var noMatch = /(.)^/;\n\n // Certain characters need to be escaped so that they can be put into a\n // string literal.\n var escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n var escaper = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\n var escapeChar = function(match) {\n return '\\\\' + escapes[match];\n };\n\n // JavaScript micro-templating, similar to John Resig's implementation.\n // Underscore templating handles arbitrary delimiters, preserves whitespace,\n // and correctly escapes quotes within interpolated code.\n // NB: `oldSettings` only exists for backwards compatibility.\n _.template = function(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = _.defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escaper, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offest.\n return match;\n });\n source += \"';\\n\";\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n try {\n var render = new Function(settings.variable || 'obj', '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n var argument = settings.variable || 'obj';\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n };\n\n // Add a \"chain\" function. Start chaining a wrapped Underscore object.\n _.chain = function(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n };\n\n // OOP\n // ---------------\n // If Underscore is called as a function, it returns a wrapped object that\n // can be used OO-style. This wrapper holds altered versions of all the\n // underscore functions. Wrapped objects may be chained.\n\n // Helper function to continue chaining intermediate results.\n var result = function(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n };\n\n // Add your own custom functions to the Underscore object.\n _.mixin = function(obj) {\n _.each(_.functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return result(this, func.apply(_, args));\n };\n });\n };\n\n // Add all of the Underscore functions to the wrapper object.\n _.mixin(_);\n\n // Add all mutator Array functions to the wrapper.\n _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];\n return result(this, obj);\n };\n });\n\n // Add all accessor Array functions to the wrapper.\n _.each(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n return result(this, method.apply(this._wrapped, arguments));\n };\n });\n\n // Extracts the result from a wrapped and chained object.\n _.prototype.value = function() {\n return this._wrapped;\n };\n\n // Provide unwrapping proxy for some methods used in engine operations\n // such as arithmetic and JSON stringification.\n _.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n _.prototype.toString = function() {\n return '' + this._wrapped;\n };\n\n // AMD registration happens at the end for compatibility with AMD loaders\n // that may not enforce next-turn semantics on modules. Even though general\n // practice for AMD registration is to be anonymous, underscore registers\n // as a named module because, like jQuery, it is a base library that is\n // popular enough to be bundled in a third party lib, but not be part of\n // an AMD load request. Those cases could generate an error when an\n // anonymous define() is called outside of a loader request.\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n return _;\n }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n }\n}.call(this));\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Backbone.js 1.2.3\n\n// (c) 2010-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Backbone may be freely distributed under the MIT license.\n// For all details and documentation:\n// http://backbonejs.org\n\n(function(factory) {\n\n // Establish the root object, `window` (`self`) in the browser, or `global` on the server.\n // We use `self` instead of `window` for `WebWorker` support.\n var root = (typeof self == 'object' && self.self == self && self) ||\n (typeof global == 'object' && global.global == global && global);\n\n // Set up Backbone appropriately for the environment. Start with AMD.\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(0), __webpack_require__(17), exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function(_, $, exports) {\n // Export global even in AMD case in case this script is loaded with\n // others that may still expect a global Backbone.\n root.Backbone = factory(root, exports, _, $);\n }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n // Next for Node.js or CommonJS. jQuery may not be needed as a module.\n } else { var _, $; }\n\n}(function(root, Backbone, _, $) {\n\n // Initial Setup\n // -------------\n\n // Save the previous value of the `Backbone` variable, so that it can be\n // restored later on, if `noConflict` is used.\n var previousBackbone = root.Backbone;\n\n // Create a local reference to a common array method we'll want to use later.\n var slice = Array.prototype.slice;\n\n // Current version of the library. Keep in sync with `package.json`.\n Backbone.VERSION = '1.2.3';\n\n // For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns\n // the `$` variable.\n Backbone.$ = $;\n\n // Runs Backbone.js in *noConflict* mode, returning the `Backbone` variable\n // to its previous owner. Returns a reference to this Backbone object.\n Backbone.noConflict = function() {\n root.Backbone = previousBackbone;\n return this;\n };\n\n // Turn on `emulateHTTP` to support legacy HTTP servers. Setting this option\n // will fake `\"PATCH\"`, `\"PUT\"` and `\"DELETE\"` requests via the `_method` parameter and\n // set a `X-Http-Method-Override` header.\n Backbone.emulateHTTP = false;\n\n // Turn on `emulateJSON` to support legacy servers that can't deal with direct\n // `application/json` requests ... this will encode the body as\n // `application/x-www-form-urlencoded` instead and will send the model in a\n // form param named `model`.\n Backbone.emulateJSON = false;\n\n // Proxy Backbone class methods to Underscore functions, wrapping the model's\n // `attributes` object or collection's `models` array behind the scenes.\n //\n // collection.filter(function(model) { return model.get('age') > 10 });\n // collection.each(this.addView);\n //\n // `Function#apply` can be slow so we use the method's arg count, if we know it.\n var addMethod = function(length, method, attribute) {\n switch (length) {\n case 1: return function() {\n return _[method](this[attribute]);\n };\n case 2: return function(value) {\n return _[method](this[attribute], value);\n };\n case 3: return function(iteratee, context) {\n return _[method](this[attribute], cb(iteratee, this), context);\n };\n case 4: return function(iteratee, defaultVal, context) {\n return _[method](this[attribute], cb(iteratee, this), defaultVal, context);\n };\n default: return function() {\n var args = slice.call(arguments);\n args.unshift(this[attribute]);\n return _[method].apply(_, args);\n };\n }\n };\n var addUnderscoreMethods = function(Class, methods, attribute) {\n _.each(methods, function(length, method) {\n if (_[method]) Class.prototype[method] = addMethod(length, method, attribute);\n });\n };\n\n // Support `collection.sortBy('attr')` and `collection.findWhere({id: 1})`.\n var cb = function(iteratee, instance) {\n if (_.isFunction(iteratee)) return iteratee;\n if (_.isObject(iteratee) && !instance._isModel(iteratee)) return modelMatcher(iteratee);\n if (_.isString(iteratee)) return function(model) { return model.get(iteratee); };\n return iteratee;\n };\n var modelMatcher = function(attrs) {\n var matcher = _.matches(attrs);\n return function(model) {\n return matcher(model.attributes);\n };\n };\n\n // Backbone.Events\n // ---------------\n\n // A module that can be mixed in to *any object* in order to provide it with\n // a custom event channel. You may bind a callback to an event with `on` or\n // remove with `off`; `trigger`-ing an event fires all callbacks in\n // succession.\n //\n // var object = {};\n // _.extend(object, Backbone.Events);\n // object.on('expand', function(){ alert('expanded'); });\n // object.trigger('expand');\n //\n var Events = Backbone.Events = {};\n\n // Regular expression used to split event strings.\n var eventSplitter = /\\s+/;\n\n // Iterates over the standard `event, callback` (as well as the fancy multiple\n // space-separated events `\"change blur\", callback` and jQuery-style event\n // maps `{event: callback}`).\n var eventsApi = function(iteratee, events, name, callback, opts) {\n var i = 0, names;\n if (name && typeof name === 'object') {\n // Handle event maps.\n if (callback !== void 0 && 'context' in opts && opts.context === void 0) opts.context = callback;\n for (names = _.keys(name); i < names.length ; i++) {\n events = eventsApi(iteratee, events, names[i], name[names[i]], opts);\n }\n } else if (name && eventSplitter.test(name)) {\n // Handle space separated event names by delegating them individually.\n for (names = name.split(eventSplitter); i < names.length; i++) {\n events = iteratee(events, names[i], callback, opts);\n }\n } else {\n // Finally, standard events.\n events = iteratee(events, name, callback, opts);\n }\n return events;\n };\n\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n Events.on = function(name, callback, context) {\n return internalOn(this, name, callback, context);\n };\n\n // Guard the `listening` argument from the public API.\n var internalOn = function(obj, name, callback, context, listening) {\n obj._events = eventsApi(onApi, obj._events || {}, name, callback, {\n context: context,\n ctx: obj,\n listening: listening\n });\n\n if (listening) {\n var listeners = obj._listeners || (obj._listeners = {});\n listeners[listening.id] = listening;\n }\n\n return obj;\n };\n\n // Inversion-of-control versions of `on`. Tell *this* object to listen to\n // an event in another object... keeping track of what it's listening to\n // for easier unbinding later.\n Events.listenTo = function(obj, name, callback) {\n if (!obj) return this;\n var id = obj._listenId || (obj._listenId = _.uniqueId('l'));\n var listeningTo = this._listeningTo || (this._listeningTo = {});\n var listening = listeningTo[id];\n\n // This object is not listening to any other events on `obj` yet.\n // Setup the necessary references to track the listening callbacks.\n if (!listening) {\n var thisId = this._listenId || (this._listenId = _.uniqueId('l'));\n listening = listeningTo[id] = {obj: obj, objId: id, id: thisId, listeningTo: listeningTo, count: 0};\n }\n\n // Bind callbacks on obj, and keep track of them on listening.\n internalOn(obj, name, callback, this, listening);\n return this;\n };\n\n // The reducing API that adds a callback to the `events` object.\n var onApi = function(events, name, callback, options) {\n if (callback) {\n var handlers = events[name] || (events[name] = []);\n var context = options.context, ctx = options.ctx, listening = options.listening;\n if (listening) listening.count++;\n\n handlers.push({ callback: callback, context: context, ctx: context || ctx, listening: listening });\n }\n return events;\n };\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n Events.off = function(name, callback, context) {\n if (!this._events) return this;\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: context,\n listeners: this._listeners\n });\n return this;\n };\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n Events.stopListening = function(obj, name, callback) {\n var listeningTo = this._listeningTo;\n if (!listeningTo) return this;\n\n var ids = obj ? [obj._listenId] : _.keys(listeningTo);\n\n for (var i = 0; i < ids.length; i++) {\n var listening = listeningTo[ids[i]];\n\n // If listening doesn't exist, this object is not currently\n // listening to obj. Break out early.\n if (!listening) break;\n\n listening.obj.off(name, callback, this);\n }\n if (_.isEmpty(listeningTo)) this._listeningTo = void 0;\n\n return this;\n };\n\n // The reducing API that removes a callback from the `events` object.\n var offApi = function(events, name, callback, options) {\n if (!events) return;\n\n var i = 0, listening;\n var context = options.context, listeners = options.listeners;\n\n // Delete all events listeners and \"drop\" events.\n if (!name && !callback && !context) {\n var ids = _.keys(listeners);\n for (; i < ids.length; i++) {\n listening = listeners[ids[i]];\n delete listeners[listening.id];\n delete listening.listeningTo[listening.objId];\n }\n return;\n }\n\n var names = name ? [name] : _.keys(events);\n for (; i < names.length; i++) {\n name = names[i];\n var handlers = events[name];\n\n // Bail out if there are no events stored.\n if (!handlers) break;\n\n // Replace events if there are any remaining. Otherwise, clean up.\n var remaining = [];\n for (var j = 0; j < handlers.length; j++) {\n var handler = handlers[j];\n if (\n callback && callback !== handler.callback &&\n callback !== handler.callback._callback ||\n context && context !== handler.context\n ) {\n remaining.push(handler);\n } else {\n listening = handler.listening;\n if (listening && --listening.count === 0) {\n delete listeners[listening.id];\n delete listening.listeningTo[listening.objId];\n }\n }\n }\n\n // Update tail event if the list has any events. Otherwise, clean up.\n if (remaining.length) {\n events[name] = remaining;\n } else {\n delete events[name];\n }\n }\n if (_.size(events)) return events;\n };\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, its listener will be removed. If multiple events\n // are passed in using the space-separated syntax, the handler will fire\n // once for each event, not once for a combination of all events.\n Events.once = function(name, callback, context) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, _.bind(this.off, this));\n return this.on(events, void 0, context);\n };\n\n // Inversion-of-control versions of `once`.\n Events.listenToOnce = function(obj, name, callback) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, _.bind(this.stopListening, this, obj));\n return this.listenTo(obj, events);\n };\n\n // Reduces the event callbacks into a map of `{event: onceWrapper}`.\n // `offer` unbinds the `onceWrapper` after it has been called.\n var onceMap = function(map, name, callback, offer) {\n if (callback) {\n var once = map[name] = _.once(function() {\n offer(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n }\n return map;\n };\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n Events.trigger = function(name) {\n if (!this._events) return this;\n\n var length = Math.max(0, arguments.length - 1);\n var args = Array(length);\n for (var i = 0; i < length; i++) args[i] = arguments[i + 1];\n\n eventsApi(triggerApi, this._events, name, void 0, args);\n return this;\n };\n\n // Handles triggering the appropriate event callbacks.\n var triggerApi = function(objEvents, name, cb, args) {\n if (objEvents) {\n var events = objEvents[name];\n var allEvents = objEvents.all;\n if (events && allEvents) allEvents = allEvents.slice();\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, [name].concat(args));\n }\n return objEvents;\n };\n\n // A difficult-to-believe, but optimized internal dispatch function for\n // triggering events. Tries to keep the usual cases speedy (most internal\n // Backbone events have 3 arguments).\n var triggerEvents = function(events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); return;\n }\n };\n\n // Aliases for backwards compatibility.\n Events.bind = Events.on;\n Events.unbind = Events.off;\n\n // Allow the `Backbone` object to serve as a global event bus, for folks who\n // want global \"pubsub\" in a convenient place.\n _.extend(Backbone, Events);\n\n // Backbone.Model\n // --------------\n\n // Backbone **Models** are the basic data object in the framework --\n // frequently representing a row in a table in a database on your server.\n // A discrete chunk of data and a bunch of useful, related methods for\n // performing computations and transformations on that data.\n\n // Create a new model with the specified attributes. A client id (`cid`)\n // is automatically generated and assigned for you.\n var Model = Backbone.Model = function(attributes, options) {\n var attrs = attributes || {};\n options || (options = {});\n this.cid = _.uniqueId(this.cidPrefix);\n this.attributes = {};\n if (options.collection) this.collection = options.collection;\n if (options.parse) attrs = this.parse(attrs, options) || {};\n attrs = _.defaults({}, attrs, _.result(this, 'defaults'));\n this.set(attrs, options);\n this.changed = {};\n this.initialize.apply(this, arguments);\n };\n\n // Attach all inheritable methods to the Model prototype.\n _.extend(Model.prototype, Events, {\n\n // A hash of attributes whose current and previous value differ.\n changed: null,\n\n // The value returned during the last failed validation.\n validationError: null,\n\n // The default name for the JSON `id` attribute is `\"id\"`. MongoDB and\n // CouchDB users may want to set this to `\"_id\"`.\n idAttribute: 'id',\n\n // The prefix is used to create the client id which is used to identify models locally.\n // You may want to override this if you're experiencing name clashes with model ids.\n cidPrefix: 'c',\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Return a copy of the model's `attributes` object.\n toJSON: function(options) {\n return _.clone(this.attributes);\n },\n\n // Proxy `Backbone.sync` by default -- but override this if you need\n // custom syncing semantics for *this* particular model.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Get the value of an attribute.\n get: function(attr) {\n return this.attributes[attr];\n },\n\n // Get the HTML-escaped value of an attribute.\n escape: function(attr) {\n return _.escape(this.get(attr));\n },\n\n // Returns `true` if the attribute contains a value that is not null\n // or undefined.\n has: function(attr) {\n return this.get(attr) != null;\n },\n\n // Special-cased proxy to underscore's `_.matches` method.\n matches: function(attrs) {\n return !!_.iteratee(attrs, this)(this.attributes);\n },\n\n // Set a hash of model attributes on the object, firing `\"change\"`. This is\n // the core primitive operation of a model, updating the data and notifying\n // anyone who needs to know about the change in state. The heart of the beast.\n set: function(key, val, options) {\n if (key == null) return this;\n\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options || (options = {});\n\n // Run validation.\n if (!this._validate(attrs, options)) return false;\n\n // Extract attributes and options.\n var unset = options.unset;\n var silent = options.silent;\n var changes = [];\n var changing = this._changing;\n this._changing = true;\n\n if (!changing) {\n this._previousAttributes = _.clone(this.attributes);\n this.changed = {};\n }\n\n var current = this.attributes;\n var changed = this.changed;\n var prev = this._previousAttributes;\n\n // For each `set` attribute, update or delete the current value.\n for (var attr in attrs) {\n val = attrs[attr];\n if (!_.isEqual(current[attr], val)) changes.push(attr);\n if (!_.isEqual(prev[attr], val)) {\n changed[attr] = val;\n } else {\n delete changed[attr];\n }\n unset ? delete current[attr] : current[attr] = val;\n }\n\n // Update the `id`.\n this.id = this.get(this.idAttribute);\n\n // Trigger all relevant attribute changes.\n if (!silent) {\n if (changes.length) this._pending = options;\n for (var i = 0; i < changes.length; i++) {\n this.trigger('change:' + changes[i], this, current[changes[i]], options);\n }\n }\n\n // You might be wondering why there's a `while` loop here. Changes can\n // be recursively nested within `\"change\"` events.\n if (changing) return this;\n if (!silent) {\n while (this._pending) {\n options = this._pending;\n this._pending = false;\n this.trigger('change', this, options);\n }\n }\n this._pending = false;\n this._changing = false;\n return this;\n },\n\n // Remove an attribute from the model, firing `\"change\"`. `unset` is a noop\n // if the attribute doesn't exist.\n unset: function(attr, options) {\n return this.set(attr, void 0, _.extend({}, options, {unset: true}));\n },\n\n // Clear all attributes on the model, firing `\"change\"`.\n clear: function(options) {\n var attrs = {};\n for (var key in this.attributes) attrs[key] = void 0;\n return this.set(attrs, _.extend({}, options, {unset: true}));\n },\n\n // Determine if the model has changed since the last `\"change\"` event.\n // If you specify an attribute name, determine if that attribute has changed.\n hasChanged: function(attr) {\n if (attr == null) return !_.isEmpty(this.changed);\n return _.has(this.changed, attr);\n },\n\n // Return an object containing all the attributes that have changed, or\n // false if there are no changed attributes. Useful for determining what\n // parts of a view need to be updated and/or what attributes need to be\n // persisted to the server. Unset attributes will be set to undefined.\n // You can also pass an attributes object to diff against the model,\n // determining if there *would be* a change.\n changedAttributes: function(diff) {\n if (!diff) return this.hasChanged() ? _.clone(this.changed) : false;\n var old = this._changing ? this._previousAttributes : this.attributes;\n var changed = {};\n for (var attr in diff) {\n var val = diff[attr];\n if (_.isEqual(old[attr], val)) continue;\n changed[attr] = val;\n }\n return _.size(changed) ? changed : false;\n },\n\n // Get the previous value of an attribute, recorded at the time the last\n // `\"change\"` event was fired.\n previous: function(attr) {\n if (attr == null || !this._previousAttributes) return null;\n return this._previousAttributes[attr];\n },\n\n // Get all of the attributes of the model at the time of the previous\n // `\"change\"` event.\n previousAttributes: function() {\n return _.clone(this._previousAttributes);\n },\n\n // Fetch the model from the server, merging the response with the model's\n // local attributes. Any changed attributes will trigger a \"change\" event.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var model = this;\n var success = options.success;\n options.success = function(resp) {\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (!model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Set a hash of model attributes, and sync the model to the server.\n // If the server returns an attributes hash that differs, the model's\n // state will be `set` again.\n save: function(key, val, options) {\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (key == null || typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options = _.extend({validate: true, parse: true}, options);\n var wait = options.wait;\n\n // If we're not waiting and attributes exist, save acts as\n // `set(attr).save(null, opts)` with validation. Otherwise, check if\n // the model will be valid when the attributes, if any, are set.\n if (attrs && !wait) {\n if (!this.set(attrs, options)) return false;\n } else {\n if (!this._validate(attrs, options)) return false;\n }\n\n // After a successful server-side save, the client is (optionally)\n // updated with the server-side state.\n var model = this;\n var success = options.success;\n var attributes = this.attributes;\n options.success = function(resp) {\n // Ensure attributes are restored during synchronous saves.\n model.attributes = attributes;\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (wait) serverAttrs = _.extend({}, attrs, serverAttrs);\n if (serverAttrs && !model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n\n // Set temporary attributes if `{wait: true}` to properly find new ids.\n if (attrs && wait) this.attributes = _.extend({}, attributes, attrs);\n\n var method = this.isNew() ? 'create' : (options.patch ? 'patch' : 'update');\n if (method === 'patch' && !options.attrs) options.attrs = attrs;\n var xhr = this.sync(method, this, options);\n\n // Restore attributes.\n this.attributes = attributes;\n\n return xhr;\n },\n\n // Destroy this model on the server if it was already persisted.\n // Optimistically removes the model from its collection, if it has one.\n // If `wait: true` is passed, waits for the server to respond before removal.\n destroy: function(options) {\n options = options ? _.clone(options) : {};\n var model = this;\n var success = options.success;\n var wait = options.wait;\n\n var destroy = function() {\n model.stopListening();\n model.trigger('destroy', model, model.collection, options);\n };\n\n options.success = function(resp) {\n if (wait) destroy();\n if (success) success.call(options.context, model, resp, options);\n if (!model.isNew()) model.trigger('sync', model, resp, options);\n };\n\n var xhr = false;\n if (this.isNew()) {\n _.defer(options.success);\n } else {\n wrapError(this, options);\n xhr = this.sync('delete', this, options);\n }\n if (!wait) destroy();\n return xhr;\n },\n\n // Default URL for the model's representation on the server -- if you're\n // using Backbone's restful methods, override this to change the endpoint\n // that will be called.\n url: function() {\n var base =\n _.result(this, 'urlRoot') ||\n _.result(this.collection, 'url') ||\n urlError();\n if (this.isNew()) return base;\n var id = this.get(this.idAttribute);\n return base.replace(/[^\\/]$/, '$&/') + encodeURIComponent(id);\n },\n\n // **parse** converts a response into the hash of attributes to be `set` on\n // the model. The default implementation is just to pass the response along.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new model with identical attributes to this one.\n clone: function() {\n return new this.constructor(this.attributes);\n },\n\n // A model is new if it has never been saved to the server, and lacks an id.\n isNew: function() {\n return !this.has(this.idAttribute);\n },\n\n // Check if the model is currently in a valid state.\n isValid: function(options) {\n return this._validate({}, _.defaults({validate: true}, options));\n },\n\n // Run validation against the next complete set of model attributes,\n // returning `true` if all is well. Otherwise, fire an `\"invalid\"` event.\n _validate: function(attrs, options) {\n if (!options.validate || !this.validate) return true;\n attrs = _.extend({}, this.attributes, attrs);\n var error = this.validationError = this.validate(attrs, options) || null;\n if (!error) return true;\n this.trigger('invalid', this, error, _.extend(options, {validationError: error}));\n return false;\n }\n\n });\n\n // Underscore methods that we want to implement on the Model, mapped to the\n // number of arguments they take.\n var modelMethods = { keys: 1, values: 1, pairs: 1, invert: 1, pick: 0,\n omit: 0, chain: 1, isEmpty: 1 };\n\n // Mix in each Underscore method as a proxy to `Model#attributes`.\n addUnderscoreMethods(Model, modelMethods, 'attributes');\n\n // Backbone.Collection\n // -------------------\n\n // If models tend to represent a single row of data, a Backbone Collection is\n // more analogous to a table full of data ... or a small slice or page of that\n // table, or a collection of rows that belong together for a particular reason\n // -- all of the messages in this particular folder, all of the documents\n // belonging to this particular author, and so on. Collections maintain\n // indexes of their models, both in order, and for lookup by `id`.\n\n // Create a new **Collection**, perhaps to contain a specific type of `model`.\n // If a `comparator` is specified, the Collection will maintain\n // its models in sort order, as they're added and removed.\n var Collection = Backbone.Collection = function(models, options) {\n options || (options = {});\n if (options.model) this.model = options.model;\n if (options.comparator !== void 0) this.comparator = options.comparator;\n this._reset();\n this.initialize.apply(this, arguments);\n if (models) this.reset(models, _.extend({silent: true}, options));\n };\n\n // Default options for `Collection#set`.\n var setOptions = {add: true, remove: true, merge: true};\n var addOptions = {add: true, remove: false};\n\n // Splices `insert` into `array` at index `at`.\n var splice = function(array, insert, at) {\n at = Math.min(Math.max(at, 0), array.length);\n var tail = Array(array.length - at);\n var length = insert.length;\n for (var i = 0; i < tail.length; i++) tail[i] = array[i + at];\n for (i = 0; i < length; i++) array[i + at] = insert[i];\n for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i];\n };\n\n // Define the Collection's inheritable methods.\n _.extend(Collection.prototype, Events, {\n\n // The default model for a collection is just a **Backbone.Model**.\n // This should be overridden in most cases.\n model: Model,\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // The JSON representation of a Collection is an array of the\n // models' attributes.\n toJSON: function(options) {\n return this.map(function(model) { return model.toJSON(options); });\n },\n\n // Proxy `Backbone.sync` by default.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Add a model, or list of models to the set. `models` may be Backbone\n // Models or raw JavaScript objects to be converted to Models, or any\n // combination of the two.\n add: function(models, options) {\n return this.set(models, _.extend({merge: false}, options, addOptions));\n },\n\n // Remove a model, or a list of models from the set.\n remove: function(models, options) {\n options = _.extend({}, options);\n var singular = !_.isArray(models);\n models = singular ? [models] : _.clone(models);\n var removed = this._removeModels(models, options);\n if (!options.silent && removed) this.trigger('update', this, options);\n return singular ? removed[0] : removed;\n },\n\n // Update a collection by `set`-ing a new list of models, adding new ones,\n // removing models that are no longer present, and merging models that\n // already exist in the collection, as necessary. Similar to **Model#set**,\n // the core operation for updating the data contained by the collection.\n set: function(models, options) {\n if (models == null) return;\n\n options = _.defaults({}, options, setOptions);\n if (options.parse && !this._isModel(models)) models = this.parse(models, options);\n\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n\n var at = options.at;\n if (at != null) at = +at;\n if (at < 0) at += this.length + 1;\n\n var set = [];\n var toAdd = [];\n var toRemove = [];\n var modelMap = {};\n\n var add = options.add;\n var merge = options.merge;\n var remove = options.remove;\n\n var sort = false;\n var sortable = this.comparator && (at == null) && options.sort !== false;\n var sortAttr = _.isString(this.comparator) ? this.comparator : null;\n\n // Turn bare objects into model references, and prevent invalid models\n // from being added.\n var model;\n for (var i = 0; i < models.length; i++) {\n model = models[i];\n\n // If a duplicate is found, prevent it from being added and\n // optionally merge it into the existing model.\n var existing = this.get(model);\n if (existing) {\n if (merge && model !== existing) {\n var attrs = this._isModel(model) ? model.attributes : model;\n if (options.parse) attrs = existing.parse(attrs, options);\n existing.set(attrs, options);\n if (sortable && !sort) sort = existing.hasChanged(sortAttr);\n }\n if (!modelMap[existing.cid]) {\n modelMap[existing.cid] = true;\n set.push(existing);\n }\n models[i] = existing;\n\n // If this is a new, valid model, push it to the `toAdd` list.\n } else if (add) {\n model = models[i] = this._prepareModel(model, options);\n if (model) {\n toAdd.push(model);\n this._addReference(model, options);\n modelMap[model.cid] = true;\n set.push(model);\n }\n }\n }\n\n // Remove stale models.\n if (remove) {\n for (i = 0; i < this.length; i++) {\n model = this.models[i];\n if (!modelMap[model.cid]) toRemove.push(model);\n }\n if (toRemove.length) this._removeModels(toRemove, options);\n }\n\n // See if sorting is needed, update `length` and splice in new models.\n var orderChanged = false;\n var replace = !sortable && add && remove;\n if (set.length && replace) {\n orderChanged = this.length != set.length || _.some(this.models, function(model, index) {\n return model !== set[index];\n });\n this.models.length = 0;\n splice(this.models, set, 0);\n this.length = this.models.length;\n } else if (toAdd.length) {\n if (sortable) sort = true;\n splice(this.models, toAdd, at == null ? this.length : at);\n this.length = this.models.length;\n }\n\n // Silently sort the collection if appropriate.\n if (sort) this.sort({silent: true});\n\n // Unless silenced, it's time to fire all appropriate add/sort events.\n if (!options.silent) {\n for (i = 0; i < toAdd.length; i++) {\n if (at != null) options.index = at + i;\n model = toAdd[i];\n model.trigger('add', model, this, options);\n }\n if (sort || orderChanged) this.trigger('sort', this, options);\n if (toAdd.length || toRemove.length) this.trigger('update', this, options);\n }\n\n // Return the added (or merged) model (or models).\n return singular ? models[0] : models;\n },\n\n // When you have more items than you want to add or remove individually,\n // you can reset the entire set with a new list of models, without firing\n // any granular `add` or `remove` events. Fires `reset` when finished.\n // Useful for bulk operations and optimizations.\n reset: function(models, options) {\n options = options ? _.clone(options) : {};\n for (var i = 0; i < this.models.length; i++) {\n this._removeReference(this.models[i], options);\n }\n options.previousModels = this.models;\n this._reset();\n models = this.add(models, _.extend({silent: true}, options));\n if (!options.silent) this.trigger('reset', this, options);\n return models;\n },\n\n // Add a model to the end of the collection.\n push: function(model, options) {\n return this.add(model, _.extend({at: this.length}, options));\n },\n\n // Remove a model from the end of the collection.\n pop: function(options) {\n var model = this.at(this.length - 1);\n return this.remove(model, options);\n },\n\n // Add a model to the beginning of the collection.\n unshift: function(model, options) {\n return this.add(model, _.extend({at: 0}, options));\n },\n\n // Remove a model from the beginning of the collection.\n shift: function(options) {\n var model = this.at(0);\n return this.remove(model, options);\n },\n\n // Slice out a sub-array of models from the collection.\n slice: function() {\n return slice.apply(this.models, arguments);\n },\n\n // Get a model from the set by id.\n get: function(obj) {\n if (obj == null) return void 0;\n var id = this.modelId(this._isModel(obj) ? obj.attributes : obj);\n return this._byId[obj] || this._byId[id] || this._byId[obj.cid];\n },\n\n // Get the model at the given index.\n at: function(index) {\n if (index < 0) index += this.length;\n return this.models[index];\n },\n\n // Return models with matching attributes. Useful for simple cases of\n // `filter`.\n where: function(attrs, first) {\n return this[first ? 'find' : 'filter'](attrs);\n },\n\n // Return the first model with matching attributes. Useful for simple cases\n // of `find`.\n findWhere: function(attrs) {\n return this.where(attrs, true);\n },\n\n // Force the collection to re-sort itself. You don't need to call this under\n // normal circumstances, as the set will maintain sort order as each item\n // is added.\n sort: function(options) {\n var comparator = this.comparator;\n if (!comparator) throw new Error('Cannot sort a set without a comparator');\n options || (options = {});\n\n var length = comparator.length;\n if (_.isFunction(comparator)) comparator = _.bind(comparator, this);\n\n // Run sort based on type of `comparator`.\n if (length === 1 || _.isString(comparator)) {\n this.models = this.sortBy(comparator);\n } else {\n this.models.sort(comparator);\n }\n if (!options.silent) this.trigger('sort', this, options);\n return this;\n },\n\n // Pluck an attribute from each model in the collection.\n pluck: function(attr) {\n return _.invoke(this.models, 'get', attr);\n },\n\n // Fetch the default set of models for this collection, resetting the\n // collection when they arrive. If `reset: true` is passed, the response\n // data will be passed through the `reset` method instead of `set`.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var success = options.success;\n var collection = this;\n options.success = function(resp) {\n var method = options.reset ? 'reset' : 'set';\n collection[method](resp, options);\n if (success) success.call(options.context, collection, resp, options);\n collection.trigger('sync', collection, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Create a new instance of a model in this collection. Add the model to the\n // collection immediately, unless `wait: true` is passed, in which case we\n // wait for the server to agree.\n create: function(model, options) {\n options = options ? _.clone(options) : {};\n var wait = options.wait;\n model = this._prepareModel(model, options);\n if (!model) return false;\n if (!wait) this.add(model, options);\n var collection = this;\n var success = options.success;\n options.success = function(model, resp, callbackOpts) {\n if (wait) collection.add(model, callbackOpts);\n if (success) success.call(callbackOpts.context, model, resp, callbackOpts);\n };\n model.save(null, options);\n return model;\n },\n\n // **parse** converts a response into a list of models to be added to the\n // collection. The default implementation is just to pass it through.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new collection with an identical list of models as this one.\n clone: function() {\n return new this.constructor(this.models, {\n model: this.model,\n comparator: this.comparator\n });\n },\n\n // Define how to uniquely identify models in the collection.\n modelId: function (attrs) {\n return attrs[this.model.prototype.idAttribute || 'id'];\n },\n\n // Private method to reset all internal state. Called when the collection\n // is first initialized or reset.\n _reset: function() {\n this.length = 0;\n this.models = [];\n this._byId = {};\n },\n\n // Prepare a hash of attributes (or other model) to be added to this\n // collection.\n _prepareModel: function(attrs, options) {\n if (this._isModel(attrs)) {\n if (!attrs.collection) attrs.collection = this;\n return attrs;\n }\n options = options ? _.clone(options) : {};\n options.collection = this;\n var model = new this.model(attrs, options);\n if (!model.validationError) return model;\n this.trigger('invalid', this, model.validationError, options);\n return false;\n },\n\n // Internal method called by both remove and set.\n _removeModels: function(models, options) {\n var removed = [];\n for (var i = 0; i < models.length; i++) {\n var model = this.get(models[i]);\n if (!model) continue;\n\n var index = this.indexOf(model);\n this.models.splice(index, 1);\n this.length--;\n\n if (!options.silent) {\n options.index = index;\n model.trigger('remove', model, this, options);\n }\n\n removed.push(model);\n this._removeReference(model, options);\n }\n return removed.length ? removed : false;\n },\n\n // Method for checking whether an object should be considered a model for\n // the purposes of adding to the collection.\n _isModel: function (model) {\n return model instanceof Model;\n },\n\n // Internal method to create a model's ties to a collection.\n _addReference: function(model, options) {\n this._byId[model.cid] = model;\n var id = this.modelId(model.attributes);\n if (id != null) this._byId[id] = model;\n model.on('all', this._onModelEvent, this);\n },\n\n // Internal method to sever a model's ties to a collection.\n _removeReference: function(model, options) {\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes);\n if (id != null) delete this._byId[id];\n if (this === model.collection) delete model.collection;\n model.off('all', this._onModelEvent, this);\n },\n\n // Internal method called every time a model in the set fires an event.\n // Sets need to update their indexes when models change ids. All other\n // events simply proxy through. \"add\" and \"remove\" events that originate\n // in other collections are ignored.\n _onModelEvent: function(event, model, collection, options) {\n if ((event === 'add' || event === 'remove') && collection !== this) return;\n if (event === 'destroy') this.remove(model, options);\n if (event === 'change') {\n var prevId = this.modelId(model.previousAttributes());\n var id = this.modelId(model.attributes);\n if (prevId !== id) {\n if (prevId != null) delete this._byId[prevId];\n if (id != null) this._byId[id] = model;\n }\n }\n this.trigger.apply(this, arguments);\n }\n\n });\n\n // Underscore methods that we want to implement on the Collection.\n // 90% of the core usefulness of Backbone Collections is actually implemented\n // right here:\n var collectionMethods = { forEach: 3, each: 3, map: 3, collect: 3, reduce: 4,\n foldl: 4, inject: 4, reduceRight: 4, foldr: 4, find: 3, detect: 3, filter: 3,\n select: 3, reject: 3, every: 3, all: 3, some: 3, any: 3, include: 3, includes: 3,\n contains: 3, invoke: 0, max: 3, min: 3, toArray: 1, size: 1, first: 3,\n head: 3, take: 3, initial: 3, rest: 3, tail: 3, drop: 3, last: 3,\n without: 0, difference: 0, indexOf: 3, shuffle: 1, lastIndexOf: 3,\n isEmpty: 1, chain: 1, sample: 3, partition: 3, groupBy: 3, countBy: 3,\n sortBy: 3, indexBy: 3};\n\n // Mix in each Underscore method as a proxy to `Collection#models`.\n addUnderscoreMethods(Collection, collectionMethods, 'models');\n\n // Backbone.View\n // -------------\n\n // Backbone Views are almost more convention than they are actual code. A View\n // is simply a JavaScript object that represents a logical chunk of UI in the\n // DOM. This might be a single item, an entire list, a sidebar or panel, or\n // even the surrounding frame which wraps your whole app. Defining a chunk of\n // UI as a **View** allows you to define your DOM events declaratively, without\n // having to worry about render order ... and makes it easy for the view to\n // react to specific changes in the state of your models.\n\n // Creating a Backbone.View creates its initial element outside of the DOM,\n // if an existing element is not provided...\n var View = Backbone.View = function(options) {\n this.cid = _.uniqueId('view');\n _.extend(this, _.pick(options, viewOptions));\n this._ensureElement();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regex to split keys for `delegate`.\n var delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n // List of view options to be set as properties.\n var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events'];\n\n // Set up all inheritable **Backbone.View** properties and methods.\n _.extend(View.prototype, Events, {\n\n // The default `tagName` of a View's element is `\"div\"`.\n tagName: 'div',\n\n // jQuery delegate for element lookup, scoped to DOM elements within the\n // current view. This should be preferred to global lookups where possible.\n $: function(selector) {\n return this.$el.find(selector);\n },\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // **render** is the core function that your view should override, in order\n // to populate its element (`this.el`), with the appropriate HTML. The\n // convention is for **render** to always return `this`.\n render: function() {\n return this;\n },\n\n // Remove this view by taking the element out of the DOM, and removing any\n // applicable Backbone.Events listeners.\n remove: function() {\n this._removeElement();\n this.stopListening();\n return this;\n },\n\n // Remove this view's element from the document and all event listeners\n // attached to it. Exposed for subclasses using an alternative DOM\n // manipulation API.\n _removeElement: function() {\n this.$el.remove();\n },\n\n // Change the view's element (`this.el` property) and re-delegate the\n // view's events on the new element.\n setElement: function(element) {\n this.undelegateEvents();\n this._setElement(element);\n this.delegateEvents();\n return this;\n },\n\n // Creates the `this.el` and `this.$el` references for this view using the\n // given `el`. `el` can be a CSS selector or an HTML string, a jQuery\n // context or an element. Subclasses can override this to utilize an\n // alternative DOM manipulation API and are only required to set the\n // `this.el` property.\n _setElement: function(el) {\n this.$el = el instanceof Backbone.$ ? el : Backbone.$(el);\n this.el = this.$el[0];\n },\n\n // Set callbacks, where `this.events` is a hash of\n //\n // *{\"event selector\": \"callback\"}*\n //\n // {\n // 'mousedown .title': 'edit',\n // 'click .button': 'save',\n // 'click .open': function(e) { ... }\n // }\n //\n // pairs. Callbacks will be bound to the view, with `this` set properly.\n // Uses event delegation for efficiency.\n // Omitting the selector binds the event to `this.el`.\n delegateEvents: function(events) {\n events || (events = _.result(this, 'events'));\n if (!events) return this;\n this.undelegateEvents();\n for (var key in events) {\n var method = events[key];\n if (!_.isFunction(method)) method = this[method];\n if (!method) continue;\n var match = key.match(delegateEventSplitter);\n this.delegate(match[1], match[2], _.bind(method, this));\n }\n return this;\n },\n\n // Add a single event listener to the view's element (or a child element\n // using `selector`). This only works for delegate-able events: not `focus`,\n // `blur`, and not `change`, `submit`, and `reset` in Internet Explorer.\n delegate: function(eventName, selector, listener) {\n this.$el.on(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Clears all callbacks previously bound to the view by `delegateEvents`.\n // You usually don't need to use this, but may wish to if you have multiple\n // Backbone views attached to the same DOM element.\n undelegateEvents: function() {\n if (this.$el) this.$el.off('.delegateEvents' + this.cid);\n return this;\n },\n\n // A finer-grained `undelegateEvents` for removing a single delegated event.\n // `selector` and `listener` are both optional.\n undelegate: function(eventName, selector, listener) {\n this.$el.off(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Produces a DOM element to be assigned to your view. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _createElement: function(tagName) {\n return document.createElement(tagName);\n },\n\n // Ensure that the View has a DOM element to render into.\n // If `this.el` is a string, pass it through `$()`, take the first\n // matching element, and re-assign it to `el`. Otherwise, create\n // an element from the `id`, `className` and `tagName` properties.\n _ensureElement: function() {\n if (!this.el) {\n var attrs = _.extend({}, _.result(this, 'attributes'));\n if (this.id) attrs.id = _.result(this, 'id');\n if (this.className) attrs['class'] = _.result(this, 'className');\n this.setElement(this._createElement(_.result(this, 'tagName')));\n this._setAttributes(attrs);\n } else {\n this.setElement(_.result(this, 'el'));\n }\n },\n\n // Set attributes from a hash on this view's element. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _setAttributes: function(attributes) {\n this.$el.attr(attributes);\n }\n\n });\n\n // Backbone.sync\n // -------------\n\n // Override this function to change the manner in which Backbone persists\n // models to the server. You will be passed the type of request, and the\n // model in question. By default, makes a RESTful Ajax request\n // to the model's `url()`. Some possible customizations could be:\n //\n // * Use `setTimeout` to batch rapid-fire updates into a single request.\n // * Send up the models as XML instead of JSON.\n // * Persist models via WebSockets instead of Ajax.\n //\n // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests\n // as `POST`, with a `_method` parameter containing the true HTTP method,\n // as well as all requests with the body as `application/x-www-form-urlencoded`\n // instead of `application/json` with the model in a param named `model`.\n // Useful when interfacing with server-side languages like **PHP** that make\n // it difficult to read the body of `PUT` requests.\n Backbone.sync = function(method, model, options) {\n var type = methodMap[method];\n\n // Default options, unless specified.\n _.defaults(options || (options = {}), {\n emulateHTTP: Backbone.emulateHTTP,\n emulateJSON: Backbone.emulateJSON\n });\n\n // Default JSON-request options.\n var params = {type: type, dataType: 'json'};\n\n // Ensure that we have a URL.\n if (!options.url) {\n params.url = _.result(model, 'url') || urlError();\n }\n\n // Ensure that we have the appropriate request data.\n if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n params.contentType = 'application/json';\n params.data = JSON.stringify(options.attrs || model.toJSON(options));\n }\n\n // For older servers, emulate JSON by encoding the request into an HTML-form.\n if (options.emulateJSON) {\n params.contentType = 'application/x-www-form-urlencoded';\n params.data = params.data ? {model: params.data} : {};\n }\n\n // For older servers, emulate HTTP by mimicking the HTTP method with `_method`\n // And an `X-HTTP-Method-Override` header.\n if (options.emulateHTTP && (type === 'PUT' || type === 'DELETE' || type === 'PATCH')) {\n params.type = 'POST';\n if (options.emulateJSON) params.data._method = type;\n var beforeSend = options.beforeSend;\n options.beforeSend = function(xhr) {\n xhr.setRequestHeader('X-HTTP-Method-Override', type);\n if (beforeSend) return beforeSend.apply(this, arguments);\n };\n }\n\n // Don't process data on a non-GET request.\n if (params.type !== 'GET' && !options.emulateJSON) {\n params.processData = false;\n }\n\n // Pass along `textStatus` and `errorThrown` from jQuery.\n var error = options.error;\n options.error = function(xhr, textStatus, errorThrown) {\n options.textStatus = textStatus;\n options.errorThrown = errorThrown;\n if (error) error.call(options.context, xhr, textStatus, errorThrown);\n };\n\n // Make the request, allowing the user to override any Ajax options.\n var xhr = options.xhr = Backbone.ajax(_.extend(params, options));\n model.trigger('request', model, xhr, options);\n return xhr;\n };\n\n // Map from CRUD to HTTP for our default `Backbone.sync` implementation.\n var methodMap = {\n 'create': 'POST',\n 'update': 'PUT',\n 'patch': 'PATCH',\n 'delete': 'DELETE',\n 'read': 'GET'\n };\n\n // Set the default implementation of `Backbone.ajax` to proxy through to `$`.\n // Override this if you'd like to use a different library.\n Backbone.ajax = function() {\n return Backbone.$.ajax.apply(Backbone.$, arguments);\n };\n\n // Backbone.Router\n // ---------------\n\n // Routers map faux-URLs to actions, and fire events when routes are\n // matched. Creating a new one sets its `routes` hash, if not set statically.\n var Router = Backbone.Router = function(options) {\n options || (options = {});\n if (options.routes) this.routes = options.routes;\n this._bindRoutes();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regular expressions for matching named param parts and splatted\n // parts of route strings.\n var optionalParam = /\\((.*?)\\)/g;\n var namedParam = /(\\(\\?)?:\\w+/g;\n var splatParam = /\\*\\w+/g;\n var escapeRegExp = /[\\-{}\\[\\]+?.,\\\\\\^$|#\\s]/g;\n\n // Set up all inheritable **Backbone.Router** properties and methods.\n _.extend(Router.prototype, Events, {\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Manually bind a single named route to a callback. For example:\n //\n // this.route('search/:query/p:num', 'search', function(query, num) {\n // ...\n // });\n //\n route: function(route, name, callback) {\n if (!_.isRegExp(route)) route = this._routeToRegExp(route);\n if (_.isFunction(name)) {\n callback = name;\n name = '';\n }\n if (!callback) callback = this[name];\n var router = this;\n Backbone.history.route(route, function(fragment) {\n var args = router._extractParameters(route, fragment);\n if (router.execute(callback, args, name) !== false) {\n router.trigger.apply(router, ['route:' + name].concat(args));\n router.trigger('route', name, args);\n Backbone.history.trigger('route', router, name, args);\n }\n });\n return this;\n },\n\n // Execute a route handler with the provided parameters. This is an\n // excellent place to do pre-route setup or post-route cleanup.\n execute: function(callback, args, name) {\n if (callback) callback.apply(this, args);\n },\n\n // Simple proxy to `Backbone.history` to save a fragment into the history.\n navigate: function(fragment, options) {\n Backbone.history.navigate(fragment, options);\n return this;\n },\n\n // Bind all defined routes to `Backbone.history`. We have to reverse the\n // order of the routes here to support behavior where the most general\n // routes can be defined at the bottom of the route map.\n _bindRoutes: function() {\n if (!this.routes) return;\n this.routes = _.result(this, 'routes');\n var route, routes = _.keys(this.routes);\n while ((route = routes.pop()) != null) {\n this.route(route, this.routes[route]);\n }\n },\n\n // Convert a route string into a regular expression, suitable for matching\n // against the current location hash.\n _routeToRegExp: function(route) {\n route = route.replace(escapeRegExp, '\\\\$&')\n .replace(optionalParam, '(?:$1)?')\n .replace(namedParam, function(match, optional) {\n return optional ? match : '([^/?]+)';\n })\n .replace(splatParam, '([^?]*?)');\n return new RegExp('^' + route + '(?:\\\\?([\\\\s\\\\S]*))?$');\n },\n\n // Given a route, and a URL fragment that it matches, return the array of\n // extracted decoded parameters. Empty or unmatched parameters will be\n // treated as `null` to normalize cross-browser behavior.\n _extractParameters: function(route, fragment) {\n var params = route.exec(fragment).slice(1);\n return _.map(params, function(param, i) {\n // Don't decode the search params.\n if (i === params.length - 1) return param || null;\n return param ? decodeURIComponent(param) : null;\n });\n }\n\n });\n\n // Backbone.History\n // ----------------\n\n // Handles cross-browser history management, based on either\n // [pushState](http://diveintohtml5.info/history.html) and real URLs, or\n // [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange)\n // and URL fragments. If the browser supports neither (old IE, natch),\n // falls back to polling.\n var History = Backbone.History = function() {\n this.handlers = [];\n this.checkUrl = _.bind(this.checkUrl, this);\n\n // Ensure that `History` can be used outside of the browser.\n if (typeof window !== 'undefined') {\n this.location = window.location;\n this.history = window.history;\n }\n };\n\n // Cached regex for stripping a leading hash/slash and trailing space.\n var routeStripper = /^[#\\/]|\\s+$/g;\n\n // Cached regex for stripping leading and trailing slashes.\n var rootStripper = /^\\/+|\\/+$/g;\n\n // Cached regex for stripping urls of hash.\n var pathStripper = /#.*$/;\n\n // Has the history handling already been started?\n History.started = false;\n\n // Set up all inheritable **Backbone.History** properties and methods.\n _.extend(History.prototype, Events, {\n\n // The default interval to poll for hash changes, if necessary, is\n // twenty times a second.\n interval: 50,\n\n // Are we at the app root?\n atRoot: function() {\n var path = this.location.pathname.replace(/[^\\/]$/, '$&/');\n return path === this.root && !this.getSearch();\n },\n\n // Does the pathname match the root?\n matchRoot: function() {\n var path = this.decodeFragment(this.location.pathname);\n var root = path.slice(0, this.root.length - 1) + '/';\n return root === this.root;\n },\n\n // Unicode characters in `location.pathname` are percent encoded so they're\n // decoded for comparison. `%25` should not be decoded since it may be part\n // of an encoded parameter.\n decodeFragment: function(fragment) {\n return decodeURI(fragment.replace(/%25/g, '%2525'));\n },\n\n // In IE6, the hash fragment and search params are incorrect if the\n // fragment contains `?`.\n getSearch: function() {\n var match = this.location.href.replace(/#.*/, '').match(/\\?.+/);\n return match ? match[0] : '';\n },\n\n // Gets the true hash value. Cannot use location.hash directly due to bug\n // in Firefox where location.hash will always be decoded.\n getHash: function(window) {\n var match = (window || this).location.href.match(/#(.*)$/);\n return match ? match[1] : '';\n },\n\n // Get the pathname and search params, without the root.\n getPath: function() {\n var path = this.decodeFragment(\n this.location.pathname + this.getSearch()\n ).slice(this.root.length - 1);\n return path.charAt(0) === '/' ? path.slice(1) : path;\n },\n\n // Get the cross-browser normalized URL fragment from the path or hash.\n getFragment: function(fragment) {\n if (fragment == null) {\n if (this._usePushState || !this._wantsHashChange) {\n fragment = this.getPath();\n } else {\n fragment = this.getHash();\n }\n }\n return fragment.replace(routeStripper, '');\n },\n\n // Start the hash change handling, returning `true` if the current URL matches\n // an existing route, and `false` otherwise.\n start: function(options) {\n if (History.started) throw new Error('Backbone.history has already been started');\n History.started = true;\n\n // Figure out the initial configuration. Do we need an iframe?\n // Is pushState desired ... is it available?\n this.options = _.extend({root: '/'}, this.options, options);\n this.root = this.options.root;\n this._wantsHashChange = this.options.hashChange !== false;\n this._hasHashChange = 'onhashchange' in window && (document.documentMode === void 0 || document.documentMode > 7);\n this._useHashChange = this._wantsHashChange && this._hasHashChange;\n this._wantsPushState = !!this.options.pushState;\n this._hasPushState = !!(this.history && this.history.pushState);\n this._usePushState = this._wantsPushState && this._hasPushState;\n this.fragment = this.getFragment();\n\n // Normalize root to always include a leading and trailing slash.\n this.root = ('/' + this.root + '/').replace(rootStripper, '/');\n\n // Transition from hashChange to pushState or vice versa if both are\n // requested.\n if (this._wantsHashChange && this._wantsPushState) {\n\n // If we've started off with a route from a `pushState`-enabled\n // browser, but we're currently in a browser that doesn't support it...\n if (!this._hasPushState && !this.atRoot()) {\n var root = this.root.slice(0, -1) || '/';\n this.location.replace(root + '#' + this.getPath());\n // Return immediately as browser will do redirect to new url\n return true;\n\n // Or if we've started out with a hash-based route, but we're currently\n // in a browser where it could be `pushState`-based instead...\n } else if (this._hasPushState && this.atRoot()) {\n this.navigate(this.getHash(), {replace: true});\n }\n\n }\n\n // Proxy an iframe to handle location events if the browser doesn't\n // support the `hashchange` event, HTML5 history, or the user wants\n // `hashChange` but not `pushState`.\n if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) {\n this.iframe = document.createElement('iframe');\n this.iframe.src = 'javascript:0';\n this.iframe.style.display = 'none';\n this.iframe.tabIndex = -1;\n var body = document.body;\n // Using `appendChild` will throw on IE < 9 if the document is not ready.\n var iWindow = body.insertBefore(this.iframe, body.firstChild).contentWindow;\n iWindow.document.open();\n iWindow.document.close();\n iWindow.location.hash = '#' + this.fragment;\n }\n\n // Add a cross-platform `addEventListener` shim for older browsers.\n var addEventListener = window.addEventListener || function (eventName, listener) {\n return attachEvent('on' + eventName, listener);\n };\n\n // Depending on whether we're using pushState or hashes, and whether\n // 'onhashchange' is supported, determine how we check the URL state.\n if (this._usePushState) {\n addEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n addEventListener('hashchange', this.checkUrl, false);\n } else if (this._wantsHashChange) {\n this._checkUrlInterval = setInterval(this.checkUrl, this.interval);\n }\n\n if (!this.options.silent) return this.loadUrl();\n },\n\n // Disable Backbone.history, perhaps temporarily. Not useful in a real app,\n // but possibly useful for unit testing Routers.\n stop: function() {\n // Add a cross-platform `removeEventListener` shim for older browsers.\n var removeEventListener = window.removeEventListener || function (eventName, listener) {\n return detachEvent('on' + eventName, listener);\n };\n\n // Remove window listeners.\n if (this._usePushState) {\n removeEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n removeEventListener('hashchange', this.checkUrl, false);\n }\n\n // Clean up the iframe if necessary.\n if (this.iframe) {\n document.body.removeChild(this.iframe);\n this.iframe = null;\n }\n\n // Some environments will throw when clearing an undefined interval.\n if (this._checkUrlInterval) clearInterval(this._checkUrlInterval);\n History.started = false;\n },\n\n // Add a route to be tested when the fragment changes. Routes added later\n // may override previous routes.\n route: function(route, callback) {\n this.handlers.unshift({route: route, callback: callback});\n },\n\n // Checks the current URL to see if it has changed, and if it has,\n // calls `loadUrl`, normalizing across the hidden iframe.\n checkUrl: function(e) {\n var current = this.getFragment();\n\n // If the user pressed the back button, the iframe's hash will have\n // changed and we should use that for comparison.\n if (current === this.fragment && this.iframe) {\n current = this.getHash(this.iframe.contentWindow);\n }\n\n if (current === this.fragment) return false;\n if (this.iframe) this.navigate(current);\n this.loadUrl();\n },\n\n // Attempt to load the current URL fragment. If a route succeeds with a\n // match, returns `true`. If no defined routes matches the fragment,\n // returns `false`.\n loadUrl: function(fragment) {\n // If the root doesn't match, no routes can match either.\n if (!this.matchRoot()) return false;\n fragment = this.fragment = this.getFragment(fragment);\n return _.some(this.handlers, function(handler) {\n if (handler.route.test(fragment)) {\n handler.callback(fragment);\n return true;\n }\n });\n },\n\n // Save a fragment into the hash history, or replace the URL state if the\n // 'replace' option is passed. You are responsible for properly URL-encoding\n // the fragment in advance.\n //\n // The options object can contain `trigger: true` if you wish to have the\n // route callback be fired (not usually desirable), or `replace: true`, if\n // you wish to modify the current URL without adding an entry to the history.\n navigate: function(fragment, options) {\n if (!History.started) return false;\n if (!options || options === true) options = {trigger: !!options};\n\n // Normalize the fragment.\n fragment = this.getFragment(fragment || '');\n\n // Don't include a trailing slash on the root.\n var root = this.root;\n if (fragment === '' || fragment.charAt(0) === '?') {\n root = root.slice(0, -1) || '/';\n }\n var url = root + fragment;\n\n // Strip the hash and decode for matching.\n fragment = this.decodeFragment(fragment.replace(pathStripper, ''));\n\n if (this.fragment === fragment) return;\n this.fragment = fragment;\n\n // If pushState is available, we use it to set the fragment as a real URL.\n if (this._usePushState) {\n this.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, url);\n\n // If hash changes haven't been explicitly disabled, update the hash\n // fragment to store history.\n } else if (this._wantsHashChange) {\n this._updateHash(this.location, fragment, options.replace);\n if (this.iframe && (fragment !== this.getHash(this.iframe.contentWindow))) {\n var iWindow = this.iframe.contentWindow;\n\n // Opening and closing the iframe tricks IE7 and earlier to push a\n // history entry on hash-tag change. When replace is true, we don't\n // want this.\n if (!options.replace) {\n iWindow.document.open();\n iWindow.document.close();\n }\n\n this._updateHash(iWindow.location, fragment, options.replace);\n }\n\n // If you've told us that you explicitly don't want fallback hashchange-\n // based history, then `navigate` becomes a page refresh.\n } else {\n return this.location.assign(url);\n }\n if (options.trigger) return this.loadUrl(fragment);\n },\n\n // Update the hash location, either replacing the current entry, or adding\n // a new one to the browser history.\n _updateHash: function(location, fragment, replace) {\n if (replace) {\n var href = location.href.replace(/(javascript:|#).*$/, '');\n location.replace(href + '#' + fragment);\n } else {\n // Some browsers require that `hash` contains a leading #.\n location.hash = '#' + fragment;\n }\n }\n\n });\n\n // Create the default Backbone.history.\n Backbone.history = new History;\n\n // Helpers\n // -------\n\n // Helper function to correctly set up the prototype chain for subclasses.\n // Similar to `goog.inherits`, but uses a hash of prototype properties and\n // class properties to be extended.\n var extend = function(protoProps, staticProps) {\n var parent = this;\n var child;\n\n // The constructor function for the new subclass is either defined by you\n // (the \"constructor\" property in your `extend` definition), or defaulted\n // by us to simply call the parent constructor.\n if (protoProps && _.has(protoProps, 'constructor')) {\n child = protoProps.constructor;\n } else {\n child = function(){ return parent.apply(this, arguments); };\n }\n\n // Add static properties to the constructor function, if supplied.\n _.extend(child, parent, staticProps);\n\n // Set the prototype chain to inherit from `parent`, without calling\n // `parent` constructor function.\n var Surrogate = function(){ this.constructor = child; };\n Surrogate.prototype = parent.prototype;\n child.prototype = new Surrogate;\n\n // Add prototype properties (instance properties) to the subclass,\n // if supplied.\n if (protoProps) _.extend(child.prototype, protoProps);\n\n // Set a convenience property in case the parent's prototype is needed\n // later.\n child.__super__ = parent.prototype;\n\n return child;\n };\n\n // Set up inheritance for the model, collection, router, view and history.\n Model.extend = Collection.extend = Router.extend = View.extend = History.extend = extend;\n\n // Throw an error when a URL is needed, and none is supplied.\n var urlError = function() {\n throw new Error('A \"url\" property or function must be specified');\n };\n\n // Wrap an optional error callback with a fallback error event.\n var wrapError = function(model, options) {\n var error = options.error;\n options.error = function(resp) {\n if (error) error.call(options.context, model, resp, options);\n model.trigger('error', model, resp, options);\n };\n };\n\n return Backbone;\n\n}));\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(30)))\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar $ = __webpack_require__(17);\nvar _ = __webpack_require__(0);\nvar Backbone = __webpack_require__(1);\n\n/**\n * Base Model for all CartoDB model.\n * DO NOT USE Backbone.Model directly\n */\nvar Model = Backbone.Model.extend({\n\n initialize: function initialize(options) {\n _.bindAll(this, 'fetch', 'save', 'retrigger');\n return Backbone.Model.prototype.initialize.call(this, options);\n },\n /**\n * We are redefining fetch to be able to trigger an event when the ajax call ends, no matter if there's\n * a change in the data or not. Why don't backbone does this by default? ahh, my friend, who knows.\n * @method fetch\n * @param args {Object}\n */\n fetch: function fetch(args) {\n var self = this;\n // var date = new Date();\n this.trigger('loadModelStarted');\n $.when(Backbone.Model.prototype.fetch.call(this, args)).done(function (ev) {\n self.trigger('loadModelCompleted', ev, self);\n // var dateComplete = new Date()\n // console.log('completed in '+(dateComplete - date));\n }).fail(function (ev) {\n self.trigger('loadModelFailed', ev, self);\n });\n },\n /**\n * Changes the attribute used as Id\n * @method setIdAttribute\n * @param attr {String}\n */\n setIdAttribute: function setIdAttribute(attr) {\n this.idAttribute = attr;\n },\n /**\n * Listen for an event on another object and triggers on itself, with the same name or a new one\n * @method retrigger\n * @param ev {String} event who triggers the action\n * @param obj {Object} object where the event happens\n * @param obj {Object} [optional] name of the retriggered event\n * @todo [xabel]: This method is repeated here and in the base view definition. There's should be a way to make it unique\n */\n retrigger: function retrigger(ev, obj, retrigEvent) {\n if (!retrigEvent) {\n retrigEvent = ev;\n }\n var self = this;\n obj.bind && obj.bind(ev, function () {\n self.trigger(retrigEvent);\n }, self);\n },\n\n /**\n * We need to override backbone save method to be able to introduce new kind of triggers that\n * for some reason are not present in the original library. Because you know, it would be nice\n * to be able to differenciate \"a model has been updated\" of \"a model is being saved\".\n * TODO: remove jquery from here\n * @param {object} opt1\n * @param {object} opt2\n * @return {$.Deferred}\n */\n save: function save(opt1, opt2) {\n var self = this;\n if (!opt2 || !opt2.silent) this.trigger('saving');\n var promise = Backbone.Model.prototype.save.apply(this, arguments);\n $.when(promise).done(function () {\n if (!opt2 || !opt2.silent) self.trigger('saved');\n }).fail(function () {\n if (!opt2 || !opt2.silent) self.trigger('errorSaving');\n });\n return promise;\n }\n});\n\nmodule.exports = Model;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar CartoError = __webpack_require__(4);\n\n/**\n * Utility to build a cartoError related to validation errors.\n * @constructor\n *\n * @return {CartoError} A well formed object representing the error.\n */\nfunction CartoValidationError(type, message, opts) {\n return new CartoError({\n origin: 'validation',\n type: type,\n message: message\n }, opts);\n}\n\nmodule.exports = CartoValidationError;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar errorExtender = __webpack_require__(143);\nvar errorTracker = __webpack_require__(138);\n\nvar UNEXPECTED_ERROR = 'unexpected error';\nvar GENERIC_ORIGIN = 'generic';\n\n/**\n * Build a cartoError from a generic error.\n * @constructor\n *\n * @return {CartoError} A well formed object representing the error.\n */\nfunction CartoError(error, opts) {\n opts = opts || {};\n var cartoError = Object.create(Error.prototype);\n cartoError.message = error && error.message || UNEXPECTED_ERROR;\n cartoError.origin = error && error.origin || GENERIC_ORIGIN;\n cartoError.type = error && error.type || '';\n\n if (_isWindshaftError(error)) {\n cartoError = _transformWindshaftError(error, opts.layers, opts.analysis);\n }\n\n if (_isAjaxError(error)) {\n cartoError = _transformAjaxError(error);\n }\n\n // Add extra fields\n var extraFields = errorExtender.getExtraFields(cartoError);\n cartoError.message = extraFields.friendlyMessage;\n cartoError.errorCode = extraFields.errorCode;\n\n // Final properties\n cartoError.name = 'CartoError';\n cartoError.stack = new Error().stack;\n cartoError.originalError = error;\n\n errorTracker.track(cartoError);\n\n return cartoError;\n}\n\n// Windshaft should have been parsed already\nfunction _isWindshaftError(error) {\n return error && error.origin === 'windshaft';\n}\n\nfunction _isAjaxError(error) {\n return error && error.responseText;\n}\n\nfunction _transformWindshaftError(error, layers, analysis) {\n var cartoError = Object.create(Error.prototype);\n cartoError.message = error.message;\n cartoError.origin = error.origin;\n cartoError.type = error.type;\n\n if (error.type === 'layer' && layers) {\n cartoError.layer = layers.findById(error.layerId);\n }\n if (error.type === 'analysis') {\n if (analysis) {\n cartoError.source = analysis;\n cartoError.sourceId = analysis.getId && analysis.getId();\n }\n if (error.analysisId) {\n cartoError.sourceId = error.analysisId;\n }\n }\n\n return cartoError;\n}\n\nfunction _transformAjaxError(error) {\n var cartoError = Object.create(Error.prototype);\n cartoError.message = _handleAjaxResponse(error);\n cartoError.origin = 'ajax';\n cartoError.type = error.statusText;\n\n return cartoError;\n}\n\nfunction _handleAjaxResponse(error) {\n var errorMessage = '';\n\n try {\n var parsedError = JSON.parse(error.responseText);\n errorMessage = parsedError.errors[0];\n } catch (exc) {\n // Swallow parse error\n }\n return errorMessage || UNEXPECTED_ERROR;\n}\n\nmodule.exports = CartoError;\n\n/**\n * Represents an error in the carto library.\n *\n * Some actions like adding a layer to a map are asynchronous and require a server round trip.\n * If some error happens during this communnication with the server, an error with a `CartoError` object\n * will be fired.\n *\n * CartoErrors can be obtained by listening to the client 'error' `client.on('error', callback);`,\n * through any async action or by listening to 'error' events on particular objects (eg: dataviews).\n *\n * Promises are also rejected with a CartoError.\n * @example\n * // Listen when a layer has been added or there has been an error.\n * client.addLayer(layerWithErrors)\n * .then(()=> console.log('Layer added succesfully'))\n * .catch(cartoError => console.error(cartoError.message))\n * @example\n * // Events also will be registered here when the map changes.\n * client.on('success', function () {\n * console.log('Client reloaded');\n * });\n *\n * client.on('error', function (clientError) {\n * console.error(clientError.message);\n * });\n * @example\n * // Listen when there is an error in a dataview\n * dataview.on('error', function (error) {\n * console.error(error.message);\n * });\n *\n * @typedef {object} CartoError\n * @property {string} message - A short error description\n * @property {string} name - The name of the error \"CartoError\"\n * @property {string} origin - Where the error was originated: 'windshaft' | 'ajax' | 'validation'\n * @property {object} originalError - An object containing the internal/original error\n * @property {object} stack - Error stack trace\n * @property {string} type - Error type\n * @property {string} sourceId - Available if the error is related to a source object. Indicates the ID of the source that has a problem.\n * @api\n */\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _ = __webpack_require__(0);\n/**\n * Constants module for dataviews\n */\n\n/**\n * Enum for operation values.\n *\n * @enum {string} carto.operation\n * @readonly\n * @memberof carto\n * @api\n */\nvar operation = {\n /** Number of elements */\n COUNT: 'count',\n /** Sum */\n SUM: 'sum',\n /** Average */\n AVG: 'avg',\n /** Maximum */\n MAX: 'max',\n /** Minimum */\n MIN: 'min'\n};\n\nfunction isValidOperation(op) {\n return _.contains(operation, op);\n}\n\n/**\n * Enum for dataview status values.\n *\n * @enum {string} carto.dataview.status\n * @readonly\n * @memberof carto.dataview\n * @api\n */\nvar status = {\n /** Not fetched with the server */\n NOT_LOADED: 'notLoaded',\n /** Fetching with the server */\n LOADING: 'loading',\n /** Fetch completed */\n LOADED: 'loaded',\n /** Error in fetch */\n ERROR: 'error'\n};\n\n/**\n * Enum for dataview time aggregations.\n *\n * @enum {string} carto.dataview.timeAggregation\n * @readonly\n * @memberof carto.dataview\n * @api\n */\nvar timeAggregation = {\n /** Auto */\n AUTO: 'auto',\n /** Millennium */\n MILLENNIUM: 'millennium',\n /** Century */\n CENTURY: 'century',\n /** Decade */\n DECADE: 'decade',\n /** Year */\n YEAR: 'year',\n /** Quarter */\n QUARTER: 'quarter',\n /** Month */\n MONTH: 'month',\n /** Week */\n WEEK: 'week',\n /** Day */\n DAY: 'day',\n /** Hour */\n HOUR: 'hour',\n /** Minute */\n MINUTE: 'minute'\n};\n\nfunction isValidTimeAggregation(agg) {\n return _.contains(timeAggregation, agg);\n}\n\n/**\n * ATTRIBUTION constant\n *\n * © OpenStreetMap contributors, © CARTO\n *\n * @type {string}\n * @constant\n * @memberof carto\n * @api\n */\nvar ATTRIBUTION = '© OpenStreetMap contributors, © CARTO';\n\nmodule.exports = {\n operation: operation,\n status: status,\n timeAggregation: timeAggregation,\n isValidOperation: isValidOperation,\n isValidTimeAggregation: isValidTimeAggregation,\n ATTRIBUTION: ATTRIBUTION\n};\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _ = __webpack_require__(0);\nvar Backbone = __webpack_require__(1);\nvar CartoValidationError = __webpack_require__(3);\n\n/**\n * Base filter object\n *\n * @constructor\n * @abstract\n * @memberof carto.filter\n * @api\n */\nfunction Base() {}\n\n_.extend(Base.prototype, Backbone.Events);\n\nBase.prototype._getValidationError = function (code) {\n return new CartoValidationError('filter', code);\n};\n\nmodule.exports = Base;\n\n/**\n * Fired when bounds have changed. Handler gets a parameter with the new bounds.\n *\n * @event boundsChanged\n * @type {carto.filter.Bounds}\n * @api\n */\n\n/**\n * Fired when circle filter has changed. Handler gets a parameter with the new circle.\n *\n * @event circleChanged\n * @type {carto.filter.CircleData}\n * @api\n */\n\n/**\n * Fired when polygon filter has changed. Handler gets a parameter with the new polygon.\n *\n * @event polygonChanged\n * @type {carto.filter.PolygonData}\n * @api\n */\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _ = __webpack_require__(0);\n\nvar util = {};\n\nutil.isCORSSupported = function () {\n return 'withCredentials' in new XMLHttpRequest();\n};\n\nutil.array2hex = function (byteArr) {\n var encoded = [];\n for (var i = 0; i < byteArr.length; ++i) {\n encoded.push(String.fromCharCode(byteArr[i] + 128));\n }\n return util.btoa(encoded.join(''));\n};\n\nutil.btoa = function (data) {\n if (typeof window['btoa'] === 'function') {\n return util.encodeBase64Native(data);\n }\n\n return util.encodeBase64(data);\n};\n\nutil.encodeBase64Native = function (input) {\n return btoa(input);\n};\n\n// ie7 btoa,\n// from http://phpjs.org/functions/base64_encode/\nutil.encodeBase64 = function (data) {\n var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var o1, o2, o3, h1, h2, h3, h4, bits;\n var i = 0;\n var ac = 0;\n var enc = '';\n var tmpArr = [];\n\n if (!data) {\n return data;\n }\n\n do {\n // pack three octets into four hexets\n o1 = data.charCodeAt(i++);\n o2 = data.charCodeAt(i++);\n o3 = data.charCodeAt(i++);\n\n bits = o1 << 16 | o2 << 8 | o3;\n\n h1 = bits >> 18 & 0x3f;\n h2 = bits >> 12 & 0x3f;\n h3 = bits >> 6 & 0x3f;\n h4 = bits & 0x3f;\n\n // use hexets to index into b64, and append result to encoded string\n tmpArr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n } while (i < data.length);\n\n enc = tmpArr.join('');\n\n var r = data.length % 3;\n return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);\n};\n\nutil.uniqueCallbackName = function (str) {\n util._callback_c = util._callback_c || 0;\n ++util._callback_c;\n return util.crc32(str) + '_' + util._callback_c;\n};\n\nutil.crc32 = function (str) {\n var crcTable = util._crcTable || (util._crcTable = util._makeCRCTable());\n var crc = 0 ^ -1;\n\n for (var i = 0, l = str.length; i < l; ++i) {\n crc = crc >>> 8 ^ crcTable[(crc ^ str.charCodeAt(i)) & 0xff];\n }\n\n return (crc ^ -1) >>> 0;\n};\n\nutil._makeCRCTable = function () {\n var c;\n var crcTable = [];\n for (var n = 0; n < 256; ++n) {\n c = n;\n for (var k = 0; k < 8; ++k) {\n c = c & 1 ? 0xedb88320 ^ c >>> 1 : c >>> 1;\n }\n crcTable[n] = c;\n }\n return crcTable;\n};\n\nutil._inferBrowser = function (ua) {\n var browser = {};\n ua = ua || typeof window !== 'undefined' && window.navigator.userAgent || '';\n function detectIE() {\n var msie = ua.indexOf('MSIE ');\n var trident = ua.indexOf('Trident/');\n if (msie > -1 || trident > -1) return true;\n return false;\n }\n\n function getIEVersion() {\n if (!document.compatMode) return 5;\n if (!window.XMLHttpRequest) return 6;\n if (!document.querySelector) return 7;\n if (!document.addEventListener) return 8;\n if (!window.atob) return 9;\n if (document.all) return 10;else return 11;\n }\n\n if (detectIE()) {\n browser.ie = { version: getIEVersion() };\n } else if (ua.indexOf('Edge/') > -1) browser.edge = ua;else if (ua.indexOf('Chrome') > -1) browser.chrome = ua;else if (ua.indexOf('Firefox') > -1) browser.firefox = ua;else if (ua.indexOf('Opera') > -1) browser.opera = ua;else if (ua.indexOf('Safari') > -1) browser.safari = ua;\n return browser;\n};\n\nutil.browser = util._inferBrowser();\n\nutil.isMobileDevice = function () {\n return (/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)\n );\n};\n\nutil.supportsTouch = function () {\n return 'ontouchstart' in window || navigator.msMaxTouchPoints;\n};\n\nvar webGLSupportedAndEnabled = null;\nutil.isWebGLSupported = function () {\n if (webGLSupportedAndEnabled === null) {\n var canvas = document.createElement('canvas');\n webGLSupportedAndEnabled = !!window.WebGLRenderingContext && !!(canvas.getContext('webgl') || canvas.getContext('experimental-webgl'));\n }\n return webGLSupportedAndEnabled;\n};\n\n/**\n * Returns true if the string ends with provided suffix\n */\nutil.endsWith = function (str, suffix) {\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\n};\n\nutil.checkRequiredOpts = function (actualOpts, requiredOpts, from) {\n _.each(requiredOpts, function (item) {\n if (_.isUndefined(actualOpts[item])) {\n throw new Error(item + ' is required' + (from ? ' to initialize ' + from : ''));\n }\n });\n};\n\n/**\n * Checks that the correct Leaflet version is loaded\n */\nutil.isLeafletLoaded = function () {\n if (!window.L) {\n throw new Error('Leaflet is required');\n }\n if (window.L.version < '1.0.0') {\n throw new Error('Leaflet +1.0 is required');\n }\n};\n\n/**\n * Checks that the correct Google Maps version is loaded\n */\nutil.isGoogleMapsLoaded = function () {\n if (!window.google) {\n throw new Error('Google Maps is required');\n }\n if (!window.google.maps) {\n throw new Error('Google Maps is required');\n }\n if (window.google.maps.version < '3.31.0') {\n throw new Error('Google Maps version should be >= 3.31');\n }\n};\n\nmodule.exports = util;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Types of spatial filters\n */\nvar types = {\n BBOX: 'bbox',\n CIRCLE: 'circle',\n POLYGON: 'polygon'\n};\n\nmodule.exports = types;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _ = __webpack_require__(0);\nvar Backbone = __webpack_require__(1);\nvar Model = __webpack_require__(2);\nvar util = __webpack_require__(7);\n\nvar REQUIRED_OPTS = ['camshaftReference', 'engine'];\n\nvar STATUS = {\n PENDING: 'pending',\n WAITING: 'waiting',\n RUNNING: 'running',\n FAILED: 'failed',\n READY: 'ready'\n};\n\nvar AnalysisModel = Model.extend({\n\n initialize: function initialize(attrs, opts) {\n opts = opts || {};\n util.checkRequiredOpts(opts, REQUIRED_OPTS, 'AnalysisModel');\n\n this._camshaftReference = opts.camshaftReference;\n this._engine = opts.engine;\n\n this._initBinds();\n\n // A hash that tracks which models (layers / dataviews) have\n // this analysis model as their \"source\"\n this._referencedBy = {};\n },\n\n url: function url() {\n var url = this.get('url');\n if (url) {\n if (this.get('apiKey')) {\n url += '?api_key=' + this.get('apiKey');\n } else if (this.get('authToken')) {\n var authToken = this.get('authToken');\n if (authToken instanceof Array) {\n var tokens = _.map(authToken, function (token) {\n return 'auth_token[]=' + token;\n });\n url += '?' + tokens.join('&');\n } else {\n url += '?auth_token=' + authToken;\n }\n }\n return url;\n }\n },\n\n setOk: function setOk() {\n this.unset('error');\n },\n\n setError: function setError(error) {\n this.set({\n error: error,\n status: STATUS.FAILED\n });\n },\n\n _initBinds: function _initBinds() {\n this.bind('change:type', function () {\n this.unbind(null, null, this);\n this._initBinds();\n this._reload();\n }, this);\n\n _.each(this.getParamNames(), function (paramName) {\n this.bind('change:' + paramName, this._reload, this);\n }, this);\n\n this.bind('change:status', function () {\n // If the status changed from any other status to \"ready\"\n // and this analysis is the \"source\" of any layer or dataview,\n // vis has to be reloaded.\n if (this._hadStatus() && this.isReady() && this.isSourceOfAnyModel()) {\n this._reload();\n }\n }, this);\n },\n\n _hadStatus: function _hadStatus() {\n return this.previous('status');\n },\n\n _reload: function _reload() {\n this._engine.reload({\n error: this._onMapReloadError.bind(this)\n });\n },\n\n _onMapReloadError: function _onMapReloadError() {\n this.set('status', STATUS.FAILED);\n },\n\n remove: function remove() {\n this.trigger('destroy', this);\n this.stopListening();\n },\n\n findAnalysisById: function findAnalysisById(analysisId) {\n if (this.get('id') === analysisId) {\n return this;\n }\n var sources = _.chain(this._getSourceNames()).map(function (sourceName) {\n var source = this.get(sourceName);\n if (source) {\n return source.findAnalysisById(analysisId);\n }\n }, this).compact().value();\n\n return sources[0];\n },\n\n _getSourceNames: function _getSourceNames() {\n return this._camshaftReference.getSourceNamesForAnalysisType(this.get('type'));\n },\n\n isDone: function isDone() {\n return this._hasStatus([STATUS.READY, STATUS.FAILED]);\n },\n\n isLoading: function isLoading() {\n return this._hasStatus([STATUS.PENDING, STATUS.WAITING, STATUS.RUNNING]);\n },\n\n isReady: function isReady() {\n return this._hasStatus(STATUS.READY);\n },\n\n isFailed: function isFailed() {\n return this._hasStatus(STATUS.FAILED);\n },\n\n _hasStatus: function _hasStatus(statuses) {\n if (!_.isArray(statuses)) {\n statuses = [statuses];\n }\n return _.contains(statuses, this._getStatus());\n },\n\n _getStatus: function _getStatus() {\n return this.get('status');\n },\n\n toJSON: function toJSON() {\n var json = _.pick(this.attributes, 'id', 'type');\n json.params = _.pick(this.attributes, this.getParamNames());\n var sourceNames = this._getSourceNames();\n _.each(sourceNames, function (sourceName) {\n var source = {};\n var sourceInfo = this.get(sourceName);\n if (sourceInfo) {\n source[sourceName] = sourceInfo.toJSON();\n _.extend(json.params, source);\n }\n }, this);\n\n return json;\n },\n\n getParamNames: function getParamNames() {\n return this._camshaftReference.getParamNamesForAnalysisType(this.get('type'));\n },\n\n /**\n * Return an Array with the complete node list for this analysis.\n */\n getNodes: function getNodes() {\n // Add current node to the list\n var nodes = [this];\n // Recursively iterate through the inputs ( source nodes have no inputs )\n if (this.get('type') !== 'source') {\n _.forEach(this._getSourceNames(), function (sourceName) {\n var source = this.get(sourceName);\n if (source) {\n nodes = nodes.concat(source.getNodes());\n }\n }, this);\n }\n return nodes;\n },\n\n /**\n * Return a Collection with the complete node list for this analysis.\n */\n getNodesCollection: function getNodesCollection() {\n return new Backbone.Collection(this.getNodes());\n },\n\n /**\n * Compare two analysisModels.\n */\n equals: function equals(analysisModel) {\n if (!(analysisModel instanceof AnalysisModel)) {\n return false;\n }\n // Since all analysis are created using the analysisFactory different ids ensure different nodes.\n return this.get('id') === analysisModel.get('id');\n },\n\n markAsSourceOf: function markAsSourceOf(model) {\n this._referencedBy[model.cid] = true;\n },\n\n isSourceOfAnyModel: function isSourceOfAnyModel() {\n return Object.keys(this._referencedBy).length > 0;\n },\n\n isSourceOf: function isSourceOf(model) {\n return !!this._referencedBy[model.cid];\n },\n\n unmarkAsSourceOf: function unmarkAsSourceOf(model) {\n delete this._referencedBy[model.cid];\n }\n}, {\n STATUS: STATUS\n});\n\nmodule.exports = AnalysisModel;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _ = __webpack_require__(0);\nvar Backbone = __webpack_require__(1);\nvar status = __webpack_require__(5).status;\nvar SourceBase = __webpack_require__(12);\nvar FilterBase = __webpack_require__(6);\nvar SQLFilterBase = __webpack_require__(11);\nvar SpatialFilterTypes = __webpack_require__(8);\nvar CartoError = __webpack_require__(4);\nvar CartoValidationError = __webpack_require__(3);\n\n/**\n * Base class for dataview objects.\n *\n * Dataviews are a way to extract data from a CARTO account in predefined ways\n * (eg: a list of categories, the result of a formula operation, etc.).\n *\n * **This object should not be used directly**\n *\n * The data used in a dataviews cames from a {@link carto.source.Base|source} that might change\n * due to different reasons (eg: SQL query changed).\n *\n * When dataview data changes the dataview will trigger events to notify subscribers when new data is available.\n *\n * @example\n * // Keep your widget data sync. Remember each dataview has his own data format.\n * dataview.on('dataChanged', newData => {\n * renderWidget(newData);\n * })\n *\n * @constructor\n * @abstract\n * @memberof carto.dataview\n * @fires dataChanged\n * @fires columnChanged\n * @fires statusChanged\n * @fires error\n * @api\n */\nfunction Base() {}\n\n_.extend(Base.prototype, Backbone.Events);\n\n/**\n * Return the current dataview status.\n *\n * @return {carto.dataview.status} Current dataview status\n * @api\n */\nBase.prototype.getStatus = function () {\n return this._status;\n};\n\n/**\n * Return true is the current status is loading.\n *\n * @return {boolean}\n * @api\n */\nBase.prototype.isLoading = function () {\n return this._status === status.LOADING;\n};\n\n/**\n * Return true is the current status is loaded.\n *\n * @return {boolean}\n * @api\n */\nBase.prototype.isLoaded = function () {\n return this._status === status.LOADED;\n};\n\n/**\n * Return true is the current status is error.\n *\n * @return {boolean}\n * @api\n */\nBase.prototype.hasError = function () {\n return this._status === status.ERROR;\n};\n\n/**\n * Enable the dataview. When enabled, a dataview fetches new data\n * when the map changes (changing map configuration or changing map\n * bounding box).\n *\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.enable = function () {\n return this._setEnabled(true);\n};\n\n/**\n * Disable the dataview. This stops the dataview from fetching new\n * data when there is a map change (like changing map configuration or changing map\n * bounding box).\n *\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.disable = function () {\n return this._setEnabled(false);\n};\n\n/**\n * Return true if the dataview is enabled.\n *\n * @return {boolean}\n * @api\n */\nBase.prototype.isEnabled = function () {\n return this._enabled;\n};\n\n/**\n * Return the current source where the dataview gets the data from.\n *\n * @return {carto.source.Base} Current source object\n * @api\n */\nBase.prototype.getSource = function () {\n return this._source;\n};\n\n/**\n * Set the dataview column.\n *\n * @param {string} column\n * @fires columnChanged\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.setColumn = function (column) {\n this._checkColumn(column);\n this._column = column;\n if (this._internalModel) {\n this._internalModel.set('column', this._column);\n }\n return this;\n};\n\n/**\n * Return the current dataview column where the dataview is applied.\n *\n * @return {string} Current dataview column\n * @api\n */\nBase.prototype.getColumn = function () {\n return this._column;\n};\n\n/**\n * Add a {@link carto.filter.Base|filter}.\n *\n * @param {carto.filter.Base} filter\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.addFilter = function (filter) {\n this._checkFilter(filter);\n this._addSpatialFilter(filter);\n return this;\n};\n\n/**\n * Remove a {@link carto.filter.Base|filter}.\n *\n * @param {carto.filter.Base} filter\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.removeFilter = function (filter) {\n this._checkFilter(filter);\n this._removeSpatialFilter(filter);\n return this;\n};\n\n/**\n * Check if a {@link carto.filter.Base|filter} exists in the dataview.\n *\n * @param {carto.filter.Base} filter\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.hasFilter = function (filter) {\n this._checkFilter(filter);\n var hasBBoxFilter = filter === this._boundingBoxFilter && this._internalModel && this._internalModel.get('sync_on_bbox_change');\n\n var hasCircleFilter = filter === this._circleFilter && this._internalModel && this._internalModel.get('sync_on_circle_change');\n\n var hasPolygonFilter = filter === this._polygonFilter && this._internalModel && this._internalModel.get('sync_on_polygon_change');\n\n return hasBBoxFilter || hasCircleFilter || hasPolygonFilter;\n};\n\nBase.prototype.getData = function () {\n throw new Error('getData must be implemented by the particular dataview.');\n};\n\n// Protected methods\n\nBase.prototype.DEFAULTS = {};\n\n/**\n * Initialize dataview.\n *\n * @param {carto.source.Base} source - The source where the dataview will fetch the data\n * @param {string} column - The column name to get the data\n * @param {object} options - It depends on the instance\n */\nBase.prototype._initialize = function (source, column, options) {\n options = _.defaults(options || {}, this.DEFAULTS);\n\n this._checkSource(source);\n this._checkColumn(column);\n this._checkOptions(options);\n\n this._source = source;\n this._column = column;\n this._options = options;\n\n this._status = status.NOT_LOADED;\n this._enabled = true;\n this._boundingBoxFilter = null;\n};\n\nBase.prototype._checkSource = function (source) {\n if (!(source instanceof SourceBase)) {\n throw this._getValidationError('sourceRequired');\n }\n};\n\nBase.prototype._checkColumn = function (column) {\n if (_.isUndefined(column)) {\n throw this._getValidationError('columnRequired');\n }\n if (!_.isString(column)) {\n throw this._getValidationError('columnString');\n }\n if (_.isEmpty(column)) {\n throw this._getValidationError('emptyColumn');\n }\n};\n\nBase.prototype._checkOptions = function (options) {\n throw new Error('_checkOptions must be implemented by the particular dataview.');\n};\n\nBase.prototype._checkFilter = function (filter) {\n if (!(filter instanceof FilterBase) || filter instanceof SQLFilterBase) {\n throw this._getValidationError('filterRequired');\n }\n};\n\nBase.prototype._createInternalModel = function (engine) {\n throw new Error('_createInternalModel must be implemented by the particular dataview.');\n};\n\nBase.prototype._setEnabled = function (enabled) {\n this._enabled = enabled;\n if (this._internalModel) {\n this._internalModel.set('enabled', enabled);\n }\n return this;\n};\n\nBase.prototype._listenToInternalModelSharedEvents = function () {\n if (this._internalModel) {\n this.listenTo(this._internalModel, 'change:data', this._onDataChanged);\n this.listenTo(this._internalModel, 'change:column', this._onColumnChanged);\n this.listenTo(this._internalModel, 'loading', this._onStatusLoading);\n this.listenTo(this._internalModel, 'loaded', this._onStatusLoaded);\n this.listenTo(this._internalModel, 'statusError', this._onStatusError);\n }\n};\n\nBase.prototype._onDataChanged = function () {\n this.trigger('dataChanged', this.getData());\n};\n\nBase.prototype._onColumnChanged = function () {\n if (this._internalModel) {\n this._column = this._internalModel.get('column');\n }\n this.trigger('columnChanged', this._column);\n};\n\nBase.prototype._onStatusLoading = function () {\n this._status = status.LOADING;\n this.trigger('statusChanged', this._status);\n};\n\nBase.prototype._onStatusLoaded = function () {\n this._status = status.LOADED;\n this.trigger('statusChanged', this._status);\n};\n\nBase.prototype._onStatusError = function (model, error) {\n this._status = status.ERROR;\n this.trigger('statusChanged', this._status, error);\n this._triggerError(this, error);\n};\n\nBase.prototype._changeProperty = function (key, value, internalKey) {\n var prevValue = this['_' + key];\n this['_' + key] = value;\n if (prevValue === value) {\n return;\n }\n this._triggerChange(key, value);\n if (this._internalModel) {\n this._internalModel.set(internalKey || key, value);\n }\n};\n\nBase.prototype._changeProperties = function (properties) {\n var _this = this;\n\n _.each(properties, function (value, key) {\n var prevValue = _this['_' + key];\n\n if (prevValue !== value) {\n _this['_' + key] = value;\n _this._triggerChange(key, value);\n }\n });\n\n if (this._internalModel) {\n this._internalModel.set(properties);\n }\n};\n\nBase.prototype._triggerChange = function (key, value) {\n this.trigger(key + 'Changed', value);\n};\n\n/**\n * Fire a CartoError event from a internalDataviewError.\n */\nBase.prototype._triggerError = function (model, internalDataviewError) {\n this.trigger('error', new CartoError(internalDataviewError));\n};\n\nBase.prototype._addSpatialFilter = function (spatialFilter) {\n switch (spatialFilter.type) {\n case SpatialFilterTypes.BBOX:\n this._addBoundingBoxFilter(spatialFilter);\n break;\n case SpatialFilterTypes.CIRCLE:\n this._addCircleFilter(spatialFilter);\n break;\n case SpatialFilterTypes.POLYGON:\n this._addPolygonFilter(spatialFilter);\n break;\n default:\n throw new Error('The filter is not a valid spatial filter.');\n }\n};\n\nBase.prototype._removeSpatialFilter = function (spatialFilter) {\n switch (spatialFilter.type) {\n case SpatialFilterTypes.BBOX:\n if (spatialFilter === this._boundingBoxFilter) {\n this._removeBoundingBoxFilter();\n }\n break;\n case SpatialFilterTypes.CIRCLE:\n if (spatialFilter === this._circleFilter) {\n this._removeCircleFilter();\n }\n break;\n case SpatialFilterTypes.POLYGON:\n if (spatialFilter === this._polygonFilter) {\n this._removePolygonFilter();\n }\n break;\n default:\n throw new Error('The filter is not a valid spatial filter.');\n }\n};\n\nBase.prototype._addBoundingBoxFilter = function (bboxFilter) {\n if (bboxFilter === this._boundingBoxFilter) {\n return;\n }\n\n this._boundingBoxFilter = bboxFilter;\n if (this._internalModel) {\n this._internalModel.addBBoxFilter(this._boundingBoxFilter.$getInternalModel());\n this._internalModel.set('sync_on_bbox_change', true);\n }\n};\n\nBase.prototype._removeBoundingBoxFilter = function () {\n this._boundingBoxFilter = null;\n if (this._internalModel) {\n this._internalModel.removeBBoxFilter();\n this._internalModel.set('sync_on_bbox_change', false);\n }\n};\n\nBase.prototype._addCircleFilter = function (circleFilter) {\n if (circleFilter === this._circleFilter) {\n return;\n }\n\n this._circleFilter = circleFilter;\n if (this._internalModel) {\n this._internalModel.addCircleFilter(this._circleFilter.$getInternalModel());\n this._internalModel.set('sync_on_circle_change', true);\n }\n};\n\nBase.prototype._removeCircleFilter = function () {\n this._circleFilter = null;\n if (this._internalModel) {\n this._internalModel.removeCircleFilter();\n this._internalModel.set('sync_on_circle_change', false);\n }\n};\n\nBase.prototype._addPolygonFilter = function (polygonFilter) {\n if (polygonFilter === this._polygonFilter) {\n return;\n }\n\n this._polygonFilter = polygonFilter;\n if (this._internalModel) {\n this._internalModel.addPolygonFilter(this._polygonFilter.$getInternalModel());\n this._internalModel.set('sync_on_polygon_change', true);\n }\n};\n\nBase.prototype._removePolygonFilter = function () {\n this._polygonFilter = null;\n if (this._internalModel) {\n this._internalModel.removePolygonFilter();\n this._internalModel.set('sync_on_polygon_change', false);\n }\n};\n\nBase.prototype._getValidationError = function (code) {\n return new CartoValidationError('dataview', code);\n};\n\n// Internal public methods\n\nBase.prototype.$setEngine = function (engine) {\n this._source.$setEngine(engine);\n if (!this._internalModel) {\n this._createInternalModel(engine);\n this._listenToInternalModelSharedEvents();\n }\n};\n\nBase.prototype.$getInternalModel = function () {\n return this._internalModel;\n};\n\nmodule.exports = Base;\n\n/**\n * Fired when the column name has changed. Handler gets a parameter with the new column name.\n *\n * @event columnChanged\n * @type {string}\n * @api\n */\n\n/**\n * Fired when the status has changed. Handler gets a parameter with the new status.\n *\n * Contains a single argument with the new status.\n *\n * @event statusChanged\n * @type {carto.dataview.status}\n * @api\n */\n\n/**\n * Fired when the data has changed. Handler gets an object with specific data for the type\n * of dataview that triggered the event.\n *\n * @event dataChanged\n * @type {carto.dataview.CategoryData|carto.dataview.FormulaData|carto.dataview.HistogramData|carto.dataview.TimeSeriesData}\n * @api\n */\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _ = __webpack_require__(0);\nvar Base = __webpack_require__(6);\nvar getObjectValue = __webpack_require__(95);\n\nvar ALLOWED_OPTIONS = ['includeNull'];\nvar DEFAULT_JOIN_OPERATOR = 'AND';\n\n/**\n * SQL Filter\n *\n * A SQL filter is the base for all the SQL filters such as the Category Filter or the Range filter\n *\n * @param {string} column - The filtering will be performed against this column\n * @param {object} [options={}]\n * @param {boolean} [options.includeNull] - Include null rows when returning data\n *\n * @class SQLBase\n * @extends carto.filter.Base\n * @memberof carto.filter\n */\n\nvar SQLBase = function (_Base) {\n _inherits(SQLBase, _Base);\n\n function SQLBase(column) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, SQLBase);\n\n var _this = _possibleConstructorReturn(this, (SQLBase.__proto__ || Object.getPrototypeOf(SQLBase)).call(this));\n\n _this._checkColumn(column);\n _this._checkOptions(options);\n\n _this._column = column;\n _this._filters = {};\n _this._options = options;\n return _this;\n }\n\n /**\n * Set any of the filter conditions, overwriting the previous one.\n * @param {string} filterType - The filter type that you want to set\n * @param {string} filterValue - The value of the filter\n */\n\n\n _createClass(SQLBase, [{\n key: 'set',\n value: function set(filterType, filterValue) {\n if (!filterType || !filterValue || !_.isString(filterType)) {\n return;\n }\n\n var newFilter = _defineProperty({}, filterType, filterValue);\n\n this._checkFilters(newFilter);\n this._filters[filterType] = filterValue;\n\n this.trigger('change:filters', newFilter);\n }\n\n /**\n * Set the filter conditions, overriding all the previous ones.\n * @param {object} filters - The object containing all the new filters to apply.\n */\n\n }, {\n key: 'setFilters',\n value: function setFilters(filters) {\n if (!filters || !_.isObject(filters)) {\n return;\n }\n\n this._checkFilters(filters);\n this._filters = filters;\n\n this.trigger('change:filters', filters);\n }\n\n /**\n * Remove all conditions from current filter\n */\n\n }, {\n key: 'resetFilters',\n value: function resetFilters() {\n this.setFilters({});\n }\n }, {\n key: '$getSQL',\n value: function $getSQL() {\n var _this2 = this;\n\n var filters = Object.keys(this._filters);\n var sql = filters.map(function (filterType) {\n return _this2._interpolateFilter(filterType, _this2._filters[filterType]);\n }).filter(function (filter) {\n return Boolean(filter);\n }).join(' ' + DEFAULT_JOIN_OPERATOR + ' ');\n\n if (this._options.includeNull) {\n this._includeNullInQuery(sql);\n }\n\n if (filters.length > 1) {\n return '(' + sql + ')';\n }\n\n return sql;\n }\n }, {\n key: '_checkColumn',\n value: function _checkColumn(column) {\n if (_.isUndefined(column)) {\n throw this._getValidationError('columnRequired');\n }\n\n if (!_.isString(column)) {\n throw this._getValidationError('columnString');\n }\n\n if (_.isEmpty(column)) {\n throw this._getValidationError('emptyColumn');\n }\n }\n }, {\n key: '_checkFilters',\n value: function _checkFilters(filters) {\n var _this3 = this;\n\n Object.keys(filters).forEach(function (filter) {\n var isFilterValid = _.contains(_this3.ALLOWED_FILTERS, filter);\n\n if (!isFilterValid) {\n throw _this3._getValidationError('invalidFilter' + filter);\n }\n\n var parameters = _this3.PARAMETER_SPECIFICATION[filter].parameters;\n var haveCorrectType = parameters.every(function (parameter) {\n var parameterValue = getObjectValue(filters, parameter.name);\n return parameter.allowedTypes.some(function (type) {\n return parameterIsOfType(type, parameterValue);\n });\n });\n\n if (!haveCorrectType) {\n throw _this3._getValidationError('invalidParameterType' + filter);\n }\n });\n }\n }, {\n key: '_checkOptions',\n value: function _checkOptions(options) {\n var _this4 = this;\n\n Object.keys(options).forEach(function (option) {\n var isOptionValid = _.contains(ALLOWED_OPTIONS, option);\n\n if (!isOptionValid) {\n throw _this4._getValidationError('invalidOption' + option);\n }\n });\n }\n }, {\n key: '_convertValueToSQLString',\n value: function _convertValueToSQLString(filterValue) {\n var _this5 = this;\n\n if (_.isDate(filterValue)) {\n return '\\'' + filterValue.toISOString() + '\\'';\n }\n\n if (_.isArray(filterValue)) {\n return filterValue.map(function (value) {\n return _this5._convertValueToSQLString(value);\n }).join(',');\n }\n\n if (_.isObject(filterValue)) {\n Object.keys(filterValue).forEach(function (key) {\n if (key === 'query') {\n return;\n }\n\n filterValue[key] = _this5._convertValueToSQLString(filterValue[key]);\n });\n\n return filterValue;\n }\n\n if (_.isNumber(filterValue)) {\n return filterValue;\n }\n\n return '\\'' + normalizeString(filterValue.toString()) + '\\'';\n }\n }, {\n key: '_interpolateFilter',\n value: function _interpolateFilter(filterType, filterValues) {\n var sqlString = _.template(this.SQL_TEMPLATES[filterType]);\n var value = this._convertValueToSQLString(filterValues);\n\n return sqlString({ column: this._column, value: value });\n }\n }, {\n key: '_includeNullInQuery',\n value: function _includeNullInQuery(sql) {\n var filters = Object.keys(this._filters);\n\n if (filters.length > 1) {\n sql = '(' + sql + ')';\n }\n\n return '(' + sql + ' OR ' + this._column + ' IS NULL)';\n }\n }]);\n\n return SQLBase;\n}(Base);\n\nvar parameterIsOfType = function parameterIsOfType(parameterType, parameterValue) {\n return _['is' + parameterType](parameterValue);\n};\n\nvar normalizeString = function normalizeString(value) {\n return value.replace(/\\n/g, '\\\\n').replace(/\\\"/g, '\\\\\"').replace(/'/g, \"''\");\n};\n\nmodule.exports = SQLBase;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _ = __webpack_require__(0);\nvar Backbone = __webpack_require__(1);\nvar CartoError = __webpack_require__(4);\nvar FiltersCollection = __webpack_require__(21);\nvar EVENTS = __webpack_require__(14);\n\n/**\n * Base data source object.\n *\n * The methods listed in the {@link carto.source.Base|source.Base} object are available in all source objects.\n *\n * Use a source to reference the data used in a {@link carto.dataview.Base|dataview} or a {@link carto.layer.Base|layer}.\n *\n * {@link carto.source.Base} should not be used directly use {@link carto.source.Dataset} or {@link carto.source.SQL} instead.\n *\n * @constructor\n * @fires error\n * @abstract\n * @memberof carto.source\n * @api\n */\nfunction Base() {\n this._id = Base.$generateId();\n this._hasFiltersApplied = false;\n this._appliedFilters = new FiltersCollection();\n}\n\n_.extend(Base.prototype, Backbone.Events);\n\n/**\n * The instance id will be autogenerated by incrementing this variable.\n */\nBase.$nextId = 0;\n\n/**\n * Static funciton used internally to autogenerate source ids.\n */\nBase.$generateId = function () {\n return 'S' + ++Base.$nextId;\n};\n\n/**\n * Return a unique autogenerated id.\n *\n * @return {string} Unique autogenerated id\n */\nBase.prototype.getId = function () {\n return this._id;\n};\n\nBase.prototype._createInternalModel = function (engine) {\n throw new Error('_createInternalModel must be implemented by the particular source');\n};\n\n/**\n * Fire a CartoError event from a internalError\n */\nBase.prototype._triggerError = function (model, internalError) {\n this.trigger(EVENTS.ERROR, new CartoError(internalError, { analysis: this }));\n};\n\nBase.prototype.$setEngine = function (engine) {\n if (!this._internalModel) {\n this._internalModel = this._createInternalModel(engine);\n this._internalModel.on('change:error', this._triggerError, this);\n }\n};\n\n/**\n * Return the engine form the source internal model\n */\nBase.prototype.$getEngine = function (engine) {\n if (this._internalModel) {\n return this._internalModel._engine;\n }\n};\n\n/**\n * Return the real CARTO.js model used by the source.\n */\nBase.prototype.$getInternalModel = function () {\n return this._internalModel;\n};\n\n/**\n * Get added filters\n *\n * @returns {Array} Added filters\n * @api\n */\nBase.prototype.getFilters = function () {\n return this._appliedFilters.getFilters();\n};\n\n/**\n * Add new filter to the source\n *\n * @param {(carto.filter.Range|carto.filter.Category|carto.filter.AND|carto.filter.OR)} filter\n * @api\n */\nBase.prototype.addFilter = function (filter) {\n this._hasFiltersApplied = true;\n this._appliedFilters.addFilter(filter);\n};\n\n/**\n * Add new filters to the source\n *\n * @param {Array} filters\n * @api\n */\nBase.prototype.addFilters = function (filters) {\n var _this = this;\n\n filters.forEach(function (filter) {\n return _this.addFilter(filter);\n });\n};\n\n/**\n * Remove an existing filter from source\n *\n * @param {(carto.filter.Range|carto.filter.Category|carto.filter.AND|carto.filter.OR)} filter\n * @api\n */\nBase.prototype.removeFilter = function (filter) {\n this._appliedFilters.removeFilter(filter);\n this._hasFiltersApplied = Boolean(this._appliedFilters.count());\n};\n\n/**\n * Remove existing filters from source\n *\n * @param {Array} filters\n * @api\n */\nBase.prototype.removeFilters = function (filters) {\n var _this2 = this;\n\n filters.forEach(function (filter) {\n return _this2.removeFilter(filter);\n });\n};\n\nmodule.exports = Base;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _ = __webpack_require__(0);\nvar Backbone = __webpack_require__(1);\nvar Engine = __webpack_require__(44);\n\nvar NON_RESETEABLE_DEFAULT_ATTRS = ['state', 'visible'];\n\nvar LegendModelBase = Backbone.Model.extend({\n defaults: function defaults() {\n return {\n visible: false,\n title: '',\n preHTMLSnippet: '',\n postHTMLSnippet: '',\n state: this.constructor.STATE_LOADING\n };\n },\n\n initialize: function initialize(attrs, deps) {\n if (!deps.engine) throw new Error('engine is required');\n\n deps.engine.on(Engine.Events.RELOAD_STARTED, this._onEngineReloadStarted, this);\n },\n\n _onEngineReloadStarted: function _onEngineReloadStarted() {\n this.set('state', this.constructor.STATE_LOADING);\n },\n\n isLoading: function isLoading() {\n return this.get('state') === this.constructor.STATE_LOADING;\n },\n\n isError: function isError() {\n return this.get('state') === this.constructor.STATE_ERROR;\n },\n\n isSuccess: function isSuccess() {\n return this.get('state') === this.constructor.STATE_SUCCESS;\n },\n\n show: function show() {\n this.set('visible', true);\n },\n\n hide: function hide() {\n this.set('visible', false);\n },\n\n isVisible: function isVisible() {\n return this.get('visible');\n },\n\n update: function update(attrs) {\n this.set(attrs);\n },\n\n getNonResettableAttrs: function getNonResettableAttrs() {\n return NON_RESETEABLE_DEFAULT_ATTRS;\n },\n\n reset: function reset() {\n var defaults = _.omit(this.defaults(), this.getNonResettableAttrs());\n this.set(defaults);\n },\n\n isAvailable: function isAvailable() {\n return false;\n }\n}, {\n STATE_LOADING: 'loading',\n STATE_SUCCESS: 'success',\n STATE_ERROR: 'error'\n});\n\nmodule.exports = LegendModelBase;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Fired when something went wrong on the server side.\n *\n * @event error\n * @type {CartoError}\n * @api\n */\n\n/**\n * Fired when a request to the server completed successfully.\n *\n * @event success\n * @api\n */\n\nmodule.exports = {\n SUCCESS: 'success',\n ERROR: 'error'\n};\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _ = __webpack_require__(0);\n\nvar PROPERTY_KEY = 'prop';\nvar MAPPING_KEY = 'mapping';\n\nvar RANGE_FILTER_TYPE = 'range';\nvar CATEGORY_FILTER_TYPE = 'category';\nvar DEFAULT_FILTER_TYPE = 'default';\n\nvar Rule = function Rule(rule) {\n this._rule = rule;\n};\n\nRule.prototype.matchesAnyProperty = function (props) {\n return this._matches(this._rule[PROPERTY_KEY], props);\n};\n\nRule.prototype.matchesAnyMapping = function (mappings) {\n return this._matches(this._rule[MAPPING_KEY], mappings);\n};\n\nRule.prototype._matches = function (value, acceptedValues) {\n if (_.isString(acceptedValues)) {\n acceptedValues = [acceptedValues];\n }\n return _.contains(acceptedValues, value);\n};\n\nRule.prototype.getBucketsWithRangeFilter = function () {\n return this._getBucketsByFilterType(RANGE_FILTER_TYPE);\n};\n\nRule.prototype.getBucketsWithCategoryFilter = function () {\n return this._getBucketsByFilterType(CATEGORY_FILTER_TYPE);\n};\n\nRule.prototype.getBucketsWithDefaultFilter = function () {\n return this._getBucketsByFilterType(DEFAULT_FILTER_TYPE);\n};\n\nRule.prototype._getBucketsByFilterType = function (filterType) {\n if (this._rule) {\n return _.select(this._rule.buckets, function (bucket) {\n return bucket.filter.type === filterType;\n });\n }\n return [];\n};\n\nRule.prototype.getColumn = function () {\n return this._rule.column;\n};\n\nRule.prototype.getMapping = function () {\n return this._rule.mapping;\n};\n\nRule.prototype.getProperty = function () {\n return this._rule.prop;\n};\n\nRule.prototype.getFilterAvg = function () {\n return this._rule.stats.filter_avg;\n};\n\nmodule.exports = Rule;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar TILED_LAYER_TYPE = 'Tiled';\nvar PLAIN_LAYER_TYPE = 'Plain';\nvar WMS_LAYER_TYPE = 'WMS';\nvar GMAPS_BASE_LAYER_TYPE = 'GMapsBase';\nvar CARTODB_LAYER_TYPE = 'CartoDB';\nvar TORQUE_LAYER_TYPE = 'torque';\n\nvar isLayerOfType = function isLayerOfType(layerModel, layerType) {\n return layerModel.get('type').toLowerCase() === layerType.toLowerCase();\n};\n\nmodule.exports = {\n isTiledLayer: function isTiledLayer(layerModel) {\n return isLayerOfType(layerModel, TILED_LAYER_TYPE);\n },\n\n isPlainLayer: function isPlainLayer(layerModel) {\n return isLayerOfType(layerModel, PLAIN_LAYER_TYPE);\n },\n\n isWMSLayer: function isWMSLayer(layerModel) {\n return isLayerOfType(layerModel, WMS_LAYER_TYPE);\n },\n\n isGoogleMapsBaseLayer: function isGoogleMapsBaseLayer(layerModel) {\n return isLayerOfType(layerModel, GMAPS_BASE_LAYER_TYPE);\n },\n\n isCartoDBLayer: function isCartoDBLayer(layerModel) {\n return isLayerOfType(layerModel, CARTODB_LAYER_TYPE);\n },\n\n isTorqueLayer: function isTorqueLayer(layerModel) {\n return isLayerOfType(layerModel, TORQUE_LAYER_TYPE);\n }\n};\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * jQuery JavaScript Library v2.1.4\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2015-04-28T16:01Z\n */\n\n(function( global, factory ) {\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n}(typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Support: Firefox 18+\n// Can't be in strict mode, several libs including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n//\n\nvar arr = [];\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar support = {};\n\n\n\nvar\n\t// Use the correct document accordingly with window argument (sandbox)\n\tdocument = window.document,\n\n\tversion = \"2.1.4\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android<4.1\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num != null ?\n\n\t\t\t// Return just the one element from the set\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tslice.call( this );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\t// (You can seed the arguments with an array of args, but this is\n\t// only used internally.)\n\teach: function( callback, args ) {\n\t\treturn jQuery.each( this, callback, args );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map(this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t}));\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor(null);\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[0] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction(target) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend({\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type(obj) === \"function\";\n\t},\n\n\tisArray: Array.isArray,\n\n\tisWindow: function( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\t\t// parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t// adding 1 corrects loss of precision from parseFloat (#15100)\n\t\treturn !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\t// Not plain objects:\n\t\t// - Any object or value whose internal [[Class]] property is not \"[object Object]\"\n\t\t// - DOM nodes\n\t\t// - window\n\t\tif ( jQuery.type( obj ) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( obj.constructor &&\n\t\t\t\t!hasOwn.call( obj.constructor.prototype, \"isPrototypeOf\" ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// If the function hasn't returned already, we're confident that\n\t\t// |obj| is a plain object, created by {} or constructed with new Object\n\t\treturn true;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\t\t// Support: Android<4.0, iOS<6 (functionish RegExp)\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call(obj) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code ) {\n\t\tvar script,\n\t\t\tindirect = eval;\n\n\t\tcode = jQuery.trim( code );\n\n\t\tif ( code ) {\n\t\t\t// If the code includes a valid, prologue position\n\t\t\t// strict mode pragma, execute code by injecting a\n\t\t\t// script tag into the document.\n\t\t\tif ( code.indexOf(\"use strict\") === 1 ) {\n\t\t\t\tscript = document.createElement(\"script\");\n\t\t\t\tscript.text = code;\n\t\t\t\tdocument.head.appendChild( script ).parentNode.removeChild( script );\n\t\t\t} else {\n\t\t\t// Otherwise, avoid the DOM node creation, insertion\n\t\t\t// and removal by using an indirect global eval\n\t\t\t\tindirect( code );\n\t\t\t}\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Support: IE9-11+\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\t// args is for internal usage only\n\teach: function( obj, callback, args ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = obj.length,\n\t\t\tisArray = isArraylike( obj );\n\n\t\tif ( args ) {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// A special, fast, case for the most common use of each\n\t\t} else {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android<4.1\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArraylike( Object(arr) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tisArray = isArraylike( elems ),\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArray ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar tmp, args, proxy;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: Date.now,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n});\n\n// Populate the class2type map\njQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nfunction isArraylike( obj ) {\n\n\t// Support: iOS 8.2 (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = \"length\" in obj && obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\tif ( obj.nodeType === 1 && length ) {\n\t\treturn true;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.2.0-pre\n * http://sizzlejs.com/\n *\n * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-16\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// http://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\t// http://www.w3.org/TR/css3-syntax/#characters\n\tcharacterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Loosely modeled on CSS identifier characters\n\t// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\t// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = characterEncoding.replace( \"w\", \"w#\" ),\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + characterEncoding + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + characterEncoding + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + characterEncoding + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + characterEncoding.replace( \"w\", \"w*\" ) + \")\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar match, elem, m, nodeType,\n\t\t// QSA vars\n\t\ti, groups, old, nid, newContext, newSelector;\n\n\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\n\tcontext = context || document;\n\tresults = results || [];\n\tnodeType = context.nodeType;\n\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\tif ( !seed && documentIsHTML ) {\n\n\t\t// Try to shortcut find operations when possible (e.g., not under DocumentFragment)\n\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\t\t\t// Speed-up: Sizzle(\"#ID\")\n\t\t\tif ( (m = match[1]) ) {\n\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\telem = context.getElementById( m );\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document (jQuery #6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE, Opera, and Webkit return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Context is not a document\n\t\t\t\t\tif ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\n\t\t\t\t\t\tcontains( context, elem ) && elem.id === m ) {\n\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Speed-up: Sizzle(\"TAG\")\n\t\t\t} else if ( match[2] ) {\n\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\treturn results;\n\n\t\t\t// Speed-up: Sizzle(\".CLASS\")\n\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName ) {\n\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\treturn results;\n\t\t\t}\n\t\t}\n\n\t\t// QSA path\n\t\tif ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\t\t\tnid = old = expando;\n\t\t\tnewContext = context;\n\t\t\tnewSelector = nodeType !== 1 && selector;\n\n\t\t\t// qSA works strangely on Element-rooted queries\n\t\t\t// We can work around this by specifying an extra ID on the root\n\t\t\t// and working up from there (Thanks to Andrew Dupont for the technique)\n\t\t\t// IE 8 doesn't work on object elements\n\t\t\tif ( nodeType === 1 && context.nodeName.toLowerCase() !== \"object\" ) {\n\t\t\t\tgroups = tokenize( selector );\n\n\t\t\t\tif ( (old = context.getAttribute(\"id\")) ) {\n\t\t\t\t\tnid = old.replace( rescape, \"\\\\$&\" );\n\t\t\t\t} else {\n\t\t\t\t\tcontext.setAttribute( \"id\", nid );\n\t\t\t\t}\n\t\t\t\tnid = \"[id='\" + nid + \"'] \";\n\n\t\t\t\ti = groups.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tgroups[i] = nid + toSelector( groups[i] );\n\t\t\t\t}\n\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;\n\t\t\t\tnewSelector = groups.join(\",\");\n\t\t\t}\n\n\t\t\tif ( newSelector ) {\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch(qsaError) {\n\t\t\t\t} finally {\n\t\t\t\t\tif ( !old ) {\n\t\t\t\t\t\tcontext.removeAttribute(\"id\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {Function(string, Object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = attrs.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, parent,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// If no document and documentElement is available, return\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Set our document\n\tdocument = doc;\n\tdocElem = doc.documentElement;\n\tparent = doc.defaultView;\n\n\t// Support: IE>8\n\t// If iframe document is assigned to \"document\" variable and if iframe has been reloaded,\n\t// IE will throw \"permission denied\" error when accessing \"document\" variable, see jQuery #13936\n\t// IE6-8 do not support the defaultView property so parent will be undefined\n\tif ( parent && parent !== parent.top ) {\n\t\t// IE11 does not have attachEvent, so all must suffer\n\t\tif ( parent.addEventListener ) {\n\t\t\tparent.addEventListener( \"unload\", unloadHandler, false );\n\t\t} else if ( parent.attachEvent ) {\n\t\t\tparent.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Support tests\n\t---------------------------------------------------------------------- */\n\tdocumentIsHTML = !isXML( doc );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( doc.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( doc.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !doc.getElementsByName || !doc.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\treturn m && m.parentNode ? [ m ] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( div ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( div.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+\n\t\t\tif ( !div.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibing-combinator selector` fails\n\t\t\tif ( !div.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = doc.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( div.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully does not implement inclusive descendent\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === doc ? -1 :\n\t\t\t\tb === doc ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn doc;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, diff, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || (parent[ expando ] = {});\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\n\t\t\t\t\t\t\tdiff = cache[0] === dirruns && cache[2];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {\n\t\t\t\t\t\t\tdiff = cache[1];\n\n\t\t\t\t\t\t// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\tif ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {\n\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\t\t\t\t\t\tif ( (oldCache = outerCache[ dir ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ dir ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context !== document && context;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Keep `i` a string if there are no elements so `matchedCount` will be \"00\" below\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\tmatchedCount += i;\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is no seed and only one group\n\tif ( match.length === 1 ) {\n\n\t\t// Take a shortcut and set the context if the root selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\trsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[\":\"] = jQuery.expr.pseudos;\njQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = (/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/);\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t});\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t});\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( risSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( indexOf.call( qualifier, elem ) >= 0 ) !== not;\n\t});\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t}));\n};\n\njQuery.fn.extend({\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tlen = this.length,\n\t\t\tret = [],\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter(function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], false) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], true) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n});\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\tinit = jQuery.fn.init = function( selector, context ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[0] === \"<\" && selector[ selector.length - 1 ] === \">\" && selector.length >= 3 ) {\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && (match[1] || !context) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[1] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[1],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[2] );\n\n\t\t\t\t\t// Support: Blackberry 4.6\n\t\t\t\t\t// gEBID returns nodes no longer in the document (#6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[0] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[0] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn typeof rootjQuery.ready !== \"undefined\" ?\n\t\t\t\trootjQuery.ready( selector ) :\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.extend({\n\tdir: function( elem, dir, until ) {\n\t\tvar matched = [],\n\t\t\ttruncate = until !== undefined;\n\n\t\twhile ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tmatched.push( elem );\n\t\t\t}\n\t\t}\n\t\treturn matched;\n\t},\n\n\tsibling: function( n, elem ) {\n\t\tvar matched = [];\n\n\t\tfor ( ; n; n = n.nextSibling ) {\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\t\tmatched.push( n );\n\t\t\t}\n\t\t}\n\n\t\treturn matched;\n\t}\n});\n\njQuery.fn.extend({\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter(function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[i] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && (pos ?\n\t\t\t\t\tpos.index(cur) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector(cur, selectors)) ) {\n\n\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.unique(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter(selector)\n\t\t);\n\t}\n});\n\nfunction sibling( cur, dir ) {\n\twhile ( (cur = cur[dir]) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each({\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn jQuery.dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn jQuery.sibling( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn elem.contentDocument || jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.unique( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n});\nvar rnotwhite = (/\\S+/g);\n\n\n\n// String to Object options format cache\nvar optionsCache = {};\n\n// Convert String-formatted options into Object-formatted ones and store in cache\nfunction createOptions( options ) {\n\tvar object = optionsCache[ options ] = {};\n\tjQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t});\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\t( optionsCache[ options ] || createOptions( options ) ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Last fire value (for non-forgettable lists)\n\t\tmemory,\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\t\t// Flag to know if list is currently firing\n\t\tfiring,\n\t\t// First callback to fire (used internally by add and fireWith)\n\t\tfiringStart,\n\t\t// End of the loop when firing\n\t\tfiringLength,\n\t\t// Index of currently firing callback (modified by remove if needed)\n\t\tfiringIndex,\n\t\t// Actual callback list\n\t\tlist = [],\n\t\t// Stack of fire calls for repeatable lists\n\t\tstack = !options.once && [],\n\t\t// Fire callbacks\n\t\tfire = function( data ) {\n\t\t\tmemory = options.memory && data;\n\t\t\tfired = true;\n\t\t\tfiringIndex = firingStart || 0;\n\t\t\tfiringStart = 0;\n\t\t\tfiringLength = list.length;\n\t\t\tfiring = true;\n\t\t\tfor ( ; list && firingIndex < firingLength; firingIndex++ ) {\n\t\t\t\tif ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {\n\t\t\t\t\tmemory = false; // To prevent further calls using add\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiring = false;\n\t\t\tif ( list ) {\n\t\t\t\tif ( stack ) {\n\t\t\t\t\tif ( stack.length ) {\n\t\t\t\t\t\tfire( stack.shift() );\n\t\t\t\t\t}\n\t\t\t\t} else if ( memory ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t} else {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Actual Callbacks object\n\t\tself = {\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\t// First, we save the current length\n\t\t\t\t\tvar start = list.length;\n\t\t\t\t\t(function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tvar type = jQuery.type( arg );\n\t\t\t\t\t\t\tif ( type === \"function\" ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && type !== \"string\" ) {\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})( arguments );\n\t\t\t\t\t// Do we need to add the callbacks to the\n\t\t\t\t\t// current firing batch?\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tfiringLength = list.length;\n\t\t\t\t\t// With memory, if we're not firing then\n\t\t\t\t\t// we should call right away\n\t\t\t\t\t} else if ( memory ) {\n\t\t\t\t\t\tfiringStart = start;\n\t\t\t\t\t\tfire( memory );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\t\tvar index;\n\t\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\t\tlist.splice( index, 1 );\n\t\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\t\t\tif ( index <= firingLength ) {\n\t\t\t\t\t\t\t\t\tfiringLength--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );\n\t\t\t},\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tlist = [];\n\t\t\t\tfiringLength = 0;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Have the list do nothing anymore\n\t\t\tdisable: function() {\n\t\t\t\tlist = stack = memory = undefined;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it disabled?\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\t\t\t// Lock the list in its current state\n\t\t\tlock: function() {\n\t\t\t\tstack = undefined;\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it locked?\n\t\t\tlocked: function() {\n\t\t\t\treturn !stack;\n\t\t\t},\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( list && ( !fired || stack ) ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tstack.push( args );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfire( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\njQuery.extend({\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks(\"memory\") ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred(function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[1] ](function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject )\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t}).promise();\n\t\t\t\t},\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[1] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(function() {\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[0] ] = function() {\n\t\t\t\tdeferred[ tuple[0] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[0] + \"With\" ] = list.fireWith;\n\t\t});\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred. If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\t\t\t\t\t} else if ( !( --remaining ) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// Add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject )\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n});\n\n\n// The deferred used on DOM ready\nvar readyList;\n\njQuery.fn.ready = function( fn ) {\n\t// Add the callback\n\tjQuery.ready.promise().done( fn );\n\n\treturn this;\n};\n\njQuery.extend({\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.triggerHandler ) {\n\t\t\tjQuery( document ).triggerHandler( \"ready\" );\n\t\t\tjQuery( document ).off( \"ready\" );\n\t\t}\n\t}\n});\n\n/**\n * The ready event handler and self cleanup method\n */\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed, false );\n\twindow.removeEventListener( \"load\", completed, false );\n\tjQuery.ready();\n}\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called after the browser event has already occurred.\n\t\t// We once tried to use readyState \"interactive\" here, but it caused issues like the one\n\t\t// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15\n\t\tif ( document.readyState === \"complete\" ) {\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\tsetTimeout( jQuery.ready );\n\n\t\t} else {\n\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed, false );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed, false );\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n// Kick off the DOM ready check even if the user does not\njQuery.ready.promise();\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\tjQuery.access( elems, fn, i, key[i], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn chainable ?\n\t\telems :\n\n\t\t// Gets\n\t\tbulk ?\n\t\t\tfn.call( elems ) :\n\t\t\tlen ? fn( elems[0], key ) : emptyGet;\n};\n\n\n/**\n * Determines whether an object can have data\n */\njQuery.acceptData = function( owner ) {\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\t/* jshint -W018 */\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\nfunction Data() {\n\t// Support: Android<4,\n\t// Old WebKit does not have Object.preventExtensions/freeze method,\n\t// return new empty object instead with no [[set]] accessor\n\tObject.defineProperty( this.cache = {}, 0, {\n\t\tget: function() {\n\t\t\treturn {};\n\t\t}\n\t});\n\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\nData.accepts = jQuery.acceptData;\n\nData.prototype = {\n\tkey: function( owner ) {\n\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t// but we should not, see #8335.\n\t\t// Always return the key for a frozen object.\n\t\tif ( !Data.accepts( owner ) ) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar descriptor = {},\n\t\t\t// Check if the owner object already has a cache key\n\t\t\tunlock = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !unlock ) {\n\t\t\tunlock = Data.uid++;\n\n\t\t\t// Secure it in a non-enumerable, non-writable property\n\t\t\ttry {\n\t\t\t\tdescriptor[ this.expando ] = { value: unlock };\n\t\t\t\tObject.defineProperties( owner, descriptor );\n\n\t\t\t// Support: Android<4\n\t\t\t// Fallback to a less secure definition\n\t\t\t} catch ( e ) {\n\t\t\t\tdescriptor[ this.expando ] = unlock;\n\t\t\t\tjQuery.extend( owner, descriptor );\n\t\t\t}\n\t\t}\n\n\t\t// Ensure the cache object\n\t\tif ( !this.cache[ unlock ] ) {\n\t\t\tthis.cache[ unlock ] = {};\n\t\t}\n\n\t\treturn unlock;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\t// There may be an unlock assigned to this node,\n\t\t\t// if there is no entry for this \"owner\", create one inline\n\t\t\t// and set the unlock as though an owner entry had always existed\n\t\t\tunlock = this.key( owner ),\n\t\t\tcache = this.cache[ unlock ];\n\n\t\t// Handle: [ owner, key, value ] args\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ data ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\t\t\t// Fresh assignments by object are shallow copied\n\t\t\tif ( jQuery.isEmptyObject( cache ) ) {\n\t\t\t\tjQuery.extend( this.cache[ unlock ], data );\n\t\t\t// Otherwise, copy the properties one-by-one to the cache object\n\t\t\t} else {\n\t\t\t\tfor ( prop in data ) {\n\t\t\t\t\tcache[ prop ] = data[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\t// Either a valid cache is found, or will be created.\n\t\t// New caches will be created and the unlock returned,\n\t\t// allowing direct access to the newly created\n\t\t// empty data object. A valid owner object must be provided.\n\t\tvar cache = this.cache[ this.key( owner ) ];\n\n\t\treturn key === undefined ?\n\t\t\tcache : cache[ key ];\n\t},\n\taccess: function( owner, key, value ) {\n\t\tvar stored;\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t((key && typeof key === \"string\") && value === undefined) ) {\n\n\t\t\tstored = this.get( owner, key );\n\n\t\t\treturn stored !== undefined ?\n\t\t\t\tstored : this.get( owner, jQuery.camelCase(key) );\n\t\t}\n\n\t\t// [*]When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i, name, camel,\n\t\t\tunlock = this.key( owner ),\n\t\t\tcache = this.cache[ unlock ];\n\n\t\tif ( key === undefined ) {\n\t\t\tthis.cache[ unlock ] = {};\n\n\t\t} else {\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( jQuery.isArray( key ) ) {\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = key.concat( key.map( jQuery.camelCase ) );\n\t\t\t} else {\n\t\t\t\tcamel = jQuery.camelCase( key );\n\t\t\t\t// Try the string as a key before any manipulation\n\t\t\t\tif ( key in cache ) {\n\t\t\t\t\tname = [ key, camel ];\n\t\t\t\t} else {\n\t\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\t\tname = camel;\n\t\t\t\t\tname = name in cache ?\n\t\t\t\t\t\t[ name ] : ( name.match( rnotwhite ) || [] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti = name.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ name[ i ] ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\treturn !jQuery.isEmptyObject(\n\t\t\tthis.cache[ owner[ this.expando ] ] || {}\n\t\t);\n\t},\n\tdiscard: function( owner ) {\n\t\tif ( owner[ this.expando ] ) {\n\t\t\tdelete this.cache[ owner[ this.expando ] ];\n\t\t}\n\t}\n};\nvar data_priv = new Data();\n\nvar data_user = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /([A-Z])/g;\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$1\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdata_user.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend({\n\thasData: function( elem ) {\n\t\treturn data_user.hasData( elem ) || data_priv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn data_user.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdata_user.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to data_priv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn data_priv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdata_priv.remove( elem, name );\n\t}\n});\n\njQuery.fn.extend({\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = data_user.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !data_priv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE11+\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice(5) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata_priv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each(function() {\n\t\t\t\tdata_user.set( this, key );\n\t\t\t});\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data,\n\t\t\t\tcamelKey = jQuery.camelCase( key );\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key as-is\n\t\t\t\tdata = data_user.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key camelized\n\t\t\t\tdata = data_user.get( elem, camelKey );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, camelKey, undefined );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each(function() {\n\t\t\t\t// First, attempt to store a copy or reference of any\n\t\t\t\t// data that might've been store with a camelCased key.\n\t\t\t\tvar data = data_user.get( this, camelKey );\n\n\t\t\t\t// For HTML5 data-* attribute interop, we have to\n\t\t\t\t// store property names with dashes in a camelCase form.\n\t\t\t\t// This might not apply to all properties...*\n\t\t\t\tdata_user.set( this, camelKey, value );\n\n\t\t\t\t// *... In the case of properties that might _actually_\n\t\t\t\t// have dashes, we need to also store a copy of that\n\t\t\t\t// unchanged property.\n\t\t\t\tif ( key.indexOf(\"-\") !== -1 && data !== undefined ) {\n\t\t\t\t\tdata_user.set( this, key, value );\n\t\t\t\t}\n\t\t\t});\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each(function() {\n\t\t\tdata_user.remove( this, key );\n\t\t});\n\t}\n});\n\n\njQuery.extend({\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = data_priv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray( data ) ) {\n\t\t\t\t\tqueue = data_priv.access( elem, type, jQuery.makeArray(data) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn data_priv.get( elem, key ) || data_priv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function() {\n\t\t\t\tdata_priv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t})\n\t\t});\n\t}\n});\n\njQuery.fn.extend({\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[0], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each(function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[0] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t});\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t});\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = data_priv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n});\nvar pnum = (/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/).source;\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHidden = function( elem, el ) {\n\t\t// isHidden might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\t\treturn jQuery.css( elem, \"display\" ) === \"none\" || !jQuery.contains( elem.ownerDocument, elem );\n\t};\n\nvar rcheckableType = (/^(?:checkbox|radio)$/i);\n\n\n\n(function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Safari<=5.1\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Safari<=5.1, Android<4.2\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<=11+\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n})();\nvar strundefined = typeof undefined;\n\n\n\nsupport.focusinBubbles = \"onfocusin\" in window;\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = data_priv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !(events = elemData.events) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !(eventHandle = elemData.handle) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend({\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join(\".\")\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !(handlers = events[ type ]) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = data_priv.hasData( elem ) && data_priv.get( elem );\n\n\t\tif ( !elemData || !(events = elemData.events) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[2] && new RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdelete elemData.handle;\n\t\t\tdata_priv.remove( elem, \"events\" );\n\t\t}\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split(\".\") : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf(\".\") >= 0 ) {\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split(\".\");\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join(\".\");\n\t\tevent.namespace_re = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === (elem.ownerDocument || document) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( data_priv.get( cur, \"events\" ) || {} )[ event.type ] && data_priv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && jQuery.acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&\n\t\t\t\tjQuery.acceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\telem[ type ]();\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, j, ret, matched, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\targs = slice.call( arguments ),\n\t\t\thandlers = ( data_priv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[0] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\n\t\t\t\t\t\t\t.apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( (event.result = ret) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, matches, sel, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG instance trees (#13180)\n\t\t// Avoid non-left-click bubbling in Firefox (#3861)\n\t\tif ( delegateCount && cur.nodeType && (!event.button || event.type !== \"click\") ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.disabled !== true || event.type !== \"click\" ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) >= 0 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: matches });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: \"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\t\t\tvar eventDoc, doc, body,\n\t\t\t\tbutton = original.button;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: Cordova 2.5 (WebKit) (#13255)\n\t\t// All events should have a target; Cordova deviceready doesn't\n\t\tif ( !event.target ) {\n\t\t\tevent.target = document;\n\t\t}\n\n\t\t// Support: Safari 6.0+, Chrome<28\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\tspecial: {\n\t\tload: {\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\tthis.focus();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this.type === \"checkbox\" && this.click && jQuery.nodeName( this, \"input\" ) ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tsimulate: function( type, elem, event, bubble ) {\n\t\t// Piggyback on a donor event to simulate a different one.\n\t\t// Fake originalEvent to avoid donor's stopPropagation, but if the\n\t\t// simulated event prevents default then we do the same on the donor.\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true,\n\t\t\t\toriginalEvent: {}\n\t\t\t}\n\t\t);\n\t\tif ( bubble ) {\n\t\t\tjQuery.event.trigger( e, null, elem );\n\t\t} else {\n\t\t\tjQuery.event.dispatch.call( elem, e );\n\t\t}\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\njQuery.removeEvent = function( elem, type, handle ) {\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle, false );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\t// Allow instantiation without the 'new' keyword\n\tif ( !(this instanceof jQuery.Event) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\t\t\t\t// Support: Android<4.0\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && e.preventDefault ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && e.stopPropagation ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && e.stopImmediatePropagation ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// Support: Chrome 15+\njQuery.each({\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mousenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || (related !== target && !jQuery.contains( target, related )) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n});\n\n// Support: Firefox, Chrome, Safari\n// Create \"bubbling\" focus and blur events\nif ( !support.focusinBubbles ) {\n\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );\n\t\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = data_priv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdata_priv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = data_priv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdata_priv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdata_priv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\njQuery.fn.extend({\n\n\ton: function( types, selector, data, fn, /*INTERNAL*/ one ) {\n\t\tvar origFn, type;\n\n\t\t// Types can be a map of types/handlers\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-Object, selector, data )\n\t\t\tif ( typeof selector !== \"string\" ) {\n\t\t\t\t// ( types-Object, data )\n\t\t\t\tdata = data || selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.on( type, selector, data, types[ type ], one );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( data == null && fn == null ) {\n\t\t\t// ( types, fn )\n\t\t\tfn = selector;\n\t\t\tdata = selector = undefined;\n\t\t} else if ( fn == null ) {\n\t\t\tif ( typeof selector === \"string\" ) {\n\t\t\t\t// ( types, selector, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = undefined;\n\t\t\t} else {\n\t\t\t\t// ( types, data, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t} else if ( !fn ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( one === 1 ) {\n\t\t\torigFn = fn;\n\t\t\tfn = function( event ) {\n\t\t\t\t// Can use an empty set, since event contains the info\n\t\t\t\tjQuery().off( event );\n\t\t\t\treturn origFn.apply( this, arguments );\n\t\t\t};\n\t\t\t// Use same guid so caller can remove using origFn\n\t\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.add( this, types, fn, data, selector );\n\t\t});\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn this.on( types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t});\n\t},\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t});\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[0];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n});\n\n\nvar\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,\n\trtagName = /<([\\w:]+)/,\n\trhtml = /<|&#?\\w+;/,\n\trnoInnerhtml = /<(?:script|style|link)/i,\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trscriptType = /^$|\\/(?:java|ecma)script/i,\n\trscriptTypeMasked = /^true\\/(.*)/,\n\trcleanScript = /^\\s*\\s*$/g,\n\n\t// We have to close these tags to support XHTML (#13200)\n\twrapMap = {\n\n\t\t// Support: IE9\n\t\toption: [ 1, \"\" ],\n\n\t\tthead: [ 1, \"\", \"
\" ],\n\t\tcol: [ 2, \"\", \"
\" ],\n\t\ttr: [ 2, \"\", \"
\" ],\n\t\ttd: [ 3, \"\", \"
\" ],\n\n\t\t_default: [ 0, \"\", \"\" ]\n\t};\n\n// Support: IE9\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: 1.x compatibility\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName(\"tbody\")[0] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement(\"tbody\") ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\n\tif ( match ) {\n\t\telem.type = match[ 1 ];\n\t} else {\n\t\telem.removeAttribute(\"type\");\n\t}\n\n\treturn elem;\n}\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdata_priv.set(\n\t\t\telems[ i ], \"globalEval\", !refElements || data_priv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( data_priv.hasData( src ) ) {\n\t\tpdataOld = data_priv.access( src );\n\t\tpdataCur = data_priv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.events = {};\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( data_user.hasData( src ) ) {\n\t\tudataOld = data_user.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdata_user.set( dest, udataCur );\n\t}\n}\n\nfunction getAll( context, tag ) {\n\tvar ret = context.getElementsByTagName ? context.getElementsByTagName( tag || \"*\" ) :\n\t\t\tcontext.querySelectorAll ? context.querySelectorAll( tag || \"*\" ) :\n\t\t\t[];\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], ret ) :\n\t\tret;\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\njQuery.extend({\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tbuildFragment: function( elems, context, scripts, selection ) {\n\t\tvar elem, tmp, tag, wrap, contains, j,\n\t\t\tfragment = context.createDocumentFragment(),\n\t\t\tnodes = [],\n\t\t\ti = 0,\n\t\t\tl = elems.length;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\telem = elems[ i ];\n\n\t\t\tif ( elem || elem === 0 ) {\n\n\t\t\t\t// Add nodes directly\n\t\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\t\t\t\t\t// Support: QtWebKit, PhantomJS\n\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t\t// Convert non-html into a text node\n\t\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t\t// Convert html into DOM nodes\n\t\t\t\t} else {\n\t\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement(\"div\") );\n\n\t\t\t\t\t// Deserialize a standard representation\n\t\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\t\ttmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, \"<$1>\" ) + wrap[ 2 ];\n\n\t\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\t\tj = wrap[ 0 ];\n\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: QtWebKit, PhantomJS\n\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t\t// Remember the top-level container\n\t\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\t\ttmp.textContent = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Remove wrapper from fragment\n\t\tfragment.textContent = \"\";\n\n\t\ti = 0;\n\t\twhile ( (elem = nodes[ i++ ]) ) {\n\n\t\t\t// #4087 - If origin and destination elements are the same, and this is\n\t\t\t// that element, do not do anything\n\t\t\tif ( selection && jQuery.inArray( elem, selection ) !== -1 ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t\t// Append to fragment\n\t\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t\t// Preserve script evaluation history\n\t\t\tif ( contains ) {\n\t\t\t\tsetGlobalEval( tmp );\n\t\t\t}\n\n\t\t\t// Capture executables\n\t\t\tif ( scripts ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (elem = tmp[ j++ ]) ) {\n\t\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\t\tscripts.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn fragment;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type, key,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = elems[ i ]) !== undefined; i++ ) {\n\t\t\tif ( jQuery.acceptData( elem ) ) {\n\t\t\t\tkey = elem[ data_priv.expando ];\n\n\t\t\t\tif ( key && (data = data_priv.cache[ key ]) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( data_priv.cache[ key ] ) {\n\t\t\t\t\t\t// Discard any remaining `private` data\n\t\t\t\t\t\tdelete data_priv.cache[ key ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Discard any remaining `user` data\n\t\t\tdelete data_user.cache[ elem[ data_user.expando ] ];\n\t\t}\n\t}\n});\n\njQuery.fn.extend({\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each(function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t});\n\t},\n\n\tprepend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t});\n\t},\n\n\tbefore: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t});\n\t},\n\n\tafter: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t});\n\t},\n\n\tremove: function( selector, keepData /* Internal Use Only */ ) {\n\t\tvar elem,\n\t\t\telems = selector ? jQuery.filter( selector, this ) : this,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( !keepData && elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem ) );\n\t\t\t}\n\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\tif ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\t\tsetGlobalEval( getAll( elem, \"script\" ) );\n\t\t\t\t}\n\t\t\t\telem.parentNode.removeChild( elem );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = this[i]) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map(function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t});\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = value.replace( rxhtmlTag, \"<$1>\" );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar arg = arguments[ 0 ];\n\n\t\t// Make the changes, replacing each context element with the new content\n\t\tthis.domManip( arguments, function( elem ) {\n\t\t\targ = this.parentNode;\n\n\t\t\tjQuery.cleanData( getAll( this ) );\n\n\t\t\tif ( arg ) {\n\t\t\t\targ.replaceChild( elem, this );\n\t\t\t}\n\t\t});\n\n\t\t// Force removal if there was no new content (e.g., from empty arguments)\n\t\treturn arg && (arg.length || arg.nodeType) ? this : this.remove();\n\t},\n\n\tdetach: function( selector ) {\n\t\treturn this.remove( selector, true );\n\t},\n\n\tdomManip: function( args, callback ) {\n\n\t\t// Flatten any nested arrays\n\t\targs = concat.apply( [], args );\n\n\t\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tset = this,\n\t\t\tiNoClone = l - 1,\n\t\t\tvalue = args[ 0 ],\n\t\t\tisFunction = jQuery.isFunction( value );\n\n\t\t// We can't cloneNode fragments that contain checked, in WebKit\n\t\tif ( isFunction ||\n\t\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\t\treturn this.each(function( index ) {\n\t\t\t\tvar self = set.eq( index );\n\t\t\t\tif ( isFunction ) {\n\t\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t\t}\n\t\t\t\tself.domManip( args, callback );\n\t\t\t});\n\t\t}\n\n\t\tif ( l ) {\n\t\t\tfragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );\n\t\t\tfirst = fragment.firstChild;\n\n\t\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\t\tfragment = first;\n\t\t\t}\n\n\t\t\tif ( first ) {\n\t\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\t\thasScripts = scripts.length;\n\n\t\t\t\t// Use the original fragment for the last item instead of the first because it can end up\n\t\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\tnode = fragment;\n\n\t\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\t\t\t// Support: QtWebKit\n\t\t\t\t\t\t\t// jQuery.merge because push.apply(_, arraylike) throws\n\t\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback.call( this[ i ], node, i );\n\t\t\t\t}\n\n\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t\t// Reenable scripts\n\t\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t\t!data_priv.access( node, \"globalEval\" ) && jQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\t\tif ( node.src ) {\n\t\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.globalEval( node.textContent.replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n});\n\njQuery.each({\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: QtWebKit\n\t\t\t// .get() because push.apply(_, arraylike) throws\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\n\nvar iframe,\n\telemdisplay = {};\n\n/**\n * Retrieve the actual display of a element\n * @param {String} name nodeName of the element\n * @param {Object} doc Document object\n */\n// Called only from within defaultDisplay\nfunction actualDisplay( name, doc ) {\n\tvar style,\n\t\telem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),\n\n\t\t// getDefaultComputedStyle might be reliably used only on attached element\n\t\tdisplay = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?\n\n\t\t\t// Use of this method is a temporary fix (more like optimization) until something better comes along,\n\t\t\t// since it was removed from specification and supported only in FF\n\t\t\tstyle.display : jQuery.css( elem[ 0 ], \"display\" );\n\n\t// We don't have any data stored on the element,\n\t// so use \"detach\" method as fast way to get rid of the element\n\telem.detach();\n\n\treturn display;\n}\n\n/**\n * Try to determine the default display value of an element\n * @param {String} nodeName\n */\nfunction defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = (iframe || jQuery( \"