@performant-software/geospatial 2.2.24-beta.34 → 2.2.24-beta.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/dist/index.cjs14.js +1 -1
  2. package/dist/index.cjs15.js +1 -1
  3. package/dist/index.cjs17.js +1 -1
  4. package/dist/index.cjs190.js +1 -1
  5. package/dist/index.cjs190.js.map +1 -1
  6. package/dist/index.cjs191.js +1 -1
  7. package/dist/index.cjs191.js.map +1 -1
  8. package/dist/index.cjs192.js +4 -1
  9. package/dist/index.cjs192.js.map +1 -1
  10. package/dist/index.cjs193.js +1 -4
  11. package/dist/index.cjs193.js.map +1 -1
  12. package/dist/index.cjs194.js +1 -1
  13. package/dist/index.cjs194.js.map +1 -1
  14. package/dist/index.cjs195.js +1 -1
  15. package/dist/index.cjs195.js.map +1 -1
  16. package/dist/index.cjs196.js +1 -1
  17. package/dist/index.cjs196.js.map +1 -1
  18. package/dist/index.cjs197.js +1 -1
  19. package/dist/index.cjs197.js.map +1 -1
  20. package/dist/index.cjs198.js +1 -1
  21. package/dist/index.cjs198.js.map +1 -1
  22. package/dist/index.cjs199.js +1 -1
  23. package/dist/index.cjs199.js.map +1 -1
  24. package/dist/index.cjs200.js +1 -1
  25. package/dist/index.cjs200.js.map +1 -1
  26. package/dist/index.cjs201.js +1 -1
  27. package/dist/index.cjs201.js.map +1 -1
  28. package/dist/index.cjs202.js +1 -1
  29. package/dist/index.cjs202.js.map +1 -1
  30. package/dist/index.cjs203.js +1 -1
  31. package/dist/index.cjs203.js.map +1 -1
  32. package/dist/index.cjs204.js +1 -1
  33. package/dist/index.cjs204.js.map +1 -1
  34. package/dist/index.cjs205.js +1 -1
  35. package/dist/index.cjs205.js.map +1 -1
  36. package/dist/index.cjs208.js +1 -1
  37. package/dist/index.cjs228.js +1 -1
  38. package/dist/index.cjs235.js +1 -1
  39. package/dist/index.cjs235.js.map +1 -1
  40. package/dist/index.cjs236.js +1 -1
  41. package/dist/index.cjs236.js.map +1 -1
  42. package/dist/index.cjs239.js +1 -1
  43. package/dist/index.cjs242.js +1 -1
  44. package/dist/index.cjs248.js +1 -1
  45. package/dist/index.cjs254.js +1 -1
  46. package/dist/index.cjs259.js +1 -1
  47. package/dist/index.cjs26.js +1 -1
  48. package/dist/index.cjs56.js +1 -1
  49. package/dist/index.cjs58.js +1 -1
  50. package/dist/index.cjs62.js +9 -1
  51. package/dist/index.cjs62.js.map +1 -1
  52. package/dist/index.cjs63.js +13 -3
  53. package/dist/index.cjs63.js.map +1 -1
  54. package/dist/index.cjs64.js +1 -19
  55. package/dist/index.cjs64.js.map +1 -1
  56. package/dist/index.cjs76.js +1 -1
  57. package/dist/index.cjs76.js.map +1 -1
  58. package/dist/index.cjs77.js +1 -1
  59. package/dist/index.cjs77.js.map +1 -1
  60. package/dist/index.cjs78.js +1 -1
  61. package/dist/index.cjs78.js.map +1 -1
  62. package/dist/index.cjs79.js +1 -1
  63. package/dist/index.cjs79.js.map +1 -1
  64. package/dist/index.cjs80.js +1 -1
  65. package/dist/index.cjs80.js.map +1 -1
  66. package/dist/index.es14.js +1 -1
  67. package/dist/index.es15.js +3 -3
  68. package/dist/index.es17.js +3 -3
  69. package/dist/index.es190.js +8 -2
  70. package/dist/index.es190.js.map +1 -1
  71. package/dist/index.es191.js +147 -7
  72. package/dist/index.es191.js.map +1 -1
  73. package/dist/index.es192.js +12188 -139
  74. package/dist/index.es192.js.map +1 -1
  75. package/dist/index.es193.js +3 -12199
  76. package/dist/index.es193.js.map +1 -1
  77. package/dist/index.es194.js +1 -1
  78. package/dist/index.es194.js.map +1 -1
  79. package/dist/index.es195.js +38 -3
  80. package/dist/index.es195.js.map +1 -1
  81. package/dist/index.es196.js +3 -38
  82. package/dist/index.es196.js.map +1 -1
  83. package/dist/index.es197.js +25 -3
  84. package/dist/index.es197.js.map +1 -1
  85. package/dist/index.es198.js +2 -25
  86. package/dist/index.es198.js.map +1 -1
  87. package/dist/index.es199.js +1 -0
  88. package/dist/index.es199.js.map +1 -1
  89. package/dist/index.es200.js +0 -1
  90. package/dist/index.es200.js.map +1 -1
  91. package/dist/index.es201.js +34 -2
  92. package/dist/index.es201.js.map +1 -1
  93. package/dist/index.es202.js +13 -32
  94. package/dist/index.es202.js.map +1 -1
  95. package/dist/index.es203.js +12 -11
  96. package/dist/index.es203.js.map +1 -1
  97. package/dist/index.es204.js +8 -13
  98. package/dist/index.es204.js.map +1 -1
  99. package/dist/index.es205.js +2 -9
  100. package/dist/index.es205.js.map +1 -1
  101. package/dist/index.es208.js +1 -1
  102. package/dist/index.es228.js +1 -1
  103. package/dist/index.es235.js +8 -3
  104. package/dist/index.es235.js.map +1 -1
  105. package/dist/index.es236.js +3 -8
  106. package/dist/index.es236.js.map +1 -1
  107. package/dist/index.es239.js +1 -1
  108. package/dist/index.es242.js +1 -1
  109. package/dist/index.es248.js +2 -2
  110. package/dist/index.es254.js +1 -1
  111. package/dist/index.es259.js +2 -2
  112. package/dist/index.es26.js +1 -1
  113. package/dist/index.es56.js +1 -1
  114. package/dist/index.es58.js +6 -6
  115. package/dist/index.es61.js +2 -2
  116. package/dist/index.es62.js +30 -2
  117. package/dist/index.es62.js.map +1 -1
  118. package/dist/index.es63.js +593 -21
  119. package/dist/index.es63.js.map +1 -1
  120. package/dist/index.es64.js +2 -602
  121. package/dist/index.es64.js.map +1 -1
  122. package/dist/index.es76.js +2 -28
  123. package/dist/index.es76.js.map +1 -1
  124. package/dist/index.es77.js +2 -51
  125. package/dist/index.es77.js.map +1 -1
  126. package/dist/index.es78.js +25 -62
  127. package/dist/index.es78.js.map +1 -1
  128. package/dist/index.es79.js +51 -2
  129. package/dist/index.es79.js.map +1 -1
  130. package/dist/index.es80.js +65 -2
  131. package/dist/index.es80.js.map +1 -1
  132. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";const Re=require("./index.cjs59.js"),Zn=require("./index.cjs61.js");(function(Wn,ao){(function(ze,de){Wn.exports=de()})(Re.commonjsGlobal,function(){var ze=function(e,t){var n={drag:[],click:[],mousemove:[],mousedown:[],mouseup:[],mouseout:[],keydown:[],keyup:[],touchstart:[],touchmove:[],touchend:[],tap:[]},r={on:function(i,a,l){if(n[i]===void 0)throw new Error("Invalid event type: "+i);n[i].push({selector:a,fn:l})},render:function(i){t.store.featureChanged(i)}},o=function(i,a){for(var l=n[i],d=l.length;d--;){var h=l[d];if(h.selector(a)){h.fn.call(r,a)||t.store.render(),t.ui.updateMapClasses();break}}};return e.start.call(r),{render:e.render,stop:function(){e.stop&&e.stop()},trash:function(){e.trash&&(e.trash(),t.store.render())},combineFeatures:function(){e.combineFeatures&&e.combineFeatures()},uncombineFeatures:function(){e.uncombineFeatures&&e.uncombineFeatures()},drag:function(i){o("drag",i)},click:function(i){o("click",i)},mousemove:function(i){o("mousemove",i)},mousedown:function(i){o("mousedown",i)},mouseup:function(i){o("mouseup",i)},mouseout:function(i){o("mouseout",i)},keydown:function(i){o("keydown",i)},keyup:function(i){o("keyup",i)},touchstart:function(i){o("touchstart",i)},touchmove:function(i){o("touchmove",i)},touchend:function(i){o("touchend",i)},tap:function(i){o("tap",i)}}};function de(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Kn(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){if(this instanceof r){var o=[null];o.push.apply(o,arguments);var i=Function.bind.apply(t,o);return new i}return t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}),n}var Et={},Qn={RADIUS:6378137,FLATTENING:1/298.257223563,POLAR_RADIUS:63567523142e-4},Xt=Qn;function Zt(e){var t=0;if(e&&e.length>0){t+=Math.abs(Tt(e[0]));for(var n=1;n<e.length;n++)t-=Math.abs(Tt(e[n]))}return t}function Tt(e){var t,n,r,o,i,a,l=0,d=e.length;if(d>2){for(a=0;a<d;a++)a===d-2?(r=d-2,o=d-1,i=0):a===d-1?(r=d-1,o=0,i=1):(r=a,o=a+1,i=a+2),t=e[r],n=e[o],l+=(Ct(e[i][0])-Ct(t[0]))*Math.sin(Ct(n[1]));l=l*Xt.RADIUS*Xt.RADIUS/2}return l}function Ct(e){return e*Math.PI/180}Et.geometry=function e(t){var n,r=0;switch(t.type){case"Polygon":return Zt(t.coordinates);case"MultiPolygon":for(n=0;n<t.coordinates.length;n++)r+=Zt(t.coordinates[n]);return r;case"Point":case"MultiPoint":case"LineString":case"MultiLineString":return 0;case"GeometryCollection":for(n=0;n<t.geometries.length;n++)r+=e(t.geometries[n]);return r}},Et.ring=Tt;var q={CONTROL_BASE:"mapboxgl-ctrl",CONTROL_PREFIX:"mapboxgl-ctrl-",CONTROL_BUTTON:"mapbox-gl-draw_ctrl-draw-btn",CONTROL_BUTTON_LINE:"mapbox-gl-draw_line",CONTROL_BUTTON_POLYGON:"mapbox-gl-draw_polygon",CONTROL_BUTTON_POINT:"mapbox-gl-draw_point",CONTROL_BUTTON_TRASH:"mapbox-gl-draw_trash",CONTROL_BUTTON_COMBINE_FEATURES:"mapbox-gl-draw_combine",CONTROL_BUTTON_UNCOMBINE_FEATURES:"mapbox-gl-draw_uncombine",CONTROL_GROUP:"mapboxgl-ctrl-group",ATTRIBUTION:"mapboxgl-ctrl-attrib",ACTIVE_BUTTON:"active",BOX_SELECT:"mapbox-gl-draw_boxselect"},X={HOT:"mapbox-gl-draw-hot",COLD:"mapbox-gl-draw-cold"},N={ADD:"add",MOVE:"move",DRAG:"drag",POINTER:"pointer",NONE:"none"},Y={POLYGON:"polygon",LINE:"line_string",POINT:"point"},m={FEATURE:"Feature",POLYGON:"Polygon",LINE_STRING:"LineString",POINT:"Point",FEATURE_COLLECTION:"FeatureCollection",MULTI_PREFIX:"Multi",MULTI_POINT:"MultiPoint",MULTI_LINE_STRING:"MultiLineString",MULTI_POLYGON:"MultiPolygon"},T={DRAW_LINE_STRING:"draw_line_string",DRAW_POLYGON:"draw_polygon",DRAW_POINT:"draw_point",SIMPLE_SELECT:"simple_select",DIRECT_SELECT:"direct_select",STATIC:"static"},H={CREATE:"draw.create",DELETE:"draw.delete",UPDATE:"draw.update",SELECTION_CHANGE:"draw.selectionchange",MODE_CHANGE:"draw.modechange",ACTIONABLE:"draw.actionable",RENDER:"draw.render",COMBINE_FEATURES:"draw.combine",UNCOMBINE_FEATURES:"draw.uncombine"},Ot={MOVE:"move",CHANGE_COORDINATES:"change_coordinates"},B={FEATURE:"feature",MIDPOINT:"midpoint",VERTEX:"vertex"},j={ACTIVE:"true",INACTIVE:"false"},Wt=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate"],St=-85,er=Object.freeze({__proto__:null,classes:q,sources:X,cursors:N,types:Y,geojsonTypes:m,modes:T,events:H,updateActions:Ot,meta:B,activeStates:j,interactions:Wt,LAT_MIN:-90,LAT_RENDERED_MIN:St,LAT_MAX:90,LAT_RENDERED_MAX:85,LNG_MIN:-270,LNG_MAX:270}),Kt={Point:0,LineString:1,MultiLineString:1,Polygon:2};function tr(e,t){var n=Kt[e.geometry.type]-Kt[t.geometry.type];return n===0&&e.geometry.type===m.POLYGON?e.area-t.area:n}function Qt(e){return e.map(function(t){return t.geometry.type===m.POLYGON&&(t.area=Et.geometry({type:m.FEATURE,property:{},geometry:t.geometry})),t}).sort(tr).map(function(t){return delete t.area,t})}function en(e,t){return t===void 0&&(t=0),[[e.point.x-t,e.point.y-t],[e.point.x+t,e.point.y+t]]}function Z(e){if(this._items={},this._nums={},this._length=e?e.length:0,e)for(var t=0,n=e.length;t<n;t++)this.add(e[t]),e[t]!==void 0&&(typeof e[t]=="string"?this._items[e[t]]=t:this._nums[e[t]]=t)}Z.prototype.add=function(e){return this.has(e)||(this._length++,typeof e=="string"?this._items[e]=this._length:this._nums[e]=this._length),this},Z.prototype.delete=function(e){return this.has(e)===!1||(this._length--,delete this._items[e],delete this._nums[e]),this},Z.prototype.has=function(e){return(typeof e=="string"||typeof e=="number")&&(this._items[e]!==void 0||this._nums[e]!==void 0)},Z.prototype.values=function(){var e=this,t=[];return Object.keys(this._items).forEach(function(n){t.push({k:n,v:e._items[n]})}),Object.keys(this._nums).forEach(function(n){t.push({k:JSON.parse(n),v:e._nums[n]})}),t.sort(function(n,r){return n.v-r.v}).map(function(n){return n.k})},Z.prototype.clear=function(){return this._length=0,this._items={},this._nums={},this};var nr=[B.FEATURE,B.MIDPOINT,B.VERTEX],xe={click:function(e,t,n){return tn(e,t,n,n.options.clickBuffer)},touch:function(e,t,n){return tn(e,t,n,n.options.touchBuffer)}};function tn(e,t,n,r){if(n.map===null)return[];var o=e?en(e,r):t,i={};n.options.styles&&(i.layers=n.options.styles.map(function(h){return h.id}).filter(function(h){return n.map.getLayer(h)!=null}));var a=n.map.queryRenderedFeatures(o,i).filter(function(h){return nr.indexOf(h.properties.meta)!==-1}),l=new Z,d=[];return a.forEach(function(h){var g=h.properties.id;l.has(g)||(l.add(g),d.push(h))}),Qt(d)}function Ye(e,t){var n=xe.click(e,null,t),r={mouse:N.NONE};return n[0]&&(r.mouse=n[0].properties.active===j.ACTIVE?N.MOVE:N.POINTER,r.feature=n[0].properties.meta),t.events.currentModeName().indexOf("draw")!==-1&&(r.mouse=N.ADD),t.ui.queueMapClasses(r),t.ui.updateMapClasses(),n[0]}function It(e,t){var n=e.x-t.x,r=e.y-t.y;return Math.sqrt(n*n+r*r)}function xt(e,t,n){n===void 0&&(n={});var r=n.fineTolerance!=null?n.fineTolerance:4,o=n.grossTolerance!=null?n.grossTolerance:12,i=n.interval!=null?n.interval:500;e.point=e.point||t.point,e.time=e.time||t.time;var a=It(e.point,t.point);return a<r||a<o&&t.time-e.time<i}function Mt(e,t,n){n===void 0&&(n={});var r=n.tolerance!=null?n.tolerance:25,o=n.interval!=null?n.interval:250;return e.point=e.point||t.point,e.time=e.time||t.time,It(e.point,t.point)<r&&t.time-e.time<o}var nn={exports:{}},Lt=nn.exports=function(e,t){if(t||(t=16),e===void 0&&(e=128),e<=0)return"0";for(var n=Math.log(Math.pow(2,e))/Math.log(t),r=2;n===1/0;r*=2)n=Math.log(Math.pow(2,e/r))/Math.log(t)*r;var o=n-Math.floor(n),i="";for(r=0;r<Math.floor(n);r++)i=Math.floor(Math.random()*t).toString(t)+i;if(o){var a=Math.pow(t,o);i=Math.floor(Math.random()*a).toString(t)+i}var l=parseInt(i,t);return l!==1/0&&l>=Math.pow(2,e)?Lt(e,t):i};Lt.rack=function(e,t,n){var r=function(i){var a=0;do{if(a++>10){if(!n)throw new Error("too many ID collisions, use more bits");e+=n}var l=Lt(e,t)}while(Object.hasOwnProperty.call(o,l));return o[l]=i,l},o=r.hats={};return r.get=function(i){return r.hats[i]},r.set=function(i,a){return r.hats[i]=a,r},r.bits=e||128,r.base=t||16,r};var Nt=de(nn.exports),G=function(e,t){this.ctx=e,this.properties=t.properties||{},this.coordinates=t.geometry.coordinates,this.id=t.id||Nt(),this.type=t.geometry.type};G.prototype.changed=function(){this.ctx.store.featureChanged(this.id)},G.prototype.incomingCoords=function(e){this.setCoordinates(e)},G.prototype.setCoordinates=function(e){this.coordinates=e,this.changed()},G.prototype.getCoordinates=function(){return JSON.parse(JSON.stringify(this.coordinates))},G.prototype.setProperty=function(e,t){this.properties[e]=t},G.prototype.toGeoJSON=function(){return JSON.parse(JSON.stringify({id:this.id,type:m.FEATURE,properties:this.properties,geometry:{coordinates:this.getCoordinates(),type:this.type}}))},G.prototype.internal=function(e){var t={id:this.id,meta:B.FEATURE,"meta:type":this.type,active:j.INACTIVE,mode:e};if(this.ctx.options.userProperties)for(var n in this.properties)t["user_"+n]=this.properties[n];return{type:m.FEATURE,properties:t,geometry:{coordinates:this.getCoordinates(),type:this.type}}};var me=function(e,t){G.call(this,e,t)};(me.prototype=Object.create(G.prototype)).isValid=function(){return typeof this.coordinates[0]=="number"&&typeof this.coordinates[1]=="number"},me.prototype.updateCoordinate=function(e,t,n){this.coordinates=arguments.length===3?[t,n]:[e,t],this.changed()},me.prototype.getCoordinate=function(){return this.getCoordinates()};var ie=function(e,t){G.call(this,e,t)};(ie.prototype=Object.create(G.prototype)).isValid=function(){return this.coordinates.length>1},ie.prototype.addCoordinate=function(e,t,n){this.changed();var r=parseInt(e,10);this.coordinates.splice(r,0,[t,n])},ie.prototype.getCoordinate=function(e){var t=parseInt(e,10);return JSON.parse(JSON.stringify(this.coordinates[t]))},ie.prototype.removeCoordinate=function(e){this.changed(),this.coordinates.splice(parseInt(e,10),1)},ie.prototype.updateCoordinate=function(e,t,n){var r=parseInt(e,10);this.coordinates[r]=[t,n],this.changed()};var W=function(e,t){G.call(this,e,t),this.coordinates=this.coordinates.map(function(n){return n.slice(0,-1)})};(W.prototype=Object.create(G.prototype)).isValid=function(){return this.coordinates.length!==0&&this.coordinates.every(function(e){return e.length>2})},W.prototype.incomingCoords=function(e){this.coordinates=e.map(function(t){return t.slice(0,-1)}),this.changed()},W.prototype.setCoordinates=function(e){this.coordinates=e,this.changed()},W.prototype.addCoordinate=function(e,t,n){this.changed();var r=e.split(".").map(function(o){return parseInt(o,10)});this.coordinates[r[0]].splice(r[1],0,[t,n])},W.prototype.removeCoordinate=function(e){this.changed();var t=e.split(".").map(function(r){return parseInt(r,10)}),n=this.coordinates[t[0]];n&&(n.splice(t[1],1),n.length<3&&this.coordinates.splice(t[0],1))},W.prototype.getCoordinate=function(e){var t=e.split(".").map(function(r){return parseInt(r,10)}),n=this.coordinates[t[0]];return JSON.parse(JSON.stringify(n[t[1]]))},W.prototype.getCoordinates=function(){return this.coordinates.map(function(e){return e.concat([e[0]])})},W.prototype.updateCoordinate=function(e,t,n){this.changed();var r=e.split("."),o=parseInt(r[0],10),i=parseInt(r[1],10);this.coordinates[o]===void 0&&(this.coordinates[o]=[]),this.coordinates[o][i]=[t,n]};var rr={MultiPoint:me,MultiLineString:ie,MultiPolygon:W},$e=function(e,t,n,r,o){var i=n.split("."),a=parseInt(i[0],10),l=i[1]?i.slice(1).join("."):null;return e[a][t](l,r,o)},$=function(e,t){if(G.call(this,e,t),delete this.coordinates,this.model=rr[t.geometry.type],this.model===void 0)throw new TypeError(t.geometry.type+" is not a valid type");this.features=this._coordinatesToFeatures(t.geometry.coordinates)};function E(e){this.map=e.map,this.drawConfig=JSON.parse(JSON.stringify(e.options||{})),this._ctx=e}($.prototype=Object.create(G.prototype))._coordinatesToFeatures=function(e){var t=this,n=this.model.bind(this);return e.map(function(r){return new n(t.ctx,{id:Nt(),type:m.FEATURE,properties:{},geometry:{coordinates:r,type:t.type.replace("Multi","")}})})},$.prototype.isValid=function(){return this.features.every(function(e){return e.isValid()})},$.prototype.setCoordinates=function(e){this.features=this._coordinatesToFeatures(e),this.changed()},$.prototype.getCoordinate=function(e){return $e(this.features,"getCoordinate",e)},$.prototype.getCoordinates=function(){return JSON.parse(JSON.stringify(this.features.map(function(e){return e.type===m.POLYGON?e.getCoordinates():e.coordinates})))},$.prototype.updateCoordinate=function(e,t,n){$e(this.features,"updateCoordinate",e,t,n),this.changed()},$.prototype.addCoordinate=function(e,t,n){$e(this.features,"addCoordinate",e,t,n),this.changed()},$.prototype.removeCoordinate=function(e){$e(this.features,"removeCoordinate",e),this.changed()},$.prototype.getFeatures=function(){return this.features},E.prototype.setSelected=function(e){return this._ctx.store.setSelected(e)},E.prototype.setSelectedCoordinates=function(e){var t=this;this._ctx.store.setSelectedCoordinates(e),e.reduce(function(n,r){return n[r.feature_id]===void 0&&(n[r.feature_id]=!0,t._ctx.store.get(r.feature_id).changed()),n},{})},E.prototype.getSelected=function(){return this._ctx.store.getSelected()},E.prototype.getSelectedIds=function(){return this._ctx.store.getSelectedIds()},E.prototype.isSelected=function(e){return this._ctx.store.isSelected(e)},E.prototype.getFeature=function(e){return this._ctx.store.get(e)},E.prototype.select=function(e){return this._ctx.store.select(e)},E.prototype.deselect=function(e){return this._ctx.store.deselect(e)},E.prototype.deleteFeature=function(e,t){return t===void 0&&(t={}),this._ctx.store.delete(e,t)},E.prototype.addFeature=function(e){return this._ctx.store.add(e)},E.prototype.clearSelectedFeatures=function(){return this._ctx.store.clearSelected()},E.prototype.clearSelectedCoordinates=function(){return this._ctx.store.clearSelectedCoordinates()},E.prototype.setActionableState=function(e){e===void 0&&(e={});var t={trash:e.trash||!1,combineFeatures:e.combineFeatures||!1,uncombineFeatures:e.uncombineFeatures||!1};return this._ctx.events.actionable(t)},E.prototype.changeMode=function(e,t,n){return t===void 0&&(t={}),n===void 0&&(n={}),this._ctx.events.changeMode(e,t,n)},E.prototype.updateUIClasses=function(e){return this._ctx.ui.queueMapClasses(e)},E.prototype.activateUIButton=function(e){return this._ctx.ui.setActiveButton(e)},E.prototype.featuresAt=function(e,t,n){if(n===void 0&&(n="click"),n!=="click"&&n!=="touch")throw new Error("invalid buffer type");return xe[n](e,t,this._ctx)},E.prototype.newFeature=function(e){var t=e.geometry.type;return t===m.POINT?new me(this._ctx,e):t===m.LINE_STRING?new ie(this._ctx,e):t===m.POLYGON?new W(this._ctx,e):new $(this._ctx,e)},E.prototype.isInstanceOf=function(e,t){if(e===m.POINT)return t instanceof me;if(e===m.LINE_STRING)return t instanceof ie;if(e===m.POLYGON)return t instanceof W;if(e==="MultiFeature")return t instanceof $;throw new Error("Unknown feature class: "+e)},E.prototype.doRender=function(e){return this._ctx.store.featureChanged(e)},E.prototype.onSetup=function(){},E.prototype.onDrag=function(){},E.prototype.onClick=function(){},E.prototype.onMouseMove=function(){},E.prototype.onMouseDown=function(){},E.prototype.onMouseUp=function(){},E.prototype.onMouseOut=function(){},E.prototype.onKeyUp=function(){},E.prototype.onKeyDown=function(){},E.prototype.onTouchStart=function(){},E.prototype.onTouchMove=function(){},E.prototype.onTouchEnd=function(){},E.prototype.onTap=function(){},E.prototype.onStop=function(){},E.prototype.onTrash=function(){},E.prototype.onCombineFeature=function(){},E.prototype.onUncombineFeature=function(){},E.prototype.toDisplayFeatures=function(){throw new Error("You must overwrite toDisplayFeatures")};var rn={drag:"onDrag",click:"onClick",mousemove:"onMouseMove",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseout:"onMouseOut",keyup:"onKeyUp",keydown:"onKeyDown",touchstart:"onTouchStart",touchmove:"onTouchMove",touchend:"onTouchEnd",tap:"onTap"},or=Object.keys(rn);function ir(e){var t=Object.keys(e);return function(n,r){r===void 0&&(r={});var o={},i=t.reduce(function(a,l){return a[l]=e[l],a},new E(n));return{start:function(){var a=this;o=i.onSetup(r),or.forEach(function(l){var d,h=rn[l],g=function(){return!1};e[h]&&(g=function(){return!0}),a.on(l,g,(d=h,function(p){return i[d](o,p)}))})},stop:function(){i.onStop(o)},trash:function(){i.onTrash(o)},combineFeatures:function(){i.onCombineFeatures(o)},uncombineFeatures:function(){i.onUncombineFeatures(o)},render:function(a,l){i.toDisplayFeatures(o,a,l)}}}}function De(e){return[].concat(e).filter(function(t){return t!==void 0})}function ar(){var e=this;if(!(e.ctx.map&&e.ctx.map.getSource(X.HOT)!==void 0))return d();var t=e.ctx.events.currentModeName();e.ctx.ui.queueMapClasses({mode:t});var n=[],r=[];e.isDirty?r=e.getAllIds():(n=e.getChangedIds().filter(function(h){return e.get(h)!==void 0}),r=e.sources.hot.filter(function(h){return h.properties.id&&n.indexOf(h.properties.id)===-1&&e.get(h.properties.id)!==void 0}).map(function(h){return h.properties.id})),e.sources.hot=[];var o=e.sources.cold.length;e.sources.cold=e.isDirty?[]:e.sources.cold.filter(function(h){var g=h.properties.id||h.properties.parent;return n.indexOf(g)===-1});var i=o!==e.sources.cold.length||r.length>0;function a(h,g){var p=e.get(h).internal(t);e.ctx.events.currentModeRender(p,function(_){e.sources[g].push(_)})}if(n.forEach(function(h){return a(h,"hot")}),r.forEach(function(h){return a(h,"cold")}),i&&e.ctx.map.getSource(X.COLD).setData({type:m.FEATURE_COLLECTION,features:e.sources.cold}),e.ctx.map.getSource(X.HOT).setData({type:m.FEATURE_COLLECTION,features:e.sources.hot}),e._emitSelectionChange&&(e.ctx.map.fire(H.SELECTION_CHANGE,{features:e.getSelected().map(function(h){return h.toGeoJSON()}),points:e.getSelectedCoordinates().map(function(h){return{type:m.FEATURE,properties:{},geometry:{type:m.POINT,coordinates:h.coordinates}}})}),e._emitSelectionChange=!1),e._deletedFeaturesToEmit.length){var l=e._deletedFeaturesToEmit.map(function(h){return h.toGeoJSON()});e._deletedFeaturesToEmit=[],e.ctx.map.fire(H.DELETE,{features:l})}function d(){e.isDirty=!1,e.clearChangedIds()}d(),e.ctx.map.fire(H.RENDER,{})}function x(e){var t,n=this;this._features={},this._featureIds=new Z,this._selectedFeatureIds=new Z,this._selectedCoordinates=[],this._changedFeatureIds=new Z,this._deletedFeaturesToEmit=[],this._emitSelectionChange=!1,this._mapInitialConfig={},this.ctx=e,this.sources={hot:[],cold:[]},this.render=function(){t||(t=requestAnimationFrame(function(){t=null,ar.call(n)}))},this.isDirty=!1}function on(e,t){var n=e._selectedCoordinates.filter(function(r){return e._selectedFeatureIds.has(r.feature_id)});e._selectedCoordinates.length===n.length||t.silent||(e._emitSelectionChange=!0),e._selectedCoordinates=n}x.prototype.createRenderBatch=function(){var e=this,t=this.render,n=0;return this.render=function(){n++},function(){e.render=t,n>0&&e.render()}},x.prototype.setDirty=function(){return this.isDirty=!0,this},x.prototype.featureChanged=function(e){return this._changedFeatureIds.add(e),this},x.prototype.getChangedIds=function(){return this._changedFeatureIds.values()},x.prototype.clearChangedIds=function(){return this._changedFeatureIds.clear(),this},x.prototype.getAllIds=function(){return this._featureIds.values()},x.prototype.add=function(e){return this.featureChanged(e.id),this._features[e.id]=e,this._featureIds.add(e.id),this},x.prototype.delete=function(e,t){var n=this;return t===void 0&&(t={}),De(e).forEach(function(r){n._featureIds.has(r)&&(n._featureIds.delete(r),n._selectedFeatureIds.delete(r),t.silent||n._deletedFeaturesToEmit.indexOf(n._features[r])===-1&&n._deletedFeaturesToEmit.push(n._features[r]),delete n._features[r],n.isDirty=!0)}),on(this,t),this},x.prototype.get=function(e){return this._features[e]},x.prototype.getAll=function(){var e=this;return Object.keys(this._features).map(function(t){return e._features[t]})},x.prototype.select=function(e,t){var n=this;return t===void 0&&(t={}),De(e).forEach(function(r){n._selectedFeatureIds.has(r)||(n._selectedFeatureIds.add(r),n._changedFeatureIds.add(r),t.silent||(n._emitSelectionChange=!0))}),this},x.prototype.deselect=function(e,t){var n=this;return t===void 0&&(t={}),De(e).forEach(function(r){n._selectedFeatureIds.has(r)&&(n._selectedFeatureIds.delete(r),n._changedFeatureIds.add(r),t.silent||(n._emitSelectionChange=!0))}),on(this,t),this},x.prototype.clearSelected=function(e){return e===void 0&&(e={}),this.deselect(this._selectedFeatureIds.values(),{silent:e.silent}),this},x.prototype.setSelected=function(e,t){var n=this;return t===void 0&&(t={}),e=De(e),this.deselect(this._selectedFeatureIds.values().filter(function(r){return e.indexOf(r)===-1}),{silent:t.silent}),this.select(e.filter(function(r){return!n._selectedFeatureIds.has(r)}),{silent:t.silent}),this},x.prototype.setSelectedCoordinates=function(e){return this._selectedCoordinates=e,this._emitSelectionChange=!0,this},x.prototype.clearSelectedCoordinates=function(){return this._selectedCoordinates=[],this._emitSelectionChange=!0,this},x.prototype.getSelectedIds=function(){return this._selectedFeatureIds.values()},x.prototype.getSelected=function(){var e=this;return this._selectedFeatureIds.values().map(function(t){return e.get(t)})},x.prototype.getSelectedCoordinates=function(){var e=this;return this._selectedCoordinates.map(function(t){return{coordinates:e.get(t.feature_id).getCoordinate(t.coord_path)}})},x.prototype.isSelected=function(e){return this._selectedFeatureIds.has(e)},x.prototype.setFeatureProperty=function(e,t,n){this.get(e).setProperty(t,n),this.featureChanged(e)},x.prototype.storeMapConfig=function(){var e=this;Wt.forEach(function(t){e.ctx.map[t]&&(e._mapInitialConfig[t]=e.ctx.map[t].isEnabled())})},x.prototype.restoreMapConfig=function(){var e=this;Object.keys(this._mapInitialConfig).forEach(function(t){e._mapInitialConfig[t]?e.ctx.map[t].enable():e.ctx.map[t].disable()})},x.prototype.getInitialConfigValue=function(e){return this._mapInitialConfig[e]===void 0||this._mapInitialConfig[e]};var sr=function(){for(var e=arguments,t={},n=0;n<arguments.length;n++){var r=e[n];for(var o in r)ur.call(r,o)&&(t[o]=r[o])}return t},ur=Object.prototype.hasOwnProperty,pe=de(sr),cr=["mode","feature","mouse"];function lr(e){var t=null,n=null,r={onRemove:function(){return e.map.off("load",r.connect),clearInterval(n),r.removeLayers(),e.store.restoreMapConfig(),e.ui.removeButtons(),e.events.removeEventListeners(),e.ui.clearMapClasses(),e.boxZoomInitial&&e.map.boxZoom.enable(),e.map=null,e.container=null,e.store=null,t&&t.parentNode&&t.parentNode.removeChild(t),t=null,this},connect:function(){e.map.off("load",r.connect),clearInterval(n),r.addLayers(),e.store.storeMapConfig(),e.events.addEventListeners()},onAdd:function(o){var i=o.fire;return o.fire=function(a,l){var d=arguments;return i.length===1&&arguments.length!==1&&(d=[pe({},{type:a},l)]),i.apply(o,d)},e.map=o,e.events=function(a){var l=Object.keys(a.options.modes).reduce(function(c,y){return c[y]=ir(a.options.modes[y]),c},{}),d={},h={},g={},p=null,_=null;g.drag=function(c,y){y({point:c.point,time:new Date().getTime()})?(a.ui.queueMapClasses({mouse:N.DRAG}),_.drag(c)):c.originalEvent.stopPropagation()},g.mousedrag=function(c){g.drag(c,function(y){return!xt(d,y)})},g.touchdrag=function(c){g.drag(c,function(y){return!Mt(h,y)})},g.mousemove=function(c){if((c.originalEvent.buttons!==void 0?c.originalEvent.buttons:c.originalEvent.which)===1)return g.mousedrag(c);var y=Ye(c,a);c.featureTarget=y,_.mousemove(c)},g.mousedown=function(c){d={time:new Date().getTime(),point:c.point};var y=Ye(c,a);c.featureTarget=y,_.mousedown(c)},g.mouseup=function(c){var y=Ye(c,a);c.featureTarget=y,xt(d,{point:c.point,time:new Date().getTime()})?_.click(c):_.mouseup(c)},g.mouseout=function(c){_.mouseout(c)},g.touchstart=function(c){if(a.options.touchEnabled){h={time:new Date().getTime(),point:c.point};var y=xe.touch(c,null,a)[0];c.featureTarget=y,_.touchstart(c)}},g.touchmove=function(c){if(a.options.touchEnabled)return _.touchmove(c),g.touchdrag(c)},g.touchend=function(c){if(c.originalEvent.preventDefault(),a.options.touchEnabled){var y=xe.touch(c,null,a)[0];c.featureTarget=y,Mt(h,{time:new Date().getTime(),point:c.point})?_.tap(c):_.touchend(c)}};var A=function(c){return!(c===8||c===46||c>=48&&c<=57)};function b(c,y,O){O===void 0&&(O={}),_.stop();var V=l[c];if(V===void 0)throw new Error(c+" is not valid");p=c;var w=V(a,y);_=ze(w,a),O.silent||a.map.fire(H.MODE_CHANGE,{mode:c}),a.store.setDirty(),a.store.render()}g.keydown=function(c){(c.srcElement||c.target).classList.contains("mapboxgl-canvas")&&(c.keyCode!==8&&c.keyCode!==46||!a.options.controls.trash?A(c.keyCode)?_.keydown(c):c.keyCode===49&&a.options.controls.point?b(T.DRAW_POINT):c.keyCode===50&&a.options.controls.line_string?b(T.DRAW_LINE_STRING):c.keyCode===51&&a.options.controls.polygon&&b(T.DRAW_POLYGON):(c.preventDefault(),_.trash()))},g.keyup=function(c){A(c.keyCode)&&_.keyup(c)},g.zoomend=function(){a.store.changeZoom()},g.data=function(c){if(c.dataType==="style"){var y=a.setup,O=a.map,V=a.options,w=a.store;V.styles.some(function(Ut){return O.getLayer(Ut.id)})||(y.addLayers(),w.setDirty(),w.render())}};var F={trash:!1,combineFeatures:!1,uncombineFeatures:!1};return{start:function(){p=a.options.defaultMode,_=ze(l[p](a),a)},changeMode:b,actionable:function(c){var y=!1;Object.keys(c).forEach(function(O){if(F[O]===void 0)throw new Error("Invalid action type");F[O]!==c[O]&&(y=!0),F[O]=c[O]}),y&&a.map.fire(H.ACTIONABLE,{actions:F})},currentModeName:function(){return p},currentModeRender:function(c,y){return _.render(c,y)},fire:function(c,y){g[c]&&g[c](y)},addEventListeners:function(){a.map.on("mousemove",g.mousemove),a.map.on("mousedown",g.mousedown),a.map.on("mouseup",g.mouseup),a.map.on("data",g.data),a.map.on("touchmove",g.touchmove),a.map.on("touchstart",g.touchstart),a.map.on("touchend",g.touchend),a.container.addEventListener("mouseout",g.mouseout),a.options.keybindings&&(a.container.addEventListener("keydown",g.keydown),a.container.addEventListener("keyup",g.keyup))},removeEventListeners:function(){a.map.off("mousemove",g.mousemove),a.map.off("mousedown",g.mousedown),a.map.off("mouseup",g.mouseup),a.map.off("data",g.data),a.map.off("touchmove",g.touchmove),a.map.off("touchstart",g.touchstart),a.map.off("touchend",g.touchend),a.container.removeEventListener("mouseout",g.mouseout),a.options.keybindings&&(a.container.removeEventListener("keydown",g.keydown),a.container.removeEventListener("keyup",g.keyup))},trash:function(c){_.trash(c)},combineFeatures:function(){_.combineFeatures()},uncombineFeatures:function(){_.uncombineFeatures()},getMode:function(){return p}}}(e),e.ui=function(a){var l={},d=null,h={mode:null,feature:null,mouse:null},g={mode:null,feature:null,mouse:null};function p(c){g=pe(g,c)}function _(){var c,y;if(a.container){var O=[],V=[];cr.forEach(function(w){g[w]!==h[w]&&(O.push(w+"-"+h[w]),g[w]!==null&&V.push(w+"-"+g[w]))}),O.length>0&&(c=a.container.classList).remove.apply(c,O),V.length>0&&(y=a.container.classList).add.apply(y,V),h=pe(h,g)}}function A(c,y){y===void 0&&(y={});var O=document.createElement("button");return O.className=q.CONTROL_BUTTON+" "+y.className,O.setAttribute("title",y.title),y.container.appendChild(O),O.addEventListener("click",function(V){if(V.preventDefault(),V.stopPropagation(),V.target===d)return b(),void y.onDeactivate();F(c),y.onActivate()},!0),O}function b(){d&&(d.classList.remove(q.ACTIVE_BUTTON),d=null)}function F(c){b();var y=l[c];y&&y&&c!=="trash"&&(y.classList.add(q.ACTIVE_BUTTON),d=y)}return{setActiveButton:F,queueMapClasses:p,updateMapClasses:_,clearMapClasses:function(){p({mode:null,feature:null,mouse:null}),_()},addButtons:function(){var c=a.options.controls,y=document.createElement("div");return y.className=q.CONTROL_GROUP+" "+q.CONTROL_BASE,c&&(c[Y.LINE]&&(l[Y.LINE]=A(Y.LINE,{container:y,className:q.CONTROL_BUTTON_LINE,title:"LineString tool "+(a.options.keybindings?"(l)":""),onActivate:function(){return a.events.changeMode(T.DRAW_LINE_STRING)},onDeactivate:function(){return a.events.trash()}})),c[Y.POLYGON]&&(l[Y.POLYGON]=A(Y.POLYGON,{container:y,className:q.CONTROL_BUTTON_POLYGON,title:"Polygon tool "+(a.options.keybindings?"(p)":""),onActivate:function(){return a.events.changeMode(T.DRAW_POLYGON)},onDeactivate:function(){return a.events.trash()}})),c[Y.POINT]&&(l[Y.POINT]=A(Y.POINT,{container:y,className:q.CONTROL_BUTTON_POINT,title:"Marker tool "+(a.options.keybindings?"(m)":""),onActivate:function(){return a.events.changeMode(T.DRAW_POINT)},onDeactivate:function(){return a.events.trash()}})),c.trash&&(l.trash=A("trash",{container:y,className:q.CONTROL_BUTTON_TRASH,title:"Delete",onActivate:function(){a.events.trash()}})),c.combine_features&&(l.combine_features=A("combineFeatures",{container:y,className:q.CONTROL_BUTTON_COMBINE_FEATURES,title:"Combine",onActivate:function(){a.events.combineFeatures()}})),c.uncombine_features&&(l.uncombine_features=A("uncombineFeatures",{container:y,className:q.CONTROL_BUTTON_UNCOMBINE_FEATURES,title:"Uncombine",onActivate:function(){a.events.uncombineFeatures()}}))),y},removeButtons:function(){Object.keys(l).forEach(function(c){var y=l[c];y.parentNode&&y.parentNode.removeChild(y),delete l[c]})}}}(e),e.container=o.getContainer(),e.store=new x(e),t=e.ui.addButtons(),e.options.boxSelect&&(e.boxZoomInitial=o.boxZoom.isEnabled(),o.boxZoom.disable(),o.dragPan.disable(),o.dragPan.enable()),o.loaded()?r.connect():(o.on("load",r.connect),n=setInterval(function(){o.loaded()&&r.connect()},16)),e.events.start(),t},addLayers:function(){e.map.addSource(X.COLD,{data:{type:m.FEATURE_COLLECTION,features:[]},type:"geojson"}),e.map.addSource(X.HOT,{data:{type:m.FEATURE_COLLECTION,features:[]},type:"geojson"}),e.options.styles.forEach(function(o){e.map.addLayer(o)}),e.store.setDirty(!0),e.store.render()},removeLayers:function(){e.options.styles.forEach(function(o){e.map.getLayer(o.id)&&e.map.removeLayer(o.id)}),e.map.getSource(X.COLD)&&e.map.removeSource(X.COLD),e.map.getSource(X.HOT)&&e.map.removeSource(X.HOT)}};return e.setup=r,r}var an=[{id:"gl-draw-polygon-fill-inactive",type:"fill",filter:["all",["==","active","false"],["==","$type","Polygon"],["!=","mode","static"]],paint:{"fill-color":"#3bb2d0","fill-outline-color":"#3bb2d0","fill-opacity":.1}},{id:"gl-draw-polygon-fill-active",type:"fill",filter:["all",["==","active","true"],["==","$type","Polygon"]],paint:{"fill-color":"#fbb03b","fill-outline-color":"#fbb03b","fill-opacity":.1}},{id:"gl-draw-polygon-midpoint",type:"circle",filter:["all",["==","$type","Point"],["==","meta","midpoint"]],paint:{"circle-radius":3,"circle-color":"#fbb03b"}},{id:"gl-draw-polygon-stroke-inactive",type:"line",filter:["all",["==","active","false"],["==","$type","Polygon"],["!=","mode","static"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#3bb2d0","line-width":2}},{id:"gl-draw-polygon-stroke-active",type:"line",filter:["all",["==","active","true"],["==","$type","Polygon"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#fbb03b","line-dasharray":[.2,2],"line-width":2}},{id:"gl-draw-line-inactive",type:"line",filter:["all",["==","active","false"],["==","$type","LineString"],["!=","mode","static"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#3bb2d0","line-width":2}},{id:"gl-draw-line-active",type:"line",filter:["all",["==","$type","LineString"],["==","active","true"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#fbb03b","line-dasharray":[.2,2],"line-width":2}},{id:"gl-draw-polygon-and-line-vertex-stroke-inactive",type:"circle",filter:["all",["==","meta","vertex"],["==","$type","Point"],["!=","mode","static"]],paint:{"circle-radius":5,"circle-color":"#fff"}},{id:"gl-draw-polygon-and-line-vertex-inactive",type:"circle",filter:["all",["==","meta","vertex"],["==","$type","Point"],["!=","mode","static"]],paint:{"circle-radius":3,"circle-color":"#fbb03b"}},{id:"gl-draw-point-point-stroke-inactive",type:"circle",filter:["all",["==","active","false"],["==","$type","Point"],["==","meta","feature"],["!=","mode","static"]],paint:{"circle-radius":5,"circle-opacity":1,"circle-color":"#fff"}},{id:"gl-draw-point-inactive",type:"circle",filter:["all",["==","active","false"],["==","$type","Point"],["==","meta","feature"],["!=","mode","static"]],paint:{"circle-radius":3,"circle-color":"#3bb2d0"}},{id:"gl-draw-point-stroke-active",type:"circle",filter:["all",["==","$type","Point"],["==","active","true"],["!=","meta","midpoint"]],paint:{"circle-radius":7,"circle-color":"#fff"}},{id:"gl-draw-point-active",type:"circle",filter:["all",["==","$type","Point"],["!=","meta","midpoint"],["==","active","true"]],paint:{"circle-radius":5,"circle-color":"#fbb03b"}},{id:"gl-draw-polygon-fill-static",type:"fill",filter:["all",["==","mode","static"],["==","$type","Polygon"]],paint:{"fill-color":"#404040","fill-outline-color":"#404040","fill-opacity":.1}},{id:"gl-draw-polygon-stroke-static",type:"line",filter:["all",["==","mode","static"],["==","$type","Polygon"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#404040","line-width":2}},{id:"gl-draw-line-static",type:"line",filter:["all",["==","mode","static"],["==","$type","LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#404040","line-width":2}},{id:"gl-draw-point-static",type:"circle",filter:["all",["==","mode","static"],["==","$type","Point"]],paint:{"circle-radius":5,"circle-color":"#404040"}}];function qe(e){return function(t){var n=t.featureTarget;return!!n&&!!n.properties&&n.properties.meta===e}}function sn(e){return!!e.originalEvent&&!!e.originalEvent.shiftKey&&e.originalEvent.button===0}function _e(e){return!!e.featureTarget&&!!e.featureTarget.properties&&e.featureTarget.properties.active===j.ACTIVE&&e.featureTarget.properties.meta===B.FEATURE}function At(e){return!!e.featureTarget&&!!e.featureTarget.properties&&e.featureTarget.properties.active===j.INACTIVE&&e.featureTarget.properties.meta===B.FEATURE}function He(e){return e.featureTarget===void 0}function Pt(e){return!!e.featureTarget&&!!e.featureTarget.properties&&e.featureTarget.properties.meta===B.FEATURE}function ke(e){var t=e.featureTarget;return!!t&&!!t.properties&&t.properties.meta===B.VERTEX}function Xe(e){return!!e.originalEvent&&e.originalEvent.shiftKey===!0}function Ze(e){return e.keyCode===27}function We(e){return e.keyCode===13}var dr=Object.freeze({__proto__:null,isOfMetaType:qe,isShiftMousedown:sn,isActiveFeature:_e,isInactiveFeature:At,noTarget:He,isFeature:Pt,isVertex:ke,isShiftDown:Xe,isEscapeKey:Ze,isEnterKey:We,isTrue:function(){return!0}}),pr=Me;function Me(e,t){this.x=e,this.y=t}Me.prototype={clone:function(){return new Me(this.x,this.y)},add:function(e){return this.clone()._add(e)},sub:function(e){return this.clone()._sub(e)},multByPoint:function(e){return this.clone()._multByPoint(e)},divByPoint:function(e){return this.clone()._divByPoint(e)},mult:function(e){return this.clone()._mult(e)},div:function(e){return this.clone()._div(e)},rotate:function(e){return this.clone()._rotate(e)},rotateAround:function(e,t){return this.clone()._rotateAround(e,t)},matMult:function(e){return this.clone()._matMult(e)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(e){return this.x===e.x&&this.y===e.y},dist:function(e){return Math.sqrt(this.distSqr(e))},distSqr:function(e){var t=e.x-this.x,n=e.y-this.y;return t*t+n*n},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(e){return Math.atan2(this.y-e.y,this.x-e.x)},angleWith:function(e){return this.angleWithSep(e.x,e.y)},angleWithSep:function(e,t){return Math.atan2(this.x*t-this.y*e,this.x*e+this.y*t)},_matMult:function(e){var t=e[0]*this.x+e[1]*this.y,n=e[2]*this.x+e[3]*this.y;return this.x=t,this.y=n,this},_add:function(e){return this.x+=e.x,this.y+=e.y,this},_sub:function(e){return this.x-=e.x,this.y-=e.y,this},_mult:function(e){return this.x*=e,this.y*=e,this},_div:function(e){return this.x/=e,this.y/=e,this},_multByPoint:function(e){return this.x*=e.x,this.y*=e.y,this},_divByPoint:function(e){return this.x/=e.x,this.y/=e.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var e=this.y;return this.y=this.x,this.x=-e,this},_rotate:function(e){var t=Math.cos(e),n=Math.sin(e),r=t*this.x-n*this.y,o=n*this.x+t*this.y;return this.x=r,this.y=o,this},_rotateAround:function(e,t){var n=Math.cos(e),r=Math.sin(e),o=t.x+n*(this.x-t.x)-r*(this.y-t.y),i=t.y+r*(this.x-t.x)+n*(this.y-t.y);return this.x=o,this.y=i,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},Me.convert=function(e){return e instanceof Me?e:Array.isArray(e)?new Me(e[0],e[1]):e};var fr=de(pr);function Ft(e,t){var n=t.getBoundingClientRect();return new fr(e.clientX-n.left-(t.clientLeft||0),e.clientY-n.top-(t.clientTop||0))}function Le(e,t,n,r){return{type:m.FEATURE,properties:{meta:B.VERTEX,parent:e,coord_path:n,active:r?j.ACTIVE:j.INACTIVE},geometry:{type:m.POINT,coordinates:t}}}function un(e,t,n){var r=t.geometry.coordinates,o=n.geometry.coordinates;if(r[1]>85||r[1]<St||o[1]>85||o[1]<St)return null;var i={lng:(r[0]+o[0])/2,lat:(r[1]+o[1])/2};return{type:m.FEATURE,properties:{meta:B.MIDPOINT,parent:e,lng:i.lng,lat:i.lat,coord_path:n.properties.coord_path},geometry:{type:m.POINT,coordinates:[i.lng,i.lat]}}}function Ke(e,t,n){t===void 0&&(t={}),n===void 0&&(n=null);var r,o=e.geometry,i=o.type,a=o.coordinates,l=e.properties&&e.properties.id,d=[];function h(p,_){var A="",b=null;p.forEach(function(F,c){var y=_!=null?_+"."+c:String(c),O=Le(l,F,y,g(y));if(t.midpoints&&b){var V=un(l,b,O);V&&d.push(V)}b=O;var w=JSON.stringify(F);A!==w&&d.push(O),c===0&&(A=w)})}function g(p){return!!t.selectedPaths&&t.selectedPaths.indexOf(p)!==-1}return i===m.POINT?d.push(Le(l,a,n,g(n))):i===m.POLYGON?a.forEach(function(p,_){h(p,n!==null?n+"."+_:String(_))}):i===m.LINE_STRING?h(a,n):i.indexOf(m.MULTI_PREFIX)===0&&(r=i.replace(m.MULTI_PREFIX,""),a.forEach(function(p,_){var A={type:m.FEATURE,properties:e.properties,geometry:{type:r,coordinates:p}};d=d.concat(Ke(A,t,_))})),d}var ee={enable:function(e){setTimeout(function(){e.map&&e.map.doubleClickZoom&&e._ctx&&e._ctx.store&&e._ctx.store.getInitialConfigValue&&e._ctx.store.getInitialConfigValue("doubleClickZoom")&&e.map.doubleClickZoom.enable()},0)},disable:function(e){setTimeout(function(){e.map&&e.map.doubleClickZoom&&e.map.doubleClickZoom.disable()},0)}},Qe={exports:{}},cn=function(e){if(!e||!e.type)return null;var t=hr[e.type];if(!t)return null;if(t==="geometry")return{type:"FeatureCollection",features:[{type:"Feature",properties:{},geometry:e}]};if(t==="feature")return{type:"FeatureCollection",features:[e]};if(t==="featurecollection")return e},hr={Point:"geometry",MultiPoint:"geometry",LineString:"geometry",MultiLineString:"geometry",Polygon:"geometry",MultiPolygon:"geometry",GeometryCollection:"geometry",Feature:"feature",FeatureCollection:"featurecollection"},gr=de(cn),yr=Object.freeze({__proto__:null,default:function e(t){switch(t&&t.type||null){case"FeatureCollection":return t.features=t.features.reduce(function(n,r){return n.concat(e(r))},[]),t;case"Feature":return t.geometry?e(t.geometry).map(function(n){var r={type:"Feature",properties:JSON.parse(JSON.stringify(t.properties)),geometry:n};return t.id!==void 0&&(r.id=t.id),r}):[t];case"MultiPoint":return t.coordinates.map(function(n){return{type:"Point",coordinates:n}});case"MultiPolygon":return t.coordinates.map(function(n){return{type:"Polygon",coordinates:n}});case"MultiLineString":return t.coordinates.map(function(n){return{type:"LineString",coordinates:n}});case"GeometryCollection":return t.geometries.map(e).reduce(function(n,r){return n.concat(r)},[]);case"Point":case"Polygon":case"LineString":return[t]}}}),vr=cn,et=Kn(yr),mr=function(e){return function t(n){return Array.isArray(n)&&n.length&&typeof n[0]=="number"?[n]:n.reduce(function(r,o){return Array.isArray(o)&&Array.isArray(o[0])?r.concat(t(o)):(r.push(o),r)},[])}(e)};et instanceof Function||(et=et.default);var ln={exports:{}},_r=ln.exports=function(e){return new K(e)};function K(e){this.value=e}function dn(e,t,n){var r=[],o=[],i=!0;return function a(l){var d=n?pn(l):l,h={},g=!0,p={node:d,node_:l,path:[].concat(r),parent:o[o.length-1],parents:o,key:r.slice(-1)[0],isRoot:r.length===0,level:r.length,circular:null,update:function(b,F){p.isRoot||(p.parent.node[p.key]=b),p.node=b,F&&(g=!1)},delete:function(b){delete p.parent.node[p.key],b&&(g=!1)},remove:function(b){fn(p.parent.node)?p.parent.node.splice(p.key,1):delete p.parent.node[p.key],b&&(g=!1)},keys:null,before:function(b){h.before=b},after:function(b){h.after=b},pre:function(b){h.pre=b},post:function(b){h.post=b},stop:function(){i=!1},block:function(){g=!1}};if(!i)return p;function _(){if(typeof p.node=="object"&&p.node!==null){p.keys&&p.node_===p.node||(p.keys=tt(p.node)),p.isLeaf=p.keys.length==0;for(var b=0;b<o.length;b++)if(o[b].node_===l){p.circular=o[b];break}}else p.isLeaf=!0,p.keys=null;p.notLeaf=!p.isLeaf,p.notRoot=!p.isRoot}_();var A=t.call(p,p.node);return A!==void 0&&p.update&&p.update(A),h.before&&h.before.call(p,p.node),g&&(typeof p.node!="object"||p.node===null||p.circular||(o.push(p),_(),nt(p.keys,function(b,F){r.push(b),h.pre&&h.pre.call(p,p.node[b],b);var c=a(p.node[b]);n&&rt.call(p.node,b)&&(p.node[b]=c.node),c.isLast=F==p.keys.length-1,c.isFirst=F==0,h.post&&h.post.call(p,c),r.pop()}),o.pop()),h.after&&h.after.call(p,p.node)),p}(e).node}function pn(e){if(typeof e=="object"&&e!==null){var t;if(fn(e))t=[];else if(Ne(e)==="[object Date]")t=new Date(e.getTime?e.getTime():e);else if(function(o){return Ne(o)==="[object RegExp]"}(e))t=new RegExp(e);else if(function(o){return Ne(o)==="[object Error]"}(e))t={message:e.message};else if(function(o){return Ne(o)==="[object Boolean]"}(e))t=new Boolean(e);else if(function(o){return Ne(o)==="[object Number]"}(e))t=new Number(e);else if(function(o){return Ne(o)==="[object String]"}(e))t=new String(e);else if(Object.create&&Object.getPrototypeOf)t=Object.create(Object.getPrototypeOf(e));else if(e.constructor===Object)t={};else{var n=e.constructor&&e.constructor.prototype||e.__proto__||{},r=function(){};r.prototype=n,t=new r}return nt(tt(e),function(o){t[o]=e[o]}),t}return e}K.prototype.get=function(e){for(var t=this.value,n=0;n<e.length;n++){var r=e[n];if(!t||!rt.call(t,r)){t=void 0;break}t=t[r]}return t},K.prototype.has=function(e){for(var t=this.value,n=0;n<e.length;n++){var r=e[n];if(!t||!rt.call(t,r))return!1;t=t[r]}return!0},K.prototype.set=function(e,t){for(var n=this.value,r=0;r<e.length-1;r++){var o=e[r];rt.call(n,o)||(n[o]={}),n=n[o]}return n[e[r]]=t,t},K.prototype.map=function(e){return dn(this.value,e,!0)},K.prototype.forEach=function(e){return this.value=dn(this.value,e,!1),this.value},K.prototype.reduce=function(e,t){var n=arguments.length===1,r=n?this.value:t;return this.forEach(function(o){this.isRoot&&n||(r=e.call(this,r,o))}),r},K.prototype.paths=function(){var e=[];return this.forEach(function(t){e.push(this.path)}),e},K.prototype.nodes=function(){var e=[];return this.forEach(function(t){e.push(this.node)}),e},K.prototype.clone=function(){var e=[],t=[];return function n(r){for(var o=0;o<e.length;o++)if(e[o]===r)return t[o];if(typeof r=="object"&&r!==null){var i=pn(r);return e.push(r),t.push(i),nt(tt(r),function(a){i[a]=n(r[a])}),e.pop(),t.pop(),i}return r}(this.value)};var tt=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};function Ne(e){return Object.prototype.toString.call(e)}var fn=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"},nt=function(e,t){if(e.forEach)return e.forEach(t);for(var n=0;n<e.length;n++)t(e[n],n,e)};nt(tt(K.prototype),function(e){_r[e]=function(t){var n=[].slice.call(arguments,1),r=new K(t);return r[e].apply(r,n)}});var rt=Object.hasOwnProperty||function(e,t){return t in e},br=ln.exports,Er=J;function J(e){if(!(this instanceof J))return new J(e);this._bbox=e||[1/0,1/0,-1/0,-1/0],this._valid=!!e}J.prototype.include=function(e){return this._valid=!0,this._bbox[0]=Math.min(this._bbox[0],e[0]),this._bbox[1]=Math.min(this._bbox[1],e[1]),this._bbox[2]=Math.max(this._bbox[2],e[0]),this._bbox[3]=Math.max(this._bbox[3],e[1]),this},J.prototype.equals=function(e){var t;return t=e instanceof J?e.bbox():e,this._bbox[0]==t[0]&&this._bbox[1]==t[1]&&this._bbox[2]==t[2]&&this._bbox[3]==t[3]},J.prototype.center=function(e){return this._valid?[(this._bbox[0]+this._bbox[2])/2,(this._bbox[1]+this._bbox[3])/2]:null},J.prototype.union=function(e){var t;return this._valid=!0,t=e instanceof J?e.bbox():e,this._bbox[0]=Math.min(this._bbox[0],t[0]),this._bbox[1]=Math.min(this._bbox[1],t[1]),this._bbox[2]=Math.max(this._bbox[2],t[2]),this._bbox[3]=Math.max(this._bbox[3],t[3]),this},J.prototype.bbox=function(){return this._valid?this._bbox:null},J.prototype.contains=function(e){if(!e)return this._fastContains();if(!this._valid)return null;var t=e[0],n=e[1];return this._bbox[0]<=t&&this._bbox[1]<=n&&this._bbox[2]>=t&&this._bbox[3]>=n},J.prototype.intersect=function(e){return this._valid?(t=e instanceof J?e.bbox():e,!(this._bbox[0]>t[2]||this._bbox[2]<t[0]||this._bbox[3]<t[1]||this._bbox[1]>t[3])):null;var t},J.prototype._fastContains=function(){if(!this._valid)return new Function("return null;");var e="return "+this._bbox[0]+"<= ll[0] &&"+this._bbox[1]+"<= ll[1] &&"+this._bbox[2]+">= ll[0] &&"+this._bbox[3]+">= ll[1]";return new Function("ll",e)},J.prototype.polygon=function(){return this._valid?{type:"Polygon",coordinates:[[[this._bbox[0],this._bbox[1]],[this._bbox[2],this._bbox[1]],[this._bbox[2],this._bbox[3]],[this._bbox[0],this._bbox[3]],[this._bbox[0],this._bbox[1]]]]}:null};var Tr=function(e){if(!e)return[];var t=et(vr(e)),n=[];return t.features.forEach(function(r){r.geometry&&(n=n.concat(mr(r.geometry.coordinates)))}),n},Cr=br,Or=Er,hn={features:["FeatureCollection"],coordinates:["Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon"],geometry:["Feature"],geometries:["GeometryCollection"]},Sr=Object.keys(hn);function wt(e){for(var t=Or(),n=Tr(e),r=0;r<n.length;r++)t.include(n[r]);return t}Qe.exports=function(e){return wt(e).bbox()},Qe.exports.polygon=function(e){return wt(e).polygon()},Qe.exports.bboxify=function(e){return Cr(e).map(function(t){t&&Sr.some(function(n){return!!t[n]&&hn[n].indexOf(t.type)!==-1})&&(t.bbox=wt(t).bbox(),this.update(t))})};var Ir=de(Qe.exports),ot=-90;function Rt(e,t){var n=ot,r=90,o=ot,i=90,a=270,l=-270;e.forEach(function(h){var g=Ir(h),p=g[1],_=g[3],A=g[0],b=g[2];p>n&&(n=p),_<r&&(r=_),_>o&&(o=_),p<i&&(i=p),A<a&&(a=A),b>l&&(l=b)});var d=t;return n+d.lat>85&&(d.lat=85-n),o+d.lat>90&&(d.lat=90-o),r+d.lat<-85&&(d.lat=-85-r),i+d.lat<ot&&(d.lat=ot-i),a+d.lng<=-270&&(d.lng+=360*Math.ceil(Math.abs(d.lng)/360)),l+d.lng>=270&&(d.lng-=360*Math.ceil(Math.abs(d.lng)/360)),d}function Dt(e,t){var n=Rt(e.map(function(r){return r.toGeoJSON()}),t);e.forEach(function(r){var o,i=r.getCoordinates(),a=function(d){var h={lng:d[0]+n.lng,lat:d[1]+n.lat};return[h.lng,h.lat]},l=function(d){return d.map(function(h){return a(h)})};r.type===m.POINT?o=a(i):r.type===m.LINE_STRING||r.type===m.MULTI_POINT?o=i.map(a):r.type===m.POLYGON||r.type===m.MULTI_LINE_STRING?o=i.map(l):r.type===m.MULTI_POLYGON&&(o=i.map(function(d){return d.map(function(h){return l(h)})})),r.incomingCoords(o)})}var D={onSetup:function(e){var t=this,n={dragMoveLocation:null,boxSelectStartLocation:null,boxSelectElement:void 0,boxSelecting:!1,canBoxSelect:!1,dragMoving:!1,canDragMove:!1,initiallySelectedFeatureIds:e.featureIds||[]};return this.setSelected(n.initiallySelectedFeatureIds.filter(function(r){return t.getFeature(r)!==void 0})),this.fireActionable(),this.setActionableState({combineFeatures:!0,uncombineFeatures:!0,trash:!0}),n},fireUpdate:function(){this.map.fire(H.UPDATE,{action:Ot.MOVE,features:this.getSelected().map(function(e){return e.toGeoJSON()})})},fireActionable:function(){var e=this,t=this.getSelected(),n=t.filter(function(l){return e.isInstanceOf("MultiFeature",l)}),r=!1;if(t.length>1){r=!0;var o=t[0].type.replace("Multi","");t.forEach(function(l){l.type.replace("Multi","")!==o&&(r=!1)})}var i=n.length>0,a=t.length>0;this.setActionableState({combineFeatures:r,uncombineFeatures:i,trash:a})},getUniqueIds:function(e){return e.length?e.map(function(t){return t.properties.id}).filter(function(t){return t!==void 0}).reduce(function(t,n){return t.add(n),t},new Z).values():[]},stopExtendedInteractions:function(e){e.boxSelectElement&&(e.boxSelectElement.parentNode&&e.boxSelectElement.parentNode.removeChild(e.boxSelectElement),e.boxSelectElement=null),this.map.dragPan.enable(),e.boxSelecting=!1,e.canBoxSelect=!1,e.dragMoving=!1,e.canDragMove=!1},onStop:function(){ee.enable(this)},onMouseMove:function(e,t){return Pt(t)&&e.dragMoving&&this.fireUpdate(),this.stopExtendedInteractions(e),!0},onMouseOut:function(e){return!e.dragMoving||this.fireUpdate()}};D.onTap=D.onClick=function(e,t){return He(t)?this.clickAnywhere(e,t):qe(B.VERTEX)(t)?this.clickOnVertex(e,t):Pt(t)?this.clickOnFeature(e,t):void 0},D.clickAnywhere=function(e){var t=this,n=this.getSelectedIds();n.length&&(this.clearSelectedFeatures(),n.forEach(function(r){return t.doRender(r)})),ee.enable(this),this.stopExtendedInteractions(e)},D.clickOnVertex=function(e,t){this.changeMode(T.DIRECT_SELECT,{featureId:t.featureTarget.properties.parent,coordPath:t.featureTarget.properties.coord_path,startPos:t.lngLat}),this.updateUIClasses({mouse:N.MOVE})},D.startOnActiveFeature=function(e,t){this.stopExtendedInteractions(e),this.map.dragPan.disable(),this.doRender(t.featureTarget.properties.id),e.canDragMove=!0,e.dragMoveLocation=t.lngLat},D.clickOnFeature=function(e,t){var n=this;ee.disable(this),this.stopExtendedInteractions(e);var r=Xe(t),o=this.getSelectedIds(),i=t.featureTarget.properties.id,a=this.isSelected(i);if(!r&&a&&this.getFeature(i).type!==m.POINT)return this.changeMode(T.DIRECT_SELECT,{featureId:i});a&&r?(this.deselect(i),this.updateUIClasses({mouse:N.POINTER}),o.length===1&&ee.enable(this)):!a&&r?(this.select(i),this.updateUIClasses({mouse:N.MOVE})):a||r||(o.forEach(function(l){return n.doRender(l)}),this.setSelected(i),this.updateUIClasses({mouse:N.MOVE})),this.doRender(i)},D.onMouseDown=function(e,t){return _e(t)?this.startOnActiveFeature(e,t):this.drawConfig.boxSelect&&sn(t)?this.startBoxSelect(e,t):void 0},D.startBoxSelect=function(e,t){this.stopExtendedInteractions(e),this.map.dragPan.disable(),e.boxSelectStartLocation=Ft(t.originalEvent,this.map.getContainer()),e.canBoxSelect=!0},D.onTouchStart=function(e,t){if(_e(t))return this.startOnActiveFeature(e,t)},D.onDrag=function(e,t){return e.canDragMove?this.dragMove(e,t):this.drawConfig.boxSelect&&e.canBoxSelect?this.whileBoxSelect(e,t):void 0},D.whileBoxSelect=function(e,t){e.boxSelecting=!0,this.updateUIClasses({mouse:N.ADD}),e.boxSelectElement||(e.boxSelectElement=document.createElement("div"),e.boxSelectElement.classList.add(q.BOX_SELECT),this.map.getContainer().appendChild(e.boxSelectElement));var n=Ft(t.originalEvent,this.map.getContainer()),r=Math.min(e.boxSelectStartLocation.x,n.x),o=Math.max(e.boxSelectStartLocation.x,n.x),i=Math.min(e.boxSelectStartLocation.y,n.y),a=Math.max(e.boxSelectStartLocation.y,n.y),l="translate("+r+"px, "+i+"px)";e.boxSelectElement.style.transform=l,e.boxSelectElement.style.WebkitTransform=l,e.boxSelectElement.style.width=o-r+"px",e.boxSelectElement.style.height=a-i+"px"},D.dragMove=function(e,t){e.dragMoving=!0,t.originalEvent.stopPropagation();var n={lng:t.lngLat.lng-e.dragMoveLocation.lng,lat:t.lngLat.lat-e.dragMoveLocation.lat};Dt(this.getSelected(),n),e.dragMoveLocation=t.lngLat},D.onTouchEnd=D.onMouseUp=function(e,t){var n=this;if(e.dragMoving)this.fireUpdate();else if(e.boxSelecting){var r=[e.boxSelectStartLocation,Ft(t.originalEvent,this.map.getContainer())],o=this.featuresAt(null,r,"click"),i=this.getUniqueIds(o).filter(function(a){return!n.isSelected(a)});i.length&&(this.select(i),i.forEach(function(a){return n.doRender(a)}),this.updateUIClasses({mouse:N.MOVE}))}this.stopExtendedInteractions(e)},D.toDisplayFeatures=function(e,t,n){t.properties.active=this.isSelected(t.properties.id)?j.ACTIVE:j.INACTIVE,n(t),this.fireActionable(),t.properties.active===j.ACTIVE&&t.geometry.type!==m.POINT&&Ke(t).forEach(n)},D.onTrash=function(){this.deleteFeature(this.getSelectedIds()),this.fireActionable()},D.onCombineFeatures=function(){var e=this.getSelected();if(!(e.length===0||e.length<2)){for(var t=[],n=[],r=e[0].type.replace("Multi",""),o=0;o<e.length;o++){var i=e[o];if(i.type.replace("Multi","")!==r)return;i.type.includes("Multi")?i.getCoordinates().forEach(function(l){t.push(l)}):t.push(i.getCoordinates()),n.push(i.toGeoJSON())}if(n.length>1){var a=this.newFeature({type:m.FEATURE,properties:n[0].properties,geometry:{type:"Multi"+r,coordinates:t}});this.addFeature(a),this.deleteFeature(this.getSelectedIds(),{silent:!0}),this.setSelected([a.id]),this.map.fire(H.COMBINE_FEATURES,{createdFeatures:[a.toGeoJSON()],deletedFeatures:n})}this.fireActionable()}},D.onUncombineFeatures=function(){var e=this,t=this.getSelected();if(t.length!==0){for(var n=[],r=[],o=function(a){var l=t[a];e.isInstanceOf("MultiFeature",l)&&(l.getFeatures().forEach(function(d){e.addFeature(d),d.properties=l.properties,n.push(d.toGeoJSON()),e.select([d.id])}),e.deleteFeature(l.id,{silent:!0}),r.push(l.toGeoJSON()))},i=0;i<t.length;i++)o(i);n.length>1&&this.map.fire(H.UNCOMBINE_FEATURES,{createdFeatures:n,deletedFeatures:r}),this.fireActionable()}};var gn=qe(B.VERTEX),yn=qe(B.MIDPOINT),fe={fireUpdate:function(){this.map.fire(H.UPDATE,{action:Ot.CHANGE_COORDINATES,features:this.getSelected().map(function(e){return e.toGeoJSON()})})},fireActionable:function(e){this.setActionableState({combineFeatures:!1,uncombineFeatures:!1,trash:e.selectedCoordPaths.length>0})},startDragging:function(e,t){this.map.dragPan.disable(),e.canDragMove=!0,e.dragMoveLocation=t.lngLat},stopDragging:function(e){this.map.dragPan.enable(),e.dragMoving=!1,e.canDragMove=!1,e.dragMoveLocation=null},onVertex:function(e,t){this.startDragging(e,t);var n=t.featureTarget.properties,r=e.selectedCoordPaths.indexOf(n.coord_path);Xe(t)||r!==-1?Xe(t)&&r===-1&&e.selectedCoordPaths.push(n.coord_path):e.selectedCoordPaths=[n.coord_path];var o=this.pathsToCoordinates(e.featureId,e.selectedCoordPaths);this.setSelectedCoordinates(o)},onMidpoint:function(e,t){this.startDragging(e,t);var n=t.featureTarget.properties;e.feature.addCoordinate(n.coord_path,n.lng,n.lat),this.fireUpdate(),e.selectedCoordPaths=[n.coord_path]},pathsToCoordinates:function(e,t){return t.map(function(n){return{feature_id:e,coord_path:n}})},onFeature:function(e,t){e.selectedCoordPaths.length===0?this.startDragging(e,t):this.stopDragging(e)},dragFeature:function(e,t,n){Dt(this.getSelected(),n),e.dragMoveLocation=t.lngLat},dragVertex:function(e,t,n){for(var r=e.selectedCoordPaths.map(function(l){return e.feature.getCoordinate(l)}),o=Rt(r.map(function(l){return{type:m.FEATURE,properties:{},geometry:{type:m.POINT,coordinates:l}}}),n),i=0;i<r.length;i++){var a=r[i];e.feature.updateCoordinate(e.selectedCoordPaths[i],a[0]+o.lng,a[1]+o.lat)}},clickNoTarget:function(){this.changeMode(T.SIMPLE_SELECT)},clickInactive:function(){this.changeMode(T.SIMPLE_SELECT)},clickActiveFeature:function(e){e.selectedCoordPaths=[],this.clearSelectedCoordinates(),e.feature.changed()},onSetup:function(e){var t=e.featureId,n=this.getFeature(t);if(!n)throw new Error("You must provide a featureId to enter direct_select mode");if(n.type===m.POINT)throw new TypeError("direct_select mode doesn't handle point features");var r={featureId:t,feature:n,dragMoveLocation:e.startPos||null,dragMoving:!1,canDragMove:!1,selectedCoordPaths:e.coordPath?[e.coordPath]:[]};return this.setSelectedCoordinates(this.pathsToCoordinates(t,r.selectedCoordPaths)),this.setSelected(t),ee.disable(this),this.setActionableState({trash:!0}),r},onStop:function(){ee.enable(this),this.clearSelectedCoordinates()},toDisplayFeatures:function(e,t,n){e.featureId===t.properties.id?(t.properties.active=j.ACTIVE,n(t),Ke(t,{map:this.map,midpoints:!0,selectedPaths:e.selectedCoordPaths}).forEach(n)):(t.properties.active=j.INACTIVE,n(t)),this.fireActionable(e)},onTrash:function(e){e.selectedCoordPaths.sort(function(t,n){return n.localeCompare(t,"en",{numeric:!0})}).forEach(function(t){return e.feature.removeCoordinate(t)}),this.fireUpdate(),e.selectedCoordPaths=[],this.clearSelectedCoordinates(),this.fireActionable(e),e.feature.isValid()===!1&&(this.deleteFeature([e.featureId]),this.changeMode(T.SIMPLE_SELECT,{}))},onMouseMove:function(e,t){var n=_e(t),r=gn(t),o=yn(t),i=e.selectedCoordPaths.length===0;return n&&i||r&&!i?this.updateUIClasses({mouse:N.MOVE}):this.updateUIClasses({mouse:N.NONE}),(r||n||o)&&e.dragMoving&&this.fireUpdate(),this.stopDragging(e),!0},onMouseOut:function(e){return e.dragMoving&&this.fireUpdate(),!0}};fe.onTouchStart=fe.onMouseDown=function(e,t){return gn(t)?this.onVertex(e,t):_e(t)?this.onFeature(e,t):yn(t)?this.onMidpoint(e,t):void 0},fe.onDrag=function(e,t){if(e.canDragMove===!0){e.dragMoving=!0,t.originalEvent.stopPropagation();var n={lng:t.lngLat.lng-e.dragMoveLocation.lng,lat:t.lngLat.lat-e.dragMoveLocation.lat};e.selectedCoordPaths.length>0?this.dragVertex(e,t,n):this.dragFeature(e,t,n),e.dragMoveLocation=t.lngLat}},fe.onClick=function(e,t){return He(t)?this.clickNoTarget(e,t):_e(t)?this.clickActiveFeature(e,t):At(t)?this.clickInactive(e,t):void this.stopDragging(e)},fe.onTap=function(e,t){return He(t)?this.clickNoTarget(e,t):_e(t)?this.clickActiveFeature(e,t):At(t)?this.clickInactive(e,t):void 0},fe.onTouchEnd=fe.onMouseUp=function(e){e.dragMoving&&this.fireUpdate(),this.stopDragging(e)};var ne={};function it(e,t){return!!e.lngLat&&e.lngLat.lng===t[0]&&e.lngLat.lat===t[1]}ne.onSetup=function(){var e=this.newFeature({type:m.FEATURE,properties:{},geometry:{type:m.POINT,coordinates:[]}});return this.addFeature(e),this.clearSelectedFeatures(),this.updateUIClasses({mouse:N.ADD}),this.activateUIButton(Y.POINT),this.setActionableState({trash:!0}),{point:e}},ne.stopDrawingAndRemove=function(e){this.deleteFeature([e.point.id],{silent:!0}),this.changeMode(T.SIMPLE_SELECT)},ne.onTap=ne.onClick=function(e,t){this.updateUIClasses({mouse:N.MOVE}),e.point.updateCoordinate("",t.lngLat.lng,t.lngLat.lat),this.map.fire(H.CREATE,{features:[e.point.toGeoJSON()]}),this.changeMode(T.SIMPLE_SELECT,{featureIds:[e.point.id]})},ne.onStop=function(e){this.activateUIButton(),e.point.getCoordinate().length||this.deleteFeature([e.point.id],{silent:!0})},ne.toDisplayFeatures=function(e,t,n){var r=t.properties.id===e.point.id;if(t.properties.active=r?j.ACTIVE:j.INACTIVE,!r)return n(t)},ne.onTrash=ne.stopDrawingAndRemove,ne.onKeyUp=function(e,t){if(Ze(t)||We(t))return this.stopDrawingAndRemove(e,t)};var be={onSetup:function(){var e=this.newFeature({type:m.FEATURE,properties:{},geometry:{type:m.POLYGON,coordinates:[[]]}});return this.addFeature(e),this.clearSelectedFeatures(),ee.disable(this),this.updateUIClasses({mouse:N.ADD}),this.activateUIButton(Y.POLYGON),this.setActionableState({trash:!0}),{polygon:e,currentVertexPosition:0}},clickAnywhere:function(e,t){if(e.currentVertexPosition>0&&it(t,e.polygon.coordinates[0][e.currentVertexPosition-1]))return this.changeMode(T.SIMPLE_SELECT,{featureIds:[e.polygon.id]});this.updateUIClasses({mouse:N.ADD}),e.polygon.updateCoordinate("0."+e.currentVertexPosition,t.lngLat.lng,t.lngLat.lat),e.currentVertexPosition++,e.polygon.updateCoordinate("0."+e.currentVertexPosition,t.lngLat.lng,t.lngLat.lat)},clickOnVertex:function(e){return this.changeMode(T.SIMPLE_SELECT,{featureIds:[e.polygon.id]})},onMouseMove:function(e,t){e.polygon.updateCoordinate("0."+e.currentVertexPosition,t.lngLat.lng,t.lngLat.lat),ke(t)&&this.updateUIClasses({mouse:N.POINTER})}};be.onTap=be.onClick=function(e,t){return ke(t)?this.clickOnVertex(e,t):this.clickAnywhere(e,t)},be.onKeyUp=function(e,t){Ze(t)?(this.deleteFeature([e.polygon.id],{silent:!0}),this.changeMode(T.SIMPLE_SELECT)):We(t)&&this.changeMode(T.SIMPLE_SELECT,{featureIds:[e.polygon.id]})},be.onStop=function(e){this.updateUIClasses({mouse:N.NONE}),ee.enable(this),this.activateUIButton(),this.getFeature(e.polygon.id)!==void 0&&(e.polygon.removeCoordinate("0."+e.currentVertexPosition),e.polygon.isValid()?this.map.fire(H.CREATE,{features:[e.polygon.toGeoJSON()]}):(this.deleteFeature([e.polygon.id],{silent:!0}),this.changeMode(T.SIMPLE_SELECT,{},{silent:!0})))},be.toDisplayFeatures=function(e,t,n){var r=t.properties.id===e.polygon.id;if(t.properties.active=r?j.ACTIVE:j.INACTIVE,!r)return n(t);if(t.geometry.coordinates.length!==0){var o=t.geometry.coordinates[0].length;if(!(o<3)){if(t.properties.meta=B.FEATURE,n(Le(e.polygon.id,t.geometry.coordinates[0][0],"0.0",!1)),o>3){var i=t.geometry.coordinates[0].length-3;n(Le(e.polygon.id,t.geometry.coordinates[0][i],"0."+i,!1))}if(o<=4){var a=[[t.geometry.coordinates[0][0][0],t.geometry.coordinates[0][0][1]],[t.geometry.coordinates[0][1][0],t.geometry.coordinates[0][1][1]]];if(n({type:m.FEATURE,properties:t.properties,geometry:{coordinates:a,type:m.LINE_STRING}}),o===3)return}return n(t)}}},be.onTrash=function(e){this.deleteFeature([e.polygon.id],{silent:!0}),this.changeMode(T.SIMPLE_SELECT)};var Ee={onSetup:function(e){var t,n,r=(e=e||{}).featureId,o="forward";if(r){if(!(t=this.getFeature(r)))throw new Error("Could not find a feature with the provided featureId");var i=e.from;if(i&&i.type==="Feature"&&i.geometry&&i.geometry.type==="Point"&&(i=i.geometry),i&&i.type==="Point"&&i.coordinates&&i.coordinates.length===2&&(i=i.coordinates),!i||!Array.isArray(i))throw new Error("Please use the `from` property to indicate which point to continue the line from");var a=t.coordinates.length-1;if(t.coordinates[a][0]===i[0]&&t.coordinates[a][1]===i[1])n=a+1,t.addCoordinate.apply(t,[n].concat(t.coordinates[a]));else{if(t.coordinates[0][0]!==i[0]||t.coordinates[0][1]!==i[1])throw new Error("`from` should match the point at either the start or the end of the provided LineString");o="backwards",n=0,t.addCoordinate.apply(t,[n].concat(t.coordinates[0]))}}else t=this.newFeature({type:m.FEATURE,properties:{},geometry:{type:m.LINE_STRING,coordinates:[]}}),n=0,this.addFeature(t);return this.clearSelectedFeatures(),ee.disable(this),this.updateUIClasses({mouse:N.ADD}),this.activateUIButton(Y.LINE),this.setActionableState({trash:!0}),{line:t,currentVertexPosition:n,direction:o}},clickAnywhere:function(e,t){if(e.currentVertexPosition>0&&it(t,e.line.coordinates[e.currentVertexPosition-1])||e.direction==="backwards"&&it(t,e.line.coordinates[e.currentVertexPosition+1]))return this.changeMode(T.SIMPLE_SELECT,{featureIds:[e.line.id]});this.updateUIClasses({mouse:N.ADD}),e.line.updateCoordinate(e.currentVertexPosition,t.lngLat.lng,t.lngLat.lat),e.direction==="forward"?(e.currentVertexPosition++,e.line.updateCoordinate(e.currentVertexPosition,t.lngLat.lng,t.lngLat.lat)):e.line.addCoordinate(0,t.lngLat.lng,t.lngLat.lat)},clickOnVertex:function(e){return this.changeMode(T.SIMPLE_SELECT,{featureIds:[e.line.id]})},onMouseMove:function(e,t){e.line.updateCoordinate(e.currentVertexPosition,t.lngLat.lng,t.lngLat.lat),ke(t)&&this.updateUIClasses({mouse:N.POINTER})}};Ee.onTap=Ee.onClick=function(e,t){if(ke(t))return this.clickOnVertex(e,t);this.clickAnywhere(e,t)},Ee.onKeyUp=function(e,t){We(t)?this.changeMode(T.SIMPLE_SELECT,{featureIds:[e.line.id]}):Ze(t)&&(this.deleteFeature([e.line.id],{silent:!0}),this.changeMode(T.SIMPLE_SELECT))},Ee.onStop=function(e){ee.enable(this),this.activateUIButton(),this.getFeature(e.line.id)!==void 0&&(e.line.removeCoordinate(""+e.currentVertexPosition),e.line.isValid()?this.map.fire(H.CREATE,{features:[e.line.toGeoJSON()]}):(this.deleteFeature([e.line.id],{silent:!0}),this.changeMode(T.SIMPLE_SELECT,{},{silent:!0})))},Ee.onTrash=function(e){this.deleteFeature([e.line.id],{silent:!0}),this.changeMode(T.SIMPLE_SELECT)},Ee.toDisplayFeatures=function(e,t,n){var r=t.properties.id===e.line.id;if(t.properties.active=r?j.ACTIVE:j.INACTIVE,!r)return n(t);t.geometry.coordinates.length<2||(t.properties.meta=B.FEATURE,n(Le(e.line.id,t.geometry.coordinates[e.direction==="forward"?t.geometry.coordinates.length-2:1],""+(e.direction==="forward"?t.geometry.coordinates.length-2:1),!1)),n(t))};var vn={simple_select:D,direct_select:fe,draw_point:ne,draw_polygon:be,draw_line_string:Ee},xr={defaultMode:T.SIMPLE_SELECT,keybindings:!0,touchEnabled:!0,clickBuffer:2,touchBuffer:25,boxSelect:!0,displayControlsDefault:!0,styles:an,modes:vn,controls:{},userProperties:!1},Mr={point:!0,line_string:!0,polygon:!0,trash:!0,combine_features:!0,uncombine_features:!0},Lr={point:!1,line_string:!1,polygon:!1,trash:!1,combine_features:!1,uncombine_features:!1};function mn(e,t){return e.map(function(n){return n.source?n:pe(n,{id:n.id+"."+t,source:t==="hot"?X.HOT:X.COLD})})}var kt={exports:{}};(function(e,t){var n="__lodash_hash_undefined__",r=9007199254740991,o="[object Arguments]",i="[object Array]",a="[object Boolean]",l="[object Date]",d="[object Error]",h="[object Function]",g="[object Map]",p="[object Number]",_="[object Object]",A="[object Promise]",b="[object RegExp]",F="[object Set]",c="[object String]",y="[object Symbol]",O="[object WeakMap]",V="[object ArrayBuffer]",w="[object DataView]",Ut=/^\[object .+?Constructor\]$/,Fr=/^(?:0|[1-9]\d*)$/,M={};M["[object Float32Array]"]=M["[object Float64Array]"]=M["[object Int8Array]"]=M["[object Int16Array]"]=M["[object Int32Array]"]=M["[object Uint8Array]"]=M["[object Uint8ClampedArray]"]=M["[object Uint16Array]"]=M["[object Uint32Array]"]=!0,M[o]=M[i]=M[V]=M[a]=M[w]=M[l]=M[d]=M[h]=M[g]=M[p]=M[_]=M[b]=M[F]=M[c]=M[O]=!1;var En=typeof Re.commonjsGlobal=="object"&&Re.commonjsGlobal&&Re.commonjsGlobal.Object===Object&&Re.commonjsGlobal,wr=typeof self=="object"&&self&&self.Object===Object&&self,ae=En||wr||Function("return this")(),Tn=t&&!t.nodeType&&t,Cn=Tn&&e&&!e.nodeType&&e,On=Cn&&Cn.exports===Tn,jt=On&&En.process,Sn=function(){try{return jt&&jt.binding&&jt.binding("util")}catch{}}(),In=Sn&&Sn.isTypedArray;function Rr(s,u){for(var f=-1,v=s==null?0:s.length;++f<v;)if(u(s[f],f,s))return!0;return!1}function Dr(s){var u=-1,f=Array(s.size);return s.forEach(function(v,L){f[++u]=[L,v]}),f}function kr(s){var u=-1,f=Array(s.size);return s.forEach(function(v){f[++u]=v}),f}var xn,Mn,Ln,Ur=Array.prototype,jr=Function.prototype,st=Object.prototype,Vt=ae["__core-js_shared__"],Nn=jr.toString,re=st.hasOwnProperty,An=(xn=/[^.]+$/.exec(Vt&&Vt.keys&&Vt.keys.IE_PROTO||""))?"Symbol(src)_1."+xn:"",Pn=st.toString,Vr=RegExp("^"+Nn.call(re).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Fn=On?ae.Buffer:void 0,ut=ae.Symbol,wn=ae.Uint8Array,Rn=st.propertyIsEnumerable,Br=Ur.splice,Te=ut?ut.toStringTag:void 0,Dn=Object.getOwnPropertySymbols,Gr=Fn?Fn.isBuffer:void 0,Jr=(Mn=Object.keys,Ln=Object,function(s){return Mn(Ln(s))}),Bt=Ae(ae,"DataView"),Ue=Ae(ae,"Map"),Gt=Ae(ae,"Promise"),Jt=Ae(ae,"Set"),zt=Ae(ae,"WeakMap"),je=Ae(Object,"create"),zr=Se(Bt),Yr=Se(Ue),$r=Se(Gt),qr=Se(Jt),Hr=Se(zt),kn=ut?ut.prototype:void 0,Yt=kn?kn.valueOf:void 0;function Ce(s){var u=-1,f=s==null?0:s.length;for(this.clear();++u<f;){var v=s[u];this.set(v[0],v[1])}}function se(s){var u=-1,f=s==null?0:s.length;for(this.clear();++u<f;){var v=s[u];this.set(v[0],v[1])}}function Oe(s){var u=-1,f=s==null?0:s.length;for(this.clear();++u<f;){var v=s[u];this.set(v[0],v[1])}}function ct(s){var u=-1,f=s==null?0:s.length;for(this.__data__=new Oe;++u<f;)this.add(s[u])}function he(s){var u=this.__data__=new se(s);this.size=u.size}function Xr(s,u){var f=pt(s),v=!f&&eo(s),L=!f&&!v&&$t(s),C=!f&&!v&&!L&&$n(s),P=f||v||L||C,R=P?function(U,oe){for(var ue=-1,z=Array(U);++ue<U;)z[ue]=oe(ue);return z}(s.length,String):[],te=R.length;for(var k in s)!u&&!re.call(s,k)||P&&(k=="length"||L&&(k=="offset"||k=="parent")||C&&(k=="buffer"||k=="byteLength"||k=="byteOffset")||Qr(k,te))||R.push(k);return R}function lt(s,u){for(var f=s.length;f--;)if(Gn(s[f][0],u))return f;return-1}function Ve(s){return s==null?s===void 0?"[object Undefined]":"[object Null]":Te&&Te in Object(s)?function(u){var f=re.call(u,Te),v=u[Te];try{u[Te]=void 0;var L=!0}catch{}var C=Pn.call(u);return L&&(f?u[Te]=v:delete u[Te]),C}(s):function(u){return Pn.call(u)}(s)}function Un(s){return Be(s)&&Ve(s)==o}function jn(s,u,f,v,L){return s===u||(s==null||u==null||!Be(s)&&!Be(u)?s!=s&&u!=u:function(C,P,R,te,k,U){var oe=pt(C),ue=pt(P),z=oe?i:ge(C),ce=ue?i:ge(P),Pe=(z=z==o?_:z)==_,ft=(ce=ce==o?_:ce)==_,Fe=z==ce;if(Fe&&$t(C)){if(!$t(P))return!1;oe=!0,Pe=!1}if(Fe&&!Pe)return U||(U=new he),oe||$n(C)?Vn(C,P,R,te,k,U):function(I,S,ht,ye,qt,Q,le){switch(ht){case w:if(I.byteLength!=S.byteLength||I.byteOffset!=S.byteOffset)return!1;I=I.buffer,S=S.buffer;case V:return!(I.byteLength!=S.byteLength||!Q(new wn(I),new wn(S)));case a:case l:case p:return Gn(+I,+S);case d:return I.name==S.name&&I.message==S.message;case b:case c:return I==S+"";case g:var ve=Dr;case F:var Je=1&ye;if(ve||(ve=kr),I.size!=S.size&&!Je)return!1;var gt=le.get(I);if(gt)return gt==S;ye|=2,le.set(I,S);var we=Vn(ve(I),ve(S),ye,qt,Q,le);return le.delete(I),we;case y:if(Yt)return Yt.call(I)==Yt.call(S)}return!1}(C,P,z,R,te,k,U);if(!(1&R)){var Ge=Pe&&re.call(C,"__wrapped__"),qn=ft&&re.call(P,"__wrapped__");if(Ge||qn){var no=Ge?C.value():C,ro=qn?P.value():P;return U||(U=new he),k(no,ro,R,te,U)}}return Fe?(U||(U=new he),function(I,S,ht,ye,qt,Q){var le=1&ht,ve=Bn(I),Je=ve.length,gt=Bn(S).length;if(Je!=gt&&!le)return!1;for(var we=Je;we--;){var Ie=ve[we];if(!(le?Ie in S:re.call(S,Ie)))return!1}var Hn=Q.get(I);if(Hn&&Q.get(S))return Hn==S;var yt=!0;Q.set(I,S),Q.set(S,I);for(var Ht=le;++we<Je;){var vt=I[Ie=ve[we]],mt=S[Ie];if(ye)var Xn=le?ye(mt,vt,Ie,S,I,Q):ye(vt,mt,Ie,I,S,Q);if(!(Xn===void 0?vt===mt||qt(vt,mt,ht,ye,Q):Xn)){yt=!1;break}Ht||(Ht=Ie=="constructor")}if(yt&&!Ht){var _t=I.constructor,bt=S.constructor;_t==bt||!("constructor"in I)||!("constructor"in S)||typeof _t=="function"&&_t instanceof _t&&typeof bt=="function"&&bt instanceof bt||(yt=!1)}return Q.delete(I),Q.delete(S),yt}(C,P,R,te,k,U)):!1}(s,u,f,v,jn,L))}function Zr(s){return!(!Yn(s)||function(u){return!!An&&An in u}(s))&&(Jn(s)?Vr:Ut).test(Se(s))}function Wr(s){if(f=(u=s)&&u.constructor,v=typeof f=="function"&&f.prototype||st,u!==v)return Jr(s);var u,f,v,L=[];for(var C in Object(s))re.call(s,C)&&C!="constructor"&&L.push(C);return L}function Vn(s,u,f,v,L,C){var P=1&f,R=s.length,te=u.length;if(R!=te&&!(P&&te>R))return!1;var k=C.get(s);if(k&&C.get(u))return k==u;var U=-1,oe=!0,ue=2&f?new ct:void 0;for(C.set(s,u),C.set(u,s);++U<R;){var z=s[U],ce=u[U];if(v)var Pe=P?v(ce,z,U,u,s,C):v(z,ce,U,s,u,C);if(Pe!==void 0){if(Pe)continue;oe=!1;break}if(ue){if(!Rr(u,function(ft,Fe){if(Ge=Fe,!ue.has(Ge)&&(z===ft||L(z,ft,f,v,C)))return ue.push(Fe);var Ge})){oe=!1;break}}else if(z!==ce&&!L(z,ce,f,v,C)){oe=!1;break}}return C.delete(s),C.delete(u),oe}function Bn(s){return function(u,f,v){var L=f(u);return pt(u)?L:function(C,P){for(var R=-1,te=P.length,k=C.length;++R<te;)C[k+R]=P[R];return C}(L,v(u))}(s,to,Kr)}function dt(s,u){var f,v,L=s.__data__;return((v=typeof(f=u))=="string"||v=="number"||v=="symbol"||v=="boolean"?f!=="__proto__":f===null)?L[typeof u=="string"?"string":"hash"]:L.map}function Ae(s,u){var f=function(v,L){return v==null?void 0:v[L]}(s,u);return Zr(f)?f:void 0}Ce.prototype.clear=function(){this.__data__=je?je(null):{},this.size=0},Ce.prototype.delete=function(s){var u=this.has(s)&&delete this.__data__[s];return this.size-=u?1:0,u},Ce.prototype.get=function(s){var u=this.__data__;if(je){var f=u[s];return f===n?void 0:f}return re.call(u,s)?u[s]:void 0},Ce.prototype.has=function(s){var u=this.__data__;return je?u[s]!==void 0:re.call(u,s)},Ce.prototype.set=function(s,u){var f=this.__data__;return this.size+=this.has(s)?0:1,f[s]=je&&u===void 0?n:u,this},se.prototype.clear=function(){this.__data__=[],this.size=0},se.prototype.delete=function(s){var u=this.__data__,f=lt(u,s);return!(f<0)&&(f==u.length-1?u.pop():Br.call(u,f,1),--this.size,!0)},se.prototype.get=function(s){var u=this.__data__,f=lt(u,s);return f<0?void 0:u[f][1]},se.prototype.has=function(s){return lt(this.__data__,s)>-1},se.prototype.set=function(s,u){var f=this.__data__,v=lt(f,s);return v<0?(++this.size,f.push([s,u])):f[v][1]=u,this},Oe.prototype.clear=function(){this.size=0,this.__data__={hash:new Ce,map:new(Ue||se),string:new Ce}},Oe.prototype.delete=function(s){var u=dt(this,s).delete(s);return this.size-=u?1:0,u},Oe.prototype.get=function(s){return dt(this,s).get(s)},Oe.prototype.has=function(s){return dt(this,s).has(s)},Oe.prototype.set=function(s,u){var f=dt(this,s),v=f.size;return f.set(s,u),this.size+=f.size==v?0:1,this},ct.prototype.add=ct.prototype.push=function(s){return this.__data__.set(s,n),this},ct.prototype.has=function(s){return this.__data__.has(s)},he.prototype.clear=function(){this.__data__=new se,this.size=0},he.prototype.delete=function(s){var u=this.__data__,f=u.delete(s);return this.size=u.size,f},he.prototype.get=function(s){return this.__data__.get(s)},he.prototype.has=function(s){return this.__data__.has(s)},he.prototype.set=function(s,u){var f=this.__data__;if(f instanceof se){var v=f.__data__;if(!Ue||v.length<199)return v.push([s,u]),this.size=++f.size,this;f=this.__data__=new Oe(v)}return f.set(s,u),this.size=f.size,this};var Kr=Dn?function(s){return s==null?[]:(s=Object(s),function(u,f){for(var v=-1,L=u==null?0:u.length,C=0,P=[];++v<L;){var R=u[v];f(R,v,u)&&(P[C++]=R)}return P}(Dn(s),function(u){return Rn.call(s,u)}))}:function(){return[]},ge=Ve;function Qr(s,u){return!!(u=u??r)&&(typeof s=="number"||Fr.test(s))&&s>-1&&s%1==0&&s<u}function Se(s){if(s!=null){try{return Nn.call(s)}catch{}try{return s+""}catch{}}return""}function Gn(s,u){return s===u||s!=s&&u!=u}(Bt&&ge(new Bt(new ArrayBuffer(1)))!=w||Ue&&ge(new Ue)!=g||Gt&&ge(Gt.resolve())!=A||Jt&&ge(new Jt)!=F||zt&&ge(new zt)!=O)&&(ge=function(s){var u=Ve(s),f=u==_?s.constructor:void 0,v=f?Se(f):"";if(v)switch(v){case zr:return w;case Yr:return g;case $r:return A;case qr:return F;case Hr:return O}return u});var eo=Un(function(){return arguments}())?Un:function(s){return Be(s)&&re.call(s,"callee")&&!Rn.call(s,"callee")},pt=Array.isArray,$t=Gr||function(){return!1};function Jn(s){if(!Yn(s))return!1;var u=Ve(s);return u==h||u=="[object GeneratorFunction]"||u=="[object AsyncFunction]"||u=="[object Proxy]"}function zn(s){return typeof s=="number"&&s>-1&&s%1==0&&s<=r}function Yn(s){var u=typeof s;return s!=null&&(u=="object"||u=="function")}function Be(s){return s!=null&&typeof s=="object"}var $n=In?function(s){return function(u){return s(u)}}(In):function(s){return Be(s)&&zn(s.length)&&!!M[Ve(s)]};function to(s){return(u=s)!=null&&zn(u.length)&&!Jn(u)?Xr(s):Wr(s);var u}e.exports=function(s,u){return jn(s,u)}})(kt,kt.exports);var _n=de(kt.exports);function bn(e,t){return e.length===t.length&&JSON.stringify(e.map(function(n){return n}).sort())===JSON.stringify(t.map(function(n){return n}).sort())}var Nr={Polygon:W,LineString:ie,Point:me,MultiPolygon:$,MultiLineString:$,MultiPoint:$},Ar=Object.freeze({__proto__:null,CommonSelectors:dr,constrainFeatureMovement:Rt,createMidPoint:un,createSupplementaryPoints:Ke,createVertex:Le,doubleClickZoom:ee,euclideanDistance:It,featuresAt:xe,getFeatureAtAndSetCursors:Ye,isClick:xt,isEventAtCoordinates:it,isTap:Mt,mapEventToBoundingBox:en,ModeHandler:ze,moveFeatures:Dt,sortFeatures:Qt,stringSetsAreEqual:bn,StringSet:Z,theme:an,toDenseArray:De}),Pr=function(e,t){var n={options:e=function(o){o===void 0&&(o={});var i=pe(o);return o.controls||(i.controls={}),o.displayControlsDefault===!1?i.controls=pe(Lr,o.controls):i.controls=pe(Mr,o.controls),(i=pe(xr,i)).styles=mn(i.styles,"cold").concat(mn(i.styles,"hot")),i}(e)};t=function(o,i){return i.modes=T,i.getFeatureIdsAt=function(a){return xe.click({point:a},null,o).map(function(l){return l.properties.id})},i.getSelectedIds=function(){return o.store.getSelectedIds()},i.getSelected=function(){return{type:m.FEATURE_COLLECTION,features:o.store.getSelectedIds().map(function(a){return o.store.get(a)}).map(function(a){return a.toGeoJSON()})}},i.getSelectedPoints=function(){return{type:m.FEATURE_COLLECTION,features:o.store.getSelectedCoordinates().map(function(a){return{type:m.FEATURE,properties:{},geometry:{type:m.POINT,coordinates:a.coordinates}}})}},i.set=function(a){if(a.type===void 0||a.type!==m.FEATURE_COLLECTION||!Array.isArray(a.features))throw new Error("Invalid FeatureCollection");var l=o.store.createRenderBatch(),d=o.store.getAllIds().slice(),h=i.add(a),g=new Z(h);return(d=d.filter(function(p){return!g.has(p)})).length&&i.delete(d),l(),h},i.add=function(a){var l=JSON.parse(JSON.stringify(gr(a))).features.map(function(d){if(d.id=d.id||Nt(),d.geometry===null)throw new Error("Invalid geometry: null");if(o.store.get(d.id)===void 0||o.store.get(d.id).type!==d.geometry.type){var h=Nr[d.geometry.type];if(h===void 0)throw new Error("Invalid geometry type: "+d.geometry.type+".");var g=new h(o,d);o.store.add(g)}else{var p=o.store.get(d.id);p.properties=d.properties,_n(p.properties,d.properties)||o.store.featureChanged(p.id),_n(p.getCoordinates(),d.geometry.coordinates)||p.incomingCoords(d.geometry.coordinates)}return d.id});return o.store.render(),l},i.get=function(a){var l=o.store.get(a);if(l)return l.toGeoJSON()},i.getAll=function(){return{type:m.FEATURE_COLLECTION,features:o.store.getAll().map(function(a){return a.toGeoJSON()})}},i.delete=function(a){return o.store.delete(a,{silent:!0}),i.getMode()!==T.DIRECT_SELECT||o.store.getSelectedIds().length?o.store.render():o.events.changeMode(T.SIMPLE_SELECT,void 0,{silent:!0}),i},i.deleteAll=function(){return o.store.delete(o.store.getAllIds(),{silent:!0}),i.getMode()===T.DIRECT_SELECT?o.events.changeMode(T.SIMPLE_SELECT,void 0,{silent:!0}):o.store.render(),i},i.changeMode=function(a,l){return l===void 0&&(l={}),a===T.SIMPLE_SELECT&&i.getMode()===T.SIMPLE_SELECT?(bn(l.featureIds||[],o.store.getSelectedIds())||(o.store.setSelected(l.featureIds,{silent:!0}),o.store.render()),i):(a===T.DIRECT_SELECT&&i.getMode()===T.DIRECT_SELECT&&l.featureId===o.store.getSelectedIds()[0]||o.events.changeMode(a,l,{silent:!0}),i)},i.getMode=function(){return o.events.getMode()},i.trash=function(){return o.events.trash({silent:!0}),i},i.combineFeatures=function(){return o.events.combineFeatures({silent:!0}),i},i.uncombineFeatures=function(){return o.events.uncombineFeatures({silent:!0}),i},i.setFeatureProperty=function(a,l,d){return o.store.setFeatureProperty(a,l,d),i},i}(n,t),n.api=t;var r=lr(n);return t.onAdd=r.onAdd,t.onRemove=r.onRemove,t.types=Y,t.options=e,t};function at(e){Pr(e,this)}return at.modes=vn,at.constants=er,at.lib=Ar,at})})(Zn.__module);var oo=Zn.__module.exports;const io=Re.getDefaultExportFromCjs(oo);module.exports=io;
1
+ "use strict";const Re=require("./index.cjs59.js"),Zn=require("./index.cjs64.js");(function(Wn,ao){(function(ze,de){Wn.exports=de()})(Re.commonjsGlobal,function(){var ze=function(e,t){var n={drag:[],click:[],mousemove:[],mousedown:[],mouseup:[],mouseout:[],keydown:[],keyup:[],touchstart:[],touchmove:[],touchend:[],tap:[]},r={on:function(i,a,l){if(n[i]===void 0)throw new Error("Invalid event type: "+i);n[i].push({selector:a,fn:l})},render:function(i){t.store.featureChanged(i)}},o=function(i,a){for(var l=n[i],d=l.length;d--;){var h=l[d];if(h.selector(a)){h.fn.call(r,a)||t.store.render(),t.ui.updateMapClasses();break}}};return e.start.call(r),{render:e.render,stop:function(){e.stop&&e.stop()},trash:function(){e.trash&&(e.trash(),t.store.render())},combineFeatures:function(){e.combineFeatures&&e.combineFeatures()},uncombineFeatures:function(){e.uncombineFeatures&&e.uncombineFeatures()},drag:function(i){o("drag",i)},click:function(i){o("click",i)},mousemove:function(i){o("mousemove",i)},mousedown:function(i){o("mousedown",i)},mouseup:function(i){o("mouseup",i)},mouseout:function(i){o("mouseout",i)},keydown:function(i){o("keydown",i)},keyup:function(i){o("keyup",i)},touchstart:function(i){o("touchstart",i)},touchmove:function(i){o("touchmove",i)},touchend:function(i){o("touchend",i)},tap:function(i){o("tap",i)}}};function de(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Kn(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){if(this instanceof r){var o=[null];o.push.apply(o,arguments);var i=Function.bind.apply(t,o);return new i}return t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}),n}var Et={},Qn={RADIUS:6378137,FLATTENING:1/298.257223563,POLAR_RADIUS:63567523142e-4},Xt=Qn;function Zt(e){var t=0;if(e&&e.length>0){t+=Math.abs(Tt(e[0]));for(var n=1;n<e.length;n++)t-=Math.abs(Tt(e[n]))}return t}function Tt(e){var t,n,r,o,i,a,l=0,d=e.length;if(d>2){for(a=0;a<d;a++)a===d-2?(r=d-2,o=d-1,i=0):a===d-1?(r=d-1,o=0,i=1):(r=a,o=a+1,i=a+2),t=e[r],n=e[o],l+=(Ct(e[i][0])-Ct(t[0]))*Math.sin(Ct(n[1]));l=l*Xt.RADIUS*Xt.RADIUS/2}return l}function Ct(e){return e*Math.PI/180}Et.geometry=function e(t){var n,r=0;switch(t.type){case"Polygon":return Zt(t.coordinates);case"MultiPolygon":for(n=0;n<t.coordinates.length;n++)r+=Zt(t.coordinates[n]);return r;case"Point":case"MultiPoint":case"LineString":case"MultiLineString":return 0;case"GeometryCollection":for(n=0;n<t.geometries.length;n++)r+=e(t.geometries[n]);return r}},Et.ring=Tt;var q={CONTROL_BASE:"mapboxgl-ctrl",CONTROL_PREFIX:"mapboxgl-ctrl-",CONTROL_BUTTON:"mapbox-gl-draw_ctrl-draw-btn",CONTROL_BUTTON_LINE:"mapbox-gl-draw_line",CONTROL_BUTTON_POLYGON:"mapbox-gl-draw_polygon",CONTROL_BUTTON_POINT:"mapbox-gl-draw_point",CONTROL_BUTTON_TRASH:"mapbox-gl-draw_trash",CONTROL_BUTTON_COMBINE_FEATURES:"mapbox-gl-draw_combine",CONTROL_BUTTON_UNCOMBINE_FEATURES:"mapbox-gl-draw_uncombine",CONTROL_GROUP:"mapboxgl-ctrl-group",ATTRIBUTION:"mapboxgl-ctrl-attrib",ACTIVE_BUTTON:"active",BOX_SELECT:"mapbox-gl-draw_boxselect"},X={HOT:"mapbox-gl-draw-hot",COLD:"mapbox-gl-draw-cold"},N={ADD:"add",MOVE:"move",DRAG:"drag",POINTER:"pointer",NONE:"none"},Y={POLYGON:"polygon",LINE:"line_string",POINT:"point"},m={FEATURE:"Feature",POLYGON:"Polygon",LINE_STRING:"LineString",POINT:"Point",FEATURE_COLLECTION:"FeatureCollection",MULTI_PREFIX:"Multi",MULTI_POINT:"MultiPoint",MULTI_LINE_STRING:"MultiLineString",MULTI_POLYGON:"MultiPolygon"},T={DRAW_LINE_STRING:"draw_line_string",DRAW_POLYGON:"draw_polygon",DRAW_POINT:"draw_point",SIMPLE_SELECT:"simple_select",DIRECT_SELECT:"direct_select",STATIC:"static"},H={CREATE:"draw.create",DELETE:"draw.delete",UPDATE:"draw.update",SELECTION_CHANGE:"draw.selectionchange",MODE_CHANGE:"draw.modechange",ACTIONABLE:"draw.actionable",RENDER:"draw.render",COMBINE_FEATURES:"draw.combine",UNCOMBINE_FEATURES:"draw.uncombine"},Ot={MOVE:"move",CHANGE_COORDINATES:"change_coordinates"},B={FEATURE:"feature",MIDPOINT:"midpoint",VERTEX:"vertex"},j={ACTIVE:"true",INACTIVE:"false"},Wt=["scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate"],St=-85,er=Object.freeze({__proto__:null,classes:q,sources:X,cursors:N,types:Y,geojsonTypes:m,modes:T,events:H,updateActions:Ot,meta:B,activeStates:j,interactions:Wt,LAT_MIN:-90,LAT_RENDERED_MIN:St,LAT_MAX:90,LAT_RENDERED_MAX:85,LNG_MIN:-270,LNG_MAX:270}),Kt={Point:0,LineString:1,MultiLineString:1,Polygon:2};function tr(e,t){var n=Kt[e.geometry.type]-Kt[t.geometry.type];return n===0&&e.geometry.type===m.POLYGON?e.area-t.area:n}function Qt(e){return e.map(function(t){return t.geometry.type===m.POLYGON&&(t.area=Et.geometry({type:m.FEATURE,property:{},geometry:t.geometry})),t}).sort(tr).map(function(t){return delete t.area,t})}function en(e,t){return t===void 0&&(t=0),[[e.point.x-t,e.point.y-t],[e.point.x+t,e.point.y+t]]}function Z(e){if(this._items={},this._nums={},this._length=e?e.length:0,e)for(var t=0,n=e.length;t<n;t++)this.add(e[t]),e[t]!==void 0&&(typeof e[t]=="string"?this._items[e[t]]=t:this._nums[e[t]]=t)}Z.prototype.add=function(e){return this.has(e)||(this._length++,typeof e=="string"?this._items[e]=this._length:this._nums[e]=this._length),this},Z.prototype.delete=function(e){return this.has(e)===!1||(this._length--,delete this._items[e],delete this._nums[e]),this},Z.prototype.has=function(e){return(typeof e=="string"||typeof e=="number")&&(this._items[e]!==void 0||this._nums[e]!==void 0)},Z.prototype.values=function(){var e=this,t=[];return Object.keys(this._items).forEach(function(n){t.push({k:n,v:e._items[n]})}),Object.keys(this._nums).forEach(function(n){t.push({k:JSON.parse(n),v:e._nums[n]})}),t.sort(function(n,r){return n.v-r.v}).map(function(n){return n.k})},Z.prototype.clear=function(){return this._length=0,this._items={},this._nums={},this};var nr=[B.FEATURE,B.MIDPOINT,B.VERTEX],xe={click:function(e,t,n){return tn(e,t,n,n.options.clickBuffer)},touch:function(e,t,n){return tn(e,t,n,n.options.touchBuffer)}};function tn(e,t,n,r){if(n.map===null)return[];var o=e?en(e,r):t,i={};n.options.styles&&(i.layers=n.options.styles.map(function(h){return h.id}).filter(function(h){return n.map.getLayer(h)!=null}));var a=n.map.queryRenderedFeatures(o,i).filter(function(h){return nr.indexOf(h.properties.meta)!==-1}),l=new Z,d=[];return a.forEach(function(h){var g=h.properties.id;l.has(g)||(l.add(g),d.push(h))}),Qt(d)}function Ye(e,t){var n=xe.click(e,null,t),r={mouse:N.NONE};return n[0]&&(r.mouse=n[0].properties.active===j.ACTIVE?N.MOVE:N.POINTER,r.feature=n[0].properties.meta),t.events.currentModeName().indexOf("draw")!==-1&&(r.mouse=N.ADD),t.ui.queueMapClasses(r),t.ui.updateMapClasses(),n[0]}function It(e,t){var n=e.x-t.x,r=e.y-t.y;return Math.sqrt(n*n+r*r)}function xt(e,t,n){n===void 0&&(n={});var r=n.fineTolerance!=null?n.fineTolerance:4,o=n.grossTolerance!=null?n.grossTolerance:12,i=n.interval!=null?n.interval:500;e.point=e.point||t.point,e.time=e.time||t.time;var a=It(e.point,t.point);return a<r||a<o&&t.time-e.time<i}function Mt(e,t,n){n===void 0&&(n={});var r=n.tolerance!=null?n.tolerance:25,o=n.interval!=null?n.interval:250;return e.point=e.point||t.point,e.time=e.time||t.time,It(e.point,t.point)<r&&t.time-e.time<o}var nn={exports:{}},Lt=nn.exports=function(e,t){if(t||(t=16),e===void 0&&(e=128),e<=0)return"0";for(var n=Math.log(Math.pow(2,e))/Math.log(t),r=2;n===1/0;r*=2)n=Math.log(Math.pow(2,e/r))/Math.log(t)*r;var o=n-Math.floor(n),i="";for(r=0;r<Math.floor(n);r++)i=Math.floor(Math.random()*t).toString(t)+i;if(o){var a=Math.pow(t,o);i=Math.floor(Math.random()*a).toString(t)+i}var l=parseInt(i,t);return l!==1/0&&l>=Math.pow(2,e)?Lt(e,t):i};Lt.rack=function(e,t,n){var r=function(i){var a=0;do{if(a++>10){if(!n)throw new Error("too many ID collisions, use more bits");e+=n}var l=Lt(e,t)}while(Object.hasOwnProperty.call(o,l));return o[l]=i,l},o=r.hats={};return r.get=function(i){return r.hats[i]},r.set=function(i,a){return r.hats[i]=a,r},r.bits=e||128,r.base=t||16,r};var Nt=de(nn.exports),G=function(e,t){this.ctx=e,this.properties=t.properties||{},this.coordinates=t.geometry.coordinates,this.id=t.id||Nt(),this.type=t.geometry.type};G.prototype.changed=function(){this.ctx.store.featureChanged(this.id)},G.prototype.incomingCoords=function(e){this.setCoordinates(e)},G.prototype.setCoordinates=function(e){this.coordinates=e,this.changed()},G.prototype.getCoordinates=function(){return JSON.parse(JSON.stringify(this.coordinates))},G.prototype.setProperty=function(e,t){this.properties[e]=t},G.prototype.toGeoJSON=function(){return JSON.parse(JSON.stringify({id:this.id,type:m.FEATURE,properties:this.properties,geometry:{coordinates:this.getCoordinates(),type:this.type}}))},G.prototype.internal=function(e){var t={id:this.id,meta:B.FEATURE,"meta:type":this.type,active:j.INACTIVE,mode:e};if(this.ctx.options.userProperties)for(var n in this.properties)t["user_"+n]=this.properties[n];return{type:m.FEATURE,properties:t,geometry:{coordinates:this.getCoordinates(),type:this.type}}};var me=function(e,t){G.call(this,e,t)};(me.prototype=Object.create(G.prototype)).isValid=function(){return typeof this.coordinates[0]=="number"&&typeof this.coordinates[1]=="number"},me.prototype.updateCoordinate=function(e,t,n){this.coordinates=arguments.length===3?[t,n]:[e,t],this.changed()},me.prototype.getCoordinate=function(){return this.getCoordinates()};var ie=function(e,t){G.call(this,e,t)};(ie.prototype=Object.create(G.prototype)).isValid=function(){return this.coordinates.length>1},ie.prototype.addCoordinate=function(e,t,n){this.changed();var r=parseInt(e,10);this.coordinates.splice(r,0,[t,n])},ie.prototype.getCoordinate=function(e){var t=parseInt(e,10);return JSON.parse(JSON.stringify(this.coordinates[t]))},ie.prototype.removeCoordinate=function(e){this.changed(),this.coordinates.splice(parseInt(e,10),1)},ie.prototype.updateCoordinate=function(e,t,n){var r=parseInt(e,10);this.coordinates[r]=[t,n],this.changed()};var W=function(e,t){G.call(this,e,t),this.coordinates=this.coordinates.map(function(n){return n.slice(0,-1)})};(W.prototype=Object.create(G.prototype)).isValid=function(){return this.coordinates.length!==0&&this.coordinates.every(function(e){return e.length>2})},W.prototype.incomingCoords=function(e){this.coordinates=e.map(function(t){return t.slice(0,-1)}),this.changed()},W.prototype.setCoordinates=function(e){this.coordinates=e,this.changed()},W.prototype.addCoordinate=function(e,t,n){this.changed();var r=e.split(".").map(function(o){return parseInt(o,10)});this.coordinates[r[0]].splice(r[1],0,[t,n])},W.prototype.removeCoordinate=function(e){this.changed();var t=e.split(".").map(function(r){return parseInt(r,10)}),n=this.coordinates[t[0]];n&&(n.splice(t[1],1),n.length<3&&this.coordinates.splice(t[0],1))},W.prototype.getCoordinate=function(e){var t=e.split(".").map(function(r){return parseInt(r,10)}),n=this.coordinates[t[0]];return JSON.parse(JSON.stringify(n[t[1]]))},W.prototype.getCoordinates=function(){return this.coordinates.map(function(e){return e.concat([e[0]])})},W.prototype.updateCoordinate=function(e,t,n){this.changed();var r=e.split("."),o=parseInt(r[0],10),i=parseInt(r[1],10);this.coordinates[o]===void 0&&(this.coordinates[o]=[]),this.coordinates[o][i]=[t,n]};var rr={MultiPoint:me,MultiLineString:ie,MultiPolygon:W},$e=function(e,t,n,r,o){var i=n.split("."),a=parseInt(i[0],10),l=i[1]?i.slice(1).join("."):null;return e[a][t](l,r,o)},$=function(e,t){if(G.call(this,e,t),delete this.coordinates,this.model=rr[t.geometry.type],this.model===void 0)throw new TypeError(t.geometry.type+" is not a valid type");this.features=this._coordinatesToFeatures(t.geometry.coordinates)};function E(e){this.map=e.map,this.drawConfig=JSON.parse(JSON.stringify(e.options||{})),this._ctx=e}($.prototype=Object.create(G.prototype))._coordinatesToFeatures=function(e){var t=this,n=this.model.bind(this);return e.map(function(r){return new n(t.ctx,{id:Nt(),type:m.FEATURE,properties:{},geometry:{coordinates:r,type:t.type.replace("Multi","")}})})},$.prototype.isValid=function(){return this.features.every(function(e){return e.isValid()})},$.prototype.setCoordinates=function(e){this.features=this._coordinatesToFeatures(e),this.changed()},$.prototype.getCoordinate=function(e){return $e(this.features,"getCoordinate",e)},$.prototype.getCoordinates=function(){return JSON.parse(JSON.stringify(this.features.map(function(e){return e.type===m.POLYGON?e.getCoordinates():e.coordinates})))},$.prototype.updateCoordinate=function(e,t,n){$e(this.features,"updateCoordinate",e,t,n),this.changed()},$.prototype.addCoordinate=function(e,t,n){$e(this.features,"addCoordinate",e,t,n),this.changed()},$.prototype.removeCoordinate=function(e){$e(this.features,"removeCoordinate",e),this.changed()},$.prototype.getFeatures=function(){return this.features},E.prototype.setSelected=function(e){return this._ctx.store.setSelected(e)},E.prototype.setSelectedCoordinates=function(e){var t=this;this._ctx.store.setSelectedCoordinates(e),e.reduce(function(n,r){return n[r.feature_id]===void 0&&(n[r.feature_id]=!0,t._ctx.store.get(r.feature_id).changed()),n},{})},E.prototype.getSelected=function(){return this._ctx.store.getSelected()},E.prototype.getSelectedIds=function(){return this._ctx.store.getSelectedIds()},E.prototype.isSelected=function(e){return this._ctx.store.isSelected(e)},E.prototype.getFeature=function(e){return this._ctx.store.get(e)},E.prototype.select=function(e){return this._ctx.store.select(e)},E.prototype.deselect=function(e){return this._ctx.store.deselect(e)},E.prototype.deleteFeature=function(e,t){return t===void 0&&(t={}),this._ctx.store.delete(e,t)},E.prototype.addFeature=function(e){return this._ctx.store.add(e)},E.prototype.clearSelectedFeatures=function(){return this._ctx.store.clearSelected()},E.prototype.clearSelectedCoordinates=function(){return this._ctx.store.clearSelectedCoordinates()},E.prototype.setActionableState=function(e){e===void 0&&(e={});var t={trash:e.trash||!1,combineFeatures:e.combineFeatures||!1,uncombineFeatures:e.uncombineFeatures||!1};return this._ctx.events.actionable(t)},E.prototype.changeMode=function(e,t,n){return t===void 0&&(t={}),n===void 0&&(n={}),this._ctx.events.changeMode(e,t,n)},E.prototype.updateUIClasses=function(e){return this._ctx.ui.queueMapClasses(e)},E.prototype.activateUIButton=function(e){return this._ctx.ui.setActiveButton(e)},E.prototype.featuresAt=function(e,t,n){if(n===void 0&&(n="click"),n!=="click"&&n!=="touch")throw new Error("invalid buffer type");return xe[n](e,t,this._ctx)},E.prototype.newFeature=function(e){var t=e.geometry.type;return t===m.POINT?new me(this._ctx,e):t===m.LINE_STRING?new ie(this._ctx,e):t===m.POLYGON?new W(this._ctx,e):new $(this._ctx,e)},E.prototype.isInstanceOf=function(e,t){if(e===m.POINT)return t instanceof me;if(e===m.LINE_STRING)return t instanceof ie;if(e===m.POLYGON)return t instanceof W;if(e==="MultiFeature")return t instanceof $;throw new Error("Unknown feature class: "+e)},E.prototype.doRender=function(e){return this._ctx.store.featureChanged(e)},E.prototype.onSetup=function(){},E.prototype.onDrag=function(){},E.prototype.onClick=function(){},E.prototype.onMouseMove=function(){},E.prototype.onMouseDown=function(){},E.prototype.onMouseUp=function(){},E.prototype.onMouseOut=function(){},E.prototype.onKeyUp=function(){},E.prototype.onKeyDown=function(){},E.prototype.onTouchStart=function(){},E.prototype.onTouchMove=function(){},E.prototype.onTouchEnd=function(){},E.prototype.onTap=function(){},E.prototype.onStop=function(){},E.prototype.onTrash=function(){},E.prototype.onCombineFeature=function(){},E.prototype.onUncombineFeature=function(){},E.prototype.toDisplayFeatures=function(){throw new Error("You must overwrite toDisplayFeatures")};var rn={drag:"onDrag",click:"onClick",mousemove:"onMouseMove",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseout:"onMouseOut",keyup:"onKeyUp",keydown:"onKeyDown",touchstart:"onTouchStart",touchmove:"onTouchMove",touchend:"onTouchEnd",tap:"onTap"},or=Object.keys(rn);function ir(e){var t=Object.keys(e);return function(n,r){r===void 0&&(r={});var o={},i=t.reduce(function(a,l){return a[l]=e[l],a},new E(n));return{start:function(){var a=this;o=i.onSetup(r),or.forEach(function(l){var d,h=rn[l],g=function(){return!1};e[h]&&(g=function(){return!0}),a.on(l,g,(d=h,function(p){return i[d](o,p)}))})},stop:function(){i.onStop(o)},trash:function(){i.onTrash(o)},combineFeatures:function(){i.onCombineFeatures(o)},uncombineFeatures:function(){i.onUncombineFeatures(o)},render:function(a,l){i.toDisplayFeatures(o,a,l)}}}}function De(e){return[].concat(e).filter(function(t){return t!==void 0})}function ar(){var e=this;if(!(e.ctx.map&&e.ctx.map.getSource(X.HOT)!==void 0))return d();var t=e.ctx.events.currentModeName();e.ctx.ui.queueMapClasses({mode:t});var n=[],r=[];e.isDirty?r=e.getAllIds():(n=e.getChangedIds().filter(function(h){return e.get(h)!==void 0}),r=e.sources.hot.filter(function(h){return h.properties.id&&n.indexOf(h.properties.id)===-1&&e.get(h.properties.id)!==void 0}).map(function(h){return h.properties.id})),e.sources.hot=[];var o=e.sources.cold.length;e.sources.cold=e.isDirty?[]:e.sources.cold.filter(function(h){var g=h.properties.id||h.properties.parent;return n.indexOf(g)===-1});var i=o!==e.sources.cold.length||r.length>0;function a(h,g){var p=e.get(h).internal(t);e.ctx.events.currentModeRender(p,function(_){e.sources[g].push(_)})}if(n.forEach(function(h){return a(h,"hot")}),r.forEach(function(h){return a(h,"cold")}),i&&e.ctx.map.getSource(X.COLD).setData({type:m.FEATURE_COLLECTION,features:e.sources.cold}),e.ctx.map.getSource(X.HOT).setData({type:m.FEATURE_COLLECTION,features:e.sources.hot}),e._emitSelectionChange&&(e.ctx.map.fire(H.SELECTION_CHANGE,{features:e.getSelected().map(function(h){return h.toGeoJSON()}),points:e.getSelectedCoordinates().map(function(h){return{type:m.FEATURE,properties:{},geometry:{type:m.POINT,coordinates:h.coordinates}}})}),e._emitSelectionChange=!1),e._deletedFeaturesToEmit.length){var l=e._deletedFeaturesToEmit.map(function(h){return h.toGeoJSON()});e._deletedFeaturesToEmit=[],e.ctx.map.fire(H.DELETE,{features:l})}function d(){e.isDirty=!1,e.clearChangedIds()}d(),e.ctx.map.fire(H.RENDER,{})}function x(e){var t,n=this;this._features={},this._featureIds=new Z,this._selectedFeatureIds=new Z,this._selectedCoordinates=[],this._changedFeatureIds=new Z,this._deletedFeaturesToEmit=[],this._emitSelectionChange=!1,this._mapInitialConfig={},this.ctx=e,this.sources={hot:[],cold:[]},this.render=function(){t||(t=requestAnimationFrame(function(){t=null,ar.call(n)}))},this.isDirty=!1}function on(e,t){var n=e._selectedCoordinates.filter(function(r){return e._selectedFeatureIds.has(r.feature_id)});e._selectedCoordinates.length===n.length||t.silent||(e._emitSelectionChange=!0),e._selectedCoordinates=n}x.prototype.createRenderBatch=function(){var e=this,t=this.render,n=0;return this.render=function(){n++},function(){e.render=t,n>0&&e.render()}},x.prototype.setDirty=function(){return this.isDirty=!0,this},x.prototype.featureChanged=function(e){return this._changedFeatureIds.add(e),this},x.prototype.getChangedIds=function(){return this._changedFeatureIds.values()},x.prototype.clearChangedIds=function(){return this._changedFeatureIds.clear(),this},x.prototype.getAllIds=function(){return this._featureIds.values()},x.prototype.add=function(e){return this.featureChanged(e.id),this._features[e.id]=e,this._featureIds.add(e.id),this},x.prototype.delete=function(e,t){var n=this;return t===void 0&&(t={}),De(e).forEach(function(r){n._featureIds.has(r)&&(n._featureIds.delete(r),n._selectedFeatureIds.delete(r),t.silent||n._deletedFeaturesToEmit.indexOf(n._features[r])===-1&&n._deletedFeaturesToEmit.push(n._features[r]),delete n._features[r],n.isDirty=!0)}),on(this,t),this},x.prototype.get=function(e){return this._features[e]},x.prototype.getAll=function(){var e=this;return Object.keys(this._features).map(function(t){return e._features[t]})},x.prototype.select=function(e,t){var n=this;return t===void 0&&(t={}),De(e).forEach(function(r){n._selectedFeatureIds.has(r)||(n._selectedFeatureIds.add(r),n._changedFeatureIds.add(r),t.silent||(n._emitSelectionChange=!0))}),this},x.prototype.deselect=function(e,t){var n=this;return t===void 0&&(t={}),De(e).forEach(function(r){n._selectedFeatureIds.has(r)&&(n._selectedFeatureIds.delete(r),n._changedFeatureIds.add(r),t.silent||(n._emitSelectionChange=!0))}),on(this,t),this},x.prototype.clearSelected=function(e){return e===void 0&&(e={}),this.deselect(this._selectedFeatureIds.values(),{silent:e.silent}),this},x.prototype.setSelected=function(e,t){var n=this;return t===void 0&&(t={}),e=De(e),this.deselect(this._selectedFeatureIds.values().filter(function(r){return e.indexOf(r)===-1}),{silent:t.silent}),this.select(e.filter(function(r){return!n._selectedFeatureIds.has(r)}),{silent:t.silent}),this},x.prototype.setSelectedCoordinates=function(e){return this._selectedCoordinates=e,this._emitSelectionChange=!0,this},x.prototype.clearSelectedCoordinates=function(){return this._selectedCoordinates=[],this._emitSelectionChange=!0,this},x.prototype.getSelectedIds=function(){return this._selectedFeatureIds.values()},x.prototype.getSelected=function(){var e=this;return this._selectedFeatureIds.values().map(function(t){return e.get(t)})},x.prototype.getSelectedCoordinates=function(){var e=this;return this._selectedCoordinates.map(function(t){return{coordinates:e.get(t.feature_id).getCoordinate(t.coord_path)}})},x.prototype.isSelected=function(e){return this._selectedFeatureIds.has(e)},x.prototype.setFeatureProperty=function(e,t,n){this.get(e).setProperty(t,n),this.featureChanged(e)},x.prototype.storeMapConfig=function(){var e=this;Wt.forEach(function(t){e.ctx.map[t]&&(e._mapInitialConfig[t]=e.ctx.map[t].isEnabled())})},x.prototype.restoreMapConfig=function(){var e=this;Object.keys(this._mapInitialConfig).forEach(function(t){e._mapInitialConfig[t]?e.ctx.map[t].enable():e.ctx.map[t].disable()})},x.prototype.getInitialConfigValue=function(e){return this._mapInitialConfig[e]===void 0||this._mapInitialConfig[e]};var sr=function(){for(var e=arguments,t={},n=0;n<arguments.length;n++){var r=e[n];for(var o in r)ur.call(r,o)&&(t[o]=r[o])}return t},ur=Object.prototype.hasOwnProperty,pe=de(sr),cr=["mode","feature","mouse"];function lr(e){var t=null,n=null,r={onRemove:function(){return e.map.off("load",r.connect),clearInterval(n),r.removeLayers(),e.store.restoreMapConfig(),e.ui.removeButtons(),e.events.removeEventListeners(),e.ui.clearMapClasses(),e.boxZoomInitial&&e.map.boxZoom.enable(),e.map=null,e.container=null,e.store=null,t&&t.parentNode&&t.parentNode.removeChild(t),t=null,this},connect:function(){e.map.off("load",r.connect),clearInterval(n),r.addLayers(),e.store.storeMapConfig(),e.events.addEventListeners()},onAdd:function(o){var i=o.fire;return o.fire=function(a,l){var d=arguments;return i.length===1&&arguments.length!==1&&(d=[pe({},{type:a},l)]),i.apply(o,d)},e.map=o,e.events=function(a){var l=Object.keys(a.options.modes).reduce(function(c,y){return c[y]=ir(a.options.modes[y]),c},{}),d={},h={},g={},p=null,_=null;g.drag=function(c,y){y({point:c.point,time:new Date().getTime()})?(a.ui.queueMapClasses({mouse:N.DRAG}),_.drag(c)):c.originalEvent.stopPropagation()},g.mousedrag=function(c){g.drag(c,function(y){return!xt(d,y)})},g.touchdrag=function(c){g.drag(c,function(y){return!Mt(h,y)})},g.mousemove=function(c){if((c.originalEvent.buttons!==void 0?c.originalEvent.buttons:c.originalEvent.which)===1)return g.mousedrag(c);var y=Ye(c,a);c.featureTarget=y,_.mousemove(c)},g.mousedown=function(c){d={time:new Date().getTime(),point:c.point};var y=Ye(c,a);c.featureTarget=y,_.mousedown(c)},g.mouseup=function(c){var y=Ye(c,a);c.featureTarget=y,xt(d,{point:c.point,time:new Date().getTime()})?_.click(c):_.mouseup(c)},g.mouseout=function(c){_.mouseout(c)},g.touchstart=function(c){if(a.options.touchEnabled){h={time:new Date().getTime(),point:c.point};var y=xe.touch(c,null,a)[0];c.featureTarget=y,_.touchstart(c)}},g.touchmove=function(c){if(a.options.touchEnabled)return _.touchmove(c),g.touchdrag(c)},g.touchend=function(c){if(c.originalEvent.preventDefault(),a.options.touchEnabled){var y=xe.touch(c,null,a)[0];c.featureTarget=y,Mt(h,{time:new Date().getTime(),point:c.point})?_.tap(c):_.touchend(c)}};var A=function(c){return!(c===8||c===46||c>=48&&c<=57)};function b(c,y,O){O===void 0&&(O={}),_.stop();var V=l[c];if(V===void 0)throw new Error(c+" is not valid");p=c;var w=V(a,y);_=ze(w,a),O.silent||a.map.fire(H.MODE_CHANGE,{mode:c}),a.store.setDirty(),a.store.render()}g.keydown=function(c){(c.srcElement||c.target).classList.contains("mapboxgl-canvas")&&(c.keyCode!==8&&c.keyCode!==46||!a.options.controls.trash?A(c.keyCode)?_.keydown(c):c.keyCode===49&&a.options.controls.point?b(T.DRAW_POINT):c.keyCode===50&&a.options.controls.line_string?b(T.DRAW_LINE_STRING):c.keyCode===51&&a.options.controls.polygon&&b(T.DRAW_POLYGON):(c.preventDefault(),_.trash()))},g.keyup=function(c){A(c.keyCode)&&_.keyup(c)},g.zoomend=function(){a.store.changeZoom()},g.data=function(c){if(c.dataType==="style"){var y=a.setup,O=a.map,V=a.options,w=a.store;V.styles.some(function(Ut){return O.getLayer(Ut.id)})||(y.addLayers(),w.setDirty(),w.render())}};var F={trash:!1,combineFeatures:!1,uncombineFeatures:!1};return{start:function(){p=a.options.defaultMode,_=ze(l[p](a),a)},changeMode:b,actionable:function(c){var y=!1;Object.keys(c).forEach(function(O){if(F[O]===void 0)throw new Error("Invalid action type");F[O]!==c[O]&&(y=!0),F[O]=c[O]}),y&&a.map.fire(H.ACTIONABLE,{actions:F})},currentModeName:function(){return p},currentModeRender:function(c,y){return _.render(c,y)},fire:function(c,y){g[c]&&g[c](y)},addEventListeners:function(){a.map.on("mousemove",g.mousemove),a.map.on("mousedown",g.mousedown),a.map.on("mouseup",g.mouseup),a.map.on("data",g.data),a.map.on("touchmove",g.touchmove),a.map.on("touchstart",g.touchstart),a.map.on("touchend",g.touchend),a.container.addEventListener("mouseout",g.mouseout),a.options.keybindings&&(a.container.addEventListener("keydown",g.keydown),a.container.addEventListener("keyup",g.keyup))},removeEventListeners:function(){a.map.off("mousemove",g.mousemove),a.map.off("mousedown",g.mousedown),a.map.off("mouseup",g.mouseup),a.map.off("data",g.data),a.map.off("touchmove",g.touchmove),a.map.off("touchstart",g.touchstart),a.map.off("touchend",g.touchend),a.container.removeEventListener("mouseout",g.mouseout),a.options.keybindings&&(a.container.removeEventListener("keydown",g.keydown),a.container.removeEventListener("keyup",g.keyup))},trash:function(c){_.trash(c)},combineFeatures:function(){_.combineFeatures()},uncombineFeatures:function(){_.uncombineFeatures()},getMode:function(){return p}}}(e),e.ui=function(a){var l={},d=null,h={mode:null,feature:null,mouse:null},g={mode:null,feature:null,mouse:null};function p(c){g=pe(g,c)}function _(){var c,y;if(a.container){var O=[],V=[];cr.forEach(function(w){g[w]!==h[w]&&(O.push(w+"-"+h[w]),g[w]!==null&&V.push(w+"-"+g[w]))}),O.length>0&&(c=a.container.classList).remove.apply(c,O),V.length>0&&(y=a.container.classList).add.apply(y,V),h=pe(h,g)}}function A(c,y){y===void 0&&(y={});var O=document.createElement("button");return O.className=q.CONTROL_BUTTON+" "+y.className,O.setAttribute("title",y.title),y.container.appendChild(O),O.addEventListener("click",function(V){if(V.preventDefault(),V.stopPropagation(),V.target===d)return b(),void y.onDeactivate();F(c),y.onActivate()},!0),O}function b(){d&&(d.classList.remove(q.ACTIVE_BUTTON),d=null)}function F(c){b();var y=l[c];y&&y&&c!=="trash"&&(y.classList.add(q.ACTIVE_BUTTON),d=y)}return{setActiveButton:F,queueMapClasses:p,updateMapClasses:_,clearMapClasses:function(){p({mode:null,feature:null,mouse:null}),_()},addButtons:function(){var c=a.options.controls,y=document.createElement("div");return y.className=q.CONTROL_GROUP+" "+q.CONTROL_BASE,c&&(c[Y.LINE]&&(l[Y.LINE]=A(Y.LINE,{container:y,className:q.CONTROL_BUTTON_LINE,title:"LineString tool "+(a.options.keybindings?"(l)":""),onActivate:function(){return a.events.changeMode(T.DRAW_LINE_STRING)},onDeactivate:function(){return a.events.trash()}})),c[Y.POLYGON]&&(l[Y.POLYGON]=A(Y.POLYGON,{container:y,className:q.CONTROL_BUTTON_POLYGON,title:"Polygon tool "+(a.options.keybindings?"(p)":""),onActivate:function(){return a.events.changeMode(T.DRAW_POLYGON)},onDeactivate:function(){return a.events.trash()}})),c[Y.POINT]&&(l[Y.POINT]=A(Y.POINT,{container:y,className:q.CONTROL_BUTTON_POINT,title:"Marker tool "+(a.options.keybindings?"(m)":""),onActivate:function(){return a.events.changeMode(T.DRAW_POINT)},onDeactivate:function(){return a.events.trash()}})),c.trash&&(l.trash=A("trash",{container:y,className:q.CONTROL_BUTTON_TRASH,title:"Delete",onActivate:function(){a.events.trash()}})),c.combine_features&&(l.combine_features=A("combineFeatures",{container:y,className:q.CONTROL_BUTTON_COMBINE_FEATURES,title:"Combine",onActivate:function(){a.events.combineFeatures()}})),c.uncombine_features&&(l.uncombine_features=A("uncombineFeatures",{container:y,className:q.CONTROL_BUTTON_UNCOMBINE_FEATURES,title:"Uncombine",onActivate:function(){a.events.uncombineFeatures()}}))),y},removeButtons:function(){Object.keys(l).forEach(function(c){var y=l[c];y.parentNode&&y.parentNode.removeChild(y),delete l[c]})}}}(e),e.container=o.getContainer(),e.store=new x(e),t=e.ui.addButtons(),e.options.boxSelect&&(e.boxZoomInitial=o.boxZoom.isEnabled(),o.boxZoom.disable(),o.dragPan.disable(),o.dragPan.enable()),o.loaded()?r.connect():(o.on("load",r.connect),n=setInterval(function(){o.loaded()&&r.connect()},16)),e.events.start(),t},addLayers:function(){e.map.addSource(X.COLD,{data:{type:m.FEATURE_COLLECTION,features:[]},type:"geojson"}),e.map.addSource(X.HOT,{data:{type:m.FEATURE_COLLECTION,features:[]},type:"geojson"}),e.options.styles.forEach(function(o){e.map.addLayer(o)}),e.store.setDirty(!0),e.store.render()},removeLayers:function(){e.options.styles.forEach(function(o){e.map.getLayer(o.id)&&e.map.removeLayer(o.id)}),e.map.getSource(X.COLD)&&e.map.removeSource(X.COLD),e.map.getSource(X.HOT)&&e.map.removeSource(X.HOT)}};return e.setup=r,r}var an=[{id:"gl-draw-polygon-fill-inactive",type:"fill",filter:["all",["==","active","false"],["==","$type","Polygon"],["!=","mode","static"]],paint:{"fill-color":"#3bb2d0","fill-outline-color":"#3bb2d0","fill-opacity":.1}},{id:"gl-draw-polygon-fill-active",type:"fill",filter:["all",["==","active","true"],["==","$type","Polygon"]],paint:{"fill-color":"#fbb03b","fill-outline-color":"#fbb03b","fill-opacity":.1}},{id:"gl-draw-polygon-midpoint",type:"circle",filter:["all",["==","$type","Point"],["==","meta","midpoint"]],paint:{"circle-radius":3,"circle-color":"#fbb03b"}},{id:"gl-draw-polygon-stroke-inactive",type:"line",filter:["all",["==","active","false"],["==","$type","Polygon"],["!=","mode","static"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#3bb2d0","line-width":2}},{id:"gl-draw-polygon-stroke-active",type:"line",filter:["all",["==","active","true"],["==","$type","Polygon"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#fbb03b","line-dasharray":[.2,2],"line-width":2}},{id:"gl-draw-line-inactive",type:"line",filter:["all",["==","active","false"],["==","$type","LineString"],["!=","mode","static"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#3bb2d0","line-width":2}},{id:"gl-draw-line-active",type:"line",filter:["all",["==","$type","LineString"],["==","active","true"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#fbb03b","line-dasharray":[.2,2],"line-width":2}},{id:"gl-draw-polygon-and-line-vertex-stroke-inactive",type:"circle",filter:["all",["==","meta","vertex"],["==","$type","Point"],["!=","mode","static"]],paint:{"circle-radius":5,"circle-color":"#fff"}},{id:"gl-draw-polygon-and-line-vertex-inactive",type:"circle",filter:["all",["==","meta","vertex"],["==","$type","Point"],["!=","mode","static"]],paint:{"circle-radius":3,"circle-color":"#fbb03b"}},{id:"gl-draw-point-point-stroke-inactive",type:"circle",filter:["all",["==","active","false"],["==","$type","Point"],["==","meta","feature"],["!=","mode","static"]],paint:{"circle-radius":5,"circle-opacity":1,"circle-color":"#fff"}},{id:"gl-draw-point-inactive",type:"circle",filter:["all",["==","active","false"],["==","$type","Point"],["==","meta","feature"],["!=","mode","static"]],paint:{"circle-radius":3,"circle-color":"#3bb2d0"}},{id:"gl-draw-point-stroke-active",type:"circle",filter:["all",["==","$type","Point"],["==","active","true"],["!=","meta","midpoint"]],paint:{"circle-radius":7,"circle-color":"#fff"}},{id:"gl-draw-point-active",type:"circle",filter:["all",["==","$type","Point"],["!=","meta","midpoint"],["==","active","true"]],paint:{"circle-radius":5,"circle-color":"#fbb03b"}},{id:"gl-draw-polygon-fill-static",type:"fill",filter:["all",["==","mode","static"],["==","$type","Polygon"]],paint:{"fill-color":"#404040","fill-outline-color":"#404040","fill-opacity":.1}},{id:"gl-draw-polygon-stroke-static",type:"line",filter:["all",["==","mode","static"],["==","$type","Polygon"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#404040","line-width":2}},{id:"gl-draw-line-static",type:"line",filter:["all",["==","mode","static"],["==","$type","LineString"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#404040","line-width":2}},{id:"gl-draw-point-static",type:"circle",filter:["all",["==","mode","static"],["==","$type","Point"]],paint:{"circle-radius":5,"circle-color":"#404040"}}];function qe(e){return function(t){var n=t.featureTarget;return!!n&&!!n.properties&&n.properties.meta===e}}function sn(e){return!!e.originalEvent&&!!e.originalEvent.shiftKey&&e.originalEvent.button===0}function _e(e){return!!e.featureTarget&&!!e.featureTarget.properties&&e.featureTarget.properties.active===j.ACTIVE&&e.featureTarget.properties.meta===B.FEATURE}function At(e){return!!e.featureTarget&&!!e.featureTarget.properties&&e.featureTarget.properties.active===j.INACTIVE&&e.featureTarget.properties.meta===B.FEATURE}function He(e){return e.featureTarget===void 0}function Pt(e){return!!e.featureTarget&&!!e.featureTarget.properties&&e.featureTarget.properties.meta===B.FEATURE}function ke(e){var t=e.featureTarget;return!!t&&!!t.properties&&t.properties.meta===B.VERTEX}function Xe(e){return!!e.originalEvent&&e.originalEvent.shiftKey===!0}function Ze(e){return e.keyCode===27}function We(e){return e.keyCode===13}var dr=Object.freeze({__proto__:null,isOfMetaType:qe,isShiftMousedown:sn,isActiveFeature:_e,isInactiveFeature:At,noTarget:He,isFeature:Pt,isVertex:ke,isShiftDown:Xe,isEscapeKey:Ze,isEnterKey:We,isTrue:function(){return!0}}),pr=Me;function Me(e,t){this.x=e,this.y=t}Me.prototype={clone:function(){return new Me(this.x,this.y)},add:function(e){return this.clone()._add(e)},sub:function(e){return this.clone()._sub(e)},multByPoint:function(e){return this.clone()._multByPoint(e)},divByPoint:function(e){return this.clone()._divByPoint(e)},mult:function(e){return this.clone()._mult(e)},div:function(e){return this.clone()._div(e)},rotate:function(e){return this.clone()._rotate(e)},rotateAround:function(e,t){return this.clone()._rotateAround(e,t)},matMult:function(e){return this.clone()._matMult(e)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(e){return this.x===e.x&&this.y===e.y},dist:function(e){return Math.sqrt(this.distSqr(e))},distSqr:function(e){var t=e.x-this.x,n=e.y-this.y;return t*t+n*n},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(e){return Math.atan2(this.y-e.y,this.x-e.x)},angleWith:function(e){return this.angleWithSep(e.x,e.y)},angleWithSep:function(e,t){return Math.atan2(this.x*t-this.y*e,this.x*e+this.y*t)},_matMult:function(e){var t=e[0]*this.x+e[1]*this.y,n=e[2]*this.x+e[3]*this.y;return this.x=t,this.y=n,this},_add:function(e){return this.x+=e.x,this.y+=e.y,this},_sub:function(e){return this.x-=e.x,this.y-=e.y,this},_mult:function(e){return this.x*=e,this.y*=e,this},_div:function(e){return this.x/=e,this.y/=e,this},_multByPoint:function(e){return this.x*=e.x,this.y*=e.y,this},_divByPoint:function(e){return this.x/=e.x,this.y/=e.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var e=this.y;return this.y=this.x,this.x=-e,this},_rotate:function(e){var t=Math.cos(e),n=Math.sin(e),r=t*this.x-n*this.y,o=n*this.x+t*this.y;return this.x=r,this.y=o,this},_rotateAround:function(e,t){var n=Math.cos(e),r=Math.sin(e),o=t.x+n*(this.x-t.x)-r*(this.y-t.y),i=t.y+r*(this.x-t.x)+n*(this.y-t.y);return this.x=o,this.y=i,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},Me.convert=function(e){return e instanceof Me?e:Array.isArray(e)?new Me(e[0],e[1]):e};var fr=de(pr);function Ft(e,t){var n=t.getBoundingClientRect();return new fr(e.clientX-n.left-(t.clientLeft||0),e.clientY-n.top-(t.clientTop||0))}function Le(e,t,n,r){return{type:m.FEATURE,properties:{meta:B.VERTEX,parent:e,coord_path:n,active:r?j.ACTIVE:j.INACTIVE},geometry:{type:m.POINT,coordinates:t}}}function un(e,t,n){var r=t.geometry.coordinates,o=n.geometry.coordinates;if(r[1]>85||r[1]<St||o[1]>85||o[1]<St)return null;var i={lng:(r[0]+o[0])/2,lat:(r[1]+o[1])/2};return{type:m.FEATURE,properties:{meta:B.MIDPOINT,parent:e,lng:i.lng,lat:i.lat,coord_path:n.properties.coord_path},geometry:{type:m.POINT,coordinates:[i.lng,i.lat]}}}function Ke(e,t,n){t===void 0&&(t={}),n===void 0&&(n=null);var r,o=e.geometry,i=o.type,a=o.coordinates,l=e.properties&&e.properties.id,d=[];function h(p,_){var A="",b=null;p.forEach(function(F,c){var y=_!=null?_+"."+c:String(c),O=Le(l,F,y,g(y));if(t.midpoints&&b){var V=un(l,b,O);V&&d.push(V)}b=O;var w=JSON.stringify(F);A!==w&&d.push(O),c===0&&(A=w)})}function g(p){return!!t.selectedPaths&&t.selectedPaths.indexOf(p)!==-1}return i===m.POINT?d.push(Le(l,a,n,g(n))):i===m.POLYGON?a.forEach(function(p,_){h(p,n!==null?n+"."+_:String(_))}):i===m.LINE_STRING?h(a,n):i.indexOf(m.MULTI_PREFIX)===0&&(r=i.replace(m.MULTI_PREFIX,""),a.forEach(function(p,_){var A={type:m.FEATURE,properties:e.properties,geometry:{type:r,coordinates:p}};d=d.concat(Ke(A,t,_))})),d}var ee={enable:function(e){setTimeout(function(){e.map&&e.map.doubleClickZoom&&e._ctx&&e._ctx.store&&e._ctx.store.getInitialConfigValue&&e._ctx.store.getInitialConfigValue("doubleClickZoom")&&e.map.doubleClickZoom.enable()},0)},disable:function(e){setTimeout(function(){e.map&&e.map.doubleClickZoom&&e.map.doubleClickZoom.disable()},0)}},Qe={exports:{}},cn=function(e){if(!e||!e.type)return null;var t=hr[e.type];if(!t)return null;if(t==="geometry")return{type:"FeatureCollection",features:[{type:"Feature",properties:{},geometry:e}]};if(t==="feature")return{type:"FeatureCollection",features:[e]};if(t==="featurecollection")return e},hr={Point:"geometry",MultiPoint:"geometry",LineString:"geometry",MultiLineString:"geometry",Polygon:"geometry",MultiPolygon:"geometry",GeometryCollection:"geometry",Feature:"feature",FeatureCollection:"featurecollection"},gr=de(cn),yr=Object.freeze({__proto__:null,default:function e(t){switch(t&&t.type||null){case"FeatureCollection":return t.features=t.features.reduce(function(n,r){return n.concat(e(r))},[]),t;case"Feature":return t.geometry?e(t.geometry).map(function(n){var r={type:"Feature",properties:JSON.parse(JSON.stringify(t.properties)),geometry:n};return t.id!==void 0&&(r.id=t.id),r}):[t];case"MultiPoint":return t.coordinates.map(function(n){return{type:"Point",coordinates:n}});case"MultiPolygon":return t.coordinates.map(function(n){return{type:"Polygon",coordinates:n}});case"MultiLineString":return t.coordinates.map(function(n){return{type:"LineString",coordinates:n}});case"GeometryCollection":return t.geometries.map(e).reduce(function(n,r){return n.concat(r)},[]);case"Point":case"Polygon":case"LineString":return[t]}}}),vr=cn,et=Kn(yr),mr=function(e){return function t(n){return Array.isArray(n)&&n.length&&typeof n[0]=="number"?[n]:n.reduce(function(r,o){return Array.isArray(o)&&Array.isArray(o[0])?r.concat(t(o)):(r.push(o),r)},[])}(e)};et instanceof Function||(et=et.default);var ln={exports:{}},_r=ln.exports=function(e){return new K(e)};function K(e){this.value=e}function dn(e,t,n){var r=[],o=[],i=!0;return function a(l){var d=n?pn(l):l,h={},g=!0,p={node:d,node_:l,path:[].concat(r),parent:o[o.length-1],parents:o,key:r.slice(-1)[0],isRoot:r.length===0,level:r.length,circular:null,update:function(b,F){p.isRoot||(p.parent.node[p.key]=b),p.node=b,F&&(g=!1)},delete:function(b){delete p.parent.node[p.key],b&&(g=!1)},remove:function(b){fn(p.parent.node)?p.parent.node.splice(p.key,1):delete p.parent.node[p.key],b&&(g=!1)},keys:null,before:function(b){h.before=b},after:function(b){h.after=b},pre:function(b){h.pre=b},post:function(b){h.post=b},stop:function(){i=!1},block:function(){g=!1}};if(!i)return p;function _(){if(typeof p.node=="object"&&p.node!==null){p.keys&&p.node_===p.node||(p.keys=tt(p.node)),p.isLeaf=p.keys.length==0;for(var b=0;b<o.length;b++)if(o[b].node_===l){p.circular=o[b];break}}else p.isLeaf=!0,p.keys=null;p.notLeaf=!p.isLeaf,p.notRoot=!p.isRoot}_();var A=t.call(p,p.node);return A!==void 0&&p.update&&p.update(A),h.before&&h.before.call(p,p.node),g&&(typeof p.node!="object"||p.node===null||p.circular||(o.push(p),_(),nt(p.keys,function(b,F){r.push(b),h.pre&&h.pre.call(p,p.node[b],b);var c=a(p.node[b]);n&&rt.call(p.node,b)&&(p.node[b]=c.node),c.isLast=F==p.keys.length-1,c.isFirst=F==0,h.post&&h.post.call(p,c),r.pop()}),o.pop()),h.after&&h.after.call(p,p.node)),p}(e).node}function pn(e){if(typeof e=="object"&&e!==null){var t;if(fn(e))t=[];else if(Ne(e)==="[object Date]")t=new Date(e.getTime?e.getTime():e);else if(function(o){return Ne(o)==="[object RegExp]"}(e))t=new RegExp(e);else if(function(o){return Ne(o)==="[object Error]"}(e))t={message:e.message};else if(function(o){return Ne(o)==="[object Boolean]"}(e))t=new Boolean(e);else if(function(o){return Ne(o)==="[object Number]"}(e))t=new Number(e);else if(function(o){return Ne(o)==="[object String]"}(e))t=new String(e);else if(Object.create&&Object.getPrototypeOf)t=Object.create(Object.getPrototypeOf(e));else if(e.constructor===Object)t={};else{var n=e.constructor&&e.constructor.prototype||e.__proto__||{},r=function(){};r.prototype=n,t=new r}return nt(tt(e),function(o){t[o]=e[o]}),t}return e}K.prototype.get=function(e){for(var t=this.value,n=0;n<e.length;n++){var r=e[n];if(!t||!rt.call(t,r)){t=void 0;break}t=t[r]}return t},K.prototype.has=function(e){for(var t=this.value,n=0;n<e.length;n++){var r=e[n];if(!t||!rt.call(t,r))return!1;t=t[r]}return!0},K.prototype.set=function(e,t){for(var n=this.value,r=0;r<e.length-1;r++){var o=e[r];rt.call(n,o)||(n[o]={}),n=n[o]}return n[e[r]]=t,t},K.prototype.map=function(e){return dn(this.value,e,!0)},K.prototype.forEach=function(e){return this.value=dn(this.value,e,!1),this.value},K.prototype.reduce=function(e,t){var n=arguments.length===1,r=n?this.value:t;return this.forEach(function(o){this.isRoot&&n||(r=e.call(this,r,o))}),r},K.prototype.paths=function(){var e=[];return this.forEach(function(t){e.push(this.path)}),e},K.prototype.nodes=function(){var e=[];return this.forEach(function(t){e.push(this.node)}),e},K.prototype.clone=function(){var e=[],t=[];return function n(r){for(var o=0;o<e.length;o++)if(e[o]===r)return t[o];if(typeof r=="object"&&r!==null){var i=pn(r);return e.push(r),t.push(i),nt(tt(r),function(a){i[a]=n(r[a])}),e.pop(),t.pop(),i}return r}(this.value)};var tt=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};function Ne(e){return Object.prototype.toString.call(e)}var fn=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"},nt=function(e,t){if(e.forEach)return e.forEach(t);for(var n=0;n<e.length;n++)t(e[n],n,e)};nt(tt(K.prototype),function(e){_r[e]=function(t){var n=[].slice.call(arguments,1),r=new K(t);return r[e].apply(r,n)}});var rt=Object.hasOwnProperty||function(e,t){return t in e},br=ln.exports,Er=J;function J(e){if(!(this instanceof J))return new J(e);this._bbox=e||[1/0,1/0,-1/0,-1/0],this._valid=!!e}J.prototype.include=function(e){return this._valid=!0,this._bbox[0]=Math.min(this._bbox[0],e[0]),this._bbox[1]=Math.min(this._bbox[1],e[1]),this._bbox[2]=Math.max(this._bbox[2],e[0]),this._bbox[3]=Math.max(this._bbox[3],e[1]),this},J.prototype.equals=function(e){var t;return t=e instanceof J?e.bbox():e,this._bbox[0]==t[0]&&this._bbox[1]==t[1]&&this._bbox[2]==t[2]&&this._bbox[3]==t[3]},J.prototype.center=function(e){return this._valid?[(this._bbox[0]+this._bbox[2])/2,(this._bbox[1]+this._bbox[3])/2]:null},J.prototype.union=function(e){var t;return this._valid=!0,t=e instanceof J?e.bbox():e,this._bbox[0]=Math.min(this._bbox[0],t[0]),this._bbox[1]=Math.min(this._bbox[1],t[1]),this._bbox[2]=Math.max(this._bbox[2],t[2]),this._bbox[3]=Math.max(this._bbox[3],t[3]),this},J.prototype.bbox=function(){return this._valid?this._bbox:null},J.prototype.contains=function(e){if(!e)return this._fastContains();if(!this._valid)return null;var t=e[0],n=e[1];return this._bbox[0]<=t&&this._bbox[1]<=n&&this._bbox[2]>=t&&this._bbox[3]>=n},J.prototype.intersect=function(e){return this._valid?(t=e instanceof J?e.bbox():e,!(this._bbox[0]>t[2]||this._bbox[2]<t[0]||this._bbox[3]<t[1]||this._bbox[1]>t[3])):null;var t},J.prototype._fastContains=function(){if(!this._valid)return new Function("return null;");var e="return "+this._bbox[0]+"<= ll[0] &&"+this._bbox[1]+"<= ll[1] &&"+this._bbox[2]+">= ll[0] &&"+this._bbox[3]+">= ll[1]";return new Function("ll",e)},J.prototype.polygon=function(){return this._valid?{type:"Polygon",coordinates:[[[this._bbox[0],this._bbox[1]],[this._bbox[2],this._bbox[1]],[this._bbox[2],this._bbox[3]],[this._bbox[0],this._bbox[3]],[this._bbox[0],this._bbox[1]]]]}:null};var Tr=function(e){if(!e)return[];var t=et(vr(e)),n=[];return t.features.forEach(function(r){r.geometry&&(n=n.concat(mr(r.geometry.coordinates)))}),n},Cr=br,Or=Er,hn={features:["FeatureCollection"],coordinates:["Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon"],geometry:["Feature"],geometries:["GeometryCollection"]},Sr=Object.keys(hn);function wt(e){for(var t=Or(),n=Tr(e),r=0;r<n.length;r++)t.include(n[r]);return t}Qe.exports=function(e){return wt(e).bbox()},Qe.exports.polygon=function(e){return wt(e).polygon()},Qe.exports.bboxify=function(e){return Cr(e).map(function(t){t&&Sr.some(function(n){return!!t[n]&&hn[n].indexOf(t.type)!==-1})&&(t.bbox=wt(t).bbox(),this.update(t))})};var Ir=de(Qe.exports),ot=-90;function Rt(e,t){var n=ot,r=90,o=ot,i=90,a=270,l=-270;e.forEach(function(h){var g=Ir(h),p=g[1],_=g[3],A=g[0],b=g[2];p>n&&(n=p),_<r&&(r=_),_>o&&(o=_),p<i&&(i=p),A<a&&(a=A),b>l&&(l=b)});var d=t;return n+d.lat>85&&(d.lat=85-n),o+d.lat>90&&(d.lat=90-o),r+d.lat<-85&&(d.lat=-85-r),i+d.lat<ot&&(d.lat=ot-i),a+d.lng<=-270&&(d.lng+=360*Math.ceil(Math.abs(d.lng)/360)),l+d.lng>=270&&(d.lng-=360*Math.ceil(Math.abs(d.lng)/360)),d}function Dt(e,t){var n=Rt(e.map(function(r){return r.toGeoJSON()}),t);e.forEach(function(r){var o,i=r.getCoordinates(),a=function(d){var h={lng:d[0]+n.lng,lat:d[1]+n.lat};return[h.lng,h.lat]},l=function(d){return d.map(function(h){return a(h)})};r.type===m.POINT?o=a(i):r.type===m.LINE_STRING||r.type===m.MULTI_POINT?o=i.map(a):r.type===m.POLYGON||r.type===m.MULTI_LINE_STRING?o=i.map(l):r.type===m.MULTI_POLYGON&&(o=i.map(function(d){return d.map(function(h){return l(h)})})),r.incomingCoords(o)})}var D={onSetup:function(e){var t=this,n={dragMoveLocation:null,boxSelectStartLocation:null,boxSelectElement:void 0,boxSelecting:!1,canBoxSelect:!1,dragMoving:!1,canDragMove:!1,initiallySelectedFeatureIds:e.featureIds||[]};return this.setSelected(n.initiallySelectedFeatureIds.filter(function(r){return t.getFeature(r)!==void 0})),this.fireActionable(),this.setActionableState({combineFeatures:!0,uncombineFeatures:!0,trash:!0}),n},fireUpdate:function(){this.map.fire(H.UPDATE,{action:Ot.MOVE,features:this.getSelected().map(function(e){return e.toGeoJSON()})})},fireActionable:function(){var e=this,t=this.getSelected(),n=t.filter(function(l){return e.isInstanceOf("MultiFeature",l)}),r=!1;if(t.length>1){r=!0;var o=t[0].type.replace("Multi","");t.forEach(function(l){l.type.replace("Multi","")!==o&&(r=!1)})}var i=n.length>0,a=t.length>0;this.setActionableState({combineFeatures:r,uncombineFeatures:i,trash:a})},getUniqueIds:function(e){return e.length?e.map(function(t){return t.properties.id}).filter(function(t){return t!==void 0}).reduce(function(t,n){return t.add(n),t},new Z).values():[]},stopExtendedInteractions:function(e){e.boxSelectElement&&(e.boxSelectElement.parentNode&&e.boxSelectElement.parentNode.removeChild(e.boxSelectElement),e.boxSelectElement=null),this.map.dragPan.enable(),e.boxSelecting=!1,e.canBoxSelect=!1,e.dragMoving=!1,e.canDragMove=!1},onStop:function(){ee.enable(this)},onMouseMove:function(e,t){return Pt(t)&&e.dragMoving&&this.fireUpdate(),this.stopExtendedInteractions(e),!0},onMouseOut:function(e){return!e.dragMoving||this.fireUpdate()}};D.onTap=D.onClick=function(e,t){return He(t)?this.clickAnywhere(e,t):qe(B.VERTEX)(t)?this.clickOnVertex(e,t):Pt(t)?this.clickOnFeature(e,t):void 0},D.clickAnywhere=function(e){var t=this,n=this.getSelectedIds();n.length&&(this.clearSelectedFeatures(),n.forEach(function(r){return t.doRender(r)})),ee.enable(this),this.stopExtendedInteractions(e)},D.clickOnVertex=function(e,t){this.changeMode(T.DIRECT_SELECT,{featureId:t.featureTarget.properties.parent,coordPath:t.featureTarget.properties.coord_path,startPos:t.lngLat}),this.updateUIClasses({mouse:N.MOVE})},D.startOnActiveFeature=function(e,t){this.stopExtendedInteractions(e),this.map.dragPan.disable(),this.doRender(t.featureTarget.properties.id),e.canDragMove=!0,e.dragMoveLocation=t.lngLat},D.clickOnFeature=function(e,t){var n=this;ee.disable(this),this.stopExtendedInteractions(e);var r=Xe(t),o=this.getSelectedIds(),i=t.featureTarget.properties.id,a=this.isSelected(i);if(!r&&a&&this.getFeature(i).type!==m.POINT)return this.changeMode(T.DIRECT_SELECT,{featureId:i});a&&r?(this.deselect(i),this.updateUIClasses({mouse:N.POINTER}),o.length===1&&ee.enable(this)):!a&&r?(this.select(i),this.updateUIClasses({mouse:N.MOVE})):a||r||(o.forEach(function(l){return n.doRender(l)}),this.setSelected(i),this.updateUIClasses({mouse:N.MOVE})),this.doRender(i)},D.onMouseDown=function(e,t){return _e(t)?this.startOnActiveFeature(e,t):this.drawConfig.boxSelect&&sn(t)?this.startBoxSelect(e,t):void 0},D.startBoxSelect=function(e,t){this.stopExtendedInteractions(e),this.map.dragPan.disable(),e.boxSelectStartLocation=Ft(t.originalEvent,this.map.getContainer()),e.canBoxSelect=!0},D.onTouchStart=function(e,t){if(_e(t))return this.startOnActiveFeature(e,t)},D.onDrag=function(e,t){return e.canDragMove?this.dragMove(e,t):this.drawConfig.boxSelect&&e.canBoxSelect?this.whileBoxSelect(e,t):void 0},D.whileBoxSelect=function(e,t){e.boxSelecting=!0,this.updateUIClasses({mouse:N.ADD}),e.boxSelectElement||(e.boxSelectElement=document.createElement("div"),e.boxSelectElement.classList.add(q.BOX_SELECT),this.map.getContainer().appendChild(e.boxSelectElement));var n=Ft(t.originalEvent,this.map.getContainer()),r=Math.min(e.boxSelectStartLocation.x,n.x),o=Math.max(e.boxSelectStartLocation.x,n.x),i=Math.min(e.boxSelectStartLocation.y,n.y),a=Math.max(e.boxSelectStartLocation.y,n.y),l="translate("+r+"px, "+i+"px)";e.boxSelectElement.style.transform=l,e.boxSelectElement.style.WebkitTransform=l,e.boxSelectElement.style.width=o-r+"px",e.boxSelectElement.style.height=a-i+"px"},D.dragMove=function(e,t){e.dragMoving=!0,t.originalEvent.stopPropagation();var n={lng:t.lngLat.lng-e.dragMoveLocation.lng,lat:t.lngLat.lat-e.dragMoveLocation.lat};Dt(this.getSelected(),n),e.dragMoveLocation=t.lngLat},D.onTouchEnd=D.onMouseUp=function(e,t){var n=this;if(e.dragMoving)this.fireUpdate();else if(e.boxSelecting){var r=[e.boxSelectStartLocation,Ft(t.originalEvent,this.map.getContainer())],o=this.featuresAt(null,r,"click"),i=this.getUniqueIds(o).filter(function(a){return!n.isSelected(a)});i.length&&(this.select(i),i.forEach(function(a){return n.doRender(a)}),this.updateUIClasses({mouse:N.MOVE}))}this.stopExtendedInteractions(e)},D.toDisplayFeatures=function(e,t,n){t.properties.active=this.isSelected(t.properties.id)?j.ACTIVE:j.INACTIVE,n(t),this.fireActionable(),t.properties.active===j.ACTIVE&&t.geometry.type!==m.POINT&&Ke(t).forEach(n)},D.onTrash=function(){this.deleteFeature(this.getSelectedIds()),this.fireActionable()},D.onCombineFeatures=function(){var e=this.getSelected();if(!(e.length===0||e.length<2)){for(var t=[],n=[],r=e[0].type.replace("Multi",""),o=0;o<e.length;o++){var i=e[o];if(i.type.replace("Multi","")!==r)return;i.type.includes("Multi")?i.getCoordinates().forEach(function(l){t.push(l)}):t.push(i.getCoordinates()),n.push(i.toGeoJSON())}if(n.length>1){var a=this.newFeature({type:m.FEATURE,properties:n[0].properties,geometry:{type:"Multi"+r,coordinates:t}});this.addFeature(a),this.deleteFeature(this.getSelectedIds(),{silent:!0}),this.setSelected([a.id]),this.map.fire(H.COMBINE_FEATURES,{createdFeatures:[a.toGeoJSON()],deletedFeatures:n})}this.fireActionable()}},D.onUncombineFeatures=function(){var e=this,t=this.getSelected();if(t.length!==0){for(var n=[],r=[],o=function(a){var l=t[a];e.isInstanceOf("MultiFeature",l)&&(l.getFeatures().forEach(function(d){e.addFeature(d),d.properties=l.properties,n.push(d.toGeoJSON()),e.select([d.id])}),e.deleteFeature(l.id,{silent:!0}),r.push(l.toGeoJSON()))},i=0;i<t.length;i++)o(i);n.length>1&&this.map.fire(H.UNCOMBINE_FEATURES,{createdFeatures:n,deletedFeatures:r}),this.fireActionable()}};var gn=qe(B.VERTEX),yn=qe(B.MIDPOINT),fe={fireUpdate:function(){this.map.fire(H.UPDATE,{action:Ot.CHANGE_COORDINATES,features:this.getSelected().map(function(e){return e.toGeoJSON()})})},fireActionable:function(e){this.setActionableState({combineFeatures:!1,uncombineFeatures:!1,trash:e.selectedCoordPaths.length>0})},startDragging:function(e,t){this.map.dragPan.disable(),e.canDragMove=!0,e.dragMoveLocation=t.lngLat},stopDragging:function(e){this.map.dragPan.enable(),e.dragMoving=!1,e.canDragMove=!1,e.dragMoveLocation=null},onVertex:function(e,t){this.startDragging(e,t);var n=t.featureTarget.properties,r=e.selectedCoordPaths.indexOf(n.coord_path);Xe(t)||r!==-1?Xe(t)&&r===-1&&e.selectedCoordPaths.push(n.coord_path):e.selectedCoordPaths=[n.coord_path];var o=this.pathsToCoordinates(e.featureId,e.selectedCoordPaths);this.setSelectedCoordinates(o)},onMidpoint:function(e,t){this.startDragging(e,t);var n=t.featureTarget.properties;e.feature.addCoordinate(n.coord_path,n.lng,n.lat),this.fireUpdate(),e.selectedCoordPaths=[n.coord_path]},pathsToCoordinates:function(e,t){return t.map(function(n){return{feature_id:e,coord_path:n}})},onFeature:function(e,t){e.selectedCoordPaths.length===0?this.startDragging(e,t):this.stopDragging(e)},dragFeature:function(e,t,n){Dt(this.getSelected(),n),e.dragMoveLocation=t.lngLat},dragVertex:function(e,t,n){for(var r=e.selectedCoordPaths.map(function(l){return e.feature.getCoordinate(l)}),o=Rt(r.map(function(l){return{type:m.FEATURE,properties:{},geometry:{type:m.POINT,coordinates:l}}}),n),i=0;i<r.length;i++){var a=r[i];e.feature.updateCoordinate(e.selectedCoordPaths[i],a[0]+o.lng,a[1]+o.lat)}},clickNoTarget:function(){this.changeMode(T.SIMPLE_SELECT)},clickInactive:function(){this.changeMode(T.SIMPLE_SELECT)},clickActiveFeature:function(e){e.selectedCoordPaths=[],this.clearSelectedCoordinates(),e.feature.changed()},onSetup:function(e){var t=e.featureId,n=this.getFeature(t);if(!n)throw new Error("You must provide a featureId to enter direct_select mode");if(n.type===m.POINT)throw new TypeError("direct_select mode doesn't handle point features");var r={featureId:t,feature:n,dragMoveLocation:e.startPos||null,dragMoving:!1,canDragMove:!1,selectedCoordPaths:e.coordPath?[e.coordPath]:[]};return this.setSelectedCoordinates(this.pathsToCoordinates(t,r.selectedCoordPaths)),this.setSelected(t),ee.disable(this),this.setActionableState({trash:!0}),r},onStop:function(){ee.enable(this),this.clearSelectedCoordinates()},toDisplayFeatures:function(e,t,n){e.featureId===t.properties.id?(t.properties.active=j.ACTIVE,n(t),Ke(t,{map:this.map,midpoints:!0,selectedPaths:e.selectedCoordPaths}).forEach(n)):(t.properties.active=j.INACTIVE,n(t)),this.fireActionable(e)},onTrash:function(e){e.selectedCoordPaths.sort(function(t,n){return n.localeCompare(t,"en",{numeric:!0})}).forEach(function(t){return e.feature.removeCoordinate(t)}),this.fireUpdate(),e.selectedCoordPaths=[],this.clearSelectedCoordinates(),this.fireActionable(e),e.feature.isValid()===!1&&(this.deleteFeature([e.featureId]),this.changeMode(T.SIMPLE_SELECT,{}))},onMouseMove:function(e,t){var n=_e(t),r=gn(t),o=yn(t),i=e.selectedCoordPaths.length===0;return n&&i||r&&!i?this.updateUIClasses({mouse:N.MOVE}):this.updateUIClasses({mouse:N.NONE}),(r||n||o)&&e.dragMoving&&this.fireUpdate(),this.stopDragging(e),!0},onMouseOut:function(e){return e.dragMoving&&this.fireUpdate(),!0}};fe.onTouchStart=fe.onMouseDown=function(e,t){return gn(t)?this.onVertex(e,t):_e(t)?this.onFeature(e,t):yn(t)?this.onMidpoint(e,t):void 0},fe.onDrag=function(e,t){if(e.canDragMove===!0){e.dragMoving=!0,t.originalEvent.stopPropagation();var n={lng:t.lngLat.lng-e.dragMoveLocation.lng,lat:t.lngLat.lat-e.dragMoveLocation.lat};e.selectedCoordPaths.length>0?this.dragVertex(e,t,n):this.dragFeature(e,t,n),e.dragMoveLocation=t.lngLat}},fe.onClick=function(e,t){return He(t)?this.clickNoTarget(e,t):_e(t)?this.clickActiveFeature(e,t):At(t)?this.clickInactive(e,t):void this.stopDragging(e)},fe.onTap=function(e,t){return He(t)?this.clickNoTarget(e,t):_e(t)?this.clickActiveFeature(e,t):At(t)?this.clickInactive(e,t):void 0},fe.onTouchEnd=fe.onMouseUp=function(e){e.dragMoving&&this.fireUpdate(),this.stopDragging(e)};var ne={};function it(e,t){return!!e.lngLat&&e.lngLat.lng===t[0]&&e.lngLat.lat===t[1]}ne.onSetup=function(){var e=this.newFeature({type:m.FEATURE,properties:{},geometry:{type:m.POINT,coordinates:[]}});return this.addFeature(e),this.clearSelectedFeatures(),this.updateUIClasses({mouse:N.ADD}),this.activateUIButton(Y.POINT),this.setActionableState({trash:!0}),{point:e}},ne.stopDrawingAndRemove=function(e){this.deleteFeature([e.point.id],{silent:!0}),this.changeMode(T.SIMPLE_SELECT)},ne.onTap=ne.onClick=function(e,t){this.updateUIClasses({mouse:N.MOVE}),e.point.updateCoordinate("",t.lngLat.lng,t.lngLat.lat),this.map.fire(H.CREATE,{features:[e.point.toGeoJSON()]}),this.changeMode(T.SIMPLE_SELECT,{featureIds:[e.point.id]})},ne.onStop=function(e){this.activateUIButton(),e.point.getCoordinate().length||this.deleteFeature([e.point.id],{silent:!0})},ne.toDisplayFeatures=function(e,t,n){var r=t.properties.id===e.point.id;if(t.properties.active=r?j.ACTIVE:j.INACTIVE,!r)return n(t)},ne.onTrash=ne.stopDrawingAndRemove,ne.onKeyUp=function(e,t){if(Ze(t)||We(t))return this.stopDrawingAndRemove(e,t)};var be={onSetup:function(){var e=this.newFeature({type:m.FEATURE,properties:{},geometry:{type:m.POLYGON,coordinates:[[]]}});return this.addFeature(e),this.clearSelectedFeatures(),ee.disable(this),this.updateUIClasses({mouse:N.ADD}),this.activateUIButton(Y.POLYGON),this.setActionableState({trash:!0}),{polygon:e,currentVertexPosition:0}},clickAnywhere:function(e,t){if(e.currentVertexPosition>0&&it(t,e.polygon.coordinates[0][e.currentVertexPosition-1]))return this.changeMode(T.SIMPLE_SELECT,{featureIds:[e.polygon.id]});this.updateUIClasses({mouse:N.ADD}),e.polygon.updateCoordinate("0."+e.currentVertexPosition,t.lngLat.lng,t.lngLat.lat),e.currentVertexPosition++,e.polygon.updateCoordinate("0."+e.currentVertexPosition,t.lngLat.lng,t.lngLat.lat)},clickOnVertex:function(e){return this.changeMode(T.SIMPLE_SELECT,{featureIds:[e.polygon.id]})},onMouseMove:function(e,t){e.polygon.updateCoordinate("0."+e.currentVertexPosition,t.lngLat.lng,t.lngLat.lat),ke(t)&&this.updateUIClasses({mouse:N.POINTER})}};be.onTap=be.onClick=function(e,t){return ke(t)?this.clickOnVertex(e,t):this.clickAnywhere(e,t)},be.onKeyUp=function(e,t){Ze(t)?(this.deleteFeature([e.polygon.id],{silent:!0}),this.changeMode(T.SIMPLE_SELECT)):We(t)&&this.changeMode(T.SIMPLE_SELECT,{featureIds:[e.polygon.id]})},be.onStop=function(e){this.updateUIClasses({mouse:N.NONE}),ee.enable(this),this.activateUIButton(),this.getFeature(e.polygon.id)!==void 0&&(e.polygon.removeCoordinate("0."+e.currentVertexPosition),e.polygon.isValid()?this.map.fire(H.CREATE,{features:[e.polygon.toGeoJSON()]}):(this.deleteFeature([e.polygon.id],{silent:!0}),this.changeMode(T.SIMPLE_SELECT,{},{silent:!0})))},be.toDisplayFeatures=function(e,t,n){var r=t.properties.id===e.polygon.id;if(t.properties.active=r?j.ACTIVE:j.INACTIVE,!r)return n(t);if(t.geometry.coordinates.length!==0){var o=t.geometry.coordinates[0].length;if(!(o<3)){if(t.properties.meta=B.FEATURE,n(Le(e.polygon.id,t.geometry.coordinates[0][0],"0.0",!1)),o>3){var i=t.geometry.coordinates[0].length-3;n(Le(e.polygon.id,t.geometry.coordinates[0][i],"0."+i,!1))}if(o<=4){var a=[[t.geometry.coordinates[0][0][0],t.geometry.coordinates[0][0][1]],[t.geometry.coordinates[0][1][0],t.geometry.coordinates[0][1][1]]];if(n({type:m.FEATURE,properties:t.properties,geometry:{coordinates:a,type:m.LINE_STRING}}),o===3)return}return n(t)}}},be.onTrash=function(e){this.deleteFeature([e.polygon.id],{silent:!0}),this.changeMode(T.SIMPLE_SELECT)};var Ee={onSetup:function(e){var t,n,r=(e=e||{}).featureId,o="forward";if(r){if(!(t=this.getFeature(r)))throw new Error("Could not find a feature with the provided featureId");var i=e.from;if(i&&i.type==="Feature"&&i.geometry&&i.geometry.type==="Point"&&(i=i.geometry),i&&i.type==="Point"&&i.coordinates&&i.coordinates.length===2&&(i=i.coordinates),!i||!Array.isArray(i))throw new Error("Please use the `from` property to indicate which point to continue the line from");var a=t.coordinates.length-1;if(t.coordinates[a][0]===i[0]&&t.coordinates[a][1]===i[1])n=a+1,t.addCoordinate.apply(t,[n].concat(t.coordinates[a]));else{if(t.coordinates[0][0]!==i[0]||t.coordinates[0][1]!==i[1])throw new Error("`from` should match the point at either the start or the end of the provided LineString");o="backwards",n=0,t.addCoordinate.apply(t,[n].concat(t.coordinates[0]))}}else t=this.newFeature({type:m.FEATURE,properties:{},geometry:{type:m.LINE_STRING,coordinates:[]}}),n=0,this.addFeature(t);return this.clearSelectedFeatures(),ee.disable(this),this.updateUIClasses({mouse:N.ADD}),this.activateUIButton(Y.LINE),this.setActionableState({trash:!0}),{line:t,currentVertexPosition:n,direction:o}},clickAnywhere:function(e,t){if(e.currentVertexPosition>0&&it(t,e.line.coordinates[e.currentVertexPosition-1])||e.direction==="backwards"&&it(t,e.line.coordinates[e.currentVertexPosition+1]))return this.changeMode(T.SIMPLE_SELECT,{featureIds:[e.line.id]});this.updateUIClasses({mouse:N.ADD}),e.line.updateCoordinate(e.currentVertexPosition,t.lngLat.lng,t.lngLat.lat),e.direction==="forward"?(e.currentVertexPosition++,e.line.updateCoordinate(e.currentVertexPosition,t.lngLat.lng,t.lngLat.lat)):e.line.addCoordinate(0,t.lngLat.lng,t.lngLat.lat)},clickOnVertex:function(e){return this.changeMode(T.SIMPLE_SELECT,{featureIds:[e.line.id]})},onMouseMove:function(e,t){e.line.updateCoordinate(e.currentVertexPosition,t.lngLat.lng,t.lngLat.lat),ke(t)&&this.updateUIClasses({mouse:N.POINTER})}};Ee.onTap=Ee.onClick=function(e,t){if(ke(t))return this.clickOnVertex(e,t);this.clickAnywhere(e,t)},Ee.onKeyUp=function(e,t){We(t)?this.changeMode(T.SIMPLE_SELECT,{featureIds:[e.line.id]}):Ze(t)&&(this.deleteFeature([e.line.id],{silent:!0}),this.changeMode(T.SIMPLE_SELECT))},Ee.onStop=function(e){ee.enable(this),this.activateUIButton(),this.getFeature(e.line.id)!==void 0&&(e.line.removeCoordinate(""+e.currentVertexPosition),e.line.isValid()?this.map.fire(H.CREATE,{features:[e.line.toGeoJSON()]}):(this.deleteFeature([e.line.id],{silent:!0}),this.changeMode(T.SIMPLE_SELECT,{},{silent:!0})))},Ee.onTrash=function(e){this.deleteFeature([e.line.id],{silent:!0}),this.changeMode(T.SIMPLE_SELECT)},Ee.toDisplayFeatures=function(e,t,n){var r=t.properties.id===e.line.id;if(t.properties.active=r?j.ACTIVE:j.INACTIVE,!r)return n(t);t.geometry.coordinates.length<2||(t.properties.meta=B.FEATURE,n(Le(e.line.id,t.geometry.coordinates[e.direction==="forward"?t.geometry.coordinates.length-2:1],""+(e.direction==="forward"?t.geometry.coordinates.length-2:1),!1)),n(t))};var vn={simple_select:D,direct_select:fe,draw_point:ne,draw_polygon:be,draw_line_string:Ee},xr={defaultMode:T.SIMPLE_SELECT,keybindings:!0,touchEnabled:!0,clickBuffer:2,touchBuffer:25,boxSelect:!0,displayControlsDefault:!0,styles:an,modes:vn,controls:{},userProperties:!1},Mr={point:!0,line_string:!0,polygon:!0,trash:!0,combine_features:!0,uncombine_features:!0},Lr={point:!1,line_string:!1,polygon:!1,trash:!1,combine_features:!1,uncombine_features:!1};function mn(e,t){return e.map(function(n){return n.source?n:pe(n,{id:n.id+"."+t,source:t==="hot"?X.HOT:X.COLD})})}var kt={exports:{}};(function(e,t){var n="__lodash_hash_undefined__",r=9007199254740991,o="[object Arguments]",i="[object Array]",a="[object Boolean]",l="[object Date]",d="[object Error]",h="[object Function]",g="[object Map]",p="[object Number]",_="[object Object]",A="[object Promise]",b="[object RegExp]",F="[object Set]",c="[object String]",y="[object Symbol]",O="[object WeakMap]",V="[object ArrayBuffer]",w="[object DataView]",Ut=/^\[object .+?Constructor\]$/,Fr=/^(?:0|[1-9]\d*)$/,M={};M["[object Float32Array]"]=M["[object Float64Array]"]=M["[object Int8Array]"]=M["[object Int16Array]"]=M["[object Int32Array]"]=M["[object Uint8Array]"]=M["[object Uint8ClampedArray]"]=M["[object Uint16Array]"]=M["[object Uint32Array]"]=!0,M[o]=M[i]=M[V]=M[a]=M[w]=M[l]=M[d]=M[h]=M[g]=M[p]=M[_]=M[b]=M[F]=M[c]=M[O]=!1;var En=typeof Re.commonjsGlobal=="object"&&Re.commonjsGlobal&&Re.commonjsGlobal.Object===Object&&Re.commonjsGlobal,wr=typeof self=="object"&&self&&self.Object===Object&&self,ae=En||wr||Function("return this")(),Tn=t&&!t.nodeType&&t,Cn=Tn&&e&&!e.nodeType&&e,On=Cn&&Cn.exports===Tn,jt=On&&En.process,Sn=function(){try{return jt&&jt.binding&&jt.binding("util")}catch{}}(),In=Sn&&Sn.isTypedArray;function Rr(s,u){for(var f=-1,v=s==null?0:s.length;++f<v;)if(u(s[f],f,s))return!0;return!1}function Dr(s){var u=-1,f=Array(s.size);return s.forEach(function(v,L){f[++u]=[L,v]}),f}function kr(s){var u=-1,f=Array(s.size);return s.forEach(function(v){f[++u]=v}),f}var xn,Mn,Ln,Ur=Array.prototype,jr=Function.prototype,st=Object.prototype,Vt=ae["__core-js_shared__"],Nn=jr.toString,re=st.hasOwnProperty,An=(xn=/[^.]+$/.exec(Vt&&Vt.keys&&Vt.keys.IE_PROTO||""))?"Symbol(src)_1."+xn:"",Pn=st.toString,Vr=RegExp("^"+Nn.call(re).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Fn=On?ae.Buffer:void 0,ut=ae.Symbol,wn=ae.Uint8Array,Rn=st.propertyIsEnumerable,Br=Ur.splice,Te=ut?ut.toStringTag:void 0,Dn=Object.getOwnPropertySymbols,Gr=Fn?Fn.isBuffer:void 0,Jr=(Mn=Object.keys,Ln=Object,function(s){return Mn(Ln(s))}),Bt=Ae(ae,"DataView"),Ue=Ae(ae,"Map"),Gt=Ae(ae,"Promise"),Jt=Ae(ae,"Set"),zt=Ae(ae,"WeakMap"),je=Ae(Object,"create"),zr=Se(Bt),Yr=Se(Ue),$r=Se(Gt),qr=Se(Jt),Hr=Se(zt),kn=ut?ut.prototype:void 0,Yt=kn?kn.valueOf:void 0;function Ce(s){var u=-1,f=s==null?0:s.length;for(this.clear();++u<f;){var v=s[u];this.set(v[0],v[1])}}function se(s){var u=-1,f=s==null?0:s.length;for(this.clear();++u<f;){var v=s[u];this.set(v[0],v[1])}}function Oe(s){var u=-1,f=s==null?0:s.length;for(this.clear();++u<f;){var v=s[u];this.set(v[0],v[1])}}function ct(s){var u=-1,f=s==null?0:s.length;for(this.__data__=new Oe;++u<f;)this.add(s[u])}function he(s){var u=this.__data__=new se(s);this.size=u.size}function Xr(s,u){var f=pt(s),v=!f&&eo(s),L=!f&&!v&&$t(s),C=!f&&!v&&!L&&$n(s),P=f||v||L||C,R=P?function(U,oe){for(var ue=-1,z=Array(U);++ue<U;)z[ue]=oe(ue);return z}(s.length,String):[],te=R.length;for(var k in s)!u&&!re.call(s,k)||P&&(k=="length"||L&&(k=="offset"||k=="parent")||C&&(k=="buffer"||k=="byteLength"||k=="byteOffset")||Qr(k,te))||R.push(k);return R}function lt(s,u){for(var f=s.length;f--;)if(Gn(s[f][0],u))return f;return-1}function Ve(s){return s==null?s===void 0?"[object Undefined]":"[object Null]":Te&&Te in Object(s)?function(u){var f=re.call(u,Te),v=u[Te];try{u[Te]=void 0;var L=!0}catch{}var C=Pn.call(u);return L&&(f?u[Te]=v:delete u[Te]),C}(s):function(u){return Pn.call(u)}(s)}function Un(s){return Be(s)&&Ve(s)==o}function jn(s,u,f,v,L){return s===u||(s==null||u==null||!Be(s)&&!Be(u)?s!=s&&u!=u:function(C,P,R,te,k,U){var oe=pt(C),ue=pt(P),z=oe?i:ge(C),ce=ue?i:ge(P),Pe=(z=z==o?_:z)==_,ft=(ce=ce==o?_:ce)==_,Fe=z==ce;if(Fe&&$t(C)){if(!$t(P))return!1;oe=!0,Pe=!1}if(Fe&&!Pe)return U||(U=new he),oe||$n(C)?Vn(C,P,R,te,k,U):function(I,S,ht,ye,qt,Q,le){switch(ht){case w:if(I.byteLength!=S.byteLength||I.byteOffset!=S.byteOffset)return!1;I=I.buffer,S=S.buffer;case V:return!(I.byteLength!=S.byteLength||!Q(new wn(I),new wn(S)));case a:case l:case p:return Gn(+I,+S);case d:return I.name==S.name&&I.message==S.message;case b:case c:return I==S+"";case g:var ve=Dr;case F:var Je=1&ye;if(ve||(ve=kr),I.size!=S.size&&!Je)return!1;var gt=le.get(I);if(gt)return gt==S;ye|=2,le.set(I,S);var we=Vn(ve(I),ve(S),ye,qt,Q,le);return le.delete(I),we;case y:if(Yt)return Yt.call(I)==Yt.call(S)}return!1}(C,P,z,R,te,k,U);if(!(1&R)){var Ge=Pe&&re.call(C,"__wrapped__"),qn=ft&&re.call(P,"__wrapped__");if(Ge||qn){var no=Ge?C.value():C,ro=qn?P.value():P;return U||(U=new he),k(no,ro,R,te,U)}}return Fe?(U||(U=new he),function(I,S,ht,ye,qt,Q){var le=1&ht,ve=Bn(I),Je=ve.length,gt=Bn(S).length;if(Je!=gt&&!le)return!1;for(var we=Je;we--;){var Ie=ve[we];if(!(le?Ie in S:re.call(S,Ie)))return!1}var Hn=Q.get(I);if(Hn&&Q.get(S))return Hn==S;var yt=!0;Q.set(I,S),Q.set(S,I);for(var Ht=le;++we<Je;){var vt=I[Ie=ve[we]],mt=S[Ie];if(ye)var Xn=le?ye(mt,vt,Ie,S,I,Q):ye(vt,mt,Ie,I,S,Q);if(!(Xn===void 0?vt===mt||qt(vt,mt,ht,ye,Q):Xn)){yt=!1;break}Ht||(Ht=Ie=="constructor")}if(yt&&!Ht){var _t=I.constructor,bt=S.constructor;_t==bt||!("constructor"in I)||!("constructor"in S)||typeof _t=="function"&&_t instanceof _t&&typeof bt=="function"&&bt instanceof bt||(yt=!1)}return Q.delete(I),Q.delete(S),yt}(C,P,R,te,k,U)):!1}(s,u,f,v,jn,L))}function Zr(s){return!(!Yn(s)||function(u){return!!An&&An in u}(s))&&(Jn(s)?Vr:Ut).test(Se(s))}function Wr(s){if(f=(u=s)&&u.constructor,v=typeof f=="function"&&f.prototype||st,u!==v)return Jr(s);var u,f,v,L=[];for(var C in Object(s))re.call(s,C)&&C!="constructor"&&L.push(C);return L}function Vn(s,u,f,v,L,C){var P=1&f,R=s.length,te=u.length;if(R!=te&&!(P&&te>R))return!1;var k=C.get(s);if(k&&C.get(u))return k==u;var U=-1,oe=!0,ue=2&f?new ct:void 0;for(C.set(s,u),C.set(u,s);++U<R;){var z=s[U],ce=u[U];if(v)var Pe=P?v(ce,z,U,u,s,C):v(z,ce,U,s,u,C);if(Pe!==void 0){if(Pe)continue;oe=!1;break}if(ue){if(!Rr(u,function(ft,Fe){if(Ge=Fe,!ue.has(Ge)&&(z===ft||L(z,ft,f,v,C)))return ue.push(Fe);var Ge})){oe=!1;break}}else if(z!==ce&&!L(z,ce,f,v,C)){oe=!1;break}}return C.delete(s),C.delete(u),oe}function Bn(s){return function(u,f,v){var L=f(u);return pt(u)?L:function(C,P){for(var R=-1,te=P.length,k=C.length;++R<te;)C[k+R]=P[R];return C}(L,v(u))}(s,to,Kr)}function dt(s,u){var f,v,L=s.__data__;return((v=typeof(f=u))=="string"||v=="number"||v=="symbol"||v=="boolean"?f!=="__proto__":f===null)?L[typeof u=="string"?"string":"hash"]:L.map}function Ae(s,u){var f=function(v,L){return v==null?void 0:v[L]}(s,u);return Zr(f)?f:void 0}Ce.prototype.clear=function(){this.__data__=je?je(null):{},this.size=0},Ce.prototype.delete=function(s){var u=this.has(s)&&delete this.__data__[s];return this.size-=u?1:0,u},Ce.prototype.get=function(s){var u=this.__data__;if(je){var f=u[s];return f===n?void 0:f}return re.call(u,s)?u[s]:void 0},Ce.prototype.has=function(s){var u=this.__data__;return je?u[s]!==void 0:re.call(u,s)},Ce.prototype.set=function(s,u){var f=this.__data__;return this.size+=this.has(s)?0:1,f[s]=je&&u===void 0?n:u,this},se.prototype.clear=function(){this.__data__=[],this.size=0},se.prototype.delete=function(s){var u=this.__data__,f=lt(u,s);return!(f<0)&&(f==u.length-1?u.pop():Br.call(u,f,1),--this.size,!0)},se.prototype.get=function(s){var u=this.__data__,f=lt(u,s);return f<0?void 0:u[f][1]},se.prototype.has=function(s){return lt(this.__data__,s)>-1},se.prototype.set=function(s,u){var f=this.__data__,v=lt(f,s);return v<0?(++this.size,f.push([s,u])):f[v][1]=u,this},Oe.prototype.clear=function(){this.size=0,this.__data__={hash:new Ce,map:new(Ue||se),string:new Ce}},Oe.prototype.delete=function(s){var u=dt(this,s).delete(s);return this.size-=u?1:0,u},Oe.prototype.get=function(s){return dt(this,s).get(s)},Oe.prototype.has=function(s){return dt(this,s).has(s)},Oe.prototype.set=function(s,u){var f=dt(this,s),v=f.size;return f.set(s,u),this.size+=f.size==v?0:1,this},ct.prototype.add=ct.prototype.push=function(s){return this.__data__.set(s,n),this},ct.prototype.has=function(s){return this.__data__.has(s)},he.prototype.clear=function(){this.__data__=new se,this.size=0},he.prototype.delete=function(s){var u=this.__data__,f=u.delete(s);return this.size=u.size,f},he.prototype.get=function(s){return this.__data__.get(s)},he.prototype.has=function(s){return this.__data__.has(s)},he.prototype.set=function(s,u){var f=this.__data__;if(f instanceof se){var v=f.__data__;if(!Ue||v.length<199)return v.push([s,u]),this.size=++f.size,this;f=this.__data__=new Oe(v)}return f.set(s,u),this.size=f.size,this};var Kr=Dn?function(s){return s==null?[]:(s=Object(s),function(u,f){for(var v=-1,L=u==null?0:u.length,C=0,P=[];++v<L;){var R=u[v];f(R,v,u)&&(P[C++]=R)}return P}(Dn(s),function(u){return Rn.call(s,u)}))}:function(){return[]},ge=Ve;function Qr(s,u){return!!(u=u??r)&&(typeof s=="number"||Fr.test(s))&&s>-1&&s%1==0&&s<u}function Se(s){if(s!=null){try{return Nn.call(s)}catch{}try{return s+""}catch{}}return""}function Gn(s,u){return s===u||s!=s&&u!=u}(Bt&&ge(new Bt(new ArrayBuffer(1)))!=w||Ue&&ge(new Ue)!=g||Gt&&ge(Gt.resolve())!=A||Jt&&ge(new Jt)!=F||zt&&ge(new zt)!=O)&&(ge=function(s){var u=Ve(s),f=u==_?s.constructor:void 0,v=f?Se(f):"";if(v)switch(v){case zr:return w;case Yr:return g;case $r:return A;case qr:return F;case Hr:return O}return u});var eo=Un(function(){return arguments}())?Un:function(s){return Be(s)&&re.call(s,"callee")&&!Rn.call(s,"callee")},pt=Array.isArray,$t=Gr||function(){return!1};function Jn(s){if(!Yn(s))return!1;var u=Ve(s);return u==h||u=="[object GeneratorFunction]"||u=="[object AsyncFunction]"||u=="[object Proxy]"}function zn(s){return typeof s=="number"&&s>-1&&s%1==0&&s<=r}function Yn(s){var u=typeof s;return s!=null&&(u=="object"||u=="function")}function Be(s){return s!=null&&typeof s=="object"}var $n=In?function(s){return function(u){return s(u)}}(In):function(s){return Be(s)&&zn(s.length)&&!!M[Ve(s)]};function to(s){return(u=s)!=null&&zn(u.length)&&!Jn(u)?Xr(s):Wr(s);var u}e.exports=function(s,u){return jn(s,u)}})(kt,kt.exports);var _n=de(kt.exports);function bn(e,t){return e.length===t.length&&JSON.stringify(e.map(function(n){return n}).sort())===JSON.stringify(t.map(function(n){return n}).sort())}var Nr={Polygon:W,LineString:ie,Point:me,MultiPolygon:$,MultiLineString:$,MultiPoint:$},Ar=Object.freeze({__proto__:null,CommonSelectors:dr,constrainFeatureMovement:Rt,createMidPoint:un,createSupplementaryPoints:Ke,createVertex:Le,doubleClickZoom:ee,euclideanDistance:It,featuresAt:xe,getFeatureAtAndSetCursors:Ye,isClick:xt,isEventAtCoordinates:it,isTap:Mt,mapEventToBoundingBox:en,ModeHandler:ze,moveFeatures:Dt,sortFeatures:Qt,stringSetsAreEqual:bn,StringSet:Z,theme:an,toDenseArray:De}),Pr=function(e,t){var n={options:e=function(o){o===void 0&&(o={});var i=pe(o);return o.controls||(i.controls={}),o.displayControlsDefault===!1?i.controls=pe(Lr,o.controls):i.controls=pe(Mr,o.controls),(i=pe(xr,i)).styles=mn(i.styles,"cold").concat(mn(i.styles,"hot")),i}(e)};t=function(o,i){return i.modes=T,i.getFeatureIdsAt=function(a){return xe.click({point:a},null,o).map(function(l){return l.properties.id})},i.getSelectedIds=function(){return o.store.getSelectedIds()},i.getSelected=function(){return{type:m.FEATURE_COLLECTION,features:o.store.getSelectedIds().map(function(a){return o.store.get(a)}).map(function(a){return a.toGeoJSON()})}},i.getSelectedPoints=function(){return{type:m.FEATURE_COLLECTION,features:o.store.getSelectedCoordinates().map(function(a){return{type:m.FEATURE,properties:{},geometry:{type:m.POINT,coordinates:a.coordinates}}})}},i.set=function(a){if(a.type===void 0||a.type!==m.FEATURE_COLLECTION||!Array.isArray(a.features))throw new Error("Invalid FeatureCollection");var l=o.store.createRenderBatch(),d=o.store.getAllIds().slice(),h=i.add(a),g=new Z(h);return(d=d.filter(function(p){return!g.has(p)})).length&&i.delete(d),l(),h},i.add=function(a){var l=JSON.parse(JSON.stringify(gr(a))).features.map(function(d){if(d.id=d.id||Nt(),d.geometry===null)throw new Error("Invalid geometry: null");if(o.store.get(d.id)===void 0||o.store.get(d.id).type!==d.geometry.type){var h=Nr[d.geometry.type];if(h===void 0)throw new Error("Invalid geometry type: "+d.geometry.type+".");var g=new h(o,d);o.store.add(g)}else{var p=o.store.get(d.id);p.properties=d.properties,_n(p.properties,d.properties)||o.store.featureChanged(p.id),_n(p.getCoordinates(),d.geometry.coordinates)||p.incomingCoords(d.geometry.coordinates)}return d.id});return o.store.render(),l},i.get=function(a){var l=o.store.get(a);if(l)return l.toGeoJSON()},i.getAll=function(){return{type:m.FEATURE_COLLECTION,features:o.store.getAll().map(function(a){return a.toGeoJSON()})}},i.delete=function(a){return o.store.delete(a,{silent:!0}),i.getMode()!==T.DIRECT_SELECT||o.store.getSelectedIds().length?o.store.render():o.events.changeMode(T.SIMPLE_SELECT,void 0,{silent:!0}),i},i.deleteAll=function(){return o.store.delete(o.store.getAllIds(),{silent:!0}),i.getMode()===T.DIRECT_SELECT?o.events.changeMode(T.SIMPLE_SELECT,void 0,{silent:!0}):o.store.render(),i},i.changeMode=function(a,l){return l===void 0&&(l={}),a===T.SIMPLE_SELECT&&i.getMode()===T.SIMPLE_SELECT?(bn(l.featureIds||[],o.store.getSelectedIds())||(o.store.setSelected(l.featureIds,{silent:!0}),o.store.render()),i):(a===T.DIRECT_SELECT&&i.getMode()===T.DIRECT_SELECT&&l.featureId===o.store.getSelectedIds()[0]||o.events.changeMode(a,l,{silent:!0}),i)},i.getMode=function(){return o.events.getMode()},i.trash=function(){return o.events.trash({silent:!0}),i},i.combineFeatures=function(){return o.events.combineFeatures({silent:!0}),i},i.uncombineFeatures=function(){return o.events.uncombineFeatures({silent:!0}),i},i.setFeatureProperty=function(a,l,d){return o.store.setFeatureProperty(a,l,d),i},i}(n,t),n.api=t;var r=lr(n);return t.onAdd=r.onAdd,t.onRemove=r.onRemove,t.types=Y,t.options=e,t};function at(e){Pr(e,this)}return at.modes=vn,at.constants=er,at.lib=Ar,at})})(Zn.__module);var oo=Zn.__module.exports;const io=Re.getDefaultExportFromCjs(oo);module.exports=io;
2
2
  //# sourceMappingURL=index.cjs14.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("react"),a=require("./index.cjs67.js");require("./index.cjs68.js");require("./index.cjs69.js");require("./index.cjs70.js");require("./index.cjs71.js");require("./index.cjs72.js");const i=require("./index.cjs73.js");require("./index.cjs74.js");const c=require("./index.cjs77.js"),s=require("./index.cjs78.js"),l=require("./index.cjs75.js");function f(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const p=f(u);function q(){return l.useMap()}const d=Promise.resolve().then(()=>require("./index.cjs76.js")).then(e=>e.index),o=p.forwardRef(function(t,r){return a.default(t,r,d)}),g=i,M=c,b=s;exports.Layer=M;exports.Map=o;exports.NavigationControl=g;exports.Source=b;exports.default=o;exports.useMap=q;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("react"),a=require("./index.cjs67.js");require("./index.cjs68.js");require("./index.cjs69.js");require("./index.cjs70.js");require("./index.cjs71.js");require("./index.cjs72.js");const i=require("./index.cjs73.js");require("./index.cjs74.js");const c=require("./index.cjs79.js"),s=require("./index.cjs80.js"),l=require("./index.cjs75.js");function f(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const p=f(u);function q(){return l.useMap()}const d=Promise.resolve().then(()=>require("./index.cjs78.js")).then(e=>e.index),o=p.forwardRef(function(t,r){return a.default(t,r,d)}),g=i,M=c,b=s;exports.Layer=M;exports.Map=o;exports.NavigationControl=g;exports.Source=b;exports.default=o;exports.useMap=q;
2
2
  //# sourceMappingURL=index.cjs15.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index.cjs62.js"),r=require("./index.cjs63.js"),t=require("./index.cjs64.js");process.env.NODE_ENV==="production"?e.__module.exports=r.__require():e.__module.exports=t.__require();var o=e.__module.exports;exports.jsxRuntimeExports=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index.cjs61.js"),r=require("./index.cjs62.js"),t=require("./index.cjs63.js");process.env.NODE_ENV==="production"?e.__module.exports=r.__require():e.__module.exports=t.__require();var o=e.__module.exports;exports.jsxRuntimeExports=o;
2
2
  //# sourceMappingURL=index.cjs17.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e={};exports.__exports=e;
1
+ "use strict";const c=require("./index.cjs56.js"),u=require("./index.cjs54.js");function x(t,e){e===void 0&&(e={});var r=c(t),i=(r[0]+r[2])/2,n=(r[1]+r[3])/2;return u.point([i,n],e.properties,e)}module.exports=x;
2
2
  //# sourceMappingURL=index.cjs190.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs190.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.cjs190.js","sources":["../../../node_modules/@turf/center/dist/es/index.js"],"sourcesContent":["import bbox from \"@turf/bbox\";\nimport { point, } from \"@turf/helpers\";\n/**\n * Takes a {@link Feature} or {@link FeatureCollection} and returns the absolute center point of all features.\n *\n * @name center\n * @param {GeoJSON} geojson GeoJSON to be centered\n * @param {Object} [options={}] Optional parameters\n * @param {Object} [options.properties={}] Translate GeoJSON Properties to Point\n * @param {Object} [options.bbox={}] Translate GeoJSON BBox to Point\n * @param {Object} [options.id={}] Translate GeoJSON Id to Point\n * @returns {Feature<Point>} a Point feature at the absolute center point of all input features\n * @example\n * var features = turf.points([\n * [-97.522259, 35.4691],\n * [-97.502754, 35.463455],\n * [-97.508269, 35.463245]\n * ]);\n *\n * var center = turf.center(features);\n *\n * //addToMap\n * var addToMap = [features, center]\n * center.properties['marker-size'] = 'large';\n * center.properties['marker-color'] = '#000';\n */\nfunction center(geojson, options) {\n if (options === void 0) { options = {}; }\n var ext = bbox(geojson);\n var x = (ext[0] + ext[2]) / 2;\n var y = (ext[1] + ext[3]) / 2;\n return point([x, y], options.properties, options);\n}\nexport default center;\n"],"names":["center","geojson","options","ext","bbox","x","y","point"],"mappings":"+EA0BA,SAASA,EAAOC,EAASC,EAAS,CAC1BA,IAAY,SAAUA,EAAU,CAAA,GAChC,IAAAC,EAAMC,EAAKH,CAAO,EAClBI,GAAKF,EAAI,CAAC,EAAIA,EAAI,CAAC,GAAK,EACxBG,GAAKH,EAAI,CAAC,EAAIA,EAAI,CAAC,GAAK,EAC5B,OAAOI,EAAAA,MAAM,CAACF,EAAGC,CAAC,EAAGJ,EAAQ,WAAYA,CAAO,CACpD","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";const c=require("./index.cjs56.js"),u=require("./index.cjs54.js");function x(t,e){e===void 0&&(e={});var r=c(t),i=(r[0]+r[2])/2,n=(r[1]+r[3])/2;return u.point([i,n],e.properties,e)}module.exports=x;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function G(e,o,r){if(e!==null)for(var t,l,a,c,u,i,s,y=0,f=0,h,p=e.type,g=p==="FeatureCollection",v=p==="Feature",w=g?e.features.length:1,C=0;C<w;C++){s=g?e.features[C].geometry:v?e.geometry:e,h=s?s.type==="GeometryCollection":!1,u=h?s.geometries.length:1;for(var b=0;b<u;b++){var n=0,M=0;if(c=h?s.geometries[b]:s,c!==null){i=c.coordinates;var P=c.type;switch(y=r&&(P==="Polygon"||P==="MultiPolygon")?1:0,P){case null:break;case"Point":if(o(i,f,C,n,M)===!1)return!1;f++,n++;break;case"LineString":case"MultiPoint":for(t=0;t<i.length;t++){if(o(i[t],f,C,n,M)===!1)return!1;f++,P==="MultiPoint"&&n++}P==="LineString"&&n++;break;case"Polygon":case"MultiLineString":for(t=0;t<i.length;t++){for(l=0;l<i[t].length-y;l++){if(o(i[t][l],f,C,n,M)===!1)return!1;f++}P==="MultiLineString"&&n++,P==="Polygon"&&M++}P==="Polygon"&&n++;break;case"MultiPolygon":for(t=0;t<i.length;t++){for(M=0,l=0;l<i[t].length;l++){for(a=0;a<i[t][l].length-y;a++){if(o(i[t][l][a],f,C,n,M)===!1)return!1;f++}M++}n++}break;case"GeometryCollection":for(t=0;t<c.geometries.length;t++)if(G(c.geometries[t],o,r)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function S(e,o){if(e.type==="Feature")o(e,0);else if(e.type==="FeatureCollection")for(var r=0;r<e.features.length&&o(e.features[r],r)!==!1;r++);}function E(e,o){var r,t,l,a,c,u,i,s,y,f,h=0,p=e.type==="FeatureCollection",g=e.type==="Feature",v=p?e.features.length:1;for(r=0;r<v;r++){for(u=p?e.features[r].geometry:g?e.geometry:e,s=p?e.features[r].properties:g?e.properties:{},y=p?e.features[r].bbox:g?e.bbox:void 0,f=p?e.features[r].id:g?e.id:void 0,i=u?u.type==="GeometryCollection":!1,c=i?u.geometries.length:1,l=0;l<c;l++){if(a=i?u.geometries[l]:u,a===null){if(o(null,h,s,y,f)===!1)return!1;continue}switch(a.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(o(a,h,s,y,f)===!1)return!1;break}case"GeometryCollection":{for(t=0;t<a.geometries.length;t++)if(o(a.geometries[t],h,s,y,f)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}h++}}exports.coordEach=G;exports.featureEach=S;exports.geomEach=E;
2
2
  //# sourceMappingURL=index.cjs191.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs191.js","sources":["../../../node_modules/@turf/center/dist/es/index.js"],"sourcesContent":["import bbox from \"@turf/bbox\";\nimport { point, } from \"@turf/helpers\";\n/**\n * Takes a {@link Feature} or {@link FeatureCollection} and returns the absolute center point of all features.\n *\n * @name center\n * @param {GeoJSON} geojson GeoJSON to be centered\n * @param {Object} [options={}] Optional parameters\n * @param {Object} [options.properties={}] Translate GeoJSON Properties to Point\n * @param {Object} [options.bbox={}] Translate GeoJSON BBox to Point\n * @param {Object} [options.id={}] Translate GeoJSON Id to Point\n * @returns {Feature<Point>} a Point feature at the absolute center point of all input features\n * @example\n * var features = turf.points([\n * [-97.522259, 35.4691],\n * [-97.502754, 35.463455],\n * [-97.508269, 35.463245]\n * ]);\n *\n * var center = turf.center(features);\n *\n * //addToMap\n * var addToMap = [features, center]\n * center.properties['marker-size'] = 'large';\n * center.properties['marker-color'] = '#000';\n */\nfunction center(geojson, options) {\n if (options === void 0) { options = {}; }\n var ext = bbox(geojson);\n var x = (ext[0] + ext[2]) / 2;\n var y = (ext[1] + ext[3]) / 2;\n return point([x, y], options.properties, options);\n}\nexport default center;\n"],"names":["center","geojson","options","ext","bbox","x","y","point"],"mappings":"+EA0BA,SAASA,EAAOC,EAASC,EAAS,CAC1BA,IAAY,SAAUA,EAAU,CAAA,GAChC,IAAAC,EAAMC,EAAKH,CAAO,EAClBI,GAAKF,EAAI,CAAC,EAAIA,EAAI,CAAC,GAAK,EACxBG,GAAKH,EAAI,CAAC,EAAIA,EAAI,CAAC,GAAK,EAC5B,OAAOI,EAAAA,MAAM,CAACF,EAAGC,CAAC,EAAGJ,EAAQ,WAAYA,CAAO,CACpD","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.cjs191.js","sources":["../../../node_modules/@turf/meta/dist/es/index.js"],"sourcesContent":["import { feature, lineString, isObject, point } from '@turf/helpers';\n\n/**\n * Callback for coordEach\n *\n * @callback coordEachCallback\n * @param {Array<number>} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Iterate over coordinates in any GeoJSON object, similar to Array.forEach()\n *\n * @name coordEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex)\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction coordEach(geojson, callback, excludeWrapCoord) {\n // Handles null Geometry -- Skips this GeoJSON\n if (geojson === null) return;\n var j,\n k,\n l,\n geometry,\n stopG,\n coords,\n geometryMaybeCollection,\n wrapShrink = 0,\n coordIndex = 0,\n isGeometryCollection,\n type = geojson.type,\n isFeatureCollection = type === \"FeatureCollection\",\n isFeature = type === \"Feature\",\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (var featureIndex = 0; featureIndex < stop; featureIndex++) {\n geometryMaybeCollection = isFeatureCollection\n ? geojson.features[featureIndex].geometry\n : isFeature\n ? geojson.geometry\n : geojson;\n isGeometryCollection = geometryMaybeCollection\n ? geometryMaybeCollection.type === \"GeometryCollection\"\n : false;\n stopG = isGeometryCollection\n ? geometryMaybeCollection.geometries.length\n : 1;\n\n for (var geomIndex = 0; geomIndex < stopG; geomIndex++) {\n var multiFeatureIndex = 0;\n var geometryIndex = 0;\n geometry = isGeometryCollection\n ? geometryMaybeCollection.geometries[geomIndex]\n : geometryMaybeCollection;\n\n // Handles null Geometry -- Skips this geometry\n if (geometry === null) continue;\n coords = geometry.coordinates;\n var geomType = geometry.type;\n\n wrapShrink =\n excludeWrapCoord &&\n (geomType === \"Polygon\" || geomType === \"MultiPolygon\")\n ? 1\n : 0;\n\n switch (geomType) {\n case null:\n break;\n case \"Point\":\n if (\n callback(\n coords,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n multiFeatureIndex++;\n break;\n case \"LineString\":\n case \"MultiPoint\":\n for (j = 0; j < coords.length; j++) {\n if (\n callback(\n coords[j],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n if (geomType === \"MultiPoint\") multiFeatureIndex++;\n }\n if (geomType === \"LineString\") multiFeatureIndex++;\n break;\n case \"Polygon\":\n case \"MultiLineString\":\n for (j = 0; j < coords.length; j++) {\n for (k = 0; k < coords[j].length - wrapShrink; k++) {\n if (\n callback(\n coords[j][k],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n }\n if (geomType === \"MultiLineString\") multiFeatureIndex++;\n if (geomType === \"Polygon\") geometryIndex++;\n }\n if (geomType === \"Polygon\") multiFeatureIndex++;\n break;\n case \"MultiPolygon\":\n for (j = 0; j < coords.length; j++) {\n geometryIndex = 0;\n for (k = 0; k < coords[j].length; k++) {\n for (l = 0; l < coords[j][k].length - wrapShrink; l++) {\n if (\n callback(\n coords[j][k][l],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n coordIndex++;\n }\n geometryIndex++;\n }\n multiFeatureIndex++;\n }\n break;\n case \"GeometryCollection\":\n for (j = 0; j < geometry.geometries.length; j++)\n if (\n coordEach(geometry.geometries[j], callback, excludeWrapCoord) ===\n false\n )\n return false;\n break;\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n }\n}\n\n/**\n * Callback for coordReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback coordReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Array<number>} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * Starts at index 0, if an initialValue is provided, and at index 1 otherwise.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Reduce coordinates in any GeoJSON object, similar to Array.reduce()\n *\n * @name coordReduce\n * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentCoord;\n * });\n */\nfunction coordReduce(geojson, callback, initialValue, excludeWrapCoord) {\n var previousValue = initialValue;\n coordEach(\n geojson,\n function (\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) {\n if (coordIndex === 0 && initialValue === undefined)\n previousValue = currentCoord;\n else\n previousValue = callback(\n previousValue,\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n );\n },\n excludeWrapCoord\n );\n return previousValue;\n}\n\n/**\n * Callback for propEach\n *\n * @callback propEachCallback\n * @param {Object} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over properties in any GeoJSON object, similar to Array.forEach()\n *\n * @name propEach\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentProperties, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propEach(features, function (currentProperties, featureIndex) {\n * //=currentProperties\n * //=featureIndex\n * });\n */\nfunction propEach(geojson, callback) {\n var i;\n switch (geojson.type) {\n case \"FeatureCollection\":\n for (i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i].properties, i) === false) break;\n }\n break;\n case \"Feature\":\n callback(geojson.properties, 0);\n break;\n }\n}\n\n/**\n * Callback for propReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback propReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {*} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce properties in any GeoJSON object into a single value,\n * similar to how Array.reduce works. However, in this case we lazily run\n * the reduction, so an array of all properties is unnecessary.\n *\n * @name propReduce\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentProperties, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propReduce(features, function (previousValue, currentProperties, featureIndex) {\n * //=previousValue\n * //=currentProperties\n * //=featureIndex\n * return currentProperties\n * });\n */\nfunction propReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n propEach(geojson, function (currentProperties, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentProperties;\n else\n previousValue = callback(previousValue, currentProperties, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Callback for featureEach\n *\n * @callback featureEachCallback\n * @param {Feature<any>} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name featureEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.featureEach(features, function (currentFeature, featureIndex) {\n * //=currentFeature\n * //=featureIndex\n * });\n */\nfunction featureEach(geojson, callback) {\n if (geojson.type === \"Feature\") {\n callback(geojson, 0);\n } else if (geojson.type === \"FeatureCollection\") {\n for (var i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i], i) === false) break;\n }\n }\n}\n\n/**\n * Callback for featureReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback featureReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name featureReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.featureReduce(features, function (previousValue, currentFeature, featureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * return currentFeature\n * });\n */\nfunction featureReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n featureEach(geojson, function (currentFeature, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentFeature;\n else previousValue = callback(previousValue, currentFeature, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Get all coordinates from any GeoJSON object.\n *\n * @name coordAll\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @returns {Array<Array<number>>} coordinate position array\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * var coords = turf.coordAll(features);\n * //= [[26, 37], [36, 53]]\n */\nfunction coordAll(geojson) {\n var coords = [];\n coordEach(geojson, function (coord) {\n coords.push(coord);\n });\n return coords;\n}\n\n/**\n * Callback for geomEach\n *\n * @callback geomEachCallback\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array<number>} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Iterate over each geometry in any GeoJSON object, similar to Array.forEach()\n *\n * @name geomEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomEach(features, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * });\n */\nfunction geomEach(geojson, callback) {\n var i,\n j,\n g,\n geometry,\n stopG,\n geometryMaybeCollection,\n isGeometryCollection,\n featureProperties,\n featureBBox,\n featureId,\n featureIndex = 0,\n isFeatureCollection = geojson.type === \"FeatureCollection\",\n isFeature = geojson.type === \"Feature\",\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (i = 0; i < stop; i++) {\n geometryMaybeCollection = isFeatureCollection\n ? geojson.features[i].geometry\n : isFeature\n ? geojson.geometry\n : geojson;\n featureProperties = isFeatureCollection\n ? geojson.features[i].properties\n : isFeature\n ? geojson.properties\n : {};\n featureBBox = isFeatureCollection\n ? geojson.features[i].bbox\n : isFeature\n ? geojson.bbox\n : undefined;\n featureId = isFeatureCollection\n ? geojson.features[i].id\n : isFeature\n ? geojson.id\n : undefined;\n isGeometryCollection = geometryMaybeCollection\n ? geometryMaybeCollection.type === \"GeometryCollection\"\n : false;\n stopG = isGeometryCollection\n ? geometryMaybeCollection.geometries.length\n : 1;\n\n for (g = 0; g < stopG; g++) {\n geometry = isGeometryCollection\n ? geometryMaybeCollection.geometries[g]\n : geometryMaybeCollection;\n\n // Handle null Geometry\n if (geometry === null) {\n if (\n callback(\n null,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n continue;\n }\n switch (geometry.type) {\n case \"Point\":\n case \"LineString\":\n case \"MultiPoint\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\": {\n if (\n callback(\n geometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n break;\n }\n case \"GeometryCollection\": {\n for (j = 0; j < geometry.geometries.length; j++) {\n if (\n callback(\n geometry.geometries[j],\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false\n )\n return false;\n }\n break;\n }\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n // Only increase `featureIndex` per each feature\n featureIndex++;\n }\n}\n\n/**\n * Callback for geomReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback geomReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array<number>} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Reduce geometry in any GeoJSON object, similar to Array.reduce().\n *\n * @name geomReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomReduce(features, function (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=previousValue\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * return currentGeometry\n * });\n */\nfunction geomReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n geomEach(\n geojson,\n function (\n currentGeometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentGeometry;\n else\n previousValue = callback(\n previousValue,\n currentGeometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n );\n }\n );\n return previousValue;\n}\n\n/**\n * Callback for flattenEach\n *\n * @callback flattenEachCallback\n * @param {Feature} currentFeature The current flattened feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Iterate over flattened features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name flattenEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex, multiFeatureIndex)\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenEach(features, function (currentFeature, featureIndex, multiFeatureIndex) {\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * });\n */\nfunction flattenEach(geojson, callback) {\n geomEach(geojson, function (geometry, featureIndex, properties, bbox, id) {\n // Callback for single geometry\n var type = geometry === null ? null : geometry.type;\n switch (type) {\n case null:\n case \"Point\":\n case \"LineString\":\n case \"Polygon\":\n if (\n callback(\n feature(geometry, properties, { bbox: bbox, id: id }),\n featureIndex,\n 0\n ) === false\n )\n return false;\n return;\n }\n\n var geomType;\n\n // Callback for multi-geometry\n switch (type) {\n case \"MultiPoint\":\n geomType = \"Point\";\n break;\n case \"MultiLineString\":\n geomType = \"LineString\";\n break;\n case \"MultiPolygon\":\n geomType = \"Polygon\";\n break;\n }\n\n for (\n var multiFeatureIndex = 0;\n multiFeatureIndex < geometry.coordinates.length;\n multiFeatureIndex++\n ) {\n var coordinate = geometry.coordinates[multiFeatureIndex];\n var geom = {\n type: geomType,\n coordinates: coordinate,\n };\n if (\n callback(feature(geom, properties), featureIndex, multiFeatureIndex) ===\n false\n )\n return false;\n }\n });\n}\n\n/**\n * Callback for flattenReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback flattenReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Reduce flattened features in any GeoJSON object, similar to Array.reduce().\n *\n * @name flattenReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex, multiFeatureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenReduce(features, function (previousValue, currentFeature, featureIndex, multiFeatureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * return currentFeature\n * });\n */\nfunction flattenReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n flattenEach(\n geojson,\n function (currentFeature, featureIndex, multiFeatureIndex) {\n if (\n featureIndex === 0 &&\n multiFeatureIndex === 0 &&\n initialValue === undefined\n )\n previousValue = currentFeature;\n else\n previousValue = callback(\n previousValue,\n currentFeature,\n featureIndex,\n multiFeatureIndex\n );\n }\n );\n return previousValue;\n}\n\n/**\n * Callback for segmentEach\n *\n * @callback segmentEachCallback\n * @param {Feature<LineString>} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n * @returns {void}\n */\n\n/**\n * Iterate over 2-vertex line segment in any GeoJSON object, similar to Array.forEach()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex)\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentEach(polygon, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //=currentSegment\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * //=segmentIndex\n * });\n *\n * // Calculate the total number of segments\n * var total = 0;\n * turf.segmentEach(polygon, function () {\n * total++;\n * });\n */\nfunction segmentEach(geojson, callback) {\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n var segmentIndex = 0;\n\n // Exclude null Geometries\n if (!feature.geometry) return;\n // (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n var type = feature.geometry.type;\n if (type === \"Point\" || type === \"MultiPoint\") return;\n\n // Generate 2-vertex line segments\n var previousCoords;\n var previousFeatureIndex = 0;\n var previousMultiIndex = 0;\n var prevGeomIndex = 0;\n if (\n coordEach(\n feature,\n function (\n currentCoord,\n coordIndex,\n featureIndexCoord,\n multiPartIndexCoord,\n geometryIndex\n ) {\n // Simulating a meta.coordReduce() since `reduce` operations cannot be stopped by returning `false`\n if (\n previousCoords === undefined ||\n featureIndex > previousFeatureIndex ||\n multiPartIndexCoord > previousMultiIndex ||\n geometryIndex > prevGeomIndex\n ) {\n previousCoords = currentCoord;\n previousFeatureIndex = featureIndex;\n previousMultiIndex = multiPartIndexCoord;\n prevGeomIndex = geometryIndex;\n segmentIndex = 0;\n return;\n }\n var currentSegment = lineString(\n [previousCoords, currentCoord],\n feature.properties\n );\n if (\n callback(\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n ) === false\n )\n return false;\n segmentIndex++;\n previousCoords = currentCoord;\n }\n ) === false\n )\n return false;\n });\n}\n\n/**\n * Callback for segmentReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback segmentReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature<LineString>} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n */\n\n/**\n * Reduce 2-vertex line segment in any GeoJSON object, similar to Array.reduce()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (previousValue, currentSegment, currentIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentReduce(polygon, function (previousSegment, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //= previousSegment\n * //= currentSegment\n * //= featureIndex\n * //= multiFeatureIndex\n * //= geometryIndex\n * //= segmentIndex\n * return currentSegment\n * });\n *\n * // Calculate the total number of segments\n * var initialValue = 0\n * var total = turf.segmentReduce(polygon, function (previousValue) {\n * previousValue++;\n * return previousValue;\n * }, initialValue);\n */\nfunction segmentReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n var started = false;\n segmentEach(\n geojson,\n function (\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n ) {\n if (started === false && initialValue === undefined)\n previousValue = currentSegment;\n else\n previousValue = callback(\n previousValue,\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n );\n started = true;\n }\n );\n return previousValue;\n}\n\n/**\n * Callback for lineEach\n *\n * @callback lineEachCallback\n * @param {Feature<LineString>} currentLine The current LineString|LinearRing being processed\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Iterate over line or ring coordinates in LineString, Polygon, MultiLineString, MultiPolygon Features or Geometries,\n * similar to Array.forEach.\n *\n * @name lineEach\n * @param {Geometry|Feature<LineString|Polygon|MultiLineString|MultiPolygon>} geojson object\n * @param {Function} callback a method that takes (currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @example\n * var multiLine = turf.multiLineString([\n * [[26, 37], [35, 45]],\n * [[36, 53], [38, 50], [41, 55]]\n * ]);\n *\n * turf.lineEach(multiLine, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction lineEach(geojson, callback) {\n // validation\n if (!geojson) throw new Error(\"geojson is required\");\n\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n if (feature.geometry === null) return;\n var type = feature.geometry.type;\n var coords = feature.geometry.coordinates;\n switch (type) {\n case \"LineString\":\n if (callback(feature, featureIndex, multiFeatureIndex, 0, 0) === false)\n return false;\n break;\n case \"Polygon\":\n for (\n var geometryIndex = 0;\n geometryIndex < coords.length;\n geometryIndex++\n ) {\n if (\n callback(\n lineString(coords[geometryIndex], feature.properties),\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false\n )\n return false;\n }\n break;\n }\n });\n}\n\n/**\n * Callback for lineReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback lineReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature<LineString>} currentLine The current LineString|LinearRing being processed.\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name lineReduce\n * @param {Geometry|Feature<LineString|Polygon|MultiLineString|MultiPolygon>} geojson object\n * @param {Function} callback a method that takes (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var multiPoly = turf.multiPolygon([\n * turf.polygon([[[12,48],[2,41],[24,38],[12,48]], [[9,44],[13,41],[13,45],[9,44]]]),\n * turf.polygon([[[5, 5], [0, 0], [2, 2], [4, 4], [5, 5]]])\n * ]);\n *\n * turf.lineReduce(multiPoly, function (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentLine\n * });\n */\nfunction lineReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n lineEach(\n geojson,\n function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n if (featureIndex === 0 && initialValue === undefined)\n previousValue = currentLine;\n else\n previousValue = callback(\n previousValue,\n currentLine,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n );\n }\n );\n return previousValue;\n}\n\n/**\n * Finds a particular 2-vertex LineString Segment from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n * Point & MultiPoint will always return null.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.segmentIndex=0] Segment Index\n * @param {Object} [options.properties={}] Translate Properties to output LineString\n * @param {BBox} [options.bbox={}] Translate BBox to output LineString\n * @param {number|string} [options.id={}] Translate Id to output LineString\n * @returns {Feature<LineString>} 2-vertex GeoJSON Feature LineString\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findSegment(multiLine);\n * // => Feature<LineString<[[10, 10], [50, 30]]>>\n *\n * // First Segment of 2nd Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: 1});\n * // => Feature<LineString<[[-10, -10], [-50, -30]]>>\n *\n * // Last Segment of Last Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: -1, segmentIndex: -1});\n * // => Feature<LineString<[[-50, -30], [-30, -40]]>>\n */\nfunction findSegment(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var segmentIndex = options.segmentIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case \"FeatureCollection\":\n if (featureIndex < 0)\n featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case \"Feature\":\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n geometry = geojson;\n break;\n default:\n throw new Error(\"geojson is invalid\");\n }\n\n // Find SegmentIndex\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n if (segmentIndex < 0) segmentIndex = coords.length + segmentIndex - 1;\n return lineString(\n [coords[segmentIndex], coords[segmentIndex + 1]],\n properties,\n options\n );\n case \"Polygon\":\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[geometryIndex].length + segmentIndex - 1;\n return lineString(\n [\n coords[geometryIndex][segmentIndex],\n coords[geometryIndex][segmentIndex + 1],\n ],\n properties,\n options\n );\n case \"MultiLineString\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[multiFeatureIndex].length + segmentIndex - 1;\n return lineString(\n [\n coords[multiFeatureIndex][segmentIndex],\n coords[multiFeatureIndex][segmentIndex + 1],\n ],\n properties,\n options\n );\n case \"MultiPolygon\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0)\n geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (segmentIndex < 0)\n segmentIndex =\n coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1;\n return lineString(\n [\n coords[multiFeatureIndex][geometryIndex][segmentIndex],\n coords[multiFeatureIndex][geometryIndex][segmentIndex + 1],\n ],\n properties,\n options\n );\n }\n throw new Error(\"geojson is invalid\");\n}\n\n/**\n * Finds a particular Point from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.coordIndex=0] Coord Index\n * @param {Object} [options.properties={}] Translate Properties to output Point\n * @param {BBox} [options.bbox={}] Translate BBox to output Point\n * @param {number|string} [options.id={}] Translate Id to output Point\n * @returns {Feature<Point>} 2-vertex GeoJSON Feature Point\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findPoint(multiLine);\n * // => Feature<Point<[10, 10]>>\n *\n * // First Segment of the 2nd Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: 1});\n * // => Feature<Point<[-10, -10]>>\n *\n * // Last Segment of last Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: -1, coordIndex: -1});\n * // => Feature<Point<[-30, -40]>>\n */\nfunction findPoint(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var coordIndex = options.coordIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n\n switch (geojson.type) {\n case \"FeatureCollection\":\n if (featureIndex < 0)\n featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case \"Feature\":\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n geometry = geojson;\n break;\n default:\n throw new Error(\"geojson is invalid\");\n }\n\n // Find Coord Index\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case \"Point\":\n return point(coords, properties, options);\n case \"MultiPoint\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n return point(coords[multiFeatureIndex], properties, options);\n case \"LineString\":\n if (coordIndex < 0) coordIndex = coords.length + coordIndex;\n return point(coords[coordIndex], properties, options);\n case \"Polygon\":\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (coordIndex < 0)\n coordIndex = coords[geometryIndex].length + coordIndex;\n return point(coords[geometryIndex][coordIndex], properties, options);\n case \"MultiLineString\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (coordIndex < 0)\n coordIndex = coords[multiFeatureIndex].length + coordIndex;\n return point(coords[multiFeatureIndex][coordIndex], properties, options);\n case \"MultiPolygon\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0)\n geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (coordIndex < 0)\n coordIndex =\n coords[multiFeatureIndex][geometryIndex].length - coordIndex;\n return point(\n coords[multiFeatureIndex][geometryIndex][coordIndex],\n properties,\n options\n );\n }\n throw new Error(\"geojson is invalid\");\n}\n\nexport { coordAll, coordEach, coordReduce, featureEach, featureReduce, findPoint, findSegment, flattenEach, flattenReduce, geomEach, geomReduce, lineEach, lineReduce, propEach, propReduce, segmentEach, segmentReduce };\n"],"names":["coordEach","geojson","callback","excludeWrapCoord","j","k","l","geometry","stopG","coords","geometryMaybeCollection","wrapShrink","coordIndex","isGeometryCollection","type","isFeatureCollection","isFeature","stop","featureIndex","geomIndex","multiFeatureIndex","geometryIndex","geomType","featureEach","i","geomEach","g","featureProperties","featureBBox","featureId"],"mappings":"gFAmCA,SAASA,EAAUC,EAASC,EAAUC,EAAkB,CAEtD,GAAIF,IAAY,KA4BhB,QA3BIG,EACFC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAAa,EACbC,EAAa,EACbC,EACAC,EAAOb,EAAQ,KACfc,EAAsBD,IAAS,oBAC/BE,EAAYF,IAAS,UACrBG,EAAOF,EAAsBd,EAAQ,SAAS,OAAS,EAchDiB,EAAe,EAAGA,EAAeD,EAAMC,IAAgB,CACpCR,EAAAK,EACtBd,EAAQ,SAASiB,CAAY,EAAE,SAC/BF,EACAf,EAAQ,SACRA,EACmBY,EAAAH,EACnBA,EAAwB,OAAS,qBACjC,GACIF,EAAAK,EACJH,EAAwB,WAAW,OACnC,EAEJ,QAASS,EAAY,EAAGA,EAAYX,EAAOW,IAAa,CACtD,IAAIC,EAAoB,EACpBC,EAAgB,EAMpB,GALAd,EAAWM,EACPH,EAAwB,WAAWS,CAAS,EAC5CT,EAGAH,IAAa,KACjB,CAAAE,EAASF,EAAS,YAClB,IAAIe,EAAWf,EAAS,KAQxB,OANAI,EACER,IACCmB,IAAa,WAAaA,IAAa,gBACpC,EACA,EAEEA,EAAU,CAChB,KAAK,KACH,MACF,IAAK,QAED,GAAApB,EACEO,EACAG,EACAM,EACAE,EACAC,CAAA,IACI,GAEC,MAAA,GACTT,IACAQ,IACA,MACF,IAAK,aACL,IAAK,aACH,IAAKhB,EAAI,EAAGA,EAAIK,EAAO,OAAQL,IAAK,CAEhC,GAAAF,EACEO,EAAOL,CAAC,EACRQ,EACAM,EACAE,EACAC,CAAA,IACI,GAEC,MAAA,GACTT,IACIU,IAAa,cAAcF,GACjC,CACIE,IAAa,cAAcF,IAC/B,MACF,IAAK,UACL,IAAK,kBACH,IAAKhB,EAAI,EAAGA,EAAIK,EAAO,OAAQL,IAAK,CAC7B,IAAAC,EAAI,EAAGA,EAAII,EAAOL,CAAC,EAAE,OAASO,EAAYN,IAAK,CAEhD,GAAAH,EACEO,EAAOL,CAAC,EAAEC,CAAC,EACXO,EACAM,EACAE,EACAC,CAAA,IACI,GAEC,MAAA,GACTT,GACF,CACIU,IAAa,mBAAmBF,IAChCE,IAAa,WAAWD,GAC9B,CACIC,IAAa,WAAWF,IAC5B,MACF,IAAK,eACH,IAAKhB,EAAI,EAAGA,EAAIK,EAAO,OAAQL,IAAK,CAElC,IADgBiB,EAAA,EACXhB,EAAI,EAAGA,EAAII,EAAOL,CAAC,EAAE,OAAQC,IAAK,CAChC,IAAAC,EAAI,EAAGA,EAAIG,EAAOL,CAAC,EAAEC,CAAC,EAAE,OAASM,EAAYL,IAAK,CAEnD,GAAAJ,EACEO,EAAOL,CAAC,EAAEC,CAAC,EAAEC,CAAC,EACdM,EACAM,EACAE,EACAC,CAAA,IACI,GAEC,MAAA,GACTT,GACF,CACAS,GACF,CACAD,GACF,CACA,MACF,IAAK,qBACH,IAAKhB,EAAI,EAAGA,EAAIG,EAAS,WAAW,OAAQH,IAC1C,GACEJ,EAAUO,EAAS,WAAWH,CAAC,EAAGF,EAAUC,CAAgB,IAC5D,GAEO,MAAA,GACX,MACF,QACQ,MAAA,IAAI,MAAM,uBAAuB,CAC3C,EACF,CACF,CACF,CA0MA,SAASoB,EAAYtB,EAASC,EAAU,CAClC,GAAAD,EAAQ,OAAS,UACnBC,EAASD,EAAS,CAAC,UACVA,EAAQ,OAAS,oBAC1B,QAASuB,EAAI,EAAGA,EAAIvB,EAAQ,SAAS,QAC/BC,EAASD,EAAQ,SAASuB,CAAC,EAAGA,CAAC,IAAM,GADEA,IAC3C,CAGN,CA6GA,SAASC,EAASxB,EAASC,EAAU,CAC/B,IAAAsB,EACFpB,EACAsB,EACAnB,EACAC,EACAE,EACAG,EACAc,EACAC,EACAC,EACAX,EAAe,EACfH,EAAsBd,EAAQ,OAAS,oBACvCe,EAAYf,EAAQ,OAAS,UAC7BgB,EAAOF,EAAsBd,EAAQ,SAAS,OAAS,EAczD,IAAKuB,EAAI,EAAGA,EAAIP,EAAMO,IAAK,CA4BzB,IA3B0Bd,EAAAK,EACtBd,EAAQ,SAASuB,CAAC,EAAE,SACpBR,EACAf,EAAQ,SACRA,EACgB0B,EAAAZ,EAChBd,EAAQ,SAASuB,CAAC,EAAE,WACpBR,EACAf,EAAQ,WACR,GACU2B,EAAAb,EACVd,EAAQ,SAASuB,CAAC,EAAE,KACpBR,EACAf,EAAQ,KACR,OACQ4B,EAAAd,EACRd,EAAQ,SAASuB,CAAC,EAAE,GACpBR,EACAf,EAAQ,GACR,OACmBY,EAAAH,EACnBA,EAAwB,OAAS,qBACjC,GACIF,EAAAK,EACJH,EAAwB,WAAW,OACnC,EAECgB,EAAI,EAAGA,EAAIlB,EAAOkB,IAAK,CAM1B,GALAnB,EAAWM,EACPH,EAAwB,WAAWgB,CAAC,EACpChB,EAGAH,IAAa,KAAM,CAEnB,GAAAL,EACE,KACAgB,EACAS,EACAC,EACAC,CAAA,IACI,GAEC,MAAA,GACT,QACF,CACA,OAAQtB,EAAS,KAAM,CACrB,IAAK,QACL,IAAK,aACL,IAAK,aACL,IAAK,UACL,IAAK,kBACL,IAAK,eAAgB,CAEjB,GAAAL,EACEK,EACAW,EACAS,EACAC,EACAC,CAAA,IACI,GAEC,MAAA,GACT,KACF,CACA,IAAK,qBAAsB,CACzB,IAAKzB,EAAI,EAAGA,EAAIG,EAAS,WAAW,OAAQH,IAExC,GAAAF,EACEK,EAAS,WAAWH,CAAC,EACrBc,EACAS,EACAC,EACAC,CAAA,IACI,GAEC,MAAA,GAEX,KACF,CACA,QACQ,MAAA,IAAI,MAAM,uBAAuB,CAC3C,CACF,CAEAX,GACF,CACF","x_google_ignoreList":[0]}