jupytergis-core 0.5.0__py3-none-any.whl → 0.6.1__py3-none-any.whl
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.
- jupytergis_core/_version.py +1 -1
- jupytergis_core/handler.py +301 -25
- jupytergis_core/schema/__init__.py +7 -7
- jupytergis_core/schema/interfaces/__init__.py +2 -2
- jupytergis_core/schema/interfaces/export/__init__.py +2 -2
- jupytergis_core/schema/interfaces/export/{exportGeojson.py → exportGeoJson.py} +2 -2
- jupytergis_core/schema/interfaces/export/{exportGeotiff.py → exportGeoTiff.py} +2 -2
- jupytergis_core/schema/interfaces/geojson.py +1 -1
- jupytergis_core/schema/interfaces/processing/__init__.py +2 -2
- jupytergis_core/schema/interfaces/processing/boundingBoxes.py +14 -0
- jupytergis_core/schema/interfaces/processing/buffer.py +1 -1
- jupytergis_core/schema/interfaces/processing/centroids.py +14 -0
- jupytergis_core/schema/interfaces/processing/concaveHull.py +21 -0
- jupytergis_core/schema/interfaces/processing/convexHull.py +14 -0
- jupytergis_core/schema/interfaces/processing/dissolve.py +1 -1
- jupytergis_core/schema/interfaces/project/__init__.py +2 -2
- jupytergis_core/schema/interfaces/project/jgis.py +2 -1
- jupytergis_core/schema/interfaces/project/layers/__init__.py +2 -2
- jupytergis_core/schema/interfaces/project/layers/heatmapLayer.py +1 -1
- jupytergis_core/schema/interfaces/project/layers/hillshadeLayer.py +1 -1
- jupytergis_core/schema/interfaces/project/layers/imageLayer.py +1 -1
- jupytergis_core/schema/interfaces/project/layers/{rasterlayer.py → rasterLayer.py} +2 -2
- jupytergis_core/schema/interfaces/project/layers/stacLayer.py +19 -0
- jupytergis_core/schema/interfaces/project/layers/{vectorlayer.py → vectorLayer.py} +2 -9
- jupytergis_core/schema/interfaces/project/layers/vectorTileLayer.py +1 -9
- jupytergis_core/schema/interfaces/project/layers/webGlLayer.py +2 -1
- jupytergis_core/schema/interfaces/project/sources/__init__.py +2 -2
- jupytergis_core/schema/interfaces/{geojsonsource.py → project/sources/geoJsonSource.py} +3 -3
- jupytergis_core/schema/interfaces/project/sources/geoTiffSource.py +1 -1
- jupytergis_core/schema/interfaces/project/sources/imageSource.py +1 -1
- jupytergis_core/schema/interfaces/project/sources/rasterDemSource.py +1 -1
- jupytergis_core/schema/interfaces/project/sources/{rastersource.py → rasterSource.py} +2 -2
- jupytergis_core/schema/interfaces/project/sources/shapefileSource.py +1 -1
- jupytergis_core/schema/interfaces/project/sources/{vectortilesource.py → vectorTileSource.py} +2 -2
- jupytergis_core/schema/interfaces/project/sources/videoSource.py +1 -1
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/package.json +4 -4
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/schemas/@jupytergis/jupytergis-core/package.json.orig +3 -3
- jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/27.aea9e291ba3dd16790fb.js → jupytergis_core-0.6.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/27.6ee794baeb00791424c2.js +2 -2
- jupytergis_core-0.6.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/397.60274eedc66443d2b6fc.js +1 -0
- jupytergis_core-0.6.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/432.b81aa01fd224321ff376.js +1 -0
- jupytergis_core-0.6.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/552.0936beb209d3ea5a1229.js +1 -0
- jupytergis_core-0.6.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/671.a72bd824c3cfdbc7f570.js +1 -0
- jupytergis_core-0.6.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/803.5f3759c98814aa602705.js +8 -0
- jupytergis_core-0.6.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/970.50a70b651103fce194d2.js +8 -0
- jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/729.2540a8113c71e8eb28ef.js.LICENSE.txt → jupytergis_core-0.6.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/970.50a70b651103fce194d2.js.LICENSE.txt +50 -0
- jupytergis_core-0.6.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/991.4f548de9fbf8e51a7f01.js +1 -0
- jupytergis_core-0.6.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/remoteEntry.dbd710a76941e40c3898.js +1 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/third-party-licenses.json +310 -10
- {jupytergis_core-0.5.0.dist-info → jupytergis_core-0.6.1.dist-info}/METADATA +1 -1
- jupytergis_core-0.6.1.dist-info/RECORD +117 -0
- jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/377.2ba30d7a93a2a2819b1b.js +0 -1
- jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/432.df2bee6966bdd5a48317.js +0 -1
- jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/552.3f267df0d8b2c9ef2c40.js +0 -1
- jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/729.2540a8113c71e8eb28ef.js +0 -8
- jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/803.8b9c4e2f8bed9130b6d0.js +0 -8
- jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/893.0bf9ee057c7e4666c364.js +0 -1
- jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/991.13deb14ad0c10be40859.js +0 -1
- jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/remoteEntry.6e9db18c72727800e9ea.js +0 -1
- jupytergis_core-0.5.0.dist-info/RECORD +0 -112
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/etc/jupyter/jupyter_server_config.d/jupytergis_core.json +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/schemas/@jupytergis/jupytergis-core/jupytergis-settings.json +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/026680ab0cd1523edc87.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/02ff7d503bbd90b21fc4.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/062a9554f6b4caac9713.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/064f37cecb8130ad66e8.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/08da2741746ddab81d04.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/0c6a0352b82839119f95.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/13c485bb93f5567f02fd.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/1474207a6b3ca1001e78.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/14b98240613d5256c621.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/154.0d16fbe1d1182d138b2c.js +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/1b97ea0f2b3af717cffa.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/1d440270da19a2f22fee.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/1ed164e010f3c0306d15.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2218dfba22fc2b08e948.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/234.2f0fc49f516ad354aa18.js +0 -0
- /jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/27.aea9e291ba3dd16790fb.js.LICENSE.txt → /jupytergis_core-0.6.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/27.6ee794baeb00791424c2.js.LICENSE.txt +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2ab791b60c4058e664f8.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2b24b6a745c11511f055.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2d676bc0a01c2cd2fccb.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2f02309ea499725612ea.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/32c7a73662cceb5bb1d7.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/350eec4ce9ae4bc10bca.wasm +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/363ca7c5f78deb6fd033.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/376.58a6410b7089dea5b0d5.js +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/3ae0bf244442de7efc35.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/3d48be10ffea86eb15de.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/407.da5d00862f4879fe3c9c.js +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/415edc3fa381260cf31e.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/42cbddf5e883673bc4e2.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/472.b2ea9ebc35d5ad4e1fcc.js +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/527ef171d5df15dc7da5.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/542.477a73b8682de0e8d45e.js +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/555.be80e60305924af2e139.js +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/5bb02252f243f8c7494f.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/5d181edc3c046e1454a1.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/5f32ad48aefe00e51312.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/618.86523276f857e0a3362e.js +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/6e4f6b4d0dfca3bd4450.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/71d436fb44627b6bfbd7.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/7b225dc2d37cd3582156.png +0 -0
- /jupytergis_core-0.5.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/803.8b9c4e2f8bed9130b6d0.js.LICENSE.txt → /jupytergis_core-0.6.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/803.5f3759c98814aa602705.js.LICENSE.txt +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/843ab141e62516b9df5c.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/8814e17f6b110e8f3e42.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/88b2ae0d29edb684eae5.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/971a42d174dd17b9451a.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/a3c609f5bff95a7a53be.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/a86d626c9ed2e222d190.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/a9e286b0c0264a9fc737.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/ab309078b494f850430a.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/b15e3989b7b90b5a8d9d.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/b36717fbb06f21d53b01.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/ba4b6e82fe5a816c40a5.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/bb2b310570da7a3587e9.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/be92bcf7bb99753b4b3d.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/c2ffa011d7f52a0ddf45.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/d83457b1b925c1718f6d.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/e473e1e9f20af114bbb4.data +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/f2617180c6907263a7ff.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/fe99a6dbf5a71d308989.png +0 -0
- {jupytergis_core-0.5.0.data → jupytergis_core-0.6.1.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/style.js +0 -0
- {jupytergis_core-0.5.0.dist-info → jupytergis_core-0.6.1.dist-info}/WHEEL +0 -0
- {jupytergis_core-0.5.0.dist-info → jupytergis_core-0.6.1.dist-info}/entry_points.txt +0 -0
- {jupytergis_core-0.5.0.dist-info → jupytergis_core-0.6.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_jupytergis_jupytergis_core=self.webpackChunk_jupytergis_jupytergis_core||[]).push([[671],{1718:(e,t,a)=>{"use strict";e.exports=a.p+"02ff7d503bbd90b21fc4.png"},2143:(e,t,a)=>{"use strict";e.exports=a.p+"1ed164e010f3c0306d15.png"},7024:(e,t,a)=>{"use strict";e.exports=a.p+"1474207a6b3ca1001e78.png"},16711:(e,t,a)=>{"use strict";a.r(t),a.d(t,{AnnotationModel:()=>n,BaseForm:()=>et,CommandIDs:()=>ce,ControlPanelHeader:()=>_r,ControlPanelModel:()=>dn,CreationFormWrapper:()=>_t,GeoTiffClassifications:()=>i,GlobalStateDbManager:()=>Ht,JupyterGISDocumentWidget:()=>br,JupyterGISMainViewPanel:()=>yr,JupyterGISOutputWidget:()=>Sr,JupyterGISPanel:()=>wr,LayerCreationFormDialog:()=>Mt,LeftPanelWidget:()=>cn,MIME_TYPES:()=>Ue,MainView:()=>gr,MainViewModel:()=>vr,ObjectProperties:()=>pn,RightPanelWidget:()=>bn,Separator:()=>Cn,TOOLBAR_GROUPNAME_CLASS:()=>En,TOOLBAR_SEPARATOR_CLASS:()=>wn,ToolbarWidget:()=>jn,VectorClassifications:()=>s,addCommands:()=>Er,base64ToBlob:()=>We,bookOpenIcon:()=>te,clockIcon:()=>oe,createDefaultLayerRegistry:()=>ke,createHeader:()=>Mr,debounce:()=>je,deepCopy:()=>Le,downloadFile:()=>Qe,fetchWithProxies:()=>Fe,geoJSONIcon:()=>K,geolocationIcon:()=>se,getCSSVariableColor:()=>Oe,getColorCodeFeatureAttributes:()=>Ze,getElementFromProperty:()=>Me,getFromIndexedDB:()=>Re,getGeoJSONDataFromLayerSource:()=>Ye,getLayerTileInfo:()=>Ae,getMimeType:()=>$e,getNumericFeatureAttributes:()=>qe,icons:()=>me,infoIcon:()=>re,isJupyterLite:()=>De,isLightTheme:()=>Ne,loadFile:()=>ze,loadGeoTiff:()=>Be,logoIcon:()=>H,logoMiniAlternativeIcon:()=>q,logoMiniIcon:()=>J,logoMiniIconQGZ:()=>ee,moundIcon:()=>X,nearest:()=>xe,nonVisibilityIcon:()=>Y,objectEntries:()=>Ke,openDatabase:()=>Pe,parseColor:()=>Te,rasterIcon:()=>Z,rasterSubMenu:()=>jr,requestAPI:()=>Ie,saveToIndexedDB:()=>Ge,stringToArrayBuffer:()=>He,targetWithCenterIcon:()=>le,targetWithoutCenterIcon:()=>ie,terminalToolbarIcon:()=>ne,throttle:()=>_e,vectorSquareIcon:()=>ae,vectorSubMenu:()=>Cr,visibilityIcon:()=>Q});var r={};a.r(r),a.d(r,{addAnnotation:()=>W,createNew:()=>g,downloadGeoJSON:()=>$,executeConsole:()=>z,getGeolocation:()=>S,identify:()=>f,invokeCompleter:()=>F,moveLayerToNewGroup:()=>P,moveLayersToGroup:()=>T,newGeoJSONEntry:()=>_,newGeoTiffEntry:()=>I,newHillshadeEntry:()=>M,newImageEntry:()=>x,newRasterEntry:()=>E,newShapefileEntry:()=>j,newVectorTileEntry:()=>C,newVideoEntry:()=>O,openLayerBrowser:()=>w,redo:()=>y,removeConsole:()=>B,removeGroup:()=>A,removeLayer:()=>L,removeSource:()=>R,renameGroup:()=>k,renameLayer:()=>N,renameSource:()=>G,selectCompleter:()=>V,symbology:()=>v,temporalController:()=>b,toggleConsole:()=>D,undo:()=>h,zoomToLayer:()=>U});var o=a(74602);class n{constructor(e){this._modelChanged=new o.Signal(this),this._updateSignal=new o.Signal(this),this.model=e.model}get updateSignal(){return this._updateSignal}get user(){return this._user}set model(e){var t;this._model=e;const a=null===(t=this._model)||void 0===t?void 0:t.sharedModel.awareness.getLocalState();this._user=null==a?void 0:a.user,this._modelChanged.emit(void 0)}get model(){return this._model}get modelChanged(){return this._modelChanged}update(){this._updateSignal.emit(null)}getAnnotation(e){var t;const a=null===(t=this._model)||void 0===t?void 0:t.sharedModel.getMetadata(e);if(a)return a}getAnnotationIds(){var e;const t=[];for(const a in null===(e=this._model)||void 0===e?void 0:e.sharedModel.metadata)a.startsWith("annotation")&&t.push(a);return t}addAnnotation(e,t){var a;null===(a=this._model)||void 0===a||a.sharedModel.setMetadata(`annotation_${e}`,t)}updateAnnotation(e,t){var a;const r=this.getAnnotation(e);r&&(null===(a=this._model)||void 0===a||a.sharedModel.setMetadata(e,Object.assign(Object.assign({},r),t)),this._updateSignal.emit(null))}removeAnnotation(e){var t;null===(t=this._model)||void 0===t||t.removeMetadata(e)}addContent(e,t){var a;const r={value:t,user:this._user},o=this.getAnnotation(e);if(o){const t=Object.assign(Object.assign({},o),{contents:[...o.contents,r]});null===(a=this._model)||void 0===a||a.sharedModel.setMetadata(e,t)}}}var s,i,l=a(41256),c=a(31625);!function(e){e.calculateQuantileBreaks=(e,t)=>{const a=[...e].sort((e,t)=>e-t),r=[];if(!a)return[];const o=a.length;let n=o>0?a[0]:0;for(let e=1;e<t;e++){if(o>1){const r=e/t*(o-1),s=Math.floor(r),i=r-s;n=(1-i)*a[s]+i*a[s+1]}r.push(n)}return r.push(a[o-1]),r},e.calculateEqualIntervalBreaks=(e,t)=>{const a=Math.min(...e),r=Math.max(...e),o=[],n=(r-a)/t;let s=a;for(let e=0;e<t;e++)s+=n,o.push(s);return o[t-1]=r,o},e.calculateJenksBreaks=(e,t)=>{const a=Math.max(...e);if(0===e.length)return[];if(t<=1)return[a];if(t>=e.length)return e;const r=[...e].sort((e,t)=>e-t),o=r.length,n=Array.from({length:o+1},()=>Array(t+1).fill(0)),s=Array.from({length:o+1},()=>Array(t+1).fill(Number.MAX_VALUE));for(let e=1;e<=t;e++){n[0][e]=1,n[1][e]=1,s[0][e]=0;for(let t=2;t<=o;t++)s[t][e]=Number.MAX_VALUE}for(let e=2;e<=o;e++){let a=0,o=0,i=0,l=0;for(let c=1;c<=e;c++){const d=e-c+1,m=r[d-1];o+=m*m,a+=m,i++,l=o-a*a/i;const p=d-1;if(0!==p)for(let a=2;a<=t;a++)s[e][a]>=l+s[p][a-1]&&(n[e][a]=p,s[e][a]=l+s[p][a-1])}n[e][1]=1,s[e][1]=l}const i=Array(t);i[t-1]=r[o-1];for(let e=t,a=o;e>=2;e--){const t=n[a][e]-1;i[e-2]=r[t],a=n[a][e]-1}return i},e.calculatePrettyBreaks=(e,t)=>{const a=Math.min(...e),r=Math.max(...e),o=[];if(t<1)return o.push(r),o;const n=Math.floor(t/3),s=t;let i,l=!1;const c=r-a;let d;i=Math.max(Math.abs(a),Math.abs(r)),d=1.4,l=c<1.4*i*Math.max(1,s)*1e-7*3,l?(i>10&&(i=9+i/10,i*=.75),n>1&&(i/=n)):(i=c,s>1&&(i/=s)),i<20*1e-7&&(i=20*1e-7);const m=Math.pow(10,Math.floor(Math.log10(i)));let p=m;2*m-i<1.5*(i-p)&&(p=2*m,5*m-i<2.75*(i-p)&&(p=5*m,10*m-i<1.5*(i-p)&&(p=10*m)));let u=Math.floor(a/p+1e-7),g=Math.ceil(r/p-1e-7);for(;u*p>a+1e-7*p;)u-=1;for(;g*p<r-1e-7*p;)g+=1;let y=Math.floor(.5+g-u);y<n&&(y=n-y,u>=0?(g+=y/2,u=u-y/2+y%2):(u-=y/2,g=g+y/2+y%2));const h=u*p,v=g-u;for(let e=1;e<v+1;e++)o.push(h+e*p);if(0===o.length)return o;if(o[0]<a&&(o[0]=a),o[o.length-1]>r&&(o[o.length-1]=r),a<0&&r>0){const e=o.map(e=>e-0);let t=0;for(let a=1;a<o.length;a++)Math.abs(e[a])<Math.abs(e[t])&&(t=a);o[t]=0}return o},e.calculateLogarithmicBreaks=(t,a)=>{const r=Math.min(...t),o=Math.max(...t);let n=Number.MAX_VALUE,s=[];n=r;const i=Math.log10(n);let l=Math.floor(i);const c=Math.ceil(Math.log10(o));let d=e.calculatePrettyBreaks([l,c],a);for(;d.length>0&&d[0]<i;)l+=1,d=e.calculatePrettyBreaks([l,c],a);s=d;for(let e=0;e<s.length;e++)s[e]=Math.pow(10,s[e]);return s}}(s||(s={})),function(e){e.classifyQuantileBreaks=async(e,t,a,r)=>{const o=[],n="discrete"===r,s=new l.A,i=await(0,c.uz)(a),d=await i.getImage(),m=(await d.readRasters({pool:s}))[t-1].filter(e=>0!==e).sort((e,t)=>e-t);if(s.destroy(),!m)return[];let p,u,g;n?(u=m.length/e,p=0,g=0):(u=m.length/(e-1),o.push(1),p=1,g=1);for(let e=g;e<m.length;e++)p+1<u?p++:(o.push(m[e]),p=0);return o.length!==e&&o.push(65535),o},e.classifyContinuousBreaks=(e,t,a,r)=>{const o=t,n=a;if(o>n)return[];const s=[],i=e;if("discrete"===r){const e=(n-o)*(i-1)/i;for(let t=1;t<i;t++){const a=t/i;s.push(o+a*e)}s.push(n)}else for(let e=0;e<=i;e++){if(26===e)continue;const t=e/i;s.push(o+t*(n-o))}return s},e.classifyEqualIntervalBreaks=(e,t,a,r)=>{const o=t,n=a;if(o>n)return[];const s=[];if("discrete"===r){const t=(n-o)/e;for(let a=1;a<e;a++)s.push(o+a*t);s.push(n)}else{const t=(n-o)/(e-1);for(let a=0;a<e;a++)s.push(o+a*t)}return s}}(i||(i={}));var d=a(78805),m=a(34097),p=a(43579),u=a(46249);const g="jupytergis:create-new-jGIS-file",y="jupytergis:redo",h="jupytergis:undo",v="jupytergis:symbology",f="jupytergis:identify",b="jupytergis:temporalController",S="jupytergis:getGeolocation",w="jupytergis:openLayerBrowser",E="jupytergis:newRasterEntry",C="jupytergis:newVectorTileEntry",j="jupytergis:newShapefileEntry",_="jupytergis:newGeoJSONEntry",M="jupytergis:newHillshadeEntry",x="jupytergis:newImageEntry",O="jupytergis:newVideoEntry",I="jupytergis:newGeoTiffEntry",N="jupytergis:renameLayer",L="jupytergis:removeLayer",k="jupytergis:renameGroup",A="jupytergis:removeGroup",T="jupytergis:moveLayersToGroup",P="jupytergis:moveLayerToNewGroup",G="jupytergis:renameSource",R="jupytergis:removeSource",D="jupytergis:toggleConsole",F="jupytergis:invokeConsoleCompleter",B="jupytergis:removeConsole",z="jupytergis:executeConsole",V="jupytergis:selectConsoleCompleter",W="jupytergis:addAnnotation",U="jupytergis:zoomToLayer",$="jupytergis:downloadGeoJSON",H=new u.LabIcon({name:"jupytergis::logo",svgstr:'<?xml version="1.0" encoding="UTF-8"?>\n\x3c!-- Created with Inkscape (http://www.inkscape.org/) --\x3e\n<svg width="512" height="512" version="1.1" viewBox="0 0 512 512" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><defs><mask id="mask78" maskUnits="userSpaceOnUse"><g transform="matrix(1.0767 0 0 1.0767 -12.485 -18.906)" style="paint-order:normal"><path d="m251.56 484.04c10.453-0.66464 20.739-6.0855 30.805-16.401 10.77-11.037 20.923-27.584 29.487-48.334 7.5035-18.18 13.781-39.586 18.487-63.278-26.117 2.1491-53.281 3.2876-80.975 3.2876-27.722 0-54.854-1.2016-80.993-3.3668 4.7076 23.724 10.993 45.156 18.505 63.357 8.5646 20.751 18.717 37.297 29.487 48.334 10.77 11.037 21.792 16.471 33.001 16.471 0.73263 0 1.4648-0.0236 2.1958-0.0701z" fill="#fff" stroke-width="0" style="paint-order:normal"/><path d="m468.12 331.81c-35.258 10.647-77.632 18.398-123.73 22.915-4.9228 25.979-11.713 49.562-20.043 69.743-9.0274 21.872-19.821 39.822-32.311 52.622-2.6437 2.7092-5.3844 5.1766-8.2036 7.4077a232.15 232.15 0 0 0 184.28-152.69z" fill="#fff" stroke-width="0" style="paint-order:normal"/><path d="m30.643 331.77a232.15 232.15 0 0 0 184.33 152.79c-2.8513-2.2495-5.6231-4.7396-8.2952-7.4778-12.49-12.8-23.284-30.75-32.311-52.622-8.3284-20.178-15.129-43.744-20.052-69.719-46.067-4.5298-88.399-12.322-123.67-22.973z" fill="#fff" stroke-width="0" style="paint-order:normal"/><path d="m151.6 171.87c-48.188 5.0669-91.71 13.724-126.18 25.017a232.15 232.15 0 0 0-8.2097 58.45 232.15 232.15 0 0 0 7.5602 58.322c34.698 11.468 78.487 20.139 126.84 25.187-4.0167-26.037-6.2183-54.142-6.2183-83.509 0-29.352 2.1996-57.441 6.2122-83.467z" fill="#fff" stroke-width="0" style="paint-order:normal"/><path d="m333.19 170.49c-26.951-2.3825-55.121-3.6718-83.833-3.6718-28.798 0-56.918 1.3698-83.842 3.7755-4.24 26.22-6.6087 54.806-6.6087 84.742 0 29.949 2.3712 58.546 6.6148 84.775 26.967 2.3909 55.095 3.742 83.836 3.742 28.717 0 56.884-1.2907 83.827-3.6718 4.2504-26.247 6.6239-54.871 6.6239-84.845 0-29.972-2.368-58.6-6.6178-84.845z" fill="#fff" stroke-width="0" style="paint-order:normal"/><path d="m347.12 171.85c4.0148 26.032 6.2153 54.13 6.2153 83.491 0 29.357-2.1923 57.459-6.2061 83.488 48.387-5.0494 92.199-13.714 126.88-25.175a232.15 232.15 0 0 0 7.5053-58.313 232.15 232.15 0 0 0-7.798-58.392c-34.664-11.434-78.367-20.065-126.6-25.099z" fill="#fff" stroke-width="0" style="paint-order:normal"/><path d="m214.96 26.13a232.15 232.15 0 0 0-184.19 152.67c35.169-10.625 77.423-18.397 123.55-22.906 4.9221-25.961 11.724-49.51 20.049-69.679 9.0274-21.872 19.821-39.819 32.311-52.619 2.6662-2.7322 5.4322-5.2169 8.2768-7.4626z" fill="#fff" stroke-width="0" style="paint-order:normal"/><path d="m262.17 28.975c-4.2405-1.6079-8.5126-2.4062-12.812-2.4062-11.208 0-22.23 5.4311-33.001 16.468-10.77 11.037-20.923 27.584-29.487 48.334-7.5086 18.192-13.793 39.613-18.499 63.324 26.09-2.1458 53.21-3.3333 80.987-3.3333 27.688 1e-5 54.853 1.1439 80.975 3.2998-4.706-23.695-10.983-45.108-18.487-63.29-8.5646-20.751-18.717-37.297-29.487-48.334-6.6392-6.8038-13.374-11.478-20.189-14.062z" fill="#fff" stroke-width="0" style="paint-order:normal"/><path d="m283.7 26.099c2.8654 2.2576 5.6564 4.742 8.3409 7.4931 12.49 12.8 23.284 30.747 32.311 52.619 8.3323 20.188 15.132 43.772 20.055 69.762 46.268 4.5479 88.804 12.357 124.17 23.083a232.15 232.15 0 0 0-184.88-152.96z" fill="#fff" stroke-width="0" style="paint-order:normal"/></g></mask></defs><g><g transform="matrix(1.0767 0 0 1.0767 -12.485 -18.906)" fill="#2d93ad" style="paint-order:normal"><path d="m251.56 484.04c10.453-0.66464 20.739-6.0855 30.805-16.401 10.77-11.037 20.923-27.584 29.487-48.334 7.5035-18.18 13.781-39.586 18.487-63.278-26.117 2.1491-53.281 3.2876-80.975 3.2876-27.722 0-54.854-1.2016-80.993-3.3668 4.7076 23.724 10.993 45.156 18.505 63.357 8.5646 20.751 18.717 37.297 29.487 48.334 10.77 11.037 21.792 16.471 33.001 16.471 0.73263 0 1.4648-0.0236 2.1958-0.0701z" style="paint-order:normal"/><path d="m468.12 331.81c-35.258 10.647-77.632 18.398-123.73 22.915-4.9228 25.979-11.713 49.562-20.043 69.743-9.0274 21.872-19.821 39.822-32.311 52.622-2.6437 2.7092-5.3844 5.1766-8.2036 7.4077a232.15 232.15 0 0 0 184.28-152.69z" style="paint-order:normal"/><path d="m30.643 331.77a232.15 232.15 0 0 0 184.33 152.79c-2.8513-2.2495-5.6231-4.7396-8.2952-7.4778-12.49-12.8-23.284-30.75-32.311-52.622-8.3284-20.178-15.129-43.744-20.052-69.719-46.067-4.5298-88.399-12.322-123.67-22.973z" style="paint-order:normal"/><path d="m151.6 171.87c-48.188 5.0669-91.71 13.724-126.18 25.017a232.15 232.15 0 0 0-8.2097 58.45 232.15 232.15 0 0 0 7.5602 58.322c34.698 11.468 78.487 20.139 126.84 25.187-4.0167-26.037-6.2183-54.142-6.2183-83.509 0-29.352 2.1996-57.441 6.2122-83.467z" style="paint-order:normal"/><path d="m333.19 170.49c-26.951-2.3825-55.121-3.6718-83.833-3.6718-28.798 0-56.918 1.3698-83.842 3.7755-4.24 26.22-6.6087 54.806-6.6087 84.742 0 29.949 2.3712 58.546 6.6148 84.775 26.967 2.3909 55.095 3.742 83.836 3.742 28.717 0 56.884-1.2907 83.827-3.6718 4.2504-26.247 6.6239-54.871 6.6239-84.845 0-29.972-2.368-58.6-6.6178-84.845z" style="paint-order:normal"/><path d="m347.12 171.85c4.0148 26.032 6.2153 54.13 6.2153 83.491 0 29.357-2.1923 57.459-6.2061 83.488 48.387-5.0494 92.199-13.714 126.88-25.175a232.15 232.15 0 0 0 7.5053-58.313 232.15 232.15 0 0 0-7.798-58.392c-34.664-11.434-78.367-20.065-126.6-25.099z" style="paint-order:normal"/><path d="m214.96 26.13a232.15 232.15 0 0 0-184.19 152.67c35.169-10.625 77.423-18.397 123.55-22.906 4.9221-25.961 11.724-49.51 20.049-69.679 9.0274-21.872 19.821-39.819 32.311-52.619 2.6662-2.7322 5.4322-5.2169 8.2768-7.4626z" style="paint-order:normal"/><path d="m262.17 28.975c-4.2405-1.6079-8.5126-2.4062-12.812-2.4062-11.208 0-22.23 5.4311-33.001 16.468-10.77 11.037-20.923 27.584-29.487 48.334-7.5086 18.192-13.793 39.613-18.499 63.324 26.09-2.1458 53.21-3.3333 80.987-3.3333 27.688 1e-5 54.853 1.1439 80.975 3.2998-4.706-23.695-10.983-45.108-18.487-63.29-8.5646-20.751-18.717-37.297-29.487-48.334-6.6392-6.8038-13.374-11.478-20.189-14.062z" style="paint-order:normal"/><path d="m283.7 26.099c2.8654 2.2576 5.6564 4.742 8.3409 7.4931 12.49 12.8 23.284 30.747 32.311 52.619 8.3323 20.188 15.132 43.772 20.055 69.762 46.268 4.5479 88.804 12.357 124.17 23.083a232.15 232.15 0 0 0-184.88-152.96z" style="paint-order:normal"/></g><g mask="url(#mask78)"><g fill="#87d68d"><path transform="translate(70.625 11.06)" d="m239.34 363.1c-0.76288 1.2394-0.53225 2.8479-1.1892 4.1217-0.66214 1.284-0.8507 2.8156-1.5508 4.0981-0.64478 1.1811-1.5009 2.7822-0.72787 3.8813 0.60727 0.86343 1.4166 1.0492 1.5951 2.5904 0.14306 1.2351-1.1819 2.5942 0.23503 3.5782 1.2607 0.87551 2.3034-0.46482 3.379-0.89029 0.65845-0.26044 2.7642-0.60327 2.2882-0.6074-0.72407-6e-3 1.2978-0.53601 1.7441-0.71116 1.4095-0.55311 1.6483 0.89908 2.3404 1.8246 0.66088 0.88389 1.9598 1.4168 2.2298 2.5272 0.40713 1.6742 1.7537 3.0033 1.9084 4.7372 0.14374 1.6114 1.7601 1.117 3.1003 1.202 1.4771 0.0936 2.3135-1.0009 2.4195-2.5261 0.0997-1.4345-0.2353-2.7754-0.12161-4.2454 0.13626-1.7617-0.80359-3.3518-1.767-4.7492-0.86239-1.2509-1.0614-3.1119-0.0193-4.1888 1.0357-1.0704 0.40366-2.706 1.2681-3.7836 0.81214-1.0124 1.101-2.2938 1.1964-3.6266 0.0926-1.294 0.9708-2.9692-0.0369-3.9689-1.3987-1.3876-3.5354-1.4288-5.368-1.7109-1.5434-0.23762 1.3236 0.0787-0.16067 0.10717-1.3409 0.0257-2.6144-0.58297-3.9634-0.25019-1.2407 0.30605-2.5458 0.0887-3.7657 0.43002-1.4319 0.4006-2.8058 0.8634-4.1094 1.6193-0.30895 0.17915-0.61591 0.3617-0.92461 0.54127z" style="paint-order:normal"/><path transform="matrix(0 1 -1.1064 0 730.82 158.68)" d="m270 363.03c-1.7592 1.4891-1.9061 4.0278-1.333 5.9665 0.38829 1.3136 1.313 2.7406 2.7591 2.9795 1.5082 0.24923 2.8119 0.92946 4.1922 1.4821 1.3248 0.53047 2.678 0.69359 4.138 0.72103 1.4498 0.0272 2.7827 1.9933 0.49533 2.1502-1.6835 0.11547-4.2764-1.913-4.9902-0.38479-0.93222 1.9958-2.2597 1.3004-4.2218 1.3872-1.7216 0.0762-3.6891 2.0229-1.4549 3.0556 1.4074 0.65052 2.3822 3.3674 1.6346 3.849-1.3866 0.89336-2.1289 1.8333-3.8235 2.6894-1.1123 0.56191-3.068 1.1155-2.5261 2.7474 0.54879 1.6526-0.99273 2.9639-2.0533 4.0534-1.26 1.2944-3.1056 2.5856-4.922 2.5756-2.7912-0.0155-5.5868-0.16095-8.3338-0.75522-1.4695-0.31791-3.0216-0.87793-3.9892-2.2663-0.66305-0.95132-0.39747-2.2996-0.64319-3.6966-0.28808-1.6379-0.97307-2.8652-1.5748-4.382-0.49457-1.2467-1.3102-1.3167-1.9545 0.28626-0.55988 1.393-1.1268 3.3748-0.24312 4.6503 0.98367 1.4199-1.0549 4.0763 0.38916 4.8548 0.97955 0.5281 1.7306 2.7942 0.0752 3.3339-1.4888 0.48542-3.09-1e-3 -4.6012 0.32893-1.4114 0.30822-2.8189 1.2741-3.2564 3.1019-0.36768 1.5359-1.0245 3.8426-2.6433 4.2727-1.5992 0.42489-2.6553 1.8981-3.6407 3.1356-0.81434 1.0227-0.99834 1.9346-1.9647 2.7986-0.85992 0.76877-2.5492 2.5964-3.484 1.6064-0.77515-0.82081-3.5478-0.67633-3.4776-0.4853 0.31806 0.86518 0.81479 1.5174-0.57566 2.0536-1.3563 0.52309-4.0551-1.8605-3.8158-0.81498 0.30359 1.3266 1.7229 1.9824 1.879 3.1602 0.24788 1.8708 1.2824 3.314 2.2319 4.8703 0.72452 1.1875 0.98766 2.532 0.84999 3.9297-0.10003 1.0156 0.40617 3.4669-1.4934 2.3361-1.462-0.87029-3.665-0.53893-4.811 0.52866-1.0423 0.97105-2.8392 0.94985-3.9765 0.23399-0.88154-0.55487-1.6664-2.532-2.6724-0.71658-0.47692 0.86067-1.7392 1.9097-1.9752 2.9515-0.34837 1.5376-2.6512 2.6586-1.7092 4.4658 0.79303 1.5213-0.0575 3.0944-0.0507 4.6715 6e-3 1.4866 0.19135 2.9548 0.43988 4.4386 0.29155 1.7406 2.0154 2.4529 3.2583 3.3954 1.4427 1.094 2.3469 3.0801 4.1375 3.4434 1.04 0.21098 3.4017 1.0304 3.3926 0.26153-0.0203-1.7164 1.6841-1.9515 3.1847-2.2987 1.4051-0.32507 1.0263-2.2855 2.1982-2.4138 0.98287-0.10762 0.91316-0.39918 2.4554-0.77938 1.4878-0.36676 1.9895-2.306 1.3522-3.59-0.82455-1.6612 1.5842-1.7854 2.4356-2.6476 1.2158-1.2312 3.4854-0.50553 3.7965-2.9022 0.25043-1.929 3.6531 0.41582 2.7229-2.1847-0.50687-1.4171-1.4071-4.4662 0.15358-4.5168 1.703-0.0552 3.5043-0.0208 5.2357 0.14996 1.5974 0.15756 3.6696-0.59291 3.8149-2.0256 0.16959-1.6717 1.3892-1.9849 2.7141-0.80557 1.4414 1.283 2.4206 3.1684 4.1888 3.9175 1.3421 0.56859 2.4148 1.4036 3.5377 2.4931 0.94409 0.91597 0.88357 2.6702 2.0278 3.2046 1.5397 0.71907 2.2768 2.2983 2.9258 3.7689 0.68913 1.5617 2.0086 2.9157 1.973 4.7485-0.0309 1.5867 0.65998 0.8831 1.3111-0.0598 0.92953-1.3462 2.0862-2.729 1.539-4.2873-0.47584-1.3549 0.90581-0.6734 1.5916-1.6137 1.0477-1.4366-1.3422-1.0409-1.618-2.2385-0.34223-1.4859-1.6834-2.0546-2.7284-3.1126-1.096-1.1097-3.5673-0.42325-3.9654-2.1153-0.30189-1.2833-0.96491-2.3031-1.8468-3.3826-0.82807-1.0136-3.0979-2.4854-2.0254-3.1927 1.0475-0.69074 1.9079-1.6695 2.8706-1.9289 1.2127-0.32681 2.7413 0.55537 3.5013 1.53 0.88925 1.1404 1.5976 2.3724 2.7977 3.3164 1.2868 1.0122 2.6158 2.1638 3.0851 3.7077 0.44154 1.4526 1.7941 1.2413 2.8336 1.9928 1.3057 0.9439 1.1629 2.6793 1.4846 4.2692 0.34931 1.7264 1.7283 3.1991 1.6784 4.9497-0.0557 1.9539 0.90377 3.5641 2.1408 4.8886 0.65173 0.69778 0.73681 1.5103 2.0394 0.82209 1.5203-0.80326 1.316-3.225 1.2325-4.7873-0.0724-1.3554-0.84252-4.2387 0.41797-4.0045 1.9973 0.37101 0.80921-2.4327 2.0383-2.8817 1.7516-0.6398 3.5349 1.8178 5.3525 1.5316 1.2757-0.20091 2.6825-1.3032 2.9498-2.3997 0.32982-1.3527 0.53124-2.9945 0.0236-4.3259-0.46213-1.2119-0.75535-2.84-2.1852-3.5386-1.1565-0.56507-1.8675-3.405 0.25031-2.6973 1.7151 0.57316 2.8094-0.71153 4.0508-1.8444 1.0632-0.97028 1.8081-1.5736 3.3078-2.4557 1.6605-0.97669 2.7874 1.7895 2.741 3.1426-0.0404 1.1753 0.30808 1.0366 1.68 0.85138 1.3372-0.1805 1.7421-1.2492 2.6594-2.5243 0.84973-1.1812 1.7759-2.1196 3.2416-2.5258 1.2699-0.35193 1.7873-0.70809 3.1697 0.75518 1.1884 1.2579-0.70801 1.9498-1.2113 2.3866-1.1666 1.0123-0.91893 2.368 0.79713 3.2708 1.0501 0.55245 1.7238 0.43214 2.6301 0.77029 1.2396 0.46252 2.2733 1.3037 3.126 2.3383 1.021 1.2388 2.9114 2.2862 2.8303 3.9572-0.0938 1.9323-2.273 1.5448-3.6914 1.8099-1.6525 0.30884-3.2176-0.40971-4.5457-1.2647-1.3753-0.88542-3.1052-0.65835-4.6738-0.70516-1.634-0.0487-2.1159 1.371-3.1707 2.2843-1.4652 1.2687-3.9308 0.28438-5.373 1.45-0.72543 0.58637-0.77722 2.3074-1.906 3.3758-1.3434 1.2715-3.5322 1.901-4.2035 3.6166-0.48257 1.2333-2.1272 3.8786-0.44291 4.4023 1.373 0.42685 2.6657-0.18091 4.1536 0.43777 1.5246 0.63394 3.106 0.74607 4.7145 0.91419 1.4472 0.15127 1.9749 0.72878 3.6395 1.682 1.3727 0.78614 1.3641 2.206 3.1439 2.7673 1.747 0.5509 1.1978 2.7545 1.5393 4.2158 0.4274 1.8289-0.5719 3.6082-2.112 4.6487-1.3653 0.92233-3.1537 0.83577-4.7628 0.81468-1.9565-0.0256-3.7636-0.53452-5.694-0.96627-1.4917-0.33363-3.2184-0.0719-4.6957 0.53638-1.3702 0.56425-2.9689 1.7273-4.4429 1.0727-1.819-0.80792-2.5474-2.7861-4.1313-3.8997-1.3954-0.98107-3.0315-1.6303-4.5957-2.2725-2.1013-0.86266-1.8165 2.0179-3.0342 3.2855-1.167 1.2148-2.417 2.5936-4.1238 2.9529-1.7209 0.36227-3.6255 0.80205-5.304 0.22202-1.1126-0.38447-2.132-1.2662-2.8654-1.986-1.283-1.2592-2.0478-3.2153-4.0534-3.634-1.6726-0.34918-2.0089-2.345-2.8217-3.5555-0.99473-1.4814-2.5614-2.7641-3.2775-4.4505-0.53379-1.257-1.4576-2.2659-2.9359-2.636-1.3195-0.3304-2.1301-0.16137-3.2827 0.93289-1.2795 1.2147-2.9664 1.6295-4.8348 1.6479-1.6927 0.0167-3.111-1.8672-4.6582-1.382-1.2826 0.40221-1.9592 1.0452-3.3807 1.9299-1.0383 0.64624-1.928 1.4724-2.856 2.1213-1.687 1.1794-3.2177 0.82958-4.7877 0.41201-2.0281-0.53942-4.4966 1.4011-6.1504 0.20161-1.2901-0.93572-4.0019-2.9996-4.7367-1.1056-0.59496 1.5336-1.8767 2.68-2.3392 4.2987-0.76048 2.6612-2.2961 5.1264-1.9883 8.0803 0.19868 1.9062 1.1073 3.5855 1.8389 5.352 0.98348 2.3748 3.0747 4.0065 4.7534 5.8898 1.0636 1.1932 1.4208 2.4645 2.4099 3.7828 1.2398 1.6523 2.5155 3.5285 4.3959 4.3009 1.5385 0.63201 1.467 1.3953 3.0226 2.0553 2.7224 1.155 5.2136 2.9131 7.0328 5.2698 1.3668 1.7707 3.3389 2.927 5.3707 3.6916 1.6688 0.62803 3.6506 0.83866 4.9136 2.0728 1.5724 1.5365 3.7004 2.3304 5.4974 3.6016 1.4707 1.0404 3.627 0.82138 5.3277 1.4462 1.3486 0.49547 2.6352 1.3666 4.1503 1.4239 3.955 0.14952 7.8186-1.0208 11.545-2.2096 8.6622-2.7636 17.404-5.6253 25.326-10.083 1.3206-0.74318 2.244-1.1394 3.2806-2.014 0.8716-0.7354 1.5983-1.4341 2.7733-1.8954 1.4112-0.55403 2.4356-1.6659 3.2167-2.9286 0.98923-1.5991 1.7596-3.6465 1.2061-5.3934-0.44712-1.411-0.92475-2.8938-1.3259-4.372-0.44519-1.6403-2.426-3.8976-1.1576-4.9925 1.1242-0.97034 2.7825-1.1665 4.1576-0.58242 1.5157 0.64374 2.9261 0.1441 4.2356-0.45829 1.6639-0.76544 2.0022-2.692 3.2962-3.8419 1.1666-1.0368 1.5617-2.7224 2.8655-3.576 1.5029-0.98389 2.1783-2.6252 2.7637-4.2444 0.63461-1.7551 0.50709-3.9424 2.2527-5.0453 1.9139-1.2092 3.6884-2.792 4.8014-4.725 1.1372-1.9751 1.9086-4.1257 2.5534-6.306 0.47515-1.6067 1.0106-3.192 1.4847-4.7989 0.79128-2.6818 0.52736-5.7325 1.9256-8.1549 1.1121-1.9267 2.1689-3.7973 2.911-5.9611 0.52145-1.5205 1.5981-2.7577 2.5786-4.0231 0.86335-1.1142 0.98011-2.616 1.7667-3.7308 1.812-2.5681 2.9191-5.6163 2.9658-8.8003 0.0303-2.0691-0.23366-4.1082 0.0653-6.1961 0.22375-1.5626 1.5993-2.8754 0.11452-4.5674-1.2404-1.4134-4.2699-2.2219-3.9063-4.1517 0.12251-0.65031-0.89007-0.87554-1.4025-1.1732-16.447-9.5534-31.229-22.85-49.34-28.66-1.5074-0.48356-2.3944-1.7288-4.2851-1.9332-2.7823-0.30083-9.5073-1.2276-8.2061 1.3039 0.10909 0.21225-0.53952 0.31321-0.66294 0.42603z" style="paint-order:normal"/><path transform="matrix(-1 0 0 1 513.22 -1.8379)" d="m192.41 54.2c1.5236 1.5891 1.5942 4.1028 3.0441 5.6606 1.2076 1.2974 2.1815 2.8377 3.3601 4.1181 1.1021 1.1972 1.8975 2.621 2.2277 4.1595 0.42766 1.9923 0.4545 3.9972 0.83303 6.0008 0.36694 1.9423 2.68 2.0842 4.1233 3.0061 1.6082 1.0272 3.18 2.0392 4.7374 3.1461 1.5104 1.0734 3.1573 1.8935 4.8956 2.3017 1.5974 0.37514 2.7572 1.8429 3.8899 3.0197 1.2943 1.3447 3.109 2.0658 4.7007 2.9667 1.6148 0.914 3.6225-0.15785 5.3367 0.52958 1.768 0.70902 3.011 2.5859 4.7102 3.47 2.262 1.1769 5.0236 1.1322 6.9712 3.0509 1.4321 1.4108 3.4338 2.5149 4.0119 4.5059 0.47655 1.6413 1.5121 4.0332 3.263 3.9633 1.9416-0.0775 3.3202 0.54051 4.7344 2.4124 1.095 1.4495 3.3569 1.0531 4.6291 2.5211 0.51511 0.59439 0.642 1.5553 0.8519 3.0916 0.21869 1.6007-0.47008 2.9829 0.0702 4.8896 0.55756 1.9676-0.12868 4.2269-1.4662 5.6213-0.62148 0.64793-0.83207 1.154-1.5158 1.9505-1.3693 1.5953-3.1725 4.2894-1.47 5.9528 1.5271 1.492-0.11831 3.318-0.36485 5.0636-0.2885 2.0427 1.4147 3.5317 1.2406 5.6046-0.15468 1.842-1.1984 4.0996-0.0648 5.5576 1.2069 1.5521 3.0217 2.8515 4.8533 3.6581 4.6835 2.0625 9.7857 2.8912 14.82 3.4532 2.1989 0.24547 4.3788 0.28227 6.6065 0.41171 2.7859 0.16189 5.5694 0.27911 8.3598 0.40755 3.9773 0.18307 7.9368 0.2828 11.913 0.89457 5.1712 0.79551 10.367 1.7277 15.602 1.7495 5.4271 0.0226 10.874 0.29326 16.283-0.15142 0.87241-0.0717-1.2519 0.0653 0.50918 0.13317 0.90138 0.0347 4.0617 8e-3 5.7002-0.65404 1.4828-0.59886 2.401-0.61477 4.1249-1.495 1.396-0.71275 2.8052-1.8649 3.7503-3.2447 1.1518-1.6814 0.99083-3.7494 1.018-5.7001 0.0271-1.9428 0.26955-3.8884-0.45585-5.821-0.67968-1.8108-1.2358-4.9643-3.3758-5.1042-1.9673-0.1286-4.0388-0.10822-5.9672 0.0496-1.8774 0.15361-3.4088-1.3234-4.2365-2.8357-0.75834-1.3855-2.8096-2.389-4.476-1.9426-1.8791 0.50333-4.0218 0.83508-5.7115-0.67342-1.8501-1.6517-7.4242-4.3878-5.2014-5.3667 1.4013-0.61711 2.0746-2.2351 2.4384-3.5322 0.40315-1.4373-2.1585-2.0358-2.7646-3.1895-0.99293-1.89-2.7495-3.1044-4.0576-4.7482-0.5269-0.66216 0.88692 0.50593-0.22374-0.23291-1.6429-1.0929-2.9518-3.1195-5.1453-3.0224-1.6779 0.0743-3.2789 0.21354-5.0358 0.50548-2.2283 0.37025-2.1658-2.436-3.6822-3.7279-1.5682-1.3361-2.687-3.0627-3.2285-4.9875-0.50592-1.7983-2.124-3.4837-3.8689-3.8309-1.9885-0.39564-4.0146-0.3211-6.1427 0.02056-1.6521 0.26523-3.5367 0.67221-5.0094-0.39763-1.4057-1.0212-3.8504-2.9895-4.7951-1.5945-0.87505 1.2921-0.43692 3.6852-2.1095 4.957-1.7991 1.3681-1.3274-2.3213-2.9035-2.9503-1.697-0.67732-2.2313 1.9078-3.6334 2.8269-1.5374 1.0078-3.9747 0.0449-5.2772 1.8298-0.96099 1.3169-2.7856 2.9537-4.3204 1.237-1.3081-1.4631-3.2205-1.8946-5.13-2.1903-1.1925-0.18466 0.10982-0.0809-0.72403-0.15067-1.7195-0.14381-3.9025-1.182-4.227-2.8129-0.47656-2.3952-1.2922-4.5487-1.8107-7.0799-0.37125-1.8126 0.16993-3.7216-0.58872-5.4761-1.0759-2.4882-3.7493-1.119-5.5646-0.6942-1.4934 0.34949-2.8169-0.35808-3.8553-1.2921-0.95622-0.86011-0.40571-2.6646-0.54493-3.9152-0.2041-1.8335-0.52145-3.9875 0.86081-5.4396 1.0071-1.058 1.4218-1.9101 2.8963-2.8782 1.8182-1.1938 0.5651-2.6313-1.1127-3.1957-2.2143-0.7449-2.7353 1.7386-4.137 2.7645-1.6639 1.2178-2.4699 3.1307-4.213 4.3781-1.4236 1.0188-3.4612 0.92155-4.2101 1.3805-1.8674 1.1444-2.0988-1.6068-4.2928-1.4101-1.9949 0.17886-2.7416-2.0198-3.1943-3.8005-0.4015-1.5797-0.69805-3.206-0.36527-4.9183 0.28238-1.453 1.5295-4.7841 0.27389-4.7075-0.6941 0.04235-1.4911-2.4873-0.94396-3.7725 0.72854-1.7114 1.8733-3.2325 2.4892-4.9843 0.60359-1.717-0.206-4.0098 1.2102-5.166 1.1864-0.96856 3.4431-1.3898 5.1312-1.0253 1.8967 0.40958 5.3413 1.7184 5.7603-0.24447 0.46941-2.1995 2.9544-2.0611 4.6783-1.6365 1.8357 0.45219 3.4381 1.308 5.3278 0.0893 1.5515-1.0007 3.2801-1.117 4.7942 0.3517 1.0582 1.0265 1.5024 2.373 1.8256 3.921 0.39021 1.8689 2.2288 2.5904 3.4875 3.8181 1.3779 1.344 1.5979 6.6548 2.3397 5.0612 0.65308-1.4028 1.2636-2.9234 0.65307-4.5546-0.66798-1.7847-1.5432-3.4115-2.0024-5.3321-0.4005-1.6753-0.8811-3.711 0.78678-5.0812 1.4324-1.1767 3.3055-1.515 4.8457-2.6184 1.5503-1.1106 2.849-2.7346 2.94-4.6614 0.10511-2.2269 1.8082-3.0506 3.7883-3.4729 1.6705-0.3562 2.9608-1.3328 4.6231-1.9658 2.2771-0.86702 0.61965-3.1713-0.29985-4.3933-1.1177-1.4853-2.0796-3.2078-0.14699-4.6739 1.4841-1.1258 3.3932-2.0818 3.8339-4.0323 0.47254-2.0913 2.2635-2.9271 4.2908-3.4728 1.6072-0.43266 4.8937-1.9015 3.5681-3.5039-1.3151-1.5897-3.2255-2.4707-5.2448-2.8786-2.8032-0.56624-5.5485-1.3412-8.3926-1.7406-2.2751-0.31955-4.5765-1.1393-6.8205-1.176-2.0655-0.033793-4.043-0.62656-6.1406-0.59537-2.4344 0.036199-4.8597-0.011252-7.2786 0.39955-2.2905 0.38901-4.5362 0.76735-6.8536 1.1964-2.8835 0.53388-5.4338 2.0836-7.9658 3.4779-2.7121 1.4935-5.113 3.3923-7.5461 5.3715-1.2965 1.0546-2.5712 2.0929-3.8436 3.2046-2.9208 2.552-6.0013 4.9276-8.7219 7.6971-1.8105 1.8431-3.4138 3.8853-5.2098 5.7431-1.805 1.867-2.4547 4.4567-3.8614 6.5958-1.0975 1.6689-1.6889 3.7317-3.343 4.9377-1.7501 1.2759-2.9147 3.1348-4.425 4.6612-0.98185 0.9923-2.2914 2.615-2.6968 3.1502-0.74236 0.97993-1.2546 2.1474-1.8032 3.248z" style="paint-order:normal"/></g><g fill="#5ab59d"><path d="m422.1 167.61c0.31386 2.6874 1.6161 5.722 0.22558 8.1733-0.7897 1.3921-4.3968-0.5393-3.0728 2.107 1.0606 2.1197 0.16274 5.6975-2.4613 5.867-3.2744 0.21146-3.5735-3.7168-5.3452-5.4382-2.0375-1.9798-3.294 0.4869-3.1271 2.5671 0.17175 2.1402 2.1324 3.6674 2.5781 5.7056 0.49871 2.2809 0.84173 5.472 3.446 6.2161 2.6902 0.76865 4.0501-3.4718 6.6542-2.479 2.177 0.82996 2.2343 3.5524 2.0324 5.4961-0.28511 2.7446 2.5494 4.2968 5.2998 3.163 2.8618-1.1797 3.2551 2.5441 4.8177 3.9005 1.6574 1.4388 2.0881 4.084 4.392 4.74 1.6254 0.46283 3.4236 1.0062 4.1863 2.8421 1.0154 2.4441 4.0648 3.6145 4.7937 6.0871 0.73566 2.4954-3.2351 3.7608-1.3475 6.7309 1.2665 1.9928-0.29919 2.9637-2.6796 3.4494-2.7658 0.56434-2.3548 4.0156-4.3848 5.4727-2.1066 1.5122-4.5732 0.11389-6.8255 2.1972-1.9905 1.8412-3.6271 4.0976-4.0333 6.8902-0.4508 3.0991-0.50503 6.2174-0.28941 9.3347 0.171 2.4723-2.5332 3.26-4.075 1.189-1.6978-2.2806-2.4746-5.2215-2.0804-7.997 0.39301-2.767-1.6497-4.8826-4.1231-6.4576-2.1231-1.352-4.8354-3.5451-4.2917-6.0117 0.47129-2.1382 2.755-4.9354 0.76831-6.6354-2.072-1.7731-2.2414-4.6489-2.978-7.2231-0.62927-2.1989-1.1684-4.9064-3.5329-5.9903-1.9959-0.915-5.6379 0.49337-4.6739 2.8684 1.2788 3.1507-3.0583 2.3858-4.6997 3.3599-2.0709 1.2291-2.3984 3.842-2.149 5.9835 0.34545 2.9655-2.8583 1.2307-4.407 0.99212-1.8074-0.27845-6.488-2.4195-5.9175-0.13981 0.46416 1.855 0.0453 3.1454-1.3379 4.8064-1.5968 1.9174-0.31975 4.7823-1.5209 6.7363-1.0184 1.6567 1.1229 3.8325 0.10174 5.0666-1.6344 1.9753-4.4026 2.4905-6.1731 4.4198-1.6341 1.7806-2.046 4.501-1.6486 6.7829 0.46662 2.6795 3.3563 3.5927 5.6442 4.1069 1.8102 0.40678 3.4791 1.2982 4.7214 2.7345 1.4608 1.6888 3.6506 2.0504 5.8131 2.3421 2.0556 0.27725 4.3351 0.5402 6.1689-0.93412 2.288-1.8395 6.6005 0.0188 6.4098 2.7527-0.19815 2.8397-3.4195 2.7212-5.3656 1.4478-2.1925-1.4346-3.4177 0.39009-2.6074 2.8785 0.90081 2.7666-2.9605 1.8194-3.868 3.8579-0.98788 2.2191-1.2185 5.6951 1.1883 7.0043 2.5682 1.3971 3.0613-1.6964 3.2598-3.8155 0.28411-3.0319 2.8879-0.50052 4.5506 0.11333 2.3643 0.87286 1.084 4.834 3.8817 5.1173 2.263 0.22916 4.2064 1.0733 5.852 2.9955 1.5647 1.8278 1.5834 5.1627 4.7408 5.0472 2.505-0.0916 3.332 2.3788 4.1799 4.2278 1.048 2.2852 2.7812 4.0493 4.5459 5.9912 1.5536 1.7096-1.7951 3.1095 0.0473 5.5567 1.3305 1.7673 3.3098 4.5734 5.3776 3.7628 0.97843-0.38356-0.25711-3.973 1.5355-2.4246 1.9514 1.6855 1.5488 4.4292 2.8557 6.8164 1.4811 2.7055 4.2769 4.3219 5.6111 7.1664 0.98536 2.1008 0.40678 4.4202 0.37772 6.6385-0.0303 2.3157-1.2616 5.0845 0.11696 6.9462 1.7796 2.4032 2.237-1.6059 2.7085-3.2584 0.79098-2.7721 3.9158-4.2514 4.8541-6.859 0.70496-1.9592 2.8423-6.8442 4.744-4.1158 1.7165 2.4628 4.3673 1.1974 6.5582 0.45824 2.2142-0.74705 3.7535 0.82817 5.6781 1.5712 1.8428 0.71147 4.0456-0.72606 5.6954 0.15001 2.4723 1.3128 2.8188 4.052 3.6333 6.5415 0.86844 2.6544 3.3855 4.3836 6.1264 4.7383 3.2666 0.4227 6.7312 0.19799 9.6827-1.1197 2.1961-0.98044 2.6056-3.8708 5.1162-4.6426 2.7636-0.84948 5.3205-2.1756 8.1323-2.9426 3.3623-0.91728 6.4835-2.5803 9.241-4.6373 3.706-2.7646 5.2926-7.3306 7.4427-11.252 2.371-4.3238 3.5134-9.1869 5.1808-13.803 2.1786-6.0316 2.5562-12.493 2.8876-18.85 0.2724-5.2242 1.5049-10.861-0.5855-15.698-1.6007-3.7032-2.0505-7.7297-2.8151-11.652-1.2439-6.3812-1.4974-12.903-2.603-19.301-0.61239-3.5434-2.1295-6.8331-3.3525-10.193-1.2664-3.4789-3.2019-6.6582-4.6619-10.05-1.4503-3.3697-2.8525-6.7561-4.1794-10.179-1.6556-4.27-2.365-9.591-6.3847-12.239-2.6657-1.7561-5.7505-2.6322-8.772-3.5421-4.5269-1.3632-9.1111-2.498-13.714-3.569-3.0741-0.71536-6.2249-0.94817-9.348-1.3949-4.3274-0.61902-8.4856-1.9689-12.641-3.3594-4.3625-1.4599-8.6793-3.0693-13.103-4.3296-3.9441-1.1236-7.9321-2.1716-11.984-2.7731-2.9226-0.43393-5.8228 0.26569-8.6867 1.0735-0.65001 0.18335-1.3421 0.25014-2.0093 0.12393z" style="paint-order:normal"/><path d="m390.26 164.02c-0.82291 1.5579-1.9589 2.9333-3.3896 4.027-1.495 1.143-3.5518 1.7648-4.521 3.381-0.6738 1.1236-0.19903 2.4653-0.14234 3.698 0.0431 0.93861-0.78242 1.5788-1.6178 1.9856-1.0606 0.51651-2.6357 0.96799-2.7828 2.1806-0.12793 1.0549 0.84082 1.8364 1.7887 2.1428 1.1232 0.36309 1.4716 1.688 1.3822 2.7775-0.15218 1.8533-1.426 3.3272-2.6057 4.6627-1.4371 1.6268-2.7513 3.4191-3.3699 5.5641-0.45925 1.5925-0.55738 3.3222 0.0451 4.9289 0.51071 1.362 1.4422 2.487 2.4853 3.5615 0.4406 0.45389 1.0066 1.1744 1.6833 0.92735 0.70062-0.25577 0.81351-1.1028 0.9571-1.7396 0.37129-1.6467 1.9002-2.7682 2.4619-4.3364 0.25903-0.72323 1.4784-1.2444 1.9045-0.54832 0.59911 0.97886 0.14665 2.1549-0.25205 3.1181-0.42431 1.025-0.57492 2.1533-1.1004 3.1448-0.59298 1.1188 0.17513 2.4009 1.1289 3.107 1.157 0.85653 2.9149 0.27947 3.965 1.1869 0.58498 0.5055 0.43338 1.4083-8e-3 2.0166-0.89952 1.2388-1.6827 2.5677-2.1639 4.0364-0.53816 1.6426-1.1902 3.5834-0.39611 5.1468 0.33664 0.66277 1.4004 0.95386 1.9033 0.30224 0.8534-1.1057 0.60438-2.5785 1.1193-3.8304 0.45862-1.115 1.4762-1.8286 2.4139-2.5494 1.0922-0.83961 1.7305-2.088 2.4364-3.2501 0.96187-1.5835 2.02-3.3454 3.8164-4.0415 1.1591-0.44908 2.4772-0.0432 3.6299-0.42326 1.5244-0.50258 2.6241-1.895 3.086-3.3656 0.43483-1.3845-0.27982-3.1044-1.7349-3.5668-1.0567-0.33575-2.1016 0.20481-3.1464 0.53319-0.76612 0.24079-1.378-0.44349-1.7432-1.1469-0.67444-1.2993-2.216-1.9551-3.5935-1.8644-0.76814 0.0506-1.7094-0.17728-2.0291-0.9651-0.41823-1.0306 0.43341-2.1459 1.555-2.3242 0.93181-0.14807 1.8104 0.32529 2.7248 0.47188 1.4017 0.22471 3.0377 0.82201 4.2687 8e-3 1.0937-0.72356 1.131-2.2154 0.86524-3.4067-0.28023-1.2563-1.331-2.4269-2.7233-2.4487-1.8468-0.0289-3.7274 0.99951-5.5118 0.36092-1.0125-0.36234-1.1083-1.7576-0.49081-2.5492 0.49743-0.63769 1.3493-0.62094 2.0808-0.59329 0.91728 0.0347 2.0483 0.0794 2.658-0.73598 0.75605-1.0112 0.4272-2.3707-0.0185-3.4561-0.3332-0.81148-0.42995-1.6841-0.67108-2.5464-0.19587-0.70049-0.45199-1.6972 0.19005-2.1593 0.6758-0.48643 1.508-0.45264 2.2729-0.82184 1.6059-0.77521 3.5607-0.93859 4.8557-2.2686 1.6504-1.695 3.3491-3.4875 4.1932-5.6849 0.28393-0.73915-0.36827-1.3792-1.0569-1.7421-1.5115-0.7964-3.0476-1.5556-4.722-1.9993-2.6836-0.71114-5.4736-0.25815-8.2275 0.0241-1.2289 0.12595-2.6712-0.0876-3.6407 0.83873-0.0758 0.0724-0.14646 0.14999-0.21184 0.23184z" style="paint-order:normal"/><path d="m-3.2476 250.96c2.9182-1.718 6.254-1.5804 9.2614-0.11946 2.6769 1.3004 5.3465-0.76846 8.0226-1.0365 3.0242-0.30289 5.8227 0.5964 8.5165 1.8071 2.8826 1.2955 5.8247 3.044 9.1038 2.7295 2.8292-0.27136 5.9562-0.86071 8.0843-2.6187 1.5003-1.2393 2.3561-2.031 3.745-3.6752 1.9682-2.33 1.6018-6.0939-0.0978-7.9993-2.0731-2.3241-1.7687-6.1618 0.17552-8.3509 1.9229-2.165 5.215-3.0342 6.6428-5.935 1.2473-2.5342 2.6627-4.988 3.8142-7.5938 1.179-2.6681 2.3439-6.3464-0.09555-8.6161-2.4267-2.2579-3.7262-5.7801-2.354-9.2265 1.2899-3.2396-0.43357-6.4642-0.30857-9.7538 0.11474-3.0198 1.0122-6.2936 3.2996-8.1728 2.1654-1.7789 3.1396-4.3659 4.862-6.4792 2.5912-3.1791 6.73-2.1272 10.298-2.8988 3.5326-0.76404 7.1168-1.418 10.448-2.8634 3.218-1.3962 6.8654-0.92659 10.17-1.9458 3.2211-0.99333 6.0538 1.798 6.238 4.7799 0.19935 3.226 3.3826 4.2394 3.9328 7.6271 0.55552 3.4205-0.85112 7.9431 1.7291 10.253 2.4993 2.2371 4.6385 4.8956 7.2572 7.0282 2.3883 1.945 3.1586 4.8928 3.4751 7.861 0.3861 3.6208 1.3523 7.2356 1.2374 10.908-0.11143 3.5642-0.11988 7.098 0.10191 10.664 0.20458 3.2889 1.9835 6.2203 2.745 9.3489 0.69549 2.8577 1.9651 5.6996 3.9804 7.9736 2.0824 2.3497 4.0584 4.7087 6.4616 6.9194 3.1191 2.8694 8.8373 4.7618 8.9797 9.0135 0.0611 1.826 3.6578 5.3256 0.36569 6.0378-2.5778 0.55765-5.092 1.7281-7.8585 1.6466-3.0462-0.0897-7.1093-2.4787-9.3358 0.59418-1.7084 2.3578-2.4456 4.8037-3.4712 7.5286-0.98327 2.6123-4.8864 0.11051-5.1934 4.1711-0.22476 2.9724-0.17201 7.053-2.5666 8.8249-2.1945 1.6238-4.3812 3.3314-4.8092 6.2704-0.4148 2.8489-2.8214 4.6235-3.7115 7.3198-0.78233 2.3697-4.6582 10.024-0.91029 8.2771 2.5442-1.1856 3.6475-6.0334 5.8476-6.4496 0.23404-0.0443 2.7098-3.0856 3.0993-3.9621 1.2825-2.8864 5.1365-4.2513 4.7123-7.6867-0.44311-3.5888 3.5058-5.0105 4.7297-7.7166 1.2301-2.7196 1.5182-3.4713 4.1234-5.5211 2.3872-1.8783 1.9194-6.2135 4.7095-7.4035 3.126-1.3333 7.2224 0.129 9.5866 2.6878 0.4658 0.50417-0.19163-0.44672 1.3764 0.79184 2.3671 1.8698 5.2274 2.5823 7.8534 3.9661 2.8232 1.4878 5.2692 3.5141 7.3623 6.159 1.5538 1.9634 2.0784 3.5688 1.3707 6.6761-0.62815 2.758-1.6644 4.7972-4.8652 6.188-2.795 1.2146-4.6077 1.2236-7.3398 1.8057-2.348 0.50022-3.3652 2.6829-5.8716 3.8202-2.5711 1.1667-2.0441 5.8264-4.3982 6.2656-3.0705 0.57284-3.4452 3.9567-0.68854 5.6045 2.2928 1.3705 5.2921-0.70723 7.5321-2.101 2.6982-1.6788 3.2044-4.8878 5.1004-7.2365 2.5522-3.1617 7.0399-0.31101 8.2624 3.1034 1.0409 2.9072 1.1308 5.9879 1.5157 9.0391 0.35968 2.8511 0.68006 5.6371 1.0975 8.4925 0.49001 3.3516-0.19942 6.8359 0.673 10.095 0.99665 3.7227 2.2725 7.2624 2.8612 11.238 0.42415 2.8642-3.3731 4.1444-5.5929 4.4185-3.7883 0.4678-7.6515 0.1031-11.465 0.0227-4.4198-0.0932-8.6837-0.96559-12.82-2.5007-2.9652-1.1005-6.0931-1.6378-9.0892-2.6414-4.5323-1.5182-9.3551-0.67917-14.048-0.93678-3.3694-0.18495-6.8177-0.48066-9.9786-1.5891-2.231-0.78239-6.0222-2.3686-7.1832-3.32-2.0585-1.6869-5.5975-3.4441-5.3603-6.3724 0.3135-3.8699 5.3444-2.0852 7.8904-1.8179 3.3774 0.35456 5.7562-1.1826 7.2034-4.1813 1.1196-2.3199 6.0774-0.56844 3.6576-4.6153-1.3705-2.2921-2.2684-5.3966-5.4936-6.0387-3.3513-0.66718-6.819-0.75545-10.234-0.12517-0.58423 0.10784 0.79365-0.65241-0.58041-0.0627-2.5988 1.1152-5.0994-0.75746-7.5196-0.0314-2.4587 0.73764-5.4845 0.60749-6.991 2.8106-2.2854 3.3421-5.1504 0.28631-7.2617-1.793-2.2004-2.1671-6.1835-1.9002-9.1179-1.8241-2.9236 0.0758-4.251 3.2505-4.5072 5.6354-0.35825 3.334-4.4041 4.2541-5.466 7.1824-0.90571 2.4976-3.043 4.7666-6.0855 4.3664-3.3696-0.44328-6.2595-2.4354-9.2365-3.9425-1.9576-0.99098-4.3695-0.35994-6.2626-1.2325-2.6016-1.1992-5.2538-1.944-7.9289-3.0912-3.1698-1.3593-7.6068 2.2114-9.6412-0.31044-2.13-2.6403-2.9308-6.2359-3.8837-9.4724-1.9757-6.7107-2.015-13.74-2.2924-20.665-0.32288-8.0596 0.68143-16.165-0.1208-24.188-0.41608-4.1609-1.5043-8.2511-1.1482-12.469 0.25211-2.9865 0.66031-6.2019-0.58485-8.7759z" style="paint-order:normal"/><path d="m121.67 173.91c-0.49696 1.5056-1.8763 3.012-1.4689 4.5285 0.54591 2.0323 0.15701 4.6932-1.8553 5.5823-1.895 0.83735-5.1587 2.8484-2.7276 4.627 1.5501 1.134 3.0448 2.307 4.3004 3.6441 1.719 1.8305-0.44344 4.7263 0.88536 6.3045 1.5227 1.8084 3.9752 1.8224 5.8981 3.3992 1.0958 0.89857 1.7883 3.0399 2.0461 4.0164 0.3334 1.2631 1.1164 3.5755 1.5313 5.2808 0.4816 1.9791 0.25007 4.9641 2.2009 5.7251 2.3172 0.90396 2.9007-2.2424 3.5469-4.0556 0.80395-2.2559 1.076-5.0338 0.18437-7.2739-0.82338-2.0687-1.5319-4.2277-2.9434-6.0927-1.2533-1.656-1.6713-3.5374-2.3646-5.5282-0.75852-2.1783-0.19691-4.4803 0.88738-6.371 1.1141-1.9426-0.57345-3.8555-1.7969-5.2537-1.4202-1.623-3.0759-3.1192-4.6733-4.5699-1.2993-1.18-1.5162-3.8339-3.6508-3.963z" style="paint-order:normal"/></g><g fill="#87d68d"><path d="m442.08 172.48c-0.15406 1.619-1.5082 2.5003-2.4898 3.6421-0.38303 0.44558-0.58259 1.0831-0.99511 1.4956-0.61904 0.61904-1.3674 1.117-1.9976 1.7471-0.10623 0.10623-0.14377 0.26877-0.25 0.375-0.18785 0.18785-1.494 1.2061-1.7393 1.3696-0.6345 0.423-1.6406 0.19221-2.2129 0.74756-0.0282 0.0273 0.0171 0.0824 0 0.11768-0.17248 0.35709-0.24169 0.60051-0.34717 0.96337-0.0556 0.1914-0.16214 0.0517-0.22656 0.24024-0.10128 0.29643-0.10813 1.1165 0.12451 1.3042 0.0718 0.0579 0.21542-0.0689 0.27686 0 0.1344 0.15064 0.39911 0.43469 0.49267 0.6123 0.014 0.0265-0.12208 1.2829-0.125 1.3091-0.0675 0.60595-0.23601 0.39147-0.36181 0.83984-0.17597 0.62712-0.37025 1.1718-0.12549 1.7871 0.0308 0.0775 0.15229 0.52644 0.24804 0.62207 0.21899 0.2187 0.91499 0.47785 1.1162 0.62158 0.52087 0.37205 1.109 0.78514 1.7373 0.99365 1.2369 0.41049 2.7248 0.4392 4 0.625 0.22291 0.0325 0.46036-0.0659 0.67578 0 0.98304 0.30049 2.1082 0.92309 2.75 1.7485 0.12234 0.15734 0.34652 0.92161 0.36182 0.96289 0.16953 0.45733 0.30431 0.8916 0.37256 1.3701 0.19093 1.3388-0.23171 1.9587 0.62597 3.3882 0.12009 0.20014 0.33008 0.33008 0.49512 0.49512 0.33333 0.33333 0.64523 0.68957 1 1 0.95727 0.83761 2.624 1.6621 3.2207 2.8555 0.084 0.16809 0.34833 0.66497 0.36914 0.85742 0.0311 0.28787-0.0681 0.58723 0 0.86865 0.0624 0.25769 0.1722 0.36059 0.11914 0.6167-0.16955 0.81842-0.77917 1.6763-0.11962 2.4639 0.74597 0.89073 1.7096 1.7683 2.6157 2.4912 0.23487 0.18738 0.53754 0.28754 0.75 0.5 0.20306 0.20306 1.1528 1.306 1.25 1.5 0.0528 0.10546 0.24497 1.0736 0.25 1.1235 0.11178 1.1109-0.3588 1.2717-0.4878 2.3037-0.0738 0.59077-0.0541 1.3273-0.37353 1.8687-0.32956 0.55853-0.60769 0.67724-0.49121 1.4912 0.0858 0.59937 0.61525 1.1055 0.87305 1.6211 0.45625 0.91252 0.90157 2.6829 0.62451 3.6401-0.60101 2.0765 0.0165-0.73744-0.37451 0.86133-0.24102 0.98549-0.35039 2.0124-0.61719 2.9907-0.22291 0.81734-0.6349 1.5721-0.87695 2.3789-0.0611 0.2035-0.0461 0.42774-0.125 0.625-0.27368 0.68419-0.82451 1.2898-1.25 1.875-0.52075 0.71622-0.38186 0.79527-1.1279 1.2544-1.3901 0.85544-0.53995 0.208-1.625 0.75-0.51662 0.25805-1.1437 0.57377-1.627 0.875-0.10001 0.0623-0.14462 0.19724-0.25 0.25-0.71048 0.3557-1.8343 0.38264-2.6089 0.49316-0.57287 0.0817-0.94682 0.5543-1.3716 0.87158-0.19465 0.1454-0.44341 0.21359-0.625 0.375-0.19227 0.17091-0.68184 0.89318-0.875 1.125-0.33638 0.40372-0.95137 0.73254-1.1235 1.249-0.23098 0.69292-0.061 0.7961-0.125 1.5-0.0192 0.21158-0.10144 0.41385-0.125 0.625-0.18754 1.6806 0.0993 3.4305 0 5.1201-0.0222 0.37698-0.0833 0.75065-0.125 1.126-0.0425 0.42123-0.10365 0.84098-0.12744 1.2637-0.0351 0.62402 0.0479 1.2518 0 1.875-0.0194 0.25271-0.10695 0.4972-0.125 0.75-0.0697 0.97638 0.0131 1.906-0.125 2.8726-0.0337 0.23607 0.0442 0.64708 0 0.8667-0.16845 0.83663-0.28199 0.61281-0.5 1.375-0.0989 0.3457-0.0631 0.76321-0.125 1.1172-0.10462 0.59861-0.38898 1.3247-0.63233 1.8721-0.62871 1.4143-1.5861 3.075-2.875 3.9956-0.48004 0.34289-1.0337 0.54008-1.5801 0.73877-0.37022 0.13463-0.83517 0.33122-1.2402 0.37061-0.41471 0.0403-0.83333 0-1.25 0-0.3247 0-0.73863 0.0343-1.0151 0-0.0716-9e-3 -1.784-0.32585-2.1382-0.50293-0.13373-0.0669-0.23562-0.19015-0.37305-0.24902-1.2912-0.55315 4e-3 0.0651-0.73974-0.125-0.41463-0.10604-0.76586-0.38681-1.1221-0.62403-0.37504-0.24975-0.56298-0.68809-0.87061-0.99511-0.6655-0.66419-1.6988-1.482-2.2368-2.2354-0.10829-0.15164-0.15124-0.34198-0.25-0.5-0.46742-0.74788-0.23926-0.26235-0.75-0.875-0.46808-0.56148-0.84995-1.224-1.3706-1.7446-0.18865-0.18866-0.43635-0.31135-0.625-0.5-0.10623-0.10623-0.14394-0.26861-0.25-0.375-0.1052-0.10554-0.25973-0.15009-0.37158-0.24854-1.0089-0.88802-1.9422-1.9296-2.6812-3.0381-0.19348-0.29023-0.59199-0.50155-0.83691-0.71142-0.72864-0.62437-1.6236-1.7496-1.9854-2.5938-0.27934-0.6518-0.51777-1.5315-0.375-2.2476 0.0542-0.27211 0.24798-0.49645 0.37207-0.74463 0.60143-1.2029 0.68249-2.2593 0-3.4878-0.56151-1.0107-1.3825-1.8842-2.1255-2.7505-0.0417-0.0832-0.0833-0.16634-0.125-0.24951-0.0415 0-0.0934 0.0275-0.12451 0-0.0275-0.0242 0.0293-0.0879 0-0.10987-0.49551-0.37075-1.7399-0.82296-2.106-1.25-0.15811-0.18446-0.24456-0.42002-0.375-0.625-0.53416-0.83939-0.56024-0.69094-0.88818-1.6929-0.29972-0.9157-0.28541-1.9396-0.64649-2.8423-0.10583-0.26458-0.41203-0.39434-0.60449-0.60449-0.30069-0.32834-0.56486-0.69027-0.87988-1.0049-0.0196-0.0196-1.7961-1.6699-1.979-1.7241-1.3084-0.38775-1.9727-0.0413-2.4888 1.25-0.53111 1.3288-0.37745 2.8893-0.37745 4.2886 0 0.40277 0.0411 1.1124-0.125 1.5-0.35794 0.83536-1.2989 1.7996-1.8765 2.377-0.65763 0.65746-1.968 1.6052-2.7544 2.1294-0.65546 0.43697-1.4927 0.59587-2.1489 1.0122-0.19941 0.12652-0.33394 0.33403-0.50098 0.50098-0.64409 0.64378-0.70026 0.62746-0.62402 1.6177 0.0195 0.2527 0.0309 0.51468 0.125 0.75 0.52687 1.3172 2.4537 1.4191 3.5708 1.9272 0.85101 0.3871 0.52233 0.36829 1.4536 0.61914 0.44259 0.11922 1.11 0.17687 1.5825 0.36963 1.0586 0.43184 1.697 1.0032 2.668 1.6518 0.20203 0.13496 0.41667 0.25 0.625 0.375 0.25 0.125 0.51748 0.21989 0.75 0.375 0.65106 0.43432 1.2919 0.88762 1.8936 1.3882 0.0318 0.0264-0.0218 0.0889 0 0.12402 0.1605 0.25804 0.38456 0.47065 0.5791 0.7041 0.94912 1.139 1.8028 2.2668 2.624 3.498 0.72169 1.0821 0.0252-0.16477 1.125 1.375 0.58685 0.2393 0.38535 0.85053 0.625 1.25 0.59474 0.99136 1.3721 1.7702 2.2534 2.5044 0.16007 0.13335 0.35247 0.22791 0.5 0.375 0.0202 0.0202-0.0825 0.25388-0.0825 0.35157 0 0.75298 0.0287 1.4596 0.25 2.1934 0.29675 0.98376 1.2246 2.1663 1.8496 2.8716 0.26696 0.30124 0.62419 0.50918 0.91992 0.78223 1.0583 0.9771 0.86182 1.0032 2.1304 2.0054 0.90845 0.7177 2.3724 1.4214 3.2774 1.9526 1.3012 0.76387 2.4863 1.7286 3.7715 2.5142 1.2371 0.67559 1.5068 0.79945 2.6943 1.5396 1.3322 0.83029 0.18159 0.1795 1.6445 1.1377 0.15875 0.10398 1.6937 0.98948 2.189 1.4297 0.9797 0.87084 0.31652 0.34581 1.125 1.375 0.86976 1.1072 0.94841 0.92374 1.7544 2.1323 0.0729 0.10937 0.0833 0.24935 0.125 0.37402 0.0814 0.11833 0.15729 0.24061 0.24414 0.35498 0.16134 0.21249 0.3586 0.39876 0.5 0.625 0.35198 0.56318 0.60693 1.4102 0.875 2 0.56581 1.2448 1.4927 2.2213 2.2891 3.3057 0.50918 0.69332 1.258 2.1781 1.5361 2.957 0.0991 0.27747 0.0259 0.59754 0.125 0.875 0.27013 0.75636 0.83613 1.3809 1.1274 2.1294 0.12463 0.3202 0.14896 0.67161 0.25 1 0.2352 0.7644 0.55757 1.5024 0.91309 2.2188 0.13389 0.2698 0.37358 0.47904 0.50098 0.75196 0.34554 0.74023 0.52455 1.5852 0.87256 2.3301 0.40415 0.865 0.29613 0.37802 0.75 1.125 0.13471 0.22172 0.19169 0.97946 0.25 1.2119 0.31874 1.2708 0.4473 3.4745 1.7495 4.2583 1.2197 0.73414 2.3395-0.51842 3.4927-0.74951 0.20348-0.0408 0.4159 0.0188 0.62256 0 0.49967-0.0455 1.0021-0.0633 1.5-0.125 0.0914-0.0113 0.15555-0.11346 0.24707-0.12354 0.78214-0.0861 1.593 0.0869 2.375 0 0.17075-0.019 0.32926-0.10602 0.5-0.125 1.975-0.21943-1.3464 0.42139 1.7529-0.125 1.3156-0.23193 2.6389-0.52661 3.999-0.37548 0.6151 0.0683 3.3576 1.2342 3.9131 1.6045 0.92008 0.61338 3.7264 2.7836 5.0146 2.3936 2.052-0.62117 2.006-2.7008 4.3848-2.8838 2.0192-0.15532 3.9372 0.51236 5.8652 0.9961 1.1464 0.28763 2.2577 0.6197 3.3486 1.1064 0.8708 0.38852 1.6138 1.0104 2.4072 1.5205 1.4586 0.93768 2.9235 2.0504 4.5098 2.7544 0.57695 0.25604 1.2708 0.31475 1.8765 0.50147 1.0458 0.32243 2.1251 0.71928 3.1728 0.98096 0.24543 0.0613 0.50616 0.0526 0.74854 0.125 1.6949 0.50644 3.2571 1.1574 4.9883 1.5644 0.55673 0.13089 1.1248-0.77023 1.2388-1.0942 0.29744-0.84584 0.0993-1.8117 0.38183-2.6626 0.33741-1.0161 1.3082-1.8954 1.8774-2.7534 0.35296-0.53201 0.60966-1.1243 0.96778-1.6528 0.76845-1.1341 1.7787-2.1232 2.6558-3.166 2.4241-2.8821-0.78077 0.7219 1.9648-2.4863 0.87654-1.0242 2.5823-2.7435 3.2461-3.876 1.2139-2.0711 3.7472-7.9446 4.2671-9.9199 1.0794-4.1006 1.2356-8.2058 1.418-12.405 0.10456-2.408 0.1881-4.8175 0.22216-7.2275 0.0609-4.3104-0.14794-11.605 0.25-16.025 0.54977-6.1066 1.2613-6.395 1.6123-11.709 0.23273-3.5233-0.31556-7.4443-0.91895-10.802-0.6954-3.8694-2.84-7.2248-4.7168-10.585-0.30361-0.54366-0.66326-1.0616-0.896-1.6392-0.61842-1.5347-1.0644-3.134-1.6509-4.6812-1.427-3.7645-3.2423-7.3969-4.5493-11.207-0.84257-2.4559-0.64315-2.7718-1.6045-4.5967-1.113-2.1128-2.5666-4.2086-3.8291-6.2363-1.8406-2.9563-4.6924-7.4965-7.9043-9.3789-0.35636-0.20886-0.76647-0.31165-1.1323-0.50342-1.8146-0.95118-1.0735-0.80965-2.812-1.4038-6.0051-2.0523-12.451-1.5319-18.677-1.9722-3.761-0.26596-7.4769-1.0397-11.172-1.728-2.3234-0.43275-0.98068-0.0222-3.1997-0.63623-0.95794-0.2651-1.9457-0.56448-2.8872-0.87744-0.33782-0.1123-0.65462-0.28868-1-0.375-0.32799-0.082-0.67292-0.0705-1.0063-0.12647-1.9031-0.3194-3.897-0.68578-5.748-1.2656-0.33293-0.10429-2.0016-0.7062-2.2017-0.99121-0.19831-0.28249-0.38497-0.40257-0.72803-0.6084-0.40894-0.24537-1.0345-0.43339-1.5-0.5-0.1645-0.0235-0.33723 0.04-0.49853 0-6e-3 -2e-3 6e-3 -0.22577 0-0.23487-0.29793-0.49223 0.17225 1.0358-0.39844-0.84765z" style="paint-order:normal"/><path d="m390.65 160.15c-0.14427 1.0509 0.56438 2.269-0.0246 3.1593-0.49731 0.75174-0.65881 1.6651-0.72273 2.5398-0.0469 0.64261 0.0378 1.2878-0.10654 1.9287-0.14578 0.64752-0.19172 1.3089-0.243 1.9702-0.0731 0.94205-0.35582 1.8554-0.7973 2.701-0.54314 1.0404-0.94292 2.1468-1.2518 3.2823-0.16502 0.60666-0.0325 1.2673-0.21359 1.8624-0.15122 0.4969-0.38193 0.95192-0.45854 1.494-0.0922 0.65276-0.37654 1.2473-0.40212 1.9301-0.0215 0.57443-0.2732 1.1079-0.25522 1.6909 0.015 0.48506-0.2827 0.87418-0.35204 1.3499-0.0877 0.60187-0.21339 1.1939-0.40427 1.7757-0.27807 0.84755-0.6761 1.7153-1.4298 2.2458-0.34723 0.24439-0.44227 0.66822-0.64032 1.0186-0.28376 0.50205-0.92724 0.79344-0.99072 1.4122-0.0433 0.42229 0.31009 0.73516 0.7202 0.8509 0.72084 0.20344 1.4617 0.33968 2.1711 0.57909 0.41365 0.13961 0.74032 0.44849 1.1266 0.64206 0.61306 0.30722 1.2882 0.48381 1.8272 0.95249 0.63612 0.55315 0.80621 1.4148 1.0288 2.1975 0.14846 0.52185 0.51677 0.92667 0.75999 1.407 0.27187 0.53691 0.32901 1.1443 0.49844 1.7158 0.15471 0.52186 0.31067 1.0753 0.65672 1.4965 0.28523 0.34716 0.7154 0.73299 1.1662 0.64224 0.52737-0.10614 0.76896-0.6388 1.0212-1.0497 0.37036-0.60332 0.34668-1.3359 0.30116-2.007-0.0378-0.55754-0.64103-0.81959-0.86735-1.2752-0.22777-0.4585-0.64583-0.67492-1.115-0.88466-0.50881-0.22745-0.26951-0.91664-0.65791-1.2008-0.36744-0.26884-0.7389-0.52029-1.0091-0.91857-0.25509-0.37597-0.36554-0.81667-0.37974-1.2712-0.0161-0.5167-0.34433-0.96069-0.33789-1.4941 7e-3 -0.5482-0.12857-1.0798-0.25292-1.6104-0.40873-1.744-0.54477-3.5277-0.53067-5.3471 5e-3 -0.60125 0.37517-1.1021 0.47627-1.6897 0.18487-1.0745 0.74488-2.023 1.2009-2.9968 0.41343-0.88301 0.71336-1.8104 1.1062-2.7036 0.3611-0.82119 0.86233-1.5719 1.2487-2.3793 0.57165-1.1946 1.0582-2.4463 1.9219-3.4837 0.79029-0.94915 1.6867-1.9369 1.8668-3.2083 0.20333-1.4354-0.45235-2.8202-1.2377-3.982-0.76031-1.1248-1.554-2.276-2.6612-3.085-0.43112-0.31501-0.97899-0.41786-1.5165-0.3056-0.0798 0.0167-0.15954 0.0337-0.23976 0.0483z" style="paint-order:normal"/><path d="m-8.8278 261.39c2.9416-1.3113 6.1393-1.8671 9.3578-1.8 2.7681 0.0577 5.4282-0.37444 8.2745 0.36567 3.2548 0.84635 5.964 2.8124 9.2028 3.7973 4.3267 1.3157 8.8974 1.4286 13.268 2.5147 2.474 0.61487 4.6851-0.0731 7.1332 0.34629 2.9104 0.49853 5.4653-1.1417 7.9253-2.4632 2.7194-1.4608 4.8516-3.8462 6.5139-6.382 1.3341-2.0351 2.5621-4.0581 3.9204-6.1413 2.3312-3.5752 6.0895-6.8085 6.3961-11.18 0.16843-2.4015-1.4559-3.863-0.92342-6.5262 0.66893-3.346 3.022-5.8896 5.5017-8.1604 2.7006-2.4731 4.7145-5.6559 5.2775-9.3853 0.58888-3.9008-0.01204-7.8141-1.39-11.565-0.75419-2.0528-1.4176-4.1578-1.9626-6.2772-0.88693-3.4496 3.0735-4.2701 4.961-6.1925 1.7503-1.7826 3.4195-3.9094 5.7431-4.9519 2.9397-1.319 5.205 1.9522 5.7005 4.5255 0.57278 2.9744 3.5612 2.8052 5.6597 4.4962 2.4346 1.962 3.4071 5.2054 3.4158 8.1506 0.0074 2.4948 0.09648 5.8668-0.62192 7.6637-1.0255 2.565-1.2439 5.3075-1.4072 8.0522-0.17266 2.9015-0.7752 5.8406 0.29913 8.6974 1.321 3.5129 2.6527 7.3154 5.3664 9.902 2.7783 2.6481 6.0767 4.5867 9.3758 6.4972 2.2042 1.2764 4.5978 2.7004 4.9184 5.8037 0.31055 3.0057-2.2624 4.8266-4.8985 5.5609-3.5226 0.98128-6.0282 3.8551-7.7652 7.0342-1.6773 3.0698-4.2492 5.5472-5.7182 8.761-1.3569 2.9686-3.3899 5.455-4.2038 8.7713-0.73722 3.004-2.8577 5.1008-4.7596 7.4295-1.4687 1.7983-0.84067 4.3807-0.80806 6.3088 0.04676 2.7641-0.29901 7.0373-3.4017 7.5262-2.6585 0.41888-4.5306-1.0339-6.435-2.9914-2.0348-2.0914-4.4935-3.8043-7.4422-4.4596-3.0841-0.68539-6.5793-1.7858-8.3408-4.3888-1.9799-2.9258-5.6054-3.3529-8.9052-2.0448-3.5238 1.3969-6.3026 4.1578-9.438 6.2215-2.3788 1.5658-1.8717 5.5612-4.7466 6.3654-2.4505 0.68551-5.4418 1.5108-7.7674 0.28456-2.101-1.1078-4.2766-2.1024-6.5241-2.8414-2.6599-0.87455-5.3093-0.33049-8.0445 0.42926-4.8736 1.3538-10.017 1.0189-15.013 0.77171-2.99-0.14797-4.3516-2.8514-5.585-5.4024-1.619-3.3488-2.3633-6.9776-3.5304-10.553-0.95785-2.9342-0.49915-5.9918 0.04755-8.953 0.50187-2.7184-0.54519-5.743 0.14141-8.5549 0.39376-1.6126-0.19854-3.9756 1.2322-5.0634z" style="paint-order:normal"/><path d="m109.95 318.1c-0.12485 2.8291 0.8468 5.8321-0.17678 8.488-0.66651 1.7294-2.3827 3.5097-1.4007 5.4088 0.66581 1.2877 1.4836 2.4754 2.3088 4.0763 0.98588 1.9125 2.797 3.2989 4.6756 4.1674 3.1378 1.4506 6.6495 1.1059 9.976 1.926 3.1153 0.76797 6.2431 1.4796 9.317 2.3927 2.9731 0.88315 8.9302 4.5554 9.1998 1.4072 0.13551-1.5824 0.15271-2.9829 0.40281-4.6945 0.31701-2.1694 2.076-4.6725 0.8367-6.5777-1.5361-2.3615-4.5986-2.8339-7.1419-3.4942-2.5536-0.66296-5.1047-1.1017-7.5997-2.202-3.4265-1.511-5.7854-4.636-7.4027-7.816-1.0196-2.0047-2.3821-3.7998-3.0498-5.9595-0.82291-2.6616-0.30179-5.4915 0.63366-8.1365 0.71099-2.0103 2.3066-3.4041 3.9582-4.6939 1.4516-1.1335 2.3045-1.856 3.6467-3.4092 1.4897-1.7239 3.5969-2.7483 5.1686-4.367 1.4384-1.4814 2.7657-3.9576 1.8157-5.7932-0.90157-1.7421-1.9685-4.4539-4.1141-4.3512-2.7986 0.13398-4.3419 2.7406-5.6875 4.7922-1.339 2.0415-1.7939 4.6469-3.5583 6.3815-1.5375 1.5115-2.7847 3.2547-4.0961 4.9674-1.3325 1.7403-2.2646 3.585-3.2968 5.5835-1.2271 2.3758-2.9405 4.4684-3.4736 7.2188-0.30912 1.595-1.6055 2.9981-0.94171 4.6852z" style="paint-order:normal"/></g><g fill="#bcebcb"><path d="m-14.634 272.69c6.7115-3.113 15.047-3.6171 21.766-0.37167 5.6383 2.7234 12.03 4.0587 18.185 3.7196 5.441-0.29977 10.607-0.98267 16.139-1.2843 5.1416-0.28037 9.4382-5.6571 14.375-9.9392 4.1524-3.6014 10.996-6.7752 11.672-12.191 0.79377-6.3645 3.6089-10.231 4.6238-16.025 1.1054-6.3107 2.7842-16.476 8.8083-15.808 3.5114 0.38978 1.4182 8.1279 1.0722 11.897-0.7162 7.8008 8.4008 8.9168 12.237 13.74 4.7295 5.9475-7.5549 4.5964-10.942 6.9575-5.0596 3.5274-14.441 5.6239-14.183 12.676 0.16237 4.4369 4.5777 18.261-3.1674 13.893-6.7388-3.8012-15.861-5.118-22.257-0.27525-5.8023 4.3934-8.881 10.196-15.922 14.154-2.039 1.1463-7.4391-4.4132-11.097-6.1053-7.9562-3.6806-16.642-1.2113-24.515 0.77484-6.3034 1.5902-11.425-2.1064-9.1411-9.3685 0.77242-2.4555 1.0114-4.2172 2.3459-6.4432z" style="paint-order:normal"/><path d="m530.74 248.27c-3.3674 0.33515-6.5778-0.50198-9.4571-2.6514-2.8538-2.1303-6.1243-2.9824-9.4433-3.9735-4.0508-1.2095-5.2077-5.5649-7.5591-8.5649-2.3873-3.0458-2.6724-6.9617-3.9393-10.487-1.4508-4.0373-3.0631-8.0033-4.6099-12.037-1.139-2.9708-2.9857-7.0615-4.9555-8.5804-2.1384-1.6488-5.8133-5.1315-8.7247-7.2534-3.1279-2.2797-6.7162-4.04-10.465-5.0098-3.6691-0.94914-6.3525-3.7692-9.7559-5.214-3.8074-1.6163-10.054-3.2732-12.198 0.10331-2.2332 3.517 0.11319 8.4334 4.0791 9.7223 3.0648 0.99606 6.6583 1.4786 9.0122 3.6812 2.5996 2.4327 2.4555 5.4901 4.5951 9.2719 2.4426 4.3173 7.7974 5.7279 10.43 9.6181 1.7117 2.5291 4.0577 8.0565 0.75687 9.4604-2.5671 1.0918-6.9836 1.601-6.882 5.4526 0.0864 3.2745 0.90856 7.2635-1.6011 9.8578-2.5116 2.5963-4.743 5.9496-8.1496 7.0122-4.4708 1.3946-0.86608 6.261-2.0106 9.2636-1.1538 3.0269-1.8278 6.616-4.6808 8.5202-2.8776 1.9206-5.3007 4.4992-8.1774 6.409-3.0348 2.0148-4.1355 5.9729-2.1347 9.318 2.1523 3.5984 6.8355 4.1029 10.661 4.6389 2.3106 0.32378 6.0611-0.57238 9.0266-0.25617 3.4591 0.36883 6.811 1.0739 10.302 1.149 4.7049 0.10116 8.8928 2.5645 12.807 4.9579 2.7478 1.6803 5.2853 3.8922 8.5102 4.0565 3.6131 0.1841 6.7129-0.35043 10.001-2.7844 1.4596-1.0805-1.4206 0.47627 0.5263-0.73734 3.64-2.269 1.8556-6.938 3.4528-10.147 1.7108-3.4377 1.092-7.2065 1.4413-10.971 0.36652-3.9495 2.1355-7.5532 3.346-11.299 1.3897-4.301 6.0718-5.3272 9.8791-6.4033 2.9033-0.82066 4.3297-4.9036 5.4458-6.5073l0.47176 0.38529z" style="paint-order:normal"/></g><g fill="#bcebcb" fill-opacity=".6837"><path d="m41.529 175.06 30.746-62.369 61.338 46.777z" style="font-variation-settings:\'wght\' 600"/><path d="m175.87 12.467-44.455 47.203 22.947 29.402 83.545-88.023z" style="font-variation-settings:\'wght\' 600"/><path d="m339.26 410.95 67.429-6.3598-20.897 40.956-56.846-0.73197z" style="font-variation-settings:\'wght\' 600"/><path d="m434.51 346.68-19.376 52.724 67.475-10.985 15.853-57.421z" style="font-variation-settings:\'wght\' 600"/></g><g fill="#5ab59d"><path transform="matrix(.95434 .044806 -.04797 1.0217 35.636 -25.312)" d="m384.4 438.68c-18.766 1.3122-37.531 2.6253-56.297 3.9375-3.3056 0.23138-5.7978 3.0987-5.5664 6.4043 0.23138 3.3056 3.0987 5.7978 6.4043 5.5664 18.766-1.3122 37.531-2.6233 56.297-3.9356 7.8257-0.54776 6.9898-12.52-0.83789-11.973zm168.3-86.282c-36.952 14.114-73.696 28.121-108.52 36.577-34.828 8.4564-68.33 11.524-102.21 14.61-3.4527 0.31412-5.9788 3.1835-5.6416 6.4084 0.33631 3.225 3.4084 5.5844 6.861 5.2695 33.883-3.0855 68.146-6.1891 104.15-14.932 36.007-8.7429 73.165-22.962 110.12-37.075 3.2107-1.226 4.7492-4.651 3.4364-7.6498-1.3134-2.9981-4.98-4.4342-8.19-3.2079zm-120.67-14.199c-2.6207 0.33197-4.9076 2.0514-5.6459 4.5314-8.64 29.033-17.134 57.408-34.806 84.904-17.671 27.496-45.174 54.973-72.979 82.648-2.5363 2.5239-2.3491 6.4694 0.41646 8.7731 2.7649 2.3044 7.0592 2.1266 9.5948-0.39786 27.805-27.674 55.918-55.55 74.692-84.762 18.775-29.213 27.558-58.906 36.198-87.939 0.98306-3.3072-1.1731-6.718-4.7843-7.6028-0.90289-0.22087-1.8131-0.26427-2.6867-0.15362zm0.13605 0.95556c0.7421-0.0934 1.5186-0.0568 2.2885 0.13095 6.8e-4 1.6e-4 1e-3 -2.4e-4 2e-3 -1e-4 3.0809 0.75585 4.8795 3.6181 4.0491 6.4117-8.6402 29.034-17.4 58.622-36.089 87.701-18.689 29.08-46.753 56.923-74.559 84.598-2.1534 2.144-5.8048 2.2954-8.1529 0.33844-2.3486-1.9564-2.5052-5.2484-0.35112-7.392 27.806-27.675 55.354-55.181 73.112-82.812 17.758-27.631 26.276-56.108 34.916-85.142 0.62383-2.0954 2.5563-3.5537 4.7846-3.8342zm2.4205-0.33522c-3.347-0.8188-6.7955 0.98976-7.7036 4.0401-8.6401 29.034-17.146 57.46-34.861 85.023-17.715 27.563-45.24 55.054-73.046 82.729-2.3452 2.3337-2.1733 5.953 0.38377 8.083 2.5565 2.1307 6.5302 1.9656 8.8747-0.36863 27.806-27.675 55.893-55.533 74.625-84.679 18.732-29.146 27.505-58.786 36.145-87.82 0.90681-3.0506-1.0705-6.1876-4.4171-7.0076z" color="#000000"/><path d="m182.45 2.0332c-1.5904 0.046065-3.0973 0.72191-4.1895 1.8789l-44.529 47.168c-10.972-13.253-23.631-26.423-36.215-39.518-1.1029-1.1468-2.6162-1.8086-4.207-1.8398-1.5907-0.030965-3.1285 0.57111-4.2754 1.6738-2.3888 2.2956-2.4649 6.093-0.16992 8.4824 16.353 17.016 32.55 33.908 44.572 50.244 4.591 6.2385 8.621 12.462 12.324 18.697-14.044 12.969-28.089 25.939-42.133 38.908-6.6532-4.5982-13.012-9.3007-18.885-14.188-16.701-13.897-30.143-29.634-43.82-45.682-1.0322-1.2115-2.5033-1.9632-4.0898-2.0898-1.5863-0.12669-3.1579 0.38196-4.3691 1.4141-2.5221 2.1497-2.8238 5.9371-0.67383 8.459 10.543 12.37 21.247 24.917 33.691 36.762l-31.182 57.092c-1.5888 2.9086-0.51836 6.5545 2.3906 8.1426 2.9086 1.5888 6.5545 0.51837 8.1426-2.3906l29.795-54.555c0.80827 0.6928 1.6171 1.3844 2.4414 2.0703 17.687 14.717 38.629 27.391 59.34 39.957 2.8331 1.719 6.5234 0.81566 8.2422-2.0176 1.719-2.8331 0.81566-6.5234-2.0176-8.2422-9.7642-5.9243-19.462-11.829-28.752-17.867 12.65-11.681 25.299-23.364 37.949-35.045 3.55 6.5441 6.8847 13.115 10.236 19.748 0.71778 1.4204 1.9705 2.4974 3.4824 2.9941 1.5121 0.49681 3.1597 0.37245 4.5801-0.34571 2.9558-1.4947 4.1413-5.1018 2.6484-8.0586-3.7895-7.4998-7.6366-15.08-11.863-22.727 12.265-11.326 19.294-18.014 31.559-29.34 2.434-2.2485 7.8221-10.683 5.5736-13.117-1.0794-1.1684-2.5786-1.8604-4.168-1.9238-1.5903-0.064-3.1409 0.50649-4.3105 1.5859-11.605 10.717-23.21 21.434-34.814 32.15-3.5179-5.7989-7.3327-11.633-11.654-17.506-0.59415-0.80734-1.2354-1.6132-1.8457-2.4199l45.73-48.439c2.2752-2.4097 2.1659-6.2076-0.24414-8.4824-1.157-1.0923-2.7005-1.6804-4.291-1.6348z" color="#000000" stroke-linecap="round" stroke-linejoin="round" style="-inkscape-stroke:none"/></g><g fill="none" stroke="#5ab59d" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"><path d="m321.9 56.832 39.568-13.822m49.949 117.25-13.699-31.065m25.405-27.069c-16.729-8.8949-50.187-26.685-50.187-26.685s-23.08 12.177-34.621 18.266m4.9739 29.106c26.648-6.9066 79.944-20.72 79.944-20.72s-34.029 36.106-51.043 54.16m121.54-38.615c-23.511-5.1886-70.534-15.566-70.534-15.566s17.546 43.06 26.319 64.59m-95.968-157.96c2.8269 11.417 5.6539 22.834 8.4808 34.251 3.7187 10.414 11.156 31.241 11.156 31.241s47.08-3.1593 70.621-4.739"/><path d="m184.03 437.33-22.946 12.878m-44.873-24.049 44.789 23.924-17.162 44.041m-42.821-143.13 23.209 39.15-34.156 11.374m16.994 63.558 17.214-75.001 43.099 6.4575m-139.44-3.1636 62.132 8.0781-26.976-61.447"/></g><g fill="#bcebcb"><circle cx="89.576" cy="401.04" r="5.3851"/><circle cx="123.46" cy="389.31" r="5.3851"/><circle cx="115.99" cy="426.11" r="5.3851"/><circle cx="160.46" cy="449.92" r="5.3851"/><circle cx="361.52" cy="42.673" r="5.3851"/><circle cx="373.2" cy="74.363" r="5.3851"/><circle cx="422.43" cy="101.78" r="5.3851"/><circle cx="397.54" cy="128.65" r="5.3851"/></g><g transform="matrix(1.1549 0 0 1.1549 -34.416 -26.992)"><path d="m255.48 155.24c0.0388 2.7251 0.90395 2.8548 1.8984 5.0866 1.0142 2.2762 0.41496 4.3934 0.99348 7.1557 0.57444 2.7428 4.6073 3.772 4.7995 6.347 0.20272 2.7154 0.0437 5.3177 0.2567 8.2833 0.2693 3.749 0.30527 7.5204 1.3759 11.226 0.81961 2.8368 0.30803 6.0728 2.1179 8.6932 1.8682 2.7048 2.7338 7.3217 5.9634 7.9021 1.5867 0.28515 2.3443 0.61693 4.7248 1.9716 2.074 1.1803 5.0698 2.604 7.2286 1.3144 2.7704-1.6549 5.6315-0.75175 8.731-1.5109 2.8482-0.69758 4.6101 2.6462 5.765 4.6969 1.4276 2.5349 5.4729 10.361 3.5498 8.057-0.94026-1.1265 0.56134 2.5692 0.95981 3.1323 1.4925 2.1091 2.317 4.5115 3.0628 6.972 0.78307 2.5838 1.0802 4.0647 2.1965 6.8477 1.1087 2.764 3.14 5.0846 3.6839 8.1204 0.56544 3.1564 1.3296 6.2302 2.6013 9.2414 1.1856 2.8071 3.074 6.7422 0.92826 9.1424-2.2813 2.5518-2.4594 12.284-3.3312 9.1438-0.36947-1.3307-0.59029 2.5423-0.70896 3.3145-0.44697 2.9085 1.1552 5.4473 2.0488 8.0871 1.2019 3.5501-2.7668 5.2658-5.1246 6.9366-2.2922 1.6244-5.7756 2.408-6.6881 5.0896-1.0266 3.0173-4.6559 4.8854-6.7782 3.956-1.5945-0.69829-2.2183-0.0564-3.0907 1.2802-0.84122 1.2888-2.1476 2.8647-3.9408 3.7662-2.4083 1.2108-5.0152 2.7574-6.9308 4.1498-2.3683 1.7216-6.4752 2.0974-6.2134 5.8658 0.23507 3.3839-2.862 5.0539-5.5628 5.5808-2.3571 0.4598-3.5703 2.6642-5.8459 1.7122-2.8401-1.1883-5.051 1.0468-7.6595 1.5219-3.2258 0.58751-6.119 3.4911-9.3645 2.952-2.3492-0.39023-4.274 0.69267-6.8969 0.44958-5.924-0.54905-11.77-1.8546-17.78-1.5407-3.4373 0.17952-7.4444 3.174-10.267 1.1251-1.6257-1.1801-3.1949-2.8627-4.887-3.9072-1.631-1.0069-1.9832-3.5714-2.2809-5.5388-0.57533-3.8027 0.4589-7.5866 0.52536-11.374 0.0559-3.1873-0.83904-6.2974-1.0538-9.4599-0.27417-4.0375 1.1518-8.2357-6e-3 -12.125-0.76218-2.5615-2.3777-3.9783-2.9059-7.0429-0.51409-2.9829 0.22394-6.0453 2.2216-8.1252 1.1182-1.1642 1.2147-2.6272 1.7187-3.9731 0.51323-1.3703 1.4334-3.7391 1.6268-5.6333 0.29135-2.854-0.0969-6.1521-2.7587-8.0076-3.1188-2.1741-7.1054-2.9498-9.8628-5.712-2.037-2.0406-2.3727-4.9475-4.0227-7.1758-3.008-4.0622-5.9508-8.4449-10.156-11.216-2.68-1.7661-4.0305-4.3031-6.0172-6.8994-1.7499-2.287-3.152-4.5306-4.5654-6.9643-2.5809-4.444-4.7668-9.4578-4.6436-14.559 0.0682-2.8236 0.0696-5.6202-0.0509-8.4618-0.42291-9.9751-0.56285-20.25 2.738-29.837 0.8332-2.4199 2.3891-4.7308 5.2845-4.7464 2.6836-0.0145 4.5747-1.9457 7.298-2.1087 2.9095-0.17421 5.5694-1.5295 8.4296-1.5807 5.1082-0.0915 10.181 0.0881 15.321-0.12921 2.5001-0.10572 4.7763-1.2332 7.1198-1.5421 4.3589-0.57444 8.5751 0.88746 12.942 0.80807 3.3486-0.0609 6.8825 0.7617 10.059-0.28472 3.04-1.0014 6.3612-0.5695 9.4952-0.28902 3.8944 0.34854 7.8817 0.76476 11.728-0.18402z" fill="#59b49d" fill-opacity=".48673" style="font-variation-settings:\'wght\' 600"/><g fill="#bbebca"><circle cx="272.41" cy="262.94" r="24.497" style="font-variation-settings:\'wght\' 600"/><circle cx="208.92" cy="207.54" r="18.473" style="font-variation-settings:\'wght\' 600"/><circle cx="291.7" cy="189.08" r="11.818" style="font-variation-settings:\'wght\' 600"/></g><g fill="#87d68d"><path class="st0" d="m271.2 227.89c-18.804 0-34.045 15.243-34.045 34.046 0 11.603 5.8727 21.757 14.67 27.996 8.0267 5.6941 9.7988 7.0526 12.621 12.441 2.233 4.2623 5.8546 11.743 5.8546 11.743 0.17018 0.34035 0.5173 0.55612 0.89935 0.55612 0.38035 0 0.73053-0.21594 0.90054-0.55612 0 0 3.6218-7.4802 5.8546-11.743 2.8208-5.3885 4.5944-6.747 12.62-12.441 8.7986-6.2393 14.671-16.394 14.671-27.996-1.7e-4 -18.803-15.244-34.046-34.046-34.046zm0 56.862c-12.599 0-22.814-10.215-22.814-22.816 0-12.6 10.215-22.815 22.814-22.815 12.6 0 22.815 10.215 22.815 22.815 0 12.6-10.215 22.816-22.815 22.816z"/><path class="st0" d="m208.01 181.12c-14.179 0-25.672 11.494-25.672 25.673 0 8.7493 4.4284 16.406 11.062 21.111 6.0527 4.2937 7.389 5.3182 9.5172 9.3814 1.6838 3.2141 4.4148 8.8547 4.4148 8.8547 0.12833 0.25665 0.39009 0.41935 0.67817 0.41935 0.28682 0 0.55088-0.16283 0.67907-0.41935 0 0 2.7311-5.6406 4.4148-8.8547 2.127-4.0633 3.4645-5.0877 9.5162-9.3814 6.6347-4.7049 11.063-12.362 11.063-21.111-1.3e-4 -14.179-11.495-25.673-25.673-25.673zm0 42.878c-9.5004 0-17.203-7.703-17.203-17.205 0-9.5014 7.703-17.204 17.203-17.204 9.5014 0 17.204 7.703 17.204 17.204 0 9.5016-7.7029 17.205-17.204 17.205z"/><path class="st0" d="m291.12 172.17c-9.0716 0-16.425 7.3537-16.425 16.425 0 5.5976 2.8332 10.496 7.0774 13.507 3.8724 2.747 4.7273 3.4024 6.0889 6.0021 1.0773 2.0563 2.8245 5.6651 2.8245 5.6651 0.0821 0.1642 0.24957 0.26829 0.43388 0.26829 0.1835 0 0.35244-0.10418 0.43446-0.26829 0 0 1.7473-3.6088 2.8245-5.6651 1.3608-2.5996 2.2165-3.255 6.0882-6.0021 4.2448-3.0101 7.078-7.909 7.078-13.507-8e-5 -9.0715-7.3544-16.425-16.425-16.425zm0 27.432c-6.0782 0-11.006-4.9282-11.006-11.007 0-6.0788 4.9282-11.007 11.006-11.007 6.0788 0 11.007 4.9282 11.007 11.007 0 6.0789-4.9282 11.007-11.007 11.007z"/></g></g></g></g></svg>\n'}),J=new u.LabIcon({name:"jupytergis::logoMini",svgstr:'<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n\x3c!-- Created with Inkscape (http://www.inkscape.org/) --\x3e\n\n<svg\n width="32"\n height="32"\n viewBox="0 0 8.4666666 8.4666666"\n version="1.1"\n id="svg1"\n class="jp-icon-selectable jgis-main-logo"\n xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"\n xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"\n xmlns="http://www.w3.org/2000/svg"\n xmlns:svg="http://www.w3.org/2000/svg">\n <defs\n class="jp-icon-selectable jgis-main-logo">\n <clipPath\n id="clipPath72"\n class="jp-icon-selectable jgis-main-logo">\n <g\n class="jp-icon-selectable jgis-main-logo"\n fill="#0e96ff"\n inkscape:label="globe_mask">\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#0e96ff"\n d="M 7.4248698,5.1092489 C 7.2793253,5.178829 7.1169909,5.2416342 6.9396281,5.2989014 6.552555,5.4238799 6.0924054,5.5209537 5.5831217,5.5831217 5.5208884,6.0924969 5.4238034,6.5527921 5.2989014,6.9396281 5.241439,7.117595 5.1785959,7.2804945 5.1087321,7.4264201 A 3.314533,3.314533 0 0 0 7.4248698,5.1092489 Z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#0e96ff"\n d="m 5.6275635,3.3444987 c 0.021961,0.2855957 0.034623,0.5815825 0.034623,0.8878011 0,0.306279 -0.01162,0.6039712 -0.03359,0.8898682 C 6.0746535,5.0627205 6.4747514,4.9769043 6.8026855,4.8710205 7.1239097,4.7673033 7.3754337,4.643783 7.5328735,4.5237549 A 3.314533,3.314533 0 0 0 7.5478597,4.2333333 3.314533,3.314533 0 0 0 7.5302897,3.9413615 C 7.3727069,3.8218794 7.122358,3.6988624 6.8026855,3.5956462 6.4745637,3.4897016 6.0740105,3.4038414 5.6275635,3.3444987 Z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#0e96ff"\n d="m 5.1071818,1.037146 c 0.070473,0.1467402 0.1338386,0.3106289 0.1917196,0.4898926 0.124897,0.3868206 0.2204364,0.8482336 0.2826701,1.3570231 0.5096828,0.062187 0.9707404,0.1586464 1.3580566,0.2837036 0.1773628,0.057267 0.3396972,0.1200723 0.4852417,0.1896525 A 3.314533,3.314533 0 0 0 5.1071818,1.037146 Z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#0e96ff"\n d="m 5.1226847,5.6280802 c -0.2852314,0.022002 -0.5823723,0.034107 -0.8883178,0.034107 -0.3063907,0 -0.6043564,-0.012058 -0.890385,-0.034107 0.05956,0.4456991 0.1458012,0.8446684 0.2516643,1.1725383 0.1028558,0.3185561 0.2250763,0.5704033 0.344165,0.7281209 a 3.314533,3.314533 0 0 0 0.2935221,0.01912 3.314533,3.314533 0 0 0 0.2945557,-0.021187 C 4.6465611,7.3688434 4.7685457,7.1179948 4.8710205,6.8006185 4.9768834,6.4727489 5.0631248,6.0737795 5.1226847,5.6280802 Z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#0e96ff"\n d="m 4.2343669,3.2540649 c -0.3252715,0 -0.6399866,0.014485 -0.9394776,0.040308 -0.025716,0.2994007 -0.040824,0.6128817 -0.040824,0.9379272 0,0.3253236 0.014032,0.640364 0.039791,0.9399943 0.2998155,0.025912 0.6148197,0.040308 0.9405111,0.040308 0.325105,0 0.6392968,-0.014447 0.938444,-0.040308 0.025759,-0.2996304 0.039791,-0.6146711 0.039791,-0.9399943 0,-0.3248601 -0.015136,-0.6381622 -0.040824,-0.9374105 C 4.8730268,3.2688386 4.5592761,3.2540649 4.2343669,3.2540649 Z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#0e96ff"\n d="M 4.2333333,0.91880697 A 3.314533,3.314533 0 0 0 3.9398112,0.93792725 C 3.8207224,1.0956068 3.6985021,1.3454248 3.5956462,1.6639811 3.4896444,1.9922806 3.4035487,2.3921801 3.3439819,2.8385864 3.6299807,2.8165648 3.9279192,2.80448 4.2343669,2.80448 c 0.3059761,0 0.6031179,0.011604 0.8883178,0.03359 C 5.0631199,2.3918651 4.9769826,1.9921578 4.8710205,1.6639811 4.7671835,1.3423859 4.6433966,1.0906799 4.5232381,0.93327637 4.5229255,0.93286679 4.5225169,0.93265088 4.5222046,0.93224284 A 3.314533,3.314533 0 0 0 4.2333333,0.91880697 Z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#0e96ff"\n d="M 2.8835449,5.5831217 C 2.3740511,5.520937 1.9139685,5.4238337 1.5270386,5.2989014 1.3493306,5.2415228 1.1865255,5.1789909 1.0407633,5.1092489 a 3.314533,3.314533 0 0 0 2.3187216,2.319755 C 3.2890926,7.2823721 3.2255904,7.118719 3.1677653,6.9396281 3.0428631,6.5527921 2.9457782,6.0924969 2.8835449,5.5831217 Z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#0e96ff"\n d="M 2.8391032,3.3439819 C 2.3932489,3.4034793 1.9939617,3.4897689 1.6660482,3.5956462 1.3463757,3.6988623 1.0939842,3.8218795 0.93637695,3.9413615 a 3.314533,3.314533 0 0 0 -0.01757,0.2919718 3.314533,3.314533 0 0 0 0.0149862,0.2904216 C 1.0912378,4.6437829 1.3448239,4.7673034 1.6660482,4.8710205 1.993688,4.9768094 2.3926527,5.0626941 2.8380697,5.122168 2.8161004,4.836271 2.80448,4.5385788 2.80448,4.2322998 c 0,-0.3064032 0.012637,-0.6025646 0.034623,-0.8883179 z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#0e96ff"\n d="m 3.3594849,1.0376628 a 3.314533,3.314533 0 0 0 -2.317688,2.319755 C 1.1873413,3.2878376 1.3496757,3.2250324 1.5270386,3.1677653 1.9140247,3.0428146 2.3754409,2.9462608 2.8850952,2.8840617 2.9473288,2.3752722 3.0428681,1.9138592 3.1677653,1.5270386 3.2255905,1.3479475 3.2890926,1.1842948 3.3594849,1.0376628 Z" />\n </g>\n </clipPath>\n </defs>\n <g\n inkscape:label="Layer 1"\n inkscape:groupmode="layer"\n class="jp-icon-selectable jgis-main-logo">\n <g\n class="jp-icon-selectable jgis-main-logo"\n inkscape:label="planet">\n <g\n class="jp-icon-selectable jgis-main-logo"\n fill="#5ab59d">\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#5ab59d"\n d="M 7.4248698,5.1092489 C 7.2793253,5.178829 7.1169909,5.2416342 6.9396281,5.2989014 6.552555,5.4238799 6.0924054,5.5209537 5.5831217,5.5831217 5.5208884,6.0924969 5.4238034,6.5527921 5.2989014,6.9396281 5.241439,7.117595 5.1785959,7.2804945 5.1087321,7.4264201 A 3.314533,3.314533 0 0 0 7.4248698,5.1092489 Z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#5ab59d"\n d="m 5.6275635,3.3444987 c 0.021961,0.2855957 0.034623,0.5815825 0.034623,0.8878011 0,0.306279 -0.01162,0.6039712 -0.03359,0.8898682 C 6.0746535,5.0627205 6.4747514,4.9769043 6.8026855,4.8710205 7.1239097,4.7673033 7.3754337,4.643783 7.5328735,4.5237549 A 3.314533,3.314533 0 0 0 7.5478597,4.2333333 3.314533,3.314533 0 0 0 7.5302897,3.9413615 C 7.3727069,3.8218794 7.122358,3.6988624 6.8026855,3.5956462 6.4745637,3.4897016 6.0740105,3.4038414 5.6275635,3.3444987 Z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#5ab59d"\n d="m 5.1071818,1.037146 c 0.070473,0.1467402 0.1338386,0.3106289 0.1917196,0.4898926 0.124897,0.3868206 0.2204364,0.8482336 0.2826701,1.3570231 0.5096828,0.062187 0.9707404,0.1586464 1.3580566,0.2837036 0.1773628,0.057267 0.3396972,0.1200723 0.4852417,0.1896525 A 3.314533,3.314533 0 0 0 5.1071818,1.037146 Z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#5ab59d"\n d="m 5.1226847,5.6280802 c -0.2852314,0.022002 -0.5823723,0.034107 -0.8883178,0.034107 -0.3063907,0 -0.6043564,-0.012058 -0.890385,-0.034107 0.05956,0.4456991 0.1458012,0.8446684 0.2516643,1.1725383 0.1028558,0.3185561 0.2250763,0.5704033 0.344165,0.7281209 a 3.314533,3.314533 0 0 0 0.2935221,0.01912 3.314533,3.314533 0 0 0 0.2945557,-0.021187 C 4.6465611,7.3688434 4.7685457,7.1179948 4.8710205,6.8006185 4.9768834,6.4727489 5.0631248,6.0737795 5.1226847,5.6280802 Z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#5ab59d"\n d="m 4.2343669,3.2540649 c -0.3252715,0 -0.6399866,0.014485 -0.9394776,0.040308 -0.025716,0.2994007 -0.040824,0.6128817 -0.040824,0.9379272 0,0.3253236 0.014032,0.640364 0.039791,0.9399943 0.2998155,0.025912 0.6148197,0.040308 0.9405111,0.040308 0.325105,0 0.6392968,-0.014447 0.938444,-0.040308 0.025759,-0.2996304 0.039791,-0.6146711 0.039791,-0.9399943 0,-0.3248601 -0.015136,-0.6381622 -0.040824,-0.9374105 C 4.8730268,3.2688386 4.5592761,3.2540649 4.2343669,3.2540649 Z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#5ab59d"\n d="M 4.2333333,0.91880697 A 3.314533,3.314533 0 0 0 3.9398112,0.93792725 C 3.8207224,1.0956068 3.6985021,1.3454248 3.5956462,1.6639811 3.4896444,1.9922806 3.4035487,2.3921801 3.3439819,2.8385864 3.6299807,2.8165648 3.9279192,2.80448 4.2343669,2.80448 c 0.3059761,0 0.6031179,0.011604 0.8883178,0.03359 C 5.0631199,2.3918651 4.9769826,1.9921578 4.8710205,1.6639811 4.7671835,1.3423859 4.6433966,1.0906799 4.5232381,0.93327637 4.5229255,0.93286679 4.5225169,0.93265088 4.5222046,0.93224284 A 3.314533,3.314533 0 0 0 4.2333333,0.91880697 Z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#5ab59d"\n d="M 2.8835449,5.5831217 C 2.3740511,5.520937 1.9139685,5.4238337 1.5270386,5.2989014 1.3493306,5.2415228 1.1865255,5.1789909 1.0407633,5.1092489 a 3.314533,3.314533 0 0 0 2.3187216,2.319755 C 3.2890926,7.2823721 3.2255904,7.118719 3.1677653,6.9396281 3.0428631,6.5527921 2.9457782,6.0924969 2.8835449,5.5831217 Z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#5ab59d"\n d="M 2.8391032,3.3439819 C 2.3932489,3.4034793 1.9939617,3.4897689 1.6660482,3.5956462 1.3463757,3.6988623 1.0939842,3.8218795 0.93637695,3.9413615 a 3.314533,3.314533 0 0 0 -0.01757,0.2919718 3.314533,3.314533 0 0 0 0.0149862,0.2904216 C 1.0912378,4.6437829 1.3448239,4.7673034 1.6660482,4.8710205 1.993688,4.9768094 2.3926527,5.0626941 2.8380697,5.122168 2.8161004,4.836271 2.80448,4.5385788 2.80448,4.2322998 c 0,-0.3064032 0.012637,-0.6025646 0.034623,-0.8883179 z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#5ab59d"\n d="m 3.3594849,1.0376628 a 3.314533,3.314533 0 0 0 -2.317688,2.319755 C 1.1873413,3.2878376 1.3496757,3.2250324 1.5270386,3.1677653 1.9140247,3.0428146 2.3754409,2.9462608 2.8850952,2.8840617 2.9473288,2.3752722 3.0428681,1.9138592 3.1677653,1.5270386 3.2255905,1.3479475 3.2890926,1.1842948 3.3594849,1.0376628 Z" />\n </g>\n <g\n class="jp-icon-selectable jgis-main-logo"\n inkscape:label="decor"\n clip-path="url(#clipPath72)">\n <g\n class="jp-icon-selectable jgis-main-logo"\n inkscape:label="layers">\n <g\n class="jp-icon-selectable jgis-main-logo"\n inkscape:label="topo"\n fill="#baebc9">\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#baebc9"\n d="m 5.8120483,-13.174906 a 9.265132,4.3162475 0 0 1 -7.9953776,2.13837 9.265132,4.3162475 0 0 1 -7.9958947,-2.138887 8.2971029,8.2971029 0 0 0 7.9958947,6.1200397 8.2971029,8.2971029 0 0 0 7.9953776,-6.1195227 z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#baebc9"\n d="m -2.1833293,-23.649719 a 8.2971029,8.2971029 0 0 0 -7.9964107,6.12004 9.265132,4.3162475 0 0 1 7.9964107,-2.139405 9.265132,4.3162475 0 0 1 8.0046794,2.144056 8.2971029,8.2971029 0 0 0 -8.0046794,-6.124691 z" />\n </g>\n <g\n class="jp-icon-selectable jgis-main-logo"\n fill="#e18335"\n inkscape:label="logo">\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#e18335"\n d="m 4.0157756,-11.591541 a 8.7066393,5.4086871 0 0 1 -6.0647461,1.534274 8.7066393,5.4086871 0 0 1 -6.0652629,-1.534274 7.1981392,7.1981392 0 0 0 6.0652629,3.3238286 7.1981392,7.1981392 0 0 0 6.0647461,-3.3238286 z" />\n <path\n class="jp-icon-selectable jgis-main-logo"\n fill="#e18335"\n d="m -2.0489705,-22.663733 a 7.1981392,7.1981392 0 0 0 -6.0652629,3.323828 8.7066393,5.4086871 0 0 1 6.0652629,-1.53479 8.7066393,5.4086871 0 0 1 6.0575114,1.524972 7.1981392,7.1981392 0 0 0 -6.0575114,-3.31401 z" />\n </g>\n </g>\n </g>\n </g>\n <g\n class="jp-icon-selectable jgis-main-logo"\n inkscape:label="moons"\n fill="#2d93ac">\n <circle\n class="jp-icon-selectable jgis-main-logo"\n fill="#2d93ac"\n cx="0.96336174"\n cy="0.94979668"\n r="0.45812771" />\n <circle\n class="jp-icon-selectable jgis-main-logo"\n fill="#2d93ac"\n cx="7.1098151"\n cy="1.0457554"\n r="0.69682437" />\n <circle\n fill="#2d93ac"\n class="jp-icon-selectable jgis-main-logo"\n cx="1.3378263"\n cy="7.3802752"\n r="0.5190413" />\n </g>\n </g>\n</svg>\n'}),q=new u.LabIcon({name:"jupytergis::logoMiniAlternative",svgstr:'<?xml version="1.0" encoding="UTF-8"?>\n\x3c!-- Created with Inkscape (http://www.inkscape.org/) --\x3e\n<svg width="32" height="32" version="1.1" viewBox="0 0 8.4667 8.4667" xmlns="http://www.w3.org/2000/svg">\n <defs>\n <mask id="mask1" maskUnits="userSpaceOnUse">\n <g transform="rotate(180 4.016 4.0856)">\n <path d="m7.4249 5.1092c-0.14554 0.06958-0.30788 0.13239-0.48524 0.18965-0.38707 0.12498-0.84722 0.22205-1.3565 0.28422-0.062233 0.50938-0.15932 0.96967-0.28422 1.3565-0.057462 0.17797-0.12031 0.34087-0.19017 0.48679a3.3145 3.3145 0 0 0 2.3161-2.3172z" fill="#fdfeff" style="font-variation-settings:\'wght\' 600"/>\n <path d="m5.6276 3.3445c0.021961 0.2856 0.034623 0.58158 0.034623 0.8878 0 0.30628-0.01162 0.60397-0.03359 0.88987 0.44606-0.059448 0.84615-0.14526 1.1741-0.25115 0.32122-0.10372 0.57275-0.22724 0.73019-0.34727a3.3145 3.3145 0 0 0 0.014986-0.29042 3.3145 3.3145 0 0 0-0.01757-0.29197c-0.15758-0.11948-0.40793-0.2425-0.7276-0.34572-0.32812-0.10594-0.72868-0.1918-1.1751-0.25115z" fill="#fdfeff" style="font-variation-settings:\'wght\' 600"/>\n <path d="m5.1072 1.0371c0.070473 0.14674 0.13384 0.31063 0.19172 0.48989 0.1249 0.38682 0.22044 0.84823 0.28267 1.357 0.50968 0.062187 0.97074 0.15865 1.3581 0.2837 0.17736 0.057267 0.3397 0.12007 0.48524 0.18965a3.3145 3.3145 0 0 0-2.3177-2.3203z" fill="#fdfeff" style="font-variation-settings:\'wght\' 600"/>\n <path d="m5.1227 5.6281c-0.28523 0.022002-0.58237 0.034107-0.88832 0.034107-0.30639 0-0.60436-0.012058-0.89038-0.034107 0.05956 0.4457 0.1458 0.84467 0.25166 1.1725 0.10286 0.31856 0.22508 0.5704 0.34416 0.72812a3.3145 3.3145 0 0 0 0.29352 0.01912 3.3145 3.3145 0 0 0 0.29456-0.021187c0.11867-0.15783 0.24066-0.40868 0.34313-0.72605 0.10586-0.32787 0.1921-0.72684 0.25166-1.1725z" fill="#fdfeff" style="font-variation-settings:\'wght\' 600"/>\n <path d="m4.2344 3.2541c-0.32527 0-0.63999 0.014485-0.93948 0.040308-0.025716 0.2994-0.040824 0.61288-0.040824 0.93793 0 0.32532 0.014032 0.64036 0.039791 0.93999 0.29982 0.025912 0.61482 0.040308 0.94051 0.040308 0.3251 0 0.6393-0.014447 0.93844-0.040308 0.025759-0.29963 0.039791-0.61467 0.039791-0.93999 0-0.32486-0.015136-0.63816-0.040824-0.93741-0.29875-0.026051-0.6125-0.040825-0.93741-0.040825z" fill="#fdfeff" style="font-variation-settings:\'wght\' 600"/>\n <path d="m4.2333 0.91881a3.3145 3.3145 0 0 0-0.29352 0.01912c-0.11909 0.15768-0.24131 0.4075-0.34416 0.72605-0.106 0.3283-0.1921 0.7282-0.25166 1.1746 0.286-0.022022 0.58394-0.034106 0.89038-0.034106 0.30598 0 0.60312 0.011604 0.88832 0.03359-0.059565-0.4462-0.1457-0.84591-0.25166-1.1741-0.10384-0.3216-0.22762-0.5733-0.34778-0.7307-3.126e-4 -4.0958e-4 -7.212e-4 -6.2549e-4 -0.0010335-0.0010335a3.3145 3.3145 0 0 0-0.28887-0.013436z" fill="#fdfeff" style="font-variation-settings:\'wght\' 600"/>\n <path d="m2.8835 5.5831c-0.50949-0.062185-0.96958-0.15929-1.3565-0.28422-0.17771-0.057379-0.34051-0.11991-0.48628-0.18965a3.3145 3.3145 0 0 0 2.3187 2.3198c-0.070392-0.14663-0.13389-0.31028-0.19172-0.48938-0.1249-0.38684-0.22199-0.84713-0.28422-1.3565z" fill="#fdfeff" style="font-variation-settings:\'wght\' 600"/>\n <path d="m2.8391 3.344c-0.44585 0.059497-0.84514 0.14579-1.1731 0.25166-0.31967 0.10322-0.57206 0.22623-0.72967 0.34572a3.3145 3.3145 0 0 0-0.01757 0.29197 3.3145 3.3145 0 0 0 0.014986 0.29042c0.15744 0.12003 0.41103 0.24355 0.73226 0.34727 0.32764 0.10579 0.7266 0.19167 1.172 0.25115-0.021969-0.2859-0.03359-0.58359-0.03359-0.88987 0-0.3064 0.012637-0.60256 0.034623-0.88832z" fill="#fdfeff" style="font-variation-settings:\'wght\' 600"/>\n <path d="m3.3595 1.0377a3.3145 3.3145 0 0 0-2.3177 2.3198c0.14554-0.06958 0.30788-0.13239 0.48524-0.18965 0.38699-0.12495 0.8484-0.2215 1.3581-0.2837 0.062234-0.50879 0.15777-0.9702 0.28267-1.357 0.057825-0.17909 0.12133-0.34274 0.19172-0.48938z" fill="#fdfeff" style="font-variation-settings:\'wght\' 600"/>\n </g>\n </mask>\n </defs>\n <g transform="translate(.43462 .29538)">\n <g transform="rotate(180 4.016 4.0856)" fill="#5ab59d" stroke-width="0" style="paint-order:markers stroke fill">\n <path d="m7.4249 5.1092c-0.14554 0.06958-0.30788 0.13239-0.48524 0.18965-0.38707 0.12498-0.84722 0.22205-1.3565 0.28422-0.062233 0.50938-0.15932 0.96967-0.28422 1.3565-0.057462 0.17797-0.12031 0.34087-0.19017 0.48679a3.3145 3.3145 0 0 0 2.3161-2.3172z" style="font-variation-settings:\'wght\' 600;paint-order:markers stroke fill"/>\n <path d="m5.6276 3.3445c0.021961 0.2856 0.034623 0.58158 0.034623 0.8878 0 0.30628-0.01162 0.60397-0.03359 0.88987 0.44606-0.059448 0.84615-0.14526 1.1741-0.25115 0.32122-0.10372 0.57275-0.22724 0.73019-0.34727a3.3145 3.3145 0 0 0 0.014986-0.29042 3.3145 3.3145 0 0 0-0.01757-0.29197c-0.15758-0.11948-0.40793-0.2425-0.7276-0.34572-0.32812-0.10594-0.72868-0.1918-1.1751-0.25115z" style="font-variation-settings:\'wght\' 600;paint-order:markers stroke fill"/>\n <path d="m5.1072 1.0371c0.070473 0.14674 0.13384 0.31063 0.19172 0.48989 0.1249 0.38682 0.22044 0.84823 0.28267 1.357 0.50968 0.062187 0.97074 0.15865 1.3581 0.2837 0.17736 0.057267 0.3397 0.12007 0.48524 0.18965a3.3145 3.3145 0 0 0-2.3177-2.3203z" style="font-variation-settings:\'wght\' 600;paint-order:markers stroke fill"/>\n <path d="m5.1227 5.6281c-0.28523 0.022002-0.58237 0.034107-0.88832 0.034107-0.30639 0-0.60436-0.012058-0.89038-0.034107 0.05956 0.4457 0.1458 0.84467 0.25166 1.1725 0.10286 0.31856 0.22508 0.5704 0.34416 0.72812a3.3145 3.3145 0 0 0 0.29352 0.01912 3.3145 3.3145 0 0 0 0.29456-0.021187c0.11867-0.15783 0.24066-0.40868 0.34313-0.72605 0.10586-0.32787 0.1921-0.72684 0.25166-1.1725z" style="font-variation-settings:\'wght\' 600;paint-order:markers stroke fill"/>\n <path d="m4.2344 3.2541c-0.32527 0-0.63999 0.014485-0.93948 0.040308-0.025716 0.2994-0.040824 0.61288-0.040824 0.93793 0 0.32532 0.014032 0.64036 0.039791 0.93999 0.29982 0.025912 0.61482 0.040308 0.94051 0.040308 0.3251 0 0.6393-0.014447 0.93844-0.040308 0.025759-0.29963 0.039791-0.61467 0.039791-0.93999 0-0.32486-0.015136-0.63816-0.040824-0.93741-0.29875-0.026051-0.6125-0.040825-0.93741-0.040825z" style="font-variation-settings:\'wght\' 600;paint-order:markers stroke fill"/>\n <path d="m4.2333 0.91881a3.3145 3.3145 0 0 0-0.29352 0.01912c-0.11909 0.15768-0.24131 0.4075-0.34416 0.72605-0.106 0.3283-0.1921 0.7282-0.25166 1.1746 0.286-0.022022 0.58394-0.034106 0.89038-0.034106 0.30598 0 0.60312 0.011604 0.88832 0.03359-0.059565-0.4462-0.1457-0.84591-0.25166-1.1741-0.10384-0.3216-0.22762-0.5733-0.34778-0.7307-3.126e-4 -4.0958e-4 -7.212e-4 -6.2549e-4 -0.0010335-0.0010335a3.3145 3.3145 0 0 0-0.28887-0.013436z" style="font-variation-settings:\'wght\' 600;paint-order:markers stroke fill"/>\n <path d="m2.8835 5.5831c-0.50949-0.062185-0.96958-0.15929-1.3565-0.28422-0.17771-0.057379-0.34051-0.11991-0.48628-0.18965a3.3145 3.3145 0 0 0 2.3187 2.3198c-0.070392-0.14663-0.13389-0.31028-0.19172-0.48938-0.1249-0.38684-0.22199-0.84713-0.28422-1.3565z" style="font-variation-settings:\'wght\' 600;paint-order:markers stroke fill"/>\n <path d="m2.8391 3.344c-0.44585 0.059497-0.84514 0.14579-1.1731 0.25166-0.31967 0.10322-0.57206 0.22623-0.72967 0.34572a3.3145 3.3145 0 0 0-0.01757 0.29197 3.3145 3.3145 0 0 0 0.014986 0.29042c0.15744 0.12003 0.41103 0.24355 0.73226 0.34727 0.32764 0.10579 0.7266 0.19167 1.172 0.25115-0.021969-0.2859-0.03359-0.58359-0.03359-0.88987 0-0.3064 0.012637-0.60256 0.034623-0.88832z" style="font-variation-settings:\'wght\' 600;paint-order:markers stroke fill"/>\n <path d="m3.3595 1.0377a3.3145 3.3145 0 0 0-2.3177 2.3198c0.14554-0.06958 0.30788-0.13239 0.48524-0.18965 0.38699-0.12495 0.8484-0.2215 1.3581-0.2837 0.062234-0.50879 0.15777-0.9702 0.28267-1.357 0.057825-0.17909 0.12133-0.34274 0.19172-0.48938z" style="font-variation-settings:\'wght\' 600;paint-order:markers stroke fill"/>\n </g>\n <g mask="url(#mask1)">\n <g transform="matrix(.33495 -.15502 .15502 .33495 6.9101 8.7424)" stroke-width="0">\n <g fill="#baebc9">\n <path d="m5.812-13.175a9.2651 4.3162 0 0 1-7.9954 2.1384 9.2651 4.3162 0 0 1-7.9959-2.1389 8.2971 8.2971 0 0 0 7.9959 6.12 8.2971 8.2971 0 0 0 7.9954-6.1195z" style="font-variation-settings:\'wght\' 600;paint-order:markers stroke fill"/>\n <path d="m-2.1833-23.65a8.2971 8.2971 0 0 0-7.9964 6.12 9.2651 4.3162 0 0 1 7.9964-2.1394 9.2651 4.3162 0 0 1 8.0047 2.1441 8.2971 8.2971 0 0 0-8.0047-6.1247z" style="font-variation-settings:\'wght\' 600;paint-order:markers stroke fill"/>\n </g>\n <g transform="translate(-.13423 .11304)" fill="#e18335">\n <path d="m4.0158-11.592a8.7066 5.4087 0 0 1-6.0647 1.5343 8.7066 5.4087 0 0 1-6.0653-1.5343 7.1981 7.1981 0 0 0 6.0653 3.3238 7.1981 7.1981 0 0 0 6.0647-3.3238z" style="font-variation-settings:\'wght\' 600;paint-order:markers stroke fill"/>\n <path d="m-2.049-22.664a7.1981 7.1981 0 0 0-6.0653 3.3238 8.7066 5.4087 0 0 1 6.0653-1.5348 8.7066 5.4087 0 0 1 6.0575 1.525 7.1981 7.1981 0 0 0-6.0575-3.314z" style="font-variation-settings:\'wght\' 600;paint-order:markers stroke fill"/>\n </g>\n </g>\n </g>\n </g>\n <g fill="#2d93ac">\n <circle cx=".96336" cy=".9498" r=".45813" style="font-variation-settings:\'wght\' 600;paint-order:markers stroke fill"/>\n <circle cx="7.1098" cy="1.0458" r=".69682" style="font-variation-settings:\'wght\' 600;paint-order:markers stroke fill"/>\n <circle cx="1.3378" cy="7.3803" r=".51904" style="font-variation-settings:\'wght\' 600;paint-order:markers stroke fill"/>\n </g>\n</svg>\n'}),Z=new u.LabIcon({name:"jupytergis::raster",svgstr:'<svg height="16" viewBox="0 0 24 24" width="16" xmlns="http://www.w3.org/2000/svg">\n <g class="jp-icon3 jp-icon-selectable" fill="#616161">\n <path\n d="M 22,8 H 2 v 1 h 20 z m 0,10.5 H 2 v 1 H 22 Z M 22,15 H 2 v 1 h 20 z m 0,-3.5 H 2 v 1 h 20 z m 0,-7 H 2 v 1 H 22 Z M 5.5,2 h -1 v 20 h 1 z M 9,2 H 8 v 20 h 1 z m 3.5,0 h -1 v 20 h 1 z M 16,2 h -1 v 20 h 1 z m 3.5,0 h -1 v 20 h 1 z" />\n </g>\n</svg>\n'}),Q=new u.LabIcon({name:"jupytergis::visibility",svgstr:'<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">\n <path class="jp-icon3" d="M12 6c3.79 0 7.17 2.13 8.82 5.5C19.17 14.87 15.79 17 12 17s-7.17-2.13-8.82-5.5C4.83 8.13 8.21 6 12 6m0-2C7 4 2.73 7.11 1 11.5 2.73 15.89 7 19 12 19s9.27-3.11 11-7.5C21.27 7.11 17 4 12 4zm0 5c1.38 0 2.5 1.12 2.5 2.5S13.38 14 12 14s-2.5-1.12-2.5-2.5S10.62 9 12 9m0-2c-2.48 0-4.5 2.02-4.5 4.5S9.52 16 12 16s4.5-2.02 4.5-4.5S14.48 7 12 7z" fill="none" />\n</svg>\n'}),Y=new u.LabIcon({name:"jupytergis::nonVisibility",svgstr:'<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24">\n <path class="jp-icon3" d="M12 6c3.79 0 7.17 2.13 8.82 5.5-.59 1.22-1.42 2.27-2.41 3.12l1.41 1.41c1.39-1.23 2.49-2.77 3.18-4.53C21.27 7.11 17 4 12 4c-1.27 0-2.49.2-3.64.57l1.65 1.65C10.66 6.09 11.32 6 12 6zm-1.07 1.14L13 9.21c.57.25 1.03.71 1.28 1.28l2.07 2.07c.08-.34.14-.7.14-1.07C16.5 9.01 14.48 7 12 7c-.37 0-.72.05-1.07.14zM2.01 3.87l2.68 2.68C3.06 7.83 1.77 9.53 1 11.5 2.73 15.89 7 19 12 19c1.52 0 2.98-.29 4.32-.82l3.42 3.42 1.41-1.41L3.42 2.45 2.01 3.87zm7.5 7.5l2.61 2.61c-.04.01-.08.02-.12.02-1.38 0-2.5-1.12-2.5-2.5 0-.05.01-.08.01-.13zm-3.4-3.4l1.75 1.75c-.23.55-.36 1.15-.36 1.78 0 2.48 2.02 4.5 4.5 4.5.63 0 1.23-.13 1.77-.36l.98.98c-.88.24-1.8.38-2.75.38-3.79 0-7.17-2.13-8.82-5.5.7-1.43 1.72-2.61 2.93-3.53z" fill="none" />\n</svg>\n'}),K=new u.LabIcon({name:"jupytergis::geoJSON",svgstr:'\x3c!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools --\x3e\n<svg\n width="16px"\n height="16px"\n viewBox="0 0 100 100"\n xmlns="http://www.w3.org/2000/svg"\n class="iconify iconify--gis">\n <g class="jp-icon2 jp-icon-selectable" fill="#e2e2e2">\n <path d="M13.996 0a2.5 2.5 0 0 0-2.5 2.5V70H0v22h11.496v5.5a2.5 2.5 0 0 0 2.5 2.5h72a2.5 2.5 0 0 0 2.5-2.5V21.625c.027-1.113.004-1.777-.732-2.59L69.46.732A2.5 2.5 0 0 0 67.662 0H13.996zm2.5 5h48.902l1.252 14.568a2.5 2.5 0 0 0 2.278 2.278l14.568 1.252V95h-67v-3H80V70H16.496V5zm54.275 4.115l8.61 8.61l-7.928-.682l-.682-7.928zM10.48 73c1.37 0 2.439.379 3.207 1.137c.772.751 1.269 1.793 1.49 3.125l-2.213.543c-.156-.712-.45-1.271-.881-1.68c-.426-.415-.961-.623-1.603-.623c-.974 0-1.748.406-2.325 1.217c-.572.81-.86 2.012-.86 3.607c0 1.72.292 3.014.874 3.877c.582.857 1.346 1.285 2.289 1.285c.467 0 .932-.118 1.398-.355a4.72 4.72 0 0 0 1.213-.881v-1.838h-2.55v-2.443h4.8v5.775c-.466.593-1.143 1.118-2.03 1.572c-.884.449-1.78.672-2.688.672c-1.154 0-2.16-.316-3.018-.949c-.858-.64-1.504-1.549-1.936-2.728C5.215 83.126 5 81.835 5 80.445c0-1.51.241-2.85.723-4.023c.481-1.173 1.187-2.073 2.115-2.7c.707-.48 1.587-.722 2.64-.722zm37.33 0c1.384 0 2.425.4 3.123 1.197c.702.798 1.07 1.862 1.105 3.194l-2.226.129c-.096-.745-.302-1.281-.618-1.604c-.31-.33-.78-.494-1.408-.494c-.647 0-1.153.176-1.52.525c-.235.224-.353.523-.353.899c0 .342.11.637.33.88c.281.31.963.633 2.047.97c1.084.336 1.886.686 2.402 1.048c.522.356.928.847 1.22 1.473c.295.62.443 1.388.443 2.304c0 .831-.175 1.607-.526 2.333c-.351.725-.848 1.267-1.49 1.623c-.642.349-1.444.523-2.402.523c-1.395 0-2.466-.422-3.213-1.266c-.748-.85-1.195-2.085-1.34-3.707l2.168-.277c.13.956.392 1.657.789 2.105c.401.449.942.672 1.619.672c.717 0 1.256-.196 1.617-.591c.366-.403.551-.87.551-1.405c0-.343-.079-.634-.234-.87c-.15-.245-.416-.456-.797-.634c-.261-.118-.855-.33-1.783-.632c-1.195-.39-2.033-.867-2.514-1.434c-.678-.798-1.018-1.77-1.018-2.916a4.6 4.6 0 0 1 .475-2.066a3.361 3.361 0 0 1 1.377-1.475c.602-.336 1.328-.504 2.176-.504zm11.318 0c1.626 0 2.925.663 3.898 1.988c.979 1.325 1.47 3.168 1.47 5.528c0 2.34-.486 4.17-1.454 5.496c-.968 1.318-2.262 1.978-3.883 1.978c-1.64 0-2.946-.657-3.914-1.969c-.968-1.318-1.453-3.13-1.453-5.437c0-1.477.168-2.717.504-3.719c.25-.738.592-1.4 1.023-1.986c.437-.587.915-1.021 1.432-1.305c.687-.382 1.479-.574 2.377-.574zm-19.777.248h2.218v9.176c0 1.2-.08 2.121-.24 2.767c-.216.844-.607 1.523-1.174 2.038c-.567.507-1.314.761-2.242.761c-1.089 0-1.927-.4-2.514-1.197c-.587-.804-.883-1.98-.888-3.53l2.1-.316c.024.83.118 1.417.279 1.76c.24.52.606.781 1.097.781c.497 0 .85-.183 1.055-.552c.206-.376.309-1.151.309-2.325v-9.363zm26.898 0h2.166l4.516 9.68v-9.68H75v14.494h-2.234l-4.45-9.451v9.451h-2.068V73.248zm-7.098 2.254c-.918 0-1.658.415-2.22 1.246c-.562.824-.842 2.069-.842 3.736c0 1.642.288 2.888.865 3.739c.577.843 1.31 1.265 2.197 1.265c.888 0 1.615-.418 2.182-1.256c.572-.843.86-2.106.86-3.787c0-1.66-.28-2.9-.837-3.716c-.551-.818-1.286-1.227-2.205-1.227zm-38.752 1.502c1.19 0 2.128.518 2.815 1.553c.687 1.028 1.016 2.607.986 4.736h-5.3c.015.824.186 1.466.512 1.928c.326.455.732.683 1.219.683c.331 0 .61-.12.836-.357c.226-.237.396-.62.512-1.147l2.107.465c-.271 1.015-.7 1.79-1.287 2.324c-.582.528-1.312.791-2.19.791c-1.39 0-2.418-.595-3.086-1.789c-.526-.955-.79-2.162-.79-3.619c0-1.74.346-3.102 1.038-4.084c.693-.989 1.569-1.484 2.627-1.484zm9.159 0c1.209 0 2.202.518 2.974 1.553c.773 1.028 1.158 2.33 1.158 3.906c0 1.589-.39 2.907-1.173 3.955c-.778 1.041-1.76 1.562-2.944 1.562c-.732 0-1.432-.217-2.1-.652c-.662-.435-1.165-1.07-1.511-1.908c-.346-.844-.52-1.87-.52-3.076c0-.923.174-1.816.52-2.68c.346-.863.835-1.522 1.467-1.977a3.58 3.58 0 0 1 2.129-.683zm-9.032 2.127c-.461 0-.841.22-1.142.662c-.301.442-.45 1.04-.445 1.799H22.1c-.015-.804-.174-1.413-.475-1.828c-.301-.422-.668-.633-1.1-.633zm9.04.139c-.552 0-1.017.276-1.393.83c-.376.553-.565 1.35-.565 2.392c0 1.042.189 1.839.565 2.393c.376.553.84.832 1.392.832c.552 0 1.014-.279 1.385-.832c.377-.554.565-1.358.565-2.412c0-1.029-.188-1.82-.565-2.373c-.371-.554-.833-.83-1.385-.83z"></path>\n <path d="M51.252 18v10.11h8.852a25.56 25.56 0 0 0-1.707-3.881c-1.985-3.606-4.507-5.78-7.145-6.229zm-2.504.1c-2.469.613-4.813 2.735-6.682 6.13a25.56 25.56 0 0 0-1.706 3.881h8.388zm-5.769.678a22.547 22.547 0 0 0-12.005 9.333h6.739c.594-1.851 1.318-3.562 2.16-5.089c.897-1.63 1.942-3.067 3.106-4.244zm14.729.231c1.074 1.134 2.044 2.488 2.883 4.013c.841 1.527 1.564 3.238 2.157 5.089h6.278a22.56 22.56 0 0 0-11.318-9.102zM29.595 30.615a22.435 22.435 0 0 0-2.095 8.329h8.408c.097-2.941.48-5.744 1.103-8.329zm10.004 0c-.662 2.542-1.078 5.357-1.184 8.329h10.333v-8.329zm11.653 0v8.329h10.797c-.106-2.972-.523-5.787-1.184-8.329zm12.197 0a41.505 41.505 0 0 1 1.1 8.329H72.5a22.435 22.435 0 0 0-2.095-8.329zM27.5 41.447a22.435 22.435 0 0 0 2.095 8.329h7.298c-.588-2.593-.934-5.396-.999-8.329zm10.898 0c.07 2.962.452 5.774 1.075 8.329h9.275v-8.329zm12.854 0v8.329h9.738c.624-2.555 1.005-5.367 1.075-8.329zm13.31 0c-.065 2.932-.409 5.736-.995 8.329h6.838a22.435 22.435 0 0 0 2.095-8.329zM30.973 52.28a22.565 22.565 0 0 0 11.33 9.105a20.107 20.107 0 0 1-2.432-3.514c-.917-1.666-1.697-3.546-2.319-5.591zm9.212 0c.532 1.61 1.165 3.084 1.88 4.383c1.753 3.182 3.923 5.246 6.222 5.997c.154.01.306.03.46.03V52.275zm11.066 0v10.415c.357-.02.713-.04 1.065-.08c2.247-.789 4.364-2.834 6.08-5.951c.716-1.299 1.349-2.773 1.88-4.383zm11.656 0c-.62 2.045-1.4 3.926-2.317 5.591a20.4 20.4 0 0 1-2.197 3.243a22.568 22.568 0 0 0 10.632-8.834z"></path>\n </g>\n</svg>\n'}),X=new u.LabIcon({name:"jupytergis::mound",svgstr:'<svg\n width="16px"\n height="16px"\n xmlns="http://www.w3.org/2000/svg"\n viewBox="0 0 576 512">\n <g class="jp-icon2 jp-icon-selectable" fill="#e2e2e2">\n <path d="M144.1 179.2C173.8 127.7 228.6 96 288 96s114.2 31.7 143.9 83.2L540.4 368c12.3 21.3-3.1 48-27.7 48H63.3c-24.6 0-40-26.6-27.7-48L144.1 179.2z"/>\n </g>\n</svg>\n'}),ee=new u.LabIcon({name:"jupytergis::logoQGZ",svgstr:'<svg\n xmlns="http://www.w3.org/2000/svg"\n version="1.1"\n width="256"\n height="256"\n viewBox="0 0 256 256"\n class="jp-icon-selectable">\n <g class="jp-icon-selectable">\n <path\n class="jp-icon-selectable"\n d="M137.607,136.899 L172.044,136.899 L142.898,108.083 L107.19,108.083 L107.19,142.392 L137.607,172.708 z"\n fill="#EE7913" />\n <path\n class="jp-icon-selectable"\n d="M248.061,212.048 L186.618,151.306 L152.01,151.306 L152.01,187.067 L210.891,245.749 L248.061,245.749 z"\n fill="#589632" />\n <path\n class="jp-icon-selectable"\n d="M152.01,151.306 L186.618,151.306 L172.044,136.899 L137.607,136.899 L137.607,172.708 L152.01,187.067 z"\n fill="#F0E64A" />\n <path\n class="jp-icon-selectable"\n d="M144.826,199.3 C139.606,200.502 134.183,201.154 128.588,201.154 C88.561,201.154 54.516,168.24 54.516,125.564 C54.516,82.887 88.182,50.695 128.588,50.695 C168.989,50.695 201.158,82.882 201.158,125.564 C201.158,132.501 200.295,139.183 198.697,145.509 L235.744,182.551 C245.296,165.815 250.64,146.354 250.64,125.277 C250.64,59.499 198.147,10.251 127.839,10.251 C57.849,10.251 5.36,59.178 5.36,125.277 C5.36,191.698 57.849,241.598 127.839,241.598 C145.905,241.598 162.791,238.275 177.916,232.227 L144.826,199.3 z"\n fill="#93B023" />\n <path\n class="jp-icon-selectable"\n d="M107.19,108.083 L248.061,245.749 L248.061,212.048 L186.618,151.306 L172.044,136.898 L142.898,108.083 z"\n fill="#FFFFFF"\n fill-opacity="0.172" />\n </g>\n</svg>\n'}),te=new u.LabIcon({name:"jupytergis::bookOpen",svgstr:'<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg\n viewBox="0 0 576 512"\n version="1.1"\n id="svg1"\n xmlns="http://www.w3.org/2000/svg"\n xmlns:svg="http://www.w3.org/2000/svg">\n <defs\n id="defs1" />\n \x3c!--!Font\n Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License -\n https://fontawesome.com/license/free --\x3e\n <path\n id="path1"\n d="M542.2 32.1c-54.8 3.1-163.7 14.4-231 55.6-4.6 2.8-7.3 7.9-7.3 13.2v363.9c0 11.6 12.6 18.9 23.3 13.5 69.2-34.8 169.2-44.3 218.7-46.9 16.9-.9 30-14.4 30-30.7V62.8c0-17.7-15.4-31.7-33.8-30.7zM264.7 87.6C197.5 46.5 88.6 35.2 33.8 32.1 15.4 31 0 45 0 62.8V400.6c0 16.2 13.1 29.8 30 30.7 49.5 2.6 149.6 12.1 218.8 47 10.6 5.4 23.2-1.9 23.2-13.5V100.6c0-5.3-2.6-10.1-7.3-13z"\n fill="#616161"\n class="jp-icon3"\n />\n</svg>\n'}),ae=new u.LabIcon({name:"jupytergis::vectorSquare",svgstr:'<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg\n class="jp-icon3"\n viewBox="0 0 512 512"\n version="1.1"\n id="svg1"\n xmlns="http://www.w3.org/2000/svg"\n xmlns:svg="http://www.w3.org/2000/svg">\n <defs\n id="defs1" />\n \x3c!--!Font\n Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License -\n https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--\x3e\n <path\n d="M 486.4,140.8 V 54.4 c 0,-15.93 -12.87,-28.8 -28.8,-28.8 h -86.4 c -15.93,0 -28.8,12.87 -28.8,28.8 H 169.6 c 0,-15.93 -12.87,-28.8 -28.8,-28.8 H 54.4 c -15.93,0 -28.8,12.87 -28.8,28.8 v 86.4 c 0,15.93 12.87,28.8 28.8,28.8 v 172.8 c -15.93,0 -28.8,12.87 -28.8,28.8 v 86.4 c 0,15.93 12.87,28.8 28.8,28.8 h 86.4 c 15.93,0 28.8,-12.87 28.8,-28.8 h 172.8 c 0,15.93 12.87,28.8 28.8,28.8 h 86.4 c 15.93,0 28.8,-12.87 28.8,-28.8 v -86.4 c 0,-15.93 -12.87,-28.8 -28.8,-28.8 V 169.6 c 15.93,0 28.8,-12.87 28.8,-28.8 z M 400,83.2 h 28.8 V 112 H 400 Z m -316.8,0 H 112 V 112 H 83.2 Z M 112,428.8 H 83.2 V 400 H 112 Z m 316.8,0 H 400 V 400 h 28.8 z M 400,342.4 h -28.8 c -15.93,0 -28.8,12.87 -28.8,28.8 V 400 H 169.6 v -28.8 c 0,-15.93 -12.87,-28.8 -28.8,-28.8 H 112 V 169.6 h 28.8 c 15.93,0 28.8,-12.87 28.8,-28.8 V 112 h 172.8 v 28.8 c 0,15.93 12.87,28.8 28.8,28.8 H 400 Z"\n id="path1"\n style="stroke-width:0.9"\n fill="#616161"\n class="jp-icon3"\n />\n</svg>\n'}),re=new u.LabIcon({name:"jupytergis::info",svgstr:'<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg\n viewBox="0 0 192 512"\n version="1.1"\n id="svg1"\n xmlns="http://www.w3.org/2000/svg"\n xmlns:svg="http://www.w3.org/2000/svg">\n <defs\n id="defs1" />\n \x3c!--!Font\n Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License -\n https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--\x3e\n <path\n d="m 35.2,390.56 h 16 V 275.04 h -16 c -8.8,0 -16,-7.2 -16,-16 V 220.8 c 0,-8.8 7.2,-16 16,-16 h 89.6 c 8.8,0 16,7.2 16,16 v 169.76 h 16 c 8.8,0 16,7.2 16,16 v 38.24 c 0,8.8 -7.2,16 -16,16 H 35.2 c -8.8,0 -16,-7.2 -16,-16 v -38.24 c 0,-8.8 7.2,-16 16,-16 z M 96,51.2 c -31.84,0 -57.6,25.76 -57.6,57.6 0,31.84 25.76,57.6 57.6,57.6 31.84,0 57.6,-25.76 57.6,-57.6 0,-31.84 -25.76,-57.6 -57.6,-57.6 z"\n id="path1"\n style="stroke-width:0.8"\n fill="#616161"\n class="jp-icon3"\n />\n</svg>\n'}),oe=new u.LabIcon({name:"jupytergis::clock",svgstr:'<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg\n viewBox="0 0 512 512"\n version="1.1"\n id="svg1"\n xmlns="http://www.w3.org/2000/svg"\n xmlns:svg="http://www.w3.org/2000/svg">\n <defs\n id="defs1" />\n \x3c!--!FontAwesome Free 6.7.2 by @fontawesome - https://fontawesome.com License -https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--\x3e\n <path\n d="M 256,47.68 C 140.92,47.68 47.68,140.92 47.68,256 47.68,371.08 140.92,464.32 256,464.32 371.08,464.32 464.32,371.08 464.32,256 464.32,140.92 371.08,47.68 256,47.68 Z m 77.7,262.92 v 0 l -16.8,21 a 13.44,13.44 0 0 1 -18.9,2.1 v 0 l -56.28,-41.748 a 33.6,33.6 0 0 1 -12.6,-26.208 V 135.04 a 13.44,13.44 0 0 1 13.44,-13.44 h 26.88 a 13.44,13.44 0 0 1 13.44,13.44 V 256 l 48.72,35.7 a 13.44,13.44 0 0 1 2.1,18.9 z"\n id="path1"\n style="stroke-width:0.84"\n fill="#616161"\n class="jp-icon3" />\n</svg>\n'}),ne=new u.LabIcon({name:"jupytergis::terminalToolbar",svgstr:'<svg xmlns="http://www.w3.org/2000/svg" width="16" viewBox="0 0 24 24">\n <path\n d="M2 2h20v20H2z"\n fill="#616161"\n class="jp-icon3"\n />\n <path\n d="M9.01 14.762q0-.246-.077-.434a.9.9 0 0 0-.234-.351 1.6 1.6 0 0 0-.422-.288 5 5 0 0 0-.627-.263q-.592-.211-1.078-.446a3.5 3.5 0 0 1-.832-.544 2.2 2.2 0 0 1-.528-.721 2.4 2.4 0 0 1-.187-.985q0-.498.17-.908a2.1 2.1 0 0 1 .48-.72q.31-.306.75-.493.44-.188.979-.24V7.11h.937v1.272q.527.07.95.287.421.217.714.568.3.345.457.82.165.47.164 1.055H8.998q0-.709-.323-1.072-.322-.37-.873-.37-.299 0-.521.083a.9.9 0 0 0-.358.223.9.9 0 0 0-.21.334q-.066.194-.065.421 0 .23.064.41a.9.9 0 0 0 .229.329q.165.152.428.293.263.134.656.275.591.223 1.072.463.48.235.82.55.346.312.528.727.187.41.187.973 0 .515-.17.932-.17.41-.486.709t-.762.48a3.7 3.7 0 0 1-.996.229v1.148h-.931V17.1a4 4 0 0 1-.967-.217 2.6 2.6 0 0 1-.832-.504 2.4 2.4 0 0 1-.574-.826q-.217-.505-.217-1.207h1.635q0 .421.123.709.123.281.316.45.2.165.451.235.252.07.516.07.627 0 .949-.292a.98.98 0 0 0 .322-.756m8.36 3.51h-5.343V17h5.344z"\n fill="#bdbdbd"\n class="jp-icon-accent1"\n />\n</svg>\n'}),se=new u.LabIcon({name:"jupytergis::geolocation",svgstr:'<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg\n viewBox="0 0 384 512"\n version="1.1"\n id="svg1"\n xmlns="http://www.w3.org/2000/svg"\n xmlns:svg="http://www.w3.org/2000/svg">\n <defs\n id="defs1" />\n \x3c!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--\x3e\n <path\n d="M172.3 501.7C27 291 0 269.4 0 192 0 86 86 0 192 0s192 86 192 192c0 77.4-27 99-172.3 309.7-9.5 13.8-29.9 13.8-39.5 0zM192 272c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80z"\n id="path1"\n style="fill:#616161;fill-opacity:1" />\n</svg>\n'}),ie=new u.LabIcon({name:"jupytergis::targetWithCenter",svgstr:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">\x3c!--!Font\n Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License -\n https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--\x3e\n <path\n d="M256 0c17.7 0 32 14.3 32 32l0 34.7C368.4 80.1 431.9 143.6 445.3 224l34.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.7 0C431.9 368.4 368.4 431.9 288 445.3l0 34.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7C143.6 431.9 80.1 368.4 66.7 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l34.7 0C80.1 143.6 143.6 80.1 224 66.7L224 32c0-17.7 14.3-32 32-32zM128 256a128 128 0 1 0 256 0 128 128 0 1 0 -256 0zm128-80a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"\n fill="#616161"\n class="jp-icon3"\n />\n</svg>\n'}),le=new u.LabIcon({name:"jupytergis::targetWithoutCenter",svgstr:'<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg\n viewBox="0 0 512 512"\n version="1.1"\n id="svg1"\n xmlns="http://www.w3.org/2000/svg"\n xmlns:svg="http://www.w3.org/2000/svg">\n <defs\n id="defs1" />\n \x3c!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--\x3e\n <path\n d="m 256,0 c 17.7,0 32,14.3 32,32 V 66.7 C 368.4,80.1 431.9,143.6 445.3,224 H 480 c 17.7,0 32,14.3 32,32 0,17.7 -14.3,32 -32,32 H 445.3 C 431.9,368.4 368.4,431.9 288,445.3 V 480 c 0,17.7 -14.3,32 -32,32 -17.7,0 -32,-14.3 -32,-32 V 445.3 C 143.6,431.9 80.1,368.4 66.7,288 H 32 C 14.3,288 0,273.7 0,256 0,238.3 14.3,224 32,224 H 66.7 C 80.1,143.6 143.6,80.1 224,66.7 V 32 C 224,14.3 238.3,0 256,0 Z M 128,256 c 0,70.6925 57.30755,127.99994 128,127.99994 70.69245,0 128,-57.30744 128,-127.99994 0,-70.6925 -57.30755,-127.99994 -128,-127.99994 -70.69245,0 -128,57.30744 -128,127.99994 z"\n id="path1"\n fill="#616161"\n class="jp-icon3"\n />\n</svg>\n'}),ce=Object.assign(Object.assign({},r),p.ProcessingCommandIDs),de={RasterSource:{icon:Z},RasterDemSource:{icon:X},VectorTileSource:{iconClass:"fa fa-vector-square"},GeoJSONSource:{icon:K},ImageSource:{iconClass:"fa fa-image"},VideoSource:{iconClass:"fa fa-video"},ShapefileSource:{iconClass:"fa fa-file"},RasterLayer:{icon:Z},VectorLayer:{iconClass:"fa fa-vector-square"},HillshadeLayer:{icon:X},ImageLayer:{iconClass:"fa fa-image"},VideoLayer:{iconClass:"fa fa-video"},[ce.redo]:{icon:u.redoIcon},[ce.undo]:{icon:u.undoIcon},[ce.openLayerBrowser]:{icon:te},[ce.newRasterEntry]:{icon:Z},[ce.newVectorTileEntry]:{icon:ae},[ce.newGeoJSONEntry]:{icon:K},[ce.newHillshadeEntry]:{icon:X},[ce.newImageEntry]:{iconClass:"fa fa-image"},[ce.newVideoEntry]:{iconClass:"fa fa-video"},[ce.newShapefileEntry]:{iconClass:"fa fa-file"},[ce.newGeoTiffEntry]:{iconClass:"fa fa-image"},[ce.symbology]:{iconClass:"fa fa-brush"},[ce.identify]:{icon:re},[ce.temporalController]:{icon:oe}},me=new Map(Object.entries(de));var pe=a(67262),ue=a(93345),ge=a.n(ue),ye=a(40180),he=a(34556),ve=a(28708),fe=a(25955),be=a(80313),Se=a(8996),we=a(38286),Ee=a(62242);const Ce=JSON.parse('{"OpenStreetMap":{"Mapnik":{"thumbnailPath":"rasterlayer_gallery/OpenStreetMap-Mapnik.png","url":"https://tile.openstreetmap.org/{z}/{x}/{y}.png","max_zoom":19,"html_attribution":"© <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors","attribution":"(C) OpenStreetMap contributors","name":"OpenStreetMap.Mapnik"},"DE":{"thumbnailPath":"rasterlayer_gallery/OpenStreetMap-DE.png","url":"https://tile.openstreetmap.de/{z}/{x}/{y}.png","max_zoom":18,"html_attribution":"© <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors","attribution":"(C) OpenStreetMap contributors","name":"OpenStreetMap.DE"},"CH":{"thumbnailPath":"rasterlayer_gallery/OpenStreetMap-CH.png","url":"https://tile.osm.ch/switzerland/{z}/{x}/{y}.png","max_zoom":18,"html_attribution":"© <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors","attribution":"(C) OpenStreetMap contributors","bounds":[[45,5],[48,11]],"name":"OpenStreetMap.CH"},"France":{"thumbnailPath":"rasterlayer_gallery/OpenStreetMap-France.png","url":"https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png","max_zoom":20,"html_attribution":"© OpenStreetMap France | © <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors","attribution":"(C) OpenStreetMap France | (C) OpenStreetMap contributors","name":"OpenStreetMap.France"},"HOT":{"thumbnailPath":"rasterlayer_gallery/OpenStreetMap-HOT.png","url":"https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png","max_zoom":19,"html_attribution":"© <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors, Tiles style by <a href=\\"https://www.hotosm.org/\\" target=\\"_blank\\">Humanitarian OpenStreetMap Team</a> hosted by <a href=\\"https://openstreetmap.fr/\\" target=\\"_blank\\">OpenStreetMap France</a>","attribution":"(C) OpenStreetMap contributors, Tiles style by Humanitarian OpenStreetMap Team hosted by OpenStreetMap France","name":"OpenStreetMap.HOT"},"BZH":{"thumbnailPath":"rasterlayer_gallery/OpenStreetMap-BZH.png","url":"https://tile.openstreetmap.bzh/br/{z}/{x}/{y}.png","max_zoom":19,"html_attribution":"© <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors, Tiles courtesy of <a href=\\"http://www.openstreetmap.bzh/\\" target=\\"_blank\\">Breton OpenStreetMap Team</a>","attribution":"(C) OpenStreetMap contributors, Tiles courtesy of Breton OpenStreetMap Team","bounds":[[46.2,-5.5],[50,0.7]],"name":"OpenStreetMap.BZH"},"CAT":{"thumbnailPath":"rasterlayer_gallery/OpenStreetMap-CAT.png","url":"https://tile.openstreetmap.bzh/ca/{z}/{x}/{y}.png","max_zoom":19,"html_attribution":"© <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors, Tiles courtesy of <a href=\\"https://www.openstreetmap.cat\\" target=\\"_blank\\">Breton OpenStreetMap Team</a>","attribution":"(C) OpenStreetMap contributors, Tiles courtesy of Breton OpenStreetMap Team","name":"OpenStreetMap.CAT"}},"NASAGIBS":{"ModisTerraTrueColorCR":{"thumbnailPath":"rasterlayer_gallery/NASAGIBS-ModisTerraTrueColorCR.png","url":"https://map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{max_zoom}/{z}/{y}/{x}.{format}","html_attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (<a href=\\"https://earthdata.nasa.gov\\">ESDIS</a>) with funding provided by NASA/HQ.","attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.","bounds":[[-85.0511287776,-179.999999975],[85.0511287776,179.999999975]],"min_zoom":1,"max_zoom":9,"format":"jpg","time":"2025-02-26","tilematrixset":"GoogleMapsCompatible_Level","variant":"MODIS_Terra_CorrectedReflectance_TrueColor","name":"NASAGIBS.ModisTerraTrueColorCR"},"ModisTerraBands367CR":{"thumbnailPath":"rasterlayer_gallery/NASAGIBS-ModisTerraBands367CR.png","url":"https://map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{max_zoom}/{z}/{y}/{x}.{format}","html_attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (<a href=\\"https://earthdata.nasa.gov\\">ESDIS</a>) with funding provided by NASA/HQ.","attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.","bounds":[[-85.0511287776,-179.999999975],[85.0511287776,179.999999975]],"min_zoom":1,"max_zoom":9,"format":"jpg","time":"2025-02-26","tilematrixset":"GoogleMapsCompatible_Level","variant":"MODIS_Terra_CorrectedReflectance_Bands367","name":"NASAGIBS.ModisTerraBands367CR"},"ViirsEarthAtNight2012":{"thumbnailPath":"rasterlayer_gallery/NASAGIBS-ViirsEarthAtNight2012.png","url":"https://map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{max_zoom}/{z}/{y}/{x}.{format}","html_attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (<a href=\\"https://earthdata.nasa.gov\\">ESDIS</a>) with funding provided by NASA/HQ.","attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.","bounds":[[-85.0511287776,-179.999999975],[85.0511287776,179.999999975]],"min_zoom":1,"max_zoom":8,"format":"jpg","time":"2025-02-26","tilematrixset":"GoogleMapsCompatible_Level","variant":"VIIRS_CityLights_2012","name":"NASAGIBS.ViirsEarthAtNight2012"},"ModisTerraLSTDay":{"thumbnailPath":"rasterlayer_gallery/NASAGIBS-ModisTerraLSTDay.png","url":"https://map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{max_zoom}/{z}/{y}/{x}.{format}","html_attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (<a href=\\"https://earthdata.nasa.gov\\">ESDIS</a>) with funding provided by NASA/HQ.","attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.","bounds":[[-85.0511287776,-179.999999975],[85.0511287776,179.999999975]],"min_zoom":1,"max_zoom":7,"format":"png","time":"2025-02-26","tilematrixset":"GoogleMapsCompatible_Level","variant":"MODIS_Terra_Land_Surface_Temp_Day","opacity":0.75,"name":"NASAGIBS.ModisTerraLSTDay"},"ModisTerraSnowCover":{"thumbnailPath":"rasterlayer_gallery/NASAGIBS-ModisTerraSnowCover.png","url":"https://map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{max_zoom}/{z}/{y}/{x}.{format}","html_attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (<a href=\\"https://earthdata.nasa.gov\\">ESDIS</a>) with funding provided by NASA/HQ.","attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.","bounds":[[-85.0511287776,-179.999999975],[85.0511287776,179.999999975]],"min_zoom":1,"max_zoom":8,"format":"png","time":"2025-02-26","tilematrixset":"GoogleMapsCompatible_Level","variant":"MODIS_Terra_NDSI_Snow_Cover","opacity":0.75,"name":"NASAGIBS.ModisTerraSnowCover"},"ModisTerraAOD":{"thumbnailPath":"rasterlayer_gallery/NASAGIBS-ModisTerraAOD.png","url":"https://map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{max_zoom}/{z}/{y}/{x}.{format}","html_attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (<a href=\\"https://earthdata.nasa.gov\\">ESDIS</a>) with funding provided by NASA/HQ.","attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.","bounds":[[-85.0511287776,-179.999999975],[85.0511287776,179.999999975]],"min_zoom":1,"max_zoom":6,"format":"png","time":"2025-02-26","tilematrixset":"GoogleMapsCompatible_Level","variant":"MODIS_Terra_Aerosol","opacity":0.75,"name":"NASAGIBS.ModisTerraAOD"},"ModisTerraChlorophyll":{"thumbnailPath":"rasterlayer_gallery/NASAGIBS-ModisTerraChlorophyll.png","url":"https://map1.vis.earthdata.nasa.gov/wmts-webmerc/{variant}/default/{time}/{tilematrixset}{max_zoom}/{z}/{y}/{x}.{format}","html_attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (<a href=\\"https://earthdata.nasa.gov\\">ESDIS</a>) with funding provided by NASA/HQ.","attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.","bounds":[[-85.0511287776,-179.999999975],[85.0511287776,179.999999975]],"min_zoom":1,"max_zoom":7,"format":"png","time":"2025-02-26","tilematrixset":"GoogleMapsCompatible_Level","variant":"MODIS_Terra_L2_Chlorophyll_A","opacity":0.75,"name":"NASAGIBS.ModisTerraChlorophyll","status":"broken"},"ModisTerraBands721CR":{"thumbnailPath":"rasterlayer_gallery/NASAGIBS-ModisTerraBands721CR.png","url":"https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/MODIS_Terra_CorrectedReflectance_Bands721/default/{time}/GoogleMapsCompatible_Level9/{z}/{y}/{x}.jpg","max_zoom":9,"attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.","html_attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (<a href=\\"https://earthdata.nasa.gov\\">ESDIS</a>) with funding provided by NASA/HQ.","name":"NASAGIBS.ModisTerraBands721CR","time":"2025-02-26"},"ModisAquaTrueColorCR":{"thumbnailPath":"rasterlayer_gallery/NASAGIBS-ModisAquaTrueColorCR.png","url":"https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/MODIS_Aqua_CorrectedReflectance_TrueColor/default/{time}/GoogleMapsCompatible_Level9/{z}/{y}/{x}.jpg","max_zoom":9,"attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.","html_attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (<a href=\\"https://earthdata.nasa.gov\\">ESDIS</a>) with funding provided by NASA/HQ.","name":"NASAGIBS.ModisAquaTrueColorCR","time":"2025-02-26"},"ModisAquaBands721CR":{"thumbnailPath":"rasterlayer_gallery/NASAGIBS-ModisAquaBands721CR.png","url":"https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/MODIS_Aqua_CorrectedReflectance_Bands721/default/{time}/GoogleMapsCompatible_Level9/{z}/{y}/{x}.jpg","max_zoom":9,"attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.","html_attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (<a href=\\"https://earthdata.nasa.gov\\">ESDIS</a>) with funding provided by NASA/HQ.","name":"NASAGIBS.ModisAquaBands721CR","time":"2025-02-26"},"ViirsTrueColorCR":{"thumbnailPath":"rasterlayer_gallery/NASAGIBS-ViirsTrueColorCR.png","url":"https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/VIIRS_SNPP_CorrectedReflectance_TrueColor/default/{time}/GoogleMapsCompatible_Level9/{z}/{y}/{x}.jpg","max_zoom":9,"attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.","html_attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (<a href=\\"https://earthdata.nasa.gov\\">ESDIS</a>) with funding provided by NASA/HQ.","name":"NASAGIBS.ViirsTrueColorCR","time":"2025-02-26"},"ASTER_GDEM_Greyscale_Shaded_Relief":{"thumbnailPath":"rasterlayer_gallery/NASAGIBS-ASTER_GDEM_Greyscale_Shaded_Relief.png","url":"https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/ASTER_GDEM_Greyscale_Shaded_Relief/default/GoogleMapsCompatible_Level12/{z}/{y}/{x}.jpg","max_zoom":12,"attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (ESDIS) with funding provided by NASA/HQ.","html_attribution":"Imagery provided by services from the Global Imagery Browse Services (GIBS), operated by the NASA/GSFC/Earth Science Data and Information System (<a href=\\"https://earthdata.nasa.gov\\">ESDIS</a>) with funding provided by NASA/HQ.","name":"NASAGIBS.ASTER_GDEM_Greyscale_Shaded_Relief"}},"USGS":{"USTopo":{"thumbnailPath":"rasterlayer_gallery/USGS-USTopo.png","url":"https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer/tile/{z}/{y}/{x}","max_zoom":20,"html_attribution":"Tiles courtesy of the <a href=\\"https://usgs.gov/\\">U.S. Geological Survey</a>","attribution":"Tiles courtesy of the U.S. Geological Survey","name":"USGS.USTopo"},"USImagery":{"thumbnailPath":"rasterlayer_gallery/USGS-USImagery.png","url":"https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryOnly/MapServer/tile/{z}/{y}/{x}","max_zoom":20,"html_attribution":"Tiles courtesy of the <a href=\\"https://usgs.gov/\\">U.S. Geological Survey</a>","attribution":"Tiles courtesy of the U.S. Geological Survey","name":"USGS.USImagery"},"USImageryTopo":{"thumbnailPath":"rasterlayer_gallery/USGS-USImageryTopo.png","url":"https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryTopo/MapServer/tile/{z}/{y}/{x}","max_zoom":20,"html_attribution":"Tiles courtesy of the <a href=\\"https://usgs.gov/\\">U.S. Geological Survey</a>","attribution":"Tiles courtesy of the U.S. Geological Survey","name":"USGS.USImageryTopo"}},"WaymarkedTrails":{"hiking":{"thumbnailPath":"rasterlayer_gallery/WaymarkedTrails-hiking.png","url":"https://tile.waymarkedtrails.org/{variant}/{z}/{x}/{y}.png","max_zoom":18,"html_attribution":"Map data: © <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors | Map style: © <a href=\\"https://waymarkedtrails.org\\">waymarkedtrails.org</a> (<a href=\\"https://creativecommons.org/licenses/by-sa/3.0/\\">CC-BY-SA</a>)","attribution":"Map data: (C) OpenStreetMap contributors | Map style: (C) waymarkedtrails.org (CC-BY-SA)","variant":"hiking","name":"WaymarkedTrails.hiking"},"cycling":{"thumbnailPath":"rasterlayer_gallery/WaymarkedTrails-cycling.png","url":"https://tile.waymarkedtrails.org/{variant}/{z}/{x}/{y}.png","max_zoom":18,"html_attribution":"Map data: © <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors | Map style: © <a href=\\"https://waymarkedtrails.org\\">waymarkedtrails.org</a> (<a href=\\"https://creativecommons.org/licenses/by-sa/3.0/\\">CC-BY-SA</a>)","attribution":"Map data: (C) OpenStreetMap contributors | Map style: (C) waymarkedtrails.org (CC-BY-SA)","variant":"cycling","name":"WaymarkedTrails.cycling"},"mtb":{"thumbnailPath":"rasterlayer_gallery/WaymarkedTrails-mtb.png","url":"https://tile.waymarkedtrails.org/{variant}/{z}/{x}/{y}.png","max_zoom":18,"html_attribution":"Map data: © <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors | Map style: © <a href=\\"https://waymarkedtrails.org\\">waymarkedtrails.org</a> (<a href=\\"https://creativecommons.org/licenses/by-sa/3.0/\\">CC-BY-SA</a>)","attribution":"Map data: (C) OpenStreetMap contributors | Map style: (C) waymarkedtrails.org (CC-BY-SA)","variant":"mtb","name":"WaymarkedTrails.mtb"},"slopes":{"thumbnailPath":"rasterlayer_gallery/WaymarkedTrails-slopes.png","url":"https://tile.waymarkedtrails.org/{variant}/{z}/{x}/{y}.png","max_zoom":18,"html_attribution":"Map data: © <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors | Map style: © <a href=\\"https://waymarkedtrails.org\\">waymarkedtrails.org</a> (<a href=\\"https://creativecommons.org/licenses/by-sa/3.0/\\">CC-BY-SA</a>)","attribution":"Map data: (C) OpenStreetMap contributors | Map style: (C) waymarkedtrails.org (CC-BY-SA)","variant":"slopes","name":"WaymarkedTrails.slopes"},"riding":{"thumbnailPath":"rasterlayer_gallery/WaymarkedTrails-riding.png","url":"https://tile.waymarkedtrails.org/{variant}/{z}/{x}/{y}.png","max_zoom":18,"html_attribution":"Map data: © <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors | Map style: © <a href=\\"https://waymarkedtrails.org\\">waymarkedtrails.org</a> (<a href=\\"https://creativecommons.org/licenses/by-sa/3.0/\\">CC-BY-SA</a>)","attribution":"Map data: (C) OpenStreetMap contributors | Map style: (C) waymarkedtrails.org (CC-BY-SA)","variant":"riding","name":"WaymarkedTrails.riding"},"skating":{"thumbnailPath":"rasterlayer_gallery/WaymarkedTrails-skating.png","url":"https://tile.waymarkedtrails.org/{variant}/{z}/{x}/{y}.png","max_zoom":18,"html_attribution":"Map data: © <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors | Map style: © <a href=\\"https://waymarkedtrails.org\\">waymarkedtrails.org</a> (<a href=\\"https://creativecommons.org/licenses/by-sa/3.0/\\">CC-BY-SA</a>)","attribution":"Map data: (C) OpenStreetMap contributors | Map style: (C) waymarkedtrails.org (CC-BY-SA)","variant":"skating","name":"WaymarkedTrails.skating"}},"Gaode":{"Normal":{"thumbnailPath":"rasterlayer_gallery/Gaode-Normal.png","url":"http://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}","max_zoom":19,"attribution":"© <a href=\\"http://www.gaode.com/\\">Gaode.com</a>","html_attribution":"© <a href=\\"http://www.gaode.com/\\">Gaode.com</a>","name":"Gaode.Normal"},"Satellite":{"thumbnailPath":"rasterlayer_gallery/Gaode-Satellite.png","url":"http://webst01.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}","max_zoom":19,"attribution":"© <a href=\\"http://www.gaode.com/\\">Gaode.com</a>","html_attribution":"© <a href=\\"http://www.gaode.com/\\">Gaode.com</a>","name":"Gaode.Satellite"}},"Strava":{"All":{"thumbnailPath":"rasterlayer_gallery/Strava-All.png","url":"https://heatmap-external-a.strava.com/tiles/all/hot/{z}/{x}/{y}.png","max_zoom":15,"attribution":"Map tiles by <a href=\\"https://labs.strava.com/heatmap\\">Strava 2021</a>","html_attribution":"Map tiles by <a href=\\"https://labs.strava.com/heatmap\\">Strava 2021</a>","name":"Strava.All"},"Ride":{"thumbnailPath":"rasterlayer_gallery/Strava-Ride.png","url":"https://heatmap-external-a.strava.com/tiles/ride/hot/{z}/{x}/{y}.png","max_zoom":15,"attribution":"Map tiles by <a href=\\"https://labs.strava.com/heatmap\\">Strava 2021</a>","html_attribution":"Map tiles by <a href=\\"https://labs.strava.com/heatmap\\">Strava 2021</a>","name":"Strava.Ride"},"Run":{"thumbnailPath":"rasterlayer_gallery/Strava-Run.png","url":"https://heatmap-external-a.strava.com/tiles/run/bluered/{z}/{x}/{y}.png","max_zoom":15,"attribution":"Map tiles by <a href=\\"https://labs.strava.com/heatmap\\">Strava 2021</a>","html_attribution":"Map tiles by <a href=\\"https://labs.strava.com/heatmap\\">Strava 2021</a>","name":"Strava.Run"},"Water":{"thumbnailPath":"rasterlayer_gallery/Strava-Water.png","url":"https://heatmap-external-a.strava.com/tiles/water/blue/{z}/{x}/{y}.png","max_zoom":15,"attribution":"Map tiles by <a href=\\"https://labs.strava.com/heatmap\\">Strava 2021</a>","html_attribution":"Map tiles by <a href=\\"https://labs.strava.com/heatmap\\">Strava 2021</a>","name":"Strava.Water"},"Winter":{"thumbnailPath":"rasterlayer_gallery/Strava-Winter.png","url":"https://heatmap-external-a.strava.com/tiles/winter/hot/{z}/{x}/{y}.png","max_zoom":15,"attribution":"Map tiles by <a href=\\"https://labs.strava.com/heatmap\\">Strava 2021</a>","html_attribution":"Map tiles by <a href=\\"https://labs.strava.com/heatmap\\">Strava 2021</a>","name":"Strava.Winter"}},"OPNVKarte":{"thumbnailPath":"rasterlayer_gallery/OPNVKarte.png","url":"https://tileserver.memomaps.de/tilegen/{z}/{x}/{y}.png","max_zoom":18,"html_attribution":"Map <a href=\\"https://memomaps.de/\\">memomaps.de</a> <a href=\\"http://creativecommons.org/licenses/by-sa/2.0/\\">CC-BY-SA</a>, map data © <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors","attribution":"Map memomaps.de CC-BY-SA, map data (C) OpenStreetMap contributors","name":"OPNVKarte"},"OpenTopoMap":{"thumbnailPath":"rasterlayer_gallery/OpenTopoMap.png","url":"https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png","max_zoom":17,"html_attribution":"Map data: © <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors, <a href=\\"http://viewfinderpanoramas.org\\">SRTM</a> | Map style: © <a href=\\"https://opentopomap.org\\">OpenTopoMap</a> (<a href=\\"https://creativecommons.org/licenses/by-sa/3.0/\\">CC-BY-SA</a>)","attribution":"Map data: (C) OpenStreetMap contributors, SRTM | Map style: (C) OpenTopoMap (CC-BY-SA)","name":"OpenTopoMap"},"OpenRailwayMap":{"thumbnailPath":"rasterlayer_gallery/OpenRailwayMap.png","url":"https://{s}.tiles.openrailwaymap.org/standard/{z}/{x}/{y}.png","max_zoom":19,"html_attribution":"Map data: © <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors | Map style: © <a href=\\"https://www.OpenRailwayMap.org\\">OpenRailwayMap</a> (<a href=\\"https://creativecommons.org/licenses/by-sa/3.0/\\">CC-BY-SA</a>)","attribution":"Map data: (C) OpenStreetMap contributors | Map style: (C) OpenRailwayMap (CC-BY-SA)","name":"OpenRailwayMap"},"Esri":{"WorldStreetMap":{"thumbnailPath":"rasterlayer_gallery/Esri-WorldStreetMap.png","url":"https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}","variant":"World_Street_Map","html_attribution":"Tiles © Esri — Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012","attribution":"Tiles (C) Esri -- Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012","name":"Esri.WorldStreetMap"},"WorldTopoMap":{"thumbnailPath":"rasterlayer_gallery/Esri-WorldTopoMap.png","url":"https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}","variant":"World_Topo_Map","html_attribution":"Tiles © Esri — Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community","attribution":"Tiles (C) Esri -- Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community","name":"Esri.WorldTopoMap"},"WorldImagery":{"thumbnailPath":"rasterlayer_gallery/Esri-WorldImagery.png","url":"https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}","variant":"World_Imagery","html_attribution":"Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community","attribution":"Tiles (C) Esri -- Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community","name":"Esri.WorldImagery"},"WorldTerrain":{"thumbnailPath":"rasterlayer_gallery/Esri-WorldTerrain.png","url":"https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}","variant":"World_Terrain_Base","html_attribution":"Tiles © Esri — Source: USGS, Esri, TANA, DeLorme, and NPS","attribution":"Tiles (C) Esri -- Source: USGS, Esri, TANA, DeLorme, and NPS","max_zoom":13,"name":"Esri.WorldTerrain"},"WorldShadedRelief":{"thumbnailPath":"rasterlayer_gallery/Esri-WorldShadedRelief.png","url":"https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}","variant":"World_Shaded_Relief","html_attribution":"Tiles © Esri — Source: Esri","attribution":"Tiles (C) Esri -- Source: Esri","max_zoom":13,"name":"Esri.WorldShadedRelief"},"WorldPhysical":{"thumbnailPath":"rasterlayer_gallery/Esri-WorldPhysical.png","url":"https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}","variant":"World_Physical_Map","html_attribution":"Tiles © Esri — Source: US National Park Service","attribution":"Tiles (C) Esri -- Source: US National Park Service","max_zoom":8,"name":"Esri.WorldPhysical"},"OceanBasemap":{"thumbnailPath":"rasterlayer_gallery/Esri-OceanBasemap.png","url":"https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}","variant":"Ocean/World_Ocean_Base","html_attribution":"Tiles © Esri — Sources: GEBCO, NOAA, CHS, OSU, UNH, CSUMB, National Geographic, DeLorme, NAVTEQ, and Esri","attribution":"Tiles (C) Esri -- Sources: GEBCO, NOAA, CHS, OSU, UNH, CSUMB, National Geographic, DeLorme, NAVTEQ, and Esri","max_zoom":13,"name":"Esri.OceanBasemap"},"NatGeoWorldMap":{"thumbnailPath":"rasterlayer_gallery/Esri-NatGeoWorldMap.png","url":"https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}","variant":"NatGeo_World_Map","html_attribution":"Tiles © Esri — National Geographic, Esri, DeLorme, NAVTEQ, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, iPC","attribution":"Tiles (C) Esri -- National Geographic, Esri, DeLorme, NAVTEQ, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, iPC","max_zoom":16,"name":"Esri.NatGeoWorldMap"},"WorldGrayCanvas":{"thumbnailPath":"rasterlayer_gallery/Esri-WorldGrayCanvas.png","url":"https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}","variant":"Canvas/World_Light_Gray_Base","html_attribution":"Tiles © Esri — Esri, DeLorme, NAVTEQ","attribution":"Tiles (C) Esri -- Esri, DeLorme, NAVTEQ","max_zoom":16,"name":"Esri.WorldGrayCanvas"}}}'),je=(e,t=100)=>{let a;return(...r)=>{clearTimeout(a),a=window.setTimeout(()=>{e(...r)},t)}};function _e(e,t=100){let a,r;return function(...o){const n=+new Date;a&&n<a+t?(clearTimeout(r),r=setTimeout(()=>{a=n,e(...o)},t)):(a=n,e(...o))}}function Me(e,t){if(!e||!t)return;const a=document.querySelector(`[data-path="${e}"]`);return a?a.querySelector(`[id$=${t}]`):void 0}function xe(e,t){const a=Math.round(e);return Math.abs(a-e)<t?a:e}function Oe(e){const t=window.getComputedStyle(document.body).getPropertyValue(e)||"#ffffff";return Se.Qh(t).formatHex()}async function Ie(e="",t={}){const a=fe.ServerConnection.makeSettings(),r=ve.URLExt.join(a.baseUrl,e);let o;try{o=await fe.ServerConnection.makeRequest(r,t,a)}catch(e){throw new fe.ServerConnection.NetworkError(e)}let n=await o.text();if(n.length>0)try{n=JSON.parse(n)}catch(e){console.log("Not a JSON response body.",o)}if(!o.ok)throw new fe.ServerConnection.ResponseError(o,n.message||n);return n}function Ne(){return"true"===document.body.getAttribute("data-jp-theme-light")}function Le(e){return e?JSON.parse(JSON.stringify(e)):e}function ke(e){const t={},r=a(74864);var o;(o=r).keys().forEach(e=>{const a=e.replace("./","").replace(/\.\w+$/,"");t[a]=o(e)});for(const t of Object.keys(Ce)){const a=Ce[t];if("url"in a){const r=n(t,a);e.addRegistryLayer(r)}else Object.keys(a).forEach(r=>{const o=n(a[r].name,a[r],t);e.addRegistryLayer(o)})}function n(e,a,r){const o={};return a.time&&(o.time=a.time),a.variant&&(o.variant=a.variant),a.tilematrixset&&(o.tilematrixset=a.tilematrixset),a.format&&(o.format=a.format),{name:e,thumbnail:t[a.name.replace(".","-")],source:{url:a.url,minZoom:a.min_zoom||0,maxZoom:a.max_zoom||24,attribution:a.attribution||"",provider:null!=r?r:e,urlParameters:o}}}}async function Ae(e,t,a){if(e.includes(".json")){const t=await fetch(e);if(!t.ok)throw new Error(`Failed to fetch json: ${t.statusText}`);e=(await t.json()).tiles[0]}const r=t.extent?(t.extent[1]+t.extent[3])/2:t.latitude||0,o=t.extent?(t.extent[0]+t.extent[2])/2:t.longitude||0,n=t.zoom||0,{xTile:s,yTile:i}=function(e,t,a){const r=e*(Math.PI/180),o=1<<a,n=Math.floor((t+180)/360*o),s=Math.floor(o*(1-Math.log(Math.tan(r)+1/Math.cos(r))/Math.PI)/2);return isNaN(n)||isNaN(s)?{xTile:0,yTile:0}:{xTile:n,yTile:s}}(r,o,n);if(e=e.replace("{z}",String(Math.floor(n))).replace("{x}",String(s)).replace("{y}",String(i)),a)for(const t of Object.keys(a))e=e.replace(`{${t}}`,a[t]);const l=await fetch(e);if(!l.ok)throw new Error(`Failed to fetch tile: ${l.statusText}`);const c=await l.arrayBuffer();return new be.cW(new we.A(c))}function Te(e){var t,a,r,o,n,s,i,l,c,d,m;if(e)return{radius:null!==(t=e["circle-radius"])&&void 0!==t?t:5,fillColor:null!==(r=null!==(a=e["circle-fill-color"])&&void 0!==a?a:e["fill-color"])&&void 0!==r?r:"#3399CC",strokeColor:null!==(n=null!==(o=e["circle-stroke-color"])&&void 0!==o?o:e["stroke-color"])&&void 0!==n?n:"#3399CC",strokeWidth:null!==(i=null!==(s=e["circle-stroke-width"])&&void 0!==s?s:e["stroke-width"])&&void 0!==i?i:1.25,joinStyle:null!==(c=null!==(l=e["circle-stroke-line-join"])&&void 0!==l?l:e["stroke-line-join"])&&void 0!==c?c:"round",capStyle:null!==(m=null!==(d=e["circle-stroke-line-cap"])&&void 0!==d?d:e["stroke-line-cap"])&&void 0!==m?m:"round"}}const Pe=()=>new Promise((e,t)=>{const a=indexedDB.open("GeoTIFFCache",1);a.onupgradeneeded=e=>{const t=a.result;t.objectStoreNames.contains("files")||t.createObjectStore("files",{keyPath:"url"})},a.onsuccess=()=>e(a.result),a.onerror=()=>t(a.error)}),Ge=async(e,t,a)=>{const r=await Pe();return new Promise((o,n)=>{const s=r.transaction("files","readwrite");s.objectStore("files").put({url:e,file:t,metadata:a}),s.oncomplete=()=>o(),s.onerror=()=>n(s.error)})},Re=async e=>{const t=await Pe();return new Promise((a,r)=>{const o=t.transaction("files","readonly").objectStore("files").get(e);o.onsuccess=()=>a(o.result),o.onerror=()=>r(o.error)})},De=()=>void 0!==document.querySelectorAll("[data-jupyter-lite-root]")[0],Fe=async(e,t,a,r,o)=>{let n=null;if(t)try{n=t.getSettings()}catch(e){console.warn("Failed to get settings from model. Falling back.",e)}const s=n&&n.proxyUrl?n.proxyUrl:"https://corsproxy.io",i={direct:e=>e,internal:e=>`/jupytergis_core/proxy?url=${encodeURIComponent(e)}`,external:e=>`${s}/?url=${encodeURIComponent(e)}`},l=o?[o]:["direct","internal","external"];for(const t of l){const o=i[t](e);try{const e=await fetch(o,r);if(!e.ok){console.warn(`Failed to fetch from ${o}: ${e.statusText}`);continue}return await a(e)}catch(e){console.warn(`Error fetching from ${o}:`,e)}}return null},Be=async(e,t,a)=>{if(!(null==e?void 0:e.url))return null;const r=e.url,o=$e(r);if(!o||!o.startsWith("image/tiff"))throw new Error("Invalid file type. Expected GeoTIFF (image/tiff).");const n=await Re(r);if(n)return{file:n.file,metadata:n.metadata,sourceUrl:r};let s=null;if(a)s=await We(a.content,o);else if(s=await Fe(r,t,async e=>e.blob()),!s)throw(0,d.showErrorMessage)("Network error",`Failed to fetch ${r}`),new Error(`Failed to fetch ${r}`)},ze=async e=>{const{filepath:t,type:a,model:r}=e;if(t.startsWith("http://")||t.startsWith("https://"))switch(a){case"ImageSource":try{const e=await fetch(t);if(!e.ok)throw new Error(`Failed to fetch image from URL: ${t}`);const a=e.headers.get("Content-Type");if(!a||!a.startsWith("image/"))throw new Error(`Invalid image URL. Content-Type: ${a}`);return await Ve(await e.blob()),t}catch(e){throw console.error("Error validating remote image:",e),e}case"ShapefileSource":{const e=await Re(t);if(e)return e.file;const a=await Fe(t,r,async e=>{const t=await e.arrayBuffer();return(0,Ee.Ay)(t)});if(a)return await Ge(t,a),a;throw(0,d.showErrorMessage)("Network error",`Failed to fetch ${t}`),new Error(`Failed to fetch ${t}`)}case"GeoJSONSource":{const e=await Re(t);if(e)return e.file;const a=await Fe(t,r,async e=>e.json());if(a)return await Ge(t,a),a;throw(0,d.showErrorMessage)("Network error",`Failed to fetch ${t}`),new Error(`Failed to fetch ${t}`)}default:throw new Error(`Unsupported URL handling for source type: ${a}`)}if(!r.contentsManager||!r.filePath)throw new Error("ContentsManager or filePath is not initialized.");const o=ve.PathExt.resolve(ve.PathExt.dirname(r.filePath),t);try{const e=await r.contentsManager.get(o,{content:!0});if(!e.content)throw new Error(`File at ${o} is empty or inaccessible.`);switch(a){case"GeoJSONSource":return"string"==typeof e.content?JSON.parse(e.content):e.content;case"ShapefileSource":{const t=await He(e.content);return await(0,Ee.Ay)(t)}case"ImageSource":if("string"!=typeof e.content)throw new Error("Invalid file format for image content.");{const a=$e(t);if(!a.startsWith("image/"))throw new Error(`Invalid image file. MIME type: ${a}`);try{return await Ve(await We(e.content,a)),`data:${a};base64,${e.content}`}catch(e){throw console.error("Error image content failed to decode.:",e),e}}case"GeoTiffSource":if("string"==typeof e.content)return Be({url:t},r,e);throw new Error("Invalid file format for tiff content.");default:throw new Error(`Unsupported source type: ${a}`)}}catch(e){throw console.error(`Error reading file '${t}':`,e),e}},Ve=async e=>new Promise((t,a)=>{const r=new Image;r.onload=()=>t(),r.onerror=()=>a(new Error("Invalid image content.")),r.src=URL.createObjectURL(e)}),We=async(e,t)=>{const a=await fetch(`data:${t};base64,${e}`);return await a.blob()},Ue={".a":"application/octet-stream",".ai":"application/postscript",".aif":"audio/x-aiff",".aifc":"audio/x-aiff",".aiff":"audio/x-aiff",".au":"audio/basic",".avi":"video/x-msvideo",".bat":"text/plain",".bcpio":"application/x-bcpio",".bin":"application/octet-stream",".bmp":"image/bmp",".c":"text/plain",".cdf":"application/x-netcdf",".cpio":"application/x-cpio",".csh":"application/x-csh",".css":"text/css",".csv":"text/csv",".dll":"application/octet-stream",".doc":"application/msword",".dot":"application/msword",".dvi":"application/x-dvi",".eml":"message/rfc822",".eps":"application/postscript",".etx":"text/x-setext",".exe":"application/octet-stream",".gif":"image/gif",".gtar":"application/x-gtar",".h":"text/plain",".hdf":"application/x-hdf",".htm":"text/html",".html":"text/html",".ico":"image/vnd.microsoft.icon",".ief":"image/ief",".jpe":"image/jpeg",".jpeg":"image/jpeg",".jpg":"image/jpg",".js":"application/javascript",".json":"application/json",".ksh":"text/plain",".latex":"application/x-latex",".m1v":"video/mpeg",".m3u":"application/vnd.apple.mpegurl",".m3u8":"application/vnd.apple.mpegurl",".man":"application/x-troff-man",".me":"application/x-troff-me",".mht":"message/rfc822",".mhtml":"message/rfc822",".mid":"audio/midi",".midi":"audio/midi",".mif":"application/x-mif",".mjs":"application/javascript",".mov":"video/quicktime",".movie":"video/x-sgi-movie",".mp2":"audio/mpeg",".mp3":"audio/mpeg",".mp4":"video/mp4",".mpa":"video/mpeg",".mpe":"video/mpeg",".mpeg":"video/mpeg",".mpg":"video/mpeg",".ms":"application/x-troff-ms",".nc":"application/x-netcdf",".nws":"message/rfc822",".o":"application/octet-stream",".obj":"application/octet-stream",".oda":"application/oda",".p12":"application/x-pkcs12",".p7c":"application/pkcs7-mime",".pbm":"image/x-portable-bitmap",".pct":"image/pict",".pdf":"application/pdf",".pfx":"application/x-pkcs12",".pgm":"image/x-portable-graymap",".pic":"image/pict",".pict":"image/pict",".pl":"text/plain",".png":"image/png",".pnm":"image/x-portable-anymap",".pot":"application/vnd.ms-powerpoint",".ppa":"application/vnd.ms-powerpoint",".ppm":"image/x-portable-pixmap",".pps":"application/vnd.ms-powerpoint",".ppt":"application/vnd.ms-powerpoint",".ps":"application/postscript",".pwz":"application/vnd.ms-powerpoint",".py":"text/x-python",".pyc":"application/x-python-code",".pyo":"application/x-python-code",".qt":"video/quicktime",".ra":"audio/x-pn-realaudio",".ram":"application/x-pn-realaudio",".ras":"image/x-cmu-raster",".rdf":"application/xml",".rgb":"image/x-rgb",".roff":"application/x-troff",".rtf":"application/rtf",".rtx":"text/richtext",".sgm":"text/x-sgml",".sgml":"text/x-sgml",".sh":"application/x-sh",".shar":"application/x-shar",".snd":"audio/basic",".so":"application/octet-stream",".src":"application/x-wais-source",".sv4cpio":"application/x-sv4cpio",".sv4crc":"application/x-sv4crc",".svg":"image/svg+xml",".swf":"application/x-shockwave-flash",".t":"application/x-troff",".tar":"application/x-tar",".tcl":"application/x-tcl",".tex":"application/x-tex",".texi":"application/x-texinfo",".texinfo":"application/x-texinfo",".tif":"image/tiff",".tiff":"image/tiff",".tr":"application/x-troff",".tsv":"text/tab-separated-values",".txt":"text/plain",".ustar":"application/x-ustar",".vcf":"text/x-vcard",".wasm":"application/wasm",".wav":"audio/x-wav",".webm":"video/webm",".webmanifest":"application/manifest+json",".wiz":"application/msword",".wsdl":"application/xml",".xbm":"image/x-xbitmap",".xlb":"application/vnd.ms-excel",".xls":"application/vnd.ms-excel",".xml":"text/xml",".xpdl":"application/xml",".xpm":"image/x-xpixmap",".xsl":"application/xml",".xul":"text/xul",".xwd":"image/x-xwindowdump",".zip":"application/zip",".ipynb":"application/json"},$e=e=>{var t;const a=`.${(null===(t=e.split(".").pop())||void 0===t?void 0:t.toLowerCase())||""}`;return Ue[a]?Ue[a]:(console.warn(`Unknown file extension: ${a}, defaulting to 'application/octet-stream'.`),"application/octet-stream")},He=async e=>{const t=await fetch(`data:application/octet-stream;base64,${e}`);return await t.arrayBuffer()},Je=(e,t=(e,t)=>!0)=>{const a={};for(const[r,o]of Object.entries(e))t(r,o.values().next().value)&&(a[r]=o);return a},qe=e=>Je(e,(e,t)=>!("string"==typeof t&&isNaN(Number(t)))),Ze=e=>Je(e,(e,t)=>{const a=new RegExp("^#[0-9a-f]{6}$");return"string"==typeof t&&a.test(t)});function Qe(e,t,a){const r=new Blob([e],{type:a}),o=URL.createObjectURL(r),n=document.createElement("a");n.href=o,n.download=t,document.body.appendChild(n),n.click(),document.body.removeChild(n)}async function Ye(e,t){const a=["GeoJSONSource","ShapefileSource"];if(!a.includes(e.type))return console.error(`Invalid source type '${e.type}'. Expected one of: ${a.join(", ")}`),null;if(!e.parameters)return console.error("Source parameters are missing."),null;if(e.parameters.path){const a=await ze({filepath:e.parameters.path,type:e.type,model:t});return"object"==typeof a?JSON.stringify(a):a}return e.parameters.data?JSON.stringify(e.parameters.data):(console.error("Source is missing both 'path' and 'data' parameters."),null)}const Ke=Object.entries;const Xe=e=>{const{fields:t}=e,a=function(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(a[r[o]]=e[r[o]])}return a}(e,["fields"]);return ue.createElement(u.FormComponent,Object.assign({},a,{validator:he.Ay,fields:Object.assign({},t)}))};class et extends ue.Component{constructor(e){super(e),this.currentFormData=Le(this.props.sourceData),this.state={schema:e.schema,extraErrors:{}}}componentDidUpdate(e,t){if(e.sourceData!==this.props.sourceData){this.currentFormData=Le(this.props.sourceData);const e=Le(this.props.schema);this.setState(t=>Object.assign(Object.assign({},t),{schema:e}))}}componentDidMount(){if(this.props.formErrorSignal){const e=Object.keys(Object.assign({},this.state.extraErrors)).length>0;this.setState(e=>Object.assign(Object.assign({},e),this.state.extraErrors)),this.props.formErrorSignal.emit(e)}}processSchema(e,t,a){t.properties&&Object.entries(t.properties).forEach(([r,o])=>{a[r]={},"array"===o.type&&(a[r]=Object.assign({"ui:options":{orderable:!1,removable:!1,addable:!1}},a[r]),"array"===o.items.type&&(a[r]=Object.assign({items:Object.assign({"ui:options":{orderable:!1,removable:!1,addable:!1}},a[r].items)},a[r]))),"object"===o.type&&this.processSchema(e,o,a[r]),"opacity"===r&&(a[r]={"ui:field":e=>{const[t,a]=ue.useState(e.formData.toFixed(1));return ue.useEffect(()=>{a(e.formData.toFixed(1))},[e.formData]),ue.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},ue.createElement(ye.Slider,{min:1,max:10,step:1,valueAsNumber:10*e.formData,onChange:t=>{const a=t.target;if(a&&"_value"in a){const t=parseFloat(a._value)/10;e.onChange(t)}}}),ue.createElement("input",{type:"number",value:t,step:.1,min:.1,max:1,onChange:t=>{const r=t.target.value;a(r);const o=parseFloat(r);!isNaN(o)&&o>=.1&&o<=1&&e.onChange(o)},style:{width:"50px",textAlign:"center",border:"1px solid #ccc",borderRadius:"4px",padding:"4px",marginBottom:"5px"}}))}}),o.readOnly&&("create"===this.props.formContext&&delete o.readOnly,"update"===this.props.formContext&&this.removeFormEntry(r,e,t,a))})}removeFormEntry(e,t,a,r){t&&delete t[e],a.properties&&delete a.properties[e],delete r[e],a.required&&a.required.includes(e)&&a.required.splice(a.required.indexOf(e),1)}syncData(e){e&&this.props.syncData(e)}onFormChange(e){if(this.currentFormData=e.formData,this.props.formChangedSignal&&this.props.formChangedSignal.emit(this.currentFormData||{}),this.props.formErrorSignal){const e=Object.keys(this.state.extraErrors).length>0;this.props.formErrorSignal.emit(e)}"update"===this.props.formContext&&this.syncData(this.currentFormData)}onFormBlur(e,t){}onFormSubmit(e){this.currentFormData=e.formData,this.syncData(this.currentFormData),this.props.cancel&&this.props.cancel()}render(){var e,t;if(this.props.schema){const a=Object.assign(Object.assign({},this.state.schema),{additionalProperties:!0}),r=this.currentFormData,o={additionalProperties:{"ui:label":!1,classNames:"jGIS-hidden-field"}};this.processSchema(r,a,o);const n=ue.createRef();return null===(e=this.props.ok)||void 0===e||e.connect(()=>{var e;null===(e=n.current)||void 0===e||e.click()}),ue.createElement("div",{className:"jGIS-property-panel","data-path":null!==(t=this.props.filePath)&&void 0!==t?t:""},ue.createElement("div",{className:"jGIS-property-outer",onKeyUp:e=>{var t;"Enter"===e.key&&(e.preventDefault(),null===(t=n.current)||void 0===t||t.click())}},ue.createElement(Xe,{schema:a,uiSchema:o,formData:r,onSubmit:this.onFormSubmit.bind(this),onChange:this.onFormChange.bind(this),onBlur:this.onFormBlur.bind(this),ok:this.props.ok,cancel:this.props.cancel,liveValidate:!0,children:ue.createElement("button",{ref:n,type:"submit",style:{display:"none"}}),extraErrors:this.state.extraErrors})))}}}class tt extends et{constructor(e){var t;super(e),this.features=[],this.model=e.model,this.state={schema:null!==(t=e.schema)&&void 0!==t?t:{}},this.onFormChange=this.handleFormChange.bind(this),this.fetchFieldNames(e.sourceData.inputLayer)}async fetchFieldNames(e){var t,a;const r=this.model.getLayer(e);if(!(null===(t=null==r?void 0:r.parameters)||void 0===t?void 0:t.source))return;const o=this.model.getSource(r.parameters.source);if(!o||"GeoJSONSource"!==o.type)return;const n=o.parameters;if(null==n?void 0:n.path)try{const e=await ze({filepath:n.path,type:"GeoJSONSource",model:this.model});if(!(null===(a=null==e?void 0:e.features)||void 0===a?void 0:a.length))return;this.features=Object.keys(e.features[0].properties),this.updateSchema()}catch(e){console.error("Error loading GeoJSON:",e)}}handleFormChange(e){super.onFormChange(e),e.formData.inputLayer&&this.fetchFieldNames(e.formData.inputLayer)}updateSchema(){this.setState(e=>{var t,a,r;return{schema:Object.assign(Object.assign({},e.schema),{properties:Object.assign(Object.assign({},null===(t=e.schema)||void 0===t?void 0:t.properties),{dissolveField:Object.assign(Object.assign({},null===(r=null===(a=e.schema)||void 0===a?void 0:a.properties)||void 0===r?void 0:r.dissolveField),{enum:[...this.features]})})})}},()=>{this.forceUpdate()})}}const at=e=>{var t;const[a,r]=ue.useState(!1),o=ue.useRef(),n=ue.useRef();let s;return Promise.all([e.okSignalPromise.promise,null===(t=e.formErrorSignalPromise)||void 0===t?void 0:t.promise]).then(([e,t])=>{o.current=e,n.current=t,r(!0)}),s="Dissolve"===e.processingType?tt:et,a&&ue.createElement(s,{formContext:e.formContext,filePath:e.model.filePath,model:e.model,ok:o.current,cancel:e.cancel,sourceData:e.sourceData,schema:e.schema,syncData:e.syncData})};class rt extends d.Dialog{constructor(e){var t,a,r;const n=null!==(t=e.model.sharedModel.layers)&&void 0!==t?t:{},s=Object.keys(n).map(e=>({value:e,label:n[e].name}));e.schema&&((null===(a=e.schema.properties)||void 0===a?void 0:a.inputLayer)&&(e.schema.properties.inputLayer.enum=s.map(e=>e.value),e.schema.properties.inputLayer.enumNames=s.map(e=>e.label)),(null===(r=e.schema.properties)||void 0===r?void 0:r.outputLayerName)||(e.schema.properties.outputLayerName={type:"string",title:"outputLayerName"}));const i=e.model.filePath,l=e.model,c=new pe.PromiseDelegate,m=new pe.PromiseDelegate,p=ue.createElement("div",{style:{overflow:"hidden"}},ue.createElement(at,Object.assign({},e,{filePath:i,model:l,okSignalPromise:c,formErrorSignalPromise:m,syncData:t=>{t.outputLayerName&&t.inputLayer&&n[t.inputLayer]&&(n[t.inputLayer].name=t.outputLayerName),e.syncData(t)}})));super({title:e.title,body:p,buttons:[d.Dialog.cancelButton(),d.Dialog.okButton()]}),this.okSignal=new o.Signal(this);const u=new o.Signal(this);u.connect((e,t)=>{t||this.node.querySelector(":invalid")?this.node.getElementsByClassName("jp-mod-accept")[0].setAttribute("disabled",""):this.node.getElementsByClassName("jp-mod-accept")[0].removeAttribute("disabled")}),c.resolve(this.okSignal),m.resolve(u),this.addClass("jGIS-processing-FormDialog")}resolve(e){0===e&&super.resolve(e),1===e&&this.okSignal.emit(1)}}var ot=a(68326),nt=a(90560);class st extends et{constructor(e){super(e),this.sourceFormChangedSignal=e.sourceFormChangedSignal}processSchema(e,t,a){var r;if(super.processSchema(e,t,a),!(null===(r=t.properties)||void 0===r?void 0:r.source))return;const o=this.props.model.getSourcesByType(this.props.sourceType);t.properties.source.enumNames=Object.values(o),t.properties.source.enum=Object.keys(o)}onFormChange(e){super.onFormChange(e),this.props.dialogOptions&&(this.props.dialogOptions.layerData=Object.assign({},e.formData))}}class it extends st{constructor(e){super(e)}onFormChange(e){if(super.onFormChange(e),this.currentSourceId===e.formData.source)return;const t=this.props.model.getSource(e.formData.source);t&&t.type}processSchema(e,t,a){this.removeFormEntry("color",e,t,a),this.removeFormEntry("symbologyState",e,t,a),super.processSchema(e,t,a)}}class lt extends st{processSchema(e,t,a){super.processSchema(e,t,a),a.shadowColor={"ui:widget":"color"}}}class ct extends st{processSchema(e,t,a){this.removeFormEntry("color",e,t,a),this.removeFormEntry("symbologyState",e,t,a),super.processSchema(e,t,a)}}class dt extends st{constructor(e){super(e),this.features=[],this.fetchFeatureNames(this.props.sourceData),this.sourceFormChangedSignal&&this.sourceFormChangedSignal.connect((e,t)=>{"GeoJSONSource"===this.props.sourceType&&this.fetchFeatureNames(this.currentFormData,t)})}onFormChange(e){super.onFormChange(e);const t=this.props.model.getSource(e.formData.source);t&&"GeoJSONSource"===t.type&&this.fetchFeatureNames(this.currentFormData,t.parameters)}processSchema(e,t,a){this.removeFormEntry("color",e,t,a),this.removeFormEntry("symbologyState",e,t,a),this.removeFormEntry("blur",e,t,a),this.removeFormEntry("radius",e,t,a),super.processSchema(e,t,a),a.feature={enum:this.features}}async fetchFeatureNames(e,t){var a;if(e&&e.source&&!t){const a=this.props.model.getSource(e.source);if(!a||"GeoJSONSource"!==a.type)return void(this.features=[]);t=a.parameters}const r=this.props.model.getSource(e.source);if(!(null===(a=null==r?void 0:r.parameters)||void 0===a?void 0:a.path))return;const o=(await ze({filepath:r.parameters.path,type:"GeoJSONSource",model:this.props.model})).features[0].properties;this.features=Object.keys(o),this.forceUpdate()}}class mt extends et{constructor(e){super(e),this.sourceFormChangedSignal=e.sourceFormChangedSignal}onFormChange(e){super.onFormChange(e),this.props.dialogOptions&&(this.props.dialogOptions.sourceData=Object.assign({},e.formData))}}const pt=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://geojson.org/schema/GeoJSON.json","title":"GeoJSON","oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON GeometryCollection","type":"object","required":["type","geometries"],"properties":{"type":{"type":"string","enum":["GeometryCollection"]},"geometries":{"type":"array","items":{"oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Feature","type":"object","required":["type","properties","geometry"],"properties":{"type":{"type":"string","enum":["Feature"]},"id":{"oneOf":[{"type":"number"},{"type":"string"}]},"properties":{"oneOf":[{"type":"null"},{"type":"object"}]},"geometry":{"oneOf":[{"type":"null"},{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON GeometryCollection","type":"object","required":["type","geometries"],"properties":{"type":{"type":"string","enum":["GeometryCollection"]},"geometries":{"type":"array","items":{"oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON FeatureCollection","type":"object","required":["type","features"],"properties":{"type":{"type":"string","enum":["FeatureCollection"]},"features":{"type":"array","items":{"title":"GeoJSON Feature","type":"object","required":["type","properties","geometry"],"properties":{"type":{"type":"string","enum":["Feature"]},"id":{"oneOf":[{"type":"number"},{"type":"string"}]},"properties":{"oneOf":[{"type":"null"},{"type":"object"}]},"geometry":{"oneOf":[{"type":"null"},{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON GeometryCollection","type":"object","required":["type","geometries"],"properties":{"type":{"type":"string","enum":["GeometryCollection"]},"geometries":{"type":"array","items":{"oneOf":[{"title":"GeoJSON Point","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Point"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"number"}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON LineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["LineString"]},"coordinates":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON Polygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["Polygon"]},"coordinates":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPoint","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPoint"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"number"}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiLineString","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiLineString"]},"coordinates":{"type":"array","items":{"type":"array","minItems":2,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}},{"title":"GeoJSON MultiPolygon","type":"object","required":["type","coordinates"],"properties":{"type":{"type":"string","enum":["MultiPolygon"]},"coordinates":{"type":"array","items":{"type":"array","items":{"type":"array","minItems":4,"items":{"type":"array","minItems":2,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}},"bbox":{"type":"array","minItems":4,"items":{"type":"number"}}}}]}');var ut=a.t(pt,2),gt=a(11601),yt=a(14884);const ht=e=>{const{options:t}=e,{docManager:a,formOptions:r}=t,[o,n]=(0,ue.useState)(""),[s,i]=(0,ue.useState)(""),l=(0,ue.useRef)(!1);return(0,ue.useEffect)(()=>{!l.current&&e.value&&(e.value.startsWith("http://")||e.value.startsWith("https://")?(i(e.value),n("")):(n(e.value),i("")))},[e.value]),ge().createElement("div",null,ge().createElement("div",{className:"file-container"},ge().createElement("button",{className:"jp-mod-styled",onClick:async()=>{try{const t=document.querySelector('dialog[aria-modal="true"]');if(t){const e=d.Dialog.tracker.find(e=>e.node===t);e&&e.resolve(0)}else console.warn("No open dialog found.");const o=await yt.FileDialog.getOpenFiles({title:`Select ${r.sourceType.split("Source")[0]} File`,manager:a});if(o.value&&o.value.length>0){const a=o.value[0].path,s=ve.PathExt.relative(ve.PathExt.dirname(r.filePath),a);if(n(s),i(""),e.onChange(s),t){"GeoTiffSource"===r.sourceType?r.dialogOptions.sourceData=Object.assign(Object.assign({},r.sourceData),{urls:r.dialogOptions.sourceData.urls.map(e=>Object.assign(Object.assign({},e),{url:s}))}):r.dialogOptions.sourceData=Object.assign(Object.assign({},r.sourceData),{path:s});const e=new Mt(Object.assign({},r.dialogOptions));await e.launch()}}else if(t){const e=new Mt(Object.assign({},r.dialogOptions));await e.launch()}}catch(e){console.error("Error handling file dialog:",e)}}},"Browse Server Files"),ge().createElement("p",null,o||"")),ge().createElement("div",null,ge().createElement("h3",{className:"jp-FormGroup-fieldLabel jp-FormGroup-contentItem"},"Or enter external URL"),ge().createElement("input",{type:"text",id:"root_path",className:"jp-mod-styled",onChange:t=>{const a=t.target.value.trim();l.current=!0,i(a),n(""),e.onChange(a)},onBlur:()=>{l.current=!1},value:s||"",style:{width:"100%"}})))};class vt extends mt{constructor(e){var t,a;super(e),"GeoJSONSource"!==this.props.sourceType&&this._validatePath(null!==(a=null===(t=e.sourceData)||void 0===t?void 0:t.path)&&void 0!==a?a:"")}processSchema(e,t,a){var r;if(super.processSchema(e,t,a),t.properties&&e){if(t.properties&&t.properties.path){const e=null===(r=this.props.formChangedSignal)||void 0===r?void 0:r.sender.props.formSchemaRegistry.getDocManager();a.path={"ui:widget":ht,"ui:options":{docManager:e,formOptions:this.props}}}delete t.properties.valid}}onFormBlur(e,t){e.endsWith("_path")&&this._validatePath(t)}onFormChange(e){var t;super.onFormChange(e),void 0!==(null===(t=e.formData)||void 0===t?void 0:t.path)&&this._validatePath(e.formData.path)}onFormSubmit(e){var t,a,r;(null===(r=null===(a=null===(t=this.state.extraErrors)||void 0===t?void 0:t.path)||void 0===a?void 0:a.__errors)||void 0===r?void 0:r.length)>=1?(0,d.showErrorMessage)("Invalid file",this.state.extraErrors.path.__errors[0]):super.onFormSubmit(e)}async _validatePath(e){const t=this.state.extraErrors;let a="",r=!0;if(e)try{await ze({filepath:e,type:this.props.sourceType,model:this.props.model})}catch(t){r=!1,a=`"${e}" is not a valid ${this.props.sourceType} file.`}else r=!1,a="Path is required";r?this.setState(e=>Object.assign(Object.assign({},e),{extraErrors:Object.assign(Object.assign({},t),{path:{__errors:[]}})})):(t.path={__errors:[a]},this.setState(e=>Object.assign(Object.assign({},e),{extraErrors:t}))),this.props.formErrorSignal&&this.props.formErrorSignal.emit(!r)}}class ft extends vt{constructor(e){var t,a;super(e);const r=new gt.Ajv;this._validate=r.compile(ut),this._validatePath(null!==(a=null===(t=e.sourceData)||void 0===t?void 0:t.path)&&void 0!==a?a:"")}processSchema(e,t,a){""!==(null==e?void 0:e.path)&&this.removeFormEntry("data",e,t,a),super.processSchema(e,t,a)}async _validatePath(e){var t;const a=this.state.extraErrors;let r="",o=!1;if(e)try{const t=await ze({filepath:e,type:this.props.sourceType,model:this.props.model});o=this._validate(t),o||(r=`"${e}" is not a valid GeoJSON file`)}catch(t){r=`"${e}" is not a valid GeoJSON file: ${t}`}else r="Path is required";o?this.setState(e=>Object.assign(Object.assign({},e),{extraErrors:Object.assign(Object.assign({},a),{path:{__errors:[]}})})):(a.path={__errors:[r]},null===(t=this._validate.errors)||void 0===t||t.reverse().forEach(e=>{a.path.__errors.push(e.message)}),this.setState(e=>Object.assign(Object.assign({},e),{extraErrors:a}))),this.props.formErrorSignal&&this.props.formErrorSignal.emit(!o)}}class bt extends mt{constructor(e){var t,a;super(e),this._isSubmitted=!1,this._validateUrls(null!==(a=null===(t=e.sourceData)||void 0===t?void 0:t.urls)&&void 0!==a?a:[])}processSchema(e,t,a){var r;if(super.processSchema(e,t,a),t.properties&&e){if(t.properties&&t.properties.urls){const e=null===(r=this.props.formChangedSignal)||void 0===r?void 0:r.sender.props.formSchemaRegistry.getDocManager();a.urls=Object.assign(Object.assign({},a.urls),{items:Object.assign(Object.assign({},a.urls.items),{url:{"ui:widget":ht,"ui:options":{docManager:e,formOptions:this.props}}})})}delete t.properties.valid}}onFormChange(e){var t;super.onFormChange(e),(null===(t=e.formData)||void 0===t?void 0:t.urls)&&this._validateUrls(e.formData.urls)}onFormBlur(e,t){e.endsWith("_urls")&&this._validateUrls(t)}async onFormSubmit(e){this._isSubmitted=!0;const{valid:t,errors:a}=await this._validateUrls(e.formData.urls);t?super.onFormSubmit(e):a.length>0&&(0,d.showErrorMessage)("Invalid URLs",a[0])}async _validateUrls(e){const t=this.state.extraErrors,a=[];let r=!0;if(e&&e.length>0)for(let t=0;t<e.length;t++){const{url:o,min:n,max:s}=e[t];if(this._isSubmitted){const e=$e(o);e&&e.startsWith("image/tiff")||(r=!1,a.push(`"${o}" is not a valid ${this.props.sourceType} file.`))}else o&&"string"==typeof o&&""!==o.trim()||(r=!1,a.push(`URL at index ${t} is required and must be a valid string.`)),void 0!==n&&"number"==typeof n||(a.push(`Min value at index ${t} is required and must be a number.`),r=!1),void 0!==s&&"number"==typeof s||(a.push(`Max value at index ${t} is required and must be a number.`),r=!1),"number"==typeof n&&"number"==typeof s&&s<=n&&(a.push(`Max value at index ${t} must be greater than Min.`),r=!1)}else a.push("At least one valid URL with min/max values is required."),r=!1;return r?this.setState(e=>Object.assign(Object.assign({},e),{extraErrors:Object.assign(Object.assign({},t),{urls:{__errors:[]}})})):this.setState(e=>Object.assign(Object.assign({},e),{extraErrors:Object.assign(Object.assign({},t),{urls:{__errors:a}})})),this.props.formErrorSignal&&this.props.formErrorSignal.emit(!r),{valid:r,errors:a}}}class St extends mt{constructor(){super(...arguments),this._urlParameters=[]}processSchema(e,t,a){if(super.processSchema(e,t,a),!t.properties||!e)return;const r=/\{([^}]+)\}/g,o=[];let n;for(;null!==(n=r.exec(e.url));)["max_zoom","min_zoom","x","y","z"].includes(n[1])||o.push(n[1]);if(this._urlParameters=o,0===o.length)return void this.removeFormEntry("urlParameters",e,t,a);const s={};t.properties.urlParameters={type:"object",required:this._urlParameters,properties:s};for(const e of this._urlParameters)s[e]="time"===e?{type:"string",format:"date"}:{type:"string"}}onFormBlur(e,t){super.onFormBlur(e,t),e.endsWith("_url")&&this.forceUpdate()}}function wt(e){let t=st;switch(e){case"VectorTileLayer":case"VectorLayer":t=it;break;case"HillshadeLayer":t=lt;break;case"WebGlLayer":t=ct;break;case"HeatmapLayer":t=dt}return t}function Et(e){let t=mt;switch(e){case"GeoJSONSource":t=ft;break;case"ImageSource":case"ShapefileSource":t=vt;break;case"GeoTiffSource":t=bt;break;case"RasterSource":case"VectorTileSource":t=St}return t}var Ct=function(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(a[r[o]]=e[r[o]])}return a};class jt extends ue.Component{constructor(e){super(e),this.sourceFormChangedSignal=new o.Signal(this),this.filePath=e.model.filePath,this.jGISModel=e.model}render(){var e;const t=pe.UUID.uuid4();let a;const r=wt(this.props.layerType||"RasterLayer"),o=Le(this.props.layerData||{});if(this.props.createLayer){if(!this.props.layerType)return void console.error("Cannot create a layer without specifying its type");if(a=Le(this.props.formSchemaRegistry.getSchemas().get(this.props.layerType)),!a)return void console.error(`Cannot find schema for ${this.props.layerType}`);this.props.createSource&&(null===(e=a.properties)||void 0===e||delete e.source,o.source=t),a.required=["name",...a.required],a.properties=Object.assign({name:{type:"string",description:"The name of the layer"}},a.properties)}let n;const s=Et(this.props.sourceType||"RasterSource");if(this.props.sourceType){if(n=Le(this.props.formSchemaRegistry.getSchemas().get(this.props.sourceType)),!n)return void console.error(`Cannot find schema for ${this.props.sourceType}`);this.props.createLayer||(n.required=["name",...n.required],n.properties=Object.assign({name:{type:"string",description:"The name of the source"}},n.properties))}const i=[];let l,c;return this.props.createLayer&&(l=new pe.PromiseDelegate,i.push(l.promise)),this.props.createSource&&(c=new pe.PromiseDelegate,i.push(c.promise)),Promise.all(i).then(async()=>{if(this.props.createSource){let e="";const a=await(null==c?void 0:c.promise),{name:r}=a,o=Ct(a,["name"]);e=r||(await(null==l?void 0:l.promise)).name+" Source";const n={type:this.props.sourceType||"RasterSource",name:e,parameters:o};this.jGISModel.sharedModel.addSource(t,n)}if(this.props.createLayer){let e="";const t=await(null==l?void 0:l.promise),{name:a}=t,r=Ct(t,["name"]);e=a||(await(null==l?void 0:l.promise)).name+" Layer";const o={type:this.props.layerType||"RasterLayer",parameters:r,visible:!0,name:e};this.jGISModel.addLayer(pe.UUID.uuid4(),o)}}),ue.createElement("div",null,this.props.createSource&&ue.createElement("div",null,ue.createElement("h3",null,"Source Properties"),ue.createElement(s,{formContext:"create",model:this.jGISModel,filePath:this.filePath,schema:n,sourceData:this.props.sourceData,syncData:e=>{null==c||c.resolve(e)},ok:this.props.ok,cancel:this.props.cancel,formChangedSignal:this.sourceFormChangedSignal,formErrorSignal:this.props.formErrorSignal,dialogOptions:this.props.dialogOptions,sourceType:this.props.sourceType})),this.props.createLayer&&ue.createElement("div",null,ue.createElement("h3",null,"Layer Properties"),ue.createElement(r,{formContext:"create",sourceType:this.props.sourceType,model:this.jGISModel,filePath:this.filePath,schema:a,sourceData:o,syncData:e=>{null==l||l.resolve(e)},ok:this.props.ok,cancel:this.props.cancel,sourceFormChangedSignal:this.sourceFormChangedSignal,formErrorSignal:this.props.formErrorSignal,dialogOptions:this.props.dialogOptions})))}}const _t=e=>{var t;const[a,r]=ue.useState(!1),o=ue.useRef(),n=ue.useRef();return Promise.all([e.okSignalPromise.promise,null===(t=e.formErrorSignalPromise)||void 0===t?void 0:t.promise]).then(([e,t])=>{o.current=e,n.current=t,r(!0)}),a&&ue.createElement(jt,{model:e.model,formSchemaRegistry:e.formSchemaRegistry,createLayer:e.createLayer,createSource:e.createSource,layerType:e.layerType,sourceType:e.sourceType,sourceData:e.sourceData,layerData:e.layerData,ok:o.current,cancel:e.cancel,formErrorSignal:n.current,dialogOptions:e.dialogOptions})};class Mt extends d.Dialog{constructor(e){const t=new pe.PromiseDelegate,a=new pe.PromiseDelegate,r=ue.createElement("div",{style:{overflow:"auto"}},ue.createElement(_t,{model:e.model,formSchemaRegistry:e.formSchemaRegistry,createLayer:e.createLayer,createSource:e.createSource,layerType:e.layerType,sourceType:e.sourceType,sourceData:e.sourceData,layerData:e.layerData,okSignalPromise:t,cancel:()=>{this.resolve(0)},formErrorSignalPromise:a,dialogOptions:e}));super({title:e.title,body:r,buttons:[d.Dialog.cancelButton(),d.Dialog.okButton()]}),this.okSignal=new o.Signal(this);const n=new o.Signal(this);n.connect((e,t)=>{t||this.node.querySelector(":invalid")?this.node.getElementsByClassName("jp-mod-accept")[0].setAttribute("disabled",""):this.node.getElementsByClassName("jp-mod-accept")[0].removeAttribute("disabled")}),t.resolve(this.okSignal),a.resolve(n),this.addClass("jGIS-layer-CreationFormDialog")}resolve(e){0===e&&super.resolve(e),1===e&&this.okSignal.emit(1)}}var xt=a(62778);const Ot=({model:e,registry:t,formSchemaRegistry:a,okSignalPromise:r,cancel:o})=>{const[n,s]=(0,ue.useState)(""),[i,l]=(0,ue.useState)([]),[c,d]=(0,ue.useState)(),[m,p]=(0,ue.useState)(!1),[u,g]=(0,ue.useState)(t),y=[...new Set(t.map(e=>e.source.provider))],h=u.filter(e=>e.name.toLowerCase().includes(n));(0,ue.useEffect)(()=>(e.sharedModel.layersChanged.connect(v),()=>{e.sharedModel.layersChanged.disconnect(v)}),[]);const v=(t,a)=>{l(Object.values(e.sharedModel.layers).map(e=>e.name.split(" ")[0]))},f=e=>{const a=e.target,r=a.innerText===(null==c?void 0:c.innerText);a.classList.toggle("jGIS-layer-browser-category-selected"),null==c||c.classList.remove("jGIS-layer-browser-category-selected");const o=r?t:t.filter(e=>{var t;return null===(t=e.source.provider)||void 0===t?void 0:t.includes(a.innerText)});g(o),s(""),d(r?null:a)};return m?(r.promise.then(e=>{e.disconnect(o,void 0)}),ge().createElement("div",{className:"jGIS-customlayer-form"},ge().createElement(_t,{model:e,formSchemaRegistry:a,createLayer:!0,createSource:!0,layerType:"RasterLayer",sourceType:"RasterSource",layerData:{name:"Custom Raster"},sourceData:{url:"https://tile.openstreetmap.org/{z}/{x}/{y}.png",maxZoom:24,minZoom:0,attribution:"(C) OpenStreetMap contributors"},okSignalPromise:r,cancel:o}))):(r.promise.then(e=>{e.connect(o,void 0)}),ge().createElement("div",{className:"jGIS-layer-browser-container"},ge().createElement("div",{className:"jGIS-layer-browser-header-container"},ge().createElement("div",{className:"jGIS-layer-browser-header"},ge().createElement("h2",{className:"jGIS-layer-browser-header-text"},"Layer Browser"),ge().createElement("div",{className:"jGIS-layer-browser-header-search-container"},ge().createElement("input",{type:"text",placeholder:"Search...",value:n,onChange:e=>{s(e.target.value.toLowerCase())},className:"jGIS-layer-browser-header-search"}))),ge().createElement("div",{className:"jGIS-layer-browser-categories"},y.map(e=>ge().createElement("span",{className:"jGIS-layer-browser-category",onClick:f},e)))),ge().createElement("div",{className:"jGIS-layer-browser-grid"},ge().createElement("div",{className:"jGIS-layer-browser-tile jGIS-layer-browser-custom-tile",onClick:()=>{p(!0)}},ge().createElement("div",{className:"jGIS-layer-browser-tile-img-container"},ge().createElement("img",{className:"jGIS-layer-browser-img",src:xt}),ge().createElement("div",{className:"jGIS-layer-browser-icon"},ge().createElement(nt.g,{style:{height:20},icon:ot.QLR}))),ge().createElement("div",{className:"jGIS-layer-browser-text-container"},ge().createElement("div",{className:"jGIS-layer-browser-text-info"},ge().createElement("h3",{className:"jGIS-layer-browser-text-header jGIS-layer-browser-text-general"},"Custom Raster Layer")),ge().createElement("p",{className:"jGIS-layer-browser-text-general jGIS-layer-browser-text-source"},"Create A Custom Raster Layer"))),h.map(t=>ge().createElement("div",{className:"jGIS-layer-browser-tile",onClick:()=>(t=>{const a=pe.UUID.uuid4(),r={type:"RasterSource",name:t.name,parameters:t.source},o={type:"RasterLayer",parameters:{source:a},visible:!0,name:t.name+" Layer"};e.sharedModel.addSource(a,r),e.addLayer(pe.UUID.uuid4(),o)})(t)},ge().createElement("div",{className:"jGIS-layer-browser-tile-img-container"},ge().createElement("img",{className:"jGIS-layer-browser-img",src:t.thumbnail}),-1===i.indexOf(t.name)?ge().createElement("div",{className:"jGIS-layer-browser-icon"},ge().createElement(nt.g,{style:{height:20},icon:ot.QLR})):ge().createElement("div",{className:"jGIS-layer-browser-icon jGIS-layer-browser-added"},ge().createElement(nt.g,{style:{height:20},icon:ot.e68}),ge().createElement("p",{className:"jGIS-layer-browser-text-general"},"Added!"))),ge().createElement("div",{className:"jGIS-layer-browser-text-container"},ge().createElement("div",{className:"jGIS-layer-browser-text-info"},ge().createElement("h3",{className:"jGIS-layer-browser-text-header jGIS-layer-browser-text-general"},t.name)),ge().createElement("p",{className:"jGIS-layer-browser-text-general jGIS-layer-browser-text-source"},t.source.attribution)))))))};class It extends d.Dialog{constructor(e){let t;t=()=>{this.resolve(0)};const a=new pe.PromiseDelegate;super({body:ge().createElement(Ot,{model:e.model,registry:e.registry,formSchemaRegistry:e.formSchemaRegistry,okSignalPromise:a,cancel:t}),buttons:[d.Dialog.cancelButton(),d.Dialog.okButton()]}),this.id="jupytergis::layerBrowser",this.okSignal=new o.Signal(this),a.resolve(this.okSignal),this.addClass("jGIS-layerbrowser-FormDialog")}resolve(e){0===e&&super.resolve(e),1===e&&this.okSignal.emit(1)}}const Nt=(e,t)=>{const[a,r]=(0,ue.useState)([]),[o,n]=(0,ue.useState)(!1),[s,i]=(0,ue.useState)(null);return(0,ue.useEffect)(()=>{(async()=>{var a,o,s,l;n(!0),i(null);try{const d=[],m=e.getSource(null===(a=null==t?void 0:t.parameters)||void 0===a?void 0:a.source),p=null===(o=null==m?void 0:m.parameters)||void 0===o?void 0:o.urls[0];if(!(null==p?void 0:p.url))return i("No source URL found."),void n(!1);let u;if(p.url.startsWith("http")||p.url.startsWith("https"))u=await(0,c.uz)(p.url);else{const t=await ze({filepath:p.url,type:"GeoTiffSource",model:e});if(!t.file)return i("Failed to load local file."),void n(!1);u=await(0,c._F)(t.file)}const g=(await u.getImage()).getSamplesPerPixel();for(let e=0;e<g;e++)d.push({band:e,stats:{minimum:null!==(s=p.min)&&void 0!==s?s:0,maximum:null!==(l=p.max)&&void 0!==l?l:100}});r(d)}catch(e){i(`Error fetching band info: ${e.message}`)}finally{n(!1)}})()},[]),{bandRows:a,setBandRows:r,loading:o,error:s}},Lt=({label:e,index:t,bandRow:a,bandRows:r,setSelectedBand:o,setBandRows:n,isMultibandColor:s})=>{const[i,l]=(0,ue.useState)(null==a?void 0:a.stats.minimum),[c,d]=(0,ue.useState)(null==a?void 0:a.stats.maximum),m=()=>{const e=[...r];e[t].stats.minimum=i,e[t].stats.maximum=c,n(e)};return ge().createElement(ge().Fragment,null,ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",{htmlFor:`band-select-${t}`},e,":"),ge().createElement("div",{className:"jp-select-wrapper"},ge().createElement("select",{name:`band-select-${t}`,onChange:e=>o(+e.target.value),className:"jp-mod-styled"},r.map((e,t)=>ge().createElement("option",{key:t,value:e.band,selected:e.band===(null==a?void 0:a.band),className:"jp-mod-styled"},e.colorInterpretation?`Band ${e.band} (${e.colorInterpretation})`:`Band ${e.band}`)),s?ge().createElement("option",{key:"unset",value:-1,selected:!a,className:"jp-mod-styled"},"Unset"):null))),s?null:ge().createElement("div",{className:"jp-gis-symbology-row",style:{gap:"0.5rem"}},ge().createElement("div",{style:{display:"flex",justifyContent:"space-between",width:"50%"}},ge().createElement("label",{htmlFor:"band-min",style:{alignSelf:"center"}},"Min"),ge().createElement("input",{type:"number",className:"jp-mod-styled",style:{marginRight:15},value:i,onChange:e=>{l(+e.target.value),m()}})),ge().createElement("div",{style:{display:"flex",justifyContent:"space-between",width:"50%",paddingRight:"2px"}},ge().createElement("label",{htmlFor:"band-max",style:{alignSelf:"center"}},"Max"),ge().createElement("input",{type:"number",className:"jp-mod-styled",value:c,onChange:e=>{d(+e.target.value),m()},onBlur:m}))))},kt=e=>ge().createElement(nt.g,{icon:ot.z1G,spin:!0,size:e.size||"xl",style:e.style||{margin:"auto",padding:"1rem"},className:e.className}),At=e=>ge().createElement("div",{className:"jGIS-Spinner",style:{display:e.loading?"flex":"none"}},ge().createElement("div",{className:"jGIS-SpinnerContent"})),Tt=({model:e,okSignalPromise:t,cancel:a,layerId:r})=>{if(!r)return;const o=e.getLayer(r);if(!(null==o?void 0:o.parameters))return;const{bandRows:n,setBandRows:s,loading:i}=Nt(e,o),[l,c]=(0,ue.useState)({red:1,green:2,blue:3,alpha:4}),d=(0,ue.useRef)(0),m=(0,ue.useRef)({red:l.red,green:l.green,blue:l.blue,alpha:l.alpha});(0,ue.useEffect)(()=>(p(),t.promise.then(e=>{e.connect(g)}),()=>{t.promise.then(e=>{e.disconnect(g,void 0)})}),[]),(0,ue.useEffect)(()=>{d.current=n.length},[n]),(0,ue.useEffect)(()=>{m.current=l},[l]);const p=async()=>{var e,t,a,r,n,s,i,l;const d=o.parameters,m=null!==(t=null===(e=d.symbologyState)||void 0===e?void 0:e.redBand)&&void 0!==t?t:1,p=null!==(r=null===(a=d.symbologyState)||void 0===a?void 0:a.greenBand)&&void 0!==r?r:2,u=null!==(s=null===(n=d.symbologyState)||void 0===n?void 0:n.blueBand)&&void 0!==s?s:3,g=null!==(l=null===(i=d.symbologyState)||void 0===i?void 0:i.alphaBand)&&void 0!==l?l:4;c({red:m,green:p,blue:u,alpha:g})},u=(e,t)=>{c(a=>Object.assign(Object.assign({},a),{[e]:t}))},g=()=>{if(!o.parameters)return;const t=["array"];["red","green","blue"].forEach(e=>{const a=m.current[e];t.push(0!==a?["band",a]:0)}),m.current.alpha?t.push(["band",m.current.alpha]):t.push(["band",d.current+1]);const n={renderType:"Multiband Color",redBand:m.current.red,greenBand:m.current.green,blueBand:m.current.blue,alphaBand:m.current.alpha};o.parameters.symbologyState=n,o.parameters.color=t,o.type="WebGlLayer",e.sharedModel.updateLayer(r,o),a()};return ge().createElement("div",{className:"jp-gis-layer-symbology-container"},ge().createElement("div",{className:"jp-gis-band-container"},ge().createElement(At,{loading:i}),ge().createElement(Lt,{label:"Red Band",index:l.red-1,bandRow:n[l.red-1],bandRows:n,setSelectedBand:e=>u("red",e>=0?e+1:0),setBandRows:s,isMultibandColor:!0}),ge().createElement(Lt,{label:"Green Band",index:l.green-1,bandRow:n[l.green-1],bandRows:n,setSelectedBand:e=>u("green",e>=0?e+1:0),setBandRows:s,isMultibandColor:!0}),ge().createElement(Lt,{label:"Blue Band",index:l.blue-1,bandRow:n[l.blue-1],bandRows:n,setSelectedBand:e=>u("blue",e>=0?e+1:0),setBandRows:s,isMultibandColor:!0}),ge().createElement(Lt,{label:"Alpha Band",index:l.alpha-1,bandRow:n[l.alpha-1],bandRows:n,setSelectedBand:e=>u("alpha",e>=0?e+1:0),setBandRows:s,isMultibandColor:!0})))};var Pt,Gt;!function(e){e.calculateQuantileBreaks=(e,t)=>{const a=[...e].sort((e,t)=>e-t),r=[];if(!a)return[];const o=a.length;let n=o>0?a[0]:0;for(let e=1;e<t;e++){if(o>1){const r=e/t*(o-1),s=Math.floor(r),i=r-s;n=(1-i)*a[s]+i*a[s+1]}r.push(n)}return r.push(a[o-1]),r},e.calculateEqualIntervalBreaks=(e,t)=>{const a=Math.min(...e),r=Math.max(...e),o=[],n=(r-a)/t;let s=a;for(let e=0;e<t;e++)s+=n,o.push(s);return o[t-1]=r,o},e.calculateJenksBreaks=(e,t)=>{const a=Math.max(...e);if(0===e.length)return[];if(t<=1)return[a];if(t>=e.length)return e;const r=[...e].sort((e,t)=>e-t),o=r.length,n=Array.from({length:o+1},()=>Array(t+1).fill(0)),s=Array.from({length:o+1},()=>Array(t+1).fill(Number.MAX_VALUE));for(let e=1;e<=t;e++){n[0][e]=1,n[1][e]=1,s[0][e]=0;for(let t=2;t<=o;t++)s[t][e]=Number.MAX_VALUE}for(let e=2;e<=o;e++){let a=0,o=0,i=0,l=0;for(let c=1;c<=e;c++){const d=e-c+1,m=r[d-1];o+=m*m,a+=m,i++,l=o-a*a/i;const p=d-1;if(0!==p)for(let a=2;a<=t;a++)s[e][a]>=l+s[p][a-1]&&(n[e][a]=p,s[e][a]=l+s[p][a-1])}n[e][1]=1,s[e][1]=l}const i=Array(t);i[t-1]=r[o-1];for(let e=t,a=o;e>=2;e--){const t=n[a][e]-1;i[e-2]=r[t],a=n[a][e]-1}return i},e.calculatePrettyBreaks=(e,t)=>{const a=Math.min(...e),r=Math.max(...e),o=[];if(t<1)return o.push(r),o;const n=Math.floor(t/3),s=t;let i,l=!1;const c=r-a;let d;i=Math.max(Math.abs(a),Math.abs(r)),d=1.4,l=c<1.4*i*Math.max(1,s)*1e-7*3,l?(i>10&&(i=9+i/10,i*=.75),n>1&&(i/=n)):(i=c,s>1&&(i/=s)),i<20*1e-7&&(i=20*1e-7);const m=Math.pow(10,Math.floor(Math.log10(i)));let p=m;2*m-i<1.5*(i-p)&&(p=2*m,5*m-i<2.75*(i-p)&&(p=5*m,10*m-i<1.5*(i-p)&&(p=10*m)));let u=Math.floor(a/p+1e-7),g=Math.ceil(r/p-1e-7);for(;u*p>a+1e-7*p;)u-=1;for(;g*p<r-1e-7*p;)g+=1;let y=Math.floor(.5+g-u);y<n&&(y=n-y,u>=0?(g+=y/2,u=u-y/2+y%2):(u-=y/2,g=g+y/2+y%2));const h=u*p,v=g-u;for(let e=1;e<v+1;e++)o.push(h+e*p);if(0===o.length)return o;if(o[0]<a&&(o[0]=a),o[o.length-1]>r&&(o[o.length-1]=r),a<0&&r>0){const e=o.map(e=>e-0);let t=0;for(let a=1;a<o.length;a++)Math.abs(e[a])<Math.abs(e[t])&&(t=a);o[t]=0}return o},e.calculateLogarithmicBreaks=(t,a)=>{const r=Math.min(...t),o=Math.max(...t);let n=Number.MAX_VALUE,s=[];n=r;const i=Math.log10(n);let l=Math.floor(i);const c=Math.ceil(Math.log10(o));let d=e.calculatePrettyBreaks([l,c],a);for(;d.length>0&&d[0]<i;)l+=1,d=e.calculatePrettyBreaks([l,c],a);s=d;for(let e=0;e<s.length;e++)s[e]=Math.pow(10,s[e]);return s}}(Pt||(Pt={})),function(e){e.classifyQuantileBreaks=async(e,t,a,r)=>{const o=[],n="discrete"===r,s=new l.A,i=await(0,c.uz)(a),d=await i.getImage(),m=(await d.readRasters({pool:s}))[t-1].filter(e=>0!==e).sort((e,t)=>e-t);if(s.destroy(),!m)return[];let p,u,g;n?(u=m.length/e,p=0,g=0):(u=m.length/(e-1),o.push(1),p=1,g=1);for(let e=g;e<m.length;e++)p+1<u?p++:(o.push(m[e]),p=0);return o.length!==e&&o.push(65535),o},e.classifyContinuousBreaks=(e,t,a,r)=>{const o=t,n=a;if(o>n)return[];const s=[],i=e;if("discrete"===r){const e=(n-o)*(i-1)/i;for(let t=1;t<i;t++){const a=t/i;s.push(o+a*e)}s.push(n)}else for(let e=0;e<=i;e++){if(26===e)continue;const t=e/i;s.push(o+t*(n-o))}return s},e.classifyEqualIntervalBreaks=(e,t,a,r)=>{const o=t,n=a;if(o>n)return[];const s=[];if("discrete"===r){const t=(n-o)/e;for(let a=1;a<e;a++)s.push(o+a*t);s.push(n)}else{const t=(n-o)/(e-1);for(let a=0;a<e;a++)s.push(o+a*t)}return s}}(Gt||(Gt={}));var Rt=a(54645),Dt=a.n(Rt);const Ft=({index:e,colorMap:t,onClick:a})=>((0,ue.useEffect)(()=>{const a=document.getElementById(`cv-${e}`);if(!a)return;const r=a.getContext("2d");if(r)for(let e=0;e<=255;e++){r.beginPath();const a=t.colors[e];r.fillStyle=a,r.fillRect(2*e,0,2,30)}},[]),ge().createElement("div",{key:t.name,onClick:()=>a(t.name),className:"jp-gis-color-ramp-entry"},ge().createElement("span",{className:"jp-gis-color-label"},t.name),ge().createElement("canvas",{id:`cv-${e}`,height:30,className:"jp-gis-color-canvas"}))),Bt=({selectedRamp:e,setSelected:t})=>{const a=["jet","hot","cool","spring","summer","autumn","winter","bone","copper","greys","YiGnBu","greens","YiOrRd","bluered","RdBu","rainbow","portland","blackbody","earth","electric","viridis","inferno","magma","plasma","warm","bathymetry","cdom","chlorophyll","density","freesurface-blue","freesurface-red","oxygen","par","phase","salinity","temperature","turbidity","velocity-blue","velocity-green"],r=(0,ue.useRef)(null),[o,n]=(0,ue.useState)(!1),[s,i]=(0,ue.useState)([]);(0,ue.useEffect)(()=>{const e=[];a.forEach(t=>{const a={name:t,colors:Dt()({colormap:t,nshades:255,format:"rgbaString"})};e.push(a),i(e)})},[]),(0,ue.useEffect)(()=>{s.length>0&&d(e)},[e]);const l=e=>{t(e),n(!1),d(e)},c=e=>{r.current&&(r.current.contains(e.target)||n(!1))},d=e=>{const t=document.getElementById("cv");if(!t)return;t.style.visibility="hidden";const a=t.getContext("2d");if(!a)return;const r=s.filter(t=>t.name===e);for(let e=0;e<=255;e++){a.beginPath();const t=r[0].colors[e];a.fillStyle=t,a.fillRect(2*e,0,2,50)}t.style.visibility="initial"};return(0,ue.useEffect)(()=>(document.addEventListener("mousedown",c),()=>{document.removeEventListener("mousedown",c)}),[]),ge().createElement("div",{ref:r,className:"jp-gis-canvas-button-wrapper"},ge().createElement(u.Button,{id:"jp-gis-canvas-button",onClick:()=>{n(!o)},className:"jp-Dialog-button jp-gis-canvas-button"},ge().createElement("canvas",{id:"cv",className:"jp-gis-color-canvas-display",height:"30"})),ge().createElement("div",{className:"jp-gis-color-ramp-dropdown "+(o?"jp-gis-open":"")},s.map((e,t)=>ge().createElement(Ft,{index:t,colorMap:e,onClick:l}))))},zt=({numberOfShades:e,setNumberOfShades:t,selectedMode:a,setSelectedMode:r,modeOptions:o})=>ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("div",{className:"jp-gis-color-ramp-div"},ge().createElement("label",{htmlFor:"class-number-input"},"Classes:"),ge().createElement("input",{className:"jp-mod-styled",name:"class-number-input",type:"number",value:"continuous"===a?52:e,onChange:e=>t(e.target.value),disabled:"continuous"===a})),ge().createElement("div",{className:"jp-gis-color-ramp-div"},ge().createElement("label",{htmlFor:"mode-select"},"Mode:"),ge().createElement("div",{className:"jp-select-wrapper"},ge().createElement("select",{name:"mode-select",id:"mode-select",className:"jp-mod-styled",value:a,onChange:e=>r(e.target.value)},o.map(e=>ge().createElement("option",{key:e,value:e,selected:a===e},e)))))),Vt=({layerParams:e,modeOptions:t,classifyFunc:a,showModeRow:r,showRampSelector:o})=>{const[n,s]=(0,ue.useState)(""),[i,l]=(0,ue.useState)(""),[c,d]=(0,ue.useState)(""),[m,p]=(0,ue.useState)(!1);(0,ue.useEffect)(()=>{g()},[e]);const g=async()=>{let t,a,r;e.symbologyState&&(t=e.symbologyState.nClasses,a=e.symbologyState.mode,r=e.symbologyState.colorRamp),d(t||"9"),l(a||"equal interval"),s(r||"cool")};return ge().createElement("div",{className:"jp-gis-color-ramp-container"},o&&ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",{htmlFor:"color-ramp-select"},"Color Ramp:"),ge().createElement(Bt,{selectedRamp:n,setSelected:s})),r&&ge().createElement(zt,{modeOptions:t,numberOfShades:c,setNumberOfShades:d,selectedMode:i,setSelectedMode:l}),m?ge().createElement(kt,null):ge().createElement(u.Button,{className:"jp-Dialog-button jp-mod-accept jp-mod-styled",onClick:()=>a(i,c,n,p)},"Classify"))},Wt=({index:e,value:t,outputValue:a,stopRows:r,setStopRows:o,deleteRow:n,useNumber:s})=>{const i=(0,ue.useRef)(null);(0,ue.useEffect)(()=>{var e;i.current===document.activeElement&&(null===(e=i.current)||void 0===e||e.focus())},[r]);const l=t=>{const a=[...r];a[e].output=s?+t.target.value:(e=>{const t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16),1]:(console.warn("Unable to parse hex value, defaulting to black"),[parseInt("0",16),parseInt("0",16),parseInt("0",16)])})(t.target.value),o(a)};return ge().createElement("div",{className:"jp-gis-color-row"},ge().createElement("input",{id:`jp-gis-color-value-${e}`,type:"number",value:t,onChange:t=>{const a=[...r];a[e].stop=+t.target.value,o(a)},onBlur:()=>{const e=[...r];e.sort((e,t)=>e.stop<t.stop?-1:e.stop>t.stop?1:0),o(e)},className:"jp-mod-styled jp-gis-color-row-value-input"}),s?ge().createElement("input",{type:"number",ref:i,value:a,onChange:l,className:"jp-mod-styled jp-gis-color-row-output-input"}):ge().createElement("input",{id:`jp-gis-color-color-${e}`,ref:i,value:(e=>{if(Array.isArray(e))return"#"+e.slice(0,-1).map(e=>e.toString(16).padStart(2,"0")).join("")})(a),type:"color",onChange:l,className:"jp-mod-styled jp-gis-color-row-output-input"}),ge().createElement(u.Button,{id:`jp-gis-remove-color-${e}`,className:"jp-Button jp-gis-filter-icon"},ge().createElement(nt.g,{icon:ot.yLS,onClick:n})))};var Ut,$t;!function(e){e.buildColorInfo=e=>{var t;if(!(null===(t=e.parameters)||void 0===t?void 0:t.color))return[];const a=e.parameters.color;if("string"==typeof a)return[];const r=["fill-color","circle-fill-color"],o=[],n=new Set;for(const e of r)if(a[e])switch(a[e][0]){case"interpolate":for(let t=3;t<a[e].length;t+=2){const r=`${a[e][t]}-${a[e][t+1]}`;n.has(r)||(o.push({stop:a[e][t],output:a[e][t+1]}),n.add(r))}break;case"case":for(let t=1;t<a[e].length-1;t+=2){const r=`${a[e][t][2]}-${a[e][t+1]}`;n.has(r)||(o.push({stop:a[e][t][2],output:a[e][t+1]}),n.add(r))}}return o},e.buildRadiusInfo=e=>{var t;if(!(null===(t=e.parameters)||void 0===t?void 0:t.color))return[];const a=e.parameters.color;if("string"==typeof a)return[];const r=[];for(let e=3;e<a["circle-radius"].length;e+=2){const t={stop:a["circle-radius"][e],output:a["circle-radius"][e+1]};r.push(t)}return r}}(Ut||(Ut={})),function(e){e.getValueColorPairs=(e,t,a)=>{let r=Dt()({colormap:t,nshades:a>9?a:9,format:"rgba"});const o=[];if(a<9){const t=Math.floor(a/2),o=r.slice(0,t),n=r.slice(r.length-(e.length-o.length));r=o.concat(n)}for(let t=0;t<a;t++)o.push({stop:e[t],output:r[t]});return o}}($t||($t={}));class Ht{constructor(){this.stateDb=null}static getInstance(){return Ht.instance||(Ht.instance=new Ht),Ht.instance}initialize(e){null===this.stateDb?this.stateDb=e:console.warn("stateDb is already initialized.")}getStateDb(){return this.stateDb}}const Jt=({model:e,okSignalPromise:t,cancel:a,layerId:r})=>{if(!r)return;const o=e.getLayer(r);if(!(null==o?void 0:o.parameters))return;const n=Ht.getInstance().getStateDb(),{bandRows:s,setBandRows:i,loading:l}=Nt(e,o),[c,d]=(0,ue.useState)(),[m,p]=(0,ue.useState)(1),[g,y]=(0,ue.useState)([]),[h,v]=(0,ue.useState)("linear"),[f,b]=(0,ue.useState)(),S=(0,ue.useRef)(),w=(0,ue.useRef)([]),E=(0,ue.useRef)(),C=(0,ue.useRef)(),j=(0,ue.useRef)();(0,ue.useEffect)(()=>(_(),t.promise.then(e=>{e.connect(x)}),()=>{t.promise.then(e=>{e.disconnect(x,void 0)})}),[]),(0,ue.useEffect)(()=>{w.current=s,M()},[s]),(0,ue.useEffect)(()=>{S.current=g,E.current=h,C.current=f,j.current=m},[g,h,f,m,c]);const _=async()=>{var e,t,a,s;const i=await(null==n?void 0:n.fetch(`jupytergis:${r}`));d(i);const l=o.parameters,c=null!==(t=null===(e=l.symbologyState)||void 0===e?void 0:e.band)&&void 0!==t?t:1,m=null!==(s=null===(a=l.symbologyState)||void 0===a?void 0:a.interpolation)&&void 0!==s?s:"linear";p(c),v(m)},M=()=>{var e;if(!(null===(e=o.parameters)||void 0===e?void 0:e.color)||!c)return;const t=o.parameters.color;if("string"==typeof t)return;const a="quantile"===c.selectedMode,r=[];switch(t[0]){case"interpolate":for(let e=5;e<t.length;e+=2){const o={stop:O(t[e],a),output:t[e+1]};r.push(o)}break;case"case":for(let e=3;e<t.length-1;e+=2){const o={stop:O(t[e][2],a),output:t[e+1]};r.push(o)}}y(r)},x=()=>{var t,n,s,i,l,c,d,p;const u=w.current[m-1];if(!u)return;const g=null===(t=o.parameters)||void 0===t?void 0:t.source,y=e.getSource(g);if(!y||!y.parameters)return;const h="quantile"===(null===(n=C.current)||void 0===n?void 0:n.selectedMode),v=y.parameters.urls[0];if(v.min=u.stats.minimum,v.max=u.stats.maximum,y.parameters.urls[0]=v,e.sharedModel.updateSource(g,y),!o.parameters)return;let f=[];switch(E.current){case"linear":f=["interpolate",["linear"]],f.push(["band",m]),f.push(0,[0,0,0,0]),null===(s=S.current)||void 0===s||s.map(e=>{f.push(I(e.stop,h)),f.push(e.output)});break;case"discrete":f=["case"],f.push(["==",["band",m],0]),f.push([0,0,0,0]),null===(i=S.current)||void 0===i||i.map(e=>{f.push(["<=",["band",m],I(e.stop,h)]),f.push(e.output)}),f.push([0,0,0,0]);break;case"exact":f=["case"],f.push(["==",["band",m],0]),f.push([0,0,0,0]),null===(l=S.current)||void 0===l||l.map(e=>{f.push(["==",["band",m],I(e.stop,h)]),f.push(e.output)}),f.push([0,0,0,0])}const b={renderType:"Singleband Pseudocolor",band:j.current,interpolation:E.current,colorRamp:null===(c=C.current)||void 0===c?void 0:c.selectedRamp,nClasses:null===(d=C.current)||void 0===d?void 0:d.numberOfShades,mode:null===(p=C.current)||void 0===p?void 0:p.selectedMode};o.parameters.symbologyState=b,o.parameters.color=f,o.type="WebGlLayer",e.sharedModel.updateLayer(r,o),a()},O=(e,t)=>{const a=s[m-1];if(!a)return e;const r=t?1:a.stats.minimum;return e*((t?65535:a.stats.maximum)-r)/1+r},I=(e,t)=>{const a=w.current[m-1],r=t?1:a.stats.minimum;return(1*e-1*r)/((t?65535:a.stats.maximum)-r)};return ge().createElement("div",{className:"jp-gis-layer-symbology-container"},ge().createElement("div",{className:"jp-gis-band-container"},ge().createElement(At,{loading:l}),ge().createElement(Lt,{label:"Band",index:m-1,bandRow:s[m-1],bandRows:s,setSelectedBand:p,setBandRows:i})),ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",{htmlFor:"function-select"},"Interpolation:"),ge().createElement("div",{className:"jp-select-wrapper"},ge().createElement("select",{name:"function-select",id:"function-select",className:"jp-mod-styled",value:h,style:{textTransform:"capitalize"},onChange:e=>{v(e.target.value)}},["discrete","linear","exact"].map((e,t)=>ge().createElement("option",{key:e,value:e,style:{textTransform:"capitalize"}},e))))),s.length>0&&ge().createElement(Vt,{layerParams:o.parameters,modeOptions:["continuous","equal interval","quantile"],classifyFunc:async(t,a,r,n)=>{var i,l;b({selectedRamp:r,numberOfShades:a,selectedMode:t});let c=[];const d=s[m-1],p=e.getSource(null===(i=null==o?void 0:o.parameters)||void 0===i?void 0:i.source),u=null===(l=null==p?void 0:p.parameters)||void 0===l?void 0:l.urls[0],g="continuous"===t?52:+a;switch(n(!0),t){case"quantile":c=await Gt.classifyQuantileBreaks(g,m,u.url,h);break;case"continuous":c=Gt.classifyContinuousBreaks(g,d.stats.minimum,d.stats.maximum,h);break;case"equal interval":c=Gt.classifyEqualIntervalBreaks(g,d.stats.minimum,d.stats.maximum,h);break;default:return void console.warn("No mode selected")}n(!1);const v=$t.getValueColorPairs(c,r,g);y(v)},showModeRow:!0,showRampSelector:!0}),ge().createElement("div",{className:"jp-gis-stop-container"},ge().createElement("div",{className:"jp-gis-stop-labels",style:{display:"flex",gap:6}},ge().createElement("span",{style:{flex:"0 0 18%"}},"Value"," ","discrete"===h?"<=":"exact"===h?"=":""),ge().createElement("span",null,"Output Value")),g.map((e,t)=>ge().createElement(Wt,{key:`${t}-${e.output}`,index:t,value:e.stop,outputValue:e.output,stopRows:g,setStopRows:y,deleteRow:()=>(e=>{const t=[...g];t.splice(e,1),y(t)})(t)}))),ge().createElement("div",{className:"jp-gis-symbology-button-container"},ge().createElement(u.Button,{className:"jp-Dialog-button jp-mod-accept jp-mod-styled",onClick:()=>{y([{stop:0,output:[0,0,0,1]},...g])}},"Add Stop")))},qt=({model:e,state:t,okSignalPromise:a,cancel:r,layerId:o})=>{const[n,s]=(0,ue.useState)(),[i,l]=(0,ue.useState)(null);let c;if(o)return(0,ue.useEffect)(()=>{var t,a;const r=e.getLayer(o),n=null===(a=null===(t=null==r?void 0:r.parameters)||void 0===t?void 0:t.symbologyState)||void 0===a?void 0:a.renderType;s(null!=n?n:"Singleband Pseudocolor")},[]),(0,ue.useEffect)(()=>{if(n){switch(n){case"Singleband Pseudocolor":c=ge().createElement(Jt,{model:e,state:t,okSignalPromise:a,cancel:r,layerId:o});break;case"Multiband Color":c=ge().createElement(Tt,{model:e,state:t,okSignalPromise:a,cancel:r,layerId:o});break;default:c=ge().createElement("div",null,"Render Type Not Implemented (yet)")}l(c)}},[n]),ge().createElement(ge().Fragment,null,ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",{htmlFor:"render-type-select"},"Render Type:"),ge().createElement("select",{name:"render-type-select",id:"render-type-select",value:n,onChange:e=>{s(e.target.value)}},["Singleband Pseudocolor","Multiband Color"].map((e,t)=>ge().createElement("option",{key:e,value:e},e)))),i)},Zt=({layerId:e,model:t})=>{const[a,r]=(0,ue.useState)({}),[o,n]=(0,ue.useState)(!0),[s,i]=(0,ue.useState)();return(0,ue.useEffect)(()=>{(async()=>{var a,o;if(e)try{const s=t.getLayer(e),i=t.getSource(null===(a=null==s?void 0:s.parameters)||void 0===a?void 0:a.source);if(!i)throw new Error("Source not found");const l=await ze({filepath:null===(o=i.parameters)||void 0===o?void 0:o.path,type:"GeoJSONSource",model:t});if(!l)throw new Error("Failed to read GeoJSON data");const c={};l.features.forEach(e=>{e.properties&&Object.entries(e.properties).forEach(([e,t])=>{e in c||(c[e]=new Set),c[e].add(t)})}),r(c),n(!1)}catch(e){i(e),n(!1)}})()},[t,e]),{featureProperties:a,isLoading:o,error:s}},Qt=({featureProperties:e,selectedValue:t,setSelectedValue:a})=>ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",{htmlFor:"vector-value-select"},"Value:"),ge().createElement("select",{name:"vector-value-select",onChange:e=>a(e.target.value),className:"jp-mod-styled"},Object.keys(e).map((e,a)=>ge().createElement("option",{key:a,value:e,selected:e===t,className:"jp-mod-styled"},e)))),Yt=({selectedMethod:e,stopRows:t,setStopRows:a})=>ge().createElement(ge().Fragment,null,ge().createElement("div",{className:"jp-gis-stop-container"},ge().createElement("div",{className:"jp-gis-stop-labels",style:{display:"flex",gap:6}},ge().createElement("span",{style:{flex:"0 0 18%"}},"Value"),ge().createElement("span",null,"Output Value")),t.map((r,o)=>ge().createElement(Wt,{key:`${o}-${r.output}`,index:o,value:r.stop,outputValue:r.output,stopRows:t,setStopRows:a,deleteRow:()=>(e=>{const r=[...t];r.splice(e,1),a(r)})(o),useNumber:"radius"===e}))),ge().createElement("div",{className:"jp-gis-symbology-button-container"},ge().createElement(u.Button,{className:"jp-Dialog-button jp-mod-accept jp-mod-styled",onClick:()=>{a([{stop:0,output:[0,0,0,1]},...t])}},"Add Stop"))),Kt={"Single Symbol":{component:({model:e,state:t,okSignalPromise:a,cancel:r,layerId:o,symbologyTab:n})=>{const s=(0,ue.useRef)(),[i,l]=(0,ue.useState)({fillColor:"#3399CC",joinStyle:"round",strokeColor:"#3399CC",capStyle:"round",strokeWidth:1.25,radius:5});if(!o)return;const c=e.getLayer(o);if(!c)return;(0,ue.useEffect)(()=>{if(c.parameters)return(async()=>{var e;if(c.parameters&&"Single Symbol"===(null===(e=c.parameters)||void 0===e?void 0:e.symbologyState.renderType)){const e=Te(c.parameters.color);e&&l(e)}})(),a.promise.then(e=>{e.connect(d,void 0)}),()=>{a.promise.then(e=>{e.disconnect(d,void 0)})}},[]),(0,ue.useEffect)(()=>{s.current=i},[i]);const d=()=>{var t,a,n,i,l,d,m,p,u,g,y;if(!c.parameters)return;const h={"circle-radius":null===(t=s.current)||void 0===t?void 0:t.radius,"circle-fill-color":null===(a=s.current)||void 0===a?void 0:a.fillColor,"circle-stroke-color":null===(n=s.current)||void 0===n?void 0:n.strokeColor,"circle-stroke-width":null===(i=s.current)||void 0===i?void 0:i.strokeWidth,"circle-stroke-line-join":null===(l=s.current)||void 0===l?void 0:l.joinStyle,"circle-stroke-line-cap":null===(d=s.current)||void 0===d?void 0:d.capStyle,"fill-color":null===(m=s.current)||void 0===m?void 0:m.fillColor,"stroke-color":null===(p=s.current)||void 0===p?void 0:p.strokeColor,"stroke-width":null===(u=s.current)||void 0===u?void 0:u.strokeWidth,"stroke-line-join":null===(g=s.current)||void 0===g?void 0:g.joinStyle,"stroke-line-cap":null===(y=s.current)||void 0===y?void 0:y.capStyle};c.parameters.symbologyState={renderType:"Single Symbol"},c.parameters.color=h,"HeatmapLayer"===c.type&&(c.type="VectorLayer"),e.sharedModel.updateLayer(o,c),r()};return ge().createElement("div",{className:"jp-gis-layer-symbology-container"},ge().createElement("p",null,"Color all features the same way."),"color"===n?ge().createElement(ge().Fragment,null,ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",{htmlFor:"vector-value-select"},"Fill Color:"),ge().createElement("input",{type:"color",value:i.fillColor,className:"jp-mod-styled",onChange:e=>l(t=>Object.assign(Object.assign({},t),{fillColor:e.target.value}))})),ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",{htmlFor:"vector-value-select"},"Stroke Color:"),ge().createElement("input",{type:"color",value:i.strokeColor,className:"jp-mod-styled",onChange:e=>l(t=>Object.assign(Object.assign({},t),{strokeColor:e.target.value}))})),ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",{htmlFor:"vector-value-select"},"Stroke Width:"),ge().createElement("input",{type:"number",value:i.strokeWidth,className:"jp-mod-styled",onChange:e=>l(t=>Object.assign(Object.assign({},t),{strokeWidth:+e.target.value}))})),ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",{htmlFor:"vector-join-select"},"Join Style:"),ge().createElement("div",{className:"jp-select-wrapper"},ge().createElement("select",{name:"vector-join-select",onChange:e=>l(t=>Object.assign(Object.assign({},t),{joinStyle:e.target.value})),className:"jp-mod-styled",value:i.joinStyle},["bevel","round","miter"].map((e,t)=>ge().createElement("option",{key:t,value:e,className:"jp-mod-styled"},e))))),ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",{htmlFor:"vector-cap-select"},"Cap Style:"),ge().createElement("div",{className:"jp-select-wrapper"},ge().createElement("select",{name:"vector-cap-select",onChange:e=>l(t=>Object.assign(Object.assign({},t),{capStyle:e.target.value})),className:"jp-mod-styled",value:i.capStyle},["butt","round","square"].map((e,t)=>ge().createElement("option",{key:t,value:e,className:"jp-mod-styled"},e)))))):ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",null,"Radius:"),ge().createElement("input",{type:"number",value:i.radius,className:"jp-mod-styled",onChange:e=>l(t=>Object.assign(Object.assign({},t),{radius:+e.target.value}))})))},supportedLayerTypes:["VectorLayer","VectorTileLayer","HeatmapLayer"],isTabbed:!0},Canonical:{component:({model:e,state:t,okSignalPromise:a,cancel:r,layerId:o,selectableAttributesAndValues:n})=>{const s=(0,ue.useRef)(),[i,l]=(0,ue.useState)("");if(!o)return;const c=e.getLayer(o);if(!(null==c?void 0:c.parameters))return;(0,ue.useEffect)(()=>(a.promise.then(e=>{e.connect(d,void 0)}),()=>{a.promise.then(e=>{e.disconnect(d,void 0)})}),[i]),(0,ue.useEffect)(()=>{var e,t;const a=null!==(t=null===(e=c.parameters.symbologyState)||void 0===e?void 0:e.value)&&void 0!==t?t:Object.keys(n)[0];l(a)},[n]),(0,ue.useEffect)(()=>{s.current=i},[i]);const d=()=>{if(!c.parameters)return;const t=["get",i],a=Object.assign({},c.parameters.color);a["fill-color"]=t,a["stroke-color"]=t,a["circle-fill-color"]=t;const n={renderType:"Canonical",value:s.current};c.parameters.symbologyState=n,c.parameters.color=a,"HeatmapLayer"===c.type&&(c.type="VectorLayer"),e.sharedModel.updateLayer(o,c),r()},m=(()=>{var e;return 0===(null===(e=Object.keys(n))||void 0===e?void 0:e.length)?ge().createElement("p",{className:"errors"},"This symbology type is not available; no attributes contain a hex color code."):ge().createElement(Qt,{featureProperties:n,selectedValue:i,setSelectedValue:l})})();return ge().createElement("div",{className:"jp-gis-layer-symbology-container"},ge().createElement("p",null,"Color features based on an attribute containing a hex color code."),m)},attributeChecker:Ze,supportedLayerTypes:["VectorLayer","HeatmapLayer"],isTabbed:!1},Graduated:{component:({model:e,state:t,okSignalPromise:a,cancel:r,layerId:o,symbologyTab:n,selectableAttributesAndValues:s})=>{const i=["quantile","equal interval","jenks","pretty","logarithmic"],l=(0,ue.useRef)(),c=(0,ue.useRef)(),d=(0,ue.useRef)([]),m=(0,ue.useRef)([]),p=(0,ue.useRef)(),[u,g]=(0,ue.useState)(""),[y,h]=(0,ue.useState)([]),[v,f]=(0,ue.useState)([]),[b,S]=(0,ue.useState)(),[w,E]=(0,ue.useState)({fillColor:"#3399CC",strokeColor:"#3399CC",strokeWidth:1.25}),[C,j]=(0,ue.useState)({radius:5}),_=(0,ue.useRef)(w),M=(0,ue.useRef)(C);if(!o)return;const x=e.getLayer(o);if(!(null==x?void 0:x.parameters))return;(0,ue.useEffect)(()=>(O(),a.promise.then(e=>{e.connect(I,void 0)}),()=>{a.promise.then(e=>{e.disconnect(I,void 0)})}),[]),(0,ue.useEffect)(()=>{var e;if(null===(e=null==x?void 0:x.parameters)||void 0===e?void 0:e.color){const e=x.parameters.color["fill-color"],t=x.parameters.color["circle-fill-color"],a=x.parameters.color["stroke-color"],r=x.parameters.color["circle-stroke-color"],o=e=>"string"==typeof e&&/^#?[0-9A-Fa-f]{3,8}$/.test(e);E({fillColor:o(e)?e:o(t)?t:"#3399CC",strokeColor:o(a)?a:o(r)?r:"#3399CC",strokeWidth:x.parameters.color["stroke-width"]||x.parameters.color["circle-stroke-width"]||1.25}),j({radius:x.parameters.color["circle-radius"]||5})}},[o]),(0,ue.useEffect)(()=>{d.current=y,m.current=v,l.current=u,c.current=n,p.current=b},[y,v,u,n,b]),(0,ue.useEffect)(()=>{_.current=w,M.current=C},[w,C]),(0,ue.useEffect)(()=>{var e,t;const a=null!==(t=null===(e=x.parameters.symbologyState)||void 0===e?void 0:e.value)&&void 0!==t?t:Object.keys(s)[0];g(a)},[s]);const O=()=>{x&&(h(Ut.buildColorInfo(x)),f(Ut.buildRadiusInfo(x)))},I=()=>{var t,a,n;if(!x.parameters)return;const s=Object.assign({},x.parameters.color);if(d.current.length>0){const e=["interpolate",["linear"],["get",l.current]];d.current.forEach(t=>{e.push(t.stop),e.push(t.output)}),s["fill-color"]=e,s["circle-fill-color"]=e}else s["fill-color"]=void 0,s["circle-fill-color"]=void 0;if(s["stroke-color"]=_.current.strokeColor,s["circle-stroke-color"]=_.current.strokeColor,s["stroke-width"]=_.current.strokeWidth,s["circle-stroke-width"]=_.current.strokeWidth,m.current.length>0){const e=["interpolate",["linear"],["get",l.current]];m.current.forEach(t=>{e.push(t.stop),e.push(t.output)}),s["circle-radius"]=e}else s["circle-radius"]=M.current.radius;x.parameters.color=s,x.parameters.symbologyState={renderType:"Graduated",value:l.current,method:c.current,colorRamp:null===(t=p.current)||void 0===t?void 0:t.selectedRamp,nClasses:null===(a=p.current)||void 0===a?void 0:a.numberOfShades,mode:null===(n=p.current)||void 0===n?void 0:n.selectedMode},"HeatmapLayer"===x.type&&(x.type="VectorLayer"),e.sharedModel.updateLayer(o,x),r()},N=(e,t,a)=>{let r;S({selectedRamp:a,numberOfShades:t,selectedMode:e});const o=Array.from(s[u]);switch(e){case"quantile":r=Pt.calculateQuantileBreaks(o,+t);break;case"equal interval":r=Pt.calculateEqualIntervalBreaks(o,+t);break;case"jenks":r=Pt.calculateJenksBreaks(o,+t);break;case"pretty":r=Pt.calculatePrettyBreaks(o,+t);break;case"logarithmic":r=Pt.calculateLogarithmicBreaks(o,+t);break;default:return void console.warn("No mode selected")}const i="radius"===n?r.map(e=>({stop:e,output:e})):$t.getValueColorPairs(r,a,+t);"radius"===n?f(i):h(i)},L=t=>{if(!(null==x?void 0:x.parameters))return;const a=Object.assign({},x.parameters.color);"color"===t&&(delete a["fill-color"],delete a["stroke-color"],delete a["circle-fill-color"],h([]),S(void 0)),"radius"===t&&(delete a["circle-radius"],f([])),x.parameters.color=a,e.sharedModel.updateLayer(o,x)},k=(()=>{var e;return 0===(null===(e=Object.keys(s))||void 0===e?void 0:e.length)?ge().createElement("p",{className:"errors"},"This symbology type is not available; no attributes contain numeric values."):ge().createElement(ge().Fragment,null,ge().createElement(Qt,{featureProperties:s,selectedValue:u,setSelectedValue:g}),ge().createElement("div",{className:"jp-gis-layer-symbology-container"},"color"===n&&ge().createElement(ge().Fragment,null,ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",null,"Fill Color:"),ge().createElement("input",{type:"color",className:"jp-mod-styled",value:w.fillColor,onChange:e=>{L("color"),E(Object.assign(Object.assign({},w),{fillColor:e.target.value}))}})),ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",null,"Stroke Color:"),ge().createElement("input",{type:"color",className:"jp-mod-styled",value:w.strokeColor,onChange:e=>{E(Object.assign(Object.assign({},w),{strokeColor:e.target.value}))}})),ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",null,"Stroke Width:"),ge().createElement("input",{type:"number",className:"jp-mod-styled",value:w.strokeWidth,onChange:e=>{E(Object.assign(Object.assign({},w),{strokeWidth:+e.target.value}))}}))),"radius"===n&&ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",null,"Circle Radius:"),ge().createElement("input",{type:"number",className:"jp-mod-styled",value:C.radius,onChange:e=>{L("radius"),j(Object.assign(Object.assign({},C),{radius:+e.target.value}))}}))),ge().createElement(Vt,{layerParams:x.parameters,modeOptions:i,classifyFunc:N,showModeRow:!0,showRampSelector:"color"===n}),ge().createElement(Yt,{selectedMethod:n||"color",stopRows:"color"===n?y:v,setStopRows:"color"===n?h:f}))})();return ge().createElement("div",{className:"jp-gis-layer-symbology-container"},ge().createElement("p",null,"Color features based on an attribute containing scalar values."),k)},attributeChecker:qe,supportedLayerTypes:["VectorLayer","HeatmapLayer"],isTabbed:!0},Categorized:{component:({model:e,state:t,okSignalPromise:a,cancel:r,layerId:o,symbologyTab:n,selectableAttributesAndValues:s})=>{const i=(0,ue.useRef)(),l=(0,ue.useRef)(),c=(0,ue.useRef)(),[d,m]=(0,ue.useState)(""),[p,u]=(0,ue.useState)([]),[g,y]=(0,ue.useState)(),[h,v]=(0,ue.useState)({fillColor:"#3399CC",strokeColor:"#3399CC",strokeWidth:1.25,radius:5}),f=(0,ue.useRef)(h);if(!o)return;const b=e.getLayer(o);if(!(null==b?void 0:b.parameters))return;(0,ue.useEffect)(()=>{const e=Ut.buildColorInfo(b);return u(e),a.promise.then(e=>{e.connect(S,void 0)}),()=>{a.promise.then(e=>{e.disconnect(S,void 0)})}},[]),(0,ue.useEffect)(()=>{var e;if(null===(e=null==b?void 0:b.parameters)||void 0===e?void 0:e.color){const e=b.parameters.color["fill-color"],t=b.parameters.color["circle-fill-color"],a=b.parameters.color["stroke-color"],r=b.parameters.color["circle-stroke-color"],o=e=>"string"==typeof e&&/^#?[0-9A-Fa-f]{3,8}$/.test(e);v({fillColor:o(e)?e:o(t)?t:"#3399CC",strokeColor:o(a)?a:o(r)?r:"#3399CC",strokeWidth:b.parameters.color["stroke-width"]||b.parameters.color["circle-stroke-width"]||1.25,radius:b.parameters.color["circle-radius"]||5})}},[o]),(0,ue.useEffect)(()=>{f.current=h},[h]),(0,ue.useEffect)(()=>{var e,t;const a=null!==(t=null===(e=b.parameters.symbologyState)||void 0===e?void 0:e.value)&&void 0!==t?t:Object.keys(s)[0];m(a)},[s]),(0,ue.useEffect)(()=>{i.current=d,l.current=p,c.current=g},[d,p,g]);const S=()=>{var t,a,s;if(!b.parameters)return;const d=Object.assign({},b.parameters.color);if(l.current&&l.current.length>0){const e=["case"];l.current.forEach(t=>{e.push(["==",["get",i.current],t.stop]),e.push(t.output)}),"color"===n&&(e.push([0,0,0,0]),d["fill-color"]=e,d["circle-fill-color"]=e,d["stroke-color"]=e,d["circle-stroke-color"]=e)}else d["fill-color"]=f.current.fillColor,d["circle-fill-color"]=f.current.fillColor;d["stroke-width"]=f.current.strokeWidth,d["circle-stroke-width"]=f.current.strokeWidth,d["circle-radius"]=f.current.radius,d["circle-stroke-color"]=f.current.strokeColor;const m={renderType:"Categorized",value:i.current,colorRamp:null===(t=c.current)||void 0===t?void 0:t.selectedRamp,nClasses:null===(a=c.current)||void 0===a?void 0:a.numberOfShades,mode:null===(s=c.current)||void 0===s?void 0:s.selectedMode,symbologyTab:n};b.parameters.symbologyState=m,b.parameters.color=d,"HeatmapLayer"===b.type&&(b.type="VectorLayer"),e.sharedModel.updateLayer(o,b),r()},w=0===Object.keys(s).length?ge().createElement("p",{className:"errors"},"This symbology type is not available; no attributes contain numeric values."):ge().createElement(ge().Fragment,null,ge().createElement(Qt,{featureProperties:s,selectedValue:d,setSelectedValue:m}),ge().createElement("div",{className:"jp-gis-layer-symbology-container"},"color"===n&&ge().createElement(ge().Fragment,null,ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",null,"Fill Color:"),ge().createElement("input",{type:"color",className:"jp-mod-styled",value:h.fillColor,onChange:t=>{(()=>{if(!(null==b?void 0:b.parameters))return;const t=Object.assign({},b.parameters.color);console.log("delecol"),delete t["fill-color"],delete t["stroke-color"],delete t["circle-fill-color"],delete t["circle-stroke-color"],u([]),b.parameters.symbologyState&&(b.parameters.symbologyState.colorRamp=void 0,b.parameters.symbologyState.nClasses=void 0,b.parameters.symbologyState.mode=void 0),b.parameters.color=t,e.sharedModel.updateLayer(o,b)})(),v(e=>Object.assign(Object.assign({},e),{fillColor:t.target.value}))}})),ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",null,"Stroke Color:"),ge().createElement("input",{type:"color",className:"jp-mod-styled",value:h.strokeColor,onChange:e=>{v(t=>Object.assign(Object.assign({},t),{strokeColor:e.target.value}))}})),ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",null,"Stroke Width:"),ge().createElement("input",{type:"number",className:"jp-mod-styled",value:h.strokeWidth,onChange:e=>{v(t=>Object.assign(Object.assign({},t),{strokeWidth:+e.target.value}))}}))),"radius"===n&&ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",null,"Circle Radius:"),ge().createElement("input",{type:"number",className:"jp-mod-styled",value:h.radius,onChange:e=>{v(t=>Object.assign(Object.assign({},t),{radius:+e.target.value}))}}))),ge().createElement("div",{className:"jp-gis-layer-symbology-container"},ge().createElement(Vt,{layerParams:b.parameters,modeOptions:[],classifyFunc:(e,t,a,r)=>{y({selectedFunction:"",selectedRamp:a,numberOfShades:"",selectedMode:""});const o=Array.from(s[d]).sort((e,t)=>e-t),n=$t.getValueColorPairs(o,a,o.length);u(n)},showModeRow:!1,showRampSelector:"color"===n}),ge().createElement(Yt,{selectedMethod:"",stopRows:p,setStopRows:u})));return ge().createElement("div",{className:"jp-gis-layer-symbology-container"},ge().createElement("p",null,"Color features based on an attribute containing unique values."),w)},attributeChecker:qe,supportedLayerTypes:["VectorLayer","HeatmapLayer"],isTabbed:!0},Heatmap:{component:({model:e,state:t,okSignalPromise:a,cancel:r,layerId:o})=>{if(!o)return;const n=e.getLayer(o);if(!(null==n?void 0:n.parameters))return;const[s,i]=(0,ue.useState)(""),[l,c]=(0,ue.useState)({radius:8,blur:15}),d=(0,ue.useRef)("cool"),m=(0,ue.useRef)({radius:8,blur:15});(0,ue.useEffect)(()=>(p(),a.promise.then(e=>{e.connect(u,void 0)}),()=>{a.promise.then(e=>{e.disconnect(u,void 0)})}),[]),(0,ue.useEffect)(()=>{d.current=s,m.current=l},[s,l]);const p=async()=>{var e;let t;(null===(e=n.parameters)||void 0===e?void 0:e.symbologyState)&&(t=n.parameters.symbologyState.colorRamp),i(t||"cool")},u=()=>{if(!n.parameters)return;const t=Dt()({colormap:d.current,nshades:9,format:"hex"}),a={renderType:"Heatmap",colorRamp:d.current};n.parameters.symbologyState=a,n.parameters.color=t,n.parameters.blur=m.current.blur,n.parameters.radius=m.current.radius,n.type="HeatmapLayer",e.sharedModel.updateLayer(o,n),r()};return ge().createElement("div",{className:"jp-gis-layer-symbology-container"},ge().createElement("p",null,"Represent features based on their density using a heatmap."),ge().createElement("div",{className:"jp-gis-symbology-row jp-gis-heatmap"},ge().createElement("label",{htmlFor:"color-ramp-select"},"Color Ramp:"),ge().createElement(Bt,{selectedRamp:s,setSelected:i})),ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",{htmlFor:"vector-value-select"},"Radius:"),ge().createElement("input",{type:"number",value:l.radius,className:"jp-mod-styled",onChange:e=>c(t=>Object.assign(Object.assign({},t),{radius:+e.target.value}))})),ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",{htmlFor:"vector-value-select"},"Blur:"),ge().createElement("input",{type:"number",value:l.blur,className:"jp-mod-styled",onChange:e=>c(t=>Object.assign(Object.assign({},t),{blur:+e.target.value}))})))},supportedLayerTypes:["VectorLayer","HeatmapLayer"],isTabbed:!1}},Xt=({model:e,state:t,okSignalPromise:a,cancel:r,layerId:o})=>{const[n,s]=(0,ue.useState)(),[i,l]=(0,ue.useState)("color");if(!o)return;const c=e.getLayer(o);if(!(null==c?void 0:c.parameters))return;const{featureProperties:d,isLoading:m}=Zt({layerId:o,model:e});if(((e,t)=>{(0,ue.useEffect)(()=>{var a,r;let o=null===(r=null===(a=e.parameters)||void 0===a?void 0:a.symbologyState)||void 0===r?void 0:r.renderType;o||(o="HeatmapLayer"===e.type?"Heatmap":"Single Symbol"),t(o)},[])})(c,s),m)return ge().createElement("p",null,"Loading...");if(void 0===n)return;const p=((e,t)=>{const a=Ke(Kt).map(([a,r])=>[a,Object.assign(Object.assign(Object.assign({},r),r.attributeChecker?{selectableAttributesAndValues:r.attributeChecker(e)}:{}),{layerTypeSupported:r.supportedLayerTypes.includes(t)})]);return Object.fromEntries(a)})(d,c.type),u=p[n];return ge().createElement(ge().Fragment,null,u.isTabbed&&ge().createElement("div",{className:"jp-gis-symbology-tabs"},["color","radius"].map(e=>ge().createElement("button",{key:e,className:"jp-gis-tab "+(i===e?"active":""),onClick:()=>l(e)},e.charAt(0).toUpperCase()+e.slice(1)))),ge().createElement("div",{className:"jp-gis-symbology-row"},ge().createElement("label",{htmlFor:"render-type-select"},"Render Type:"),ge().createElement("div",{className:"jp-select-wrapper"},ge().createElement("select",{name:"render-type-select",id:"render-type-select",className:"jp-mod-styled",value:n,onChange:e=>{s(e.target.value)}},Ke(p).filter(([e,t])=>t.layerTypeSupported&&!("Heatmap"===e&&"radius"===i)).map(([e,t])=>ge().createElement("option",{key:e,value:e},e))))),ge().createElement(u.component,Object.assign({model:e,state:t,okSignalPromise:a,cancel:r,layerId:o},u.isTabbed?{symbologyTab:i}:{},u.selectableAttributesAndValues?{selectableAttributesAndValues:u.selectableAttributesAndValues}:{})))},ea=({model:e,state:t,okSignalPromise:a,cancel:r})=>{const[o,n]=(0,ue.useState)(null),[s,i]=(0,ue.useState)(null);let l;return(0,ue.useEffect)(()=>{const t=()=>{var t,a;if(!(null===(a=null===(t=e.localState)||void 0===t?void 0:t.selected)||void 0===a?void 0:a.value))return;const r=Object.keys(e.localState.selected.value)[0];n(r)};return t(),e.clientStateChanged.connect(t),()=>{e.clientStateChanged.disconnect(t)}},[]),(0,ue.useEffect)(()=>{if(!o)return;const n=e.getLayer(o);if(n){switch(n.type){case"VectorLayer":case"VectorTileLayer":case"HeatmapLayer":l=ge().createElement(Xt,{model:e,state:t,okSignalPromise:a,cancel:r,layerId:o});break;case"WebGlLayer":l=ge().createElement(qt,{model:e,state:t,okSignalPromise:a,cancel:r,layerId:o});break;default:l=ge().createElement("div",null,"Layer Type Not Supported")}i(l)}},[o]),ge().createElement(ge().Fragment,null,s)};class ta extends d.Dialog{constructor(e){const t=new pe.PromiseDelegate;super({title:"Symbology",body:ge().createElement(ea,{model:e.model,okSignalPromise:t,cancel:()=>{this.resolve(0)},state:e.state})}),this.id="jupytergis::symbologyWidget",this.okSignal=new o.Signal(this),t.resolve(this.okSignal),this.addClass("jp-gis-symbology-dialog")}resolve(e){0===e&&super.resolve(e),1===e&&this.okSignal.emit(null)}}const aa=JSON.parse('[{"command":"jupytergis:undo","keys":["Accel Z"],"selector":".data-jgis-keybinding"},{"command":"jupytergis:redo","keys":["Accel Shift Z"],"selector":".data-jgis-keybinding"},{"command":"jupytergis:identify","keys":["Escape"],"selector":".data-jgis-keybinding"},{"command":"jupytergis:identify","keys":["Accel I"],"selector":".data-jgis-keybinding"},{"command":"jupytergis:removeSource","keys":["Delete"],"selector":".data-jgis-keybinding .jp-gis-source.jp-gis-sourceUnused"},{"command":"jupytergis:renameSource","keys":["F2"],"selector":".data-jgis-keybinding .jp-gis-source"},{"command":"jupytergis:removeLayer","keys":["Delete"],"selector":".data-jgis-keybinding .jp-gis-layerItem"},{"command":"jupytergis:renameLayer","keys":["F2"],"selector":".data-jgis-keybinding .jp-gis-layerItem"},{"command":"jupytergis:removeGroup","keys":["Delete"],"selector":".data-jgis-keybinding .jp-gis-layerGroupHeader"},{"command":"jupytergis:renameGroup","keys":["F2"],"selector":".data-jgis-keybinding .jp-gis-layerGroupHeader"},{"command":"jupytergis:executeConsole","keys":["Shift Enter"],"selector":".jpgis-console .jp-CodeConsole[data-jp-interaction-mode=\'notebook\'] .jp-CodeConsole-promptCell"},{"command":"jupytergis:invokeConsoleCompleter","keys":["Tab"],"selector":".jpgis-console .jp-CodeConsole-promptCell .jp-mod-completer-enabled"},{"command":"jupytergis:selectConsoleCompleter","keys":["Enter"],"selector":".jpgis-console .jp-ConsolePanel .jp-mod-completer-active"}]');var ra=a(66519),oa=a.n(ra);async function na(){const e=new URL(a(99875),a.b),t=new URL(a(61003),a.b);return await oa()({paths:{wasm:t.href,data:e.href},useWorker:!1})}function sa(e){var t,a,r;const o=null===(t=e.currentWidget)||void 0===t?void 0:t.model;if(!o)return null;const n=o.sharedModel.awareness.getLocalState();if(!n||!(null===(a=n.selected)||void 0===a?void 0:a.value))return null;const s=Object.keys(n.selected.value);if(1!==s.length)return null;const i=s[0],l=(null!==(r=o.sharedModel.layers)&&void 0!==r?r:{})[i];return l&&l.parameters?l:null}function ia(e,t){const a=sa(t);return!!a&&e.includes(a.type)}async function la(e,t,a,r,o){var n,s,i;const l=sa(e);if(!l||!e.currentWidget)return;const c=e.currentWidget.model,d=null!==(n=null==c?void 0:c.sharedModel.sources)&&void 0!==n?n:{},m=await async function(e,t,a){if(!e.parameters||!e.parameters.source)return console.error("Selected layer does not have a valid source."),null;const r=t[e.parameters.source];return r&&r.parameters?await Ye(r,a):(console.error(`Source with ID ${e.parameters.source} not found or missing path.`),null)}(l,d,c);if(!m)return;const u=Object.assign({},t.getSchemas().get(a)),g=Object.keys((null===(i=null===(s=null==c?void 0:c.sharedModel.awareness.getLocalState())||void 0===s?void 0:s.selected)||void 0===i?void 0:i.value)||{})[0],y=await new Promise(e=>{const t=new rt({title:a.charAt(0).toUpperCase()+a.slice(1),schema:u,model:c,sourceData:{inputLayer:g,outputLayerName:l.name},formContext:"create",processingType:a,syncData:a=>{e(a),t.dispose()}});t.launch()});if(!y)return;if(!p.processingList.includes(a))return void console.error(`Unsupported processing type: ${a}`);const h=function(e,t){if(!p.processingList.includes(t))return void console.error(`Unsupported processing type: ${t}`);const a=p.ProcessingMerge.find(e=>e.description===t).operationParams,r={};for(let t=0;t<a.length;t++){const o=a[t];r[o]=e[o]}return r}(y,a),v=y.embedOutputLayer,f=new Blob([m],{type:"application/geo+json"}),b=new File([f],"data.geojson",{type:"application/geo+json"}),S=await na(),w=(await S.open(b)).datasets[0].info.layers[0].name,E=r.sqlQueryFn(w,h),C=r.options(E);await async function(e,t,a,r,o,n,s,i,l){var c;const d=new File([new Blob([t],{type:"application/geo+json"})],"data.geojson",{type:"application/geo+json"}),m=await na(),p=await m.open(d);if(0===p.datasets.length)return;const u=p.datasets[0],g=await m[a](u,r),y=await m.getFileBytes(g),h=(new TextDecoder).decode(y);if(m.close(u),s){const t=JSON.parse(h),a=pe.UUID.uuid4(),r={type:"GeoJSONSource",name:`${o} ${n.charAt(0).toUpperCase()+n.slice(1)}`,parameters:{data:t}},s={type:"VectorLayer",parameters:{source:a},visible:!0,name:`${o} ${n.charAt(0).toUpperCase()+n.slice(1)}`};e.sharedModel.addSource(a,r),e.addLayer(pe.UUID.uuid4(),s)}else{const t=null===(c=i.currentWidget)||void 0===c?void 0:c.model.filePath,a=t?t.substring(0,t.lastIndexOf("/")):"",r=`${o}_${n}.json`,s=a?`${a}/${r}`:r;await l.serviceManager.contents.save(s,{type:"file",format:"text",content:h});const d=pe.UUID.uuid4(),m={type:"GeoJSONSource",name:r,parameters:{path:r}},p={type:"VectorLayer",parameters:{source:d},visible:!0,name:r};e.sharedModel.addSource(d,m),e.addLayer(pe.UUID.uuid4(),p)}}(c,m,r.gdalFunction,C,y.outputLayerName,a,v,e,o)}function ca(e,t,a){const r=e=>e.template.replace(RegExp(`{${e.variableName}}`,"g"),e.value);let o=r({variableName:"layerName",template:e,value:a});for(const[e,a]of Object.entries(t))o=r({variableName:e,template:o,value:a});return o}na();var da=a(6480),ma=a(89322),pa=a(46230),ua=a(35256),ga=a(65533);class ya extends ua.BoxPanel{constructor(e){super({direction:"top-to-bottom"}),this._resize=je(()=>{window.dispatchEvent(new Event("resize"))},200),this.addClass("jpgis-console");const{manager:t,contentFactory:a,mimeTypeService:r,rendermime:o}=e,n=o.clone();this._consolePanel=new ga.ConsolePanel({manager:t,contentFactory:a,mimeTypeService:r,rendermime:n,kernelPreference:{name:"python3",shutdownOnDispose:!0}}),this._consolePanel.console.node.dataset.jpInteractionMode="notebook",this.addWidget(this._consolePanel),ua.BoxPanel.setStretch(this._consolePanel,1),this._consolePanel.toolbar.addItem("spacer",u.Toolbar.createSpacerItem()),this._consolePanel.toolbar.addItem("toggle",new u.CommandToolbarButton({label:"",icon:u.expandIcon,id:"jupytergis:toggleConsole",commands:e.commandRegistry})),this._consolePanel.toolbar.addItem("close",new u.CommandToolbarButton({label:"",icon:u.closeIcon,id:"jupytergis:removeConsole",commands:e.commandRegistry}))}get consolePanel(){return this._consolePanel}dispose(){this.isDisposed||(this._consolePanel.dispose(),super.dispose())}execute(){this._consolePanel.console.execute(!1)}onResize(e){super.onResize(e),this._resize()}}var ha=a(46167),va=a(91993),fa=a(95854),ba=a(20489),Sa=a(98629),wa=a(75839),Ea=a(77835),Ca=a(55446),ja=a(19362),_a=a(56952),Ma=a(39512),xa=a(20696),Oa=a(15e3),Ia=a(88436),Na=a(79178),La=a(43802),ka=a(33758),Aa=a(59916),Ta=a(5588),Pa=a(73626),Ga=a(12895),Ra=a(5464),Da=a(28528),Fa=a(46148),Ba=a(83486),za=a(34633),Va=a(28303),Wa=a(3897),Ua=a(16328),$a=a(17903),Ha=a(78882),Ja=a(58471),qa=a(21590),Za=a(50207),Qa=a(37056),Ya=a(33006),Ka=a(22391),Xa=a(54189),er=a.n(Xa);const tr=e=>{var t,a,r;const{self:o,message:n,user:s}=e,i=null!==(t=null==s?void 0:s.color)&&void 0!==t?t:"black",l=null!==(a=null==s?void 0:s.display_name)&&void 0!==a?a:"",c=null!==(r=null==s?void 0:s.initials)&&void 0!==r?r:"";return ge().createElement("div",{className:"jGIS-Annotation-Message",style:{flexFlow:o?"row":"row-reverse"}},ge().createElement("div",{className:"jGIS-Annotation-User-Icon",style:{backgroundColor:i},title:l},ge().createElement("span",{style:{width:24,textAlign:"center"}},c)),ge().createElement("div",{className:"jGIS-Annotation-Message-Content"},ge().createElement("p",{style:{padding:7,margin:0}},n)))},ar=({itemId:e,annotationModel:t,rightPanelModel:a,children:r})=>{const[o,n]=(0,ue.useState)(""),[s,i]=(0,ue.useState)(null==a?void 0:a.jGISModel),l=t.getAnnotation(e),c=(0,ue.useMemo)(()=>{var e;return null!==(e=null==l?void 0:l.contents)&&void 0!==e?e:[]},[l]);null==a||a.documentChanged.connect((e,t)=>{i(null==t?void 0:t.model)});const m=()=>{t.addContent(e,o),n("")};return ge().createElement("div",{className:"jGIS-Annotation"},r,ge().createElement("div",null,c.map(e=>{var a,r;return ge().createElement(tr,{user:e.user,message:e.value,self:(null===(a=t.user)||void 0===a?void 0:a.username)===(null===(r=e.user)||void 0===r?void 0:r.username)})})),ge().createElement("div",{className:"jGIS-Annotation-Message"},ge().createElement("textarea",{rows:3,placeholder:"Ctrl+Enter to submit",value:o,onChange:e=>n(e.currentTarget.value),onKeyDown:e=>{e.ctrlKey&&"Enter"===e.key&&m()}})),ge().createElement("div",{className:"jGIS-Annotation-Buttons"},ge().createElement(u.Button,{className:"jp-mod-styled jp-mod-warn",onClick:async()=>{var a;if(!(null===(a=t.getAnnotation(e))||void 0===a?void 0:a.contents.length))return t.removeAnnotation(e);(await(0,d.showDialog)({title:"Delete Annotation",body:"Are you sure you want to delete this annotation?",buttons:[d.Dialog.cancelButton(),d.Dialog.okButton({label:"Delete"})]})).button.accept&&t.removeAnnotation(e)}},ge().createElement(nt.g,{icon:ot.yLS})),a&&ge().createElement(u.Button,{className:"jp-mod-styled jp-mod-accept",onClick:()=>{null==s||s.centerOnPosition(e)}},ge().createElement(nt.g,{icon:ot.EwE})),ge().createElement(u.Button,{className:"jp-mod-styled jp-mod-accept",onClick:m},ge().createElement(nt.g,{icon:ot.isI}))))},rr=({itemId:e,annotationModel:t})=>{const a=t.getAnnotation(e),[r,o]=(0,ue.useState)(null==a?void 0:a.open),n=a=>{if(a)return t.updateAnnotation(e,{open:!0}),o(!0);const r=t.getAnnotation(e);(null==r?void 0:r.contents.length)?(t.updateAnnotation(e,{open:!1}),o(!1)):t.removeAnnotation(e)};return ge().createElement(ge().Fragment,null,ge().createElement("div",{className:"jGIS-Annotation-Handler",onClick:()=>n(!r)}),ge().createElement("div",{className:"jGIS-FloatingAnnotation",style:{visibility:r?"visible":"hidden"}},ge().createElement(ar,{itemId:e,annotationModel:t},ge().createElement("div",{className:"jGIS-Popup-Topbar",onClick:()=>{n(!1)}},ge().createElement(nt.g,{icon:ot.umU,className:"jGIS-Popup-TopBarIcon"})))))},or=({jgisModel:e,loading:t,projection:a,scale:r})=>{var o;const[n,s]=(0,ue.useState)({x:0,y:0});return(0,ue.useEffect)(()=>{const t=()=>{var t,a;const r=null===(a=null===(t=null==e?void 0:e.localState)||void 0===t?void 0:t.pointer)||void 0===a?void 0:a.value;r&&s({x:null==r?void 0:r.coordinates.x,y:null==r?void 0:r.coordinates.y})};return e.clientStateChanged.connect(t),()=>{e.clientStateChanged.disconnect(t)}},[e]),ge().createElement("div",{className:"jgis-status-bar"},t&&ge().createElement("div",{style:{width:"16%",padding:"0 6px"}},ge().createElement(ye.Progress,{height:14})),ge().createElement("div",{className:"jgis-status-bar-item"},ge().createElement("span",null,"jgis: ","0.6.1")),ge().createElement("div",{className:"jgis-status-bar-item jgis-status-bar-coords"},ge().createElement(nt.g,{icon:ot.gKm}),ge().createElement("span",null," ","x: ",Math.trunc(n.x)," y: ",Math.trunc(n.y))),ge().createElement("div",{className:"jgis-status-bar-item"},ge().createElement(nt.g,{icon:ot.W2$})," ",ge().createElement("span",null,"Scale: 1: ",Math.trunc(r))),ge().createElement("div",{className:"jgis-status-bar-item"},ge().createElement(nt.g,{icon:ot.Bwz})," ",ge().createElement("span",null,null!==(o=null==a?void 0:a.code)&&void 0!==o?o:null)),ge().createElement("div",{className:"jgis-status-bar-item"},"Units: ",null==a?void 0:a.units))},nr=({clients:e})=>{const[t,a]=(0,ue.useState)(!1);return ge().createElement(ge().Fragment,null,e&&Object.values(e).map(e=>ge().createElement("div",{className:"jGIS-Popup-Wrapper",style:{left:`${e.coordinates.x}px`,top:`${e.coordinates.y}px`}},ge().createElement("div",{key:e.username,className:"jGIS-Remote-Pointer",style:{color:e.color,cursor:"pointer"},onClick:()=>{a(!t)}},ge().createElement(nt.g,{icon:ot.eX_,className:"jGIS-Remote-Pointer-Icon"})),ge().createElement("div",{style:{visibility:t?"visible":"hidden",background:e.color},className:"jGIS-Remote-Pointer-Popup jGIS-Floating-Pointer-Popup"},ge().createElement("div",{className:"jGIS-Popup-Topbar",onClick:()=>{a(!1)}},ge().createElement(nt.g,{icon:ot.umU,className:"jGIS-Popup-TopBarIcon"})),ge().createElement("div",{className:"jGIS-Remote-Pointer-Popup-Name"},e.displayName),ge().createElement("div",{className:"jGIS-Remote-Pointer-Popup-Coordinates"},ge().createElement("br",null),"Pointer Location:",ge().createElement("br",null),"Longitude: ",e.lonLat.longitude.toFixed(2),ge().createElement("br",null),"Latitude: ",e.lonLat.latitude.toFixed(2))))))},sr=({remoteUser:e})=>(null==e?void 0:e.display_name)?ge().createElement("div",{style:{position:"absolute",top:1,right:3,background:e.color}},`Following ${e.display_name}`):null;var ir=a(52196),lr=a(30508),cr=a(76971),dr=a(7687);const mr=["yyyy-MM-dd","dd/MM/yyyy","MM/dd/yyyy","yyyyMMdd","dd-MM-yyyy","MM-dd-yyyy","yyyy/MM/dd","dd.MM.yyyy","MM.dd.yyyy"],pr={millisecond:1,second:dr._m,minute:dr.Cg,hour:dr.s0,day:dr.w4,week:dr.my,month:dr.Nw*dr.Cg,year:dr.w4*dr.Ki},ur=({model:e,filterStates:t})=>{const[a,r]=(0,ue.useState)(""),[o,n]=(0,ue.useState)(""),[s,i]=(0,ue.useState)({start:0,end:1}),[l,c]=(0,ue.useState)({min:0,max:1}),[d,m]=(0,ue.useState)([]),[p,u]=(0,ue.useState)("yyyy-MM-dd"),[g,y]=(0,ue.useState)(pr.year),[h,v]=(0,ue.useState)(0),[f,b]=(0,ue.useState)(1),[S,w]=(0,ue.useState)({}),E=(0,ue.useRef)(""),C=(0,ue.useRef)(null),{featureProperties:j}=Zt({layerId:a,model:e});(0,ue.useEffect)(()=>{const t=()=>{var t,a;if(!(null===(a=null===(t=e.localState)||void 0===t?void 0:t.selected)||void 0===a?void 0:a.value))return;const o=Object.keys(e.localState.selected.value)[0];o!==E.current&&(r(o),u("yyyy-MM-dd"),b(1))},a=(t,a)=>{var r;const o=null===(r=a.layerChange)||void 0===r?void 0:r.find(e=>e.id===E.current);if(!(null==o?void 0:o.newValue))return;const{newValue:n,oldValue:s}=o;0!==Object.keys(n).length&&n.type===s.type||e.toggleTemporalController()};return t(),e.clientStateChanged.connect(t),e.sharedLayersChanged.connect(a),()=>{e.clientStateChanged.disconnect(t),e.sharedLayersChanged.disconnect(a),x(),C.current&&clearInterval(C.current)}},[]),(0,ue.useEffect)(()=>{E.current=a},[a]),(0,ue.useEffect)(()=>{const e=[];for(const[t,a]of Object.entries(j)){if(0===a.size)continue;const r=a.values().next().value,o="string"==typeof r,n=Number.isInteger(r);if(o||n){if(o){const e=_(r);if(!e)continue;u(e)}e.push(t)}}const r=t[a],o=null==r?void 0:r.feature.slice(0,-2);m(e),n(null!=o?o:e[0])},[j]),(0,ue.useEffect)(()=>{var r,n,s;if(!o||!j[o])return;const l=j[o];if(0===l.size)return;const d=Array.from(l),[m]=d;let p;p="string"==typeof m?d.map(e=>Date.parse(e)):d;const u=Math.min(...p),g=Math.max(...p),h=Object.fromEntries(Object.entries(pr).filter(([e,t])=>t<g-u)),v=t[a],f=null!==(r=Object.values(h).slice(-1)[0])&&void 0!==r?r:pr.millisecond;w(h),y(f),c({min:u,max:g}),i({start:null!==(n=null==v?void 0:v.betweenMin)&&void 0!==n?n:u,end:null!==(s=null==v?void 0:v.betweenMax)&&void 0!==s?s:u+f}),e.addFeatureAsMs(a,o)},[o]),(0,ue.useEffect)(()=>{const e=t[a];v("number"==typeof(null==e?void 0:e.value)?e.value:l.min)},[l]);const _=e=>{for(const t of mr){const a=(0,ir.qg)(e,t,new Date);if((0,lr.f)(a))return t}return null},M=(e,t)=>{const a=new Date(e);return(0,cr.GP)(a,t)},x=()=>{var t,a;const r=e.getLayer(E.current);if(!r)return;const o=(null===(t=r.filters)||void 0===t?void 0:t.appliedFilters)||[],n=(null===(a=r.filters)||void 0===a?void 0:a.logicalOp)||"all",s=o.findIndex(e=>"between"===e.operator);-1!==s&&o.splice(s,1),r.filters={logicalOp:n,appliedFilters:o},e.triggerLayerUpdate(E.current,r)};return ge().createElement("div",{className:"jp-gis-temporal-slider-container"},ge().createElement("div",{className:"jp-gis-temporal-slider-row"},ge().createElement("div",null,ge().createElement("label",{htmlFor:"time-feature-select"},"Feature: "),ge().createElement("select",{id:"time-feature-select",onChange:e=>{n(e.target.value)}},d.map(e=>ge().createElement("option",{value:e,selected:o===e},e)))),ge().createElement("div",null,ge().createElement("span",null,"Current Frame:")," ",M(s.start,p)," ≤ ",ge().createElement("span",null,"t")," ≤"," ",M(s.end,p))),ge().createElement("div",{className:"jp-gis-temporal-slider-row"},ge().createElement("div",{className:"jp-gis-temporal-slider-controls"},ge().createElement("div",{className:"jp-gis-temporal-slider-sub-controls"},ge().createElement(ye.Button,{appearance:"neutral",scale:"medium",onClick:()=>{C.current&&clearInterval(C.current)}},ge().createElement(nt.g,{icon:ot.G1Y})),ge().createElement(ye.Button,{appearance:"neutral",scale:"medium",onClick:()=>{C.current&&clearInterval(C.current),C.current=setInterval(()=>{v(e=>{const t=e+g;return t>=l.max-g&&C.current?(clearInterval(C.current),l.max-g):t})},1e3/f)}},ge().createElement(nt.g,{icon:ot.ijD}))),ge().createElement("div",{className:"jp-gis-temporal-slider-sub-controls",style:{minWidth:0}},ge().createElement("label",{htmlFor:"fps-number-input"},"FPS:"),ge().createElement("input",{name:"fps-number-input",type:"number",value:f,onChange:e=>b(+e.target.value)}))),ge().createElement("div",null,ge().createElement(ye.Slider,{min:l.min,max:l.max-g,value:h,valueAsNumber:h,step:g,onChange:t=>{v(+t.target.value),i({start:+t.target.value,end:+t.target.value+g}),(t=>{var r,n;const s={feature:`${o}ms`,operator:"between",value:t,betweenMin:t,betweenMax:t+g},i=e.getLayer(a);if(!i)return;const l=(null===(r=i.filters)||void 0===r?void 0:r.appliedFilters)||[],c=(null===(n=i.filters)||void 0===n?void 0:n.logicalOp)||"all",d=l.findIndex(e=>"between"===e.operator);-1!==d?l[d]=Object.assign({},s):l.push(s),i.filters={logicalOp:c,appliedFilters:l},e.triggerLayerUpdate(a,i)})(+t.target.value)},className:"jp-gis-temporal-slider"}))),ge().createElement("div",{className:"jp-gis-temporal-slider-row"},ge().createElement("div",null,ge().createElement("span",null,"Range: "),M(l.min,p)," ",ge().createElement("span",null,"to "),M(l.max,p)),ge().createElement("div",null,ge().createElement("label",{htmlFor:"time-step-select"},"Step: "),ge().createElement("select",{id:"time-step-select",onChange:e=>{y(+e.target.value)}},Object.entries(S).map(([e,t])=>ge().createElement("option",{key:e,selected:t===g,value:t},e))))))};class gr extends ue.Component{constructor(e){super(e),this.updateCenter=()=>{const e=this.getViewBbox();this._model.updateBboxSignal.emit(e)},this.getViewBbox=(e="EPSG:4326")=>{const t=this._Map.getView(),a=t.calculateExtent(this._Map.getSize());return t.getProjection().getCode()===e?a:(0,m.DI)(a,t.getProjection(),e)},this.createSelectInteraction=()=>{const e=new Ha.Ay({image:new Ja.A({radius:5,fill:new qa.A({color:"#C52707"}),stroke:new Za.A({color:"#171717",width:2})})}),t=new Ha.Ay({stroke:new Za.A({color:"#171717",width:2})}),a=new Ha.Ay({fill:new qa.A({color:"#C5270780"}),stroke:new Za.A({color:"#171717",width:2})}),r=new Oa.A({hitTolerance:5,multi:!0,layers:e=>{var t,a;const r=null===(t=this._model)||void 0===t?void 0:t.sharedModel.awareness.getLocalState(),o=null===(a=null==r?void 0:r.selected)||void 0===a?void 0:a.value;if(!o)return!1;const n=Object.keys(o)[0];return e===this.getLayer(n)},condition:e=>(0,ja.t5)(e)&&this._model.isIdentifying,style:r=>{var o;switch(null===(o=r.getGeometry())||void 0===o?void 0:o.getType()){case"Point":case"MultiPoint":return e;case"LineString":case"MultiLineString":return t;case"Polygon":case"MultiPolygon":return a}}});r.on("select",e=>{const t=[];r.getFeatures().forEach(e=>{t.push(e.getProperties())}),this._model.syncIdentifiedFeatures(t,this._mainViewModel.id)}),this._Map.addInteraction(r)},this.addContextMenu=()=>{this._commands.addCommand(ce.addAnnotation,{execute:()=>{var e;this._Map&&this._mainViewModel.addAnnotation({position:{x:this._clickCoords[0],y:this._clickCoords[1]},zoom:null!==(e=this._Map.getView().getZoom())&&void 0!==e?e:0,label:"New annotation",contents:[],parent:this._Map.getViewport().id,open:!0})},label:"Add annotation",isEnabled:()=>!!this._Map}),this._contextMenu.addItem({command:ce.addAnnotation,selector:".ol-viewport",rank:1})},this.vectorLayerStyleRuleBuilder=e=>{var t,a;const r=e.parameters;if(!r)return;const o={"fill-color":"rgba(255,255,255,0.4)","stroke-color":"#3399CC","stroke-width":1.25,"circle-radius":5,"circle-fill-color":"rgba(255,255,255,0.4)","circle-stroke-width":1.25,"circle-stroke-color":"#3399CC"},n={style:o},s=Object.assign({},n);if((null===(t=e.filters)||void 0===t?void 0:t.logicalOp)&&(null===(a=e.filters.appliedFilters)||void 0===a?void 0:a.length)>0){const t=e=>{const t=[e.operator,["get",e.feature]];return"between"===e.operator?[...t,e.betweenMin,e.betweenMax]:[...t,e.value]};let a;a=1===e.filters.appliedFilters.length?t(e.filters.appliedFilters[0]):[e.filters.logicalOp,...e.filters.appliedFilters.map(t)],s.filter=a}if(!r.color)return[s];const i=Object.assign(Object.assign({},o),r.color);return s.style=i,[s]},this.hillshadeMath=()=>{function e(e,t){return["+",["*",65280,["band",1,e,t]],["*",255,["band",2,e,t]],["*",255/256,["band",3,e,t]],-32768]}const t=["*",2,["resolution"]],a=["*",2,e(-1,0)],r=["/",["-",["*",2,e(1,0)],a],t],o=["*",2,e(0,-1)],n=["/",["-",["*",2,e(0,1)],o],t],s=["atan",["sqrt",["+",["^",r,2],["^",n,2]]]],i=["clamp",["atan",["-",0,r],n],-Math.PI,Math.PI],l=["*",Math.PI/180,45];return["*",255,["+",["*",["sin",l],["cos",s]],["*",["cos",l],["sin",s],["cos",["-",["*",Math.PI/180,46],i]]]]]},this.handleTemporalController=(e,t)=>{var a,r,o,n,s,i;const l=null===(o=null===(r=null===(a=this._model)||void 0===a?void 0:a.localState)||void 0===r?void 0:r.selected)||void 0===o?void 0:o.value;if(!l||1!==Object.keys(l).length)return;const c=Object.keys(l)[0];if(c!==e)return;const d=t.parameters,m=this._sources[d.source];if(null===(n=t.filters)||void 0===n?void 0:n.appliedFilters.length){const a=t.filters.appliedFilters[0];Object.keys(this._originalFeatures).includes(e)||(this._originalFeatures[e]=m.getFeatures()),m.clear();const r=null!==(s=a.betweenMin)&&void 0!==s?s:0,o=null!==(i=a.betweenMax)&&void 0!==i?i:1e3,n=this._originalFeatures[e].filter(e=>{const t=e.get(a.feature);return t>=r&&t<=o});this.setState(e=>Object.assign(Object.assign({},e),{filterStates:Object.assign(Object.assign({},this.state.filterStates),{[c]:a})})),m.addFeatures(n)}else m.addFeatures(this._originalFeatures[e]),delete this._originalFeatures[e]},this._onClientSharedStateChanged=(e,t)=>{var a,r,o;const n=this._model.localState;if(!n)return;const s=n.remoteUser;if(s){const e=t.get(s);if(!e)return;(null===(a=e.user)||void 0===a?void 0:a.username)!==(null===(r=this.state.remoteUser)||void 0===r?void 0:r.username)&&this.setState(t=>Object.assign(Object.assign({},t),{remoteUser:e.user}));const o=e.viewportState;if(o.value){const{x:e,y:t}=o.value.coordinates,a=o.value.zoom;this._moveToPosition({x:e,y:t},a,0)}}else if(null!==this.state.remoteUser){this.setState(e=>Object.assign(Object.assign({},e),{remoteUser:null}));const e=null===(o=n.viewportState)||void 0===o?void 0:o.value;e&&this._moveToPosition(e.coordinates,e.zoom)}t.forEach((e,t)=>{var a;if(!(null==e?void 0:e.user))return;const r=null===(a=e.pointer)||void 0===a?void 0:a.value;if(this._model.getClientId()===t)return;const o=Object.assign({},this.state.clientPointers);let n=o[t];if(r){const a=this._Map.getPixelFromCoordinate([r.coordinates.x,r.coordinates.y]),s=(0,m.WP)([r.coordinates.x,r.coordinates.y]);n=n?Object.assign(Object.assign({},n),{coordinates:{x:a[0],y:a[1]},lonLat:{longitude:s[0],latitude:s[1]}}):{username:e.user.username,displayName:e.user.display_name,color:e.user.color,coordinates:{x:a[0],y:a[1]},lonLat:{longitude:s[0],latitude:s[1]}},o[t]=n}else delete o[t];this.setState(e=>Object.assign(Object.assign({},e),{clientPointers:o}))});const i=n.isTemporalControllerActive;i!==this.state.displayTemporalController&&(this.setState(e=>Object.assign(Object.assign({},e),{displayTemporalController:i})),this._mainViewModel.commands.notifyCommandChanged(ce.temporalController))},this._onSharedModelStateChange=(e,t)=>{var a;const r=null===(a=t.stateChange)||void 0===a?void 0:a.map(e=>e.name);if(!(null==r?void 0:r.includes("path")))return;const o=this._model.sharedModel.getState("path");o!==this._documentPath&&"string"==typeof o&&(void 0!==window.jupytergisMaps&&this._documentPath&&delete window.jupytergisMaps[this._documentPath],this._documentPath=o,void 0!==window.jupytergisMaps&&(window.jupytergisMaps[this._documentPath]=this._Map))},this._onSharedMetadataChanged=(e,t)=>{const a=Object.assign({},this.state.annotations);t.forEach((e,t)=>{if(!t.startsWith("annotation"))return;const r=this._model.sharedModel.getMetadata(t);if(!r||"add"!==e.action&&"update"!==e.action)"delete"===e.action&&delete a[t];else{let e;if("string"==typeof r)try{e=JSON.parse(r)}catch(e){return void console.warn(`Failed to parse annotation data for ${t}:`,e)}else e=r;a[t]=e}}),this.setState(e=>Object.assign(Object.assign({},e),{annotations:a}))},this._syncPointer=_e(e=>{const t={coordinates:{x:e[0],y:e[1]}};this._model.syncPointer(t)}),this._handleThemeChange=()=>{const e=Ne();this.setState(t=>Object.assign(Object.assign({},t),{lightTheme:e}))},this._handleWindowResize=()=>{},this._isPositionInitialized=!1,this.divRef=ue.createRef(),this._ready=!1,this._sourceToLayerMap=new Map,this._originalFeatures={};const t=document.getElementById("main-panel");if(t){const e=e=>{document.querySelector(e).style.setProperty("width","100%")};new ResizeObserver(a=>{t.style.setProperty("width","100%"),t.style.setProperty("max-width","100%"),null==t||t.style.setProperty("left","0px"),e("#main-panel jp-toolbar"),e("#main-panel .lm-SplitPanel "),e("#main-panel .lm-SplitPanel .lm-SplitPanel-child ")}).observe(t)}this._mainViewModel=this.props.viewModel,this._mainViewModel.viewSettingChanged.connect(this._onViewChanged,this),this._model=this._mainViewModel.jGISModel,this._model.themeChanged.connect(this._handleThemeChange,this),this._model.sharedOptionsChanged.connect(this._onSharedOptionsChanged,this),this._model.clientStateChanged.connect(this._onClientSharedStateChanged,this),this._model.sharedLayersChanged.connect(this._onLayersChanged,this),this._model.sharedLayerTreeChanged.connect(this._onLayerTreeChange,this),this._model.sharedSourcesChanged.connect(this._onSourcesChange,this),this._model.sharedModel.changed.connect(this._onSharedModelStateChange),this._model.sharedMetadataChanged.connect(this._onSharedMetadataChanged,this),this._model.zoomToPositionSignal.connect(this._onZoomToPosition,this),this._model.updateLayerSignal.connect(this._triggerLayerUpdate,this),this._model.addFeatureAsMsSignal.connect(this._convertFeatureToMs,this),this._model.geolocationChanged.connect(this._handleGeolocationChanged,this),this._model.flyToGeometrySignal.connect(this.flyToGeometry,this),this._model.highlightFeatureSignal.connect(this.highlightFeatureOnMap,this),this._model.sharedModel.awareness.on("change",()=>{var e;!this._model.isIdentifying&&this._highlightLayer&&(null===(e=this._highlightLayer.getSource())||void 0===e||e.clear())}),this.state={id:this._mainViewModel.id,lightTheme:Ne(),loading:!0,annotations:{},clientPointers:{},viewProjection:{code:"",units:""},loadingLayer:!1,scale:0,loadingErrors:[],displayTemporalController:!1,filterStates:{}},this._sources=[],this._loadingLayers=new Set,this._commands=new ha.CommandRegistry,this._contextMenu=new ua.ContextMenu({commands:this._commands}),this._updateCenter=je(this.updateCenter,100)}async componentDidMount(){window.addEventListener("resize",this._handleWindowResize);const e=this._model.getOptions(),t=void 0!==e.longitude&&void 0!==e.latitude?(0,m.Rb)([e.longitude,e.latitude]):[0,0],a=void 0!==e.zoom?e.zoom:1;await this.generateMap(t,a),this.addContextMenu(),this._mainViewModel.initSignal(),void 0!==window.jupytergisMaps&&this._documentPath&&(window.jupytergisMaps[this._documentPath]=this._Map)}componentWillUnmount(){void 0!==window.jupytergisMaps&&this._documentPath&&delete window.jupytergisMaps[this._documentPath],window.removeEventListener("resize",this._handleWindowResize),this._mainViewModel.viewSettingChanged.disconnect(this._onViewChanged,this),this._model.themeChanged.disconnect(this._handleThemeChange,this),this._model.sharedOptionsChanged.disconnect(this._onSharedOptionsChanged,this),this._model.clientStateChanged.disconnect(this._onClientSharedStateChanged,this),this._mainViewModel.dispose()}async generateMap(e,t){if(this.divRef.current){this._Map=new va.A({target:this.divRef.current,layers:[],view:new fa.Ay({center:e,zoom:t}),controls:[new Ea.A,new Ca.A]});const a=new Ia.A({formatConstructors:[_a.A]});a.on("addfeatures",e=>{const t=pe.UUID.uuid4(),a={type:"GeoJSONSource",name:"Drag and Drop source",parameters:{path:e.file.name}},r=pe.UUID.uuid4();this.addSource(t,a),this._model.sharedModel.addSource(t,a);const o={type:"VectorLayer",visible:!0,name:"Drag and Drop layer",parameters:{color:"#FF0000",opacity:1,type:"line",source:t}};this.addLayer(r,o,this.getLayerIDs().length),this._model.addLayer(r,o)}),this._Map.addInteraction(a),this.createSelectInteraction();const r=this._Map.getView();if(r.on("change:center",()=>this._updateCenter()),r.on("change:center",_e(()=>{var e;if(null===(e=this._model.localState)||void 0===e?void 0:e.remoteUser)return;const t=this._Map.getView(),a=t.getCenter(),r=t.getZoom();a&&r&&this._model.syncViewport({coordinates:{x:a[0],y:a[1]},zoom:r},this._mainViewModel.id)})),this._Map.on("postrender",()=>{this.state.annotations&&this._updateAnnotation()}),this._Map.on("moveend",()=>{const e=this._model.getOptions(),t=this._Map.getView(),a=t.getCenter()||[0,0],r=t.getZoom()||0,o=t.getProjection(),n=(0,m.WP)(a,o),s=t.getRotation(),i=t.getResolution(),l={latitude:n[1],longitude:n[0],bearing:s,projection:o.getCode(),zoom:r};if(l.extent=t.calculateExtent(),this._model.setOptions(Object.assign(Object.assign({},e),l)),i){const e=i*(1e3/25.4)*(25.4/.28);this.setState(t=>Object.assign(Object.assign({},t),{scale:e}))}}),this._Map.on("click",this._identifyFeature.bind(this)),this._Map.getViewport().addEventListener("pointermove",this._onPointerMove.bind(this)),0!==p.JupyterGISModel.getOrderedLayerIds(this._model).length){await this._updateLayersImpl(p.JupyterGISModel.getOrderedLayerIds(this._model));const e=this._model.getOptions();this.updateOptions(e)}this._Map.getViewport().addEventListener("contextmenu",e=>{e.preventDefault(),e.stopPropagation();const t=this._Map.getEventCoordinate(e);this._clickCoords=t,this._contextMenu.open(e)}),this.setState(e=>Object.assign(Object.assign({},e),{loading:!1,viewProjection:{code:r.getProjection().getCode(),units:r.getProjection().getUnits()}}))}}async addSource(e,t){var a,r;let o;switch(t.type){case"RasterSource":{const e=t.parameters,a=e.url.endsWith(".pmtiles"),r=this.computeSourceUrl(t);o=a?new Qa.b({interpolate:e.interpolate,attributions:e.attribution,tileSize:256,url:r}):new Fa.A({interpolate:e.interpolate,attributions:e.attribution,minZoom:e.minZoom,maxZoom:e.maxZoom,tileSize:256,url:r});break}case"RasterDemSource":{const e=t.parameters;o=new Ba.A({interpolate:e.interpolate,url:this.computeSourceUrl(t),attributions:e.attribution});break}case"VectorTileSource":{const e=t.parameters,a=e.url.endsWith(".pmtiles"),r=this.computeSourceUrl(t);o=a?new Qa.X({attributions:e.attribution,url:r}):new za.A({attributions:e.attribution,minZoom:e.minZoom,maxZoom:e.maxZoom,url:r,format:new Ma.A({featureClass:Da.Ay})});break}case"GeoJSONSource":{const e=(null===(a=t.parameters)||void 0===a?void 0:a.data)||await ze({filepath:null===(r=t.parameters)||void 0===r?void 0:r.path,type:"GeoJSONSource",model:this._model}),n=new _a.A({featureProjection:this._Map.getView().getProjection()}).readFeatures(e,{dataProjection:"EPSG:4326",featureProjection:this._Map.getView().getProjection()}),s=new ba.A(n);s.forEach(e=>{e.setId((0,Sa.v6)(e))}),o=new Va.A({features:s});break}case"ShapefileSource":{const e=t.parameters,a=await ze({filepath:e.path,type:"ShapefileSource",model:this._model}),r=Array.isArray(a)?a[0]:a,n=new _a.A;o=new Va.A({features:n.readFeatures(r,{dataProjection:"EPSG:4326",featureProjection:this._Map.getView().getProjection()})});break}case"ImageSource":{const e=t.parameters,a=Math.min(...e.coordinates.map(e=>e[0])),r=Math.min(...e.coordinates.map(e=>e[1])),n=Math.max(...e.coordinates.map(e=>e[0])),s=Math.max(...e.coordinates.map(e=>e[1])),i=(0,m.Rb)([a,s]),l=(0,m.Rb)([n,r]),c=i[0],d=i[1],p=l[0],u=[c,l[1],p,d],g=await ze({filepath:e.path,type:"ImageSource",model:this._model});o=new Ua.A({interpolate:e.interpolate,imageExtent:u,url:g,crossOrigin:""});break}case"VideoSource":console.warn("Video Tiles not supported with Open Layers");break;case"GeoTiffSource":{const e=t.parameters,a=e=>Object.assign(Object.assign({},e),{nodata:0}),r=await Promise.all(e.urls.map(async e=>{var t,r,o;if((null===(t=e.url)||void 0===t?void 0:t.startsWith("http://"))||(null===(r=e.url)||void 0===r?void 0:r.startsWith("https://")))return Object.assign(Object.assign({},a(e)),{min:e.min,max:e.max,url:e.url});{const t=await ze({filepath:null!==(o=e.url)&&void 0!==o?o:"",type:"GeoTiffSource",model:this._model});return Object.assign(Object.assign({},a(e)),{min:e.min,max:e.max,geotiff:t,url:URL.createObjectURL(t.file)})}}));o=new Wa.A({interpolate:e.interpolate,sources:r,normalize:e.normalize,wrapX:e.wrapX});break}}o.set("id",e),this._sources[e]=o}computeSourceUrl(e){const t=e.parameters,a=t.urlParameters||{};let r=t.url;for(const e of Object.keys(a))r=r.replace(`{${e}}`,a[e]);return r.includes("{max_zoom}")&&(r=r.replace("{max_zoom}",t.maxZoom.toString())),r.includes("{min_zoom}")&&(r=r.replace("{min_zoom}",t.minZoom.toString())),r}async updateSource(e,t){const a=this._sourceToLayerMap.get(e),r=this.getLayer(a);r&&(this.removeSource(e),await this.addSource(e,t),r.setSource(this._sources[e]))}removeSource(e){delete this._sources[e]}updateLayers(e){this._updateLayersImpl(e)}async _updateLayersImpl(e){const t=this.getLayerIDs();for(let a=0;a<e.length;a++){const r=e[a],o=this._model.sharedModel.getLayer(r);if(!o){console.warn(`Layer with ID ${r} does not exist in the shared model.`);continue}void 0!==this.getLayer(r)?this.moveLayer(r,a):await this.addLayer(r,o,a);const n=t.indexOf(r);n>-1&&t.splice(n,1)}t.forEach(e=>{const t=this.getLayer(e);void 0!==t&&this._Map.removeLayer(t)}),this._ready=!0}async _buildMapLayer(e,t){var a,r,o;let n,s,i,l;if(this.setState(e=>Object.assign(Object.assign({},e),{loadingLayer:!0})),this._loadingLayers.add(e),"StacLayer"!==t.type){if(i=null===(a=t.parameters)||void 0===a?void 0:a.source,!i)return;if(l=this._model.sharedModel.getLayerSource(i),!l)return;this._sources[i]||await this.addSource(i,l)}switch(t.type){case"RasterLayer":s=t.parameters,n=new Ga.A({opacity:s.opacity,visible:t.visible,source:this._sources[s.source]});break;case"VectorLayer":s=t.parameters,n=new Na.A({opacity:s.opacity,visible:t.visible,source:this._sources[s.source],style:this.vectorLayerStyleRuleBuilder(t)});break;case"VectorTileLayer":s=t.parameters,n=new La.A({opacity:s.opacity,source:this._sources[s.source],style:this.vectorLayerStyleRuleBuilder(t)});break;case"HillshadeLayer":s=t.parameters,n=new ka.A({opacity:.3,source:this._sources[s.source],style:{color:["color",this.hillshadeMath()]}});break;case"ImageLayer":s=t.parameters,n=new Aa.A({opacity:s.opacity,source:this._sources[s.source]});break;case"WebGlLayer":{s=t.parameters;const e={opacity:s.opacity,source:this._sources[s.source]};s.color&&(e.style={color:s.color}),n=new ka.A(e);break}case"HeatmapLayer":s=t.parameters,n=new Ta.A({opacity:s.opacity,source:this._sources[s.source],blur:null!==(r=s.blur)&&void 0!==r?r:15,radius:null!==(o=s.radius)&&void 0!==o?o:8,gradient:s.color});break;case"StacLayer":s=t.parameters,n=new Ya.A({displayPreview:!0,data:s.data,opacity:s.opacity,visible:t.visible,assets:Object.keys(s.data.assets),extent:s.data.bbox}),this.setState(e=>Object.assign(Object.assign({},e),{metadata:s.data.properties}))}return n.set("id",e),n instanceof Pa.A&&("source"in s&&this._sourceToLayerMap.set(s.source,e),this.addProjection(n),await this._waitForSourceReady(n)),this._loadingLayers.delete(e),n}addProjection(e){var t;const a=null===(t=e.getSource())||void 0===t?void 0:t.getProjection();if(!a)return void console.warn("Layer source projection is undefined or invalid");const r=a.getCode();if(!(0,m.Jt)(r)){if(!er()[r])return void console.warn(`Projection code '${r}' not found in proj4list`);try{Ka.A.defs([er()[r]]),(0,Ra.kz)(Ka.A)}catch(e){return void console.warn(`Failed to register projection '${r}'. Error: ${e.message}`)}}}async addLayer(e,t,a){if(!this.getLayer(e))try{const r=await this._buildMapLayer(e,t);if(void 0!==r){await this._waitForReady();const e=this._Map.getLayers().getLength(),t=Math.min(a,e);this._Map.getLayers().insertAt(t,r)}}catch(r){if(this.state.loadingErrors.find(t=>t.id===e&&t.error===r.message))return void this._loadingLayers.delete(e);await(0,d.showErrorMessage)(`Error Adding ${t.name}`,`Failed to add ${t.name}: ${r.message||"invalid file path"}`),this.setState(e=>Object.assign(Object.assign({},e),{loadingLayer:!1})),this.state.loadingErrors.push({id:e,error:r.message||"invalid file path",index:a}),this._loadingLayers.delete(e)}}async updateLayer(e,t,a,r){var o,n,s,i,l,c,d,m;switch(a.setVisible(t.visible),t.type){case"RasterLayer":a.setOpacity((null===(o=t.parameters)||void 0===o?void 0:o.opacity)||1);break;case"VectorLayer":{const e=t.parameters;a.setOpacity(e.opacity||1),a.setStyle(this.vectorLayerStyleRuleBuilder(t));break}case"VectorTileLayer":{const e=t.parameters;a.setOpacity(e.opacity||1),a.setStyle(this.vectorLayerStyleRuleBuilder(t));break}case"HillshadeLayer":case"ImageLayer":break;case"WebGlLayer":a.setOpacity(null===(n=t.parameters)||void 0===n?void 0:n.opacity),(null===(s=null==t?void 0:t.parameters)||void 0===s?void 0:s.color)&&a.setStyle({color:t.parameters.color});break;case"HeatmapLayer":{const r=t.parameters,o=a;o.setOpacity(null!==(i=r.opacity)&&void 0!==i?i:1),o.setBlur(null!==(l=r.blur)&&void 0!==l?l:15),o.setRadius(null!==(c=r.radius)&&void 0!==c?c:8),o.setGradient(null!==(d=r.color)&&void 0!==d?d:["#00f","#0ff","#0f0","#ff0","#f00"]),this.handleTemporalController(e,t);break}case"StacLayer":a.setOpacity((null===(m=t.parameters)||void 0===m?void 0:m.opacity)||1)}}flyToGeometry(e,t){if(!t||"function"!=typeof t.getExtent)return void console.warn("Invalid geometry for flyToGeometry:",t);const a=this._Map.getView(),r=t.getExtent();a.fit(r,{padding:[50,50,50,50],duration:1e3,maxZoom:16})}highlightFeatureOnMap(e,t){const a=(null==t?void 0:t.geometry)||(null==t?void 0:t._geometry)||t;if(!a)return void console.warn("No geometry found in feature:",t);const r="function"==typeof a.getCoordinates?a:(new _a.A).readGeometry(a,{featureProjection:this._Map.getView().getProjection()}),o=new wa.A(Object.assign({geometry:r},a!==t?t:{}));this._highlightLayer||(this._highlightLayer=new Na.A({source:new Va.A,style:e=>{var t;switch(null===(t=e.getGeometry())||void 0===t?void 0:t.getType()){case"Point":case"MultiPoint":return new Ha.Ay({image:new Ja.A({radius:6,fill:new qa.A({color:"rgba(255, 255, 0, 0.8)"}),stroke:new Za.A({color:"#ff0",width:2})})});case"LineString":case"MultiLineString":return new Ha.Ay({stroke:new Za.A({color:"rgba(255, 255, 0, 0.8)",width:3})});case"Polygon":case"MultiPolygon":return new Ha.Ay({stroke:new Za.A({color:"#f00",width:2}),fill:new qa.A({color:"rgba(255, 255, 0, 0.8)"})});default:return new Ha.Ay({stroke:new Za.A({color:"#000",width:2})})}},zIndex:999}),this._Map.addLayer(this._highlightLayer));const n=this._highlightLayer.getSource();null==n||n.clear(),null==n||n.addFeature(o)}_waitForReady(){return new Promise(e=>{const t=()=>{0===this._loadingLayers.size?(this.setState(e=>Object.assign(Object.assign({},e),{loadingLayer:!1})),e()):setTimeout(t,50)};t()})}_waitForSourceReady(e){return new Promise((t,a)=>{const r=()=>{const o=e.getSourceState();"ready"===o?(e.un("change",r),t()):"error"===o&&(e.un("change",r),a(new Error("Source failed to load.")))};e.on("change",r),r()})}removeLayer(e){const t=this.getLayer(e);t&&this._Map.removeLayer(t)}_onSharedOptionsChanged(){if(!this._isPositionInitialized){const e=this._model.getOptions();this.updateOptions(e),this._isPositionInitialized=!0}}async updateOptions(e){const{projection:t,extent:a,useExtent:r,latitude:o,longitude:n,zoom:s,bearing:i}=e;let l=this._Map.getView();const c=l.getProjection().getCode();if(void 0!==t&&c!==t){const e=(0,m.Jt)(t);if(!e)return void console.warn(`Invalid projection: ${t}`);l=new fa.Ay({projection:e})}if(r&&a)l.fit(a);else{const t=(0,m.Rb)([n||0,o||0],l.getProjection());this._moveToPosition({x:t[0],y:t[1]},s||0),e.extent||(e.extent=l.calculateExtent(),this._model.setOptions(e))}l.setRotation(i||0),this._Map.setView(l)}_onViewChanged(e,t){}getLayer(e){return this._Map.getLayers().getArray().find(t=>t.get("id")===e)}getLayerIndex(e){return this._Map.getLayers().getArray().findIndex(t=>t.get("id")===e)}getLayerIDs(){return this._Map.getLayers().getArray().map(e=>e.get("id"))}moveLayer(e,t){const a=this.getLayerIndex(e);if(a===t||-1===a)return;const r=this.getLayer(e);let o=t;if(void 0===r)return;this._Map.getLayers().removeAt(a),a<t&&(o-=1);const n=this._Map.getLayers().getLength(),s=Math.min(t,n);this._Map.getLayers().insertAt(s,r)}replaceLayer(e,t){const a=this.getLayerIndex(e);this.removeLayer(e),this.addLayer(e,t,a)}_onLayersChanged(e,t){var a;this._ready&&(null===(a=t.layerChange)||void 0===a||a.forEach(e=>{const{id:t,oldValue:a,newValue:r}=e;if(!r||0===Object.keys(r).length)return void this.removeLayer(t);if(a&&a.type!==r.type)return void this.replaceLayer(t,r);const o=this.getLayer(t),n=p.JupyterGISModel.getOrderedLayerIds(this._model);n.includes(t)?this.updateLayer(t,r,o,a):this.updateLayers(n)}))}_onLayerTreeChange(e,t){this._ready=!1,this.updateLayers(p.JupyterGISModel.getOrderedLayerIds(this._model))}_onSourcesChange(e,t){var a;this._ready&&(null===(a=t.sourceChange)||void 0===a||a.forEach(e=>{if(e.newValue&&0!==Object.keys(e.newValue).length){const t=this._model.getSource(e.id);t&&this.updateSource(e.id,t)}else this.removeSource(e.id)}))}_computeAnnotationPosition(e){const{x:t,y:a}=e.position,r=this._Map.getPixelFromCoordinate([t,a]);if(r)return{x:r[0],y:r[1]}}_updateAnnotation(){Object.keys(this.state.annotations).forEach(e=>{var t;const a=document.getElementById(e);if(a){const r=null===(t=this._model.annotationModel)||void 0===t?void 0:t.getAnnotation(e);if(r){const e=this._computeAnnotationPosition(r);e&&(a.style.left=`${Math.round(e.x)}px`,a.style.top=`${Math.round(e.y)}px`)}}})}_onZoomToPosition(e,t){var a;const r=null===(a=this._model.annotationModel)||void 0===a?void 0:a.getAnnotation(t);if(r)return void this._flyToPosition(r.position,r.zoom);let o;const n=this.getLayer(t),s=null==n?void 0:n.getSource();if(s instanceof Va.A&&(o=s.getExtent()),s instanceof $a.A){const e=s.getTileGrid();o=null==e?void 0:e.getExtent()}if(n instanceof Ya.A&&(o=n.getExtent()),!o)return void console.warn("Layer has no extent.");const i=null==s?void 0:s.getProjection(),l=this._Map.getView().getProjection(),c=i&&i!==l?(0,m.DI)(o,i,l):o;this._Map.getView().fit(c,{size:this._Map.getSize(),duration:500})}_moveToPosition(e,t,a=1e3){const r=this._Map.getView();r.setZoom(t),r.setCenter([e.x,e.y]),void 0===!r.animate&&(r.animate({zoom:t,duration:a}),r.animate({center:[e.x,e.y],duration:a}))}_flyToPosition(e,t,a=1e3){const r=this._Map.getView();r.animate({zoom:t,duration:a}),r.animate({center:[e.x,e.y],duration:a})}_onPointerMove(e){const t=this._Map.getEventPixel(e),a=this._Map.getCoordinateFromPixel(t);this._syncPointer(a)}_identifyFeature(e){var t,a;if(!this._model.isIdentifying)return;const r=null===(t=this._model)||void 0===t?void 0:t.sharedModel.awareness.getLocalState(),o=null===(a=null==r?void 0:r.selected)||void 0===a?void 0:a.value;if(!o)return void console.warn("Layer must be selected to use identify tool");const n=Object.keys(o)[0],s=this._model.getLayer(n);switch(null==s?void 0:s.type){case"WebGlLayer":{const t=this.getLayer(n).getData(e.pixel);if(!t||t instanceof DataView)return;const a={};for(let e=0;e<t.length-1;e++)a[`Band ${e+1}`]=t[e];a.Alpha=t[t.length-1],this._model.syncIdentifiedFeatures([a],this._mainViewModel.id);const r=this._Map.getCoordinateFromPixel(e.pixel),o=new xa.A(r);this._model.highlightFeatureSignal.emit(o);break}}}_triggerLayerUpdate(e,t){const a=JSON.parse(t),{layerId:r,layer:o}=a,n=this.getLayer(r);o&&n?this.updateLayer(r,o,n):console.log("Layer not found")}_convertFeatureToMs(e,t){const a=JSON.parse(t),{id:r,selectedFeature:o}=a;this.getLayer(r).getSource().forEachFeature(e=>{const t=e.get(o),a="string"==typeof t?Date.parse(t):t;e.set(`${o}ms`,a)})}_handleGeolocationChanged(e,t){const a=this._Map.getView().getZoom();if(!a)throw new Error("Could not move to geolocation, because current zoom is not defined.");this._flyToPosition(t,a)}render(){return ue.createElement(ue.Fragment,null,Object.entries(this.state.annotations).map(([e,t])=>{if(!this._model.annotationModel)return null;const a=this._computeAnnotationPosition(t);return a&&ue.createElement("div",{key:e,id:e,style:{left:a.x,top:a.y},className:"jGIS-Popup-Wrapper"},ue.createElement(rr,{itemId:e,annotationModel:this._model.annotationModel}))}),ue.createElement("div",{className:"jGIS-Mainview-Container"},this.state.displayTemporalController&&ue.createElement(ur,{model:this._model,filterStates:this.state.filterStates}),ue.createElement("div",{className:"jGIS-Mainview data-jgis-keybinding",tabIndex:-2,style:{border:this.state.remoteUser?`solid 3px ${this.state.remoteUser.color}`:"unset"}},ue.createElement(At,{loading:this.state.loading}),ue.createElement(sr,{remoteUser:this.state.remoteUser}),ue.createElement(nr,{clients:this.state.clientPointers}),ue.createElement("div",{ref:this.divRef,style:{width:"100%",height:"100%"}})),ue.createElement(or,{jgisModel:this._model,loading:this.state.loadingLayer,projection:this.state.viewProjection,scale:this.state.scale})))}}class yr extends d.ReactWidget{constructor(e){super(),this._mainViewModel=e.mainViewModel,this.addClass("jp-jupytergis-panel")}render(){return ue.createElement(gr,{viewModel:this._mainViewModel})}}var hr=a(22717);class vr{constructor(e){this._isDisposed=!1,this._jGISModel=e.jGISModel,this._viewSetting=e.viewSetting,this._commands=e.commands}get isDisposed(){return this._isDisposed}get id(){return this._id}get jGISModel(){return this._jGISModel}get viewSettingChanged(){return this._viewSetting.changed}get commands(){return this._commands}dispose(){this._isDisposed||(this._jGISModel.sharedLayersChanged.disconnect(this._onsharedLayersChanged,this),this._isDisposed=!0)}initSignal(){this._jGISModel.sharedLayersChanged.connect(this._onsharedLayersChanged,this)}addAnnotation(e){var t;null===(t=this._jGISModel.annotationModel)||void 0===t||t.addAnnotation((0,hr.A)(),e)}async _onsharedLayersChanged(e,t){t.layerChange}}var fr;class br extends da.DocumentWidget{constructor(e){super(e),this.onResize=e=>{window.dispatchEvent(new Event("resize"))}}get model(){return this.context.model}dispose(){this.content.dispose(),super.dispose()}}class Sr extends d.MainAreaWidget{constructor(e){super(e),this.addClass("jgis-cell-output-widget"),this.model=e.model,this.resizeObserver=new ResizeObserver(()=>{pa.MessageLoop.sendMessage(this,ua.Widget.ResizeMessage.UnknownSize)}),this.resizeObserver.observe(this.node),this.model.disposed.connect(()=>this.dispose())}dispose(){this.isDisposed||(this.resizeObserver.disconnect(),this.content.dispose(),super.dispose())}}class wr extends ua.SplitPanel{constructor(e){super({orientation:"vertical",spacing:0}),this._consoleOpened=!1;const{model:t,consoleTracker:a,commandRegistry:r}=e,o=function(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(a[r[o]]=e[r[o]])}return a}(e,["model","consoleTracker","commandRegistry"]);this._initModel({model:t,commandRegistry:r}),this._initView(),this._consoleOption=Object.assign({commandRegistry:r},o),this._consoleTracker=a}_initModel(e){this._view=new ma.ObservableMap,this._mainViewModel=new vr({jGISModel:e.model,viewSetting:this._view,commands:e.commandRegistry})}_initView(){this._jupyterGISMainViewPanel=new yr({mainViewModel:this._mainViewModel}),this.addWidget(this._jupyterGISMainViewPanel),ua.SplitPanel.setStretch(this._jupyterGISMainViewPanel,1)}get jupyterGISMainViewPanel(){return this._jupyterGISMainViewPanel}get viewChanged(){return this._view.changed}dispose(){this.isDisposed||(this._consoleView&&this._consoleView.dispose(),o.Signal.clearData(this),this._mainViewModel.dispose(),super.dispose())}get currentViewModel(){return this._mainViewModel}get consolePanel(){var e;return null===(e=this._consoleView)||void 0===e?void 0:e.consolePanel}get consoleOpened(){return this._consoleOpened}executeConsole(){this._consoleView&&this._consoleView.execute()}removeConsole(){this._consoleView&&(this._consoleView.dispose(),this._consoleView=void 0,this._consoleOpened=!1,setTimeout(()=>{window.dispatchEvent(new Event("resize"))},250))}async toggleConsole(e){if(this._consoleView)this._consoleOpened?(this._consoleOpened=!1,this.setRelativeSizes([1,0])):(this._consoleOpened=!0,this.setRelativeSizes([2,1]));else{const{contentFactory:t,manager:a,mimeTypeService:r,rendermime:o,commandRegistry:n}=this._consoleOption;if(t&&a&&r&&o&&n&&this._consoleTracker){this._consoleView=new ya({contentFactory:t,manager:a,mimeTypeService:r,rendermime:o,commandRegistry:n});const{consolePanel:s}=this._consoleView;this._consoleTracker.widgetAdded.emit(s),await s.sessionContext.ready,this.addWidget(this._consoleView),this.setRelativeSizes([2,1]),this._consoleOpened=!0,await s.console.inject(`from jupytergis import GISDocument\ndoc = GISDocument("${e}")`),s.console.sessionContext.kernelChanged.connect((e,t)=>{t.newValue||this.removeConsole()})}}setTimeout(()=>{window.dispatchEvent(new Event("resize"))},250)}}function Er(e,t,a,r,o,n,s){var i;const l=a.load("jupyterlab"),{commands:c}=e;c.addCommand(ce.symbology,Object.assign({label:l.__("Edit Symbology"),isEnabled:()=>{var e,a;const r=null===(e=t.currentWidget)||void 0===e?void 0:e.model,o=null==r?void 0:r.sharedModel.awareness.getLocalState();if(!r||!o||!(null===(a=o.selected)||void 0===a?void 0:a.value))return!1;const n=o.selected.value;if(Object.keys(n).length>1)return!1;const s=Object.keys(n)[0],i=r.getLayer(s);return!!i&&["VectorLayer","VectorTileLayer","WebGlLayer","HeatmapLayer"].includes(i.type)},execute:fr.createSymbologyDialog(t,n)},me.get(ce.symbology))),c.addCommand(ce.redo,Object.assign({label:l.__("Redo"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:()=>{const e=t.currentWidget;if(e)return e.model.sharedModel.redo()}},null===(i=me.get(ce.redo))||void 0===i?void 0:i.icon)),c.addCommand(ce.undo,Object.assign({label:l.__("Undo"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:()=>{const e=t.currentWidget;if(e)return e.model.sharedModel.undo()}},me.get(ce.undo))),c.addCommand(ce.identify,Object.assign({label:l.__("Identify"),isToggled:()=>{const e=t.currentWidget;if(!e)return!1;const a=sa(t);if(!a)return!1;const r=["VectorLayer","ShapefileLayer","WebGlLayer"].includes(a.type),o=e.model.isIdentifying;return o&&!r?(e.model.isIdentifying=!1,e.node.classList.remove("jGIS-identify-tool"),!1):o},isEnabled:()=>{const e=sa(t);return!!e&&["VectorLayer","ShapefileLayer","WebGlLayer"].includes(e.type)},execute:e=>{const a=t.currentWidget;if(!a)return;const r=e._luminoEvent;if(r){const e=r.keys;if(null==e?void 0:e.includes("Escape"))return a.model.isIdentifying=!1,a.node.classList.remove("jGIS-identify-tool"),void c.notifyCommandChanged(ce.identify)}a.node.classList.toggle("jGIS-identify-tool"),a.model.toggleIdentify(),c.notifyCommandChanged(ce.identify)}},me.get(ce.identify))),c.addCommand(ce.temporalController,Object.assign({label:l.__("Temporal Controller"),isToggled:()=>{var e;return(null===(e=t.currentWidget)||void 0===e?void 0:e.model.isTemporalControllerActive)||!1},isEnabled:()=>{var e,a,r,o;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.model;if(!n)return!1;const s=null===(r=null===(a=n.localState)||void 0===a?void 0:a.selected)||void 0===r?void 0:r.value;if(!s)return!1;const i=Object.keys(s)[0],l=null===(o=n.getLayer(i))||void 0===o?void 0:o.type;return!!l&&!((1!==Object.keys(s).length||n.getSource(i)||!["VectorLayer","HeatmapLayer"].includes(l))&&n.isTemporalControllerActive&&(n.toggleTemporalController(),c.notifyCommandChanged(ce.temporalController),1))},execute:()=>{const e=t.currentWidget;e&&(e.model.toggleTemporalController(),c.notifyCommandChanged(ce.temporalController))}},me.get(ce.temporalController))),c.addCommand(ce.openLayerBrowser,Object.assign({label:l.__("Open Layer Browser"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:fr.createLayerBrowser(t,o,r)},me.get(ce.openLayerBrowser))),c.addCommand(ce.newRasterEntry,Object.assign({label:l.__("New Raster Tile Layer"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:fr.createEntry({tracker:t,formSchemaRegistry:r,title:"Create Raster Tile Layer",createLayer:!0,createSource:!0,sourceData:{minZoom:0,maxZoom:24},layerData:{name:"Custom Raster Tile Layer"},sourceType:"RasterSource",layerType:"RasterLayer"})},me.get(ce.newRasterEntry))),c.addCommand(ce.newVectorTileEntry,Object.assign({label:l.__("New Vector Tile Layer"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:fr.createEntry({tracker:t,formSchemaRegistry:r,title:"Create Vector Tile Layer",createLayer:!0,createSource:!0,sourceData:{minZoom:0,maxZoom:24},layerData:{name:"Custom Vector Tile Layer"},sourceType:"VectorTileSource",layerType:"VectorTileLayer"})},me.get(ce.newVectorTileEntry))),c.addCommand(ce.newGeoJSONEntry,Object.assign({label:l.__("New GeoJSON layer"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:fr.createEntry({tracker:t,formSchemaRegistry:r,title:"Create GeoJSON Layer",createLayer:!0,createSource:!0,layerData:{name:"Custom GeoJSON Layer"},sourceType:"GeoJSONSource",layerType:"VectorLayer"})},me.get(ce.newGeoJSONEntry))),function(e,t,a,r,o){for(const n of p.ProcessingMerge){if(n.type!==p.ProcessingLogicType.vector)return void console.error("Unsupported process type");t.addCommand(n.name,{label:r.__(n.label),isEnabled:()=>ia(["VectorLayer"],a),execute:async()=>{await la(a,o,n.description,{sqlQueryFn:(e,t)=>ca(n.operations.sql,t,e),gdalFunction:n.operations.gdalFunction,options:e=>["-f","GeoJSON","-dialect","SQLITE","-sql",e,"output.geojson"]},e)}})}}(e,c,t,l,r),c.addCommand(ce.newHillshadeEntry,Object.assign({label:l.__("New Hillshade layer"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:fr.createEntry({tracker:t,formSchemaRegistry:r,title:"Create Hillshade Layer",createLayer:!0,createSource:!0,layerData:{name:"Custom Hillshade Layer"},sourceType:"RasterDemSource",layerType:"HillshadeLayer"})},me.get(ce.newHillshadeEntry))),c.addCommand(ce.newImageEntry,Object.assign({label:l.__("New Image layer"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:fr.createEntry({tracker:t,formSchemaRegistry:r,title:"Create Image Layer",createLayer:!0,createSource:!0,sourceData:{name:"Custom Image Source",path:"https://maplibre.org/maplibre-gl-js/docs/assets/radar.gif",coordinates:[[-80.425,46.437],[-71.516,46.437],[-71.516,37.936],[-80.425,37.936]]},layerData:{name:"Custom Image Layer"},sourceType:"ImageSource",layerType:"ImageLayer"})},me.get(ce.newImageEntry))),c.addCommand(ce.newVideoEntry,Object.assign({label:l.__("New Video layer"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:fr.createEntry({tracker:t,formSchemaRegistry:r,title:"Create Video Layer",createLayer:!0,createSource:!0,sourceData:{name:"Custom Video Source",urls:["https://static-assets.mapbox.com/mapbox-gl-js/drone.mp4","https://static-assets.mapbox.com/mapbox-gl-js/drone.webm"],coordinates:[[-122.51596391201019,37.56238816766053],[-122.51467645168304,37.56410183312965],[-122.51309394836426,37.563391708549425],[-122.51423120498657,37.56161849366671]]},layerData:{name:"Custom Video Layer"},sourceType:"VideoSource",layerType:"RasterLayer"})},me.get(ce.newVideoEntry))),c.addCommand(ce.newGeoTiffEntry,Object.assign({label:l.__("New GeoTiff layer"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:fr.createEntry({tracker:t,formSchemaRegistry:r,title:"Create GeoTiff Layer",createLayer:!0,createSource:!0,sourceData:{name:"Custom GeoTiff Source",urls:[{}]},layerData:{name:"Custom GeoTiff Layer"},sourceType:"GeoTiffSource",layerType:"WebGlLayer"})},me.get(ce.newGeoTiffEntry))),c.addCommand(ce.newShapefileEntry,Object.assign({label:l.__("New Shapefile Layer"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:fr.createEntry({tracker:t,formSchemaRegistry:r,title:"Create Shapefile Layer",createLayer:!0,createSource:!0,sourceData:{name:"Custom Shapefile Source"},layerData:{name:"Custom Shapefile Layer"},sourceType:"ShapefileSource",layerType:"VectorLayer"})},me.get(ce.newShapefileEntry))),c.addCommand(ce.renameLayer,{label:l.__("Rename Layer"),execute:async()=>{var e;const a=null===(e=t.currentWidget)||void 0===e?void 0:e.model;await fr.renameSelectedItem(a,"layer",(e,t)=>{const r=null==a?void 0:a.getLayer(e);r&&(r.name=t,null==a||a.sharedModel.updateLayer(e,r))})}}),c.addCommand(ce.removeLayer,{label:l.__("Remove Layer"),execute:()=>{var e;const a=null===(e=t.currentWidget)||void 0===e?void 0:e.model;fr.removeSelectedItems(a,"layer",e=>{null==a||a.removeLayer(e)})}}),c.addCommand(ce.renameGroup,{label:l.__("Rename Group"),execute:async()=>{var e;const a=null===(e=t.currentWidget)||void 0===e?void 0:e.model;await fr.renameSelectedItem(a,"group",(e,t)=>{null==a||a.renameLayerGroup(e,t)})}}),c.addCommand(ce.removeGroup,{label:l.__("Remove Group"),execute:async()=>{var e;const a=null===(e=t.currentWidget)||void 0===e?void 0:e.model;fr.removeSelectedItems(a,"group",e=>{null==a||a.removeLayerGroup(e)})}}),c.addCommand(ce.moveLayersToGroup,{label:e=>e.label?e.label:l.__("Move to Root"),execute:e=>{var a,r,o;const n=null===(a=t.currentWidget)||void 0===a?void 0:a.model,s=e.label,i=null===(o=null===(r=null==n?void 0:n.localState)||void 0===r?void 0:r.selected)||void 0===o?void 0:o.value;i&&n.moveItemsToGroup(Object.keys(i),s)}}),c.addCommand(ce.moveLayerToNewGroup,{label:l.__("Move Selected Layers to New Group"),execute:async()=>{var e,a,r;const o=null===(e=t.currentWidget)||void 0===e?void 0:e.model,n=null===(r=null===(a=null==o?void 0:o.localState)||void 0===a?void 0:a.selected)||void 0===r?void 0:r.value;if(!n)return;const s=await function(){const e=document.createElement("input");e.classList.add("jp-gis-left-panel-input"),e.style.marginLeft="26px";const t=document.getElementById("jp-gis-layer-tree");if(t)return t.appendChild(e),e.focus(),new Promise(a=>{e.addEventListener("blur",()=>{t.removeChild(e),a(e.value)}),e.addEventListener("keydown",t=>{("Enter"===t.key||"Escape"===t.key)&&(t.stopPropagation(),t.preventDefault(),e.blur())})})}();if(!s)return void console.warn("New name cannot be empty");const i=[];Object.keys(n).forEach(e=>{i.push(e)});const l={name:s,layers:i};o.addNewLayerGroup(n,l)}}),c.addCommand(ce.renameSource,{label:l.__("Rename Source"),execute:async()=>{var e;const a=null===(e=t.currentWidget)||void 0===e?void 0:e.model;await fr.renameSelectedItem(a,"source",(e,t)=>{const r=null==a?void 0:a.getSource(e);r&&(r.name=t,null==a||a.sharedModel.updateSource(e,r))})}}),c.addCommand(ce.removeSource,{label:l.__("Remove Source"),execute:()=>{var e;const a=null===(e=t.currentWidget)||void 0===e?void 0:e.model;fr.removeSelectedItems(a,"source",e=>{var t;null===(t=null==a?void 0:a.getLayersBySource(e).length)||void 0===t||t?(0,d.showErrorMessage)("Remove source error","The source is used by a layer."):null==a||a.sharedModel.removeSource(e)})}}),c.addCommand(ce.toggleConsole,{label:l.__("Toggle console"),isVisible:()=>t.currentWidget instanceof br,isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,isToggled:()=>{var e;return t.currentWidget instanceof br&&!0===(null===(e=t.currentWidget)||void 0===e?void 0:e.content.consoleOpened)},execute:async()=>{await fr.toggleConsole(t),c.notifyCommandChanged(ce.toggleConsole)}}),c.addCommand(ce.executeConsole,{label:l.__("Execute console"),isVisible:()=>t.currentWidget instanceof br,isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:()=>fr.executeConsole(t)}),c.addCommand(ce.removeConsole,{label:l.__("Remove console"),isVisible:()=>t.currentWidget instanceof br,isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:()=>fr.removeConsole(t)}),c.addCommand(ce.invokeCompleter,{label:l.__("Display the completion helper."),isVisible:()=>t.currentWidget instanceof br,execute:()=>{var e;const a=t.currentWidget;if(!(a&&s&&a instanceof br))return;const r=null===(e=a.content.consolePanel)||void 0===e?void 0:e.id;return r?s.invoke(r):void 0}}),c.addCommand(ce.selectCompleter,{label:l.__("Select the completion suggestion."),isVisible:()=>t.currentWidget instanceof br,execute:()=>{var e;const a=t.currentWidget;if(!(a&&s&&a instanceof br))return;const r=null===(e=a.content.consolePanel)||void 0===e?void 0:e.id;return r?s.select(r):void 0}}),c.addCommand(ce.zoomToLayer,{label:l.__("Zoom to Layer"),execute:()=>{var e;if(!t.currentWidget||!s)return;console.log("zooming");const a=t.currentWidget.model,r=null===(e=a.localState)||void 0===e?void 0:e.selected.value;if(!r)return;const o=Object.keys(r)[0];a.centerOnPosition(o)}}),c.addCommand(ce.downloadGeoJSON,{label:l.__("Download as GeoJSON"),isEnabled:()=>{const e=sa(t);return!!e&&["VectorLayer","ShapefileLayer"].includes(e.type)},execute:async()=>{var e,a;const o=sa(t);if(!o)return;const n=null===(e=t.currentWidget)||void 0===e?void 0:e.model,s=null!==(a=n.sharedModel.sources)&&void 0!==a?a:{},i=Object.assign({},r.getSchemas().get("ExportGeoJSONSchema")),l=await new Promise(e=>{const t=new rt({title:"Download GeoJSON",schema:i,model:n,sourceData:{exportFormat:"GeoJSON"},formContext:"create",processingType:"Export",syncData:a=>{e(a),t.dispose()}});t.launch()});if(!l||!o.parameters)return;const c=l.exportFileName,d=s[o.parameters.source],m=await Ye(d,n);m&&Qe(m,`${c}.geojson`,"application/geo+json")}}),c.addCommand(ce.getGeolocation,{label:l.__("Center on Geolocation"),execute:async()=>{var e;const a=null===(e=t.currentWidget)||void 0===e?void 0:e.model;navigator.geolocation.getCurrentPosition(e=>{const t=(0,m.Rb)([e.coords.longitude,e.coords.latitude]),r={x:t[0],y:t[1]};a&&a.geolocationChanged.emit(r)},e=>{console.warn(`ERROR(${e.code}): ${e.message}`)},{enableHighAccuracy:!0,timeout:5e3,maximumAge:0})},icon:le}),function(e,t){t.forEach(t=>{e.addKeyBinding({command:t.command,keys:t.keys,selector:t.selector})})}(c,aa)}!function(e){e.createLayerBrowser=function(e,t,a){return async()=>{const r=e.currentWidget;if(!r)return;const o=new It({model:r.model,registry:t.getRegistryLayers(),formSchemaRegistry:a});await o.launch()}},e.createSymbologyDialog=function(e,t){return async()=>{const a=e.currentWidget;if(!a)return;const r=new ta({model:a.model,state:t});await r.launch()}},e.createEntry=function({tracker:e,formSchemaRegistry:t,title:a,createLayer:r,createSource:o,sourceData:n,layerData:s,sourceType:i,layerType:l}){return async()=>{const c=e.currentWidget;if(!c)return;const d=new Mt({model:c.model,title:a,createLayer:r,createSource:o,sourceData:n,sourceType:i,layerData:s,layerType:l,formSchemaRegistry:t});await d.launch()}},e.getUserInputForRename=async function(e,t,a){const r=e.parentElement;return r.replaceChild(t,e),t.value=a,t.select(),t.focus(),new Promise(o=>{t.addEventListener("blur",()=>{r.replaceChild(e,t),o(t.value)}),t.addEventListener("keydown",r=>{"Enter"===r.key?(r.stopPropagation(),r.preventDefault(),t.blur()):"Escape"===r.key&&(r.stopPropagation(),r.preventDefault(),t.value=a,t.blur(),e.focus())})})},e.removeSelectedItems=function(e,t,a){var r,o;const n=null===(o=null===(r=null==e?void 0:e.localState)||void 0===r?void 0:r.selected)||void 0===o?void 0:o.value;if(n)for(const e in n)n[e].type===t&&a(e);else console.info("Nothing selected")},e.renameSelectedItem=async function(t,a,r){var o;const n=null===(o=null==t?void 0:t.localState)||void 0===o?void 0:o.selected.value;if(!n)return void console.error(`No ${a} selected`);let s="";for(const e in n)if(n[e].type===a){s=e;break}if(!s)return;const i=n[s].selectedNodeId;if(!i)return;const l=document.getElementById(i);if(!l)return void console.warn(`Node with ID ${i} not found`);const c=document.createElement("input");c.classList.add("jp-gis-left-panel-input");const d=l.innerText,m=await e.getUserInputForRename(l,c,d);m?m!==d&&r(s,m):console.warn("New name cannot be empty")},e.executeConsole=function(e){const t=e.currentWidget;t&&t instanceof br&&t.content.executeConsole()},e.removeConsole=function(e){const t=e.currentWidget;t&&t instanceof br&&t.content.removeConsole()},e.toggleConsole=async function(e){const t=e.currentWidget;t&&t instanceof br&&await t.content.toggleConsole(t.model.filePath)}}(fr||(fr={}));const Cr=e=>{const t=new ua.Menu({commands:e});return t.title.label="Add Vector Layer",t.title.iconClass="fa fa-vector-square",t.id="jp-gis-toolbar-vector-menu",t.addItem({type:"command",command:ce.newVectorTileEntry}),t.addItem({type:"command",command:ce.newGeoJSONEntry}),t.addItem({type:"command",command:ce.newShapefileEntry}),t},jr=e=>{const t=new ua.Menu({commands:e});return t.title.label="Add Raster Layer",t.title.icon=Z,t.id="jp-gis-toolbar-raster-menu",t.addItem({type:"command",command:ce.newRasterEntry}),t.addItem({type:"command",command:ce.newHillshadeEntry}),t.addItem({type:"command",command:ce.newImageEntry}),t.addItem({type:"command",command:ce.newGeoTiffEntry}),t};class _r extends ua.Widget{constructor(){super({node:Mr()}),this.title.changed.connect(e=>{this.node.textContent=this.title.label})}}function Mr(){const e=document.createElement("h2");return e.textContent="-",e}var xr=a(38404),Or=a(24838);function Ir(...e){return(0,Or.$)(e)}var Nr=function(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(a[r[o]]=e[r[o]])}return a};const Lr=e=>{var{className:t}=e,a=Nr(e,["className"]);return ue.createElement(xr.bL,Object.assign({"data-slot":"tabs",className:Ir("TabsList",t)},a))},kr=e=>{var{className:t}=e,a=Nr(e,["className"]);return ue.createElement(xr.B8,Object.assign({"data-slot":"tabs-list",className:Ir("jgis-tabs-list",t)},a))},Ar=e=>{var{className:t}=e,a=Nr(e,["className"]);return ue.createElement(xr.l9,Object.assign({"data-slot":"tabs-trigger",className:Ir("jgis-tabs-trigger",t)},a))},Tr=e=>{var{className:t}=e,a=Nr(e,["className"]);return ue.createElement(xr.UC,Object.assign({"data-slot":"tabs-content",className:Ir("jgis-tabs-content",t)},a))};var Pr=a(68583);const Gr=[{collection:"Sentinel 1",datasets:["PEPS_S1_L1","PEPS_S1_L2"]},{collection:"Sentinel 2",datasets:["PEPS_S2_L1C","MUSCATE_SENTINEL2_SENTINEL2_L2A","MUSCATE_Snow_SENTINEL2_L2B-SNOW","MUSCATE_WaterQual_SENTINEL2_L2B-WATER","MUSCATE_SENTINEL2_SENTINEL2_L3A"]},{collection:"Venus",datasets:["MUSCATE_VENUS_VM1_L1C","MUSCATE_VENUSVM05_VM5_L1C","MUSCATE_VENUS_VM1_L2A","MUSCATE_VENUSVM05_VM5_L2A","MUSCATE_VENUS_VM1_L3A","MUSCATE_VENUSVM05_VM5_L3A"]},{collection:"Spot",datasets:["MUSCATE_SPOTWORLDHERITAGE_SPOT1_L1C","MUSCATE_SPOTWORLDHERITAGE_SPOT2_L1C","MUSCATE_SPOTWORLDHERITAGE_SPOT3_L1C","TAKE5_SPOT4_L1C","MUSCATE_SPOTWORLDHERITAGE_SPOT4_L1C","TAKE5_SPOT4_L2A","TAKE5_SPOT5_L2A","TAKE5_SPOT5_L1C","MUSCATE_SPOTWORLDHERITAGE_SPOT5_L1C","MUSCATE_Spirit_SPOT5_L1A","SWH_SPOT123_L1","SWH_SPOT4_L1","SWH_SPOT5_L1"]},{collection:"Landsat",datasets:["MUSCATE_Landsat57_LANDSAT5_N2A","MUSCATE_Landsat57_LANDSAT7_N2A","MUSCATE_LANDSAT_LANDSAT8_L2A","MUSCATE_Snow_LANDSAT8_L2B-SNOW"]},{collection:"OSO",datasets:["MUSCATE_OSO_RASTER_L3B-OSO","MUSCATE_OSO_VECTOR_L3B-OSO"]},{collection:"Postel",datasets:["POSTEL_VEGETATION_LAI","POSTEL_VEGETATION_FCOVER","POSTEL_VEGETATION_FAPAR","POSTEL_VEGETATION_NDVI","POSTEL_VEGETATION_SURFACEREFLECTANCE","POSTEL_RADIATION_BRDF","POSTEL_RADIATION_DLR","POSTEL_RADIATION_SURFACEREFLECTANCE","POSTEL_RADIATION_SURFACEALBEDO","POSTEL_WATER_SOILMOISTURE","POSTEL_WATER_SWI","POSTEL_WATER_SURFWET","POSTEL_WATER_PRECIP","POSTEL_LANDCOVER_GLOBCOVER"]},{collection:"GEOV2 AVHRR",datasets:["POSTEL_VEGETATION_LAI","POSTEL_VEGETATION_FCOVER","POSTEL_VEGETATION_FAPAR","POSTEL_VEGETATION_NDVI"]}],Rr={"Sentinel 1":["S1A","S1B"],"Sentinel 2":["S2A","S2B","S2X"],Venus:["VM1","VM5"],Spot:["SPOT1","SPOT2","SPOT3","SPOT4","SPOT5","SPOT4_TAKE5","SPOT5_TAKE5"],Landsat:["LANDSAT5","LANDSAT7","LANDSAT8"]},Dr=[{productCode:"SLC",productType:["SLC"],processingLevel:"L1",collections:["Sentinel 1"]},{productCode:"GRD",productType:["GRD"],processingLevel:"L1",collections:["Sentinel 1"]},{productCode:"OCN",productType:["OCN"],processingLevel:"L2",collections:["Sentinel 1"]},{productCode:"L1C",productType:["REFLECTANCE","REFLECTANCETOA","S2MSI1C"],processingLevel:"L1C",collections:["Sentinel 2","Venus","Spot"]},{productCode:"L2A",productType:["REFLECTANCE"],processingLevel:"L2A",collections:["Sentinel 2","Venus","Spot","Landsat"]},{productCode:"L2B SNOW",productType:["SNOW_MASK"],processingLevel:"L2B-SNOW",collections:["Sentinel 2","Landsat"]},{productCode:"L2B WATER",productType:["REFLECTANCE"],processingLevel:"L2B-WATER",collections:["Sentinel 2"]},{productCode:"L3A",productType:["REFLECTANCE"],processingLevel:"L3A",collections:["Sentinel 2","Venus"]},{productCode:"L1A",productType:["DEM","REFLECTANCETOA","DEM9V20","DEMS9V20","DEMS09V20","DEMSV20","DEPS9V20","SPOTDEM"],processingLevel:"L1A",collections:["Spot"]},{productCode:"N2A",productType:["REFLECTANCE"],processingLevel:"N2A",collections:["Landsat"]},{productCode:"L3B-OSO",productType:["REFLECTANCE"],processingLevel:"L3B-OSO",collections:["OSO"]},{productCode:"Vegetation",productType:["Vegetation"],collections:["Postel","GEOV2 AVHRR"]},{productCode:"Radiation",productType:["Radiation"],collections:["Postel"]},{productCode:"Water",productType:["Water"],collections:["Postel"]},{productCode:"LandCover",productType:["LandCover"],collections:["Postel"]}];var Fr;const Br=null===(Fr=document.cookie.match(/_xsrf=([^;]+)/))||void 0===Fr?void 0:Fr[1],zr="jupytergis:stac-filters",Vr=function({model:e}){const t=(()=>{const e=(0,ue.useRef)(!0);return e.current?(e.current=!1,!0):e.current})(),a=Ht.getInstance().getStateDb(),[r,o]=(0,ue.useState)([]),[n,s]=(0,ue.useState)(!1),[i,l]=(0,ue.useState)(1),[c,d]=(0,ue.useState)(1),[m,p]=(0,ue.useState)(0),[u,g]=(0,ue.useState)(void 0),[y,h]=(0,ue.useState)(void 0),[v,f]=(0,ue.useState)([-180,-90,180,90]),[b,S]=(0,ue.useState)(!1),[w,E]=(0,ue.useState)({collections:new Set,datasets:new Set,platforms:new Set,products:new Set}),C={collections:e=>E(t=>Object.assign(Object.assign({},t),{collections:new Set(e)})),datasets:e=>E(t=>Object.assign(Object.assign({},t),{datasets:new Set(e)})),platforms:e=>E(t=>Object.assign(Object.assign({},t),{platforms:new Set(e)})),products:e=>E(t=>Object.assign(Object.assign({},t),{products:new Set(e)}))};(0,ue.useEffect)(()=>{!async function(){var e,t,r,o;const n=await(null==a?void 0:a.fetch(zr));E({collections:new Set(null!==(e=null==n?void 0:n.collections)&&void 0!==e?e:[]),datasets:new Set(null!==(t=null==n?void 0:n.datasets)&&void 0!==t?t:[]),platforms:new Set(null!==(r=null==n?void 0:n.platforms)&&void 0!==r?r:[]),products:new Set(null!==(o=null==n?void 0:n.products)&&void 0!==o?o:[])})}()},[a]),(0,ue.useEffect)(()=>{!async function(){await(null==a?void 0:a.save(zr,{collections:Array.from(w.collections),datasets:Array.from(w.datasets),platforms:Array.from(w.platforms),products:Array.from(w.products)}))}()},[w,a]),(0,ue.useEffect)(()=>{e&&!t&&w.datasets.size>0&&(d(1),j(1))},[w,u,y,v]),(0,ue.useEffect)(()=>{const t=(e,t)=>{f(b?[-180,-90,180,90]:t)};return null==e||e.updateBboxSignal.connect(t),()=>{null==e||e.updateBboxSignal.disconnect(t)}},[e,b]);const j=async(t=1)=>{const a=new Set,r=new Set;w.products.forEach(e=>{Dr.filter(t=>t.productCode===e).forEach(e=>{e.processingLevel&&a.add(e.processingLevel),e.productType&&e.productType.forEach(e=>r.add(e))})});const n={bbox:v,limit:12,page:t,query:Object.assign(Object.assign(Object.assign(Object.assign({latest:{eq:!0},dataset:{in:Array.from(w.datasets)},end_datetime:{gte:u?u.toISOString():(0,Pr.K)().toISOString()}},y&&{start_datetime:{lte:y.toISOString()}}),w.platforms.size>0&&{platform:{in:Array.from(w.platforms)}}),a.size>0&&{"processing:level":{in:Array.from(a)}}),r.size>0&&{"product:type":{in:Array.from(r)}}),sortBy:[{direction:"desc",field:"start_datetime"}]};try{s(!0);const t={method:"POST",headers:{"Content-Type":"application/json","X-XSRFToken":Br,credentials:"include"},body:JSON.stringify(n)};if(!e)return;const a=await Fe("https://geodes-portal.cnes.fr/api/stac/search",e,async e=>await e.json(),t,"internal");if(!a)return console.log("No Results found"),o([]),l(1),void p(0);o(a.features);const r=a.context.matched/a.context.limit;l(Math.ceil(r)),p(a.context.matched)}catch(e){console.error("Error fetching data:",e),o([]),l(1),p(0)}finally{s(!1)}};return{filterState:w,filterSetters:C,results:r,startTime:u,setStartTime:g,endTime:y,setEndTime:h,totalPages:i,currentPage:c,totalResults:m,handlePaginationClick:async t=>{d(t),e&&j(t)},handleResultClick:async t=>{var a;if(!r)return;const o=pe.UUID.uuid4(),n=r.find(e=>e.id===t);if(!n)return void console.error("Result not found:",t);const s={type:"StacLayer",parameters:{data:n},visible:!0,name:null!==(a=n.properties.title)&&void 0!==a?a:n.id};e&&e.addLayer(o,s)},formatResult:e=>{var t;return null!==(t=e.properties.title)&&void 0!==t?t:e.id},isLoading:n,useWorldBBox:b,setUseWorldBBox:S}};var Wr=a(11992),Ur=a(34412);const $r=ue.forwardRef((e,t)=>{var{variant:a,className:r,size:o,asChild:n=!1}=e,s=function(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(a[r[o]]=e[r[o]])}return a}(e,["variant","className","size","asChild"]);const i=n?Ur.DX:"button";return ue.createElement(i,Object.assign({"data-size":o,"data-variant":a,className:Ir("jgis-button",r),ref:t},s))});$r.displayName="Button";var Hr=a(89229),Jr=a(7077),qr=a(52484),Zr=a(65814),Qr=a(17755),Yr=a(35957),Kr=a(90017),Xr=function(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(a[r[o]]=e[r[o]])}return a};function eo(e){var{className:t,showOutsideDays:a=!0,showYearSwitcher:r=!0,yearRange:o=12,numberOfMonths:n,components:s}=e,i=Xr(e,["className","showOutsideDays","showYearSwitcher","yearRange","numberOfMonths","components"]);const[l,c]=ue.useState("days"),[d,m]=ue.useState(ue.useMemo(()=>{const e=(new Date).getFullYear();return{from:e-Math.floor(o/2-1),to:e+Math.ceil(o/2)}},[o])),{onNextClick:p,onPrevClick:u,startMonth:g,endMonth:y}=i,h="years"===l?1:n,v=Ir("jgis-calendar-months",i.monthsClassName),f=Ir("jgis-calendar-month-caption",i.monthCaptionClassName),b=Ir("jgis-calendar-weekdays",i.weekdaysClassName),S=Ir("jgis-calendar-weekday",i.weekdayClassName),w=Ir("jgis-calendar-month",i.monthClassName),E=Ir("jgis-calendar-month-caption",i.captionClassName),C=Ir("jgis-calendar-caption-label",i.captionLabelClassName),j=Ir("jgis-calendar-button-next",i.buttonNextClassName),_=Ir("jgis-calendar-button-previous",i.buttonPreviousClassName),M=Ir("jgis-calendar-nav",i.navClassName),x=Ir("jgis-calendar-month-grid",i.monthGridClassName),O=Ir("jgis-calendar-week",i.weekClassName),I=Ir("jgis-calendar-day",i.dayClassName),N=Ir("jgis-calendar-day-button",i.dayButtonClassName),L=Ir("jgis-calendar-day-button range-start",i.rangeStartClassName),k=Ir("jgis-calendar-day-button range-end",i.rangeEndClassName),A=Ir("jgis-calendar-range-middle",i.rangeMiddleClassName),T=Ir("jgis-calendar-day-selected",i.selectedClassName),P=Ir("jgis-calendar-day-outside",i.outsideClassName),G=Ir("jgis-calendar-day-disabled",i.disabledClassName),R=Ir("jgis-calendar-hidden",i.hiddenClassName);return ue.createElement(Zr.h,Object.assign({showOutsideDays:a,className:Ir("jgis-calendar-container",t),style:{width:248.8*(null!=h?h:1)+"px"},classNames:{months:v,month_caption:f,weekdays:b,weekday:S,month:w,caption:E,caption_label:C,button_next:j,button_previous:_,nav:M,month_grid:x,week:O,day:I,day_button:N,range_start:L,range_middle:A,range_end:k,selected:T,outside:P,disabled:G,hidden:R},components:Object.assign({Chevron:({orientation:e})=>{const t="left"===e?Jr.A:qr.A;return ue.createElement(t,{className:"h-4 w-4"})},Nav:({className:e})=>ue.createElement(to,{className:e,displayYears:d,navView:l,setDisplayYears:m,startMonth:g,endMonth:y,onPrevClick:u,onNextClick:p}),CaptionLabel:e=>ue.createElement(ao,Object.assign({showYearSwitcher:r,navView:l,setNavView:c,displayYears:d},e)),MonthGrid:e=>{var{className:t,children:a}=e,r=Xr(e,["className","children"]);return ue.createElement(ro,Object.assign({children:a,className:t,displayYears:d,startMonth:g,endMonth:y,navView:l,setNavView:c},r))}},s),numberOfMonths:h,timeZone:"UTC"},i))}function to({className:e,navView:t,startMonth:a,endMonth:r,displayYears:o,setDisplayYears:n,onPrevClick:s,onNextClick:i}){const{nextMonth:l,previousMonth:c,goToMonth:d}=(0,Qr.w)(),m="years"===t?a&&(0,Hr.m)(new Date(o.from-1,0,1),a)<0||r&&(0,Hr.m)(new Date(o.from-1,0,1),r)>0:!c,p="years"===t?a&&(0,Hr.m)(new Date(o.to+1,0,1),a)<0||r&&(0,Hr.m)(new Date(o.to+1,0,1),r)>0:!l,u=ue.useCallback(()=>{if(c){if("years"===t)return n(e=>({from:e.from-(e.to-e.from+1),to:e.to-(e.to-e.from+1)})),void(null==s||s(new Date(o.from-(o.to-o.from),0,1)));d(c),null==s||s(c)}},[c,d]),g=ue.useCallback(()=>{if(l){if("years"===t)return n(e=>({from:e.from+(e.to-e.from+1),to:e.to+(e.to-e.from+1)})),void(null==i||i(new Date(o.from+(o.to-o.from),0,1)));d(l),null==i||i(l)}},[d,l]);return ue.createElement("nav",{className:Ir("jgis-calendar-nav",e)},ue.createElement($r,{variant:"ghost",className:"jgis-calendar-button-previous",type:"button",tabIndex:m?void 0:-1,disabled:m,"aria-label":"years"===t?`Go to the previous ${o.to-o.from+1} years`:(0,Yr.o)(c),onClick:u},ue.createElement(Jr.A,{className:"h-4 w-4"})),ue.createElement($r,{variant:"ghost",className:"jgis-calendar-button-next",type:"button",tabIndex:p?void 0:-1,disabled:p,"aria-label":"years"===t?`Go to the next ${o.to-o.from+1} years`:(0,Kr.s)(l),onClick:g},ue.createElement(qr.A,{className:"h-4 w-4"})))}function ao(e){var{children:t,showYearSwitcher:a,navView:r,setNavView:o,displayYears:n}=e,s=Xr(e,["children","showYearSwitcher","navView","setNavView","displayYears"]);return a?ue.createElement($r,{className:"jgis-calendar-caption-button",variant:"ghost",size:"sm",onClick:()=>o(e=>"days"===e?"years":"days")},"days"===r?t:n.from+" - "+n.to):ue.createElement("span",Object.assign({},s),t)}function ro(e){var{className:t,children:a,displayYears:r,startMonth:o,endMonth:n,navView:s,setNavView:i}=e,l=Xr(e,["className","children","displayYears","startMonth","endMonth","navView","setNavView"]);return"years"===s?ue.createElement(oo,Object.assign({displayYears:r,startMonth:o,endMonth:n,setNavView:i,navView:s,className:t},l)):ue.createElement("table",Object.assign({className:t},l),a)}function oo(e){var{className:t,displayYears:a,startMonth:r,endMonth:o,setNavView:n,navView:s}=e,i=Xr(e,["className","displayYears","startMonth","endMonth","setNavView","navView"]);const{goToMonth:l,selected:c}=(0,Qr.w)();return ue.createElement("div",Object.assign({className:Ir("jgis-calendar-year-grid",t)},i),Array.from({length:a.to-a.from+1},(e,t)=>{const i=(0,Hr.m)(new Date(a.from+t,11,31),r)<0,d=(0,Hr.m)(new Date(a.from+t,0,0),o)>0,m=i||d;return ue.createElement($r,{key:t,className:Ir("jgis-calendar-year-button",a.from+t===(new Date).getFullYear()&&"jgis-calendar-year-button-current",m&&"jgis-calendar-year-button-disabled"),variant:"ghost",onClick:()=>{var e;n("days"),l(new Date(a.from+t,null!==(e=null==c?void 0:c.getMonth())&&void 0!==e?e:0))},disabled:"years"===s?m:void 0},a.from+t)}))}eo.displayName="Calendar";var no=a(20532),so=a(52160);const io=ue.forwardRef((e,t)=>{var a=function(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(a[r[o]]=e[r[o]])}return a}(e,[]);return ue.createElement(no.bL,Object.assign({ref:t,className:"jgis-checkbox"},a),ue.createElement(no.C1,{className:"jgis-checkbox-indicator"},ue.createElement(so.A,{style:{height:"1rem",width:"1rem"}})))});io.displayName=no.bL.displayName;const lo=io;var co=a(57829),mo=function(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(a[r[o]]=e[r[o]])}return a};const po=e=>{var t=mo(e,[]);return ue.createElement(co.bL,Object.assign({"data-slot":"popover"},t))},uo=e=>{var t=mo(e,[]);return ue.createElement(co.l9,Object.assign({"data-slot":"popover-trigger"},t))},go=e=>{var{className:t,align:a="center",sideOffset:r=4}=e,o=mo(e,["className","align","sideOffset"]);return ue.createElement(co.ZL,null,ue.createElement(co.UC,Object.assign({"data-slot":"popover-content",align:a,sideOffset:r,className:Ir("jgis-popover-content",t)},o)))};const yo=function(e){var{variant:t,className:a}=e,r=function(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(a[r[o]]=e[r[o]])}return a}(e,["variant","className"]);return ue.createElement("div",Object.assign({"data-variant":t,className:Ir("jgis-badge",a)},r))};var ho=a(4188),vo=a(83966),fo=function(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(a[r[o]]=e[r[o]])}return a};const bo=ho.bL,So=ho.l9,wo=ho.YJ,Eo=ho.ZL,Co=ho.Pb,jo=(ho.z6,ue.forwardRef((e,t)=>{var{inset:a,children:r}=e,o=fo(e,["inset","children"]);return ue.createElement(ho.ZP,Object.assign({ref:t,className:"jgis-dropdown-menu-sub-trigger",style:{paddingLeft:a?"2rem":"0.5rem"}},o),r,ue.createElement(qr.A,{className:"jgis-dropdown-menu-icon"}))}));jo.displayName=ho.ZP.displayName;const _o=ue.forwardRef((e,t)=>{var a=fo(e,[]);return ue.createElement(ho.G5,Object.assign({ref:t,className:"jgis-dropdown-menu-sub-content"},a))});_o.displayName=ho.G5.displayName;const Mo=ue.forwardRef((e,t)=>{var{sideOffset:a=4}=e,r=fo(e,["sideOffset"]);return ue.createElement(ho.ZL,{container:document.querySelector("#main")},ue.createElement(ho.UC,Object.assign({ref:t,sideOffset:a,className:"jgis-dropdown-menu-content"},r)))});Mo.displayName=ho.UC.displayName;const xo=ue.forwardRef((e,t)=>{var{inset:a}=e,r=fo(e,["inset"]);return ue.createElement(ho.q7,Object.assign({ref:t,className:"jgis-dropdown-menu-item",style:{paddingLeft:a?"2rem":"0.5rem"}},r))});xo.displayName=ho.q7.displayName;const Oo=ue.forwardRef((e,t)=>{var{children:a,checked:r}=e,o=fo(e,["children","checked"]);return ue.createElement(ho.H_,Object.assign({ref:t,className:"jgis-dropdown-menu-checkbox-item",checked:r},o),ue.createElement("span",{className:"jgis-dropdown-menu-checkbox-item-span"},ue.createElement(ho.VF,null,ue.createElement(so.A,{style:{height:"1rem",width:"1rem"}}))),a)});Oo.displayName=ho.H_.displayName;const Io=ue.forwardRef((e,t)=>{var{children:a}=e,r=fo(e,["children"]);return ue.createElement(ho.hN,Object.assign({ref:t,className:"jgis-dropdown-menu-radio-item"},r),ue.createElement("span",{className:"jgis-dropdown-menu-radio-item-span"},ue.createElement(ho.VF,null,ue.createElement(vo.A,{color:"currentColor",style:{height:"0.5rem",width:"0.5rem"}}))),a)});Io.displayName=ho.hN.displayName;const No=ue.forwardRef((e,t)=>{var{inset:a}=e,r=fo(e,["inset"]);return ue.createElement(ho.JU,Object.assign({ref:t,className:"jgis-dropdown-menu-label",style:{paddingLeft:a?"2rem":"0.5rem"}},r))});No.displayName=ho.JU.displayName;const Lo=ue.forwardRef((e,t)=>{var a=fo(e,[]);return ue.createElement(ho.wv,Object.assign({ref:t,className:"jgis-dropdown-menu-separator"},a))});Lo.displayName=ho.wv.displayName;const ko=({section:e,data:t,selectedCollections:a,selectedData:r,handleCheckedChange:o})=>{const n=(0,ue.useMemo)(()=>"Collection"===e?ge().createElement(wo,null,t.map(e=>ge().createElement(Co,{key:e.collection},ge().createElement(jo,null,e.collection),ge().createElement(Eo,null,ge().createElement(_o,null,e.datasets.map(t=>ge().createElement(Oo,{key:t,checked:r.includes(t),onCheckedChange:()=>{o(t,e.collection)},onSelect:e=>{e.preventDefault()}},t))))))):"Platform"===e?ge().createElement(ge().Fragment,null,a.map(e=>{var a;return ge().createElement(wo,{key:e},ge().createElement(No,null,e),null===(a=t[e])||void 0===a?void 0:a.map(e=>ge().createElement(Oo,{key:e,checked:r.includes(e),onCheckedChange:()=>{o(e,"")},onSelect:e=>{e.preventDefault()}},e)))})):"Data / Product"===e?ge().createElement(ge().Fragment,null,a.map(e=>ge().createElement(wo,{key:e},ge().createElement(No,null,e),t.filter(t=>t.collections.includes(e)).map(t=>ge().createElement(Oo,{key:t.productCode,checked:r.includes(t.productCode),onCheckedChange:()=>{o(t.productCode,e)},onSelect:e=>{e.preventDefault()}},t.productCode))))):void 0,[e,t,a,r,o]),s=("Platform"===e||"Data / Product"===e)&&0===a.length;return ge().createElement("div",{className:"jgis-stac-filter-section-container"},ge().createElement(bo,{modal:!1},ge().createElement(So,{className:"jgis-stac-filter-trigger",disabled:s},e,ge().createElement(qr.A,{className:"DropdownMenuIcon"})),ge().createElement(Mo,{side:"right"},n)),ge().createElement("div",{className:"jgis-stac-filter-section-badges"},r.map(e=>ge().createElement(yo,{key:e,className:"jgis-stac-badge"},ge().createElement("span",null,e),ge().createElement($r,{variant:"icon",size:"icon-sm",className:"jgis-stac-badge-icon",onClick:()=>{o(e,"")}},ge().createElement(nt.g,{icon:ot.Jyw}))))))},Ao=({filterState:e,filterSetters:t,startTime:a,setStartTime:r,endTime:o,setEndTime:n,useWorldBBox:s,setUseWorldBBox:i})=>{const l=(a,r)=>{const o=new Set(e[a]);o.has(r)?o.delete(r):o.add(r),t[a](o)};return ge().createElement("div",{className:"jgis-stac-browser-filters-panel"},ge().createElement("div",null,ge().createElement("span",{style:{display:"flex",alignItems:"center",gap:"0.5rem"}},ge().createElement(lo,{checked:s,onCheckedChange:i}),"Use whole world as bounding box")),ge().createElement("div",{className:"jgis-stac-browser-date-picker"},ge().createElement(po,null,ge().createElement(uo,{asChild:!0},ge().createElement($r,{style:{padding:"0 0.5rem"},variant:"outline"},ge().createElement(Wr.A,{className:"jgis-stac-datepicker-icon"}),a?(0,cr.GP)(a,"PPP"):ge().createElement("span",null,"Start Date"))),ge().createElement(go,null,ge().createElement(eo,{mode:"single",selected:a,onSelect:r,autoFocus:!0}))),ge().createElement(po,null,ge().createElement(uo,{asChild:!0},ge().createElement($r,{style:{padding:"0 0.5rem"},variant:"outline"},ge().createElement(Wr.A,{className:"jgis-stac-datepicker-icon"}),o?(0,cr.GP)(o,"PPP"):ge().createElement("span",null,"End Date"))),ge().createElement(go,null,ge().createElement(eo,{mode:"single",selected:o,onSelect:n,autoFocus:!0})))),ge().createElement(ko,{section:"Collection",data:Gr,selectedCollections:Array.from(e.collections),selectedData:Array.from(e.datasets),handleCheckedChange:(a,r)=>{const o=new Set(e.collections),n=new Set(e.datasets);if(n.has(a)){if(n.delete(a),0===Array.from(n).filter(e=>Gr.some(t=>t.collection===r&&t.datasets.includes(e))).length){o.delete(r);const a=new Set(e.platforms),n=new Set(e.products);Rr[r]&&Rr[r].forEach(e=>{a.delete(e)}),Dr.filter(e=>e.collections.includes(r)).forEach(e=>{n.delete(e.productCode)}),t.platforms(a),t.products(n)}}else n.add(a),o.add(r);t.collections(o),t.datasets(n)}}),ge().createElement(ko,{section:"Platform",data:Rr,selectedCollections:Array.from(e.collections),selectedData:Array.from(e.platforms),handleCheckedChange:e=>l("platforms",e)}),ge().createElement(ko,{section:"Data / Product",data:Dr,selectedCollections:Array.from(e.collections),selectedData:Array.from(e.products),handleCheckedChange:e=>l("products",e)}))};var To=a(71457),Po=function(e,t){var a={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(a[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(a[r[o]]=e[r[o]])}return a};const Go=e=>{var t=Po(e,[]);return ue.createElement("nav",Object.assign({role:"navigation","aria-label":"pagination",className:"jgis-pagination"},t))};Go.displayName="Pagination";const Ro=ue.forwardRef((e,t)=>{var a=Po(e,[]);return ue.createElement("ul",Object.assign({ref:t,className:"jgis-pagination-content"},a))});Ro.displayName="PaginationContent";const Do=ue.forwardRef((e,t)=>{var a=Po(e,[]);return ue.createElement("li",Object.assign({ref:t,className:""},a))});Do.displayName="PaginationItem";const Fo=e=>{var{isActive:t,size:a="icon"}=e,r=Po(e,["isActive","size"]);return ue.createElement($r,Object.assign({"aria-current":t?"page":void 0,"data-variant":t?"outline":"ghost","data-size":a,className:"jgis-pagination-link"},r))};Fo.displayName="PaginationLink";const Bo=e=>{var t=Po(e,[]);return ue.createElement(Fo,Object.assign({"aria-label":"Go to previous page",className:"jgis-pagination-previous"},t),ue.createElement(Jr.A,{style:{height:"1rem",width:"1rem",flexShrink:0}}),ue.createElement("span",null,"Prev"))};Bo.displayName="PaginationPrevious";const zo=e=>{var t=Po(e,[]);return ue.createElement(Fo,Object.assign({"aria-label":"Go to next page",className:"jgis-pagination-next"},t),ue.createElement("span",null,"Next"),ue.createElement(qr.A,{style:{height:"1rem",width:"1rem",flexShrink:0}}))};zo.displayName="PaginationNext";const Vo=e=>{var t=Po(e,[]);return ue.createElement("span",Object.assign({"aria-hidden":!0,className:"jgis-pagination-ellipsis"},t),ue.createElement(To.A,{style:{height:"1rem",width:"1rem"}}),ue.createElement("span",{className:"sr-only"},"More pages"))};Vo.displayName="PaginationEllipsis";const Wo=({results:e,currentPage:t,totalPages:a,handlePaginationClick:r,handleResultClick:o,formatResult:n,isLoading:s})=>ge().createElement("div",{className:"jgis-stac-browser-filters-panel"},ge().createElement(Go,null,ge().createElement(Ro,{style:{marginTop:0}},ge().createElement(Do,null,ge().createElement(Bo,{onClick:()=>r(Math.max(1,t-1)),disabled:1===t})),a<=0?ge().createElement("div",null,"No Matches Found"):function(e,t){return t<=5?Array.from({length:t},(e,t)=>t+1):e<=3?[1,2,3,"ellipsis",t]:e>=t-2?[t-4,t-3,t-2,t-1,t]:[e-2,e-1,e,"ellipsis",t]}(t,a).map(e=>"ellipsis"===e?ge().createElement(Do,{key:"ellipsis"},ge().createElement(Vo,null)):ge().createElement(Do,{key:e},ge().createElement(Fo,{isActive:e===t,onClick:()=>r(e)},e))),ge().createElement(Do,null,ge().createElement(zo,{onClick:()=>r(Math.min(a,t+1)),disabled:t===a})))),ge().createElement("div",{className:"jgis-stac-browser-results-list"},s?ge().createElement("div",null,"Loading results..."):e.map(e=>ge().createElement($r,{key:e.id,className:"jgis-stac-browser-results-item",onClick:()=>o(e.id)},n(e))))),Uo=({model:e})=>{const{filterState:t,filterSetters:a,results:r,startTime:o,setStartTime:n,endTime:s,setEndTime:i,totalPages:l,currentPage:c,totalResults:d,handlePaginationClick:m,handleResultClick:p,formatResult:u,isLoading:g,useWorldBBox:y,setUseWorldBBox:h}=Vr({model:e});return e?ge().createElement(Lr,{defaultValue:"filters",className:"jgis-stac-browser-main"},ge().createElement(kr,{style:{borderRadius:0}},ge().createElement(Ar,{className:"jGIS-layer-browser-category",value:"filters"},"Filters"),ge().createElement(Ar,{className:"jGIS-layer-browser-category",value:"results"},`Results (${d})`)),ge().createElement(Tr,{value:"filters"},ge().createElement(Ao,{filterState:t,filterSetters:a,startTime:o,setStartTime:n,endTime:s,setEndTime:i,useWorldBBox:y,setUseWorldBBox:h})),ge().createElement(Tr,{value:"results"},ge().createElement(Wo,{results:r,currentPage:c,totalPages:l,handlePaginationClick:m,handleResultClick:p,formatResult:u,isLoading:g}))):null},$o=({controlPanelModel:e})=>{const[t,a]=(0,ue.useState)(null==e?void 0:e.jGISModel);return(0,ue.useEffect)(()=>{const t=(e,t)=>{a(null==t?void 0:t.model)};return e.documentChanged.connect(t),()=>{e.documentChanged.disconnect(t)}},[e]),ge().createElement(Uo,{model:t})};class Ho extends ua.Panel{constructor(e){super(),this._model=e.model,this.id="jupytergis::stacPanel",this.title.caption="STAC",this.title.label="STAC",this.addClass("jgis-scrollable"),this.addWidget(u.ReactWidget.create(ge().createElement($o,{controlPanelModel:this._model})))}}const Jo=Ho;var qo=a(45250);const Zo=({index:e,features:t,filterRows:a,setFilterRows:r,deleteRow:o})=>{const[n,s]=(0,ue.useState)({}),[i,l]=(0,ue.useState)(a[e].feature||Object.keys(t)[0]);(0,ue.useEffect)(()=>{l(a[e].feature)},[a]),(0,ue.useEffect)(()=>{const e=Object.keys(t).sort(),a={};for(const r of e){const e=Array.from(t[r]).sort();a[r]=e}s(a)},[t]),(0,ue.useEffect)(()=>{var t;const a=document.getElementById(`jp-gis-value-select-${e}`);if(!a)return;const r=null===(t=a.options[a.selectedIndex])||void 0===t?void 0:t.value;r&&c(r)},[i]);const c=t=>{const o=[...a],s="number"==typeof n[i][0];o[e].value=s?+t:t,r(o)};return ge().createElement("div",{className:"jp-gis-filter-row"},ge().createElement("select",{id:`jp-gis-feature-select-${e}`,className:"jp-mod-styled rjsf",onChange:t=>{const o=[...a];o[e].feature=t.target.value,l(t.target.value),r(o)}},Object.keys(n).map((t,r)=>ge().createElement("option",{key:r,value:t,selected:t===a[e].feature},t))),ge().createElement("select",{id:`jp-gis-operator-select-${e}`,className:"jp-mod-styled rjsf",onChange:t=>{const o=[...a];o[e].operator=t.target.value,r(o)}},["==","!=",">","<",">=","<="].map((t,r)=>ge().createElement("option",{key:r,value:t,selected:t===a[e].operator},t))),ge().createElement("select",{id:`jp-gis-value-select-${e}`,className:"jp-mod-styled rjsf",onChange:e=>{c(e.target.value)}},n[i]&&[...n[i]].map((t,r)=>ge().createElement("option",{key:r,value:t,selected:t===a[e].value},t))),ge().createElement(u.Button,{id:`jp-gis-remove-filter-${e}`,className:"jp-Button jp-gis-filter-icon"},ge().createElement(nt.g,{icon:ot.yLS,onClick:o})))};class Qo extends ua.Panel{constructor(e){super(),this._model=e.model,this._tracker=e.tracker,this.id="jupytergis::layerTree",this.addWidget(u.ReactWidget.create(ge().createElement(Yo,{model:this._model,tracker:this._tracker})))}}const Yo=e=>{var t;const a=(0,ue.useRef)({}),[r,o]=(0,ue.useState)(""),[n,s]=(0,ue.useState)("all"),[i,l]=(0,ue.useState)(""),[c,d]=(0,ue.useState)(!1),[m,p]=(0,ue.useState)([]),[g,y]=(0,ue.useState)({}),[h,v]=(0,ue.useState)(e.model.jGISModel);null===(t=e.model)||void 0===t||t.documentChanged.connect((e,t)=>{v(null==t?void 0:t.model)}),(0,ue.useEffect)(()=>{const t=()=>{var t;(null===(t=e.tracker.currentWidget)||void 0===t?void 0:t.id)!==r&&(e.tracker.currentWidget&&o(e.tracker.currentWidget.id),y({}),p([]),s("all"),l(""))};return e.tracker.currentChanged.connect(t),()=>{e.tracker.currentChanged.disconnect(t)}},[]),(0,ue.useEffect)(()=>{var e,t,a,r;(null===(t=null===(e=null==h?void 0:h.localState)||void 0===e?void 0:e.selected)||void 0===t?void 0:t.value)&&l(Object.keys(null===(r=null===(a=null==h?void 0:h.localState)||void 0===a?void 0:a.selected)||void 0===r?void 0:r.value)[0])},[r]),(0,ue.useEffect)(()=>{const t=()=>{var e,t,a,r;if(!(null===(t=null===(e=null==h?void 0:h.localState)||void 0===e?void 0:e.selected)||void 0===t?void 0:t.value))return;const o=Object.keys(null===(r=null===(a=null==h?void 0:h.localState)||void 0===a?void 0:a.selected)||void 0===r?void 0:r.value)[0];l(o)},a=(t,a)=>{var o,n,s,i,l;if((null===(o=e.tracker.currentWidget)||void 0===o?void 0:o.id)===r&&a.has("zoom")){if(!(null===(s=null===(n=null==h?void 0:h.localState)||void 0===n?void 0:n.selected)||void 0===s?void 0:s.value))return;const e=Object.keys(null===(l=null===(i=null==h?void 0:h.localState)||void 0===i?void 0:i.selected)||void 0===l?void 0:l.value)[0];b(e)}};return null==h||h.clientStateChanged.connect(t),null==h||h.sharedOptionsChanged.connect(a),()=>{null==h||h.clientStateChanged.disconnect(t),null==h||h.sharedOptionsChanged.disconnect(a)}},[h]),(0,ue.useEffect)(()=>{var e,t,a,r;y({});const o=null==h?void 0:h.getLayer(i);o&&"VectorLayer"===o.type?(d(!0),p(null!==(t=null===(e=o.filters)||void 0===e?void 0:e.appliedFilters)&&void 0!==t?t:[]),s(null!==(r=null===(a=o.filters)||void 0===a?void 0:a.logicalOp)&&void 0!==r?r:"all"),f()):d(!1)},[i]),(0,ue.useEffect)(()=>{a.current=g},[g]);const f=async e=>{var t,r;if(!h)return;const o=h.getLayer(null!=e?e:i),n=h.getSource(null===(t=null==o?void 0:o.parameters)||void 0===t?void 0:t.source);if(!n||!o)return;const s=(0,qo.cloneDeep)(a.current);switch(o.filters&&o.filters.appliedFilters.map(e=>{e.feature in s||(s[e.feature]=new Set),s[e.feature].add(e.value)}),n.type){case"GeoJSONSource":{const e=await ze({filepath:null===(r=n.parameters)||void 0===r?void 0:r.path,type:"GeoJSONSource",model:h});null==e||e.features.forEach(e=>{e.properties&&S(e.properties,s)});break}default:console.warn("Source type not supported")}y(s)},b=je(f,500),S=(e,t)=>{Object.entries(e).forEach(([e,a])=>{e in t||(t[e]=new Set),t[e].add(a)})},w=(e,t)=>{const a=null==h?void 0:h.getLayer(i);a&&(a.filters={logicalOp:null!=t?t:n,appliedFilters:e},null==h||h.sharedModel.updateLayer(i,a))};return ge().createElement(ge().Fragment,null,c&&ge().createElement("div",{className:"jp-gis-filter-main"},ge().createElement("div",{id:"filter-container",className:"jp-gis-filter-select-container"},ge().createElement("select",{className:"jp-mod-styled rjsf jp-gis-logical-select",onChange:e=>{s(e.target.value),w(m,e.target.value)}},ge().createElement("option",{key:"all",value:"all",selected:"all"===n},"All"),ge().createElement("option",{key:"any",value:"any",selected:"any"===n},"Any")),m.map((e,t)=>ge().createElement(Zo,{key:t,index:t,features:g,filterRows:m,setFilterRows:p,deleteRow:()=>(e=>{const t=[...m];t.splice(e,1),w(t),p(t)})(t)}))),ge().createElement("div",{className:"jp-gis-filter-button-container"},ge().createElement("div",{style:{justifyContent:"flex-start"}},ge().createElement(u.Button,{className:"jp-Dialog-button jp-mod-accept jp-mod-styled",onClick:()=>{p([...m,{feature:Object.keys(g)[0],operator:"==",value:[...Object.values(g)[0]][0]}])}},"Add"),ge().createElement(u.Button,{className:"jp-Dialog-button jp-mod-reject jp-mod-styled",onClick:()=>{w([]),p([])}},"Clear")),ge().createElement(u.Button,{className:"jp-Dialog-button jp-mod-accept jp-mod-styled",onClick:()=>{w(m)}},"Submit"))))},Ko="jp-gis-layerGroupHeader",Xo="jp-gis-layerItem",en="jp-gis-layerIcon",tn="jp-gis-layerText data-jgis-keybinding";class an extends ua.Panel{constructor(e){super(),this._onDragOver=e=>{e.stopPropagation(),e.preventDefault(),this.node.appendChild(ln.dragIndicator),ln.dragInfo.dragOverElement=null,ln.dragInfo.dragOverPosition=null},this._onDrop=e=>{if(ln.dragIndicator.style.display="none",void 0===this._model)return;const{jGISModel:t}=this._model,{draggedElement:a,dragOverElement:r,dragOverPosition:o}=ln.dragInfo;if("error"===r)return;if(!a)return;const n=a.dataset.id;if(!n)return;if(null===r)return void(null==t||t.moveItemsToGroup([n],"",0));const s=r.dataset.id;s&&(r.classList.contains(Ko)&&"below"===o?null==t||t.moveItemsToGroup([n],s):null==t||t.moveItemRelatedTo(n,s,"above"===o))},this._model=e.model,this._onSelect=e.onSelect,this._state=e.state,this.id="jupytergis::layerTree",this.addClass("jp-gis-layerPanel"),this.addWidget(u.ReactWidget.create(ge().createElement(rn,{model:this._model,onSelect:this._onSelect,state:this._state}))),this.node.ondragover=this._onDragOver,this.node.ondrop=this._onDrop}}const rn=e=>{var t,a;const[r,o]=(0,ue.useState)(null===(t=e.model)||void 0===t?void 0:t.jGISModel),[n,s]=(0,ue.useState)((null==r?void 0:r.getLayerTree())||[]),i=({type:t,item:a,nodeId:r,event:o})=>{e.onSelect({type:t,item:a,nodeId:r,event:o})};return(0,ue.useEffect)(()=>{const e=()=>{s((null==r?void 0:r.getLayerTree())||[])};return null==r||r.sharedModel.layersChanged.connect(e),null==r||r.sharedModel.layerTreeChanged.connect(e),e(),()=>{null==r||r.sharedModel.layersChanged.disconnect(e),null==r||r.sharedModel.layerTreeChanged.disconnect(e)}},[r]),null===(a=e.model)||void 0===a||a.documentChanged.connect((e,t)=>{var a;o(null==t?void 0:t.model),s((null===(a=null==t?void 0:t.model)||void 0===a?void 0:a.getLayerTree())||[])}),ge().createElement("div",{id:"jp-gis-layer-tree"},n.slice().reverse().map(t=>"string"==typeof t?ge().createElement(sn,{key:t,gisModel:r,layerId:t,onClick:i}):ge().createElement(on,{key:t.name,gisModel:r,group:t,onClick:i,state:e.state})))},on=e=>{var t,a;const{group:r,gisModel:o,onClick:n,state:s}=e;if(void 0===r)return ge().createElement(ge().Fragment,null);const[i,l]=(0,ue.useState)(""),[c,m]=(0,ue.useState)(!1),p=null!==(t=null==r?void 0:r.name)&&void 0!==t?t:"Undefined group",g=null!==(a=null==r?void 0:r.layers)&&void 0!==a?a:[],[y,h]=(0,ue.useState)(nn(r.name,o));return(0,ue.useEffect)(()=>{l(d.DOMUtils.createDomID()),(async()=>{var e;const t=await s.fetch(`jupytergis:${r.name}`);m(null!==(e=null==t?void 0:t.expanded)&&void 0!==e&&e)})()},[]),(0,ue.useEffect)(()=>{const e=()=>{h(nn(r.name,o))};return null==o||o.clientStateChanged.connect(e),()=>{null==o||o.clientStateChanged.disconnect(e)}},[o]),ge().createElement("div",{className:`${Xo} jp-gis-layerGroup`,draggable:!0,onDragStart:ln.onDragStart,onDragEnd:ln.onDragEnd,"data-id":p},ge().createElement("div",{onClick:async()=>{s.save(`jupytergis:${r.name}`,{expanded:!c}),m(!c)},onContextMenu:e=>{var t;const a=null===(t=e.currentTarget.children.namedItem(i))||void 0===t?void 0:t.id;n({type:"group",item:p,nodeId:a,event:e})},className:`${Ko}${y?" jp-mod-selected":""}`,onDragOver:ln.onDragOver,"data-id":p},ge().createElement(u.LabIcon.resolveReact,{icon:u.caretDownIcon,className:"jp-gis-layerGroupCollapser"+(c?" jp-mod-expanded":""),tag:"span"}),ge().createElement("span",{id:i,className:tn,tabIndex:-2},p)),c&&ge().createElement("div",null,g.slice().reverse().map(t=>"string"==typeof t?ge().createElement(sn,{key:t,gisModel:o,layerId:t,onClick:n}):ge().createElement(on,{key:t.name,gisModel:o,group:t,onClick:n,state:e.state}))))};function nn(e,t){var a,r,o,n;return(null===(r=null===(a=null==t?void 0:t.localState)||void 0===a?void 0:a.selected)||void 0===r?void 0:r.value)&&Object.keys(null===(n=null===(o=null==t?void 0:t.localState)||void 0===o?void 0:o.selected)||void 0===n?void 0:n.value).includes(e)||!1}const sn=e=>{const{layerId:t,gisModel:a,onClick:r}=e,o=null==a?void 0:a.getLayer(t);if(void 0===o)return ge().createElement(ge().Fragment,null);const[n,s]=(0,ue.useState)(""),[i,l]=(0,ue.useState)(nn(t,a)),c=o.name;(0,ue.useEffect)(()=>{s(d.DOMUtils.createDomID())},[]),(0,ue.useEffect)(()=>{const e=(e,r)=>{l(nn(t,a))};return null==a||a.clientStateChanged.connect(e),()=>{null==a||a.clientStateChanged.disconnect(e)}},[a]);const m=e=>{var a;const o=null===(a=e.currentTarget.children.namedItem(n))||void 0===a?void 0:a.id;r({type:"layer",item:t,nodeId:o,event:e})};return ge().createElement("div",{className:`${Xo} jp-gis-layer${i?" jp-mod-selected":""}`,draggable:!0,onDragStart:ln.onDragStart,onDragOver:ln.onDragOver,onDragEnd:ln.onDragEnd,"data-id":t},ge().createElement("div",{className:"jp-gis-layerTitle",onClick:m,onContextMenu:m},ge().createElement(u.Button,{title:o.visible?"Hide layer":"Show layer",onClick:()=>{var e;o.visible=!o.visible,null===(e=null==a?void 0:a.sharedModel)||void 0===e||e.updateLayer(t,o)},minimal:!0},ge().createElement(u.LabIcon.resolveReact,{icon:o.visible?Q:Y,className:`${en}${o.visible?"":" jp-gis-mod-hidden"}`,tag:"span"})),me.has(o.type)&&ge().createElement(u.LabIcon.resolveReact,Object.assign({},me.get(o.type),{className:en})),ge().createElement("span",{id:n,className:tn,tabIndex:-2},c)))};var ln;!function(e){e.dragIndicator=document.createElement("div"),e.dragIndicator.id="jp-drag-indicator",e.dragInfo={draggedElement:null,dragOverElement:null,dragOverPosition:null},e.onDragStart=t=>{e.dragInfo.draggedElement=t.target},e.onDragOver=t=>{var a;t.preventDefault(),t.stopPropagation();const{clientY:r}=t;let o=t.target.closest(`.${Ko}, .${Xo}`);if(!o)return;if(null===(a=e.dragInfo.draggedElement)||void 0===a?void 0:a.contains(o))return void(e.dragInfo.dragOverElement="error");e.dragInfo.dragOverElement=o;const n=o.getBoundingClientRect();r-n.top<n.bottom-r?(e.dragInfo.dragOverPosition="above",o.classList.contains(Ko)&&(o=o.parentNode),o.insertAdjacentElement("beforebegin",e.dragIndicator),e.dragIndicator.style.display="block"):(e.dragInfo.dragOverPosition="below",o.insertAdjacentElement("afterend",e.dragIndicator),e.dragIndicator.style.display="block")},e.onDragEnd=()=>{e.dragIndicator.style.display="none",e.dragInfo.draggedElement=null,e.dragInfo.dragOverElement=null,e.dragInfo.dragOverPosition=null}}(ln||(ln={}));class cn extends u.SidePanel{constructor(e){super(),this._onSelect=({type:e,item:t,nodeId:a,event:r})=>{var o,n;if(!this._model||!a)return;const{jGISModel:s}=this._model,i=null===(n=null===(o=null==s?void 0:s.localState)||void 0===o?void 0:o.selected)||void 0===n?void 0:n.value,l=document.getElementById(a);if(l)if(l.tabIndex=0,l.focus(),i){if(r.ctrlKey||2!==r.button||!(t in i))if(r.ctrlKey){if(a){if(!Object.values(i).some(t=>t.type===e))return void this.resetSelected(e,a,t);const r=Object.assign(Object.assign({},i),{[t]:{type:e,selectedNodeId:a}});this._lastSelectedNodeId=a,s.syncSelected(r,this.id),this._notifyCommands()}}else this.resetSelected(e,a,t)}else this.resetSelected(e,a,t)},this.addClass("jGIS-sidepanel-widget"),this.addClass("data-jgis-keybinding"),this.node.tabIndex=0,this._model=e.model,this._state=e.state,this._commands=e.commands;const t=new _r;this.header.addWidget(t);const a=new an({model:this._model,state:this._state,onSelect:this._onSelect});a.title.caption="Layer tree",a.title.label="Layers",this.addWidget(a);const r=new Jo({model:this._model,tracker:e.tracker});r.title.caption="STAC",r.title.label="STAC",this.addWidget(r);const o=new Qo({model:this._model,tracker:e.tracker});o.title.caption="Filters",o.title.label="Filters",this.addWidget(o),this._handleFileChange=()=>{var e;t.title.label=(null===(e=this._currentModel)||void 0===e?void 0:e.filePath)||"-"},e.tracker.currentChanged.connect((e,a)=>{a?(this._currentModel&&this._currentModel.pathChanged.disconnect(this._handleFileChange),this._currentModel=a.model,t.title.label=a.model.filePath,this._currentModel.pathChanged.connect(this._handleFileChange)):(t.title.label="-",this._currentModel=null)})}dispose(){super.dispose()}onAfterAttach(e){super.onAfterAttach(e),this.node.addEventListener("mouseup",this)}onBeforeDetach(e){super.onBeforeDetach(e),this.node.removeEventListener("mouseup",this)}handleEvent(e){"mouseup"===e.type&&this._mouseUpEvent(e)}_mouseUpEvent(e){const t=document.getElementById(this._lastSelectedNodeId);t&&t.focus()}resetSelected(e,t,a){var r,o;const n={};a&&t&&(n[a]={type:e,selectedNodeId:t},this._lastSelectedNodeId=t),null===(o=null===(r=this._model)||void 0===r?void 0:r.jGISModel)||void 0===o||o.syncSelected(n,this.id),this._notifyCommands()}_notifyCommands(){this._commands.notifyCommandChanged(ce.identify),this._commands.notifyCommandChanged(ce.temporalController)}}class dn{constructor(e){this._tracker=e.tracker,this._documentChanged=this._tracker.currentChanged}get documentChanged(){return this._documentChanged}get filePath(){var e;return null===(e=this._tracker.currentWidget)||void 0===e?void 0:e.model.filePath}get jGISModel(){var e;return null===(e=this._tracker.currentWidget)||void 0===e?void 0:e.model}get sharedModel(){var e;return null===(e=this._tracker.currentWidget)||void 0===e?void 0:e.model.sharedModel}disconnect(e){this._tracker.forEach(t=>{t.model.sharedLayersChanged.disconnect(e),t.model.sharedSourcesChanged.disconnect(e),t.model.sharedOptionsChanged.disconnect(e)}),this._tracker.forEach(t=>t.model.themeChanged.disconnect(e)),this._tracker.forEach(t=>t.model.clientStateChanged.disconnect(e))}}class mn extends ue.Component{constructor(){super(...arguments),this.sourceFormChangedSignal=new o.Signal(this)}async syncObjectProperties(e,t){e&&this.props.model.sharedModel.updateObjectParameters(e,t)}render(){let e,t,a,r,o,n,s;if(this.props.layer){const r=this.props.model.getLayer(this.props.layer);if(!r)return;if(t=wt((null==r?void 0:r.type)||"RasterLayer"),a=Le((null==r?void 0:r.parameters)||{}),e=Le(this.props.formSchemaRegistry.getSchemas().get(r.type)),!e)return void console.error(`Cannot find schema for ${r.type}`)}if(this.props.source){if(s=this.props.model.getSource(this.props.source),!s)return;if(o=Et((null==s?void 0:s.type)||"RasterSource"),n=Le((null==s?void 0:s.parameters)||{}),r=Le(this.props.formSchemaRegistry.getSchemas().get(s.type)),!r)return void console.error(`Cannot find schema for ${s.type}`)}return ue.createElement("div",null,this.props.layer&&t&&ue.createElement("div",null,ue.createElement("h3",{style:{paddingLeft:"5px"}},"Layer Properties"),ue.createElement(t,{formContext:"update",sourceType:(null==s?void 0:s.type)||"RasterSource",model:this.props.model,filePath:this.props.model.filePath,schema:e,sourceData:a,syncData:e=>{this.syncObjectProperties(this.props.layer,e)}})),this.props.source&&o&&ue.createElement("div",null,ue.createElement("h3",{style:{paddingLeft:"5px"}},"Source Properties"),ue.createElement(o,{formContext:"update",model:this.props.model,filePath:this.props.model.filePath,schema:r,sourceData:n,syncData:e=>{this.syncObjectProperties(this.props.source,e)},formChangedSignal:this.sourceFormChangedSignal,sourceType:(null==s?void 0:s.type)||"RasterSource"})))}}class pn extends u.PanelWithToolbar{constructor(e){super(e),this.title.label="Objects Properties";const t=d.ReactWidget.create(ue.createElement(un,{cpModel:e.controlPanelModel,tracker:e.tracker,formSchemaRegistry:e.formSchemaRegistry}));this.addWidget(t),this.addClass("jGIS-sidebar-propertiespanel")}}class un extends ue.Component{constructor(e){var t,a,r;super(e),this._sharedJGISModelChanged=()=>{this.forceUpdate()},this._onClientSharedStateChanged=(e,t)=>{var a,r;let o;const n=this.state.clientId,s=n?t.get(n):null;if(s&&(null===(a=s.selected)||void 0===a?void 0:a.emitter)&&s.selected.emitter!==this.state.id&&(null===(r=s.selected)||void 0===r?void 0:r.value)&&(o=s),o){const e=o.selected.value,t=Object.keys(e||{});if(void 0===e||1!==t.length)return void this.setState(e=>Object.assign(Object.assign({},e),{selectedObject:void 0}));const a=t[0];a!==this.state.selectedObject&&this.setState(e=>Object.assign(Object.assign({},e),{selectedObject:a}))}},this.state={model:null===(t=e.tracker.currentWidget)||void 0===t?void 0:t.model,clientId:null,id:(0,hr.A)()},null===(a=this.props.cpModel.jGISModel)||void 0===a||a.sharedLayersChanged.connect(this._sharedJGISModelChanged),null===(r=this.props.cpModel.jGISModel)||void 0===r||r.sharedSourcesChanged.connect(this._sharedJGISModelChanged),this.props.cpModel.documentChanged.connect((e,t)=>{t?(this.props.cpModel.disconnect(this._sharedJGISModelChanged),this.props.cpModel.disconnect(this._onClientSharedStateChanged),t.model.sharedLayersChanged.connect(this._sharedJGISModelChanged),t.model.sharedSourcesChanged.connect(this._sharedJGISModelChanged),t.model.clientStateChanged.connect(this._onClientSharedStateChanged),this.setState(e=>Object.assign(Object.assign({},e),{model:t.model,filePath:t.model.filePath,clientId:t.model.getClientId()}))):this.setState({model:void 0,selectedObject:void 0})})}render(){var e;const t=this.state.selectedObject;if(!t||!this.state.model)return ue.createElement("div",null);let a,r;const o=this.state.model.getLayer(t);return o?(a=t,r=null===(e=o.parameters)||void 0===e?void 0:e.source):this.state.model.getSource(t)&&(r=t),ue.createElement(mn,{layer:a,source:r,formSchemaRegistry:this.props.formSchemaRegistry,model:this.state.model})}}class gn extends ue.Component{constructor(e){super(e);const t=()=>{this.forceUpdate()};this._annotationModel=e.annotationModel,this._rightPanelModel=e.rightPanelModel,this._annotationModel.modelChanged.connect(async()=>{var a,r,o,n;null===(r=null===(a=this._annotationModel)||void 0===a?void 0:a.model)||void 0===r||r.sharedMetadataChanged.disconnect(t),this._annotationModel=e.annotationModel,null===(n=null===(o=this._annotationModel)||void 0===o?void 0:o.model)||void 0===n||n.sharedMetadataChanged.connect(t),this.forceUpdate()})}render(){var e;const t=null===(e=this._annotationModel)||void 0===e?void 0:e.getAnnotationIds();if(!t||!this._annotationModel)return ge().createElement("div",null);const a=t.map(e=>ge().createElement("div",null,ge().createElement(ar,{rightPanelModel:this._rightPanelModel,annotationModel:this._annotationModel,itemId:e}),ge().createElement("hr",{className:"jGIS-Annotations-Separator"})));return ge().createElement("div",{className:"jgis-scrollable"},a)}}class yn extends u.PanelWithToolbar{constructor(e){super({}),this.title.label="Annotations",this.addClass("jgis-scrollable"),this._annotationModel=e.annotationModel,this._rightPanelModel=e.rightPanelModel,this._widget=u.ReactWidget.create(ge().createElement(gn,{rightPanelModel:this._rightPanelModel,annotationModel:this._annotationModel})),this.addWidget(this._widget)}}class hn extends ua.Panel{constructor(e){super(),this._model=e.model,this._tracker=e.tracker,this.id="jupytergis::identifyPanel",this.title.caption="Identify",this.title.label="Identify",this.addClass("jgis-scrollable"),this.addWidget(u.ReactWidget.create(ge().createElement(vn,{controlPanelModel:this._model,tracker:this._tracker})))}}const vn=({controlPanelModel:e,tracker:t})=>{var a;const[r,o]=(0,ue.useState)(""),[n,s]=(0,ue.useState)(),[i,l]=(0,ue.useState)({0:!0}),[c,d]=(0,ue.useState)(null),[m,p]=(0,ue.useState)(null==e?void 0:e.jGISModel),g=(0,ue.useRef)(n);return null==e||e.documentChanged.connect((e,t)=>{p(null==t?void 0:t.model)}),(0,ue.useEffect)(()=>{const e=()=>{var e;(null===(e=t.currentWidget)||void 0===e?void 0:e.id)!==r&&(t.currentWidget&&o(t.currentWidget.id),s({}),l({0:!0}))};return t.currentChanged.connect(e),()=>{t.currentChanged.disconnect(e)}},[]),(0,ue.useEffect)(()=>{g.current=n},[n]),(0,ue.useEffect)(()=>{const e=(e,t)=>{var a,r,o,n,i,l;const p=null===(a=null==m?void 0:m.localState)||void 0===a?void 0:a.remoteUser;if(p){const e=t.get(p);return void(e&&((null===(r=e.user)||void 0===r?void 0:r.username)!==(null==c?void 0:c.username)&&d(e.user),s(null!==(n=null===(o=e.identifiedFeatures)||void 0===o?void 0:o.value)&&void 0!==n?n:{})))}const u=null===(l=null===(i=null==m?void 0:m.localState)||void 0===i?void 0:i.identifiedFeatures)||void 0===l?void 0:l.value;u?m.isIdentifying&&g.current!==u&&s(u):s({})};return null==m||m.clientStateChanged.connect(e),()=>{null==m||m.clientStateChanged.disconnect(e)}},[m]),ge().createElement("div",{className:"jgis-identify-wrapper",style:{border:(null===(a=null==m?void 0:m.localState)||void 0===a?void 0:a.remoteUser)?`solid 3px ${null==c?void 0:c.color}`:"unset"}},n&&Object.values(n).map((e,t)=>ge().createElement("div",{key:t,className:"jgis-identify-grid-item"},ge().createElement("div",{className:"jgis-identify-grid-item-header"},ge().createElement("span",{onClick:()=>{return e=t,void l(t=>Object.assign(Object.assign({},t),{[e]:!t[e]}));var e}},ge().createElement(u.LabIcon.resolveReact,{icon:u.caretDownIcon,className:"jp-gis-layerGroupCollapser"+(i[t]?" jp-mod-expanded":""),tag:"span"}),ge().createElement("span",null,"Feature ",t+1)),(()=>{const t=!e.geometry&&!e._geometry&&"number"!=typeof(null==e?void 0:e.x)&&"number"!=typeof(null==e?void 0:e.y);return ge().createElement("button",{className:"jgis-highlight-button",onClick:t=>{t.stopPropagation(),(e=>{var t,a;null===(t=null==m?void 0:m.highlightFeatureSignal)||void 0===t||t.emit(e);const r=e.geometry||e._geometry;null===(a=null==m?void 0:m.flyToGeometrySignal)||void 0===a||a.emit(r)})(e)},title:t?"Highlight not available for raster features":"Highlight feature on map",disabled:t},ge().createElement(nt.g,{icon:ot.$UM}))})()),i[t]&&ge().createElement(ge().Fragment,null,Object.entries(e).filter(([e,t])=>"object"!=typeof t||null===t).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>ge().createElement("div",{key:e,className:"jgis-identify-grid-body"},ge().createElement("strong",null,e,":"),"string"==typeof t&&/<\/?[a-z][\s\S]*>/i.test(t)?ge().createElement("span",{dangerouslySetInnerHTML:{__html:`${t}`}}):ge().createElement("span",null,String(t))))))))},fn=hn;class bn extends u.SidePanel{constructor(e){super(),this.addClass("jGIS-sidepanel-widget"),this.addClass("data-jgis-keybinding"),this.node.tabIndex=0,this._model=e.model,this._annotationModel=e.annotationModel;const t=new _r;this.header.addWidget(t);const a=new pn({controlPanelModel:this._model,formSchemaRegistry:e.formSchemaRegistry,tracker:e.tracker});this.addWidget(a);const r=new yn({rightPanelModel:this._model,annotationModel:this._annotationModel});this.addWidget(r);const o=new fn({model:this._model,tracker:e.tracker});o.title.caption="Identify",o.title.label="Identify",o.addClass("jgis-scrollable"),this.addWidget(o),this._handleFileChange=()=>{var e;t.title.label=(null===(e=this._currentModel)||void 0===e?void 0:e.filePath)||"-"},this._model.documentChanged.connect((e,r)=>{r?r.model.sharedModel.editable?(t.title.label=r.model.filePath,a.show()):(t.title.label=`${r.model.filePath} - Read Only`,a.hide()):t.title.label="-"}),e.tracker.currentChanged.connect(async(a,r)=>{var o;r?(this._currentModel&&this._currentModel.pathChanged.disconnect(this._handleFileChange),this._currentModel=r.model,t.title.label=this._currentModel.filePath,this._currentModel.pathChanged.connect(this._handleFileChange),this._annotationModel.model=(null===(o=e.tracker.currentWidget)||void 0===o?void 0:o.model)||void 0):(t.title.label="-",this._currentModel=null,this._annotationModel.model=void 0)})}dispose(){super.dispose()}}var Sn=a(24565);const wn="jGIS-Toolbar-Separator",En="jGIS-Toolbar-GroupName";class Cn extends ua.Widget{constructor(){super(),this.addClass(wn)}}class jn extends u.ReactiveToolbar{constructor(e){if(super(),this._model=e.model,this.addClass("jGIS-toolbar-widget"),e.commands){const t=new d.CommandToolbarButton({id:ce.undo,label:"",icon:u.undoIcon,commands:e.commands});this.addItem("undo",t),t.node.dataset.testid="undo-button";const a=new d.CommandToolbarButton({id:ce.redo,label:"",icon:u.redoIcon,commands:e.commands});this.addItem("redo",a),this.addItem("separator0",new Cn);const r=new d.CommandToolbarButton({id:ce.toggleConsole,commands:e.commands,label:"",icon:ne});this.addItem("Toggle console",r),r.node.dataset.testid="toggle-console-button",this.addItem("separator1",new Cn);const o=new d.CommandToolbarButton({id:ce.openLayerBrowser,label:"",commands:e.commands});this.addItem("openLayerBrowser",o),o.node.dataset.testid="open-layers-browser";const n=new u.MenuSvg({commands:e.commands});n.title.label="Add Layer",n.addItem({type:"submenu",submenu:jr(e.commands)}),n.addItem({type:"submenu",submenu:Cr(e.commands)});const s=new u.ToolbarButton({icon:u.addIcon,noFocusOnClick:!1,onClick:()=>{if(!e.commands)return;const t=s.node.getBoundingClientRect();n.open(t.x,t.bottom)}});s.node.dataset.testid="new-entry-button",this.addItem("New",s),this.addItem("separator2",new Cn);const i=new d.CommandToolbarButton({id:ce.getGeolocation,commands:e.commands,label:""});this.addItem("Geolocation",i),i.node.dataset.testid="geolocation-button";const l=new d.CommandToolbarButton({id:ce.identify,label:"",commands:e.commands});this.addItem("identify",l),l.node.dataset.testid="identify-button";const c=new d.CommandToolbarButton({id:ce.temporalController,label:"",commands:e.commands});this.addItem("temporalController",c),c.node.dataset.testid="temporal-controller-button",this.addItem("spacer",u.ReactiveToolbar.createSpacerItem());const m=function(e){let t;return a=>{const{user:r}=a,o=r.userId===t?"selected":"";return ue.createElement(Sn.C,{user:r,onClick:()=>{r.userId===t?(t=void 0,e.setUserToFollow(void 0)):(t=r.userId,e.setUserToFollow(r.userId))},className:o})}}(this._model);this.addItem("users",u.ReactWidget.create(ue.createElement(Sn.S,{model:this._model,iconRenderer:m})))}}}},17298:(e,t,a)=>{"use strict";e.exports=a.p+"a86d626c9ed2e222d190.png"},23472:(e,t,a)=>{"use strict";e.exports=a.p+"026680ab0cd1523edc87.png"},24328:(e,t,a)=>{"use strict";e.exports=a.p+"a3c609f5bff95a7a53be.png"},25482:(e,t,a)=>{"use strict";e.exports=a.p+"5f32ad48aefe00e51312.png"},25851:(e,t,a)=>{"use strict";e.exports=a.p+"ab309078b494f850430a.png"},28074:(e,t,a)=>{"use strict";e.exports=a.p+"3ae0bf244442de7efc35.png"},30052:(e,t,a)=>{"use strict";e.exports=a.p+"b36717fbb06f21d53b01.png"},40575:(e,t,a)=>{"use strict";e.exports=a.p+"14b98240613d5256c621.png"},42041:(e,t,a)=>{"use strict";e.exports=a.p+"6e4f6b4d0dfca3bd4450.png"},42255:(e,t,a)=>{"use strict";e.exports=a.p+"32c7a73662cceb5bb1d7.png"},42280:(e,t,a)=>{"use strict";e.exports=a.p+"42cbddf5e883673bc4e2.png"},43896:(e,t,a)=>{"use strict";e.exports=a.p+"527ef171d5df15dc7da5.png"},44664:(e,t,a)=>{"use strict";e.exports=a.p+"0c6a0352b82839119f95.png"},47103:(e,t,a)=>{"use strict";e.exports=a.p+"971a42d174dd17b9451a.png"},47418:(e,t,a)=>{"use strict";e.exports=a.p+"7b225dc2d37cd3582156.png"},48225:(e,t,a)=>{"use strict";e.exports=a.p+"2ab791b60c4058e664f8.png"},48348:(e,t,a)=>{"use strict";e.exports=a.p+"064f37cecb8130ad66e8.png"},49771:(e,t,a)=>{"use strict";e.exports=a.p+"1d440270da19a2f22fee.png"},51655:(e,t,a)=>{"use strict";e.exports=a.p+"88b2ae0d29edb684eae5.png"},52343:(e,t,a)=>{"use strict";e.exports=a.p+"415edc3fa381260cf31e.png"},52898:(e,t,a)=>{"use strict";e.exports=a.p+"13c485bb93f5567f02fd.png"},53457:(e,t,a)=>{"use strict";e.exports=a.p+"5bb02252f243f8c7494f.png"},53488:(e,t,a)=>{"use strict";e.exports=a.p+"be92bcf7bb99753b4b3d.png"},53695:(e,t,a)=>{"use strict";e.exports=a.p+"c2ffa011d7f52a0ddf45.png"},56209:(e,t,a)=>{"use strict";e.exports=a.p+"843ab141e62516b9df5c.png"},57807:(e,t,a)=>{"use strict";e.exports=a.p+"b15e3989b7b90b5a8d9d.png"},58313:(e,t,a)=>{"use strict";e.exports=a.p+"363ca7c5f78deb6fd033.png"},61003:(e,t,a)=>{"use strict";e.exports=a.p+"350eec4ce9ae4bc10bca.wasm"},62778:(e,t,a)=>{"use strict";e.exports=a.p+"08da2741746ddab81d04.png"},64739:(e,t,a)=>{"use strict";e.exports=a.p+"2b24b6a745c11511f055.png"},65104:(e,t,a)=>{"use strict";e.exports=a.p+"71d436fb44627b6bfbd7.png"},67731:(e,t,a)=>{"use strict";e.exports=a.p+"a9e286b0c0264a9fc737.png"},68170:(e,t,a)=>{"use strict";e.exports=a.p+"a9e286b0c0264a9fc737.png"},73184:(e,t,a)=>{"use strict";e.exports=a.p+"f2617180c6907263a7ff.png"},74864:(e,t,a)=>{var r={"./Esri-NatGeoWorldMap.png":53695,"./Esri-OceanBasemap.png":24328,"./Esri-WorldGrayCanvas.png":53488,"./Esri-WorldImagery.png":56209,"./Esri-WorldPhysical.png":47418,"./Esri-WorldShadedRelief.png":2143,"./Esri-WorldStreetMap.png":23472,"./Esri-WorldTerrain.png":86382,"./Esri-WorldTopoMap.png":40575,"./Gaode-Normal.png":89279,"./Gaode-Satellite.png":49771,"./NASAGIBS-ASTER_GDEM_Greyscale_Shaded_Relief.png":42255,"./NASAGIBS-ModisAquaBands721CR.png":84035,"./NASAGIBS-ModisAquaTrueColorCR.png":7024,"./NASAGIBS-ModisTerraAOD.png":90806,"./NASAGIBS-ModisTerraBands367CR.png":48225,"./NASAGIBS-ModisTerraBands721CR.png":64739,"./NASAGIBS-ModisTerraChlorophyll.png":80990,"./NASAGIBS-ModisTerraLSTDay.png":53457,"./NASAGIBS-ModisTerraSnowCover.png":43896,"./NASAGIBS-ModisTerraTrueColorCR.png":65104,"./NASAGIBS-ViirsEarthAtNight2012.png":58313,"./NASAGIBS-ViirsTrueColorCR.png":47103,"./OPNVKarte.png":95209,"./OpenRailwayMap.png":42280,"./OpenStreetMap-BZH.png":51655,"./OpenStreetMap-CAT.png":57807,"./OpenStreetMap-CH.png":17298,"./OpenStreetMap-DE.png":99610,"./OpenStreetMap-France.png":52898,"./OpenStreetMap-HOT.png":68170,"./OpenStreetMap-Mapnik.png":67731,"./OpenTopoMap.png":95995,"./Strava-All.png":25482,"./Strava-Ride.png":93421,"./Strava-Run.png":30052,"./Strava-Water.png":85198,"./Strava-Winter.png":73184,"./USGS-USImagery.png":48348,"./USGS-USImageryTopo.png":44664,"./USGS-USTopo.png":95750,"./WaymarkedTrails-cycling.png":25851,"./WaymarkedTrails-hiking.png":28074,"./WaymarkedTrails-mtb.png":52343,"./WaymarkedTrails-riding.png":42041,"./WaymarkedTrails-skating.png":76491,"./WaymarkedTrails-slopes.png":1718,"./custom_raster.png":62778};function o(e){var t=n(e);return a(t)}function n(e){if(!a.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=n,e.exports=o,o.id=74864},76491:(e,t,a)=>{"use strict";e.exports=a.p+"bb2b310570da7a3587e9.png"},80432:()=>{},80990:(e,t,a)=>{"use strict";e.exports=a.p+"5d181edc3c046e1454a1.png"},84035:(e,t,a)=>{"use strict";e.exports=a.p+"2f02309ea499725612ea.png"},85198:(e,t,a)=>{"use strict";e.exports=a.p+"2218dfba22fc2b08e948.png"},85787:()=>{},86382:(e,t,a)=>{"use strict";e.exports=a.p+"1b97ea0f2b3af717cffa.png"},89279:(e,t,a)=>{"use strict";e.exports=a.p+"d83457b1b925c1718f6d.png"},90806:(e,t,a)=>{"use strict";e.exports=a.p+"8814e17f6b110e8f3e42.png"},93421:(e,t,a)=>{"use strict";e.exports=a.p+"2d676bc0a01c2cd2fccb.png"},93907:()=>{},95209:(e,t,a)=>{"use strict";e.exports=a.p+"ba4b6e82fe5a816c40a5.png"},95750:(e,t,a)=>{"use strict";e.exports=a.p+"3d48be10ffea86eb15de.png"},95995:(e,t,a)=>{"use strict";e.exports=a.p+"062a9554f6b4caac9713.png"},99610:(e,t,a)=>{"use strict";e.exports=a.p+"fe99a6dbf5a71d308989.png"},99875:(e,t,a)=>{"use strict";e.exports=a.p+"e473e1e9f20af114bbb4.data"}}]);
|