@nasa-terra/components 0.0.195 → 0.0.196

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 (1250) hide show
  1. package/cdn/chunks/chunk.223EDARB.js +134 -0
  2. package/cdn/chunks/chunk.25O3XREN.js +19 -0
  3. package/cdn/chunks/chunk.2DPNENYJ.js +99 -0
  4. package/cdn/chunks/chunk.2GYY4GR6.js +33 -0
  5. package/cdn/chunks/chunk.2HTJLWCA.js +132 -0
  6. package/cdn/chunks/chunk.2JNRHC3A.js +35 -0
  7. package/cdn/chunks/chunk.2KI6CF74.js +33 -0
  8. package/cdn/chunks/chunk.2KWUH2W7.js +19 -0
  9. package/cdn/chunks/chunk.2NPU54GH.js +104 -0
  10. package/cdn/chunks/chunk.2VFMFDPH.js +19 -0
  11. package/cdn/chunks/chunk.3HKMVR63.js +294 -0
  12. package/cdn/chunks/chunk.3HLATLA7.js +29 -0
  13. package/cdn/chunks/chunk.3Y7HZ5CS.js +110 -0
  14. package/cdn/chunks/chunk.3Z6GYR5S.js +19 -0
  15. package/cdn/chunks/chunk.4CDYFGR6.js +19 -0
  16. package/cdn/chunks/chunk.4KKFALGO.js +19 -0
  17. package/cdn/chunks/chunk.4WWKHCH6.js +19 -0
  18. package/cdn/chunks/chunk.4ZCRIDRU.js +2546 -0
  19. package/cdn/chunks/chunk.5BNMI7XH.js +32 -0
  20. package/cdn/chunks/chunk.5DSPYBJC.js +19 -0
  21. package/cdn/chunks/chunk.5F2EIVTA.js +78 -0
  22. package/cdn/chunks/chunk.5GVJZBQ5.js +49 -0
  23. package/cdn/chunks/chunk.5HYH6WAL.js +276 -0
  24. package/cdn/chunks/chunk.5N6JJ3RU.js +19 -0
  25. package/cdn/chunks/chunk.5YAN7WHN.js +394 -0
  26. package/cdn/chunks/chunk.64ERL7PM.js +47 -0
  27. package/cdn/chunks/chunk.6CYW3DVI.js +32 -0
  28. package/cdn/chunks/chunk.6F6HMPVP.js +19 -0
  29. package/cdn/chunks/chunk.6KAFOY3C.js +29 -0
  30. package/cdn/chunks/chunk.6KPB7NHN.js +19 -0
  31. package/cdn/chunks/chunk.6MVPEFC4.js +478 -0
  32. package/cdn/chunks/chunk.6QIUOOEG.js +543 -0
  33. package/cdn/chunks/chunk.6UPMQVDK.js +19 -0
  34. package/cdn/chunks/chunk.6VRUB6W7.js +616 -0
  35. package/cdn/chunks/chunk.6VUE2D7T.js +19 -0
  36. package/cdn/chunks/chunk.6WK3NVY3.js +29 -0
  37. package/cdn/chunks/chunk.6ZXZCMKS.js +71 -0
  38. package/cdn/chunks/chunk.74Q7XT7X.js +32 -0
  39. package/cdn/chunks/chunk.7B6KYRTT.js +29 -0
  40. package/cdn/chunks/chunk.7C3H4G36.js +19 -0
  41. package/cdn/chunks/chunk.7MCVHI6L.js +29 -0
  42. package/cdn/chunks/chunk.7MDERBD3.js +599 -0
  43. package/cdn/chunks/chunk.7R2ZKXM2.js +19 -0
  44. package/cdn/chunks/chunk.7XEEXHWF.js +19 -0
  45. package/cdn/chunks/chunk.7ZTFRCHB.js +19 -0
  46. package/cdn/chunks/chunk.ABRGXCEN.js +60 -0
  47. package/cdn/chunks/chunk.AGBOVRJC.js +36 -0
  48. package/cdn/chunks/chunk.AHX4FQI7.js +51 -0
  49. package/cdn/chunks/chunk.AOJ2AC24.js +19 -0
  50. package/cdn/chunks/chunk.ARH3LN7Z.js +19 -0
  51. package/cdn/chunks/chunk.AS2RGZW2.js +19 -0
  52. package/cdn/chunks/chunk.ASJLND3B.js +77 -0
  53. package/cdn/chunks/chunk.ASLOJ563.js +19 -0
  54. package/cdn/chunks/chunk.AW7726VE.js +19 -0
  55. package/cdn/chunks/chunk.AXX4XCQ2.js +29 -0
  56. package/cdn/chunks/chunk.B6ARQJBU.js +33 -0
  57. package/cdn/chunks/chunk.BIRJB2SB.js +36 -0
  58. package/cdn/chunks/chunk.BMGFP2Y4.js +188 -0
  59. package/cdn/chunks/chunk.BOCRVIHV.js +19 -0
  60. package/cdn/chunks/chunk.CROGJ6YF.js +128 -0
  61. package/cdn/chunks/chunk.CXOLXKBX.js +29 -0
  62. package/cdn/chunks/chunk.DE5EDXGR.js +19 -0
  63. package/cdn/chunks/chunk.DGCCS5NV.js +29 -0
  64. package/cdn/chunks/chunk.DGU4EZ5H.js +32 -0
  65. package/cdn/chunks/chunk.DH3ROOX5.js +29 -0
  66. package/cdn/chunks/chunk.DKFBZJ7T.js +19 -0
  67. package/cdn/chunks/chunk.DMB4DTOV.js +19 -0
  68. package/cdn/chunks/chunk.DPD2TPND.js +538 -0
  69. package/cdn/chunks/chunk.DRLCDBQF.js +259 -0
  70. package/cdn/chunks/chunk.DULNNAOG.js +35 -0
  71. package/cdn/chunks/chunk.DUXUMWGP.js +19 -0
  72. package/cdn/chunks/chunk.DWP2TIJE.js +32 -0
  73. package/cdn/chunks/chunk.EB4FJWH3.js +19 -0
  74. package/cdn/chunks/chunk.EGUXUVI3.js +19 -0
  75. package/cdn/chunks/chunk.EIVT35HM.js +32 -0
  76. package/cdn/chunks/chunk.EKIJXFJ4.js +29 -0
  77. package/cdn/chunks/chunk.EUCXJQ2V.js +32 -0
  78. package/cdn/chunks/chunk.EXTVYHK2.js +19 -0
  79. package/cdn/chunks/chunk.F4ANQ2U2.js +32 -0
  80. package/cdn/chunks/chunk.F4JVTLW4.js +195 -0
  81. package/cdn/chunks/chunk.F7QE3QNK.js +93 -0
  82. package/cdn/chunks/chunk.FC5HZMTP.js +266 -0
  83. package/cdn/chunks/chunk.FEEGZU35.js +524 -0
  84. package/cdn/chunks/chunk.FF2OIAEN.js +310 -0
  85. package/cdn/chunks/chunk.FIMLIKVL.js +162 -0
  86. package/cdn/chunks/chunk.FPJDNEJF.js +29 -0
  87. package/cdn/chunks/chunk.FXCUJGV2.js +29 -0
  88. package/cdn/chunks/chunk.FZKHX2BX.js +29 -0
  89. package/cdn/chunks/chunk.G4A6GOQV.js +19 -0
  90. package/cdn/chunks/chunk.GADUSTPP.js +155 -0
  91. package/cdn/chunks/chunk.GEMVKQZO.js +93 -0
  92. package/cdn/chunks/chunk.GUUYUPBB.js +19 -0
  93. package/cdn/chunks/chunk.GXEVGIXQ.js +29 -0
  94. package/cdn/chunks/chunk.GZPSCFMB.js +1197 -0
  95. package/cdn/chunks/chunk.H4W5IGKH.js +19 -0
  96. package/cdn/chunks/chunk.HOSIEWYV.js +29 -0
  97. package/cdn/chunks/chunk.HWMLQJYX.js +631 -0
  98. package/cdn/chunks/chunk.HYXZ5ILK.js +32 -0
  99. package/cdn/chunks/chunk.I24WKYVZ.js +34 -0
  100. package/cdn/chunks/chunk.ICVWP75G.js +537 -0
  101. package/cdn/chunks/chunk.IDADMVBU.js +29 -0
  102. package/cdn/chunks/chunk.IDU4K4RD.js +30 -0
  103. package/cdn/chunks/chunk.IIAGITPT.js +19 -0
  104. package/cdn/chunks/chunk.IPPMEGY2.js +19 -0
  105. package/cdn/chunks/chunk.IQIMCVU7.js +68 -0
  106. package/cdn/chunks/chunk.IXCD3QGP.js +99 -0
  107. package/cdn/chunks/chunk.J6XECETX.js +35 -0
  108. package/cdn/chunks/chunk.JB45ZCDW.js +231 -0
  109. package/cdn/chunks/chunk.JGHXTUNF.js +19 -0
  110. package/cdn/chunks/chunk.JV2GC3T5.js +138 -0
  111. package/cdn/chunks/chunk.JXHAS6HV.js +19 -0
  112. package/cdn/chunks/chunk.JZUEBE7M.js +19 -0
  113. package/cdn/chunks/chunk.KFTTP7DC.js +19 -0
  114. package/cdn/chunks/chunk.KHLJJM22.js +29 -0
  115. package/cdn/chunks/chunk.KMZJHYRE.js +36 -0
  116. package/cdn/chunks/chunk.KPDHQMPF.js +29 -0
  117. package/cdn/chunks/chunk.KS3MQA2C.js +594 -0
  118. package/cdn/chunks/chunk.KSWWI5VZ.js +19 -0
  119. package/cdn/chunks/chunk.KZILCY6N.js +925 -0
  120. package/cdn/chunks/chunk.L3EVX7RO.js +29 -0
  121. package/cdn/chunks/chunk.L77N7C7E.js +171 -0
  122. package/cdn/chunks/chunk.LFAEVBSC.js +19 -0
  123. package/cdn/chunks/chunk.LRZIT4M2.js +157 -0
  124. package/cdn/chunks/chunk.LVD2WBFD.js +359 -0
  125. package/cdn/chunks/chunk.LXCD4PDL.js +19 -0
  126. package/cdn/chunks/chunk.LXTKVZKB.js +29 -0
  127. package/cdn/chunks/chunk.LYP4X5NY.js +610 -0
  128. package/cdn/chunks/chunk.LZ2JHNZM.js +19 -0
  129. package/cdn/chunks/chunk.LZAQ7AZC.js +33 -0
  130. package/cdn/chunks/chunk.MAHUWVEN.js +279 -0
  131. package/cdn/chunks/chunk.MHQULBHM.js +19 -0
  132. package/cdn/chunks/chunk.MQJHEK6X.js +83 -0
  133. package/cdn/chunks/chunk.MWICJN52.js +29 -0
  134. package/cdn/chunks/chunk.N3EDMFCL.js +41 -0
  135. package/cdn/chunks/chunk.N3HQJOF6.js +158 -0
  136. package/cdn/chunks/chunk.N7E3WYV3.js +29 -0
  137. package/cdn/chunks/chunk.NDEFHLCO.js +29 -0
  138. package/cdn/chunks/chunk.NE62XVK4.js +19 -0
  139. package/cdn/chunks/chunk.NG4N3UAH.js +36 -0
  140. package/cdn/chunks/chunk.NGS4A7JM.js +960 -0
  141. package/cdn/chunks/chunk.NJE442CT.js +19 -0
  142. package/cdn/chunks/chunk.NPREEPWC.js +230 -0
  143. package/cdn/chunks/chunk.NQLIIDC4.js +81 -0
  144. package/cdn/chunks/chunk.NW5KR3BI.js +113 -0
  145. package/cdn/chunks/chunk.NZL2QNZ6.js +86 -0
  146. package/cdn/chunks/chunk.O4VPVUIR.js +37 -0
  147. package/cdn/chunks/chunk.OCHZCPAF.js +19 -0
  148. package/cdn/chunks/chunk.OE4X2DUR.js +33 -0
  149. package/cdn/chunks/chunk.OG3ZGAQR.js +34 -0
  150. package/cdn/chunks/chunk.OIAMUTMD.js +32 -0
  151. package/cdn/chunks/chunk.OJDFU2BK.js +110 -0
  152. package/cdn/chunks/chunk.OKJMVYPX.js +293 -0
  153. package/cdn/chunks/chunk.OUXUPQW2.js +443 -0
  154. package/cdn/chunks/chunk.P2AJAN5S.js +92 -0
  155. package/cdn/chunks/chunk.P3H54IUM.js +19 -0
  156. package/cdn/chunks/chunk.P4KNKLET.js +29 -0
  157. package/cdn/chunks/chunk.P4UOOAOO.js +29 -0
  158. package/cdn/chunks/chunk.P6BVJMPD.js +74 -0
  159. package/cdn/chunks/chunk.PILEAAKP.js +657 -0
  160. package/cdn/chunks/chunk.PXCYU7DP.js +29 -0
  161. package/cdn/chunks/chunk.Q3NT4OCU.js +1975 -0
  162. package/cdn/chunks/chunk.Q7R6R2JL.js +36 -0
  163. package/cdn/chunks/chunk.QDVKYJQA.js +190 -0
  164. package/cdn/chunks/chunk.QKYVS4ZS.js +19 -0
  165. package/cdn/chunks/chunk.QRVS5OF4.js +277 -0
  166. package/cdn/chunks/chunk.QXGBFVFC.js +32 -0
  167. package/cdn/chunks/chunk.R2WVN4CT.js +19 -0
  168. package/cdn/chunks/chunk.R6ZJ67LD.js +224 -0
  169. package/cdn/chunks/chunk.RA6IZAL7.js +2706 -0
  170. package/cdn/chunks/chunk.RHO6EQQS.js +151 -0
  171. package/cdn/chunks/chunk.RIH5UEUF.js +19 -0
  172. package/cdn/chunks/chunk.RKDJYJC4.js +29 -0
  173. package/cdn/chunks/chunk.RKS4PEGG.js +330 -0
  174. package/cdn/chunks/chunk.S7PDZNJ7.js +672 -0
  175. package/cdn/chunks/chunk.SUSB52TX.js +19 -0
  176. package/cdn/chunks/chunk.SX2WURED.js +82 -0
  177. package/cdn/chunks/chunk.SXXQDUB5.js +37 -0
  178. package/cdn/chunks/chunk.TDOKIMRX.js +19 -0
  179. package/cdn/chunks/chunk.TEL7I3MM.js +19 -0
  180. package/cdn/chunks/chunk.TGCJALXA.js +19 -0
  181. package/cdn/chunks/chunk.TKZUE7RW.js +32 -0
  182. package/cdn/chunks/chunk.TQPNIRQL.js +19 -0
  183. package/cdn/chunks/chunk.TUBNAZEK.js +136 -0
  184. package/cdn/chunks/chunk.U627BQFV.js +29 -0
  185. package/cdn/chunks/chunk.UABDU5XG.js +19 -0
  186. package/cdn/chunks/chunk.UI7TI45E.js +29 -0
  187. package/cdn/chunks/chunk.UOW5AIJG.js +19 -0
  188. package/cdn/chunks/chunk.V3UOAIMS.js +19 -0
  189. package/cdn/chunks/chunk.V5LE6YA2.js +32 -0
  190. package/cdn/chunks/chunk.V7MCUO4M.js +278 -0
  191. package/cdn/chunks/chunk.VCUBDTR7.js +357 -0
  192. package/cdn/chunks/chunk.VJXD7HM2.js +19 -0
  193. package/cdn/chunks/chunk.VPKL6BIU.js +19 -0
  194. package/cdn/chunks/chunk.VPUYAIN6.js +35 -0
  195. package/cdn/chunks/chunk.W2V6ZRAA.js +39 -0
  196. package/cdn/chunks/chunk.WG76UWFU.js +1264 -0
  197. package/cdn/chunks/chunk.WKT7OUHC.js +298 -0
  198. package/cdn/chunks/chunk.WO2H5L4D.js +234 -0
  199. package/cdn/chunks/chunk.WV72PRCO.js +29 -0
  200. package/cdn/chunks/chunk.X4LABLGQ.js +32 -0
  201. package/cdn/chunks/chunk.XETYAXDA.js +377 -0
  202. package/cdn/chunks/chunk.XVSRVHXJ.js +56075 -0
  203. package/cdn/chunks/chunk.YMF7GUWM.js +62 -0
  204. package/cdn/chunks/chunk.YOQXMBC5.js +904 -0
  205. package/cdn/chunks/chunk.YPLGXRLO.js +35 -0
  206. package/cdn/chunks/chunk.YTG75S7J.js +123 -0
  207. package/cdn/chunks/chunk.YUTTJWVE.js +60 -0
  208. package/cdn/chunks/chunk.YXWKE6RL.js +19 -0
  209. package/cdn/chunks/chunk.ZL6ICU4C.js +19 -0
  210. package/cdn/components/accordion/accordion.component.js +7 -7
  211. package/cdn/components/accordion/accordion.js +8 -8
  212. package/cdn/components/alert/alert.component.js +3 -3
  213. package/cdn/components/alert/alert.js +4 -4
  214. package/cdn/components/avatar/avatar.component.js +9 -9
  215. package/cdn/components/avatar/avatar.js +10 -10
  216. package/cdn/components/badge/badge.component.js +2 -2
  217. package/cdn/components/badge/badge.js +3 -3
  218. package/cdn/components/banner/banner.component.js +3 -3
  219. package/cdn/components/banner/banner.js +4 -4
  220. package/cdn/components/breadcrumb/breadcrumb.component.js +2 -2
  221. package/cdn/components/breadcrumb/breadcrumb.js +3 -3
  222. package/cdn/components/breadcrumbs/breadcrumbs.component.js +2 -2
  223. package/cdn/components/breadcrumbs/breadcrumbs.js +3 -3
  224. package/cdn/components/browse-variables/browse-variables.component.js +21 -21
  225. package/cdn/components/browse-variables/browse-variables.js +22 -22
  226. package/cdn/components/button/button.component.js +10 -10
  227. package/cdn/components/button/button.js +11 -11
  228. package/cdn/components/button-group/button-group.component.js +2 -2
  229. package/cdn/components/button-group/button-group.js +3 -3
  230. package/cdn/components/caption/caption.component.js +2 -2
  231. package/cdn/components/caption/caption.js +3 -3
  232. package/cdn/components/card/card.component.js +2 -2
  233. package/cdn/components/card/card.js +3 -3
  234. package/cdn/components/checkbox/checkbox.component.js +10 -10
  235. package/cdn/components/checkbox/checkbox.js +11 -11
  236. package/cdn/components/chip/chip.component.js +2 -2
  237. package/cdn/components/chip/chip.js +3 -3
  238. package/cdn/components/combobox/combobox.component.js +7 -7
  239. package/cdn/components/combobox/combobox.js +8 -8
  240. package/cdn/components/data-access/data-access.component.js +36 -36
  241. package/cdn/components/data-access/data-access.js +37 -37
  242. package/cdn/components/data-grid/data-grid.component.js +5 -5
  243. package/cdn/components/data-grid/data-grid.js +6 -6
  244. package/cdn/components/data-rods/data-rods.component.js +45 -45
  245. package/cdn/components/data-rods/data-rods.js +46 -46
  246. package/cdn/components/data-subsetter/data-subsetter.component.js +50 -50
  247. package/cdn/components/data-subsetter/data-subsetter.js +51 -51
  248. package/cdn/components/data-subsetter/notebooks/subsetter-notebook.js +1 -1
  249. package/cdn/components/data-subsetter-history/data-subsetter-history.component.js +52 -52
  250. package/cdn/components/data-subsetter-history/data-subsetter-history.js +53 -53
  251. package/cdn/components/date-picker/date-picker.component.js +17 -17
  252. package/cdn/components/date-picker/date-picker.js +18 -18
  253. package/cdn/components/date-range-slider/date-range-slider.component.js +2 -2
  254. package/cdn/components/date-range-slider/date-range-slider.js +3 -3
  255. package/cdn/components/dialog/dialog.component.js +11 -11
  256. package/cdn/components/dialog/dialog.js +12 -12
  257. package/cdn/components/divider/divider.component.js +2 -2
  258. package/cdn/components/divider/divider.js +3 -3
  259. package/cdn/components/dropdown/dropdown.component.js +3 -3
  260. package/cdn/components/dropdown/dropdown.js +4 -4
  261. package/cdn/components/earthdata-login/earthdata-login.component.js +19 -19
  262. package/cdn/components/earthdata-login/earthdata-login.js +20 -20
  263. package/cdn/components/file-upload/file-upload.component.js +2 -2
  264. package/cdn/components/file-upload/file-upload.js +3 -3
  265. package/cdn/components/harmony-history/harmony-history.component.js +13 -13
  266. package/cdn/components/harmony-history/harmony-history.js +14 -14
  267. package/cdn/components/icon/icon.component.js +5 -5
  268. package/cdn/components/icon/icon.js +6 -6
  269. package/cdn/components/icon/library.js +2 -2
  270. package/cdn/components/input/input.component.js +10 -10
  271. package/cdn/components/input/input.js +11 -11
  272. package/cdn/components/loader/loader.component.js +2 -2
  273. package/cdn/components/loader/loader.js +3 -3
  274. package/cdn/components/login/login.component.js +16 -16
  275. package/cdn/components/login/login.js +17 -17
  276. package/cdn/components/map/map.component.js +4 -4
  277. package/cdn/components/map/map.js +5 -5
  278. package/cdn/components/menu/menu.component.js +2 -2
  279. package/cdn/components/menu/menu.js +3 -3
  280. package/cdn/components/menu-item/menu-item.component.js +13 -13
  281. package/cdn/components/menu-item/menu-item.js +14 -14
  282. package/cdn/components/menu-item/submenu-controller.js +3 -3
  283. package/cdn/components/option/option.component.js +8 -8
  284. package/cdn/components/option/option.js +9 -9
  285. package/cdn/components/pagination/pagination.component.js +8 -8
  286. package/cdn/components/pagination/pagination.js +9 -9
  287. package/cdn/components/plot/plot.component.js +3 -3
  288. package/cdn/components/plot/plot.js +4 -4
  289. package/cdn/components/plot-toolbar/notebooks/time-averaged-map-notebook.js +1 -1
  290. package/cdn/components/plot-toolbar/notebooks/time-series-notebook.js +1 -1
  291. package/cdn/components/plot-toolbar/plot-toolbar.component.js +20 -20
  292. package/cdn/components/plot-toolbar/plot-toolbar.js +21 -21
  293. package/cdn/components/popup/popup.component.js +2 -2
  294. package/cdn/components/popup/popup.js +3 -3
  295. package/cdn/components/progress-bar/progress-bar.component.js +2 -2
  296. package/cdn/components/progress-bar/progress-bar.js +3 -3
  297. package/cdn/components/radio/radio.component.js +4 -4
  298. package/cdn/components/radio/radio.js +5 -5
  299. package/cdn/components/radio-group/radio-group.component.js +2 -2
  300. package/cdn/components/radio-group/radio-group.js +3 -3
  301. package/cdn/components/scroll-hint/scroll-hint.component.js +8 -8
  302. package/cdn/components/scroll-hint/scroll-hint.js +9 -9
  303. package/cdn/components/select/select.component.js +11 -11
  304. package/cdn/components/select/select.js +12 -12
  305. package/cdn/components/site-header/site-header.component.js +7 -7
  306. package/cdn/components/site-header/site-header.js +7 -7
  307. package/cdn/components/site-navigation/site-navigation.component.js +2 -2
  308. package/cdn/components/site-navigation/site-navigation.js +2 -2
  309. package/cdn/components/skeleton/skeleton.component.js +2 -2
  310. package/cdn/components/skeleton/skeleton.js +3 -3
  311. package/cdn/components/slider/slider.component.js +2 -2
  312. package/cdn/components/slider/slider.js +3 -3
  313. package/cdn/components/spatial-picker/spatial-picker.component.js +19 -19
  314. package/cdn/components/spatial-picker/spatial-picker.js +20 -20
  315. package/cdn/components/status-indicator/status-indicator.component.js +2 -2
  316. package/cdn/components/status-indicator/status-indicator.js +3 -3
  317. package/cdn/components/stepper/stepper.component.js +2 -2
  318. package/cdn/components/stepper/stepper.js +3 -3
  319. package/cdn/components/stepper-step/stepper-step.component.js +8 -8
  320. package/cdn/components/stepper-step/stepper-step.js +9 -9
  321. package/cdn/components/tab/tab.component.js +8 -8
  322. package/cdn/components/tab/tab.js +9 -9
  323. package/cdn/components/tab-panel/tab-panel.component.js +2 -2
  324. package/cdn/components/tab-panel/tab-panel.js +3 -3
  325. package/cdn/components/tabs/tabs.component.js +8 -8
  326. package/cdn/components/tabs/tabs.js +9 -9
  327. package/cdn/components/tag/tag.component.js +8 -8
  328. package/cdn/components/tag/tag.js +9 -9
  329. package/cdn/components/textarea/textarea.component.js +4 -4
  330. package/cdn/components/textarea/textarea.js +5 -5
  331. package/cdn/components/time-average-map/time-average-map.component.js +29 -29
  332. package/cdn/components/time-average-map/time-average-map.controller.js +3 -3
  333. package/cdn/components/time-average-map/time-average-map.js +30 -30
  334. package/cdn/components/time-series/time-series.component.js +29 -29
  335. package/cdn/components/time-series/time-series.controller.js +3 -3
  336. package/cdn/components/time-series/time-series.js +30 -30
  337. package/cdn/components/toast/toast.component.js +4 -4
  338. package/cdn/components/toast/toast.js +5 -5
  339. package/cdn/components/toggle/toggle.component.js +4 -4
  340. package/cdn/components/toggle/toggle.js +5 -5
  341. package/cdn/components/tooltip/tooltip.component.js +3 -3
  342. package/cdn/components/tooltip/tooltip.js +4 -4
  343. package/cdn/components/variable-combobox/lib.js +3 -3
  344. package/cdn/components/variable-combobox/variable-combobox.component.js +20 -20
  345. package/cdn/components/variable-combobox/variable-combobox.controller.js +4 -4
  346. package/cdn/components/variable-combobox/variable-combobox.js +21 -21
  347. package/cdn/components/variable-keyword-search/variable-keyword-search.component.js +16 -16
  348. package/cdn/components/variable-keyword-search/variable-keyword-search.js +17 -17
  349. package/cdn/custom-elements.json +9825 -9825
  350. package/cdn/internal/terra-element.d.ts +2 -1
  351. package/cdn/react/accordion/index.js +8 -8
  352. package/cdn/react/alert/index.js +4 -4
  353. package/cdn/react/avatar/index.js +10 -10
  354. package/cdn/react/badge/index.js +3 -3
  355. package/cdn/react/banner/index.js +4 -4
  356. package/cdn/react/breadcrumb/index.js +3 -3
  357. package/cdn/react/breadcrumbs/index.js +3 -3
  358. package/cdn/react/browse-variables/index.js +22 -22
  359. package/cdn/react/button/index.js +11 -11
  360. package/cdn/react/button-group/index.js +3 -3
  361. package/cdn/react/caption/index.js +3 -3
  362. package/cdn/react/card/index.js +3 -3
  363. package/cdn/react/checkbox/index.js +11 -11
  364. package/cdn/react/chip/index.js +3 -3
  365. package/cdn/react/combobox/index.js +8 -8
  366. package/cdn/react/data-access/index.js +37 -37
  367. package/cdn/react/data-grid/index.js +6 -6
  368. package/cdn/react/data-rods/index.js +46 -46
  369. package/cdn/react/data-subsetter/index.js +51 -51
  370. package/cdn/react/data-subsetter-history/index.js +53 -53
  371. package/cdn/react/date-picker/index.js +18 -18
  372. package/cdn/react/date-range-slider/index.js +3 -3
  373. package/cdn/react/dialog/index.js +12 -12
  374. package/cdn/react/divider/index.js +3 -3
  375. package/cdn/react/dropdown/index.js +4 -4
  376. package/cdn/react/earthdata-login/index.js +20 -20
  377. package/cdn/react/file-upload/index.js +3 -3
  378. package/cdn/react/harmony-history/index.js +14 -14
  379. package/cdn/react/icon/index.js +6 -6
  380. package/cdn/react/index.d.ts +25 -25
  381. package/cdn/react/index.js +246 -246
  382. package/cdn/react/input/index.js +11 -11
  383. package/cdn/react/loader/index.js +3 -3
  384. package/cdn/react/login/index.js +17 -17
  385. package/cdn/react/map/index.js +5 -5
  386. package/cdn/react/menu/index.js +3 -3
  387. package/cdn/react/menu-item/index.js +14 -14
  388. package/cdn/react/option/index.js +9 -9
  389. package/cdn/react/pagination/index.js +9 -9
  390. package/cdn/react/plot/index.js +4 -4
  391. package/cdn/react/plot-toolbar/index.js +21 -21
  392. package/cdn/react/popup/index.js +3 -3
  393. package/cdn/react/progress-bar/index.js +3 -3
  394. package/cdn/react/radio/index.js +5 -5
  395. package/cdn/react/radio-group/index.js +3 -3
  396. package/cdn/react/scroll-hint/index.js +9 -9
  397. package/cdn/react/select/index.js +12 -12
  398. package/cdn/react/site-header/index.js +8 -8
  399. package/cdn/react/site-navigation/index.js +3 -3
  400. package/cdn/react/skeleton/index.js +3 -3
  401. package/cdn/react/slider/index.js +3 -3
  402. package/cdn/react/spatial-picker/index.js +20 -20
  403. package/cdn/react/status-indicator/index.js +3 -3
  404. package/cdn/react/stepper/index.js +3 -3
  405. package/cdn/react/stepper-step/index.js +9 -9
  406. package/cdn/react/tab/index.js +9 -9
  407. package/cdn/react/tab-panel/index.js +3 -3
  408. package/cdn/react/tabs/index.js +9 -9
  409. package/cdn/react/tag/index.js +9 -9
  410. package/cdn/react/textarea/index.js +5 -5
  411. package/cdn/react/time-average-map/index.js +30 -30
  412. package/cdn/react/time-series/index.js +30 -30
  413. package/cdn/react/toast/index.js +5 -5
  414. package/cdn/react/toggle/index.js +5 -5
  415. package/cdn/react/tooltip/index.js +4 -4
  416. package/cdn/react/variable-combobox/index.js +21 -21
  417. package/cdn/react/variable-keyword-search/index.js +17 -17
  418. package/cdn/terra-ui-components.js +233 -233
  419. package/cdn/types/vue/index.d.ts +870 -870
  420. package/cdn/utilities/icon-library.js +2 -2
  421. package/cdn/vscode.html-custom-data.json +722 -722
  422. package/cdn/web-types.json +1823 -1823
  423. package/dist/chunks/chunk.24YF4QIT.js +1 -0
  424. package/dist/chunks/chunk.2AODSMTM.js +43 -0
  425. package/dist/chunks/chunk.2FXPEI5H.js +64 -0
  426. package/dist/chunks/chunk.2PCITLIN.js +1 -0
  427. package/dist/chunks/chunk.2RREFG3O.js +1 -0
  428. package/dist/chunks/chunk.2UKVJ6IH.js +1 -0
  429. package/dist/chunks/chunk.36RNS6EU.js +1 -0
  430. package/dist/chunks/chunk.3NCKYAVK.js +1 -0
  431. package/dist/chunks/chunk.3QTOSDP2.js +1 -0
  432. package/dist/chunks/chunk.3WPC62ON.js +1 -0
  433. package/dist/chunks/chunk.3XPATC7H.js +1 -0
  434. package/dist/chunks/chunk.4D7QTBAO.js +1 -0
  435. package/dist/chunks/chunk.4HJYIO5Q.js +1182 -0
  436. package/dist/chunks/chunk.4IC42XPL.js +1 -0
  437. package/dist/chunks/chunk.4MPWSGLQ.js +1 -0
  438. package/dist/chunks/chunk.4QF5CEJK.js +1 -0
  439. package/dist/chunks/chunk.4XG5OXTV.js +39 -0
  440. package/dist/chunks/chunk.4ZCRXZ5T.js +30 -0
  441. package/dist/chunks/chunk.57U2N7QT.js +1 -0
  442. package/dist/chunks/chunk.5C6MFSPK.js +12 -0
  443. package/dist/chunks/chunk.5GJAY4GX.js +1 -0
  444. package/dist/chunks/chunk.5IZC4OHY.js +38 -0
  445. package/dist/chunks/chunk.5J5MG2UK.js +1 -0
  446. package/dist/chunks/chunk.5KV52GCL.js +67 -0
  447. package/dist/chunks/chunk.5NB5MZA4.js +1 -0
  448. package/dist/chunks/chunk.5NRY3BRM.js +1 -0
  449. package/dist/chunks/chunk.6BNJKBZV.js +1 -0
  450. package/dist/chunks/chunk.6HZT6LTG.js +1 -0
  451. package/dist/chunks/chunk.6TRNKXJR.js +1 -0
  452. package/dist/chunks/chunk.6WYMBV7K.js +1 -0
  453. package/dist/chunks/chunk.6XFAFWSR.js +1 -0
  454. package/dist/chunks/chunk.75JZF7I2.js +14 -0
  455. package/dist/chunks/chunk.7ATST2KZ.js +1 -0
  456. package/dist/chunks/chunk.7BZSOIKL.js +1 -0
  457. package/dist/chunks/chunk.7C3LDX56.js +47 -0
  458. package/dist/chunks/chunk.7DW64TGT.js +17 -0
  459. package/dist/chunks/chunk.7VVCGLXY.js +55 -0
  460. package/dist/chunks/chunk.A7ORYASM.js +1 -0
  461. package/dist/chunks/chunk.AGCRBFHW.js +1 -0
  462. package/dist/chunks/chunk.AOZA3LUC.js +1 -0
  463. package/dist/chunks/chunk.BLCJAUGX.js +1 -0
  464. package/dist/chunks/chunk.BLIMMPQ7.js +300 -0
  465. package/dist/chunks/chunk.BO4DH5SK.js +1 -0
  466. package/dist/chunks/chunk.BSG6PB7M.js +1 -0
  467. package/dist/chunks/chunk.BYMWWMHO.js +99 -0
  468. package/dist/chunks/chunk.C3HGLH5W.js +1 -0
  469. package/dist/chunks/chunk.C3YCRF6R.js +25 -0
  470. package/dist/chunks/chunk.C53TDQ4M.js +113 -0
  471. package/dist/chunks/chunk.C5IJ3RDW.js +1 -0
  472. package/dist/chunks/chunk.CPK3JYFS.js +1 -0
  473. package/dist/chunks/chunk.CSOP7FMX.js +1 -0
  474. package/dist/chunks/chunk.CTDGPTSN.js +30 -0
  475. package/dist/chunks/chunk.CXVHJQOX.js +1 -0
  476. package/dist/chunks/chunk.CYW4XMYN.js +27 -0
  477. package/dist/chunks/chunk.D664CQIW.js +1 -0
  478. package/dist/chunks/chunk.DDBHUABW.js +1 -0
  479. package/dist/chunks/chunk.DF7PEKI5.js +1 -0
  480. package/dist/chunks/chunk.DJ4ECDD7.js +157 -0
  481. package/dist/chunks/chunk.DUEUVWS4.js +26 -0
  482. package/dist/chunks/chunk.DYTUX6JC.js +1 -0
  483. package/dist/chunks/chunk.E53W77VU.js +1 -0
  484. package/dist/chunks/chunk.E5WOJ3PK.js +2 -0
  485. package/dist/chunks/chunk.E5YBSQDR.js +1 -0
  486. package/dist/chunks/chunk.EU3AVR52.js +1 -0
  487. package/dist/chunks/chunk.FCKU7FCT.js +1 -0
  488. package/dist/chunks/chunk.FGGGL6TR.js +1 -0
  489. package/dist/chunks/chunk.FOTHGJDQ.js +1 -0
  490. package/dist/chunks/chunk.FR7BDEKN.js +1 -0
  491. package/dist/chunks/chunk.FV56KCWS.js +1 -0
  492. package/dist/chunks/chunk.FWV4BQ4W.js +1 -0
  493. package/dist/chunks/chunk.G5V47DTL.js +1 -0
  494. package/dist/chunks/chunk.GFLDOB42.js +121 -0
  495. package/dist/chunks/chunk.GQUYP7LA.js +1 -0
  496. package/dist/chunks/chunk.GRCVGHKV.js +6 -0
  497. package/dist/chunks/chunk.HPAZBPEI.js +1 -0
  498. package/dist/chunks/chunk.HXQXVX3Q.js +780 -0
  499. package/dist/chunks/chunk.I5PJET2V.js +1 -0
  500. package/dist/chunks/chunk.IBMHTYPL.js +1 -0
  501. package/dist/chunks/chunk.IKTWK2SS.js +1 -0
  502. package/dist/chunks/chunk.IM3XJA64.js +1 -0
  503. package/dist/chunks/chunk.IO26AMA3.js +1 -0
  504. package/dist/chunks/chunk.ISMI3XBI.js +1 -0
  505. package/dist/chunks/chunk.IVJW3L5W.js +1 -0
  506. package/dist/chunks/chunk.J3UHFD4B.js +1 -0
  507. package/dist/chunks/chunk.JAWXLWO3.js +1 -0
  508. package/dist/chunks/chunk.JDFCUQJY.js +1 -0
  509. package/dist/chunks/chunk.JLBFKAVO.js +61 -0
  510. package/dist/chunks/chunk.JLEK5NSP.js +1 -0
  511. package/dist/chunks/chunk.JPSWU7NO.js +1 -0
  512. package/dist/chunks/chunk.JT7VPC6I.js +1 -0
  513. package/dist/chunks/chunk.K6NGUQFE.js +22 -0
  514. package/dist/chunks/chunk.K7I45F7Q.js +1 -0
  515. package/dist/chunks/chunk.KA4ZOHLW.js +1 -0
  516. package/dist/chunks/chunk.KJU74YI2.js +1 -0
  517. package/dist/chunks/chunk.KVKFLEA5.js +37 -0
  518. package/dist/chunks/chunk.KZ2ILJRZ.js +1 -0
  519. package/dist/chunks/chunk.L3DDX7JM.js +1 -0
  520. package/dist/chunks/chunk.LDDOQGJH.js +1 -0
  521. package/dist/chunks/chunk.LEH7GMRV.js +8 -0
  522. package/dist/chunks/chunk.LFZGN4IM.js +1 -0
  523. package/dist/chunks/chunk.LIBI25OV.js +5 -0
  524. package/dist/chunks/chunk.LPQZ7EIH.js +1 -0
  525. package/dist/chunks/chunk.LT2QDYSZ.js +20 -0
  526. package/dist/chunks/chunk.LU27B4QT.js +1 -0
  527. package/dist/chunks/chunk.LULWFDAE.js +1 -0
  528. package/dist/chunks/chunk.M5IBNNVO.js +35 -0
  529. package/dist/chunks/chunk.M7HM65NI.js +1 -0
  530. package/dist/chunks/chunk.M7KA4TAP.js +1 -0
  531. package/dist/chunks/chunk.MBU3SR2E.js +11 -0
  532. package/dist/chunks/chunk.MG2J22RN.js +100 -0
  533. package/dist/chunks/chunk.MJGL3LBD.js +127 -0
  534. package/dist/chunks/chunk.MKP36JJX.js +33 -0
  535. package/dist/chunks/chunk.MUZMDFJT.js +1 -0
  536. package/dist/chunks/chunk.MVAMBG7V.js +1 -0
  537. package/dist/chunks/chunk.MWNRXGPC.js +1 -0
  538. package/dist/chunks/chunk.N7RIONCD.js +148 -0
  539. package/dist/chunks/chunk.NV5Z2LKQ.js +1 -0
  540. package/dist/chunks/chunk.NWWPIBSZ.js +1 -0
  541. package/dist/chunks/chunk.O35W4H3F.js +1 -0
  542. package/dist/chunks/chunk.OENLSNB6.js +1 -0
  543. package/dist/chunks/chunk.OHJBXE7T.js +5 -0
  544. package/dist/chunks/chunk.OMVHIFUC.js +145 -0
  545. package/dist/chunks/chunk.ORVKGKKH.js +122 -0
  546. package/dist/chunks/chunk.OUYEFW6B.js +1 -0
  547. package/dist/chunks/chunk.OVUZQ7A4.js +11 -0
  548. package/dist/chunks/chunk.PD7SD6MQ.js +1 -0
  549. package/dist/chunks/chunk.PLAT354O.js +1 -0
  550. package/dist/chunks/chunk.POMRY7UK.js +1 -0
  551. package/dist/chunks/chunk.POTSV42L.js +1 -0
  552. package/dist/chunks/chunk.PW77U3EV.js +1 -0
  553. package/dist/chunks/chunk.Q2ITPHBB.js +1 -0
  554. package/dist/chunks/chunk.Q45GP6AK.js +1 -0
  555. package/dist/chunks/chunk.Q45ZPP3H.js +8 -0
  556. package/dist/chunks/chunk.Q74UKT75.js +1 -0
  557. package/dist/chunks/chunk.Q7CPHUX4.js +1 -0
  558. package/dist/chunks/chunk.Q7QYNODI.js +1 -0
  559. package/dist/chunks/chunk.Q7TJH6KO.js +1 -0
  560. package/dist/chunks/chunk.QKJ64RMB.js +1 -0
  561. package/dist/chunks/chunk.QWFODK2P.js +48 -0
  562. package/dist/chunks/chunk.QZO2AQI2.js +62 -0
  563. package/dist/chunks/chunk.R6QBHLQZ.js +1 -0
  564. package/dist/chunks/chunk.RDJRVCJI.js +26 -0
  565. package/dist/chunks/chunk.REFEQLZT.js +1 -0
  566. package/dist/chunks/chunk.ROC4VUQU.js +1 -0
  567. package/dist/chunks/chunk.RV42RV2W.js +1 -0
  568. package/dist/chunks/chunk.SD6CXJRC.js +2 -0
  569. package/dist/chunks/chunk.SGWZI2DU.js +572 -0
  570. package/dist/chunks/chunk.SGXIBJZS.js +35 -0
  571. package/dist/chunks/chunk.SM2QJRAR.js +24 -0
  572. package/dist/chunks/chunk.SPFKT3LJ.js +75 -0
  573. package/dist/chunks/chunk.ST75SBBB.js +1 -0
  574. package/dist/chunks/chunk.T36VDO3T.js +1 -0
  575. package/dist/chunks/chunk.T4ROP6EN.js +1 -0
  576. package/dist/chunks/chunk.T4VXJ6JM.js +20 -0
  577. package/dist/chunks/chunk.TFCJ4XFE.js +1 -0
  578. package/dist/chunks/chunk.TG4IJICD.js +1 -0
  579. package/dist/chunks/chunk.THYFGXQY.js +9 -0
  580. package/dist/chunks/chunk.TIQDAHKY.js +1 -0
  581. package/dist/chunks/chunk.TKPHQJML.js +1 -0
  582. package/dist/chunks/chunk.TOYVSIBJ.js +1 -0
  583. package/dist/chunks/chunk.TYFV36JE.js +1 -0
  584. package/dist/chunks/chunk.U26S7TDQ.js +1 -0
  585. package/dist/chunks/chunk.U36C4IZK.js +1 -0
  586. package/dist/chunks/chunk.UC5QIILV.js +1 -0
  587. package/dist/chunks/chunk.UIHGMMKI.js +1 -0
  588. package/dist/chunks/chunk.UKU7FBVP.js +1 -0
  589. package/dist/chunks/chunk.UOGFXV4L.js +1 -0
  590. package/dist/chunks/chunk.V2KJ6MJN.js +1 -0
  591. package/dist/chunks/chunk.V4VYTYYR.js +1 -0
  592. package/dist/chunks/chunk.VBVG7TLF.js +1 -0
  593. package/dist/chunks/chunk.VXK5NQS3.js +1 -0
  594. package/dist/chunks/chunk.VYAQT43L.js +4 -0
  595. package/dist/chunks/chunk.VZJ3CHHD.js +1 -0
  596. package/dist/chunks/chunk.W2G7LTSX.js +23 -0
  597. package/dist/chunks/chunk.W2SMXYMJ.js +1 -0
  598. package/dist/chunks/chunk.W6M5T7LW.js +1 -0
  599. package/dist/chunks/chunk.WAM5BJ3C.js +1 -0
  600. package/dist/chunks/chunk.WM5XXYYL.js +1 -0
  601. package/dist/chunks/chunk.WMO3XFWN.js +74 -0
  602. package/dist/chunks/chunk.WTPCXGA3.js +1 -0
  603. package/dist/chunks/chunk.WWPQJ57D.js +1 -0
  604. package/dist/chunks/chunk.X3BLL7JC.js +1 -0
  605. package/dist/chunks/chunk.XJ5BSBB7.js +299 -0
  606. package/dist/chunks/chunk.XKZTTPRT.js +280 -0
  607. package/dist/chunks/chunk.XMRMETFK.js +55 -0
  608. package/dist/chunks/chunk.XV6LQQ7W.js +1 -0
  609. package/dist/chunks/chunk.XWAHYN4Q.js +65 -0
  610. package/dist/chunks/chunk.XXC6WCRZ.js +1 -0
  611. package/dist/chunks/chunk.Y4UQPRFJ.js +80 -0
  612. package/dist/chunks/chunk.YX34VMUI.js +41 -0
  613. package/dist/chunks/chunk.YXLH5EDT.js +1 -0
  614. package/dist/chunks/chunk.YXPPJTLH.js +19 -0
  615. package/dist/chunks/chunk.Z5Y23KIB.js +1 -0
  616. package/dist/chunks/chunk.Z7VHC7NM.js +154 -0
  617. package/dist/chunks/chunk.ZCRUSZBX.js +1 -0
  618. package/dist/chunks/chunk.ZE47GA7F.js +43 -0
  619. package/dist/chunks/chunk.ZLHZHRH7.js +176 -0
  620. package/dist/chunks/chunk.ZLR3GVCO.js +9 -0
  621. package/dist/chunks/chunk.ZODSQWEH.js +1 -0
  622. package/dist/chunks/chunk.ZPAYW3JY.js +55 -0
  623. package/dist/chunks/chunk.ZTFY3IDS.js +16 -0
  624. package/dist/chunks/chunk.ZX4VR7CV.js +1 -0
  625. package/dist/components/accordion/accordion.component.js +1 -1
  626. package/dist/components/accordion/accordion.js +1 -1
  627. package/dist/components/alert/alert.component.js +1 -1
  628. package/dist/components/alert/alert.js +1 -1
  629. package/dist/components/avatar/avatar.component.js +1 -1
  630. package/dist/components/avatar/avatar.js +1 -1
  631. package/dist/components/badge/badge.component.js +1 -1
  632. package/dist/components/badge/badge.js +1 -1
  633. package/dist/components/banner/banner.component.js +1 -1
  634. package/dist/components/banner/banner.js +1 -1
  635. package/dist/components/breadcrumb/breadcrumb.component.js +1 -1
  636. package/dist/components/breadcrumb/breadcrumb.js +1 -1
  637. package/dist/components/breadcrumbs/breadcrumbs.component.js +1 -1
  638. package/dist/components/breadcrumbs/breadcrumbs.js +1 -1
  639. package/dist/components/browse-variables/browse-variables.component.js +1 -1
  640. package/dist/components/browse-variables/browse-variables.js +1 -1
  641. package/dist/components/button/button.component.js +1 -1
  642. package/dist/components/button/button.js +1 -1
  643. package/dist/components/button-group/button-group.component.js +1 -1
  644. package/dist/components/button-group/button-group.js +1 -1
  645. package/dist/components/caption/caption.component.js +1 -1
  646. package/dist/components/caption/caption.js +1 -1
  647. package/dist/components/card/card.component.js +1 -1
  648. package/dist/components/card/card.js +1 -1
  649. package/dist/components/checkbox/checkbox.component.js +1 -1
  650. package/dist/components/checkbox/checkbox.js +1 -1
  651. package/dist/components/chip/chip.component.js +1 -1
  652. package/dist/components/chip/chip.js +1 -1
  653. package/dist/components/combobox/combobox.component.js +1 -1
  654. package/dist/components/combobox/combobox.js +1 -1
  655. package/dist/components/data-access/data-access.component.js +1 -1
  656. package/dist/components/data-access/data-access.js +1 -1
  657. package/dist/components/data-grid/data-grid.component.js +1 -1
  658. package/dist/components/data-grid/data-grid.js +1 -1
  659. package/dist/components/data-rods/data-rods.component.js +1 -1
  660. package/dist/components/data-rods/data-rods.js +1 -1
  661. package/dist/components/data-subsetter/data-subsetter.component.js +1 -1
  662. package/dist/components/data-subsetter/data-subsetter.js +1 -1
  663. package/dist/components/data-subsetter/notebooks/subsetter-notebook.js +1 -1
  664. package/dist/components/data-subsetter-history/data-subsetter-history.component.js +1 -1
  665. package/dist/components/data-subsetter-history/data-subsetter-history.js +1 -1
  666. package/dist/components/date-picker/date-picker.component.js +1 -1
  667. package/dist/components/date-picker/date-picker.js +1 -1
  668. package/dist/components/date-range-slider/date-range-slider.component.js +1 -1
  669. package/dist/components/date-range-slider/date-range-slider.js +1 -1
  670. package/dist/components/dialog/dialog.component.js +1 -1
  671. package/dist/components/dialog/dialog.js +1 -1
  672. package/dist/components/divider/divider.component.js +1 -1
  673. package/dist/components/divider/divider.js +1 -1
  674. package/dist/components/dropdown/dropdown.component.js +1 -1
  675. package/dist/components/dropdown/dropdown.js +1 -1
  676. package/dist/components/earthdata-login/earthdata-login.component.js +1 -1
  677. package/dist/components/earthdata-login/earthdata-login.js +1 -1
  678. package/dist/components/file-upload/file-upload.component.js +1 -1
  679. package/dist/components/file-upload/file-upload.js +1 -1
  680. package/dist/components/harmony-history/harmony-history.component.js +1 -1
  681. package/dist/components/harmony-history/harmony-history.js +1 -1
  682. package/dist/components/icon/icon.component.js +1 -1
  683. package/dist/components/icon/icon.js +1 -1
  684. package/dist/components/icon/library.js +1 -1
  685. package/dist/components/input/input.component.js +1 -1
  686. package/dist/components/input/input.js +1 -1
  687. package/dist/components/loader/loader.component.js +1 -1
  688. package/dist/components/loader/loader.js +1 -1
  689. package/dist/components/login/login.component.js +1 -1
  690. package/dist/components/login/login.js +1 -1
  691. package/dist/components/map/map.component.js +1 -1
  692. package/dist/components/map/map.js +1 -1
  693. package/dist/components/menu/menu.component.js +1 -1
  694. package/dist/components/menu/menu.js +1 -1
  695. package/dist/components/menu-item/menu-item.component.js +1 -1
  696. package/dist/components/menu-item/menu-item.js +1 -1
  697. package/dist/components/option/option.component.js +1 -1
  698. package/dist/components/option/option.js +1 -1
  699. package/dist/components/pagination/pagination.component.js +1 -1
  700. package/dist/components/pagination/pagination.js +1 -1
  701. package/dist/components/plot/plot.component.js +1 -1
  702. package/dist/components/plot/plot.js +1 -1
  703. package/dist/components/plot-toolbar/notebooks/time-averaged-map-notebook.js +1 -1
  704. package/dist/components/plot-toolbar/notebooks/time-series-notebook.js +1 -1
  705. package/dist/components/plot-toolbar/plot-toolbar.component.js +1 -1
  706. package/dist/components/plot-toolbar/plot-toolbar.js +1 -1
  707. package/dist/components/popup/popup.component.js +1 -1
  708. package/dist/components/popup/popup.js +1 -1
  709. package/dist/components/progress-bar/progress-bar.component.js +1 -1
  710. package/dist/components/progress-bar/progress-bar.js +1 -1
  711. package/dist/components/radio/radio.component.js +1 -1
  712. package/dist/components/radio/radio.js +1 -1
  713. package/dist/components/radio-group/radio-group.component.js +1 -1
  714. package/dist/components/radio-group/radio-group.js +1 -1
  715. package/dist/components/scroll-hint/scroll-hint.component.js +1 -1
  716. package/dist/components/scroll-hint/scroll-hint.js +1 -1
  717. package/dist/components/select/select.component.js +1 -1
  718. package/dist/components/select/select.js +1 -1
  719. package/dist/components/site-header/site-header.component.js +1 -1
  720. package/dist/components/site-header/site-header.js +1 -1
  721. package/dist/components/site-navigation/site-navigation.component.js +1 -1
  722. package/dist/components/site-navigation/site-navigation.js +1 -1
  723. package/dist/components/skeleton/skeleton.component.js +1 -1
  724. package/dist/components/skeleton/skeleton.js +1 -1
  725. package/dist/components/slider/slider.component.js +1 -1
  726. package/dist/components/slider/slider.js +1 -1
  727. package/dist/components/spatial-picker/spatial-picker.component.js +1 -1
  728. package/dist/components/spatial-picker/spatial-picker.js +1 -1
  729. package/dist/components/status-indicator/status-indicator.component.js +1 -1
  730. package/dist/components/status-indicator/status-indicator.js +1 -1
  731. package/dist/components/stepper/stepper.component.js +1 -1
  732. package/dist/components/stepper/stepper.js +1 -1
  733. package/dist/components/stepper-step/stepper-step.component.js +1 -1
  734. package/dist/components/stepper-step/stepper-step.js +1 -1
  735. package/dist/components/tab/tab.component.js +1 -1
  736. package/dist/components/tab/tab.js +1 -1
  737. package/dist/components/tab-panel/tab-panel.component.js +1 -1
  738. package/dist/components/tab-panel/tab-panel.js +1 -1
  739. package/dist/components/tabs/tabs.component.js +1 -1
  740. package/dist/components/tabs/tabs.js +1 -1
  741. package/dist/components/tag/tag.component.js +1 -1
  742. package/dist/components/tag/tag.js +1 -1
  743. package/dist/components/textarea/textarea.component.js +1 -1
  744. package/dist/components/textarea/textarea.js +1 -1
  745. package/dist/components/time-average-map/time-average-map.component.js +1 -1
  746. package/dist/components/time-average-map/time-average-map.controller.js +1 -1
  747. package/dist/components/time-average-map/time-average-map.js +1 -1
  748. package/dist/components/time-series/time-series.component.js +1 -1
  749. package/dist/components/time-series/time-series.controller.js +1 -1
  750. package/dist/components/time-series/time-series.js +1 -1
  751. package/dist/components/toast/toast.component.js +1 -1
  752. package/dist/components/toast/toast.js +1 -1
  753. package/dist/components/toggle/toggle.component.js +1 -1
  754. package/dist/components/toggle/toggle.js +1 -1
  755. package/dist/components/tooltip/tooltip.component.js +1 -1
  756. package/dist/components/tooltip/tooltip.js +1 -1
  757. package/dist/components/variable-combobox/variable-combobox.component.js +1 -1
  758. package/dist/components/variable-combobox/variable-combobox.js +1 -1
  759. package/dist/components/variable-keyword-search/variable-keyword-search.component.js +1 -1
  760. package/dist/components/variable-keyword-search/variable-keyword-search.js +1 -1
  761. package/dist/custom-elements.json +9825 -9825
  762. package/dist/internal/terra-element.d.ts +2 -1
  763. package/dist/react/accordion/index.js +1 -1
  764. package/dist/react/alert/index.js +1 -1
  765. package/dist/react/avatar/index.js +1 -1
  766. package/dist/react/badge/index.js +1 -1
  767. package/dist/react/banner/index.js +1 -1
  768. package/dist/react/breadcrumb/index.js +1 -1
  769. package/dist/react/breadcrumbs/index.js +1 -1
  770. package/dist/react/browse-variables/index.js +1 -1
  771. package/dist/react/button/index.js +1 -1
  772. package/dist/react/button-group/index.js +1 -1
  773. package/dist/react/caption/index.js +1 -1
  774. package/dist/react/card/index.js +1 -1
  775. package/dist/react/checkbox/index.js +1 -1
  776. package/dist/react/chip/index.js +1 -1
  777. package/dist/react/combobox/index.js +1 -1
  778. package/dist/react/data-access/index.js +1 -1
  779. package/dist/react/data-grid/index.js +1 -1
  780. package/dist/react/data-rods/index.js +1 -1
  781. package/dist/react/data-subsetter/index.js +1 -1
  782. package/dist/react/data-subsetter-history/index.js +1 -1
  783. package/dist/react/date-picker/index.js +1 -1
  784. package/dist/react/date-range-slider/index.js +1 -1
  785. package/dist/react/dialog/index.js +1 -1
  786. package/dist/react/divider/index.js +1 -1
  787. package/dist/react/dropdown/index.js +1 -1
  788. package/dist/react/earthdata-login/index.js +1 -1
  789. package/dist/react/file-upload/index.js +1 -1
  790. package/dist/react/harmony-history/index.js +1 -1
  791. package/dist/react/icon/index.js +1 -1
  792. package/dist/react/index.d.ts +25 -25
  793. package/dist/react/index.js +1 -1
  794. package/dist/react/input/index.js +1 -1
  795. package/dist/react/loader/index.js +1 -1
  796. package/dist/react/login/index.js +1 -1
  797. package/dist/react/map/index.js +1 -1
  798. package/dist/react/menu/index.js +1 -1
  799. package/dist/react/menu-item/index.js +1 -1
  800. package/dist/react/option/index.js +1 -1
  801. package/dist/react/pagination/index.js +1 -1
  802. package/dist/react/plot/index.js +1 -1
  803. package/dist/react/plot-toolbar/index.js +1 -1
  804. package/dist/react/popup/index.js +1 -1
  805. package/dist/react/progress-bar/index.js +1 -1
  806. package/dist/react/radio/index.js +1 -1
  807. package/dist/react/radio-group/index.js +1 -1
  808. package/dist/react/scroll-hint/index.js +1 -1
  809. package/dist/react/select/index.js +1 -1
  810. package/dist/react/site-header/index.js +1 -1
  811. package/dist/react/site-navigation/index.js +1 -1
  812. package/dist/react/skeleton/index.js +1 -1
  813. package/dist/react/slider/index.js +1 -1
  814. package/dist/react/spatial-picker/index.js +1 -1
  815. package/dist/react/status-indicator/index.js +1 -1
  816. package/dist/react/stepper/index.js +1 -1
  817. package/dist/react/stepper-step/index.js +1 -1
  818. package/dist/react/tab/index.js +1 -1
  819. package/dist/react/tab-panel/index.js +1 -1
  820. package/dist/react/tabs/index.js +1 -1
  821. package/dist/react/tag/index.js +1 -1
  822. package/dist/react/textarea/index.js +1 -1
  823. package/dist/react/time-average-map/index.js +1 -1
  824. package/dist/react/time-series/index.js +1 -1
  825. package/dist/react/toast/index.js +1 -1
  826. package/dist/react/toggle/index.js +1 -1
  827. package/dist/react/tooltip/index.js +1 -1
  828. package/dist/react/variable-combobox/index.js +1 -1
  829. package/dist/react/variable-keyword-search/index.js +1 -1
  830. package/dist/terra-ui-components.js +1 -1
  831. package/dist/terra_ui_components-0.0.196-py3-none-any.whl +0 -0
  832. package/dist/terra_ui_components-0.0.196.tar.gz +0 -0
  833. package/dist/types/vue/index.d.ts +870 -870
  834. package/dist/utilities/icon-library.js +1 -1
  835. package/dist/vscode.html-custom-data.json +722 -722
  836. package/dist/web-types.json +1823 -1823
  837. package/package.json +1 -1
  838. package/cdn/chunks/chunk.24DUJHDK.js +0 -99
  839. package/cdn/chunks/chunk.2GXXW4JW.js +0 -19
  840. package/cdn/chunks/chunk.2IZL2AQZ.js +0 -310
  841. package/cdn/chunks/chunk.2MJ2NCZB.js +0 -19
  842. package/cdn/chunks/chunk.3EXMQGS5.js +0 -33
  843. package/cdn/chunks/chunk.3F5WWWCP.js +0 -32
  844. package/cdn/chunks/chunk.3FZNWJLU.js +0 -138
  845. package/cdn/chunks/chunk.3KM52SYJ.js +0 -377
  846. package/cdn/chunks/chunk.3WLHSB2P.js +0 -60
  847. package/cdn/chunks/chunk.3XRHKAEG.js +0 -1197
  848. package/cdn/chunks/chunk.42TIMN33.js +0 -19
  849. package/cdn/chunks/chunk.4GCABVEB.js +0 -32
  850. package/cdn/chunks/chunk.4HOOLRRB.js +0 -294
  851. package/cdn/chunks/chunk.4JSKFMYL.js +0 -19
  852. package/cdn/chunks/chunk.4MA4WNAR.js +0 -19
  853. package/cdn/chunks/chunk.4OQEEMTX.js +0 -960
  854. package/cdn/chunks/chunk.4ZKXL6QQ.js +0 -2546
  855. package/cdn/chunks/chunk.56LL2PGB.js +0 -19
  856. package/cdn/chunks/chunk.5APQECEU.js +0 -272
  857. package/cdn/chunks/chunk.5DYZPUHM.js +0 -19
  858. package/cdn/chunks/chunk.5PKUX7GI.js +0 -32
  859. package/cdn/chunks/chunk.5QI4MBD3.js +0 -19
  860. package/cdn/chunks/chunk.5RFFOMS7.js +0 -19
  861. package/cdn/chunks/chunk.5VJNHYYD.js +0 -171
  862. package/cdn/chunks/chunk.6AQBFPMC.js +0 -231
  863. package/cdn/chunks/chunk.6PJPHKZS.js +0 -616
  864. package/cdn/chunks/chunk.6UL4YIIE.js +0 -443
  865. package/cdn/chunks/chunk.73E6DBDT.js +0 -29
  866. package/cdn/chunks/chunk.73JELIRH.js +0 -29
  867. package/cdn/chunks/chunk.77C4GKUY.js +0 -19
  868. package/cdn/chunks/chunk.7GEFNIYD.js +0 -29
  869. package/cdn/chunks/chunk.7INFHMNF.js +0 -29
  870. package/cdn/chunks/chunk.7MTO53BK.js +0 -19
  871. package/cdn/chunks/chunk.7PXKDTIM.js +0 -32
  872. package/cdn/chunks/chunk.7W3MEEY4.js +0 -60
  873. package/cdn/chunks/chunk.A3BGCJF3.js +0 -19
  874. package/cdn/chunks/chunk.AOD5LM5P.js +0 -71
  875. package/cdn/chunks/chunk.APAET6SG.js +0 -19
  876. package/cdn/chunks/chunk.APOEQA6N.js +0 -157
  877. package/cdn/chunks/chunk.AVGRSDXZ.js +0 -32
  878. package/cdn/chunks/chunk.AWRZWD5U.js +0 -259
  879. package/cdn/chunks/chunk.B3L3TUDC.js +0 -537
  880. package/cdn/chunks/chunk.BHOL7N4X.js +0 -29
  881. package/cdn/chunks/chunk.BIHXNGW6.js +0 -35
  882. package/cdn/chunks/chunk.BJ5X5X4P.js +0 -19
  883. package/cdn/chunks/chunk.BL5KHAJE.js +0 -82
  884. package/cdn/chunks/chunk.BVACLOKI.js +0 -110
  885. package/cdn/chunks/chunk.BWX2YQ7G.js +0 -19
  886. package/cdn/chunks/chunk.C7MAVAHI.js +0 -29
  887. package/cdn/chunks/chunk.CBATMEEU.js +0 -19
  888. package/cdn/chunks/chunk.CG3UKDID.js +0 -357
  889. package/cdn/chunks/chunk.CI3PPRE2.js +0 -29
  890. package/cdn/chunks/chunk.CJDMYIJ3.js +0 -278
  891. package/cdn/chunks/chunk.CLOSWCHA.js +0 -279
  892. package/cdn/chunks/chunk.CPPIU4DJ.js +0 -19
  893. package/cdn/chunks/chunk.CUQ43GND.js +0 -19
  894. package/cdn/chunks/chunk.D4HZHUNC.js +0 -19
  895. package/cdn/chunks/chunk.D7JYSAWP.js +0 -33
  896. package/cdn/chunks/chunk.DGEQK5ZJ.js +0 -99
  897. package/cdn/chunks/chunk.DHEXZGR7.js +0 -19
  898. package/cdn/chunks/chunk.EGVCUUSY.js +0 -36
  899. package/cdn/chunks/chunk.EHEZ6HRQ.js +0 -19
  900. package/cdn/chunks/chunk.FF3TG64X.js +0 -19
  901. package/cdn/chunks/chunk.FGNURE2G.js +0 -293
  902. package/cdn/chunks/chunk.FH5OTISR.js +0 -19
  903. package/cdn/chunks/chunk.FHLKSU4Z.js +0 -19
  904. package/cdn/chunks/chunk.FJOMHPCP.js +0 -136
  905. package/cdn/chunks/chunk.FOT4M63R.js +0 -19
  906. package/cdn/chunks/chunk.FPA7IQX3.js +0 -132
  907. package/cdn/chunks/chunk.FW2BZR4P.js +0 -68
  908. package/cdn/chunks/chunk.FW5WHIWR.js +0 -83
  909. package/cdn/chunks/chunk.FXAXW2P5.js +0 -19
  910. package/cdn/chunks/chunk.FZLLQOCC.js +0 -39
  911. package/cdn/chunks/chunk.FZNTZBRB.js +0 -29
  912. package/cdn/chunks/chunk.G3XUBBLG.js +0 -19
  913. package/cdn/chunks/chunk.G7CRYOZ6.js +0 -33
  914. package/cdn/chunks/chunk.GACJHA2S.js +0 -19
  915. package/cdn/chunks/chunk.GDBCAUAV.js +0 -32
  916. package/cdn/chunks/chunk.GF4FWTYY.js +0 -359
  917. package/cdn/chunks/chunk.GGRKUVCY.js +0 -29
  918. package/cdn/chunks/chunk.GQI5T2PQ.js +0 -32
  919. package/cdn/chunks/chunk.HBWQC2Z4.js +0 -294
  920. package/cdn/chunks/chunk.HHVETYHR.js +0 -32
  921. package/cdn/chunks/chunk.HOVXBUJT.js +0 -33
  922. package/cdn/chunks/chunk.HTOWSYLT.js +0 -93
  923. package/cdn/chunks/chunk.I2Y2VPUB.js +0 -37
  924. package/cdn/chunks/chunk.I3FRHVER.js +0 -19
  925. package/cdn/chunks/chunk.I4AH7J3O.js +0 -19
  926. package/cdn/chunks/chunk.I7NMTC5Q.js +0 -34
  927. package/cdn/chunks/chunk.IBA4NRT7.js +0 -86
  928. package/cdn/chunks/chunk.JAMUELKA.js +0 -19
  929. package/cdn/chunks/chunk.JIEFAMLF.js +0 -19
  930. package/cdn/chunks/chunk.JJDEFKUF.js +0 -524
  931. package/cdn/chunks/chunk.JJVQV3KV.js +0 -610
  932. package/cdn/chunks/chunk.JN5JWQ2B.js +0 -19
  933. package/cdn/chunks/chunk.JNQPADBB.js +0 -19
  934. package/cdn/chunks/chunk.JPMKABCV.js +0 -29
  935. package/cdn/chunks/chunk.JQHJEJ7I.js +0 -904
  936. package/cdn/chunks/chunk.K3FQJZZK.js +0 -188
  937. package/cdn/chunks/chunk.KAHOERXC.js +0 -657
  938. package/cdn/chunks/chunk.KCIASXLB.js +0 -1259
  939. package/cdn/chunks/chunk.KGM767Y2.js +0 -1975
  940. package/cdn/chunks/chunk.KM6WWUYU.js +0 -77
  941. package/cdn/chunks/chunk.KSVXTOF4.js +0 -19
  942. package/cdn/chunks/chunk.KTOKMD4O.js +0 -19
  943. package/cdn/chunks/chunk.KTUPD7QF.js +0 -29
  944. package/cdn/chunks/chunk.KXA4ATJ2.js +0 -29
  945. package/cdn/chunks/chunk.KXRXZF7Z.js +0 -134
  946. package/cdn/chunks/chunk.L7OOVPGZ.js +0 -128
  947. package/cdn/chunks/chunk.LBAW4D6F.js +0 -19
  948. package/cdn/chunks/chunk.LCG6CS5W.js +0 -151
  949. package/cdn/chunks/chunk.LFDSFGQP.js +0 -158
  950. package/cdn/chunks/chunk.LGWGWJEP.js +0 -110
  951. package/cdn/chunks/chunk.LKJHLO7L.js +0 -155
  952. package/cdn/chunks/chunk.LPO3LYTF.js +0 -36
  953. package/cdn/chunks/chunk.LQO7FSCD.js +0 -19
  954. package/cdn/chunks/chunk.LUFN5OBJ.js +0 -29
  955. package/cdn/chunks/chunk.M4V6NBVW.js +0 -19
  956. package/cdn/chunks/chunk.M7N46T3J.js +0 -29
  957. package/cdn/chunks/chunk.MBQGLDFD.js +0 -41
  958. package/cdn/chunks/chunk.ME4MXD7Z.js +0 -123
  959. package/cdn/chunks/chunk.MIMEPCMP.js +0 -19
  960. package/cdn/chunks/chunk.MSA6YIWL.js +0 -32
  961. package/cdn/chunks/chunk.MUSV5WD7.js +0 -663
  962. package/cdn/chunks/chunk.MWZDKTYP.js +0 -539
  963. package/cdn/chunks/chunk.N2HXI3AV.js +0 -29
  964. package/cdn/chunks/chunk.N45T5BVL.js +0 -19
  965. package/cdn/chunks/chunk.N4S5SN4O.js +0 -234
  966. package/cdn/chunks/chunk.NF6QKS66.js +0 -35
  967. package/cdn/chunks/chunk.NPMUVLNM.js +0 -162
  968. package/cdn/chunks/chunk.OENYLZWT.js +0 -56075
  969. package/cdn/chunks/chunk.OHNT4PXQ.js +0 -35
  970. package/cdn/chunks/chunk.OS7S5YYF.js +0 -29
  971. package/cdn/chunks/chunk.P2RGLH4G.js +0 -74
  972. package/cdn/chunks/chunk.PDOH2WSS.js +0 -34
  973. package/cdn/chunks/chunk.PN2XAHPP.js +0 -29
  974. package/cdn/chunks/chunk.PPAETPB7.js +0 -2690
  975. package/cdn/chunks/chunk.PPVHICGA.js +0 -62
  976. package/cdn/chunks/chunk.PRZH2KCU.js +0 -19
  977. package/cdn/chunks/chunk.PS7COUUZ.js +0 -29
  978. package/cdn/chunks/chunk.PSDELLGY.js +0 -32
  979. package/cdn/chunks/chunk.PTOY2FES.js +0 -49
  980. package/cdn/chunks/chunk.PYGD5KXG.js +0 -35
  981. package/cdn/chunks/chunk.PZUVUD4C.js +0 -93
  982. package/cdn/chunks/chunk.QN4AN7C5.js +0 -599
  983. package/cdn/chunks/chunk.QPH2YCQZ.js +0 -190
  984. package/cdn/chunks/chunk.QUXCDLLL.js +0 -19
  985. package/cdn/chunks/chunk.QVMEK5M3.js +0 -29
  986. package/cdn/chunks/chunk.R25INNJV.js +0 -19
  987. package/cdn/chunks/chunk.RHK4JGDC.js +0 -29
  988. package/cdn/chunks/chunk.RICV3H37.js +0 -19
  989. package/cdn/chunks/chunk.RLS2X5AZ.js +0 -19
  990. package/cdn/chunks/chunk.RNWGAI7P.js +0 -19
  991. package/cdn/chunks/chunk.RRE5BPDG.js +0 -19
  992. package/cdn/chunks/chunk.RYVQIS2S.js +0 -19
  993. package/cdn/chunks/chunk.RZQ3F6C3.js +0 -19
  994. package/cdn/chunks/chunk.S73UFG7T.js +0 -35
  995. package/cdn/chunks/chunk.SDEHB6TT.js +0 -19
  996. package/cdn/chunks/chunk.SFWFMK4W.js +0 -19
  997. package/cdn/chunks/chunk.SQOILSEV.js +0 -266
  998. package/cdn/chunks/chunk.STFECIPE.js +0 -32
  999. package/cdn/chunks/chunk.SUPNZXCZ.js +0 -36
  1000. package/cdn/chunks/chunk.SYTFF46K.js +0 -29
  1001. package/cdn/chunks/chunk.THXR2ES6.js +0 -78
  1002. package/cdn/chunks/chunk.TMF5HOD4.js +0 -29
  1003. package/cdn/chunks/chunk.TQUM32MX.js +0 -224
  1004. package/cdn/chunks/chunk.TRYBS3TL.js +0 -912
  1005. package/cdn/chunks/chunk.TXITE2FV.js +0 -538
  1006. package/cdn/chunks/chunk.U2EYGXBE.js +0 -19
  1007. package/cdn/chunks/chunk.U4SJDY6O.js +0 -29
  1008. package/cdn/chunks/chunk.U6GRE2AY.js +0 -29
  1009. package/cdn/chunks/chunk.UAAOIJFL.js +0 -29
  1010. package/cdn/chunks/chunk.UD2WNVHE.js +0 -624
  1011. package/cdn/chunks/chunk.UECXOXJZ.js +0 -19
  1012. package/cdn/chunks/chunk.UEEC2GXT.js +0 -29
  1013. package/cdn/chunks/chunk.UR5Y4MTD.js +0 -19
  1014. package/cdn/chunks/chunk.UWBBHL5L.js +0 -29
  1015. package/cdn/chunks/chunk.UWTXFYCD.js +0 -19
  1016. package/cdn/chunks/chunk.VIKAJXUC.js +0 -113
  1017. package/cdn/chunks/chunk.VPC6URQL.js +0 -47
  1018. package/cdn/chunks/chunk.VZZ4WPTN.js +0 -92
  1019. package/cdn/chunks/chunk.W2UWM7MU.js +0 -32
  1020. package/cdn/chunks/chunk.W6C4Y6RE.js +0 -33
  1021. package/cdn/chunks/chunk.WFFZWPNT.js +0 -19
  1022. package/cdn/chunks/chunk.WFSXAREE.js +0 -51
  1023. package/cdn/chunks/chunk.WRUVQNZU.js +0 -19
  1024. package/cdn/chunks/chunk.WSYETG3Q.js +0 -29
  1025. package/cdn/chunks/chunk.X4NKTRX3.js +0 -32
  1026. package/cdn/chunks/chunk.XD5QY6PM.js +0 -195
  1027. package/cdn/chunks/chunk.XDDSC5QG.js +0 -104
  1028. package/cdn/chunks/chunk.XJBQGSHA.js +0 -29
  1029. package/cdn/chunks/chunk.XNCBBVLA.js +0 -36
  1030. package/cdn/chunks/chunk.XQCQ77ZI.js +0 -19
  1031. package/cdn/chunks/chunk.XQQCXMXT.js +0 -29
  1032. package/cdn/chunks/chunk.XY2BLPWZ.js +0 -32
  1033. package/cdn/chunks/chunk.Y2QU6FAL.js +0 -392
  1034. package/cdn/chunks/chunk.YFQAWKK2.js +0 -19
  1035. package/cdn/chunks/chunk.YL6WAIUW.js +0 -230
  1036. package/cdn/chunks/chunk.YLV2NQMM.js +0 -276
  1037. package/cdn/chunks/chunk.YOGJK3VO.js +0 -19
  1038. package/cdn/chunks/chunk.YR2V7D3U.js +0 -19
  1039. package/cdn/chunks/chunk.YXED3ORL.js +0 -19
  1040. package/cdn/chunks/chunk.YXV2OEKT.js +0 -330
  1041. package/cdn/chunks/chunk.Z2XXUCBC.js +0 -37
  1042. package/cdn/chunks/chunk.Z32AWZQH.js +0 -36
  1043. package/cdn/chunks/chunk.ZDTHRWMK.js +0 -30
  1044. package/cdn/chunks/chunk.ZEFTGZ6L.js +0 -589
  1045. package/cdn/chunks/chunk.ZG5ZKC6Y.js +0 -81
  1046. package/cdn/chunks/chunk.ZHO3MDDD.js +0 -478
  1047. package/dist/chunks/chunk.22E5LE6S.js +0 -1
  1048. package/dist/chunks/chunk.26D6RYPR.js +0 -80
  1049. package/dist/chunks/chunk.27Z62R5G.js +0 -1
  1050. package/dist/chunks/chunk.2HL7Y4WO.js +0 -74
  1051. package/dist/chunks/chunk.2T6Y2G56.js +0 -300
  1052. package/dist/chunks/chunk.33JEWNO2.js +0 -1
  1053. package/dist/chunks/chunk.3CCS5BIB.js +0 -1
  1054. package/dist/chunks/chunk.3Y6WWRX4.js +0 -1
  1055. package/dist/chunks/chunk.4H2ENZPR.js +0 -30
  1056. package/dist/chunks/chunk.4MIKGY55.js +0 -1
  1057. package/dist/chunks/chunk.4QCVHW6X.js +0 -780
  1058. package/dist/chunks/chunk.4V3T5ED5.js +0 -1
  1059. package/dist/chunks/chunk.5FMWJJ36.js +0 -20
  1060. package/dist/chunks/chunk.5WCS6MPC.js +0 -1
  1061. package/dist/chunks/chunk.5WLCB2FX.js +0 -1
  1062. package/dist/chunks/chunk.5WQ4OCUY.js +0 -1
  1063. package/dist/chunks/chunk.5XNWMOI2.js +0 -1
  1064. package/dist/chunks/chunk.5YUJ4ULN.js +0 -1
  1065. package/dist/chunks/chunk.67QNRGSR.js +0 -55
  1066. package/dist/chunks/chunk.6B3M4FBK.js +0 -1
  1067. package/dist/chunks/chunk.6DO6SCAN.js +0 -2
  1068. package/dist/chunks/chunk.6SS4IWON.js +0 -1
  1069. package/dist/chunks/chunk.6XRX5RTY.js +0 -1
  1070. package/dist/chunks/chunk.6YAV522D.js +0 -1
  1071. package/dist/chunks/chunk.7WCWF45X.js +0 -1
  1072. package/dist/chunks/chunk.A3MYPEXH.js +0 -1
  1073. package/dist/chunks/chunk.ABTWGDZS.js +0 -1
  1074. package/dist/chunks/chunk.AWMMBQ7Q.js +0 -1
  1075. package/dist/chunks/chunk.AYSQDQ7A.js +0 -20
  1076. package/dist/chunks/chunk.B2RVIS6L.js +0 -1
  1077. package/dist/chunks/chunk.B4QRG775.js +0 -25
  1078. package/dist/chunks/chunk.BBCXSNXB.js +0 -11
  1079. package/dist/chunks/chunk.BFMGLV3Y.js +0 -19
  1080. package/dist/chunks/chunk.BFOMSZN2.js +0 -1
  1081. package/dist/chunks/chunk.BSMBRKPT.js +0 -1
  1082. package/dist/chunks/chunk.BSMJWBZ7.js +0 -121
  1083. package/dist/chunks/chunk.BSQNZJNF.js +0 -1
  1084. package/dist/chunks/chunk.BVOJXW4M.js +0 -1
  1085. package/dist/chunks/chunk.BVTUW2PM.js +0 -37
  1086. package/dist/chunks/chunk.BWJGCPQL.js +0 -1
  1087. package/dist/chunks/chunk.BX45XQUM.js +0 -8
  1088. package/dist/chunks/chunk.C2P2S5ZL.js +0 -64
  1089. package/dist/chunks/chunk.C5EJDSXH.js +0 -113
  1090. package/dist/chunks/chunk.C6NTJUXF.js +0 -1
  1091. package/dist/chunks/chunk.CHZR43AW.js +0 -1
  1092. package/dist/chunks/chunk.D5JQQQMX.js +0 -1
  1093. package/dist/chunks/chunk.D6Z6RV5N.js +0 -1
  1094. package/dist/chunks/chunk.DAVYYMC4.js +0 -1
  1095. package/dist/chunks/chunk.DCHBOJU5.js +0 -1
  1096. package/dist/chunks/chunk.DNX6VFES.js +0 -122
  1097. package/dist/chunks/chunk.DQIXJDIE.js +0 -1
  1098. package/dist/chunks/chunk.DWDYUZK2.js +0 -39
  1099. package/dist/chunks/chunk.DWUBRDBO.js +0 -1
  1100. package/dist/chunks/chunk.DXVAQ7KS.js +0 -1
  1101. package/dist/chunks/chunk.DYC3RF6V.js +0 -1
  1102. package/dist/chunks/chunk.DYDSL6ZW.js +0 -1
  1103. package/dist/chunks/chunk.E45DOCEZ.js +0 -1
  1104. package/dist/chunks/chunk.EDVIDEQN.js +0 -1
  1105. package/dist/chunks/chunk.EDZQ64GI.js +0 -55
  1106. package/dist/chunks/chunk.EVKKJS2Q.js +0 -75
  1107. package/dist/chunks/chunk.F54E2PUO.js +0 -1
  1108. package/dist/chunks/chunk.F7PR6RUU.js +0 -1
  1109. package/dist/chunks/chunk.FG6V2YTA.js +0 -1
  1110. package/dist/chunks/chunk.FHR4ECA5.js +0 -1
  1111. package/dist/chunks/chunk.FKI64WHR.js +0 -1
  1112. package/dist/chunks/chunk.FNPSZY43.js +0 -1
  1113. package/dist/chunks/chunk.FP5XEZKY.js +0 -1
  1114. package/dist/chunks/chunk.FVT6Q3WE.js +0 -30
  1115. package/dist/chunks/chunk.GDTUTXVL.js +0 -1
  1116. package/dist/chunks/chunk.GF3ZXGGP.js +0 -9
  1117. package/dist/chunks/chunk.GIK4TT5X.js +0 -1
  1118. package/dist/chunks/chunk.GJFSXCHE.js +0 -1
  1119. package/dist/chunks/chunk.GS6C5VNV.js +0 -43
  1120. package/dist/chunks/chunk.GSF2UKR2.js +0 -1
  1121. package/dist/chunks/chunk.GSZCUHUW.js +0 -23
  1122. package/dist/chunks/chunk.GT5LSMK3.js +0 -67
  1123. package/dist/chunks/chunk.GU22GHTU.js +0 -154
  1124. package/dist/chunks/chunk.GUN57VLX.js +0 -1
  1125. package/dist/chunks/chunk.H3UCBT2F.js +0 -100
  1126. package/dist/chunks/chunk.HBCDWQU4.js +0 -1
  1127. package/dist/chunks/chunk.HHTPWBEX.js +0 -1
  1128. package/dist/chunks/chunk.HP44BR7Q.js +0 -1
  1129. package/dist/chunks/chunk.HYWNTAAL.js +0 -1
  1130. package/dist/chunks/chunk.HZQNTZKJ.js +0 -1
  1131. package/dist/chunks/chunk.I3ZPIFPK.js +0 -1
  1132. package/dist/chunks/chunk.I42HLE2N.js +0 -35
  1133. package/dist/chunks/chunk.I4ASNPW6.js +0 -1
  1134. package/dist/chunks/chunk.IL56P34I.js +0 -5
  1135. package/dist/chunks/chunk.IO2JJLOR.js +0 -62
  1136. package/dist/chunks/chunk.IO7UVDVP.js +0 -1
  1137. package/dist/chunks/chunk.JELRT4AR.js +0 -1
  1138. package/dist/chunks/chunk.JNF66CIE.js +0 -1182
  1139. package/dist/chunks/chunk.K4NORFOW.js +0 -1
  1140. package/dist/chunks/chunk.KAG6Z6DO.js +0 -1
  1141. package/dist/chunks/chunk.KC7D5IGT.js +0 -157
  1142. package/dist/chunks/chunk.KFUQD4BX.js +0 -1
  1143. package/dist/chunks/chunk.KGOPIP4S.js +0 -127
  1144. package/dist/chunks/chunk.KJC33UZ5.js +0 -1
  1145. package/dist/chunks/chunk.KJYBVSWK.js +0 -1
  1146. package/dist/chunks/chunk.KUERMFX5.js +0 -1
  1147. package/dist/chunks/chunk.L6TW5LIY.js +0 -1
  1148. package/dist/chunks/chunk.LCGS7JFN.js +0 -299
  1149. package/dist/chunks/chunk.LEHE4EOE.js +0 -1
  1150. package/dist/chunks/chunk.LJTCKUFB.js +0 -99
  1151. package/dist/chunks/chunk.LLUDN2PS.js +0 -1
  1152. package/dist/chunks/chunk.LUFGUMYT.js +0 -1
  1153. package/dist/chunks/chunk.LY7YY3K2.js +0 -1
  1154. package/dist/chunks/chunk.M57NEZ6W.js +0 -1
  1155. package/dist/chunks/chunk.M6VUPGBZ.js +0 -1
  1156. package/dist/chunks/chunk.MKY7Y6QJ.js +0 -280
  1157. package/dist/chunks/chunk.MLQD2PHH.js +0 -38
  1158. package/dist/chunks/chunk.MOMD53AX.js +0 -1
  1159. package/dist/chunks/chunk.MOQL5C2E.js +0 -41
  1160. package/dist/chunks/chunk.MZTJXYFN.js +0 -1
  1161. package/dist/chunks/chunk.N5FXHMMX.js +0 -1
  1162. package/dist/chunks/chunk.NBRTR7IO.js +0 -1
  1163. package/dist/chunks/chunk.NJXX5UDS.js +0 -1
  1164. package/dist/chunks/chunk.NQEGHU55.js +0 -24
  1165. package/dist/chunks/chunk.NTT4DHJD.js +0 -1
  1166. package/dist/chunks/chunk.O7S3P6BA.js +0 -1
  1167. package/dist/chunks/chunk.OABGOXTV.js +0 -1
  1168. package/dist/chunks/chunk.OBXUIBS5.js +0 -1
  1169. package/dist/chunks/chunk.OO755T6M.js +0 -1
  1170. package/dist/chunks/chunk.OW6C7ADA.js +0 -22
  1171. package/dist/chunks/chunk.OZ653IVR.js +0 -1
  1172. package/dist/chunks/chunk.OZKLT66X.js +0 -1
  1173. package/dist/chunks/chunk.P2LITPPP.js +0 -48
  1174. package/dist/chunks/chunk.P4UGPFLO.js +0 -1
  1175. package/dist/chunks/chunk.P7BQUP6B.js +0 -1
  1176. package/dist/chunks/chunk.P7FUXKYP.js +0 -16
  1177. package/dist/chunks/chunk.P7PSBTVM.js +0 -1
  1178. package/dist/chunks/chunk.PBQTUPUD.js +0 -8
  1179. package/dist/chunks/chunk.PBWD7J5S.js +0 -9
  1180. package/dist/chunks/chunk.PCACJJPM.js +0 -1
  1181. package/dist/chunks/chunk.PCGWZEYW.js +0 -1
  1182. package/dist/chunks/chunk.PDVGLTEV.js +0 -1
  1183. package/dist/chunks/chunk.PJ3XPXPF.js +0 -1
  1184. package/dist/chunks/chunk.PPCBIO3V.js +0 -1
  1185. package/dist/chunks/chunk.PRW76IA2.js +0 -1
  1186. package/dist/chunks/chunk.PTUQEN4T.js +0 -1
  1187. package/dist/chunks/chunk.PXQAFDR7.js +0 -1
  1188. package/dist/chunks/chunk.Q5HEIZX3.js +0 -33
  1189. package/dist/chunks/chunk.QB3T4KR7.js +0 -1
  1190. package/dist/chunks/chunk.QPFHGXYZ.js +0 -1
  1191. package/dist/chunks/chunk.QRVMZ2T4.js +0 -1
  1192. package/dist/chunks/chunk.QYL7SQDJ.js +0 -1
  1193. package/dist/chunks/chunk.RFCIZJWS.js +0 -1
  1194. package/dist/chunks/chunk.RFFRH4BZ.js +0 -17
  1195. package/dist/chunks/chunk.RGKN43WN.js +0 -14
  1196. package/dist/chunks/chunk.RIBXZLNN.js +0 -26
  1197. package/dist/chunks/chunk.RIT7PNUW.js +0 -12
  1198. package/dist/chunks/chunk.RMEOPW4C.js +0 -1
  1199. package/dist/chunks/chunk.RQ65M4CE.js +0 -1
  1200. package/dist/chunks/chunk.S63FGGZF.js +0 -1
  1201. package/dist/chunks/chunk.SAFQT7K3.js +0 -1
  1202. package/dist/chunks/chunk.SEVX4EA5.js +0 -572
  1203. package/dist/chunks/chunk.SHENNSQK.js +0 -1
  1204. package/dist/chunks/chunk.SNXJ6L37.js +0 -1
  1205. package/dist/chunks/chunk.SSZM65FT.js +0 -1
  1206. package/dist/chunks/chunk.T234XEZF.js +0 -1
  1207. package/dist/chunks/chunk.T7NIKGIG.js +0 -1
  1208. package/dist/chunks/chunk.TE7JCILP.js +0 -1
  1209. package/dist/chunks/chunk.TK6NK5JE.js +0 -26
  1210. package/dist/chunks/chunk.TOQYLHPA.js +0 -1
  1211. package/dist/chunks/chunk.TPSI5CST.js +0 -5
  1212. package/dist/chunks/chunk.TTHXFCV5.js +0 -11
  1213. package/dist/chunks/chunk.TUX7N5E2.js +0 -1
  1214. package/dist/chunks/chunk.UCNBQNV2.js +0 -1
  1215. package/dist/chunks/chunk.UTIEBX6W.js +0 -1
  1216. package/dist/chunks/chunk.V4OWFROX.js +0 -1
  1217. package/dist/chunks/chunk.V4S2FRFS.js +0 -1
  1218. package/dist/chunks/chunk.VB4HNOSD.js +0 -1
  1219. package/dist/chunks/chunk.VKIHEYZ2.js +0 -176
  1220. package/dist/chunks/chunk.VLKM3MR3.js +0 -65
  1221. package/dist/chunks/chunk.VMLWYQ2W.js +0 -43
  1222. package/dist/chunks/chunk.VUMKCPHB.js +0 -1
  1223. package/dist/chunks/chunk.VWXTAHZH.js +0 -145
  1224. package/dist/chunks/chunk.VXK32EI2.js +0 -1
  1225. package/dist/chunks/chunk.VYRSEKIP.js +0 -1
  1226. package/dist/chunks/chunk.W64NLWOA.js +0 -148
  1227. package/dist/chunks/chunk.WAYYVCTL.js +0 -1
  1228. package/dist/chunks/chunk.WGTYCWJK.js +0 -27
  1229. package/dist/chunks/chunk.WKDMCSDZ.js +0 -1
  1230. package/dist/chunks/chunk.XELLMKLV.js +0 -1
  1231. package/dist/chunks/chunk.XREGZC62.js +0 -1
  1232. package/dist/chunks/chunk.XSHNKOCG.js +0 -6
  1233. package/dist/chunks/chunk.XT6WN2YX.js +0 -1
  1234. package/dist/chunks/chunk.XWEGKU5H.js +0 -35
  1235. package/dist/chunks/chunk.XZN3AKDK.js +0 -1
  1236. package/dist/chunks/chunk.YAYW6Z2L.js +0 -1
  1237. package/dist/chunks/chunk.YCF3BGQL.js +0 -47
  1238. package/dist/chunks/chunk.YDA5W6FZ.js +0 -1
  1239. package/dist/chunks/chunk.YIIUYOLR.js +0 -1
  1240. package/dist/chunks/chunk.YOHSRZEN.js +0 -55
  1241. package/dist/chunks/chunk.YPDNZD7J.js +0 -1
  1242. package/dist/chunks/chunk.YVMILHIJ.js +0 -1
  1243. package/dist/chunks/chunk.Z2BBQFB2.js +0 -1
  1244. package/dist/chunks/chunk.ZFEDVT56.js +0 -1
  1245. package/dist/chunks/chunk.ZVOXSSTY.js +0 -61
  1246. package/dist/chunks/chunk.ZWHRQALR.js +0 -1
  1247. package/dist/chunks/chunk.ZXCSA2P7.js +0 -1
  1248. package/dist/chunks/chunk.ZYBAFKDZ.js +0 -4
  1249. package/dist/terra_ui_components-0.0.195-py3-none-any.whl +0 -0
  1250. package/dist/terra_ui_components-0.0.195.tar.gz +0 -0
@@ -0,0 +1,2706 @@
1
+ import {
2
+ KnownFeatureFlags,
3
+ isFeatureEnabled
4
+ } from "./chunk.S6KQAZNG.js";
5
+ import {
6
+ convertVariableEntryIdToGiovanniFormat
7
+ } from "./chunk.FXO66O5A.js";
8
+ import {
9
+ getNotebook
10
+ } from "./chunk.SX2WURED.js";
11
+ import {
12
+ TerraLogin
13
+ } from "./chunk.2DPNENYJ.js";
14
+ import {
15
+ TerraDialog
16
+ } from "./chunk.6VRUB6W7.js";
17
+ import {
18
+ data_subsetter_styles_default
19
+ } from "./chunk.ITK2GQEZ.js";
20
+ import {
21
+ TerraDataAccess,
22
+ debounce
23
+ } from "./chunk.KZILCY6N.js";
24
+ import {
25
+ TerraSlider
26
+ } from "./chunk.OUXUPQW2.js";
27
+ import {
28
+ TerraMenu
29
+ } from "./chunk.RHO6EQQS.js";
30
+ import {
31
+ TerraMenuItem
32
+ } from "./chunk.R6ZJ67LD.js";
33
+ import {
34
+ TerraDatePicker
35
+ } from "./chunk.4ZCRIDRU.js";
36
+ import {
37
+ HarmonyRequestController
38
+ } from "./chunk.CROGJ6YF.js";
39
+ import {
40
+ HarmonyRequest
41
+ } from "./chunk.5YAN7WHN.js";
42
+ import {
43
+ AuthController
44
+ } from "./chunk.4JXPGYJW.js";
45
+ import {
46
+ CollectionController
47
+ } from "./chunk.JXSV4XD4.js";
48
+ import {
49
+ TerraSpatialPicker
50
+ } from "./chunk.ICVWP75G.js";
51
+ import {
52
+ TerraInput
53
+ } from "./chunk.LYP4X5NY.js";
54
+ import {
55
+ TerraDropdown
56
+ } from "./chunk.DPD2TPND.js";
57
+ import {
58
+ QueryClientMixin
59
+ } from "./chunk.DOUWGQFH.js";
60
+ import {
61
+ TerraLoader
62
+ } from "./chunk.TUBNAZEK.js";
63
+ import {
64
+ TerraButton
65
+ } from "./chunk.6MVPEFC4.js";
66
+ import {
67
+ getUTCDate
68
+ } from "./chunk.X2BIJLHO.js";
69
+ import {
70
+ HttpException
71
+ } from "./chunk.SYQOGYTQ.js";
72
+ import {
73
+ TerraAccordion
74
+ } from "./chunk.NZL2QNZ6.js";
75
+ import {
76
+ TerraIcon
77
+ } from "./chunk.NPREEPWC.js";
78
+ import {
79
+ getBasePath
80
+ } from "./chunk.ZQVMOVOT.js";
81
+ import {
82
+ TerraAlert
83
+ } from "./chunk.FC5HZMTP.js";
84
+ import {
85
+ watch
86
+ } from "./chunk.MPVZOQYA.js";
87
+ import {
88
+ TerraElement,
89
+ component_styles_default,
90
+ e,
91
+ n,
92
+ r,
93
+ undefinedStringConverter
94
+ } from "./chunk.S7PDZNJ7.js";
95
+ import {
96
+ A,
97
+ b
98
+ } from "./chunk.RRCYT4LP.js";
99
+ import {
100
+ __decorateClass,
101
+ __privateAdd,
102
+ __privateGet,
103
+ __privateMethod,
104
+ __spreadProps,
105
+ __spreadValues,
106
+ init_buffer,
107
+ init_dirname,
108
+ init_process
109
+ } from "./chunk.ZEOVK2FE.js";
110
+
111
+ // src/components/data-subsetter/data-subsetter.component.ts
112
+ init_dirname();
113
+ init_buffer();
114
+ init_process();
115
+
116
+ // src/lib/jupyter.ts
117
+ init_dirname();
118
+ init_buffer();
119
+ init_process();
120
+ var JUPYTER_LITE_URL = "https://gesdisc.github.io/jupyterlite/lab/index.html";
121
+ function openJupyterLiteWindow(readyCb) {
122
+ const jupyterWindow = window.open(JUPYTER_LITE_URL, "_blank");
123
+ if (!jupyterWindow) {
124
+ console.error("Failed to open JupyterLite!");
125
+ return;
126
+ }
127
+ window.addEventListener("message", (event) => readyCb(event, jupyterWindow), {
128
+ once: true
129
+ });
130
+ return jupyterWindow;
131
+ }
132
+ function sendDataToJupyterNotebook(type, data) {
133
+ openJupyterLiteWindow((event, jupyterWindow) => {
134
+ var _a;
135
+ if (((_a = event.data) == null ? void 0 : _a.type) !== "jupyterlite-ready") {
136
+ return;
137
+ }
138
+ console.log("JupyterLite is ready!");
139
+ jupyterWindow.postMessage(__spreadValues({ type }, data), "*");
140
+ });
141
+ }
142
+
143
+ // src/services/cmr-variable.service.ts
144
+ init_dirname();
145
+ init_buffer();
146
+ init_process();
147
+ var CmrVariableService = class {
148
+ /**
149
+ * given a name and a list of variables, return the variable with the matching name
150
+ */
151
+ getVariableByName(name, variables) {
152
+ var _a;
153
+ if (!variables || !((_a = variables.items) == null ? void 0 : _a.length)) {
154
+ return;
155
+ }
156
+ return variables.items.find((variable) => variable.umm.Name === name);
157
+ }
158
+ /**
159
+ * given a variable, return the variable's display label
160
+ * ex: Shortname = LongName (Units)
161
+ */
162
+ getVariableDisplayLabel(variable) {
163
+ const { Name = "", LongName = "", Units = "" } = variable.umm;
164
+ return `${Name}${Name && LongName && Name !== LongName ? ` = ${LongName}` : ""}${Units ? ` (${Units})` : ""}`;
165
+ }
166
+ };
167
+ var cmrVariableService = new CmrVariableService();
168
+ var cmr_variable_service_default = cmrVariableService;
169
+
170
+ // src/components/data-subsetter/data-subsetter.component.ts
171
+ var defaultOutputFormat = {
172
+ key: "application/x-netcdf4",
173
+ label: "NetCDF",
174
+ description: "Download data in NetCDF format"
175
+ };
176
+ var _collectionController, _authController, _harmonyRequestController, _renderFooterForDialog, renderFooterForDialog_fn, _renderSizeInfo, renderSizeInfo_fn, _renderSubsetOptions, renderSubsetOptions_fn, _resetAllParameters, _renderSearchForCollection, renderSearchForCollection_fn, _renderOutputFormatSelection, renderOutputFormatSelection_fn, _renderDateRangeSelection, renderDateRangeSelection_fn, _handleDateChange, _resetDateRangeSelection, _resetFormatSelection, _getCollectionDateRange, getCollectionDateRange_fn, _renderSpatialSelection, renderSpatialSelection_fn, _handleSpatialChange, _resetSpatialSelection, _renderVariableSelection, renderVariableSelection_fn, _renderDimensionGroup, renderDimensionGroup_fn, _setDimensionValue, setDimensionValue_fn, _renderDimensionSelection, renderDimensionSelection_fn, _filterVariableTree, filterVariableTree_fn, _handleVariableFilterChange, handleVariableFilterChange_fn, _buildVariableTree, buildVariableTree_fn, _renderVariableTree, renderVariableTree_fn, _getAllGroupPaths, getAllGroupPaths_fn, _toggleGroupExpand, toggleGroupExpand_fn, _toggleExpandCollapseAll, toggleExpandCollapseAll_fn, _toggleVariableSelection, toggleVariableSelection_fn, _markFieldTouched, markFieldTouched_fn, _resetVariableSelection, _resetDimensionSelection, resetDimensionSelection_fn, _isDimensionExcluded, isDimensionExcluded_fn, _getCommonSelectableDimensions, getCommonSelectableDimensions_fn, _renderJobStatus, renderJobStatus_fn, _renderSelectedParams, renderSelectedParams_fn, _cancelJob, cancelJob_fn, _getData, getData_fn, _touchAllFields, touchAllFields_fn, _numberOfFilesFoundEstimate, numberOfFilesFoundEstimate_fn, _getDocumentationLinks, getDocumentationLinks_fn, _getDataLinks, getDataLinks_fn, _hasAtLeastOneSubsetOption, hasAtLeastOneSubsetOption_fn, _hasSpatialSubset, hasSpatialSubset_fn, _renderJobMessage, renderJobMessage_fn, _getJobMessageText, getJobMessageText_fn, _estimateJobSize, estimateJobSize_fn, _refineParameters, refineParameters_fn, _backToSubsetOptions, backToSubsetOptions_fn, _viewRunningJob, viewRunningJob_fn, _handleDownloadSelect, handleDownloadSelect_fn, _downloadLinksAsTxt, downloadLinksAsTxt_fn, _downloadPythonScript, downloadPythonScript_fn, _downloadEarthdataDownload, downloadEarthdataDownload_fn, _handleJupyterNotebookClick, handleJupyterNotebookClick_fn, _renderAvailableTemporalRangeSection, renderAvailableTemporalRangeSection_fn, _renderAvailableSpatialRangeSection, renderAvailableSpatialRangeSection_fn, _renderDataAccessModeSelection, renderDataAccessModeSelection_fn, _getGiovanniValidationError, getGiovanniValidationError_fn, _getHarmonyRequestErrorMessage, getHarmonyRequestErrorMessage_fn, _renderHarmonyRequestError, renderHarmonyRequestError_fn, _handleExpandSearchClick;
177
+ var TerraDataSubsetter = class extends QueryClientMixin(TerraElement) {
178
+ constructor() {
179
+ super(...arguments);
180
+ __privateAdd(this, _renderFooterForDialog);
181
+ __privateAdd(this, _renderSizeInfo);
182
+ __privateAdd(this, _renderSubsetOptions);
183
+ __privateAdd(this, _renderSearchForCollection);
184
+ __privateAdd(this, _renderOutputFormatSelection);
185
+ __privateAdd(this, _renderDateRangeSelection);
186
+ __privateAdd(this, _getCollectionDateRange);
187
+ __privateAdd(this, _renderSpatialSelection);
188
+ __privateAdd(this, _renderVariableSelection);
189
+ __privateAdd(this, _renderDimensionGroup);
190
+ __privateAdd(this, _setDimensionValue);
191
+ __privateAdd(this, _renderDimensionSelection);
192
+ __privateAdd(this, _filterVariableTree);
193
+ __privateAdd(this, _handleVariableFilterChange);
194
+ __privateAdd(this, _buildVariableTree);
195
+ __privateAdd(this, _renderVariableTree);
196
+ __privateAdd(this, _getAllGroupPaths);
197
+ __privateAdd(this, _toggleGroupExpand);
198
+ __privateAdd(this, _toggleExpandCollapseAll);
199
+ __privateAdd(this, _toggleVariableSelection);
200
+ __privateAdd(this, _markFieldTouched);
201
+ __privateAdd(this, _resetDimensionSelection);
202
+ __privateAdd(this, _isDimensionExcluded);
203
+ __privateAdd(this, _getCommonSelectableDimensions);
204
+ __privateAdd(this, _renderJobStatus);
205
+ __privateAdd(this, _renderSelectedParams);
206
+ __privateAdd(this, _cancelJob);
207
+ __privateAdd(this, _getData);
208
+ __privateAdd(this, _touchAllFields);
209
+ __privateAdd(this, _numberOfFilesFoundEstimate);
210
+ __privateAdd(this, _getDocumentationLinks);
211
+ __privateAdd(this, _getDataLinks);
212
+ __privateAdd(this, _hasAtLeastOneSubsetOption);
213
+ __privateAdd(this, _hasSpatialSubset);
214
+ __privateAdd(this, _renderJobMessage);
215
+ __privateAdd(this, _getJobMessageText);
216
+ __privateAdd(this, _estimateJobSize);
217
+ __privateAdd(this, _refineParameters);
218
+ __privateAdd(this, _backToSubsetOptions);
219
+ __privateAdd(this, _viewRunningJob);
220
+ __privateAdd(this, _handleDownloadSelect);
221
+ __privateAdd(this, _downloadLinksAsTxt);
222
+ __privateAdd(this, _downloadPythonScript);
223
+ __privateAdd(this, _downloadEarthdataDownload);
224
+ __privateAdd(this, _handleJupyterNotebookClick);
225
+ __privateAdd(this, _renderAvailableTemporalRangeSection);
226
+ __privateAdd(this, _renderAvailableSpatialRangeSection);
227
+ __privateAdd(this, _renderDataAccessModeSelection);
228
+ __privateAdd(this, _getGiovanniValidationError);
229
+ __privateAdd(this, _getHarmonyRequestErrorMessage);
230
+ __privateAdd(this, _renderHarmonyRequestError);
231
+ this.showCollectionSearch = true;
232
+ this.showHistoryPanel = true;
233
+ this.isHistoryView = false;
234
+ this.selectedVariables = [];
235
+ this.selectedDimensionIndexes = {};
236
+ this.expandedVariableGroups = /* @__PURE__ */ new Set();
237
+ this.variableFilterText = "";
238
+ this.touchedFields = /* @__PURE__ */ new Set();
239
+ this.selectedDateRange = {
240
+ startDate: null,
241
+ endDate: null
242
+ };
243
+ this.selectedFormat = defaultOutputFormat;
244
+ this.cancelingGetData = false;
245
+ this.selectedTab = "web-links";
246
+ this.refineParameters = false;
247
+ this.collectionSearchType = "all";
248
+ this.collectionSearchLoading = false;
249
+ this.collectionLoading = false;
250
+ this.collectionAccordionOpen = true;
251
+ this.dataAccessMode = "original";
252
+ __privateAdd(this, _collectionController, new CollectionController(this, {
253
+ getCollectionEntryId: () => this.collectionEntryId,
254
+ getBearerToken: () => this.bearerToken
255
+ }));
256
+ __privateAdd(this, _authController, new AuthController(this));
257
+ __privateAdd(this, _harmonyRequestController, new HarmonyRequestController(this));
258
+ __privateAdd(this, _resetAllParameters, () => {
259
+ this.selectedVariables = [];
260
+ if (__privateMethod(this, _hasSpatialSubset, hasSpatialSubset_fn).call(this)) {
261
+ __privateGet(this, _resetSpatialSelection).call(this);
262
+ }
263
+ this.selectedDateRange = {
264
+ startDate: null,
265
+ endDate: null
266
+ };
267
+ this.touchedFields = /* @__PURE__ */ new Set();
268
+ this.validationError = void 0;
269
+ this.expandedVariableGroups = /* @__PURE__ */ new Set();
270
+ this.requestUpdate();
271
+ });
272
+ __privateAdd(this, _handleDateChange, (e2) => {
273
+ __privateMethod(this, _markFieldTouched, markFieldTouched_fn).call(this, "date");
274
+ this.selectedDateRange = __spreadProps(__spreadValues({}, this.selectedDateRange), {
275
+ startDate: e2.detail.startDate,
276
+ endDate: e2.detail.endDate
277
+ });
278
+ });
279
+ __privateAdd(this, _resetDateRangeSelection, () => {
280
+ this.selectedDateRange = { startDate: null, endDate: null };
281
+ });
282
+ __privateAdd(this, _resetFormatSelection, () => {
283
+ var _a, _b;
284
+ if ((_b = (_a = this.collectionWithServices) == null ? void 0 : _a.configuredOutputFormats) == null ? void 0 : _b.length) {
285
+ const netcdfFormat = this.collectionWithServices.configuredOutputFormats.find(
286
+ (f) => f.key === "application/x-netcdf4" || f.key === "application/netcdf"
287
+ );
288
+ this.selectedFormat = netcdfFormat || this.collectionWithServices.configuredOutputFormats[0];
289
+ } else {
290
+ this.selectedFormat = defaultOutputFormat;
291
+ }
292
+ });
293
+ __privateAdd(this, _handleSpatialChange, (e2) => {
294
+ var _a;
295
+ __privateMethod(this, _markFieldTouched, markFieldTouched_fn).call(this, "spatial");
296
+ if (e2.detail.type === "point" /* POINT */) {
297
+ this.shapeGeoJson = void 0;
298
+ this.spatialLabel = void 0;
299
+ this.spatialSelection = e2.detail.latLng;
300
+ } else if (e2.detail.type === "bbox" /* BBOX */) {
301
+ this.shapeGeoJson = void 0;
302
+ this.spatialLabel = void 0;
303
+ this.spatialSelection = e2.detail.bounds;
304
+ } else if (e2.detail.type === "polygon" /* POLYGON */) {
305
+ this.spatialSelection = void 0;
306
+ if (e2.detail.geoJson) {
307
+ this.shapeGeoJson = e2.detail.geoJson;
308
+ this.spatialLabel = (_a = e2.detail.label) != null ? _a : "Shape selected";
309
+ } else if (e2.detail.latLngs.length > 0) {
310
+ const coords = e2.detail.latLngs.map((ll) => [ll.lng, ll.lat]);
311
+ coords.push(coords[0]);
312
+ this.shapeGeoJson = {
313
+ type: "FeatureCollection",
314
+ features: [
315
+ {
316
+ type: "Feature",
317
+ geometry: {
318
+ type: "Polygon",
319
+ coordinates: [coords]
320
+ },
321
+ properties: null
322
+ }
323
+ ]
324
+ };
325
+ this.spatialLabel = `Polygon (${e2.detail.latLngs.length} vertices)`;
326
+ } else {
327
+ this.shapeGeoJson = void 0;
328
+ this.spatialLabel = void 0;
329
+ }
330
+ } else {
331
+ this.spatialSelection = void 0;
332
+ this.shapeGeoJson = void 0;
333
+ this.spatialLabel = void 0;
334
+ }
335
+ });
336
+ /**
337
+ * resets the spatial selection back to the bounds of the collection
338
+ */
339
+ __privateAdd(this, _resetSpatialSelection, () => {
340
+ this.spatialSelection = void 0;
341
+ this.shapeGeoJson = void 0;
342
+ this.spatialLabel = void 0;
343
+ this.spatialPicker.clear();
344
+ __privateMethod(this, _markFieldTouched, markFieldTouched_fn).call(this, "spatial");
345
+ });
346
+ __privateAdd(this, _resetVariableSelection, () => {
347
+ this.selectedVariables = [];
348
+ __privateMethod(this, _resetDimensionSelection, resetDimensionSelection_fn).call(this);
349
+ });
350
+ __privateAdd(this, _handleExpandSearchClick, (event) => {
351
+ event.preventDefault();
352
+ __privateMethod(this, _backToSubsetOptions, backToSubsetOptions_fn).call(this);
353
+ });
354
+ }
355
+ jobIdChanged() {
356
+ if (this.jobId) {
357
+ __privateGet(this, _harmonyRequestController).startPollForJobStatus(this.jobId, {
358
+ bearerToken: this.bearerToken
359
+ });
360
+ this.dataAccessMode = "subset";
361
+ }
362
+ }
363
+ shortNameAndVersionChanged() {
364
+ if (this.shortName && this.version) {
365
+ this.collectionEntryId = `${this.shortName}_${this.version}`;
366
+ }
367
+ }
368
+ collectionEntryIdChanged() {
369
+ if (this.collectionEntryId) {
370
+ this.showCollectionSearch = false;
371
+ } else {
372
+ this.showCollectionSearch = true;
373
+ }
374
+ }
375
+ firstUpdated() {
376
+ if (this.collectionEntryId) {
377
+ this.showCollectionSearch = false;
378
+ }
379
+ if (this.jobId) {
380
+ __privateGet(this, _harmonyRequestController).startPollForJobStatus(this.jobId, {
381
+ bearerToken: this.bearerToken
382
+ });
383
+ this.dataAccessMode = "subset";
384
+ }
385
+ this.renderHistoryPanel();
386
+ }
387
+ updated(changedProps) {
388
+ var _a, _b, _c;
389
+ super.updated(changedProps);
390
+ const newCollectionInfo = __privateGet(this, _collectionController).collectionInfo;
391
+ if (newCollectionInfo !== this.collectionWithServices) {
392
+ this.collectionWithServices = newCollectionInfo;
393
+ }
394
+ const sampling = (_a = __privateGet(this, _collectionController).sampling) == null ? void 0 : _a.data;
395
+ if ((sampling == null ? void 0 : sampling.minDate) !== this.granuleMinDate) {
396
+ this.granuleMinDate = sampling == null ? void 0 : sampling.minDate;
397
+ }
398
+ if ((sampling == null ? void 0 : sampling.maxDate) !== this.granuleMaxDate) {
399
+ this.granuleMaxDate = sampling == null ? void 0 : sampling.maxDate;
400
+ }
401
+ const newGiovanni = __privateGet(this, _collectionController).giovanniVariables;
402
+ if (newGiovanni.size !== ((_c = (_b = this.giovanniConfiguredVariables) == null ? void 0 : _b.size) != null ? _c : 0)) {
403
+ this.giovanniConfiguredVariables = newGiovanni;
404
+ }
405
+ }
406
+ /** True if the collection contains sub-daily granules. Used by DataSubsetterController to format dates. */
407
+ get isSubDaily() {
408
+ return __privateGet(this, _collectionController).isSubDaily;
409
+ }
410
+ collectionChanged() {
411
+ const { startDate, endDate } = __privateMethod(this, _getCollectionDateRange, getCollectionDateRange_fn).call(this);
412
+ this.selectedDateRange = { startDate, endDate };
413
+ __privateGet(this, _resetFormatSelection).call(this);
414
+ this.collectionLoading = false;
415
+ this.collectionAccordionOpen = false;
416
+ }
417
+ granuleDatesChanged() {
418
+ const newRange = __spreadValues(__spreadValues({}, this.granuleMinDate && { startDate: this.granuleMinDate }), this.granuleMaxDate && { endDate: this.granuleMaxDate });
419
+ if (Object.keys(newRange).length > 0) {
420
+ this.selectedDateRange = __spreadValues(__spreadValues({}, this.selectedDateRange), newRange);
421
+ }
422
+ }
423
+ selectedFormatChanged() {
424
+ if (this.selectedFormat.isGiovanniFormat && this.selectedVariables.length > 1) {
425
+ this.selectedVariables = [this.selectedVariables[0]];
426
+ }
427
+ }
428
+ showDialog() {
429
+ var _a;
430
+ (_a = this.dialogElement) == null ? void 0 : _a.show();
431
+ }
432
+ render() {
433
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
434
+ const showJobStatus = (__privateGet(this, _harmonyRequestController).jobId || this.harmonyRequestError) && !this.refineParameters;
435
+ const showMinimizeButton = showJobStatus && !!this.dialog;
436
+ const title = (_c = (_b = (_a = this.collectionWithServices) == null ? void 0 : _a.collection) == null ? void 0 : _b.EntryTitle) != null ? _c : "Download Data";
437
+ if (!this.collectionWithServices) {
438
+ if (__privateGet(this, _collectionController).hasCapabilitiesError) {
439
+ return b`
440
+ <terra-alert open variant="danger" appearance="white">
441
+ Failed to find the requested collection.
442
+ </terra-alert>
443
+ `;
444
+ }
445
+ }
446
+ const content = b`
447
+ <div class="container">
448
+ ${!this.dialog ? b`
449
+ <div class="header">
450
+ <h1>
451
+ <svg
452
+ class="download-icon"
453
+ viewBox="0 0 24 24"
454
+ fill="currentColor"
455
+ >
456
+ <path
457
+ d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"
458
+ />
459
+ </svg>
460
+ ${title}
461
+ </h1>
462
+
463
+ ${showMinimizeButton ? b`<button
464
+ class="minimize-btn"
465
+ @click=${() => this.minimizeDialog()}
466
+ >
467
+ -
468
+ </button>` : A}
469
+ </div>
470
+ ` : A}
471
+ ${!this.isHistoryView && ((_e = (_d = this.collectionWithServices) == null ? void 0 : _d.services) == null ? void 0 : _e.length) ? b`
472
+ <div class="section">
473
+ ${__privateMethod(this, _renderDataAccessModeSelection, renderDataAccessModeSelection_fn).call(this)}
474
+ </div>
475
+ ` : A}
476
+ ${this.dataAccessMode === "original" ? b`
477
+ <div class="section">
478
+ <terra-data-access
479
+ short-name=${(_h = this.shortName) != null ? _h : (_g = (_f = this.collectionWithServices) == null ? void 0 : _f.collection) == null ? void 0 : _g.ShortName}
480
+ version=${(_k = this.version) != null ? _k : (_j = (_i = this.collectionWithServices) == null ? void 0 : _i.collection) == null ? void 0 : _j.Version}
481
+ ?footer-slot=${!!this.dialog}
482
+ >
483
+ ${this.dialog ? b`
484
+ <div
485
+ slot="footer"
486
+ style="margin-top: 15px;"
487
+ >
488
+ <slot
489
+ name="data-access-footer"
490
+ ></slot>
491
+ </div>
492
+ ` : A}
493
+ </terra-data-access>
494
+ </div>
495
+ ` : showJobStatus ? __privateMethod(this, _renderJobStatus, renderJobStatus_fn).call(this) : __privateMethod(this, _renderSubsetOptions, renderSubsetOptions_fn).call(this)}
496
+ </div>
497
+ `;
498
+ if (this.dialog) {
499
+ return b`
500
+ <terra-dialog id=${this.dialog} style="--title-font-size: 16px;">
501
+ <span
502
+ slot="label"
503
+ style="display: flex; align-items: center; gap: 8px; color: var(--terra-text-brand-on-secondary, #1c67e3); font-weight: 600;"
504
+ >
505
+ <svg
506
+ class="download-icon"
507
+ viewBox="0 0 24 24"
508
+ fill="currentColor"
509
+ style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; flex-shrink: 0;"
510
+ >
511
+ <path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z" />
512
+ </svg>
513
+ ${title}
514
+ </span>
515
+ ${showMinimizeButton ? b`
516
+ <button
517
+ slot="header-actions"
518
+ class="minimize-btn"
519
+ @click=${() => {
520
+ var _a2;
521
+ return (_a2 = this.dialogElement) == null ? void 0 : _a2.hide();
522
+ }}
523
+ aria-label="Minimize"
524
+ >
525
+ -
526
+ </button>
527
+ ` : A}
528
+ <slot name="dialog-header-content"></slot>
529
+ ${content} ${__privateMethod(this, _renderFooterForDialog, renderFooterForDialog_fn).call(this)}
530
+ </terra-dialog>
531
+ `;
532
+ }
533
+ return b`
534
+ <div class="container">
535
+ <div class="header">
536
+ <h1>
537
+ <svg
538
+ class="download-icon"
539
+ viewBox="0 0 24 24"
540
+ fill="currentColor"
541
+ >
542
+ <path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z" />
543
+ </svg>
544
+ ${title}
545
+ </h1>
546
+
547
+ ${showMinimizeButton ? b`<button
548
+ class="minimize-btn"
549
+ @click=${() => this.minimizeDialog()}
550
+ >
551
+ -
552
+ </button>` : A}
553
+ </div>
554
+ ${!this.isHistoryView && ((_m = (_l = this.collectionWithServices) == null ? void 0 : _l.services) == null ? void 0 : _m.length) ? b`
555
+ <div class="section">
556
+ ${__privateMethod(this, _renderDataAccessModeSelection, renderDataAccessModeSelection_fn).call(this)}
557
+ </div>
558
+ ` : A}
559
+ ${this.dataAccessMode === "original" ? b`
560
+ <div class="section">
561
+ <terra-data-access
562
+ short-name=${(_p = this.shortName) != null ? _p : (_o = (_n = this.collectionWithServices) == null ? void 0 : _n.collection) == null ? void 0 : _o.ShortName}
563
+ version=${(_s = this.version) != null ? _s : (_r = (_q = this.collectionWithServices) == null ? void 0 : _q.collection) == null ? void 0 : _r.Version}
564
+ ?footer-slot=${!!this.dialog}
565
+ >
566
+ ${this.dialog ? b`
567
+ <div
568
+ slot="footer"
569
+ style="margin-top: 15px;"
570
+ >
571
+ <slot
572
+ name="data-access-footer"
573
+ ></slot>
574
+ </div>
575
+ ` : A}
576
+ </terra-data-access>
577
+ </div>
578
+ ` : showJobStatus ? __privateMethod(this, _renderJobStatus, renderJobStatus_fn).call(this) : __privateMethod(this, _renderSubsetOptions, renderSubsetOptions_fn).call(this)}
579
+ </div>
580
+ `;
581
+ }
582
+ minimizeDialog() {
583
+ var _a;
584
+ (_a = this.closest("terra-dialog")) == null ? void 0 : _a.hide();
585
+ }
586
+ handleCollectionSearch(searchTerm) {
587
+ this.collectionSearchQuery = searchTerm;
588
+ }
589
+ renderHistoryPanel() {
590
+ const existingHistoryPanel = document.querySelector(
591
+ "terra-data-subsetter-history"
592
+ );
593
+ if (!existingHistoryPanel && this.bearerToken) {
594
+ const historyPanel = document.createElement(
595
+ "terra-data-subsetter-history"
596
+ );
597
+ if (this.bearerToken) {
598
+ historyPanel.setAttribute("bearer-token", this.bearerToken);
599
+ }
600
+ if (this.environment) {
601
+ historyPanel.setAttribute("environment", this.environment);
602
+ }
603
+ document.body.appendChild(historyPanel);
604
+ }
605
+ }
606
+ };
607
+ _collectionController = new WeakMap();
608
+ _authController = new WeakMap();
609
+ _harmonyRequestController = new WeakMap();
610
+ _renderFooterForDialog = new WeakSet();
611
+ renderFooterForDialog_fn = function() {
612
+ const showJobStatus = (__privateGet(this, _harmonyRequestController).jobId || this.harmonyRequestError) && !this.refineParameters;
613
+ if (showJobStatus) {
614
+ if (!__privateGet(this, _harmonyRequestController).jobId) {
615
+ return A;
616
+ }
617
+ return b`
618
+ <div slot="footer" class="footer">
619
+ ${__privateGet(this, _harmonyRequestController).status === "successful" /* SUCCESSFUL */ || __privateGet(this, _harmonyRequestController).status === "complete_with_errors" /* COMPLETE_WITH_ERRORS */ ? b`
620
+ <div
621
+ style="display: flex; align-items: center; gap: 8px;"
622
+ >
623
+ <terra-dropdown
624
+ @terra-select=${__privateMethod(this, _handleDownloadSelect, handleDownloadSelect_fn)}
625
+ >
626
+ <terra-button slot="trigger" caret>
627
+ Download Options
628
+ </terra-button>
629
+ <terra-menu>
630
+ <terra-menu-item value="file-list">
631
+ <svg
632
+ slot="prefix"
633
+ viewBox="0 0 24 24"
634
+ width="16"
635
+ height="16"
636
+ style="width: 16px; height: 16px;"
637
+ >
638
+ <path
639
+ fill="currentColor"
640
+ d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z"
641
+ />
642
+ </svg>
643
+ File List
644
+ </terra-menu-item>
645
+ <terra-menu-item value="python-script">
646
+ <svg
647
+ slot="prefix"
648
+ viewBox="0 0 128 128"
649
+ width="16"
650
+ height="16"
651
+ style="width: 16px; height: 16px;"
652
+ >
653
+ <path
654
+ fill="currentColor"
655
+ d="M49.33 62h29.159C86.606 62 93 55.132 93 46.981V19.183c0-7.912-6.632-13.856-14.555-15.176-5.014-.835-10.195-1.215-15.187-1.191-4.99.023-9.612.448-13.805 1.191C37.098 6.188 35 10.758 35 19.183V30h29v4H23.776c-8.484 0-15.914 5.108-18.237 14.811-2.681 11.12-2.8 17.919 0 29.53C7.614 86.983 12.569 93 21.054 93H31V79.952C31 70.315 39.428 62 49.33 62zm-1.838-39.11c-3.026 0-5.478-2.479-5.478-5.545 0-3.079 2.451-5.581 5.478-5.581 3.015 0 5.479 2.502 5.479 5.581-.001 3.066-2.465 5.545-5.479 5.545zm74.789 25.921C120.183 40.363 116.178 34 107.682 34H97v12.981C97 57.031 88.206 65 78.489 65H49.33C41.342 65 35 72.326 35 80.326v27.8c0 7.91 6.745 12.564 14.462 14.834 9.242 2.717 17.994 3.208 29.051 0C85.862 120.831 93 116.549 93 108.126V97H64v-4h43.682c8.484 0 11.647-5.776 14.599-14.66 3.047-9.145 2.916-17.799 0-29.529zm-41.955 55.606c3.027 0 5.479 2.479 5.479 5.547 0 3.076-2.451 5.579-5.479 5.579-3.015 0-5.478-2.502-5.478-5.579 0-3.068 2.463-5.547 5.478-5.547z"
656
+ ></path>
657
+ </svg>
658
+ Python Script
659
+ </terra-menu-item>
660
+ <terra-menu-item value="earthdata-download">
661
+ <svg
662
+ slot="prefix"
663
+ viewBox="0 0 64 64"
664
+ fill="none"
665
+ width="16"
666
+ height="16"
667
+ style="width: 16px; height: 16px;"
668
+ >
669
+ <circle
670
+ cx="32"
671
+ cy="32"
672
+ r="28"
673
+ fill="currentColor"
674
+ />
675
+ <path
676
+ d="M32 14v26M32 40l-9-9M32 40l9-9"
677
+ stroke="#fff"
678
+ stroke-width="4"
679
+ stroke-linecap="round"
680
+ stroke-linejoin="round"
681
+ fill="none"
682
+ />
683
+ </svg>
684
+ Earthdata Download
685
+ </terra-menu-item>
686
+ </terra-menu>
687
+ </terra-dropdown>
688
+
689
+ <!--
690
+ <terra-button
691
+ outline
692
+ @click=${() => __privateMethod(this, _handleJupyterNotebookClick, handleJupyterNotebookClick_fn).call(this)}
693
+ >
694
+ <terra-icon
695
+ name="outline-code-bracket"
696
+ library="heroicons"
697
+ font-size="1.5em"
698
+ style="margin-right: 5px;"
699
+ ></terra-icon>
700
+ Open in Jupyter Notebook
701
+ </terra-button>
702
+ -->
703
+ </div>
704
+ ` : A}
705
+ ${__privateGet(this, _harmonyRequestController).status === "running" /* RUNNING */ ? b`<button
706
+ class="btn btn-success"
707
+ @click=${__privateMethod(this, _cancelJob, cancelJob_fn)}
708
+ ?disabled=${this.cancelingGetData}
709
+ >
710
+ ${this.cancelingGetData ? "Canceling..." : "Cancel request"}
711
+ </button>` : A}
712
+
713
+ <div class="job-info">
714
+ Job ID:
715
+ <span class="job-id">
716
+ ${this.bearerToken ? b`<a
717
+ href="https://harmony.earthdata.nasa.gov/jobs/${__privateGet(this, _harmonyRequestController).jobId}"
718
+ target="_blank"
719
+ >${__privateGet(this, _harmonyRequestController).jobId}</a
720
+ >` : __privateGet(this, _harmonyRequestController).jobId}
721
+ </span>
722
+ <span class="info-icon">?</span>
723
+ </div>
724
+ </div>
725
+ `;
726
+ }
727
+ if (this.dataAccessMode === "subset") {
728
+ return b`
729
+ <div slot="footer" class="footer">
730
+ <button
731
+ class="btn btn-secondary"
732
+ @click=${__privateGet(this, _resetAllParameters)}
733
+ >
734
+ Reset All
735
+ </button>
736
+ <div>
737
+ <button class="btn btn-primary" @click=${__privateMethod(this, _getData, getData_fn)}>
738
+ Get Data
739
+ </button>
740
+ ${this.jobId ? b`
741
+ <terra-button
742
+ variant="default"
743
+ @click=${__privateMethod(this, _viewRunningJob, viewRunningJob_fn)}
744
+ >
745
+ View Running Job
746
+ </terra-button>
747
+ ` : A}
748
+ </div>
749
+ </div>
750
+ `;
751
+ }
752
+ return A;
753
+ };
754
+ _renderSizeInfo = new WeakSet();
755
+ renderSizeInfo_fn = function(estimates) {
756
+ if (!__privateGet(this, _authController).state.isLoading && !__privateGet(this, _authController).state.user) {
757
+ return b`
758
+ <div class="size-info warning">
759
+ <terra-login>
760
+ <h2 slot="logged-out">Limited access as a guest.</h2>
761
+
762
+ <p slot="logged-out">
763
+ Your results will be capped at 10 links. Log in for full
764
+ access to all data.
765
+ </p>
766
+ </terra-login>
767
+ </div>
768
+ `;
769
+ }
770
+ return b`<div
771
+ class="size-info ${estimates.links >= 150 ? "warning" : "neutral"}"
772
+ >
773
+ <h2>Estimated size of results</h2>
774
+ <div class="size-stats">
775
+ ${estimates.days.toLocaleString()} days,
776
+ ${estimates.links.toLocaleString()} links
777
+ </div>
778
+ ${estimates.links >= 150 ? b`<div class="size-warning">
779
+ You are about to retrieve ${estimates.links.toLocaleString()}
780
+ file links from the archive. You may
781
+ <strong>speed up the request</strong> by limiting the scope of
782
+ your search.
783
+ </div>` : A}
784
+ </div>`;
785
+ };
786
+ _renderSubsetOptions = new WeakSet();
787
+ renderSubsetOptions_fn = function() {
788
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i;
789
+ const estimates = __privateMethod(this, _estimateJobSize, estimateJobSize_fn).call(this);
790
+ const hasSubsetOption = __privateMethod(this, _hasAtLeastOneSubsetOption, hasAtLeastOneSubsetOption_fn).call(this);
791
+ const collection = (_a = this.collectionWithServices) == null ? void 0 : _a.collection;
792
+ const temporalExtents = collection == null ? void 0 : collection.TemporalExtents;
793
+ const spatialExtent = collection == null ? void 0 : collection.SpatialExtent;
794
+ const showTemporalSection = temporalExtents == null ? void 0 : temporalExtents.length;
795
+ const showSpatialSection = (_c = (_b = spatialExtent == null ? void 0 : spatialExtent.HorizontalSpatialDomain) == null ? void 0 : _b.Geometry) == null ? void 0 : _c.BoundingRectangles;
796
+ return b`
797
+ ${this.dataAccessMode === "original" ? A : hasSubsetOption ? b`
798
+ ${hasSubsetOption && estimates ? __privateMethod(this, _renderSizeInfo, renderSizeInfo_fn).call(this, estimates) : A}
799
+ ${this.showCollectionSearch ? b`
800
+ <div class="section">
801
+ <h2 class="section-title">
802
+ Select Data Collection
803
+ </h2>
804
+
805
+ ${__privateMethod(this, _renderSearchForCollection, renderSearchForCollection_fn).call(this)}
806
+ </div>
807
+ ` : A}
808
+ ${((_e = (_d = this.collectionWithServices) == null ? void 0 : _d.summary.outputFormats) == null ? void 0 : _e.length) && hasSubsetOption ? b`
809
+ <div class="section">
810
+ <h2 class="section-title">Output Format</h2>
811
+
812
+ ${__privateMethod(this, _renderOutputFormatSelection, renderOutputFormatSelection_fn).call(this)}
813
+ </div>
814
+ ` : A}
815
+ <div class="section">
816
+ <h2 class="section-title">Subset Options</h2>
817
+ <p style="color: #666; margin-bottom: 16px;">
818
+ Generate file links that support spatial subsetting,
819
+ date/time range selection, and variable selection.
820
+ </p>
821
+
822
+ ${((_f = this.collectionWithServices) == null ? void 0 : _f.summary.subsetting.temporal) ? __privateMethod(this, _renderDateRangeSelection, renderDateRangeSelection_fn).call(this) : A}
823
+ ${__privateMethod(this, _hasSpatialSubset, hasSpatialSubset_fn).call(this) ? __privateMethod(this, _renderSpatialSelection, renderSpatialSelection_fn).call(this) : A}
824
+ ${((_g = this.collectionWithServices) == null ? void 0 : _g.summary.subsetting.variable) ? __privateMethod(this, _renderVariableSelection, renderVariableSelection_fn).call(this) : A}
825
+ ${((_h = this.collectionWithServices) == null ? void 0 : _h.summary.subsetting.variable) && isFeatureEnabled(
826
+ KnownFeatureFlags.DIMENSION_SUBSET,
827
+ this.features
828
+ ) ? __privateMethod(this, _renderDimensionSelection, renderDimensionSelection_fn).call(this) : A}
829
+ </div>
830
+ ` : b`
831
+ ${showTemporalSection && !((_i = this.collectionWithServices) == null ? void 0 : _i.summary.subsetting.temporal) ? __privateMethod(this, _renderAvailableTemporalRangeSection, renderAvailableTemporalRangeSection_fn).call(this) : A}
832
+ ${showSpatialSection && !__privateMethod(this, _hasSpatialSubset, hasSpatialSubset_fn).call(this) ? __privateMethod(this, _renderAvailableSpatialRangeSection, renderAvailableSpatialRangeSection_fn).call(this) : A}
833
+ `}
834
+ ${!hasSubsetOption && estimates ? b`
835
+ <div
836
+ class="neutral-info"
837
+ style="margin-top: 24px; padding: 16px 20px; border-radius: 6px; background: #f8f9fa; color: #555; border: 1px solid #ccc;"
838
+ >
839
+ <strong>Estimated result size:</strong><br />
840
+ Your request will return approximately
841
+ <b>${estimates.links.toLocaleString()}</b> files covering
842
+ <b>${estimates.days.toLocaleString()}</b> days.
843
+ </div>
844
+ ` : A}
845
+ ${this.dataAccessMode === "subset" && !this.dialog ? b`
846
+ <div class="footer">
847
+ <button
848
+ class="btn btn-secondary"
849
+ @click=${__privateGet(this, _resetAllParameters)}
850
+ >
851
+ Reset All
852
+ </button>
853
+ <div>
854
+ <button class="btn btn-primary" @click=${__privateMethod(this, _getData, getData_fn)}>
855
+ Get Data
856
+ </button>
857
+ ${this.jobId ? b`
858
+ <terra-button
859
+ variant="default"
860
+ @click=${__privateMethod(this, _viewRunningJob, viewRunningJob_fn)}
861
+ >
862
+ View Running Job
863
+ </terra-button>
864
+ ` : A}
865
+ </div>
866
+ </div>
867
+ ` : A}
868
+ `;
869
+ };
870
+ _resetAllParameters = new WeakMap();
871
+ _renderSearchForCollection = new WeakSet();
872
+ renderSearchForCollection_fn = function() {
873
+ var _a, _b;
874
+ let placeholder = "Search all types of resources (e.g. rainfall, GPM, hurricanes, etc.)";
875
+ if (this.collectionSearchType === "collection") {
876
+ placeholder = "Search collections (e.g. AQUA, GPM_3IMERGH, etc.)";
877
+ }
878
+ if (this.collectionSearchType === "variable") {
879
+ placeholder = "Search variables (e.g. rainfall, hurricanes, etc.)";
880
+ }
881
+ return b`
882
+ <terra-accordion .open=${this.collectionAccordionOpen}>
883
+ <div slot="summary">
884
+ <span class="accordion-title">Collection:</span>
885
+ </div>
886
+
887
+ <div
888
+ slot="summary-right"
889
+ style="display: flex; align-items: center; gap: 10px"
890
+ >
891
+ ${this.collectionEntryId ? b` <span
892
+ class="accordion-value"
893
+ id="selected-collection-display"
894
+ >${this.collectionEntryId}</span
895
+ >
896
+
897
+ <button
898
+ class="reset-btn"
899
+ @click=${() => this.collectionEntryId = void 0}
900
+ >
901
+ Reset
902
+ </button>` : A}
903
+ </div>
904
+
905
+ <div class="search-tabs-mini">
906
+ <button
907
+ class="search-tab-mini ${this.collectionSearchType === "all" ? "active" : ""}"
908
+ @click=${() => this.collectionSearchType = "all"}
909
+ >
910
+ All
911
+ </button>
912
+ <button
913
+ class="search-tab-mini ${this.collectionSearchType === "collection" ? "active" : ""}"
914
+ @click=${() => this.collectionSearchType = "collection"}
915
+ >
916
+ Collections
917
+ </button>
918
+ <button
919
+ class="search-tab-mini ${this.collectionSearchType === "variable" ? "active" : ""}"
920
+ @click=${() => this.collectionSearchType = "variable"}
921
+ >
922
+ Variables
923
+ </button>
924
+ </div>
925
+
926
+ <div class="search-container-mini">
927
+ <input
928
+ type="text"
929
+ class="search-input-mini"
930
+ id="search-input"
931
+ placeholder=${placeholder}
932
+ @input="${(e2) => this.handleCollectionSearch(
933
+ e2.target.value
934
+ )}"
935
+ />
936
+
937
+ <button class="search-button-mini">
938
+ <svg
939
+ class="search-icon-mini"
940
+ viewBox="0 0 24 24"
941
+ fill="currentColor"
942
+ >
943
+ <path
944
+ d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"
945
+ />
946
+ </svg>
947
+ Search
948
+ </button>
949
+ </div>
950
+
951
+ <!-- TODO: it may be nice to have a quick search, perhaps by recent trends?
952
+ <div class="quick-links-mini">
953
+ <a href="#" class="quick-link-mini" onclick="quickSearch('GPM')"
954
+ >GPM Precipitation</a
955
+ >
956
+ <a href="#" class="quick-link-mini" onclick="quickSearch('MODIS')"
957
+ >MODIS Data</a
958
+ >
959
+ <a
960
+ href="#"
961
+ class="quick-link-mini"
962
+ onclick="quickSearch('Landsat')"
963
+ >Landsat Imagery</a
964
+ >
965
+ <a href="#" class="quick-link-mini" onclick="quickSearch('AIRS')"
966
+ >Atmospheric Data</a
967
+ >
968
+ </div>
969
+ -->
970
+
971
+ <div id="search-results-section" class="search-results-section">
972
+ ${this.collectionSearchLoading ? b`
973
+ <div id="loading-mini" class="loading-mini">
974
+ <div class="spinner-mini"></div>
975
+ <div>Searching NASA CMR...</div>
976
+ </div>
977
+ ` : ((_a = this.collectionSearchResults) == null ? void 0 : _a.length) ? b` <div
978
+ id="results-container-mini"
979
+ class="results-container-mini"
980
+ >
981
+ ${(_b = this.collectionSearchResults) == null ? void 0 : _b.map(
982
+ (item) => b`
983
+ <div
984
+ class="result-item-mini"
985
+ @click=${() => {
986
+ this.collectionEntryId = item.collectionEntryId;
987
+ this.collectionAccordionOpen = false;
988
+ this.collectionLoading = true;
989
+ if (item.type === "variable") {
990
+ this.selectedVariables = [
991
+ {
992
+ name: item.entryId,
993
+ href: "",
994
+ conceptId: item.conceptId
995
+ }
996
+ ];
997
+ }
998
+ this.requestUpdate();
999
+ }}
1000
+ style="cursor: pointer;"
1001
+ >
1002
+ <div class="result-title-mini">
1003
+ ${item.title}
1004
+ </div>
1005
+ <div class="result-id-mini">
1006
+ ${item.entryId}
1007
+ </div>
1008
+ <div class="result-description-mini">
1009
+ ${item.summary || item.title}
1010
+ </div>
1011
+ <div class="result-meta-mini">
1012
+ <span>📅 2000-02-24 - ongoing</span>
1013
+ <span>🌍 Global</span>
1014
+ <span>🏢 ${item.provider}</span>
1015
+ ${item.type === "variable" ? b` <span
1016
+ >📊
1017
+ ${item.collectionEntryId}</span
1018
+ >` : A}
1019
+ <span class="tag-mini"
1020
+ >${item.type.toUpperCase()}</span
1021
+ >
1022
+ </div>
1023
+ </div>
1024
+ `
1025
+ )}
1026
+ </div>` : this.collectionSearchResults && this.collectionSearchResults.length === 0 ? b`<div id="no-results-mini" class="no-results-mini">
1027
+ <p>
1028
+ No results found for
1029
+ '${this.collectionSearchQuery}'. Try adjusting
1030
+ your search term.
1031
+ </p>
1032
+ </div>` : A}
1033
+ </div>
1034
+ </terra-accordion>
1035
+
1036
+ ${this.collectionLoading ? b`
1037
+ <div
1038
+ class="collection-loading-bar"
1039
+ style="display: flex; align-items: center; gap: 10px; margin: 16px 0;"
1040
+ >
1041
+ <span
1042
+ class="loading-spinner"
1043
+ style="width: 20px; height: 20px; border: 3px solid #ccc; border-top: 3px solid #31708f; border-radius: 50%; display: inline-block; animation: spin 1s linear infinite;"
1044
+ ></span>
1045
+ Retrieving collection, please wait...
1046
+ </div>
1047
+ <style>
1048
+ @keyframes spin {
1049
+ 0% {
1050
+ transform: rotate(0deg);
1051
+ }
1052
+ 100% {
1053
+ transform: rotate(360deg);
1054
+ }
1055
+ }
1056
+ </style>
1057
+ ` : A}
1058
+ `;
1059
+ };
1060
+ _renderOutputFormatSelection = new WeakSet();
1061
+ renderOutputFormatSelection_fn = function() {
1062
+ return b`
1063
+ <terra-accordion>
1064
+ <div slot="summary">
1065
+ <span class="accordion-title">File Format:</span>
1066
+ </div>
1067
+
1068
+ <div
1069
+ slot="summary-right"
1070
+ style="display: flex; align-items: center; gap: 10px;"
1071
+ >
1072
+ <span>${this.selectedFormat.label}</span>
1073
+
1074
+ <button class="reset-btn" @click=${__privateGet(this, _resetFormatSelection)}>
1075
+ Reset
1076
+ </button>
1077
+ </div>
1078
+
1079
+ <div class="accordion-content" style="margin-top: 12px;">
1080
+ ${(() => {
1081
+ var _a;
1082
+ return (((_a = this.collectionWithServices) == null ? void 0 : _a.configuredOutputFormats) || []).map(
1083
+ (format) => b`
1084
+ <label
1085
+ style="display: flex; align-items: center; gap: 8px; padding: 5px;"
1086
+ >
1087
+ <input
1088
+ type="radio"
1089
+ name="output-format"
1090
+ value="${format}"
1091
+ .checked=${this.selectedFormat === format}
1092
+ @change=${() => this.selectedFormat = format}
1093
+ />
1094
+ ${format.label}
1095
+ </label>
1096
+ `
1097
+ );
1098
+ })()}
1099
+ </div>
1100
+ </terra-accordion>
1101
+ `;
1102
+ };
1103
+ _renderDateRangeSelection = new WeakSet();
1104
+ renderDateRangeSelection_fn = function() {
1105
+ var _a, _b, _c, _d, _e, _f, _g, _h;
1106
+ const { startDate: defaultStartDate, endDate: defaultEndDate } = __privateMethod(this, _getCollectionDateRange, getCollectionDateRange_fn).call(this);
1107
+ const startDate = (_b = (_a = this.selectedDateRange.startDate) != null ? _a : this.granuleMinDate) != null ? _b : defaultStartDate;
1108
+ const endDate = (_d = (_c = this.selectedDateRange.endDate) != null ? _c : this.granuleMaxDate) != null ? _d : defaultEndDate;
1109
+ const showError = this.touchedFields.has("date") && (!this.selectedDateRange.startDate || !this.selectedDateRange.endDate);
1110
+ return b`
1111
+ <terra-accordion>
1112
+ <div slot="summary">
1113
+ <span class="accordion-title">Refine Date Range:</span>
1114
+ </div>
1115
+
1116
+ <div
1117
+ slot="summary-right"
1118
+ style="display: flex; align-items: center; gap: 10px;"
1119
+ >
1120
+ ${showError ? b`<span class="accordion-value error"
1121
+ >Please select a date range</span
1122
+ >` : this.touchedFields.has("date") && startDate && endDate ? b`<span class="accordion-value"
1123
+ >${startDate} to ${endDate}</span
1124
+ >` : A}
1125
+ <button class="reset-btn" @click=${__privateGet(this, _resetDateRangeSelection)}>
1126
+ Reset
1127
+ </button>
1128
+ </div>
1129
+
1130
+ <div style="width: 300px">
1131
+ <terra-date-picker
1132
+ allow-input
1133
+ inline
1134
+ range
1135
+ split-inputs
1136
+ show-presets
1137
+ ?enable-time=${this.isSubDaily}
1138
+ start-label="Start Date"
1139
+ end-label="End Date"
1140
+ .minDate=${(_e = this.granuleMinDate) != null ? _e : defaultStartDate}
1141
+ .maxDate=${(_f = this.granuleMaxDate) != null ? _f : defaultEndDate}
1142
+ .startDate=${(_g = this.selectedDateRange.startDate) != null ? _g : this.granuleMinDate}
1143
+ .endDate=${(_h = this.selectedDateRange.endDate) != null ? _h : this.granuleMaxDate}
1144
+ .useEndOfDay=${!this.selectedFormat.isGiovanniFormat}
1145
+ @terra-date-range-change=${__privateGet(this, _handleDateChange)}
1146
+ ></terra-date-picker>
1147
+ </div>
1148
+
1149
+ <div style="display: flex; gap: 16px; margin-top: 15px;">
1150
+ <span
1151
+ ><strong>Available Range:</strong> ${defaultStartDate} to
1152
+ ${defaultEndDate}</span
1153
+ >
1154
+ ${this.isSubDaily ? b`<span
1155
+ ><strong>Note:</strong> All dates and times are in
1156
+ UTC.</span
1157
+ >` : A}
1158
+ </div>
1159
+ </terra-accordion>
1160
+ `;
1161
+ };
1162
+ _handleDateChange = new WeakMap();
1163
+ _resetDateRangeSelection = new WeakMap();
1164
+ _resetFormatSelection = new WeakMap();
1165
+ _getCollectionDateRange = new WeakSet();
1166
+ getCollectionDateRange_fn = function() {
1167
+ var _a, _b;
1168
+ const samplingMinDate = this.granuleMinDate;
1169
+ const samplingMaxDate = this.granuleMaxDate;
1170
+ if (samplingMinDate && samplingMaxDate) {
1171
+ return {
1172
+ startDate: samplingMinDate.slice(0, 10),
1173
+ endDate: samplingMaxDate.slice(0, 10)
1174
+ };
1175
+ }
1176
+ const temporalExtents = (_b = (_a = this.collectionWithServices) == null ? void 0 : _a.collection) == null ? void 0 : _b.TemporalExtents;
1177
+ if (!(temporalExtents == null ? void 0 : temporalExtents.length))
1178
+ return {
1179
+ startDate: null,
1180
+ endDate: null
1181
+ };
1182
+ let minStart = null;
1183
+ let maxEnd = null;
1184
+ const today = /* @__PURE__ */ new Date();
1185
+ for (const temporal of temporalExtents) {
1186
+ for (const range of temporal.RangeDateTimes || []) {
1187
+ const start = new Date(range.BeginningDateTime);
1188
+ let end;
1189
+ if (temporal.EndsAtPresentFlag || !range.EndingDateTime) {
1190
+ end = today;
1191
+ } else {
1192
+ end = new Date(range.EndingDateTime);
1193
+ }
1194
+ if (!minStart || start < minStart)
1195
+ minStart = start;
1196
+ if (!maxEnd || end > maxEnd)
1197
+ maxEnd = end;
1198
+ }
1199
+ }
1200
+ return {
1201
+ startDate: minStart ? minStart.toISOString().slice(0, 10) : null,
1202
+ endDate: maxEnd ? maxEnd.toISOString().slice(0, 10) : null
1203
+ };
1204
+ };
1205
+ _renderSpatialSelection = new WeakSet();
1206
+ renderSpatialSelection_fn = function() {
1207
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m;
1208
+ const showError = this.touchedFields.has("spatial") && !this.spatialSelection && !this.shapeGeoJson;
1209
+ const spatialString = (_c = (_b = this.spatialLabel) != null ? _b : (_a = this.spatialSelection) == null ? void 0 : _a.toString()) != null ? _c : void 0;
1210
+ const spatialInitialValue = (_e = (_d = this.spatialSelection) == null ? void 0 : _d.toString()) != null ? _e : void 0;
1211
+ return b`
1212
+ <terra-accordion>
1213
+ <div slot="summary">
1214
+ <span class="accordion-title">Refine Region:</span>
1215
+ </div>
1216
+
1217
+ <div
1218
+ slot="summary-right"
1219
+ style="display: flex; align-items: center; gap: 10px;"
1220
+ >
1221
+ ${showError ? b`<span class="accordion-value error"
1222
+ >Please select a region</span
1223
+ >` : spatialString ? b`<span class="accordion-value"
1224
+ >${spatialString}</span
1225
+ >` : A}
1226
+ <button class="reset-btn" @click=${__privateGet(this, _resetSpatialSelection)}>
1227
+ Reset
1228
+ </button>
1229
+ </div>
1230
+ <div class="accordion-content">
1231
+ <terra-spatial-picker
1232
+ part="spatial-picker"
1233
+ inline
1234
+ hide-label
1235
+ .spatialConstraints=${__privateGet(this, _collectionController).spatialConstraints || "-180, -90, 180, 90"}
1236
+ .initialValue=${spatialInitialValue}
1237
+ ?has-shape-selector=${(_i = (_h = (_g = (_f = this.collectionWithServices) == null ? void 0 : _f.summary) == null ? void 0 : _g.subsetting) == null ? void 0 : _h.shape) != null ? _i : false}
1238
+ ?show-polygon-selection=${(_m = (_l = (_k = (_j = this.collectionWithServices) == null ? void 0 : _j.summary) == null ? void 0 : _k.subsetting) == null ? void 0 : _l.shape) != null ? _m : false}
1239
+ @terra-map-change=${__privateGet(this, _handleSpatialChange)}
1240
+ ></terra-spatial-picker>
1241
+ <div
1242
+ style="display: flex; gap: 16px; margin-top: 15px; color: #31708f;"
1243
+ >
1244
+ <span
1245
+ ><strong>Available Range:</strong> ${__privateGet(this, _collectionController).spatialConstraints}</span
1246
+ >
1247
+ </div>
1248
+ </div>
1249
+ </terra-accordion>
1250
+ `;
1251
+ };
1252
+ _handleSpatialChange = new WeakMap();
1253
+ _resetSpatialSelection = new WeakMap();
1254
+ _renderVariableSelection = new WeakSet();
1255
+ renderVariableSelection_fn = function() {
1256
+ var _a;
1257
+ const variables = ((_a = this.collectionWithServices) == null ? void 0 : _a.variables) || [];
1258
+ const giovanniError = this.touchedFields.has("variables") && __privateMethod(this, _getGiovanniValidationError, getGiovanniValidationError_fn).call(this);
1259
+ const basicError = this.touchedFields.has("variables") && this.selectedVariables.length === 0;
1260
+ const showError = giovanniError || basicError;
1261
+ const errorMessage = giovanniError || (basicError ? "Please select at least one variable" : "");
1262
+ const tree = __privateMethod(this, _buildVariableTree, buildVariableTree_fn).call(this, variables);
1263
+ const allGroups = __privateMethod(this, _getAllGroupPaths, getAllGroupPaths_fn).call(this, tree);
1264
+ const allExpanded = allGroups.length > 0 && allGroups.every((g) => this.expandedVariableGroups.has(g));
1265
+ return b`
1266
+ <terra-accordion>
1267
+ <div slot="summary">
1268
+ <span class="accordion-title">Select Variables:</span>
1269
+ </div>
1270
+ <div
1271
+ slot="summary-right"
1272
+ style="display: flex; align-items: center; gap: 10px;"
1273
+ >
1274
+ ${showError ? b`<span class="accordion-value error"
1275
+ >${errorMessage}</span
1276
+ >` : this.selectedVariables.length ? b`<span class="accordion-value"
1277
+ >${this.selectedVariables.length} selected</span
1278
+ >` : A}
1279
+
1280
+ <button class="reset-btn" @click=${__privateGet(this, _resetVariableSelection)}>
1281
+ Reset
1282
+ </button>
1283
+ </div>
1284
+ <div class="accordion-content">
1285
+ <terra-input
1286
+ label="Filter variables"
1287
+ placeholder="Search by variable name..."
1288
+ .value=${this.variableFilterText}
1289
+ @input=${(e2) => {
1290
+ const input = e2.target;
1291
+ this.variableFilterText = input.value;
1292
+ __privateMethod(this, _handleVariableFilterChange, handleVariableFilterChange_fn).call(this);
1293
+ }}
1294
+ style="margin-bottom: 10px;"
1295
+ ></terra-input>
1296
+ <button
1297
+ class="reset-btn"
1298
+ style="margin-bottom: 10px;"
1299
+ @click=${() => __privateMethod(this, _toggleExpandCollapseAll, toggleExpandCollapseAll_fn).call(this, tree)}
1300
+ >
1301
+ ${allExpanded ? "Collapse Tree" : "Expand Tree"}
1302
+ </button>
1303
+
1304
+ ${this.selectedFormat.isGiovanniFormat && this.giovanniConfiguredVariables ? b`
1305
+ <terra-alert
1306
+ open
1307
+ appearance="white"
1308
+ style="margin: 10px 0"
1309
+ >
1310
+ <terra-icon
1311
+ slot="icon"
1312
+ name="outline-information-circle"
1313
+ library="heroicons"
1314
+ ></terra-icon>
1315
+ Only certain variables are supported for the
1316
+ selected output format. (Giovanni service)
1317
+ </terra-alert>
1318
+ ` : A}
1319
+ ${variables.length === 0 ? b`<p style="color: #666; font-style: italic;">
1320
+ No variables available for this collection.
1321
+ </p>` : __privateMethod(this, _renderVariableTree, renderVariableTree_fn).call(this, __privateMethod(this, _filterVariableTree, filterVariableTree_fn).call(this, tree), [])}
1322
+ </div>
1323
+ </terra-accordion>
1324
+ `;
1325
+ };
1326
+ _renderDimensionGroup = new WeakSet();
1327
+ renderDimensionGroup_fn = function(dim) {
1328
+ var _a, _b, _c, _d, _e, _f;
1329
+ const currentValue = (_a = this.selectedDimensionIndexes[dim.name]) != null ? _a : 1;
1330
+ const dimensions = ((_f = (_e = (_d = (_c = (_b = __privateGet(this, _collectionController).gesDiscCollection) == null ? void 0 : _b.data) == null ? void 0 : _c.services) == null ? void 0 : _d.subset) == null ? void 0 : _e.find(
1331
+ (s) => s.dimensions && s.dimensions.length > 0
1332
+ )) == null ? void 0 : _f.dimensions) || [];
1333
+ return b`
1334
+ <div style="margin-bottom: 16px;">
1335
+ <div
1336
+ style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px;"
1337
+ >
1338
+ <span style="font-weight: 600; margin-bottom: 44px"
1339
+ >Dimension: ${dim.name}</span
1340
+ >
1341
+ </div>
1342
+ <terra-slider
1343
+ class="dimension-slider"
1344
+ mode="range"
1345
+ min="1"
1346
+ .max=${dim.size}
1347
+ step="1"
1348
+ .startValue=${currentValue.start}
1349
+ .endValue=${currentValue.end}
1350
+ has-tooltips
1351
+ show-inputs
1352
+ hide-label
1353
+ .formatTooltip=${dimensions.length > 0 ? (value) => {
1354
+ const found = dimensions.find(
1355
+ (d) => String(d.value) === String(value)
1356
+ );
1357
+ return found ? found.label : String(value);
1358
+ } : A}
1359
+ @terra-slider-change=${(event) => {
1360
+ if ("startValue" in event.detail) {
1361
+ const { startValue, endValue } = event.detail;
1362
+ __privateMethod(this, _setDimensionValue, setDimensionValue_fn).call(this, dim.name, startValue, endValue);
1363
+ }
1364
+ }}
1365
+ ></terra-slider>
1366
+ </div>
1367
+ `;
1368
+ };
1369
+ _setDimensionValue = new WeakSet();
1370
+ setDimensionValue_fn = function(dimName, startValue, endValue) {
1371
+ const dimensions = __privateMethod(this, _getCommonSelectableDimensions, getCommonSelectableDimensions_fn).call(this);
1372
+ const found = dimensions.find((d) => d.name === dimName);
1373
+ if (!found) {
1374
+ return;
1375
+ }
1376
+ const normalizedStartValue = Math.min(
1377
+ Math.max(Math.round(startValue), 1),
1378
+ found.size
1379
+ );
1380
+ const normalizedEndValue = Math.min(
1381
+ Math.max(Math.round(endValue != null ? endValue : startValue), 1),
1382
+ found.size
1383
+ );
1384
+ if (normalizedStartValue <= 1 && normalizedEndValue >= found.size) {
1385
+ delete this.selectedDimensionIndexes[dimName];
1386
+ return;
1387
+ }
1388
+ this.selectedDimensionIndexes = __spreadProps(__spreadValues({}, this.selectedDimensionIndexes), {
1389
+ [dimName]: { start: normalizedStartValue, end: normalizedEndValue }
1390
+ });
1391
+ };
1392
+ _renderDimensionSelection = new WeakSet();
1393
+ renderDimensionSelection_fn = function() {
1394
+ const dimensions = __privateMethod(this, _getCommonSelectableDimensions, getCommonSelectableDimensions_fn).call(this);
1395
+ if (!dimensions.length) {
1396
+ return A;
1397
+ }
1398
+ const selectedCount = Object.keys(this.selectedDimensionIndexes).length;
1399
+ return b`
1400
+ <terra-accordion>
1401
+ <div slot="summary">
1402
+ <span class="accordion-title">Select Dimensions:</span>
1403
+ </div>
1404
+ <div
1405
+ slot="summary-right"
1406
+ style="display: flex; align-items: center; gap: 10px;"
1407
+ >
1408
+ ${selectedCount ? b`<span class="accordion-value"
1409
+ >${selectedCount}
1410
+ dimension${selectedCount === 1 ? "" : "s"}
1411
+ selected</span
1412
+ >` : A}
1413
+ <button class="reset-btn" @click=${__privateMethod(this, _resetDimensionSelection, resetDimensionSelection_fn)}>
1414
+ Reset
1415
+ </button>
1416
+ </div>
1417
+ <div class="accordion-content">
1418
+ ${dimensions.map((dim) => __privateMethod(this, _renderDimensionGroup, renderDimensionGroup_fn).call(this, dim))}
1419
+ </div>
1420
+ </terra-accordion>
1421
+ `;
1422
+ };
1423
+ _filterVariableTree = new WeakSet();
1424
+ filterVariableTree_fn = function(tree) {
1425
+ if (!this.variableFilterText.trim()) {
1426
+ return tree;
1427
+ }
1428
+ const filterText = this.variableFilterText.toLowerCase().trim();
1429
+ const filterNode = (node) => {
1430
+ const result = {};
1431
+ for (const [key, value] of Object.entries(node)) {
1432
+ if (value.__isLeaf) {
1433
+ const variableName = value.__variable.name.toLowerCase();
1434
+ if (variableName.includes(filterText)) {
1435
+ result[key] = value;
1436
+ }
1437
+ } else {
1438
+ const filteredChildren = filterNode(value.__children);
1439
+ if (Object.keys(filteredChildren).length > 0 || key.toLowerCase().includes(filterText)) {
1440
+ result[key] = __spreadProps(__spreadValues({}, value), {
1441
+ __children: filteredChildren
1442
+ });
1443
+ }
1444
+ }
1445
+ }
1446
+ return result;
1447
+ };
1448
+ return filterNode(tree);
1449
+ };
1450
+ _handleVariableFilterChange = new WeakSet();
1451
+ handleVariableFilterChange_fn = function() {
1452
+ var _a;
1453
+ if (!this.variableFilterText.trim()) {
1454
+ return;
1455
+ }
1456
+ const variables = ((_a = this.collectionWithServices) == null ? void 0 : _a.variables) || [];
1457
+ const tree = __privateMethod(this, _buildVariableTree, buildVariableTree_fn).call(this, variables);
1458
+ const filterText = this.variableFilterText.toLowerCase().trim();
1459
+ const groupsToExpand = /* @__PURE__ */ new Set();
1460
+ const findMatchingGroups = (node, path = []) => {
1461
+ for (const [key, value] of Object.entries(node)) {
1462
+ if (value.__isLeaf) {
1463
+ const variableName = value.__variable.name.toLowerCase();
1464
+ if (variableName.includes(filterText)) {
1465
+ for (let i = 0; i < path.length; i++) {
1466
+ const groupPath = path.slice(0, i + 1).join("/");
1467
+ groupsToExpand.add(groupPath);
1468
+ }
1469
+ }
1470
+ } else {
1471
+ const groupPath = [...path, key].join("/");
1472
+ findMatchingGroups(value.__children, [...path, key]);
1473
+ if (key.toLowerCase().includes(filterText)) {
1474
+ groupsToExpand.add(groupPath);
1475
+ }
1476
+ }
1477
+ }
1478
+ };
1479
+ findMatchingGroups(tree);
1480
+ if (groupsToExpand.size > 0) {
1481
+ this.expandedVariableGroups = /* @__PURE__ */ new Set([
1482
+ ...this.expandedVariableGroups,
1483
+ ...groupsToExpand
1484
+ ]);
1485
+ }
1486
+ };
1487
+ _buildVariableTree = new WeakSet();
1488
+ buildVariableTree_fn = function(variables) {
1489
+ let filteredVariables = variables;
1490
+ if (this.selectedFormat.isGiovanniFormat && this.giovanniConfiguredVariables) {
1491
+ filteredVariables = variables.filter((v) => {
1492
+ var _a, _b, _c;
1493
+ const shortName = (_a = this.collectionWithServices) == null ? void 0 : _a.shortName;
1494
+ const version = (_c = (_b = this.collectionWithServices) == null ? void 0 : _b.collection) == null ? void 0 : _c.Version;
1495
+ if (!shortName || !version) {
1496
+ return false;
1497
+ }
1498
+ const giovanniVariableName = convertVariableEntryIdToGiovanniFormat(
1499
+ shortName,
1500
+ version,
1501
+ v.name
1502
+ );
1503
+ return this.giovanniConfiguredVariables.has(giovanniVariableName);
1504
+ });
1505
+ }
1506
+ const root = {};
1507
+ for (const v of filteredVariables) {
1508
+ const parts = v.name.split("/");
1509
+ let node = root;
1510
+ for (let i = 0; i < parts.length; i++) {
1511
+ const part = parts[i];
1512
+ if (!node[part])
1513
+ node[part] = { __children: {}, __isLeaf: false };
1514
+ if (i === parts.length - 1) {
1515
+ node[part].__isLeaf = true;
1516
+ node[part].__variable = v;
1517
+ }
1518
+ node = node[part].__children;
1519
+ }
1520
+ }
1521
+ return root;
1522
+ };
1523
+ _renderVariableTree = new WeakSet();
1524
+ renderVariableTree_fn = function(node, path) {
1525
+ const isGiovanni = this.selectedFormat.isGiovanniFormat;
1526
+ return b`
1527
+ <div style="margin-left: ${path.length * 20}px;">
1528
+ ${Object.entries(node).map(([key, value]) => {
1529
+ var _a;
1530
+ const groupPath = [...path, key].join("/");
1531
+ if (value.__isLeaf) {
1532
+ const ummVar = cmr_variable_service_default.getVariableByName(
1533
+ key,
1534
+ (_a = __privateGet(this, _collectionController).variables) == null ? void 0 : _a.data
1535
+ );
1536
+ const variableLabel = ummVar ? cmr_variable_service_default.getVariableDisplayLabel(ummVar) : key;
1537
+ return b`
1538
+ <div class="option-row">
1539
+ <label class="checkbox-option">
1540
+ <input
1541
+ type="${isGiovanni ? "radio" : "checkbox"}"
1542
+ name="${isGiovanni ? "variable-selection" : ""}"
1543
+ .checked=${this.selectedVariables.some(
1544
+ (v) => v.name === value.__variable.name
1545
+ )}
1546
+ @change=${(e2) => __privateMethod(this, _toggleVariableSelection, toggleVariableSelection_fn).call(this, e2, value.__variable)}
1547
+ />
1548
+ <span>${variableLabel}</span>
1549
+ </label>
1550
+ </div>
1551
+ `;
1552
+ } else {
1553
+ const expanded = this.expandedVariableGroups.has(groupPath);
1554
+ return b`
1555
+ <div class="option-row" style="align-items: flex-start;">
1556
+ <span
1557
+ style="cursor: pointer; display: flex; align-items: center;"
1558
+ @click=${() => __privateMethod(this, _toggleGroupExpand, toggleGroupExpand_fn).call(this, groupPath)}
1559
+ >
1560
+ <terra-icon
1561
+ library="heroicons"
1562
+ name="${expanded ? "outline-minus-circle" : "outline-plus-circle"}"
1563
+ style="margin-right: 4px;"
1564
+ ></terra-icon>
1565
+ <span style="font-weight: 500;">${key}</span>
1566
+ </span>
1567
+ </div>
1568
+ ${expanded ? __privateMethod(this, _renderVariableTree, renderVariableTree_fn).call(this, value.__children, [
1569
+ ...path,
1570
+ key
1571
+ ]) : ""}
1572
+ `;
1573
+ }
1574
+ })}
1575
+ </div>
1576
+ `;
1577
+ };
1578
+ _getAllGroupPaths = new WeakSet();
1579
+ getAllGroupPaths_fn = function(node, path = []) {
1580
+ let groups = [];
1581
+ for (const [key, value] of Object.entries(node)) {
1582
+ if (!value.__isLeaf) {
1583
+ const groupPath = [...path, key].join("/");
1584
+ groups.push(groupPath);
1585
+ groups = groups.concat(
1586
+ __privateMethod(this, _getAllGroupPaths, getAllGroupPaths_fn).call(this, value.__children, [...path, key])
1587
+ );
1588
+ }
1589
+ }
1590
+ return groups;
1591
+ };
1592
+ _toggleGroupExpand = new WeakSet();
1593
+ toggleGroupExpand_fn = function(groupPath) {
1594
+ const set = new Set(this.expandedVariableGroups);
1595
+ if (set.has(groupPath)) {
1596
+ set.delete(groupPath);
1597
+ } else {
1598
+ set.add(groupPath);
1599
+ }
1600
+ this.expandedVariableGroups = set;
1601
+ };
1602
+ _toggleExpandCollapseAll = new WeakSet();
1603
+ toggleExpandCollapseAll_fn = function(tree) {
1604
+ const allGroups = __privateMethod(this, _getAllGroupPaths, getAllGroupPaths_fn).call(this, tree);
1605
+ const allExpanded = allGroups.length > 0 && allGroups.every((g) => this.expandedVariableGroups.has(g));
1606
+ if (allExpanded) {
1607
+ this.expandedVariableGroups = /* @__PURE__ */ new Set();
1608
+ } else {
1609
+ this.expandedVariableGroups = new Set(allGroups);
1610
+ }
1611
+ };
1612
+ _toggleVariableSelection = new WeakSet();
1613
+ toggleVariableSelection_fn = function(e2, variable) {
1614
+ __privateMethod(this, _markFieldTouched, markFieldTouched_fn).call(this, "variables");
1615
+ const checked = e2.target.checked;
1616
+ if (this.selectedFormat.isGiovanniFormat) {
1617
+ if (checked) {
1618
+ this.selectedVariables = [variable];
1619
+ }
1620
+ } else {
1621
+ if (checked) {
1622
+ if (!this.selectedVariables.some((v) => v.name === variable.name)) {
1623
+ this.selectedVariables = [...this.selectedVariables, variable];
1624
+ }
1625
+ } else {
1626
+ this.selectedVariables = this.selectedVariables.filter(
1627
+ (v) => v.name !== variable.name
1628
+ );
1629
+ }
1630
+ }
1631
+ };
1632
+ _markFieldTouched = new WeakSet();
1633
+ markFieldTouched_fn = function(field) {
1634
+ this.touchedFields = new Set(this.touchedFields).add(field);
1635
+ };
1636
+ _resetVariableSelection = new WeakMap();
1637
+ _resetDimensionSelection = new WeakSet();
1638
+ resetDimensionSelection_fn = function() {
1639
+ this.selectedDimensionIndexes = {};
1640
+ };
1641
+ _isDimensionExcluded = new WeakSet();
1642
+ isDimensionExcluded_fn = function(dim) {
1643
+ var _a, _b, _c;
1644
+ const normalizedName = (_b = (_a = dim.Name) == null ? void 0 : _a.toLowerCase()) != null ? _b : "";
1645
+ const normalizedType = ((_c = dim.Type) != null ? _c : "").toLowerCase();
1646
+ return ["time", "latitude", "longitude", "lat", "lon", "x", "y"].some(
1647
+ (value) => normalizedName.includes(value) || normalizedType.includes(value)
1648
+ );
1649
+ };
1650
+ _getCommonSelectableDimensions = new WeakSet();
1651
+ getCommonSelectableDimensions_fn = function() {
1652
+ var _a, _b;
1653
+ const variables = (_a = __privateGet(this, _collectionController).variables) == null ? void 0 : _a.data;
1654
+ if (!variables) {
1655
+ return [];
1656
+ }
1657
+ const allUmmVars = (_b = variables.items) != null ? _b : [];
1658
+ if (!allUmmVars.length) {
1659
+ return [];
1660
+ }
1661
+ const allDimensionSets = allUmmVars.map(
1662
+ (v) => {
1663
+ var _a2;
1664
+ return (_a2 = v.umm.Dimensions) != null ? _a2 : [];
1665
+ }
1666
+ );
1667
+ if (!allDimensionSets.length) {
1668
+ return [];
1669
+ }
1670
+ const allDimensionNames = Array.from(
1671
+ new Set(allDimensionSets.flatMap((dimSet) => dimSet.map((dim) => dim.Name)))
1672
+ );
1673
+ const filteredCommon = allDimensionNames.map((name) => {
1674
+ var _a2, _b2;
1675
+ const dims = allDimensionSets.map((set) => set.find((dim) => dim.Name === name)).filter((d) => Boolean(d));
1676
+ if (!dims.length) {
1677
+ return null;
1678
+ }
1679
+ const validSizes = dims.filter((dim) => dim.Size !== void 0 && dim.Size !== "Varies").map((dim) => Number(dim.Size)).filter((size2) => Number.isFinite(size2) && size2 > 0);
1680
+ if (!validSizes.length) {
1681
+ return null;
1682
+ }
1683
+ const size = Math.min(...validSizes);
1684
+ return {
1685
+ name,
1686
+ type: (_b2 = (_a2 = dims[0]) == null ? void 0 : _a2.Type) != null ? _b2 : "OTHER",
1687
+ size
1688
+ };
1689
+ }).filter(
1690
+ (entry) => Boolean(entry)
1691
+ ).filter(
1692
+ (entry) => !__privateMethod(this, _isDimensionExcluded, isDimensionExcluded_fn).call(this, {
1693
+ Name: entry.name,
1694
+ Type: entry.type
1695
+ })
1696
+ );
1697
+ return filteredCommon;
1698
+ };
1699
+ _renderJobStatus = new WeakSet();
1700
+ renderJobStatus_fn = function() {
1701
+ var _a, _b, _c, _d, _e;
1702
+ if (!__privateGet(this, _harmonyRequestController).jobId) {
1703
+ return b`<div class="results-section" id="job-status-section">
1704
+ <div
1705
+ style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px;"
1706
+ >
1707
+ <h2 class="results-title" style="margin: 0;">Results:</h2>
1708
+ ${!this.isHistoryView ? b`
1709
+ <terra-button
1710
+ variant="default"
1711
+ size="small"
1712
+ @click=${__privateMethod(this, _backToSubsetOptions, backToSubsetOptions_fn)}
1713
+ >
1714
+ ← Back to Subset Options
1715
+ </terra-button>
1716
+ ` : A}
1717
+ </div>
1718
+
1719
+ <div class="progress-container">
1720
+ ${this.harmonyRequestError ? b`
1721
+ <terra-alert open variant="danger" appearance="white">
1722
+ ${__privateMethod(this, _renderHarmonyRequestError, renderHarmonyRequestError_fn).call(this)}
1723
+ </terra-alert>
1724
+ ` : b`
1725
+ <div class="progress-container">
1726
+ <div class="progress-text">
1727
+ <span class="spinner"></span>
1728
+ <span class="status-running"
1729
+ >Searching for data...</span
1730
+ >
1731
+ </div>
1732
+
1733
+ <div class="progress-bar">
1734
+ <div
1735
+ class="progress-fill"
1736
+ style="width: 0%"
1737
+ ></div>
1738
+ </div>
1739
+ </div>
1740
+
1741
+ ${__privateMethod(this, _renderJobMessage, renderJobMessage_fn).call(this)}
1742
+ `}
1743
+ </div>
1744
+ </div>`;
1745
+ }
1746
+ return b`
1747
+ <div class="results-section" id="job-status-section">
1748
+ <div
1749
+ style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px;"
1750
+ >
1751
+ <h2 class="results-title" style="margin: 0;">Results:</h2>
1752
+ ${!this.isHistoryView ? b`
1753
+ <terra-button
1754
+ variant="default"
1755
+ size="small"
1756
+ @click=${__privateMethod(this, _backToSubsetOptions, backToSubsetOptions_fn)}
1757
+ >
1758
+ ← Back to Subset Options
1759
+ </terra-button>
1760
+ ` : A}
1761
+ </div>
1762
+
1763
+ ${__privateGet(this, _harmonyRequestController).status !== "canceled" && __privateGet(this, _harmonyRequestController).status !== "failed" ? b` <div class="progress-container">
1764
+ <div class="progress-text">
1765
+ ${__privateGet(this, _harmonyRequestController).progress >= 100 ? b`
1766
+ <span class="status-complete"
1767
+ >✓ Search complete</span
1768
+ >
1769
+ ` : b`
1770
+ <span class="spinner"></span>
1771
+ <span class="status-running"
1772
+ >Searching for data...
1773
+ (${__privateGet(this, _harmonyRequestController).progress}%)</span
1774
+ >
1775
+ `}
1776
+ </div>
1777
+
1778
+ <div class="progress-bar">
1779
+ <div
1780
+ class="progress-fill"
1781
+ style="width: ${__privateGet(this, _harmonyRequestController).progress}%"
1782
+ ></div>
1783
+ </div>
1784
+ </div>` : A}
1785
+
1786
+ <div class="search-status">
1787
+ <span class="file-count"
1788
+ >Found ${__privateMethod(this, _numberOfFilesFoundEstimate, numberOfFilesFoundEstimate_fn).call(this)} files</span
1789
+ >
1790
+ out of estimated
1791
+ <span class="estimated-total"
1792
+ >${(_a = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _a.numInputGranules.toLocaleString()}</span
1793
+ >
1794
+ </div>
1795
+
1796
+ ${__privateMethod(this, _renderJobMessage, renderJobMessage_fn).call(this)}
1797
+ ${((_c = (_b = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _b.errors) == null ? void 0 : _c.length) ? b`
1798
+ <terra-accordion>
1799
+ <div slot="summary">
1800
+ <span
1801
+ class="accordion-title"
1802
+ style="color: #dc3545;"
1803
+ >Errors
1804
+ (${(_d = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _d.errors.length})</span
1805
+ >
1806
+ </div>
1807
+ <div class="accordion-content">
1808
+ <ul
1809
+ style="color: #dc3545; font-size: 14px; padding-left: 20px;"
1810
+ >
1811
+ ${(_e = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _e.errors.map(
1812
+ (err) => b`
1813
+ <li style="margin-bottom: 12px;">
1814
+ <a
1815
+ href="${err.url}"
1816
+ target="_blank"
1817
+ style="word-break: break-all; color: #dc3545; text-decoration: underline;"
1818
+ >
1819
+ ${err.url}
1820
+ </a>
1821
+ <div style="margin-top: 2px;">
1822
+ ${err.message}
1823
+ </div>
1824
+ </li>
1825
+ `
1826
+ )}
1827
+ </ul>
1828
+ </div>
1829
+ </terra-accordion>
1830
+ ` : A}
1831
+
1832
+ <div class="tabs">
1833
+ <button
1834
+ class="tab ${this.selectedTab === "web-links" ? "active" : ""}"
1835
+ @click=${() => this.selectedTab = "web-links"}
1836
+ >
1837
+ Web Links
1838
+ </button>
1839
+
1840
+ ${!this.isHistoryView ? b`
1841
+ <button
1842
+ class="tab ${this.selectedTab === "selected-params" ? "active" : ""}"
1843
+ @click=${() => this.selectedTab = "selected-params"}
1844
+ >
1845
+ Selected Parameters
1846
+ </button>
1847
+ ` : A}
1848
+ </div>
1849
+ <div
1850
+ id="web-links"
1851
+ class="tab-content ${this.selectedTab === "web-links" ? "active" : ""}"
1852
+ >
1853
+ ${__privateMethod(this, _getDocumentationLinks, getDocumentationLinks_fn).call(this).length ? b`
1854
+ <div class="documentation-links">
1855
+ ${__privateMethod(this, _getDocumentationLinks, getDocumentationLinks_fn).call(this).map(
1856
+ (link) => b`
1857
+ <a href="${link.href}" class="doc-link"
1858
+ >${link.title}</a
1859
+ >
1860
+ `
1861
+ )}
1862
+ </div>
1863
+ ` : A}
1864
+
1865
+ <ul class="file-list">
1866
+ ${__privateMethod(this, _getDataLinks, getDataLinks_fn).call(this).map(
1867
+ (link) => b`
1868
+ <li class="file-item">
1869
+ <a
1870
+ href="${link.href}"
1871
+ class="file-link"
1872
+ target="_blank"
1873
+ >
1874
+ ${link.title}
1875
+ </a>
1876
+ </li>
1877
+ `
1878
+ )}
1879
+ </ul>
1880
+ </div>
1881
+
1882
+ <div
1883
+ id="selected-params"
1884
+ class="tab-content ${this.selectedTab === "selected-params" ? "active" : ""}"
1885
+ >
1886
+ ${__privateMethod(this, _renderSelectedParams, renderSelectedParams_fn).call(this)}
1887
+ </div>
1888
+ </div>
1889
+
1890
+ ${!this.dialog ? b`
1891
+ <div class="footer">
1892
+ ${__privateGet(this, _harmonyRequestController).status === "successful" /* SUCCESSFUL */ || __privateGet(this, _harmonyRequestController).status === "complete_with_errors" /* COMPLETE_WITH_ERRORS */ ? b`
1893
+ <div
1894
+ style="display: flex; align-items: center; gap: 8px;"
1895
+ >
1896
+ <terra-dropdown
1897
+ @terra-select=${__privateMethod(this, _handleDownloadSelect, handleDownloadSelect_fn)}
1898
+ >
1899
+ <terra-button slot="trigger" caret>
1900
+ Download Options
1901
+ </terra-button>
1902
+ <terra-menu>
1903
+ <terra-menu-item value="file-list">
1904
+ <svg
1905
+ slot="prefix"
1906
+ viewBox="0 0 24 24"
1907
+ width="16"
1908
+ height="16"
1909
+ style="width: 16px; height: 16px;"
1910
+ >
1911
+ <path
1912
+ fill="currentColor"
1913
+ d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z"
1914
+ />
1915
+ </svg>
1916
+ File List
1917
+ </terra-menu-item>
1918
+ <terra-menu-item
1919
+ value="python-script"
1920
+ >
1921
+ <svg
1922
+ slot="prefix"
1923
+ viewBox="0 0 128 128"
1924
+ width="16"
1925
+ height="16"
1926
+ style="width: 16px; height: 16px;"
1927
+ >
1928
+ <path
1929
+ fill="currentColor"
1930
+ d="M49.33 62h29.159C86.606 62 93 55.132 93 46.981V19.183c0-7.912-6.632-13.856-14.555-15.176-5.014-.835-10.195-1.215-15.187-1.191-4.99.023-9.612.448-13.805 1.191C37.098 6.188 35 10.758 35 19.183V30h29v4H23.776c-8.484 0-15.914 5.108-18.237 14.811-2.681 11.12-2.8 17.919 0 29.53C7.614 86.983 12.569 93 21.054 93H31V79.952C31 70.315 39.428 62 49.33 62zm-1.838-39.11c-3.026 0-5.478-2.479-5.478-5.545 0-3.079 2.451-5.581 5.478-5.581 3.015 0 5.479 2.502 5.479 5.581-.001 3.066-2.465 5.545-5.479 5.545zm74.789 25.921C120.183 40.363 116.178 34 107.682 34H97v12.981C97 57.031 88.206 65 78.489 65H49.33C41.342 65 35 72.326 35 80.326v27.8c0 7.91 6.745 12.564 14.462 14.834 9.242 2.717 17.994 3.208 29.051 0C85.862 120.831 93 116.549 93 108.126V97H64v-4h43.682c8.484 0 11.647-5.776 14.599-14.66 3.047-9.145 2.916-17.799 0-29.529zm-41.955 55.606c3.027 0 5.479 2.479 5.479 5.547 0 3.076-2.451 5.579-5.479 5.579-3.015 0-5.478-2.502-5.478-5.579 0-3.068 2.463-5.547 5.478-5.547z"
1931
+ ></path>
1932
+ </svg>
1933
+ Python Script
1934
+ </terra-menu-item>
1935
+ <terra-menu-item
1936
+ value="earthdata-download"
1937
+ >
1938
+ <svg
1939
+ slot="prefix"
1940
+ viewBox="0 0 64 64"
1941
+ fill="none"
1942
+ width="16"
1943
+ height="16"
1944
+ style="width: 16px; height: 16px;"
1945
+ >
1946
+ <circle
1947
+ cx="32"
1948
+ cy="32"
1949
+ r="28"
1950
+ fill="currentColor"
1951
+ />
1952
+ <path
1953
+ d="M32 14v26M32 40l-9-9M32 40l9-9"
1954
+ stroke="#fff"
1955
+ stroke-width="4"
1956
+ stroke-linecap="round"
1957
+ stroke-linejoin="round"
1958
+ fill="none"
1959
+ />
1960
+ </svg>
1961
+ Earthdata Download
1962
+ </terra-menu-item>
1963
+ </terra-menu>
1964
+ </terra-dropdown>
1965
+
1966
+ <!--
1967
+ <terra-button
1968
+ outline
1969
+ @click=${() => __privateMethod(this, _handleJupyterNotebookClick, handleJupyterNotebookClick_fn).call(this)}
1970
+ >
1971
+ <terra-icon
1972
+ name="outline-code-bracket"
1973
+ library="heroicons"
1974
+ font-size="1.5em"
1975
+ style="margin-right: 5px;"
1976
+ ></terra-icon>
1977
+ Open in Jupyter Notebook
1978
+ </terra-button>
1979
+ --></div>
1980
+ ` : A}
1981
+ ${__privateGet(this, _harmonyRequestController).status === "running" /* RUNNING */ ? b`<button
1982
+ class="btn btn-success"
1983
+ @click=${__privateMethod(this, _cancelJob, cancelJob_fn)}
1984
+ ?disabled=${this.cancelingGetData}
1985
+ >
1986
+ ${this.cancelingGetData ? "Canceling..." : "Cancel request"}
1987
+ </button>` : A}
1988
+
1989
+ <div class="job-info">
1990
+ Job ID:
1991
+ <span class="job-id">
1992
+ ${this.bearerToken ? b`<a
1993
+ href="https://harmony.earthdata.nasa.gov/jobs/${__privateGet(this, _harmonyRequestController).jobId}"
1994
+ target="_blank"
1995
+ >${__privateGet(this, _harmonyRequestController).jobId}</a
1996
+ >` : __privateGet(this, _harmonyRequestController).jobId}
1997
+ </span>
1998
+ <span class="info-icon">?</span>
1999
+ </div>
2000
+ </div>
2001
+ ` : A}
2002
+ `;
2003
+ };
2004
+ _renderSelectedParams = new WeakSet();
2005
+ renderSelectedParams_fn = function() {
2006
+ var _a, _b, _c, _d;
2007
+ const collection = (_a = this.collectionWithServices) == null ? void 0 : _a.collection;
2008
+ const variables = this.selectedVariables.length ? this.selectedVariables.map((v) => v.name) : ["All"];
2009
+ const dateRange = this.selectedDateRange.startDate && this.selectedDateRange.endDate ? `${this.selectedDateRange.startDate} to ${this.selectedDateRange.endDate}` : "\u2014";
2010
+ const spatial = (_c = (_b = this.spatialSelection) == null ? void 0 : _b.toString()) != null ? _c : "-";
2011
+ return b`
2012
+ <dl class="params-summary">
2013
+ <div>
2014
+ <dt><strong>Dataset</strong></dt>
2015
+ <dd>${(_d = collection == null ? void 0 : collection.EntryTitle) != null ? _d : "\u2014"}</dd>
2016
+ </div>
2017
+ <div>
2018
+ <dt><strong>Variables</strong></dt>
2019
+ <dd>${variables.map((v) => b`<div>${v}</div>`)}</dd>
2020
+ </div>
2021
+ <div>
2022
+ <dt><strong>Dimensions</strong></dt>
2023
+ <dd>
2024
+ ${Object.entries(this.selectedDimensionIndexes).length ? Object.entries(this.selectedDimensionIndexes).map(
2025
+ ([dimName, value]) => b`<div>
2026
+ <strong>${dimName}:</strong> ${value}
2027
+ </div>`
2028
+ ) : "\u2014"}
2029
+ </dd>
2030
+ </div>
2031
+ <div>
2032
+ <dt><strong>Date Range</strong></dt>
2033
+ <dd>${dateRange}</dd>
2034
+ </div>
2035
+ <div>
2036
+ <dt><strong>Spatial</strong></dt>
2037
+ <dd>${spatial}</dd>
2038
+ </div>
2039
+ </dl>
2040
+
2041
+ <terra-button @click=${__privateMethod(this, _refineParameters, refineParameters_fn)}
2042
+ >Refine Parameters</terra-button
2043
+ >
2044
+ `;
2045
+ };
2046
+ _cancelJob = new WeakSet();
2047
+ cancelJob_fn = async function() {
2048
+ if (!this.jobId) {
2049
+ return;
2050
+ }
2051
+ this.cancelingGetData = true;
2052
+ try {
2053
+ await __privateGet(this, _harmonyRequestController).cancelJob({
2054
+ jobId: this.jobId,
2055
+ options: { bearerToken: this.bearerToken }
2056
+ });
2057
+ } finally {
2058
+ this.cancelingGetData = false;
2059
+ }
2060
+ };
2061
+ _getData = new WeakSet();
2062
+ getData_fn = async function() {
2063
+ var _a, _b, _c, _d, _e, _f, _g, _h;
2064
+ this.harmonyRequestError = void 0;
2065
+ const validationError = __privateMethod(this, _getGiovanniValidationError, getGiovanniValidationError_fn).call(this);
2066
+ if (validationError) {
2067
+ this.validationError = validationError;
2068
+ __privateMethod(this, _markFieldTouched, markFieldTouched_fn).call(this, "variables");
2069
+ return;
2070
+ }
2071
+ this.validationError = void 0;
2072
+ this.cancelingGetData = false;
2073
+ __privateMethod(this, _touchAllFields, touchAllFields_fn).call(this);
2074
+ const variables = this.selectedFormat.isGiovanniFormat ? this.selectedVariables.map(
2075
+ (v) => {
2076
+ var _a2, _b2, _c2;
2077
+ return (
2078
+ // the Giovanni variable catalog uses different variable entry ids, we need to support them
2079
+ // ex. CMR: M2T1NXSLV_5.2.14 in Giovanni uses underscores: M2T1NXSLV_5_2_14
2080
+ convertVariableEntryIdToGiovanniFormat(
2081
+ (_a2 = this.collectionWithServices.shortName) != null ? _a2 : "",
2082
+ (_c2 = (_b2 = this.collectionWithServices.collection) == null ? void 0 : _b2.Version) != null ? _c2 : "",
2083
+ v.name
2084
+ )
2085
+ );
2086
+ }
2087
+ ) : this.selectedVariables.map((v) => v.conceptId);
2088
+ const harmonyRequest = new HarmonyRequest({
2089
+ collectionConceptId: this.collectionWithServices.conceptId,
2090
+ variables,
2091
+ location: this.spatialSelection
2092
+ });
2093
+ if (this.shapeGeoJson) {
2094
+ harmonyRequest.shape(this.shapeGeoJson);
2095
+ }
2096
+ if (this.selectedDateRange.startDate && this.selectedDateRange.endDate) {
2097
+ harmonyRequest.startDate(
2098
+ this.isSubDaily ? this.selectedDateRange.startDate : getUTCDate(this.selectedDateRange.startDate).toISOString()
2099
+ );
2100
+ harmonyRequest.endDate(
2101
+ this.isSubDaily ? this.selectedDateRange.endDate : getUTCDate(this.selectedDateRange.endDate).toISOString()
2102
+ );
2103
+ }
2104
+ if (this.selectedFormat) {
2105
+ harmonyRequest.format(
2106
+ this.selectedFormat.isGiovanniFormat ? "text/csv" : this.selectedFormat.key
2107
+ );
2108
+ }
2109
+ if (this.selectedFormat.key === "text/csv") {
2110
+ harmonyRequest.average("area");
2111
+ }
2112
+ if (this.selectedFormat.key === "image/tiff") {
2113
+ harmonyRequest.average("time");
2114
+ }
2115
+ if (Object.keys(this.selectedDimensionIndexes).length) {
2116
+ Object.entries(this.selectedDimensionIndexes).forEach(
2117
+ ([dimName, { start, end }]) => {
2118
+ harmonyRequest.dimension({
2119
+ name: dimName,
2120
+ min: start,
2121
+ max: end
2122
+ });
2123
+ }
2124
+ );
2125
+ }
2126
+ harmonyRequest.label("terra-data-subsetter");
2127
+ const cwsShortName = (_d = (_a = this.collectionWithServices) == null ? void 0 : _a.shortName) != null ? _d : (_c = (_b = this.collectionWithServices) == null ? void 0 : _b.collection) == null ? void 0 : _c.ShortName;
2128
+ const cwsVersion = (_f = (_e = this.collectionWithServices) == null ? void 0 : _e.collection) == null ? void 0 : _f.Version;
2129
+ const cwsEntryTitle = (_h = (_g = this.collectionWithServices) == null ? void 0 : _g.collection) == null ? void 0 : _h.EntryTitle;
2130
+ if (cwsShortName && cwsVersion) {
2131
+ harmonyRequest.label(
2132
+ `collection-entry-id: ${cwsShortName}_${cwsVersion}`.toLowerCase()
2133
+ );
2134
+ }
2135
+ if (cwsEntryTitle) {
2136
+ harmonyRequest.label(
2137
+ `collection-entry-title: ${cwsEntryTitle.toLowerCase()}`
2138
+ );
2139
+ }
2140
+ console.log("Creating Harmony job with request:", harmonyRequest.params);
2141
+ try {
2142
+ const job = await __privateGet(this, _harmonyRequestController).startJob({
2143
+ harmonyRequest,
2144
+ options: { bearerToken: this.bearerToken }
2145
+ });
2146
+ this.jobId = job.jobID;
2147
+ } catch (error) {
2148
+ this.harmonyRequestError = __privateMethod(this, _getHarmonyRequestErrorMessage, getHarmonyRequestErrorMessage_fn).call(this, error);
2149
+ this.refineParameters = false;
2150
+ return;
2151
+ }
2152
+ setTimeout(() => {
2153
+ const el = this.renderRoot.querySelector("#job-status-section");
2154
+ el == null ? void 0 : el.scrollIntoView({ behavior: "smooth" });
2155
+ }, 100);
2156
+ this.refineParameters = false;
2157
+ this.isHistoryView = false;
2158
+ };
2159
+ _touchAllFields = new WeakSet();
2160
+ touchAllFields_fn = function() {
2161
+ this.touchedFields = /* @__PURE__ */ new Set(["variables", "spatial"]);
2162
+ };
2163
+ _numberOfFilesFoundEstimate = new WeakSet();
2164
+ numberOfFilesFoundEstimate_fn = function() {
2165
+ var _a, _b, _c;
2166
+ return Math.floor(
2167
+ ((_b = (_a = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _a.numInputGranules) != null ? _b : 0) * ((_c = __privateGet(this, _harmonyRequestController).progress) != null ? _c : 0) / 100
2168
+ );
2169
+ };
2170
+ _getDocumentationLinks = new WeakSet();
2171
+ getDocumentationLinks_fn = function() {
2172
+ var _a, _b;
2173
+ return ((_b = (_a = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _a.links) != null ? _b : []).filter(
2174
+ (link) => link.rel === "stac-catalog-json"
2175
+ );
2176
+ };
2177
+ _getDataLinks = new WeakSet();
2178
+ getDataLinks_fn = function() {
2179
+ var _a, _b;
2180
+ return ((_b = (_a = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _a.links) != null ? _b : []).filter(
2181
+ (link) => link.rel === "data"
2182
+ );
2183
+ };
2184
+ _hasAtLeastOneSubsetOption = new WeakSet();
2185
+ hasAtLeastOneSubsetOption_fn = function() {
2186
+ var _a, _b, _c, _d;
2187
+ return ((_a = this.collectionWithServices) == null ? void 0 : _a.summary.subsetting.bbox) || ((_b = this.collectionWithServices) == null ? void 0 : _b.summary.subsetting.shape) || ((_c = this.collectionWithServices) == null ? void 0 : _c.summary.subsetting.variable) || ((_d = this.collectionWithServices) == null ? void 0 : _d.summary.subsetting.temporal);
2188
+ };
2189
+ _hasSpatialSubset = new WeakSet();
2190
+ hasSpatialSubset_fn = function() {
2191
+ var _a, _b;
2192
+ return ((_a = this.collectionWithServices) == null ? void 0 : _a.summary.subsetting.bbox) || ((_b = this.collectionWithServices) == null ? void 0 : _b.summary.subsetting.shape);
2193
+ };
2194
+ _renderJobMessage = new WeakSet();
2195
+ renderJobMessage_fn = function() {
2196
+ var _a;
2197
+ const warningStatuses = [
2198
+ "canceled" /* CANCELED */,
2199
+ "complete_with_errors" /* COMPLETE_WITH_ERRORS */,
2200
+ "running_with_errors" /* RUNNING_WITH_ERRORS */
2201
+ ];
2202
+ const errorStatuses = ["failed" /* FAILED */];
2203
+ if (!((_a = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _a.status)) {
2204
+ return A;
2205
+ }
2206
+ let type = "normal";
2207
+ if (warningStatuses.includes(__privateGet(this, _harmonyRequestController).data.status)) {
2208
+ type = "warning";
2209
+ } else if (errorStatuses.includes(__privateGet(this, _harmonyRequestController).data.status)) {
2210
+ type = "error";
2211
+ }
2212
+ let color, bg;
2213
+ if (type === "error") {
2214
+ color = "#dc3545";
2215
+ bg = "#f8d7da";
2216
+ } else if (type === "warning") {
2217
+ color = "#856404";
2218
+ bg = "#fff3cd";
2219
+ } else {
2220
+ color = "#555";
2221
+ bg = "#f8f9fa";
2222
+ }
2223
+ return b`
2224
+ <div
2225
+ style="
2226
+ margin: 24px 0 16px 0;
2227
+ padding: 16px 20px;
2228
+ border-radius: 6px;
2229
+ background: ${bg};
2230
+ color: ${color};
2231
+ border: 1px solid ${color}22;
2232
+ "
2233
+ >
2234
+ ${__privateMethod(this, _getJobMessageText, getJobMessageText_fn).call(this)}
2235
+ </div>
2236
+ `;
2237
+ };
2238
+ _getJobMessageText = new WeakSet();
2239
+ getJobMessageText_fn = function() {
2240
+ var _a;
2241
+ return (_a = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _a.message.replace(
2242
+ /\b(The job|the job|job|Job)\b/g,
2243
+ (match) => {
2244
+ switch (match) {
2245
+ case "The job":
2246
+ return "Your request";
2247
+ case "the job":
2248
+ return "Your Request";
2249
+ case "job":
2250
+ return "request";
2251
+ case "Job":
2252
+ return "Request";
2253
+ }
2254
+ return match;
2255
+ }
2256
+ );
2257
+ };
2258
+ _estimateJobSize = new WeakSet();
2259
+ estimateJobSize_fn = function() {
2260
+ var _a, _b, _c, _d, _e;
2261
+ if (!((_a = this.collectionWithServices) == null ? void 0 : _a.granuleCount))
2262
+ return;
2263
+ const range = __privateMethod(this, _getCollectionDateRange, getCollectionDateRange_fn).call(this);
2264
+ let startDate;
2265
+ let endDate;
2266
+ let links = (_c = (_b = this.collectionWithServices) == null ? void 0 : _b.granuleCount) != null ? _c : 0;
2267
+ if (this.selectedDateRange.startDate && this.selectedDateRange.endDate) {
2268
+ startDate = this.selectedDateRange.startDate;
2269
+ endDate = this.selectedDateRange.endDate;
2270
+ } else {
2271
+ startDate = (_d = this.granuleMinDate) != null ? _d : range.startDate;
2272
+ endDate = (_e = this.granuleMaxDate) != null ? _e : range.endDate;
2273
+ }
2274
+ if (!startDate || !endDate)
2275
+ return;
2276
+ const start = new Date(startDate);
2277
+ const end = new Date(endDate);
2278
+ const days = Math.floor((end.getTime() - start.getTime()) / (1e3 * 60 * 60 * 24)) + 1;
2279
+ if (range.startDate && range.endDate) {
2280
+ const availableDaysInCollection = Math.floor(
2281
+ (new Date(range.endDate).getTime() - new Date(range.startDate).getTime()) / (1e3 * 60 * 60 * 24)
2282
+ ) + 1;
2283
+ const granulesPerDay = links / availableDaysInCollection;
2284
+ links = Math.ceil(days * granulesPerDay);
2285
+ }
2286
+ return { days, links };
2287
+ };
2288
+ _refineParameters = new WeakSet();
2289
+ refineParameters_fn = function() {
2290
+ this.refineParameters = true;
2291
+ };
2292
+ _backToSubsetOptions = new WeakSet();
2293
+ backToSubsetOptions_fn = function() {
2294
+ this.refineParameters = true;
2295
+ this.harmonyRequestError = void 0;
2296
+ setTimeout(() => {
2297
+ const container = this.renderRoot.querySelector(".container");
2298
+ container == null ? void 0 : container.scrollIntoView({ behavior: "smooth", block: "start" });
2299
+ }, 100);
2300
+ };
2301
+ _viewRunningJob = new WeakSet();
2302
+ viewRunningJob_fn = function() {
2303
+ this.refineParameters = false;
2304
+ setTimeout(() => {
2305
+ const el = this.renderRoot.querySelector("#job-status-section");
2306
+ el == null ? void 0 : el.scrollIntoView({ behavior: "smooth" });
2307
+ }, 100);
2308
+ };
2309
+ _handleDownloadSelect = new WeakSet();
2310
+ handleDownloadSelect_fn = function(event) {
2311
+ const item = event.detail.item;
2312
+ const value = item.value || item.getTextLabel();
2313
+ if (value === "file-list") {
2314
+ __privateMethod(this, _downloadLinksAsTxt, downloadLinksAsTxt_fn).call(this, event);
2315
+ } else if (value === "python-script") {
2316
+ __privateMethod(this, _downloadPythonScript, downloadPythonScript_fn).call(this, event);
2317
+ } else if (value === "earthdata-download") {
2318
+ __privateMethod(this, _downloadEarthdataDownload, downloadEarthdataDownload_fn).call(this, event);
2319
+ }
2320
+ };
2321
+ _downloadLinksAsTxt = new WeakSet();
2322
+ downloadLinksAsTxt_fn = function(event) {
2323
+ var _a;
2324
+ event.stopPropagation();
2325
+ if (!((_a = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _a.links)) {
2326
+ return;
2327
+ }
2328
+ const dataLinks = __privateMethod(this, _getDataLinks, getDataLinks_fn).call(this);
2329
+ if (dataLinks.length === 0) {
2330
+ return;
2331
+ }
2332
+ const content = dataLinks.map((link) => link.href).join("\n");
2333
+ const blob = new Blob([content], { type: "text/plain" });
2334
+ const url = URL.createObjectURL(blob);
2335
+ const a = document.createElement("a");
2336
+ a.href = url;
2337
+ a.download = `subset_links_${__privateGet(this, _harmonyRequestController).jobId}.txt`;
2338
+ document.body.appendChild(a);
2339
+ a.click();
2340
+ document.body.removeChild(a);
2341
+ URL.revokeObjectURL(url);
2342
+ };
2343
+ _downloadPythonScript = new WeakSet();
2344
+ downloadPythonScript_fn = async function(event) {
2345
+ var _a, _b, _c, _d;
2346
+ event.stopPropagation();
2347
+ if (!((_a = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _a.links)) {
2348
+ return;
2349
+ }
2350
+ const response = await fetch(
2351
+ getBasePath("assets/data-subsetter/download_subset_files.py.txt")
2352
+ );
2353
+ if (!response.ok) {
2354
+ alert(
2355
+ "Sorry, there was a problem generating the Python script. We are investigating the issue.\nYou could try using the Jupyter Notebook in the meantime"
2356
+ );
2357
+ }
2358
+ const content = (await response.text()).replace(/{{jobId}}/gi, (_b = __privateGet(this, _harmonyRequestController).jobId) != null ? _b : "").replace(
2359
+ /{{HARMONY_ENV}}/gi,
2360
+ `Environment.${(_c = this.environment) == null ? void 0 : _c.toUpperCase()}`
2361
+ ).replace(
2362
+ /{{EARTHACCESS_ENV}}/gi,
2363
+ `earthaccess.${(_d = this.environment) == null ? void 0 : _d.toUpperCase()}`
2364
+ );
2365
+ const blob = new Blob([content], { type: "text/plain" });
2366
+ const url = URL.createObjectURL(blob);
2367
+ const a = document.createElement("a");
2368
+ a.href = url;
2369
+ a.download = `download_subset_files_${__privateGet(this, _harmonyRequestController).jobId}.py`;
2370
+ document.body.appendChild(a);
2371
+ a.click();
2372
+ document.body.removeChild(a);
2373
+ URL.revokeObjectURL(url);
2374
+ };
2375
+ _downloadEarthdataDownload = new WeakSet();
2376
+ downloadEarthdataDownload_fn = async function(event) {
2377
+ var _a;
2378
+ event.stopPropagation();
2379
+ if (!((_a = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _a.links)) {
2380
+ return;
2381
+ }
2382
+ alert("Sorry, Earthdata Download is not currently supported");
2383
+ };
2384
+ _handleJupyterNotebookClick = new WeakSet();
2385
+ handleJupyterNotebookClick_fn = function() {
2386
+ const notebook = getNotebook(this);
2387
+ sendDataToJupyterNotebook("load-notebook", {
2388
+ filename: `subset_${__privateGet(this, _harmonyRequestController).jobId}.ipynb`,
2389
+ notebook,
2390
+ bearerToken: this.bearerToken
2391
+ });
2392
+ };
2393
+ _renderAvailableTemporalRangeSection = new WeakSet();
2394
+ renderAvailableTemporalRangeSection_fn = function() {
2395
+ const { startDate, endDate } = __privateMethod(this, _getCollectionDateRange, getCollectionDateRange_fn).call(this);
2396
+ if (!startDate || !endDate)
2397
+ return A;
2398
+ return b`
2399
+ <div class="section" style="margin-bottom: 16px;">
2400
+ <h2 class="section-title">Available Date Range</h2>
2401
+ <div style="color: #31708f; margin-top: 8px;">
2402
+ <strong>${startDate}</strong> to <strong>${endDate}</strong>
2403
+ </div>
2404
+ <div style="font-size: 0.95em; color: #666;">
2405
+ This collection does not support temporal subsetting.
2406
+ </div>
2407
+ </div>
2408
+ `;
2409
+ };
2410
+ _renderAvailableSpatialRangeSection = new WeakSet();
2411
+ renderAvailableSpatialRangeSection_fn = function() {
2412
+ var _a, _b, _c, _d, _e;
2413
+ const boundingRects = (_e = (_d = (_c = (_b = (_a = this.collectionWithServices) == null ? void 0 : _a.collection) == null ? void 0 : _b.SpatialExtent) == null ? void 0 : _c.HorizontalSpatialDomain) == null ? void 0 : _d.Geometry) == null ? void 0 : _e.BoundingRectangles;
2414
+ if (!boundingRects || !Array.isArray(boundingRects) || !boundingRects.length)
2415
+ return A;
2416
+ return b`
2417
+ <div class="section" style="margin-bottom: 16px;">
2418
+ <h2 class="section-title">Available Spatial Area</h2>
2419
+ <div style="color: #31708f; margin-top: 8px;">
2420
+ ${boundingRects.map(
2421
+ (rect) => b`<div>
2422
+ <strong>Bounding Box:</strong>
2423
+ ${rect.WestBoundingCoordinate},
2424
+ ${rect.SouthBoundingCoordinate},
2425
+ ${rect.EastBoundingCoordinate},
2426
+ ${rect.NorthBoundingCoordinate}
2427
+ </div>`
2428
+ )}
2429
+ </div>
2430
+ <div style="font-size: 0.95em; color: #666;">
2431
+ This collection does not support spatial subsetting.
2432
+ </div>
2433
+ </div>
2434
+ `;
2435
+ };
2436
+ _renderDataAccessModeSelection = new WeakSet();
2437
+ renderDataAccessModeSelection_fn = function() {
2438
+ if (!__privateGet(this, _collectionController).hasGranules) {
2439
+ return A;
2440
+ }
2441
+ return b`
2442
+ <div class="mode-selection">
2443
+ <div class="mode-options">
2444
+ <label
2445
+ class="mode-option ${this.dataAccessMode === "original" ? "selected" : ""}"
2446
+ >
2447
+ <input
2448
+ type="radio"
2449
+ name="data-access-mode"
2450
+ value="original"
2451
+ .checked=${this.dataAccessMode === "original"}
2452
+ @change=${() => this.dataAccessMode = "original"}
2453
+ />
2454
+ <div class="mode-content">
2455
+ <div class="mode-title">Get Original Files</div>
2456
+ <div class="mode-description">
2457
+ Filter file links directly from the archive.
2458
+ </div>
2459
+ </div>
2460
+ </label>
2461
+
2462
+ <label
2463
+ class="mode-option ${this.dataAccessMode === "subset" ? "selected" : ""}"
2464
+ >
2465
+ <input
2466
+ type="radio"
2467
+ name="data-access-mode"
2468
+ value="subset"
2469
+ .checked=${this.dataAccessMode === "subset"}
2470
+ @change=${() => this.dataAccessMode = "subset"}
2471
+ />
2472
+ <div class="mode-content">
2473
+ <div class="mode-title">Transform Data</div>
2474
+ <div class="mode-description">
2475
+ Transform the data to your specific needs.
2476
+ </div>
2477
+ </div>
2478
+ </label>
2479
+ </div>
2480
+ </div>
2481
+ `;
2482
+ };
2483
+ _getGiovanniValidationError = new WeakSet();
2484
+ getGiovanniValidationError_fn = function() {
2485
+ if (!this.selectedFormat.isGiovanniFormat) {
2486
+ return null;
2487
+ }
2488
+ if (this.selectedVariables.length === 0) {
2489
+ return "Please select a variable to subset.";
2490
+ }
2491
+ if (this.selectedVariables.length > 1) {
2492
+ return "The selected format only supports subsetting one variable at a time.";
2493
+ }
2494
+ return null;
2495
+ };
2496
+ _getHarmonyRequestErrorMessage = new WeakSet();
2497
+ getHarmonyRequestErrorMessage_fn = function(error) {
2498
+ var _a;
2499
+ if (error instanceof HttpException) {
2500
+ const sanitizedMessage = (_a = error.message) == null ? void 0 : _a.replace(/^Error:\s*/i, "").trim();
2501
+ if (sanitizedMessage == null ? void 0 : sanitizedMessage.toLowerCase().includes("no matching granules found")) {
2502
+ return "No matching granules were found for your subset request. Please try expanding your search";
2503
+ }
2504
+ if (sanitizedMessage) {
2505
+ return sanitizedMessage;
2506
+ }
2507
+ }
2508
+ return "Unable to create your subset request. Please try again.";
2509
+ };
2510
+ _renderHarmonyRequestError = new WeakSet();
2511
+ renderHarmonyRequestError_fn = function() {
2512
+ if (!this.harmonyRequestError) {
2513
+ return A;
2514
+ }
2515
+ const noGranulesMessage = "No matching granules were found for your subset request. Please try expanding your search";
2516
+ if (this.harmonyRequestError === noGranulesMessage) {
2517
+ return b`
2518
+ No matching granules were found for your subset request. Please try
2519
+ <a
2520
+ href="#"
2521
+ @click=${__privateGet(this, _handleExpandSearchClick)}
2522
+ style="color: inherit; text-decoration: underline; font-weight: 600;"
2523
+ >
2524
+ expanding your search
2525
+ </a>
2526
+ `;
2527
+ }
2528
+ return this.harmonyRequestError;
2529
+ };
2530
+ _handleExpandSearchClick = new WeakMap();
2531
+ TerraDataSubsetter.styles = [component_styles_default, data_subsetter_styles_default];
2532
+ TerraDataSubsetter.dependencies = {
2533
+ "terra-accordion": TerraAccordion,
2534
+ "terra-date-picker": TerraDatePicker,
2535
+ "terra-icon": TerraIcon,
2536
+ "terra-input": TerraInput,
2537
+ "terra-spatial-picker": TerraSpatialPicker,
2538
+ "terra-login": TerraLogin,
2539
+ "terra-loader": TerraLoader,
2540
+ "terra-data-access": TerraDataAccess,
2541
+ "terra-dialog": TerraDialog,
2542
+ "terra-dropdown": TerraDropdown,
2543
+ "terra-menu": TerraMenu,
2544
+ "terra-menu-item": TerraMenuItem,
2545
+ "terra-button": TerraButton,
2546
+ "terra-alert": TerraAlert,
2547
+ "terra-slider": TerraSlider
2548
+ };
2549
+ __decorateClass([
2550
+ n({
2551
+ reflect: true,
2552
+ attribute: "collection-entry-id",
2553
+ converter: undefinedStringConverter
2554
+ })
2555
+ ], TerraDataSubsetter.prototype, "collectionEntryId", 2);
2556
+ __decorateClass([
2557
+ n({
2558
+ reflect: true,
2559
+ attribute: "short-name",
2560
+ converter: undefinedStringConverter
2561
+ })
2562
+ ], TerraDataSubsetter.prototype, "shortName", 2);
2563
+ __decorateClass([
2564
+ n({
2565
+ reflect: true,
2566
+ attribute: "version",
2567
+ converter: undefinedStringConverter
2568
+ })
2569
+ ], TerraDataSubsetter.prototype, "version", 2);
2570
+ __decorateClass([
2571
+ n({
2572
+ reflect: true,
2573
+ type: Boolean,
2574
+ attribute: "show-collection-search"
2575
+ })
2576
+ ], TerraDataSubsetter.prototype, "showCollectionSearch", 2);
2577
+ __decorateClass([
2578
+ n({ reflect: true, type: Boolean, attribute: "show-history-panel" })
2579
+ ], TerraDataSubsetter.prototype, "showHistoryPanel", 2);
2580
+ __decorateClass([
2581
+ n({ reflect: true, attribute: "job-id" })
2582
+ ], TerraDataSubsetter.prototype, "jobId", 2);
2583
+ __decorateClass([
2584
+ n({
2585
+ attribute: "bearer-token",
2586
+ converter: undefinedStringConverter
2587
+ })
2588
+ ], TerraDataSubsetter.prototype, "bearerToken", 2);
2589
+ __decorateClass([
2590
+ n()
2591
+ ], TerraDataSubsetter.prototype, "features", 2);
2592
+ __decorateClass([
2593
+ n({ reflect: true })
2594
+ ], TerraDataSubsetter.prototype, "dialog", 2);
2595
+ __decorateClass([
2596
+ n({ reflect: true, type: Boolean, attribute: "is-history-view" })
2597
+ ], TerraDataSubsetter.prototype, "isHistoryView", 2);
2598
+ __decorateClass([
2599
+ r()
2600
+ ], TerraDataSubsetter.prototype, "collectionWithServices", 2);
2601
+ __decorateClass([
2602
+ r()
2603
+ ], TerraDataSubsetter.prototype, "selectedVariables", 2);
2604
+ __decorateClass([
2605
+ r()
2606
+ ], TerraDataSubsetter.prototype, "selectedDimensionIndexes", 2);
2607
+ __decorateClass([
2608
+ r()
2609
+ ], TerraDataSubsetter.prototype, "expandedVariableGroups", 2);
2610
+ __decorateClass([
2611
+ r()
2612
+ ], TerraDataSubsetter.prototype, "variableFilterText", 2);
2613
+ __decorateClass([
2614
+ r()
2615
+ ], TerraDataSubsetter.prototype, "touchedFields", 2);
2616
+ __decorateClass([
2617
+ r()
2618
+ ], TerraDataSubsetter.prototype, "spatialSelection", 2);
2619
+ __decorateClass([
2620
+ r()
2621
+ ], TerraDataSubsetter.prototype, "shapeGeoJson", 2);
2622
+ __decorateClass([
2623
+ r()
2624
+ ], TerraDataSubsetter.prototype, "spatialLabel", 2);
2625
+ __decorateClass([
2626
+ r()
2627
+ ], TerraDataSubsetter.prototype, "selectedDateRange", 2);
2628
+ __decorateClass([
2629
+ r()
2630
+ ], TerraDataSubsetter.prototype, "selectedFormat", 2);
2631
+ __decorateClass([
2632
+ r()
2633
+ ], TerraDataSubsetter.prototype, "cancelingGetData", 2);
2634
+ __decorateClass([
2635
+ r()
2636
+ ], TerraDataSubsetter.prototype, "selectedTab", 2);
2637
+ __decorateClass([
2638
+ r()
2639
+ ], TerraDataSubsetter.prototype, "refineParameters", 2);
2640
+ __decorateClass([
2641
+ r()
2642
+ ], TerraDataSubsetter.prototype, "collectionSearchType", 2);
2643
+ __decorateClass([
2644
+ r()
2645
+ ], TerraDataSubsetter.prototype, "collectionSearchQuery", 2);
2646
+ __decorateClass([
2647
+ r()
2648
+ ], TerraDataSubsetter.prototype, "collectionSearchLoading", 2);
2649
+ __decorateClass([
2650
+ r()
2651
+ ], TerraDataSubsetter.prototype, "collectionSearchResults", 2);
2652
+ __decorateClass([
2653
+ r()
2654
+ ], TerraDataSubsetter.prototype, "collectionLoading", 2);
2655
+ __decorateClass([
2656
+ r()
2657
+ ], TerraDataSubsetter.prototype, "collectionAccordionOpen", 2);
2658
+ __decorateClass([
2659
+ r()
2660
+ ], TerraDataSubsetter.prototype, "dataAccessMode", 2);
2661
+ __decorateClass([
2662
+ r()
2663
+ ], TerraDataSubsetter.prototype, "validationError", 2);
2664
+ __decorateClass([
2665
+ r()
2666
+ ], TerraDataSubsetter.prototype, "harmonyRequestError", 2);
2667
+ __decorateClass([
2668
+ r()
2669
+ ], TerraDataSubsetter.prototype, "granuleMinDate", 2);
2670
+ __decorateClass([
2671
+ r()
2672
+ ], TerraDataSubsetter.prototype, "granuleMaxDate", 2);
2673
+ __decorateClass([
2674
+ r()
2675
+ ], TerraDataSubsetter.prototype, "giovanniConfiguredVariables", 2);
2676
+ __decorateClass([
2677
+ e('[part~="spatial-picker"]')
2678
+ ], TerraDataSubsetter.prototype, "spatialPicker", 2);
2679
+ __decorateClass([
2680
+ e("terra-dialog")
2681
+ ], TerraDataSubsetter.prototype, "dialogElement", 2);
2682
+ __decorateClass([
2683
+ watch(["jobId"], { waitUntilFirstUpdate: true })
2684
+ ], TerraDataSubsetter.prototype, "jobIdChanged", 1);
2685
+ __decorateClass([
2686
+ watch(["shortName", "version"])
2687
+ ], TerraDataSubsetter.prototype, "shortNameAndVersionChanged", 1);
2688
+ __decorateClass([
2689
+ watch("collectionEntryId", { waitUntilFirstUpdate: true })
2690
+ ], TerraDataSubsetter.prototype, "collectionEntryIdChanged", 1);
2691
+ __decorateClass([
2692
+ watch(["collectionWithServices"])
2693
+ ], TerraDataSubsetter.prototype, "collectionChanged", 1);
2694
+ __decorateClass([
2695
+ watch(["granuleMinDate", "granuleMaxDate"])
2696
+ ], TerraDataSubsetter.prototype, "granuleDatesChanged", 1);
2697
+ __decorateClass([
2698
+ watch("selectedFormat")
2699
+ ], TerraDataSubsetter.prototype, "selectedFormatChanged", 1);
2700
+ __decorateClass([
2701
+ debounce(500)
2702
+ ], TerraDataSubsetter.prototype, "handleCollectionSearch", 1);
2703
+
2704
+ export {
2705
+ TerraDataSubsetter
2706
+ };