@nasa-terra/components 0.0.68 → 0.0.69

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 (536) hide show
  1. package/cdn/chunks/{chunk.TJWGQR3Y.js → chunk.3FZ6AEEA.js} +2 -2
  2. package/cdn/chunks/{chunk.UA57XIMB.js → chunk.3JI4ZASI.js} +1 -1
  3. package/cdn/chunks/{chunk.LZSKCTIU.js → chunk.3SQ33WJL.js} +6 -6
  4. package/cdn/chunks/{chunk.HP52P3QK.js → chunk.4IJQVKJY.js} +1 -1
  5. package/cdn/chunks/{chunk.EPQBAMGN.js → chunk.4JJYLS5O.js} +1 -1
  6. package/cdn/chunks/{chunk.LF5NNQDS.js → chunk.4NJFWJSE.js} +1 -1
  7. package/cdn/chunks/{chunk.CGIR4OSR.js → chunk.55LGBI57.js} +1 -1
  8. package/cdn/chunks/{chunk.ELVU6MXJ.js → chunk.5FAYR3PP.js} +1 -1
  9. package/cdn/chunks/{chunk.YMKCGXI7.js → chunk.5IAG4NBE.js} +1 -1
  10. package/cdn/chunks/{chunk.42OJJSTJ.js → chunk.5IC6HAC4.js} +12 -12
  11. package/cdn/chunks/{chunk.7OS7YKP4.js → chunk.5OGMADCK.js} +1 -1
  12. package/cdn/chunks/{chunk.JIGZ6E5V.js → chunk.62Z55X5S.js} +1 -1
  13. package/cdn/chunks/{chunk.XQNQJ73Y.js → chunk.6LUTXGKW.js} +7 -7
  14. package/cdn/chunks/{chunk.PDAOAQE4.js → chunk.6XY3FOMX.js} +5 -5
  15. package/cdn/chunks/{chunk.267X6M4K.js → chunk.73KDDHAO.js} +1 -1
  16. package/cdn/chunks/{chunk.SJHEJ7W7.js → chunk.7DLSKRXG.js} +1 -1
  17. package/cdn/chunks/{chunk.SJYXIRDX.js → chunk.7KKYYPTM.js} +1 -1
  18. package/cdn/chunks/{chunk.VGHXDEZO.js → chunk.7XRTJKVT.js} +1 -1
  19. package/cdn/chunks/{chunk.XKNIRUTP.js → chunk.B3D77BQY.js} +4 -4
  20. package/cdn/chunks/{chunk.BXZG34AL.js → chunk.BMOKXC64.js} +1 -1
  21. package/cdn/chunks/{chunk.LF2YS25X.js → chunk.BXQBOSBQ.js} +5 -5
  22. package/cdn/chunks/{chunk.Z5SQ4THO.js → chunk.CA5KUDEK.js} +1 -1
  23. package/cdn/chunks/{chunk.SLDPYP3J.js → chunk.CJDPXSOE.js} +1 -1
  24. package/cdn/chunks/{chunk.5KFA2A5F.js → chunk.DVCD6CI3.js} +1 -1
  25. package/cdn/chunks/{chunk.I2VFSA6U.js → chunk.E4AHIY7H.js} +1 -1
  26. package/cdn/chunks/{chunk.VYDVYEG6.js → chunk.F3KEUZZJ.js} +1 -1
  27. package/cdn/chunks/{chunk.U7VIR3OC.js → chunk.FCI4XD47.js} +8 -8
  28. package/cdn/chunks/{chunk.DKQUCHXW.js → chunk.FDBCRQUW.js} +1 -1
  29. package/cdn/chunks/{chunk.NT4JROIJ.js → chunk.H4M7ZCA7.js} +1 -1
  30. package/cdn/chunks/{chunk.5IYUIO2L.js → chunk.HCCWZHVO.js} +1 -1
  31. package/cdn/chunks/{chunk.BDUFTI77.js → chunk.HNZF3Q35.js} +1 -1
  32. package/cdn/chunks/{chunk.MN7UEWGN.js → chunk.I6RVBJLO.js} +1 -1
  33. package/cdn/chunks/{chunk.3NBSKUOT.js → chunk.ICVZZZVO.js} +1 -1
  34. package/cdn/chunks/{chunk.F26HLQPA.js → chunk.II2ED6UA.js} +4 -4
  35. package/cdn/chunks/{chunk.F6FOZL2X.js → chunk.IOD5Z3JD.js} +1 -1
  36. package/cdn/chunks/{chunk.FT6FCCXU.js → chunk.IYBWQUJZ.js} +6 -6
  37. package/cdn/chunks/{chunk.YNJENG4F.js → chunk.JMHRTVJH.js} +1 -1
  38. package/cdn/chunks/{chunk.UEDKVSIH.js → chunk.JR4LSDMW.js} +1 -1
  39. package/cdn/chunks/{chunk.VDOKMZL7.js → chunk.JTUBHUKA.js} +5 -5
  40. package/cdn/chunks/{chunk.SX6OLRTC.js → chunk.KFVXZS3X.js} +11 -11
  41. package/cdn/chunks/{chunk.563FCLVE.js → chunk.KGLHY4PU.js} +1 -1
  42. package/cdn/chunks/{chunk.37HJNI4K.js → chunk.KNB73C5F.js} +7 -7
  43. package/cdn/chunks/{chunk.MB27YSID.js → chunk.L2AOHBBQ.js} +1 -1
  44. package/cdn/chunks/{chunk.LRHEF6JN.js → chunk.L2ZNA62Y.js} +1 -1
  45. package/cdn/chunks/{chunk.ZNKT2Q6X.js → chunk.LFAGYZ3O.js} +2 -2
  46. package/cdn/chunks/{chunk.J5OQO7FQ.js → chunk.LNEFGXPD.js} +1 -1
  47. package/cdn/chunks/{chunk.UHOMZS5K.js → chunk.LP7NLHLL.js} +17 -17
  48. package/cdn/chunks/{chunk.ZBRNWBWX.js → chunk.M4EODEDC.js} +1 -1
  49. package/cdn/chunks/{chunk.HMS35ZFE.js → chunk.MUYS3VLW.js} +1 -1
  50. package/cdn/chunks/{chunk.KFMZHBMX.js → chunk.NGAJRQJB.js} +1 -1
  51. package/cdn/chunks/{chunk.UMT2LQ4W.js → chunk.NQLMKYED.js} +1 -1
  52. package/cdn/chunks/{chunk.RJR6I3VL.js → chunk.NYDLL72U.js} +1 -1
  53. package/cdn/chunks/{chunk.ZAROXC53.js → chunk.OLYROLKH.js} +1 -1
  54. package/cdn/chunks/{chunk.7MLJ7J6F.js → chunk.OMW7ULTP.js} +1 -1
  55. package/cdn/chunks/{chunk.2O6ZLP2H.js → chunk.OSXIXZKE.js} +1 -1
  56. package/cdn/chunks/{chunk.H4KNN2HU.js → chunk.PLLTEKKU.js} +1 -1
  57. package/cdn/chunks/{chunk.HVXUUXZ7.js → chunk.RJBYTRM2.js} +4 -4
  58. package/cdn/chunks/{chunk.RF7RG72G.js → chunk.SJ7O6QI3.js} +1 -1
  59. package/cdn/chunks/{chunk.ZZMMULOM.js → chunk.TSU53YSH.js} +1 -1
  60. package/cdn/chunks/{chunk.UO6SHH3I.js → chunk.U243QYHF.js} +1 -1
  61. package/cdn/chunks/{chunk.T33FEXFP.js → chunk.UAC2MIRZ.js} +10 -10
  62. package/cdn/chunks/{chunk.2UTYN7TH.js → chunk.VBKBOPQR.js} +1 -1
  63. package/cdn/chunks/{chunk.UKT47BLY.js → chunk.VKXE3YUS.js} +2 -2
  64. package/cdn/chunks/{chunk.YQRTSELX.js → chunk.VNCMA65E.js} +1 -1
  65. package/cdn/chunks/{chunk.BLILGPHT.js → chunk.WEEDF4SQ.js} +8 -8
  66. package/cdn/chunks/{chunk.A5QNIXR4.js → chunk.WIHL6X6I.js} +1 -1
  67. package/cdn/chunks/{chunk.WXFIXIOS.js → chunk.WJGGDK46.js} +1 -1
  68. package/cdn/chunks/{chunk.DLTRS5SJ.js → chunk.WOERWJEG.js} +1 -1
  69. package/cdn/chunks/{chunk.QI3YAMIR.js → chunk.WWFZDE2Z.js} +1 -1
  70. package/cdn/chunks/{chunk.7TSM56FT.js → chunk.X3DN6UYC.js} +1 -1
  71. package/cdn/chunks/{chunk.TU7POBNP.js → chunk.XR5EZIHP.js} +1 -1
  72. package/cdn/chunks/{chunk.6YSGUTCT.js → chunk.YIEN3BZP.js} +1 -1
  73. package/cdn/chunks/{chunk.PX3KFYMT.js → chunk.YRVGQ5QO.js} +1 -1
  74. package/cdn/chunks/{chunk.Z3FCGMJE.js → chunk.YUZHTH3D.js} +1 -1
  75. package/cdn/chunks/{chunk.QVPRK545.js → chunk.ZB4I7IRN.js} +2 -2
  76. package/cdn/chunks/{chunk.4RM2EJEW.js → chunk.ZKDNJM5P.js} +4 -4
  77. package/cdn/chunks/{chunk.VUJ26IHB.js → chunk.ZW5L75IK.js} +1 -1
  78. package/cdn/components/accordion/accordion.component.js +5 -5
  79. package/cdn/components/accordion/accordion.js +6 -6
  80. package/cdn/components/alert/alert.component.js +3 -3
  81. package/cdn/components/alert/alert.js +4 -4
  82. package/cdn/components/browse-variables/browse-variables.component.js +17 -17
  83. package/cdn/components/browse-variables/browse-variables.controller.js +1 -1
  84. package/cdn/components/browse-variables/browse-variables.js +18 -18
  85. package/cdn/components/button/button.component.js +2 -2
  86. package/cdn/components/button/button.js +3 -3
  87. package/cdn/components/chip/chip.component.js +2 -2
  88. package/cdn/components/chip/chip.js +3 -3
  89. package/cdn/components/combobox/combobox.component.js +6 -6
  90. package/cdn/components/combobox/combobox.js +7 -7
  91. package/cdn/components/data-rods/data-rods.component.js +31 -31
  92. package/cdn/components/data-rods/data-rods.js +32 -32
  93. package/cdn/components/data-subsetter/data-subsetter.component.js +23 -23
  94. package/cdn/components/data-subsetter/data-subsetter.controller.js +2 -2
  95. package/cdn/components/data-subsetter/data-subsetter.js +24 -24
  96. package/cdn/components/data-subsetter-history/data-subsetter-history.component.js +25 -25
  97. package/cdn/components/data-subsetter-history/data-subsetter-history.js +26 -26
  98. package/cdn/components/date-picker/date-picker.component.js +3 -3
  99. package/cdn/components/date-picker/date-picker.js +4 -4
  100. package/cdn/components/date-range-slider/date-range-slider.component.js +3 -3
  101. package/cdn/components/date-range-slider/date-range-slider.js +4 -4
  102. package/cdn/components/dialog/dialog.component.js +2 -2
  103. package/cdn/components/dialog/dialog.js +3 -3
  104. package/cdn/components/icon/icon.component.js +3 -3
  105. package/cdn/components/icon/icon.js +4 -4
  106. package/cdn/components/loader/loader.component.js +2 -2
  107. package/cdn/components/loader/loader.js +3 -3
  108. package/cdn/components/login/login.component.js +13 -13
  109. package/cdn/components/login/login.js +14 -14
  110. package/cdn/components/map/map.component.js +4 -4
  111. package/cdn/components/map/map.js +5 -5
  112. package/cdn/components/plot/plot.component.js +3 -3
  113. package/cdn/components/plot/plot.js +4 -4
  114. package/cdn/components/plot-toolbar/plot-toolbar.component.js +10 -10
  115. package/cdn/components/plot-toolbar/plot-toolbar.js +11 -11
  116. package/cdn/components/skeleton/skeleton.component.js +6 -6
  117. package/cdn/components/skeleton/skeleton.js +7 -7
  118. package/cdn/components/spatial-picker/spatial-picker.component.js +5 -5
  119. package/cdn/components/spatial-picker/spatial-picker.js +6 -6
  120. package/cdn/components/time-average-map/time-average-map.component.js +14 -14
  121. package/cdn/components/time-average-map/time-average-map.controller.js +2 -2
  122. package/cdn/components/time-average-map/time-average-map.js +15 -15
  123. package/cdn/components/time-series/time-series.component.js +19 -19
  124. package/cdn/components/time-series/time-series.controller.js +2 -2
  125. package/cdn/components/time-series/time-series.js +20 -20
  126. package/cdn/components/variable-combobox/lib.js +3 -3
  127. package/cdn/components/variable-combobox/variable-combobox.component.js +15 -15
  128. package/cdn/components/variable-combobox/variable-combobox.controller.js +4 -4
  129. package/cdn/components/variable-combobox/variable-combobox.js +16 -16
  130. package/cdn/components/variable-keyword-search/variable-keyword-search.component.js +13 -13
  131. package/cdn/components/variable-keyword-search/variable-keyword-search.controller.js +1 -1
  132. package/cdn/components/variable-keyword-search/variable-keyword-search.js +14 -14
  133. package/cdn/custom-elements.json +916 -916
  134. package/cdn/react/accordion/index.js +6 -6
  135. package/cdn/react/alert/index.js +4 -4
  136. package/cdn/react/browse-variables/index.js +18 -18
  137. package/cdn/react/button/index.js +3 -3
  138. package/cdn/react/chip/index.js +3 -3
  139. package/cdn/react/combobox/index.js +7 -7
  140. package/cdn/react/data-rods/index.js +32 -32
  141. package/cdn/react/data-subsetter/index.js +24 -24
  142. package/cdn/react/data-subsetter-history/index.js +26 -26
  143. package/cdn/react/date-picker/index.js +4 -4
  144. package/cdn/react/date-range-slider/index.js +4 -4
  145. package/cdn/react/dialog/index.js +3 -3
  146. package/cdn/react/icon/index.js +4 -4
  147. package/cdn/react/index.d.ts +5 -5
  148. package/cdn/react/index.js +92 -92
  149. package/cdn/react/loader/index.js +3 -3
  150. package/cdn/react/login/index.js +14 -14
  151. package/cdn/react/map/index.js +5 -5
  152. package/cdn/react/plot/index.js +4 -4
  153. package/cdn/react/plot-toolbar/index.js +11 -11
  154. package/cdn/react/skeleton/index.js +7 -7
  155. package/cdn/react/spatial-picker/index.js +6 -6
  156. package/cdn/react/time-average-map/index.js +15 -15
  157. package/cdn/react/time-series/index.js +20 -20
  158. package/cdn/react/variable-combobox/index.js +16 -16
  159. package/cdn/react/variable-keyword-search/index.js +14 -14
  160. package/cdn/terra-ui-components.js +94 -94
  161. package/cdn/types/vue/index.d.ts +86 -86
  162. package/cdn/utilities/animation.js +4 -4
  163. package/cdn/vscode.html-custom-data.json +67 -67
  164. package/cdn/web-types.json +170 -170
  165. package/dist/chunks/{chunk.NLADA7XK.js → chunk.26V7ZPS4.js} +1 -1
  166. package/dist/chunks/{chunk.GUYBX63F.js → chunk.2ZMKPLX6.js} +1 -1
  167. package/{cdn/chunks/chunk.L2M2AJ4W.js → dist/chunks/chunk.37M5YK3W.js} +1 -1
  168. package/dist/chunks/{chunk.TJGA66AX.js → chunk.4LKXRKXL.js} +1 -1
  169. package/{cdn/chunks/chunk.OBANVLY7.js → dist/chunks/chunk.4WRLOQLA.js} +1 -1
  170. package/{cdn/chunks/chunk.RJUTQBOV.js → dist/chunks/chunk.5JOGO4GR.js} +1 -1
  171. package/{cdn/chunks/chunk.RDID3JKQ.js → dist/chunks/chunk.6PSK3KPO.js} +1 -1
  172. package/dist/chunks/{chunk.JOTLSXEI.js → chunk.6RSLYKTT.js} +1 -1
  173. package/dist/chunks/{chunk.JOFHFGQP.js → chunk.6SQICGVV.js} +1 -1
  174. package/{cdn/chunks/chunk.OX5IY75Y.js → dist/chunks/chunk.6VUQH3BO.js} +1 -1
  175. package/dist/chunks/{chunk.IJC2KB5R.js → chunk.743LAY5Q.js} +1 -1
  176. package/dist/chunks/{chunk.LQOZT7TL.js → chunk.75O4JWZW.js} +5 -5
  177. package/dist/chunks/{chunk.42V23REY.js → chunk.7BTWKWFZ.js} +1 -1
  178. package/{cdn/chunks/chunk.YP5DVLJS.js → dist/chunks/chunk.7D4GSZCV.js} +1 -1
  179. package/dist/chunks/{chunk.GGRGK2NT.js → chunk.ALR4V5FX.js} +5 -5
  180. package/{cdn/chunks/chunk.YIP3L3SE.js → dist/chunks/chunk.ASC4SJ6R.js} +1 -1
  181. package/dist/chunks/{chunk.2BW4SOWQ.js → chunk.AU63C56Q.js} +1 -1
  182. package/{cdn/chunks/chunk.AU4MMC6N.js → dist/chunks/chunk.BCP7S3X7.js} +1 -1
  183. package/dist/chunks/{chunk.IFHDVWGZ.js → chunk.BNHHBTWD.js} +4 -4
  184. package/dist/chunks/{chunk.4SUQPJ6R.js → chunk.BP3OEUJG.js} +1 -1
  185. package/{cdn/chunks/chunk.RVH4PSND.js → dist/chunks/chunk.BYY32NG2.js} +7 -7
  186. package/{cdn/chunks/chunk.MFI2M54Y.js → dist/chunks/chunk.C2ZEQSEZ.js} +2 -2
  187. package/{cdn/chunks/chunk.AHGKSSSI.js → dist/chunks/chunk.CN4EXXGY.js} +5 -5
  188. package/dist/chunks/{chunk.5TZQDEBJ.js → chunk.D6G7W3DM.js} +1 -1
  189. package/{cdn/chunks/chunk.PRQ5P3TK.js → dist/chunks/chunk.DDBGX2TO.js} +1 -1
  190. package/{cdn/chunks/chunk.642Z3X7N.js → dist/chunks/chunk.DKFYGH3L.js} +1 -1
  191. package/{cdn/chunks/chunk.X7MVYC7B.js → dist/chunks/chunk.DTTIVMQV.js} +1 -1
  192. package/{cdn/chunks/chunk.SWDQJJ7Q.js → dist/chunks/chunk.DUBH3JNT.js} +1 -1
  193. package/dist/chunks/{chunk.4WKVINLB.js → chunk.EBOWM2DU.js} +1 -1
  194. package/{cdn/chunks/chunk.WXZHDVQ3.js → dist/chunks/chunk.EMLBLKQD.js} +1 -1
  195. package/{cdn/chunks/chunk.QHY2BYL4.js → dist/chunks/chunk.EYPCLMGV.js} +1 -1
  196. package/{cdn/chunks/chunk.PA5O6555.js → dist/chunks/chunk.FFDFWWEB.js} +1 -1
  197. package/dist/chunks/{chunk.2WYXDPGS.js → chunk.FKDPQ5GW.js} +1 -1
  198. package/{cdn/chunks/chunk.QNNEWLT7.js → dist/chunks/chunk.FMFVFTOQ.js} +1 -1
  199. package/{cdn/chunks/chunk.H73IKOBV.js → dist/chunks/chunk.FYR4FP7W.js} +1 -1
  200. package/{cdn/chunks/chunk.URKW2CME.js → dist/chunks/chunk.G2IQVPB7.js} +1 -1
  201. package/dist/chunks/{chunk.FF3EIVF2.js → chunk.G6IJFGY6.js} +1 -1
  202. package/{cdn/chunks/chunk.SRBWEFVT.js → dist/chunks/chunk.HP6ZZIC6.js} +1 -1
  203. package/{cdn/chunks/chunk.2OQZA3CW.js → dist/chunks/chunk.I5KW33O3.js} +1 -1
  204. package/dist/chunks/{chunk.4E55SLUR.js → chunk.IT3QXCNY.js} +1 -1
  205. package/{cdn/chunks/chunk.EBJUC35J.js → dist/chunks/chunk.JALYRVQR.js} +1 -1
  206. package/{cdn/chunks/chunk.ERXCYNDC.js → dist/chunks/chunk.K3KSX5PF.js} +1 -1
  207. package/{cdn/chunks/chunk.RBVJJWF4.js → dist/chunks/chunk.K5ZPXI35.js} +1 -1
  208. package/dist/chunks/{chunk.BRVCFRLF.js → chunk.K66IQUBI.js} +1 -1
  209. package/dist/chunks/{chunk.3H5ZUQL5.js → chunk.KLJHGS6C.js} +9 -9
  210. package/dist/chunks/{chunk.UDCRU3NE.js → chunk.MZ7EYOT2.js} +1 -1
  211. package/{cdn/chunks/chunk.64ARWPHU.js → dist/chunks/chunk.OQ6SJHS5.js} +1 -1
  212. package/{cdn/chunks/chunk.FNTPKP6P.js → dist/chunks/chunk.OVXHDE6T.js} +6 -6
  213. package/{cdn/chunks/chunk.OY5R7EVO.js → dist/chunks/chunk.P7PWPHUY.js} +1 -1
  214. package/dist/chunks/{chunk.PAJVTERU.js → chunk.PCMPWRYJ.js} +1 -1
  215. package/dist/chunks/{chunk.TSIWRLNC.js → chunk.PSD2VZSB.js} +1 -1
  216. package/{cdn/chunks/chunk.P6OOV5UQ.js → dist/chunks/chunk.PT4DIXWP.js} +1 -1
  217. package/dist/chunks/{chunk.4EIGF3E4.js → chunk.Q4R3537E.js} +3 -3
  218. package/dist/chunks/{chunk.MKU7QBFN.js → chunk.QFNQINHO.js} +1 -1
  219. package/dist/chunks/{chunk.5QKVNNUH.js → chunk.QSUL47CQ.js} +5 -5
  220. package/{cdn/chunks/chunk.OVUWZWWN.js → dist/chunks/chunk.R5AO3NVL.js} +3 -3
  221. package/{cdn/chunks/chunk.2GEN6UCO.js → dist/chunks/chunk.SKL6FUWM.js} +1 -1
  222. package/dist/chunks/{chunk.NQYUJ7FK.js → chunk.T23NXW3N.js} +1 -1
  223. package/{cdn/chunks/chunk.2LGINANI.js → dist/chunks/chunk.TNBSVB25.js} +1 -1
  224. package/dist/chunks/{chunk.H2UQBMCX.js → chunk.US5SMFVR.js} +1 -1
  225. package/dist/chunks/{chunk.A7GHUUVY.js → chunk.V4PVPKFS.js} +1 -1
  226. package/dist/chunks/{chunk.GL5HOXON.js → chunk.VAPVESWR.js} +1 -1
  227. package/{cdn/chunks/chunk.JHEFOGNL.js → dist/chunks/chunk.VKLXRQIG.js} +1 -1
  228. package/{cdn/chunks/chunk.3XJ5QNGT.js → dist/chunks/chunk.W3ASID7S.js} +1 -1
  229. package/dist/chunks/{chunk.2AIVKD54.js → chunk.W3JGEHKY.js} +1 -1
  230. package/dist/chunks/{chunk.Y7ZED6A4.js → chunk.WFNNFLKW.js} +1 -1
  231. package/dist/chunks/{chunk.B6JXOXP5.js → chunk.WKZGPPFO.js} +13 -13
  232. package/dist/chunks/{chunk.MEMNTMV2.js → chunk.WUERN5LU.js} +2 -2
  233. package/dist/chunks/{chunk.L7RNO3FR.js → chunk.XHROUW2S.js} +1 -1
  234. package/{cdn/chunks/chunk.CA2ZDE2M.js → dist/chunks/chunk.YS4V4GNL.js} +1 -1
  235. package/dist/chunks/{chunk.GQRGC6YW.js → chunk.Z47GILML.js} +1 -1
  236. package/{cdn/chunks/chunk.ADFWUZLL.js → dist/chunks/chunk.Z5RZBPUO.js} +1 -1
  237. package/dist/chunks/{chunk.YMHBYV33.js → chunk.Z73RODDQ.js} +10 -10
  238. package/dist/chunks/{chunk.HUX2RF6U.js → chunk.ZOOMTF4P.js} +1 -1
  239. package/dist/components/accordion/accordion.component.js +4 -4
  240. package/dist/components/accordion/accordion.js +5 -5
  241. package/dist/components/alert/alert.component.js +3 -3
  242. package/dist/components/alert/alert.js +4 -4
  243. package/dist/components/browse-variables/browse-variables.component.js +11 -11
  244. package/dist/components/browse-variables/browse-variables.js +12 -12
  245. package/dist/components/button/button.component.js +2 -2
  246. package/dist/components/button/button.js +3 -3
  247. package/dist/components/chip/chip.component.js +2 -2
  248. package/dist/components/chip/chip.js +3 -3
  249. package/dist/components/combobox/combobox.component.js +2 -2
  250. package/dist/components/combobox/combobox.js +3 -3
  251. package/dist/components/data-rods/data-rods.component.js +22 -22
  252. package/dist/components/data-rods/data-rods.js +23 -23
  253. package/dist/components/data-subsetter/data-subsetter.component.js +17 -17
  254. package/dist/components/data-subsetter/data-subsetter.js +18 -18
  255. package/dist/components/data-subsetter-history/data-subsetter-history.component.js +19 -19
  256. package/dist/components/data-subsetter-history/data-subsetter-history.js +20 -20
  257. package/dist/components/date-picker/date-picker.component.js +3 -3
  258. package/dist/components/date-picker/date-picker.js +4 -4
  259. package/dist/components/date-range-slider/date-range-slider.component.js +3 -3
  260. package/dist/components/date-range-slider/date-range-slider.js +4 -4
  261. package/dist/components/dialog/dialog.component.js +2 -2
  262. package/dist/components/dialog/dialog.js +3 -3
  263. package/dist/components/icon/icon.component.js +2 -2
  264. package/dist/components/icon/icon.js +3 -3
  265. package/dist/components/loader/loader.component.js +2 -2
  266. package/dist/components/loader/loader.js +3 -3
  267. package/dist/components/login/login.component.js +10 -10
  268. package/dist/components/login/login.js +11 -11
  269. package/dist/components/map/map.component.js +2 -2
  270. package/dist/components/map/map.js +3 -3
  271. package/dist/components/plot/plot.component.js +2 -2
  272. package/dist/components/plot/plot.js +3 -3
  273. package/dist/components/plot-toolbar/plot-toolbar.component.js +6 -6
  274. package/dist/components/plot-toolbar/plot-toolbar.js +7 -7
  275. package/dist/components/skeleton/skeleton.component.js +2 -2
  276. package/dist/components/skeleton/skeleton.js +3 -3
  277. package/dist/components/spatial-picker/spatial-picker.component.js +3 -3
  278. package/dist/components/spatial-picker/spatial-picker.js +4 -4
  279. package/dist/components/time-average-map/time-average-map.component.js +8 -8
  280. package/dist/components/time-average-map/time-average-map.js +9 -9
  281. package/dist/components/time-series/time-series.component.js +13 -13
  282. package/dist/components/time-series/time-series.js +14 -14
  283. package/dist/components/variable-combobox/variable-combobox.component.js +8 -8
  284. package/dist/components/variable-combobox/variable-combobox.js +9 -9
  285. package/dist/components/variable-keyword-search/variable-keyword-search.component.js +8 -8
  286. package/dist/components/variable-keyword-search/variable-keyword-search.js +9 -9
  287. package/dist/custom-elements.json +916 -916
  288. package/dist/react/accordion/index.js +5 -5
  289. package/dist/react/alert/index.js +4 -4
  290. package/dist/react/browse-variables/index.js +12 -12
  291. package/dist/react/button/index.js +3 -3
  292. package/dist/react/chip/index.js +3 -3
  293. package/dist/react/combobox/index.js +3 -3
  294. package/dist/react/data-rods/index.js +23 -23
  295. package/dist/react/data-subsetter/index.js +18 -18
  296. package/dist/react/data-subsetter-history/index.js +20 -20
  297. package/dist/react/date-picker/index.js +4 -4
  298. package/dist/react/date-range-slider/index.js +4 -4
  299. package/dist/react/dialog/index.js +3 -3
  300. package/dist/react/icon/index.js +3 -3
  301. package/dist/react/index.d.ts +5 -5
  302. package/dist/react/index.js +80 -80
  303. package/dist/react/loader/index.js +3 -3
  304. package/dist/react/login/index.js +11 -11
  305. package/dist/react/map/index.js +3 -3
  306. package/dist/react/plot/index.js +3 -3
  307. package/dist/react/plot-toolbar/index.js +7 -7
  308. package/dist/react/skeleton/index.js +3 -3
  309. package/dist/react/spatial-picker/index.js +4 -4
  310. package/dist/react/time-average-map/index.js +9 -9
  311. package/dist/react/time-series/index.js +14 -14
  312. package/dist/react/variable-combobox/index.js +9 -9
  313. package/dist/react/variable-keyword-search/index.js +9 -9
  314. package/dist/terra-ui-components.js +81 -81
  315. package/dist/{terra_ui_components-0.0.68-py3-none-any.whl → terra_ui_components-0.0.69-py3-none-any.whl} +0 -0
  316. package/dist/{terra_ui_components-0.0.68.tar.gz → terra_ui_components-0.0.69.tar.gz} +0 -0
  317. package/dist/types/vue/index.d.ts +86 -86
  318. package/dist/vscode.html-custom-data.json +67 -67
  319. package/dist/web-types.json +170 -170
  320. package/package.json +1 -1
  321. package/cdn/chunks/chunk.2AIVKD54.js +0 -214
  322. package/cdn/chunks/chunk.2BW4SOWQ.js +0 -11
  323. package/cdn/chunks/chunk.2EYRPHGL.js +0 -10
  324. package/cdn/chunks/chunk.2WYXDPGS.js +0 -11
  325. package/cdn/chunks/chunk.3GLMJLNY.js +0 -139
  326. package/cdn/chunks/chunk.3H5ZUQL5.js +0 -498
  327. package/cdn/chunks/chunk.3L77HLPZ.js +0 -88
  328. package/cdn/chunks/chunk.3PUTIFOP.js +0 -35
  329. package/cdn/chunks/chunk.42V23REY.js +0 -21
  330. package/cdn/chunks/chunk.445A7YVG.js +0 -271
  331. package/cdn/chunks/chunk.4E55SLUR.js +0 -11
  332. package/cdn/chunks/chunk.4EIGF3E4.js +0 -470
  333. package/cdn/chunks/chunk.4MGGBJBD.js +0 -20
  334. package/cdn/chunks/chunk.4WKVINLB.js +0 -11
  335. package/cdn/chunks/chunk.5ASTHFQ2.js +0 -950
  336. package/cdn/chunks/chunk.5QKVNNUH.js +0 -73
  337. package/cdn/chunks/chunk.5TZQDEBJ.js +0 -21
  338. package/cdn/chunks/chunk.6KIVAUVU.js +0 -124
  339. package/cdn/chunks/chunk.6VTAKEV4.js +0 -74
  340. package/cdn/chunks/chunk.7674U7FT.js +0 -215
  341. package/cdn/chunks/chunk.7AEQ2LX4.js +0 -335
  342. package/cdn/chunks/chunk.7CMA526Q.js +0 -14
  343. package/cdn/chunks/chunk.7RT5CEB6.js +0 -72
  344. package/cdn/chunks/chunk.A6D5MCCT.js +0 -123
  345. package/cdn/chunks/chunk.A7GHUUVY.js +0 -21
  346. package/cdn/chunks/chunk.AZXB7ZHM.js +0 -151
  347. package/cdn/chunks/chunk.B6JXOXP5.js +0 -348
  348. package/cdn/chunks/chunk.BEDYDFXT.js +0 -52
  349. package/cdn/chunks/chunk.BRVCFRLF.js +0 -21
  350. package/cdn/chunks/chunk.CIFC3RF3.js +0 -43
  351. package/cdn/chunks/chunk.D3DPGMVW.js +0 -222
  352. package/cdn/chunks/chunk.D3XI3L7Y.js +0 -55
  353. package/cdn/chunks/chunk.DTUHBE3U.js +0 -37
  354. package/cdn/chunks/chunk.E2WXLMWX.js +0 -0
  355. package/cdn/chunks/chunk.F3KBUEPT.js +0 -10
  356. package/cdn/chunks/chunk.F5AEDYTP.js +0 -37
  357. package/cdn/chunks/chunk.FF3EIVF2.js +0 -11
  358. package/cdn/chunks/chunk.FRSW4UHB.js +0 -268
  359. package/cdn/chunks/chunk.FUU57PWY.js +0 -36
  360. package/cdn/chunks/chunk.G6SMK5II.js +0 -19
  361. package/cdn/chunks/chunk.GL5HOXON.js +0 -202
  362. package/cdn/chunks/chunk.GMJWNAQG.js +0 -264
  363. package/cdn/chunks/chunk.GQRGC6YW.js +0 -11
  364. package/cdn/chunks/chunk.GUYBX63F.js +0 -108
  365. package/cdn/chunks/chunk.HKST5N6O.js +0 -21
  366. package/cdn/chunks/chunk.HNQMK3PU.js +0 -685
  367. package/cdn/chunks/chunk.HNWBSRBL.js +0 -43
  368. package/cdn/chunks/chunk.HUX2RF6U.js +0 -53
  369. package/cdn/chunks/chunk.HWZP2UTW.js +0 -49
  370. package/cdn/chunks/chunk.IC4T7CZD.js +0 -62
  371. package/cdn/chunks/chunk.IJC2KB5R.js +0 -25
  372. package/cdn/chunks/chunk.J25AAZTC.js +0 -21
  373. package/cdn/chunks/chunk.JOFHFGQP.js +0 -180
  374. package/cdn/chunks/chunk.JUQDLDHB.js +0 -139
  375. package/cdn/chunks/chunk.KIC5ZCAM.js +0 -63
  376. package/cdn/chunks/chunk.KLCOAQUS.js +0 -65
  377. package/cdn/chunks/chunk.KUSRVQBO.js +0 -20
  378. package/cdn/chunks/chunk.KXL6VOQP.js +0 -82
  379. package/cdn/chunks/chunk.L63WM7I3.js +0 -65
  380. package/cdn/chunks/chunk.LDCRCQNJ.js +0 -103
  381. package/cdn/chunks/chunk.M6X72F3Q.js +0 -373
  382. package/cdn/chunks/chunk.MGM5E2VQ.js +0 -98
  383. package/cdn/chunks/chunk.MQOXBVDK.js +0 -58
  384. package/cdn/chunks/chunk.NMWP5DQX.js +0 -259
  385. package/cdn/chunks/chunk.NQYUJ7FK.js +0 -24
  386. package/cdn/chunks/chunk.O6SXSDFR.js +0 -539
  387. package/cdn/chunks/chunk.O7SVDS2A.js +0 -11
  388. package/cdn/chunks/chunk.OJC754DG.js +0 -228
  389. package/cdn/chunks/chunk.P7EL7GKI.js +0 -41
  390. package/cdn/chunks/chunk.PAJVTERU.js +0 -357
  391. package/cdn/chunks/chunk.PBC3S6IG.js +0 -33
  392. package/cdn/chunks/chunk.PG4TSLWI.js +0 -78
  393. package/cdn/chunks/chunk.QAMFDZKG.js +0 -11
  394. package/cdn/chunks/chunk.QQQ2BD4U.js +0 -80
  395. package/cdn/chunks/chunk.QZS6UUDI.js +0 -277
  396. package/cdn/chunks/chunk.RZ3APMFR.js +0 -195
  397. package/cdn/chunks/chunk.SGFD3ORP.js +0 -293
  398. package/cdn/chunks/chunk.T53RBNNE.js +0 -519
  399. package/cdn/chunks/chunk.TCEJ3MS6.js +0 -97
  400. package/cdn/chunks/chunk.TJGA66AX.js +0 -25
  401. package/cdn/chunks/chunk.TVFCHGU3.js +0 -76
  402. package/cdn/chunks/chunk.UDCRU3NE.js +0 -120
  403. package/cdn/chunks/chunk.UT5XKCBV.js +0 -183
  404. package/cdn/chunks/chunk.UZAIWUWC.js +0 -8
  405. package/cdn/chunks/chunk.UZZDJISQ.js +0 -258
  406. package/cdn/chunks/chunk.V2Z7ZBTD.js +0 -293
  407. package/cdn/chunks/chunk.V3EFWONT.js +0 -26
  408. package/cdn/chunks/chunk.V7LXD3II.js +0 -318
  409. package/cdn/chunks/chunk.WJL4R4O2.js +0 -7
  410. package/cdn/chunks/chunk.XJVLYIYE.js +0 -41
  411. package/cdn/chunks/chunk.XOD4KYCP.js +0 -120
  412. package/cdn/chunks/chunk.XWDZOQJ3.js +0 -11
  413. package/cdn/chunks/chunk.XXFKVRN5.js +0 -104
  414. package/cdn/chunks/chunk.XZB6CNAL.js +0 -96
  415. package/cdn/chunks/chunk.Y7ZED6A4.js +0 -24
  416. package/cdn/chunks/chunk.YMHBYV33.js +0 -1625
  417. package/cdn/chunks/chunk.YXLIUMJM.js +0 -147
  418. package/cdn/chunks/chunk.YY65ZHR5.js +0 -35
  419. package/cdn/chunks/chunk.Z4S5QPB7.js +0 -655
  420. package/dist/chunks/chunk.2GEN6UCO.js +0 -21
  421. package/dist/chunks/chunk.2LGINANI.js +0 -82
  422. package/dist/chunks/chunk.2OQZA3CW.js +0 -477
  423. package/dist/chunks/chunk.34PJLKJJ.js +0 -416
  424. package/dist/chunks/chunk.35EPISNE.js +0 -11
  425. package/dist/chunks/chunk.3UAVO7EA.js +0 -24
  426. package/dist/chunks/chunk.3ULVIGJG.js +0 -21
  427. package/dist/chunks/chunk.3XJ5QNGT.js +0 -21
  428. package/dist/chunks/chunk.44BRND6T.js +0 -21
  429. package/dist/chunks/chunk.642Z3X7N.js +0 -11
  430. package/dist/chunks/chunk.64ARWPHU.js +0 -11
  431. package/dist/chunks/chunk.65TXBD5Q.js +0 -11
  432. package/dist/chunks/chunk.6DUMNJRP.js +0 -11
  433. package/dist/chunks/chunk.76XDDHGB.js +0 -24
  434. package/dist/chunks/chunk.77RFVKUZ.js +0 -21
  435. package/dist/chunks/chunk.7JCOOCRE.js +0 -498
  436. package/dist/chunks/chunk.A7JSMGCJ.js +0 -11
  437. package/dist/chunks/chunk.ADFWUZLL.js +0 -21
  438. package/dist/chunks/chunk.AHGKSSSI.js +0 -185
  439. package/dist/chunks/chunk.AQADCBKW.js +0 -11
  440. package/dist/chunks/chunk.AU4MMC6N.js +0 -24
  441. package/dist/chunks/chunk.B63QBHY2.js +0 -21
  442. package/dist/chunks/chunk.CA2ZDE2M.js +0 -11
  443. package/dist/chunks/chunk.CDJJZBFH.js +0 -21
  444. package/dist/chunks/chunk.E4HHQCTB.js +0 -25
  445. package/dist/chunks/chunk.EBJUC35J.js +0 -11
  446. package/dist/chunks/chunk.EFBCCYOG.js +0 -21
  447. package/dist/chunks/chunk.ERXCYNDC.js +0 -11
  448. package/dist/chunks/chunk.EU34RZJ6.js +0 -348
  449. package/dist/chunks/chunk.FD3GJNJJ.js +0 -82
  450. package/dist/chunks/chunk.FNTPKP6P.js +0 -538
  451. package/dist/chunks/chunk.FZMMKJAN.js +0 -11
  452. package/dist/chunks/chunk.FZUQIX6Q.js +0 -24
  453. package/dist/chunks/chunk.GJZMMPJG.js +0 -21
  454. package/dist/chunks/chunk.GPP6JDF4.js +0 -11
  455. package/dist/chunks/chunk.H73IKOBV.js +0 -11
  456. package/dist/chunks/chunk.HKST5N6O.js +0 -21
  457. package/dist/chunks/chunk.HN27UQHP.js +0 -21
  458. package/dist/chunks/chunk.IG5HGQXY.js +0 -11
  459. package/dist/chunks/chunk.J6VAJGFU.js +0 -11
  460. package/dist/chunks/chunk.JHEFOGNL.js +0 -11
  461. package/dist/chunks/chunk.KIC5ZCAM.js +0 -63
  462. package/dist/chunks/chunk.KOT22IKI.js +0 -21
  463. package/dist/chunks/chunk.KQXAXXOQ.js +0 -53
  464. package/dist/chunks/chunk.KRADMAUS.js +0 -11
  465. package/dist/chunks/chunk.KXL6VOQP.js +0 -82
  466. package/dist/chunks/chunk.L2M2AJ4W.js +0 -21
  467. package/dist/chunks/chunk.LNIZRE4P.js +0 -180
  468. package/dist/chunks/chunk.LQXULJBQ.js +0 -21
  469. package/dist/chunks/chunk.M3SLDTSE.js +0 -477
  470. package/dist/chunks/chunk.M74U5ILB.js +0 -25
  471. package/dist/chunks/chunk.M7ZB5QRP.js +0 -273
  472. package/dist/chunks/chunk.MFI2M54Y.js +0 -273
  473. package/dist/chunks/chunk.NDADYNAA.js +0 -11
  474. package/dist/chunks/chunk.O6SXSDFR.js +0 -539
  475. package/dist/chunks/chunk.O7SVDS2A.js +0 -11
  476. package/dist/chunks/chunk.OBANVLY7.js +0 -11
  477. package/dist/chunks/chunk.OJC754DG.js +0 -228
  478. package/dist/chunks/chunk.OVUWZWWN.js +0 -355
  479. package/dist/chunks/chunk.OX5IY75Y.js +0 -11
  480. package/dist/chunks/chunk.OY5R7EVO.js +0 -24
  481. package/dist/chunks/chunk.P6OOV5UQ.js +0 -25
  482. package/dist/chunks/chunk.P7UY5YOM.js +0 -202
  483. package/dist/chunks/chunk.PA5O6555.js +0 -24
  484. package/dist/chunks/chunk.PG4TSLWI.js +0 -78
  485. package/dist/chunks/chunk.PKAXRUSD.js +0 -11
  486. package/dist/chunks/chunk.PRQ5P3TK.js +0 -11
  487. package/dist/chunks/chunk.PSIAGOIP.js +0 -538
  488. package/dist/chunks/chunk.Q6LK4OHE.js +0 -11
  489. package/dist/chunks/chunk.QAMFDZKG.js +0 -11
  490. package/dist/chunks/chunk.QEGTBKYW.js +0 -21
  491. package/dist/chunks/chunk.QHY2BYL4.js +0 -11
  492. package/dist/chunks/chunk.QNNEWLT7.js +0 -11
  493. package/dist/chunks/chunk.RBVJJWF4.js +0 -21
  494. package/dist/chunks/chunk.RDID3JKQ.js +0 -25
  495. package/dist/chunks/chunk.RJUTQBOV.js +0 -21
  496. package/dist/chunks/chunk.RVCQSKMD.js +0 -108
  497. package/dist/chunks/chunk.RVH4PSND.js +0 -416
  498. package/dist/chunks/chunk.SFFOTZON.js +0 -25
  499. package/dist/chunks/chunk.SPVE7NND.js +0 -11
  500. package/dist/chunks/chunk.SRBWEFVT.js +0 -27
  501. package/dist/chunks/chunk.SWDQJJ7Q.js +0 -11
  502. package/dist/chunks/chunk.T7DACXNM.js +0 -11
  503. package/dist/chunks/chunk.TCGYS77N.js +0 -27
  504. package/dist/chunks/chunk.TIQXW7ZH.js +0 -11
  505. package/dist/chunks/chunk.TMXTLPTE.js +0 -11
  506. package/dist/chunks/chunk.UPMJQK2S.js +0 -120
  507. package/dist/chunks/chunk.URKW2CME.js +0 -21
  508. package/dist/chunks/chunk.UT5XKCBV.js +0 -183
  509. package/dist/chunks/chunk.UTXEG3QD.js +0 -214
  510. package/dist/chunks/chunk.UZZDJISQ.js +0 -258
  511. package/dist/chunks/chunk.V3CHZTI6.js +0 -470
  512. package/dist/chunks/chunk.VDCD52OC.js +0 -185
  513. package/dist/chunks/chunk.VO4JJ7CZ.js +0 -357
  514. package/dist/chunks/chunk.VT32WPUI.js +0 -73
  515. package/dist/chunks/chunk.VYPNLWLL.js +0 -11
  516. package/dist/chunks/chunk.W5O3LYQV.js +0 -21
  517. package/dist/chunks/chunk.WTQMOLV2.js +0 -24
  518. package/dist/chunks/chunk.WXZHDVQ3.js +0 -21
  519. package/dist/chunks/chunk.WZCLDYKY.js +0 -25
  520. package/dist/chunks/chunk.X7MVYC7B.js +0 -11
  521. package/dist/chunks/chunk.XIUGWVFS.js +0 -355
  522. package/dist/chunks/chunk.XJPYDQOZ.js +0 -11
  523. package/dist/chunks/chunk.XWDZOQJ3.js +0 -11
  524. package/dist/chunks/chunk.Y7TVB466.js +0 -1625
  525. package/dist/chunks/chunk.YIP3L3SE.js +0 -21
  526. package/dist/chunks/chunk.YP5DVLJS.js +0 -11
  527. package/dist/chunks/chunk.YRJRQDLF.js +0 -21
  528. package/dist/chunks/chunk.ZK4JLVS4.js +0 -11
  529. package/dist/chunks/chunk.ZLRH3XYC.js +0 -24
  530. package/dist/chunks/chunk.ZOCIZGYF.js +0 -11
  531. package/cdn/chunks/{chunk.OXUFHTFN.js → chunk.2PNASAQ6.js} +3 -3
  532. package/cdn/chunks/{chunk.DUUVIZLI.js → chunk.6HV5UAUR.js} +3 -3
  533. package/cdn/chunks/{chunk.EMLDT66I.js → chunk.EDY6YM3Y.js} +4 -4
  534. package/cdn/chunks/{chunk.SU2EH44I.js → chunk.NFS2RDEX.js} +5 -5
  535. package/cdn/chunks/{chunk.VPW32Q52.js → chunk.QFJLPXXJ.js} +3 -3
  536. package/cdn/chunks/{chunk.HDPH5PEF.js → chunk.UQPT3AQ5.js} +4 -4
@@ -1,1625 +0,0 @@
1
- import {
2
- defaultSubsetFileMimeType,
3
- getFriendlyNameForMimeType
4
- } from "./chunk.4MGGBJBD.js";
5
- import {
6
- TerraLogin
7
- } from "./chunk.5QKVNNUH.js";
8
- import {
9
- TerraDatePicker
10
- } from "./chunk.UT5XKCBV.js";
11
- import {
12
- TerraSpatialPicker
13
- } from "./chunk.MFI2M54Y.js";
14
- import {
15
- AuthController
16
- } from "./chunk.KIC5ZCAM.js";
17
- import {
18
- DataSubsetterController
19
- } from "./chunk.QZS6UUDI.js";
20
- import {
21
- data_subsetter_styles_default
22
- } from "./chunk.5ASTHFQ2.js";
23
- import {
24
- TerraAccordion
25
- } from "./chunk.PG4TSLWI.js";
26
- import {
27
- TerraIcon
28
- } from "./chunk.2AIVKD54.js";
29
- import {
30
- getBasePath
31
- } from "./chunk.PBC3S6IG.js";
32
- import {
33
- watch
34
- } from "./chunk.DTUHBE3U.js";
35
- import {
36
- TerraElement,
37
- component_styles_default
38
- } from "./chunk.O6SXSDFR.js";
39
- import {
40
- __decorateClass,
41
- __privateAdd,
42
- __privateGet,
43
- __privateMethod,
44
- __spreadProps,
45
- __spreadValues
46
- } from "./chunk.TVFCHGU3.js";
47
-
48
- // src/components/data-subsetter/data-subsetter.component.ts
49
- import { html, nothing } from "lit";
50
- import { property, query, state } from "lit/decorators.js";
51
-
52
- // src/internal/debounce.ts
53
- var TIMER_ID_KEY = Symbol();
54
- var debounce = (delay) => {
55
- return (_target, _propertyKey, descriptor) => {
56
- const fn = descriptor.value;
57
- descriptor.value = function(...args) {
58
- clearTimeout(this[TIMER_ID_KEY]);
59
- this[TIMER_ID_KEY] = window.setTimeout(() => {
60
- fn.apply(this, args);
61
- }, delay);
62
- };
63
- };
64
- };
65
-
66
- // src/components/data-subsetter/data-subsetter.component.ts
67
- var _controller, _authController, _renderSizeInfo, renderSizeInfo_fn, _renderSubsetOptions, renderSubsetOptions_fn, _renderSearchForCollection, renderSearchForCollection_fn, _renderOutputFormatSelection, renderOutputFormatSelection_fn, _renderDateRangeSelection, renderDateRangeSelection_fn, _handleStartDateChange, _handleEndDateChange, _resetDateRangeSelection, _resetFormatSelection, _getCollectionDateRange, getCollectionDateRange_fn, _handleRegionAccordionToggle, handleRegionAccordionToggle_fn, _renderSpatialSelection, renderSpatialSelection_fn, _handleSpatialChange, _resetSpatialSelection, _renderVariableSelection, renderVariableSelection_fn, _buildVariableTree, buildVariableTree_fn, _renderVariableTree, renderVariableTree_fn, _getAllGroupPaths, getAllGroupPaths_fn, _toggleGroupExpand, toggleGroupExpand_fn, _toggleExpandCollapseAll, toggleExpandCollapseAll_fn, _toggleVariableSelection, toggleVariableSelection_fn, _markFieldTouched, markFieldTouched_fn, _resetVariableSelection, _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, _toggleDownloadMenu, toggleDownloadMenu_fn, _downloadLinksAsTxt, downloadLinksAsTxt_fn, _downloadPythonScript, downloadPythonScript_fn, _downloadEarthdataDownload, downloadEarthdataDownload_fn, _handleClickOutside, handleClickOutside_fn, _handleJupyterNotebookClick, handleJupyterNotebookClick_fn, _renderAvailableTemporalRangeSection, renderAvailableTemporalRangeSection_fn, _renderAvailableSpatialRangeSection, renderAvailableSpatialRangeSection_fn;
68
- var TerraDataSubsetter = class extends TerraElement {
69
- constructor() {
70
- super(...arguments);
71
- __privateAdd(this, _renderSizeInfo);
72
- __privateAdd(this, _renderSubsetOptions);
73
- __privateAdd(this, _renderSearchForCollection);
74
- __privateAdd(this, _renderOutputFormatSelection);
75
- __privateAdd(this, _renderDateRangeSelection);
76
- __privateAdd(this, _getCollectionDateRange);
77
- __privateAdd(this, _handleRegionAccordionToggle);
78
- __privateAdd(this, _renderSpatialSelection);
79
- __privateAdd(this, _renderVariableSelection);
80
- __privateAdd(this, _buildVariableTree);
81
- __privateAdd(this, _renderVariableTree);
82
- __privateAdd(this, _getAllGroupPaths);
83
- __privateAdd(this, _toggleGroupExpand);
84
- __privateAdd(this, _toggleExpandCollapseAll);
85
- __privateAdd(this, _toggleVariableSelection);
86
- __privateAdd(this, _markFieldTouched);
87
- __privateAdd(this, _renderJobStatus);
88
- __privateAdd(this, _renderSelectedParams);
89
- __privateAdd(this, _cancelJob);
90
- __privateAdd(this, _getData);
91
- __privateAdd(this, _touchAllFields);
92
- __privateAdd(this, _numberOfFilesFoundEstimate);
93
- __privateAdd(this, _getDocumentationLinks);
94
- __privateAdd(this, _getDataLinks);
95
- __privateAdd(this, _hasAtLeastOneSubsetOption);
96
- __privateAdd(this, _hasSpatialSubset);
97
- __privateAdd(this, _renderJobMessage);
98
- __privateAdd(this, _getJobMessageText);
99
- __privateAdd(this, _estimateJobSize);
100
- __privateAdd(this, _refineParameters);
101
- __privateAdd(this, _toggleDownloadMenu);
102
- __privateAdd(this, _downloadLinksAsTxt);
103
- __privateAdd(this, _downloadPythonScript);
104
- __privateAdd(this, _downloadEarthdataDownload);
105
- __privateAdd(this, _handleClickOutside);
106
- __privateAdd(this, _handleJupyterNotebookClick);
107
- __privateAdd(this, _renderAvailableTemporalRangeSection);
108
- __privateAdd(this, _renderAvailableSpatialRangeSection);
109
- this.showCollectionSearch = true;
110
- this.selectedVariables = [];
111
- this.expandedVariableGroups = /* @__PURE__ */ new Set();
112
- this.touchedFields = /* @__PURE__ */ new Set();
113
- this.spatialSelection = null;
114
- this.selectedDateRange = {
115
- startDate: null,
116
- endDate: null
117
- };
118
- this.selectedFormat = defaultSubsetFileMimeType;
119
- this.cancelingGetData = false;
120
- this.selectedTab = "web-links";
121
- this.refineParameters = false;
122
- this.showDownloadMenu = false;
123
- this.renderedInDialog = false;
124
- this.collectionSearchType = "all";
125
- this.collectionSearchLoading = false;
126
- this.collectionLoading = false;
127
- this.collectionAccordionOpen = true;
128
- __privateAdd(this, _controller, new DataSubsetterController(this));
129
- __privateAdd(this, _authController, new AuthController(this));
130
- __privateAdd(this, _handleStartDateChange, (e) => {
131
- __privateMethod(this, _markFieldTouched, markFieldTouched_fn).call(this, "date");
132
- const datePicker = e.currentTarget;
133
- this.selectedDateRange = __spreadProps(__spreadValues({}, this.selectedDateRange), {
134
- startDate: datePicker.selectedDates.startDate
135
- });
136
- });
137
- __privateAdd(this, _handleEndDateChange, (e) => {
138
- __privateMethod(this, _markFieldTouched, markFieldTouched_fn).call(this, "date");
139
- const datePicker = e.currentTarget;
140
- this.selectedDateRange = __spreadProps(__spreadValues({}, this.selectedDateRange), {
141
- endDate: datePicker.selectedDates.startDate
142
- });
143
- });
144
- __privateAdd(this, _resetDateRangeSelection, () => {
145
- this.selectedDateRange = { startDate: null, endDate: null };
146
- });
147
- __privateAdd(this, _resetFormatSelection, () => {
148
- this.selectedFormat = defaultSubsetFileMimeType;
149
- });
150
- __privateAdd(this, _handleSpatialChange, (e) => {
151
- __privateMethod(this, _markFieldTouched, markFieldTouched_fn).call(this, "spatial");
152
- const round2 = (n) => parseFloat(Number(n).toFixed(2));
153
- if (e.detail.type === "bbox" /* BBOX */) {
154
- this.spatialSelection = {
155
- e: round2(e.detail.bounds.getNorthEast().lng),
156
- n: round2(e.detail.bounds.getNorthEast().lat),
157
- w: round2(e.detail.bounds.getSouthWest().lng),
158
- s: round2(e.detail.bounds.getSouthWest().lat)
159
- };
160
- } else if (e.detail.type === "point" /* POINT */) {
161
- this.spatialSelection = e.detail.latLng;
162
- } else {
163
- this.spatialSelection = null;
164
- }
165
- });
166
- __privateAdd(this, _resetSpatialSelection, () => {
167
- this.spatialSelection = null;
168
- });
169
- __privateAdd(this, _resetVariableSelection, () => {
170
- this.selectedVariables = [];
171
- });
172
- }
173
- jobIdChanged() {
174
- if (this.jobId) {
175
- __privateGet(this, _controller).fetchJobByID(this.jobId);
176
- }
177
- }
178
- firstUpdated() {
179
- if (this.collectionEntryId) {
180
- this.showCollectionSearch = false;
181
- }
182
- if (this.jobId) {
183
- __privateGet(this, _controller).fetchJobByID(this.jobId);
184
- }
185
- document.addEventListener("click", __privateMethod(this, _handleClickOutside, handleClickOutside_fn).bind(this));
186
- if (this.closest("terra-dialog")) {
187
- this.renderedInDialog = true;
188
- }
189
- }
190
- disconnectedCallback() {
191
- super.disconnectedCallback();
192
- document.removeEventListener("click", __privateMethod(this, _handleClickOutside, handleClickOutside_fn).bind(this));
193
- }
194
- collectionChanged() {
195
- const { startDate, endDate } = __privateMethod(this, _getCollectionDateRange, getCollectionDateRange_fn).call(this);
196
- this.selectedDateRange = { startDate, endDate };
197
- this.collectionLoading = false;
198
- this.collectionAccordionOpen = false;
199
- }
200
- render() {
201
- var _a, _b, _c;
202
- const showJobStatus = __privateGet(this, _controller).currentJob && !this.refineParameters;
203
- const showMinimizeButton = showJobStatus && this.renderedInDialog;
204
- return html`
205
- <div class="container">
206
- <div class="header">
207
- <h1>
208
- <svg
209
- class="download-icon"
210
- viewBox="0 0 24 24"
211
- fill="currentColor"
212
- >
213
- <path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z" />
214
- </svg>
215
- ${(_c = (_b = (_a = this.collectionWithServices) == null ? void 0 : _a.collection) == null ? void 0 : _b.EntryTitle) != null ? _c : html`Download Data`}
216
- </h1>
217
-
218
- ${showMinimizeButton ? html`<button
219
- class="minimize-btn"
220
- @click=${() => this.minimizeDialog()}
221
- >
222
- -
223
- </button>` : nothing}
224
- </div>
225
-
226
- ${showJobStatus ? __privateMethod(this, _renderJobStatus, renderJobStatus_fn).call(this) : __privateMethod(this, _renderSubsetOptions, renderSubsetOptions_fn).call(this)}
227
- </div>
228
- `;
229
- }
230
- minimizeDialog() {
231
- var _a;
232
- (_a = this.closest("terra-dialog")) == null ? void 0 : _a.hide();
233
- }
234
- handleCollectionSearch(searchTerm) {
235
- this.collectionSearchQuery = searchTerm;
236
- }
237
- renderHistoryPanel() {
238
- const existingHistoryPanel = document.querySelector(
239
- "terra-data-subsetter-history"
240
- );
241
- if (!existingHistoryPanel) {
242
- const historyPanel = document.createElement(
243
- "terra-data-subsetter-history"
244
- );
245
- if (this.bearerToken) {
246
- historyPanel.setAttribute("bearer-token", this.bearerToken);
247
- }
248
- document.body.appendChild(historyPanel);
249
- }
250
- }
251
- };
252
- _controller = new WeakMap();
253
- _authController = new WeakMap();
254
- _renderSizeInfo = new WeakSet();
255
- renderSizeInfo_fn = function(estimates) {
256
- if (!__privateGet(this, _authController).state.isLoading && !__privateGet(this, _authController).state.user) {
257
- return html`
258
- <div class="size-info warning">
259
- <terra-login>
260
- <h2 slot="logged-out">Limited access as a guest.</h2>
261
-
262
- <p slot="logged-out">
263
- Your results will be capped at 10 links. Log in for full
264
- access to all data.
265
- </p>
266
- </terra-login>
267
- </div>
268
- `;
269
- }
270
- return html`<div
271
- class="size-info ${estimates.links >= 150 ? "warning" : "neutral"}"
272
- >
273
- <h2>Estimated size of results</h2>
274
- <div class="size-stats">
275
- ${estimates.days.toLocaleString()} days,
276
- ${estimates.links.toLocaleString()} links
277
- </div>
278
- ${estimates.links >= 150 ? html`<div class="size-warning">
279
- You are about to retrieve ${estimates.links.toLocaleString()}
280
- file links from the archive. You may
281
- <strong>speed up the request</strong> by limiting the scope of
282
- your search.
283
- </div>` : nothing}
284
- </div>`;
285
- };
286
- _renderSubsetOptions = new WeakSet();
287
- renderSubsetOptions_fn = function() {
288
- var _a, _b, _c, _d, _e, _f, _g, _h;
289
- const estimates = __privateMethod(this, _estimateJobSize, estimateJobSize_fn).call(this);
290
- const hasSubsetOption = __privateMethod(this, _hasAtLeastOneSubsetOption, hasAtLeastOneSubsetOption_fn).call(this);
291
- const collection = (_a = this.collectionWithServices) == null ? void 0 : _a.collection;
292
- const temporalExtents = collection == null ? void 0 : collection.TemporalExtents;
293
- const spatialExtent = collection == null ? void 0 : collection.SpatialExtent;
294
- const showTemporalSection = temporalExtents && temporalExtents.length;
295
- const showSpatialSection = spatialExtent && ((_c = (_b = spatialExtent.HorizontalSpatialDomain) == null ? void 0 : _b.Geometry) == null ? void 0 : _c.BoundingRectangles);
296
- return html`
297
- ${hasSubsetOption && estimates ? __privateMethod(this, _renderSizeInfo, renderSizeInfo_fn).call(this, estimates) : nothing}
298
- ${this.showCollectionSearch ? html`
299
- <div class="section">
300
- <h2 class="section-title">
301
- Select Data Collection
302
- <span class="help-icon">?</span>
303
- </h2>
304
-
305
- ${__privateMethod(this, _renderSearchForCollection, renderSearchForCollection_fn).call(this)}
306
- </div>
307
- ` : nothing}
308
- ${hasSubsetOption ? html`
309
- <div class="section">
310
- <h2 class="section-title">
311
- Method Options
312
- <span class="help-icon">?</span>
313
- </h2>
314
-
315
- ${((_d = this.collectionWithServices) == null ? void 0 : _d.temporalSubset) ? __privateMethod(this, _renderDateRangeSelection, renderDateRangeSelection_fn).call(this) : nothing}
316
- ${__privateMethod(this, _hasSpatialSubset, hasSpatialSubset_fn).call(this) ? __privateMethod(this, _renderSpatialSelection, renderSpatialSelection_fn).call(this) : nothing}
317
- ${((_e = this.collectionWithServices) == null ? void 0 : _e.variableSubset) ? __privateMethod(this, _renderVariableSelection, renderVariableSelection_fn).call(this) : nothing}
318
- </div>
319
- ` : html`
320
- ${showTemporalSection && !((_f = this.collectionWithServices) == null ? void 0 : _f.temporalSubset) ? __privateMethod(this, _renderAvailableTemporalRangeSection, renderAvailableTemporalRangeSection_fn).call(this) : nothing}
321
- ${showSpatialSection && !__privateMethod(this, _hasSpatialSubset, hasSpatialSubset_fn).call(this) ? __privateMethod(this, _renderAvailableSpatialRangeSection, renderAvailableSpatialRangeSection_fn).call(this) : nothing}
322
- `}
323
- ${((_h = (_g = this.collectionWithServices) == null ? void 0 : _g.outputFormats) == null ? void 0 : _h.length) && hasSubsetOption ? html`
324
- <div class="section">
325
- <h2 class="section-title">
326
- Output Format
327
- <span class="help-icon">?</span>
328
- </h2>
329
-
330
- ${__privateMethod(this, _renderOutputFormatSelection, renderOutputFormatSelection_fn).call(this)}
331
- </div>
332
- ` : nothing}
333
- ${!hasSubsetOption && estimates ? html`
334
- <div
335
- class="neutral-info"
336
- style="margin-top: 24px; padding: 16px 20px; border-radius: 6px; background: #f8f9fa; color: #555; border: 1px solid #ccc;"
337
- >
338
- <strong>Estimated result size:</strong><br />
339
- Your request will return approximately
340
- <b>${estimates.links.toLocaleString()}</b> files covering
341
- <b>${estimates.days.toLocaleString()}</b> days.
342
- </div>
343
- ` : nothing}
344
-
345
- <div class="footer">
346
- <button class="btn btn-secondary">Reset All</button>
347
- <button class="btn btn-primary" @click=${__privateMethod(this, _getData, getData_fn)}>
348
- Get Data
349
- </button>
350
- </div>
351
- `;
352
- };
353
- _renderSearchForCollection = new WeakSet();
354
- renderSearchForCollection_fn = function() {
355
- var _a, _b;
356
- let placeholder = "Search all types of resources (e.g. rainfall, GPM, hurricanes, etc.)";
357
- if (this.collectionSearchType === "collection") {
358
- placeholder = "Search collections (e.g. AQUA, GPM_3IMERGH, etc.)";
359
- }
360
- if (this.collectionSearchType === "variable") {
361
- placeholder = "Search variables (e.g. rainfall, hurricanes, etc.)";
362
- }
363
- return html`
364
- <terra-accordion .open=${this.collectionAccordionOpen}>
365
- <div slot="summary">
366
- <span class="accordion-title">Collection:</span>
367
- </div>
368
-
369
- <div
370
- slot="summary-right"
371
- style="display: flex; align-items: center; gap: 10px"
372
- >
373
- ${this.collectionEntryId ? html` <span
374
- class="accordion-value"
375
- id="selected-collection-display"
376
- >${this.collectionEntryId}</span
377
- >
378
-
379
- <button
380
- class="reset-btn"
381
- @click=${() => this.collectionEntryId = void 0}
382
- >
383
- Reset
384
- </button>` : nothing}
385
- </div>
386
-
387
- <div class="search-tabs-mini">
388
- <button
389
- class="search-tab-mini ${this.collectionSearchType === "all" ? "active" : ""}"
390
- @click=${() => this.collectionSearchType = "all"}
391
- >
392
- All
393
- </button>
394
- <button
395
- class="search-tab-mini ${this.collectionSearchType === "collection" ? "active" : ""}"
396
- @click=${() => this.collectionSearchType = "collection"}
397
- >
398
- Collections
399
- </button>
400
- <button
401
- class="search-tab-mini ${this.collectionSearchType === "variable" ? "active" : ""}"
402
- @click=${() => this.collectionSearchType = "variable"}
403
- >
404
- Variables
405
- </button>
406
- </div>
407
-
408
- <div class="search-container-mini">
409
- <input
410
- type="text"
411
- class="search-input-mini"
412
- id="search-input"
413
- placeholder=${placeholder}
414
- @input="${(e) => this.handleCollectionSearch(
415
- e.target.value
416
- )}"
417
- />
418
-
419
- <button class="search-button-mini">
420
- <svg
421
- class="search-icon-mini"
422
- viewBox="0 0 24 24"
423
- fill="currentColor"
424
- >
425
- <path
426
- 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"
427
- />
428
- </svg>
429
- Search
430
- </button>
431
- </div>
432
-
433
- <!-- TODO: it may be nice to have a quick search, perhaps by recent trends?
434
- <div class="quick-links-mini">
435
- <a href="#" class="quick-link-mini" onclick="quickSearch('GPM')"
436
- >GPM Precipitation</a
437
- >
438
- <a href="#" class="quick-link-mini" onclick="quickSearch('MODIS')"
439
- >MODIS Data</a
440
- >
441
- <a
442
- href="#"
443
- class="quick-link-mini"
444
- onclick="quickSearch('Landsat')"
445
- >Landsat Imagery</a
446
- >
447
- <a href="#" class="quick-link-mini" onclick="quickSearch('AIRS')"
448
- >Atmospheric Data</a
449
- >
450
- </div>
451
- -->
452
-
453
- <div id="search-results-section" class="search-results-section">
454
- ${this.collectionSearchLoading ? html`
455
- <div id="loading-mini" class="loading-mini">
456
- <div class="spinner-mini"></div>
457
- <div>Searching NASA CMR...</div>
458
- </div>
459
- ` : ((_a = this.collectionSearchResults) == null ? void 0 : _a.length) ? html` <div
460
- id="results-container-mini"
461
- class="results-container-mini"
462
- >
463
- ${(_b = this.collectionSearchResults) == null ? void 0 : _b.map(
464
- (item) => html`
465
- <div
466
- class="result-item-mini"
467
- @click=${() => {
468
- this.collectionEntryId = item.collectionEntryId;
469
- this.collectionAccordionOpen = false;
470
- this.collectionLoading = true;
471
- if (item.type === "variable") {
472
- this.selectedVariables = [
473
- {
474
- name: item.entryId,
475
- href: "",
476
- conceptId: item.conceptId
477
- }
478
- ];
479
- }
480
- this.requestUpdate();
481
- }}
482
- style="cursor: pointer;"
483
- >
484
- <div class="result-title-mini">
485
- ${item.title}
486
- </div>
487
- <div class="result-id-mini">
488
- ${item.entryId}
489
- </div>
490
- <div class="result-description-mini">
491
- ${item.summary || item.title}
492
- </div>
493
- <div class="result-meta-mini">
494
- <span>📅 2000-02-24 - ongoing</span>
495
- <span>🌍 Global</span>
496
- <span>🏢 ${item.provider}</span>
497
- ${item.type === "variable" ? html` <span
498
- >📊
499
- ${item.collectionEntryId}</span
500
- >` : nothing}
501
- <span class="tag-mini"
502
- >${item.type.toUpperCase()}</span
503
- >
504
- </div>
505
- </div>
506
- `
507
- )}
508
- </div>` : this.collectionSearchResults && this.collectionSearchResults.length === 0 ? html`<div id="no-results-mini" class="no-results-mini">
509
- <p>
510
- No results found for
511
- '${this.collectionSearchQuery}'. Try adjusting
512
- your search term.
513
- </p>
514
- </div>` : nothing}
515
- </div>
516
- </terra-accordion>
517
-
518
- ${this.collectionLoading ? html`
519
- <div
520
- class="collection-loading-bar"
521
- style="display: flex; align-items: center; gap: 10px; margin: 16px 0;"
522
- >
523
- <span
524
- class="loading-spinner"
525
- 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;"
526
- ></span>
527
- Retrieving collection, please wait...
528
- </div>
529
- <style>
530
- @keyframes spin {
531
- 0% {
532
- transform: rotate(0deg);
533
- }
534
- 100% {
535
- transform: rotate(360deg);
536
- }
537
- }
538
- </style>
539
- ` : nothing}
540
- `;
541
- };
542
- _renderOutputFormatSelection = new WeakSet();
543
- renderOutputFormatSelection_fn = function() {
544
- return html`
545
- <terra-accordion>
546
- <div slot="summary">
547
- <span class="accordion-title">File Format:</span>
548
- </div>
549
-
550
- <div
551
- slot="summary-right"
552
- style="display: flex; align-items: center; gap: 10px;"
553
- >
554
- <span>${getFriendlyNameForMimeType(this.selectedFormat)}</span>
555
-
556
- <button class="reset-btn" @click=${__privateGet(this, _resetFormatSelection)}>
557
- Reset
558
- </button>
559
- </div>
560
-
561
- <div class="accordion-content" style="margin-top: 12px;">
562
- ${(() => {
563
- var _a;
564
- const uniqueFormats = Array.from(
565
- new Set(((_a = this.collectionWithServices) == null ? void 0 : _a.outputFormats) || [])
566
- );
567
- return uniqueFormats.map(
568
- (format) => html`
569
- <label
570
- style="display: flex; align-items: center; gap: 8px; padding: 5px;"
571
- >
572
- <input
573
- type="radio"
574
- name="output-format"
575
- value="${format}"
576
- .checked=${this.selectedFormat === format}
577
- @change=${() => this.selectedFormat = format}
578
- />
579
- ${getFriendlyNameForMimeType(format)}
580
- </label>
581
- `
582
- );
583
- })()}
584
- </div>
585
- </terra-accordion>
586
- `;
587
- };
588
- _renderDateRangeSelection = new WeakSet();
589
- renderDateRangeSelection_fn = function() {
590
- var _a, _b;
591
- const { startDate: defaultStartDate, endDate: defaultEndDate } = __privateMethod(this, _getCollectionDateRange, getCollectionDateRange_fn).call(this);
592
- const startDate = (_a = this.selectedDateRange.startDate) != null ? _a : defaultStartDate;
593
- const endDate = (_b = this.selectedDateRange.endDate) != null ? _b : defaultEndDate;
594
- const showError = this.touchedFields.has("date") && (!this.selectedDateRange.startDate || !this.selectedDateRange.endDate);
595
- return html`
596
- <terra-accordion>
597
- <div slot="summary">
598
- <span class="accordion-title">Refine Date Range:</span>
599
- </div>
600
-
601
- <div
602
- slot="summary-right"
603
- style="display: flex; align-items: center; gap: 10px;"
604
- >
605
- ${showError ? html`<span class="accordion-value error"
606
- >Please select a date range</span
607
- >` : this.touchedFields.has("date") && startDate && endDate ? html`<span class="accordion-value"
608
- >${startDate} to ${endDate}</span
609
- >` : nothing}
610
- <button class="reset-btn" @click=${__privateGet(this, _resetDateRangeSelection)}>
611
- Reset
612
- </button>
613
- </div>
614
-
615
- <div style="display: flex; gap: 16px;">
616
- <terra-date-picker
617
- label="Start Date"
618
- allow-input
619
- class="w-full"
620
- .minDate=${defaultStartDate}
621
- .maxDate=${endDate}
622
- .defaultDate=${startDate}
623
- @terra-change=${__privateGet(this, _handleStartDateChange)}
624
- ></terra-date-picker>
625
- <terra-date-picker
626
- label="End Date"
627
- allow-input
628
- class="w-full"
629
- .minDate=${startDate}
630
- .maxDate=${defaultEndDate}
631
- .defaultDate=${endDate}
632
- @terra-change=${__privateGet(this, _handleEndDateChange)}
633
- ></terra-date-picker>
634
- </div>
635
-
636
- <div
637
- style="display: flex; gap: 16px; margin-top: 15px; color: #31708f;"
638
- >
639
- <span
640
- ><strong>Available Range:</strong> ${defaultStartDate} to
641
- ${defaultEndDate}</span
642
- >
643
- <span
644
- ><strong>Note:</strong> All dates and times are in UTC.</span
645
- >
646
- </div>
647
- </terra-accordion>
648
- `;
649
- };
650
- _handleStartDateChange = new WeakMap();
651
- _handleEndDateChange = new WeakMap();
652
- _resetDateRangeSelection = new WeakMap();
653
- _resetFormatSelection = new WeakMap();
654
- _getCollectionDateRange = new WeakSet();
655
- getCollectionDateRange_fn = function() {
656
- var _a, _b;
657
- const temporalExtents = (_b = (_a = this.collectionWithServices) == null ? void 0 : _a.collection) == null ? void 0 : _b.TemporalExtents;
658
- if (!temporalExtents || !temporalExtents.length)
659
- return {
660
- startDate: null,
661
- endDate: null
662
- };
663
- let minStart = null;
664
- let maxEnd = null;
665
- const today = /* @__PURE__ */ new Date();
666
- for (const temporal of temporalExtents) {
667
- for (const range of temporal.RangeDateTimes) {
668
- const start = new Date(range.BeginningDateTime);
669
- let end;
670
- if (temporal.EndsAtPresentFlag || !range.EndingDateTime) {
671
- end = today;
672
- } else {
673
- end = new Date(range.EndingDateTime);
674
- }
675
- if (!minStart || start < minStart)
676
- minStart = start;
677
- if (!maxEnd || end > maxEnd)
678
- maxEnd = end;
679
- }
680
- }
681
- return {
682
- startDate: minStart ? minStart.toISOString().slice(0, 10) : null,
683
- endDate: maxEnd ? maxEnd.toISOString().slice(0, 10) : null
684
- };
685
- };
686
- _handleRegionAccordionToggle = new WeakSet();
687
- handleRegionAccordionToggle_fn = function() {
688
- var _a;
689
- (_a = this.spatialPicker) == null ? void 0 : _a.invalidateSize();
690
- };
691
- _renderSpatialSelection = new WeakSet();
692
- renderSpatialSelection_fn = function() {
693
- var _a, _b, _c, _d, _e, _f;
694
- const showError = this.touchedFields.has("spatial") && !this.spatialSelection;
695
- let 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;
696
- if (boundingRects && !Array.isArray(boundingRects)) {
697
- boundingRects = [boundingRects];
698
- }
699
- return html`
700
- <terra-accordion
701
- @terra-accordion-toggle=${__privateMethod(this, _handleRegionAccordionToggle, handleRegionAccordionToggle_fn)}
702
- >
703
- <div slot="summary">
704
- <span class="accordion-title">Refine Region:</span>
705
- </div>
706
-
707
- <div
708
- slot="summary-right"
709
- style="display: flex; align-items: center; gap: 10px;"
710
- >
711
- ${showError ? html`<span class="accordion-value error"
712
- >Please select a region</span
713
- >` : this.spatialSelection && "w" in this.spatialSelection ? html`<span class="accordion-value"
714
- >${this.spatialSelection.w},${this.spatialSelection.s},${this.spatialSelection.e},${this.spatialSelection.n}</span
715
- >` : this.spatialSelection && "lat" in this.spatialSelection && "lng" in this.spatialSelection ? html`<span class="accordion-value"
716
- >${this.spatialSelection.lat},${this.spatialSelection.lng}</span
717
- >` : nothing}
718
- <button class="reset-btn" @click=${__privateGet(this, _resetSpatialSelection)}>
719
- Reset
720
- </button>
721
- </div>
722
- <div class="accordion-content">
723
- <terra-spatial-picker
724
- part="spatial-picker"
725
- inline
726
- hide-label
727
- has-shape-selector
728
- hide-point-selection
729
- .initialValue=${(_f = this.spatialSelection) != null ? _f : ""}
730
- @terra-map-change=${__privateGet(this, _handleSpatialChange)}
731
- ></terra-spatial-picker>
732
- ${boundingRects && Array.isArray(boundingRects) && boundingRects.length ? html`<div
733
- style="display: flex; gap: 16px; margin-top: 15px; color: #31708f;"
734
- >
735
- ${boundingRects.map(
736
- (rect) => html`<div>
737
- <strong>Available Range:</strong>
738
- ${rect.WestBoundingCoordinate},
739
- ${rect.SouthBoundingCoordinate},
740
- ${rect.EastBoundingCoordinate},
741
- ${rect.NorthBoundingCoordinate}
742
- </div>`
743
- )}
744
- </div>` : nothing}
745
- </div>
746
- </terra-accordion>
747
- `;
748
- };
749
- _handleSpatialChange = new WeakMap();
750
- _resetSpatialSelection = new WeakMap();
751
- _renderVariableSelection = new WeakSet();
752
- renderVariableSelection_fn = function() {
753
- var _a;
754
- const variables = ((_a = this.collectionWithServices) == null ? void 0 : _a.variables) || [];
755
- const showError = this.touchedFields.has("variables") && this.selectedVariables.length === 0;
756
- const tree = __privateMethod(this, _buildVariableTree, buildVariableTree_fn).call(this, variables);
757
- const allGroups = __privateMethod(this, _getAllGroupPaths, getAllGroupPaths_fn).call(this, tree);
758
- const allExpanded = allGroups.length > 0 && allGroups.every((g) => this.expandedVariableGroups.has(g));
759
- return html`
760
- <terra-accordion>
761
- <div slot="summary">
762
- <span class="accordion-title">Select Variables:</span>
763
- </div>
764
- <div
765
- slot="summary-right"
766
- style="display: flex; align-items: center; gap: 10px;"
767
- >
768
- ${showError ? html`<span class="accordion-value error"
769
- >Please select at least one variable</span
770
- >` : this.selectedVariables.length ? html`<span class="accordion-value"
771
- >${this.selectedVariables.length} selected</span
772
- >` : nothing}
773
-
774
- <button class="reset-btn" @click=${__privateGet(this, _resetVariableSelection)}>
775
- Reset
776
- </button>
777
- </div>
778
- <div class="accordion-content">
779
- <button
780
- class="reset-btn"
781
- style="margin-bottom: 10px;"
782
- @click=${() => __privateMethod(this, _toggleExpandCollapseAll, toggleExpandCollapseAll_fn).call(this, tree)}
783
- >
784
- ${allExpanded ? "Collapse Tree" : "Expand Tree"}
785
- </button>
786
- ${variables.length === 0 ? html`<p style="color: #666; font-style: italic;">
787
- No variables available for this collection.
788
- </p>` : __privateMethod(this, _renderVariableTree, renderVariableTree_fn).call(this, tree, [])}
789
- </div>
790
- </terra-accordion>
791
- `;
792
- };
793
- _buildVariableTree = new WeakSet();
794
- buildVariableTree_fn = function(variables) {
795
- const root = {};
796
- for (const v of variables) {
797
- const parts = v.name.split("/");
798
- let node = root;
799
- for (let i = 0; i < parts.length; i++) {
800
- const part = parts[i];
801
- if (!node[part])
802
- node[part] = { __children: {}, __isLeaf: false };
803
- if (i === parts.length - 1) {
804
- node[part].__isLeaf = true;
805
- node[part].__variable = v;
806
- }
807
- node = node[part].__children;
808
- }
809
- }
810
- return root;
811
- };
812
- _renderVariableTree = new WeakSet();
813
- renderVariableTree_fn = function(node, path) {
814
- return html`
815
- <div style="margin-left: ${path.length * 20}px;">
816
- ${Object.entries(node).map(([key, value]) => {
817
- const groupPath = [...path, key].join("/");
818
- if (value.__isLeaf) {
819
- return html`
820
- <div class="option-row">
821
- <label class="checkbox-option">
822
- <input
823
- type="checkbox"
824
- .checked=${this.selectedVariables.some(
825
- (v) => v.name === value.__variable.name
826
- )}
827
- @change=${(e) => __privateMethod(this, _toggleVariableSelection, toggleVariableSelection_fn).call(this, e, value.__variable)}
828
- />
829
- <span>${key}</span>
830
- </label>
831
- </div>
832
- `;
833
- } else {
834
- const expanded = this.expandedVariableGroups.has(groupPath);
835
- return html`
836
- <div class="option-row" style="align-items: flex-start;">
837
- <span
838
- style="cursor: pointer; display: flex; align-items: center;"
839
- @click=${() => __privateMethod(this, _toggleGroupExpand, toggleGroupExpand_fn).call(this, groupPath)}
840
- >
841
- <terra-icon
842
- library="heroicons"
843
- name="${expanded ? "outline-minus-circle" : "outline-plus-circle"}"
844
- style="margin-right: 4px;"
845
- ></terra-icon>
846
- <span style="font-weight: 500;">${key}</span>
847
- </span>
848
- </div>
849
- ${expanded ? __privateMethod(this, _renderVariableTree, renderVariableTree_fn).call(this, value.__children, [
850
- ...path,
851
- key
852
- ]) : ""}
853
- `;
854
- }
855
- })}
856
- </div>
857
- `;
858
- };
859
- _getAllGroupPaths = new WeakSet();
860
- getAllGroupPaths_fn = function(node, path = []) {
861
- let groups = [];
862
- for (const [key, value] of Object.entries(node)) {
863
- if (!value.__isLeaf) {
864
- const groupPath = [...path, key].join("/");
865
- groups.push(groupPath);
866
- groups = groups.concat(
867
- __privateMethod(this, _getAllGroupPaths, getAllGroupPaths_fn).call(this, value.__children, [...path, key])
868
- );
869
- }
870
- }
871
- return groups;
872
- };
873
- _toggleGroupExpand = new WeakSet();
874
- toggleGroupExpand_fn = function(groupPath) {
875
- const set = new Set(this.expandedVariableGroups);
876
- if (set.has(groupPath)) {
877
- set.delete(groupPath);
878
- } else {
879
- set.add(groupPath);
880
- }
881
- this.expandedVariableGroups = set;
882
- };
883
- _toggleExpandCollapseAll = new WeakSet();
884
- toggleExpandCollapseAll_fn = function(tree) {
885
- const allGroups = __privateMethod(this, _getAllGroupPaths, getAllGroupPaths_fn).call(this, tree);
886
- const allExpanded = allGroups.length > 0 && allGroups.every((g) => this.expandedVariableGroups.has(g));
887
- if (allExpanded) {
888
- this.expandedVariableGroups = /* @__PURE__ */ new Set();
889
- } else {
890
- this.expandedVariableGroups = new Set(allGroups);
891
- }
892
- };
893
- _toggleVariableSelection = new WeakSet();
894
- toggleVariableSelection_fn = function(e, variable) {
895
- __privateMethod(this, _markFieldTouched, markFieldTouched_fn).call(this, "variables");
896
- const checked = e.target.checked;
897
- if (checked) {
898
- if (!this.selectedVariables.some((v) => v.name === variable.name)) {
899
- this.selectedVariables = [...this.selectedVariables, variable];
900
- }
901
- } else {
902
- this.selectedVariables = this.selectedVariables.filter(
903
- (v) => v.name !== variable.name
904
- );
905
- }
906
- };
907
- _markFieldTouched = new WeakSet();
908
- markFieldTouched_fn = function(field) {
909
- this.touchedFields = new Set(this.touchedFields).add(field);
910
- };
911
- _resetVariableSelection = new WeakMap();
912
- _renderJobStatus = new WeakSet();
913
- renderJobStatus_fn = function() {
914
- var _a, _b;
915
- if (!((_a = __privateGet(this, _controller).currentJob) == null ? void 0 : _a.jobID)) {
916
- return html`<div class="results-section" id="job-status-section">
917
- <h2 class="results-title">Results:</h2>
918
-
919
- <div class="progress-container">
920
- <div class="progress-text">
921
- <span class="spinner"></span>
922
- <span class="status-running">Searching for data...</span>
923
- </div>
924
-
925
- <div class="progress-bar">
926
- <div class="progress-fill" style="width: 0%"></div>
927
- </div>
928
- </div>
929
-
930
- ${__privateMethod(this, _renderJobMessage, renderJobMessage_fn).call(this)}
931
- </div>`;
932
- }
933
- return html`
934
- <div class="results-section" id="job-status-section">
935
- <h2 class="results-title">Results:</h2>
936
-
937
- ${__privateGet(this, _controller).currentJob.status !== "canceled" && __privateGet(this, _controller).currentJob.status !== "failed" ? html` <div class="progress-container">
938
- <div class="progress-text">
939
- ${__privateGet(this, _controller).currentJob.progress >= 100 ? html`
940
- <span class="status-complete"
941
- >✓ Search complete</span
942
- >
943
- ` : html`
944
- <span class="spinner"></span>
945
- <span class="status-running"
946
- >Searching for data...
947
- (${__privateGet(this, _controller).currentJob.progress}%)</span
948
- >
949
- `}
950
- </div>
951
-
952
- <div class="progress-bar">
953
- <div
954
- class="progress-fill"
955
- style="width: ${__privateGet(this, _controller).currentJob.progress}%"
956
- ></div>
957
- </div>
958
- </div>` : nothing}
959
-
960
- <div class="search-status">
961
- <span class="file-count"
962
- >Found ${__privateMethod(this, _numberOfFilesFoundEstimate, numberOfFilesFoundEstimate_fn).call(this)} files</span
963
- >
964
- out of estimated
965
- <span class="estimated-total"
966
- >${__privateGet(this, _controller).currentJob.numInputGranules.toLocaleString()}</span
967
- >
968
- </div>
969
-
970
- ${__privateMethod(this, _renderJobMessage, renderJobMessage_fn).call(this)}
971
- ${((_b = __privateGet(this, _controller).currentJob.errors) == null ? void 0 : _b.length) ? html`
972
- <terra-accordion>
973
- <div slot="summary">
974
- <span
975
- class="accordion-title"
976
- style="color: #dc3545;"
977
- >Errors
978
- (${__privateGet(this, _controller).currentJob.errors.length})</span
979
- >
980
- </div>
981
- <div class="accordion-content">
982
- <ul
983
- style="color: #dc3545; font-size: 14px; padding-left: 20px;"
984
- >
985
- ${__privateGet(this, _controller).currentJob.errors.map(
986
- (err) => html`
987
- <li style="margin-bottom: 12px;">
988
- <a
989
- href="${err.url}"
990
- target="_blank"
991
- style="word-break: break-all; color: #dc3545; text-decoration: underline;"
992
- >
993
- ${err.url}
994
- </a>
995
- <div style="margin-top: 2px;">
996
- ${err.message}
997
- </div>
998
- </li>
999
- `
1000
- )}
1001
- </ul>
1002
- </div>
1003
- </terra-accordion>
1004
- ` : nothing}
1005
-
1006
- <div class="tabs">
1007
- <button
1008
- class="tab ${this.selectedTab === "web-links" ? "active" : ""}"
1009
- @click=${() => this.selectedTab = "web-links"}
1010
- >
1011
- Web Links
1012
- </button>
1013
-
1014
- <button
1015
- class="tab ${this.selectedTab === "selected-params" ? "active" : ""}"
1016
- @click=${() => this.selectedTab = "selected-params"}
1017
- >
1018
- Selected Parameters
1019
- </button>
1020
- </div>
1021
- <div
1022
- id="web-links"
1023
- class="tab-content ${this.selectedTab === "web-links" ? "active" : ""}"
1024
- >
1025
- ${__privateMethod(this, _getDocumentationLinks, getDocumentationLinks_fn).call(this).length ? html`
1026
- <div class="documentation-links">
1027
- ${__privateMethod(this, _getDocumentationLinks, getDocumentationLinks_fn).call(this).map(
1028
- (link) => html`
1029
- <a href="${link.href}" class="doc-link"
1030
- >${link.title}</a
1031
- >
1032
- `
1033
- )}
1034
- </div>
1035
- ` : nothing}
1036
-
1037
- <ul class="file-list">
1038
- ${__privateMethod(this, _getDataLinks, getDataLinks_fn).call(this).map(
1039
- (link) => html`
1040
- <li class="file-item">
1041
- <a
1042
- href="${link.href}"
1043
- class="file-link"
1044
- target="_blank"
1045
- >
1046
- ${link.title}
1047
- </a>
1048
- </li>
1049
- `
1050
- )}
1051
- </ul>
1052
- </div>
1053
-
1054
- <div
1055
- id="selected-params"
1056
- class="tab-content ${this.selectedTab === "selected-params" ? "active" : ""}"
1057
- >
1058
- ${__privateMethod(this, _renderSelectedParams, renderSelectedParams_fn).call(this)}
1059
- </div>
1060
- </div>
1061
-
1062
- <div class="footer">
1063
- ${__privateGet(this, _controller).currentJob.status === "successful" /* SUCCESSFUL */ || __privateGet(this, _controller).currentJob.status === "complete_with_errors" /* COMPLETE_WITH_ERRORS */ ? html`
1064
- <div>
1065
- <div
1066
- class="download-dropdown ${this.showDownloadMenu ? "open" : ""}"
1067
- >
1068
- <terra-button
1069
- @click=${(e) => __privateMethod(this, _toggleDownloadMenu, toggleDownloadMenu_fn).call(this, e)}
1070
- >
1071
- Download Options
1072
- <svg
1073
- class="dropdown-arrow"
1074
- viewBox="0 0 24 24"
1075
- fill="currentColor"
1076
- >
1077
- <path d="M7 10l5 5 5-5z" />
1078
- </svg>
1079
- </terra-button>
1080
-
1081
- <div
1082
- class="download-menu ${this.showDownloadMenu ? "open" : ""}"
1083
- >
1084
- <button
1085
- class="download-option"
1086
- @click=${(e) => __privateMethod(this, _downloadLinksAsTxt, downloadLinksAsTxt_fn).call(this, e)}
1087
- >
1088
- <svg
1089
- class="file-icon"
1090
- viewBox="0 0 24 24"
1091
- fill="currentColor"
1092
- >
1093
- <path
1094
- 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"
1095
- />
1096
- </svg>
1097
- File List
1098
- </button>
1099
- <button
1100
- class="download-option"
1101
- @click=${(e) => __privateMethod(this, _downloadPythonScript, downloadPythonScript_fn).call(this, e)}
1102
- >
1103
- <svg
1104
- class="file-icon"
1105
- viewBox="0 0 128 128"
1106
- width="16"
1107
- height="16"
1108
- >
1109
- <path
1110
- fill="currentColor"
1111
- 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"
1112
- ></path>
1113
- </svg>
1114
- Python Script
1115
- </button>
1116
- <button
1117
- class="download-option"
1118
- @click=${(e) => __privateMethod(this, _downloadEarthdataDownload, downloadEarthdataDownload_fn).call(this, e)}
1119
- >
1120
- <svg
1121
- class="file-icon"
1122
- viewBox="0 0 64 64"
1123
- fill="none"
1124
- width="16"
1125
- height="16"
1126
- >
1127
- <circle
1128
- cx="32"
1129
- cy="32"
1130
- r="28"
1131
- fill="currentColor"
1132
- />
1133
- <path
1134
- d="M32 14v26M32 40l-9-9M32 40l9-9"
1135
- stroke="#fff"
1136
- stroke-width="4"
1137
- stroke-linecap="round"
1138
- stroke-linejoin="round"
1139
- fill="none"
1140
- />
1141
- </svg>
1142
- Earthdata Download
1143
- </button>
1144
- </div>
1145
- </div>
1146
-
1147
- <terra-button
1148
- outline
1149
- @click=${() => __privateMethod(this, _handleJupyterNotebookClick, handleJupyterNotebookClick_fn).call(this)}
1150
- style="margin-left: 8px;"
1151
- >
1152
- <terra-icon
1153
- name="outline-code-bracket"
1154
- library="heroicons"
1155
- font-size="1.5em"
1156
- style="margin-right: 5px;"
1157
- ></terra-icon>
1158
- Open in Jupyter Notebook
1159
- </terra-button>
1160
- </div>
1161
- ` : nothing}
1162
- ${__privateGet(this, _controller).currentJob.status === "running" ? html`<button
1163
- class="btn btn-success"
1164
- @click=${__privateMethod(this, _cancelJob, cancelJob_fn)}
1165
- ?disabled=${this.cancelingGetData}
1166
- >
1167
- ${this.cancelingGetData ? "Canceling..." : "Cancel request"}
1168
- </button>` : nothing}
1169
-
1170
- <div class="job-info">
1171
- Job ID:
1172
- <span class="job-id">
1173
- ${this.bearerToken ? html`<a
1174
- href="https://harmony.earthdata.nasa.gov/jobs/${__privateGet(this, _controller).currentJob.jobID}"
1175
- target="_blank"
1176
- >${__privateGet(this, _controller).currentJob.jobID}</a
1177
- >` : __privateGet(this, _controller).currentJob.jobID}
1178
- </span>
1179
- <span class="info-icon">?</span>
1180
- </div>
1181
- </div>
1182
- `;
1183
- };
1184
- _renderSelectedParams = new WeakSet();
1185
- renderSelectedParams_fn = function() {
1186
- var _a, _b;
1187
- const collection = (_a = this.collectionWithServices) == null ? void 0 : _a.collection;
1188
- const variables = this.selectedVariables.length ? this.selectedVariables.map((v) => v.name) : ["All"];
1189
- const dateRange = this.selectedDateRange.startDate && this.selectedDateRange.endDate ? `${this.selectedDateRange.startDate} to ${this.selectedDateRange.endDate}` : "\u2014";
1190
- let spatial = "\u2014";
1191
- if (this.spatialSelection) {
1192
- if ("w" in this.spatialSelection) {
1193
- spatial = `Bounding Box: ${this.spatialSelection.w}, ${this.spatialSelection.s}, ${this.spatialSelection.e}, ${this.spatialSelection.n}`;
1194
- } else if ("lat" in this.spatialSelection && "lng" in this.spatialSelection) {
1195
- spatial = `Point: ${this.spatialSelection.lat}, ${this.spatialSelection.lng}`;
1196
- }
1197
- }
1198
- return html`
1199
- <dl class="params-summary">
1200
- <div>
1201
- <dt><strong>Dataset</strong></dt>
1202
- <dd>${(_b = collection == null ? void 0 : collection.EntryTitle) != null ? _b : "\u2014"}</dd>
1203
- </div>
1204
- <div>
1205
- <dt><strong>Variables</strong></dt>
1206
- <dd>${variables.map((v) => html`<div>${v}</div>`)}</dd>
1207
- </div>
1208
- <div>
1209
- <dt><strong>Date Range</strong></dt>
1210
- <dd>${dateRange}</dd>
1211
- </div>
1212
- <div>
1213
- <dt><strong>Spatial</strong></dt>
1214
- <dd>${spatial}</dd>
1215
- </div>
1216
- </dl>
1217
-
1218
- <terra-button @click=${__privateMethod(this, _refineParameters, refineParameters_fn)}
1219
- >Refine Parameters</terra-button
1220
- >
1221
- `;
1222
- };
1223
- _cancelJob = new WeakSet();
1224
- cancelJob_fn = function() {
1225
- this.cancelingGetData = true;
1226
- __privateGet(this, _controller).cancelCurrentJob();
1227
- };
1228
- _getData = new WeakSet();
1229
- getData_fn = function() {
1230
- this.cancelingGetData = false;
1231
- __privateMethod(this, _touchAllFields, touchAllFields_fn).call(this);
1232
- __privateGet(this, _controller).cancelCurrentJob();
1233
- __privateGet(this, _controller).currentJob = null;
1234
- __privateGet(this, _controller).jobStatusTask.run();
1235
- setTimeout(() => {
1236
- const el = this.renderRoot.querySelector("#job-status-section");
1237
- el == null ? void 0 : el.scrollIntoView({ behavior: "smooth" });
1238
- }, 100);
1239
- this.refineParameters = false;
1240
- };
1241
- _touchAllFields = new WeakSet();
1242
- touchAllFields_fn = function() {
1243
- this.touchedFields = /* @__PURE__ */ new Set(["variables", "spatial"]);
1244
- };
1245
- _numberOfFilesFoundEstimate = new WeakSet();
1246
- numberOfFilesFoundEstimate_fn = function() {
1247
- return Math.floor(
1248
- __privateGet(this, _controller).currentJob.numInputGranules * __privateGet(this, _controller).currentJob.progress / 100
1249
- );
1250
- };
1251
- _getDocumentationLinks = new WeakSet();
1252
- getDocumentationLinks_fn = function() {
1253
- return __privateGet(this, _controller).currentJob.links.filter(
1254
- (link) => link.rel === "stac-catalog-json"
1255
- );
1256
- };
1257
- _getDataLinks = new WeakSet();
1258
- getDataLinks_fn = function() {
1259
- return __privateGet(this, _controller).currentJob.links.filter((link) => link.rel === "data");
1260
- };
1261
- _hasAtLeastOneSubsetOption = new WeakSet();
1262
- hasAtLeastOneSubsetOption_fn = function() {
1263
- var _a, _b, _c, _d;
1264
- return ((_a = this.collectionWithServices) == null ? void 0 : _a.bboxSubset) || ((_b = this.collectionWithServices) == null ? void 0 : _b.shapeSubset) || ((_c = this.collectionWithServices) == null ? void 0 : _c.variableSubset) || ((_d = this.collectionWithServices) == null ? void 0 : _d.temporalSubset);
1265
- };
1266
- _hasSpatialSubset = new WeakSet();
1267
- hasSpatialSubset_fn = function() {
1268
- var _a, _b;
1269
- return ((_a = this.collectionWithServices) == null ? void 0 : _a.bboxSubset) || ((_b = this.collectionWithServices) == null ? void 0 : _b.shapeSubset);
1270
- };
1271
- _renderJobMessage = new WeakSet();
1272
- renderJobMessage_fn = function() {
1273
- const warningStatuses = [
1274
- "canceled" /* CANCELED */,
1275
- "complete_with_errors" /* COMPLETE_WITH_ERRORS */,
1276
- "running_with_errors" /* RUNNING_WITH_ERRORS */
1277
- ];
1278
- const errorStatuses = ["failed" /* FAILED */];
1279
- let type = "normal";
1280
- if (warningStatuses.includes(__privateGet(this, _controller).currentJob.status)) {
1281
- type = "warning";
1282
- } else if (errorStatuses.includes(__privateGet(this, _controller).currentJob.status)) {
1283
- type = "error";
1284
- }
1285
- let color, bg;
1286
- if (type === "error") {
1287
- color = "#dc3545";
1288
- bg = "#f8d7da";
1289
- } else if (type === "warning") {
1290
- color = "#856404";
1291
- bg = "#fff3cd";
1292
- } else {
1293
- color = "#555";
1294
- bg = "#f8f9fa";
1295
- }
1296
- return html`
1297
- <div
1298
- style="
1299
- margin: 24px 0 16px 0;
1300
- padding: 16px 20px;
1301
- border-radius: 6px;
1302
- background: ${bg};
1303
- color: ${color};
1304
- border: 1px solid ${color}22;
1305
- "
1306
- >
1307
- ${__privateMethod(this, _getJobMessageText, getJobMessageText_fn).call(this)}
1308
- </div>
1309
- `;
1310
- };
1311
- _getJobMessageText = new WeakSet();
1312
- getJobMessageText_fn = function() {
1313
- var _a;
1314
- return (_a = __privateGet(this, _controller).currentJob) == null ? void 0 : _a.message.replace(
1315
- /\b(The job|the job|job|Job)\b/g,
1316
- (match) => {
1317
- switch (match) {
1318
- case "The job":
1319
- return "Your request";
1320
- case "the job":
1321
- return "Your Request";
1322
- case "job":
1323
- return "request";
1324
- case "Job":
1325
- return "Request";
1326
- }
1327
- return match;
1328
- }
1329
- );
1330
- };
1331
- _estimateJobSize = new WeakSet();
1332
- estimateJobSize_fn = function() {
1333
- var _a, _b;
1334
- const collection = (_a = this.collectionWithServices) == null ? void 0 : _a.collection;
1335
- if (!collection)
1336
- return;
1337
- const range = __privateMethod(this, _getCollectionDateRange, getCollectionDateRange_fn).call(this);
1338
- let startDate;
1339
- let endDate;
1340
- let links = (_b = collection.granuleCount) != null ? _b : 0;
1341
- if (this.selectedDateRange.startDate && this.selectedDateRange.endDate) {
1342
- startDate = this.selectedDateRange.startDate;
1343
- endDate = this.selectedDateRange.endDate;
1344
- } else {
1345
- startDate = range.startDate;
1346
- endDate = range.endDate;
1347
- }
1348
- if (!startDate || !endDate)
1349
- return;
1350
- const start = new Date(startDate);
1351
- const end = new Date(endDate);
1352
- const days = Math.floor((end.getTime() - start.getTime()) / (1e3 * 60 * 60 * 24)) + 1;
1353
- if (range.startDate && range.endDate) {
1354
- const availableDaysInCollection = Math.floor(
1355
- (new Date(range.endDate).getTime() - new Date(range.startDate).getTime()) / (1e3 * 60 * 60 * 24)
1356
- ) + 1;
1357
- const granulesPerDay = links / availableDaysInCollection;
1358
- links = Math.ceil(days * granulesPerDay);
1359
- }
1360
- return { days, links };
1361
- };
1362
- _refineParameters = new WeakSet();
1363
- refineParameters_fn = function() {
1364
- this.refineParameters = true;
1365
- };
1366
- _toggleDownloadMenu = new WeakSet();
1367
- toggleDownloadMenu_fn = function(event) {
1368
- event.stopPropagation();
1369
- this.showDownloadMenu = !this.showDownloadMenu;
1370
- };
1371
- _downloadLinksAsTxt = new WeakSet();
1372
- downloadLinksAsTxt_fn = function(event) {
1373
- var _a;
1374
- event.stopPropagation();
1375
- if (!((_a = __privateGet(this, _controller).currentJob) == null ? void 0 : _a.links)) {
1376
- return;
1377
- }
1378
- const dataLinks = __privateMethod(this, _getDataLinks, getDataLinks_fn).call(this);
1379
- if (dataLinks.length === 0) {
1380
- return;
1381
- }
1382
- const content = dataLinks.map((link) => link.href).join("\n");
1383
- const blob = new Blob([content], { type: "text/plain" });
1384
- const url = URL.createObjectURL(blob);
1385
- const a = document.createElement("a");
1386
- a.href = url;
1387
- a.download = `subset_links_${__privateGet(this, _controller).currentJob.jobID}.txt`;
1388
- document.body.appendChild(a);
1389
- a.click();
1390
- document.body.removeChild(a);
1391
- URL.revokeObjectURL(url);
1392
- this.showDownloadMenu = false;
1393
- };
1394
- _downloadPythonScript = new WeakSet();
1395
- downloadPythonScript_fn = async function(event) {
1396
- var _a;
1397
- event.stopPropagation();
1398
- if (!((_a = __privateGet(this, _controller).currentJob) == null ? void 0 : _a.links)) {
1399
- return;
1400
- }
1401
- const response = await fetch(
1402
- getBasePath("assets/data-subsetter/download_subset_files.py.txt")
1403
- );
1404
- if (!response.ok) {
1405
- alert(
1406
- "Sorry, there was a problem generating the Python script. We are investigating the issue.\nYou could try using the Jupyter Notebook in the meantime"
1407
- );
1408
- }
1409
- const content = (await response.text()).replace(
1410
- /{{jobId}}/gi,
1411
- __privateGet(this, _controller).currentJob.jobID
1412
- );
1413
- const blob = new Blob([content], { type: "text/plain" });
1414
- const url = URL.createObjectURL(blob);
1415
- const a = document.createElement("a");
1416
- a.href = url;
1417
- a.download = `download_subset_files_${__privateGet(this, _controller).currentJob.jobID}.py`;
1418
- document.body.appendChild(a);
1419
- a.click();
1420
- document.body.removeChild(a);
1421
- URL.revokeObjectURL(url);
1422
- this.showDownloadMenu = false;
1423
- };
1424
- _downloadEarthdataDownload = new WeakSet();
1425
- downloadEarthdataDownload_fn = async function(event) {
1426
- var _a;
1427
- event.stopPropagation();
1428
- if (!((_a = __privateGet(this, _controller).currentJob) == null ? void 0 : _a.links)) {
1429
- return;
1430
- }
1431
- alert("Sorry, Earthdata Download is not currently supported");
1432
- this.showDownloadMenu = false;
1433
- };
1434
- _handleClickOutside = new WeakSet();
1435
- handleClickOutside_fn = function(event) {
1436
- if (!this.showDownloadMenu) {
1437
- return;
1438
- }
1439
- const target = event.target;
1440
- const downloadDropdown = this.renderRoot.querySelector(".download-dropdown");
1441
- if (downloadDropdown && !downloadDropdown.contains(target)) {
1442
- this.showDownloadMenu = false;
1443
- }
1444
- };
1445
- _handleJupyterNotebookClick = new WeakSet();
1446
- handleJupyterNotebookClick_fn = function() {
1447
- const jupyterLiteUrl = "https://gesdisc.github.io/jupyterlite/lab/index.html";
1448
- const jupyterWindow = window.open(jupyterLiteUrl, "_blank");
1449
- if (!jupyterWindow) {
1450
- console.error("Failed to open JupyterLite!");
1451
- return;
1452
- }
1453
- setTimeout(() => {
1454
- var _a, _b;
1455
- const notebook = [
1456
- {
1457
- id: "2733501b-0de4-4067-8aff-864e1b4c76cb",
1458
- cell_type: "code",
1459
- source: "%pip install -q terra_ui_components",
1460
- metadata: {
1461
- trusted: true
1462
- },
1463
- outputs: [],
1464
- execution_count: null
1465
- },
1466
- {
1467
- id: "870c1384-e706-48ee-ba07-fd552a949869",
1468
- cell_type: "code",
1469
- source: `from terra_ui_components import TerraDataSubsetter
1470
- subsetter = TerraDataSubsetter()
1471
-
1472
- subsetter.jobId = '${(_a = __privateGet(this, _controller).currentJob) == null ? void 0 : _a.jobID}'
1473
-
1474
- subsetter`,
1475
- metadata: {
1476
- trusted: true
1477
- },
1478
- outputs: [],
1479
- execution_count: null
1480
- }
1481
- ];
1482
- console.log("posting to JupyterLite ", notebook);
1483
- jupyterWindow.postMessage(
1484
- {
1485
- type: "load-notebook",
1486
- filename: `subset_${(_b = __privateGet(this, _controller).currentJob) == null ? void 0 : _b.jobID}.ipynb`,
1487
- notebook
1488
- },
1489
- "*"
1490
- );
1491
- }, 500);
1492
- };
1493
- _renderAvailableTemporalRangeSection = new WeakSet();
1494
- renderAvailableTemporalRangeSection_fn = function() {
1495
- const { startDate, endDate } = __privateMethod(this, _getCollectionDateRange, getCollectionDateRange_fn).call(this);
1496
- if (!startDate || !endDate)
1497
- return nothing;
1498
- return html`
1499
- <div class="section" style="margin-bottom: 16px;">
1500
- <h2 class="section-title">Available Date Range</h2>
1501
- <div style="color: #31708f; margin-top: 8px;">
1502
- <strong>${startDate}</strong> to <strong>${endDate}</strong>
1503
- </div>
1504
- <div style="font-size: 0.95em; color: #666;">
1505
- This collection does not support temporal subsetting.
1506
- </div>
1507
- </div>
1508
- `;
1509
- };
1510
- _renderAvailableSpatialRangeSection = new WeakSet();
1511
- renderAvailableSpatialRangeSection_fn = function() {
1512
- var _a, _b, _c, _d, _e;
1513
- 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;
1514
- if (!boundingRects || !Array.isArray(boundingRects) || !boundingRects.length)
1515
- return nothing;
1516
- return html`
1517
- <div class="section" style="margin-bottom: 16px;">
1518
- <h2 class="section-title">Available Spatial Area</h2>
1519
- <div style="color: #31708f; margin-top: 8px;">
1520
- ${boundingRects.map(
1521
- (rect) => html`<div>
1522
- <strong>Bounding Box:</strong>
1523
- ${rect.WestBoundingCoordinate},
1524
- ${rect.SouthBoundingCoordinate},
1525
- ${rect.EastBoundingCoordinate},
1526
- ${rect.NorthBoundingCoordinate}
1527
- </div>`
1528
- )}
1529
- </div>
1530
- <div style="font-size: 0.95em; color: #666;">
1531
- This collection does not support spatial subsetting.
1532
- </div>
1533
- </div>
1534
- `;
1535
- };
1536
- TerraDataSubsetter.styles = [component_styles_default, data_subsetter_styles_default];
1537
- TerraDataSubsetter.dependencies = {
1538
- "terra-accordion": TerraAccordion,
1539
- "terra-date-picker": TerraDatePicker,
1540
- "terra-icon": TerraIcon,
1541
- "terra-spatial-picker": TerraSpatialPicker,
1542
- "terra-login": TerraLogin
1543
- };
1544
- __decorateClass([
1545
- property({ reflect: true, attribute: "collection-entry-id" })
1546
- ], TerraDataSubsetter.prototype, "collectionEntryId", 2);
1547
- __decorateClass([
1548
- property({ reflect: true, type: Boolean, attribute: "show-collection-search" })
1549
- ], TerraDataSubsetter.prototype, "showCollectionSearch", 2);
1550
- __decorateClass([
1551
- property({ reflect: true, attribute: "job-id" })
1552
- ], TerraDataSubsetter.prototype, "jobId", 2);
1553
- __decorateClass([
1554
- property({ attribute: "bearer-token" })
1555
- ], TerraDataSubsetter.prototype, "bearerToken", 2);
1556
- __decorateClass([
1557
- state()
1558
- ], TerraDataSubsetter.prototype, "collectionWithServices", 2);
1559
- __decorateClass([
1560
- state()
1561
- ], TerraDataSubsetter.prototype, "selectedVariables", 2);
1562
- __decorateClass([
1563
- state()
1564
- ], TerraDataSubsetter.prototype, "expandedVariableGroups", 2);
1565
- __decorateClass([
1566
- state()
1567
- ], TerraDataSubsetter.prototype, "touchedFields", 2);
1568
- __decorateClass([
1569
- state()
1570
- ], TerraDataSubsetter.prototype, "spatialSelection", 2);
1571
- __decorateClass([
1572
- state()
1573
- ], TerraDataSubsetter.prototype, "selectedDateRange", 2);
1574
- __decorateClass([
1575
- state()
1576
- ], TerraDataSubsetter.prototype, "selectedFormat", 2);
1577
- __decorateClass([
1578
- state()
1579
- ], TerraDataSubsetter.prototype, "cancelingGetData", 2);
1580
- __decorateClass([
1581
- state()
1582
- ], TerraDataSubsetter.prototype, "selectedTab", 2);
1583
- __decorateClass([
1584
- state()
1585
- ], TerraDataSubsetter.prototype, "refineParameters", 2);
1586
- __decorateClass([
1587
- state()
1588
- ], TerraDataSubsetter.prototype, "showDownloadMenu", 2);
1589
- __decorateClass([
1590
- state()
1591
- ], TerraDataSubsetter.prototype, "renderedInDialog", 2);
1592
- __decorateClass([
1593
- state()
1594
- ], TerraDataSubsetter.prototype, "collectionSearchType", 2);
1595
- __decorateClass([
1596
- state()
1597
- ], TerraDataSubsetter.prototype, "collectionSearchQuery", 2);
1598
- __decorateClass([
1599
- state()
1600
- ], TerraDataSubsetter.prototype, "collectionSearchLoading", 2);
1601
- __decorateClass([
1602
- state()
1603
- ], TerraDataSubsetter.prototype, "collectionSearchResults", 2);
1604
- __decorateClass([
1605
- state()
1606
- ], TerraDataSubsetter.prototype, "collectionLoading", 2);
1607
- __decorateClass([
1608
- state()
1609
- ], TerraDataSubsetter.prototype, "collectionAccordionOpen", 2);
1610
- __decorateClass([
1611
- query('[part~="spatial-picker"]')
1612
- ], TerraDataSubsetter.prototype, "spatialPicker", 2);
1613
- __decorateClass([
1614
- watch(["jobId"], { waitUntilFirstUpdate: true })
1615
- ], TerraDataSubsetter.prototype, "jobIdChanged", 1);
1616
- __decorateClass([
1617
- watch(["collectionWithServices"])
1618
- ], TerraDataSubsetter.prototype, "collectionChanged", 1);
1619
- __decorateClass([
1620
- debounce(500)
1621
- ], TerraDataSubsetter.prototype, "handleCollectionSearch", 1);
1622
-
1623
- export {
1624
- TerraDataSubsetter
1625
- };