@nasa-terra/components 0.0.179 → 0.0.182

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 (1292) hide show
  1. package/cdn/apis/harmony.api.d.ts +24 -1
  2. package/cdn/chunks/chunk.27H6Y66N.js +19 -0
  3. package/cdn/chunks/chunk.2JCGLAAZ.js +19 -0
  4. package/cdn/chunks/chunk.2NDZGMG2.js +33 -0
  5. package/cdn/chunks/chunk.2YBP736T.js +161 -0
  6. package/cdn/chunks/chunk.3465UHBW.js +125 -0
  7. package/cdn/chunks/chunk.3C6QCU6U.js +56 -0
  8. package/cdn/chunks/chunk.3E3PL47L.js +19 -0
  9. package/cdn/chunks/chunk.3RT5OMRR.js +19 -0
  10. package/cdn/chunks/chunk.3S6TXNYN.js +357 -0
  11. package/cdn/chunks/chunk.3TNPXGSN.js +29 -0
  12. package/cdn/chunks/chunk.3U3QMVU3.js +35 -0
  13. package/cdn/chunks/chunk.3XHMRHX4.js +19 -0
  14. package/cdn/chunks/chunk.45J3MZ3A.js +205 -0
  15. package/cdn/chunks/chunk.4A2AWXGY.js +29 -0
  16. package/cdn/chunks/chunk.4CRAZGX7.js +19 -0
  17. package/cdn/chunks/chunk.4EHEYIXJ.js +29 -0
  18. package/cdn/chunks/chunk.4JH2XUDX.js +32 -0
  19. package/cdn/chunks/chunk.4M4OKGDE.js +19 -0
  20. package/cdn/chunks/chunk.4TR3C3XT.js +19 -0
  21. package/cdn/chunks/chunk.4YHMBW3P.js +188 -0
  22. package/cdn/chunks/chunk.4YNI6KD4.js +19 -0
  23. package/cdn/chunks/chunk.53SX2HQI.js +30 -0
  24. package/cdn/chunks/chunk.54XCTTO5.js +19 -0
  25. package/cdn/chunks/chunk.56MUPGEK.js +32 -0
  26. package/cdn/chunks/chunk.5EAUYTIJ.js +19 -0
  27. package/cdn/chunks/chunk.5I3VER3F.js +19 -0
  28. package/cdn/chunks/chunk.5KYNNL32.js +32 -0
  29. package/cdn/chunks/chunk.5MIFCXBI.js +29 -0
  30. package/cdn/chunks/chunk.62ZIBC6B.js +19 -0
  31. package/cdn/chunks/chunk.653O7V4M.js +599 -0
  32. package/cdn/chunks/chunk.67TYJBGE.js +19 -0
  33. package/cdn/chunks/chunk.6CQFWVR6.js +29 -0
  34. package/cdn/chunks/chunk.6QSUPLGB.js +29 -0
  35. package/cdn/chunks/chunk.6TITQBN5.js +86 -0
  36. package/cdn/chunks/chunk.77Y544HC.js +19 -0
  37. package/cdn/chunks/chunk.7ASKZORP.js +33 -0
  38. package/cdn/chunks/chunk.7BHCY74I.js +33 -0
  39. package/cdn/chunks/chunk.7CTLZBMK.js +99 -0
  40. package/cdn/chunks/chunk.7GWSNU54.js +19 -0
  41. package/cdn/chunks/chunk.7PYSPYWO.js +19 -0
  42. package/cdn/chunks/chunk.7QYAG5RH.js +19 -0
  43. package/cdn/chunks/chunk.7VNZMOKC.js +56075 -0
  44. package/cdn/chunks/chunk.7YI473J2.js +39 -0
  45. package/cdn/chunks/chunk.7YXZ4PLT.js +359 -0
  46. package/cdn/chunks/chunk.7ZVYIV7K.js +662 -0
  47. package/cdn/chunks/chunk.ACJHUN64.js +19 -0
  48. package/cdn/chunks/chunk.ACVD4RLC.js +538 -0
  49. package/cdn/chunks/chunk.AFRV7PHS.js +19 -0
  50. package/cdn/chunks/chunk.AG3OHBNW.js +32 -0
  51. package/cdn/chunks/chunk.AMEOWPTV.js +29 -0
  52. package/cdn/chunks/chunk.AN25EHYN.js +19 -0
  53. package/cdn/chunks/chunk.APOEQA6N.js +157 -0
  54. package/cdn/chunks/chunk.AQHIU4QQ.js +19 -0
  55. package/cdn/chunks/chunk.AW7RGJQF.js +237 -0
  56. package/cdn/chunks/chunk.AXHE75CH.js +1211 -0
  57. package/cdn/chunks/chunk.AXHGJXN6.js +113 -0
  58. package/cdn/chunks/chunk.B7OA73S6.js +19 -0
  59. package/cdn/chunks/chunk.BCQ2ITZO.js +33 -0
  60. package/cdn/chunks/chunk.BEMRQEFJ.js +29 -0
  61. package/cdn/chunks/chunk.BEWDP23N.js +29 -0
  62. package/cdn/chunks/chunk.BVACLOKI.js +110 -0
  63. package/cdn/chunks/chunk.BYUN5CQ7.js +34 -0
  64. package/cdn/chunks/chunk.CL66DXQH.js +19 -0
  65. package/cdn/chunks/chunk.CLOSWCHA.js +279 -0
  66. package/cdn/chunks/chunk.CMWLAYXG.js +19 -0
  67. package/cdn/chunks/chunk.CU6Y4S4O.js +134 -0
  68. package/cdn/chunks/chunk.DCABAUTG.js +29 -0
  69. package/cdn/chunks/chunk.DCDKEGGF.js +60 -0
  70. package/cdn/chunks/chunk.DHUO654N.js +19 -0
  71. package/cdn/chunks/chunk.DHZRFA4Q.js +71 -0
  72. package/cdn/chunks/chunk.DKR37O6M.js +99 -0
  73. package/cdn/chunks/chunk.E5INDWJO.js +231 -0
  74. package/cdn/chunks/chunk.EB57UDHS.js +29 -0
  75. package/cdn/chunks/chunk.EHU3RZOC.js +320 -0
  76. package/cdn/chunks/chunk.EHXDAY7E.js +29 -0
  77. package/cdn/chunks/chunk.EJC7WV7R.js +19 -0
  78. package/cdn/chunks/chunk.EPEVTPDD.js +29 -0
  79. package/cdn/chunks/chunk.ESBUSULS.js +658 -0
  80. package/cdn/chunks/chunk.EWQBAXSZ.js +514 -0
  81. package/cdn/chunks/chunk.EXWRYIIG.js +34 -0
  82. package/cdn/chunks/chunk.F7RM6CKI.js +19 -0
  83. package/cdn/chunks/chunk.FEU2ZHGK.js +136 -0
  84. package/cdn/chunks/chunk.FKESQTK7.js +62 -0
  85. package/cdn/chunks/chunk.FQW6VWTA.js +29 -0
  86. package/cdn/chunks/chunk.FVNPWS7L.js +29 -0
  87. package/cdn/chunks/chunk.FZSG2R6K.js +36 -0
  88. package/cdn/chunks/chunk.G6UY4GIZ.js +610 -0
  89. package/cdn/chunks/chunk.GAF2R7BX.js +19 -0
  90. package/cdn/chunks/chunk.GH3O32TH.js +616 -0
  91. package/cdn/chunks/chunk.GHQXXUOZ.js +19 -0
  92. package/cdn/chunks/chunk.GLLNU6QT.js +276 -0
  93. package/cdn/chunks/chunk.GN5JXOUJ.js +19 -0
  94. package/cdn/chunks/chunk.GN7JEDN2.js +234 -0
  95. package/cdn/chunks/chunk.GPPIIBI2.js +19 -0
  96. package/cdn/chunks/chunk.GU2TJT7Q.js +19 -0
  97. package/cdn/chunks/chunk.GUW2SGCI.js +493 -0
  98. package/cdn/chunks/chunk.H64ZXOYB.js +473 -0
  99. package/cdn/chunks/chunk.HA4DY4XJ.js +35 -0
  100. package/cdn/chunks/chunk.HARGEVGT.js +36 -0
  101. package/cdn/chunks/chunk.HFRKSSXY.js +187 -0
  102. package/cdn/chunks/chunk.HO6Z2DWH.js +29 -0
  103. package/cdn/chunks/chunk.HQYWW5B6.js +32 -0
  104. package/cdn/chunks/chunk.I6FQTBRX.js +32 -0
  105. package/cdn/chunks/chunk.IARTVWTE.js +19 -0
  106. package/cdn/chunks/chunk.IFBDVPXH.js +1975 -0
  107. package/cdn/chunks/chunk.IFN7JOYQ.js +34 -0
  108. package/cdn/chunks/chunk.IJMKGIXM.js +224 -0
  109. package/cdn/chunks/chunk.IKTRYO23.js +29 -0
  110. package/cdn/chunks/chunk.INTWBGMN.js +92 -0
  111. package/cdn/chunks/chunk.ISR3MVUO.js +19 -0
  112. package/cdn/chunks/chunk.ITFVYNFS.js +104 -0
  113. package/cdn/chunks/chunk.J3JP6ALM.js +1184 -0
  114. package/cdn/chunks/chunk.J5HCHNS6.js +29 -0
  115. package/cdn/chunks/chunk.JCDZ72UU.js +29 -0
  116. package/cdn/chunks/chunk.JLIH4UDK.js +29 -0
  117. package/cdn/chunks/chunk.JLKIJ7LH.js +113 -0
  118. package/cdn/chunks/chunk.JSYNLIEX.js +288 -0
  119. package/cdn/chunks/chunk.JWN5RFZR.js +29 -0
  120. package/cdn/chunks/chunk.JZEMAEKF.js +542 -0
  121. package/cdn/chunks/chunk.K4DUOTZR.js +19 -0
  122. package/cdn/chunks/chunk.K4XDAFMU.js +904 -0
  123. package/cdn/chunks/chunk.KAO2PZDB.js +975 -0
  124. package/cdn/chunks/chunk.KIWNTLEB.js +3452 -0
  125. package/cdn/chunks/chunk.KJ5MDHOB.js +19 -0
  126. package/cdn/chunks/chunk.KM6WWUYU.js +77 -0
  127. package/cdn/chunks/chunk.KNFKQMZL.js +37 -0
  128. package/cdn/chunks/chunk.KPL5WVGQ.js +443 -0
  129. package/cdn/chunks/chunk.KXIMRSUN.js +49 -0
  130. package/cdn/chunks/chunk.KXPMQRAG.js +19 -0
  131. package/cdn/chunks/chunk.L2SHDSJB.js +36 -0
  132. package/cdn/chunks/chunk.L3PHK56S.js +19 -0
  133. package/cdn/chunks/chunk.L4UIOAJ6.js +19 -0
  134. package/cdn/chunks/chunk.L6QGKCD7.js +106 -0
  135. package/cdn/chunks/chunk.LVROX2ZC.js +32 -0
  136. package/cdn/chunks/chunk.M5K77MVA.js +19 -0
  137. package/cdn/chunks/chunk.M65VG5RW.js +472 -0
  138. package/cdn/chunks/chunk.MG53IOR7.js +123 -0
  139. package/cdn/chunks/chunk.MVC5FVKI.js +9744 -0
  140. package/cdn/chunks/chunk.MZC6KDXV.js +417 -0
  141. package/cdn/chunks/chunk.MZX3RGLE.js +189 -0
  142. package/cdn/chunks/chunk.N23A2TLL.js +155 -0
  143. package/cdn/chunks/chunk.N35W2LNG.js +190 -0
  144. package/cdn/chunks/chunk.NDP3WIKQ.js +19 -0
  145. package/cdn/chunks/chunk.O3DIP4UG.js +81 -0
  146. package/cdn/chunks/chunk.O3REVIRV.js +19 -0
  147. package/cdn/chunks/chunk.O6EPXMCN.js +32 -0
  148. package/cdn/chunks/chunk.OE3SG35G.js +372 -0
  149. package/cdn/chunks/chunk.OH4XSXGH.js +35 -0
  150. package/cdn/chunks/chunk.OLZPMQEW.js +60 -0
  151. package/cdn/chunks/chunk.OXV3VH7N.js +264 -0
  152. package/cdn/chunks/chunk.P6HJOUWE.js +32 -0
  153. package/cdn/chunks/chunk.PHTZBZS3.js +19 -0
  154. package/cdn/chunks/chunk.PJUJ4YID.js +29 -0
  155. package/cdn/chunks/chunk.PXVXOSWN.js +32 -0
  156. package/cdn/chunks/chunk.PZUVUD4C.js +93 -0
  157. package/cdn/chunks/chunk.Q6MUWVO4.js +310 -0
  158. package/cdn/chunks/chunk.Q7SMQGGV.js +32 -0
  159. package/cdn/chunks/chunk.QCZATBDS.js +19 -0
  160. package/cdn/chunks/chunk.QMC7DUVJ.js +151 -0
  161. package/cdn/chunks/chunk.QR25OOSG.js +83 -0
  162. package/cdn/chunks/chunk.R5WMOIJK.js +19 -0
  163. package/cdn/chunks/chunk.R7TKEPVG.js +165 -0
  164. package/cdn/chunks/chunk.RKSUZJZ6.js +68 -0
  165. package/cdn/chunks/chunk.RQWWWR7J.js +19 -0
  166. package/cdn/chunks/chunk.RWBA2MGO.js +19 -0
  167. package/cdn/chunks/chunk.RY5SOLET.js +132 -0
  168. package/cdn/chunks/chunk.RY7CXQXT.js +36 -0
  169. package/cdn/chunks/chunk.S3QWAZET.js +230 -0
  170. package/cdn/chunks/chunk.S7K4YQO5.js +29 -0
  171. package/cdn/chunks/chunk.SFTDPOR4.js +293 -0
  172. package/cdn/chunks/chunk.SQFLMSG5.js +37 -0
  173. package/cdn/chunks/chunk.TDT5Q3JF.js +29 -0
  174. package/cdn/chunks/chunk.TEOWGCS6.js +259 -0
  175. package/cdn/chunks/chunk.TKGLHWZN.js +19 -0
  176. package/cdn/chunks/chunk.TMZ3GMSL.js +134 -0
  177. package/cdn/chunks/chunk.TOQTKNTX.js +19 -0
  178. package/cdn/chunks/chunk.UERLDTQZ.js +29 -0
  179. package/cdn/chunks/chunk.UEUZKV5K.js +32 -0
  180. package/cdn/chunks/chunk.V4VJ4UT2.js +29 -0
  181. package/cdn/chunks/chunk.V5DBQVJ5.js +19 -0
  182. package/cdn/chunks/chunk.V5OO2XEE.js +33 -0
  183. package/cdn/chunks/chunk.VECOM4X2.js +19 -0
  184. package/cdn/chunks/chunk.VGXUJ5AG.js +19 -0
  185. package/cdn/chunks/chunk.VHMUJ6SG.js +2244 -0
  186. package/cdn/chunks/chunk.VJKPC2DS.js +29 -0
  187. package/cdn/chunks/chunk.VS4OOTZG.js +524 -0
  188. package/cdn/chunks/chunk.VUKYQOBK.js +350 -0
  189. package/cdn/chunks/chunk.W67YDC4P.js +19 -0
  190. package/cdn/chunks/chunk.W7N4JADB.js +915 -0
  191. package/cdn/chunks/chunk.WA3LBDSM.js +19 -0
  192. package/cdn/chunks/chunk.WDQXQ2MJ.js +19 -0
  193. package/cdn/chunks/chunk.WE35UV4V.js +41 -0
  194. package/cdn/chunks/chunk.WEO6T7Q7.js +32 -0
  195. package/cdn/chunks/chunk.WIBZBHVO.js +29 -0
  196. package/cdn/chunks/chunk.WLINE26F.js +19 -0
  197. package/cdn/chunks/chunk.WODOIA57.js +278 -0
  198. package/cdn/chunks/chunk.WUA2GRUX.js +19 -0
  199. package/cdn/chunks/chunk.WXQGG4OH.js +74 -0
  200. package/cdn/chunks/chunk.X76BZAG2.js +29 -0
  201. package/cdn/chunks/chunk.XCZDPAFQ.js +285 -0
  202. package/cdn/chunks/chunk.XPO6CGIX.js +32 -0
  203. package/cdn/chunks/chunk.XSBBTQKS.js +19 -0
  204. package/cdn/chunks/chunk.XUC2AP34.js +47 -0
  205. package/cdn/chunks/chunk.XUZNRU2A.js +35 -0
  206. package/cdn/chunks/chunk.XY2BAW25.js +82 -0
  207. package/cdn/chunks/chunk.Y73I7UWA.js +19 -0
  208. package/cdn/chunks/chunk.YBQIGWAG.js +2547 -0
  209. package/cdn/chunks/chunk.YFMBAZ43.js +123 -0
  210. package/cdn/chunks/chunk.YOBKY3PV.js +29 -0
  211. package/cdn/chunks/chunk.YYHCRDOA.js +93 -0
  212. package/cdn/chunks/chunk.Z66NGM6N.js +78 -0
  213. package/cdn/chunks/chunk.ZGM73SI6.js +19 -0
  214. package/cdn/chunks/chunk.ZIBQ3RIQ.js +477 -0
  215. package/cdn/chunks/chunk.ZO4JZI7Q.js +19 -0
  216. package/cdn/components/accordion/accordion.component.js +5 -5
  217. package/cdn/components/accordion/accordion.js +6 -6
  218. package/cdn/components/alert/alert.component.js +3 -3
  219. package/cdn/components/alert/alert.js +4 -4
  220. package/cdn/components/avatar/avatar.component.js +7 -7
  221. package/cdn/components/avatar/avatar.js +8 -8
  222. package/cdn/components/badge/badge.component.js +2 -2
  223. package/cdn/components/badge/badge.js +3 -3
  224. package/cdn/components/breadcrumb/breadcrumb.component.js +2 -2
  225. package/cdn/components/breadcrumb/breadcrumb.js +3 -3
  226. package/cdn/components/breadcrumbs/breadcrumbs.component.js +2 -2
  227. package/cdn/components/breadcrumbs/breadcrumbs.js +3 -3
  228. package/cdn/components/browse-variables/browse-variables.component.js +18 -18
  229. package/cdn/components/browse-variables/browse-variables.js +19 -19
  230. package/cdn/components/button/button.component.js +7 -7
  231. package/cdn/components/button/button.js +8 -8
  232. package/cdn/components/button-group/button-group.component.js +2 -2
  233. package/cdn/components/button-group/button-group.js +3 -3
  234. package/cdn/components/caption/caption.component.js +2 -2
  235. package/cdn/components/caption/caption.js +3 -3
  236. package/cdn/components/card/card.component.js +2 -2
  237. package/cdn/components/card/card.js +3 -3
  238. package/cdn/components/checkbox/checkbox.component.js +8 -8
  239. package/cdn/components/checkbox/checkbox.js +9 -9
  240. package/cdn/components/chip/chip.component.js +2 -2
  241. package/cdn/components/chip/chip.js +3 -3
  242. package/cdn/components/combobox/combobox.component.js +6 -6
  243. package/cdn/components/combobox/combobox.js +7 -7
  244. package/cdn/components/data-access/data-access.component.js +36 -35
  245. package/cdn/components/data-access/data-access.js +37 -36
  246. package/cdn/components/data-grid/data-grid.component.js +5 -5
  247. package/cdn/components/data-grid/data-grid.js +6 -6
  248. package/cdn/components/data-rods/data-rods.component.js +48 -47
  249. package/cdn/components/data-rods/data-rods.js +49 -48
  250. package/cdn/components/data-subsetter/data-subsetter.component.js +47 -45
  251. package/cdn/components/data-subsetter/data-subsetter.js +48 -46
  252. package/cdn/components/data-subsetter/notebooks/subsetter-notebook.js +1 -1
  253. package/cdn/components/data-subsetter-history/data-subsetter-history.component.js +48 -46
  254. package/cdn/components/data-subsetter-history/data-subsetter-history.js +49 -47
  255. package/cdn/components/date-picker/date-picker.component.js +14 -14
  256. package/cdn/components/date-picker/date-picker.js +15 -15
  257. package/cdn/components/date-range-slider/date-range-slider.component.js +2 -2
  258. package/cdn/components/date-range-slider/date-range-slider.js +3 -3
  259. package/cdn/components/dialog/dialog.component.js +9 -9
  260. package/cdn/components/dialog/dialog.js +10 -10
  261. package/cdn/components/divider/divider.component.js +2 -2
  262. package/cdn/components/divider/divider.js +3 -3
  263. package/cdn/components/dropdown/dropdown.component.js +3 -3
  264. package/cdn/components/dropdown/dropdown.js +4 -4
  265. package/cdn/components/earthdata-login/earthdata-login.component.js +15 -15
  266. package/cdn/components/earthdata-login/earthdata-login.js +16 -16
  267. package/cdn/components/file-upload/file-upload.component.js +2 -2
  268. package/cdn/components/file-upload/file-upload.js +3 -3
  269. package/cdn/components/harmony-history/harmony-history.component.d.ts +91 -0
  270. package/cdn/components/harmony-history/harmony-history.component.js +43 -0
  271. package/cdn/components/harmony-history/harmony-history.d.ts +8 -0
  272. package/cdn/components/harmony-history/harmony-history.js +44 -0
  273. package/cdn/components/harmony-history/harmony-history.styles.d.ts +2 -0
  274. package/cdn/components/harmony-history/harmony-history.styles.js +9 -0
  275. package/cdn/components/icon/icon.component.js +3 -3
  276. package/cdn/components/icon/icon.js +4 -4
  277. package/cdn/components/input/input.component.js +8 -8
  278. package/cdn/components/input/input.js +9 -9
  279. package/cdn/components/loader/loader.component.js +2 -2
  280. package/cdn/components/loader/loader.js +3 -3
  281. package/cdn/components/login/login.component.js +12 -12
  282. package/cdn/components/login/login.js +13 -13
  283. package/cdn/components/map/map.component.js +9 -9
  284. package/cdn/components/map/map.js +10 -10
  285. package/cdn/components/map/map.service.js +3 -3
  286. package/cdn/components/menu/menu.component.js +2 -2
  287. package/cdn/components/menu/menu.js +3 -3
  288. package/cdn/components/menu-item/menu-item.component.js +11 -11
  289. package/cdn/components/menu-item/menu-item.js +12 -12
  290. package/cdn/components/menu-item/submenu-controller.js +3 -3
  291. package/cdn/components/option/option.component.js +6 -6
  292. package/cdn/components/option/option.js +7 -7
  293. package/cdn/components/pagination/pagination.component.js +6 -6
  294. package/cdn/components/pagination/pagination.js +7 -7
  295. package/cdn/components/plot/plot.component.js +3 -3
  296. package/cdn/components/plot/plot.js +4 -4
  297. package/cdn/components/plot-toolbar/notebooks/time-averaged-map-notebook.js +1 -1
  298. package/cdn/components/plot-toolbar/notebooks/time-series-notebook.js +1 -1
  299. package/cdn/components/plot-toolbar/plot-toolbar.component.js +19 -20
  300. package/cdn/components/plot-toolbar/plot-toolbar.js +20 -21
  301. package/cdn/components/popup/popup.component.js +2 -2
  302. package/cdn/components/popup/popup.js +3 -3
  303. package/cdn/components/progress-bar/progress-bar.component.js +2 -2
  304. package/cdn/components/progress-bar/progress-bar.js +3 -3
  305. package/cdn/components/radio/radio.component.js +4 -4
  306. package/cdn/components/radio/radio.js +5 -5
  307. package/cdn/components/radio-group/radio-group.component.js +2 -2
  308. package/cdn/components/radio-group/radio-group.js +3 -3
  309. package/cdn/components/scroll-hint/scroll-hint.component.js +4 -4
  310. package/cdn/components/scroll-hint/scroll-hint.js +5 -5
  311. package/cdn/components/select/select.component.js +10 -10
  312. package/cdn/components/select/select.js +11 -11
  313. package/cdn/components/site-header/site-header.component.js +5 -5
  314. package/cdn/components/site-header/site-header.js +5 -5
  315. package/cdn/components/site-navigation/site-navigation.component.js +2 -2
  316. package/cdn/components/site-navigation/site-navigation.js +2 -2
  317. package/cdn/components/skeleton/skeleton.component.js +2 -2
  318. package/cdn/components/skeleton/skeleton.js +3 -3
  319. package/cdn/components/slider/slider.component.js +2 -2
  320. package/cdn/components/slider/slider.js +3 -3
  321. package/cdn/components/spatial-picker/spatial-picker.component.js +20 -20
  322. package/cdn/components/spatial-picker/spatial-picker.js +21 -21
  323. package/cdn/components/status-indicator/status-indicator.component.js +2 -2
  324. package/cdn/components/status-indicator/status-indicator.js +3 -3
  325. package/cdn/components/stepper/stepper.component.js +2 -2
  326. package/cdn/components/stepper/stepper.js +3 -3
  327. package/cdn/components/stepper-step/stepper-step.component.js +6 -6
  328. package/cdn/components/stepper-step/stepper-step.js +7 -7
  329. package/cdn/components/tab/tab.component.js +6 -6
  330. package/cdn/components/tab/tab.js +7 -7
  331. package/cdn/components/tab-panel/tab-panel.component.js +2 -2
  332. package/cdn/components/tab-panel/tab-panel.js +3 -3
  333. package/cdn/components/tabs/tabs.component.js +6 -6
  334. package/cdn/components/tabs/tabs.js +7 -7
  335. package/cdn/components/tag/tag.component.js +6 -6
  336. package/cdn/components/tag/tag.js +7 -7
  337. package/cdn/components/textarea/textarea.component.js +4 -4
  338. package/cdn/components/textarea/textarea.js +5 -5
  339. package/cdn/components/time-average-map/time-average-map-cache.service.js +2 -3
  340. package/cdn/components/time-average-map/time-average-map.component.d.ts +16 -0
  341. package/cdn/components/time-average-map/time-average-map.component.js +33 -32
  342. package/cdn/components/time-average-map/time-average-map.controller.js +7 -6
  343. package/cdn/components/time-average-map/time-average-map.js +34 -33
  344. package/cdn/components/time-series/time-series-cache.service.js +2 -3
  345. package/cdn/components/time-series/time-series.component.d.ts +10 -0
  346. package/cdn/components/time-series/time-series.component.js +34 -33
  347. package/cdn/components/time-series/time-series.controller.js +8 -6
  348. package/cdn/components/time-series/time-series.js +35 -34
  349. package/cdn/components/toast/toast.component.js +4 -4
  350. package/cdn/components/toast/toast.js +5 -5
  351. package/cdn/components/toggle/toggle.component.js +4 -4
  352. package/cdn/components/toggle/toggle.js +5 -5
  353. package/cdn/components/tooltip/tooltip.component.d.ts +5 -0
  354. package/cdn/components/tooltip/tooltip.component.js +4 -4
  355. package/cdn/components/tooltip/tooltip.js +5 -5
  356. package/cdn/components/tooltip/tooltip.styles.js +1 -1
  357. package/cdn/components/variable-combobox/lib.js +3 -3
  358. package/cdn/components/variable-combobox/variable-combobox.component.js +15 -15
  359. package/cdn/components/variable-combobox/variable-combobox.controller.js +4 -4
  360. package/cdn/components/variable-combobox/variable-combobox.js +16 -16
  361. package/cdn/components/variable-keyword-search/variable-keyword-search.component.js +12 -12
  362. package/cdn/components/variable-keyword-search/variable-keyword-search.js +13 -13
  363. package/cdn/custom-elements.json +827 -329
  364. package/cdn/data-services/types.d.ts +2 -0
  365. package/cdn/events/events.d.ts +2 -0
  366. package/cdn/events/terra-harmony-job-delete.d.ts +8 -0
  367. package/cdn/events/terra-harmony-job-select.d.ts +9 -0
  368. package/cdn/internal/indexeddb.d.ts +2 -1
  369. package/cdn/lib/api.client.d.ts +1 -1
  370. package/cdn/lib/harmony/harmony.request.d.ts +23 -1
  371. package/cdn/lib/thumbnails/thumbnail.service.d.ts +14 -0
  372. package/cdn/queries/harmony.queries.d.ts +28 -0
  373. package/cdn/react/accordion/index.js +6 -6
  374. package/cdn/react/alert/index.js +4 -4
  375. package/cdn/react/avatar/index.js +8 -8
  376. package/cdn/react/badge/index.js +3 -3
  377. package/cdn/react/breadcrumb/index.js +3 -3
  378. package/cdn/react/breadcrumbs/index.js +3 -3
  379. package/cdn/react/browse-variables/index.js +19 -19
  380. package/cdn/react/button/index.js +8 -8
  381. package/cdn/react/button-group/index.js +3 -3
  382. package/cdn/react/caption/index.js +3 -3
  383. package/cdn/react/card/index.js +3 -3
  384. package/cdn/react/checkbox/index.js +9 -9
  385. package/cdn/react/chip/index.js +3 -3
  386. package/cdn/react/combobox/index.js +7 -7
  387. package/cdn/react/data-access/index.js +37 -36
  388. package/cdn/react/data-grid/index.js +6 -6
  389. package/cdn/react/data-rods/index.js +49 -48
  390. package/cdn/react/data-subsetter/index.js +48 -46
  391. package/cdn/react/data-subsetter-history/index.js +49 -47
  392. package/cdn/react/date-picker/index.js +15 -15
  393. package/cdn/react/date-range-slider/index.js +3 -3
  394. package/cdn/react/dialog/index.js +10 -10
  395. package/cdn/react/divider/index.js +3 -3
  396. package/cdn/react/dropdown/index.js +4 -4
  397. package/cdn/react/earthdata-login/index.js +16 -16
  398. package/cdn/react/file-upload/index.js +3 -3
  399. package/cdn/react/harmony-history/index.d.ts +30 -0
  400. package/cdn/react/harmony-history/index.js +44 -0
  401. package/cdn/react/icon/index.js +4 -4
  402. package/cdn/react/index.d.ts +2 -1
  403. package/cdn/react/index.js +222 -215
  404. package/cdn/react/input/index.js +9 -9
  405. package/cdn/react/loader/index.js +3 -3
  406. package/cdn/react/login/index.js +13 -13
  407. package/cdn/react/map/index.js +10 -10
  408. package/cdn/react/menu/index.js +3 -3
  409. package/cdn/react/menu-item/index.js +12 -12
  410. package/cdn/react/option/index.js +7 -7
  411. package/cdn/react/pagination/index.js +7 -7
  412. package/cdn/react/plot/index.js +4 -4
  413. package/cdn/react/plot-toolbar/index.js +20 -21
  414. package/cdn/react/popup/index.js +3 -3
  415. package/cdn/react/progress-bar/index.js +3 -3
  416. package/cdn/react/radio/index.js +5 -5
  417. package/cdn/react/radio-group/index.js +3 -3
  418. package/cdn/react/scroll-hint/index.js +5 -5
  419. package/cdn/react/select/index.js +11 -11
  420. package/cdn/react/site-header/index.js +6 -6
  421. package/cdn/react/site-navigation/index.js +3 -3
  422. package/cdn/react/skeleton/index.js +3 -3
  423. package/cdn/react/slider/index.js +3 -3
  424. package/cdn/react/spatial-picker/index.js +21 -21
  425. package/cdn/react/status-indicator/index.js +3 -3
  426. package/cdn/react/stepper/index.js +3 -3
  427. package/cdn/react/stepper-step/index.js +7 -7
  428. package/cdn/react/tab/index.js +7 -7
  429. package/cdn/react/tab-panel/index.js +3 -3
  430. package/cdn/react/tabs/index.js +7 -7
  431. package/cdn/react/tag/index.js +7 -7
  432. package/cdn/react/textarea/index.js +5 -5
  433. package/cdn/react/time-average-map/index.js +34 -33
  434. package/cdn/react/time-series/index.js +35 -34
  435. package/cdn/react/toast/index.js +5 -5
  436. package/cdn/react/toggle/index.js +5 -5
  437. package/cdn/react/tooltip/index.js +5 -5
  438. package/cdn/react/variable-combobox/index.js +16 -16
  439. package/cdn/react/variable-keyword-search/index.js +13 -13
  440. package/cdn/terra-ui-components.d.ts +1 -0
  441. package/cdn/terra-ui-components.js +197 -190
  442. package/cdn/types/vue/index.d.ts +113 -49
  443. package/cdn/vscode.html-custom-data.json +71 -26
  444. package/cdn/web-types.json +228 -112
  445. package/dist/apis/harmony.api.d.ts +24 -1
  446. package/dist/chunks/chunk.25IJTRN2.js +35 -0
  447. package/dist/chunks/chunk.26TIQ67V.js +1 -0
  448. package/dist/chunks/chunk.2FKZOYDM.js +170 -0
  449. package/dist/chunks/chunk.2QS2GW24.js +1 -0
  450. package/dist/chunks/chunk.2W4QHF33.js +100 -0
  451. package/dist/chunks/chunk.35AKYR3R.js +1 -0
  452. package/dist/chunks/chunk.3A7J6DJT.js +1 -0
  453. package/dist/chunks/chunk.3AWO3Q45.js +1 -0
  454. package/dist/chunks/chunk.3IP76OK4.js +1 -0
  455. package/dist/chunks/chunk.3NZFQPY5.js +1 -0
  456. package/dist/chunks/chunk.443D6GCI.js +1 -0
  457. package/dist/chunks/chunk.46MIWFWF.js +121 -0
  458. package/dist/chunks/chunk.4CPC6T4W.js +23 -0
  459. package/dist/chunks/chunk.4EI5AQ55.js +47 -0
  460. package/dist/chunks/chunk.4MF3EOIE.js +1 -0
  461. package/dist/chunks/chunk.4R54XEI5.js +14 -0
  462. package/dist/chunks/chunk.52AIVMJA.js +20 -0
  463. package/dist/chunks/chunk.52DDN5Y5.js +1 -0
  464. package/dist/chunks/chunk.5AT7REMR.js +1 -0
  465. package/dist/chunks/chunk.5AYLTPSG.js +55 -0
  466. package/dist/chunks/chunk.5NVT3NMG.js +1 -0
  467. package/dist/chunks/chunk.5ZJ22MI2.js +1 -0
  468. package/dist/chunks/chunk.63XFDLLU.js +22 -0
  469. package/dist/chunks/chunk.64Z5WQSA.js +1 -0
  470. package/dist/chunks/chunk.67ZMDEXW.js +1 -0
  471. package/dist/chunks/chunk.6BU2ZYA2.js +1 -0
  472. package/dist/chunks/chunk.6C2DLXBV.js +1 -0
  473. package/dist/chunks/chunk.6DUHY2K7.js +1 -0
  474. package/dist/chunks/chunk.6RGAOWQL.js +1 -0
  475. package/dist/chunks/chunk.6XHS36ZS.js +1 -0
  476. package/dist/chunks/chunk.6YC7NU6R.js +1 -0
  477. package/dist/chunks/chunk.74OC24MY.js +1 -0
  478. package/dist/chunks/chunk.76MUDXWL.js +1 -0
  479. package/dist/chunks/chunk.7M4J27XW.js +9 -0
  480. package/dist/chunks/chunk.7YKWHD3Q.js +1 -0
  481. package/dist/chunks/chunk.ADD22LT5.js +1 -0
  482. package/dist/chunks/chunk.ADOJGUIM.js +1 -0
  483. package/dist/chunks/chunk.ADRI7S3D.js +1 -0
  484. package/dist/chunks/chunk.AJTT6ZVS.js +1 -0
  485. package/dist/chunks/chunk.ALLTKOK5.js +55 -0
  486. package/dist/chunks/chunk.ALWXS4EN.js +1 -0
  487. package/dist/chunks/chunk.AOG74ZOR.js +1 -0
  488. package/dist/chunks/chunk.AXW6QQ5G.js +1 -0
  489. package/dist/chunks/chunk.BDUWGLTX.js +1 -0
  490. package/dist/chunks/chunk.BHTVOOL3.js +1 -0
  491. package/dist/chunks/chunk.BNL5MQSM.js +67 -0
  492. package/dist/chunks/chunk.BPGBHDOI.js +1 -0
  493. package/dist/chunks/chunk.BPHQBSYM.js +1 -0
  494. package/dist/chunks/chunk.BR23Z5K4.js +1 -0
  495. package/dist/chunks/chunk.BXSXRNLA.js +9 -0
  496. package/dist/chunks/chunk.CARZD2IC.js +1 -0
  497. package/dist/chunks/chunk.CMJJA2FU.js +280 -0
  498. package/dist/chunks/chunk.CNGKS3CF.js +74 -0
  499. package/dist/chunks/chunk.CSD2H2XD.js +1 -0
  500. package/dist/chunks/chunk.CWW64TWB.js +1 -0
  501. package/dist/chunks/chunk.D4AQVUAD.js +1 -0
  502. package/dist/chunks/chunk.DDT4SEKP.js +1 -0
  503. package/dist/chunks/chunk.DN2W7CXP.js +25 -0
  504. package/dist/chunks/chunk.DNECT5E5.js +1 -0
  505. package/dist/chunks/chunk.DSKRM2DE.js +1 -0
  506. package/dist/chunks/chunk.E2WOMCTG.js +115 -0
  507. package/dist/chunks/chunk.E74KOQ6O.js +37 -0
  508. package/dist/chunks/chunk.EB7RTWHA.js +1 -0
  509. package/dist/chunks/chunk.EHNN7VF7.js +1 -0
  510. package/dist/chunks/chunk.EKZ44GOI.js +300 -0
  511. package/dist/chunks/chunk.EKZZOM3I.js +1 -0
  512. package/dist/chunks/chunk.ELYC43YZ.js +1 -0
  513. package/dist/chunks/chunk.EMUOCMNG.js +1 -0
  514. package/dist/chunks/chunk.EQ77DEN3.js +1 -0
  515. package/dist/chunks/chunk.EVAOZTKK.js +37 -0
  516. package/dist/chunks/chunk.EXISX4DM.js +1 -0
  517. package/dist/chunks/chunk.EY7CGJXP.js +16 -0
  518. package/dist/chunks/chunk.F5XNFJYR.js +17 -0
  519. package/dist/chunks/chunk.FGAFF4GY.js +8 -0
  520. package/dist/chunks/chunk.FQ6VIV6W.js +1 -0
  521. package/dist/chunks/chunk.FT7HZOCQ.js +145 -0
  522. package/dist/chunks/chunk.FXGSYMQ5.js +1 -0
  523. package/dist/chunks/chunk.G3TKMUU4.js +1 -0
  524. package/dist/chunks/chunk.G7EZQRZI.js +26 -0
  525. package/dist/chunks/chunk.GHVDYLX5.js +1 -0
  526. package/dist/chunks/chunk.GIZLZV63.js +1 -0
  527. package/dist/chunks/chunk.H2SGQQPI.js +126 -0
  528. package/dist/chunks/chunk.H4FARZ53.js +1 -0
  529. package/dist/chunks/chunk.H6PC5SSG.js +8 -0
  530. package/dist/chunks/chunk.HDPC44EI.js +1 -0
  531. package/dist/chunks/chunk.HJJKMAXZ.js +1 -0
  532. package/dist/chunks/chunk.HRG3YIXF.js +1 -0
  533. package/dist/chunks/chunk.HTTWDTCN.js +1 -0
  534. package/dist/chunks/chunk.I6KMV3PH.js +1 -0
  535. package/dist/chunks/chunk.IAZ53T5N.js +1 -0
  536. package/dist/chunks/chunk.IECIA36P.js +1 -0
  537. package/dist/chunks/chunk.IFRRAZJZ.js +1 -0
  538. package/dist/chunks/chunk.ILWARFBK.js +80 -0
  539. package/dist/chunks/chunk.IO5RP4LZ.js +43 -0
  540. package/dist/chunks/chunk.ITLR4NVV.js +1 -0
  541. package/dist/chunks/chunk.J6LC4XO6.js +1 -0
  542. package/dist/chunks/chunk.JFAE577A.js +1 -0
  543. package/dist/chunks/chunk.JHNY5UC5.js +1 -0
  544. package/dist/chunks/chunk.JIFY72GY.js +1 -0
  545. package/dist/chunks/chunk.JMHCKJE6.js +12 -0
  546. package/dist/chunks/chunk.JPCSPQ7M.js +122 -0
  547. package/dist/chunks/chunk.JUBS77KN.js +1 -0
  548. package/dist/chunks/chunk.JVNL2XTU.js +5 -0
  549. package/dist/chunks/chunk.K3NTQ4JF.js +1 -0
  550. package/dist/chunks/chunk.K3RQUNKR.js +1 -0
  551. package/dist/chunks/chunk.K6EEJAT5.js +1 -0
  552. package/dist/chunks/chunk.KBQI5V5Q.js +749 -0
  553. package/dist/chunks/chunk.KNYMQKW4.js +1 -0
  554. package/dist/chunks/chunk.KPFWB2YA.js +1 -0
  555. package/dist/chunks/chunk.KRWSFDPL.js +1 -0
  556. package/dist/chunks/chunk.KVHJU4LP.js +1 -0
  557. package/dist/chunks/chunk.KYXMELYH.js +1 -0
  558. package/dist/chunks/chunk.L745Y2S6.js +1 -0
  559. package/dist/chunks/chunk.LA4EE2OS.js +26 -0
  560. package/dist/chunks/chunk.LBOZG7DZ.js +1 -0
  561. package/dist/chunks/chunk.LCC2VNUN.js +1 -0
  562. package/dist/chunks/chunk.LFGMVPWO.js +6 -0
  563. package/dist/chunks/chunk.LPNUA4MS.js +43 -0
  564. package/dist/chunks/chunk.MAZZVNDV.js +55 -0
  565. package/dist/chunks/chunk.MFSYNWGZ.js +1 -0
  566. package/dist/chunks/chunk.MJISDOIT.js +1 -0
  567. package/dist/chunks/chunk.MNSPDFPW.js +1 -0
  568. package/dist/chunks/chunk.MSFH4A6C.js +1 -0
  569. package/dist/chunks/chunk.MWN6SUCO.js +1 -0
  570. package/dist/chunks/chunk.N6MMAM36.js +1 -0
  571. package/dist/chunks/chunk.NBONFMWU.js +1 -0
  572. package/dist/chunks/chunk.NDMEGIXT.js +1 -0
  573. package/dist/chunks/chunk.NH6VLJ6J.js +1 -0
  574. package/dist/chunks/chunk.NRKQII5L.js +1 -0
  575. package/dist/chunks/chunk.NV3RRECJ.js +5 -0
  576. package/dist/chunks/chunk.NW7UERHZ.js +99 -0
  577. package/dist/chunks/chunk.NZ2EQTLJ.js +1 -0
  578. package/dist/chunks/chunk.O3T4ATYT.js +1 -0
  579. package/dist/chunks/chunk.OGQJXR3F.js +1 -0
  580. package/dist/chunks/chunk.OJGU37E3.js +1 -0
  581. package/dist/chunks/chunk.OQULIOOE.js +1 -0
  582. package/dist/chunks/chunk.OTF3DTPS.js +299 -0
  583. package/dist/chunks/chunk.OTK4YHSY.js +1 -0
  584. package/dist/chunks/chunk.OZ4SZSLD.js +1 -0
  585. package/dist/chunks/chunk.PA77JIJB.js +1 -0
  586. package/dist/chunks/chunk.PAOPYU6H.js +48 -0
  587. package/dist/chunks/chunk.PPSCVLKZ.js +566 -0
  588. package/dist/chunks/chunk.PQWOPKO5.js +1 -0
  589. package/dist/chunks/chunk.PZM3CPCG.js +64 -0
  590. package/dist/chunks/chunk.Q6QIRUFF.js +35 -0
  591. package/dist/chunks/chunk.QLI6APTM.js +1 -0
  592. package/dist/chunks/chunk.QNHHTCKA.js +20 -0
  593. package/dist/chunks/chunk.QP47LYRE.js +1 -0
  594. package/dist/chunks/chunk.QS53EJDR.js +1 -0
  595. package/dist/chunks/chunk.QTWF2WDX.js +1 -0
  596. package/dist/chunks/chunk.QUWBD3SD.js +2 -0
  597. package/dist/chunks/chunk.RMKTIRLM.js +1 -0
  598. package/dist/chunks/chunk.ROGSTGQT.js +1 -0
  599. package/dist/chunks/chunk.RYXFAYSI.js +1 -0
  600. package/dist/chunks/chunk.S3EEI23E.js +1 -0
  601. package/dist/chunks/chunk.SATJQMPW.js +1 -0
  602. package/dist/chunks/chunk.SDHUSIQJ.js +1 -0
  603. package/dist/chunks/chunk.SEODWXYC.js +38 -0
  604. package/dist/chunks/chunk.SJ7SUN6N.js +1 -0
  605. package/dist/chunks/chunk.T3F226QD.js +24 -0
  606. package/dist/chunks/chunk.T7B46YQE.js +1 -0
  607. package/dist/chunks/chunk.T7GB532E.js +101 -0
  608. package/dist/chunks/chunk.TKOSJQ55.js +33 -0
  609. package/dist/chunks/chunk.TLQME5TY.js +1 -0
  610. package/dist/chunks/chunk.TQGIFDYA.js +65 -0
  611. package/dist/chunks/chunk.TRPU5KOO.js +1 -0
  612. package/dist/chunks/chunk.TSTFRNHO.js +30 -0
  613. package/dist/chunks/chunk.TSVYBK3W.js +1 -0
  614. package/dist/chunks/chunk.UFDERNNG.js +140 -0
  615. package/dist/chunks/chunk.V2RCW5GT.js +1 -0
  616. package/dist/chunks/chunk.VIXBKCRX.js +1 -0
  617. package/dist/chunks/chunk.VPN54IEF.js +1 -0
  618. package/dist/chunks/chunk.VRH7V55E.js +1 -0
  619. package/dist/chunks/chunk.VRMDJLQD.js +1157 -0
  620. package/dist/chunks/chunk.W6XVQOLT.js +1 -0
  621. package/dist/chunks/chunk.WCR7D3KN.js +49 -0
  622. package/dist/chunks/chunk.WETDUXP5.js +1 -0
  623. package/dist/chunks/chunk.WKXYY2SS.js +1 -0
  624. package/dist/chunks/chunk.WLKVTAB4.js +1 -0
  625. package/dist/chunks/chunk.WNYSCJWU.js +1 -0
  626. package/dist/chunks/chunk.WR22TB5Y.js +106 -0
  627. package/dist/chunks/chunk.WSSQCROT.js +62 -0
  628. package/dist/chunks/chunk.WSV3Y476.js +1 -0
  629. package/dist/chunks/chunk.WUMKEMAE.js +1 -0
  630. package/dist/chunks/chunk.WUQDOY44.js +1 -0
  631. package/dist/chunks/chunk.WYFUGJYX.js +1 -0
  632. package/dist/chunks/chunk.WZJ6BLFI.js +154 -0
  633. package/dist/chunks/chunk.XA74HUUF.js +11 -0
  634. package/dist/chunks/chunk.XAR5NYEQ.js +19 -0
  635. package/dist/chunks/chunk.XBLQSPUU.js +39 -0
  636. package/dist/chunks/chunk.XOZSKLSU.js +1 -0
  637. package/dist/chunks/chunk.XQ2DODLW.js +1 -0
  638. package/dist/chunks/chunk.XUXVJHWD.js +1 -0
  639. package/dist/chunks/chunk.XW6P4ZVZ.js +75 -0
  640. package/dist/chunks/chunk.XWN6PMIT.js +1 -0
  641. package/dist/chunks/chunk.Y4NGZVLV.js +157 -0
  642. package/dist/chunks/chunk.YITLAPOA.js +1 -0
  643. package/dist/chunks/chunk.YSFPB4SY.js +1 -0
  644. package/dist/chunks/chunk.YVJLNJOM.js +1 -0
  645. package/dist/chunks/chunk.ZAZLZRKQ.js +1 -0
  646. package/dist/chunks/chunk.ZFBM4OFX.js +1 -0
  647. package/dist/chunks/chunk.ZGKHSKIP.js +1 -0
  648. package/dist/chunks/chunk.ZJOXNJ4J.js +30 -0
  649. package/dist/chunks/chunk.ZJQMVD74.js +4 -0
  650. package/dist/chunks/chunk.ZKKAJVQK.js +11 -0
  651. package/dist/chunks/chunk.ZVQU27UY.js +1 -0
  652. package/dist/components/accordion/accordion.component.js +1 -1
  653. package/dist/components/accordion/accordion.js +1 -1
  654. package/dist/components/alert/alert.component.js +1 -1
  655. package/dist/components/alert/alert.js +1 -1
  656. package/dist/components/avatar/avatar.component.js +1 -1
  657. package/dist/components/avatar/avatar.js +1 -1
  658. package/dist/components/badge/badge.component.js +1 -1
  659. package/dist/components/badge/badge.js +1 -1
  660. package/dist/components/breadcrumb/breadcrumb.component.js +1 -1
  661. package/dist/components/breadcrumb/breadcrumb.js +1 -1
  662. package/dist/components/breadcrumbs/breadcrumbs.component.js +1 -1
  663. package/dist/components/breadcrumbs/breadcrumbs.js +1 -1
  664. package/dist/components/browse-variables/browse-variables.component.js +1 -1
  665. package/dist/components/browse-variables/browse-variables.js +1 -1
  666. package/dist/components/button/button.component.js +1 -1
  667. package/dist/components/button/button.js +1 -1
  668. package/dist/components/button-group/button-group.component.js +1 -1
  669. package/dist/components/button-group/button-group.js +1 -1
  670. package/dist/components/caption/caption.component.js +1 -1
  671. package/dist/components/caption/caption.js +1 -1
  672. package/dist/components/card/card.component.js +1 -1
  673. package/dist/components/card/card.js +1 -1
  674. package/dist/components/checkbox/checkbox.component.js +1 -1
  675. package/dist/components/checkbox/checkbox.js +1 -1
  676. package/dist/components/chip/chip.component.js +1 -1
  677. package/dist/components/chip/chip.js +1 -1
  678. package/dist/components/combobox/combobox.component.js +1 -1
  679. package/dist/components/combobox/combobox.js +1 -1
  680. package/dist/components/data-access/data-access.component.js +1 -1
  681. package/dist/components/data-access/data-access.js +1 -1
  682. package/dist/components/data-grid/data-grid.component.js +1 -1
  683. package/dist/components/data-grid/data-grid.js +1 -1
  684. package/dist/components/data-rods/data-rods.component.js +1 -1
  685. package/dist/components/data-rods/data-rods.js +1 -1
  686. package/dist/components/data-subsetter/data-subsetter.component.js +1 -1
  687. package/dist/components/data-subsetter/data-subsetter.js +1 -1
  688. package/dist/components/data-subsetter/notebooks/subsetter-notebook.js +1 -1
  689. package/dist/components/data-subsetter-history/data-subsetter-history.component.js +1 -1
  690. package/dist/components/data-subsetter-history/data-subsetter-history.js +1 -1
  691. package/dist/components/date-picker/date-picker.component.js +1 -1
  692. package/dist/components/date-picker/date-picker.js +1 -1
  693. package/dist/components/date-range-slider/date-range-slider.component.js +1 -1
  694. package/dist/components/date-range-slider/date-range-slider.js +1 -1
  695. package/dist/components/dialog/dialog.component.js +1 -1
  696. package/dist/components/dialog/dialog.js +1 -1
  697. package/dist/components/divider/divider.component.js +1 -1
  698. package/dist/components/divider/divider.js +1 -1
  699. package/dist/components/dropdown/dropdown.component.js +1 -1
  700. package/dist/components/dropdown/dropdown.js +1 -1
  701. package/dist/components/earthdata-login/earthdata-login.component.js +1 -1
  702. package/dist/components/earthdata-login/earthdata-login.js +1 -1
  703. package/dist/components/file-upload/file-upload.component.js +1 -1
  704. package/dist/components/file-upload/file-upload.js +1 -1
  705. package/dist/components/harmony-history/harmony-history.component.d.ts +91 -0
  706. package/dist/components/harmony-history/harmony-history.component.js +1 -0
  707. package/dist/components/harmony-history/harmony-history.d.ts +8 -0
  708. package/dist/components/harmony-history/harmony-history.js +1 -0
  709. package/dist/components/harmony-history/harmony-history.styles.d.ts +2 -0
  710. package/dist/components/harmony-history/harmony-history.styles.js +1 -0
  711. package/dist/components/icon/icon.component.js +1 -1
  712. package/dist/components/icon/icon.js +1 -1
  713. package/dist/components/input/input.component.js +1 -1
  714. package/dist/components/input/input.js +1 -1
  715. package/dist/components/loader/loader.component.js +1 -1
  716. package/dist/components/loader/loader.js +1 -1
  717. package/dist/components/login/login.component.js +1 -1
  718. package/dist/components/login/login.js +1 -1
  719. package/dist/components/map/map.component.js +1 -1
  720. package/dist/components/map/map.js +1 -1
  721. package/dist/components/map/map.service.js +1 -1
  722. package/dist/components/menu/menu.component.js +1 -1
  723. package/dist/components/menu/menu.js +1 -1
  724. package/dist/components/menu-item/menu-item.component.js +1 -1
  725. package/dist/components/menu-item/menu-item.js +1 -1
  726. package/dist/components/option/option.component.js +1 -1
  727. package/dist/components/option/option.js +1 -1
  728. package/dist/components/pagination/pagination.component.js +1 -1
  729. package/dist/components/pagination/pagination.js +1 -1
  730. package/dist/components/plot/plot.component.js +1 -1
  731. package/dist/components/plot/plot.js +1 -1
  732. package/dist/components/plot-toolbar/notebooks/time-averaged-map-notebook.js +1 -1
  733. package/dist/components/plot-toolbar/notebooks/time-series-notebook.js +1 -1
  734. package/dist/components/plot-toolbar/plot-toolbar.component.js +1 -1
  735. package/dist/components/plot-toolbar/plot-toolbar.js +1 -1
  736. package/dist/components/popup/popup.component.js +1 -1
  737. package/dist/components/popup/popup.js +1 -1
  738. package/dist/components/progress-bar/progress-bar.component.js +1 -1
  739. package/dist/components/progress-bar/progress-bar.js +1 -1
  740. package/dist/components/radio/radio.component.js +1 -1
  741. package/dist/components/radio/radio.js +1 -1
  742. package/dist/components/radio-group/radio-group.component.js +1 -1
  743. package/dist/components/radio-group/radio-group.js +1 -1
  744. package/dist/components/scroll-hint/scroll-hint.component.js +1 -1
  745. package/dist/components/scroll-hint/scroll-hint.js +1 -1
  746. package/dist/components/select/select.component.js +1 -1
  747. package/dist/components/select/select.js +1 -1
  748. package/dist/components/site-header/site-header.component.js +1 -1
  749. package/dist/components/site-header/site-header.js +1 -1
  750. package/dist/components/site-navigation/site-navigation.component.js +1 -1
  751. package/dist/components/site-navigation/site-navigation.js +1 -1
  752. package/dist/components/skeleton/skeleton.component.js +1 -1
  753. package/dist/components/skeleton/skeleton.js +1 -1
  754. package/dist/components/slider/slider.component.js +1 -1
  755. package/dist/components/slider/slider.js +1 -1
  756. package/dist/components/spatial-picker/spatial-picker.component.js +1 -1
  757. package/dist/components/spatial-picker/spatial-picker.js +1 -1
  758. package/dist/components/status-indicator/status-indicator.component.js +1 -1
  759. package/dist/components/status-indicator/status-indicator.js +1 -1
  760. package/dist/components/stepper/stepper.component.js +1 -1
  761. package/dist/components/stepper/stepper.js +1 -1
  762. package/dist/components/stepper-step/stepper-step.component.js +1 -1
  763. package/dist/components/stepper-step/stepper-step.js +1 -1
  764. package/dist/components/tab/tab.component.js +1 -1
  765. package/dist/components/tab/tab.js +1 -1
  766. package/dist/components/tab-panel/tab-panel.component.js +1 -1
  767. package/dist/components/tab-panel/tab-panel.js +1 -1
  768. package/dist/components/tabs/tabs.component.js +1 -1
  769. package/dist/components/tabs/tabs.js +1 -1
  770. package/dist/components/tag/tag.component.js +1 -1
  771. package/dist/components/tag/tag.js +1 -1
  772. package/dist/components/textarea/textarea.component.js +1 -1
  773. package/dist/components/textarea/textarea.js +1 -1
  774. package/dist/components/time-average-map/time-average-map-cache.service.js +1 -1
  775. package/dist/components/time-average-map/time-average-map.component.d.ts +16 -0
  776. package/dist/components/time-average-map/time-average-map.component.js +1 -1
  777. package/dist/components/time-average-map/time-average-map.controller.js +1 -1
  778. package/dist/components/time-average-map/time-average-map.js +1 -1
  779. package/dist/components/time-series/time-series-cache.service.js +1 -1
  780. package/dist/components/time-series/time-series.component.d.ts +10 -0
  781. package/dist/components/time-series/time-series.component.js +1 -1
  782. package/dist/components/time-series/time-series.controller.js +1 -1
  783. package/dist/components/time-series/time-series.js +1 -1
  784. package/dist/components/toast/toast.component.js +1 -1
  785. package/dist/components/toast/toast.js +1 -1
  786. package/dist/components/toggle/toggle.component.js +1 -1
  787. package/dist/components/toggle/toggle.js +1 -1
  788. package/dist/components/tooltip/tooltip.component.d.ts +5 -0
  789. package/dist/components/tooltip/tooltip.component.js +1 -1
  790. package/dist/components/tooltip/tooltip.js +1 -1
  791. package/dist/components/tooltip/tooltip.styles.js +1 -1
  792. package/dist/components/variable-combobox/variable-combobox.component.js +1 -1
  793. package/dist/components/variable-combobox/variable-combobox.js +1 -1
  794. package/dist/components/variable-keyword-search/variable-keyword-search.component.js +1 -1
  795. package/dist/components/variable-keyword-search/variable-keyword-search.js +1 -1
  796. package/dist/custom-elements.json +827 -329
  797. package/dist/data-services/types.d.ts +2 -0
  798. package/dist/events/events.d.ts +2 -0
  799. package/dist/events/terra-harmony-job-delete.d.ts +8 -0
  800. package/dist/events/terra-harmony-job-select.d.ts +9 -0
  801. package/dist/internal/indexeddb.d.ts +2 -1
  802. package/dist/lib/api.client.d.ts +1 -1
  803. package/dist/lib/harmony/harmony.request.d.ts +23 -1
  804. package/dist/lib/thumbnails/thumbnail.service.d.ts +14 -0
  805. package/dist/queries/harmony.queries.d.ts +28 -0
  806. package/dist/react/accordion/index.js +1 -1
  807. package/dist/react/alert/index.js +1 -1
  808. package/dist/react/avatar/index.js +1 -1
  809. package/dist/react/badge/index.js +1 -1
  810. package/dist/react/breadcrumb/index.js +1 -1
  811. package/dist/react/breadcrumbs/index.js +1 -1
  812. package/dist/react/browse-variables/index.js +1 -1
  813. package/dist/react/button/index.js +1 -1
  814. package/dist/react/button-group/index.js +1 -1
  815. package/dist/react/caption/index.js +1 -1
  816. package/dist/react/card/index.js +1 -1
  817. package/dist/react/checkbox/index.js +1 -1
  818. package/dist/react/chip/index.js +1 -1
  819. package/dist/react/combobox/index.js +1 -1
  820. package/dist/react/data-access/index.js +1 -1
  821. package/dist/react/data-grid/index.js +1 -1
  822. package/dist/react/data-rods/index.js +1 -1
  823. package/dist/react/data-subsetter/index.js +1 -1
  824. package/dist/react/data-subsetter-history/index.js +1 -1
  825. package/dist/react/date-picker/index.js +1 -1
  826. package/dist/react/date-range-slider/index.js +1 -1
  827. package/dist/react/dialog/index.js +1 -1
  828. package/dist/react/divider/index.js +1 -1
  829. package/dist/react/dropdown/index.js +1 -1
  830. package/dist/react/earthdata-login/index.js +1 -1
  831. package/dist/react/file-upload/index.js +1 -1
  832. package/dist/react/harmony-history/index.d.ts +30 -0
  833. package/dist/react/harmony-history/index.js +1 -0
  834. package/dist/react/icon/index.js +1 -1
  835. package/dist/react/index.d.ts +2 -1
  836. package/dist/react/index.js +1 -1
  837. package/dist/react/input/index.js +1 -1
  838. package/dist/react/loader/index.js +1 -1
  839. package/dist/react/login/index.js +1 -1
  840. package/dist/react/map/index.js +1 -1
  841. package/dist/react/menu/index.js +1 -1
  842. package/dist/react/menu-item/index.js +1 -1
  843. package/dist/react/option/index.js +1 -1
  844. package/dist/react/pagination/index.js +1 -1
  845. package/dist/react/plot/index.js +1 -1
  846. package/dist/react/plot-toolbar/index.js +1 -1
  847. package/dist/react/popup/index.js +1 -1
  848. package/dist/react/progress-bar/index.js +1 -1
  849. package/dist/react/radio/index.js +1 -1
  850. package/dist/react/radio-group/index.js +1 -1
  851. package/dist/react/scroll-hint/index.js +1 -1
  852. package/dist/react/select/index.js +1 -1
  853. package/dist/react/site-header/index.js +1 -1
  854. package/dist/react/site-navigation/index.js +1 -1
  855. package/dist/react/skeleton/index.js +1 -1
  856. package/dist/react/slider/index.js +1 -1
  857. package/dist/react/spatial-picker/index.js +1 -1
  858. package/dist/react/status-indicator/index.js +1 -1
  859. package/dist/react/stepper/index.js +1 -1
  860. package/dist/react/stepper-step/index.js +1 -1
  861. package/dist/react/tab/index.js +1 -1
  862. package/dist/react/tab-panel/index.js +1 -1
  863. package/dist/react/tabs/index.js +1 -1
  864. package/dist/react/tag/index.js +1 -1
  865. package/dist/react/textarea/index.js +1 -1
  866. package/dist/react/time-average-map/index.js +1 -1
  867. package/dist/react/time-series/index.js +1 -1
  868. package/dist/react/toast/index.js +1 -1
  869. package/dist/react/toggle/index.js +1 -1
  870. package/dist/react/tooltip/index.js +1 -1
  871. package/dist/react/variable-combobox/index.js +1 -1
  872. package/dist/react/variable-keyword-search/index.js +1 -1
  873. package/dist/terra-ui-components.d.ts +1 -0
  874. package/dist/terra-ui-components.js +1 -1
  875. package/dist/terra_ui_components-0.0.181-py3-none-any.whl +0 -0
  876. package/dist/terra_ui_components-0.0.181.tar.gz +0 -0
  877. package/dist/types/vue/index.d.ts +113 -49
  878. package/dist/vscode.html-custom-data.json +71 -26
  879. package/dist/web-types.json +228 -112
  880. package/package.json +1 -1
  881. package/cdn/chunks/chunk.26KT257Q.js +0 -19
  882. package/cdn/chunks/chunk.26SCJOJ4.js +0 -74
  883. package/cdn/chunks/chunk.2EHI57XD.js +0 -231
  884. package/cdn/chunks/chunk.2I5KN4RI.js +0 -37
  885. package/cdn/chunks/chunk.2NYR45OC.js +0 -19
  886. package/cdn/chunks/chunk.2PCUEDQZ.js +0 -443
  887. package/cdn/chunks/chunk.2PIJCAHO.js +0 -99
  888. package/cdn/chunks/chunk.2UX56X34.js +0 -113
  889. package/cdn/chunks/chunk.2XHYYHQN.js +0 -275
  890. package/cdn/chunks/chunk.3AKWECBP.js +0 -372
  891. package/cdn/chunks/chunk.3GBETBER.js +0 -123
  892. package/cdn/chunks/chunk.3HV55YDS.js +0 -224
  893. package/cdn/chunks/chunk.3KFZES7Q.js +0 -230
  894. package/cdn/chunks/chunk.3LTFEU5K.js +0 -36
  895. package/cdn/chunks/chunk.3MWEGEU7.js +0 -610
  896. package/cdn/chunks/chunk.3NTDKUSD.js +0 -29
  897. package/cdn/chunks/chunk.3S4XI5MC.js +0 -86
  898. package/cdn/chunks/chunk.3Y7HZ5CS.js +0 -110
  899. package/cdn/chunks/chunk.43WTY3ZD.js +0 -32
  900. package/cdn/chunks/chunk.45N3DFV4.js +0 -19
  901. package/cdn/chunks/chunk.4HCU45UG.js +0 -29
  902. package/cdn/chunks/chunk.4LFOVYFH.js +0 -99
  903. package/cdn/chunks/chunk.4NTCIMIX.js +0 -2244
  904. package/cdn/chunks/chunk.4OP4GNVW.js +0 -29
  905. package/cdn/chunks/chunk.4VAP3VBN.js +0 -29
  906. package/cdn/chunks/chunk.4YNSLPJC.js +0 -19
  907. package/cdn/chunks/chunk.4ZM4QKER.js +0 -19
  908. package/cdn/chunks/chunk.55427GKA.js +0 -82
  909. package/cdn/chunks/chunk.57IZ2MZ2.js +0 -19
  910. package/cdn/chunks/chunk.5KGLRM37.js +0 -19
  911. package/cdn/chunks/chunk.5LCTOD4H.js +0 -19
  912. package/cdn/chunks/chunk.5OXHAB2B.js +0 -29
  913. package/cdn/chunks/chunk.5PL6BT5L.js +0 -19
  914. package/cdn/chunks/chunk.5PSII5RD.js +0 -19
  915. package/cdn/chunks/chunk.5SVFWLUR.js +0 -32
  916. package/cdn/chunks/chunk.5VKEN4OT.js +0 -19
  917. package/cdn/chunks/chunk.62YQVV2U.js +0 -2545
  918. package/cdn/chunks/chunk.6345KRH3.js +0 -29
  919. package/cdn/chunks/chunk.63OVZYG7.js +0 -134
  920. package/cdn/chunks/chunk.64LFYQBJ.js +0 -36
  921. package/cdn/chunks/chunk.65JGKMIH.js +0 -33
  922. package/cdn/chunks/chunk.6BANIONF.js +0 -36
  923. package/cdn/chunks/chunk.6BNVBPDD.js +0 -83
  924. package/cdn/chunks/chunk.6FWBBVHU.js +0 -29
  925. package/cdn/chunks/chunk.7CYCPGZL.js +0 -19
  926. package/cdn/chunks/chunk.7DBQXMNS.js +0 -32
  927. package/cdn/chunks/chunk.AFVDFDPT.js +0 -19
  928. package/cdn/chunks/chunk.ANMFYKYT.js +0 -19
  929. package/cdn/chunks/chunk.AO2NP5HV.js +0 -29
  930. package/cdn/chunks/chunk.ASJLND3B.js +0 -77
  931. package/cdn/chunks/chunk.AZNBVV2E.js +0 -278
  932. package/cdn/chunks/chunk.B5SI6B3Q.js +0 -19
  933. package/cdn/chunks/chunk.B6HZN4GK.js +0 -29
  934. package/cdn/chunks/chunk.BQ2HB43G.js +0 -189
  935. package/cdn/chunks/chunk.BQPGMCWW.js +0 -19
  936. package/cdn/chunks/chunk.BS2LEWWJ.js +0 -19
  937. package/cdn/chunks/chunk.BY2PSOYC.js +0 -29
  938. package/cdn/chunks/chunk.CEYEI6T4.js +0 -19
  939. package/cdn/chunks/chunk.CGEZSHZ5.js +0 -33
  940. package/cdn/chunks/chunk.CK5NGIYK.js +0 -60
  941. package/cdn/chunks/chunk.CLKXRS73.js +0 -19
  942. package/cdn/chunks/chunk.DFGOCWJB.js +0 -32
  943. package/cdn/chunks/chunk.DOBB44OO.js +0 -32
  944. package/cdn/chunks/chunk.DQMBRW4N.js +0 -205
  945. package/cdn/chunks/chunk.DZ7HKQYS.js +0 -19
  946. package/cdn/chunks/chunk.DZK2VH2Q.js +0 -19
  947. package/cdn/chunks/chunk.E46YC4DO.js +0 -190
  948. package/cdn/chunks/chunk.E5WMG3BD.js +0 -19
  949. package/cdn/chunks/chunk.EB3CVSCM.js +0 -41
  950. package/cdn/chunks/chunk.EC5TUHDA.js +0 -56075
  951. package/cdn/chunks/chunk.EFZHNM4Z.js +0 -78
  952. package/cdn/chunks/chunk.EKRKRJLH.js +0 -288
  953. package/cdn/chunks/chunk.EMRMJT4V.js +0 -264
  954. package/cdn/chunks/chunk.EN3OWGOT.js +0 -29
  955. package/cdn/chunks/chunk.ETS22PNR.js +0 -19
  956. package/cdn/chunks/chunk.EVTA6QPK.js +0 -19
  957. package/cdn/chunks/chunk.EWNVVXDC.js +0 -915
  958. package/cdn/chunks/chunk.F5CDI3XH.js +0 -188
  959. package/cdn/chunks/chunk.F65WZTM3.js +0 -524
  960. package/cdn/chunks/chunk.F7QE3QNK.js +0 -93
  961. package/cdn/chunks/chunk.FA7FPDAP.js +0 -33
  962. package/cdn/chunks/chunk.FBQK3I4M.js +0 -251
  963. package/cdn/chunks/chunk.FKX557YD.js +0 -35
  964. package/cdn/chunks/chunk.FP5DQ5TE.js +0 -19
  965. package/cdn/chunks/chunk.FPMFEQWC.js +0 -662
  966. package/cdn/chunks/chunk.FUX5Z5ZH.js +0 -19
  967. package/cdn/chunks/chunk.FVSS56G2.js +0 -904
  968. package/cdn/chunks/chunk.G5R5NCHW.js +0 -29
  969. package/cdn/chunks/chunk.G5WKYWF3.js +0 -1975
  970. package/cdn/chunks/chunk.G7YZNTSI.js +0 -37
  971. package/cdn/chunks/chunk.GB2EHXNN.js +0 -29
  972. package/cdn/chunks/chunk.GDAG7XAY.js +0 -1145
  973. package/cdn/chunks/chunk.GDIHTNEZ.js +0 -19
  974. package/cdn/chunks/chunk.GKNJVUX5.js +0 -32
  975. package/cdn/chunks/chunk.GTYKITY2.js +0 -19
  976. package/cdn/chunks/chunk.GW4OJECU.js +0 -658
  977. package/cdn/chunks/chunk.GXEN7PV7.js +0 -29
  978. package/cdn/chunks/chunk.H7I2MF6Q.js +0 -19
  979. package/cdn/chunks/chunk.HBEYO22S.js +0 -477
  980. package/cdn/chunks/chunk.HBJP5PSR.js +0 -234
  981. package/cdn/chunks/chunk.HGYUVVIH.js +0 -19
  982. package/cdn/chunks/chunk.HHAXDGNT.js +0 -793
  983. package/cdn/chunks/chunk.HWHP3UHO.js +0 -35
  984. package/cdn/chunks/chunk.I64EAKC3.js +0 -68
  985. package/cdn/chunks/chunk.IUIDKVNA.js +0 -19
  986. package/cdn/chunks/chunk.J3OF4YDA.js +0 -19
  987. package/cdn/chunks/chunk.JEKJT3MY.js +0 -71
  988. package/cdn/chunks/chunk.JR5DAYAS.js +0 -19
  989. package/cdn/chunks/chunk.JRVFANJK.js +0 -47
  990. package/cdn/chunks/chunk.JXELTFHA.js +0 -29
  991. package/cdn/chunks/chunk.JYMWEWPJ.js +0 -19
  992. package/cdn/chunks/chunk.K2ACV56W.js +0 -32
  993. package/cdn/chunks/chunk.K44OFKQS.js +0 -32
  994. package/cdn/chunks/chunk.K4OQYYXM.js +0 -29
  995. package/cdn/chunks/chunk.KAUIQBTO.js +0 -359
  996. package/cdn/chunks/chunk.KFCGIILI.js +0 -151
  997. package/cdn/chunks/chunk.KOAN3QWI.js +0 -19
  998. package/cdn/chunks/chunk.KVFJQNWO.js +0 -35
  999. package/cdn/chunks/chunk.KY4QC2V2.js +0 -62
  1000. package/cdn/chunks/chunk.KYZTZY5T.js +0 -32
  1001. package/cdn/chunks/chunk.L5A336NA.js +0 -302
  1002. package/cdn/chunks/chunk.L73LVHAO.js +0 -29
  1003. package/cdn/chunks/chunk.LLAJXXYS.js +0 -29
  1004. package/cdn/chunks/chunk.LRZIT4M2.js +0 -157
  1005. package/cdn/chunks/chunk.LS2IEWTZ.js +0 -36
  1006. package/cdn/chunks/chunk.LYJWWGV5.js +0 -19
  1007. package/cdn/chunks/chunk.MAHUWVEN.js +0 -279
  1008. package/cdn/chunks/chunk.MB2V6COB.js +0 -514
  1009. package/cdn/chunks/chunk.MKM7UBWD.js +0 -19
  1010. package/cdn/chunks/chunk.N445KZFN.js +0 -19
  1011. package/cdn/chunks/chunk.N6S4QWLI.js +0 -19
  1012. package/cdn/chunks/chunk.NAGHFEYY.js +0 -32
  1013. package/cdn/chunks/chunk.NCADSUWB.js +0 -19
  1014. package/cdn/chunks/chunk.NCQOAE3M.js +0 -19
  1015. package/cdn/chunks/chunk.NO4RDEJF.js +0 -92
  1016. package/cdn/chunks/chunk.NPNAGT7B.js +0 -19
  1017. package/cdn/chunks/chunk.NQXDDIXR.js +0 -32
  1018. package/cdn/chunks/chunk.NSBA63MB.js +0 -29
  1019. package/cdn/chunks/chunk.NWIN2OV5.js +0 -329
  1020. package/cdn/chunks/chunk.NWMT6TEO.js +0 -237
  1021. package/cdn/chunks/chunk.NWOUTLRN.js +0 -19
  1022. package/cdn/chunks/chunk.NZXJUHZX.js +0 -293
  1023. package/cdn/chunks/chunk.O6VWUDUR.js +0 -165
  1024. package/cdn/chunks/chunk.ODOR7YRI.js +0 -9744
  1025. package/cdn/chunks/chunk.OHLZOOZU.js +0 -3798
  1026. package/cdn/chunks/chunk.OIJZAJWN.js +0 -357
  1027. package/cdn/chunks/chunk.OXBDJPHT.js +0 -161
  1028. package/cdn/chunks/chunk.OXZDJYTP.js +0 -538
  1029. package/cdn/chunks/chunk.P7H34OO5.js +0 -32
  1030. package/cdn/chunks/chunk.PGQT2SUZ.js +0 -29
  1031. package/cdn/chunks/chunk.PZDOAUYA.js +0 -19
  1032. package/cdn/chunks/chunk.PZTXEDKR.js +0 -32
  1033. package/cdn/chunks/chunk.Q2KZZXNW.js +0 -19
  1034. package/cdn/chunks/chunk.QBWMG6IT.js +0 -34
  1035. package/cdn/chunks/chunk.QKPGMKCU.js +0 -29
  1036. package/cdn/chunks/chunk.QSUEVWML.js +0 -19
  1037. package/cdn/chunks/chunk.R76JUQVJ.js +0 -19
  1038. package/cdn/chunks/chunk.RGVLUCXY.js +0 -136
  1039. package/cdn/chunks/chunk.ROOGE2IT.js +0 -34
  1040. package/cdn/chunks/chunk.RPOR5R2E.js +0 -29
  1041. package/cdn/chunks/chunk.RRAIBGZ4.js +0 -19
  1042. package/cdn/chunks/chunk.RSLF75JQ.js +0 -276
  1043. package/cdn/chunks/chunk.RXWDA5OC.js +0 -29
  1044. package/cdn/chunks/chunk.SEDBHEAB.js +0 -259
  1045. package/cdn/chunks/chunk.SI62BLWL.js +0 -117
  1046. package/cdn/chunks/chunk.SOLKAAGN.js +0 -616
  1047. package/cdn/chunks/chunk.SXQOBC52.js +0 -113
  1048. package/cdn/chunks/chunk.TP5I7KWU.js +0 -19
  1049. package/cdn/chunks/chunk.U5HIJOMQ.js +0 -75
  1050. package/cdn/chunks/chunk.U5MPUZM5.js +0 -19
  1051. package/cdn/chunks/chunk.UDOTA73Q.js +0 -104
  1052. package/cdn/chunks/chunk.UIM3CRXT.js +0 -32
  1053. package/cdn/chunks/chunk.UJ37LSQF.js +0 -35
  1054. package/cdn/chunks/chunk.ULPRYBXE.js +0 -19
  1055. package/cdn/chunks/chunk.UOI45MZN.js +0 -33
  1056. package/cdn/chunks/chunk.UP5IZCN2.js +0 -19
  1057. package/cdn/chunks/chunk.UT7NEDHK.js +0 -56
  1058. package/cdn/chunks/chunk.UZIKKKMX.js +0 -599
  1059. package/cdn/chunks/chunk.V3B7XZSR.js +0 -29
  1060. package/cdn/chunks/chunk.VEQFG24Y.js +0 -29
  1061. package/cdn/chunks/chunk.VJ3HSVRM.js +0 -19
  1062. package/cdn/chunks/chunk.VM7QIPMN.js +0 -19
  1063. package/cdn/chunks/chunk.VOMJQ2PY.js +0 -29
  1064. package/cdn/chunks/chunk.VSWWQTCR.js +0 -49
  1065. package/cdn/chunks/chunk.W6SOSTCJ.js +0 -535
  1066. package/cdn/chunks/chunk.W7J5622D.js +0 -132
  1067. package/cdn/chunks/chunk.WCT2EGAW.js +0 -19
  1068. package/cdn/chunks/chunk.WDXR2JIS.js +0 -155
  1069. package/cdn/chunks/chunk.WG4VDVEI.js +0 -81
  1070. package/cdn/chunks/chunk.WQHKJMY7.js +0 -29
  1071. package/cdn/chunks/chunk.WWVZEJPV.js +0 -19
  1072. package/cdn/chunks/chunk.WWXXMUQQ.js +0 -29
  1073. package/cdn/chunks/chunk.WYHJ7NLI.js +0 -134
  1074. package/cdn/chunks/chunk.Y3GAPNFQ.js +0 -60
  1075. package/cdn/chunks/chunk.Y5OZ5KWP.js +0 -106
  1076. package/cdn/chunks/chunk.Y76LQIOK.js +0 -19
  1077. package/cdn/chunks/chunk.YDXASEGU.js +0 -29
  1078. package/cdn/chunks/chunk.YFQYUNKU.js +0 -19
  1079. package/cdn/chunks/chunk.YIVEZAP4.js +0 -30
  1080. package/cdn/chunks/chunk.YOIXCCDN.js +0 -93
  1081. package/cdn/chunks/chunk.YWHPP2TL.js +0 -19
  1082. package/cdn/chunks/chunk.YYHKRVK5.js +0 -34
  1083. package/cdn/chunks/chunk.Z2Y7UOPY.js +0 -1184
  1084. package/cdn/chunks/chunk.Z4Q7EJUU.js +0 -19
  1085. package/cdn/chunks/chunk.Z5D5WHWT.js +0 -39
  1086. package/cdn/chunks/chunk.Z7JIWZZH.js +0 -285
  1087. package/cdn/chunks/chunk.ZALJFYJ6.js +0 -493
  1088. package/cdn/chunks/chunk.ZWKZYPUO.js +0 -19
  1089. package/cdn/chunks/chunk.ZWVOSI42.js +0 -29
  1090. package/dist/chunks/chunk.2AJNF5Z5.js +0 -1
  1091. package/dist/chunks/chunk.2NT5ZT4T.js +0 -1
  1092. package/dist/chunks/chunk.2P3YOE6H.js +0 -1
  1093. package/dist/chunks/chunk.2QP3CLLZ.js +0 -67
  1094. package/dist/chunks/chunk.2YCZCE4S.js +0 -1
  1095. package/dist/chunks/chunk.34SGSVEH.js +0 -140
  1096. package/dist/chunks/chunk.3NRLZXI2.js +0 -1
  1097. package/dist/chunks/chunk.3YYQOQRG.js +0 -20
  1098. package/dist/chunks/chunk.46H3YDP7.js +0 -1
  1099. package/dist/chunks/chunk.46LCWODR.js +0 -65
  1100. package/dist/chunks/chunk.47BVT76F.js +0 -1
  1101. package/dist/chunks/chunk.4B47VXVP.js +0 -1
  1102. package/dist/chunks/chunk.4DDE3552.js +0 -1
  1103. package/dist/chunks/chunk.4DHJWSZT.js +0 -1
  1104. package/dist/chunks/chunk.4FA2VISH.js +0 -1
  1105. package/dist/chunks/chunk.4MBPAU5Y.js +0 -566
  1106. package/dist/chunks/chunk.4NHCLCIX.js +0 -1
  1107. package/dist/chunks/chunk.4ONQSCPA.js +0 -1
  1108. package/dist/chunks/chunk.4QXSXFWK.js +0 -1
  1109. package/dist/chunks/chunk.4WU5R5TN.js +0 -64
  1110. package/dist/chunks/chunk.5C2GZTN3.js +0 -1
  1111. package/dist/chunks/chunk.5FEQDBOD.js +0 -1
  1112. package/dist/chunks/chunk.5GXUM2LI.js +0 -1
  1113. package/dist/chunks/chunk.5ITKGB2M.js +0 -43
  1114. package/dist/chunks/chunk.5WTW5KGY.js +0 -1
  1115. package/dist/chunks/chunk.6D2P5XBP.js +0 -11
  1116. package/dist/chunks/chunk.6DLYU7II.js +0 -1
  1117. package/dist/chunks/chunk.6FK4JW6B.js +0 -1
  1118. package/dist/chunks/chunk.6QKLZA7M.js +0 -43
  1119. package/dist/chunks/chunk.6S7AITRG.js +0 -1
  1120. package/dist/chunks/chunk.6XKRCX7E.js +0 -300
  1121. package/dist/chunks/chunk.773YJXBD.js +0 -1
  1122. package/dist/chunks/chunk.7UFP5DQ4.js +0 -25
  1123. package/dist/chunks/chunk.7VXGRXO3.js +0 -1
  1124. package/dist/chunks/chunk.7WKPVNAD.js +0 -33
  1125. package/dist/chunks/chunk.A4B6V7DZ.js +0 -1
  1126. package/dist/chunks/chunk.AA4OOWL2.js +0 -6
  1127. package/dist/chunks/chunk.ABTLN6NI.js +0 -1
  1128. package/dist/chunks/chunk.ABUMARPK.js +0 -1
  1129. package/dist/chunks/chunk.AFZGF7AF.js +0 -1
  1130. package/dist/chunks/chunk.AIKRJW76.js +0 -26
  1131. package/dist/chunks/chunk.AXB5O266.js +0 -1
  1132. package/dist/chunks/chunk.AZFD4LBL.js +0 -23
  1133. package/dist/chunks/chunk.B4W7MOEM.js +0 -145
  1134. package/dist/chunks/chunk.B6IOO3S6.js +0 -1
  1135. package/dist/chunks/chunk.B7Z7LN4Y.js +0 -157
  1136. package/dist/chunks/chunk.BDTBEGUV.js +0 -30
  1137. package/dist/chunks/chunk.BML4OHUL.js +0 -1
  1138. package/dist/chunks/chunk.BVJU5S2L.js +0 -1
  1139. package/dist/chunks/chunk.BWUUT4P3.js +0 -1
  1140. package/dist/chunks/chunk.C3LDULRW.js +0 -1
  1141. package/dist/chunks/chunk.C5IAOI5P.js +0 -75
  1142. package/dist/chunks/chunk.C6KTVOGD.js +0 -101
  1143. package/dist/chunks/chunk.C6UJFOJA.js +0 -1
  1144. package/dist/chunks/chunk.CCYI6V7E.js +0 -1
  1145. package/dist/chunks/chunk.CDRNZVTB.js +0 -1
  1146. package/dist/chunks/chunk.CHTAX6YR.js +0 -1
  1147. package/dist/chunks/chunk.CMW3T6G4.js +0 -1
  1148. package/dist/chunks/chunk.CR2MHGYF.js +0 -37
  1149. package/dist/chunks/chunk.CVX2IQ3N.js +0 -1
  1150. package/dist/chunks/chunk.D4FZXK32.js +0 -1
  1151. package/dist/chunks/chunk.DMFUOXZT.js +0 -1
  1152. package/dist/chunks/chunk.DTB6YVF7.js +0 -5
  1153. package/dist/chunks/chunk.DW57B6YE.js +0 -35
  1154. package/dist/chunks/chunk.E2HFVVAU.js +0 -8
  1155. package/dist/chunks/chunk.E4MVZA4I.js +0 -1
  1156. package/dist/chunks/chunk.E5VEP5QD.js +0 -80
  1157. package/dist/chunks/chunk.EQLKJ6SU.js +0 -1
  1158. package/dist/chunks/chunk.EXKNLUSQ.js +0 -299
  1159. package/dist/chunks/chunk.EZDC5SS3.js +0 -1
  1160. package/dist/chunks/chunk.FFPMXRI3.js +0 -1
  1161. package/dist/chunks/chunk.FPQ2ZB2O.js +0 -1
  1162. package/dist/chunks/chunk.FZAX2HVR.js +0 -1
  1163. package/dist/chunks/chunk.G5CKSEBJ.js +0 -1
  1164. package/dist/chunks/chunk.G6FIOHAT.js +0 -1
  1165. package/dist/chunks/chunk.GBHLNNMQ.js +0 -1
  1166. package/dist/chunks/chunk.GD7YPOPL.js +0 -1
  1167. package/dist/chunks/chunk.GDBO6KPI.js +0 -280
  1168. package/dist/chunks/chunk.GEA7S4SS.js +0 -1
  1169. package/dist/chunks/chunk.GKYOUI6O.js +0 -1
  1170. package/dist/chunks/chunk.GNAOV4CE.js +0 -1
  1171. package/dist/chunks/chunk.GNFSENN2.js +0 -1
  1172. package/dist/chunks/chunk.GVVISPQE.js +0 -47
  1173. package/dist/chunks/chunk.GXFFIW4T.js +0 -1
  1174. package/dist/chunks/chunk.HCRWISSS.js +0 -20
  1175. package/dist/chunks/chunk.HG64IQ3Z.js +0 -1
  1176. package/dist/chunks/chunk.HHLLNXRY.js +0 -1
  1177. package/dist/chunks/chunk.HIX5GPFI.js +0 -1
  1178. package/dist/chunks/chunk.HJZJT6KY.js +0 -30
  1179. package/dist/chunks/chunk.HLSW2UGB.js +0 -1
  1180. package/dist/chunks/chunk.HSGYZLW4.js +0 -100
  1181. package/dist/chunks/chunk.HTXCAUP2.js +0 -1
  1182. package/dist/chunks/chunk.HZ7S3ZVA.js +0 -1
  1183. package/dist/chunks/chunk.I3354BKM.js +0 -1
  1184. package/dist/chunks/chunk.I7DU7VFZ.js +0 -2
  1185. package/dist/chunks/chunk.I7UJ44FA.js +0 -100
  1186. package/dist/chunks/chunk.ICBA67NI.js +0 -1
  1187. package/dist/chunks/chunk.IDMFGWNJ.js +0 -1
  1188. package/dist/chunks/chunk.IEIJCOMT.js +0 -1
  1189. package/dist/chunks/chunk.ILEOTN2D.js +0 -1
  1190. package/dist/chunks/chunk.IR5OA5AA.js +0 -1
  1191. package/dist/chunks/chunk.ISVPRRSL.js +0 -37
  1192. package/dist/chunks/chunk.J3542ENW.js +0 -16
  1193. package/dist/chunks/chunk.JKWPNRMY.js +0 -1
  1194. package/dist/chunks/chunk.JM5EALZ5.js +0 -19
  1195. package/dist/chunks/chunk.JON4UZAS.js +0 -22
  1196. package/dist/chunks/chunk.JT3HRZTN.js +0 -1
  1197. package/dist/chunks/chunk.JUBJN5ZN.js +0 -1
  1198. package/dist/chunks/chunk.K4WN3B56.js +0 -24
  1199. package/dist/chunks/chunk.KDMJINCM.js +0 -1
  1200. package/dist/chunks/chunk.KI4EUF67.js +0 -121
  1201. package/dist/chunks/chunk.KIHZQ3LL.js +0 -1
  1202. package/dist/chunks/chunk.KIOEQ552.js +0 -39
  1203. package/dist/chunks/chunk.KSQ6GHXW.js +0 -1
  1204. package/dist/chunks/chunk.KTTXLINR.js +0 -1
  1205. package/dist/chunks/chunk.LHTIGXNJ.js +0 -1
  1206. package/dist/chunks/chunk.LP2CR5VG.js +0 -8
  1207. package/dist/chunks/chunk.LWMXBJFQ.js +0 -1
  1208. package/dist/chunks/chunk.LWURMOZE.js +0 -1
  1209. package/dist/chunks/chunk.LXQMAB2U.js +0 -1
  1210. package/dist/chunks/chunk.MBVNMYVL.js +0 -11
  1211. package/dist/chunks/chunk.MCNJ2ULL.js +0 -1
  1212. package/dist/chunks/chunk.MCW4UTWF.js +0 -74
  1213. package/dist/chunks/chunk.MFUFKXTH.js +0 -14
  1214. package/dist/chunks/chunk.MGKQUQZ4.js +0 -38
  1215. package/dist/chunks/chunk.MJQTHFJL.js +0 -1
  1216. package/dist/chunks/chunk.NDXOHDIZ.js +0 -55
  1217. package/dist/chunks/chunk.NGWYN3KF.js +0 -1
  1218. package/dist/chunks/chunk.NO7DUW25.js +0 -1
  1219. package/dist/chunks/chunk.NUJQKS4H.js +0 -4
  1220. package/dist/chunks/chunk.O2HQT52O.js +0 -1
  1221. package/dist/chunks/chunk.O3ISQM6H.js +0 -62
  1222. package/dist/chunks/chunk.O3JG4DO5.js +0 -9
  1223. package/dist/chunks/chunk.O4PAZJBP.js +0 -5
  1224. package/dist/chunks/chunk.O5IMLJBF.js +0 -1
  1225. package/dist/chunks/chunk.OAXWRTN7.js +0 -1
  1226. package/dist/chunks/chunk.OBEH7FCK.js +0 -1
  1227. package/dist/chunks/chunk.OKOYLAUA.js +0 -1157
  1228. package/dist/chunks/chunk.OMX5FETB.js +0 -1
  1229. package/dist/chunks/chunk.OS6ZETFH.js +0 -1
  1230. package/dist/chunks/chunk.OYNORNE2.js +0 -9
  1231. package/dist/chunks/chunk.OYP2F75M.js +0 -126
  1232. package/dist/chunks/chunk.P75IMUDZ.js +0 -1
  1233. package/dist/chunks/chunk.PA3VBXVK.js +0 -26
  1234. package/dist/chunks/chunk.PEBJNSWB.js +0 -1
  1235. package/dist/chunks/chunk.PFCI7VDW.js +0 -1
  1236. package/dist/chunks/chunk.PJBZOFER.js +0 -1
  1237. package/dist/chunks/chunk.PM4H5JFF.js +0 -1
  1238. package/dist/chunks/chunk.PPPGTIMB.js +0 -1
  1239. package/dist/chunks/chunk.PRA6LX5W.js +0 -1
  1240. package/dist/chunks/chunk.QFB3PCD3.js +0 -1
  1241. package/dist/chunks/chunk.QW3OF5NM.js +0 -1
  1242. package/dist/chunks/chunk.QYBSPXA4.js +0 -55
  1243. package/dist/chunks/chunk.R57SSUHG.js +0 -115
  1244. package/dist/chunks/chunk.R5PW2J2X.js +0 -17
  1245. package/dist/chunks/chunk.REZF2TMV.js +0 -1
  1246. package/dist/chunks/chunk.RI4PAVBN.js +0 -1
  1247. package/dist/chunks/chunk.RQH2KYAF.js +0 -1
  1248. package/dist/chunks/chunk.RRD4GWZM.js +0 -1
  1249. package/dist/chunks/chunk.S2PSK5XR.js +0 -99
  1250. package/dist/chunks/chunk.S37IUS6R.js +0 -154
  1251. package/dist/chunks/chunk.SRXNJS22.js +0 -1
  1252. package/dist/chunks/chunk.T6PYLVCK.js +0 -1
  1253. package/dist/chunks/chunk.TQLT4DUB.js +0 -1
  1254. package/dist/chunks/chunk.TQWV4GMD.js +0 -1
  1255. package/dist/chunks/chunk.TRM2XUGL.js +0 -1
  1256. package/dist/chunks/chunk.TWJIFZVX.js +0 -1
  1257. package/dist/chunks/chunk.TWSY3M6Q.js +0 -1
  1258. package/dist/chunks/chunk.U2K4W4DP.js +0 -35
  1259. package/dist/chunks/chunk.U5EMXKX4.js +0 -1
  1260. package/dist/chunks/chunk.UDAASDQK.js +0 -1
  1261. package/dist/chunks/chunk.UEGDQ6BM.js +0 -1
  1262. package/dist/chunks/chunk.UG3YZVHQ.js +0 -55
  1263. package/dist/chunks/chunk.UIBWBYNW.js +0 -1
  1264. package/dist/chunks/chunk.UMWKE4O2.js +0 -1
  1265. package/dist/chunks/chunk.UYEDKQLP.js +0 -1
  1266. package/dist/chunks/chunk.V6NAM6MU.js +0 -1
  1267. package/dist/chunks/chunk.VFOMINBL.js +0 -48
  1268. package/dist/chunks/chunk.VGFTYA6N.js +0 -1
  1269. package/dist/chunks/chunk.VMACUK42.js +0 -1
  1270. package/dist/chunks/chunk.VRFTRHNI.js +0 -1
  1271. package/dist/chunks/chunk.VRKJSPEU.js +0 -1
  1272. package/dist/chunks/chunk.VSYHMVFB.js +0 -1
  1273. package/dist/chunks/chunk.VY3UBC7Y.js +0 -1
  1274. package/dist/chunks/chunk.W3RY3L2T.js +0 -49
  1275. package/dist/chunks/chunk.W4U6DIPH.js +0 -1
  1276. package/dist/chunks/chunk.W55BGFHT.js +0 -1
  1277. package/dist/chunks/chunk.WEVKLE7C.js +0 -1
  1278. package/dist/chunks/chunk.WG6D7JHO.js +0 -1
  1279. package/dist/chunks/chunk.XT37PN45.js +0 -1
  1280. package/dist/chunks/chunk.Y7BOR5Y6.js +0 -1
  1281. package/dist/chunks/chunk.YCV2ZGED.js +0 -1
  1282. package/dist/chunks/chunk.YMWVYGLQ.js +0 -1
  1283. package/dist/chunks/chunk.YPGTCFAH.js +0 -12
  1284. package/dist/chunks/chunk.Z26IZTH3.js +0 -1
  1285. package/dist/chunks/chunk.Z54EHKYE.js +0 -1
  1286. package/dist/chunks/chunk.ZLSEXTRL.js +0 -1
  1287. package/dist/chunks/chunk.ZRHNMI52.js +0 -1
  1288. package/dist/chunks/chunk.ZSPCDPLN.js +0 -749
  1289. package/dist/chunks/chunk.ZXQ7UCTV.js +0 -1
  1290. package/dist/terra_ui_components-0.0.178-py3-none-any.whl +0 -0
  1291. package/dist/terra_ui_components-0.0.178.tar.gz +0 -0
  1292. /package/cdn/chunks/{GeoTIFF.HVXG65QH.js → GeoTIFF.WDM5HZIC.js} +0 -0
@@ -1,2545 +0,0 @@
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.55427GKA.js";
11
- import {
12
- TerraLogin
13
- } from "./chunk.2PIJCAHO.js";
14
- import {
15
- TerraDialog
16
- } from "./chunk.SOLKAAGN.js";
17
- import {
18
- data_subsetter_styles_default
19
- } from "./chunk.GPQPCP6B.js";
20
- import {
21
- TerraDataAccess,
22
- debounce
23
- } from "./chunk.EWNVVXDC.js";
24
- import {
25
- TerraSlider
26
- } from "./chunk.2PCUEDQZ.js";
27
- import {
28
- TerraMenu
29
- } from "./chunk.KFCGIILI.js";
30
- import {
31
- TerraMenuItem
32
- } from "./chunk.3HV55YDS.js";
33
- import {
34
- TerraDatePicker
35
- } from "./chunk.4NTCIMIX.js";
36
- import {
37
- HarmonyRequest,
38
- HarmonyRequestController
39
- } from "./chunk.NWIN2OV5.js";
40
- import {
41
- AuthController
42
- } from "./chunk.7DYV7ZXX.js";
43
- import {
44
- QueryClientMixin
45
- } from "./chunk.DQMBRW4N.js";
46
- import {
47
- CollectionController
48
- } from "./chunk.OHLZOOZU.js";
49
- import {
50
- TerraSpatialPicker
51
- } from "./chunk.MB2V6COB.js";
52
- import {
53
- TerraInput
54
- } from "./chunk.3MWEGEU7.js";
55
- import {
56
- TerraDropdown
57
- } from "./chunk.OXZDJYTP.js";
58
- import {
59
- TerraLoader
60
- } from "./chunk.RGVLUCXY.js";
61
- import {
62
- TerraButton
63
- } from "./chunk.HBEYO22S.js";
64
- import {
65
- getUTCDate
66
- } from "./chunk.TKSEPVAL.js";
67
- import {
68
- TerraAccordion
69
- } from "./chunk.3S4XI5MC.js";
70
- import {
71
- TerraIcon
72
- } from "./chunk.3KFZES7Q.js";
73
- import {
74
- getBasePath
75
- } from "./chunk.ZQVMOVOT.js";
76
- import {
77
- TerraAlert
78
- } from "./chunk.EMRMJT4V.js";
79
- import {
80
- watch
81
- } from "./chunk.MPVZOQYA.js";
82
- import {
83
- TerraElement,
84
- component_styles_default,
85
- e,
86
- n,
87
- r
88
- } from "./chunk.FPMFEQWC.js";
89
- import {
90
- A,
91
- b
92
- } from "./chunk.RRCYT4LP.js";
93
- import {
94
- __decorateClass,
95
- __privateAdd,
96
- __privateGet,
97
- __privateMethod,
98
- __spreadProps,
99
- __spreadValues,
100
- init_buffer,
101
- init_dirname,
102
- init_process
103
- } from "./chunk.ZEOVK2FE.js";
104
-
105
- // src/components/data-subsetter/data-subsetter.component.ts
106
- init_dirname();
107
- init_buffer();
108
- init_process();
109
-
110
- // src/lib/jupyter.ts
111
- init_dirname();
112
- init_buffer();
113
- init_process();
114
- var JUPYTER_LITE_URL = "https://gesdisc.github.io/jupyterlite/lab/index.html";
115
- function openJupyterLiteWindow(readyCb) {
116
- const jupyterWindow = window.open(JUPYTER_LITE_URL, "_blank");
117
- if (!jupyterWindow) {
118
- console.error("Failed to open JupyterLite!");
119
- return;
120
- }
121
- window.addEventListener("message", (event) => readyCb(event, jupyterWindow), {
122
- once: true
123
- });
124
- return jupyterWindow;
125
- }
126
- function sendDataToJupyterNotebook(type, data) {
127
- openJupyterLiteWindow((event, jupyterWindow) => {
128
- var _a;
129
- if (((_a = event.data) == null ? void 0 : _a.type) !== "jupyterlite-ready") {
130
- return;
131
- }
132
- console.log("JupyterLite is ready!");
133
- jupyterWindow.postMessage(__spreadValues({ type }, data), "*");
134
- });
135
- }
136
-
137
- // src/services/cmr-variable.service.ts
138
- init_dirname();
139
- init_buffer();
140
- init_process();
141
- var CmrVariableService = class {
142
- /**
143
- * given a name and a list of variables, return the variable with the matching name
144
- */
145
- getVariableByName(name, variables) {
146
- var _a;
147
- if (!variables || !((_a = variables.items) == null ? void 0 : _a.length)) {
148
- return;
149
- }
150
- return variables.items.find((variable) => variable.umm.Name === name);
151
- }
152
- /**
153
- * given a variable, return the variable's display label
154
- * ex: Shortname = LongName (Units)
155
- */
156
- getVariableDisplayLabel(variable) {
157
- const { Name = "", LongName = "", Units = "" } = variable.umm;
158
- return `${Name}${Name && LongName && Name !== LongName ? ` = ${LongName}` : ""}${Units ? ` (${Units})` : ""}`;
159
- }
160
- };
161
- var cmrVariableService = new CmrVariableService();
162
- var cmr_variable_service_default = cmrVariableService;
163
-
164
- // src/components/data-subsetter/data-subsetter.component.ts
165
- var defaultOutputFormat = {
166
- key: "application/x-netcdf4",
167
- label: "NetCDF",
168
- description: "Download data in NetCDF format"
169
- };
170
- 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;
171
- var TerraDataSubsetter = class extends QueryClientMixin(TerraElement) {
172
- constructor() {
173
- super(...arguments);
174
- __privateAdd(this, _renderFooterForDialog);
175
- __privateAdd(this, _renderSizeInfo);
176
- __privateAdd(this, _renderSubsetOptions);
177
- __privateAdd(this, _renderSearchForCollection);
178
- __privateAdd(this, _renderOutputFormatSelection);
179
- __privateAdd(this, _renderDateRangeSelection);
180
- __privateAdd(this, _getCollectionDateRange);
181
- __privateAdd(this, _renderSpatialSelection);
182
- __privateAdd(this, _renderVariableSelection);
183
- __privateAdd(this, _renderDimensionGroup);
184
- __privateAdd(this, _setDimensionValue);
185
- __privateAdd(this, _renderDimensionSelection);
186
- __privateAdd(this, _filterVariableTree);
187
- __privateAdd(this, _handleVariableFilterChange);
188
- __privateAdd(this, _buildVariableTree);
189
- __privateAdd(this, _renderVariableTree);
190
- __privateAdd(this, _getAllGroupPaths);
191
- __privateAdd(this, _toggleGroupExpand);
192
- __privateAdd(this, _toggleExpandCollapseAll);
193
- __privateAdd(this, _toggleVariableSelection);
194
- __privateAdd(this, _markFieldTouched);
195
- __privateAdd(this, _resetDimensionSelection);
196
- __privateAdd(this, _isDimensionExcluded);
197
- __privateAdd(this, _getCommonSelectableDimensions);
198
- __privateAdd(this, _renderJobStatus);
199
- __privateAdd(this, _renderSelectedParams);
200
- __privateAdd(this, _cancelJob);
201
- __privateAdd(this, _getData);
202
- __privateAdd(this, _touchAllFields);
203
- __privateAdd(this, _numberOfFilesFoundEstimate);
204
- __privateAdd(this, _getDocumentationLinks);
205
- __privateAdd(this, _getDataLinks);
206
- __privateAdd(this, _hasAtLeastOneSubsetOption);
207
- __privateAdd(this, _hasSpatialSubset);
208
- __privateAdd(this, _renderJobMessage);
209
- __privateAdd(this, _getJobMessageText);
210
- __privateAdd(this, _estimateJobSize);
211
- __privateAdd(this, _refineParameters);
212
- __privateAdd(this, _backToSubsetOptions);
213
- __privateAdd(this, _viewRunningJob);
214
- __privateAdd(this, _handleDownloadSelect);
215
- __privateAdd(this, _downloadLinksAsTxt);
216
- __privateAdd(this, _downloadPythonScript);
217
- __privateAdd(this, _downloadEarthdataDownload);
218
- __privateAdd(this, _handleJupyterNotebookClick);
219
- __privateAdd(this, _renderAvailableTemporalRangeSection);
220
- __privateAdd(this, _renderAvailableSpatialRangeSection);
221
- __privateAdd(this, _renderDataAccessModeSelection);
222
- __privateAdd(this, _getGiovanniValidationError);
223
- this.showCollectionSearch = true;
224
- this.showHistoryPanel = true;
225
- this.isHistoryView = false;
226
- this.selectedVariables = [];
227
- this.selectedDimensionIndexes = {};
228
- this.expandedVariableGroups = /* @__PURE__ */ new Set();
229
- this.variableFilterText = "";
230
- this.touchedFields = /* @__PURE__ */ new Set();
231
- this.selectedDateRange = {
232
- startDate: null,
233
- endDate: null
234
- };
235
- this.selectedFormat = defaultOutputFormat;
236
- this.cancelingGetData = false;
237
- this.selectedTab = "web-links";
238
- this.refineParameters = false;
239
- this.collectionSearchType = "all";
240
- this.collectionSearchLoading = false;
241
- this.collectionLoading = false;
242
- this.collectionAccordionOpen = true;
243
- this.dataAccessMode = "original";
244
- __privateAdd(this, _collectionController, new CollectionController(this, {
245
- getCollectionEntryId: () => this.collectionEntryId,
246
- getBearerToken: () => this.bearerToken
247
- }));
248
- __privateAdd(this, _authController, new AuthController(this));
249
- __privateAdd(this, _harmonyRequestController, new HarmonyRequestController(this));
250
- __privateAdd(this, _resetAllParameters, () => {
251
- this.selectedVariables = [];
252
- if (__privateMethod(this, _hasSpatialSubset, hasSpatialSubset_fn).call(this)) {
253
- __privateGet(this, _resetSpatialSelection).call(this);
254
- }
255
- this.selectedDateRange = {
256
- startDate: null,
257
- endDate: null
258
- };
259
- this.touchedFields = /* @__PURE__ */ new Set();
260
- this.validationError = void 0;
261
- this.expandedVariableGroups = /* @__PURE__ */ new Set();
262
- this.requestUpdate();
263
- });
264
- __privateAdd(this, _handleDateChange, (e2) => {
265
- __privateMethod(this, _markFieldTouched, markFieldTouched_fn).call(this, "date");
266
- this.selectedDateRange = __spreadProps(__spreadValues({}, this.selectedDateRange), {
267
- startDate: e2.detail.startDate,
268
- endDate: e2.detail.endDate
269
- });
270
- });
271
- __privateAdd(this, _resetDateRangeSelection, () => {
272
- this.selectedDateRange = { startDate: null, endDate: null };
273
- });
274
- __privateAdd(this, _resetFormatSelection, () => {
275
- var _a;
276
- if ((_a = this.collectionWithServices) == null ? void 0 : _a.configuredOutputFormats.length) {
277
- const netcdfFormat = this.collectionWithServices.configuredOutputFormats.find(
278
- (f) => f.key === "application/x-netcdf4" || f.key === "application/netcdf"
279
- );
280
- this.selectedFormat = netcdfFormat || this.collectionWithServices.configuredOutputFormats[0];
281
- } else {
282
- this.selectedFormat = defaultOutputFormat;
283
- }
284
- });
285
- __privateAdd(this, _handleSpatialChange, (e2) => {
286
- __privateMethod(this, _markFieldTouched, markFieldTouched_fn).call(this, "spatial");
287
- if (e2.detail.type === "point" /* POINT */) {
288
- this.spatialSelection = e2.detail.latLng;
289
- } else if (e2.detail.type === "bbox" /* BBOX */) {
290
- this.spatialSelection = e2.detail.bounds;
291
- } else {
292
- this.spatialSelection = void 0;
293
- }
294
- });
295
- /**
296
- * resets the spatial selection back to the bounds of the collection
297
- */
298
- __privateAdd(this, _resetSpatialSelection, () => {
299
- this.spatialSelection = void 0;
300
- this.spatialPicker.clear();
301
- __privateMethod(this, _markFieldTouched, markFieldTouched_fn).call(this, "spatial");
302
- });
303
- __privateAdd(this, _resetVariableSelection, () => {
304
- this.selectedVariables = [];
305
- __privateMethod(this, _resetDimensionSelection, resetDimensionSelection_fn).call(this);
306
- });
307
- }
308
- jobIdChanged() {
309
- if (this.jobId) {
310
- __privateGet(this, _harmonyRequestController).startPollForJobStatus(this.jobId);
311
- this.dataAccessMode = "subset";
312
- }
313
- }
314
- shortNameAndVersionChanged() {
315
- if (this.shortName && this.version) {
316
- this.collectionEntryId = `${this.shortName}_${this.version}`;
317
- }
318
- }
319
- collectionEntryIdChanged() {
320
- if (this.collectionEntryId) {
321
- this.showCollectionSearch = false;
322
- } else {
323
- this.showCollectionSearch = true;
324
- }
325
- }
326
- firstUpdated() {
327
- if (this.collectionEntryId) {
328
- this.showCollectionSearch = false;
329
- }
330
- if (this.jobId) {
331
- __privateGet(this, _harmonyRequestController).startPollForJobStatus(this.jobId);
332
- this.dataAccessMode = "subset";
333
- }
334
- this.renderHistoryPanel();
335
- }
336
- updated(changedProps) {
337
- var _a, _b, _c;
338
- super.updated(changedProps);
339
- const newCollectionInfo = __privateGet(this, _collectionController).collectionInfo;
340
- if (newCollectionInfo !== this.collectionWithServices) {
341
- this.collectionWithServices = newCollectionInfo;
342
- }
343
- const sampling = (_a = __privateGet(this, _collectionController).sampling) == null ? void 0 : _a.data;
344
- if ((sampling == null ? void 0 : sampling.minDate) !== this.granuleMinDate) {
345
- this.granuleMinDate = sampling == null ? void 0 : sampling.minDate;
346
- }
347
- if ((sampling == null ? void 0 : sampling.maxDate) !== this.granuleMaxDate) {
348
- this.granuleMaxDate = sampling == null ? void 0 : sampling.maxDate;
349
- }
350
- const newGiovanni = __privateGet(this, _collectionController).giovanniVariables;
351
- if (newGiovanni.size !== ((_c = (_b = this.giovanniConfiguredVariables) == null ? void 0 : _b.size) != null ? _c : 0)) {
352
- this.giovanniConfiguredVariables = newGiovanni;
353
- }
354
- }
355
- /** True if the collection contains sub-daily granules. Used by DataSubsetterController to format dates. */
356
- get isSubDaily() {
357
- return __privateGet(this, _collectionController).isSubDaily;
358
- }
359
- collectionChanged() {
360
- const { startDate, endDate } = __privateMethod(this, _getCollectionDateRange, getCollectionDateRange_fn).call(this);
361
- this.selectedDateRange = { startDate, endDate };
362
- __privateGet(this, _resetFormatSelection).call(this);
363
- this.collectionLoading = false;
364
- this.collectionAccordionOpen = false;
365
- }
366
- granuleDatesChanged() {
367
- const newRange = __spreadValues(__spreadValues({}, this.granuleMinDate && { startDate: this.granuleMinDate }), this.granuleMaxDate && { endDate: this.granuleMaxDate });
368
- if (Object.keys(newRange).length > 0) {
369
- this.selectedDateRange = __spreadValues(__spreadValues({}, this.selectedDateRange), newRange);
370
- }
371
- }
372
- selectedFormatChanged() {
373
- if (this.selectedFormat.isGiovanniFormat && this.selectedVariables.length > 1) {
374
- this.selectedVariables = [this.selectedVariables[0]];
375
- }
376
- }
377
- showDialog() {
378
- var _a;
379
- (_a = this.dialogElement) == null ? void 0 : _a.show();
380
- }
381
- render() {
382
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
383
- const showJobStatus = __privateGet(this, _harmonyRequestController).jobId && !this.refineParameters;
384
- const showMinimizeButton = showJobStatus && !!this.dialog;
385
- const title = (_c = (_b = (_a = this.collectionWithServices) == null ? void 0 : _a.collection) == null ? void 0 : _b.EntryTitle) != null ? _c : "Download Data";
386
- if (!this.collectionWithServices) {
387
- if (__privateGet(this, _collectionController).hasCapabilitiesError) {
388
- return b`
389
- <terra-alert open variant="danger" appearance="white">
390
- Failed to find the requested collection.
391
- </terra-alert>
392
- `;
393
- }
394
- }
395
- const content = b`
396
- <div class="container">
397
- ${!this.dialog ? b`
398
- <div class="header">
399
- <h1>
400
- <svg
401
- class="download-icon"
402
- viewBox="0 0 24 24"
403
- fill="currentColor"
404
- >
405
- <path
406
- d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"
407
- />
408
- </svg>
409
- ${title}
410
- </h1>
411
-
412
- ${showMinimizeButton ? b`<button
413
- class="minimize-btn"
414
- @click=${() => this.minimizeDialog()}
415
- >
416
- -
417
- </button>` : A}
418
- </div>
419
- ` : A}
420
- ${!this.isHistoryView && ((_e = (_d = this.collectionWithServices) == null ? void 0 : _d.services) == null ? void 0 : _e.length) ? b`
421
- <div class="section">
422
- ${__privateMethod(this, _renderDataAccessModeSelection, renderDataAccessModeSelection_fn).call(this)}
423
- </div>
424
- ` : A}
425
- ${this.dataAccessMode === "original" ? b`
426
- <div class="section">
427
- <terra-data-access
428
- short-name=${(_h = this.shortName) != null ? _h : (_g = (_f = this.collectionWithServices) == null ? void 0 : _f.collection) == null ? void 0 : _g.ShortName}
429
- version=${(_k = this.version) != null ? _k : (_j = (_i = this.collectionWithServices) == null ? void 0 : _i.collection) == null ? void 0 : _j.Version}
430
- ?footer-slot=${!!this.dialog}
431
- >
432
- ${this.dialog ? b`
433
- <div
434
- slot="footer"
435
- style="margin-top: 15px;"
436
- >
437
- <slot
438
- name="data-access-footer"
439
- ></slot>
440
- </div>
441
- ` : A}
442
- </terra-data-access>
443
- </div>
444
- ` : showJobStatus ? __privateMethod(this, _renderJobStatus, renderJobStatus_fn).call(this) : __privateMethod(this, _renderSubsetOptions, renderSubsetOptions_fn).call(this)}
445
- </div>
446
- `;
447
- if (this.dialog) {
448
- return b`
449
- <terra-dialog id=${this.dialog} style="--title-font-size: 16px;">
450
- <span
451
- slot="label"
452
- style="display: flex; align-items: center; gap: 8px; color: #0066cc; font-weight: 600;"
453
- >
454
- <svg
455
- class="download-icon"
456
- viewBox="0 0 24 24"
457
- fill="currentColor"
458
- style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; flex-shrink: 0;"
459
- >
460
- <path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z" />
461
- </svg>
462
- ${title}
463
- </span>
464
- ${showMinimizeButton ? b`
465
- <button
466
- slot="header-actions"
467
- class="minimize-btn"
468
- @click=${() => {
469
- var _a2;
470
- return (_a2 = this.dialogElement) == null ? void 0 : _a2.hide();
471
- }}
472
- aria-label="Minimize"
473
- >
474
- -
475
- </button>
476
- ` : A}
477
- <slot name="dialog-header-content"></slot>
478
- ${content} ${__privateMethod(this, _renderFooterForDialog, renderFooterForDialog_fn).call(this)}
479
- </terra-dialog>
480
- `;
481
- }
482
- return b`
483
- <div class="container">
484
- <div class="header">
485
- <h1>
486
- <svg
487
- class="download-icon"
488
- viewBox="0 0 24 24"
489
- fill="currentColor"
490
- >
491
- <path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z" />
492
- </svg>
493
- ${title}
494
- </h1>
495
-
496
- ${showMinimizeButton ? b`<button
497
- class="minimize-btn"
498
- @click=${() => this.minimizeDialog()}
499
- >
500
- -
501
- </button>` : A}
502
- </div>
503
- ${!this.isHistoryView && ((_m = (_l = this.collectionWithServices) == null ? void 0 : _l.services) == null ? void 0 : _m.length) ? b`
504
- <div class="section">
505
- ${__privateMethod(this, _renderDataAccessModeSelection, renderDataAccessModeSelection_fn).call(this)}
506
- </div>
507
- ` : A}
508
- ${this.dataAccessMode === "original" ? b`
509
- <div class="section">
510
- <terra-data-access
511
- short-name=${(_p = this.shortName) != null ? _p : (_o = (_n = this.collectionWithServices) == null ? void 0 : _n.collection) == null ? void 0 : _o.ShortName}
512
- version=${(_s = this.version) != null ? _s : (_r = (_q = this.collectionWithServices) == null ? void 0 : _q.collection) == null ? void 0 : _r.Version}
513
- ?footer-slot=${!!this.dialog}
514
- >
515
- ${this.dialog ? b`
516
- <div
517
- slot="footer"
518
- style="margin-top: 15px;"
519
- >
520
- <slot
521
- name="data-access-footer"
522
- ></slot>
523
- </div>
524
- ` : A}
525
- </terra-data-access>
526
- </div>
527
- ` : showJobStatus ? __privateMethod(this, _renderJobStatus, renderJobStatus_fn).call(this) : __privateMethod(this, _renderSubsetOptions, renderSubsetOptions_fn).call(this)}
528
- </div>
529
- `;
530
- }
531
- minimizeDialog() {
532
- var _a;
533
- (_a = this.closest("terra-dialog")) == null ? void 0 : _a.hide();
534
- }
535
- handleCollectionSearch(searchTerm) {
536
- this.collectionSearchQuery = searchTerm;
537
- }
538
- renderHistoryPanel() {
539
- const existingHistoryPanel = document.querySelector(
540
- "terra-data-subsetter-history"
541
- );
542
- if (!existingHistoryPanel && this.bearerToken) {
543
- const historyPanel = document.createElement(
544
- "terra-data-subsetter-history"
545
- );
546
- if (this.bearerToken) {
547
- historyPanel.setAttribute("bearer-token", this.bearerToken);
548
- }
549
- if (this.environment) {
550
- historyPanel.setAttribute("environment", this.environment);
551
- }
552
- document.body.appendChild(historyPanel);
553
- }
554
- }
555
- };
556
- _collectionController = new WeakMap();
557
- _authController = new WeakMap();
558
- _harmonyRequestController = new WeakMap();
559
- _renderFooterForDialog = new WeakSet();
560
- renderFooterForDialog_fn = function() {
561
- const showJobStatus = __privateGet(this, _harmonyRequestController).jobId && !this.refineParameters;
562
- if (showJobStatus && __privateGet(this, _harmonyRequestController).jobId) {
563
- return b`
564
- <div slot="footer" class="footer">
565
- ${__privateGet(this, _harmonyRequestController).status === "successful" /* SUCCESSFUL */ || __privateGet(this, _harmonyRequestController).status === "complete_with_errors" /* COMPLETE_WITH_ERRORS */ ? b`
566
- <div
567
- style="display: flex; align-items: center; gap: 8px;"
568
- >
569
- <terra-dropdown
570
- @terra-select=${__privateMethod(this, _handleDownloadSelect, handleDownloadSelect_fn)}
571
- >
572
- <terra-button slot="trigger" caret>
573
- Download Options
574
- </terra-button>
575
- <terra-menu>
576
- <terra-menu-item value="file-list">
577
- <svg
578
- slot="prefix"
579
- viewBox="0 0 24 24"
580
- width="16"
581
- height="16"
582
- style="width: 16px; height: 16px;"
583
- >
584
- <path
585
- fill="currentColor"
586
- 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"
587
- />
588
- </svg>
589
- File List
590
- </terra-menu-item>
591
- <terra-menu-item value="python-script">
592
- <svg
593
- slot="prefix"
594
- viewBox="0 0 128 128"
595
- width="16"
596
- height="16"
597
- style="width: 16px; height: 16px;"
598
- >
599
- <path
600
- fill="currentColor"
601
- 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"
602
- ></path>
603
- </svg>
604
- Python Script
605
- </terra-menu-item>
606
- <terra-menu-item value="earthdata-download">
607
- <svg
608
- slot="prefix"
609
- viewBox="0 0 64 64"
610
- fill="none"
611
- width="16"
612
- height="16"
613
- style="width: 16px; height: 16px;"
614
- >
615
- <circle
616
- cx="32"
617
- cy="32"
618
- r="28"
619
- fill="currentColor"
620
- />
621
- <path
622
- d="M32 14v26M32 40l-9-9M32 40l9-9"
623
- stroke="#fff"
624
- stroke-width="4"
625
- stroke-linecap="round"
626
- stroke-linejoin="round"
627
- fill="none"
628
- />
629
- </svg>
630
- Earthdata Download
631
- </terra-menu-item>
632
- </terra-menu>
633
- </terra-dropdown>
634
-
635
- <!--
636
- <terra-button
637
- outline
638
- @click=${() => __privateMethod(this, _handleJupyterNotebookClick, handleJupyterNotebookClick_fn).call(this)}
639
- >
640
- <terra-icon
641
- name="outline-code-bracket"
642
- library="heroicons"
643
- font-size="1.5em"
644
- style="margin-right: 5px;"
645
- ></terra-icon>
646
- Open in Jupyter Notebook
647
- </terra-button>
648
- -->
649
- </div>
650
- ` : A}
651
- ${__privateGet(this, _harmonyRequestController).status === "running" /* RUNNING */ ? b`<button
652
- class="btn btn-success"
653
- @click=${__privateMethod(this, _cancelJob, cancelJob_fn)}
654
- ?disabled=${this.cancelingGetData}
655
- >
656
- ${this.cancelingGetData ? "Canceling..." : "Cancel request"}
657
- </button>` : A}
658
-
659
- <div class="job-info">
660
- Job ID:
661
- <span class="job-id">
662
- ${this.bearerToken ? b`<a
663
- href="https://harmony.earthdata.nasa.gov/jobs/${__privateGet(this, _harmonyRequestController).jobId}"
664
- target="_blank"
665
- >${__privateGet(this, _harmonyRequestController).jobId}</a
666
- >` : __privateGet(this, _harmonyRequestController).jobId}
667
- </span>
668
- <span class="info-icon">?</span>
669
- </div>
670
- </div>
671
- `;
672
- } else if (this.dataAccessMode === "subset") {
673
- return b`
674
- <div slot="footer" class="footer">
675
- <button class="btn btn-secondary" @click=${__privateGet(this, _resetAllParameters)}>Reset All</button>
676
- <div>
677
- <button class="btn btn-primary" @click=${__privateMethod(this, _getData, getData_fn)}>
678
- Get Data
679
- </button>
680
- ${this.jobId ? b`
681
- <terra-button
682
- variant="default"
683
- @click=${__privateMethod(this, _viewRunningJob, viewRunningJob_fn)}
684
- >
685
- View Running Job
686
- </terra-button>
687
- ` : A}
688
- </div>
689
- </div>
690
- </div>
691
- </div>
692
- `;
693
- }
694
- return A;
695
- };
696
- _renderSizeInfo = new WeakSet();
697
- renderSizeInfo_fn = function(estimates) {
698
- if (!__privateGet(this, _authController).state.isLoading && !__privateGet(this, _authController).state.user) {
699
- return b`
700
- <div class="size-info warning">
701
- <terra-login>
702
- <h2 slot="logged-out">Limited access as a guest.</h2>
703
-
704
- <p slot="logged-out">
705
- Your results will be capped at 10 links. Log in for full
706
- access to all data.
707
- </p>
708
- </terra-login>
709
- </div>
710
- `;
711
- }
712
- return b`<div
713
- class="size-info ${estimates.links >= 150 ? "warning" : "neutral"}"
714
- >
715
- <h2>Estimated size of results</h2>
716
- <div class="size-stats">
717
- ${estimates.days.toLocaleString()} days,
718
- ${estimates.links.toLocaleString()} links
719
- </div>
720
- ${estimates.links >= 150 ? b`<div class="size-warning">
721
- You are about to retrieve ${estimates.links.toLocaleString()}
722
- file links from the archive. You may
723
- <strong>speed up the request</strong> by limiting the scope of
724
- your search.
725
- </div>` : A}
726
- </div>`;
727
- };
728
- _renderSubsetOptions = new WeakSet();
729
- renderSubsetOptions_fn = function() {
730
- var _a, _b, _c, _d, _e, _f, _g, _h, _i;
731
- const estimates = __privateMethod(this, _estimateJobSize, estimateJobSize_fn).call(this);
732
- const hasSubsetOption = __privateMethod(this, _hasAtLeastOneSubsetOption, hasAtLeastOneSubsetOption_fn).call(this);
733
- const collection = (_a = this.collectionWithServices) == null ? void 0 : _a.collection;
734
- const temporalExtents = collection == null ? void 0 : collection.TemporalExtents;
735
- const spatialExtent = collection == null ? void 0 : collection.SpatialExtent;
736
- const showTemporalSection = temporalExtents == null ? void 0 : temporalExtents.length;
737
- const showSpatialSection = (_c = (_b = spatialExtent == null ? void 0 : spatialExtent.HorizontalSpatialDomain) == null ? void 0 : _b.Geometry) == null ? void 0 : _c.BoundingRectangles;
738
- return b`
739
- ${this.dataAccessMode === "original" ? A : hasSubsetOption ? b`
740
- ${hasSubsetOption && estimates ? __privateMethod(this, _renderSizeInfo, renderSizeInfo_fn).call(this, estimates) : A}
741
- ${this.showCollectionSearch ? b`
742
- <div class="section">
743
- <h2 class="section-title">
744
- Select Data Collection
745
- </h2>
746
-
747
- ${__privateMethod(this, _renderSearchForCollection, renderSearchForCollection_fn).call(this)}
748
- </div>
749
- ` : A}
750
- ${((_e = (_d = this.collectionWithServices) == null ? void 0 : _d.summary.outputFormats) == null ? void 0 : _e.length) && hasSubsetOption ? b`
751
- <div class="section">
752
- <h2 class="section-title">Output Format</h2>
753
-
754
- ${__privateMethod(this, _renderOutputFormatSelection, renderOutputFormatSelection_fn).call(this)}
755
- </div>
756
- ` : A}
757
- <div class="section">
758
- <h2 class="section-title">Subset Options</h2>
759
- <p style="color: #666; margin-bottom: 16px;">
760
- Generate file links that support spatial subsetting,
761
- date/time range selection, and variable selection.
762
- </p>
763
-
764
- ${((_f = this.collectionWithServices) == null ? void 0 : _f.summary.subsetting.temporal) ? __privateMethod(this, _renderDateRangeSelection, renderDateRangeSelection_fn).call(this) : A}
765
- ${__privateMethod(this, _hasSpatialSubset, hasSpatialSubset_fn).call(this) ? __privateMethod(this, _renderSpatialSelection, renderSpatialSelection_fn).call(this) : A}
766
- ${((_g = this.collectionWithServices) == null ? void 0 : _g.summary.subsetting.variable) ? __privateMethod(this, _renderVariableSelection, renderVariableSelection_fn).call(this) : A}
767
- ${((_h = this.collectionWithServices) == null ? void 0 : _h.summary.subsetting.variable) && isFeatureEnabled(
768
- KnownFeatureFlags.DIMENSION_SUBSET,
769
- this.features
770
- ) ? __privateMethod(this, _renderDimensionSelection, renderDimensionSelection_fn).call(this) : A}
771
- </div>
772
- ` : b`
773
- ${showTemporalSection && !((_i = this.collectionWithServices) == null ? void 0 : _i.summary.subsetting.temporal) ? __privateMethod(this, _renderAvailableTemporalRangeSection, renderAvailableTemporalRangeSection_fn).call(this) : A}
774
- ${showSpatialSection && !__privateMethod(this, _hasSpatialSubset, hasSpatialSubset_fn).call(this) ? __privateMethod(this, _renderAvailableSpatialRangeSection, renderAvailableSpatialRangeSection_fn).call(this) : A}
775
- `}
776
- ${!hasSubsetOption && estimates ? b`
777
- <div
778
- class="neutral-info"
779
- style="margin-top: 24px; padding: 16px 20px; border-radius: 6px; background: #f8f9fa; color: #555; border: 1px solid #ccc;"
780
- >
781
- <strong>Estimated result size:</strong><br />
782
- Your request will return approximately
783
- <b>${estimates.links.toLocaleString()}</b> files covering
784
- <b>${estimates.days.toLocaleString()}</b> days.
785
- </div>
786
- ` : A}
787
- ${this.dataAccessMode === "subset" && !this.dialog ? b`
788
- <div class="footer">
789
- <button class="btn btn-secondary" @click=${__privateGet(this, _resetAllParameters)}>Reset All</button>
790
- <div>
791
- <button
792
- class="btn btn-primary"
793
- @click=${__privateMethod(this, _getData, getData_fn)}
794
- >
795
- Get Data
796
- </button>
797
- ${this.jobId ? b`
798
- <terra-button
799
- variant="default"
800
- @click=${__privateMethod(this, _viewRunningJob, viewRunningJob_fn)}
801
- >
802
- View Running Job
803
- </terra-button>
804
- ` : A}
805
- </div>
806
- </div>
807
- </div>
808
- </div>
809
- ` : A}
810
- `;
811
- };
812
- _resetAllParameters = new WeakMap();
813
- _renderSearchForCollection = new WeakSet();
814
- renderSearchForCollection_fn = function() {
815
- var _a, _b;
816
- let placeholder = "Search all types of resources (e.g. rainfall, GPM, hurricanes, etc.)";
817
- if (this.collectionSearchType === "collection") {
818
- placeholder = "Search collections (e.g. AQUA, GPM_3IMERGH, etc.)";
819
- }
820
- if (this.collectionSearchType === "variable") {
821
- placeholder = "Search variables (e.g. rainfall, hurricanes, etc.)";
822
- }
823
- return b`
824
- <terra-accordion .open=${this.collectionAccordionOpen}>
825
- <div slot="summary">
826
- <span class="accordion-title">Collection:</span>
827
- </div>
828
-
829
- <div
830
- slot="summary-right"
831
- style="display: flex; align-items: center; gap: 10px"
832
- >
833
- ${this.collectionEntryId ? b` <span
834
- class="accordion-value"
835
- id="selected-collection-display"
836
- >${this.collectionEntryId}</span
837
- >
838
-
839
- <button
840
- class="reset-btn"
841
- @click=${() => this.collectionEntryId = void 0}
842
- >
843
- Reset
844
- </button>` : A}
845
- </div>
846
-
847
- <div class="search-tabs-mini">
848
- <button
849
- class="search-tab-mini ${this.collectionSearchType === "all" ? "active" : ""}"
850
- @click=${() => this.collectionSearchType = "all"}
851
- >
852
- All
853
- </button>
854
- <button
855
- class="search-tab-mini ${this.collectionSearchType === "collection" ? "active" : ""}"
856
- @click=${() => this.collectionSearchType = "collection"}
857
- >
858
- Collections
859
- </button>
860
- <button
861
- class="search-tab-mini ${this.collectionSearchType === "variable" ? "active" : ""}"
862
- @click=${() => this.collectionSearchType = "variable"}
863
- >
864
- Variables
865
- </button>
866
- </div>
867
-
868
- <div class="search-container-mini">
869
- <input
870
- type="text"
871
- class="search-input-mini"
872
- id="search-input"
873
- placeholder=${placeholder}
874
- @input="${(e2) => this.handleCollectionSearch(
875
- e2.target.value
876
- )}"
877
- />
878
-
879
- <button class="search-button-mini">
880
- <svg
881
- class="search-icon-mini"
882
- viewBox="0 0 24 24"
883
- fill="currentColor"
884
- >
885
- <path
886
- 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"
887
- />
888
- </svg>
889
- Search
890
- </button>
891
- </div>
892
-
893
- <!-- TODO: it may be nice to have a quick search, perhaps by recent trends?
894
- <div class="quick-links-mini">
895
- <a href="#" class="quick-link-mini" onclick="quickSearch('GPM')"
896
- >GPM Precipitation</a
897
- >
898
- <a href="#" class="quick-link-mini" onclick="quickSearch('MODIS')"
899
- >MODIS Data</a
900
- >
901
- <a
902
- href="#"
903
- class="quick-link-mini"
904
- onclick="quickSearch('Landsat')"
905
- >Landsat Imagery</a
906
- >
907
- <a href="#" class="quick-link-mini" onclick="quickSearch('AIRS')"
908
- >Atmospheric Data</a
909
- >
910
- </div>
911
- -->
912
-
913
- <div id="search-results-section" class="search-results-section">
914
- ${this.collectionSearchLoading ? b`
915
- <div id="loading-mini" class="loading-mini">
916
- <div class="spinner-mini"></div>
917
- <div>Searching NASA CMR...</div>
918
- </div>
919
- ` : ((_a = this.collectionSearchResults) == null ? void 0 : _a.length) ? b` <div
920
- id="results-container-mini"
921
- class="results-container-mini"
922
- >
923
- ${(_b = this.collectionSearchResults) == null ? void 0 : _b.map(
924
- (item) => b`
925
- <div
926
- class="result-item-mini"
927
- @click=${() => {
928
- this.collectionEntryId = item.collectionEntryId;
929
- this.collectionAccordionOpen = false;
930
- this.collectionLoading = true;
931
- if (item.type === "variable") {
932
- this.selectedVariables = [
933
- {
934
- name: item.entryId,
935
- href: "",
936
- conceptId: item.conceptId
937
- }
938
- ];
939
- }
940
- this.requestUpdate();
941
- }}
942
- style="cursor: pointer;"
943
- >
944
- <div class="result-title-mini">
945
- ${item.title}
946
- </div>
947
- <div class="result-id-mini">
948
- ${item.entryId}
949
- </div>
950
- <div class="result-description-mini">
951
- ${item.summary || item.title}
952
- </div>
953
- <div class="result-meta-mini">
954
- <span>📅 2000-02-24 - ongoing</span>
955
- <span>🌍 Global</span>
956
- <span>🏢 ${item.provider}</span>
957
- ${item.type === "variable" ? b` <span
958
- >📊
959
- ${item.collectionEntryId}</span
960
- >` : A}
961
- <span class="tag-mini"
962
- >${item.type.toUpperCase()}</span
963
- >
964
- </div>
965
- </div>
966
- `
967
- )}
968
- </div>` : this.collectionSearchResults && this.collectionSearchResults.length === 0 ? b`<div id="no-results-mini" class="no-results-mini">
969
- <p>
970
- No results found for
971
- '${this.collectionSearchQuery}'. Try adjusting
972
- your search term.
973
- </p>
974
- </div>` : A}
975
- </div>
976
- </terra-accordion>
977
-
978
- ${this.collectionLoading ? b`
979
- <div
980
- class="collection-loading-bar"
981
- style="display: flex; align-items: center; gap: 10px; margin: 16px 0;"
982
- >
983
- <span
984
- class="loading-spinner"
985
- 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;"
986
- ></span>
987
- Retrieving collection, please wait...
988
- </div>
989
- <style>
990
- @keyframes spin {
991
- 0% {
992
- transform: rotate(0deg);
993
- }
994
- 100% {
995
- transform: rotate(360deg);
996
- }
997
- }
998
- </style>
999
- ` : A}
1000
- `;
1001
- };
1002
- _renderOutputFormatSelection = new WeakSet();
1003
- renderOutputFormatSelection_fn = function() {
1004
- return b`
1005
- <terra-accordion>
1006
- <div slot="summary">
1007
- <span class="accordion-title">File Format:</span>
1008
- </div>
1009
-
1010
- <div
1011
- slot="summary-right"
1012
- style="display: flex; align-items: center; gap: 10px;"
1013
- >
1014
- <span>${this.selectedFormat.label}</span>
1015
-
1016
- <button class="reset-btn" @click=${__privateGet(this, _resetFormatSelection)}>
1017
- Reset
1018
- </button>
1019
- </div>
1020
-
1021
- <div class="accordion-content" style="margin-top: 12px;">
1022
- ${(() => {
1023
- var _a;
1024
- return (((_a = this.collectionWithServices) == null ? void 0 : _a.configuredOutputFormats) || []).map(
1025
- (format) => b`
1026
- <label
1027
- style="display: flex; align-items: center; gap: 8px; padding: 5px;"
1028
- >
1029
- <input
1030
- type="radio"
1031
- name="output-format"
1032
- value="${format}"
1033
- .checked=${this.selectedFormat === format}
1034
- @change=${() => this.selectedFormat = format}
1035
- />
1036
- ${format.label}
1037
- </label>
1038
- `
1039
- );
1040
- })()}
1041
- </div>
1042
- </terra-accordion>
1043
- `;
1044
- };
1045
- _renderDateRangeSelection = new WeakSet();
1046
- renderDateRangeSelection_fn = function() {
1047
- var _a, _b, _c, _d, _e, _f, _g, _h;
1048
- const { startDate: defaultStartDate, endDate: defaultEndDate } = __privateMethod(this, _getCollectionDateRange, getCollectionDateRange_fn).call(this);
1049
- const startDate = (_b = (_a = this.selectedDateRange.startDate) != null ? _a : this.granuleMinDate) != null ? _b : defaultStartDate;
1050
- const endDate = (_d = (_c = this.selectedDateRange.endDate) != null ? _c : this.granuleMaxDate) != null ? _d : defaultEndDate;
1051
- const showError = this.touchedFields.has("date") && (!this.selectedDateRange.startDate || !this.selectedDateRange.endDate);
1052
- return b`
1053
- <terra-accordion>
1054
- <div slot="summary">
1055
- <span class="accordion-title">Refine Date Range:</span>
1056
- </div>
1057
-
1058
- <div
1059
- slot="summary-right"
1060
- style="display: flex; align-items: center; gap: 10px;"
1061
- >
1062
- ${showError ? b`<span class="accordion-value error"
1063
- >Please select a date range</span
1064
- >` : this.touchedFields.has("date") && startDate && endDate ? b`<span class="accordion-value"
1065
- >${startDate} to ${endDate}</span
1066
- >` : A}
1067
- <button class="reset-btn" @click=${__privateGet(this, _resetDateRangeSelection)}>
1068
- Reset
1069
- </button>
1070
- </div>
1071
-
1072
- <div style="width: 300px">
1073
- <terra-date-picker
1074
- allow-input
1075
- inline
1076
- range
1077
- split-inputs
1078
- show-presets
1079
- ?enable-time=${this.isSubDaily}
1080
- start-label="Start Date"
1081
- end-label="End Date"
1082
- .minDate=${(_e = this.granuleMinDate) != null ? _e : defaultStartDate}
1083
- .maxDate=${(_f = this.granuleMaxDate) != null ? _f : defaultEndDate}
1084
- .startDate=${(_g = this.selectedDateRange.startDate) != null ? _g : this.granuleMinDate}
1085
- .endDate=${(_h = this.selectedDateRange.endDate) != null ? _h : this.granuleMaxDate}
1086
- .useEndOfDay=${!this.selectedFormat.isGiovanniFormat}
1087
- @terra-date-range-change=${__privateGet(this, _handleDateChange)}
1088
- ></terra-date-picker>
1089
- </div>
1090
-
1091
- <div
1092
- style="display: flex; gap: 16px; margin-top: 15px; color: #31708f;"
1093
- >
1094
- <span
1095
- ><strong>Available Range:</strong> ${defaultStartDate} to
1096
- ${defaultEndDate}</span
1097
- >
1098
- ${this.isSubDaily ? b`<span
1099
- ><strong>Note:</strong> All dates and times are in
1100
- UTC.</span
1101
- >` : A}
1102
- </div>
1103
- </terra-accordion>
1104
- `;
1105
- };
1106
- _handleDateChange = new WeakMap();
1107
- _resetDateRangeSelection = new WeakMap();
1108
- _resetFormatSelection = new WeakMap();
1109
- _getCollectionDateRange = new WeakSet();
1110
- getCollectionDateRange_fn = function() {
1111
- var _a, _b;
1112
- const samplingMinDate = this.granuleMinDate;
1113
- const samplingMaxDate = this.granuleMaxDate;
1114
- if (samplingMinDate && samplingMaxDate) {
1115
- return {
1116
- startDate: samplingMinDate.slice(0, 10),
1117
- endDate: samplingMaxDate.slice(0, 10)
1118
- };
1119
- }
1120
- const temporalExtents = (_b = (_a = this.collectionWithServices) == null ? void 0 : _a.collection) == null ? void 0 : _b.TemporalExtents;
1121
- if (!(temporalExtents == null ? void 0 : temporalExtents.length))
1122
- return {
1123
- startDate: null,
1124
- endDate: null
1125
- };
1126
- let minStart = null;
1127
- let maxEnd = null;
1128
- const today = /* @__PURE__ */ new Date();
1129
- for (const temporal of temporalExtents) {
1130
- for (const range of temporal.RangeDateTimes || []) {
1131
- const start = new Date(range.BeginningDateTime);
1132
- let end;
1133
- if (temporal.EndsAtPresentFlag || !range.EndingDateTime) {
1134
- end = today;
1135
- } else {
1136
- end = new Date(range.EndingDateTime);
1137
- }
1138
- if (!minStart || start < minStart)
1139
- minStart = start;
1140
- if (!maxEnd || end > maxEnd)
1141
- maxEnd = end;
1142
- }
1143
- }
1144
- return {
1145
- startDate: minStart ? minStart.toISOString().slice(0, 10) : null,
1146
- endDate: maxEnd ? maxEnd.toISOString().slice(0, 10) : null
1147
- };
1148
- };
1149
- _renderSpatialSelection = new WeakSet();
1150
- renderSpatialSelection_fn = function() {
1151
- var _a, _b;
1152
- const showError = this.touchedFields.has("spatial") && !this.spatialSelection;
1153
- const spatialString = (_b = (_a = this.spatialSelection) == null ? void 0 : _a.toString()) != null ? _b : this.spatialSelection;
1154
- return b`
1155
- <terra-accordion>
1156
- <div slot="summary">
1157
- <span class="accordion-title">Refine Region:</span>
1158
- </div>
1159
-
1160
- <div
1161
- slot="summary-right"
1162
- style="display: flex; align-items: center; gap: 10px;"
1163
- >
1164
- ${showError ? b`<span class="accordion-value error"
1165
- >Please select a region</span
1166
- >` : spatialString ? b`<span class="accordion-value"
1167
- >${spatialString}</span
1168
- >` : A}
1169
- <button class="reset-btn" @click=${__privateGet(this, _resetSpatialSelection)}>
1170
- Reset
1171
- </button>
1172
- </div>
1173
- <div class="accordion-content">
1174
- <terra-spatial-picker
1175
- part="spatial-picker"
1176
- inline
1177
- hide-label
1178
- .spatialConstraints=${__privateGet(this, _collectionController).spatialConstraints || "-180, -90, 180, 90"}
1179
- .initialValue=${spatialString}
1180
- @terra-map-change=${__privateGet(this, _handleSpatialChange)}
1181
- ></terra-spatial-picker>
1182
- <div
1183
- style="display: flex; gap: 16px; margin-top: 15px; color: #31708f;"
1184
- >
1185
- <span
1186
- ><strong>Available Range:</strong> ${__privateGet(this, _collectionController).spatialConstraints}</span
1187
- >
1188
- </div>
1189
- </div>
1190
- </terra-accordion>
1191
- `;
1192
- };
1193
- _handleSpatialChange = new WeakMap();
1194
- _resetSpatialSelection = new WeakMap();
1195
- _renderVariableSelection = new WeakSet();
1196
- renderVariableSelection_fn = function() {
1197
- var _a;
1198
- const variables = ((_a = this.collectionWithServices) == null ? void 0 : _a.variables) || [];
1199
- const giovanniError = this.touchedFields.has("variables") && __privateMethod(this, _getGiovanniValidationError, getGiovanniValidationError_fn).call(this);
1200
- const basicError = this.touchedFields.has("variables") && this.selectedVariables.length === 0;
1201
- const showError = giovanniError || basicError;
1202
- const errorMessage = giovanniError || (basicError ? "Please select at least one variable" : "");
1203
- const tree = __privateMethod(this, _buildVariableTree, buildVariableTree_fn).call(this, variables);
1204
- const allGroups = __privateMethod(this, _getAllGroupPaths, getAllGroupPaths_fn).call(this, tree);
1205
- const allExpanded = allGroups.length > 0 && allGroups.every((g) => this.expandedVariableGroups.has(g));
1206
- return b`
1207
- <terra-accordion>
1208
- <div slot="summary">
1209
- <span class="accordion-title">Select Variables:</span>
1210
- </div>
1211
- <div
1212
- slot="summary-right"
1213
- style="display: flex; align-items: center; gap: 10px;"
1214
- >
1215
- ${showError ? b`<span class="accordion-value error"
1216
- >${errorMessage}</span
1217
- >` : this.selectedVariables.length ? b`<span class="accordion-value"
1218
- >${this.selectedVariables.length} selected</span
1219
- >` : A}
1220
-
1221
- <button class="reset-btn" @click=${__privateGet(this, _resetVariableSelection)}>
1222
- Reset
1223
- </button>
1224
- </div>
1225
- <div class="accordion-content">
1226
- <terra-input
1227
- label="Filter variables"
1228
- placeholder="Search by variable name..."
1229
- .value=${this.variableFilterText}
1230
- @input=${(e2) => {
1231
- const input = e2.target;
1232
- this.variableFilterText = input.value;
1233
- __privateMethod(this, _handleVariableFilterChange, handleVariableFilterChange_fn).call(this);
1234
- }}
1235
- style="margin-bottom: 10px;"
1236
- ></terra-input>
1237
- <button
1238
- class="reset-btn"
1239
- style="margin-bottom: 10px;"
1240
- @click=${() => __privateMethod(this, _toggleExpandCollapseAll, toggleExpandCollapseAll_fn).call(this, tree)}
1241
- >
1242
- ${allExpanded ? "Collapse Tree" : "Expand Tree"}
1243
- </button>
1244
-
1245
- ${this.selectedFormat.isGiovanniFormat && this.giovanniConfiguredVariables ? b`
1246
- <terra-alert
1247
- open
1248
- appearance="white"
1249
- style="margin: 10px 0"
1250
- >
1251
- <terra-icon
1252
- slot="icon"
1253
- name="outline-information-circle"
1254
- library="heroicons"
1255
- ></terra-icon>
1256
- Only certain variables are supported for the
1257
- selected output format. (Giovanni service)
1258
- </terra-alert>
1259
- ` : A}
1260
- ${variables.length === 0 ? b`<p style="color: #666; font-style: italic;">
1261
- No variables available for this collection.
1262
- </p>` : __privateMethod(this, _renderVariableTree, renderVariableTree_fn).call(this, __privateMethod(this, _filterVariableTree, filterVariableTree_fn).call(this, tree), [])}
1263
- </div>
1264
- </terra-accordion>
1265
- `;
1266
- };
1267
- _renderDimensionGroup = new WeakSet();
1268
- renderDimensionGroup_fn = function(dim) {
1269
- var _a, _b, _c, _d, _e, _f;
1270
- const currentValue = (_a = this.selectedDimensionIndexes[dim.name]) != null ? _a : 1;
1271
- 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(
1272
- (s) => s.dimensions && s.dimensions.length > 0
1273
- )) == null ? void 0 : _f.dimensions) || [];
1274
- return b`
1275
- <div style="margin-bottom: 16px;">
1276
- <div
1277
- style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px;"
1278
- >
1279
- <span style="font-weight: 600; margin-bottom: 44px"
1280
- >Dimension: ${dim.name}</span
1281
- >
1282
- </div>
1283
- <terra-slider
1284
- class="dimension-slider"
1285
- mode="range"
1286
- min="1"
1287
- .max=${dim.size}
1288
- step="1"
1289
- .startValue=${currentValue.start}
1290
- .endValue=${currentValue.end}
1291
- has-tooltips
1292
- show-inputs
1293
- hide-label
1294
- .formatTooltip=${dimensions.length > 0 ? (value) => {
1295
- const found = dimensions.find(
1296
- (d) => String(d.value) === String(value)
1297
- );
1298
- return found ? found.label : String(value);
1299
- } : A}
1300
- @terra-slider-change=${(event) => {
1301
- if ("startValue" in event.detail) {
1302
- const { startValue, endValue } = event.detail;
1303
- __privateMethod(this, _setDimensionValue, setDimensionValue_fn).call(this, dim.name, startValue, endValue);
1304
- }
1305
- }}
1306
- ></terra-slider>
1307
- </div>
1308
- `;
1309
- };
1310
- _setDimensionValue = new WeakSet();
1311
- setDimensionValue_fn = function(dimName, startValue, endValue) {
1312
- const dimensions = __privateMethod(this, _getCommonSelectableDimensions, getCommonSelectableDimensions_fn).call(this);
1313
- const found = dimensions.find((d) => d.name === dimName);
1314
- if (!found) {
1315
- return;
1316
- }
1317
- const normalizedStartValue = Math.min(
1318
- Math.max(Math.round(startValue), 1),
1319
- found.size
1320
- );
1321
- const normalizedEndValue = Math.min(
1322
- Math.max(Math.round(endValue != null ? endValue : startValue), 1),
1323
- found.size
1324
- );
1325
- if (normalizedStartValue <= 1 && normalizedEndValue >= found.size) {
1326
- delete this.selectedDimensionIndexes[dimName];
1327
- return;
1328
- }
1329
- this.selectedDimensionIndexes = __spreadProps(__spreadValues({}, this.selectedDimensionIndexes), {
1330
- [dimName]: { start: normalizedStartValue, end: normalizedEndValue }
1331
- });
1332
- };
1333
- _renderDimensionSelection = new WeakSet();
1334
- renderDimensionSelection_fn = function() {
1335
- const dimensions = __privateMethod(this, _getCommonSelectableDimensions, getCommonSelectableDimensions_fn).call(this);
1336
- if (!dimensions.length) {
1337
- return A;
1338
- }
1339
- const selectedCount = Object.keys(this.selectedDimensionIndexes).length;
1340
- return b`
1341
- <terra-accordion>
1342
- <div slot="summary">
1343
- <span class="accordion-title">Select Dimensions:</span>
1344
- </div>
1345
- <div
1346
- slot="summary-right"
1347
- style="display: flex; align-items: center; gap: 10px;"
1348
- >
1349
- ${selectedCount ? b`<span class="accordion-value"
1350
- >${selectedCount}
1351
- dimension${selectedCount === 1 ? "" : "s"}
1352
- selected</span
1353
- >` : A}
1354
- <button class="reset-btn" @click=${__privateMethod(this, _resetDimensionSelection, resetDimensionSelection_fn)}>
1355
- Reset
1356
- </button>
1357
- </div>
1358
- <div class="accordion-content">
1359
- ${dimensions.map((dim) => __privateMethod(this, _renderDimensionGroup, renderDimensionGroup_fn).call(this, dim))}
1360
- </div>
1361
- </terra-accordion>
1362
- `;
1363
- };
1364
- _filterVariableTree = new WeakSet();
1365
- filterVariableTree_fn = function(tree) {
1366
- if (!this.variableFilterText.trim()) {
1367
- return tree;
1368
- }
1369
- const filterText = this.variableFilterText.toLowerCase().trim();
1370
- const filterNode = (node) => {
1371
- const result = {};
1372
- for (const [key, value] of Object.entries(node)) {
1373
- if (value.__isLeaf) {
1374
- const variableName = value.__variable.name.toLowerCase();
1375
- if (variableName.includes(filterText)) {
1376
- result[key] = value;
1377
- }
1378
- } else {
1379
- const filteredChildren = filterNode(value.__children);
1380
- if (Object.keys(filteredChildren).length > 0 || key.toLowerCase().includes(filterText)) {
1381
- result[key] = __spreadProps(__spreadValues({}, value), {
1382
- __children: filteredChildren
1383
- });
1384
- }
1385
- }
1386
- }
1387
- return result;
1388
- };
1389
- return filterNode(tree);
1390
- };
1391
- _handleVariableFilterChange = new WeakSet();
1392
- handleVariableFilterChange_fn = function() {
1393
- var _a;
1394
- if (!this.variableFilterText.trim()) {
1395
- return;
1396
- }
1397
- const variables = ((_a = this.collectionWithServices) == null ? void 0 : _a.variables) || [];
1398
- const tree = __privateMethod(this, _buildVariableTree, buildVariableTree_fn).call(this, variables);
1399
- const filterText = this.variableFilterText.toLowerCase().trim();
1400
- const groupsToExpand = /* @__PURE__ */ new Set();
1401
- const findMatchingGroups = (node, path = []) => {
1402
- for (const [key, value] of Object.entries(node)) {
1403
- if (value.__isLeaf) {
1404
- const variableName = value.__variable.name.toLowerCase();
1405
- if (variableName.includes(filterText)) {
1406
- for (let i = 0; i < path.length; i++) {
1407
- const groupPath = path.slice(0, i + 1).join("/");
1408
- groupsToExpand.add(groupPath);
1409
- }
1410
- }
1411
- } else {
1412
- const groupPath = [...path, key].join("/");
1413
- findMatchingGroups(value.__children, [...path, key]);
1414
- if (key.toLowerCase().includes(filterText)) {
1415
- groupsToExpand.add(groupPath);
1416
- }
1417
- }
1418
- }
1419
- };
1420
- findMatchingGroups(tree);
1421
- if (groupsToExpand.size > 0) {
1422
- this.expandedVariableGroups = /* @__PURE__ */ new Set([
1423
- ...this.expandedVariableGroups,
1424
- ...groupsToExpand
1425
- ]);
1426
- }
1427
- };
1428
- _buildVariableTree = new WeakSet();
1429
- buildVariableTree_fn = function(variables) {
1430
- let filteredVariables = variables;
1431
- if (this.selectedFormat.isGiovanniFormat && this.giovanniConfiguredVariables) {
1432
- filteredVariables = variables.filter((v) => {
1433
- var _a, _b, _c;
1434
- const shortName = (_a = this.collectionWithServices) == null ? void 0 : _a.shortName;
1435
- const version = (_c = (_b = this.collectionWithServices) == null ? void 0 : _b.collection) == null ? void 0 : _c.Version;
1436
- if (!shortName || !version) {
1437
- return false;
1438
- }
1439
- const giovanniVariableName = convertVariableEntryIdToGiovanniFormat(
1440
- shortName,
1441
- version,
1442
- v.name
1443
- );
1444
- return this.giovanniConfiguredVariables.has(giovanniVariableName);
1445
- });
1446
- }
1447
- const root = {};
1448
- for (const v of filteredVariables) {
1449
- const parts = v.name.split("/");
1450
- let node = root;
1451
- for (let i = 0; i < parts.length; i++) {
1452
- const part = parts[i];
1453
- if (!node[part])
1454
- node[part] = { __children: {}, __isLeaf: false };
1455
- if (i === parts.length - 1) {
1456
- node[part].__isLeaf = true;
1457
- node[part].__variable = v;
1458
- }
1459
- node = node[part].__children;
1460
- }
1461
- }
1462
- return root;
1463
- };
1464
- _renderVariableTree = new WeakSet();
1465
- renderVariableTree_fn = function(node, path) {
1466
- const isGiovanni = this.selectedFormat.isGiovanniFormat;
1467
- return b`
1468
- <div style="margin-left: ${path.length * 20}px;">
1469
- ${Object.entries(node).map(([key, value]) => {
1470
- var _a;
1471
- const groupPath = [...path, key].join("/");
1472
- if (value.__isLeaf) {
1473
- const ummVar = cmr_variable_service_default.getVariableByName(
1474
- key,
1475
- (_a = __privateGet(this, _collectionController).variables) == null ? void 0 : _a.data
1476
- );
1477
- const variableLabel = ummVar ? cmr_variable_service_default.getVariableDisplayLabel(ummVar) : key;
1478
- return b`
1479
- <div class="option-row">
1480
- <label class="checkbox-option">
1481
- <input
1482
- type="${isGiovanni ? "radio" : "checkbox"}"
1483
- name="${isGiovanni ? "variable-selection" : ""}"
1484
- .checked=${this.selectedVariables.some(
1485
- (v) => v.name === value.__variable.name
1486
- )}
1487
- @change=${(e2) => __privateMethod(this, _toggleVariableSelection, toggleVariableSelection_fn).call(this, e2, value.__variable)}
1488
- />
1489
- <span>${variableLabel}</span>
1490
- </label>
1491
- </div>
1492
- `;
1493
- } else {
1494
- const expanded = this.expandedVariableGroups.has(groupPath);
1495
- return b`
1496
- <div class="option-row" style="align-items: flex-start;">
1497
- <span
1498
- style="cursor: pointer; display: flex; align-items: center;"
1499
- @click=${() => __privateMethod(this, _toggleGroupExpand, toggleGroupExpand_fn).call(this, groupPath)}
1500
- >
1501
- <terra-icon
1502
- library="heroicons"
1503
- name="${expanded ? "outline-minus-circle" : "outline-plus-circle"}"
1504
- style="margin-right: 4px;"
1505
- ></terra-icon>
1506
- <span style="font-weight: 500;">${key}</span>
1507
- </span>
1508
- </div>
1509
- ${expanded ? __privateMethod(this, _renderVariableTree, renderVariableTree_fn).call(this, value.__children, [
1510
- ...path,
1511
- key
1512
- ]) : ""}
1513
- `;
1514
- }
1515
- })}
1516
- </div>
1517
- `;
1518
- };
1519
- _getAllGroupPaths = new WeakSet();
1520
- getAllGroupPaths_fn = function(node, path = []) {
1521
- let groups = [];
1522
- for (const [key, value] of Object.entries(node)) {
1523
- if (!value.__isLeaf) {
1524
- const groupPath = [...path, key].join("/");
1525
- groups.push(groupPath);
1526
- groups = groups.concat(
1527
- __privateMethod(this, _getAllGroupPaths, getAllGroupPaths_fn).call(this, value.__children, [...path, key])
1528
- );
1529
- }
1530
- }
1531
- return groups;
1532
- };
1533
- _toggleGroupExpand = new WeakSet();
1534
- toggleGroupExpand_fn = function(groupPath) {
1535
- const set = new Set(this.expandedVariableGroups);
1536
- if (set.has(groupPath)) {
1537
- set.delete(groupPath);
1538
- } else {
1539
- set.add(groupPath);
1540
- }
1541
- this.expandedVariableGroups = set;
1542
- };
1543
- _toggleExpandCollapseAll = new WeakSet();
1544
- toggleExpandCollapseAll_fn = function(tree) {
1545
- const allGroups = __privateMethod(this, _getAllGroupPaths, getAllGroupPaths_fn).call(this, tree);
1546
- const allExpanded = allGroups.length > 0 && allGroups.every((g) => this.expandedVariableGroups.has(g));
1547
- if (allExpanded) {
1548
- this.expandedVariableGroups = /* @__PURE__ */ new Set();
1549
- } else {
1550
- this.expandedVariableGroups = new Set(allGroups);
1551
- }
1552
- };
1553
- _toggleVariableSelection = new WeakSet();
1554
- toggleVariableSelection_fn = function(e2, variable) {
1555
- __privateMethod(this, _markFieldTouched, markFieldTouched_fn).call(this, "variables");
1556
- const checked = e2.target.checked;
1557
- if (this.selectedFormat.isGiovanniFormat) {
1558
- if (checked) {
1559
- this.selectedVariables = [variable];
1560
- }
1561
- } else {
1562
- if (checked) {
1563
- if (!this.selectedVariables.some((v) => v.name === variable.name)) {
1564
- this.selectedVariables = [...this.selectedVariables, variable];
1565
- }
1566
- } else {
1567
- this.selectedVariables = this.selectedVariables.filter(
1568
- (v) => v.name !== variable.name
1569
- );
1570
- }
1571
- }
1572
- };
1573
- _markFieldTouched = new WeakSet();
1574
- markFieldTouched_fn = function(field) {
1575
- this.touchedFields = new Set(this.touchedFields).add(field);
1576
- };
1577
- _resetVariableSelection = new WeakMap();
1578
- _resetDimensionSelection = new WeakSet();
1579
- resetDimensionSelection_fn = function() {
1580
- this.selectedDimensionIndexes = {};
1581
- };
1582
- _isDimensionExcluded = new WeakSet();
1583
- isDimensionExcluded_fn = function(dim) {
1584
- var _a, _b, _c;
1585
- const normalizedName = (_b = (_a = dim.Name) == null ? void 0 : _a.toLowerCase()) != null ? _b : "";
1586
- const normalizedType = ((_c = dim.Type) != null ? _c : "").toLowerCase();
1587
- return ["time", "latitude", "longitude", "lat", "lon", "x", "y"].some(
1588
- (value) => normalizedName.includes(value) || normalizedType.includes(value)
1589
- );
1590
- };
1591
- _getCommonSelectableDimensions = new WeakSet();
1592
- getCommonSelectableDimensions_fn = function() {
1593
- var _a, _b;
1594
- const variables = (_a = __privateGet(this, _collectionController).variables) == null ? void 0 : _a.data;
1595
- if (!variables) {
1596
- console.log("no variables found, cannot determine dimensions");
1597
- return [];
1598
- }
1599
- const allUmmVars = (_b = variables.items) != null ? _b : [];
1600
- if (!allUmmVars.length) {
1601
- return [];
1602
- }
1603
- const allDimensionSets = allUmmVars.map(
1604
- (v) => {
1605
- var _a2;
1606
- return (_a2 = v.umm.Dimensions) != null ? _a2 : [];
1607
- }
1608
- );
1609
- if (!allDimensionSets.length) {
1610
- return [];
1611
- }
1612
- const allDimensionNames = Array.from(
1613
- new Set(allDimensionSets.flatMap((dimSet) => dimSet.map((dim) => dim.Name)))
1614
- );
1615
- const filteredCommon = allDimensionNames.map((name) => {
1616
- var _a2, _b2;
1617
- const dims = allDimensionSets.map((set) => set.find((dim) => dim.Name === name)).filter((d) => Boolean(d));
1618
- if (!dims.length) {
1619
- return null;
1620
- }
1621
- const validSizes = dims.filter((dim) => dim.Size !== void 0 && dim.Size !== "Varies").map((dim) => Number(dim.Size)).filter((size2) => Number.isFinite(size2) && size2 > 0);
1622
- if (!validSizes.length) {
1623
- return null;
1624
- }
1625
- const size = Math.min(...validSizes);
1626
- return {
1627
- name,
1628
- type: (_b2 = (_a2 = dims[0]) == null ? void 0 : _a2.Type) != null ? _b2 : "OTHER",
1629
- size
1630
- };
1631
- }).filter(
1632
- (entry) => Boolean(entry)
1633
- ).filter(
1634
- (entry) => !__privateMethod(this, _isDimensionExcluded, isDimensionExcluded_fn).call(this, {
1635
- Name: entry.name,
1636
- Type: entry.type
1637
- })
1638
- );
1639
- return filteredCommon;
1640
- };
1641
- _renderJobStatus = new WeakSet();
1642
- renderJobStatus_fn = function() {
1643
- var _a, _b, _c, _d, _e;
1644
- if (!__privateGet(this, _harmonyRequestController).jobId) {
1645
- return b`<div class="results-section" id="job-status-section">
1646
- <div
1647
- style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px;"
1648
- >
1649
- <h2 class="results-title" style="margin: 0;">Results:</h2>
1650
- ${!this.isHistoryView ? b`
1651
- <terra-button
1652
- variant="default"
1653
- size="small"
1654
- @click=${__privateMethod(this, _backToSubsetOptions, backToSubsetOptions_fn)}
1655
- >
1656
- ← Back to Subset Options
1657
- </terra-button>
1658
- ` : A}
1659
- </div>
1660
-
1661
- <div class="progress-container">
1662
- <div class="progress-text">
1663
- <span class="spinner"></span>
1664
- <span class="status-running">Searching for data...</span>
1665
- </div>
1666
-
1667
- <div class="progress-bar">
1668
- <div class="progress-fill" style="width: 0%"></div>
1669
- </div>
1670
- </div>
1671
-
1672
- ${__privateMethod(this, _renderJobMessage, renderJobMessage_fn).call(this)}
1673
- </div>`;
1674
- }
1675
- return b`
1676
- <div class="results-section" id="job-status-section">
1677
- <div
1678
- style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px;"
1679
- >
1680
- <h2 class="results-title" style="margin: 0;">Results:</h2>
1681
- ${!this.isHistoryView ? b`
1682
- <terra-button
1683
- variant="default"
1684
- size="small"
1685
- @click=${__privateMethod(this, _backToSubsetOptions, backToSubsetOptions_fn)}
1686
- >
1687
- ← Back to Subset Options
1688
- </terra-button>
1689
- ` : A}
1690
- </div>
1691
-
1692
- ${__privateGet(this, _harmonyRequestController).status !== "canceled" && __privateGet(this, _harmonyRequestController).status !== "failed" ? b` <div class="progress-container">
1693
- <div class="progress-text">
1694
- ${__privateGet(this, _harmonyRequestController).progress >= 100 ? b`
1695
- <span class="status-complete"
1696
- >✓ Search complete</span
1697
- >
1698
- ` : b`
1699
- <span class="spinner"></span>
1700
- <span class="status-running"
1701
- >Searching for data...
1702
- (${__privateGet(this, _harmonyRequestController).progress}%)</span
1703
- >
1704
- `}
1705
- </div>
1706
-
1707
- <div class="progress-bar">
1708
- <div
1709
- class="progress-fill"
1710
- style="width: ${__privateGet(this, _harmonyRequestController).progress}%"
1711
- ></div>
1712
- </div>
1713
- </div>` : A}
1714
-
1715
- <div class="search-status">
1716
- <span class="file-count"
1717
- >Found ${__privateMethod(this, _numberOfFilesFoundEstimate, numberOfFilesFoundEstimate_fn).call(this)} files</span
1718
- >
1719
- out of estimated
1720
- <span class="estimated-total"
1721
- >${(_a = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _a.numInputGranules.toLocaleString()}</span
1722
- >
1723
- </div>
1724
-
1725
- ${__privateMethod(this, _renderJobMessage, renderJobMessage_fn).call(this)}
1726
- ${((_c = (_b = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _b.errors) == null ? void 0 : _c.length) ? b`
1727
- <terra-accordion>
1728
- <div slot="summary">
1729
- <span
1730
- class="accordion-title"
1731
- style="color: #dc3545;"
1732
- >Errors
1733
- (${(_d = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _d.errors.length})</span
1734
- >
1735
- </div>
1736
- <div class="accordion-content">
1737
- <ul
1738
- style="color: #dc3545; font-size: 14px; padding-left: 20px;"
1739
- >
1740
- ${(_e = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _e.errors.map(
1741
- (err) => b`
1742
- <li style="margin-bottom: 12px;">
1743
- <a
1744
- href="${err.url}"
1745
- target="_blank"
1746
- style="word-break: break-all; color: #dc3545; text-decoration: underline;"
1747
- >
1748
- ${err.url}
1749
- </a>
1750
- <div style="margin-top: 2px;">
1751
- ${err.message}
1752
- </div>
1753
- </li>
1754
- `
1755
- )}
1756
- </ul>
1757
- </div>
1758
- </terra-accordion>
1759
- ` : A}
1760
-
1761
- <div class="tabs">
1762
- <button
1763
- class="tab ${this.selectedTab === "web-links" ? "active" : ""}"
1764
- @click=${() => this.selectedTab = "web-links"}
1765
- >
1766
- Web Links
1767
- </button>
1768
-
1769
- ${!this.isHistoryView ? b`
1770
- <button
1771
- class="tab ${this.selectedTab === "selected-params" ? "active" : ""}"
1772
- @click=${() => this.selectedTab = "selected-params"}
1773
- >
1774
- Selected Parameters
1775
- </button>
1776
- ` : A}
1777
- </div>
1778
- <div
1779
- id="web-links"
1780
- class="tab-content ${this.selectedTab === "web-links" ? "active" : ""}"
1781
- >
1782
- ${__privateMethod(this, _getDocumentationLinks, getDocumentationLinks_fn).call(this).length ? b`
1783
- <div class="documentation-links">
1784
- ${__privateMethod(this, _getDocumentationLinks, getDocumentationLinks_fn).call(this).map(
1785
- (link) => b`
1786
- <a href="${link.href}" class="doc-link"
1787
- >${link.title}</a
1788
- >
1789
- `
1790
- )}
1791
- </div>
1792
- ` : A}
1793
-
1794
- <ul class="file-list">
1795
- ${__privateMethod(this, _getDataLinks, getDataLinks_fn).call(this).map(
1796
- (link) => b`
1797
- <li class="file-item">
1798
- <a
1799
- href="${link.href}"
1800
- class="file-link"
1801
- target="_blank"
1802
- >
1803
- ${link.title}
1804
- </a>
1805
- </li>
1806
- `
1807
- )}
1808
- </ul>
1809
- </div>
1810
-
1811
- <div
1812
- id="selected-params"
1813
- class="tab-content ${this.selectedTab === "selected-params" ? "active" : ""}"
1814
- >
1815
- ${__privateMethod(this, _renderSelectedParams, renderSelectedParams_fn).call(this)}
1816
- </div>
1817
- </div>
1818
-
1819
- ${!this.dialog ? b`
1820
- <div class="footer">
1821
- ${__privateGet(this, _harmonyRequestController).status === "successful" /* SUCCESSFUL */ || __privateGet(this, _harmonyRequestController).status === "complete_with_errors" /* COMPLETE_WITH_ERRORS */ ? b`
1822
- <div
1823
- style="display: flex; align-items: center; gap: 8px;"
1824
- >
1825
- <terra-dropdown
1826
- @terra-select=${__privateMethod(this, _handleDownloadSelect, handleDownloadSelect_fn)}
1827
- >
1828
- <terra-button slot="trigger" caret>
1829
- Download Options
1830
- </terra-button>
1831
- <terra-menu>
1832
- <terra-menu-item value="file-list">
1833
- <svg
1834
- slot="prefix"
1835
- viewBox="0 0 24 24"
1836
- width="16"
1837
- height="16"
1838
- style="width: 16px; height: 16px;"
1839
- >
1840
- <path
1841
- fill="currentColor"
1842
- 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"
1843
- />
1844
- </svg>
1845
- File List
1846
- </terra-menu-item>
1847
- <terra-menu-item
1848
- value="python-script"
1849
- >
1850
- <svg
1851
- slot="prefix"
1852
- viewBox="0 0 128 128"
1853
- width="16"
1854
- height="16"
1855
- style="width: 16px; height: 16px;"
1856
- >
1857
- <path
1858
- fill="currentColor"
1859
- 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"
1860
- ></path>
1861
- </svg>
1862
- Python Script
1863
- </terra-menu-item>
1864
- <terra-menu-item
1865
- value="earthdata-download"
1866
- >
1867
- <svg
1868
- slot="prefix"
1869
- viewBox="0 0 64 64"
1870
- fill="none"
1871
- width="16"
1872
- height="16"
1873
- style="width: 16px; height: 16px;"
1874
- >
1875
- <circle
1876
- cx="32"
1877
- cy="32"
1878
- r="28"
1879
- fill="currentColor"
1880
- />
1881
- <path
1882
- d="M32 14v26M32 40l-9-9M32 40l9-9"
1883
- stroke="#fff"
1884
- stroke-width="4"
1885
- stroke-linecap="round"
1886
- stroke-linejoin="round"
1887
- fill="none"
1888
- />
1889
- </svg>
1890
- Earthdata Download
1891
- </terra-menu-item>
1892
- </terra-menu>
1893
- </terra-dropdown>
1894
-
1895
- <!--
1896
- <terra-button
1897
- outline
1898
- @click=${() => __privateMethod(this, _handleJupyterNotebookClick, handleJupyterNotebookClick_fn).call(this)}
1899
- >
1900
- <terra-icon
1901
- name="outline-code-bracket"
1902
- library="heroicons"
1903
- font-size="1.5em"
1904
- style="margin-right: 5px;"
1905
- ></terra-icon>
1906
- Open in Jupyter Notebook
1907
- </terra-button>
1908
- --></div>
1909
- ` : A}
1910
- ${__privateGet(this, _harmonyRequestController).status === "running" /* RUNNING */ ? b`<button
1911
- class="btn btn-success"
1912
- @click=${__privateMethod(this, _cancelJob, cancelJob_fn)}
1913
- ?disabled=${this.cancelingGetData}
1914
- >
1915
- ${this.cancelingGetData ? "Canceling..." : "Cancel request"}
1916
- </button>` : A}
1917
-
1918
- <div class="job-info">
1919
- Job ID:
1920
- <span class="job-id">
1921
- ${this.bearerToken ? b`<a
1922
- href="https://harmony.earthdata.nasa.gov/jobs/${__privateGet(this, _harmonyRequestController).jobId}"
1923
- target="_blank"
1924
- >${__privateGet(this, _harmonyRequestController).jobId}</a
1925
- >` : __privateGet(this, _harmonyRequestController).jobId}
1926
- </span>
1927
- <span class="info-icon">?</span>
1928
- </div>
1929
- </div>
1930
- ` : A}
1931
- `;
1932
- };
1933
- _renderSelectedParams = new WeakSet();
1934
- renderSelectedParams_fn = function() {
1935
- var _a, _b, _c, _d;
1936
- const collection = (_a = this.collectionWithServices) == null ? void 0 : _a.collection;
1937
- const variables = this.selectedVariables.length ? this.selectedVariables.map((v) => v.name) : ["All"];
1938
- const dateRange = this.selectedDateRange.startDate && this.selectedDateRange.endDate ? `${this.selectedDateRange.startDate} to ${this.selectedDateRange.endDate}` : "\u2014";
1939
- const spatial = (_c = (_b = this.spatialSelection) == null ? void 0 : _b.toString()) != null ? _c : "-";
1940
- return b`
1941
- <dl class="params-summary">
1942
- <div>
1943
- <dt><strong>Dataset</strong></dt>
1944
- <dd>${(_d = collection == null ? void 0 : collection.EntryTitle) != null ? _d : "\u2014"}</dd>
1945
- </div>
1946
- <div>
1947
- <dt><strong>Variables</strong></dt>
1948
- <dd>${variables.map((v) => b`<div>${v}</div>`)}</dd>
1949
- </div>
1950
- <div>
1951
- <dt><strong>Dimensions</strong></dt>
1952
- <dd>
1953
- ${Object.entries(this.selectedDimensionIndexes).length ? Object.entries(this.selectedDimensionIndexes).map(
1954
- ([dimName, value]) => b`<div>
1955
- <strong>${dimName}:</strong> ${value}
1956
- </div>`
1957
- ) : "\u2014"}
1958
- </dd>
1959
- </div>
1960
- <div>
1961
- <dt><strong>Date Range</strong></dt>
1962
- <dd>${dateRange}</dd>
1963
- </div>
1964
- <div>
1965
- <dt><strong>Spatial</strong></dt>
1966
- <dd>${spatial}</dd>
1967
- </div>
1968
- </dl>
1969
-
1970
- <terra-button @click=${__privateMethod(this, _refineParameters, refineParameters_fn)}
1971
- >Refine Parameters</terra-button
1972
- >
1973
- `;
1974
- };
1975
- _cancelJob = new WeakSet();
1976
- cancelJob_fn = async function() {
1977
- if (!this.jobId) {
1978
- return;
1979
- }
1980
- this.cancelingGetData = true;
1981
- try {
1982
- await __privateGet(this, _harmonyRequestController).cancelJob({
1983
- jobId: this.jobId,
1984
- options: { bearerToken: this.bearerToken }
1985
- });
1986
- } finally {
1987
- this.cancelingGetData = false;
1988
- }
1989
- };
1990
- _getData = new WeakSet();
1991
- getData_fn = async function() {
1992
- var _a;
1993
- const validationError = __privateMethod(this, _getGiovanniValidationError, getGiovanniValidationError_fn).call(this);
1994
- if (validationError) {
1995
- this.validationError = validationError;
1996
- __privateMethod(this, _markFieldTouched, markFieldTouched_fn).call(this, "variables");
1997
- return;
1998
- }
1999
- this.validationError = void 0;
2000
- this.cancelingGetData = false;
2001
- __privateMethod(this, _touchAllFields, touchAllFields_fn).call(this);
2002
- const variables = this.selectedFormat.isGiovanniFormat ? this.selectedVariables.map(
2003
- (v) => {
2004
- var _a2, _b, _c;
2005
- return (
2006
- // the Giovanni variable catalog uses different variable entry ids, we need to support them
2007
- // ex. CMR: M2T1NXSLV_5.2.14 in Giovanni uses underscores: M2T1NXSLV_5_2_14
2008
- convertVariableEntryIdToGiovanniFormat(
2009
- (_a2 = this.collectionWithServices.shortName) != null ? _a2 : "",
2010
- (_c = (_b = this.collectionWithServices.collection) == null ? void 0 : _b.Version) != null ? _c : "",
2011
- v.name
2012
- )
2013
- );
2014
- }
2015
- ) : this.selectedVariables.map((v) => v.conceptId);
2016
- const harmonyRequest = new HarmonyRequest({
2017
- collectionConceptId: this.collectionWithServices.conceptId,
2018
- variables,
2019
- location: this.spatialSelection
2020
- });
2021
- if (((_a = this.collectionWithServices) == null ? void 0 : _a.summary.subsetting.temporal) && this.selectedDateRange.startDate && this.selectedDateRange.endDate) {
2022
- harmonyRequest.startDate(
2023
- this.isSubDaily ? this.selectedDateRange.startDate : getUTCDate(this.selectedDateRange.startDate).toISOString()
2024
- );
2025
- harmonyRequest.endDate(
2026
- this.isSubDaily ? this.selectedDateRange.endDate : getUTCDate(this.selectedDateRange.endDate).toISOString()
2027
- );
2028
- }
2029
- if (this.selectedFormat) {
2030
- harmonyRequest.format(
2031
- this.selectedFormat.isGiovanniFormat ? "text/csv" : this.selectedFormat.key
2032
- );
2033
- }
2034
- if (this.selectedFormat.key === "text/csv") {
2035
- harmonyRequest.average("area");
2036
- }
2037
- if (this.selectedFormat.key === "image/tiff") {
2038
- harmonyRequest.average("time");
2039
- }
2040
- if (Object.keys(this.selectedDimensionIndexes).length) {
2041
- Object.entries(this.selectedDimensionIndexes).forEach(
2042
- ([dimName, { start, end }]) => {
2043
- harmonyRequest.dimension({
2044
- name: dimName,
2045
- min: start,
2046
- max: end
2047
- });
2048
- }
2049
- );
2050
- }
2051
- harmonyRequest.label("terra-data-subsetter");
2052
- console.log("Creating Harmony job with request:", harmonyRequest);
2053
- const job = await __privateGet(this, _harmonyRequestController).startJob({
2054
- harmonyRequest,
2055
- options: { bearerToken: this.bearerToken }
2056
- });
2057
- this.jobId = job.jobID;
2058
- setTimeout(() => {
2059
- const el = this.renderRoot.querySelector("#job-status-section");
2060
- el == null ? void 0 : el.scrollIntoView({ behavior: "smooth" });
2061
- }, 100);
2062
- this.refineParameters = false;
2063
- this.isHistoryView = false;
2064
- };
2065
- _touchAllFields = new WeakSet();
2066
- touchAllFields_fn = function() {
2067
- this.touchedFields = /* @__PURE__ */ new Set(["variables", "spatial"]);
2068
- };
2069
- _numberOfFilesFoundEstimate = new WeakSet();
2070
- numberOfFilesFoundEstimate_fn = function() {
2071
- return Math.floor(
2072
- __privateGet(this, _harmonyRequestController).data.numInputGranules * __privateGet(this, _harmonyRequestController).progress / 100
2073
- );
2074
- };
2075
- _getDocumentationLinks = new WeakSet();
2076
- getDocumentationLinks_fn = function() {
2077
- return __privateGet(this, _harmonyRequestController).data.links.filter(
2078
- (link) => link.rel === "stac-catalog-json"
2079
- );
2080
- };
2081
- _getDataLinks = new WeakSet();
2082
- getDataLinks_fn = function() {
2083
- return __privateGet(this, _harmonyRequestController).data.links.filter(
2084
- (link) => link.rel === "data"
2085
- );
2086
- };
2087
- _hasAtLeastOneSubsetOption = new WeakSet();
2088
- hasAtLeastOneSubsetOption_fn = function() {
2089
- var _a, _b, _c, _d;
2090
- 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);
2091
- };
2092
- _hasSpatialSubset = new WeakSet();
2093
- hasSpatialSubset_fn = function() {
2094
- var _a, _b;
2095
- return ((_a = this.collectionWithServices) == null ? void 0 : _a.summary.subsetting.bbox) || ((_b = this.collectionWithServices) == null ? void 0 : _b.summary.subsetting.shape);
2096
- };
2097
- _renderJobMessage = new WeakSet();
2098
- renderJobMessage_fn = function() {
2099
- const warningStatuses = [
2100
- "canceled" /* CANCELED */,
2101
- "complete_with_errors" /* COMPLETE_WITH_ERRORS */,
2102
- "running_with_errors" /* RUNNING_WITH_ERRORS */
2103
- ];
2104
- const errorStatuses = ["failed" /* FAILED */];
2105
- let type = "normal";
2106
- if (warningStatuses.includes(__privateGet(this, _harmonyRequestController).data.status)) {
2107
- type = "warning";
2108
- } else if (errorStatuses.includes(__privateGet(this, _harmonyRequestController).data.status)) {
2109
- type = "error";
2110
- }
2111
- let color, bg;
2112
- if (type === "error") {
2113
- color = "#dc3545";
2114
- bg = "#f8d7da";
2115
- } else if (type === "warning") {
2116
- color = "#856404";
2117
- bg = "#fff3cd";
2118
- } else {
2119
- color = "#555";
2120
- bg = "#f8f9fa";
2121
- }
2122
- return b`
2123
- <div
2124
- style="
2125
- margin: 24px 0 16px 0;
2126
- padding: 16px 20px;
2127
- border-radius: 6px;
2128
- background: ${bg};
2129
- color: ${color};
2130
- border: 1px solid ${color}22;
2131
- "
2132
- >
2133
- ${__privateMethod(this, _getJobMessageText, getJobMessageText_fn).call(this)}
2134
- </div>
2135
- `;
2136
- };
2137
- _getJobMessageText = new WeakSet();
2138
- getJobMessageText_fn = function() {
2139
- var _a;
2140
- return (_a = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _a.message.replace(
2141
- /\b(The job|the job|job|Job)\b/g,
2142
- (match) => {
2143
- switch (match) {
2144
- case "The job":
2145
- return "Your request";
2146
- case "the job":
2147
- return "Your Request";
2148
- case "job":
2149
- return "request";
2150
- case "Job":
2151
- return "Request";
2152
- }
2153
- return match;
2154
- }
2155
- );
2156
- };
2157
- _estimateJobSize = new WeakSet();
2158
- estimateJobSize_fn = function() {
2159
- var _a, _b, _c, _d, _e;
2160
- if (!((_a = this.collectionWithServices) == null ? void 0 : _a.granuleCount))
2161
- return;
2162
- const range = __privateMethod(this, _getCollectionDateRange, getCollectionDateRange_fn).call(this);
2163
- let startDate;
2164
- let endDate;
2165
- let links = (_c = (_b = this.collectionWithServices) == null ? void 0 : _b.granuleCount) != null ? _c : 0;
2166
- if (this.selectedDateRange.startDate && this.selectedDateRange.endDate) {
2167
- startDate = this.selectedDateRange.startDate;
2168
- endDate = this.selectedDateRange.endDate;
2169
- } else {
2170
- startDate = (_d = this.granuleMinDate) != null ? _d : range.startDate;
2171
- endDate = (_e = this.granuleMaxDate) != null ? _e : range.endDate;
2172
- }
2173
- if (!startDate || !endDate)
2174
- return;
2175
- const start = new Date(startDate);
2176
- const end = new Date(endDate);
2177
- const days = Math.floor((end.getTime() - start.getTime()) / (1e3 * 60 * 60 * 24)) + 1;
2178
- if (range.startDate && range.endDate) {
2179
- const availableDaysInCollection = Math.floor(
2180
- (new Date(range.endDate).getTime() - new Date(range.startDate).getTime()) / (1e3 * 60 * 60 * 24)
2181
- ) + 1;
2182
- const granulesPerDay = links / availableDaysInCollection;
2183
- links = Math.ceil(days * granulesPerDay);
2184
- }
2185
- return { days, links };
2186
- };
2187
- _refineParameters = new WeakSet();
2188
- refineParameters_fn = function() {
2189
- this.refineParameters = true;
2190
- };
2191
- _backToSubsetOptions = new WeakSet();
2192
- backToSubsetOptions_fn = function() {
2193
- this.refineParameters = true;
2194
- setTimeout(() => {
2195
- const container = this.renderRoot.querySelector(".container");
2196
- container == null ? void 0 : container.scrollIntoView({ behavior: "smooth", block: "start" });
2197
- }, 100);
2198
- };
2199
- _viewRunningJob = new WeakSet();
2200
- viewRunningJob_fn = function() {
2201
- this.refineParameters = false;
2202
- setTimeout(() => {
2203
- const el = this.renderRoot.querySelector("#job-status-section");
2204
- el == null ? void 0 : el.scrollIntoView({ behavior: "smooth" });
2205
- }, 100);
2206
- };
2207
- _handleDownloadSelect = new WeakSet();
2208
- handleDownloadSelect_fn = function(event) {
2209
- const item = event.detail.item;
2210
- const value = item.value || item.getTextLabel();
2211
- if (value === "file-list") {
2212
- __privateMethod(this, _downloadLinksAsTxt, downloadLinksAsTxt_fn).call(this, event);
2213
- } else if (value === "python-script") {
2214
- __privateMethod(this, _downloadPythonScript, downloadPythonScript_fn).call(this, event);
2215
- } else if (value === "earthdata-download") {
2216
- __privateMethod(this, _downloadEarthdataDownload, downloadEarthdataDownload_fn).call(this, event);
2217
- }
2218
- };
2219
- _downloadLinksAsTxt = new WeakSet();
2220
- downloadLinksAsTxt_fn = function(event) {
2221
- var _a;
2222
- event.stopPropagation();
2223
- if (!((_a = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _a.links)) {
2224
- return;
2225
- }
2226
- const dataLinks = __privateMethod(this, _getDataLinks, getDataLinks_fn).call(this);
2227
- if (dataLinks.length === 0) {
2228
- return;
2229
- }
2230
- const content = dataLinks.map((link) => link.href).join("\n");
2231
- const blob = new Blob([content], { type: "text/plain" });
2232
- const url = URL.createObjectURL(blob);
2233
- const a = document.createElement("a");
2234
- a.href = url;
2235
- a.download = `subset_links_${__privateGet(this, _harmonyRequestController).jobId}.txt`;
2236
- document.body.appendChild(a);
2237
- a.click();
2238
- document.body.removeChild(a);
2239
- URL.revokeObjectURL(url);
2240
- };
2241
- _downloadPythonScript = new WeakSet();
2242
- downloadPythonScript_fn = async function(event) {
2243
- var _a, _b, _c, _d;
2244
- event.stopPropagation();
2245
- if (!((_a = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _a.links)) {
2246
- return;
2247
- }
2248
- const response = await fetch(
2249
- getBasePath("assets/data-subsetter/download_subset_files.py.txt")
2250
- );
2251
- if (!response.ok) {
2252
- alert(
2253
- "Sorry, there was a problem generating the Python script. We are investigating the issue.\nYou could try using the Jupyter Notebook in the meantime"
2254
- );
2255
- }
2256
- const content = (await response.text()).replace(/{{jobId}}/gi, (_b = __privateGet(this, _harmonyRequestController).jobId) != null ? _b : "").replace(
2257
- /{{HARMONY_ENV}}/gi,
2258
- `Environment.${(_c = this.environment) == null ? void 0 : _c.toUpperCase()}`
2259
- ).replace(
2260
- /{{EARTHACCESS_ENV}}/gi,
2261
- `earthaccess.${(_d = this.environment) == null ? void 0 : _d.toUpperCase()}`
2262
- );
2263
- const blob = new Blob([content], { type: "text/plain" });
2264
- const url = URL.createObjectURL(blob);
2265
- const a = document.createElement("a");
2266
- a.href = url;
2267
- a.download = `download_subset_files_${__privateGet(this, _harmonyRequestController).jobId}.py`;
2268
- document.body.appendChild(a);
2269
- a.click();
2270
- document.body.removeChild(a);
2271
- URL.revokeObjectURL(url);
2272
- };
2273
- _downloadEarthdataDownload = new WeakSet();
2274
- downloadEarthdataDownload_fn = async function(event) {
2275
- var _a;
2276
- event.stopPropagation();
2277
- if (!((_a = __privateGet(this, _harmonyRequestController).data) == null ? void 0 : _a.links)) {
2278
- return;
2279
- }
2280
- alert("Sorry, Earthdata Download is not currently supported");
2281
- };
2282
- _handleJupyterNotebookClick = new WeakSet();
2283
- handleJupyterNotebookClick_fn = function() {
2284
- const notebook = getNotebook(this);
2285
- sendDataToJupyterNotebook("load-notebook", {
2286
- filename: `subset_${__privateGet(this, _harmonyRequestController).jobId}.ipynb`,
2287
- notebook,
2288
- bearerToken: this.bearerToken
2289
- });
2290
- };
2291
- _renderAvailableTemporalRangeSection = new WeakSet();
2292
- renderAvailableTemporalRangeSection_fn = function() {
2293
- const { startDate, endDate } = __privateMethod(this, _getCollectionDateRange, getCollectionDateRange_fn).call(this);
2294
- if (!startDate || !endDate)
2295
- return A;
2296
- return b`
2297
- <div class="section" style="margin-bottom: 16px;">
2298
- <h2 class="section-title">Available Date Range</h2>
2299
- <div style="color: #31708f; margin-top: 8px;">
2300
- <strong>${startDate}</strong> to <strong>${endDate}</strong>
2301
- </div>
2302
- <div style="font-size: 0.95em; color: #666;">
2303
- This collection does not support temporal subsetting.
2304
- </div>
2305
- </div>
2306
- `;
2307
- };
2308
- _renderAvailableSpatialRangeSection = new WeakSet();
2309
- renderAvailableSpatialRangeSection_fn = function() {
2310
- var _a, _b, _c, _d, _e;
2311
- 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;
2312
- if (!boundingRects || !Array.isArray(boundingRects) || !boundingRects.length)
2313
- return A;
2314
- return b`
2315
- <div class="section" style="margin-bottom: 16px;">
2316
- <h2 class="section-title">Available Spatial Area</h2>
2317
- <div style="color: #31708f; margin-top: 8px;">
2318
- ${boundingRects.map(
2319
- (rect) => b`<div>
2320
- <strong>Bounding Box:</strong>
2321
- ${rect.WestBoundingCoordinate},
2322
- ${rect.SouthBoundingCoordinate},
2323
- ${rect.EastBoundingCoordinate},
2324
- ${rect.NorthBoundingCoordinate}
2325
- </div>`
2326
- )}
2327
- </div>
2328
- <div style="font-size: 0.95em; color: #666;">
2329
- This collection does not support spatial subsetting.
2330
- </div>
2331
- </div>
2332
- `;
2333
- };
2334
- _renderDataAccessModeSelection = new WeakSet();
2335
- renderDataAccessModeSelection_fn = function() {
2336
- if (!__privateGet(this, _collectionController).hasGranules) {
2337
- return A;
2338
- }
2339
- return b`
2340
- <div class="mode-selection">
2341
- <div class="mode-options">
2342
- <label
2343
- class="mode-option ${this.dataAccessMode === "original" ? "selected" : ""}"
2344
- >
2345
- <input
2346
- type="radio"
2347
- name="data-access-mode"
2348
- value="original"
2349
- .checked=${this.dataAccessMode === "original"}
2350
- @change=${() => this.dataAccessMode = "original"}
2351
- />
2352
- <div class="mode-content">
2353
- <div class="mode-title">Get Original Files</div>
2354
- <div class="mode-description">
2355
- Filter file links directly from the archive.
2356
- </div>
2357
- </div>
2358
- </label>
2359
-
2360
- <label
2361
- class="mode-option ${this.dataAccessMode === "subset" ? "selected" : ""}"
2362
- >
2363
- <input
2364
- type="radio"
2365
- name="data-access-mode"
2366
- value="subset"
2367
- .checked=${this.dataAccessMode === "subset"}
2368
- @change=${() => this.dataAccessMode = "subset"}
2369
- />
2370
- <div class="mode-content">
2371
- <div class="mode-title">Transform Data</div>
2372
- <div class="mode-description">
2373
- Transform the data to your specific needs.
2374
- </div>
2375
- </div>
2376
- </label>
2377
- </div>
2378
- </div>
2379
- `;
2380
- };
2381
- _getGiovanniValidationError = new WeakSet();
2382
- getGiovanniValidationError_fn = function() {
2383
- if (!this.selectedFormat.isGiovanniFormat) {
2384
- return null;
2385
- }
2386
- if (this.selectedVariables.length === 0) {
2387
- return "Please select a variable to subset.";
2388
- }
2389
- if (this.selectedVariables.length > 1) {
2390
- return "The selected format only supports subsetting one variable at a time.";
2391
- }
2392
- return null;
2393
- };
2394
- TerraDataSubsetter.styles = [component_styles_default, data_subsetter_styles_default];
2395
- TerraDataSubsetter.dependencies = {
2396
- "terra-accordion": TerraAccordion,
2397
- "terra-date-picker": TerraDatePicker,
2398
- "terra-icon": TerraIcon,
2399
- "terra-input": TerraInput,
2400
- "terra-spatial-picker": TerraSpatialPicker,
2401
- "terra-login": TerraLogin,
2402
- "terra-loader": TerraLoader,
2403
- "terra-data-access": TerraDataAccess,
2404
- "terra-dialog": TerraDialog,
2405
- "terra-dropdown": TerraDropdown,
2406
- "terra-menu": TerraMenu,
2407
- "terra-menu-item": TerraMenuItem,
2408
- "terra-button": TerraButton,
2409
- "terra-alert": TerraAlert,
2410
- "terra-slider": TerraSlider
2411
- };
2412
- __decorateClass([
2413
- n({ reflect: true, attribute: "collection-entry-id" })
2414
- ], TerraDataSubsetter.prototype, "collectionEntryId", 2);
2415
- __decorateClass([
2416
- n({ reflect: true, attribute: "short-name" })
2417
- ], TerraDataSubsetter.prototype, "shortName", 2);
2418
- __decorateClass([
2419
- n({ reflect: true, attribute: "version" })
2420
- ], TerraDataSubsetter.prototype, "version", 2);
2421
- __decorateClass([
2422
- n({
2423
- reflect: true,
2424
- type: Boolean,
2425
- attribute: "show-collection-search"
2426
- })
2427
- ], TerraDataSubsetter.prototype, "showCollectionSearch", 2);
2428
- __decorateClass([
2429
- n({ reflect: true, type: Boolean, attribute: "show-history-panel" })
2430
- ], TerraDataSubsetter.prototype, "showHistoryPanel", 2);
2431
- __decorateClass([
2432
- n({ reflect: true, attribute: "job-id" })
2433
- ], TerraDataSubsetter.prototype, "jobId", 2);
2434
- __decorateClass([
2435
- n({ attribute: "bearer-token" })
2436
- ], TerraDataSubsetter.prototype, "bearerToken", 2);
2437
- __decorateClass([
2438
- n()
2439
- ], TerraDataSubsetter.prototype, "features", 2);
2440
- __decorateClass([
2441
- n({ reflect: true })
2442
- ], TerraDataSubsetter.prototype, "dialog", 2);
2443
- __decorateClass([
2444
- n({ reflect: true, type: Boolean, attribute: "is-history-view" })
2445
- ], TerraDataSubsetter.prototype, "isHistoryView", 2);
2446
- __decorateClass([
2447
- r()
2448
- ], TerraDataSubsetter.prototype, "collectionWithServices", 2);
2449
- __decorateClass([
2450
- r()
2451
- ], TerraDataSubsetter.prototype, "selectedVariables", 2);
2452
- __decorateClass([
2453
- r()
2454
- ], TerraDataSubsetter.prototype, "selectedDimensionIndexes", 2);
2455
- __decorateClass([
2456
- r()
2457
- ], TerraDataSubsetter.prototype, "expandedVariableGroups", 2);
2458
- __decorateClass([
2459
- r()
2460
- ], TerraDataSubsetter.prototype, "variableFilterText", 2);
2461
- __decorateClass([
2462
- r()
2463
- ], TerraDataSubsetter.prototype, "touchedFields", 2);
2464
- __decorateClass([
2465
- r()
2466
- ], TerraDataSubsetter.prototype, "spatialSelection", 2);
2467
- __decorateClass([
2468
- r()
2469
- ], TerraDataSubsetter.prototype, "selectedDateRange", 2);
2470
- __decorateClass([
2471
- r()
2472
- ], TerraDataSubsetter.prototype, "selectedFormat", 2);
2473
- __decorateClass([
2474
- r()
2475
- ], TerraDataSubsetter.prototype, "cancelingGetData", 2);
2476
- __decorateClass([
2477
- r()
2478
- ], TerraDataSubsetter.prototype, "selectedTab", 2);
2479
- __decorateClass([
2480
- r()
2481
- ], TerraDataSubsetter.prototype, "refineParameters", 2);
2482
- __decorateClass([
2483
- r()
2484
- ], TerraDataSubsetter.prototype, "collectionSearchType", 2);
2485
- __decorateClass([
2486
- r()
2487
- ], TerraDataSubsetter.prototype, "collectionSearchQuery", 2);
2488
- __decorateClass([
2489
- r()
2490
- ], TerraDataSubsetter.prototype, "collectionSearchLoading", 2);
2491
- __decorateClass([
2492
- r()
2493
- ], TerraDataSubsetter.prototype, "collectionSearchResults", 2);
2494
- __decorateClass([
2495
- r()
2496
- ], TerraDataSubsetter.prototype, "collectionLoading", 2);
2497
- __decorateClass([
2498
- r()
2499
- ], TerraDataSubsetter.prototype, "collectionAccordionOpen", 2);
2500
- __decorateClass([
2501
- r()
2502
- ], TerraDataSubsetter.prototype, "dataAccessMode", 2);
2503
- __decorateClass([
2504
- r()
2505
- ], TerraDataSubsetter.prototype, "validationError", 2);
2506
- __decorateClass([
2507
- r()
2508
- ], TerraDataSubsetter.prototype, "granuleMinDate", 2);
2509
- __decorateClass([
2510
- r()
2511
- ], TerraDataSubsetter.prototype, "granuleMaxDate", 2);
2512
- __decorateClass([
2513
- r()
2514
- ], TerraDataSubsetter.prototype, "giovanniConfiguredVariables", 2);
2515
- __decorateClass([
2516
- e('[part~="spatial-picker"]')
2517
- ], TerraDataSubsetter.prototype, "spatialPicker", 2);
2518
- __decorateClass([
2519
- e("terra-dialog")
2520
- ], TerraDataSubsetter.prototype, "dialogElement", 2);
2521
- __decorateClass([
2522
- watch(["jobId"], { waitUntilFirstUpdate: true })
2523
- ], TerraDataSubsetter.prototype, "jobIdChanged", 1);
2524
- __decorateClass([
2525
- watch(["shortName", "version"])
2526
- ], TerraDataSubsetter.prototype, "shortNameAndVersionChanged", 1);
2527
- __decorateClass([
2528
- watch("collectionEntryId", { waitUntilFirstUpdate: true })
2529
- ], TerraDataSubsetter.prototype, "collectionEntryIdChanged", 1);
2530
- __decorateClass([
2531
- watch(["collectionWithServices"])
2532
- ], TerraDataSubsetter.prototype, "collectionChanged", 1);
2533
- __decorateClass([
2534
- watch(["granuleMinDate", "granuleMaxDate"])
2535
- ], TerraDataSubsetter.prototype, "granuleDatesChanged", 1);
2536
- __decorateClass([
2537
- watch("selectedFormat")
2538
- ], TerraDataSubsetter.prototype, "selectedFormatChanged", 1);
2539
- __decorateClass([
2540
- debounce(500)
2541
- ], TerraDataSubsetter.prototype, "handleCollectionSearch", 1);
2542
-
2543
- export {
2544
- TerraDataSubsetter
2545
- };