uomtiles 0.1.4 → 0.1.6

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 (620) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/87P1vrJx2.js +1 -0
  3. package/.output/public/_nuxt/{BA52uD81.js → B30iI6NY.js} +1 -1
  4. package/.output/public/_nuxt/{CD84FXNW.js → B3Fqmbvs.js} +1 -1
  5. package/.output/public/_nuxt/BhdViME82.js +1 -0
  6. package/.output/public/_nuxt/{D-IOtyQX.js → BryCauXl.js} +1 -1
  7. package/.output/public/_nuxt/{CkfS_Wbu.js → BsG4RgIF.js} +1 -1
  8. package/.output/public/_nuxt/{zUWhKXtw2.js → BvI0Fk652.js} +1 -1
  9. package/.output/public/_nuxt/Bw9ZfIEz.js +1 -0
  10. package/.output/public/_nuxt/BxH0LSKl2.js +1 -0
  11. package/.output/public/_nuxt/{C5Y76DD6.js → C0tXXd_q.js} +1 -1
  12. package/.output/public/_nuxt/{CVwoxklV.js → C3P9RWxN.js} +1 -1
  13. package/.output/public/_nuxt/{D3Us7gX72.js → C9NpqQyG2.js} +1 -1
  14. package/.output/public/_nuxt/CJxz3JZZ2.js +2 -0
  15. package/.output/public/_nuxt/{JdUwgqKv.js → CNw483Zj.js} +1 -1
  16. package/.output/public/_nuxt/{Hbp_Okvs.js → CQoH790U.js} +2 -2
  17. package/.output/public/_nuxt/{BndUkSHF.js → CS7MV-ad.js} +3 -3
  18. package/.output/public/_nuxt/{DnVJUY7B.js → CVIKhDCB.js} +1 -1
  19. package/.output/public/_nuxt/{CeHZqNQ0.js → CVfH720g.js} +1 -1
  20. package/.output/public/_nuxt/{DLIy3f3M.js → CZ6SZO_d.js} +1 -1
  21. package/.output/public/_nuxt/{Bpc1HTfh.js → CanHJd1e.js} +1 -1
  22. package/.output/public/_nuxt/CeHFmSjl.js +1 -0
  23. package/.output/public/_nuxt/CeVhOOkF2.js +1 -0
  24. package/.output/public/_nuxt/Cigra9s92.js +1 -0
  25. package/.output/public/_nuxt/{Bh2Uv1S7.js → ClKxITwT.js} +1 -1
  26. package/.output/public/_nuxt/{sMWyPZfC2.js → CsaKOXaj2.js} +1 -1
  27. package/.output/public/_nuxt/{GqgcWtrL.js → CttzcMfv.js} +1 -1
  28. package/.output/public/_nuxt/Cw2siAf_2.js +1 -0
  29. package/.output/public/_nuxt/{DQ8r1OSk.js → DE6808Yp.js} +1 -1
  30. package/.output/public/_nuxt/{CUJ4QmLF.js → DUBSg_Y2.js} +1 -1
  31. package/.output/public/_nuxt/{CxkDmpVY.js → DWmS9_5P.js} +1 -1
  32. package/.output/public/_nuxt/DYM416m_.js +1 -0
  33. package/.output/public/_nuxt/{D_9SjQFe.js → D_SGIxNl.js} +1 -1
  34. package/.output/public/_nuxt/{BHSn2vP72.js → DbaWJJIa2.js} +1 -1
  35. package/.output/public/_nuxt/{C-b4mqsD.js → DjVe4luM.js} +1 -1
  36. package/.output/public/_nuxt/{CoPjdBwX.js → Dv7uv3N72.js} +1 -1
  37. package/.output/public/_nuxt/{CM9IbYJz.js → P5kgsppB.js} +1 -1
  38. package/.output/public/_nuxt/{KttxEAyP2.js → XR4gtbmm.js} +1 -1
  39. package/.output/public/_nuxt/_5p6z8Bm.js +2 -0
  40. package/.output/public/_nuxt/builds/latest.json +1 -1
  41. package/.output/public/_nuxt/builds/meta/98e45168-6e30-460e-aa28-fab54f032a83.json +1 -0
  42. package/.output/public/_nuxt/entry.DaxLd-bD.css +1 -0
  43. package/.output/public/_nuxt/flight-area-analysis.worker-CWQYRs9s.js +26 -0
  44. package/.output/public/_nuxt/hB2w6SMP2.js +64 -0
  45. package/.output/public/_nuxt/hePW80VL.js +1 -0
  46. package/.output/public/_nuxt/{nearest-area.worker-iSLH0Y_s.js → nearest-area.worker-BYHYA0SF.js} +1 -1
  47. package/.output/public/_nuxt/uomtiles-validation.worker-BTXhap7R.js +2 -0
  48. package/.output/server/chunks/_/antigravity-nfz.mjs +16 -3
  49. package/.output/server/chunks/_/antigravity-nfz.mjs.map +1 -1
  50. package/.output/server/chunks/_/coerce.mjs +8 -0
  51. package/.output/server/chunks/_/coerce.mjs.map +1 -0
  52. package/.output/server/chunks/_/config.mjs +1 -1
  53. package/.output/server/chunks/_/error-500.mjs +2 -2
  54. package/.output/server/chunks/_/error-500.mjs.map +1 -1
  55. package/.output/server/chunks/_/file-workspace.mjs +57 -5
  56. package/.output/server/chunks/_/file-workspace.mjs.map +1 -1
  57. package/.output/server/chunks/_/map-service.mjs +1 -1
  58. package/.output/server/chunks/_/pixel-diff.mjs +1 -1
  59. package/.output/server/{node_modules/consola/dist/chunks → chunks/_}/prompt.mjs +2 -2
  60. package/.output/server/chunks/_/prompt.mjs.map +1 -0
  61. package/.output/server/chunks/_/schemas.mjs +5005 -0
  62. package/.output/server/chunks/_/schemas.mjs.map +1 -0
  63. package/.output/server/{node_modules/@vue/shared/dist/shared.cjs.prod.js → chunks/_/shared.cjs.prod.mjs} +90 -76
  64. package/.output/server/chunks/_/shared.cjs.prod.mjs.map +1 -0
  65. package/.output/server/chunks/_/uom-auth.mjs +42 -5
  66. package/.output/server/chunks/_/uom-auth.mjs.map +1 -1
  67. package/.output/server/chunks/build/{CompletedTaskSelect-Ba03kTs9.mjs → CompletedTaskSelect-nkBeLFh1.mjs} +768 -769
  68. package/.output/server/chunks/build/{CompletedTaskSelect-Ba03kTs9.mjs.map → CompletedTaskSelect-nkBeLFh1.mjs.map} +1 -1
  69. package/.output/server/chunks/build/Empty-Cq-rSwil.mjs +259 -0
  70. package/.output/server/chunks/build/Empty-Cq-rSwil.mjs.map +1 -0
  71. package/.output/server/chunks/build/{interval-i5OZnTaK.mjs → Form-6_bvrptP.mjs} +37 -43
  72. package/.output/server/chunks/build/Form-6_bvrptP.mjs.map +1 -0
  73. package/.output/server/chunks/build/FormField-DJWBDPj5.mjs +246 -0
  74. package/.output/server/chunks/build/FormField-DJWBDPj5.mjs.map +1 -0
  75. package/.output/server/chunks/build/{Input-DnAric-z.mjs → Input-BeUryJZ5.mjs} +67 -68
  76. package/.output/server/chunks/build/Input-BeUryJZ5.mjs.map +1 -0
  77. package/.output/server/chunks/build/{MapLayerControl-DpNmYvcU.mjs → MapLayerControl-DPdRMmuw.mjs} +771 -772
  78. package/.output/server/chunks/build/{MapLayerControl-DpNmYvcU.mjs.map → MapLayerControl-DPdRMmuw.mjs.map} +1 -1
  79. package/.output/server/chunks/build/Modal-BZfMeBGt.mjs +1319 -0
  80. package/.output/server/chunks/build/{Modal-BLhN9Eg2.mjs.map → Modal-BZfMeBGt.mjs.map} +1 -1
  81. package/.output/server/chunks/build/{OnlineMap-B-sCfHkC.mjs → OnlineMap-CYdaIiq1.mjs} +46 -23
  82. package/.output/server/chunks/build/OnlineMap-CYdaIiq1.mjs.map +1 -0
  83. package/.output/server/chunks/build/Pagination-5jGo7sr3.mjs +1024 -0
  84. package/.output/server/chunks/build/{Pagination-CUzoLc_-.mjs.map → Pagination-5jGo7sr3.mjs.map} +1 -1
  85. package/.output/server/chunks/build/{Tabs-cdLsZZoL.mjs → ScrollArea-1y_sQGDj.mjs} +951 -952
  86. package/.output/server/chunks/build/ScrollArea-1y_sQGDj.mjs.map +1 -0
  87. package/.output/server/chunks/build/{Skeleton-CHp-GjOx.mjs → Skeleton-hv0ZqADP.mjs} +10 -11
  88. package/.output/server/chunks/build/{Skeleton-CHp-GjOx.mjs.map → Skeleton-hv0ZqADP.mjs.map} +1 -1
  89. package/.output/server/chunks/build/{Slider-CrIUK3pl.mjs → Slider-DMNQ5v0F.mjs} +150 -151
  90. package/.output/server/chunks/build/{Slider-CrIUK3pl.mjs.map → Slider-DMNQ5v0F.mjs.map} +1 -1
  91. package/.output/server/chunks/build/{Tooltip-DExIlyhu.mjs → Tooltip-Da_m4qTB.mjs} +151 -152
  92. package/.output/server/chunks/build/{Tooltip-DExIlyhu.mjs.map → Tooltip-Da_m4qTB.mjs.map} +1 -1
  93. package/.output/server/chunks/build/advanced-CQaZH879.mjs +5011 -0
  94. package/.output/server/chunks/build/advanced-CQaZH879.mjs.map +1 -0
  95. package/.output/server/chunks/build/{compare-DaE10Dhp.mjs → compare-CXhy8zkR.mjs} +297 -306
  96. package/.output/server/chunks/build/compare-CXhy8zkR.mjs.map +1 -0
  97. package/.output/server/chunks/build/{cookie-CziAmOf1.mjs → cookie-B6O7_fHD.mjs} +6 -6
  98. package/.output/server/chunks/build/{cookie-CziAmOf1.mjs.map → cookie-B6O7_fHD.mjs.map} +1 -1
  99. package/.output/server/chunks/build/dashboard-m7MkDiLb.mjs +3229 -0
  100. package/.output/server/chunks/build/{dashboard-Dq8mphss.mjs.map → dashboard-m7MkDiLb.mjs.map} +1 -1
  101. package/.output/server/chunks/build/{details-DCNvSBgn.mjs → details-BuFz0zbq.mjs} +207 -216
  102. package/.output/server/chunks/build/details-BuFz0zbq.mjs.map +1 -0
  103. package/.output/server/chunks/build/error-404-D9aQjJRn.mjs +12 -21
  104. package/.output/server/chunks/build/error-404-D9aQjJRn.mjs.map +1 -1
  105. package/.output/server/chunks/build/error-500-BNyA3wrb.mjs +8 -17
  106. package/.output/server/chunks/build/error-500-BNyA3wrb.mjs.map +1 -1
  107. package/.output/server/chunks/build/esm-Dp2lJXbp.mjs +10 -10
  108. package/.output/server/chunks/build/esm-Dp2lJXbp.mjs.map +1 -1
  109. package/.output/server/chunks/build/{file-workspace-DMzPuPyG.mjs → file-workspace-C9v6Qocb.mjs} +4 -4
  110. package/.output/server/chunks/build/file-workspace-C9v6Qocb.mjs.map +1 -0
  111. package/.output/server/chunks/build/{layers-50nqoWES.mjs → layers-BXomRZx1.mjs} +107 -116
  112. package/.output/server/chunks/build/layers-BXomRZx1.mjs.map +1 -0
  113. package/.output/server/chunks/build/{login-BHSHtO-R.mjs → login-Bc6Roxwo.mjs} +149 -153
  114. package/.output/server/chunks/build/login-Bc6Roxwo.mjs.map +1 -0
  115. package/.output/server/chunks/build/{map-layers-C3HJoCLw.mjs → map-layers-CTSGZGmW.mjs} +6 -6
  116. package/.output/server/chunks/build/map-layers-CTSGZGmW.mjs.map +1 -0
  117. package/.output/server/chunks/build/{overlay-BS4_B29H.mjs → overlay-LIOZRR0G.mjs} +174 -154
  118. package/.output/server/chunks/build/{overlay-BS4_B29H.mjs.map → overlay-LIOZRR0G.mjs.map} +1 -1
  119. package/.output/server/chunks/build/pages-CBsYYFMD.mjs +210 -0
  120. package/.output/server/chunks/build/pages-CBsYYFMD.mjs.map +1 -0
  121. package/.output/server/chunks/build/{pages-5yYRS5nX.mjs → pages-DN0BdqEU.mjs} +5 -5
  122. package/.output/server/chunks/build/pages-DN0BdqEU.mjs.map +1 -0
  123. package/.output/server/chunks/build/{services-DWlDpsbi.mjs → services-DnEkW3P_.mjs} +255 -264
  124. package/.output/server/chunks/build/{services-DWlDpsbi.mjs.map → services-DnEkW3P_.mjs.map} +1 -1
  125. package/.output/server/chunks/build/{tasks-4b6D39Uy.mjs → tasks-Bbc6_UeW.mjs} +1084 -1084
  126. package/.output/server/chunks/build/{tasks-4b6D39Uy.mjs.map → tasks-Bbc6_UeW.mjs.map} +1 -1
  127. package/.output/server/chunks/build/tasks-BzxHEsMV.mjs +82 -0
  128. package/.output/server/chunks/build/tasks-BzxHEsMV.mjs.map +1 -0
  129. package/.output/server/chunks/nitro/nitro.mjs +1858 -307
  130. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  131. package/.output/server/chunks/routes/api/auth/captcha.post.mjs +3 -2
  132. package/.output/server/chunks/routes/api/auth/captcha.post.mjs.map +1 -1
  133. package/.output/server/chunks/routes/api/auth/login.post.mjs +3 -2
  134. package/.output/server/chunks/routes/api/auth/login.post.mjs.map +1 -1
  135. package/.output/server/chunks/routes/api/auth/logout.post.mjs +3 -2
  136. package/.output/server/chunks/routes/api/auth/logout.post.mjs.map +1 -1
  137. package/.output/server/chunks/routes/api/auth/map-token.post.mjs +3 -2
  138. package/.output/server/chunks/routes/api/auth/map-token.post.mjs.map +1 -1
  139. package/.output/server/chunks/routes/api/auth/send-sms.post.mjs +3 -2
  140. package/.output/server/chunks/routes/api/auth/send-sms.post.mjs.map +1 -1
  141. package/.output/server/chunks/routes/api/auth/status.get.mjs +3 -2
  142. package/.output/server/chunks/routes/api/auth/status.get.mjs.map +1 -1
  143. package/.output/server/chunks/routes/api/map/base/_baseLayer/_zoom/_tileX/_tileY_.get.mjs +3 -2
  144. package/.output/server/chunks/routes/api/map/base/_baseLayer/_zoom/_tileX/_tileY_.get.mjs.map +1 -1
  145. package/.output/server/chunks/routes/api/map/base/status.get.mjs +3 -2
  146. package/.output/server/chunks/routes/api/map/base/status.get.mjs.map +1 -1
  147. package/.output/server/chunks/routes/api/map/layers/_overlayLayer/update.get.mjs +3 -2
  148. package/.output/server/chunks/routes/api/map/layers/_overlayLayer/update.get.mjs.map +1 -1
  149. package/.output/server/chunks/routes/api/map/layers/_overlayLayer/update.post.mjs +3 -2
  150. package/.output/server/chunks/routes/api/map/layers/_overlayLayer/update.post.mjs.map +1 -1
  151. package/.output/server/chunks/routes/api/map/layers/_overlayLayer_.get.mjs +3 -2
  152. package/.output/server/chunks/routes/api/map/layers/_overlayLayer_.get.mjs.map +1 -1
  153. package/.output/server/chunks/routes/api/map/layers/status.get.mjs +3 -2
  154. package/.output/server/chunks/routes/api/map/layers/status.get.mjs.map +1 -1
  155. package/.output/server/chunks/routes/api/map/live/status.get.mjs +3 -2
  156. package/.output/server/chunks/routes/api/map/live/status.get.mjs.map +1 -1
  157. package/.output/server/chunks/routes/api/map/online/_layerGroup/_zoom/_tileX/_tileY_.get.mjs +3 -2
  158. package/.output/server/chunks/routes/api/map/online/_layerGroup/_zoom/_tileX/_tileY_.get.mjs.map +1 -1
  159. package/.output/server/chunks/routes/api/map/online-root/_layerGroup/_rootX/_rootY_.get.mjs +3 -2
  160. package/.output/server/chunks/routes/api/map/online-root/_layerGroup/_rootX/_rootY_.get.mjs.map +1 -1
  161. package/.output/server/chunks/routes/api/map-service/config.post.mjs +8 -8
  162. package/.output/server/chunks/routes/api/map-service/config.post.mjs.map +1 -1
  163. package/.output/server/chunks/routes/api/map-service/file.post.mjs +3 -3
  164. package/.output/server/chunks/routes/api/map-service/source.post.mjs +5 -5
  165. package/.output/server/chunks/routes/api/map-service/source.post.mjs.map +1 -1
  166. package/.output/server/chunks/routes/api/map-service/status.get.mjs +3 -3
  167. package/.output/server/chunks/routes/api/uom/myspace.post.mjs +71 -0
  168. package/.output/server/chunks/routes/api/uom/myspace.post.mjs.map +1 -0
  169. package/.output/server/chunks/routes/api/workspace/_filename/analysis.get.mjs +8 -13
  170. package/.output/server/chunks/routes/api/workspace/_filename/analysis.get.mjs.map +1 -1
  171. package/.output/server/chunks/routes/api/workspace/_filename/download.get.mjs +3 -3
  172. package/.output/server/chunks/routes/api/workspace/_filename/export/_format_.get.mjs +8 -7
  173. package/.output/server/chunks/routes/api/workspace/_filename/export/_format_.get.mjs.map +1 -1
  174. package/.output/server/chunks/routes/api/workspace/_filename/export-estimate.get.mjs +9 -8
  175. package/.output/server/chunks/routes/api/workspace/_filename/export-estimate.get.mjs.map +1 -1
  176. package/.output/server/chunks/routes/api/workspace/_filename/tile.get.mjs +6 -5
  177. package/.output/server/chunks/routes/api/workspace/_filename/tile.get.mjs.map +1 -1
  178. package/.output/server/chunks/routes/api/workspace/_filename/tiles.get.mjs +7 -6
  179. package/.output/server/chunks/routes/api/workspace/_filename/tiles.get.mjs.map +1 -1
  180. package/.output/server/chunks/routes/api/workspace/_filename_.delete.mjs +3 -3
  181. package/.output/server/chunks/routes/api/workspace/compare/batch.get.mjs +10 -9
  182. package/.output/server/chunks/routes/api/workspace/compare/batch.get.mjs.map +1 -1
  183. package/.output/server/chunks/routes/api/workspace/compare.post.mjs +5 -5
  184. package/.output/server/chunks/routes/api/workspace/compare.post.mjs.map +1 -1
  185. package/.output/server/chunks/routes/api/workspace/fetch.post.mjs +5 -5
  186. package/.output/server/chunks/routes/api/workspace/fetch.post.mjs.map +1 -1
  187. package/.output/server/chunks/routes/api/workspace/files.get.mjs +3 -3
  188. package/.output/server/chunks/routes/api/workspace/files.post.mjs +4 -4
  189. package/.output/server/chunks/routes/api/workspace/stop.post.mjs +6 -6
  190. package/.output/server/chunks/routes/api/workspace/stop.post.mjs.map +1 -1
  191. package/.output/server/chunks/routes/api/workspace/tasks.post.mjs +6 -6
  192. package/.output/server/chunks/routes/api/workspace/tasks.post.mjs.map +1 -1
  193. package/.output/server/chunks/routes/renderer.mjs +42597 -155
  194. package/.output/server/chunks/routes/renderer.mjs.map +1 -1
  195. package/.output/server/chunks/routes/services/wms.get.mjs +14 -13
  196. package/.output/server/chunks/routes/services/wms.get.mjs.map +1 -1
  197. package/.output/server/chunks/routes/services/wmts.get.mjs +14 -13
  198. package/.output/server/chunks/routes/services/wmts.get.mjs.map +1 -1
  199. package/.output/server/chunks/virtual/entry.mjs +1317 -1136
  200. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  201. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  202. package/.output/server/index.mjs +4 -3
  203. package/.output/server/index.mjs.map +1 -1
  204. package/dist/package.json +6 -1
  205. package/dist/src/cli.js +4 -3
  206. package/dist/src/core/fetch-process.js +11 -0
  207. package/package.json +6 -1
  208. package/.output/public/_nuxt/7KYNy7kZ.js +0 -1
  209. package/.output/public/_nuxt/7Rgc2iDI2.js +0 -1
  210. package/.output/public/_nuxt/BRsHq3Fz2.js +0 -1
  211. package/.output/public/_nuxt/BiRI-vq-.js +0 -1
  212. package/.output/public/_nuxt/CGkIG2vL2.js +0 -1
  213. package/.output/public/_nuxt/CUQ3MZqI.js +0 -1
  214. package/.output/public/_nuxt/CzRdWh7s2.js +0 -1
  215. package/.output/public/_nuxt/DK3Fl9T5.js +0 -1
  216. package/.output/public/_nuxt/D_Ggu6R_2.js +0 -1
  217. package/.output/public/_nuxt/DuGgjt-h2.js +0 -64
  218. package/.output/public/_nuxt/GEOST6As.js +0 -1
  219. package/.output/public/_nuxt/L0GXeO1Y2.js +0 -1
  220. package/.output/public/_nuxt/builds/meta/78b9349b-da32-49d9-b6c7-85727e6d8129.json +0 -1
  221. package/.output/public/_nuxt/entry.U-KS0GEu.css +0 -1
  222. package/.output/server/chunks/build/Empty-CKvANuoV.mjs +0 -260
  223. package/.output/server/chunks/build/Empty-CKvANuoV.mjs.map +0 -1
  224. package/.output/server/chunks/build/FormField-BJHVyy1m.mjs +0 -247
  225. package/.output/server/chunks/build/FormField-BJHVyy1m.mjs.map +0 -1
  226. package/.output/server/chunks/build/Input-DnAric-z.mjs.map +0 -1
  227. package/.output/server/chunks/build/Modal-BLhN9Eg2.mjs +0 -1320
  228. package/.output/server/chunks/build/OnlineMap-B-sCfHkC.mjs.map +0 -1
  229. package/.output/server/chunks/build/Pagination-CUzoLc_-.mjs +0 -1025
  230. package/.output/server/chunks/build/Tabs-cdLsZZoL.mjs.map +0 -1
  231. package/.output/server/chunks/build/advanced-DaSpS8Px.mjs +0 -1426
  232. package/.output/server/chunks/build/advanced-DaSpS8Px.mjs.map +0 -1
  233. package/.output/server/chunks/build/compare-DaE10Dhp.mjs.map +0 -1
  234. package/.output/server/chunks/build/dashboard-Dq8mphss.mjs +0 -3238
  235. package/.output/server/chunks/build/details-DCNvSBgn.mjs.map +0 -1
  236. package/.output/server/chunks/build/file-workspace-DMzPuPyG.mjs.map +0 -1
  237. package/.output/server/chunks/build/interval-i5OZnTaK.mjs.map +0 -1
  238. package/.output/server/chunks/build/layers-50nqoWES.mjs.map +0 -1
  239. package/.output/server/chunks/build/login-BHSHtO-R.mjs.map +0 -1
  240. package/.output/server/chunks/build/map-layers-C3HJoCLw.mjs.map +0 -1
  241. package/.output/server/chunks/build/pages-5yYRS5nX.mjs.map +0 -1
  242. package/.output/server/chunks/build/pages-DfOPr0fC.mjs +0 -219
  243. package/.output/server/chunks/build/pages-DfOPr0fC.mjs.map +0 -1
  244. package/.output/server/chunks/build/tasks-BPPx2UMG.mjs +0 -91
  245. package/.output/server/chunks/build/tasks-BPPx2UMG.mjs.map +0 -1
  246. package/.output/server/node_modules/@babel/parser/lib/index.js +0 -14611
  247. package/.output/server/node_modules/@babel/parser/package.json +0 -50
  248. package/.output/server/node_modules/@iconify/utils/lib/colors/index.js +0 -295
  249. package/.output/server/node_modules/@iconify/utils/lib/colors/keywords.js +0 -701
  250. package/.output/server/node_modules/@iconify/utils/lib/css/common.js +0 -75
  251. package/.output/server/node_modules/@iconify/utils/lib/css/format.js +0 -39
  252. package/.output/server/node_modules/@iconify/utils/lib/css/icon.js +0 -47
  253. package/.output/server/node_modules/@iconify/utils/lib/css/icons.js +0 -128
  254. package/.output/server/node_modules/@iconify/utils/lib/customisations/bool.js +0 -19
  255. package/.output/server/node_modules/@iconify/utils/lib/customisations/defaults.js +0 -13
  256. package/.output/server/node_modules/@iconify/utils/lib/customisations/flip.js +0 -17
  257. package/.output/server/node_modules/@iconify/utils/lib/customisations/merge.js +0 -16
  258. package/.output/server/node_modules/@iconify/utils/lib/customisations/rotate.js +0 -30
  259. package/.output/server/node_modules/@iconify/utils/lib/emoji/cleanup.js +0 -78
  260. package/.output/server/node_modules/@iconify/utils/lib/emoji/convert.js +0 -100
  261. package/.output/server/node_modules/@iconify/utils/lib/emoji/data.js +0 -28
  262. package/.output/server/node_modules/@iconify/utils/lib/emoji/format.js +0 -58
  263. package/.output/server/node_modules/@iconify/utils/lib/emoji/parse.js +0 -48
  264. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/base.js +0 -203
  265. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/create.js +0 -33
  266. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/numbers.js +0 -132
  267. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/similar.js +0 -165
  268. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/tree.js +0 -79
  269. package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/find.js +0 -92
  270. package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/replace.js +0 -26
  271. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/components.js +0 -76
  272. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/missing.js +0 -66
  273. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/name.js +0 -45
  274. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/parse.js +0 -103
  275. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/similar.js +0 -36
  276. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/tree.js +0 -92
  277. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/variations.js +0 -62
  278. package/.output/server/node_modules/@iconify/utils/lib/icon/defaults.js +0 -25
  279. package/.output/server/node_modules/@iconify/utils/lib/icon/merge.js +0 -16
  280. package/.output/server/node_modules/@iconify/utils/lib/icon/name.js +0 -57
  281. package/.output/server/node_modules/@iconify/utils/lib/icon/square.js +0 -33
  282. package/.output/server/node_modules/@iconify/utils/lib/icon/transformations.js +0 -12
  283. package/.output/server/node_modules/@iconify/utils/lib/icon-set/convert-info.js +0 -125
  284. package/.output/server/node_modules/@iconify/utils/lib/icon-set/expand.js +0 -19
  285. package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icon.js +0 -25
  286. package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icons.js +0 -36
  287. package/.output/server/node_modules/@iconify/utils/lib/icon-set/minify.js +0 -91
  288. package/.output/server/node_modules/@iconify/utils/lib/icon-set/parse.js +0 -46
  289. package/.output/server/node_modules/@iconify/utils/lib/icon-set/tree.js +0 -23
  290. package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate-basic.js +0 -42
  291. package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate.js +0 -123
  292. package/.output/server/node_modules/@iconify/utils/lib/index.js +0 -52
  293. package/.output/server/node_modules/@iconify/utils/lib/loader/custom.js +0 -30
  294. package/.output/server/node_modules/@iconify/utils/lib/loader/loader.js +0 -26
  295. package/.output/server/node_modules/@iconify/utils/lib/loader/modern.js +0 -27
  296. package/.output/server/node_modules/@iconify/utils/lib/loader/utils.js +0 -105
  297. package/.output/server/node_modules/@iconify/utils/lib/misc/objects.js +0 -26
  298. package/.output/server/node_modules/@iconify/utils/lib/misc/strings.js +0 -26
  299. package/.output/server/node_modules/@iconify/utils/lib/misc/title.js +0 -9
  300. package/.output/server/node_modules/@iconify/utils/lib/svg/build.js +0 -113
  301. package/.output/server/node_modules/@iconify/utils/lib/svg/defs.js +0 -31
  302. package/.output/server/node_modules/@iconify/utils/lib/svg/encode-svg-for-css.js +0 -13
  303. package/.output/server/node_modules/@iconify/utils/lib/svg/html.js +0 -9
  304. package/.output/server/node_modules/@iconify/utils/lib/svg/id.js +0 -41
  305. package/.output/server/node_modules/@iconify/utils/lib/svg/inner-html.js +0 -22
  306. package/.output/server/node_modules/@iconify/utils/lib/svg/parse.js +0 -67
  307. package/.output/server/node_modules/@iconify/utils/lib/svg/pretty.js +0 -54
  308. package/.output/server/node_modules/@iconify/utils/lib/svg/size.js +0 -27
  309. package/.output/server/node_modules/@iconify/utils/lib/svg/trim.js +0 -7
  310. package/.output/server/node_modules/@iconify/utils/lib/svg/url.js +0 -22
  311. package/.output/server/node_modules/@iconify/utils/lib/svg/viewbox.js +0 -8
  312. package/.output/server/node_modules/@iconify/utils/package.json +0 -119
  313. package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +0 -6801
  314. package/.output/server/node_modules/@vue/compiler-core/package.json +0 -58
  315. package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +0 -692
  316. package/.output/server/node_modules/@vue/compiler-dom/package.json +0 -57
  317. package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +0 -1420
  318. package/.output/server/node_modules/@vue/compiler-ssr/package.json +0 -34
  319. package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +0 -1903
  320. package/.output/server/node_modules/@vue/reactivity/package.json +0 -55
  321. package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +0 -6976
  322. package/.output/server/node_modules/@vue/runtime-core/package.json +0 -52
  323. package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +0 -1841
  324. package/.output/server/node_modules/@vue/runtime-dom/package.json +0 -60
  325. package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +0 -904
  326. package/.output/server/node_modules/@vue/server-renderer/package.json +0 -53
  327. package/.output/server/node_modules/@vue/shared/package.json +0 -47
  328. package/.output/server/node_modules/consola/dist/core.mjs +0 -512
  329. package/.output/server/node_modules/consola/dist/index.mjs +0 -651
  330. package/.output/server/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +0 -72
  331. package/.output/server/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +0 -288
  332. package/.output/server/node_modules/consola/package.json +0 -136
  333. package/.output/server/node_modules/devalue/index.js +0 -17
  334. package/.output/server/node_modules/devalue/package.json +0 -39
  335. package/.output/server/node_modules/devalue/src/base64.js +0 -60
  336. package/.output/server/node_modules/devalue/src/constants.js +0 -12
  337. package/.output/server/node_modules/devalue/src/operations.js +0 -193
  338. package/.output/server/node_modules/devalue/src/parse.js +0 -270
  339. package/.output/server/node_modules/devalue/src/stringify.js +0 -428
  340. package/.output/server/node_modules/devalue/src/uneval.js +0 -582
  341. package/.output/server/node_modules/devalue/src/utils.js +0 -185
  342. package/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +0 -77
  343. package/.output/server/node_modules/entities/dist/commonjs/decode.js +0 -568
  344. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +0 -7
  345. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +0 -7
  346. package/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +0 -21
  347. package/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +0 -31
  348. package/.output/server/node_modules/entities/dist/commonjs/package.json +0 -3
  349. package/.output/server/node_modules/entities/package.json +0 -120
  350. package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +0 -344
  351. package/.output/server/node_modules/estree-walker/package.json +0 -37
  352. package/.output/server/node_modules/fflate/esm/index.mjs +0 -2710
  353. package/.output/server/node_modules/fflate/package.json +0 -128
  354. package/.output/server/node_modules/fnv1a-64/dist/index.mjs +0 -95
  355. package/.output/server/node_modules/fnv1a-64/package.json +0 -75
  356. package/.output/server/node_modules/hookable/dist/index.mjs +0 -257
  357. package/.output/server/node_modules/hookable/package.json +0 -53
  358. package/.output/server/node_modules/nostics/dist/formatters/ansi.mjs +0 -19
  359. package/.output/server/node_modules/nostics/dist/index.mjs +0 -187
  360. package/.output/server/node_modules/nostics/package.json +0 -125
  361. package/.output/server/node_modules/object-identity/index.js +0 -60
  362. package/.output/server/node_modules/object-identity/package.json +0 -40
  363. package/.output/server/node_modules/p-limit/index.js +0 -104
  364. package/.output/server/node_modules/p-limit/package.json +0 -58
  365. package/.output/server/node_modules/pmtiles/dist/esm/index.js +0 -2
  366. package/.output/server/node_modules/pmtiles/package.json +0 -50
  367. package/.output/server/node_modules/source-map-js/lib/array-set.js +0 -121
  368. package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +0 -140
  369. package/.output/server/node_modules/source-map-js/lib/base64.js +0 -67
  370. package/.output/server/node_modules/source-map-js/lib/binary-search.js +0 -111
  371. package/.output/server/node_modules/source-map-js/lib/mapping-list.js +0 -79
  372. package/.output/server/node_modules/source-map-js/lib/quick-sort.js +0 -132
  373. package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +0 -1188
  374. package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +0 -444
  375. package/.output/server/node_modules/source-map-js/lib/source-node.js +0 -413
  376. package/.output/server/node_modules/source-map-js/lib/util.js +0 -594
  377. package/.output/server/node_modules/source-map-js/package.json +0 -71
  378. package/.output/server/node_modules/source-map-js/source-map.js +0 -8
  379. package/.output/server/node_modules/tailwindcss/dist/chunk-DCG7AFIE.mjs +0 -1
  380. package/.output/server/node_modules/tailwindcss/dist/colors.mjs +0 -1
  381. package/.output/server/node_modules/tailwindcss/package.json +0 -89
  382. package/.output/server/node_modules/ufo/dist/index.mjs +0 -645
  383. package/.output/server/node_modules/ufo/package.json +0 -48
  384. package/.output/server/node_modules/undici/index.js +0 -234
  385. package/.output/server/node_modules/undici/lib/api/abort-signal.js +0 -59
  386. package/.output/server/node_modules/undici/lib/api/api-connect.js +0 -110
  387. package/.output/server/node_modules/undici/lib/api/api-pipeline.js +0 -252
  388. package/.output/server/node_modules/undici/lib/api/api-request.js +0 -214
  389. package/.output/server/node_modules/undici/lib/api/api-stream.js +0 -209
  390. package/.output/server/node_modules/undici/lib/api/api-upgrade.js +0 -111
  391. package/.output/server/node_modules/undici/lib/api/index.js +0 -7
  392. package/.output/server/node_modules/undici/lib/api/readable.js +0 -580
  393. package/.output/server/node_modules/undici/lib/cache/memory-cache-store.js +0 -279
  394. package/.output/server/node_modules/undici/lib/cache/sqlite-cache-store.js +0 -467
  395. package/.output/server/node_modules/undici/lib/core/connect.js +0 -153
  396. package/.output/server/node_modules/undici/lib/core/constants.js +0 -143
  397. package/.output/server/node_modules/undici/lib/core/diagnostics.js +0 -227
  398. package/.output/server/node_modules/undici/lib/core/errors.js +0 -477
  399. package/.output/server/node_modules/undici/lib/core/request.js +0 -464
  400. package/.output/server/node_modules/undici/lib/core/socks5-client.js +0 -422
  401. package/.output/server/node_modules/undici/lib/core/socks5-utils.js +0 -212
  402. package/.output/server/node_modules/undici/lib/core/symbols.js +0 -75
  403. package/.output/server/node_modules/undici/lib/core/tree.js +0 -160
  404. package/.output/server/node_modules/undici/lib/core/util.js +0 -992
  405. package/.output/server/node_modules/undici/lib/dispatcher/agent.js +0 -158
  406. package/.output/server/node_modules/undici/lib/dispatcher/balanced-pool.js +0 -219
  407. package/.output/server/node_modules/undici/lib/dispatcher/client-h1.js +0 -1731
  408. package/.output/server/node_modules/undici/lib/dispatcher/client-h2.js +0 -995
  409. package/.output/server/node_modules/undici/lib/dispatcher/client.js +0 -664
  410. package/.output/server/node_modules/undici/lib/dispatcher/dispatcher-base.js +0 -184
  411. package/.output/server/node_modules/undici/lib/dispatcher/dispatcher.js +0 -48
  412. package/.output/server/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +0 -146
  413. package/.output/server/node_modules/undici/lib/dispatcher/fixed-queue.js +0 -135
  414. package/.output/server/node_modules/undici/lib/dispatcher/h2c-client.js +0 -51
  415. package/.output/server/node_modules/undici/lib/dispatcher/pool-base.js +0 -214
  416. package/.output/server/node_modules/undici/lib/dispatcher/pool.js +0 -118
  417. package/.output/server/node_modules/undici/lib/dispatcher/proxy-agent.js +0 -319
  418. package/.output/server/node_modules/undici/lib/dispatcher/retry-agent.js +0 -35
  419. package/.output/server/node_modules/undici/lib/dispatcher/round-robin-pool.js +0 -137
  420. package/.output/server/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +0 -260
  421. package/.output/server/node_modules/undici/lib/encoding/index.js +0 -33
  422. package/.output/server/node_modules/undici/lib/global.js +0 -59
  423. package/.output/server/node_modules/undici/lib/handler/cache-handler.js +0 -760
  424. package/.output/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +0 -124
  425. package/.output/server/node_modules/undici/lib/handler/decorator-handler.js +0 -67
  426. package/.output/server/node_modules/undici/lib/handler/deduplication-handler.js +0 -460
  427. package/.output/server/node_modules/undici/lib/handler/redirect-handler.js +0 -238
  428. package/.output/server/node_modules/undici/lib/handler/retry-handler.js +0 -418
  429. package/.output/server/node_modules/undici/lib/handler/unwrap-handler.js +0 -106
  430. package/.output/server/node_modules/undici/lib/handler/wrap-handler.js +0 -105
  431. package/.output/server/node_modules/undici/lib/interceptor/cache.js +0 -602
  432. package/.output/server/node_modules/undici/lib/interceptor/decompress.js +0 -259
  433. package/.output/server/node_modules/undici/lib/interceptor/deduplicate.js +0 -117
  434. package/.output/server/node_modules/undici/lib/interceptor/dns.js +0 -571
  435. package/.output/server/node_modules/undici/lib/interceptor/dump.js +0 -112
  436. package/.output/server/node_modules/undici/lib/interceptor/redirect.js +0 -21
  437. package/.output/server/node_modules/undici/lib/interceptor/response-error.js +0 -95
  438. package/.output/server/node_modules/undici/lib/interceptor/retry.js +0 -19
  439. package/.output/server/node_modules/undici/lib/llhttp/constants.js +0 -531
  440. package/.output/server/node_modules/undici/lib/llhttp/llhttp-wasm.js +0 -15
  441. package/.output/server/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +0 -15
  442. package/.output/server/node_modules/undici/lib/llhttp/utils.js +0 -12
  443. package/.output/server/node_modules/undici/lib/mock/mock-agent.js +0 -232
  444. package/.output/server/node_modules/undici/lib/mock/mock-call-history.js +0 -248
  445. package/.output/server/node_modules/undici/lib/mock/mock-client.js +0 -68
  446. package/.output/server/node_modules/undici/lib/mock/mock-errors.js +0 -29
  447. package/.output/server/node_modules/undici/lib/mock/mock-interceptor.js +0 -209
  448. package/.output/server/node_modules/undici/lib/mock/mock-pool.js +0 -68
  449. package/.output/server/node_modules/undici/lib/mock/mock-symbols.js +0 -32
  450. package/.output/server/node_modules/undici/lib/mock/mock-utils.js +0 -486
  451. package/.output/server/node_modules/undici/lib/mock/pending-interceptors-formatter.js +0 -43
  452. package/.output/server/node_modules/undici/lib/mock/snapshot-agent.js +0 -353
  453. package/.output/server/node_modules/undici/lib/mock/snapshot-recorder.js +0 -588
  454. package/.output/server/node_modules/undici/lib/mock/snapshot-utils.js +0 -158
  455. package/.output/server/node_modules/undici/lib/util/cache.js +0 -676
  456. package/.output/server/node_modules/undici/lib/util/date.js +0 -670
  457. package/.output/server/node_modules/undici/lib/util/promise.js +0 -28
  458. package/.output/server/node_modules/undici/lib/util/runtime-features.js +0 -124
  459. package/.output/server/node_modules/undici/lib/util/stats.js +0 -32
  460. package/.output/server/node_modules/undici/lib/util/timers.js +0 -425
  461. package/.output/server/node_modules/undici/lib/web/cache/cache.js +0 -864
  462. package/.output/server/node_modules/undici/lib/web/cache/cachestorage.js +0 -152
  463. package/.output/server/node_modules/undici/lib/web/cache/util.js +0 -45
  464. package/.output/server/node_modules/undici/lib/web/cookies/constants.js +0 -12
  465. package/.output/server/node_modules/undici/lib/web/cookies/index.js +0 -199
  466. package/.output/server/node_modules/undici/lib/web/cookies/parse.js +0 -314
  467. package/.output/server/node_modules/undici/lib/web/cookies/util.js +0 -352
  468. package/.output/server/node_modules/undici/lib/web/eventsource/eventsource-stream.js +0 -399
  469. package/.output/server/node_modules/undici/lib/web/eventsource/eventsource.js +0 -501
  470. package/.output/server/node_modules/undici/lib/web/eventsource/util.js +0 -29
  471. package/.output/server/node_modules/undici/lib/web/fetch/body.js +0 -509
  472. package/.output/server/node_modules/undici/lib/web/fetch/constants.js +0 -131
  473. package/.output/server/node_modules/undici/lib/web/fetch/data-url.js +0 -596
  474. package/.output/server/node_modules/undici/lib/web/fetch/formdata-parser.js +0 -586
  475. package/.output/server/node_modules/undici/lib/web/fetch/formdata.js +0 -259
  476. package/.output/server/node_modules/undici/lib/web/fetch/global.js +0 -40
  477. package/.output/server/node_modules/undici/lib/web/fetch/headers.js +0 -719
  478. package/.output/server/node_modules/undici/lib/web/fetch/index.js +0 -2413
  479. package/.output/server/node_modules/undici/lib/web/fetch/request.js +0 -1115
  480. package/.output/server/node_modules/undici/lib/web/fetch/response.js +0 -641
  481. package/.output/server/node_modules/undici/lib/web/fetch/util.js +0 -1522
  482. package/.output/server/node_modules/undici/lib/web/infra/index.js +0 -229
  483. package/.output/server/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +0 -307
  484. package/.output/server/node_modules/undici/lib/web/webidl/index.js +0 -1006
  485. package/.output/server/node_modules/undici/lib/web/websocket/connection.js +0 -329
  486. package/.output/server/node_modules/undici/lib/web/websocket/constants.js +0 -126
  487. package/.output/server/node_modules/undici/lib/web/websocket/events.js +0 -331
  488. package/.output/server/node_modules/undici/lib/web/websocket/frame.js +0 -133
  489. package/.output/server/node_modules/undici/lib/web/websocket/permessage-deflate.js +0 -100
  490. package/.output/server/node_modules/undici/lib/web/websocket/receiver.js +0 -507
  491. package/.output/server/node_modules/undici/lib/web/websocket/sender.js +0 -109
  492. package/.output/server/node_modules/undici/lib/web/websocket/stream/websocketerror.js +0 -104
  493. package/.output/server/node_modules/undici/lib/web/websocket/stream/websocketstream.js +0 -498
  494. package/.output/server/node_modules/undici/lib/web/websocket/util.js +0 -347
  495. package/.output/server/node_modules/undici/lib/web/websocket/websocket.js +0 -758
  496. package/.output/server/node_modules/undici/package.json +0 -152
  497. package/.output/server/node_modules/unhead/dist/client.mjs +0 -22
  498. package/.output/server/node_modules/unhead/dist/index.mjs +0 -52
  499. package/.output/server/node_modules/unhead/dist/legacy.mjs +0 -33
  500. package/.output/server/node_modules/unhead/dist/minify.mjs +0 -183
  501. package/.output/server/node_modules/unhead/dist/parser.mjs +0 -518
  502. package/.output/server/node_modules/unhead/dist/plugins.mjs +0 -631
  503. package/.output/server/node_modules/unhead/dist/scripts.node.mjs +0 -6
  504. package/.output/server/node_modules/unhead/dist/server.mjs +0 -99
  505. package/.output/server/node_modules/unhead/dist/shared/unhead.BEmVMkeA.mjs +0 -673
  506. package/.output/server/node_modules/unhead/dist/shared/unhead.BGFxPGPQ.mjs +0 -47
  507. package/.output/server/node_modules/unhead/dist/shared/unhead.BQWSw36o.mjs +0 -192
  508. package/.output/server/node_modules/unhead/dist/shared/unhead.Bb4d5b9h.mjs +0 -67
  509. package/.output/server/node_modules/unhead/dist/shared/unhead.BdK3SLPN.mjs +0 -585
  510. package/.output/server/node_modules/unhead/dist/shared/unhead.Bf_fPVYA.mjs +0 -6
  511. package/.output/server/node_modules/unhead/dist/shared/unhead.Bm4Y6XQI.mjs +0 -17
  512. package/.output/server/node_modules/unhead/dist/shared/unhead.C3b2Ipoj.mjs +0 -223
  513. package/.output/server/node_modules/unhead/dist/shared/unhead.CGPOfp5O.mjs +0 -32
  514. package/.output/server/node_modules/unhead/dist/shared/unhead.CHEy9ana.mjs +0 -7
  515. package/.output/server/node_modules/unhead/dist/shared/unhead.CTjuIdzk.mjs +0 -27
  516. package/.output/server/node_modules/unhead/dist/shared/unhead.CfKy3Kuq.mjs +0 -196
  517. package/.output/server/node_modules/unhead/dist/shared/unhead.D7HkBzZn.mjs +0 -59
  518. package/.output/server/node_modules/unhead/dist/shared/unhead.DNKiVLV7.mjs +0 -400
  519. package/.output/server/node_modules/unhead/dist/shared/unhead.MC5RsXLj.mjs +0 -19
  520. package/.output/server/node_modules/unhead/dist/shared/unhead.jEy9BmRq.mjs +0 -264
  521. package/.output/server/node_modules/unhead/dist/shared/unhead.tQnRaXfX.mjs +0 -240
  522. package/.output/server/node_modules/unhead/dist/stream/client.mjs +0 -28
  523. package/.output/server/node_modules/unhead/dist/stream/iife.mjs +0 -2
  524. package/.output/server/node_modules/unhead/dist/stream/server.mjs +0 -264
  525. package/.output/server/node_modules/unhead/dist/utils.mjs +0 -7
  526. package/.output/server/node_modules/unhead/package.json +0 -179
  527. package/.output/server/node_modules/vue/dist/vue.cjs.js +0 -80
  528. package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +0 -66
  529. package/.output/server/node_modules/vue/index.js +0 -7
  530. package/.output/server/node_modules/vue/index.mjs +0 -1
  531. package/.output/server/node_modules/vue/package.json +0 -112
  532. package/.output/server/node_modules/vue/server-renderer/index.mjs +0 -1
  533. package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +0 -278
  534. package/.output/server/node_modules/vue-bundle-renderer/package.json +0 -54
  535. package/.output/server/node_modules/yocto-queue/index.js +0 -90
  536. package/.output/server/node_modules/yocto-queue/package.json +0 -48
  537. package/.output/server/node_modules/zod/index.js +0 -4
  538. package/.output/server/node_modules/zod/package.json +0 -135
  539. package/.output/server/node_modules/zod/v4/classic/checks.js +0 -1
  540. package/.output/server/node_modules/zod/v4/classic/coerce.js +0 -17
  541. package/.output/server/node_modules/zod/v4/classic/compat.js +0 -31
  542. package/.output/server/node_modules/zod/v4/classic/errors.js +0 -48
  543. package/.output/server/node_modules/zod/v4/classic/external.js +0 -20
  544. package/.output/server/node_modules/zod/v4/classic/from-json-schema.js +0 -599
  545. package/.output/server/node_modules/zod/v4/classic/iso.js +0 -30
  546. package/.output/server/node_modules/zod/v4/classic/package.json +0 -7
  547. package/.output/server/node_modules/zod/v4/classic/parse.js +0 -15
  548. package/.output/server/node_modules/zod/v4/classic/schemas.js +0 -1395
  549. package/.output/server/node_modules/zod/v4/core/api.js +0 -1087
  550. package/.output/server/node_modules/zod/v4/core/checks.js +0 -575
  551. package/.output/server/node_modules/zod/v4/core/core.js +0 -78
  552. package/.output/server/node_modules/zod/v4/core/doc.js +0 -35
  553. package/.output/server/node_modules/zod/v4/core/errors.js +0 -185
  554. package/.output/server/node_modules/zod/v4/core/index.js +0 -16
  555. package/.output/server/node_modules/zod/v4/core/json-schema-generator.js +0 -95
  556. package/.output/server/node_modules/zod/v4/core/json-schema-processors.js +0 -601
  557. package/.output/server/node_modules/zod/v4/core/json-schema.js +0 -1
  558. package/.output/server/node_modules/zod/v4/core/package.json +0 -7
  559. package/.output/server/node_modules/zod/v4/core/parse.js +0 -93
  560. package/.output/server/node_modules/zod/v4/core/regexes.js +0 -139
  561. package/.output/server/node_modules/zod/v4/core/registries.js +0 -51
  562. package/.output/server/node_modules/zod/v4/core/schemas.js +0 -2239
  563. package/.output/server/node_modules/zod/v4/core/to-json-schema.js +0 -448
  564. package/.output/server/node_modules/zod/v4/core/util.js +0 -674
  565. package/.output/server/node_modules/zod/v4/core/versions.js +0 -5
  566. package/.output/server/node_modules/zod/v4/locales/ar.js +0 -106
  567. package/.output/server/node_modules/zod/v4/locales/az.js +0 -105
  568. package/.output/server/node_modules/zod/v4/locales/be.js +0 -156
  569. package/.output/server/node_modules/zod/v4/locales/bg.js +0 -120
  570. package/.output/server/node_modules/zod/v4/locales/ca.js +0 -107
  571. package/.output/server/node_modules/zod/v4/locales/cs.js +0 -111
  572. package/.output/server/node_modules/zod/v4/locales/da.js +0 -115
  573. package/.output/server/node_modules/zod/v4/locales/de.js +0 -108
  574. package/.output/server/node_modules/zod/v4/locales/el.js +0 -109
  575. package/.output/server/node_modules/zod/v4/locales/en.js +0 -113
  576. package/.output/server/node_modules/zod/v4/locales/eo.js +0 -109
  577. package/.output/server/node_modules/zod/v4/locales/es.js +0 -132
  578. package/.output/server/node_modules/zod/v4/locales/fa.js +0 -114
  579. package/.output/server/node_modules/zod/v4/locales/fi.js +0 -112
  580. package/.output/server/node_modules/zod/v4/locales/fr-CA.js +0 -107
  581. package/.output/server/node_modules/zod/v4/locales/fr.js +0 -125
  582. package/.output/server/node_modules/zod/v4/locales/he.js +0 -214
  583. package/.output/server/node_modules/zod/v4/locales/hr.js +0 -122
  584. package/.output/server/node_modules/zod/v4/locales/hu.js +0 -108
  585. package/.output/server/node_modules/zod/v4/locales/hy.js +0 -147
  586. package/.output/server/node_modules/zod/v4/locales/id.js +0 -106
  587. package/.output/server/node_modules/zod/v4/locales/index.js +0 -52
  588. package/.output/server/node_modules/zod/v4/locales/is.js +0 -109
  589. package/.output/server/node_modules/zod/v4/locales/it.js +0 -108
  590. package/.output/server/node_modules/zod/v4/locales/ja.js +0 -107
  591. package/.output/server/node_modules/zod/v4/locales/ka.js +0 -112
  592. package/.output/server/node_modules/zod/v4/locales/kh.js +0 -5
  593. package/.output/server/node_modules/zod/v4/locales/km.js +0 -110
  594. package/.output/server/node_modules/zod/v4/locales/ko.js +0 -111
  595. package/.output/server/node_modules/zod/v4/locales/lt.js +0 -203
  596. package/.output/server/node_modules/zod/v4/locales/mk.js +0 -109
  597. package/.output/server/node_modules/zod/v4/locales/ms.js +0 -107
  598. package/.output/server/node_modules/zod/v4/locales/nl.js +0 -110
  599. package/.output/server/node_modules/zod/v4/locales/no.js +0 -108
  600. package/.output/server/node_modules/zod/v4/locales/ota.js +0 -109
  601. package/.output/server/node_modules/zod/v4/locales/package.json +0 -7
  602. package/.output/server/node_modules/zod/v4/locales/pl.js +0 -109
  603. package/.output/server/node_modules/zod/v4/locales/ps.js +0 -114
  604. package/.output/server/node_modules/zod/v4/locales/pt.js +0 -108
  605. package/.output/server/node_modules/zod/v4/locales/ro.js +0 -119
  606. package/.output/server/node_modules/zod/v4/locales/ru.js +0 -156
  607. package/.output/server/node_modules/zod/v4/locales/sl.js +0 -109
  608. package/.output/server/node_modules/zod/v4/locales/sv.js +0 -110
  609. package/.output/server/node_modules/zod/v4/locales/ta.js +0 -110
  610. package/.output/server/node_modules/zod/v4/locales/th.js +0 -110
  611. package/.output/server/node_modules/zod/v4/locales/tr.js +0 -105
  612. package/.output/server/node_modules/zod/v4/locales/ua.js +0 -5
  613. package/.output/server/node_modules/zod/v4/locales/uk.js +0 -108
  614. package/.output/server/node_modules/zod/v4/locales/ur.js +0 -110
  615. package/.output/server/node_modules/zod/v4/locales/uz.js +0 -110
  616. package/.output/server/node_modules/zod/v4/locales/vi.js +0 -108
  617. package/.output/server/node_modules/zod/v4/locales/yo.js +0 -107
  618. package/.output/server/node_modules/zod/v4/locales/zh-CN.js +0 -109
  619. package/.output/server/node_modules/zod/v4/locales/zh-TW.js +0 -107
  620. package/.output/server/package.json +0 -38
@@ -1,1426 +0,0 @@
1
- import process from 'node:process';globalThis._importMeta_=globalThis._importMeta_||{url:"file:///_entry.js",env:process.env};import { u as useSeoMeta$1, a as useToast, _ as _sfc_main$5, b as _sfc_main, c as _sfc_main$7$1 } from '../virtual/entry.mjs';
2
- import { C as CompletedTaskSelect_default, _ as _sfc_main$1 } from './CompletedTaskSelect-Ba03kTs9.mjs';
3
- import { _ as _sfc_main$7, a as _sfc_main$6, b as _sfc_main$6$1, M as MapLayerControl_default } from './MapLayerControl-DpNmYvcU.mjs';
4
- import { F as FileDropZone_default, _ as _sfc_main$1$1, a as _sfc_main$2 } from './Tabs-cdLsZZoL.mjs';
5
- import { u as useMapLayers } from './map-layers-C3HJoCLw.mjs';
6
- import { _ as _sfc_main$4 } from './Input-DnAric-z.mjs';
7
- import { u as useFileWorkspace, d as displayMapFileName } from './file-workspace-DMzPuPyG.mjs';
8
- import { O as OnlineMap_default } from './OnlineMap-B-sCfHkC.mjs';
9
- import { _ as _sfc_main$3 } from './FormField-BJHVyy1m.mjs';
10
- import { _ as _sfc_main$8 } from './Empty-CKvANuoV.mjs';
11
- import { defineComponent, ref, shallowRef, useTemplateRef, computed, watch, mergeProps, withCtx, unref, isRef, createVNode, toDisplayString, openBlock, createBlock, createCommentVNode, Fragment, renderList, createSlots, useSSRContext } from 'vue';
12
- import { ssrRenderComponent, ssrInterpolate, ssrRenderList, ssrRenderStyle } from 'vue/server-renderer';
13
- import 'unhead/plugins';
14
- import 'unhead/utils';
15
- import '../routes/renderer.mjs';
16
- import '../nitro/nitro.mjs';
17
- import 'node:http';
18
- import 'node:https';
19
- import 'node:events';
20
- import 'node:buffer';
21
- import 'node:fs';
22
- import 'node:path';
23
- import 'node:crypto';
24
- import 'node:url';
25
- import '@iconify/utils';
26
- import 'consola';
27
- import 'unhead/server';
28
- import 'unhead/legacy';
29
- import 'nostics';
30
- import 'vue-bundle-renderer/runtime';
31
- import 'devalue';
32
- import 'fnv1a-64';
33
- import 'object-identity';
34
- import 'tailwindcss/colors';
35
- import './overlay-BS4_B29H.mjs';
36
- import './cookie-CziAmOf1.mjs';
37
- import './esm-Dp2lJXbp.mjs';
38
- import './pages-5yYRS5nX.mjs';
39
-
40
- const HUE_SLOTS = [0, 5, 2, 7, 4, 9, 1, 6, 3, 8];
41
- const HUE_OFFSET = 28;
42
- const HUE_STEP = 36;
43
- function linearRgb(lightness, chroma, hue) {
44
- const radians = hue * Math.PI / 180;
45
- const a = chroma * Math.cos(radians);
46
- const b = chroma * Math.sin(radians);
47
- const l = (lightness + 0.3963377774 * a + 0.2158037573 * b) ** 3;
48
- const m = (lightness - 0.1055613458 * a - 0.0638541728 * b) ** 3;
49
- const s = (lightness - 0.0894841775 * a - 1.291485548 * b) ** 3;
50
- return {
51
- red: 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s,
52
- green: -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s,
53
- blue: -0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s
54
- };
55
- }
56
- function inSrgbGamut(color) {
57
- return color.red >= 0 && color.red <= 1 && color.green >= 0 && color.green <= 1 && color.blue >= 0 && color.blue <= 1;
58
- }
59
- function srgbChannel(value) {
60
- const encoded = value <= 31308e-7 ? 12.92 * value : 1.055 * value ** (1 / 2.4) - 0.055;
61
- return Math.round(Math.min(1, Math.max(0, encoded)) * 255);
62
- }
63
- function oklchToRgb(lightness, chroma, hue) {
64
- let low = 0;
65
- let high = Math.max(0, chroma);
66
- let color = linearRgb(lightness, low, hue);
67
- for (let iteration = 0; iteration < 20; iteration++) {
68
- const candidateChroma = (low + high) / 2;
69
- const candidate = linearRgb(lightness, candidateChroma, hue);
70
- if (inSrgbGamut(candidate)) {
71
- low = candidateChroma;
72
- color = candidate;
73
- } else high = candidateChroma;
74
- }
75
- return [srgbChannel(color.red), srgbChannel(color.green), srgbChannel(color.blue)];
76
- }
77
- function rgbHex([red, green, blue]) {
78
- return `#${[red, green, blue].map((channel) => channel.toString(16).padStart(2, "0")).join("")}`;
79
- }
80
- function areaPaletteColor(index) {
81
- const normalized = (index % HUE_SLOTS.length + HUE_SLOTS.length) % HUE_SLOTS.length;
82
- const hue = HUE_OFFSET + HUE_SLOTS[normalized] * HUE_STEP;
83
- const rgb = oklchToRgb(0.68, 0.18, hue);
84
- return {
85
- rgb,
86
- fillHex: rgbHex(rgb),
87
- accentHex: rgbHex(oklchToRgb(0.46, 0.13, hue))
88
- };
89
- }
90
-
91
- //#region app/composables/nearest-area.ts
92
- function useNearestArea() {
93
- const state = ref("idle");
94
- const areas = shallowRef([]);
95
- const processedTiles = ref(0);
96
- const totalTiles = ref(0);
97
- const foundAreas = ref(0);
98
- const truncated = ref(false);
99
- const error = ref(null);
100
- const progress = computed(() => totalTiles.value === 0 ? 0 : processedTiles.value / totalTiles.value * 100);
101
- let worker = null;
102
- function cancel() {
103
- worker?.terminate();
104
- worker = null;
105
- state.value = "idle";
106
- areas.value = [];
107
- processedTiles.value = 0;
108
- totalTiles.value = 0;
109
- foundAreas.value = 0;
110
- truncated.value = false;
111
- error.value = null;
112
- }
113
- async function run(request) {
114
- cancel();
115
- state.value = "running";
116
- await new Promise((resolve, reject) => {
117
- worker = new Worker(new URL("../workers/nearest-area.worker.ts", globalThis._importMeta_.url), { type: "module" });
118
- worker.onerror = (event) => reject(new Error(event.message || "适飞区分析 Worker 异常退出"));
119
- worker.onmessage = (event) => {
120
- const message = event.data;
121
- if (message.type === "error") {
122
- reject(new Error(message.message));
123
- return;
124
- }
125
- processedTiles.value = message.processedTiles;
126
- totalTiles.value = message.totalTiles;
127
- if (message.type === "progress") {
128
- foundAreas.value = Math.min(message.foundAreas, request.resultCount);
129
- return;
130
- }
131
- areas.value = message.areas;
132
- foundAreas.value = Math.min(message.areas.length, request.resultCount);
133
- truncated.value = message.truncated;
134
- resolve();
135
- };
136
- worker.postMessage({
137
- type: "search",
138
- ...request
139
- });
140
- }).then(() => {
141
- state.value = "completed";
142
- }).catch((cause) => {
143
- error.value = cause instanceof Error ? cause.message : String(cause);
144
- state.value = "error";
145
- throw cause;
146
- }).finally(() => {
147
- worker?.terminate();
148
- worker = null;
149
- });
150
- }
151
- return {
152
- state,
153
- areas,
154
- processedTiles,
155
- totalTiles,
156
- foundAreas,
157
- truncated,
158
- error,
159
- progress,
160
- run,
161
- cancel
162
- };
163
- }
164
- //#endregion
165
- //#region app/pages/advanced.vue?vue&type=script&setup=true&lang.ts
166
- var advanced_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
167
- __name: "advanced",
168
- __ssrInlineRender: true,
169
- setup(__props) {
170
- useSeoMeta$1({ title: "地图高级功能" });
171
- const workspace = useFileWorkspace();
172
- const toast = useToast();
173
- const stage = ref("select");
174
- const filename = ref();
175
- const localFile = shallowRef(null);
176
- const { baseLayer, overlayLayers } = useMapLayers();
177
- const feature = ref("nearest-area");
178
- const map = useTemplateRef("map");
179
- const locationMode = ref("manual");
180
- const longitude = ref("");
181
- const latitude = ref("");
182
- const locating = ref(false);
183
- const filterMode = ref("area");
184
- const areaPreset = ref(1);
185
- const customAreaSquareKilometers = ref();
186
- const customWidthKilometers = ref();
187
- const customHeightKilometers = ref();
188
- const gapMeters = ref(0);
189
- const resultCount = ref(5);
190
- const selectedAreaId = ref(null);
191
- const { state, areas, processedTiles, totalTiles, foundAreas, truncated, error, progress, run, cancel } = useNearestArea();
192
- const selectedFile = computed(() => workspace.files.value.find((file) => file.filename === filename.value));
193
- const selectedSource = computed(() => selectedFile.value || localFile.value);
194
- const selectedSourceLabel = computed(() => selectedFile.value ? workspace.displayWorkspaceName(selectedFile.value.filename) : localFile.value ? displayMapFileName(localFile.value.filename) : void 0);
195
- const sourceTileUrl = computed(() => selectedFile.value ? `/api/workspace/${encodeURIComponent(selectedFile.value.filename)}/tile?z={z}&x={x}&y={y}` : localFile.value ? `local:${localFile.value.id}/{z}/{x}/{y}` : void 0);
196
- const sourceMinZoom = computed(() => selectedFile.value?.minZoom ?? 0);
197
- const sourceMaxZoom = computed(() => selectedFile.value?.maxZoom ?? (localFile.value?.kind === "uomtiles" ? 18 : 24));
198
- const featureItems = [{
199
- label: "寻找离我最近的适飞区",
200
- value: "nearest-area",
201
- icon: "i-lucide-map-pin-check"
202
- }];
203
- const filterModeItems = [{
204
- label: "最小面积",
205
- value: "area"
206
- }, {
207
- label: "自定义尺寸",
208
- value: "size"
209
- }];
210
- const areaPresetItems = [
211
- {
212
- label: "至少 1 平方千米",
213
- value: 1
214
- },
215
- {
216
- label: "至少 5 平方千米",
217
- value: 5
218
- },
219
- {
220
- label: "至少 10 平方千米",
221
- value: 10
222
- },
223
- {
224
- label: "至少 50 平方千米",
225
- value: 50
226
- },
227
- {
228
- label: "至少 100 平方千米",
229
- value: 100
230
- },
231
- {
232
- label: "自定义面积",
233
- value: "custom"
234
- }
235
- ];
236
- const resultCountItems = [
237
- 3,
238
- 5,
239
- 10
240
- ].map((value) => ({
241
- label: `${value} 个`,
242
- value
243
- }));
244
- const locationModeItems = computed(() => [
245
- {
246
- label: locating.value ? "定位中" : "我的位置",
247
- value: "geolocation",
248
- icon: locating.value ? "i-lucide-loader-circle" : "i-lucide-locate-fixed",
249
- ui: { leadingIcon: locating.value ? "animate-spin" : void 0 }
250
- },
251
- {
252
- label: "地图选点",
253
- value: "map",
254
- icon: "i-lucide-map-pin"
255
- },
256
- {
257
- label: "手动输入",
258
- value: "manual",
259
- icon: "i-lucide-keyboard"
260
- }
261
- ]);
262
- const running = computed(() => state.value === "running");
263
- const parsedLongitude = computed(() => longitude.value.trim() === "" ? null : Number(longitude.value));
264
- const parsedLatitude = computed(() => latitude.value.trim() === "" ? null : Number(latitude.value));
265
- const longitudeValid = computed(() => parsedLongitude.value !== null && Number.isFinite(parsedLongitude.value) && parsedLongitude.value >= -180 && parsedLongitude.value <= 180);
266
- const latitudeValid = computed(() => parsedLatitude.value !== null && Number.isFinite(parsedLatitude.value) && parsedLatitude.value >= -85.05112878 && parsedLatitude.value <= 85.05112878);
267
- const location = computed(() => longitudeValid.value && latitudeValid.value ? [parsedLongitude.value, parsedLatitude.value] : void 0);
268
- const longitudeError = computed(() => longitude.value && !longitudeValid.value ? "经度应在 -180 到 180 之间" : void 0);
269
- const latitudeError = computed(() => latitude.value && !latitudeValid.value ? "纬度应在 -85.051129 到 85.051129 之间" : void 0);
270
- const minimumAreaSquareMeters = computed(() => filterMode.value === "area" ? (areaPreset.value === "custom" ? customAreaSquareKilometers.value || 0 : areaPreset.value) * 1e6 : 0);
271
- const minimumWidthMeters = computed(() => filterMode.value === "size" ? (customWidthKilometers.value || 0) * 1e3 : 0);
272
- const minimumHeightMeters = computed(() => filterMode.value === "size" ? (customHeightKilometers.value || 0) * 1e3 : 0);
273
- const criteriaValid = computed(() => filterMode.value === "area" ? areaPreset.value !== "custom" || Number(customAreaSquareKilometers.value) >= 1 : Number(customWidthKilometers.value) > 0 && Number(customHeightKilometers.value) > 0);
274
- const gapValid = computed(() => Number.isFinite(Number(gapMeters.value)) && Number(gapMeters.value) >= 0);
275
- watch(filename, (value) => {
276
- if (value) localFile.value = null;
277
- });
278
- watch(filename, () => {
279
- cancel();
280
- selectedAreaId.value = null;
281
- });
282
- watch([
283
- filterMode,
284
- areaPreset,
285
- customAreaSquareKilometers,
286
- customWidthKilometers,
287
- customHeightKilometers,
288
- gapMeters,
289
- resultCount
290
- ], () => {
291
- cancel();
292
- selectedAreaId.value = null;
293
- });
294
- function selectLocalFile(file) {
295
- const kind = file.name.split(".").pop()?.toLowerCase();
296
- if (kind !== "uomtiles" && kind !== "mbtiles" && kind !== "pmtiles") {
297
- toast.add({
298
- title: "不支持的地图文件",
299
- description: "请选择 .uomtiles、.mbtiles 或 .pmtiles。",
300
- color: "error",
301
- icon: "i-lucide-file-x-2"
302
- });
303
- return;
304
- }
305
- filename.value = void 0;
306
- localFile.value = {
307
- id: `advanced-${crypto.randomUUID()}`,
308
- file,
309
- filename: file.name,
310
- kind
311
- };
312
- }
313
- function openMap() {
314
- if (!selectedSource.value) return;
315
- stage.value = "use";
316
- }
317
- function chooseAgain() {
318
- cancel();
319
- selectedAreaId.value = null;
320
- stage.value = "select";
321
- }
322
- function resetLocationResults() {
323
- cancel();
324
- selectedAreaId.value = null;
325
- }
326
- function setLocation(value, mode) {
327
- if (mode === "geolocation" && locationMode.value !== "geolocation") return;
328
- locating.value = false;
329
- applyLocation(value, mode);
330
- }
331
- function activateGeolocation() {
332
- resetLocationResults();
333
- locationMode.value = "geolocation";
334
- }
335
- function applyLocation(value, mode) {
336
- resetLocationResults();
337
- locationMode.value = mode;
338
- longitude.value = value[0].toFixed(6);
339
- latitude.value = value[1].toFixed(6);
340
- }
341
- function setManualLongitude(value) {
342
- map.value?.stopActiveLocationTracking();
343
- locating.value = false;
344
- resetLocationResults();
345
- locationMode.value = "manual";
346
- longitude.value = String(value);
347
- }
348
- function setManualLatitude(value) {
349
- map.value?.stopActiveLocationTracking();
350
- locating.value = false;
351
- resetLocationResults();
352
- locationMode.value = "manual";
353
- latitude.value = String(value);
354
- }
355
- function selectLocationMode(value) {
356
- if (value !== "geolocation" && value !== "map" && value !== "manual") return;
357
- if (value !== "geolocation") map.value?.stopActiveLocationTracking();
358
- locating.value = false;
359
- resetLocationResults();
360
- locationMode.value = value;
361
- if (value === "geolocation" && !map.value?.locate()) toast.add({
362
- title: "定位功能尚未就绪",
363
- color: "error",
364
- icon: "i-lucide-map-pin-off"
365
- });
366
- }
367
- function setLocationLoading(value) {
368
- locating.value = value;
369
- }
370
- function showLocationError(code) {
371
- locating.value = false;
372
- toast.add({
373
- title: code === 1 ? "定位权限未开启" : "无法获取当前位置",
374
- color: "error",
375
- icon: "i-lucide-map-pin-off"
376
- });
377
- }
378
- async function search() {
379
- if (!selectedSource.value || !location.value) return;
380
- selectedAreaId.value = null;
381
- try {
382
- await run({
383
- source: localFile.value ? {
384
- kind: "local",
385
- file: localFile.value.file
386
- } : {
387
- kind: "workspace",
388
- filename: filename.value
389
- },
390
- longitude: location.value[0],
391
- latitude: location.value[1],
392
- minimumAreaSquareMeters: minimumAreaSquareMeters.value,
393
- minimumWidthMeters: minimumWidthMeters.value,
394
- minimumHeightMeters: minimumHeightMeters.value,
395
- gapMeters: Number(gapMeters.value),
396
- resultCount: resultCount.value
397
- });
398
- } catch {}
399
- }
400
- function formatDistance(meters) {
401
- return meters < 1e3 ? `${Math.round(meters)} 米` : `${(meters / 1e3).toFixed(meters < 1e4 ? 1 : 0)} 公里`;
402
- }
403
- function formatArea(squareMeters) {
404
- return `${formatSignificant(squareMeters / 1e6)} km²`;
405
- }
406
- function formatDimension(meters) {
407
- return `${formatSignificant(meters / 1e3)} km`;
408
- }
409
- function formatSignificant(value) {
410
- const absolute = Math.abs(value);
411
- const digits = absolute >= 100 ? 0 : absolute >= 10 ? 1 : 2;
412
- return value.toFixed(digits).replace(/(\.\d*?[1-9])0+$|\.0+$/, "$1").replace(/\.$/, "");
413
- }
414
- return (_ctx, _push, _parent, _attrs) => {
415
- const _component_UDashboardPanel = _sfc_main$7;
416
- const _component_UDashboardNavbar = _sfc_main$6$1;
417
- const _component_UButton = _sfc_main;
418
- const _component_MapLayerControl = MapLayerControl_default;
419
- const _component_UIcon = _sfc_main$5;
420
- const _component_FileDropZone = FileDropZone_default;
421
- const _component_CompletedTaskSelect = CompletedTaskSelect_default;
422
- const _component_OnlineMap = OnlineMap_default;
423
- const _component_USelectMenu = _sfc_main$1;
424
- const _component_UScrollArea = _sfc_main$1$1;
425
- const _component_UTabs = _sfc_main$2;
426
- const _component_UFormField = _sfc_main$3;
427
- const _component_UInput = _sfc_main$4;
428
- const _component_UProgress = _sfc_main$7$1;
429
- const _component_UAlert = _sfc_main$6;
430
- const _component_UEmpty = _sfc_main$8;
431
- _push(ssrRenderComponent(_component_UDashboardPanel, mergeProps({
432
- id: "advanced-map",
433
- class: "min-w-0",
434
- ui: { body: "gap-0 overflow-hidden p-0 sm:gap-0 sm:p-0" }
435
- }, _attrs), {
436
- header: withCtx((_, _push, _parent, _scopeId) => {
437
- if (_push) _push(ssrRenderComponent(_component_UDashboardNavbar, { title: "地图高级功能" }, createSlots({ _: 2 }, [unref(stage) === "use" ? {
438
- name: "right",
439
- fn: withCtx((_, _push, _parent, _scopeId) => {
440
- if (_push) {
441
- _push(ssrRenderComponent(_component_UButton, {
442
- icon: "i-lucide-files",
443
- label: "重新选择",
444
- color: "neutral",
445
- variant: "outline",
446
- onClick: chooseAgain
447
- }, null, _parent, _scopeId));
448
- _push(ssrRenderComponent(_component_MapLayerControl, null, null, _parent, _scopeId));
449
- } else return [createVNode(_component_UButton, {
450
- icon: "i-lucide-files",
451
- label: "重新选择",
452
- color: "neutral",
453
- variant: "outline",
454
- onClick: chooseAgain
455
- }), createVNode(_component_MapLayerControl)];
456
- }),
457
- key: "0"
458
- } : void 0]), _parent, _scopeId));
459
- else return [createVNode(_component_UDashboardNavbar, { title: "地图高级功能" }, createSlots({ _: 2 }, [unref(stage) === "use" ? {
460
- name: "right",
461
- fn: withCtx(() => [createVNode(_component_UButton, {
462
- icon: "i-lucide-files",
463
- label: "重新选择",
464
- color: "neutral",
465
- variant: "outline",
466
- onClick: chooseAgain
467
- }), createVNode(_component_MapLayerControl)]),
468
- key: "0"
469
- } : void 0]), 1024)];
470
- }),
471
- body: withCtx((_, _push, _parent, _scopeId) => {
472
- if (_push) {
473
- if (!unref(workspace).ready.value) {
474
- _push(`<div class="grid min-h-[32rem] flex-1 place-items-center"${_scopeId}><div class="flex flex-col items-center gap-3 text-sm text-muted"${_scopeId}>`);
475
- _push(ssrRenderComponent(_component_UIcon, {
476
- name: "i-lucide-loader-circle",
477
- class: "size-5 animate-spin text-primary"
478
- }, null, _parent, _scopeId));
479
- _push(`<span${_scopeId}>加载地图文件</span></div></div>`);
480
- } else if (unref(stage) === "select") {
481
- _push(`<div class="grid min-h-[32rem] flex-1 place-items-center overflow-y-auto p-6"${_scopeId}><div class="w-full max-w-2xl space-y-4"${_scopeId}>`);
482
- _push(ssrRenderComponent(_component_FileDropZone, {
483
- accept: ".uomtiles,.mbtiles,.pmtiles",
484
- title: "选择地图文件",
485
- "file-name": unref(selectedSourceLabel),
486
- onSelect: selectLocalFile
487
- }, null, _parent, _scopeId));
488
- _push(ssrRenderComponent(_component_CompletedTaskSelect, {
489
- modelValue: unref(filename),
490
- "onUpdate:modelValue": ($event) => isRef(filename) ? filename.value = $event : null,
491
- class: "w-full"
492
- }, null, _parent, _scopeId));
493
- _push(`<div class="flex justify-end"${_scopeId}>`);
494
- _push(ssrRenderComponent(_component_UButton, {
495
- icon: "i-lucide-map",
496
- label: "打开地图",
497
- size: "lg",
498
- disabled: !unref(selectedSource),
499
- onClick: openMap
500
- }, null, _parent, _scopeId));
501
- _push(`</div></div></div>`);
502
- } else if (unref(selectedSource)) {
503
- _push(`<div class="grid min-h-0 flex-1 xl:grid-cols-[minmax(0,1fr)_24rem]"${_scopeId}><div class="relative min-h-[520px] border-r border-default"${_scopeId}>`);
504
- _push(ssrRenderComponent(_component_OnlineMap, {
505
- ref_key: "map",
506
- ref: map,
507
- key: unref(selectedFile)?.filename || unref(localFile)?.id,
508
- "tile-url": unref(sourceTileUrl),
509
- "local-sources": unref(localFile) ? [{
510
- id: unref(localFile).id,
511
- file: unref(localFile).file
512
- }] : [],
513
- "base-map": unref(baseLayer),
514
- "overlay-layers": unref(overlayLayers),
515
- "min-zoom": unref(sourceMinZoom),
516
- "max-zoom": unref(sourceMaxZoom),
517
- "map-min-zoom": 3,
518
- "map-max-zoom": 24,
519
- "initial-zoom": 9,
520
- center: unref(location) || [116.4, 39.9],
521
- location: unref(location),
522
- areas: unref(areas),
523
- "selected-area-id": unref(selectedAreaId),
524
- "enable-location-picking": unref(locationMode) === "map",
525
- "enable-area-analysis": "",
526
- "raster-resampling": "nearest",
527
- onLocationActivate: activateGeolocation,
528
- onLocationChange: setLocation,
529
- onLocationLoading: setLocationLoading,
530
- onLocationError: showLocationError
531
- }, null, _parent, _scopeId));
532
- _push(`</div><aside class="flex min-h-0 flex-col overflow-hidden bg-default"${_scopeId}><div class="border-b border-default p-4"${_scopeId}>`);
533
- _push(ssrRenderComponent(_component_USelectMenu, {
534
- modelValue: unref(feature),
535
- "onUpdate:modelValue": ($event) => isRef(feature) ? feature.value = $event : null,
536
- items: featureItems,
537
- "value-key": "value",
538
- "label-key": "label",
539
- class: "w-full"
540
- }, null, _parent, _scopeId));
541
- _push(`</div>`);
542
- _push(ssrRenderComponent(_component_UScrollArea, { class: "min-h-0 flex-1" }, {
543
- default: withCtx((_, _push, _parent, _scopeId) => {
544
- if (_push) {
545
- _push(`<div class="space-y-6 p-5"${_scopeId}><section class="space-y-3"${_scopeId}>`);
546
- _push(ssrRenderComponent(_component_UTabs, {
547
- "model-value": unref(locationMode),
548
- items: unref(locationModeItems),
549
- content: false,
550
- size: "sm",
551
- class: "w-full",
552
- ui: {
553
- list: "grid grid-cols-3",
554
- trigger: "px-2"
555
- },
556
- "onUpdate:modelValue": selectLocationMode
557
- }, null, _parent, _scopeId));
558
- _push(`<div class="grid grid-cols-2 gap-3"${_scopeId}>`);
559
- _push(ssrRenderComponent(_component_UFormField, {
560
- label: "经度",
561
- error: unref(longitudeError)
562
- }, {
563
- default: withCtx((_, _push, _parent, _scopeId) => {
564
- if (_push) _push(ssrRenderComponent(_component_UInput, {
565
- "model-value": unref(longitude),
566
- type: "number",
567
- inputmode: "decimal",
568
- min: "-180",
569
- max: "180",
570
- step: "0.000001",
571
- placeholder: "116.400000",
572
- class: "w-full",
573
- "onUpdate:modelValue": setManualLongitude
574
- }, null, _parent, _scopeId));
575
- else return [createVNode(_component_UInput, {
576
- "model-value": unref(longitude),
577
- type: "number",
578
- inputmode: "decimal",
579
- min: "-180",
580
- max: "180",
581
- step: "0.000001",
582
- placeholder: "116.400000",
583
- class: "w-full",
584
- "onUpdate:modelValue": setManualLongitude
585
- }, null, 8, ["model-value"])];
586
- }),
587
- _: 1
588
- }, _parent, _scopeId));
589
- _push(ssrRenderComponent(_component_UFormField, {
590
- label: "纬度",
591
- error: unref(latitudeError)
592
- }, {
593
- default: withCtx((_, _push, _parent, _scopeId) => {
594
- if (_push) _push(ssrRenderComponent(_component_UInput, {
595
- "model-value": unref(latitude),
596
- type: "number",
597
- inputmode: "decimal",
598
- min: "-85.05112878",
599
- max: "85.05112878",
600
- step: "0.000001",
601
- placeholder: "39.900000",
602
- class: "w-full",
603
- "onUpdate:modelValue": setManualLatitude
604
- }, null, _parent, _scopeId));
605
- else return [createVNode(_component_UInput, {
606
- "model-value": unref(latitude),
607
- type: "number",
608
- inputmode: "decimal",
609
- min: "-85.05112878",
610
- max: "85.05112878",
611
- step: "0.000001",
612
- placeholder: "39.900000",
613
- class: "w-full",
614
- "onUpdate:modelValue": setManualLatitude
615
- }, null, 8, ["model-value"])];
616
- }),
617
- _: 1
618
- }, _parent, _scopeId));
619
- _push(`</div>`);
620
- if (unref(locating)) _push(`<span class="sr-only" role="status"${_scopeId}>正在获取当前位置</span>`);
621
- else _push(`<!---->`);
622
- _push(`</section><section class="space-y-3"${_scopeId}><div class="grid grid-cols-2 gap-3"${_scopeId}>`);
623
- _push(ssrRenderComponent(_component_UFormField, { label: "筛选方式" }, {
624
- default: withCtx((_, _push, _parent, _scopeId) => {
625
- if (_push) _push(ssrRenderComponent(_component_USelectMenu, {
626
- modelValue: unref(filterMode),
627
- "onUpdate:modelValue": ($event) => isRef(filterMode) ? filterMode.value = $event : null,
628
- items: filterModeItems,
629
- "value-key": "value",
630
- "label-key": "label",
631
- class: "w-full"
632
- }, null, _parent, _scopeId));
633
- else return [createVNode(_component_USelectMenu, {
634
- modelValue: unref(filterMode),
635
- "onUpdate:modelValue": ($event) => isRef(filterMode) ? filterMode.value = $event : null,
636
- items: filterModeItems,
637
- "value-key": "value",
638
- "label-key": "label",
639
- class: "w-full"
640
- }, null, 8, ["modelValue", "onUpdate:modelValue"])];
641
- }),
642
- _: 1
643
- }, _parent, _scopeId));
644
- _push(ssrRenderComponent(_component_UFormField, { label: "结果数量" }, {
645
- default: withCtx((_, _push, _parent, _scopeId) => {
646
- if (_push) _push(ssrRenderComponent(_component_USelectMenu, {
647
- modelValue: unref(resultCount),
648
- "onUpdate:modelValue": ($event) => isRef(resultCount) ? resultCount.value = $event : null,
649
- items: unref(resultCountItems),
650
- "value-key": "value",
651
- "label-key": "label",
652
- class: "w-full"
653
- }, null, _parent, _scopeId));
654
- else return [createVNode(_component_USelectMenu, {
655
- modelValue: unref(resultCount),
656
- "onUpdate:modelValue": ($event) => isRef(resultCount) ? resultCount.value = $event : null,
657
- items: unref(resultCountItems),
658
- "value-key": "value",
659
- "label-key": "label",
660
- class: "w-full"
661
- }, null, 8, [
662
- "modelValue",
663
- "onUpdate:modelValue",
664
- "items"
665
- ])];
666
- }),
667
- _: 1
668
- }, _parent, _scopeId));
669
- _push(`</div>`);
670
- if (unref(filterMode) === "area") {
671
- _push(`<!--[-->`);
672
- _push(ssrRenderComponent(_component_UFormField, { label: "最小面积" }, {
673
- default: withCtx((_, _push, _parent, _scopeId) => {
674
- if (_push) _push(ssrRenderComponent(_component_USelectMenu, {
675
- modelValue: unref(areaPreset),
676
- "onUpdate:modelValue": ($event) => isRef(areaPreset) ? areaPreset.value = $event : null,
677
- items: areaPresetItems,
678
- "value-key": "value",
679
- "label-key": "label",
680
- class: "w-full"
681
- }, null, _parent, _scopeId));
682
- else return [createVNode(_component_USelectMenu, {
683
- modelValue: unref(areaPreset),
684
- "onUpdate:modelValue": ($event) => isRef(areaPreset) ? areaPreset.value = $event : null,
685
- items: areaPresetItems,
686
- "value-key": "value",
687
- "label-key": "label",
688
- class: "w-full"
689
- }, null, 8, ["modelValue", "onUpdate:modelValue"])];
690
- }),
691
- _: 1
692
- }, _parent, _scopeId));
693
- if (unref(areaPreset) === "custom") _push(ssrRenderComponent(_component_UFormField, { label: "自定义面积(平方千米)" }, {
694
- default: withCtx((_, _push, _parent, _scopeId) => {
695
- if (_push) _push(ssrRenderComponent(_component_UInput, {
696
- modelValue: unref(customAreaSquareKilometers),
697
- "onUpdate:modelValue": ($event) => isRef(customAreaSquareKilometers) ? customAreaSquareKilometers.value = $event : null,
698
- modelModifiers: { number: true },
699
- type: "number",
700
- min: "1",
701
- step: "0.1",
702
- placeholder: "至少 1",
703
- class: "w-full"
704
- }, null, _parent, _scopeId));
705
- else return [createVNode(_component_UInput, {
706
- modelValue: unref(customAreaSquareKilometers),
707
- "onUpdate:modelValue": ($event) => isRef(customAreaSquareKilometers) ? customAreaSquareKilometers.value = $event : null,
708
- modelModifiers: { number: true },
709
- type: "number",
710
- min: "1",
711
- step: "0.1",
712
- placeholder: "至少 1",
713
- class: "w-full"
714
- }, null, 8, ["modelValue", "onUpdate:modelValue"])];
715
- }),
716
- _: 1
717
- }, _parent, _scopeId));
718
- else _push(`<!---->`);
719
- _push(`<!--]-->`);
720
- } else {
721
- _push(`<div class="grid grid-cols-2 gap-3"${_scopeId}>`);
722
- _push(ssrRenderComponent(_component_UFormField, { label: "最小宽(公里)" }, {
723
- default: withCtx((_, _push, _parent, _scopeId) => {
724
- if (_push) _push(ssrRenderComponent(_component_UInput, {
725
- modelValue: unref(customWidthKilometers),
726
- "onUpdate:modelValue": ($event) => isRef(customWidthKilometers) ? customWidthKilometers.value = $event : null,
727
- modelModifiers: { number: true },
728
- type: "number",
729
- min: "0.1",
730
- step: "0.1",
731
- placeholder: "例如 2",
732
- class: "w-full"
733
- }, null, _parent, _scopeId));
734
- else return [createVNode(_component_UInput, {
735
- modelValue: unref(customWidthKilometers),
736
- "onUpdate:modelValue": ($event) => isRef(customWidthKilometers) ? customWidthKilometers.value = $event : null,
737
- modelModifiers: { number: true },
738
- type: "number",
739
- min: "0.1",
740
- step: "0.1",
741
- placeholder: "例如 2",
742
- class: "w-full"
743
- }, null, 8, ["modelValue", "onUpdate:modelValue"])];
744
- }),
745
- _: 1
746
- }, _parent, _scopeId));
747
- _push(ssrRenderComponent(_component_UFormField, { label: "最小高(公里)" }, {
748
- default: withCtx((_, _push, _parent, _scopeId) => {
749
- if (_push) _push(ssrRenderComponent(_component_UInput, {
750
- modelValue: unref(customHeightKilometers),
751
- "onUpdate:modelValue": ($event) => isRef(customHeightKilometers) ? customHeightKilometers.value = $event : null,
752
- modelModifiers: { number: true },
753
- type: "number",
754
- min: "0.1",
755
- step: "0.1",
756
- placeholder: "例如 2",
757
- class: "w-full"
758
- }, null, _parent, _scopeId));
759
- else return [createVNode(_component_UInput, {
760
- modelValue: unref(customHeightKilometers),
761
- "onUpdate:modelValue": ($event) => isRef(customHeightKilometers) ? customHeightKilometers.value = $event : null,
762
- modelModifiers: { number: true },
763
- type: "number",
764
- min: "0.1",
765
- step: "0.1",
766
- placeholder: "例如 2",
767
- class: "w-full"
768
- }, null, 8, ["modelValue", "onUpdate:modelValue"])];
769
- }),
770
- _: 1
771
- }, _parent, _scopeId));
772
- _push(`</div>`);
773
- }
774
- _push(ssrRenderComponent(_component_UFormField, {
775
- label: "区域合并间隙(米)",
776
- description: "边缘间隔不超过此值的区域合并"
777
- }, {
778
- default: withCtx((_, _push, _parent, _scopeId) => {
779
- if (_push) _push(ssrRenderComponent(_component_UInput, {
780
- modelValue: unref(gapMeters),
781
- "onUpdate:modelValue": ($event) => isRef(gapMeters) ? gapMeters.value = $event : null,
782
- modelModifiers: { number: true },
783
- type: "number",
784
- min: "0",
785
- step: "1",
786
- placeholder: "0",
787
- class: "w-full"
788
- }, null, _parent, _scopeId));
789
- else return [createVNode(_component_UInput, {
790
- modelValue: unref(gapMeters),
791
- "onUpdate:modelValue": ($event) => isRef(gapMeters) ? gapMeters.value = $event : null,
792
- modelModifiers: { number: true },
793
- type: "number",
794
- min: "0",
795
- step: "1",
796
- placeholder: "0",
797
- class: "w-full"
798
- }, null, 8, ["modelValue", "onUpdate:modelValue"])];
799
- }),
800
- _: 1
801
- }, _parent, _scopeId));
802
- _push(`</section>`);
803
- _push(ssrRenderComponent(_component_UButton, {
804
- icon: "i-lucide-search",
805
- label: "寻找适飞区",
806
- block: "",
807
- loading: unref(running),
808
- disabled: !unref(location) || !unref(criteriaValid) || !unref(gapValid) || unref(running),
809
- onClick: search
810
- }, null, _parent, _scopeId));
811
- if (unref(running)) {
812
- _push(`<section class="space-y-2"${_scopeId}>`);
813
- _push(ssrRenderComponent(_component_UProgress, {
814
- "model-value": unref(progress),
815
- max: 100,
816
- size: "sm"
817
- }, null, _parent, _scopeId));
818
- _push(`<div class="flex items-center justify-between text-xs text-muted"${_scopeId}><span${_scopeId}>${ssrInterpolate(unref(processedTiles))} / ${ssrInterpolate(unref(totalTiles))} 瓦片</span><span${_scopeId}>已发现 ${ssrInterpolate(unref(foundAreas))} 个</span></div></section>`);
819
- } else if (unref(state) === "error") _push(ssrRenderComponent(_component_UAlert, {
820
- color: "error",
821
- icon: "i-lucide-circle-x",
822
- title: "分析失败",
823
- description: unref(error) || void 0
824
- }, null, _parent, _scopeId));
825
- else if (unref(state) === "completed" && unref(truncated)) _push(ssrRenderComponent(_component_UAlert, {
826
- color: "warning",
827
- icon: "i-lucide-triangle-alert",
828
- title: "结果可能不完整",
829
- description: "已达到本次分析的瓦片上限。"
830
- }, null, _parent, _scopeId));
831
- else _push(`<!---->`);
832
- if (unref(state) === "completed") {
833
- _push(`<section class="space-y-2"${_scopeId}><!--[-->`);
834
- ssrRenderList(unref(areas), (area, index) => {
835
- _push(ssrRenderComponent(_component_UButton, {
836
- key: area.id,
837
- color: "neutral",
838
- variant: unref(selectedAreaId) === area.id ? "soft" : "ghost",
839
- block: "",
840
- ui: {
841
- base: "h-auto justify-start px-3 py-3 text-left",
842
- label: "w-full"
843
- },
844
- onClick: ($event) => selectedAreaId.value = area.id
845
- }, {
846
- default: withCtx((_, _push, _parent, _scopeId) => {
847
- if (_push) {
848
- _push(`<span class="flex w-full items-center gap-3"${_scopeId}><span class="grid size-7 shrink-0 place-items-center text-xs font-semibold" style="${ssrRenderStyle({
849
- backgroundColor: unref(areaPaletteColor)(index).fillHex,
850
- color: unref(areaPaletteColor)(index).accentHex
851
- })}"${_scopeId}>${ssrInterpolate(index + 1)}</span><span class="min-w-0 flex-1"${_scopeId}><span class="block text-sm font-medium text-highlighted"${_scopeId}>${ssrInterpolate(formatDistance(area.distanceMeters))}</span><span class="mt-0.5 block text-xs text-muted"${_scopeId}>${ssrInterpolate(formatArea(area.areaSquareMeters))}</span><span class="mt-0.5 block text-xs text-muted"${_scopeId}>宽 ${ssrInterpolate(formatDimension(area.widthMeters))} · 高 ${ssrInterpolate(formatDimension(area.heightMeters))}</span></span>`);
852
- _push(ssrRenderComponent(_component_UIcon, {
853
- name: "i-lucide-chevron-right",
854
- class: "size-4 shrink-0 text-muted"
855
- }, null, _parent, _scopeId));
856
- _push(`</span>`);
857
- } else return [createVNode("span", { class: "flex w-full items-center gap-3" }, [
858
- createVNode("span", {
859
- class: "grid size-7 shrink-0 place-items-center text-xs font-semibold",
860
- style: {
861
- backgroundColor: unref(areaPaletteColor)(index).fillHex,
862
- color: unref(areaPaletteColor)(index).accentHex
863
- }
864
- }, toDisplayString(index + 1), 5),
865
- createVNode("span", { class: "min-w-0 flex-1" }, [
866
- createVNode("span", { class: "block text-sm font-medium text-highlighted" }, toDisplayString(formatDistance(area.distanceMeters)), 1),
867
- createVNode("span", { class: "mt-0.5 block text-xs text-muted" }, toDisplayString(formatArea(area.areaSquareMeters)), 1),
868
- createVNode("span", { class: "mt-0.5 block text-xs text-muted" }, "宽 " + toDisplayString(formatDimension(area.widthMeters)) + " · 高 " + toDisplayString(formatDimension(area.heightMeters)), 1)
869
- ]),
870
- createVNode(_component_UIcon, {
871
- name: "i-lucide-chevron-right",
872
- class: "size-4 shrink-0 text-muted"
873
- })
874
- ])];
875
- }),
876
- _: 2
877
- }, _parent, _scopeId));
878
- });
879
- _push(`<!--]-->`);
880
- if (unref(areas).length === 0) _push(ssrRenderComponent(_component_UEmpty, {
881
- icon: "i-lucide-map-pin-x",
882
- title: "未找到符合条件的适飞区"
883
- }, null, _parent, _scopeId));
884
- else _push(`<!---->`);
885
- _push(`</section>`);
886
- } else _push(`<!---->`);
887
- _push(`</div>`);
888
- } else return [createVNode("div", { class: "space-y-6 p-5" }, [
889
- createVNode("section", { class: "space-y-3" }, [
890
- createVNode(_component_UTabs, {
891
- "model-value": unref(locationMode),
892
- items: unref(locationModeItems),
893
- content: false,
894
- size: "sm",
895
- class: "w-full",
896
- ui: {
897
- list: "grid grid-cols-3",
898
- trigger: "px-2"
899
- },
900
- "onUpdate:modelValue": selectLocationMode
901
- }, null, 8, ["model-value", "items"]),
902
- createVNode("div", { class: "grid grid-cols-2 gap-3" }, [createVNode(_component_UFormField, {
903
- label: "经度",
904
- error: unref(longitudeError)
905
- }, {
906
- default: withCtx(() => [createVNode(_component_UInput, {
907
- "model-value": unref(longitude),
908
- type: "number",
909
- inputmode: "decimal",
910
- min: "-180",
911
- max: "180",
912
- step: "0.000001",
913
- placeholder: "116.400000",
914
- class: "w-full",
915
- "onUpdate:modelValue": setManualLongitude
916
- }, null, 8, ["model-value"])]),
917
- _: 1
918
- }, 8, ["error"]), createVNode(_component_UFormField, {
919
- label: "纬度",
920
- error: unref(latitudeError)
921
- }, {
922
- default: withCtx(() => [createVNode(_component_UInput, {
923
- "model-value": unref(latitude),
924
- type: "number",
925
- inputmode: "decimal",
926
- min: "-85.05112878",
927
- max: "85.05112878",
928
- step: "0.000001",
929
- placeholder: "39.900000",
930
- class: "w-full",
931
- "onUpdate:modelValue": setManualLatitude
932
- }, null, 8, ["model-value"])]),
933
- _: 1
934
- }, 8, ["error"])]),
935
- unref(locating) ? (openBlock(), createBlock("span", {
936
- key: 0,
937
- class: "sr-only",
938
- role: "status"
939
- }, "正在获取当前位置")) : createCommentVNode("", true)
940
- ]),
941
- createVNode("section", { class: "space-y-3" }, [
942
- createVNode("div", { class: "grid grid-cols-2 gap-3" }, [createVNode(_component_UFormField, { label: "筛选方式" }, {
943
- default: withCtx(() => [createVNode(_component_USelectMenu, {
944
- modelValue: unref(filterMode),
945
- "onUpdate:modelValue": ($event) => isRef(filterMode) ? filterMode.value = $event : null,
946
- items: filterModeItems,
947
- "value-key": "value",
948
- "label-key": "label",
949
- class: "w-full"
950
- }, null, 8, ["modelValue", "onUpdate:modelValue"])]),
951
- _: 1
952
- }), createVNode(_component_UFormField, { label: "结果数量" }, {
953
- default: withCtx(() => [createVNode(_component_USelectMenu, {
954
- modelValue: unref(resultCount),
955
- "onUpdate:modelValue": ($event) => isRef(resultCount) ? resultCount.value = $event : null,
956
- items: unref(resultCountItems),
957
- "value-key": "value",
958
- "label-key": "label",
959
- class: "w-full"
960
- }, null, 8, [
961
- "modelValue",
962
- "onUpdate:modelValue",
963
- "items"
964
- ])]),
965
- _: 1
966
- })]),
967
- unref(filterMode) === "area" ? (openBlock(), createBlock(Fragment, { key: 0 }, [createVNode(_component_UFormField, { label: "最小面积" }, {
968
- default: withCtx(() => [createVNode(_component_USelectMenu, {
969
- modelValue: unref(areaPreset),
970
- "onUpdate:modelValue": ($event) => isRef(areaPreset) ? areaPreset.value = $event : null,
971
- items: areaPresetItems,
972
- "value-key": "value",
973
- "label-key": "label",
974
- class: "w-full"
975
- }, null, 8, ["modelValue", "onUpdate:modelValue"])]),
976
- _: 1
977
- }), unref(areaPreset) === "custom" ? (openBlock(), createBlock(_component_UFormField, {
978
- key: 0,
979
- label: "自定义面积(平方千米)"
980
- }, {
981
- default: withCtx(() => [createVNode(_component_UInput, {
982
- modelValue: unref(customAreaSquareKilometers),
983
- "onUpdate:modelValue": ($event) => isRef(customAreaSquareKilometers) ? customAreaSquareKilometers.value = $event : null,
984
- modelModifiers: { number: true },
985
- type: "number",
986
- min: "1",
987
- step: "0.1",
988
- placeholder: "至少 1",
989
- class: "w-full"
990
- }, null, 8, ["modelValue", "onUpdate:modelValue"])]),
991
- _: 1
992
- })) : createCommentVNode("", true)], 64)) : (openBlock(), createBlock("div", {
993
- key: 1,
994
- class: "grid grid-cols-2 gap-3"
995
- }, [createVNode(_component_UFormField, { label: "最小宽(公里)" }, {
996
- default: withCtx(() => [createVNode(_component_UInput, {
997
- modelValue: unref(customWidthKilometers),
998
- "onUpdate:modelValue": ($event) => isRef(customWidthKilometers) ? customWidthKilometers.value = $event : null,
999
- modelModifiers: { number: true },
1000
- type: "number",
1001
- min: "0.1",
1002
- step: "0.1",
1003
- placeholder: "例如 2",
1004
- class: "w-full"
1005
- }, null, 8, ["modelValue", "onUpdate:modelValue"])]),
1006
- _: 1
1007
- }), createVNode(_component_UFormField, { label: "最小高(公里)" }, {
1008
- default: withCtx(() => [createVNode(_component_UInput, {
1009
- modelValue: unref(customHeightKilometers),
1010
- "onUpdate:modelValue": ($event) => isRef(customHeightKilometers) ? customHeightKilometers.value = $event : null,
1011
- modelModifiers: { number: true },
1012
- type: "number",
1013
- min: "0.1",
1014
- step: "0.1",
1015
- placeholder: "例如 2",
1016
- class: "w-full"
1017
- }, null, 8, ["modelValue", "onUpdate:modelValue"])]),
1018
- _: 1
1019
- })])),
1020
- createVNode(_component_UFormField, {
1021
- label: "区域合并间隙(米)",
1022
- description: "边缘间隔不超过此值的区域合并"
1023
- }, {
1024
- default: withCtx(() => [createVNode(_component_UInput, {
1025
- modelValue: unref(gapMeters),
1026
- "onUpdate:modelValue": ($event) => isRef(gapMeters) ? gapMeters.value = $event : null,
1027
- modelModifiers: { number: true },
1028
- type: "number",
1029
- min: "0",
1030
- step: "1",
1031
- placeholder: "0",
1032
- class: "w-full"
1033
- }, null, 8, ["modelValue", "onUpdate:modelValue"])]),
1034
- _: 1
1035
- })
1036
- ]),
1037
- createVNode(_component_UButton, {
1038
- icon: "i-lucide-search",
1039
- label: "寻找适飞区",
1040
- block: "",
1041
- loading: unref(running),
1042
- disabled: !unref(location) || !unref(criteriaValid) || !unref(gapValid) || unref(running),
1043
- onClick: search
1044
- }, null, 8, ["loading", "disabled"]),
1045
- unref(running) ? (openBlock(), createBlock("section", {
1046
- key: 0,
1047
- class: "space-y-2"
1048
- }, [createVNode(_component_UProgress, {
1049
- "model-value": unref(progress),
1050
- max: 100,
1051
- size: "sm"
1052
- }, null, 8, ["model-value"]), createVNode("div", { class: "flex items-center justify-between text-xs text-muted" }, [createVNode("span", null, toDisplayString(unref(processedTiles)) + " / " + toDisplayString(unref(totalTiles)) + " 瓦片", 1), createVNode("span", null, "已发现 " + toDisplayString(unref(foundAreas)) + " 个", 1)])])) : unref(state) === "error" ? (openBlock(), createBlock(_component_UAlert, {
1053
- key: 1,
1054
- color: "error",
1055
- icon: "i-lucide-circle-x",
1056
- title: "分析失败",
1057
- description: unref(error) || void 0
1058
- }, null, 8, ["description"])) : unref(state) === "completed" && unref(truncated) ? (openBlock(), createBlock(_component_UAlert, {
1059
- key: 2,
1060
- color: "warning",
1061
- icon: "i-lucide-triangle-alert",
1062
- title: "结果可能不完整",
1063
- description: "已达到本次分析的瓦片上限。"
1064
- })) : createCommentVNode("", true),
1065
- unref(state) === "completed" ? (openBlock(), createBlock("section", {
1066
- key: 3,
1067
- class: "space-y-2"
1068
- }, [(openBlock(true), createBlock(Fragment, null, renderList(unref(areas), (area, index) => {
1069
- return openBlock(), createBlock(_component_UButton, {
1070
- key: area.id,
1071
- color: "neutral",
1072
- variant: unref(selectedAreaId) === area.id ? "soft" : "ghost",
1073
- block: "",
1074
- ui: {
1075
- base: "h-auto justify-start px-3 py-3 text-left",
1076
- label: "w-full"
1077
- },
1078
- onClick: ($event) => selectedAreaId.value = area.id
1079
- }, {
1080
- default: withCtx(() => [createVNode("span", { class: "flex w-full items-center gap-3" }, [
1081
- createVNode("span", {
1082
- class: "grid size-7 shrink-0 place-items-center text-xs font-semibold",
1083
- style: {
1084
- backgroundColor: unref(areaPaletteColor)(index).fillHex,
1085
- color: unref(areaPaletteColor)(index).accentHex
1086
- }
1087
- }, toDisplayString(index + 1), 5),
1088
- createVNode("span", { class: "min-w-0 flex-1" }, [
1089
- createVNode("span", { class: "block text-sm font-medium text-highlighted" }, toDisplayString(formatDistance(area.distanceMeters)), 1),
1090
- createVNode("span", { class: "mt-0.5 block text-xs text-muted" }, toDisplayString(formatArea(area.areaSquareMeters)), 1),
1091
- createVNode("span", { class: "mt-0.5 block text-xs text-muted" }, "宽 " + toDisplayString(formatDimension(area.widthMeters)) + " · 高 " + toDisplayString(formatDimension(area.heightMeters)), 1)
1092
- ]),
1093
- createVNode(_component_UIcon, {
1094
- name: "i-lucide-chevron-right",
1095
- class: "size-4 shrink-0 text-muted"
1096
- })
1097
- ])]),
1098
- _: 2
1099
- }, 1032, ["variant", "onClick"]);
1100
- }), 128)), unref(areas).length === 0 ? (openBlock(), createBlock(_component_UEmpty, {
1101
- key: 0,
1102
- icon: "i-lucide-map-pin-x",
1103
- title: "未找到符合条件的适飞区"
1104
- })) : createCommentVNode("", true)])) : createCommentVNode("", true)
1105
- ])];
1106
- }),
1107
- _: 1
1108
- }, _parent, _scopeId));
1109
- _push(`</aside></div>`);
1110
- } else _push(`<!---->`);
1111
- } else return [!unref(workspace).ready.value ? (openBlock(), createBlock("div", {
1112
- key: 0,
1113
- class: "grid min-h-[32rem] flex-1 place-items-center"
1114
- }, [createVNode("div", { class: "flex flex-col items-center gap-3 text-sm text-muted" }, [createVNode(_component_UIcon, {
1115
- name: "i-lucide-loader-circle",
1116
- class: "size-5 animate-spin text-primary"
1117
- }), createVNode("span", null, "加载地图文件")])])) : unref(stage) === "select" ? (openBlock(), createBlock("div", {
1118
- key: 1,
1119
- class: "grid min-h-[32rem] flex-1 place-items-center overflow-y-auto p-6"
1120
- }, [createVNode("div", { class: "w-full max-w-2xl space-y-4" }, [
1121
- createVNode(_component_FileDropZone, {
1122
- accept: ".uomtiles,.mbtiles,.pmtiles",
1123
- title: "选择地图文件",
1124
- "file-name": unref(selectedSourceLabel),
1125
- onSelect: selectLocalFile
1126
- }, null, 8, ["file-name"]),
1127
- createVNode(_component_CompletedTaskSelect, {
1128
- modelValue: unref(filename),
1129
- "onUpdate:modelValue": ($event) => isRef(filename) ? filename.value = $event : null,
1130
- class: "w-full"
1131
- }, null, 8, ["modelValue", "onUpdate:modelValue"]),
1132
- createVNode("div", { class: "flex justify-end" }, [createVNode(_component_UButton, {
1133
- icon: "i-lucide-map",
1134
- label: "打开地图",
1135
- size: "lg",
1136
- disabled: !unref(selectedSource),
1137
- onClick: openMap
1138
- }, null, 8, ["disabled"])])
1139
- ])])) : unref(selectedSource) ? (openBlock(), createBlock("div", {
1140
- key: 2,
1141
- class: "grid min-h-0 flex-1 xl:grid-cols-[minmax(0,1fr)_24rem]"
1142
- }, [createVNode("div", { class: "relative min-h-[520px] border-r border-default" }, [(openBlock(), createBlock(_component_OnlineMap, {
1143
- ref_key: "map",
1144
- ref: map,
1145
- key: unref(selectedFile)?.filename || unref(localFile)?.id,
1146
- "tile-url": unref(sourceTileUrl),
1147
- "local-sources": unref(localFile) ? [{
1148
- id: unref(localFile).id,
1149
- file: unref(localFile).file
1150
- }] : [],
1151
- "base-map": unref(baseLayer),
1152
- "overlay-layers": unref(overlayLayers),
1153
- "min-zoom": unref(sourceMinZoom),
1154
- "max-zoom": unref(sourceMaxZoom),
1155
- "map-min-zoom": 3,
1156
- "map-max-zoom": 24,
1157
- "initial-zoom": 9,
1158
- center: unref(location) || [116.4, 39.9],
1159
- location: unref(location),
1160
- areas: unref(areas),
1161
- "selected-area-id": unref(selectedAreaId),
1162
- "enable-location-picking": unref(locationMode) === "map",
1163
- "enable-area-analysis": "",
1164
- "raster-resampling": "nearest",
1165
- onLocationActivate: activateGeolocation,
1166
- onLocationChange: setLocation,
1167
- onLocationLoading: setLocationLoading,
1168
- onLocationError: showLocationError
1169
- }, null, 8, [
1170
- "tile-url",
1171
- "local-sources",
1172
- "base-map",
1173
- "overlay-layers",
1174
- "min-zoom",
1175
- "max-zoom",
1176
- "center",
1177
- "location",
1178
- "areas",
1179
- "selected-area-id",
1180
- "enable-location-picking"
1181
- ]))]), createVNode("aside", { class: "flex min-h-0 flex-col overflow-hidden bg-default" }, [createVNode("div", { class: "border-b border-default p-4" }, [createVNode(_component_USelectMenu, {
1182
- modelValue: unref(feature),
1183
- "onUpdate:modelValue": ($event) => isRef(feature) ? feature.value = $event : null,
1184
- items: featureItems,
1185
- "value-key": "value",
1186
- "label-key": "label",
1187
- class: "w-full"
1188
- }, null, 8, ["modelValue", "onUpdate:modelValue"])]), createVNode(_component_UScrollArea, { class: "min-h-0 flex-1" }, {
1189
- default: withCtx(() => [createVNode("div", { class: "space-y-6 p-5" }, [
1190
- createVNode("section", { class: "space-y-3" }, [
1191
- createVNode(_component_UTabs, {
1192
- "model-value": unref(locationMode),
1193
- items: unref(locationModeItems),
1194
- content: false,
1195
- size: "sm",
1196
- class: "w-full",
1197
- ui: {
1198
- list: "grid grid-cols-3",
1199
- trigger: "px-2"
1200
- },
1201
- "onUpdate:modelValue": selectLocationMode
1202
- }, null, 8, ["model-value", "items"]),
1203
- createVNode("div", { class: "grid grid-cols-2 gap-3" }, [createVNode(_component_UFormField, {
1204
- label: "经度",
1205
- error: unref(longitudeError)
1206
- }, {
1207
- default: withCtx(() => [createVNode(_component_UInput, {
1208
- "model-value": unref(longitude),
1209
- type: "number",
1210
- inputmode: "decimal",
1211
- min: "-180",
1212
- max: "180",
1213
- step: "0.000001",
1214
- placeholder: "116.400000",
1215
- class: "w-full",
1216
- "onUpdate:modelValue": setManualLongitude
1217
- }, null, 8, ["model-value"])]),
1218
- _: 1
1219
- }, 8, ["error"]), createVNode(_component_UFormField, {
1220
- label: "纬度",
1221
- error: unref(latitudeError)
1222
- }, {
1223
- default: withCtx(() => [createVNode(_component_UInput, {
1224
- "model-value": unref(latitude),
1225
- type: "number",
1226
- inputmode: "decimal",
1227
- min: "-85.05112878",
1228
- max: "85.05112878",
1229
- step: "0.000001",
1230
- placeholder: "39.900000",
1231
- class: "w-full",
1232
- "onUpdate:modelValue": setManualLatitude
1233
- }, null, 8, ["model-value"])]),
1234
- _: 1
1235
- }, 8, ["error"])]),
1236
- unref(locating) ? (openBlock(), createBlock("span", {
1237
- key: 0,
1238
- class: "sr-only",
1239
- role: "status"
1240
- }, "正在获取当前位置")) : createCommentVNode("", true)
1241
- ]),
1242
- createVNode("section", { class: "space-y-3" }, [
1243
- createVNode("div", { class: "grid grid-cols-2 gap-3" }, [createVNode(_component_UFormField, { label: "筛选方式" }, {
1244
- default: withCtx(() => [createVNode(_component_USelectMenu, {
1245
- modelValue: unref(filterMode),
1246
- "onUpdate:modelValue": ($event) => isRef(filterMode) ? filterMode.value = $event : null,
1247
- items: filterModeItems,
1248
- "value-key": "value",
1249
- "label-key": "label",
1250
- class: "w-full"
1251
- }, null, 8, ["modelValue", "onUpdate:modelValue"])]),
1252
- _: 1
1253
- }), createVNode(_component_UFormField, { label: "结果数量" }, {
1254
- default: withCtx(() => [createVNode(_component_USelectMenu, {
1255
- modelValue: unref(resultCount),
1256
- "onUpdate:modelValue": ($event) => isRef(resultCount) ? resultCount.value = $event : null,
1257
- items: unref(resultCountItems),
1258
- "value-key": "value",
1259
- "label-key": "label",
1260
- class: "w-full"
1261
- }, null, 8, [
1262
- "modelValue",
1263
- "onUpdate:modelValue",
1264
- "items"
1265
- ])]),
1266
- _: 1
1267
- })]),
1268
- unref(filterMode) === "area" ? (openBlock(), createBlock(Fragment, { key: 0 }, [createVNode(_component_UFormField, { label: "最小面积" }, {
1269
- default: withCtx(() => [createVNode(_component_USelectMenu, {
1270
- modelValue: unref(areaPreset),
1271
- "onUpdate:modelValue": ($event) => isRef(areaPreset) ? areaPreset.value = $event : null,
1272
- items: areaPresetItems,
1273
- "value-key": "value",
1274
- "label-key": "label",
1275
- class: "w-full"
1276
- }, null, 8, ["modelValue", "onUpdate:modelValue"])]),
1277
- _: 1
1278
- }), unref(areaPreset) === "custom" ? (openBlock(), createBlock(_component_UFormField, {
1279
- key: 0,
1280
- label: "自定义面积(平方千米)"
1281
- }, {
1282
- default: withCtx(() => [createVNode(_component_UInput, {
1283
- modelValue: unref(customAreaSquareKilometers),
1284
- "onUpdate:modelValue": ($event) => isRef(customAreaSquareKilometers) ? customAreaSquareKilometers.value = $event : null,
1285
- modelModifiers: { number: true },
1286
- type: "number",
1287
- min: "1",
1288
- step: "0.1",
1289
- placeholder: "至少 1",
1290
- class: "w-full"
1291
- }, null, 8, ["modelValue", "onUpdate:modelValue"])]),
1292
- _: 1
1293
- })) : createCommentVNode("", true)], 64)) : (openBlock(), createBlock("div", {
1294
- key: 1,
1295
- class: "grid grid-cols-2 gap-3"
1296
- }, [createVNode(_component_UFormField, { label: "最小宽(公里)" }, {
1297
- default: withCtx(() => [createVNode(_component_UInput, {
1298
- modelValue: unref(customWidthKilometers),
1299
- "onUpdate:modelValue": ($event) => isRef(customWidthKilometers) ? customWidthKilometers.value = $event : null,
1300
- modelModifiers: { number: true },
1301
- type: "number",
1302
- min: "0.1",
1303
- step: "0.1",
1304
- placeholder: "例如 2",
1305
- class: "w-full"
1306
- }, null, 8, ["modelValue", "onUpdate:modelValue"])]),
1307
- _: 1
1308
- }), createVNode(_component_UFormField, { label: "最小高(公里)" }, {
1309
- default: withCtx(() => [createVNode(_component_UInput, {
1310
- modelValue: unref(customHeightKilometers),
1311
- "onUpdate:modelValue": ($event) => isRef(customHeightKilometers) ? customHeightKilometers.value = $event : null,
1312
- modelModifiers: { number: true },
1313
- type: "number",
1314
- min: "0.1",
1315
- step: "0.1",
1316
- placeholder: "例如 2",
1317
- class: "w-full"
1318
- }, null, 8, ["modelValue", "onUpdate:modelValue"])]),
1319
- _: 1
1320
- })])),
1321
- createVNode(_component_UFormField, {
1322
- label: "区域合并间隙(米)",
1323
- description: "边缘间隔不超过此值的区域合并"
1324
- }, {
1325
- default: withCtx(() => [createVNode(_component_UInput, {
1326
- modelValue: unref(gapMeters),
1327
- "onUpdate:modelValue": ($event) => isRef(gapMeters) ? gapMeters.value = $event : null,
1328
- modelModifiers: { number: true },
1329
- type: "number",
1330
- min: "0",
1331
- step: "1",
1332
- placeholder: "0",
1333
- class: "w-full"
1334
- }, null, 8, ["modelValue", "onUpdate:modelValue"])]),
1335
- _: 1
1336
- })
1337
- ]),
1338
- createVNode(_component_UButton, {
1339
- icon: "i-lucide-search",
1340
- label: "寻找适飞区",
1341
- block: "",
1342
- loading: unref(running),
1343
- disabled: !unref(location) || !unref(criteriaValid) || !unref(gapValid) || unref(running),
1344
- onClick: search
1345
- }, null, 8, ["loading", "disabled"]),
1346
- unref(running) ? (openBlock(), createBlock("section", {
1347
- key: 0,
1348
- class: "space-y-2"
1349
- }, [createVNode(_component_UProgress, {
1350
- "model-value": unref(progress),
1351
- max: 100,
1352
- size: "sm"
1353
- }, null, 8, ["model-value"]), createVNode("div", { class: "flex items-center justify-between text-xs text-muted" }, [createVNode("span", null, toDisplayString(unref(processedTiles)) + " / " + toDisplayString(unref(totalTiles)) + " 瓦片", 1), createVNode("span", null, "已发现 " + toDisplayString(unref(foundAreas)) + " 个", 1)])])) : unref(state) === "error" ? (openBlock(), createBlock(_component_UAlert, {
1354
- key: 1,
1355
- color: "error",
1356
- icon: "i-lucide-circle-x",
1357
- title: "分析失败",
1358
- description: unref(error) || void 0
1359
- }, null, 8, ["description"])) : unref(state) === "completed" && unref(truncated) ? (openBlock(), createBlock(_component_UAlert, {
1360
- key: 2,
1361
- color: "warning",
1362
- icon: "i-lucide-triangle-alert",
1363
- title: "结果可能不完整",
1364
- description: "已达到本次分析的瓦片上限。"
1365
- })) : createCommentVNode("", true),
1366
- unref(state) === "completed" ? (openBlock(), createBlock("section", {
1367
- key: 3,
1368
- class: "space-y-2"
1369
- }, [(openBlock(true), createBlock(Fragment, null, renderList(unref(areas), (area, index) => {
1370
- return openBlock(), createBlock(_component_UButton, {
1371
- key: area.id,
1372
- color: "neutral",
1373
- variant: unref(selectedAreaId) === area.id ? "soft" : "ghost",
1374
- block: "",
1375
- ui: {
1376
- base: "h-auto justify-start px-3 py-3 text-left",
1377
- label: "w-full"
1378
- },
1379
- onClick: ($event) => selectedAreaId.value = area.id
1380
- }, {
1381
- default: withCtx(() => [createVNode("span", { class: "flex w-full items-center gap-3" }, [
1382
- createVNode("span", {
1383
- class: "grid size-7 shrink-0 place-items-center text-xs font-semibold",
1384
- style: {
1385
- backgroundColor: unref(areaPaletteColor)(index).fillHex,
1386
- color: unref(areaPaletteColor)(index).accentHex
1387
- }
1388
- }, toDisplayString(index + 1), 5),
1389
- createVNode("span", { class: "min-w-0 flex-1" }, [
1390
- createVNode("span", { class: "block text-sm font-medium text-highlighted" }, toDisplayString(formatDistance(area.distanceMeters)), 1),
1391
- createVNode("span", { class: "mt-0.5 block text-xs text-muted" }, toDisplayString(formatArea(area.areaSquareMeters)), 1),
1392
- createVNode("span", { class: "mt-0.5 block text-xs text-muted" }, "宽 " + toDisplayString(formatDimension(area.widthMeters)) + " · 高 " + toDisplayString(formatDimension(area.heightMeters)), 1)
1393
- ]),
1394
- createVNode(_component_UIcon, {
1395
- name: "i-lucide-chevron-right",
1396
- class: "size-4 shrink-0 text-muted"
1397
- })
1398
- ])]),
1399
- _: 2
1400
- }, 1032, ["variant", "onClick"]);
1401
- }), 128)), unref(areas).length === 0 ? (openBlock(), createBlock(_component_UEmpty, {
1402
- key: 0,
1403
- icon: "i-lucide-map-pin-x",
1404
- title: "未找到符合条件的适飞区"
1405
- })) : createCommentVNode("", true)])) : createCommentVNode("", true)
1406
- ])]),
1407
- _: 1
1408
- })])])) : createCommentVNode("", true)];
1409
- }),
1410
- _: 1
1411
- }, _parent));
1412
- };
1413
- }
1414
- });
1415
- //#endregion
1416
- //#region app/pages/advanced.vue
1417
- var _sfc_setup = advanced_vue_vue_type_script_setup_true_lang_default.setup;
1418
- advanced_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
1419
- const ssrContext = useSSRContext();
1420
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/advanced.vue");
1421
- return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
1422
- };
1423
- var advanced_default = advanced_vue_vue_type_script_setup_true_lang_default;
1424
-
1425
- export { advanced_default as default };
1426
- //# sourceMappingURL=advanced-DaSpS8Px.mjs.map