jupytergis-core 0.11.1__py3-none-any.whl → 0.12.0__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.
Files changed (171) hide show
  1. jupytergis_core/_version.py +1 -1
  2. jupytergis_core/jgis_ydoc.py +2 -2
  3. jupytergis_core/schema/interfaces/__init__.py +1 -1
  4. jupytergis_core/schema/interfaces/export/__init__.py +1 -1
  5. jupytergis_core/schema/interfaces/export/exportGeoJson.py +1 -1
  6. jupytergis_core/schema/interfaces/export/exportGeoTiff.py +1 -1
  7. jupytergis_core/schema/interfaces/geojson.py +148 -158
  8. jupytergis_core/schema/interfaces/processing/__init__.py +1 -1
  9. jupytergis_core/schema/interfaces/processing/boundingBoxes.py +1 -1
  10. jupytergis_core/schema/interfaces/processing/buffer.py +2 -4
  11. jupytergis_core/schema/interfaces/processing/centroids.py +1 -1
  12. jupytergis_core/schema/interfaces/processing/concaveHull.py +3 -5
  13. jupytergis_core/schema/interfaces/processing/convexHull.py +1 -1
  14. jupytergis_core/schema/interfaces/processing/dissolve.py +2 -4
  15. jupytergis_core/schema/interfaces/project/__init__.py +1 -1
  16. jupytergis_core/schema/interfaces/project/jgis.py +52 -37
  17. jupytergis_core/schema/interfaces/project/layers/__init__.py +1 -1
  18. jupytergis_core/schema/interfaces/project/layers/heatmapLayer.py +5 -7
  19. jupytergis_core/schema/interfaces/project/layers/hillshadeLayer.py +2 -4
  20. jupytergis_core/schema/interfaces/project/layers/imageLayer.py +2 -4
  21. jupytergis_core/schema/interfaces/project/layers/rasterLayer.py +2 -4
  22. jupytergis_core/schema/interfaces/project/layers/stacLayer.py +4 -4
  23. jupytergis_core/schema/interfaces/project/layers/storySegmentLayer.py +6 -7
  24. jupytergis_core/schema/interfaces/project/layers/vectorLayer.py +10 -10
  25. jupytergis_core/schema/interfaces/project/layers/vectorTileLayer.py +4 -4
  26. jupytergis_core/schema/interfaces/project/layers/webGlLayer.py +15 -20
  27. jupytergis_core/schema/interfaces/project/sources/__init__.py +1 -1
  28. jupytergis_core/schema/interfaces/project/sources/geoJsonSource.py +128 -130
  29. jupytergis_core/schema/interfaces/project/sources/geoParquetSource.py +3 -5
  30. jupytergis_core/schema/interfaces/project/sources/geoTiffSource.py +8 -10
  31. jupytergis_core/schema/interfaces/project/sources/imageSource.py +6 -8
  32. jupytergis_core/schema/interfaces/project/sources/markerSource.py +3 -5
  33. jupytergis_core/schema/interfaces/project/sources/rasterDemSource.py +4 -6
  34. jupytergis_core/schema/interfaces/project/sources/rasterSource.py +7 -11
  35. jupytergis_core/schema/interfaces/project/sources/shapefileSource.py +5 -7
  36. jupytergis_core/schema/interfaces/project/sources/vectorTileSource.py +4 -6
  37. jupytergis_core/schema/interfaces/project/sources/videoSource.py +6 -8
  38. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/package.json +4 -4
  39. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/schemas/@jupytergis/jupytergis-core/jupytergis-settings.json +31 -10
  40. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/schemas/@jupytergis/jupytergis-core/package.json.orig +3 -3
  41. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/065129e010fdefaafa25.png +0 -0
  42. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2379815eeec82d6c99ea.png +0 -0
  43. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2712f8c296ab9baf6f95.png +0 -0
  44. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2ce872a547257acecfc0.png +0 -0
  45. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/31825d2bcac05cb5da9d.png +0 -0
  46. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/37d4b69117807e9b00aa.png +0 -0
  47. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/3d8187d1d88463b1e5a4.png +0 -0
  48. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/3e1228ffb595af0d2370.png +0 -0
  49. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/3e2ea21a9bb5a7e94089.png +0 -0
  50. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/4009081011843c862262.png +0 -0
  51. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/4047728d7b293f61b9cb.png +0 -0
  52. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/411398ae9caa98f2654c.png +0 -0
  53. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/4149ae06530a3720c67c.png +0 -0
  54. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/41988965b5360232f050.png +0 -0
  55. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/42dbacd3d3ab27cd8fe8.png +0 -0
  56. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/479bc18b0a8360cb8636.png +0 -0
  57. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/4fe432c83b6c81740920.png +0 -0
  58. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/50bba166a2d109528596.png +0 -0
  59. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/51a0b3e4b1e624fee4ba.png +0 -0
  60. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/5d1354f82aa569d79f74.png +0 -0
  61. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/636.5db7bab2b13005003479.js +1 -0
  62. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/653ed59ca041d4cc76e2.png +0 -0
  63. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/665c89733efcaf4fc65e.png +0 -0
  64. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/68d25e6e7a77e8c2d338.png +0 -0
  65. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/6924d02711b6d64db874.png +0 -0
  66. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/6fe1cef97ac720fa885b.png +0 -0
  67. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/70b4a14ce5f5d672efe6.png +0 -0
  68. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/7560dc6afba85f6f6f89.png +0 -0
  69. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/7bf725567d92f65f336b.png +0 -0
  70. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/7c642fa9321457120a1a.png +0 -0
  71. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/7d280f5402f60127d3f6.png +0 -0
  72. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/8163009c3e5f7a859780.png +0 -0
  73. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/88.b1f127f75359848bf070.js +8 -0
  74. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/8a5a2c52ba6a89f6a5f6.png +0 -0
  75. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/8dae460d4f1e0e3a7654.png +0 -0
  76. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/990.234d39c902e1904325da.js +1 -0
  77. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/991.584a281a964b99295de6.js +1 -0
  78. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/9a3df8b4c541ac57e098.png +0 -0
  79. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/9c849b1508bb89c03a11.png +0 -0
  80. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/9db57adb3a3a31589172.png +0 -0
  81. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/9f1da5291e47bddd92e9.png +0 -0
  82. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/9f9de11ffb72743ae1a2.png +0 -0
  83. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/a056ee838eeec1dda300.png +0 -0
  84. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/a7900cf7c6d73e79243e.png +0 -0
  85. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/b01b169f2989f7f21b02.png +0 -0
  86. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/b22d124764bac097d636.png +0 -0
  87. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/b42192867b229c38c90d.png +0 -0
  88. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/bae6aa2086d6d2fe9a2a.png +0 -0
  89. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/c10e06cadd2e55076d02.png +0 -0
  90. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/c11b80da428b44d5e609.png +0 -0
  91. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/e608545baf17c34894d9.png +0 -0
  92. jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/ef21602db378f0391253.png +0 -0
  93. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/remoteEntry.1181005e666f657a70d5.js → jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/remoteEntry.e6587383eef3f964e9e7.js +1 -1
  94. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/third-party-licenses.json +27 -9
  95. {jupytergis_core-0.11.1.dist-info → jupytergis_core-0.12.0.dist-info}/METADATA +1 -1
  96. jupytergis_core-0.12.0.dist-info/RECORD +122 -0
  97. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/026680ab0cd1523edc87.png +0 -0
  98. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/02ff7d503bbd90b21fc4.png +0 -0
  99. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/062a9554f6b4caac9713.png +0 -0
  100. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/064f37cecb8130ad66e8.png +0 -0
  101. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/08da2741746ddab81d04.png +0 -0
  102. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/0c6a0352b82839119f95.png +0 -0
  103. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/13c485bb93f5567f02fd.png +0 -0
  104. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/1474207a6b3ca1001e78.png +0 -0
  105. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/14b98240613d5256c621.png +0 -0
  106. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/1b97ea0f2b3af717cffa.png +0 -0
  107. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/1d440270da19a2f22fee.png +0 -0
  108. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/1ed164e010f3c0306d15.png +0 -0
  109. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2218dfba22fc2b08e948.png +0 -0
  110. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/294.5fc61ad02851426049c0.js +0 -8
  111. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2ab791b60c4058e664f8.png +0 -0
  112. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2b24b6a745c11511f055.png +0 -0
  113. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2d676bc0a01c2cd2fccb.png +0 -0
  114. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/2f02309ea499725612ea.png +0 -0
  115. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/32c7a73662cceb5bb1d7.png +0 -0
  116. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/363ca7c5f78deb6fd033.png +0 -0
  117. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/3ae0bf244442de7efc35.png +0 -0
  118. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/3d48be10ffea86eb15de.png +0 -0
  119. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/415edc3fa381260cf31e.png +0 -0
  120. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/42cbddf5e883673bc4e2.png +0 -0
  121. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/527ef171d5df15dc7da5.png +0 -0
  122. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/5bb02252f243f8c7494f.png +0 -0
  123. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/5d181edc3c046e1454a1.png +0 -0
  124. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/5f32ad48aefe00e51312.png +0 -0
  125. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/6e4f6b4d0dfca3bd4450.png +0 -0
  126. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/71d436fb44627b6bfbd7.png +0 -0
  127. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/7b225dc2d37cd3582156.png +0 -0
  128. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/843ab141e62516b9df5c.png +0 -0
  129. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/8814e17f6b110e8f3e42.png +0 -0
  130. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/88b2ae0d29edb684eae5.png +0 -0
  131. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/971a42d174dd17b9451a.png +0 -0
  132. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/99.43df5aa4900a464c8c36.js +0 -1
  133. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/990.1fe67e669bf8d31bc0ac.js +0 -1
  134. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/991.ce3807f873148de479ba.js +0 -1
  135. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/a3c609f5bff95a7a53be.png +0 -0
  136. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/a86d626c9ed2e222d190.png +0 -0
  137. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/a9e286b0c0264a9fc737.png +0 -0
  138. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/ab309078b494f850430a.png +0 -0
  139. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/b15e3989b7b90b5a8d9d.png +0 -0
  140. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/b36717fbb06f21d53b01.png +0 -0
  141. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/ba4b6e82fe5a816c40a5.png +0 -0
  142. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/bb2b310570da7a3587e9.png +0 -0
  143. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/be92bcf7bb99753b4b3d.png +0 -0
  144. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/c2ffa011d7f52a0ddf45.png +0 -0
  145. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/d83457b1b925c1718f6d.png +0 -0
  146. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/f2617180c6907263a7ff.png +0 -0
  147. jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/fe99a6dbf5a71d308989.png +0 -0
  148. jupytergis_core-0.11.1.dist-info/RECORD +0 -121
  149. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/etc/jupyter/jupyter_server_config.d/jupytergis_core.json +0 -0
  150. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/154.81bef68e01fc6079be77.js +0 -0
  151. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/211.dda210219d9ad86e1e84.js +0 -0
  152. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/234.ea90a64ba283577248b6.js +0 -0
  153. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/27.1f6ad99534ea85406d43.js +0 -0
  154. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/27.1f6ad99534ea85406d43.js.LICENSE.txt +0 -0
  155. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/350eec4ce9ae4bc10bca.wasm +0 -0
  156. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/376.28855d079a25782d0411.js +0 -0
  157. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/407.abbc95102c4ad7922738.js +0 -0
  158. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/432.4ba21c44d69bd7bb9b58.js +0 -0
  159. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/472.a64789520e563e648e15.js +0 -0
  160. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/542.01890bd351511c4a49a8.js +0 -0
  161. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/552.a4ebd32e9302cb6c9dce.js +0 -0
  162. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/555.f67c28bf17db0a6ce7f9.js +0 -0
  163. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/618.f39bbf3c06f1a62a664a.js +0 -0
  164. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/803.2b7be4ca03f1b0985a34.js +0 -0
  165. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/803.2b7be4ca03f1b0985a34.js.LICENSE.txt +0 -0
  166. /jupytergis_core-0.11.1.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/294.5fc61ad02851426049c0.js.LICENSE.txt → /jupytergis_core-0.12.0.data/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/88.b1f127f75359848bf070.js.LICENSE.txt +0 -0
  167. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/e473e1e9f20af114bbb4.data +0 -0
  168. {jupytergis_core-0.11.1.data → jupytergis_core-0.12.0.data}/data/share/jupyter/labextensions/@jupytergis/jupytergis-core/static/style.js +0 -0
  169. {jupytergis_core-0.11.1.dist-info → jupytergis_core-0.12.0.dist-info}/WHEEL +0 -0
  170. {jupytergis_core-0.11.1.dist-info → jupytergis_core-0.12.0.dist-info}/entry_points.txt +0 -0
  171. {jupytergis_core-0.11.1.dist-info → jupytergis_core-0.12.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_jupytergis_jupytergis_core=self.webpackChunk_jupytergis_jupytergis_core||[]).push([[636],{1718(e,t,a){"use strict";e.exports=a.p+"4047728d7b293f61b9cb.png"},2143(e,t,a){"use strict";e.exports=a.p+"2712f8c296ab9baf6f95.png"},7024(e,t,a){"use strict";e.exports=a.p+"4009081011843c862262.png"},17298(e,t,a){"use strict";e.exports=a.p+"68d25e6e7a77e8c2d338.png"},23472(e,t,a){"use strict";e.exports=a.p+"065129e010fdefaafa25.png"},24328(e,t,a){"use strict";e.exports=a.p+"42dbacd3d3ab27cd8fe8.png"},25482(e,t,a){"use strict";e.exports=a.p+"411398ae9caa98f2654c.png"},25851(e,t,a){"use strict";e.exports=a.p+"2ce872a547257acecfc0.png"},28074(e,t,a){"use strict";e.exports=a.p+"51a0b3e4b1e624fee4ba.png"},29982(e,t,a){"use strict";e.exports=a.p+"9db57adb3a3a31589172.png"},30052(e,t,a){"use strict";e.exports=a.p+"31825d2bcac05cb5da9d.png"},40575(e,t,a){"use strict";e.exports=a.p+"9a3df8b4c541ac57e098.png"},42041(e,t,a){"use strict";e.exports=a.p+"3e2ea21a9bb5a7e94089.png"},42255(e,t,a){"use strict";e.exports=a.p+"a7900cf7c6d73e79243e.png"},42280(e,t,a){"use strict";e.exports=a.p+"b01b169f2989f7f21b02.png"},43896(e,t,a){"use strict";e.exports=a.p+"653ed59ca041d4cc76e2.png"},44664(e,t,a){"use strict";e.exports=a.p+"9f9de11ffb72743ae1a2.png"},47103(e,t,a){"use strict";e.exports=a.p+"9f1da5291e47bddd92e9.png"},47418(e,t,a){"use strict";e.exports=a.p+"37d4b69117807e9b00aa.png"},48225(e,t,a){"use strict";e.exports=a.p+"41988965b5360232f050.png"},48310(e){"use strict";e.exports=JSON.parse('{"type":"object","title":"IJGISContent","required":["layers","sources"],"additionalProperties":false,"properties":{"schemaVersion":{"type":"string","default":"0.5.0"},"layers":{"$ref":"#/definitions/jGISLayers"},"sources":{"$ref":"#/definitions/jGISSources"},"layerTree":{"$ref":"#/definitions/jGISLayerTree"},"options":{"$ref":"#/definitions/jGISOptions"},"stories":{"$ref":"#/definitions/jGISStoryMap"},"metadata":{"type":"object","patternProperties":{"^.*$":{"type":"string"}},"additionalProperties":false}},"definitions":{"layerType":{"type":"string","enum":["RasterLayer","VectorLayer","VectorTileLayer","HillshadeLayer","WebGlLayer","ImageLayer","HeatmapLayer","StacLayer","StorySegmentLayer"]},"sourceType":{"type":"string","enum":["RasterSource","VectorTileSource","GeoJSONSource","RasterDemSource","VideoSource","ImageSource","ShapefileSource","GeoTiffSource","GeoParquetSource","MarkerSource"]},"jGISLayer":{"title":"IJGISLayer","type":"object","additionalProperties":false,"required":["name","type","visible"],"properties":{"name":{"type":"string"},"type":{"$ref":"#/definitions/layerType"},"visible":{"type":"boolean","default":true},"parameters":{"type":"object"},"filters":{"$ref":"#/definitions/jGISFilter"}}},"jGISSource":{"title":"IJGISSource","type":"object","additionalProperties":false,"required":["name","type"],"properties":{"name":{"type":"string"},"type":{"$ref":"#/definitions/sourceType"},"parameters":{"type":"object"}}},"jGISLayerGroup":{"title":"IJGISLayerGroup","type":"object","additionalProperties":false,"required":["name","layers"],"properties":{"name":{"type":"string"},"layers":{"type":"array","default":[],"items":{"$ref":"#/definitions/jGISLayerItem"}},"visible":{"type":"boolean","default":true},"parameters":{"type":"object"}}},"jGISLayerItem":{"title":"IJGISLayerItem","oneOf":[{"type":"string"},{"$ref":"#/definitions/jGISLayerGroup"}]},"jGISStoryMap":{"title":"IJGISStoryMap","type":"object","additionalProperties":true,"properties":{"title":{"type":"string","title":"Title","description":"The title of the story map"},"storyType":{"type":"string","title":"Story Type","enum":["guided","unguided"],"description":"The type of story map"},"storySegments":{"type":"array","default":[],"description":"Array of story segments for the story map","items":{"type":"string"}},"presentaionBgColor":{"type":"string","title":"Presentation Background Color","description":"The background color of the story map"},"presentaionTextColor":{"type":"string","title":"Presentation Text Color","description":"The text color of the story map"}}},"jGISLayers":{"title":"IJGISLayers","type":"object","default":{},"additionalProperties":{"$ref":"#/definitions/jGISLayer"}},"jGISSources":{"title":"IJGISSources","type":"object","default":{},"additionalProperties":{"$ref":"#/definitions/jGISSource"}},"jGISLayerTree":{"title":"IJGISLayerTree","type":"array","default":[],"items":{"$ref":"#/definitions/jGISLayerItem"}},"jGISOptions":{"title":"IJGISOptions","type":"object","default":{},"required":[],"additionalProperties":false,"properties":{"latitude":{"type":"number","default":0},"longitude":{"type":"number","default":0},"zoom":{"type":"number","default":0},"bearing":{"type":"number","default":0},"pitch":{"type":"number","default":0},"extent":{"type":"array","default":null,"items":{"type":"number"}},"projection":{"type":"string","default":"EPSG:3857"},"useExtent":{"type":"boolean","default":false},"storyMapPresentationMode":{"type":"boolean","title":"Whether presentation mode is active","default":false}}},"jGISFilterItem":{"title":"IJGISFilterItem","type":"object","default":{},"required":["operator","feature","value"],"additionalProperties":false,"properties":{"operator":{"type":"string","enum":["==","!=",">","<",">=","<=","between"],"default":"=="},"feature":{"type":"string","default":""},"value":{"type":["string","number"]},"betweenMin":{"type":["number"]},"betweenMax":{"type":["number"]}}},"jGISFilter":{"title":"IJGISFilter","type":"object","required":["logicalOp","appliedFilters"],"additionalProperties":false,"properties":{"logicalOp":{"type":"string","default":"all"},"appliedFilters":{"type":"array","default":[],"items":{"$ref":"#/definitions/jGISFilterItem"}}}}}}')},48348(e,t,a){"use strict";e.exports=a.p+"b22d124764bac097d636.png"},48818(e,t,a){"use strict";a.r(t),a.d(t,{AnnotationModel:()=>n,BaseForm:()=>mt,CommandIDs:()=>ve,ControlPanelHeader:()=>zs,CreationFormWrapper:()=>Vt,GlobalStateDbManager:()=>ba,JupyterGISDocumentWidget:()=>ks,JupyterGISMainViewPanel:()=>Ts,JupyterGISOutputWidget:()=>Ps,JupyterGISPanel:()=>As,LayerCreationFormDialog:()=>Wt,LeftPanel:()=>is,MIME_TYPES:()=>et,MainView:()=>Is,MainViewModel:()=>Ls,ObjectPropertiesReact:()=>ps,RightPanel:()=>Ns,Separator:()=>qs,TOOLBAR_GROUPNAME_CLASS:()=>$s,TOOLBAR_SEPARATOR_CLASS:()=>Us,ToolbarWidget:()=>Hs,addCommands:()=>Rs,base64ToBlob:()=>Xe,bookOpenIcon:()=>ce,clockIcon:()=>pe,createDefaultLayerRegistry:()=>Ve,createHeader:()=>Vs,debounce:()=>Pe,deepCopy:()=>ze,downloadFile:()=>it,fetchWithProxies:()=>Qe,geoJSONIcon:()=>se,geolocationIcon:()=>ge,getCSSVariableColor:()=>De,getColorCodeFeatureAttributes:()=>st,getElementFromProperty:()=>Ge,getFeatureAttributes:()=>ot,getFromIndexedDB:()=>He,getGeoJSONDataFromLayerSource:()=>lt,getLayerTileInfo:()=>We,getMimeType:()=>tt,getNumericFeatureAttributes:()=>nt,icons:()=>Se,infoIcon:()=>me,isJupyterLite:()=>Je,isLightTheme:()=>Be,loadFile:()=>Ye,loadGeoTiff:()=>Ze,logoIcon:()=>ee,logoMiniAlternativeIcon:()=>ae,logoMiniIcon:()=>te,logoMiniIconQGZ:()=>le,markerIcon:()=>fe,moundIcon:()=>ie,nearest:()=>Re,nonVisibilityIcon:()=>ne,objectEntries:()=>ct,openDatabase:()=>$e,parseColor:()=>Ue,rasterIcon:()=>re,rasterSubMenu:()=>Bs,requestAPI:()=>Fe,saveToIndexedDB:()=>qe,targetWithCenterIcon:()=>he,targetWithoutCenterIcon:()=>ye,terminalToolbarIcon:()=>ue,throttle:()=>Ae,vectorSquareIcon:()=>de,vectorSubMenu:()=>Fs,visibilityIcon:()=>oe});var r={};a.r(r),a.d(r,{addAnnotation:()=>z,addMarker:()=>h,addStorySegment:()=>K,createNew:()=>d,downloadGeoJSON:()=>W,executeConsole:()=>F,getGeolocation:()=>f,identify:()=>g,invokeCompleter:()=>R,moveLayerToNewGroup:()=>k,moveLayersToGroup:()=>L,newGeoJSONEntry:()=>E,newGeoParquetEntry:()=>_,newGeoTiffEntry:()=>O,newHillshadeEntry:()=>j,newImageEntry:()=>C,newRasterEntry:()=>b,newShapefileEntry:()=>w,newVectorTileEntry:()=>S,newVideoEntry:()=>x,openLayerBrowser:()=>v,redo:()=>m,removeConsole:()=>D,removeGroup:()=>T,removeLayer:()=>N,removeSource:()=>A,renameGroup:()=>I,renameLayer:()=>M,renameSource:()=>P,selectCompleter:()=>B,showAnnotationsTab:()=>Z,showFiltersTab:()=>J,showIdentifyPanelTab:()=>Y,showLayersTab:()=>q,showObjectPropertiesTab:()=>Q,showStacBrowserTab:()=>H,symbology:()=>u,temporalController:()=>y,toggleConsole:()=>G,toggleLeftPanel:()=>U,toggleRightPanel:()=>$,toggleStoryPresentationMode:()=>X,undo:()=>p,zoomToLayer:()=>V});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=a(85285),i=a(34097),l=a(22391),c=a(33391);const d="jupytergis:create-new-jGIS-file",m="jupytergis:redo",p="jupytergis:undo",u="jupytergis:symbology",g="jupytergis:identify",y="jupytergis:temporalController",h="jupytergis:addMarker",f="jupytergis:getGeolocation",v="jupytergis:openLayerBrowser",b="jupytergis:newRasterEntry",S="jupytergis:newVectorTileEntry",w="jupytergis:newShapefileEntry",E="jupytergis:newGeoJSONEntry",j="jupytergis:newHillshadeEntry",C="jupytergis:newImageEntry",x="jupytergis:newVideoEntry",O="jupytergis:newGeoTiffEntry",_="jupytergis:newGeoParquetEntry",M="jupytergis:renameLayer",N="jupytergis:removeLayer",I="jupytergis:renameGroup",T="jupytergis:removeGroup",L="jupytergis:moveLayersToGroup",k="jupytergis:moveLayerToNewGroup",P="jupytergis:renameSource",A="jupytergis:removeSource",G="jupytergis:toggleConsole",R="jupytergis:invokeConsoleCompleter",D="jupytergis:removeConsole",F="jupytergis:executeConsole",B="jupytergis:selectConsoleCompleter",z="jupytergis:addAnnotation",V="jupytergis:zoomToLayer",W="jupytergis:downloadGeoJSON",U="jupytergis:toggleLeftPanel",$="jupytergis:toggleRightPanel",q="jupytergis:showLayersTab",H="jupytergis:showStacBrowserTab",J="jupytergis:showFiltersTab",Q="jupytergis:showObjectPropertiesTab",Z="jupytergis:showAnnotationsTab",Y="jupytergis:showIdentifyPanelTab",K="jupytergis:addStorySegment",X="jupytergis:toggleStoryPresentationMode",ee=new c.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'}),te=new c.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>\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'}),ae=new c.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'}),re=new c.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'}),oe=new c.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'}),ne=new c.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'}),se=new c.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'}),ie=new c.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'}),le=new c.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'}),ce=new c.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>\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'}),de=new c.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>\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'}),me=new c.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>\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'}),pe=new c.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>\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'}),ue=new c.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'}),ge=new c.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>\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'}),ye=new c.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'}),he=new c.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>\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'}),fe=new c.LabIcon({name:"jupytergis::marker",svgstr:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640">\n \x3c!--!Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--\x3e\n<path fill="{{COLOR}}" d="M128 252.6C128 148.4 214 64 320 64C426 64 512 148.4 512 252.6C512 371.9 391.8 514.9 341.6 569.4C329.8 582.2 310.1 582.2 298.3 569.4C248.1 514.9 127.9 371.9 127.9 252.6zM320 320C355.3 320 384 291.3 384 256C384 220.7 355.3 192 320 192C284.7 192 256 220.7 256 256C256 291.3 284.7 320 320 320z"/>\n\n</svg>\n'}),ve=Object.assign(Object.assign({},r),l.ProcessingCommandIDs),be={RasterSource:{icon:re},RasterDemSource:{icon:ie},VectorTileSource:{iconClass:"fa fa-vector-square"},GeoJSONSource:{icon:se},ImageSource:{iconClass:"fa fa-image"},VideoSource:{iconClass:"fa fa-video"},ShapefileSource:{iconClass:"fa fa-file"},RasterLayer:{icon:re},VectorLayer:{iconClass:"fa fa-vector-square"},HillshadeLayer:{icon:ie},ImageLayer:{iconClass:"fa fa-image"},VideoLayer:{iconClass:"fa fa-video"},[ve.redo]:{icon:c.redoIcon},[ve.undo]:{icon:c.undoIcon},[ve.openLayerBrowser]:{icon:ce},[ve.newRasterEntry]:{icon:re},[ve.newVectorTileEntry]:{icon:de},[ve.newGeoJSONEntry]:{icon:se},[ve.newHillshadeEntry]:{icon:ie},[ve.newImageEntry]:{iconClass:"fa fa-image"},[ve.newVideoEntry]:{iconClass:"fa fa-video"},[ve.newShapefileEntry]:{iconClass:"fa fa-file"},[ve.newGeoTiffEntry]:{iconClass:"fa fa-image"},[ve.newGeoParquetEntry]:{iconClass:"fa fa-file"},[ve.symbology]:{iconClass:"fa fa-brush"},[ve.identify]:{icon:me},[ve.temporalController]:{icon:pe},[ve.addMarker]:{icon:fe},[ve.addStorySegment]:{iconClass:"fa fa-link"},[ve.toggleStoryPresentationMode]:{iconClass:"fa fa-book jgis-icon-adjust"}},Se=new Map(Object.entries(be));var we=a(67262),Ee=a(93345),je=a.n(Ee),Ce=a(40180),xe=a(34556),Oe=a(24526),_e=a(51125),Me=a(80313),Ne=a(8996),Ie=a(38749),Te=a(38286),Le=a(71019);const ke=JSON.parse('{"OpenStreetMap":{"Mapnik":{"thumbnailPath":"rasterlayer_gallery/OpenStreetMap-Mapnik.png","url":"https://tile.openstreetmap.org/{z}/{x}/{y}.png","max_zoom":19,"html_attribution":"&copy; <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":"&copy; <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":"&copy; <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":"&copy; OpenStreetMap France | &copy; <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":"&copy; <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":"&copy; <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":"&copy; <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":"2026-01-11","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":"2026-01-11","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":"2026-01-11","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":"2026-01-11","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":"2026-01-11","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":"2026-01-11","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":"2026-01-11","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":"2026-01-11"},"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":"2026-01-11"},"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":"2026-01-11"},"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":"2026-01-11"},"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: &copy; <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors | Map style: &copy; <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: &copy; <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors | Map style: &copy; <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: &copy; <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors | Map style: &copy; <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: &copy; <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors | Map style: &copy; <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: &copy; <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors | Map style: &copy; <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: &copy; <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors | Map style: &copy; <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":"&copy; <a href=\\"http://www.gaode.com/\\">Gaode.com</a>","html_attribution":"&copy; <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":"&copy; <a href=\\"http://www.gaode.com/\\">Gaode.com</a>","html_attribution":"&copy; <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 &copy; <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: &copy; <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors, <a href=\\"http://viewfinderpanoramas.org\\">SRTM</a> | Map style: &copy; <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: &copy; <a href=\\"https://www.openstreetmap.org/copyright\\">OpenStreetMap</a> contributors | Map style: &copy; <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 &copy; Esri &mdash; 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 &copy; Esri &mdash; 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 &copy; Esri &mdash; 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 &copy; Esri &mdash; 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 &copy; Esri &mdash; 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 &copy; Esri &mdash; 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 &copy; Esri &mdash; 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 &copy; Esri &mdash; 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 &copy; Esri &mdash; Esri, DeLorme, NAVTEQ","attribution":"Tiles (C) Esri -- Esri, DeLorme, NAVTEQ","max_zoom":16,"name":"Esri.WorldGrayCanvas"}},"MacroStrat":{"CartoRaster":{"thumbnailPath":"rasterlayer_gallery/MacroStrat-CartoRaster.png","name":"MacroStrat.CartoRaster","url":"https://tiles.macrostrat.org/carto/{z}/{x}/{y}.png","attribution":"© Geologic data © <a href=https://macrostrat.org>Macrostrat raster layer</a> (CC‑BY 4.0)","max_zoom":18}}}'),Pe=(e,t=100)=>{let a;return(...r)=>{clearTimeout(a),a=window.setTimeout(()=>{e(...r)},t)}};function Ae(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 Ge(e,t){if(!e||!t)return;const a=document.querySelector(`[data-path="${e}"]`);return a?a.querySelector(`[id$=${t}]`):void 0}function Re(e,t){const a=Math.round(e);return Math.abs(a-e)<t?a:e}function De(e){const t=window.getComputedStyle(document.body).getPropertyValue(e)||"#ffffff";return Ne.Qh(t).formatHex()}async function Fe(e="",t={}){const a=_e.ServerConnection.makeSettings(),r=Oe.URLExt.join(a.baseUrl,e);let o;try{o=await _e.ServerConnection.makeRequest(r,t,a)}catch(e){throw new _e.ServerConnection.NetworkError(e)}let n=await o.text();if(n.length>0)try{n=JSON.parse(n)}catch(e){console.error("Jupyter API request failed -- not a JSON response body:",o)}if(!o.ok)throw new _e.ServerConnection.ResponseError(o,n.message||n);return n}function Be(){return"true"===document.body.getAttribute("data-jp-theme-light")}function ze(e){return e?JSON.parse(JSON.stringify(e)):e}function Ve(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(ke)){const a=ke[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 We(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 Me.cW(new Te.A(c))}function Ue(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 $e=()=>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)}),qe=async(e,t,a)=>{const r=await $e();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)})},He=async e=>{const t=await $e();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)})},Je=()=>void 0!==document.querySelectorAll("[data-jupyter-lite-root]")[0],Qe=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},Ze=async(e,t,a)=>{if(!(null==e?void 0:e.url))return null;const r=e.url,o=tt(r);if(!o||!o.startsWith("image/tiff"))throw new Error("Invalid file type. Expected GeoTIFF (image/tiff).");const n=await He(r);if(n)return{file:n.file,metadata:n.metadata,sourceUrl:r};let i=null;if(a)i=await Xe(a.content,o);else if(i=await Qe(r,t,async e=>e.blob()),!i)throw(0,s.showErrorMessage)("Network error",`Failed to fetch ${r}`),new Error(`Failed to fetch ${r}`);return{file:i,sourceUrl:r}},Ye=async e=>{const{filepath:t,type:r,model:o}=e;if(t.startsWith("http://")||t.startsWith("https://"))switch(r){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 Ke(await e.blob()),t}catch(e){throw console.error("Error validating remote image:",e),e}case"ShapefileSource":{const e=await He(t);if(e)return e.file;const a=await Qe(t,o,async e=>{const t=await e.arrayBuffer();return(0,Le.Ay)(t)});if(a)return await qe(t,a),a;throw(0,s.showErrorMessage)("Network error",`Failed to fetch ${t}`),new Error(`Failed to fetch ${t}`)}case"GeoJSONSource":{const e=await He(t);if(e)return e.file;const a=await Qe(t,o,async e=>e.json());if(a)return await qe(t,a),a;throw(0,s.showErrorMessage)("Network error",`Failed to fetch ${t}`),new Error(`Failed to fetch ${t}`)}case"GeoParquetSource":{const e=await He(t);if(e)return e.file;const{asyncBufferFromUrl:r,toGeoJson:o}=await a.e(211).then(a.bind(a,11211)),n=await r({url:t}),i=await o({file:n});if(i)return await qe(t,i),i;throw(0,s.showErrorMessage)("Network error",`Failed to fetch ${t}`),new Error(`Failed to fetch ${t}`)}default:throw new Error(`Unsupported URL handling for source type: ${r}`)}if(!o.contentsManager||!o.filePath)throw new Error("ContentsManager or filePath is not initialized.");const n=Oe.PathExt.resolve(Oe.PathExt.dirname(o.filePath),t);try{const e=await o.contentsManager.get(n,{content:!0});if(!e.content)throw new Error(`File at ${n} is empty or inaccessible.`);switch(r){case"GeoJSONSource":switch(e.format){case"base64":return JSON.parse(atob(e.content));case"text":return JSON.parse(e.content);case"json":return e.content}break;case"ShapefileSource":{let t;switch(e.format){case"base64":t=await at(e.content);break;case"text":t=await rt(e.content);break;default:throw new Error(`Invalid Shapefile format: ${e.format}.`)}return await(0,Le.Ay)(t)}case"ImageSource":if("base64"!==e.format)throw new Error("Invalid file format for image content.");{const a=tt(t);if(!a.startsWith("image/"))throw new Error(`Invalid image file. MIME type: ${a}`);try{return await Ke(await Xe(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 Ze({url:t},o,e);throw new Error("Invalid file format for tiff content.");case"GeoParquetSource":{let t;switch(e.format){case"base64":t=await at(e.content);break;case"text":t=await rt(e.content);break;default:throw new Error(`Invalid Geoparquet format: ${e.format}.`)}const{toGeoJson:r}=await a.e(211).then(a.bind(a,11211));return await r({file:t,compressors:Ie.Vm})}default:throw new Error(`Unsupported source type: ${r}`)}}catch(e){throw console.error(`Error reading file '${t}':`,e),e}},Ke=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)}),Xe=async(e,t)=>{const a=await fetch(`data:${t};base64,${e}`);return await a.blob()},et={".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"},tt=e=>{var t;const a=`.${(null===(t=e.split(".").pop())||void 0===t?void 0:t.toLowerCase())||""}`;return et[a]?et[a]:(console.warn(`Unknown file extension: ${a}, defaulting to 'application/octet-stream'.`),"application/octet-stream")},at=async e=>{const t=await fetch(`data:application/octet-stream;base64,${e}`);return await t.arrayBuffer()},rt=async e=>(new TextEncoder).encode(e).buffer,ot=(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},nt=e=>ot(e,(e,t)=>!("string"==typeof t&&isNaN(Number(t)))),st=e=>ot(e,(e,t)=>{const a=new RegExp("^#[0-9a-f]{6}$");return"string"==typeof t&&a.test(t)});function it(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 lt(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 Ye({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 ct=Object.entries;const dt=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 Ee.createElement(c.FormComponent,Object.assign({},a,{validator:xe.Ay,fields:Object.assign({},t)}))};class mt extends Ee.Component{constructor(e){super(e),this.currentFormData=ze(this.props.sourceData),this.state={schema:e.schema,extraErrors:{}}}componentDidUpdate(e,t){if(e.sourceData!==this.props.sourceData){this.currentFormData=ze(this.props.sourceData);const e=ze(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]=Ee.useState(e.formData.toFixed(1));return Ee.useEffect(()=>{a(e.formData.toFixed(1))},[e.formData]),Ee.createElement("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},Ee.createElement(Ce.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)}}}),Ee.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=Ee.createRef();return null===(e=this.props.ok)||void 0===e||e.connect(()=>{var e;null===(e=n.current)||void 0===e||e.click()}),Ee.createElement("div",{className:"jGIS-property-panel","data-path":null!==(t=this.props.filePath)&&void 0!==t?t:""},Ee.createElement("div",{className:"jGIS-property-outer",onKeyUp:e=>{var t;"Enter"===e.key&&(e.preventDefault(),null===(t=n.current)||void 0===t||t.click())}},Ee.createElement(dt,{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:Ee.createElement("button",{ref:n,type:"submit",style:{display:"none"}}),extraErrors:this.state.extraErrors})))}}}class pt extends mt{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 Ye({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 ut=e=>{var t;const[a,r]=Ee.useState(!1),o=Ee.useRef(),n=Ee.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||void 0,r(!0)}),s="Dissolve"===e.processingType?pt:mt,a&&Ee.createElement(s,{formContext:e.formContext,filePath:e.model.filePath,model:e.model,ok:o.current,sourceData:e.sourceData,schema:e.schema,syncData:e.syncData})};class gt extends s.Dialog{constructor(e){var t,a,r;const n=null!==(t=e.model.sharedModel.layers)&&void 0!==t?t:{},i=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=i.map(e=>e.value),e.schema.properties.inputLayer.enumNames=i.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 l=e.model.filePath,c=e.model,d=new we.PromiseDelegate,m=new we.PromiseDelegate,p=Ee.createElement("div",{style:{overflow:"hidden"}},Ee.createElement(ut,Object.assign({},e,{filePath:l,model:c,okSignalPromise:d,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:[s.Dialog.cancelButton(),s.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")}),d.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 yt=a(68326),ht=a(90560);class ft extends mt{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 vt extends ft{constructor(e){super(e)}onFormSubmit(e){return e.formData.symbologyState={},super.onFormSubmit(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 bt extends ft{processSchema(e,t,a){super.processSchema(e,t,a),a.shadowColor={"ui:widget":"color"}}}class St extends ft{onFormSubmit(e){return e.formData.symbologyState={},super.onFormSubmit(e)}processSchema(e,t,a){this.removeFormEntry("color",e,t,a),this.removeFormEntry("symbologyState",e,t,a),super.processSchema(e,t,a)}}class wt extends ft{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)})}onFormSubmit(e){return e.formData.symbologyState={},super.onFormSubmit(e)}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 Ye({filepath:r.parameters.path,type:"GeoJSONSource",model:this.props.model})).features[0].properties;this.features=Object.keys(o),this.forceUpdate()}}var Et=a(1660),jt=a(24838);function Ct(...e){return(0,jt.$)(e)}const xt=Ee.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?Et.DX:"button";return Ee.createElement(i,Object.assign({"data-size":o,"data-variant":a,className:Ct("jgis-button",r),ref:t},s))});xt.displayName="Button";const Ot=function({model:e,layerId:t}){return je().createElement("div",null,je().createElement(xt,{title:"Set story segment to current viewport",onClick:()=>{if(!e||!t)return;const a=e.getLayer(t);if(!a)return;const{zoom:r,extent:o}=e.getOptions(),n=Object.assign(Object.assign({},a),{parameters:Object.assign(Object.assign({},a.parameters),{zoom:r,extent:o})});e.sharedModel.updateLayer(t,n)}},je().createElement(c.LabIcon.resolveReact,{icon:he,className:"jp-gis-layerIcon",tag:"span"}),"Set Story Segment Extent"))};class _t extends ft{processSchema(e,t,a){if(super.processSchema(e,t,a),!this.props.model.selected)return;let r;const o=Object.keys(this.props.model.selected);for(const e of o){const t=this.props.model.getLayer(e);if(t&&"StorySegmentLayer"===t.type){r=e;break}}a.extent={"ui:field":e=>Ee.createElement(Ot,Object.assign(Object.assign({},e),{model:this.props.model,layerId:r}))},a.content=Object.assign(Object.assign({},a.content),{markdown:{"ui:widget":"textarea","ui:options":{rows:10}}}),this.removeFormEntry("zoom",e,t,a)}}class Mt extends mt{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 Nt=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 It=a.t(Nt,2),Tt=a(11601),Lt=a(56110);const kt=e=>{const{options:t}=e,{docManager:a,formOptions:r}=t,[o,n]=(0,Ee.useState)(""),[i,l]=(0,Ee.useState)(""),c=(0,Ee.useRef)(!1);return(0,Ee.useEffect)(()=>{!c.current&&e.value&&(e.value.startsWith("http://")||e.value.startsWith("https://")?(l(e.value),n("")):(n(e.value),l("")))},[e.value]),je().createElement("div",null,je().createElement("div",{className:"file-container"},je().createElement("button",{className:"jp-mod-styled",onClick:async()=>{try{const t=document.querySelector('dialog[aria-modal="true"]');if(t){const e=s.Dialog.tracker.find(e=>e.node===t);e&&e.resolve(0)}else console.warn("No open dialog found.");const o=await Lt.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=Oe.PathExt.relative(Oe.PathExt.dirname(r.filePath),a);if(n(s),l(""),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 Wt(Object.assign({},r.dialogOptions));await e.launch()}}else if(t){const e=new Wt(Object.assign({},r.dialogOptions));await e.launch()}}catch(e){console.error("Error handling file dialog:",e)}}},"Browse Server Files"),je().createElement("p",null,o||"")),je().createElement("div",null,je().createElement("h3",{className:"jp-FormGroup-fieldLabel jp-FormGroup-contentItem"},"Or enter external URL"),je().createElement("input",{type:"text",id:"root_path",className:"jp-mod-styled",onChange:t=>{const a=t.target.value.trim();c.current=!0,l(a),n(""),e.onChange(a)},onBlur:()=>{c.current=!1},value:i||"",style:{width:"100%"}})))};class Pt 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":kt,"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,s.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 Ye({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 At extends Pt{constructor(e){var t,a;super(e);const r=new Tt.Ajv;this._validate=r.compile(It),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),"create"===this.props.formContext&&(t.properties.path.description="The local path to a GeoJSON file. (If no path/url is provided, an empty GeoJSON is created.)"),super.processSchema(e,t,a)}async _validatePath(e){var t;const a=this.state.extraErrors;let r="",o=!0;if(e)try{const t=await Ye({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}`}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)}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,s.showErrorMessage)("Invalid file",this.state.extraErrors.path.__errors[0]):(e.formData.path||(e.formData.data={type:"FeatureCollection",features:[]}),super.onFormSubmit(e))}}class Gt 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":kt,"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,s.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=tt(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 Rt 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 Dt(e){let t=ft;switch(e){case"VectorTileLayer":case"VectorLayer":t=vt;break;case"HillshadeLayer":t=bt;break;case"WebGlLayer":t=St;break;case"HeatmapLayer":t=wt;break;case"StorySegmentLayer":t=_t}return t}function Ft(e){let t=Mt;switch(e){case"GeoJSONSource":t=At;break;case"ImageSource":case"ShapefileSource":case"GeoParquetSource":t=Pt;break;case"GeoTiffSource":t=Gt;break;case"RasterSource":case"VectorTileSource":t=Rt}return t}var Bt=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 zt extends Ee.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=we.UUID.uuid4();let a;const r=Dt(this.props.layerType||"RasterLayer"),o=ze(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=ze(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=Ft(this.props.sourceType||"RasterSource");if(this.props.sourceType){if(n=ze(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 we.PromiseDelegate,i.push(l.promise)),this.props.createSource&&(c=new we.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=Bt(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=Bt(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(we.UUID.uuid4(),o)}}),Ee.createElement("div",null,this.props.createSource&&Ee.createElement("div",null,Ee.createElement("h3",null,"Source Properties"),Ee.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&&Ee.createElement("div",null,Ee.createElement("h3",null,"Layer Properties"),Ee.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 Vt=e=>{var t;const[a,r]=Ee.useState(!1),o=Ee.useRef(),n=Ee.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&&Ee.createElement(zt,{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 Wt extends s.Dialog{constructor(e){const t=new we.PromiseDelegate,a=new we.PromiseDelegate,r=Ee.createElement("div",{style:{overflow:"auto"}},Ee.createElement(Vt,{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:[s.Dialog.cancelButton(),s.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 Ut=a(62778);const $t=({model:e,registry:t,formSchemaRegistry:a,okSignalPromise:r,cancel:o})=>{const[n,s]=(0,Ee.useState)(""),[i,l]=(0,Ee.useState)([]),[c,d]=(0,Ee.useState)(),[m,p]=(0,Ee.useState)(!1),[u,g]=(0,Ee.useState)(t),y=[...new Set(t.map(e=>e.source.provider))],h=u.filter(e=>e.name.toLowerCase().includes(n));(0,Ee.useEffect)(()=>(e.sharedModel.layersChanged.connect(f),()=>{e.sharedModel.layersChanged.disconnect(f)}),[]);const f=(t,a)=>{l(Object.values(e.sharedModel.layers).map(e=>e.name.split(" ")[0]))},v=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)}),je().createElement("div",{className:"jGIS-customlayer-form"},je().createElement(Vt,{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)}),je().createElement("div",{className:"jGIS-layer-browser-container"},je().createElement("div",{className:"jGIS-layer-browser-header-container"},je().createElement("div",{className:"jGIS-layer-browser-header"},je().createElement("h2",{className:"jGIS-layer-browser-header-text"},"Layer Browser"),je().createElement("div",{className:"jGIS-layer-browser-header-search-container"},je().createElement("input",{type:"text",placeholder:"Search...",value:n,onChange:e=>{s(e.target.value.toLowerCase())},className:"jGIS-layer-browser-header-search"}))),je().createElement("div",{className:"jGIS-layer-browser-categories"},y.map(e=>je().createElement("span",{className:"jGIS-layer-browser-category",onClick:v},e)))),je().createElement("div",{className:"jGIS-layer-browser-grid"},je().createElement("div",{className:"jGIS-layer-browser-tile jGIS-layer-browser-custom-tile",onClick:()=>{p(!0)}},je().createElement("div",{className:"jGIS-layer-browser-tile-img-container"},je().createElement("img",{className:"jGIS-layer-browser-img",src:Ut}),je().createElement("div",{className:"jGIS-layer-browser-icon"},je().createElement(ht.g,{style:{height:20},icon:yt.QLR}))),je().createElement("div",{className:"jGIS-layer-browser-text-container"},je().createElement("div",{className:"jGIS-layer-browser-text-info"},je().createElement("h3",{className:"jGIS-layer-browser-text-header jGIS-layer-browser-text-general"},"Custom Raster Layer")),je().createElement("p",{className:"jGIS-layer-browser-text-general jGIS-layer-browser-text-source"},"Create A Custom Raster Layer"))),h.map(t=>je().createElement("div",{className:"jGIS-layer-browser-tile",onClick:()=>(t=>{const a=we.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(we.UUID.uuid4(),o)})(t)},je().createElement("div",{className:"jGIS-layer-browser-tile-img-container"},je().createElement("img",{className:"jGIS-layer-browser-img",src:t.thumbnail}),-1===i.indexOf(t.name)?je().createElement("div",{className:"jGIS-layer-browser-icon"},je().createElement(ht.g,{style:{height:20},icon:yt.QLR})):je().createElement("div",{className:"jGIS-layer-browser-icon jGIS-layer-browser-added"},je().createElement(ht.g,{style:{height:20},icon:yt.e68}),je().createElement("p",{className:"jGIS-layer-browser-text-general"},"Added!"))),je().createElement("div",{className:"jGIS-layer-browser-text-container"},je().createElement("div",{className:"jGIS-layer-browser-text-info"},je().createElement("h3",{className:"jGIS-layer-browser-text-header jGIS-layer-browser-text-general"},t.name)),je().createElement("p",{className:"jGIS-layer-browser-text-general jGIS-layer-browser-text-source"},t.source.attribution)))))))};class qt extends s.Dialog{constructor(e){let t;t=()=>{this.resolve(0)};const a=new we.PromiseDelegate;super({body:je().createElement($t,{model:e.model,registry:e.registry,formSchemaRegistry:e.formSchemaRegistry,okSignalPromise:a,cancel:t}),buttons:[s.Dialog.cancelButton(),s.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)}}var Ht=a(31625);const Jt=(e,t)=>{const[a,r]=(0,Ee.useState)([]),[o,n]=(0,Ee.useState)(!1),[s,i]=(0,Ee.useState)(null);return(0,Ee.useEffect)(()=>{(async()=>{var a,o,s,l;n(!0),i(null);try{const c=e.getSource(null===(a=null==t?void 0:t.parameters)||void 0===a?void 0:a.source),d=null===(o=null==c?void 0:c.parameters)||void 0===o?void 0:o.urls[0];if(!(null==d?void 0:d.url))return i("No source URL found."),void n(!1);let m;if(d.url.startsWith("http")||d.url.startsWith("https"))m=await(0,Ht.uz)(d.url);else{const t=await Ye({filepath:d.url,type:"GeoTiffSource",model:e});if(!t.file)return i("Failed to load local file."),void n(!1);m=await(0,Ht._F)(t.file)}const p=(await m.getImage()).getSamplesPerPixel(),u=[];for(let e=0;e<p;e++)u.push({band:e+1,stats:{minimum:null!==(s=d.min)&&void 0!==s?s:0,maximum:null!==(l=d.max)&&void 0!==l?l:100}});r(u)}catch(e){i(`Error fetching band info: ${e.message}`)}finally{n(!1)}})()},[]),{bandRows:a,setBandRows:r,loading:o,error:s}},Qt=({label:e,index:t,bandRow:a,bandRows:r,setSelectedBand:o,setBandRows:n,isMultibandColor:s})=>{const[i,l]=(0,Ee.useState)(null==a?void 0:a.stats.minimum),[c,d]=(0,Ee.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 je().createElement(je().Fragment,null,je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",{htmlFor:`band-select-${t}`},e,":"),je().createElement("div",{className:"jp-select-wrapper"},je().createElement("select",{name:`band-select-${t}`,onChange:e=>o(+e.target.value),className:"jp-mod-styled"},r.map((e,t)=>je().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?je().createElement("option",{key:"unset",value:-1,selected:!a,className:"jp-mod-styled"},"Unset"):null))),s?null:je().createElement("div",{className:"jp-gis-symbology-row",style:{gap:"0.5rem"}},je().createElement("div",{style:{display:"flex",justifyContent:"space-between",width:"50%"}},je().createElement("label",{htmlFor:"band-min",style:{alignSelf:"center"}},"Min"),je().createElement("input",{type:"number",className:"jp-mod-styled",style:{marginRight:15},value:i,onChange:e=>{l(+e.target.value),m()}})),je().createElement("div",{style:{display:"flex",justifyContent:"space-between",width:"50%",paddingRight:"2px"}},je().createElement("label",{htmlFor:"band-max",style:{alignSelf:"center"}},"Max"),je().createElement("input",{type:"number",className:"jp-mod-styled",value:c,onChange:e=>{d(+e.target.value),m()},onBlur:m}))))},Zt=e=>je().createElement(ht.g,{icon:yt.z1G,spin:!0,size:e.size||"xl",style:e.style||{margin:"auto",padding:"1rem"},className:e.className}),Yt=e=>je().createElement("div",{className:"jGIS-Spinner",style:{display:e.loading?"flex":"none"}},je().createElement("div",{className:"jGIS-SpinnerContent"})),Kt=({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}=Jt(e,o),[l,c]=(0,Ee.useState)({red:1,green:2,blue:3,alpha:4}),d=(0,Ee.useRef)(0),m=(0,Ee.useRef)({red:l.red,green:l.green,blue:l.blue,alpha:l.alpha});(0,Ee.useEffect)(()=>(p(),t.promise.then(e=>{e.connect(g)}),()=>{t.promise.then(e=>{e.disconnect(g,void 0)})}),[]),(0,Ee.useEffect)(()=>{d.current=n.length},[n]),(0,Ee.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 je().createElement("div",{className:"jp-gis-layer-symbology-container"},je().createElement("div",{className:"jp-gis-band-container"},je().createElement(Yt,{loading:i}),je().createElement(Qt,{label:"Red Band",index:l.red-1,bandRow:n[l.red-1],bandRows:n,setSelectedBand:e=>u("red",e>=0?e:0),setBandRows:s,isMultibandColor:!0}),je().createElement(Qt,{label:"Green Band",index:l.green-1,bandRow:n[l.green-1],bandRows:n,setSelectedBand:e=>u("green",e>=0?e:0),setBandRows:s,isMultibandColor:!0}),je().createElement(Qt,{label:"Blue Band",index:l.blue-1,bandRow:n[l.blue-1],bandRows:n,setSelectedBand:e=>u("blue",e>=0?e:0),setBandRows:s,isMultibandColor:!0}),je().createElement(Qt,{label:"Alpha Band",index:l.alpha-1,bandRow:n[l.alpha-1],bandRows:n,setSelectedBand:e=>u("alpha",e>=0?e:0),setBandRows:s,isMultibandColor:!0})))};var Xt,ea,ta=a(41256);!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,f=g-u;for(let e=1;e<f+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}}(Xt||(Xt={})),function(e){e.classifyQuantileBreaks=async(e,t,a,r)=>{const o=[],n="discrete"===r,s=new ta.A,i=await(0,Ht.uz)(a),l=await i.getImage(),c=(await l.readRasters({pool:s}))[t-1].filter(e=>0!==e).sort((e,t)=>e-t);if(s.destroy(),!c)return[];let d,m,p;n?(m=c.length/e,d=0,p=0):(m=c.length/(e-1),o.push(1),d=1,p=1);for(let e=p;e<c.length;e++)d+1<m?d++:(o.push(c[e]),d=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}}(ea||(ea={}));var aa=a(54645),ra=a.n(aa),oa=a(95182),na=a.n(oa);const sa=JSON.parse('{"__license__":"The MIT License (MIT) Copyright (c) 2015 Kristen M. Thyng Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \'Software\'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in alL copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \'AS IS\', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.","ice":[{"index":0,"rgb":[3,5,18]},{"index":0.125,"rgb":[33,32,65]},{"index":0.25,"rgb":[56,56,116]},{"index":0.375,"rgb":[62,87,163]},{"index":0.5,"rgb":[66,122,183]},{"index":0.625,"rgb":[88,157,195]},{"index":0.75,"rgb":[122,190,208]},{"index":0.875,"rgb":[176,221,225]},{"index":1,"rgb":[234,252,253]}],"oxy":[{"index":0,"rgb":[63,5,5]},{"index":0.125,"rgb":[118,5,15]},{"index":0.25,"rgb":[91,91,90]},{"index":0.375,"rgb":[122,121,121]},{"index":0.5,"rgb":[154,154,153]},{"index":0.625,"rgb":[190,189,188]},{"index":0.75,"rgb":[229,229,228]},{"index":0.875,"rgb":[232,224,50]},{"index":1,"rgb":[220,174,25]}],"matter":[{"index":0,"rgb":[253,237,176]},{"index":0.125,"rgb":[249,192,135]},{"index":0.25,"rgb":[241,148,102]},{"index":0.375,"rgb":[229,105,83]},{"index":0.5,"rgb":[206,67,86]},{"index":0.625,"rgb":[171,41,96]},{"index":0.75,"rgb":[130,27,98]},{"index":0.875,"rgb":[87,22,86]},{"index":1,"rgb":[47,15,61]}],"amp":[{"index":0,"rgb":[241,236,236]},{"index":0.125,"rgb":[226,199,190]},{"index":0.25,"rgb":[215,162,144]},{"index":0.375,"rgb":[204,125,99]},{"index":0.5,"rgb":[191,88,58]},{"index":0.625,"rgb":[174,46,36]},{"index":0.75,"rgb":[142,16,40]},{"index":0.875,"rgb":[100,14,35]},{"index":1,"rgb":[60,9,17]}],"tempo":[{"index":0,"rgb":[254,245,244]},{"index":0.125,"rgb":[210,217,198]},{"index":0.25,"rgb":[161,193,161]},{"index":0.375,"rgb":[105,171,137]},{"index":0.5,"rgb":[42,147,127]},{"index":0.625,"rgb":[17,118,118]},{"index":0.75,"rgb":[26,88,103]},{"index":0.875,"rgb":[26,59,84]},{"index":1,"rgb":[20,29,67]}],"rain":[{"index":0,"rgb":[238,237,242]},{"index":0.125,"rgb":[218,203,187]},{"index":0.25,"rgb":[181,178,138]},{"index":0.375,"rgb":[125,160,119]},{"index":0.5,"rgb":[60,142,109]},{"index":0.625,"rgb":[5,116,109]},{"index":0.75,"rgb":[20,86,102]},{"index":0.875,"rgb":[36,56,79]},{"index":1,"rgb":[33,26,56]}],"topo":[{"index":0,"rgb":[39,26,44]},{"index":0.125,"rgb":[64,77,139]},{"index":0.25,"rgb":[72,142,157]},{"index":0.375,"rgb":[121,206,162]},{"index":0.5,"rgb":[13,37,19]},{"index":0.625,"rgb":[59,89,38]},{"index":0.75,"rgb":[144,129,63]},{"index":0.875,"rgb":[210,182,118]},{"index":1,"rgb":[248,253,228]}],"balance":[{"index":0,"rgb":[23,28,66]},{"index":0.125,"rgb":[36,72,175]},{"index":0.25,"rgb":[56,135,185]},{"index":0.375,"rgb":[151,185,197]},{"index":0.5,"rgb":[240,236,235]},{"index":0.625,"rgb":[214,161,143]},{"index":0.75,"rgb":[191,87,58]},{"index":0.875,"rgb":[141,15,40]},{"index":1,"rgb":[60,9,17]}],"delta":[{"index":0,"rgb":[16,31,63]},{"index":0.125,"rgb":[28,81,156]},{"index":0.25,"rgb":[51,144,169]},{"index":0.375,"rgb":[151,197,190]},{"index":0.5,"rgb":[254,252,203]},{"index":0.625,"rgb":[200,185,67]},{"index":0.75,"rgb":[93,145,12]},{"index":0.875,"rgb":[11,94,44]},{"index":1,"rgb":[23,35,18]}],"curl":[{"index":0,"rgb":[20,29,67]},{"index":0.125,"rgb":[26,89,103]},{"index":0.25,"rgb":[44,148,127]},{"index":0.375,"rgb":[163,194,162]},{"index":0.5,"rgb":[253,245,243]},{"index":0.625,"rgb":[225,166,142]},{"index":0.75,"rgb":[194,88,96]},{"index":0.875,"rgb":[131,31,95]},{"index":1,"rgb":[51,13,53]}],"diff":[{"index":0,"rgb":[7,34,63]},{"index":0.125,"rgb":[49,87,113]},{"index":0.25,"rgb":[116,136,151]},{"index":0.375,"rgb":[184,191,197]},{"index":0.5,"rgb":[245,241,239]},{"index":0.625,"rgb":[193,185,166]},{"index":0.75,"rgb":[140,128,91]},{"index":0.875,"rgb":[86,79,32]},{"index":1,"rgb":[28,34,6]}],"tarn":[{"index":0,"rgb":[22,35,13]},{"index":0.125,"rgb":[79,84,19]},{"index":0.25,"rgb":[169,118,49]},{"index":0.375,"rgb":[221,177,141]},{"index":0.5,"rgb":[252,247,245]},{"index":0.625,"rgb":[180,193,161]},{"index":0.75,"rgb":[84,144,132]},{"index":0.875,"rgb":[25,89,110]},{"index":1,"rgb":[15,30,79]}]}');const{__license__:ia}=sa,la=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}(sa,["__license__"]);Object.assign(na(),la);const ca=["jet","hsv","hot","cool","spring","summer","autumn","winter","bone","copper","greys","YiGnBu","greens","YiOrRd","bluered","RdBu","picnic","rainbow","portland","blackbody","earth","electric","viridis","inferno","magma","plasma","warm","rainbow-soft","bathymetry","cdom","chlorophyll","density","freesurface-blue","freesurface-red","oxygen","par","phase","salinity","temperature","turbidity","velocity-blue","velocity-green","cubehelix","ice","oxy","matter","amp","tempo","rain","topo","balance","delta","curl","diff","tarn"],da={hsv:11,picnic:11,"rainbow-soft":11,cubehelix:16};function ma(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),255]:(console.warn("Unable to parse hex value, defaulting to black"),[0,0,0,255])}const pa=({index:e,colorMap:t,onClick:a})=>((0,Ee.useEffect)(()=>{const a=document.getElementById(`cv-${e}`);if(!a)return;a.width=512,a.height=30;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)}},[]),je().createElement("div",{key:t.name,onClick:()=>a(t.name),className:"jp-gis-color-ramp-entry"},je().createElement("span",{className:"jp-gis-color-label"},t.name),je().createElement("canvas",{id:`cv-${e}`,width:512,height:30,className:"jp-gis-color-canvas"}))),ua=({selectedRamp:e,setSelected:t})=>{const a=(0,Ee.useRef)(null),[r,o]=(0,Ee.useState)(!1),[n,s]=(0,Ee.useState)([]);(e=>{(0,Ee.useEffect)(()=>{e((()=>{const e=[];return ca.forEach(t=>{const a=ra()({colormap:t,nshades:255,format:"rgbaString"});e.push({name:t,colors:a})}),e})())},[e])})(s),(0,Ee.useEffect)(()=>{n.length>0&&d(e)},[e]);const i=e=>{t(e),o(!1),d(e)},l=e=>{a.current&&(a.current.contains(e.target)||o(!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=n.filter(t=>t.name===e);t.width=512,t.height=30;for(let e=0;e<=255;e++){a.beginPath();const t=r[0].colors[e];a.fillStyle=t,a.fillRect(2*e,0,2,30)}t.style.visibility="initial"};return(0,Ee.useEffect)(()=>(document.addEventListener("mousedown",l),()=>{document.removeEventListener("mousedown",l)}),[]),je().createElement("div",{ref:a,className:"jp-gis-canvas-button-wrapper"},je().createElement(c.Button,{id:"jp-gis-canvas-button",onClick:()=>{o(!r)},className:"jp-Dialog-button jp-gis-canvas-button"},je().createElement("div",{className:"jp-gis-color-ramp-entry jp-gis-selected-entry"},je().createElement("span",{className:"jp-gis-color-label"},e),je().createElement("canvas",{id:"cv",className:"jp-gis-color-canvas-display",width:512,height:30}))),je().createElement("div",{className:"jp-gis-color-ramp-dropdown "+(r?"jp-gis-open":"")},n.map((e,t)=>je().createElement(pa,{index:t,colorMap:e,onClick:i}))))},ga=({numberOfShades:e,setNumberOfShades:t,selectedMode:a,setSelectedMode:r,modeOptions:o})=>je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("div",{className:"jp-gis-color-ramp-div"},je().createElement("label",{htmlFor:"class-number-input"},"Classes:"),je().createElement("input",{className:"jp-mod-styled",name:"class-number-input",type:"number",value:"continuous"===a?52:e,onChange:e=>{const a=Number(e.target.value);!isNaN(a)&&a>0&&t(a)},disabled:"continuous"===a})),je().createElement("div",{className:"jp-gis-color-ramp-div"},je().createElement("label",{htmlFor:"mode-select"},"Mode:"),je().createElement("div",{className:"jp-select-wrapper"},je().createElement("select",{name:"mode-select",id:"mode-select",className:"jp-mod-styled",value:a,onChange:e=>r(e.target.value)},o.map(e=>je().createElement("option",{key:e,value:e},e)))))),ya=({layerParams:e,modeOptions:t,classifyFunc:a,showModeRow:r,showRampSelector:o})=>{const[n,s]=(0,Ee.useState)("viridis"),[i,l]=(0,Ee.useState)("equal interval"),[d,m]=(0,Ee.useState)(9),[p,u]=(0,Ee.useState)(!1),[g,y]=(0,Ee.useState)(null);(0,Ee.useEffect)(()=>{e.symbologyState&&h()},[e.symbologyState.nClasses,e.symbologyState.mode,e.symbologyState.colorRamp]),(0,Ee.useEffect)(()=>{var e;if(!n)return;const t=null!==(e=da[n])&&void 0!==e?e:9;m(t),y(null)},[n]),(0,Ee.useEffect)(()=>{if(!n||!d)return;const e=da[n],t=d,a=n.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join("-");y(e&&t<e?`${a} requires at least ${e} classes (got ${t})`:null)},[n,d]);const h=()=>{var t,a,r;const{nClasses:o,mode:n,colorRamp:i}=null!==(t=e.symbologyState)&&void 0!==t?t:{};m(Number(null!=o?o:9)),l(null!==(a=n)&&void 0!==a?a:"equal interval"),s(null!==(r=i)&&void 0!==r?r:"viridis")};return je().createElement("div",{className:"jp-gis-color-ramp-container"},o&&je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",{htmlFor:"color-ramp-select"},"Color Ramp:"),je().createElement(ua,{selectedRamp:n,setSelected:s})),r&&je().createElement(ga,{modeOptions:t,numberOfShades:d,setNumberOfShades:m,selectedMode:i,setSelectedMode:l}),g&&je().createElement("div",{className:"jp-gis-warning",style:{color:"orange",marginTop:4}},g),p?je().createElement(Zt,null):je().createElement(c.Button,{className:"jp-Dialog-button jp-mod-accept jp-mod-styled",disabled:(f=d,!(!isNaN(f)&&f>0&&i&&!g)),onClick:()=>a(i,d,n,u)},"Classify"));var f},ha=({index:e,dataValue:t,symbologyValue:a,stopRows:r,setStopRows:o,deleteRow:n,useNumber:s})=>{const i=(0,Ee.useRef)(null);(0,Ee.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:ma(t.target.value),o(a)};return je().createElement("div",{className:"jp-gis-color-row"},je().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?je().createElement("input",{type:"number",ref:i,value:a,onChange:l,className:"jp-mod-styled jp-gis-color-row-output-input"}):je().createElement("input",{id:`jp-gis-color-color-${e}`,ref:i,value:(d=a,"string"==typeof d?d:"#"+d.slice(0,-1).map(e=>e.toString(16).padStart(2,"0")).join("")),type:"color",onChange:l,className:"jp-mod-styled jp-gis-color-row-output-input"}),je().createElement(c.Button,{id:`jp-gis-remove-color-${e}`,className:"jp-Button jp-gis-filter-icon"},je().createElement(ht.g,{icon:yt.yLS,onClick:n})));var d};var fa,va;!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=[],o=a["circle-radius"];if(!Array.isArray(o)||o.length<=3)return[];for(let e=3;e<o.length;e+=2){const t={stop:o[e],output:o[e+1]};r.push(t)}return r}}(fa||(fa={})),function(e){e.getValueColorPairs=(e,t,a,r=!1)=>{let o=ra()({colormap:t,nshades:a>9?a:9,format:"rgba"});r&&(o=[...o].reverse());const n=[];if(a<9){const t=Math.floor(a/2),r=o.slice(0,t),n=o.slice(o.length-(e.length-r.length));o=r.concat(n)}for(let t=0;t<a;t++)n.push({stop:e[t],output:o[t]});return n}}(va||(va={}));class ba{constructor(){this.stateDb=null}static getInstance(){return ba.instance||(ba.instance=new ba),ba.instance}initialize(e){null===this.stateDb?this.stateDb=e:console.warn("stateDb is already initialized.")}getStateDb(){return this.stateDb}}const Sa=({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=ba.getInstance().getStateDb(),{bandRows:s,setBandRows:i,loading:l}=Jt(e,o),[d,m]=(0,Ee.useState)(),[p,u]=(0,Ee.useState)(1),[g,y]=(0,Ee.useState)([]),[h,f]=(0,Ee.useState)("linear"),[v,b]=(0,Ee.useState)(),S=(0,Ee.useRef)(),w=(0,Ee.useRef)([]),E=(0,Ee.useRef)(),j=(0,Ee.useRef)(),C=(0,Ee.useRef)();(0,Ee.useEffect)(()=>(x(),t.promise.then(e=>{e.connect(_)}),()=>{t.promise.then(e=>{e.disconnect(_,void 0)})}),[]),(0,Ee.useEffect)(()=>{w.current=s,O()},[s]),(0,Ee.useEffect)(()=>{S.current=g,E.current=h,j.current=v,C.current=p},[g,h,v,p,d]);const x=async()=>{var e,t,a,s;const i=await(null==n?void 0:n.fetch(`jupytergis:${r}`));m(i);const l=o.parameters,c=null!==(t=null===(e=l.symbologyState)||void 0===e?void 0:e.band)&&void 0!==t?t:1,d=null!==(s=null===(a=l.symbologyState)||void 0===a?void 0:a.interpolation)&&void 0!==s?s:"linear";u(c),f(d)},O=()=>{var e;if(!(null===(e=o.parameters)||void 0===e?void 0:e.color)||!d)return;const t=o.parameters.color;if("string"==typeof t)return;const a="quantile"===d.selectedMode,r=[];switch(t[0]){case"interpolate":for(let e=5;e<t.length;e+=2){const o={stop:M(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:M(t[e][2],a),output:t[e+1]};r.push(o)}}y(r)},_=()=>{var t,n,s,i,l,c,d,m;const u=w.current[p-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=j.current)||void 0===n?void 0:n.selectedMode),f=y.parameters.urls[0];if(f.min=u.stats.minimum,f.max=u.stats.maximum,y.parameters.urls[0]=f,e.sharedModel.updateSource(g,y),!o.parameters)return;let v=[];switch(E.current){case"linear":v=["interpolate",["linear"]],v.push(["band",p]),v.push(0,[0,0,0,0]),null===(s=S.current)||void 0===s||s.map(e=>{v.push(N(e.stop,h)),v.push(e.output)});break;case"discrete":v=["case"],v.push(["==",["band",p],0]),v.push([0,0,0,0]),null===(i=S.current)||void 0===i||i.map(e=>{v.push(["<=",["band",p],N(e.stop,h)]),v.push(e.output)}),v.push([0,0,0,0]);break;case"exact":v=["case"],v.push(["==",["band",p],0]),v.push([0,0,0,0]),null===(l=S.current)||void 0===l||l.map(e=>{v.push(["==",["band",p],N(e.stop,h)]),v.push(e.output)}),v.push([0,0,0,0])}const b={renderType:"Singleband Pseudocolor",band:C.current,interpolation:E.current,colorRamp:null===(c=j.current)||void 0===c?void 0:c.selectedRamp,nClasses:null===(d=j.current)||void 0===d?void 0:d.numberOfShades,mode:null===(m=j.current)||void 0===m?void 0:m.selectedMode};o.parameters.symbologyState=b,o.parameters.color=v,o.type="WebGlLayer",e.sharedModel.updateLayer(r,o),a()},M=(e,t)=>{const a=s[p-1];if(!a)return e;const r=t?1:a.stats.minimum;return e*((t?65535:a.stats.maximum)-r)/1+r},N=(e,t)=>{const a=w.current[p-1],r=t?1:a.stats.minimum;return(1*e-1*r)/((t?65535:a.stats.maximum)-r)};return je().createElement("div",{className:"jp-gis-layer-symbology-container"},je().createElement("div",{className:"jp-gis-band-container"},je().createElement(Yt,{loading:l}),je().createElement(Qt,{label:"Band",index:p-1,bandRow:s[p-1],bandRows:s,setSelectedBand:u,setBandRows:i})),je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",{htmlFor:"function-select"},"Interpolation:"),je().createElement("div",{className:"jp-select-wrapper"},je().createElement("select",{name:"function-select",id:"function-select",className:"jp-mod-styled",value:h,style:{textTransform:"capitalize"},onChange:e=>{f(e.target.value)}},["discrete","linear","exact"].map((e,t)=>je().createElement("option",{key:e,value:e,style:{textTransform:"capitalize"}},e))))),s.length>0&&je().createElement(ya,{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[p-1],m=e.getSource(null===(i=null==o?void 0:o.parameters)||void 0===i?void 0:i.source),u=null===(l=null==m?void 0:m.parameters)||void 0===l?void 0:l.urls[0],g="continuous"===t?52:a;switch(n(!0),t){case"quantile":c=await ea.classifyQuantileBreaks(g,p,u.url,h);break;case"continuous":c=ea.classifyContinuousBreaks(g,d.stats.minimum,d.stats.maximum,h);break;case"equal interval":c=ea.classifyEqualIntervalBreaks(g,d.stats.minimum,d.stats.maximum,h);break;default:return void console.warn("No mode selected")}n(!1);const f=va.getValueColorPairs(c,r,g);y(f)},showModeRow:!0,showRampSelector:!0}),je().createElement("div",{className:"jp-gis-stop-container"},je().createElement("div",{className:"jp-gis-stop-labels",style:{display:"flex",gap:6}},je().createElement("span",{style:{flex:"0 0 18%"}},"Value"," ","discrete"===h?"<=":"exact"===h?"=":""),je().createElement("span",null,"Output Value")),g.map((e,t)=>je().createElement(ha,{key:`${t}-${e.output}`,index:t,dataValue:e.stop,symbologyValue:e.output,stopRows:g,setStopRows:y,deleteRow:()=>(e=>{const t=[...g];t.splice(e,1),y(t)})(t)}))),je().createElement("div",{className:"jp-gis-symbology-button-container"},je().createElement(c.Button,{className:"jp-Dialog-button jp-mod-accept jp-mod-styled",onClick:()=>{y([{stop:0,output:[0,0,0,1]},...g])}},"Add Stop")))},wa=({model:e,state:t,okSignalPromise:a,cancel:r,layerId:o})=>{const[n,s]=(0,Ee.useState)(),[i,l]=(0,Ee.useState)(null);let c;if(o)return(0,Ee.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,Ee.useEffect)(()=>{if(n){switch(n){case"Singleband Pseudocolor":c=je().createElement(Sa,{model:e,state:t,okSignalPromise:a,cancel:r,layerId:o});break;case"Multiband Color":c=je().createElement(Kt,{model:e,state:t,okSignalPromise:a,cancel:r,layerId:o});break;default:c=je().createElement("div",null,"Render Type Not Implemented (yet)")}l(c)}},[n]),je().createElement(je().Fragment,null,je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",{htmlFor:"render-type-select"},"Render Type:"),je().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)=>je().createElement("option",{key:e,value:e},e)))),i)},Ea=({layerId:e,model:t})=>{const[a,r]=(0,Ee.useState)({}),[o,n]=(0,Ee.useState)(!0),[s,i]=(0,Ee.useState)();return(0,Ee.useEffect)(()=>{(async()=>{var a,o;if(e)try{const n=t.getLayer(e),s=t.getSource(null===(a=null==n?void 0:n.parameters)||void 0===a?void 0:a.source);if(!s)throw new Error("Source not found");const i=null==s?void 0:s.type;let l={};if("GeoJSONSource"===i)l=await async function({source:e,model:t}){const a={},r=await(async()=>e.parameters.path?await Ye({filepath:e.parameters.path,type:"GeoJSONSource",model:t}):e.parameters.data?e.parameters.data:void 0)();if(!r)throw new Error("Failed to read GeoJSON data");return r.features.forEach(e=>{if(e.properties)for(const[t,r]of Object.entries(e.properties))a[t]||(a[t]=new Set),a[t].add(r)}),a}({source:s,model:t});else{if("VectorTileSource"!==i)throw new Error(`Unsupported source type: ${i}`);{const e=null===(o=null==n?void 0:n.parameters)||void 0===o?void 0:o.source;l=function({model:e,sourceId:t}){const a={};return e.getFeaturesForCurrentTile({sourceId:t}).forEach(e=>{var t;const r=null===(t=e.getProperties)||void 0===t?void 0:t.call(e);if(r)for(const[e,t]of Object.entries(r))a[e]||(a[e]=new Set),a[e].add(t)}),a}({model:t,sourceId:e})}}r(l)}catch(e){i(e)}finally{n(!1)}})()},[t,e]),{featureProperties:a,isLoading:o,error:s}},ja=({featureProperties:e,selectedValue:t,setSelectedValue:a})=>je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",{htmlFor:"vector-value-select"},"Value:"),je().createElement("select",{name:"vector-value-select",onChange:e=>a(e.target.value),className:"jp-mod-styled"},Object.keys(e).map((e,a)=>je().createElement("option",{key:a,value:e,selected:e===t,className:"jp-mod-styled"},e)))),Ca=({selectedMethod:e,stopRows:t,setStopRows:a})=>je().createElement(je().Fragment,null,je().createElement("div",{className:"jp-gis-stop-container"},je().createElement("div",{className:"jp-gis-stop-labels",style:{display:"flex",gap:6}},je().createElement("span",{style:{flex:"0 0 18%"}},"Value"),je().createElement("span",null,"Output Value")),t.map((r,o)=>je().createElement(ha,{key:`${o}-${r.output}`,index:o,dataValue:r.stop,symbologyValue:r.output,stopRows:t,setStopRows:a,deleteRow:()=>(e=>{const r=[...t];r.splice(e,1),a(r)})(o),useNumber:"radius"===e}))),je().createElement("div",{className:"jp-gis-symbology-button-container"},je().createElement(c.Button,{className:"jp-Dialog-button jp-mod-accept jp-mod-styled",onClick:()=>{a([{stop:0,output:[0,0,0,1]},...t])}},"Add Stop"))),xa={"Single Symbol":{component:({model:e,state:t,okSignalPromise:a,cancel:r,layerId:o,symbologyTab:n})=>{const s=(0,Ee.useRef)(),[i,l]=(0,Ee.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,Ee.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=Ue(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,Ee.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 je().createElement("div",{className:"jp-gis-layer-symbology-container"},je().createElement("p",null,"Color all features the same way."),"color"===n?je().createElement(je().Fragment,null,je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",{htmlFor:"vector-value-select"},"Fill Color:"),je().createElement("input",{type:"color",value:i.fillColor,className:"jp-mod-styled",onChange:e=>l(t=>Object.assign(Object.assign({},t),{fillColor:e.target.value}))})),je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",{htmlFor:"vector-value-select"},"Stroke Color:"),je().createElement("input",{type:"color",value:i.strokeColor,className:"jp-mod-styled",onChange:e=>l(t=>Object.assign(Object.assign({},t),{strokeColor:e.target.value}))})),je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",{htmlFor:"vector-value-select"},"Stroke Width:"),je().createElement("input",{type:"number",value:i.strokeWidth,className:"jp-mod-styled",onChange:e=>l(t=>Object.assign(Object.assign({},t),{strokeWidth:+e.target.value}))})),je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",{htmlFor:"vector-join-select"},"Join Style:"),je().createElement("div",{className:"jp-select-wrapper"},je().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)=>je().createElement("option",{key:t,value:e,className:"jp-mod-styled"},e))))),je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",{htmlFor:"vector-cap-select"},"Cap Style:"),je().createElement("div",{className:"jp-select-wrapper"},je().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)=>je().createElement("option",{key:t,value:e,className:"jp-mod-styled"},e)))))):je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",null,"Radius:"),je().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,Ee.useRef)(),[i,l]=(0,Ee.useState)("");if(!o)return;const c=e.getLayer(o);if(!(null==c?void 0:c.parameters))return;(0,Ee.useEffect)(()=>(a.promise.then(e=>{e.connect(d,void 0)}),()=>{a.promise.then(e=>{e.disconnect(d,void 0)})}),[i]),(0,Ee.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,Ee.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=0===(null===(p=Object.keys(n))||void 0===p?void 0:p.length)?je().createElement("p",{className:"errors"},"This symbology type is not available; no attributes contain a hex color code."):je().createElement(ja,{featureProperties:n,selectedValue:i,setSelectedValue:l});var p;return je().createElement("div",{className:"jp-gis-layer-symbology-container"},je().createElement("p",null,"Color features based on an attribute containing a hex color code."),m)},attributeChecker:st,supportedLayerTypes:["VectorLayer","VectorTileLayer","HeatmapLayer"],isTabbed:!1},Graduated:{component:({model:e,state:t,okSignalPromise:a,cancel:r,layerId:o,symbologyTab:n,selectableAttributesAndValues:s})=>{const i=(0,Ee.useRef)(),l=(0,Ee.useRef)(),c=(0,Ee.useRef)([]),d=(0,Ee.useRef)([]),m=(0,Ee.useRef)(),[p,u]=(0,Ee.useState)(""),[g,y]=(0,Ee.useState)([]),[h,f]=(0,Ee.useState)([]),[v,b]=(0,Ee.useState)(),[S,w]=(0,Ee.useState)({strokeColor:"#3399CC",strokeWidth:1.25}),[E,j]=(0,Ee.useState)({radius:5}),[C,x]=(0,Ee.useState)(!1),O=(0,Ee.useRef)(S),_=(0,Ee.useRef)(E);if(!o)return;const M=e.getLayer(o);if(!(null==M?void 0:M.parameters))return;(0,Ee.useEffect)(()=>(N(),a.promise.then(e=>{e.connect(I,void 0)}),()=>{a.promise.then(e=>{e.disconnect(I,void 0)})}),[]),(0,Ee.useEffect)(()=>{var e;if(null===(e=null==M?void 0:M.parameters)||void 0===e?void 0:e.color){const e=M.parameters.color["stroke-color"],t=M.parameters.color["circle-stroke-color"],a=e=>"string"==typeof e&&/^#?[0-9A-Fa-f]{3,8}$/.test(e);w({strokeColor:a(e)?e:a(t)?t:"#3399CC",strokeWidth:M.parameters.color["stroke-width"]||M.parameters.color["circle-stroke-width"]||1.25}),j({radius:M.parameters.color["circle-radius"]||5})}},[o]),(0,Ee.useEffect)(()=>{c.current=g,d.current=h,i.current=p,l.current=n,m.current=v},[g,h,p,n,v]),(0,Ee.useEffect)(()=>{O.current=S,_.current=E},[S,E]),(0,Ee.useEffect)(()=>{var e,t;const a=null!==(t=null===(e=M.parameters.symbologyState)||void 0===e?void 0:e.value)&&void 0!==t?t:Object.keys(s)[0];u(a)},[s]);const N=()=>{M&&(y(fa.buildColorInfo(M)),f(fa.buildRadiusInfo(M)))},I=()=>{var t,a,n;if(!M.parameters)return;const s=Object.assign({},M.parameters.color);if(c.current.length>0){const e=["interpolate",["linear"],["get",i.current]];c.current.forEach(t=>{e.push(t.stop),e.push(t.output)}),s["fill-color"]=e,s["circle-fill-color"]=e,s["stroke-color"]=e,s["circle-stroke-color"]=e}if(s["stroke-color"]=O.current.strokeColor,s["circle-stroke-color"]=O.current.strokeColor,s["stroke-width"]=O.current.strokeWidth,s["circle-stroke-width"]=O.current.strokeWidth,d.current.length>0){const e=["interpolate",["linear"],["get",i.current]];d.current.forEach(t=>{e.push(t.stop),e.push(t.output)}),s["circle-radius"]=e}else s["circle-radius"]=_.current.radius;M.parameters.color=s,M.parameters.symbologyState={renderType:"Graduated",value:i.current,method:l.current,colorRamp:null===(t=m.current)||void 0===t?void 0:t.selectedRamp,nClasses:null===(a=m.current)||void 0===a?void 0:a.numberOfShades,mode:null===(n=m.current)||void 0===n?void 0:n.selectedMode,reverse:C},"HeatmapLayer"===M.type&&(M.type="VectorLayer"),e.sharedModel.updateLayer(o,M),r()},T=0===(null===(L=Object.keys(s))||void 0===L?void 0:L.length)?je().createElement("p",{className:"errors"},"This symbology type is not available; no attributes contain numeric values."):je().createElement(je().Fragment,null,je().createElement(ja,{featureProperties:s,selectedValue:p,setSelectedValue:u}),je().createElement("div",{className:"jp-gis-layer-symbology-container"},"color"===n&&je().createElement(je().Fragment,null,je().createElement("p",{className:"jp-info-text"},"Fill color is automatically controlled by the color ramp. To control fill manually, switch to ",je().createElement("strong",null,"Simple")," ","symbology."),je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",null,"Stroke Color:"),je().createElement("input",{type:"color",className:"jp-mod-styled",value:S.strokeColor,onChange:e=>{w(Object.assign(Object.assign({},S),{strokeColor:e.target.value}))}})),je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",null,"Stroke Width:"),je().createElement("input",{type:"number",className:"jp-mod-styled",value:S.strokeWidth,onChange:e=>{w(Object.assign(Object.assign({},S),{strokeWidth:+e.target.value}))}}))),"radius"===n&&je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",null,"Circle Radius:"),je().createElement("input",{type:"number",className:"jp-mod-styled",value:E.radius,onChange:t=>{(()=>{if(!(null==M?void 0:M.parameters))return;const t=Object.assign({},M.parameters.color);delete t["circle-radius"],f([]),M.parameters.color=t,e.sharedModel.updateLayer(o,M)})(),j(Object.assign(Object.assign({},E),{radius:+t.target.value}))}}))),"color"===n&&je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",null,je().createElement("input",{type:"checkbox",checked:C,onChange:e=>x(e.target.checked)}),"Reverse Color Ramp")),je().createElement(ya,{layerParams:M.parameters,modeOptions:["quantile","equal interval","jenks","pretty","logarithmic"],classifyFunc:(e,t,a)=>{let r;b({selectedRamp:a,numberOfShades:t,selectedMode:e});const o=Array.from(s[p]);switch(e){case"quantile":r=Xt.calculateQuantileBreaks(o,t);break;case"equal interval":r=Xt.calculateEqualIntervalBreaks(o,t);break;case"jenks":r=Xt.calculateJenksBreaks(o,t);break;case"pretty":r=Xt.calculatePrettyBreaks(o,t);break;case"logarithmic":r=Xt.calculateLogarithmicBreaks(o,t);break;default:return void console.warn("No mode selected")}const i="radius"===n?r.map(e=>({stop:e,output:e})):va.getValueColorPairs(r,a,t,C);"radius"===n?f(i):y(i)},showModeRow:!0,showRampSelector:"color"===n}),je().createElement(Ca,{selectedMethod:n||"color",stopRows:"color"===n?g:h,setStopRows:"color"===n?y:f}));var L;return je().createElement("div",{className:"jp-gis-layer-symbology-container"},je().createElement("p",null,"Color features based on an attribute containing scalar values."),T)},attributeChecker:nt,supportedLayerTypes:["VectorLayer","VectorTileLayer","HeatmapLayer"],isTabbed:!0},Categorized:{component:({model:e,state:t,okSignalPromise:a,cancel:r,layerId:o,symbologyTab:n,selectableAttributesAndValues:s})=>{const i=(0,Ee.useRef)(),l=(0,Ee.useRef)(),c=(0,Ee.useRef)(),[d,m]=(0,Ee.useState)(""),[p,u]=(0,Ee.useState)([]),[g,y]=(0,Ee.useState)(),[h,f]=(0,Ee.useState)({fillColor:"#3399CC",strokeColor:"#3399CC",strokeWidth:1.25,radius:5}),v=(0,Ee.useRef)(h),[b,S]=(0,Ee.useState)(!1);if(!o)return;const w=e.getLayer(o);if(!(null==w?void 0:w.parameters))return;(0,Ee.useEffect)(()=>{const e=fa.buildColorInfo(w);return u(e),a.promise.then(e=>{e.connect(E,void 0)}),()=>{a.promise.then(e=>{e.disconnect(E,void 0)})}},[]),(0,Ee.useEffect)(()=>{var e;if(null===(e=null==w?void 0:w.parameters)||void 0===e?void 0:e.color){const e=w.parameters.color["fill-color"],t=w.parameters.color["circle-fill-color"],a=w.parameters.color["stroke-color"],r=w.parameters.color["circle-stroke-color"],o=e=>"string"==typeof e&&/^#?[0-9A-Fa-f]{3,8}$/.test(e);f({fillColor:o(e)?e:o(t)?t:"#3399CC",strokeColor:o(a)?a:o(r)?r:"#3399CC",strokeWidth:w.parameters.color["stroke-width"]||w.parameters.color["circle-stroke-width"]||1.25,radius:w.parameters.color["circle-radius"]||5})}},[o]),(0,Ee.useEffect)(()=>{v.current=h},[h]),(0,Ee.useEffect)(()=>{var e,t;const a=null!==(t=null===(e=w.parameters.symbologyState)||void 0===e?void 0:e.value)&&void 0!==t?t:Object.keys(s)[0];m(a)},[s]),(0,Ee.useEffect)(()=>{i.current=d,l.current=p,c.current=g},[d,p,g]);const E=()=>{var t;if(!w.parameters)return;const a=Object.assign({},w.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]),a["fill-color"]=e,a["circle-fill-color"]=e,a["stroke-color"]=e,a["circle-stroke-color"]=e)}else a["fill-color"]=v.current.fillColor,a["circle-fill-color"]=v.current.fillColor;a["stroke-width"]=v.current.strokeWidth,a["circle-stroke-width"]=v.current.strokeWidth,a["circle-radius"]=v.current.radius,a["circle-stroke-color"]=v.current.strokeColor;const s={renderType:"Categorized",value:i.current,colorRamp:null===(t=c.current)||void 0===t?void 0:t.selectedRamp,symbologyTab:n,reverse:b};w.parameters.symbologyState=s,w.parameters.color=a,"HeatmapLayer"===w.type&&(w.type="VectorLayer"),e.sharedModel.updateLayer(o,w),r()},j=0===Object.keys(s).length?je().createElement("p",{className:"errors"},"This symbology type is not available; no attributes contain numeric values."):je().createElement(je().Fragment,null,je().createElement(ja,{featureProperties:s,selectedValue:d,setSelectedValue:m}),je().createElement("div",{className:"jp-gis-layer-symbology-container"},"color"===n&&je().createElement(je().Fragment,null,je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",null,"Fill Color:"),je().createElement("input",{type:"color",className:"jp-mod-styled",value:h.fillColor,onChange:t=>{(()=>{if(!(null==w?void 0:w.parameters))return;const t=Object.assign({},w.parameters.color);delete t["fill-color"],delete t["stroke-color"],delete t["circle-fill-color"],delete t["circle-stroke-color"],u([]),w.parameters.symbologyState&&(w.parameters.symbologyState.colorRamp=void 0),w.parameters.color=t,e.sharedModel.updateLayer(o,w)})(),f(e=>Object.assign(Object.assign({},e),{fillColor:t.target.value}))}})),je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",null,"Stroke Color:"),je().createElement("input",{type:"color",className:"jp-mod-styled",value:h.strokeColor,onChange:e=>{f(t=>Object.assign(Object.assign({},t),{strokeColor:e.target.value}))}})),je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",null,"Stroke Width:"),je().createElement("input",{type:"number",className:"jp-mod-styled",value:h.strokeWidth,onChange:e=>{f(t=>Object.assign(Object.assign({},t),{strokeWidth:+e.target.value}))}}))),"radius"===n&&je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",null,"Circle Radius:"),je().createElement("input",{type:"number",className:"jp-mod-styled",value:h.radius,onChange:e=>{f(t=>Object.assign(Object.assign({},t),{radius:+e.target.value}))}}))),"color"===n&&je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",null,je().createElement("input",{type:"checkbox",checked:b,onChange:e=>S(e.target.checked)}),"Reverse Color Ramp")),je().createElement("div",{className:"jp-gis-layer-symbology-container"},je().createElement(ya,{layerParams:w.parameters,modeOptions:[],classifyFunc:(e,t,a,r)=>{y({selectedFunction:"",selectedRamp:a,numberOfShades:t,selectedMode:e});const o=Array.from(s[d]).sort((e,t)=>e-t),n=va.getValueColorPairs(o,a,o.length,b);u(n)},showModeRow:!1,showRampSelector:"color"===n}),je().createElement(Ca,{selectedMethod:"",stopRows:p,setStopRows:u})));return je().createElement("div",{className:"jp-gis-layer-symbology-container"},je().createElement("p",null,"Color features based on an attribute containing unique values."),j)},attributeChecker:ot,supportedLayerTypes:["VectorLayer","VectorTileLayer","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,Ee.useState)("viridis"),[l,c]=(0,Ee.useState)({radius:8,blur:15}),[d,m]=(0,Ee.useState)(!1),p=(0,Ee.useRef)("viridis"),u=(0,Ee.useRef)({radius:8,blur:15}),g=(0,Ee.useRef)(!1);(0,Ee.useEffect)(()=>(y(),a.promise.then(e=>{e.connect(h,void 0)}),()=>{a.promise.then(e=>{e.disconnect(h,void 0)})}),[]),(0,Ee.useEffect)(()=>{p.current=s,u.current=l,g.current=d},[s,l,d]);const y=async()=>{var e;let t;(null===(e=n.parameters)||void 0===e?void 0:e.symbologyState)&&(t=n.parameters.symbologyState.colorRamp),i(t||"viridis")},h=()=>{if(!n.parameters)return;let t=ra()({colormap:p.current,nshades:9,format:"hex"});g.current&&(t=[...t].reverse());const a={renderType:"Heatmap",colorRamp:p.current,reverse:g.current};n.parameters.symbologyState=a,n.parameters.color=t,n.parameters.blur=u.current.blur,n.parameters.radius=u.current.radius,n.type="HeatmapLayer",e.sharedModel.updateLayer(o,n),r()};return je().createElement("div",{className:"jp-gis-layer-symbology-container"},je().createElement("p",null,"Represent features based on their density using a heatmap."),je().createElement("div",{className:"jp-gis-symbology-row jp-gis-heatmap"},je().createElement("label",{htmlFor:"color-ramp-select"},"Color Ramp:"),je().createElement(ua,{selectedRamp:s,setSelected:i})),je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",null,je().createElement("input",{type:"checkbox",checked:d,onChange:e=>m(e.target.checked)}),"Reverse Color Ramp")),je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",{htmlFor:"vector-value-select"},"Radius:"),je().createElement("input",{type:"number",value:l.radius,className:"jp-mod-styled",onChange:e=>c(t=>Object.assign(Object.assign({},t),{radius:+e.target.value}))})),je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",{htmlFor:"vector-value-select"},"Blur:"),je().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}},Oa=({model:e,state:t,okSignalPromise:a,cancel:r,layerId:o})=>{const[n,s]=(0,Ee.useState)(),[i,l]=(0,Ee.useState)("color");if(!o)return;const c=e.getLayer(o);if(!(null==c?void 0:c.parameters))return;const{featureProperties:d,isLoading:m}=Ea({layerId:o,model:e});if(((e,t)=>{(0,Ee.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 je().createElement("p",null,"Loading...");if(void 0===n)return;const p=((e,t)=>{const a=ct(xa).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 je().createElement(je().Fragment,null,u.isTabbed&&je().createElement("div",{className:"jp-gis-symbology-tabs"},["color","radius"].map(e=>je().createElement("button",{key:e,className:"jp-gis-tab "+(i===e?"active":""),onClick:()=>l(e)},e.charAt(0).toUpperCase()+e.slice(1)))),je().createElement("div",{className:"jp-gis-symbology-row"},je().createElement("label",{htmlFor:"render-type-select"},"Render Type:"),je().createElement("div",{className:"jp-select-wrapper"},je().createElement("select",{name:"render-type-select",id:"render-type-select",className:"jp-mod-styled",value:n,onChange:e=>{s(e.target.value)}},ct(p).filter(([e,t])=>t.layerTypeSupported&&!("Heatmap"===e&&"radius"===i)).map(([e,t])=>je().createElement("option",{key:e,value:e},e))))),je().createElement(u.component,Object.assign({model:e,state:t,okSignalPromise:a,cancel:r,layerId:o},u.isTabbed?{symbologyTab:i}:{},u.selectableAttributesAndValues?{selectableAttributesAndValues:u.selectableAttributesAndValues}:{})))},_a=({model:e,state:t,okSignalPromise:a,cancel:r})=>{const[o,n]=(0,Ee.useState)(null),[s,i]=(0,Ee.useState)(null);let l;return(0,Ee.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,Ee.useEffect)(()=>{if(!o)return;const n=e.getLayer(o);if(n){switch(n.type){case"VectorLayer":case"VectorTileLayer":case"HeatmapLayer":l=je().createElement(Oa,{model:e,state:t,okSignalPromise:a,cancel:r,layerId:o});break;case"WebGlLayer":l=je().createElement(wa,{model:e,state:t,okSignalPromise:a,cancel:r,layerId:o});break;default:l=je().createElement("div",null,"Layer Type Not Supported")}i(l)}},[o]),je().createElement(je().Fragment,null,s)};class Ma extends s.Dialog{constructor(e){const t=new we.PromiseDelegate;super({title:"Symbology",body:je().createElement(_a,{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 Na=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":".jp-gis-layerItem"},{"command":"jupytergis:removeGroup","keys":["Delete"],"selector":".data-jgis-keybinding .jp-gis-layerGroupHeader"},{"command":"jupytergis:renameGroup","keys":["F2"],"selector":".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 Ia=a(66519),Ta=a.n(Ia);async function La(){const e=new URL(a(99875),a.b),t=new URL(a(61003),a.b);return await Ta()({paths:{wasm:t.href,data:e.href},useWorker:!1})}function ka(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 Pa(e,t){const a=ka(t);return!!a&&e.includes(a.type)}async function Aa(e,t,a,r,o){var n,s,i;const c=ka(e);if(!c||!e.currentWidget)return;const d=e.currentWidget.model,m=null!==(n=null==d?void 0:d.sharedModel.sources)&&void 0!==n?n:{},p=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 lt(r,a):(console.error(`Source with ID ${e.parameters.source} not found or missing path.`),null)}(c,m,d);if(!p)return;const u=Object.assign({},t.getSchemas().get(a)),g=Object.keys((null===(i=null===(s=null==d?void 0:d.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 gt({title:a.charAt(0).toUpperCase()+a.slice(1),schema:u,model:d,sourceData:{inputLayer:g,outputLayerName:c.name},formContext:"create",processingType:a,syncData:a=>{e(a),t.dispose()}});t.launch()});if(!y)return;if(!l.processingList.includes(a))return void console.error(`Unsupported processing type: ${a}`);const h=function(e,t){if(!l.processingList.includes(t))return void console.error(`Unsupported processing type: ${t}`);const a=l.ProcessingMerge.find(e=>e.description===t);if(!a)return;const r=a.operationParams,o={};for(let t=0;t<r.length;t++){const a=r[t];o[a]=e[a]}return o}(y,a),f=y.embedOutputLayer,v=new Blob([p],{type:"application/geo+json"}),b=new File([v],"data.geojson",{type:"application/geo+json"}),S=await La(),w=(await S.open(b)).datasets[0].info.layers[0].name,E=r.sqlQueryFn(w,h),j=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 La(),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);m.close(u);const f=`${o} ${n.charAt(0).toUpperCase()+n.slice(1)}`;if(s){const t=JSON.parse(h),a=we.UUID.uuid4(),r={type:"GeoJSONSource",name:`${f} Source`,parameters:{data:t}},o={type:"VectorLayer",parameters:{source:a},visible:!0,name:f};e.sharedModel.addSource(a,r),e.addLayer(we.UUID.uuid4(),o)}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=we.UUID.uuid4(),m={type:"GeoJSONSource",name:r,parameters:{path:r}},p={type:"VectorLayer",parameters:{source:d},visible:!0,name:f};e.sharedModel.addSource(d,m),e.addLayer(we.UUID.uuid4(),p)}}(d,p,r.gdalFunction,j,y.outputLayerName,a,f,e,o)}function Ga(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}var Ra=a(23638),Da=a(77612),Fa=a(46230),Ba=a(51247),za=a(80171);class Va extends Ba.BoxPanel{constructor(e){super({direction:"top-to-bottom"}),this._resize=Pe(()=>{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 za.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),Ba.BoxPanel.setStretch(this._consolePanel,1),this._consolePanel.toolbar.addItem("spacer",c.Toolbar.createSpacerItem()),this._consolePanel.toolbar.addItem("toggle",new c.CommandToolbarButton({label:"",icon:c.expandIcon,id:"jupytergis:toggleConsole",commands:e.commandRegistry})),this._consolePanel.toolbar.addItem("close",new c.CommandToolbarButton({label:"",icon:c.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 Wa=a(46167),Ua=a(17419),$a=a(95854),qa=a(20489),Ha=a(98629),Ja=a(75839),Qa=a(77835),Za=a(55446),Ya=a(45596),Ka=a(19362),Xa=a(44509),er=a(56952),tr=a(39512),ar=a(20696),rr=a(15e3),or=a(58439),nr=a(49809),sr=a(30833),ir=a(13515),lr=a(51370),cr=a(51357),dr=a(25465),mr=a(7041),pr=a(81982),ur=a(88436),gr=a(79178),yr=a(43802),hr=a(33758),fr=a(59916),vr=a(5588),br=a(73626),Sr=a(12895),wr=a(5464),Er=a(28528),jr=a(46148),Cr=a(83486),xr=a(34633),Or=a(28303),_r=a(3897),Mr=a(17903),Nr=a(16328),Ir=a(78882),Tr=a(58471),Lr=a(21590),kr=a(50207),Pr=a(25174),Ar=a(37056),Gr=a(52972),Rr=a(40972),Dr=a(54189),Fr=a.n(Dr);const Br=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 je().createElement("div",{className:"jGIS-Annotation-Message",style:{flexFlow:o?"row":"row-reverse"}},je().createElement("div",{className:"jGIS-Annotation-User-Icon",style:{backgroundColor:i},title:l},je().createElement("span",{style:{width:24,textAlign:"center"}},c)),je().createElement("div",{className:"jGIS-Annotation-Message-Content"},je().createElement("p",{style:{padding:7,margin:0}},n)))},zr=({itemId:e,annotationModel:t,jgisModel:a,children:r})=>{const[o,n]=(0,Ee.useState)(""),i=t.getAnnotation(e),l=(0,Ee.useMemo)(()=>{var e;return null!==(e=null==i?void 0:i.contents)&&void 0!==e?e:[]},[i]),d=()=>{t.addContent(e,o),n("")};return je().createElement("div",{className:"jGIS-Annotation"},r,je().createElement("div",null,l.map(e=>{var a,r;return je().createElement(Br,{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)})})),je().createElement("div",{className:"jGIS-Annotation-Message"},je().createElement("textarea",{"data-id":"annotation-textarea",rows:3,placeholder:"Ctrl+Enter to submit",value:o,onChange:e=>n(e.currentTarget.value),onKeyDown:e=>{e.ctrlKey&&"Enter"===e.key&&d()}})),je().createElement("div",{className:"jGIS-Annotation-Buttons"},je().createElement(c.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,s.showDialog)({title:"Delete Annotation",body:"Are you sure you want to delete this annotation?",buttons:[s.Dialog.cancelButton(),s.Dialog.okButton({label:"Delete"})]})).button.accept&&t.removeAnnotation(e)}},je().createElement(ht.g,{icon:yt.yLS})),a&&je().createElement(c.Button,{className:"jp-mod-styled jp-mod-accept",onClick:()=>{null==a||a.centerOnPosition(e)}},je().createElement(ht.g,{icon:yt.EwE})),je().createElement(c.Button,{className:"jp-mod-styled jp-mod-accept",onClick:d},je().createElement(ht.g,{icon:yt.isI}))))},Vr=({itemId:e,annotationModel:t})=>{const a=t.getAnnotation(e),[r,o]=(0,Ee.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 je().createElement(je().Fragment,null,je().createElement("div",{className:"jGIS-Annotation-Handler",onClick:()=>n(!r)}),je().createElement("div",{className:"jGIS-FloatingAnnotation",style:{visibility:r?"visible":"hidden"}},je().createElement(zr,{itemId:e,annotationModel:t},je().createElement("div",{className:"jGIS-Popup-Topbar",onClick:()=>{n(!1)}},je().createElement(ht.g,{icon:yt.umU,className:"jGIS-Popup-TopBarIcon"})))))},Wr=({jgisModel:e,loading:t,projection:a,scale:r})=>{var o;const[n,s]=(0,Ee.useState)({x:0,y:0});return(0,Ee.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]),je().createElement("div",{className:"jgis-status-bar"},t&&je().createElement("div",{style:{width:"16%",padding:"0 6px"}},je().createElement(Ce.Progress,{height:14})),je().createElement("div",{className:"jgis-status-bar-item"},je().createElement("span",null,"jgis: ","0.12.0")),je().createElement("div",{className:"jgis-status-bar-item jgis-status-bar-coords"},je().createElement(ht.g,{icon:yt.gKm}),je().createElement("span",null," ","x: ",Math.trunc(n.x)," y: ",Math.trunc(n.y))),je().createElement("div",{className:"jgis-status-bar-item"},je().createElement(ht.g,{icon:yt.W2$})," ",je().createElement("span",null,"Scale: 1: ",Math.trunc(r))),je().createElement("div",{className:"jgis-status-bar-item"},je().createElement(ht.g,{icon:yt.Bwz})," ",je().createElement("span",null,null!==(o=null==a?void 0:a.code)&&void 0!==o?o:null)),je().createElement("div",{className:"jgis-status-bar-item"},"Units: ",null==a?void 0:a.units))},Ur=({clients:e})=>{const[t,a]=(0,Ee.useState)(!1);return je().createElement(je().Fragment,null,e&&Object.values(e).map(e=>je().createElement("div",{className:"jGIS-Popup-Wrapper",style:{left:`${e.coordinates.x}px`,top:`${e.coordinates.y}px`}},je().createElement("div",{key:e.username,className:"jGIS-Remote-Pointer",style:{color:e.color,cursor:"pointer"},onClick:()=>{a(!t)}},je().createElement(ht.g,{icon:yt.eX_,className:"jGIS-Remote-Pointer-Icon"})),je().createElement("div",{style:{visibility:t?"visible":"hidden",background:e.color},className:"jGIS-Remote-Pointer-Popup jGIS-Floating-Pointer-Popup"},je().createElement("div",{className:"jGIS-Popup-Topbar",onClick:()=>{a(!1)}},je().createElement(ht.g,{icon:yt.umU,className:"jGIS-Popup-TopBarIcon"})),je().createElement("div",{className:"jGIS-Remote-Pointer-Popup-Name"},e.displayName),je().createElement("div",{className:"jGIS-Remote-Pointer-Popup-Coordinates"},je().createElement("br",null),"Pointer Location:",je().createElement("br",null),"Longitude: ",e.lonLat.longitude.toFixed(2),je().createElement("br",null),"Latitude: ",e.lonLat.latitude.toFixed(2))))))},$r=({remoteUser:e})=>(null==e?void 0:e.display_name)?je().createElement("div",{style:{position:"absolute",top:1,right:3,background:e.color}},`Following ${e.display_name}`):null;var qr=a(52196),Hr=a(30508),Jr=a(76971),Qr=a(7687);const Zr=["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"],Yr={millisecond:1,second:Qr._m,minute:Qr.Cg,hour:Qr.s0,day:Qr.w4,week:Qr.my,month:Qr.Nw*Qr.Cg,year:Qr.w4*Qr.Ki},Kr=({model:e,filterStates:t})=>{const[a,r]=(0,Ee.useState)(""),[o,n]=(0,Ee.useState)(""),[s,i]=(0,Ee.useState)({start:0,end:1}),[l,c]=(0,Ee.useState)({min:0,max:1}),[d,m]=(0,Ee.useState)([]),[p,u]=(0,Ee.useState)("yyyy-MM-dd"),[g,y]=(0,Ee.useState)(Yr.year),[h,f]=(0,Ee.useState)(0),[v,b]=(0,Ee.useState)(1),[S,w]=(0,Ee.useState)({}),E=(0,Ee.useRef)(""),j=(0,Ee.useRef)(null),{featureProperties:C}=Ea({layerId:a,model:e});(0,Ee.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),_(),j.current&&clearInterval(j.current)}},[]),(0,Ee.useEffect)(()=>{E.current=a},[a]),(0,Ee.useEffect)(()=>{const e=[];for(const[t,a]of Object.entries(C)){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=x(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])},[C]),(0,Ee.useEffect)(()=>{var r,n,s;if(!o||!C[o])return;const l=C[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(Yr).filter(([e,t])=>t<g-u)),f=t[a],v=null!==(r=Object.values(h).slice(-1)[0])&&void 0!==r?r:Yr.millisecond;w(h),y(v),c({min:u,max:g}),i({start:null!==(n=null==f?void 0:f.betweenMin)&&void 0!==n?n:u,end:null!==(s=null==f?void 0:f.betweenMax)&&void 0!==s?s:u+v}),e.addFeatureAsMs(a,o)},[o]),(0,Ee.useEffect)(()=>{const e=t[a];f("number"==typeof(null==e?void 0:e.value)?e.value:l.min)},[l]);const x=e=>{for(const t of Zr){const a=(0,qr.qg)(e,t,new Date);if((0,Hr.f)(a))return t}return null},O=(e,t)=>{const a=new Date(e);return(0,Jr.GP)(a,t)},_=()=>{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 je().createElement("div",{className:"jp-gis-temporal-slider-container"},je().createElement("div",{className:"jp-gis-temporal-slider-row"},je().createElement("div",null,je().createElement("label",{htmlFor:"time-feature-select"},"Feature: "),je().createElement("select",{id:"time-feature-select",onChange:e=>{n(e.target.value)}},d.map(e=>je().createElement("option",{value:e,selected:o===e},e)))),je().createElement("div",null,je().createElement("span",null,"Current Frame:")," ",O(s.start,p)," ≤ ",je().createElement("span",null,"t")," ≤"," ",O(s.end,p))),je().createElement("div",{className:"jp-gis-temporal-slider-row"},je().createElement("div",{className:"jp-gis-temporal-slider-controls"},je().createElement("div",{className:"jp-gis-temporal-slider-sub-controls"},je().createElement(Ce.Button,{appearance:"neutral",scale:"medium",onClick:()=>{j.current&&clearInterval(j.current)}},je().createElement(ht.g,{icon:yt.G1Y})),je().createElement(Ce.Button,{appearance:"neutral",scale:"medium",onClick:()=>{j.current&&clearInterval(j.current),j.current=setInterval(()=>{f(e=>{const t=e+g;return t>=l.max-g&&j.current?(clearInterval(j.current),l.max-g):t})},1e3/v)}},je().createElement(ht.g,{icon:yt.ijD}))),je().createElement("div",{className:"jp-gis-temporal-slider-sub-controls",style:{minWidth:0}},je().createElement("label",{htmlFor:"fps-number-input"},"FPS:"),je().createElement("input",{name:"fps-number-input",type:"number",value:v,onChange:e=>b(+e.target.value)}))),je().createElement("div",null,je().createElement(Ce.Slider,{min:l.min,max:l.max-g,value:h,valueAsNumber:h,step:g,onChange:t=>{f(+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"}))),je().createElement("div",{className:"jp-gis-temporal-slider-row"},je().createElement("div",null,je().createElement("span",null,"Range: "),O(l.min,p)," ",je().createElement("span",null,"to "),O(l.max,p)),je().createElement("div",null,je().createElement("label",{htmlFor:"time-step-select"},"Step: "),je().createElement("select",{id:"time-step-select",onChange:e=>{y(+e.target.value)}},Object.entries(S).map(([e,t])=>je().createElement("option",{key:e,selected:t===g,value:t},e))))))};const Xr=({layerId:e,model:t})=>{const[a,r]=(0,Ee.useState)(null),[o,n]=(0,Ee.useState)(!0),[s,i]=(0,Ee.useState)();return(0,Ee.useEffect)(()=>{if(!e)return;let a=!1;const o=()=>{var o;try{n(!0),i(void 0);const s=t.getLayer(e);if(!s)throw new Error(`Layer not found: ${e}`);const l=null!==(o=s.parameters)&&void 0!==o?o:{},{symbologyState:c,color:d}=l,m=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}(l,["symbologyState","color"]),p=Object.assign(Object.assign(Object.assign({},m),d?{color:d}:{}),c?{symbologyState:c}:{});a||r(p)}catch(e){a||(i(e),r(null))}finally{a||n(!1)}};return o(),t.sharedModel.awareness.on("change",()=>{o()}),()=>{a=!0}},[e,t]),{symbology:a,isLoading:o,error:s}},eo=({layerId:e,model:t})=>{const{symbology:a,isLoading:r,error:o}=Xr({layerId:e,model:t}),[n,s]=(0,Ee.useState)(null);return(0,Ee.useEffect)(()=>{var e,t,n,i,l,c,d,m,p;if(r)return void s(je().createElement("p",{style:{fontSize:"0.8em"}},"Loading…"));if(o)return void s(je().createElement("p",{style:{color:"red",fontSize:"0.8em"}},o.message));if(!a)return void s(je().createElement("p",{style:{fontSize:"0.8em"}},"No symbology"));const u=null===(e=a.symbologyState)||void 0===e?void 0:e.renderType,g=null===(t=a.symbologyState)||void 0===t?void 0:t.value,y=null!==(i=null===(n=a.color)||void 0===n?void 0:n["fill-color"])&&void 0!==i?i:null===(l=a.color)||void 0===l?void 0:l["circle-fill-color"],h=null!==(d=null===(c=a.color)||void 0===c?void 0:c["stroke-color"])&&void 0!==d?d:null===(m=a.color)||void 0===m?void 0:m["circle-stroke-color"];if("Single Symbol"!==u){if("Graduated"===u){const e=(e=>{if(!Array.isArray(e)||"interpolate"!==e[0])return[];const t=[];for(let a=3;a<e.length;a+=2){const r=e[a],o=e[a+1],n=Array.isArray(o)?`rgba(${o[0]},${o[1]},${o[2]},${o[3]})`:String(o);t.push({value:r,color:n})}return t})(y||h);if(!e.length)return void s(je().createElement("p",{style:{fontSize:"0.8em"}},"No graduated symbology"));const t=`linear-gradient(to right, ${e.map((t,a)=>{const r=a/(e.length-1)*100;return`${t.color} ${r}%`}).join(", ")})`;return void s(je().createElement("div",{style:{padding:6,width:"90%"}},g&&je().createElement("div",{style:{fontSize:"1em",marginBottom:20}},je().createElement("strong",null,g)),je().createElement("div",{style:{position:"relative",height:12,background:t,border:"1px solid #ccc",borderRadius:3,marginBottom:20,marginTop:10}},e.map((t,a)=>{const r=a/(e.length-1)*100,o=a%2==0;return je().createElement("div",{key:a,style:{position:"absolute",left:`${r}%`,transform:"translateX(-50%)"}},je().createElement("div",{style:{width:1,height:8,background:"#333",margin:"0 auto"}}),je().createElement("div",{style:{position:"absolute",top:o?-18:12,fontSize:"0.7em",whiteSpace:"nowrap",marginTop:o?0:4}},t.value.toFixed(2)))}))))}if("Categorized"===u){const e=(e=>{if(!Array.isArray(e)||"case"!==e[0])return[];const t=[];for(let a=1;a<e.length-1;a+=2){const r=e[a],o=e[a+1];let n="";Array.isArray(r)&&"=="===r[0]&&(n=r[2]);let s="";Array.isArray(o)?s=`rgba(${o[0]},${o[1]},${o[2]},${o[3]})`:"string"==typeof o&&(s=o),t.push({category:n,color:s})}return t})(y||h);return e.length?void s(je().createElement("div",{style:{padding:6}},g&&je().createElement("div",{style:{fontSize:"1em",marginBottom:6}},je().createElement("strong",null,g)),je().createElement("div",{style:{display:"grid",gap:6,maxHeight:200,overflowY:"auto",paddingRight:4}},e.map((e,t)=>je().createElement("div",{key:t,style:{display:"flex",alignItems:"center",gap:8}},je().createElement("span",{style:{width:16,height:16,background:e.color||"#ccc",border:"1px solid #000",borderRadius:2}}),je().createElement("span",{style:{fontSize:"0.75em"}},String(e.category))))))):void s(je().createElement("p",{style:{fontSize:"0.8em"}},"No categorized symbology"))}if("Heatmap"===u){const e=Array.isArray(a.color)?a.color:[];if(!e.length)return void s(je().createElement("p",{style:{fontSize:"0.8em"}},"No heatmap colors"));const t=`linear-gradient(to right, ${e.join(", ")})`,r=null===(p=a.symbologyState)||void 0===p?void 0:p.reverse;return void s(je().createElement("div",{style:{padding:6,width:"90%"}},je().createElement("div",{style:{fontSize:"1em",marginBottom:10}},je().createElement("strong",null,"Heatmap")),je().createElement("div",{style:{height:12,background:t,border:"1px solid #ccc",borderRadius:3,marginBottom:4}}),je().createElement("div",{style:{display:"flex",justifyContent:"space-between",fontSize:"0.75em",marginBottom:8}},je().createElement("span",{style:{fontWeight:"bold"}},"Low"),je().createElement("span",{style:{fontWeight:"bold"}},"High")),je().createElement("div",{style:{fontSize:"0.75em",display:"flex",flexDirection:"column",gap:2}},r&&je().createElement("span",{style:{fontWeight:"bold"}},"Reversed ramp"))))}s(je().createElement("p",null,"Unsupported symbology: ",String(u)))}else s(je().createElement("div",{style:{display:"flex",gap:12,flexWrap:"wrap",padding:6}},y&&je().createElement("div",{style:{display:"flex",alignItems:"center",gap:6}},je().createElement("span",{style:{width:16,height:16,border:"1px solid #000",background:y}}),je().createElement("span",{style:{fontSize:"0.8em"}},"Fill")),h&&je().createElement("div",{style:{display:"flex",alignItems:"center",gap:6}},je().createElement("span",{style:{width:24,height:2,background:h,border:"1px solid #000"}}),je().createElement("span",{style:{fontSize:"0.8em"}},"Stroke")),!y&&!h&&je().createElement("span",{style:{fontSize:"0.8em"}},"No symbol colors")))},[a,r,o]),je().createElement("div",null,n)},to="jp-gis-layerGroupHeader",ao="jp-gis-layerItem",ro="jp-gis-layerIcon",oo="jp-gis-layerText data-jgis-keybinding",no=e=>{const t=e.model,[a,r]=(0,Ee.useState)(e.layerTree||[]),o=({type:t,item:a,event:r})=>{(({type:t,item:a,event:r})=>{if(!e.model)return;const o=e.model.selected;if(o&&!r.ctrlKey&&2===r.button&&a in o)return;let n;n=o?r.ctrlKey?Object.values(o).some(e=>e.type===t)?Object.assign(Object.assign({},o),{[a]:{type:t}}):{[a]:{type:t}}:{[a]:{type:t}}:{[a]:{type:t}},e.model.selected=n,e.commands.notifyCommandChanged(ve.identify),e.commands.notifyCommandChanged(ve.temporalController)})({type:t,item:a,event:r})};return(0,Ee.useEffect)(()=>{e.layerTree&&r(e.layerTree)},[e.layerTree]),je().createElement("div",{id:"jp-gis-layer-tree",onDrop:e=>{if(co.dragIndicator.style.display="none",void 0===t)return;const{draggedElement:a,dragOverElement:r,dragOverPosition:o}=co.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(to)&&"below"===o?null==t||t.moveItemsToGroup([n],s):null==t||t.moveItemRelatedTo(n,s,"above"===o))},onDragOver:e=>{e.stopPropagation(),e.preventDefault(),co.dragInfo.dragOverElement=null,co.dragInfo.dragOverPosition=null}},a.map(a=>"string"==typeof a?je().createElement(lo,{key:a,gisModel:t,layerId:a,onClick:o}):je().createElement(so,{key:a.name,gisModel:t,group:a,onClick:o,state:e.state})))},so=e=>{var t,a;const{group:r,gisModel:o,onClick:n,state:i}=e;if(void 0===r)return je().createElement(je().Fragment,null);const[l,d]=(0,Ee.useState)(""),[m,p]=(0,Ee.useState)(!1),u=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,Ee.useState)(io(r.name,o)),[f,v]=(0,Ee.useState)(!1),[b,S]=(0,Ee.useState)("");(0,Ee.useEffect)(()=>{d(s.DOMUtils.createDomID()),(async()=>{var e;const t=await i.fetch(`jupytergis:${r.name}`);p(null!==(e=null==t?void 0:t.expanded)&&void 0!==e&&e)})()},[]),(0,Ee.useEffect)(()=>{const e=()=>{h(io(r.name,o))};return null==o||o.clientStateChanged.connect(e),()=>{null==o||o.clientStateChanged.disconnect(e)}},[o,r.name]),(0,Ee.useEffect)(()=>{const e=(e,t)=>{"group"===(null==t?void 0:t.type)&&t.itemId===u?(v(!0),S(u)):v(!1)},t=null==o?void 0:o.editing;return"group"===(null==t?void 0:t.type)&&t.itemId===u&&(v(!0),S(u)),null==o||o.editingChanged.connect(e),()=>{null==o||o.editingChanged.disconnect(e)}},[o,u]);const w=()=>{const e=b.trim();e&&e!==u&&o&&o.renameLayerGroup(u,e),null==o||o.clearEditingItem()};return je().createElement("div",{className:`${ao} jp-gis-layerGroup`,draggable:!0,onDragStart:co.onDragStart,onDragEnd:co.onDragEnd,"data-id":u},je().createElement("div",{onClick:async()=>{i.save(`jupytergis:${r.name}`,{expanded:!m}),p(!m)},onContextMenu:e=>{n({type:"group",item:u,event:e})},className:`${to}${y?" jp-mod-selected":""}`,onDragOver:co.onDragOver,"data-id":u},je().createElement(c.LabIcon.resolveReact,{icon:c.caretDownIcon,className:"jp-gis-layerGroupCollapser"+(m?" jp-mod-expanded":""),tag:"span"}),f?je().createElement("input",{type:"text",value:b,onChange:e=>S(e.target.value),onKeyDown:e=>{"Enter"===e.key?(e.preventDefault(),w()):"Escape"===e.key&&(e.preventDefault(),S(u),null==o||o.clearEditingItem())},onBlur:w,className:oo,style:{flex:1,border:"1px solid var(--jp-border-color1)",borderRadius:"2px",padding:"2px 4px",fontSize:"inherit",fontFamily:"inherit"},autoFocus:!0}):je().createElement("span",{id:l,className:oo,tabIndex:-2},u)),m&&je().createElement("div",null,g.slice().reverse().map(t=>"string"==typeof t?je().createElement(lo,{key:t,gisModel:o,layerId:t,onClick:n}):je().createElement(so,{key:t.name,gisModel:o,group:t,onClick:n,state:e.state}))))};function io(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 lo=e=>{const{layerId:t,gisModel:a,onClick:r}=e,o=null==a?void 0:a.getLayer(t);if(void 0===o)return je().createElement(je().Fragment,null);const[n,i]=(0,Ee.useState)(""),[l,d]=(0,Ee.useState)(io(t,a)),[m,p]=(0,Ee.useState)(!1),[u,g]=(0,Ee.useState)(!1),[y,h]=(0,Ee.useState)(""),{symbology:f}=Xr({layerId:t,model:a}),v=void 0!==(null==f?void 0:f.symbologyState),b=o.name;(0,Ee.useEffect)(()=>{i(s.DOMUtils.createDomID())},[]),(0,Ee.useEffect)(()=>{const e=(e,r)=>{d(io(t,a))};return null==a||a.clientStateChanged.connect(e),()=>{null==a||a.clientStateChanged.disconnect(e)}},[a,t]),(0,Ee.useEffect)(()=>{const e=(e,a)=>{"layer"===(null==a?void 0:a.type)&&a.itemId===t?(g(!0),h(b)):g(!1)},r=null==a?void 0:a.editing;return"layer"===(null==r?void 0:r.type)&&r.itemId===t&&(g(!0),h(b)),null==a||a.editingChanged.connect(e),()=>{null==a||a.editingChanged.disconnect(e)}},[a,t,b]);const S=e=>{r({type:"layer",item:t,event:e})},w=()=>{const e=y.trim();if(e&&e!==b&&a){const r=Object.assign(Object.assign({},o),{name:e});a.sharedModel.updateLayer(t,r)}null==a||a.clearEditingItem()};return je().createElement("div",{className:`${ao} jp-gis-layer${l?" jp-mod-selected":""}`,draggable:!0,onDragStart:co.onDragStart,onDragOver:co.onDragOver,onDragEnd:co.onDragEnd,"data-id":t,style:{display:"flex",flexDirection:"column"}},je().createElement("div",{className:"jp-gis-layerTitle",onClick:S,onContextMenu:S,style:{display:"flex"}},v&&je().createElement(c.Button,{minimal:!0,onClick:e=>{e.stopPropagation(),p(e=>!e)},title:m?"Hide legend":"Show legend"},je().createElement(c.LabIcon.resolveReact,{icon:m?c.caretDownIcon:c.caretRightIcon,tag:"span"})),"StorySegmentLayer"===o.type?je().createElement("span",{className:"jp-gis-layerSlideNumber",title:"Slide number"},(()=>{if(!a)return;const{story:e}=a.getSelectedStory();return(null==e?void 0:e.storySegments)?e.storySegments.indexOf(t)+1:void 0})()):je().createElement(c.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},je().createElement(c.LabIcon.resolveReact,{icon:o.visible?oe:ne,className:`${ro}${o.visible?"":" jp-gis-mod-hidden"}`,tag:"span"})),Se.has(o.type)&&je().createElement(c.LabIcon.resolveReact,Object.assign({},Se.get(o.type),{className:ro})),u?je().createElement("input",{type:"text",value:y,onChange:e=>h(e.target.value),onKeyDown:e=>{"Enter"===e.key?(e.preventDefault(),w()):"Escape"===e.key&&(e.preventDefault(),h(b),null==a||a.clearEditingItem())},onBlur:w,className:oo,style:{flex:1,border:"1px solid var(--jp-border-color1)",borderRadius:"2px",padding:"2px 4px",fontSize:"inherit",fontFamily:"inherit"},autoFocus:!0}):je().createElement("span",{id:n,className:oo,tabIndex:-2},b),je().createElement(c.Button,{title:"Move map to the extent of the layer",onClick:()=>{null==a||a.centerOnPosition(t)},minimal:!0},je().createElement(c.LabIcon.resolveReact,{icon:he,className:ro,tag:"span"}))),m&&a&&v&&je().createElement("div",{style:{marginTop:6,width:"100%"}},je().createElement(eo,{layerId:t,model:a})))};var co;!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(`.${to}, .${ao}`);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(to)&&(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}}(co||(co={}));var mo=a(45250);const po=({index:e,features:t,filterRows:a,setFilterRows:r,deleteRow:o})=>{const[n,s]=(0,Ee.useState)({}),[i,l]=(0,Ee.useState)(a[e].feature||Object.keys(t)[0]);(0,Ee.useEffect)(()=>{l(a[e].feature)},[a]),(0,Ee.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,Ee.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&&d(r)},[i]);const d=t=>{const o=[...a],s="number"==typeof n[i][0];o[e].value=s?+t:t,r(o)};return je().createElement("div",{className:"jp-gis-filter-row"},je().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)=>je().createElement("option",{key:r,value:t,selected:t===a[e].feature},t))),je().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)=>je().createElement("option",{key:r,value:t,selected:t===a[e].operator},t))),je().createElement("select",{id:`jp-gis-value-select-${e}`,className:"jp-mod-styled rjsf",onChange:e=>{d(e.target.value)}},n[i]&&[...n[i]].map((t,r)=>je().createElement("option",{key:r,value:t,selected:t===a[e].value},t))),je().createElement(c.Button,{id:`jp-gis-remove-filter-${e}`,className:"jp-Button jp-gis-filter-icon"},je().createElement(ht.g,{icon:yt.yLS,onClick:o})))},uo=({model:e})=>{const t=(0,Ee.useRef)({}),[a,r]=(0,Ee.useState)("all"),[o,n]=(0,Ee.useState)(""),[s,i]=(0,Ee.useState)(!1),[l,d]=(0,Ee.useState)([]),[m,p]=(0,Ee.useState)({});(0,Ee.useEffect)(()=>{var t,a,r,o;(null===(a=null===(t=null==e?void 0:e.localState)||void 0===t?void 0:t.selected)||void 0===a?void 0:a.value)&&n(Object.keys(null===(o=null===(r=null==e?void 0:e.localState)||void 0===r?void 0:r.selected)||void 0===o?void 0:o.value)[0])},[]),(0,Ee.useEffect)(()=>{const t=()=>{var t,a,r,o;if(!(null===(a=null===(t=null==e?void 0:e.localState)||void 0===t?void 0:t.selected)||void 0===a?void 0:a.value))return;const s=Object.keys(null===(o=null===(r=null==e?void 0:e.localState)||void 0===r?void 0:r.selected)||void 0===o?void 0:o.value)[0];n(s)},a=(t,a)=>{var r,o,n,s;if(a.has("zoom")){if(!(null===(o=null===(r=null==e?void 0:e.localState)||void 0===r?void 0:r.selected)||void 0===o?void 0:o.value))return;const t=Object.keys(null===(s=null===(n=null==e?void 0:e.localState)||void 0===n?void 0:n.selected)||void 0===s?void 0:s.value)[0];g(t)}};return null==e||e.clientStateChanged.connect(t),null==e||e.sharedOptionsChanged.connect(a),()=>{null==e||e.clientStateChanged.disconnect(t),null==e||e.sharedOptionsChanged.disconnect(a)}},[e]),(0,Ee.useEffect)(()=>{var t,a,n,s;p({});const l=null==e?void 0:e.getLayer(o);l&&"VectorLayer"===l.type?(i(!0),d(null!==(a=null===(t=l.filters)||void 0===t?void 0:t.appliedFilters)&&void 0!==a?a:[]),r(null!==(s=null===(n=l.filters)||void 0===n?void 0:n.logicalOp)&&void 0!==s?s:"all"),u()):i(!1)},[o]),(0,Ee.useEffect)(()=>{t.current=m},[m]);const u=async a=>{var r,n;if(!e)return;const s=e.getLayer(null!=a?a:o),i=e.getSource(null===(r=null==s?void 0:s.parameters)||void 0===r?void 0:r.source);if(!i||!s)return;const l=(0,mo.cloneDeep)(t.current);switch(s.filters&&s.filters.appliedFilters.map(e=>{e.feature in l||(l[e.feature]=new Set),l[e.feature].add(e.value)}),i.type){case"GeoJSONSource":{const t=await Ye({filepath:null===(n=i.parameters)||void 0===n?void 0:n.path,type:"GeoJSONSource",model:e});null==t||t.features.forEach(e=>{e.properties&&y(e.properties,l)});break}default:console.warn("Source type not supported")}p(l)},g=Pe(u,500),y=(e,t)=>{Object.entries(e).forEach(([e,a])=>{e in t||(t[e]=new Set),t[e].add(a)})},h=(t,r)=>{const n=null==e?void 0:e.getLayer(o);n&&(n.filters={logicalOp:null!=r?r:a,appliedFilters:t},null==e||e.sharedModel.updateLayer(o,n))};return je().createElement(je().Fragment,null,s&&je().createElement("div",{className:"jp-gis-filter-main"},je().createElement("div",{id:"filter-container",className:"jp-gis-filter-select-container"},je().createElement("select",{className:"jp-mod-styled rjsf jp-gis-logical-select",onChange:e=>{r(e.target.value),h(l,e.target.value)}},je().createElement("option",{key:"all",value:"all",selected:"all"===a},"All"),je().createElement("option",{key:"any",value:"any",selected:"any"===a},"Any")),l.map((e,t)=>je().createElement(po,{key:t,index:t,features:m,filterRows:l,setFilterRows:d,deleteRow:()=>(e=>{const t=[...l];t.splice(e,1),h(t),d(t)})(t)}))),je().createElement("div",{className:"jp-gis-filter-button-container"},je().createElement("div",{style:{justifyContent:"flex-start"}},je().createElement(c.Button,{className:"jp-Dialog-button jp-mod-accept jp-mod-styled",onClick:()=>{d([...l,{feature:Object.keys(m)[0],operator:"==",value:[...Object.values(m)[0]][0]}])},"data-testid":"add-filter-button"},"Add"),je().createElement(c.Button,{className:"jp-Dialog-button jp-mod-reject jp-mod-styled",onClick:()=>{h([]),d([])}},"Clear")),je().createElement(c.Button,{className:"jp-Dialog-button jp-mod-accept jp-mod-styled",onClick:()=>{h(l)}},"Submit"))),!s&&je().createElement("div",{style:{textAlign:"center"}},"No layer selected"))};var go=a(38404),yo=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 ho=e=>{var{className:t}=e,a=yo(e,["className"]);return Ee.createElement(go.bL,Object.assign({"data-slot":"tabs",className:Ct("TabsList",t)},a))},fo=({className:e,curTab:t,children:a})=>Ee.createElement(go.bL,{"data-slot":"tabs",className:Ct("TabsList",e),value:t,onValueChange:()=>{},children:a}),vo=e=>{var{className:t}=e,a=yo(e,["className"]);return Ee.createElement(go.B8,Object.assign({"data-slot":"tabs-list",className:Ct("jgis-tabs-list",t)},a))},bo=e=>{var{className:t}=e,a=yo(e,["className"]);return Ee.createElement(go.l9,Object.assign({"data-slot":"tabs-trigger",className:Ct("jgis-tabs-trigger",t)},a))},So=e=>{var{className:t}=e,a=yo(e,["className"]);return Ee.createElement(go.UC,Object.assign({"data-slot":"tabs-content",className:Ct("jgis-tabs-content",t)},a))};var wo=a(41259),Eo=a(21058),jo=a(63262),Co=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 xo(e){var{className:t}=e,a=Co(e,["className"]);return Ee.createElement(Eo.uB,Object.assign({"data-slot":"command",className:Ct("jgis-command",t)},a))}function Oo(e){var{className:t}=e,a=Co(e,["className"]);return Ee.createElement("div",{"data-slot":"command-input-wrapper",className:"jgis-command-input-wrapper"},Ee.createElement(jo.A,{className:"size-4"}),Ee.createElement(Eo.uB.Input,Object.assign({"data-slot":"command-input",className:Ct("jgis-command-input",t)},a)))}function _o(e){var{className:t}=e,a=Co(e,["className"]);return Ee.createElement(Eo.uB.List,Object.assign({"data-slot":"command-list",className:Ct("jgis-command-list",t)},a))}function Mo(e){var t=Co(e,[]);return Ee.createElement(Eo.uB.Empty,Object.assign({"data-slot":"command-empty",className:"py-6 text-center text-sm"},t))}function No(e){var{className:t}=e,a=Co(e,["className"]);return Ee.createElement(Eo.uB.Group,Object.assign({"data-slot":"command-group",className:Ct("jgis-command-group",t)},a))}function Io(e){var{className:t}=e,a=Co(e,["className"]);return Ee.createElement(Eo.uB.Item,Object.assign({"data-slot":"command-item",className:Ct("jgis-command-item",t)},a))}var To=a(14275),Lo=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 ko=e=>{var t=Lo(e,[]);return Ee.createElement(To.bL,Object.assign({"data-slot":"popover"},t))},Po=e=>{var t=Lo(e,[]);return Ee.createElement(To.l9,Object.assign({"data-slot":"popover-trigger"},t))},Ao=e=>{var{className:t,align:a="center",sideOffset:r=4}=e,o=Lo(e,["className","align","sideOffset"]);return Ee.createElement(To.ZL,null,Ee.createElement(To.UC,Object.assign({"data-slot":"popover-content",align:a,sideOffset:r,className:Ct("jgis-popover-content",t)},o)))};function Go({items:e,buttonText:t,emptyText:a="No option found.",className:r,buttonClassName:o,open:n,onOpenChange:s,showSearch:i=!1,searchPlaceholder:l="Search..."}){const[c,d]=(0,Ee.useState)(!1),m=void 0!==n?n:c,p=s||d;return je().createElement(ko,{open:m,onOpenChange:p},je().createElement(Po,{asChild:!0},je().createElement(xt,{variant:"outline",role:"combobox","aria-expanded":m,className:Ct("jgis-combobox-button",o)},je().createElement("span",{className:"jgis-combobox-button-text"},t),je().createElement(wo.A,{className:"jgis-combobox-icon"}))),je().createElement(Ao,{className:Ct("jgis-select-popover",r)},je().createElement(xo,null,i&&je().createElement(Oo,{placeholder:l}),je().createElement(_o,null,je().createElement(Mo,null,a),je().createElement(No,null,e.map(e=>je().createElement(Io,{key:e.value,value:e.label,onSelect:()=>(e=>{p(!1),e.onSelect&&e.onSelect()})(e)},e.label)))))))}function Ro(e){var{className:t,type: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,["className","type"]);return Ee.createElement("input",Object.assign({type:a,"data-slot":"input",className:Ct(t)},r))}var Do=a(90309),Fo=a(83966),Bo=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 zo(e){var{className:t}=e,a=Bo(e,["className"]);return Ee.createElement(Do.bL,Object.assign({"data-slot":"radio-group",className:Ct("jgis-radio-group",t)},a))}function Vo(e){var{className:t}=e,a=Bo(e,["className"]);return Ee.createElement(Do.q7,Object.assign({"data-slot":"radio-group-item",className:Ct("jgis-radio-group-item",t)},a),Ee.createElement(Do.C1,{"data-slot":"radio-group-indicator",className:"jgis-radio-group-indicator"},Ee.createElement(Fo.A,{className:"jgis-radio-group-indicator-icon"})))}var Wo=a(52160);function Uo({items:e,buttonText:t,searchPlaceholder:a="Search...",emptyText:r="No option found.",className:o,buttonClassName:n,open:s,onOpenChange:i,showSearch:l=!0}){const[c,d]=(0,Ee.useState)(!1),m=void 0!==s?s:c,p=i||d;return je().createElement(ko,{open:m,onOpenChange:p},je().createElement(Po,{asChild:!0},je().createElement(xt,{variant:"outline",role:"combobox","aria-expanded":m,className:Ct("jgis-combobox-button",n)},je().createElement("span",{className:"jgis-combobox-button-text"},t),je().createElement(wo.A,{className:"jgis-combobox-icon"}))),je().createElement(Ao,{className:Ct("jgis-combobox-popover",o)},je().createElement(xo,null,l&&je().createElement(Oo,{placeholder:a}),je().createElement(_o,null,je().createElement(Mo,null,r),je().createElement(No,null,e.map(e=>je().createElement(Io,{key:e.value,value:e.label,onSelect:()=>(e=>{e.onSelect&&e.onSelect()})(e)},e.showCheckIcon&&je().createElement(Wo.A,{className:"jgis-combobox-check-icon",style:{opacity:e.selected?1:0}}),e.label)))))))}const $o=function({qKey:e,qVal:t,operators:a,currentFilter:r,inputComponent:o,onOperatorChange:n}){const s=a.find(e=>e.value===r.operator),i=(null==s?void 0:s.label)||"Select operator...",l=a.map(e=>({value:String(e.value),label:String(e.label),onSelect:()=>n(e.value)}));return je().createElement("div",{className:"jgis-queryable-row"},je().createElement("span",null,t.title||e),je().createElement(Go,{items:l,buttonText:String(i),emptyText:"No operator found.",buttonClassName:"jgis-queryable-combo-operator"}),o)};var qo=a(11992),Ho=a(89229),Jo=a(7077),Qo=a(52484),Zo=a(82477),Yo=a(17755),Ko=a(35957),Xo=a(90017),en=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 tn(e){var{className:t,showOutsideDays:a=!0,showYearSwitcher:r=!0,yearRange:o=12,numberOfMonths:n,components:s}=e,i=en(e,["className","showOutsideDays","showYearSwitcher","yearRange","numberOfMonths","components"]);const[l,c]=Ee.useState("days"),[d,m]=Ee.useState(Ee.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,f=Ct("jgis-calendar-months",i.monthsClassName),v=Ct("jgis-calendar-month-caption",i.monthCaptionClassName),b=Ct("jgis-calendar-weekdays",i.weekdaysClassName),S=Ct("jgis-calendar-weekday",i.weekdayClassName),w=Ct("jgis-calendar-month",i.monthClassName),E=Ct("jgis-calendar-month-caption",i.captionClassName),j=Ct("jgis-calendar-caption-label",i.captionLabelClassName),C=Ct("jgis-calendar-button-next",i.buttonNextClassName),x=Ct("jgis-calendar-button-previous",i.buttonPreviousClassName),O=Ct("jgis-calendar-nav",i.navClassName),_=Ct("jgis-calendar-month-grid",i.monthGridClassName),M=Ct("jgis-calendar-week",i.weekClassName),N=Ct("jgis-calendar-day",i.dayClassName),I=Ct("jgis-calendar-day-button",i.dayButtonClassName),T=Ct("jgis-calendar-day-button range-start",i.rangeStartClassName),L=Ct("jgis-calendar-day-button range-end",i.rangeEndClassName),k=Ct("jgis-calendar-range-middle",i.rangeMiddleClassName),P=Ct("jgis-calendar-day-selected",i.selectedClassName),A=Ct("jgis-calendar-day-outside",i.outsideClassName),G=Ct("jgis-calendar-day-disabled",i.disabledClassName),R=Ct("jgis-calendar-hidden",i.hiddenClassName);return Ee.createElement(Zo.h,Object.assign({showOutsideDays:a,className:Ct("jgis-calendar-container",t),style:{width:248.8*(null!=h?h:1)+"px"},classNames:{months:f,month_caption:v,weekdays:b,weekday:S,month:w,caption:E,caption_label:j,button_next:C,button_previous:x,nav:O,month_grid:_,week:M,day:N,day_button:I,range_start:T,range_middle:k,range_end:L,selected:P,outside:A,disabled:G,hidden:R},components:Object.assign({Chevron:({orientation:e})=>{const t="left"===e?Jo.A:Qo.A;return Ee.createElement(t,{className:"h-4 w-4"})},Nav:({className:e})=>Ee.createElement(an,{className:e,displayYears:d,navView:l,setDisplayYears:m,startMonth:g,endMonth:y,onPrevClick:u,onNextClick:p}),CaptionLabel:e=>Ee.createElement(rn,Object.assign({showYearSwitcher:r,navView:l,setNavView:c,displayYears:d},e)),MonthGrid:e=>{var{className:t,children:a}=e,r=en(e,["className","children"]);return Ee.createElement(on,Object.assign({children:a,className:t,displayYears:d,startMonth:g,endMonth:y,navView:l,setNavView:c},r))}},s),numberOfMonths:h,timeZone:"UTC"},i))}function an({className:e,navView:t,startMonth:a,endMonth:r,displayYears:o,setDisplayYears:n,onPrevClick:s,onNextClick:i}){const{nextMonth:l,previousMonth:c,goToMonth:d}=(0,Yo.w)(),m="years"===t?a&&(0,Ho.m)(new Date(o.from-1,0,1),a)<0||r&&(0,Ho.m)(new Date(o.from-1,0,1),r)>0:!c,p="years"===t?a&&(0,Ho.m)(new Date(o.to+1,0,1),a)<0||r&&(0,Ho.m)(new Date(o.to+1,0,1),r)>0:!l,u=Ee.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=Ee.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 Ee.createElement("nav",{className:Ct("jgis-calendar-nav",e)},Ee.createElement(xt,{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,Ko.o)(c),onClick:u},Ee.createElement(Jo.A,{className:"h-4 w-4"})),Ee.createElement(xt,{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,Xo.s)(l),onClick:g},Ee.createElement(Qo.A,{className:"h-4 w-4"})))}function rn(e){var{children:t,showYearSwitcher:a,navView:r,setNavView:o,displayYears:n}=e,s=en(e,["children","showYearSwitcher","navView","setNavView","displayYears"]);return a?Ee.createElement(xt,{className:"jgis-calendar-caption-button",variant:"ghost",size:"sm",onClick:()=>o(e=>"days"===e?"years":"days")},"days"===r?t:n.from+" - "+n.to):Ee.createElement("span",Object.assign({},s),t)}function on(e){var{className:t,children:a,displayYears:r,startMonth:o,endMonth:n,navView:s,setNavView:i}=e,l=en(e,["className","children","displayYears","startMonth","endMonth","navView","setNavView"]);return"years"===s?Ee.createElement(nn,Object.assign({displayYears:r,startMonth:o,endMonth:n,setNavView:i,navView:s,className:t},l)):Ee.createElement("table",Object.assign({className:t},l),a)}function nn(e){var{className:t,displayYears:a,startMonth:r,endMonth:o,setNavView:n,navView:s}=e,i=en(e,["className","displayYears","startMonth","endMonth","setNavView","navView"]);const{goToMonth:l,selected:c}=(0,Yo.w)();return Ee.createElement("div",Object.assign({className:Ct("jgis-calendar-year-grid",t)},i),Array.from({length:a.to-a.from+1},(e,t)=>{const i=(0,Ho.m)(new Date(a.from+t,11,31),r)<0,d=(0,Ho.m)(new Date(a.from+t,0,0),o)>0,m=i||d;return Ee.createElement(xt,{key:t,className:Ct("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)}))}tn.displayName="Calendar";const sn=function({date:e,onDateChange:t,placeholder:a="Select date",className:r,dateFormat:o="PPP",showIcon:n=!0}){return je().createElement(ko,null,je().createElement(Po,{asChild:!0},je().createElement(xt,{className:r,variant:"outline"},n&&je().createElement(qo.A,{className:"jgis-stac-datepicker-icon"}),e?(0,Jr.GP)(e,o):je().createElement("span",null,a))),je().createElement(Ao,null,je().createElement(tn,{mode:"single",selected:e,onSelect:t,autoFocus:!0})))};function ln({queryables:e,selectedQueryables:t,updateSelectedQueryables:a}){const r=(0,Ee.useMemo)(()=>e.filter(([e])=>e in t),[e,t]),o=(e,t)=>{if("date-time"===t)return[{value:"<",label:"<"},{value:"<=",label:"≤"},{value:">",label:">"},{value:">=",label:"≥"}];switch(e){case"string":default:return[{value:"=",label:"="},{value:"!=",label:"≠"}];case"number":case"integer":return[{value:"=",label:"="},{value:"!=",label:"≠"},{value:"<",label:"<"},{value:"<=",label:"≤"},{value:">",label:">"},{value:">=",label:"≥"}]}},n=(e,t,a)=>{switch(e.type){case"string":if(e.enum){const r=e.enum.find(e=>String(e)===String(t)),o=r?String(r):"Select option...";return je().createElement(Go,{items:e.enum.map(e=>({value:String(e),label:String(e),onSelect:()=>a(String(e))})),buttonText:o,emptyText:"No option found.",buttonClassName:"jgis-queryable-combo-input"})}if("date-time"===e.format){const e=e=>{if(e)try{return new Date(e)}catch(e){return}},r=e=>{a(e?e.toISOString():"")};return je().createElement(sn,{date:e(t),onDateChange:r,dateFormat:"P",showIcon:!0,placeholder:"Select date",className:"jgis-queryable-combo-input jgis-queryable-combo-input-date-picker"})}return je().createElement(Ro,{type:"text",className:"jgis-queryable-combo-input",value:t||"",onChange:e=>a(e.target.value)});case"number":case"integer":if(e.enum){const r=e.enum.find(e=>Number(e)===Number(t)),o=r?String(r):"Select option...";return je().createElement(Go,{items:e.enum.map(e=>({value:String(e),label:String(e),onSelect:()=>a(Number(e))})),buttonText:o,emptyText:"No option found.",buttonClassName:"jgis-queryable-combo-input"})}return je().createElement(Ro,{type:"number",className:"jgis-queryable-combo-input",min:void 0!==e.minimum?e.minimum:void 0,max:void 0!==e.maximum?e.maximum:void 0,value:t||"",onChange:e=>a(Number(e.target.value))});default:return je().createElement(Ro,{type:"text",className:"jgis-queryable-combo-input",value:t||"",onChange:e=>a(e.target.value)})}},s=e=>e in t,i=e.map(([e,r])=>({value:e,label:r.title||e,selected:s(e),showCheckIcon:!0,onSelect:()=>((e,r)=>{var n;if(e in t)a(e,null);else{const t=o(r.type,r.format);let s;r.enum&&r.enum.length>0?(r.enum[0],s=r.enum[0]):"string"===r.type&&"date-time"===r.format&&(s=(new Date).toISOString()),a(e,{operator:(null===(n=t[0])||void 0===n?void 0:n.value)||"=",inputValue:s})}})(e,r)}));return je().createElement("div",{className:"jgis-queryable-combo-container"},je().createElement(Uo,{items:i,buttonText:0===r.length?"Select queryable...":1===r.length?r[0][1].title||r[0][0]||"Queryable":`${r.length} selected`,searchPlaceholder:"Search queryable...",emptyText:"No queryable found.",buttonClassName:"jgis-queryable-combo-button jgis-combobox-button--full-width"}),je().createElement("div",{className:"jgis-queryable-rows-container"},r.map(([e,r])=>{var s,i;const l=o(r.type,r.format),c=null!==(s=t[e])&&void 0!==s?s:{operator:(null===(i=l[0])||void 0===i?void 0:i.value)||"=",inputValue:void 0};return je().createElement($o,{key:e,qKey:e,qVal:r,operators:l,currentFilter:c,inputComponent:n(r,c.inputValue,t=>{let o=t;if("string"===r.type&&"date-time"===r.format&&"string"==typeof t)try{o=new Date(t).toISOString()}catch(e){o=t}a(e,Object.assign(Object.assign({},c),{inputValue:o}))}),onOperatorChange:t=>{a(e,Object.assign(Object.assign({},c),{operator:t}))}})})))}const cn=({queryableFields:e,selectedQueryables:t,updateSelectedQueryables:a,filterOperator:r,setFilterOperator:o})=>je().createElement("div",{className:"jgis-stac-queryable-filters"},je().createElement(zo,{className:"jgis-stac-queryable-filters-radio-group",value:r,onValueChange:e=>{"and"!==e&&"or"!==e||o(e)}},je().createElement("div",{className:"jgis-stac-queryable-filters-radio-item"},je().createElement(Vo,{value:"and",id:"filter-operator-and"}),je().createElement("label",{htmlFor:"filter-operator-and"},"Match all filters (and)")),je().createElement("div",{className:"jgis-stac-queryable-filters-radio-item"},je().createElement(Vo,{value:"or",id:"filter-operator-or"}),je().createElement("label",{htmlFor:"filter-operator-or"},"Match any filters (or)"))),je().createElement(ln,{queryables:e,selectedQueryables:t,updateSelectedQueryables:a}));var dn=a(91129);const mn=Ee.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 Ee.createElement(dn.bL,Object.assign({ref:t,className:"jgis-checkbox"},a),Ee.createElement(dn.C1,{className:"jgis-checkbox-indicator"},Ee.createElement(Wo.A,{style:{height:"1rem",width:"1rem"}})))});mn.displayName=dn.bL.displayName;const pn=mn,un=({checked:e,onCheckedChange:t,label:a})=>je().createElement(je().Fragment,null,je().createElement("label",{className:"jgis-stac-filter-extension-label"},"Spatial Extent"),je().createElement("span",{style:{display:"flex",alignItems:"center",gap:"0.5rem"}},je().createElement(pn,{checked:e,onCheckedChange:t}),a)),gn=function({startTime:e,endTime:t,setStartTime:a,setEndTime:r}){return je().createElement("div",{className:"jgis-stac-filter-extension-section"},je().createElement("label",{className:"jgis-stac-filter-extension-label"},"Temporal Extent"),je().createElement(sn,{date:e,onDateChange:a,className:"jgis-stac-datepicker-full-width"}),je().createElement(sn,{date:t,onDateChange:r,className:"jgis-stac-datepicker-full-width"}))},yn=(0,Ee.createContext)(void 0),hn="jupytergis:stac-selected-url";function fn({children:e,model:t}){const[a,r]=(0,Ee.useState)([]),[o,n]=(0,Ee.useState)(!1),[s,i]=(0,Ee.useState)("0"),[l,c]=(0,Ee.useState)(0),[d,m]=(0,Ee.useState)([]),[p,u]=(0,Ee.useState)(""),[g,y]=(0,Ee.useState)(1),h=(0,Ee.useRef)(1),f=(0,Ee.useRef)(),v=(0,Ee.useRef)(),b=(0,Ee.useRef)(),S=ba.getInstance().getStateDb();(0,Ee.useEffect)(()=>{!async function(){const e=await(null==S?void 0:S.fetch(hn));(null==e?void 0:e.selectedUrl)&&u(e.selectedUrl)}()},[S]),(0,Ee.useEffect)(()=>{!async function(){await(null==S?void 0:S.save(hn,{selectedUrl:p}))}()},[p,S]),(0,Ee.useEffect)(()=>{h.current=g},[g]);const w=(0,Ee.useCallback)((e,t,a)=>{r(e),i(t),c(a)},[]),E=(0,Ee.useCallback)(e=>{m(e)},[]),j=(0,Ee.useCallback)(e=>{u(e),v.current=void 0,f.current=void 0,b.current=void 0,n(!1),y(1),h.current=1,r([]),m([]),i("0"),c(0)},[]),C=(0,Ee.useCallback)(e=>{y(e)},[]),x=(0,Ee.useCallback)(e=>{f.current=e},[]),O=(0,Ee.useCallback)(e=>{v.current=e},[]),_=(0,Ee.useCallback)(e=>{b.current=e},[]),M=(0,Ee.useCallback)(async(e,a,r)=>{var o,s,i;if(!t)return;const l=null===(o=document.cookie.match(/_xsrf=([^;]+)/))||void 0===o?void 0:o[1],c=e,d=a||((m=p).endsWith("/")?`${m}search`:`${m}/search`);var m;const u={method:(r||"POST").toUpperCase(),headers:{"Content-Type":"application/json","X-XSRFToken":l,credentials:"include"},body:JSON.stringify(c)};try{n(!0);const e=await Qe(d,t,async e=>await e.json(),u);if(!e)return w([],"0",0),void n(!1);e.features&&e.features.length>0&&e.features.forEach(e=>{if(e.assets){const t=e.assets,a={};for(const[e,r]of Object.entries(t))if(r&&"object"==typeof r&&"roles"in r&&Array.isArray(r.roles)){const t=r.roles;(t.includes("thumbnail")||t.includes("overview"))&&(a[e]=r)}e.assets=a}});const a=[...e.features].sort((e,t)=>e.id.localeCompare(t.id));let r,o=0;if(e.context)r=String(e.context.matched),o=Math.ceil(e.context.matched/e.context.limit);else{const t=null!==(i=null===(s=e.links)||void 0===s?void 0:s.some(e=>"next"===e.rel))&&void 0!==i&&i,n=e.features.length;r=t?`${n}+`:String(n),a.length>0&&(o=1)}w(a,r,o),e.links&&E(e.links),n(!1)}catch(e){w([],"0",0),n(!1)}},[t,p,w,E]),N=(0,Ee.useCallback)(async e=>{if(!t||!b.current)return;let a=b.current();a=Object.assign(Object.assign({},a),{page:e}),await M(a)},[t,M]),I=(0,Ee.useCallback)(async e=>{if(v.current)return void await v.current(e);const t=d.find(t=>"next"===e?"next"===t.rel:["prev","previous"].includes(t.rel));t&&t.body&&await M(t.body,t.href,t.method)},[t,d,M]),T=(0,Ee.useCallback)(e=>{var a,r;if(!t)return;const o=we.UUID.uuid4(),n={type:"StacLayer",parameters:{data:e},visible:!0,name:null!==(r=null===(a=e.properties)||void 0===a?void 0:a.title)&&void 0!==r?r:e.id};t.addLayer(o,n),t.centerOnPosition(o)},[t]),L=(0,Ee.useCallback)(async e=>{if(!t)return;const r=a.find(t=>t.id===e);r&&(f.current?f.current(r):T(r))},[t,a,T]),k=(0,Ee.useCallback)(e=>{var t,a;return null!==(a=null===(t=e.properties)||void 0===t?void 0:t.title)&&void 0!==a?a:e.id},[]);return je().createElement(yn.Provider,{value:{results:a,isLoading:o,totalResults:s,totalPages:l,handlePaginationClick:I,handleResultClick:L,formatResult:k,paginationLinks:d,selectedUrl:p,setSelectedUrl:j,currentPage:g,setCurrentPage:C,currentPageRef:h,setResults:w,setIsLoading:n,setPaginationLinks:E,registerAddToMap:x,registerHandlePaginationClick:O,registerBuildQuery:_,executeQuery:M,executeQueryWithPage:N}},e)}function vn(){const e=(0,Ee.useContext)(yn);if(void 0===e)throw new Error("useStacResultsContext must be used within a StacResultsProvider");return e}var bn=a(50154),Sn=a(17746);const wn=()=>{const e=(0,Ee.useRef)(!0);return e.current?(e.current=!1,!0):e.current},En="jupytergis:stac-search-state";function jn({model:e}){const[t,a]=(0,Ee.useState)(void 0),[r,o]=(0,Ee.useState)(void 0),[n,s]=(0,Ee.useState)([-180,-90,180,90]),[i,l]=(0,Ee.useState)(!1),c=ba.getInstance().getStateDb();return(0,Ee.useEffect)(()=>{!async function(){const e=await(null==c?void 0:c.fetch(En));e&&(e.startTime&&a(new Date(e.startTime)),e.endTime&&o(new Date(e.endTime)),void 0!==e.useWorldBBox&&l(e.useWorldBBox))}()},[c]),(0,Ee.useEffect)(()=>{!async function(){await(null==c?void 0:c.save(En,{startTime:null==t?void 0:t.toISOString(),endTime:null==r?void 0:r.toISOString(),useWorldBBox:i}))}()},[t,r,i,c]),(0,Ee.useEffect)(()=>{const t=(e,t)=>{s(i?[-180,-90,180,90]:t)};return null==e||e.updateBboxSignal.connect(t),()=>{null==e||e.updateBboxSignal.disconnect(t)}},[e,i]),{startTime:t,setStartTime:a,endTime:r,setEndTime:o,currentBBox:n,setCurrentBBox:s,useWorldBBox:i,setUseWorldBBox:l}}const Cn="jupytergis:stac-filter-extension-state",xn=function({model:e}){var t;const{selectedUrl:a}=vn(),[r,o]=(0,Ee.useState)(12),{queryableFields:n,collections:s,selectedCollection:i,setSelectedCollection:l,startTime:c,endTime:d,setStartTime:m,setEndTime:p,useWorldBBox:u,setUseWorldBBox:g,selectedQueryables:y,updateSelectedQueryables:h,filterOperator:f,setFilterOperator:v}=function({model:e,baseUrl:t,limit:a=12}){const r=wn(),{registerBuildQuery:o,executeQuery:n}=vn(),{startTime:s,endTime:i,setStartTime:l,setEndTime:c,currentBBox:d,useWorldBBox:m,setUseWorldBBox:p}=jn({model:e}),[u,g]=(0,Ee.useState)(),[y,h]=(0,Ee.useState)([]),[f,v]=(0,Ee.useState)(""),[b,S]=(0,Ee.useState)({}),[w,E]=(0,Ee.useState)("and"),j=ba.getInstance().getStateDb();(0,Ee.useEffect)(()=>{!async function(){const e=await(null==j?void 0:j.fetch(Cn));if(e){if(e.selectedCollection&&v(e.selectedCollection),e.queryableFilters){const t={};Object.entries(e.queryableFilters).forEach(([e,a])=>{t[e]={operator:a.operator,inputValue:null===a.inputValue?void 0:a.inputValue}}),S(t)}e.filterOperator&&E(e.filterOperator)}}()},[j]),(0,Ee.useEffect)(()=>{!async function(){const e={};Object.entries(b).forEach(([t,a])=>{var r;e[t]={operator:a.operator,inputValue:null!==(r=a.inputValue)&&void 0!==r?r:null}}),await(null==j?void 0:j.save(Cn,{selectedCollection:f||void 0,queryableFilters:Object.keys(e).length>0?e:void 0,filterOperator:w}))}()},[f,b,w,j]),(0,Ee.useEffect)(()=>{g(void 0),h([]),v(""),S({}),E("and")},[t]),(0,Ee.useEffect)(()=>{e&&(async()=>{if(!t)return;const a=t.endsWith("/")?`${t}collections`:`${t}/collections`,r=(await Qe(a,e,async e=>await e.json(),void 0)).collections.map(e=>{var t;return{title:null!==(t=e.title)&&void 0!==t?t:e.id,id:e.id}}).sort((e,t)=>{var a,r,o,n;const s=null!==(r=null===(a=e.title)||void 0===a?void 0:a.toLowerCase())&&void 0!==r?r:"",i=null!==(n=null===(o=t.title)||void 0===o?void 0:o.toLowerCase())&&void 0!==n?n:"";return s.localeCompare(i)});h(r),r.length>0&&""!==f&&v(r[0].id)})()},[e,t]),(0,Ee.useEffect)(()=>{e&&(async()=>{if(!t)return;const a=t.endsWith("/")?`${t}queryables`:`${t}/queryables`,r=await Qe(a,e,async e=>await e.json(),void 0);g(Object.entries(r.properties))})()},[e,t]);const C=(0,Ee.useCallback)((e,t)=>{S(a=>{if(null===t){const t=a,r=e;return t[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}(t,["symbol"==typeof r?r:r+""])}return Object.assign(Object.assign({},a),{[e]:t})})},[]),x=(0,Ee.useCallback)(()=>{const e=s?s.toISOString():(0,bn.R)().toISOString(),t=i?i.toISOString():(0,Sn.o)().toISOString(),r=Object.entries(b).filter(([,e])=>void 0!==e.inputValue).map(([e,t])=>{var a,r;const o=null==u?void 0:u.find(([t])=>t===e),n=o&&"string"===(null===(a=o[1])||void 0===a?void 0:a.type)&&"date-time"===(null===(r=o[1])||void 0===r?void 0:r.format)?{timestamp:t.inputValue}:t.inputValue;return{op:t.operator,args:[{property:e},n]}}),o={bbox:d,collections:[f],datetime:`${e}/${t}`,limit:a,"filter-lang":"cql2-json"};return r.length>0&&(o.filter={op:w,args:r}),o},[s,i,d,f,a,b,w,u]);(0,Ee.useEffect)(()=>{o(()=>x())},[o,x,t]);const O=(0,Ee.useCallback)(async()=>{if(!e)return;const a=x(),r=t.endsWith("/")?`${t}search`:`${t}/search`;await n(a,r)},[e,n,x,t]);return(0,Ee.useEffect)(()=>{if(e&&!r&&""!==f){const e=x(),a=t.endsWith("/")?`${t}search`:`${t}/search`;n(e,a)}},[e,r,f,b,w,s,i,d,x,n,t]),{queryableFields:u,collections:y,selectedCollection:f,setSelectedCollection:v,handleSubmit:O,startTime:s,endTime:i,setStartTime:l,setEndTime:c,useWorldBBox:m,setUseWorldBBox:p,selectedQueryables:b,updateSelectedQueryables:C,filterOperator:w,setFilterOperator:E}}({model:e,baseUrl:a,limit:r});if(e)return je().createElement(je().Fragment,null,je().createElement("div",{className:"jgis-stac-filter-extension-section"},je().createElement(gn,{startTime:c,endTime:d,setStartTime:m,setEndTime:p})),je().createElement("div",{className:"jgis-stac-filter-extension-section"},je().createElement(un,{checked:u,onCheckedChange:g,label:"Use entire world"})),je().createElement("div",{className:"jgis-stac-filter-extension-section"},je().createElement("label",{className:"jgis-stac-filter-extension-label"},"Collection"),je().createElement(Go,{items:s.map(e=>({value:e.id,label:e.title||e.id,onSelect:()=>l(e.id)})),buttonText:i&&(null===(t=s.find(e=>e.id===i))||void 0===t?void 0:t.title)||"Select a collection...",emptyText:"No collection found.",buttonClassName:"jgis-stac-filter-extension-select",showSearch:!0,searchPlaceholder:"Search collections..."})),n&&je().createElement("div",{className:"jgis-stac-filter-extension-section"},je().createElement("label",{className:"jgis-stac-filter-extension-label"},"Additional Filters"),je().createElement(cn,{queryableFields:n,selectedQueryables:y,updateSelectedQueryables:h,filterOperator:f,setFilterOperator:v})),je().createElement("div",{className:"jgis-stac-filter-extension-section"},je().createElement("label",{className:"jgis-stac-filter-extension-label"},"Items per page"),je().createElement(Ro,{type:"number",min:"1",max:"1000",value:r,onChange:e=>{const t=parseInt(e.target.value,10);!isNaN(t)&&t>0&&o(t)},className:"jgis-stac-filter-extension-input"})));console.warn("JupyterGIS model not found")};const On=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 Ee.createElement("div",Object.assign({"data-variant":t,className:Ct("jgis-badge",a)},r))};var _n=a(73366),Mn=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 Nn=_n.bL,In=_n.l9,Tn=_n.YJ,Ln=_n.ZL,kn=_n.Pb,Pn=(_n.z6,Ee.forwardRef((e,t)=>{var{inset:a,children:r}=e,o=Mn(e,["inset","children"]);return Ee.createElement(_n.ZP,Object.assign({ref:t,className:"jgis-dropdown-menu-sub-trigger",style:{paddingLeft:a?"2rem":"0.5rem"}},o),r,Ee.createElement(Qo.A,{className:"jgis-dropdown-menu-icon"}))}));Pn.displayName=_n.ZP.displayName;const An=Ee.forwardRef((e,t)=>{var a=Mn(e,[]);return Ee.createElement(_n.G5,Object.assign({ref:t,className:"jgis-dropdown-menu-sub-content"},a))});An.displayName=_n.G5.displayName;const Gn=Ee.forwardRef((e,t)=>{var{sideOffset:a=4}=e,r=Mn(e,["sideOffset"]);return Ee.createElement(_n.ZL,{container:document.querySelector("#main")},Ee.createElement(_n.UC,Object.assign({ref:t,sideOffset:a,className:"jgis-dropdown-menu-content"},r)))});Gn.displayName=_n.UC.displayName,Ee.forwardRef((e,t)=>{var{inset:a}=e,r=Mn(e,["inset"]);return Ee.createElement(_n.q7,Object.assign({ref:t,className:"jgis-dropdown-menu-item",style:{paddingLeft:a?"2rem":"0.5rem"}},r))}).displayName=_n.q7.displayName;const Rn=Ee.forwardRef((e,t)=>{var{children:a,checked:r}=e,o=Mn(e,["children","checked"]);return Ee.createElement(_n.H_,Object.assign({ref:t,className:"jgis-dropdown-menu-checkbox-item",checked:r},o),Ee.createElement("span",{className:"jgis-dropdown-menu-checkbox-item-span"},Ee.createElement(_n.VF,null,Ee.createElement(Wo.A,{style:{height:"1rem",width:"1rem"}}))),a)});Rn.displayName=_n.H_.displayName,Ee.forwardRef((e,t)=>{var{children:a}=e,r=Mn(e,["children"]);return Ee.createElement(_n.hN,Object.assign({ref:t,className:"jgis-dropdown-menu-radio-item"},r),Ee.createElement("span",{className:"jgis-dropdown-menu-radio-item-span"},Ee.createElement(_n.VF,null,Ee.createElement(Fo.A,{color:"currentColor",style:{height:"0.5rem",width:"0.5rem"}}))),a)}).displayName=_n.hN.displayName;const Dn=Ee.forwardRef((e,t)=>{var{inset:a}=e,r=Mn(e,["inset"]);return Ee.createElement(_n.JU,Object.assign({ref:t,className:"jgis-dropdown-menu-label",style:{paddingLeft:a?"2rem":"0.5rem"}},r))});Dn.displayName=_n.JU.displayName,Ee.forwardRef((e,t)=>{var a=Mn(e,[]);return Ee.createElement(_n.wv,Object.assign({ref:t,className:"jgis-dropdown-menu-separator"},a))}).displayName=_n.wv.displayName;const Fn=({section:e,data:t,selectedCollections:a,selectedData:r,handleCheckedChange:o})=>{const n=(0,Ee.useMemo)(()=>"Collection"===e?je().createElement(Tn,null,t.map(e=>je().createElement(kn,{key:e.collection},je().createElement(Pn,null,e.collection),je().createElement(Ln,null,je().createElement(An,null,e.datasets.map(t=>je().createElement(Rn,{key:t,checked:r.includes(t),onCheckedChange:()=>{o(t,e.collection)},onSelect:e=>{e.preventDefault()}},t))))))):"Platform"===e?je().createElement(je().Fragment,null,a.map(e=>{var a;return je().createElement(Tn,{key:e},je().createElement(Dn,null,e),null===(a=t[e])||void 0===a?void 0:a.map(e=>je().createElement(Rn,{key:e,checked:r.includes(e),onCheckedChange:()=>{o(e,"")},onSelect:e=>{e.preventDefault()}},e)))})):"Data / Product"===e?je().createElement(je().Fragment,null,a.map(e=>je().createElement(Tn,{key:e},je().createElement(Dn,null,e),t.filter(t=>t.collections.includes(e)).map(t=>je().createElement(Rn,{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 je().createElement("div",{className:"jgis-stac-filter-section-container"},je().createElement(Nn,{modal:!1},je().createElement(In,{className:"jgis-stac-filter-trigger",disabled:s},e,je().createElement(Qo.A,{className:"DropdownMenuIcon"})),je().createElement(Gn,{side:"right"},n)),je().createElement("div",{className:"jgis-stac-filter-section-badges"},r.map(e=>je().createElement(On,{key:e,className:"jgis-stac-badge"},je().createElement("span",null,e),je().createElement(xt,{variant:"icon",size:"icon-sm",className:"jgis-stac-badge-icon",onClick:()=>{o(e,"")}},je().createElement(ht.g,{icon:yt.Jyw}))))))},Bn=[{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"]}],zn={"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"]},Vn=[{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 Wn=a(68583);const Un="jupytergis:geodes-stac-filters";var $n=a(71457),qn=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 Hn=e=>{var t=qn(e,[]);return Ee.createElement("nav",Object.assign({role:"navigation","aria-label":"pagination",className:"jgis-pagination"},t))};Hn.displayName="Pagination";const Jn=Ee.forwardRef((e,t)=>{var{className:a}=e,r=qn(e,["className"]);return Ee.createElement("ul",Object.assign({ref:t,className:Ct("jgis-pagination-content",a)},r))});Jn.displayName="PaginationContent";const Qn=Ee.forwardRef((e,t)=>{var a=qn(e,[]);return Ee.createElement("li",Object.assign({ref:t,className:""},a))});Qn.displayName="PaginationItem";const Zn=e=>{var{isActive:t,size:a="icon"}=e,r=qn(e,["isActive","size"]);return Ee.createElement(xt,Object.assign({"aria-current":t?"page":void 0,"data-variant":t?"outline":"ghost","data-size":a,className:"jgis-pagination-link"},r))};Zn.displayName="PaginationLink";const Yn=e=>{var t=qn(e,[]);return Ee.createElement(Zn,Object.assign({"aria-label":"Go to previous page",className:"jgis-pagination-previous"},t),Ee.createElement(Jo.A,{style:{height:"1rem",width:"1rem",flexShrink:0}}),Ee.createElement("span",null,"Prev"))};Yn.displayName="PaginationPrevious";const Kn=e=>{var t=qn(e,[]);return Ee.createElement(Zn,Object.assign({"aria-label":"Go to next page",className:"jgis-pagination-next"},t),Ee.createElement("span",null,"Next"),Ee.createElement(Qo.A,{style:{height:"1rem",width:"1rem",flexShrink:0}}))};Kn.displayName="PaginationNext";const Xn=e=>{var t=qn(e,[]);return Ee.createElement("span",Object.assign({"aria-hidden":!0,className:"jgis-pagination-ellipsis"},t),Ee.createElement($n.A,{style:{height:"1rem",width:"1rem"}}),Ee.createElement("span",{className:"sr-only"},"More pages"))};Xn.displayName="PaginationEllipsis";const es=()=>{const{results:e,handlePaginationClick:t,handleResultClick:a,formatResult:r,isLoading:o,paginationLinks:n,currentPage:s,setCurrentPage:i,totalPages:l,executeQueryWithPage:c}=vn(),d=n.some(e=>"next"===e.rel),m=n.some(e=>["prev","previous"].includes(e.rel));return je().createElement("div",{className:"jgis-stac-browser-filters-panel"},je().createElement(Hn,null,je().createElement(Jn,{className:"jgis-stac-panel-results-pagination"},je().createElement(Qn,null,je().createElement(Yn,{onClick:()=>{i(Math.max(s-1,1)),t("previous")},disabled:!m})),1===l?je().createElement(Qn,null,je().createElement(Zn,{isActive:!0},s)):0!==e.length?je().createElement(je().Fragment,null,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]}(s,l).map(e=>"ellipsis"===e?je().createElement(Qn,{key:"ellipsis"},je().createElement(Xn,null)):je().createElement(Qn,{key:e},je().createElement(Zn,{isActive:e===s,onClick:async()=>{i(e),await c(e)},disabled:1===l},e)))):je().createElement(Qn,null,je().createElement(Zn,{isActive:!0,disabled:!0},"0")),je().createElement(Qn,null,je().createElement(Kn,{onClick:()=>{i(s+1),t("next")},disabled:!d})))),je().createElement("div",{className:"jgis-stac-browser-results-list"},o?je().createElement(Zt,{size:"3x"}):e.map(e=>je().createElement(xt,{key:e.id,className:"jgis-stac-browser-results-item",onClick:()=>a(e.id)},r(e)))))},ts="https://geodes-portal.cnes.fr/api/stac/",as=[{url:"https://stac.dataspace.copernicus.eu/v1/",name:"Copernicus"},{url:ts,name:"GEODES"},{url:"https://api.stac.worldpop.org/",name:"WorldPop"}],rs={[ts]:({model:e})=>{const{filterState:t,filterSetters:a,startTime:r,setStartTime:o,endTime:n,setEndTime:s,useWorldBBox:i,setUseWorldBBox:l}=function({model:e}){const t=wn(),a=ba.getInstance().getStateDb(),{currentPageRef:r,setCurrentPage:o,registerHandlePaginationClick:n,registerBuildQuery:s,executeQuery:i,selectedUrl:l}=vn(),{startTime:c,setStartTime:d,endTime:m,setEndTime:p,currentBBox:u,useWorldBBox:g,setUseWorldBBox:y}=jn({model:e}),[h,f]=(0,Ee.useState)({collections:new Set,datasets:new Set,platforms:new Set,products:new Set}),v={collections:e=>f(t=>Object.assign(Object.assign({},t),{collections:new Set(e)})),datasets:e=>f(t=>Object.assign(Object.assign({},t),{datasets:new Set(e)})),platforms:e=>f(t=>Object.assign(Object.assign({},t),{platforms:new Set(e)})),products:e=>f(t=>Object.assign(Object.assign({},t),{products:new Set(e)}))};(0,Ee.useEffect)(()=>{!async function(){var e,t,r,o;const n=await(null==a?void 0:a.fetch(Un));f({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,Ee.useEffect)(()=>{!async function(){await(null==a?void 0:a.save(Un,{collections:Array.from(h.collections),datasets:Array.from(h.datasets),platforms:Array.from(h.platforms),products:Array.from(h.products)}))}()},[h,a]);const b=(0,Ee.useCallback)(e=>{const t=null!=e?e:r.current,a=new Set,o=new Set;return h.products.forEach(e=>{Vn.filter(t=>t.productCode===e).forEach(e=>{e.processingLevel&&a.add(e.processingLevel),e.productType&&e.productType.forEach(e=>o.add(e))})}),{bbox:u,limit:12,page:t,query:Object.assign(Object.assign(Object.assign(Object.assign({latest:{eq:!0},dataset:{in:Array.from(h.datasets)},end_datetime:{gte:c?c.toISOString():(0,Wn.K)().toISOString()}},m&&{start_datetime:{lte:m.toISOString()}}),h.platforms.size>0&&{platform:{in:Array.from(h.platforms)}}),a.size>0&&{"processing:level":{in:Array.from(a)}}),o.size>0&&{"product:type":{in:Array.from(o)}}),sortBy:[{direction:"desc",field:"start_datetime"}]}},[h,u,c,m,r]);(0,Ee.useEffect)(()=>{s(()=>b(r.current))},[s,b,r]);const S=(0,Ee.useCallback)(async()=>{if(!e)return;const t=l.endsWith("/")?`${l}search`:`${l}/search`,a=b();await i(a,t)},[e,i,b,l]);(0,Ee.useEffect)(()=>{e&&!t&&h.datasets.size>0&&S()},[e,t,h,c,m,u,S]);const w=(0,Ee.useCallback)(async t=>{if(!e)return;const a="next"===t?r.current+1:r.current-1;o(a);const n=l.endsWith("/")?`${l}search`:`${l}/search`,s=b(a);await i(s,n)},[e,i,o,r,b,l]);return(0,Ee.useEffect)(()=>{n(w)},[w,n]),{filterState:h,filterSetters:v,startTime:c,setStartTime:d,endTime:m,setEndTime:p,useWorldBBox:g,setUseWorldBBox:y,handleSubmit:S}}({model:e}),c=(e,r)=>{const o=new Set(t[e]);o.has(r)?o.delete(r):o.add(r),a[e](o)};return je().createElement(je().Fragment,null,je().createElement("div",{className:"jgis-stac-filter-extension-section"},je().createElement(un,{checked:i,onCheckedChange:l,label:"Use whole world as bounding box"})),je().createElement("div",{className:"jgis-stac-filter-extension-section"},je().createElement(gn,{startTime:r,setStartTime:o,endTime:n,setEndTime:s})),je().createElement("div",{className:"jgis-stac-filter-extension-section"},je().createElement(Fn,{section:"Collection",data:Bn,selectedCollections:Array.from(t.collections),selectedData:Array.from(t.datasets),handleCheckedChange:(e,r)=>{const o=new Set(t.collections),n=new Set(t.datasets);if(n.has(e)){if(n.delete(e),0===Array.from(n).filter(e=>Bn.some(t=>t.collection===r&&t.datasets.includes(e))).length){o.delete(r);const e=new Set(t.platforms),n=new Set(t.products);zn[r]&&zn[r].forEach(t=>{e.delete(t)}),Vn.filter(e=>e.collections.includes(r)).forEach(e=>{n.delete(e.productCode)}),a.platforms(e),a.products(n)}}else n.add(e),o.add(r);a.collections(o),a.datasets(n)}})),je().createElement("div",{className:"jgis-stac-filter-extension-section"},je().createElement(Fn,{section:"Platform",data:zn,selectedCollections:Array.from(t.collections),selectedData:Array.from(t.platforms),handleCheckedChange:e=>c("platforms",e)})),je().createElement("div",{className:"jgis-stac-filter-extension-section"},je().createElement(Fn,{section:"Data / Product",data:Vn,selectedCollections:Array.from(t.collections),selectedData:Array.from(t.products),handleCheckedChange:e=>c("products",e)})))}},os=({model:e})=>{var t;const{totalResults:a,selectedUrl:r}=vn();if(!e)return null;const o=null!==(t=rs[r])&&void 0!==t?t:xn;return je().createElement(ho,{defaultValue:"filters",className:"jgis-panel-tabs",style:{boxShadow:"none"}},je().createElement(vo,{className:"jgis-stac-panel-tabs-list"},je().createElement(bo,{className:"jGIS-layer-browser-category",value:"filters"},"Filters"),je().createElement(bo,{className:"jGIS-layer-browser-category",value:"results"},`Results (${a})`)),je().createElement(So,{value:"filters"},je().createElement("div",{className:"jgis-stac-filter-extension-panel"},je().createElement(ns.ProviderSelect,null),r?je().createElement(o,{model:e}):je().createElement("div",{className:"jgis-stac-panel-placeholder"},"Please select a provider above"))),je().createElement(So,{value:"results"},je().createElement(es,null)))},ns=({model:e})=>je().createElement(fn,{model:e},je().createElement(os,{model:e}));ns.ProviderSelect=function(){const{selectedUrl:e,setSelectedUrl:t}=vn(),a=as.find(t=>t.url===e),r=(null==a?void 0:a.name)||"Select a provider...",o=as.map(e=>({value:e.url,label:e.name,onSelect:()=>t(e.url)}));return je().createElement("div",{className:"jgis-stac-filter-extension-section"},je().createElement("label",{className:"jgis-stac-filter-extension-label"},"Provider"),je().createElement(Go,{items:o,buttonText:r,emptyText:"No provider found.",buttonClassName:"jgis-stac-filter-extension-select"}))};const ss=ns,is=e=>{var t;const[a,r]=Ee.useState(e.model.jgisSettings),[o,n]=Ee.useState(e.model.getOptions()),s=null!==(t=o.storyMapPresentationMode)&&void 0!==t&&t,[i,l]=Ee.useState(e.model.getLayerTree());Ee.useEffect(()=>{const t=()=>{r(Object.assign({},e.model.jgisSettings))},a=()=>{n(Object.assign({},e.model.getOptions()))},o=()=>{l(e.model.getLayerTree()||[])};return e.model.settingsChanged.connect(t),e.model.sharedOptionsChanged.connect(a),e.model.sharedModel.layersChanged.connect(o),e.model.sharedModel.layerTreeChanged.connect(o),o(),()=>{e.model.settingsChanged.disconnect(t),e.model.sharedOptionsChanged.disconnect(a),e.model.sharedModel.layersChanged.disconnect(o),e.model.sharedModel.layerTreeChanged.disconnect(o)}},[e.model]);const{filteredLayerTree:c,storySegmentLayerTree:d}=Ee.useMemo(()=>{const t=[],a=[],r=t=>{if("string"==typeof t){const a=e.model.getLayer(t),r="StorySegmentLayer"===(null==a?void 0:a.type);return{filtered:r?null:t,storySegment:r?t:null}}const a=[],o=[];for(const e of t.layers){const t=r(e);null!==t.filtered&&a.push(t.filtered),null!==t.storySegment&&o.push(t.storySegment)}return{filtered:a.length>0?Object.assign(Object.assign({},t),{layers:a}):null,storySegment:o.length>0?Object.assign(Object.assign({},t),{layers:o}):null}};for(const e of i){const o=r(e);null!==o.filtered&&t.push(o.filtered),null!==o.storySegment&&a.push(o.storySegment)}return t.reverse(),{filteredLayerTree:t,storySegmentLayerTree:a}},[i]);Ee.useEffect(()=>{const{storyId:t,story:a}=e.model.getSelectedStory();a&&e.model.sharedModel.updateStoryMap(t,Object.assign(Object.assign({},a),{storySegments:d}))},[d]);const m=a.layersDisabled&&a.stacBrowserDisabled&&a.filtersDisabled&&a.storyMapsDisabled,p=!a.leftPanelDisabled&&!m,u=[!a.layersDisabled&&{name:"layers",title:"Layers"},!a.stacBrowserDisabled&&!s&&{name:"stac",title:"Stac Browser"},!a.filtersDisabled&&!s&&{name:"filters",title:"Filters"},!a.storyMapsDisabled&&{name:"segments",title:"Segments"}].filter(Boolean),[g,y]=Ee.useState(u.length>0?u[0].name:void 0);return Ee.createElement("div",{className:"jgis-left-panel-container",style:{display:p?"block":"none"}},Ee.createElement(fo,{curTab:g,className:"jgis-panel-tabs"},Ee.createElement(vo,null,u.map(e=>Ee.createElement(bo,{className:"jGIS-layer-browser-category",key:e.name,value:e.name,onClick:()=>{g!==e.name?y(e.name):y("")}},e.title))),!a.layersDisabled&&Ee.createElement(So,{value:"layers",className:"jgis-panel-tab-content jp-gis-layerPanel"},Ee.createElement(no,{model:e.model,commands:e.commands,state:e.state,layerTree:c})),!a.stacBrowserDisabled&&Ee.createElement(So,{value:"stac",className:"jgis-panel-tab-content jgis-panel-tab-content-stac-panel"},Ee.createElement(ss,{model:e.model})),!a.filtersDisabled&&Ee.createElement(So,{value:"filters",className:"jgis-panel-tab-content"},Ee.createElement(uo,{model:e.model})),!a.storyMapsDisabled&&Ee.createElement(So,{value:"segments",className:"jgis-panel-tab-content"},Ee.createElement(no,{model:e.model,commands:e.commands,state:e.state,layerTree:d}))))};class ls extends Ee.Component{constructor(e){var t,a;super(e),this._annotationModel=e.annotationModel,this._jgisModel=e.jgisModel,null===(a=null===(t=this._annotationModel)||void 0===t?void 0:t.model)||void 0===a||a.sharedMetadataChanged.connect(()=>{this.forceUpdate()}),this.forceUpdate()}render(){var e;const t=null===(e=this._annotationModel)||void 0===e?void 0:e.getAnnotationIds();if(!t||!this._annotationModel)return je().createElement("div",null);const a=t.map(e=>je().createElement("div",{className:"jgis-annotation-panel"},je().createElement(zr,{jgisModel:this._jgisModel,annotationModel:this._annotationModel,itemId:e}),je().createElement("hr",{className:"jGIS-Annotations-Separator"})));return je().createElement("div",{className:"jgis-scrollable"},a)}}const cs=({model:e})=>{var t;const[a,r]=(0,Ee.useState)(),[o,n]=(0,Ee.useState)({0:!0}),[s,i]=(0,Ee.useState)(null),l=(0,Ee.useRef)(a);return(0,Ee.useEffect)(()=>{l.current=a},[a]),(0,Ee.useEffect)(()=>{const t=(t,a)=>{var o,n,c,d,m,p;const u=null===(o=null==e?void 0:e.localState)||void 0===o?void 0:o.remoteUser;if(u){const e=a.get(u);return void(e&&((null===(n=e.user)||void 0===n?void 0:n.username)!==(null==s?void 0:s.username)&&i(e.user),r(null!==(d=null===(c=e.identifiedFeatures)||void 0===c?void 0:c.value)&&void 0!==d?d:{})))}const g=null===(p=null===(m=null==e?void 0:e.localState)||void 0===m?void 0:m.identifiedFeatures)||void 0===p?void 0:p.value;g?"identifying"===e.currentMode&&l.current!==g&&r(g):r({})};return null==e||e.clientStateChanged.connect(t),()=>{null==e||e.clientStateChanged.disconnect(t)}},[e]),je().createElement("div",{className:"jgis-identify-wrapper",style:{border:(null===(t=null==e?void 0:e.localState)||void 0===t?void 0:t.remoteUser)?`solid 3px ${null==s?void 0:s.color}`:"unset"}},!Object.keys(null!=a?a:{}).length&&je().createElement("div",{style:{textAlign:"center"}},'Please select a layer from the layer list, then "i" from the toolbar to start identifying features.'),a&&Object.values(a).map((t,a)=>je().createElement("div",{key:a,className:"jgis-identify-grid-item"},je().createElement("div",{className:"jgis-identify-grid-item-header"},je().createElement("span",{onClick:()=>{return e=a,void n(t=>Object.assign(Object.assign({},t),{[e]:!t[e]}));var e}},je().createElement(c.LabIcon.resolveReact,{icon:c.caretDownIcon,className:"jp-gis-layerGroupCollapser"+(o[a]?" jp-mod-expanded":""),tag:"span"}),je().createElement("span",null,((e,t)=>{for(const t of Object.keys(e)){const a=t.toLowerCase();if((a.includes("name")||"id"===a)&&e[t])return e[t]}return`Feature ${t+1}`})(t,a))),(()=>{const a=!t.geometry&&!t._geometry&&"number"!=typeof(null==t?void 0:t.x)&&"number"!=typeof(null==t?void 0:t.y);return je().createElement("button",{className:"jgis-highlight-button",onClick:a=>{a.stopPropagation(),(t=>{var a,r;null===(a=null==e?void 0:e.highlightFeatureSignal)||void 0===a||a.emit(t);const o=t.geometry||t._geometry;null===(r=null==e?void 0:e.flyToGeometrySignal)||void 0===r||r.emit(o)})(t)},title:a?"Highlight not available for raster features":"Highlight feature on map",disabled:a},je().createElement(ht.g,{icon:yt.$UM}))})()),o[a]&&je().createElement(je().Fragment,null,Object.entries(t).filter(([e,t])=>"object"!=typeof t||null===t).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>je().createElement("div",{key:e,className:"jgis-identify-grid-body"},je().createElement("strong",null,e,":"),"string"==typeof t&&/<\/?[a-z][\s\S]*>/i.test(t)?je().createElement("span",{dangerouslySetInnerHTML:{__html:`${t}`}}):je().createElement("span",null,String(t))))))))};var ds=a(22717);class ms extends Ee.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,i;if(this.props.layer){if(r=this.props.model.getLayer(this.props.layer),!r)return;if(t=Dt((null==r?void 0:r.type)||"RasterLayer"),a=ze((null==r?void 0:r.parameters)||{}),e=ze(this.props.formSchemaRegistry.getSchemas().get(r.type)),!e)return void console.error(`Cannot find schema for ${r.type}`)}if(this.props.source){if(i=this.props.model.getSource(this.props.source),!i)return;if(n=Ft((null==i?void 0:i.type)||"RasterSource"),s=ze((null==i?void 0:i.parameters)||{}),o=ze(this.props.formSchemaRegistry.getSchemas().get(i.type)),!o)return void console.error(`Cannot find schema for ${i.type}`)}return Ee.createElement("div",null,this.props.layer&&t&&Ee.createElement("div",null,Ee.createElement("h3",{style:{paddingLeft:"5px"}},"Layer Properties"),Ee.createElement(t,{key:`${this.props.layer}-${null==i?void 0:i.type}`,formContext:"update",sourceType:(null==i?void 0:i.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&&n&&Ee.createElement("div",null,Ee.createElement("h3",{style:{paddingLeft:"5px"}},"Source Properties"),Ee.createElement(n,{key:`${this.props.source}-${null==r?void 0:r.type}`,formContext:"update",model:this.props.model,filePath:this.props.model.filePath,schema:o,sourceData:s,syncData:e=>{this.syncObjectProperties(this.props.source,e)},formChangedSignal:this.sourceFormChangedSignal,sourceType:(null==i?void 0:i.type)||"RasterSource"})))}}class ps extends Ee.Component{constructor(e){var t,a;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 this.state.setSelectedObject(void 0),void this.setState(e=>Object.assign(Object.assign({},e),{selectedObject:void 0}));const a=t[0];a!==this.state.selectedObject&&(this.state.setSelectedObject(a),this.setState(e=>Object.assign(Object.assign({},e),{selectedObject:a})))}},this.state={clientId:e.model.getClientId(),id:(0,ds.A)(),model:e.model,selectedObject:e.selectedObject,setSelectedObject:e.setSelectedObject},this.props.model.clientStateChanged.connect(this._onClientSharedStateChanged),null===(t=this.props.model)||void 0===t||t.sharedLayersChanged.connect(this._sharedJGISModelChanged),null===(a=this.props.model)||void 0===a||a.sharedSourcesChanged.connect(this._sharedJGISModelChanged)}render(){var e;const t=this.state.selectedObject;if(!t||!this.state.model)return Ee.createElement("div",{style:{textAlign:"center"}},"No layer selected");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),Ee.createElement(ms,{layer:a,source:r,formSchemaRegistry:this.props.formSchemaRegistry,model:this.state.model})}}var us=a(40276);function gs(e){var{className: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,["className"]);return Ee.createElement(us.bL,Object.assign({"data-slot":"switch",className:Ct("jgis-switch",t)},a),Ee.createElement(us.zi,{"data-slot":"switch-thumb",className:"jgis-switch-thumb"}))}function ys({checked:e,onCheckedChange:t}){return Ee.createElement("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem",padding:"1rem",paddingBottom:"0"}},Ee.createElement("label",{htmlFor:"preview-mode-switch",style:{fontSize:"0.875rem"}},"Preview Mode"),Ee.createElement(gs,{id:"preview-mode-switch",checked:e,onCheckedChange:t}))}var hs=a(48310);class fs extends mt{processSchema(e,t,a){super.processSchema(e,t,a),this.removeFormEntry("storySegments",e,t,a),a.presentaionBgColor={"ui:widget":"color"},a.presentaionTextColor={"ui:widget":"color"}}}const vs=ze(hs.definitions.jGISStoryMap),bs=({model:e,commands:t})=>je().createElement("div",{style:{display:"flex",justifyContent:"center"}},je().createElement(xt,{onClick:()=>t.execute(ve.addStorySegment)},je().createElement(ht.g,{icon:yt.CQO})," Add Story Segment")),Ss=function({model:e,commands:t}){const{storyId:a,story:r}=(0,Ee.useMemo)(()=>e.getSelectedStory(),[e,e.sharedModel.stories]);return r?je().createElement("div",{className:"jgis-story-editor-panel"},je().createElement(fs,{formContext:"update",sourceData:r,model:e,schema:vs,syncData:t=>{var o;const n=Object.assign(Object.assign(Object.assign({},r),t),{storySegments:null!==(o=null==r?void 0:r.storySegments)&&void 0!==o?o:[]});e.sharedModel.updateStoryMap(a,n)},filePath:e.filePath}),je().createElement(bs,{model:e,commands:t})):je().createElement("div",{style:{padding:"1rem"}},je().createElement("p",null,"No Story Map available."),je().createElement("p",null,"Add a Story Segment from the Add Layer menu. A segment captures the current map view. You can add markdown text and an image to each segment to tell your story."),je().createElement(bs,{model:e,commands:t}))};var ws=a(55025);const Es=function({markdown:e}){return e?je().createElement("div",{className:"jgis-story-viewer-content"},je().createElement(ws.oz,null,e)):null},js=function({onPrev:e,onNext:t,hasPrev:a,hasNext:r,isSpecta:o}){return je().createElement("div",{className:"jgis-story-navbar "+(o?"jgis-story-navbar-specta-mod":"")},je().createElement(xt,{onClick:e,disabled:!a,"aria-label":"Previous slide"},je().createElement(Jo.A,null)),je().createElement(xt,{onClick:t,disabled:!r,"aria-label":"Next slide"},je().createElement(Qo.A,null)))},Cs=function({imageUrl:e,imageLoaded:t,layerName:a,slideNumber:r,isSpecta:o,storyType:n,onPrev:s,onNext:i,hasPrev:l,hasNext:c}){return t?je().createElement("div",{className:"jgis-story-viewer-image-section"},je().createElement("div",{className:"jgis-story-viewer-image-container"},je().createElement("img",{src:e,alt:"Story map image",className:"jgis-story-viewer-image"}),!o&&"guided"===n&&je().createElement("div",{className:"jgis-story-viewer-nav-container"},je().createElement(js,{onPrev:s,onNext:i,hasPrev:l,hasNext:c,isSpecta:o})))):null},xs=function({title:e,isSpecta:t,onPrev:a,onNext:r,hasPrev:o,hasNext:n}){return je().createElement("div",{className:"jgis-story-viewer-subtitle-container"},je().createElement("h2",{className:"jgis-story-viewer-subtitle"},e||"Slide Title"),t&&je().createElement("div",{className:"jgis-story-viewer-nav-container-specta-mod"},je().createElement(js,{onPrev:a,onNext:r,hasPrev:o,hasNext:n,isSpecta:t})))},Os=function({title:e,isSpecta:t,storyType:a,onPrev:r,onNext:o,hasPrev:n,hasNext:s}){return je().createElement(je().Fragment,null,je().createElement("h1",{className:"jgis-story-viewer-title"},e),!t&&"guided"===a&&je().createElement(js,{onPrev:r,onNext:o,hasPrev:n,hasNext:s,isSpecta:t}))},_s=(0,Ee.forwardRef)(({model:e,isSpecta:t},a)=>{var r,o,n,s,i,l,c,d,m,p,u,g,y;const[h,f]=(0,Ee.useState)(0),[v,b]=(0,Ee.useState)(null!==(r=e.getSelectedStory().story)&&void 0!==r?r:null),[S,w]=(0,Ee.useState)(!1),E=(0,Ee.useRef)(null),j=(0,Ee.useMemo)(()=>(null==v?void 0:v.storySegments)?v.storySegments.map(t=>e.getLayer(t)).filter(e=>void 0!==e):[],[v,e]),C=(0,Ee.useMemo)(()=>j[h],[j,h]),x=(0,Ee.useMemo)(()=>null==C?void 0:C.parameters,[C]),O=(0,Ee.useMemo)(()=>{var e;return null!==(e=null==C?void 0:C.name)&&void 0!==e?e:""},[C]),_=(0,Ee.useMemo)(()=>{var e;return null===(e=null==v?void 0:v.storySegments)||void 0===e?void 0:e[h]},[v,h]),M=(0,Ee.useCallback)(t=>{var a;const r=null===(a=null==v?void 0:v.storySegments)||void 0===a?void 0:a[t];r&&(e.selected={[r]:{type:"layer"}})},[v,e]);(0,Ee.useEffect)(()=>{const t=()=>{const{story:t}=e.getSelectedStory();b(null!=t?t:null),f(0)};return t(),e.sharedModel.storyMapsChanged.connect(t),()=>{e.sharedModel.storyMapsChanged.disconnect(t)}},[e]),(0,Ee.useEffect)(()=>{var e;const t=null===(e=null==x?void 0:x.content)||void 0===e?void 0:e.image;if(!t)return void w(!1);w(!1);const a=new Image;return a.onload=()=>{w(!0)},a.onerror=()=>{w(!1)},a.src=t,()=>{a.onload=null,a.onerror=null}},[null===(o=null==x?void 0:x.content)||void 0===o?void 0:o.image]),(0,Ee.useEffect)(()=>{_&&_&&e.centerOnPosition(_)},[_,e]),(0,Ee.useEffect)(()=>{(null==v?void 0:v.storySegments)&&h>=0&&M(h)},[v,h,M]),(0,Ee.useEffect)(()=>{const t=()=>{var t,a;if(!v||"unguided"!==v.storyType)return;const r=e.sharedModel.awareness.getLocalState();if(!r||!(null===(t=r.selected)||void 0===t?void 0:t.value))return;const o=Object.keys(r.selected.value);if(1!==o.length)return;const n=o[0],s=e.getLayer(n);if(!s||"StorySegmentLayer"!==s.type)return;const i=null===(a=v.storySegments)||void 0===a?void 0:a.indexOf(n);void 0!==i&&-1!==i&&f(i)};return e.sharedModel.awareness.on("change",t),()=>{e.sharedModel.awareness.off("change",t)}},[e,v]);const N=(0,Ee.useCallback)(()=>{h>0&&f(h-1)},[h]),I=(0,Ee.useCallback)(()=>{h<j.length-1&&f(h+1)},[h,j.length]);if((0,Ee.useImperativeHandle)(a,()=>({handlePrev:N,handleNext:I,canNavigate:t}),[N,I,v,t]),!v||0===(null===(n=null==v?void 0:v.storySegments)||void 0===n?void 0:n.length))return je().createElement("div",{style:{padding:"1rem"}},je().createElement("p",null,"No Segments available. Add one using the Add Layer menu."));const T={onPrev:N,onNext:I,hasPrev:h>0,hasNext:h<j.length-1},L=null!==(i=null===(s=null==x?void 0:x.transition)||void 0===s?void 0:s.time)&&void 0!==i?i:.3;return je().createElement("div",{ref:E,className:"jgis-story-viewer-panel "+(t?"jgis-story-viewer-panel-specta-mod":"")},je().createElement("div",{key:h,className:"jgis-story-segment-container",style:{animationDuration:`${L}s`}},je().createElement("h1",{className:"jgis-story-viewer-title"},null!=O?O:`Slide ${h+1}`),(null===(l=null==x?void 0:x.content)||void 0===l?void 0:l.image)&&S?je().createElement(Cs,Object.assign({imageUrl:x.content.image,imageLoaded:S,layerName:null!=O?O:"",slideNumber:h,isSpecta:t,storyType:null!==(c=v.storyType)&&void 0!==c?c:"guided"},T)):je().createElement(Os,Object.assign({title:null!==(d=v.title)&&void 0!==d?d:"",isSpecta:t,storyType:null!==(m=v.storyType)&&void 0!==m?m:"guided"},T)),je().createElement(xs,Object.assign({title:null!==(u=null===(p=null==x?void 0:x.content)||void 0===p?void 0:p.title)&&void 0!==u?u:"",isSpecta:t},T)),je().createElement(Es,{markdown:null!==(y=null===(g=null==x?void 0:x.content)||void 0===g?void 0:g.markdown)&&void 0!==y?y:""})))});_s.displayName="StoryViewerPanel";const Ms=_s,Ns=e=>{var t;const[a,r]=Ee.useState(!0),[o,n]=Ee.useState(e.model.jgisSettings),[s,i]=Ee.useState(null!==(t=e.model.getOptions().storyMapPresentationMode)&&void 0!==t&&t),l=!s&&a,c=s?"Story Map":a?"Story Editor":"Story Map",d=[!o.objectPropertiesDisabled&&!s&&{name:"objectProperties",title:"Object Properties"},!o.storyMapsDisabled&&{name:"storyPanel",title:c},!o.annotationsDisabled&&{name:"annotations",title:"Annotations"},!o.identifyDisabled&&{name:"identifyPanel",title:"Identified Features"}].filter(Boolean),[m,p]=Ee.useState(()=>s?"storyPanel":d.length>0?d[0].name:"");Ee.useEffect(()=>{const t=()=>{n(Object.assign({},e.model.jgisSettings))},a=()=>{const{storyMapPresentationMode:t}=e.model.getOptions();i(null!=t&&t)};let r;const o=(t,a)=>{var o;const n=e.model.getClientId(),s=n?a.get(n):null;s&&(null===(o=s.identifiedFeatures)||void 0===o?void 0:o.value)&&s.identifiedFeatures.value!==r&&(r=s.identifiedFeatures.value,p("identifyPanel"))};return e.model.settingsChanged.connect(t),e.model.sharedOptionsChanged.connect(a),e.model.clientStateChanged.connect(o),()=>{e.model.settingsChanged.disconnect(t),e.model.sharedOptionsChanged.disconnect(a),e.model.clientStateChanged.disconnect(o)}},[e.model]);const u=o.objectPropertiesDisabled&&o.annotationsDisabled&&o.identifyDisabled,g=!o.rightPanelDisabled&&!u,[y,h]=Ee.useState(void 0);return Ee.createElement("div",{className:"jgis-right-panel-container",style:{display:g?"block":"none"}},Ee.createElement(fo,{className:"jgis-panel-tabs",curTab:m},Ee.createElement(vo,null,d.map(e=>Ee.createElement(bo,{className:"jGIS-layer-browser-category",key:`${e.name}-${e.title}`,value:e.name,onClick:()=>{m!==e.name?p(e.name):p("")}},e.title))),!o.objectPropertiesDisabled&&Ee.createElement(So,{value:"objectProperties",className:"jgis-panel-tab-content"},Ee.createElement(ps,{setSelectedObject:h,selectedObject:y,formSchemaRegistry:e.formSchemaRegistry,model:e.model})),!o.storyMapsDisabled&&Ee.createElement(So,{value:"storyPanel",className:"jgis-panel-tab-content",style:{paddingTop:0}},!s&&Ee.createElement(ys,{checked:!a,onCheckedChange:()=>{r(!a)}}),l?Ee.createElement(Ss,{model:e.model,commands:e.commands}):Ee.createElement(Ms,{model:e.model,isSpecta:!1})),!o.annotationsDisabled&&Ee.createElement(So,{value:"annotations",className:"jgis-panel-tab-content"},Ee.createElement(ls,{annotationModel:e.annotationModel,jgisModel:e.model})),!o.identifyDisabled&&Ee.createElement(So,{value:"identifyPanel",className:"jgis-panel-tab-content"},Ee.createElement(cs,{model:e.model}))))};class Is extends Ee.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,i.DI)(a,t.getProjection(),e)},this.createSelectInteraction=()=>{const e=new Ir.Ay({image:new Tr.A({radius:5,fill:new Lr.A({color:"#C52707"}),stroke:new kr.A({color:"#171717",width:2})})}),t=new Ir.Ay({stroke:new kr.A({color:"#171717",width:2})}),a=new Ir.Ay({fill:new Lr.A({color:"#C5270780"}),stroke:new kr.A({color:"#171717",width:2})}),r=new rr.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,Ka.t5)(e)&&"identifying"===this._model.currentMode,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(ve.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:ve.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,i.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 l=n.isTemporalControllerActive;l!==this.state.displayTemporalController&&(this.setState(e=>Object.assign(Object.assign({},e),{displayTemporalController:l})),this._mainViewModel.commands.notifyCommandChanged(ve.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._setupSpectaMode=()=>{this._removeAllInteractions(),this._setupStoryScrollListener(),this._updateSpectaPresentationColors()},this._removeAllInteractions=()=>{const e=this._Map.getInteractions().getArray(),t=[or.A,nr.A,sr.A,ir.A,lr.A,cr.A,dr.A,mr.A,pr.A,ur.A,rr.A];this._zoomControl&&this._Map.removeControl(this._zoomControl),t.forEach(t=>{const a=e.find(e=>e instanceof t);a&&this._Map.removeInteraction(a)})},this._setupStoryScrollListener=()=>{const e=Ae(()=>{const e=this.storyViewerPanelRef.current;null==e||e.handleNext()},750),t=Ae(()=>{const e=this.storyViewerPanelRef.current;null==e||e.handlePrev()},750),a=a=>{const r=this.storyViewerPanelRef.current;if(!r||!r.canNavigate)return;const o=a,n=o.target,s=document.querySelector(".jgis-story-viewer-panel");if(!s)return o.preventDefault(),void(o.deltaY>0?e():t());if(!(s.scrollHeight>s.clientHeight))return o.preventDefault(),void(o.deltaY>0?e():t());const i=s.scrollTop,l=s.scrollHeight,c=s.clientHeight,d=i+c>=l-0,m=i<=0,p=o.deltaY>0,u=o.deltaY<0;if(p&&d||u&&m)return o.preventDefault(),void(p?e():t());if(n.closest(".jgis-story-viewer-panel"))return;o.preventDefault();const g=Math.max(0,Math.min(l-c,i+o.deltaY));s.scrollTop=g};this._storyScrollHandler=a;const r=document.querySelector(".jGIS-Mainview-Container");r&&r.addEventListener("wheel",a,{passive:!1})},this._cleanupStoryScrollListener=()=>{if(this._storyScrollHandler){const e=document.querySelector(".jGIS-Mainview-Container");e&&e.removeEventListener("wheel",this._storyScrollHandler),this._storyScrollHandler=null}},this._updateSpectaPresentationColors=()=>{var e;const t=this.spectaContainerRef.current||(null===(e=this.divRef.current)||void 0===e?void 0:e.querySelector(".jgis-specta-story-panel-container"));if(!t)return;const a=this._model.getSelectedStory().story,r=null==a?void 0:a.presentaionBgColor,o=null==a?void 0:a.presentaionTextColor;if(r){const e=ma(r);t.style.setProperty("--jgis-specta-bg-color",`rgba(${e[0]}, ${e[1]}, ${e[2]})`)}o&&t.style.setProperty("--jgis-specta-text-color",o)},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=Ae(e=>{const t={coordinates:{x:e[0],y:e[1]}};this._model.syncPointer(t)}),this._handleThemeChange=()=>{const e=Be();this.setState(t=>Object.assign(Object.assign({},t),{lightTheme:e}))},this._handleWindowResize=()=>{},this._isPositionInitialized=!1,this.divRef=Ee.createRef(),this.controlsToolbarRef=Ee.createRef(),this.spectaContainerRef=Ee.createRef(),this.storyViewerPanelRef=Ee.createRef(),this._ready=!1,this._sourceToLayerMap=new Map,this._originalFeatures={},this._featurePropertyCache=new Map,this._isSpectaPresentationInitialized=!1,this._storyScrollHandler=null,this._state=e.state,this._formSchemaRegistry=e.formSchemaRegistry,this._annotationModel=e.annotationModel;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.settingsChanged.connect(this._onSettingsChanged,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;"identifying"!==this._model.currentMode&&this._highlightLayer&&(null===(e=this._highlightLayer.getSource())||void 0===e||e.clear())}),this.state={id:this._mainViewModel.id,lightTheme:Be(),loading:!0,annotations:{},clientPointers:{},viewProjection:{code:"",units:""},loadingLayer:!1,scale:0,loadingErrors:[],displayTemporalController:!1,filterStates:{},isSpectaPresentation:!1},this._sources=[],this._loadingLayers=new Set,this._commands=new Wa.CommandRegistry,this._contextMenu=new Ba.ContextMenu({commands:this._commands}),this._updateCenter=Pe(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,i.Rb)([e.longitude,e.latitude]):[0,0],a=void 0!==e.zoom?e.zoom:1;await this.generateMap(t,a),this._mainViewModel.initSignal(),void 0!==window.jupytergisMaps&&this._documentPath&&(window.jupytergisMaps[this._documentPath]=this._Map)}componentDidUpdate(e,t){this.state.isSpectaPresentation&&!this._isSpectaPresentationInitialized&&(this._setupSpectaMode(),this._isSpectaPresentationInitialized=!0)}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.settingsChanged.disconnect(this._onSettingsChanged,this),this._model.sharedOptionsChanged.disconnect(this._onSharedOptionsChanged,this),this._model.clientStateChanged.disconnect(this._onClientSharedStateChanged,this),this._cleanupStoryScrollListener(),this._mainViewModel.dispose()}async generateMap(e,t){const a=new Qa.A({target:this.controlsToolbarRef.current||void 0}),r=new Za.A({target:this.controlsToolbarRef.current||void 0});this._zoomControl=new Ya.A({target:this.controlsToolbarRef.current||void 0});const o=[a,r];if(this._model.jgisSettings.zoomButtonsEnabled&&o.push(this._zoomControl),this.divRef.current){this._Map=new Ua.A({target:this.divRef.current,keyboardEventTarget:document,layers:[],view:new $a.Ay({center:e,zoom:t}),controls:o});const a=new ur.A({formatConstructors:[er.A]});a.on("addfeatures",e=>{const t=we.UUID.uuid4(),a={type:"GeoJSONSource",name:"Drag and Drop source",parameters:{path:e.file.name}},r=we.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",Ae(()=>{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,i.WP)(a,o),s=t.getRotation(),l=t.getResolution(),c={latitude:n[1],longitude:n[0],bearing:s,projection:o.getCode(),zoom:r};if(c.extent=t.calculateExtent(),this._model.setOptions(Object.assign(Object.assign({},e),c)),l){const e=l*(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.on("click",this._addMarker.bind(this)),this._Map.getViewport().addEventListener("pointermove",this._onPointerMove.bind(this)),0!==l.JupyterGISModel.getOrderedLayerIds(this._model).length){await this._updateLayersImpl(l.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")||e.url.endsWith("pmtiles.gz"),r=this.computeSourceUrl(t);o=a?new Ar.b({interpolate:e.interpolate,attributions:e.attribution,tileSize:256,url:r}):new jr.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 Cr.A({interpolate:e.interpolate,url:this.computeSourceUrl(t),attributions:e.attribution});break}case"VectorTileSource":{const a=t.parameters,r=a.url.endsWith(".pmtiles")||a.url.endsWith("pmtiles.gz"),n=this.computeSourceUrl(t);o=r?new Ar.X({attributions:a.attribution,url:n}):new xr.A({attributions:a.attribution,minZoom:a.minZoom,maxZoom:a.maxZoom,url:n,format:new tr.A({featureClass:Er.Ay})}),o.on("tileloadend",t=>{const a=t.tile.getFeatures();a&&a.length>0&&this._model.syncTileFeatures({sourceId:e,features:a})});break}case"GeoJSONSource":{const e=(null===(a=t.parameters)||void 0===a?void 0:a.data)||await Ye({filepath:null===(r=t.parameters)||void 0===r?void 0:r.path,type:"GeoJSONSource",model:this._model}),n=new er.A({featureProjection:this._Map.getView().getProjection()}).readFeatures(e,{featureProjection:this._Map.getView().getProjection()}),s=new qa.A(n);s.forEach(e=>{e.setId((0,Ha.v6)(e))}),o=new Or.A({features:s});break}case"ShapefileSource":{const e=t.parameters,a=await Ye({filepath:e.path,type:"ShapefileSource",model:this._model}),r=Array.isArray(a)?a[0]:a,n=new er.A;o=new Or.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])),l=(0,i.Rb)([a,s]),c=(0,i.Rb)([n,r]),d=l[0],m=l[1],p=c[0],u=[d,c[1],p,m],g=await Ye({filepath:e.path,type:"ImageSource",model:this._model});o=new Nr.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 Ye({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 _r.A({interpolate:e.interpolate,sources:r,normalize:e.normalize,wrapX:e.wrapX});break}case"GeoParquetSource":{const e=t.parameters,a=await Ye({filepath:e.path,type:"GeoParquetSource",model:this._model}),r=Array.isArray(a)?a[0]:a,n=new er.A;o=new Or.A({features:n.readFeatures(r,{dataProjection:e.projection,featureProjection:this._Map.getView().getProjection()})});break}case"MarkerSource":{const e=t.parameters,a=new ar.A(e.feature.coords),r=new Ja.A({type:"icon",geometry:a}),n=e.color||"#3463a0",s=fe.svgstr.replace("{{COLOR}}",n),i=new Ir.Ay({image:new Pr.A({src:`data:image/svg+xml;charset=utf-8,${encodeURIComponent(s)}`,scale:.25})});r.setStyle(i),o=new Or.A({features:[r]})}}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","StorySegmentLayer"].includes(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 Sr.A({opacity:s.opacity,visible:t.visible,source:this._sources[s.source]});break;case"VectorLayer":s=t.parameters,n=new gr.A({opacity:s.opacity,visible:t.visible,source:this._sources[s.source],style:this.vectorLayerStyleRuleBuilder(t)});break;case"VectorTileLayer":s=t.parameters,n=new yr.A({opacity:s.opacity,source:this._sources[s.source],style:this.vectorLayerStyleRuleBuilder(t)});break;case"HillshadeLayer":s=t.parameters,n=new hr.A({opacity:.3,source:this._sources[s.source],style:{color:["color",this.hillshadeMath()]}});break;case"ImageLayer":s=t.parameters,n=new fr.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 hr.A(e);break}case"HeatmapLayer":s=t.parameters,n=new vr.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 Gr.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}));break;case"StorySegmentLayer":return}return n.set("id",e),n instanceof br.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,i.Jt)(r)){if(!Fr()[r])return void console.warn(`Projection code '${r}' not found in proj4list`);try{Rr.A.defs([Fr()[r]]),(0,wr.kz)(Rr.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;await(0,s.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})}finally{this._loadingLayers.delete(e),this.setState(e=>Object.assign(Object.assign({},e),{loadingLayer:!1}))}}async updateLayer(e,t,a,r){var o,n,s,i,l,c,d,m;switch("StorySegmentLayer"!==t.type&&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 er.A).readGeometry(a,{featureProjection:this._Map.getView().getProjection()}),o=new Ja.A(Object.assign({geometry:r},a!==t?t:{}));this._highlightLayer||(this._highlightLayer=new gr.A({source:new Or.A,style:e=>{var t;switch(null===(t=e.getGeometry())||void 0===t?void 0:t.getType()){case"Point":case"MultiPoint":return new Ir.Ay({image:new Tr.A({radius:6,fill:new Lr.A({color:"rgba(255, 255, 0, 0.8)"}),stroke:new kr.A({color:"#ff0",width:2})})});case"LineString":case"MultiLineString":return new Ir.Ay({stroke:new kr.A({color:"rgba(255, 255, 0, 0.8)",width:3})});case"Polygon":case"MultiPolygon":return new Ir.Ay({stroke:new kr.A({color:"#f00",width:2}),fill:new Lr.A({color:"rgba(255, 255, 0, 0.8)"})});default:return new Ir.Ay({stroke:new kr.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(){const e=this._model.isSpectaMode();if(this._isSpectaPresentationInitialized||(e?this.setState(e=>Object.assign(Object.assign({},e),{isSpectaPresentation:!0})):(this.addContextMenu(),this._isSpectaPresentationInitialized=!0)),!this._isPositionInitialized){const e=this._model.getOptions();this.updateOptions(e),this._isPositionInitialized=!0}}_onSettingsChanged(e,t){if("zoomButtonsEnabled"!==t||!this._Map)return;const a=this._model.jgisSettings.zoomButtonsEnabled;!a&&this._zoomControl&&(this._Map.removeControl(this._zoomControl),this._zoomControl=void 0),a&&!this._zoomControl&&(this._zoomControl=new Ya.A({target:this.controlsToolbarRef.current||void 0}),this._Map.addControl(this._zoomControl))}async updateOptions(e){const{projection:t,extent:a,useExtent:r,latitude:o,longitude:n,zoom:s,bearing:l}=e;let c=this._Map.getView();const d=c.getProjection().getCode();if(void 0!==t&&d!==t){const e=(0,i.Jt)(t);if(!e)return void console.warn(`Invalid projection: ${t}`);c=new $a.Ay({projection:e})}if(r&&a)c.fit(a);else{const t=(0,i.Rb)([n||0,o||0],c.getProjection());this._moveToPosition({x:t[0],y:t[1]},s||0),e.extent||(e.extent=c.calculateExtent(),this._model.setOptions(e))}c.setRotation(l||0),this._Map.setView(c)}_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);if(void 0===r)return;this._Map.getLayers().removeAt(a);const o=this._Map.getLayers().getLength(),n=Math.min(t,o);this._Map.getLayers().insertAt(n,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=l.JupyterGISModel.getOrderedLayerIds(this._model);n.includes(t)?this.updateLayer(t,r,o,a):this.updateLayers(n)}))}_onLayerTreeChange(e,t){this._ready=!1,this.updateLayers(l.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,r,o;const n=null===(a=this._model.annotationModel)||void 0===a?void 0:a.getAnnotation(t);if(n)return void this._flyToPosition(n.position,n.zoom);let s;const l=this.getLayer(t),c=null==l?void 0:l.getSource(),d=this._model.getLayer(t);if(!l){if("StacLayer"===(null==d?void 0:d.type)){const e=null===(r=d.parameters.data)||void 0===r?void 0:r.bbox;if(e&&4===e.length){const[t,a,r,o]=e,n=[t,a,r,o],s=this._Map.getView().getProjection(),l="EPSG:4326"!==s.getCode()?(0,i.DI)(n,"EPSG:4326",s):n;return void this._Map.getView().fit(l,{size:this._Map.getSize(),duration:500,padding:[250,250,250,250]})}}if("StorySegmentLayer"===(null==d?void 0:d.type)){const e=d.parameters,t=(0,Xa.q1)(e.extent);return void this._flyToPosition({x:t[0],y:t[1]},e.zoom,1e3*(null!==(o=e.transition.time)&&void 0!==o?o:1),e.transition.type)}}if(c instanceof Or.A&&(s=c.getExtent()),c instanceof Mr.A){const e=c.getTileGrid();s=null==e?void 0:e.getExtent()}if(l instanceof Gr.A&&(s=l.getExtent()),!s)return void console.warn("Layer has no extent.");const m=null==c?void 0:c.getProjection(),p=this._Map.getView().getProjection(),u=m&&m!==p?(0,i.DI)(s,m,p):s;this._Map.getView().fit(u,{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,r){const o=this._Map.getView();o.cancelAnimations();const n=[e.x,e.y];if("linear"!==r){if("smooth"===r){const e=3;return o.animate({center:n,duration:a}),void o.animate({zoom:e,duration:.5*a},{zoom:t,duration:.5*a})}o.setCenter(n),o.setZoom(t)}else o.animate({center:n,zoom:t,duration:a})}_onPointerMove(e){const t=this._Map.getEventPixel(e),a=this._Map.getCoordinateFromPixel(t);this._syncPointer(a)}async _addMarker(e){if("marking"!==this._model.currentMode)return;const t=this._Map.getCoordinateFromPixel(e.pixel),a=we.UUID.uuid4(),r=we.UUID.uuid4(),o={type:"MarkerSource",name:"Marker",parameters:{feature:{coords:[t[0],t[1]]}}},n={type:"VectorLayer",visible:!0,name:"Marker",parameters:{opacity:1,source:a,symbologyState:{renderType:"Single Symbol"}}};this._model.sharedModel.addSource(a,o),await this.addSource(a,o),this._model.addLayer(r,n),await this.addLayer(r,n,this.getLayerIDs().length)}_identifyFeature(e){var t,a;if("identifying"!==this._model.currentMode)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"VectorTileLayer":{const t=[],a=[];let r=!1;if(this._Map.forEachFeatureAtPixel(e.pixel,e=>{var o,n;let s;r=!0;let i={};e instanceof Er.Ay?s=(0,Er.oL)(e):"getGeometry"in e&&(s=e.getGeometry());const l=e.getProperties(),c=null!==(n=null===(o=e.getId)||void 0===o?void 0:o.call(e))&&void 0!==n?n:null==l?void 0:l.fid;return l&&Object.keys(l).length>1?(i=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}(l,[]),null!==c&&this._featurePropertyCache.set(c,i)):null!==c&&this._featurePropertyCache.has(c)&&(i=this._featurePropertyCache.get(c)),s&&t.push(s),i&&Object.keys(i).length>0&&a.push(i),!0}),a.length>0?this._model.syncIdentifiedFeatures(a,this._mainViewModel.id):r||this._model.syncIdentifiedFeatures([],this._mainViewModel.id),t.length>0)for(const e of t)this._model.highlightFeatureSignal.emit(e);else{const t=this._Map.getCoordinateFromPixel(e.pixel),a=new ar.A(t);this._model.highlightFeatureSignal.emit(a)}break}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 ar.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.error("Failed to update layer -- 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 Ee.createElement(Ee.Fragment,null,Object.entries(this.state.annotations).map(([e,t])=>{if(!this._model.annotationModel)return null;const a=this._computeAnnotationPosition(t);return a&&Ee.createElement("div",{key:e,id:e,style:{left:a.x,top:a.y},className:"jGIS-Popup-Wrapper"},Ee.createElement(Vr,{itemId:e,annotationModel:this._model.annotationModel}))}),Ee.createElement("div",{className:"jGIS-Mainview-Container"},this.state.displayTemporalController&&Ee.createElement(Kr,{model:this._model,filterStates:this.state.filterStates}),Ee.createElement("div",{className:"jGIS-Mainview data-jgis-keybinding",tabIndex:0,style:{border:this.state.remoteUser?`solid 3px ${this.state.remoteUser.color}`:"unset"}},Ee.createElement(Yt,{loading:this.state.loading}),Ee.createElement($r,{remoteUser:this.state.remoteUser}),Ee.createElement(Ur,{clients:this.state.clientPointers}),Ee.createElement("div",{ref:this.divRef,style:{width:"100%",height:"100%"}},Ee.createElement("div",{className:"jgis-panels-wrapper"},this.state.isSpectaPresentation?Ee.createElement("div",{className:"jgis-specta-right-panel-container-mod jgis-right-panel-container"},Ee.createElement("div",{ref:this.spectaContainerRef,className:"jgis-specta-story-panel-container"},Ee.createElement(Ms,{ref:this.storyViewerPanelRef,model:this._model,isSpecta:this.state.isSpectaPresentation}))):Ee.createElement(Ee.Fragment,null,this._state&&Ee.createElement(is,{model:this._model,commands:this._mainViewModel.commands,state:this._state}),this._formSchemaRegistry&&this._annotationModel&&Ee.createElement(Ns,{model:this._model,commands:this._mainViewModel.commands,formSchemaRegistry:this._formSchemaRegistry,annotationModel:this._annotationModel}))),Ee.createElement("div",{ref:this.controlsToolbarRef,className:"jgis-controls-toolbar"}))),Ee.createElement(Wr,{jgisModel:this._model,loading:this.state.loadingLayer,projection:this.state.viewProjection,scale:this.state.scale})))}}class Ts extends s.ReactWidget{constructor(e){super(),this._state=e.state,this.addClass("jp-jupytergis-panel"),this._options=e}render(){return Ee.createElement(Is,{state:this._state,viewModel:this._options.mainViewModel,formSchemaRegistry:this._options.formSchemaRegistry,annotationModel:this._options.annotationModel})}}class Ls{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,ds.A)(),e)}async _onsharedLayersChanged(e,t){t.layerChange}}class ks extends Ra.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 Ps extends s.MainAreaWidget{constructor(e){super(e),this.addClass("jgis-cell-output-widget"),this.model=e.model,this.resizeObserver=new ResizeObserver(()=>{Fa.MessageLoop.sendMessage(this,Ba.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 As extends Ba.SplitPanel{constructor(e){var{model:t,consoleTracker:a,state:r,commandRegistry:o,formSchemaRegistry:n,annotationModel:s}=e,i=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","state","commandRegistry","formSchemaRegistry","annotationModel"]);super({orientation:"vertical",spacing:0}),this._consoleOpened=!1,this._state=r,this._initModel({model:t,commandRegistry:o}),this._initView(n,s),this._consoleOption=Object.assign({commandRegistry:o},i),this._consoleTracker=a}_initModel(e){this._view=new Da.ObservableMap,this._mainViewModel=new Ls({jGISModel:e.model,viewSetting:this._view,commands:e.commandRegistry})}_initView(e,t){this._jupyterGISMainViewPanel=new Ts({mainViewModel:this._mainViewModel,state:this._state,formSchemaRegistry:e,annotationModel:t}),this.addWidget(this._jupyterGISMainViewPanel),Ba.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 Va({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)}}const Gs="jGIS-point-selection-tool";function Rs(e,t,a,r,o,n,c){var d;const m=a.load("jupyterlab"),{commands:p}=e,u=p.addCommand.bind(p);p.addCommand=(e,a)=>u(e,(e=>{const a=e.isEnabled;return Object.assign(Object.assign({},e),{isEnabled:e=>{var r;const o=null===(r=t.currentWidget)||void 0===r?void 0:r.model;return!(null==o?void 0:o.isSpectaMode())&&(!a||a(null!=e?e:{}))}})})(a)),p.addCommand(ve.symbology,Object.assign({label:m.__("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:Ds.createSymbologyDialog(t,n)},Se.get(ve.symbology))),p.addCommand(ve.redo,Object.assign({label:m.__("Redo"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:()=>{const e=t.currentWidget;if(e)return e.model.sharedModel.redo()}},null===(d=Se.get(ve.redo))||void 0===d?void 0:d.icon)),p.addCommand(ve.undo,Object.assign({label:m.__("Undo"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:()=>{const e=t.currentWidget;if(e)return e.model.sharedModel.undo()}},Se.get(ve.undo))),p.addCommand(ve.identify,Object.assign({label:m.__("Identify"),isToggled:()=>{const e=t.currentWidget;if(!e)return!1;const a=ka(t);if(!a)return!1;const r=["VectorLayer","ShapefileLayer","WebGlLayer","VectorTileLayer"].includes(a.type);return"identifying"!==e.model.currentMode||r?"identifying"===e.model.currentMode:(e.model.currentMode="panning",e.node.classList.remove(Gs),!1)},isEnabled:()=>{var e;if(null===(e=t.currentWidget)||void 0===e?void 0:e.model.jgisSettings.identifyDisabled)return!1;const a=ka(t);return!!a&&["VectorLayer","ShapefileLayer","WebGlLayer","VectorTileLayer"].includes(a.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.currentMode="panning",a.node.classList.remove(Gs),void p.notifyCommandChanged(ve.identify)}a.node.classList.toggle(Gs),a.model.toggleMode("identifying"),p.notifyCommandChanged(ve.identify)}},Se.get(ve.identify))),p.addCommand(ve.temporalController,Object.assign({label:m.__("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(),p.notifyCommandChanged(ve.temporalController),1))},execute:()=>{const e=t.currentWidget;e&&(e.model.toggleTemporalController(),p.notifyCommandChanged(ve.temporalController))}},Se.get(ve.temporalController))),p.addCommand(ve.openLayerBrowser,Object.assign({label:m.__("Open Layer Browser"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:Ds.createLayerBrowser(t,o,r)},Se.get(ve.openLayerBrowser))),p.addCommand(ve.newRasterEntry,Object.assign({label:m.__("New Raster Tile Layer"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:Ds.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"})},Se.get(ve.newRasterEntry))),p.addCommand(ve.newVectorTileEntry,Object.assign({label:m.__("New Vector Tile Layer"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:Ds.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"})},Se.get(ve.newVectorTileEntry))),p.addCommand(ve.newGeoParquetEntry,Object.assign({label:m.__("New GeoParquet Layer"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:Ds.createEntry({tracker:t,formSchemaRegistry:r,title:"Create GeoParquet Layer",createLayer:!0,createSource:!0,sourceData:{name:"Custom GeoParquet Source"},layerData:{name:"Custom GeoParquet Layer"},sourceType:"GeoParquetSource",layerType:"VectorLayer"})},Se.get(ve.newGeoParquetEntry))),p.addCommand(ve.newGeoJSONEntry,Object.assign({label:m.__("New GeoJSON layer"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:Ds.createEntry({tracker:t,formSchemaRegistry:r,title:"Create GeoJSON Layer",createLayer:!0,createSource:!0,layerData:{name:"Custom GeoJSON Layer"},sourceType:"GeoJSONSource",layerType:"VectorLayer"})},Se.get(ve.newGeoJSONEntry))),function(e,t,a,r,o){for(const n of l.ProcessingMerge){if(n.type!==l.ProcessingLogicType.vector)return void console.error("Unsupported process type");t.addCommand(n.name,{label:r.__(n.label),isEnabled:()=>Pa(["VectorLayer"],a),execute:async()=>{await Aa(a,o,n.description,{sqlQueryFn:(e,t)=>Ga(n.operations.sql,t,e),gdalFunction:n.operations.gdalFunction,options:e=>["-f","GeoJSON","-dialect","SQLITE","-sql",e,"output.geojson"]},e)}})}}(e,p,t,m,r),p.addCommand(ve.newHillshadeEntry,Object.assign({label:m.__("New Hillshade layer"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:Ds.createEntry({tracker:t,formSchemaRegistry:r,title:"Create Hillshade Layer",createLayer:!0,createSource:!0,layerData:{name:"Custom Hillshade Layer"},sourceType:"RasterDemSource",layerType:"HillshadeLayer"})},Se.get(ve.newHillshadeEntry))),p.addCommand(ve.newImageEntry,Object.assign({label:m.__("New Image layer"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:Ds.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"})},Se.get(ve.newImageEntry))),p.addCommand(ve.newVideoEntry,Object.assign({label:m.__("New Video layer"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:Ds.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"})},Se.get(ve.newVideoEntry))),p.addCommand(ve.newGeoTiffEntry,Object.assign({label:m.__("New GeoTiff layer"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:Ds.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"})},Se.get(ve.newGeoTiffEntry))),p.addCommand(ve.newShapefileEntry,Object.assign({label:m.__("New Shapefile Layer"),isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:Ds.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"})},Se.get(ve.newShapefileEntry))),p.addCommand(ve.renameLayer,{label:m.__("Rename Layer"),execute:async()=>{var e;const a=null===(e=t.currentWidget)||void 0===e?void 0:e.model;await Ds.renameSelectedItem(a,"layer")}}),p.addCommand(ve.removeLayer,{label:m.__("Remove Layer"),execute:()=>{var e;const a=null===(e=t.currentWidget)||void 0===e?void 0:e.model;Ds.removeSelectedItems(a,"layer",e=>{null==a||a.removeLayer(e)}),p.notifyCommandChanged(ve.toggleStoryPresentationMode)}}),p.addCommand(ve.renameGroup,{label:m.__("Rename Group"),execute:async()=>{var e;const a=null===(e=t.currentWidget)||void 0===e?void 0:e.model;await Ds.renameSelectedItem(a,"group")}}),p.addCommand(ve.removeGroup,{label:m.__("Remove Group"),execute:async()=>{var e;const a=null===(e=t.currentWidget)||void 0===e?void 0:e.model;Ds.removeSelectedItems(a,"group",e=>{null==a||a.removeLayerGroup(e)})}}),p.addCommand(ve.moveLayersToGroup,{label:e=>e.label?e.label:m.__("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)}}),p.addCommand(ve.moveLayerToNewGroup,{label:m.__("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)}}),p.addCommand(ve.renameSource,{label:m.__("Rename Source"),execute:async()=>{var e;const a=null===(e=t.currentWidget)||void 0===e?void 0:e.model;await Ds.renameSelectedItem(a,"source")}}),p.addCommand(ve.removeSource,{label:m.__("Remove Source"),execute:()=>{var e;const a=null===(e=t.currentWidget)||void 0===e?void 0:e.model;Ds.removeSelectedItems(a,"source",e=>{var t;null===(t=null==a?void 0:a.getLayersBySource(e).length)||void 0===t||t?(0,s.showErrorMessage)("Remove source error","The source is used by a layer."):null==a||a.sharedModel.removeSource(e)})}}),p.addCommand(ve.toggleConsole,{label:m.__("Toggle console"),isVisible:()=>t.currentWidget instanceof ks,isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,isToggled:()=>{var e;return t.currentWidget instanceof ks&&!0===(null===(e=t.currentWidget)||void 0===e?void 0:e.content.consoleOpened)},execute:async()=>{await Ds.toggleConsole(t),p.notifyCommandChanged(ve.toggleConsole)}}),p.addCommand(ve.executeConsole,{label:m.__("Execute console"),isVisible:()=>t.currentWidget instanceof ks,isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:()=>Ds.executeConsole(t)}),p.addCommand(ve.removeConsole,{label:m.__("Remove console"),isVisible:()=>t.currentWidget instanceof ks,isEnabled:()=>!!t.currentWidget&&t.currentWidget.model.sharedModel.editable,execute:()=>Ds.removeConsole(t)}),p.addCommand(ve.invokeCompleter,{label:m.__("Display the completion helper."),isVisible:()=>t.currentWidget instanceof ks,execute:()=>{var e;const a=t.currentWidget;if(!(a&&c&&a instanceof ks))return;const r=null===(e=a.content.consolePanel)||void 0===e?void 0:e.id;return r?c.invoke(r):void 0}}),p.addCommand(ve.selectCompleter,{label:m.__("Select the completion suggestion."),isVisible:()=>t.currentWidget instanceof ks,execute:()=>{var e;const a=t.currentWidget;if(!(a&&c&&a instanceof ks))return;const r=null===(e=a.content.consolePanel)||void 0===e?void 0:e.id;return r?c.select(r):void 0}}),p.addCommand(ve.zoomToLayer,{label:m.__("Zoom to Layer"),execute:()=>{var e;if(!t.currentWidget||!c)return;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)}}),p.addCommand(ve.downloadGeoJSON,{label:m.__("Download as GeoJSON"),isEnabled:()=>{const e=ka(t);return!!e&&["VectorLayer","ShapefileLayer"].includes(e.type)},execute:async()=>{var e,a;const o=ka(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 gt({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 lt(d,n);m&&it(m,`${c}.geojson`,"application/geo+json")}}),p.addCommand(ve.getGeolocation,{label:m.__("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,i.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:he}),p.addCommand(ve.toggleLeftPanel,{label:m.__("Toggle Left Panel"),isEnabled:()=>Boolean(t.currentWidget),isToggled:()=>{const e=t.currentWidget;return!!e&&!e.model.jgisSettings.leftPanelDisabled},execute:async()=>{var e,a,r;const o=t.currentWidget;if(o)try{const t=await o.model.getSettings(),n=null!==(r=null!==(a=null===(e=null==t?void 0:t.composite)||void 0===e?void 0:e.leftPanelDisabled)&&void 0!==a?a:o.model.jgisSettings.leftPanelDisabled)&&void 0!==r&&r;await(null==t?void 0:t.set("leftPanelDisabled",!n)),p.notifyCommandChanged(ve.toggleLeftPanel)}catch(e){console.error("Failed to toggle Left Panel:",e)}}}),p.addCommand(ve.toggleRightPanel,{label:m.__("Toggle Right Panel"),isEnabled:()=>Boolean(t.currentWidget),isToggled:()=>{const e=t.currentWidget;return!!e&&!e.model.jgisSettings.rightPanelDisabled},execute:async()=>{var e,a,r;const o=t.currentWidget;if(o)try{const t=await o.model.getSettings(),n=null!==(r=null!==(a=null===(e=null==t?void 0:t.composite)||void 0===e?void 0:e.rightPanelDisabled)&&void 0!==a?a:o.model.jgisSettings.rightPanelDisabled)&&void 0!==r&&r;await(null==t?void 0:t.set("rightPanelDisabled",!n)),p.notifyCommandChanged(ve.toggleRightPanel)}catch(e){console.error("Failed to toggle Right Panel:",e)}}}),p.addCommand(ve.showLayersTab,{label:m.__("Show Layers Tab"),isEnabled:()=>Boolean(t.currentWidget),isToggled:()=>!!t.currentWidget&&!t.currentWidget.model.jgisSettings.layersDisabled,execute:async()=>{var e,a,r;const o=t.currentWidget;if(!o)return;const n=await o.model.getSettings(),s=null!==(r=null!==(a=null===(e=null==n?void 0:n.composite)||void 0===e?void 0:e.layersDisabled)&&void 0!==a?a:o.model.jgisSettings.layersDisabled)&&void 0!==r&&r;await(null==n?void 0:n.set("layersDisabled",!s)),p.notifyCommandChanged(ve.showLayersTab)}}),p.addCommand(ve.showStacBrowserTab,{label:m.__("Show STAC Browser Tab"),isEnabled:()=>Boolean(t.currentWidget),isToggled:()=>!!t.currentWidget&&!t.currentWidget.model.jgisSettings.stacBrowserDisabled,execute:async()=>{var e,a,r;const o=t.currentWidget;if(!o)return;const n=await o.model.getSettings(),s=null!==(r=null!==(a=null===(e=null==n?void 0:n.composite)||void 0===e?void 0:e.stacBrowserDisabled)&&void 0!==a?a:o.model.jgisSettings.stacBrowserDisabled)&&void 0!==r&&r;await(null==n?void 0:n.set("stacBrowserDisabled",!s)),p.notifyCommandChanged(ve.showStacBrowserTab)}}),p.addCommand(ve.showFiltersTab,{label:m.__("Show Filters Tab"),isEnabled:()=>Boolean(t.currentWidget),isToggled:()=>!!t.currentWidget&&!t.currentWidget.model.jgisSettings.filtersDisabled,execute:async()=>{var e,a,r;const o=t.currentWidget;if(!o)return;const n=await o.model.getSettings(),s=null!==(r=null!==(a=null===(e=null==n?void 0:n.composite)||void 0===e?void 0:e.filtersDisabled)&&void 0!==a?a:o.model.jgisSettings.filtersDisabled)&&void 0!==r&&r;await(null==n?void 0:n.set("filtersDisabled",!s)),p.notifyCommandChanged(ve.showFiltersTab)}}),p.addCommand(ve.showObjectPropertiesTab,{label:m.__("Show Object Properties Tab"),isEnabled:()=>Boolean(t.currentWidget),isToggled:()=>!!t.currentWidget&&!t.currentWidget.model.jgisSettings.objectPropertiesDisabled,execute:async()=>{var e,a,r;const o=t.currentWidget;if(!o)return;const n=await o.model.getSettings(),s=null!==(r=null!==(a=null===(e=null==n?void 0:n.composite)||void 0===e?void 0:e.objectPropertiesDisabled)&&void 0!==a?a:o.model.jgisSettings.objectPropertiesDisabled)&&void 0!==r&&r;await(null==n?void 0:n.set("objectPropertiesDisabled",!s)),p.notifyCommandChanged(ve.showObjectPropertiesTab)}}),p.addCommand(ve.showAnnotationsTab,{label:m.__("Show Annotations Tab"),isEnabled:()=>Boolean(t.currentWidget),isToggled:()=>!!t.currentWidget&&!t.currentWidget.model.jgisSettings.annotationsDisabled,execute:async()=>{var e,a,r;const o=t.currentWidget;if(!o)return;const n=await o.model.getSettings(),s=null!==(r=null!==(a=null===(e=null==n?void 0:n.composite)||void 0===e?void 0:e.annotationsDisabled)&&void 0!==a?a:o.model.jgisSettings.annotationsDisabled)&&void 0!==r&&r;await(null==n?void 0:n.set("annotationsDisabled",!s)),p.notifyCommandChanged(ve.showAnnotationsTab)}}),p.addCommand(ve.showIdentifyPanelTab,{label:m.__("Show Identify Panel Tab"),isEnabled:()=>Boolean(t.currentWidget),isToggled:()=>!!t.currentWidget&&!t.currentWidget.model.jgisSettings.identifyDisabled,execute:async()=>{var e,a,r;const o=t.currentWidget;if(!o)return;const n=await o.model.getSettings(),s=null!==(r=null!==(a=null===(e=null==n?void 0:n.composite)||void 0===e?void 0:e.identifyDisabled)&&void 0!==a?a:o.model.jgisSettings.identifyDisabled)&&void 0!==r&&r;await(null==n?void 0:n.set("identifyDisabled",!s)),p.notifyCommandChanged(ve.showIdentifyPanelTab)}}),p.addCommand(ve.addMarker,Object.assign({label:m.__("Add Marker"),isToggled:()=>{const e=t.currentWidget;return!!e&&"marking"===e.model.currentMode},isEnabled:()=>!0,execute:e=>{const a=t.currentWidget;a&&(a.node.classList.toggle(Gs),a.model.toggleMode("marking"),p.notifyCommandChanged(ve.addMarker))}},Se.get(ve.addMarker))),p.addCommand(ve.addStorySegment,Object.assign({label:m.__("Add Story Segment"),isEnabled:()=>{const e=t.currentWidget;return!!e&&e.model.sharedModel.editable&&!e.model.jgisSettings.storyMapsDisabled},execute:e=>{const a=t.currentWidget;a&&(a.model.addStorySegment(),p.notifyCommandChanged(ve.toggleStoryPresentationMode))}},Se.get(ve.addStorySegment))),p.addCommand(ve.toggleStoryPresentationMode,Object.assign({label:m.__("Toggle Story Presentation Mode"),isToggled:()=>{const e=t.currentWidget;if(!e)return!1;const{storyMapPresentationMode:a}=e.model.getOptions();return null!=a&&a},isEnabled:()=>{var e,a,r;const o=null===(a=null===(e=t.currentWidget)||void 0===e?void 0:e.model.getSelectedStory().story)||void 0===a?void 0:a.storySegments;return!((null===(r=t.currentWidget)||void 0===r?void 0:r.model.jgisSettings.storyMapsDisabled)||!o||o.length<1)},execute:e=>{const a=t.currentWidget;if(!a)return;const r=a.model.getOptions();a.model.setOptions(Object.assign(Object.assign({},r),{storyMapPresentationMode:!r.storyMapPresentationMode})),p.notifyCommandChanged(ve.toggleStoryPresentationMode)}},Se.get(ve.toggleStoryPresentationMode))),function(e,t){t.forEach(t=>{e.addKeyBinding({command:t.command,keys:t.keys,selector:t.selector})})}(p,Na)}var Ds;!function(e){e.createLayerBrowser=function(e,t,a){return async()=>{const r=e.currentWidget;if(!r)return;const o=new qt({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 Ma({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 Wt({model:c.model,title:a,createLayer:r,createSource:o,sourceData:n,sourceType:i,layerData:s,layerType:l,formSchemaRegistry:t});await d.launch()}},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.error("Failed to remove selected item -- nothing selected")},e.renameSelectedItem=async function(e,t){var a;const r=null===(a=null==e?void 0:e.localState)||void 0===a?void 0:a.selected.value;if(!r||!e)return void console.error(`No ${t} selected`);let o="";for(const e in r)if(r[e].type===t){o=e;break}o&&e.setEditingItem(t,o)},e.executeConsole=function(e){const t=e.currentWidget;t&&t instanceof ks&&t.content.executeConsole()},e.removeConsole=function(e){const t=e.currentWidget;t&&t instanceof ks&&t.content.removeConsole()},e.toggleConsole=async function(e){const t=e.currentWidget;t&&t instanceof ks&&await t.content.toggleConsole(t.model.filePath)}}(Ds||(Ds={}));const Fs=e=>{const t=new Ba.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:ve.newVectorTileEntry}),t.addItem({type:"command",command:ve.newGeoJSONEntry}),t.addItem({type:"command",command:ve.newShapefileEntry}),t.addItem({type:"command",command:ve.newGeoParquetEntry}),t},Bs=e=>{const t=new Ba.Menu({commands:e});return t.title.label="Add Raster Layer",t.title.icon=re,t.id="jp-gis-toolbar-raster-menu",t.addItem({type:"command",command:ve.newRasterEntry}),t.addItem({type:"command",command:ve.newHillshadeEntry}),t.addItem({type:"command",command:ve.newImageEntry}),t.addItem({type:"command",command:ve.newGeoTiffEntry}),t};class zs extends Ba.Widget{constructor(){super({node:Vs()}),this.title.changed.connect(e=>{this.node.textContent=this.title.label})}}function Vs(){const e=document.createElement("h2");return e.textContent="-",e}var Ws=a(24565);const Us="jGIS-Toolbar-Separator",$s="jGIS-Toolbar-GroupName";class qs extends Ba.Widget{constructor(){super(),this.addClass(Us)}}class Hs extends c.ReactiveToolbar{constructor(e){if(super(),this._newSubMenu=null,this._hasSetSpectaVisibility=!1,this._onSettingsChanged=(e,t)=>{"storyMapsDisabled"===t&&this._updateStorySegmentMenuItem()},this._onSpectaModeChanged=e=>{this._hasSetSpectaVisibility||(this.setHidden(this._model.isSpectaMode()),this._hasSetSpectaVisibility=!0)},this._model=e.model,this.addClass("jGIS-toolbar-widget"),this._model.settingsChanged.connect(this._onSettingsChanged,this),this._model.sharedModel.optionsChanged.connect(this._onSpectaModeChanged,this),e.commands){const t=new s.CommandToolbarButton({id:ve.openLayerBrowser,label:"",commands:e.commands});this.addItem("openLayerBrowser",t),t.node.dataset.testid="open-layers-browser";const a=new c.MenuSvg({commands:e.commands});a.title.label="Add Layer",this._newSubMenu=a,a.addItem({type:"submenu",submenu:Bs(e.commands)}),a.addItem({type:"submenu",submenu:Fs(e.commands)}),this._updateStorySegmentMenuItem();const r=new c.ToolbarButton({icon:c.addIcon,noFocusOnClick:!1,onClick:()=>{if(!e.commands)return;const t=r.node.getBoundingClientRect();a.open(t.x,t.bottom)}});this.addItem("New",r),r.node.dataset.testid="new-entry-button",this.addItem("separator1",new qs);const o=new s.CommandToolbarButton({id:ve.getGeolocation,commands:e.commands,label:""});this.addItem("Geolocation",o),o.node.dataset.testid="geolocation-button";const n=new s.CommandToolbarButton({id:ve.identify,label:"",commands:e.commands});this.addItem("identify",n),n.node.dataset.testid="identify-button";const i=new s.CommandToolbarButton({id:ve.temporalController,label:"",commands:e.commands});this.addItem("temporalController",i),i.node.dataset.testid="temporal-controller-button";const l=new s.CommandToolbarButton({id:ve.addMarker,label:"",commands:e.commands});this.addItem("addMarker",l),l.node.dataset.testid="add-marker-controller-button";const d=new s.CommandToolbarButton({id:ve.toggleStoryPresentationMode,label:"",commands:e.commands});this.addItem("toggleStoryPresentationMode",d),n.node.dataset.testid="toggleStoryPresentationMode-button",this.addItem("separator2",new qs);const m=new s.CommandToolbarButton({id:ve.toggleConsole,commands:e.commands,label:"",icon:ue});this.addItem("Toggle console",m),m.node.dataset.testid="toggle-console-button",this.addItem("spacer",c.ReactiveToolbar.createSpacerItem());const p=function(e){let t;return a=>{const{user:r}=a,o=r.userId===t?"selected":"";return Ee.createElement(Ws.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",c.ReactWidget.create(Ee.createElement(Ws.S,{model:this._model,iconRenderer:p})))}}_updateStorySegmentMenuItem(){if(!this._newSubMenu)return;const e=!this._model.jgisSettings.storyMapsDisabled;let t=null;for(let e=0;e<this._newSubMenu.items.length;e++){const a=this._newSubMenu.items[e];if("command"===a.type&&a.command===ve.addStorySegment){t=e;break}}const a=null!==t;e&&!a?this._newSubMenu.addItem({command:ve.addStorySegment}):!e&&a&&null!==t&&this._newSubMenu.removeItemAt(t)}dispose(){this._model&&(this._model.settingsChanged.disconnect(this._onSettingsChanged,this),this._model.sharedModel.storyMapsChanged.disconnect(this._onSpectaModeChanged,this)),super.dispose()}}},49771(e,t,a){"use strict";e.exports=a.p+"5d1354f82aa569d79f74.png"},51655(e,t,a){"use strict";e.exports=a.p+"7c642fa9321457120a1a.png"},52343(e,t,a){"use strict";e.exports=a.p+"8163009c3e5f7a859780.png"},52898(e,t,a){"use strict";e.exports=a.p+"2379815eeec82d6c99ea.png"},53457(e,t,a){"use strict";e.exports=a.p+"e608545baf17c34894d9.png"},53488(e,t,a){"use strict";e.exports=a.p+"6fe1cef97ac720fa885b.png"},53695(e,t,a){"use strict";e.exports=a.p+"8dae460d4f1e0e3a7654.png"},56209(e,t,a){"use strict";e.exports=a.p+"7bf725567d92f65f336b.png"},57807(e,t,a){"use strict";e.exports=a.p+"b42192867b229c38c90d.png"},58313(e,t,a){"use strict";e.exports=a.p+"8a5a2c52ba6a89f6a5f6.png"},61003(e,t,a){"use strict";e.exports=a.p+"350eec4ce9ae4bc10bca.wasm"},62778(e,t,a){"use strict";e.exports=a.p+"7560dc6afba85f6f6f89.png"},64739(e,t,a){"use strict";e.exports=a.p+"9c849b1508bb89c03a11.png"},65104(e,t,a){"use strict";e.exports=a.p+"6924d02711b6d64db874.png"},67731(e,t,a){"use strict";e.exports=a.p+"7d280f5402f60127d3f6.png"},68170(e,t,a){"use strict";e.exports=a.p+"7d280f5402f60127d3f6.png"},73184(e,t,a){"use strict";e.exports=a.p+"c11b80da428b44d5e609.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,"./MacroStrat-CartoRaster.png":29982,"./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+"3e1228ffb595af0d2370.png"},80432(){},80990(e,t,a){"use strict";e.exports=a.p+"4fe432c83b6c81740920.png"},84035(e,t,a){"use strict";e.exports=a.p+"ef21602db378f0391253.png"},85198(e,t,a){"use strict";e.exports=a.p+"a056ee838eeec1dda300.png"},85787(){},86382(e,t,a){"use strict";e.exports=a.p+"bae6aa2086d6d2fe9a2a.png"},89279(e,t,a){"use strict";e.exports=a.p+"3d8187d1d88463b1e5a4.png"},90806(e,t,a){"use strict";e.exports=a.p+"665c89733efcaf4fc65e.png"},93421(e,t,a){"use strict";e.exports=a.p+"50bba166a2d109528596.png"},93907(){},95209(e,t,a){"use strict";e.exports=a.p+"4149ae06530a3720c67c.png"},95750(e,t,a){"use strict";e.exports=a.p+"70b4a14ce5f5d672efe6.png"},95995(e,t,a){"use strict";e.exports=a.p+"479bc18b0a8360cb8636.png"},99610(e,t,a){"use strict";e.exports=a.p+"c10e06cadd2e55076d02.png"},99875(e,t,a){"use strict";e.exports=a.p+"e473e1e9f20af114bbb4.data"}}]);