@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.
- package/cdn/chunks/{chunk.TJWGQR3Y.js → chunk.3FZ6AEEA.js} +2 -2
- package/cdn/chunks/{chunk.UA57XIMB.js → chunk.3JI4ZASI.js} +1 -1
- package/cdn/chunks/{chunk.LZSKCTIU.js → chunk.3SQ33WJL.js} +6 -6
- package/cdn/chunks/{chunk.HP52P3QK.js → chunk.4IJQVKJY.js} +1 -1
- package/cdn/chunks/{chunk.EPQBAMGN.js → chunk.4JJYLS5O.js} +1 -1
- package/cdn/chunks/{chunk.LF5NNQDS.js → chunk.4NJFWJSE.js} +1 -1
- package/cdn/chunks/{chunk.CGIR4OSR.js → chunk.55LGBI57.js} +1 -1
- package/cdn/chunks/{chunk.ELVU6MXJ.js → chunk.5FAYR3PP.js} +1 -1
- package/cdn/chunks/{chunk.YMKCGXI7.js → chunk.5IAG4NBE.js} +1 -1
- package/cdn/chunks/{chunk.42OJJSTJ.js → chunk.5IC6HAC4.js} +12 -12
- package/cdn/chunks/{chunk.7OS7YKP4.js → chunk.5OGMADCK.js} +1 -1
- package/cdn/chunks/{chunk.JIGZ6E5V.js → chunk.62Z55X5S.js} +1 -1
- package/cdn/chunks/{chunk.XQNQJ73Y.js → chunk.6LUTXGKW.js} +7 -7
- package/cdn/chunks/{chunk.PDAOAQE4.js → chunk.6XY3FOMX.js} +5 -5
- package/cdn/chunks/{chunk.267X6M4K.js → chunk.73KDDHAO.js} +1 -1
- package/cdn/chunks/{chunk.SJHEJ7W7.js → chunk.7DLSKRXG.js} +1 -1
- package/cdn/chunks/{chunk.SJYXIRDX.js → chunk.7KKYYPTM.js} +1 -1
- package/cdn/chunks/{chunk.VGHXDEZO.js → chunk.7XRTJKVT.js} +1 -1
- package/cdn/chunks/{chunk.XKNIRUTP.js → chunk.B3D77BQY.js} +4 -4
- package/cdn/chunks/{chunk.BXZG34AL.js → chunk.BMOKXC64.js} +1 -1
- package/cdn/chunks/{chunk.LF2YS25X.js → chunk.BXQBOSBQ.js} +5 -5
- package/cdn/chunks/{chunk.Z5SQ4THO.js → chunk.CA5KUDEK.js} +1 -1
- package/cdn/chunks/{chunk.SLDPYP3J.js → chunk.CJDPXSOE.js} +1 -1
- package/cdn/chunks/{chunk.5KFA2A5F.js → chunk.DVCD6CI3.js} +1 -1
- package/cdn/chunks/{chunk.I2VFSA6U.js → chunk.E4AHIY7H.js} +1 -1
- package/cdn/chunks/{chunk.VYDVYEG6.js → chunk.F3KEUZZJ.js} +1 -1
- package/cdn/chunks/{chunk.U7VIR3OC.js → chunk.FCI4XD47.js} +8 -8
- package/cdn/chunks/{chunk.DKQUCHXW.js → chunk.FDBCRQUW.js} +1 -1
- package/cdn/chunks/{chunk.NT4JROIJ.js → chunk.H4M7ZCA7.js} +1 -1
- package/cdn/chunks/{chunk.5IYUIO2L.js → chunk.HCCWZHVO.js} +1 -1
- package/cdn/chunks/{chunk.BDUFTI77.js → chunk.HNZF3Q35.js} +1 -1
- package/cdn/chunks/{chunk.MN7UEWGN.js → chunk.I6RVBJLO.js} +1 -1
- package/cdn/chunks/{chunk.3NBSKUOT.js → chunk.ICVZZZVO.js} +1 -1
- package/cdn/chunks/{chunk.F26HLQPA.js → chunk.II2ED6UA.js} +4 -4
- package/cdn/chunks/{chunk.F6FOZL2X.js → chunk.IOD5Z3JD.js} +1 -1
- package/cdn/chunks/{chunk.FT6FCCXU.js → chunk.IYBWQUJZ.js} +6 -6
- package/cdn/chunks/{chunk.YNJENG4F.js → chunk.JMHRTVJH.js} +1 -1
- package/cdn/chunks/{chunk.UEDKVSIH.js → chunk.JR4LSDMW.js} +1 -1
- package/cdn/chunks/{chunk.VDOKMZL7.js → chunk.JTUBHUKA.js} +5 -5
- package/cdn/chunks/{chunk.SX6OLRTC.js → chunk.KFVXZS3X.js} +11 -11
- package/cdn/chunks/{chunk.563FCLVE.js → chunk.KGLHY4PU.js} +1 -1
- package/cdn/chunks/{chunk.37HJNI4K.js → chunk.KNB73C5F.js} +7 -7
- package/cdn/chunks/{chunk.MB27YSID.js → chunk.L2AOHBBQ.js} +1 -1
- package/cdn/chunks/{chunk.LRHEF6JN.js → chunk.L2ZNA62Y.js} +1 -1
- package/cdn/chunks/{chunk.ZNKT2Q6X.js → chunk.LFAGYZ3O.js} +2 -2
- package/cdn/chunks/{chunk.J5OQO7FQ.js → chunk.LNEFGXPD.js} +1 -1
- package/cdn/chunks/{chunk.UHOMZS5K.js → chunk.LP7NLHLL.js} +17 -17
- package/cdn/chunks/{chunk.ZBRNWBWX.js → chunk.M4EODEDC.js} +1 -1
- package/cdn/chunks/{chunk.HMS35ZFE.js → chunk.MUYS3VLW.js} +1 -1
- package/cdn/chunks/{chunk.KFMZHBMX.js → chunk.NGAJRQJB.js} +1 -1
- package/cdn/chunks/{chunk.UMT2LQ4W.js → chunk.NQLMKYED.js} +1 -1
- package/cdn/chunks/{chunk.RJR6I3VL.js → chunk.NYDLL72U.js} +1 -1
- package/cdn/chunks/{chunk.ZAROXC53.js → chunk.OLYROLKH.js} +1 -1
- package/cdn/chunks/{chunk.7MLJ7J6F.js → chunk.OMW7ULTP.js} +1 -1
- package/cdn/chunks/{chunk.2O6ZLP2H.js → chunk.OSXIXZKE.js} +1 -1
- package/cdn/chunks/{chunk.H4KNN2HU.js → chunk.PLLTEKKU.js} +1 -1
- package/cdn/chunks/{chunk.HVXUUXZ7.js → chunk.RJBYTRM2.js} +4 -4
- package/cdn/chunks/{chunk.RF7RG72G.js → chunk.SJ7O6QI3.js} +1 -1
- package/cdn/chunks/{chunk.ZZMMULOM.js → chunk.TSU53YSH.js} +1 -1
- package/cdn/chunks/{chunk.UO6SHH3I.js → chunk.U243QYHF.js} +1 -1
- package/cdn/chunks/{chunk.T33FEXFP.js → chunk.UAC2MIRZ.js} +10 -10
- package/cdn/chunks/{chunk.2UTYN7TH.js → chunk.VBKBOPQR.js} +1 -1
- package/cdn/chunks/{chunk.UKT47BLY.js → chunk.VKXE3YUS.js} +2 -2
- package/cdn/chunks/{chunk.YQRTSELX.js → chunk.VNCMA65E.js} +1 -1
- package/cdn/chunks/{chunk.BLILGPHT.js → chunk.WEEDF4SQ.js} +8 -8
- package/cdn/chunks/{chunk.A5QNIXR4.js → chunk.WIHL6X6I.js} +1 -1
- package/cdn/chunks/{chunk.WXFIXIOS.js → chunk.WJGGDK46.js} +1 -1
- package/cdn/chunks/{chunk.DLTRS5SJ.js → chunk.WOERWJEG.js} +1 -1
- package/cdn/chunks/{chunk.QI3YAMIR.js → chunk.WWFZDE2Z.js} +1 -1
- package/cdn/chunks/{chunk.7TSM56FT.js → chunk.X3DN6UYC.js} +1 -1
- package/cdn/chunks/{chunk.TU7POBNP.js → chunk.XR5EZIHP.js} +1 -1
- package/cdn/chunks/{chunk.6YSGUTCT.js → chunk.YIEN3BZP.js} +1 -1
- package/cdn/chunks/{chunk.PX3KFYMT.js → chunk.YRVGQ5QO.js} +1 -1
- package/cdn/chunks/{chunk.Z3FCGMJE.js → chunk.YUZHTH3D.js} +1 -1
- package/cdn/chunks/{chunk.QVPRK545.js → chunk.ZB4I7IRN.js} +2 -2
- package/cdn/chunks/{chunk.4RM2EJEW.js → chunk.ZKDNJM5P.js} +4 -4
- package/cdn/chunks/{chunk.VUJ26IHB.js → chunk.ZW5L75IK.js} +1 -1
- package/cdn/components/accordion/accordion.component.js +5 -5
- package/cdn/components/accordion/accordion.js +6 -6
- package/cdn/components/alert/alert.component.js +3 -3
- package/cdn/components/alert/alert.js +4 -4
- package/cdn/components/browse-variables/browse-variables.component.js +17 -17
- package/cdn/components/browse-variables/browse-variables.controller.js +1 -1
- package/cdn/components/browse-variables/browse-variables.js +18 -18
- package/cdn/components/button/button.component.js +2 -2
- package/cdn/components/button/button.js +3 -3
- package/cdn/components/chip/chip.component.js +2 -2
- package/cdn/components/chip/chip.js +3 -3
- package/cdn/components/combobox/combobox.component.js +6 -6
- package/cdn/components/combobox/combobox.js +7 -7
- package/cdn/components/data-rods/data-rods.component.js +31 -31
- package/cdn/components/data-rods/data-rods.js +32 -32
- package/cdn/components/data-subsetter/data-subsetter.component.js +23 -23
- package/cdn/components/data-subsetter/data-subsetter.controller.js +2 -2
- package/cdn/components/data-subsetter/data-subsetter.js +24 -24
- package/cdn/components/data-subsetter-history/data-subsetter-history.component.js +25 -25
- package/cdn/components/data-subsetter-history/data-subsetter-history.js +26 -26
- package/cdn/components/date-picker/date-picker.component.js +3 -3
- package/cdn/components/date-picker/date-picker.js +4 -4
- package/cdn/components/date-range-slider/date-range-slider.component.js +3 -3
- package/cdn/components/date-range-slider/date-range-slider.js +4 -4
- package/cdn/components/dialog/dialog.component.js +2 -2
- package/cdn/components/dialog/dialog.js +3 -3
- package/cdn/components/icon/icon.component.js +3 -3
- package/cdn/components/icon/icon.js +4 -4
- package/cdn/components/loader/loader.component.js +2 -2
- package/cdn/components/loader/loader.js +3 -3
- package/cdn/components/login/login.component.js +13 -13
- package/cdn/components/login/login.js +14 -14
- package/cdn/components/map/map.component.js +4 -4
- package/cdn/components/map/map.js +5 -5
- package/cdn/components/plot/plot.component.js +3 -3
- package/cdn/components/plot/plot.js +4 -4
- package/cdn/components/plot-toolbar/plot-toolbar.component.js +10 -10
- package/cdn/components/plot-toolbar/plot-toolbar.js +11 -11
- package/cdn/components/skeleton/skeleton.component.js +6 -6
- package/cdn/components/skeleton/skeleton.js +7 -7
- package/cdn/components/spatial-picker/spatial-picker.component.js +5 -5
- package/cdn/components/spatial-picker/spatial-picker.js +6 -6
- package/cdn/components/time-average-map/time-average-map.component.js +14 -14
- package/cdn/components/time-average-map/time-average-map.controller.js +2 -2
- package/cdn/components/time-average-map/time-average-map.js +15 -15
- package/cdn/components/time-series/time-series.component.js +19 -19
- package/cdn/components/time-series/time-series.controller.js +2 -2
- package/cdn/components/time-series/time-series.js +20 -20
- package/cdn/components/variable-combobox/lib.js +3 -3
- package/cdn/components/variable-combobox/variable-combobox.component.js +15 -15
- package/cdn/components/variable-combobox/variable-combobox.controller.js +4 -4
- package/cdn/components/variable-combobox/variable-combobox.js +16 -16
- package/cdn/components/variable-keyword-search/variable-keyword-search.component.js +13 -13
- package/cdn/components/variable-keyword-search/variable-keyword-search.controller.js +1 -1
- package/cdn/components/variable-keyword-search/variable-keyword-search.js +14 -14
- package/cdn/custom-elements.json +916 -916
- package/cdn/react/accordion/index.js +6 -6
- package/cdn/react/alert/index.js +4 -4
- package/cdn/react/browse-variables/index.js +18 -18
- package/cdn/react/button/index.js +3 -3
- package/cdn/react/chip/index.js +3 -3
- package/cdn/react/combobox/index.js +7 -7
- package/cdn/react/data-rods/index.js +32 -32
- package/cdn/react/data-subsetter/index.js +24 -24
- package/cdn/react/data-subsetter-history/index.js +26 -26
- package/cdn/react/date-picker/index.js +4 -4
- package/cdn/react/date-range-slider/index.js +4 -4
- package/cdn/react/dialog/index.js +3 -3
- package/cdn/react/icon/index.js +4 -4
- package/cdn/react/index.d.ts +5 -5
- package/cdn/react/index.js +92 -92
- package/cdn/react/loader/index.js +3 -3
- package/cdn/react/login/index.js +14 -14
- package/cdn/react/map/index.js +5 -5
- package/cdn/react/plot/index.js +4 -4
- package/cdn/react/plot-toolbar/index.js +11 -11
- package/cdn/react/skeleton/index.js +7 -7
- package/cdn/react/spatial-picker/index.js +6 -6
- package/cdn/react/time-average-map/index.js +15 -15
- package/cdn/react/time-series/index.js +20 -20
- package/cdn/react/variable-combobox/index.js +16 -16
- package/cdn/react/variable-keyword-search/index.js +14 -14
- package/cdn/terra-ui-components.js +94 -94
- package/cdn/types/vue/index.d.ts +86 -86
- package/cdn/utilities/animation.js +4 -4
- package/cdn/vscode.html-custom-data.json +67 -67
- package/cdn/web-types.json +170 -170
- package/dist/chunks/{chunk.NLADA7XK.js → chunk.26V7ZPS4.js} +1 -1
- package/dist/chunks/{chunk.GUYBX63F.js → chunk.2ZMKPLX6.js} +1 -1
- package/{cdn/chunks/chunk.L2M2AJ4W.js → dist/chunks/chunk.37M5YK3W.js} +1 -1
- package/dist/chunks/{chunk.TJGA66AX.js → chunk.4LKXRKXL.js} +1 -1
- package/{cdn/chunks/chunk.OBANVLY7.js → dist/chunks/chunk.4WRLOQLA.js} +1 -1
- package/{cdn/chunks/chunk.RJUTQBOV.js → dist/chunks/chunk.5JOGO4GR.js} +1 -1
- package/{cdn/chunks/chunk.RDID3JKQ.js → dist/chunks/chunk.6PSK3KPO.js} +1 -1
- package/dist/chunks/{chunk.JOTLSXEI.js → chunk.6RSLYKTT.js} +1 -1
- package/dist/chunks/{chunk.JOFHFGQP.js → chunk.6SQICGVV.js} +1 -1
- package/{cdn/chunks/chunk.OX5IY75Y.js → dist/chunks/chunk.6VUQH3BO.js} +1 -1
- package/dist/chunks/{chunk.IJC2KB5R.js → chunk.743LAY5Q.js} +1 -1
- package/dist/chunks/{chunk.LQOZT7TL.js → chunk.75O4JWZW.js} +5 -5
- package/dist/chunks/{chunk.42V23REY.js → chunk.7BTWKWFZ.js} +1 -1
- package/{cdn/chunks/chunk.YP5DVLJS.js → dist/chunks/chunk.7D4GSZCV.js} +1 -1
- package/dist/chunks/{chunk.GGRGK2NT.js → chunk.ALR4V5FX.js} +5 -5
- package/{cdn/chunks/chunk.YIP3L3SE.js → dist/chunks/chunk.ASC4SJ6R.js} +1 -1
- package/dist/chunks/{chunk.2BW4SOWQ.js → chunk.AU63C56Q.js} +1 -1
- package/{cdn/chunks/chunk.AU4MMC6N.js → dist/chunks/chunk.BCP7S3X7.js} +1 -1
- package/dist/chunks/{chunk.IFHDVWGZ.js → chunk.BNHHBTWD.js} +4 -4
- package/dist/chunks/{chunk.4SUQPJ6R.js → chunk.BP3OEUJG.js} +1 -1
- package/{cdn/chunks/chunk.RVH4PSND.js → dist/chunks/chunk.BYY32NG2.js} +7 -7
- package/{cdn/chunks/chunk.MFI2M54Y.js → dist/chunks/chunk.C2ZEQSEZ.js} +2 -2
- package/{cdn/chunks/chunk.AHGKSSSI.js → dist/chunks/chunk.CN4EXXGY.js} +5 -5
- package/dist/chunks/{chunk.5TZQDEBJ.js → chunk.D6G7W3DM.js} +1 -1
- package/{cdn/chunks/chunk.PRQ5P3TK.js → dist/chunks/chunk.DDBGX2TO.js} +1 -1
- package/{cdn/chunks/chunk.642Z3X7N.js → dist/chunks/chunk.DKFYGH3L.js} +1 -1
- package/{cdn/chunks/chunk.X7MVYC7B.js → dist/chunks/chunk.DTTIVMQV.js} +1 -1
- package/{cdn/chunks/chunk.SWDQJJ7Q.js → dist/chunks/chunk.DUBH3JNT.js} +1 -1
- package/dist/chunks/{chunk.4WKVINLB.js → chunk.EBOWM2DU.js} +1 -1
- package/{cdn/chunks/chunk.WXZHDVQ3.js → dist/chunks/chunk.EMLBLKQD.js} +1 -1
- package/{cdn/chunks/chunk.QHY2BYL4.js → dist/chunks/chunk.EYPCLMGV.js} +1 -1
- package/{cdn/chunks/chunk.PA5O6555.js → dist/chunks/chunk.FFDFWWEB.js} +1 -1
- package/dist/chunks/{chunk.2WYXDPGS.js → chunk.FKDPQ5GW.js} +1 -1
- package/{cdn/chunks/chunk.QNNEWLT7.js → dist/chunks/chunk.FMFVFTOQ.js} +1 -1
- package/{cdn/chunks/chunk.H73IKOBV.js → dist/chunks/chunk.FYR4FP7W.js} +1 -1
- package/{cdn/chunks/chunk.URKW2CME.js → dist/chunks/chunk.G2IQVPB7.js} +1 -1
- package/dist/chunks/{chunk.FF3EIVF2.js → chunk.G6IJFGY6.js} +1 -1
- package/{cdn/chunks/chunk.SRBWEFVT.js → dist/chunks/chunk.HP6ZZIC6.js} +1 -1
- package/{cdn/chunks/chunk.2OQZA3CW.js → dist/chunks/chunk.I5KW33O3.js} +1 -1
- package/dist/chunks/{chunk.4E55SLUR.js → chunk.IT3QXCNY.js} +1 -1
- package/{cdn/chunks/chunk.EBJUC35J.js → dist/chunks/chunk.JALYRVQR.js} +1 -1
- package/{cdn/chunks/chunk.ERXCYNDC.js → dist/chunks/chunk.K3KSX5PF.js} +1 -1
- package/{cdn/chunks/chunk.RBVJJWF4.js → dist/chunks/chunk.K5ZPXI35.js} +1 -1
- package/dist/chunks/{chunk.BRVCFRLF.js → chunk.K66IQUBI.js} +1 -1
- package/dist/chunks/{chunk.3H5ZUQL5.js → chunk.KLJHGS6C.js} +9 -9
- package/dist/chunks/{chunk.UDCRU3NE.js → chunk.MZ7EYOT2.js} +1 -1
- package/{cdn/chunks/chunk.64ARWPHU.js → dist/chunks/chunk.OQ6SJHS5.js} +1 -1
- package/{cdn/chunks/chunk.FNTPKP6P.js → dist/chunks/chunk.OVXHDE6T.js} +6 -6
- package/{cdn/chunks/chunk.OY5R7EVO.js → dist/chunks/chunk.P7PWPHUY.js} +1 -1
- package/dist/chunks/{chunk.PAJVTERU.js → chunk.PCMPWRYJ.js} +1 -1
- package/dist/chunks/{chunk.TSIWRLNC.js → chunk.PSD2VZSB.js} +1 -1
- package/{cdn/chunks/chunk.P6OOV5UQ.js → dist/chunks/chunk.PT4DIXWP.js} +1 -1
- package/dist/chunks/{chunk.4EIGF3E4.js → chunk.Q4R3537E.js} +3 -3
- package/dist/chunks/{chunk.MKU7QBFN.js → chunk.QFNQINHO.js} +1 -1
- package/dist/chunks/{chunk.5QKVNNUH.js → chunk.QSUL47CQ.js} +5 -5
- package/{cdn/chunks/chunk.OVUWZWWN.js → dist/chunks/chunk.R5AO3NVL.js} +3 -3
- package/{cdn/chunks/chunk.2GEN6UCO.js → dist/chunks/chunk.SKL6FUWM.js} +1 -1
- package/dist/chunks/{chunk.NQYUJ7FK.js → chunk.T23NXW3N.js} +1 -1
- package/{cdn/chunks/chunk.2LGINANI.js → dist/chunks/chunk.TNBSVB25.js} +1 -1
- package/dist/chunks/{chunk.H2UQBMCX.js → chunk.US5SMFVR.js} +1 -1
- package/dist/chunks/{chunk.A7GHUUVY.js → chunk.V4PVPKFS.js} +1 -1
- package/dist/chunks/{chunk.GL5HOXON.js → chunk.VAPVESWR.js} +1 -1
- package/{cdn/chunks/chunk.JHEFOGNL.js → dist/chunks/chunk.VKLXRQIG.js} +1 -1
- package/{cdn/chunks/chunk.3XJ5QNGT.js → dist/chunks/chunk.W3ASID7S.js} +1 -1
- package/dist/chunks/{chunk.2AIVKD54.js → chunk.W3JGEHKY.js} +1 -1
- package/dist/chunks/{chunk.Y7ZED6A4.js → chunk.WFNNFLKW.js} +1 -1
- package/dist/chunks/{chunk.B6JXOXP5.js → chunk.WKZGPPFO.js} +13 -13
- package/dist/chunks/{chunk.MEMNTMV2.js → chunk.WUERN5LU.js} +2 -2
- package/dist/chunks/{chunk.L7RNO3FR.js → chunk.XHROUW2S.js} +1 -1
- package/{cdn/chunks/chunk.CA2ZDE2M.js → dist/chunks/chunk.YS4V4GNL.js} +1 -1
- package/dist/chunks/{chunk.GQRGC6YW.js → chunk.Z47GILML.js} +1 -1
- package/{cdn/chunks/chunk.ADFWUZLL.js → dist/chunks/chunk.Z5RZBPUO.js} +1 -1
- package/dist/chunks/{chunk.YMHBYV33.js → chunk.Z73RODDQ.js} +10 -10
- package/dist/chunks/{chunk.HUX2RF6U.js → chunk.ZOOMTF4P.js} +1 -1
- package/dist/components/accordion/accordion.component.js +4 -4
- package/dist/components/accordion/accordion.js +5 -5
- package/dist/components/alert/alert.component.js +3 -3
- package/dist/components/alert/alert.js +4 -4
- package/dist/components/browse-variables/browse-variables.component.js +11 -11
- package/dist/components/browse-variables/browse-variables.js +12 -12
- package/dist/components/button/button.component.js +2 -2
- package/dist/components/button/button.js +3 -3
- package/dist/components/chip/chip.component.js +2 -2
- package/dist/components/chip/chip.js +3 -3
- package/dist/components/combobox/combobox.component.js +2 -2
- package/dist/components/combobox/combobox.js +3 -3
- package/dist/components/data-rods/data-rods.component.js +22 -22
- package/dist/components/data-rods/data-rods.js +23 -23
- package/dist/components/data-subsetter/data-subsetter.component.js +17 -17
- package/dist/components/data-subsetter/data-subsetter.js +18 -18
- package/dist/components/data-subsetter-history/data-subsetter-history.component.js +19 -19
- package/dist/components/data-subsetter-history/data-subsetter-history.js +20 -20
- package/dist/components/date-picker/date-picker.component.js +3 -3
- package/dist/components/date-picker/date-picker.js +4 -4
- package/dist/components/date-range-slider/date-range-slider.component.js +3 -3
- package/dist/components/date-range-slider/date-range-slider.js +4 -4
- package/dist/components/dialog/dialog.component.js +2 -2
- package/dist/components/dialog/dialog.js +3 -3
- package/dist/components/icon/icon.component.js +2 -2
- package/dist/components/icon/icon.js +3 -3
- package/dist/components/loader/loader.component.js +2 -2
- package/dist/components/loader/loader.js +3 -3
- package/dist/components/login/login.component.js +10 -10
- package/dist/components/login/login.js +11 -11
- package/dist/components/map/map.component.js +2 -2
- package/dist/components/map/map.js +3 -3
- package/dist/components/plot/plot.component.js +2 -2
- package/dist/components/plot/plot.js +3 -3
- package/dist/components/plot-toolbar/plot-toolbar.component.js +6 -6
- package/dist/components/plot-toolbar/plot-toolbar.js +7 -7
- package/dist/components/skeleton/skeleton.component.js +2 -2
- package/dist/components/skeleton/skeleton.js +3 -3
- package/dist/components/spatial-picker/spatial-picker.component.js +3 -3
- package/dist/components/spatial-picker/spatial-picker.js +4 -4
- package/dist/components/time-average-map/time-average-map.component.js +8 -8
- package/dist/components/time-average-map/time-average-map.js +9 -9
- package/dist/components/time-series/time-series.component.js +13 -13
- package/dist/components/time-series/time-series.js +14 -14
- package/dist/components/variable-combobox/variable-combobox.component.js +8 -8
- package/dist/components/variable-combobox/variable-combobox.js +9 -9
- package/dist/components/variable-keyword-search/variable-keyword-search.component.js +8 -8
- package/dist/components/variable-keyword-search/variable-keyword-search.js +9 -9
- package/dist/custom-elements.json +916 -916
- package/dist/react/accordion/index.js +5 -5
- package/dist/react/alert/index.js +4 -4
- package/dist/react/browse-variables/index.js +12 -12
- package/dist/react/button/index.js +3 -3
- package/dist/react/chip/index.js +3 -3
- package/dist/react/combobox/index.js +3 -3
- package/dist/react/data-rods/index.js +23 -23
- package/dist/react/data-subsetter/index.js +18 -18
- package/dist/react/data-subsetter-history/index.js +20 -20
- package/dist/react/date-picker/index.js +4 -4
- package/dist/react/date-range-slider/index.js +4 -4
- package/dist/react/dialog/index.js +3 -3
- package/dist/react/icon/index.js +3 -3
- package/dist/react/index.d.ts +5 -5
- package/dist/react/index.js +80 -80
- package/dist/react/loader/index.js +3 -3
- package/dist/react/login/index.js +11 -11
- package/dist/react/map/index.js +3 -3
- package/dist/react/plot/index.js +3 -3
- package/dist/react/plot-toolbar/index.js +7 -7
- package/dist/react/skeleton/index.js +3 -3
- package/dist/react/spatial-picker/index.js +4 -4
- package/dist/react/time-average-map/index.js +9 -9
- package/dist/react/time-series/index.js +14 -14
- package/dist/react/variable-combobox/index.js +9 -9
- package/dist/react/variable-keyword-search/index.js +9 -9
- package/dist/terra-ui-components.js +81 -81
- package/dist/{terra_ui_components-0.0.68-py3-none-any.whl → terra_ui_components-0.0.69-py3-none-any.whl} +0 -0
- package/dist/{terra_ui_components-0.0.68.tar.gz → terra_ui_components-0.0.69.tar.gz} +0 -0
- package/dist/types/vue/index.d.ts +86 -86
- package/dist/vscode.html-custom-data.json +67 -67
- package/dist/web-types.json +170 -170
- package/package.json +1 -1
- package/cdn/chunks/chunk.2AIVKD54.js +0 -214
- package/cdn/chunks/chunk.2BW4SOWQ.js +0 -11
- package/cdn/chunks/chunk.2EYRPHGL.js +0 -10
- package/cdn/chunks/chunk.2WYXDPGS.js +0 -11
- package/cdn/chunks/chunk.3GLMJLNY.js +0 -139
- package/cdn/chunks/chunk.3H5ZUQL5.js +0 -498
- package/cdn/chunks/chunk.3L77HLPZ.js +0 -88
- package/cdn/chunks/chunk.3PUTIFOP.js +0 -35
- package/cdn/chunks/chunk.42V23REY.js +0 -21
- package/cdn/chunks/chunk.445A7YVG.js +0 -271
- package/cdn/chunks/chunk.4E55SLUR.js +0 -11
- package/cdn/chunks/chunk.4EIGF3E4.js +0 -470
- package/cdn/chunks/chunk.4MGGBJBD.js +0 -20
- package/cdn/chunks/chunk.4WKVINLB.js +0 -11
- package/cdn/chunks/chunk.5ASTHFQ2.js +0 -950
- package/cdn/chunks/chunk.5QKVNNUH.js +0 -73
- package/cdn/chunks/chunk.5TZQDEBJ.js +0 -21
- package/cdn/chunks/chunk.6KIVAUVU.js +0 -124
- package/cdn/chunks/chunk.6VTAKEV4.js +0 -74
- package/cdn/chunks/chunk.7674U7FT.js +0 -215
- package/cdn/chunks/chunk.7AEQ2LX4.js +0 -335
- package/cdn/chunks/chunk.7CMA526Q.js +0 -14
- package/cdn/chunks/chunk.7RT5CEB6.js +0 -72
- package/cdn/chunks/chunk.A6D5MCCT.js +0 -123
- package/cdn/chunks/chunk.A7GHUUVY.js +0 -21
- package/cdn/chunks/chunk.AZXB7ZHM.js +0 -151
- package/cdn/chunks/chunk.B6JXOXP5.js +0 -348
- package/cdn/chunks/chunk.BEDYDFXT.js +0 -52
- package/cdn/chunks/chunk.BRVCFRLF.js +0 -21
- package/cdn/chunks/chunk.CIFC3RF3.js +0 -43
- package/cdn/chunks/chunk.D3DPGMVW.js +0 -222
- package/cdn/chunks/chunk.D3XI3L7Y.js +0 -55
- package/cdn/chunks/chunk.DTUHBE3U.js +0 -37
- package/cdn/chunks/chunk.E2WXLMWX.js +0 -0
- package/cdn/chunks/chunk.F3KBUEPT.js +0 -10
- package/cdn/chunks/chunk.F5AEDYTP.js +0 -37
- package/cdn/chunks/chunk.FF3EIVF2.js +0 -11
- package/cdn/chunks/chunk.FRSW4UHB.js +0 -268
- package/cdn/chunks/chunk.FUU57PWY.js +0 -36
- package/cdn/chunks/chunk.G6SMK5II.js +0 -19
- package/cdn/chunks/chunk.GL5HOXON.js +0 -202
- package/cdn/chunks/chunk.GMJWNAQG.js +0 -264
- package/cdn/chunks/chunk.GQRGC6YW.js +0 -11
- package/cdn/chunks/chunk.GUYBX63F.js +0 -108
- package/cdn/chunks/chunk.HKST5N6O.js +0 -21
- package/cdn/chunks/chunk.HNQMK3PU.js +0 -685
- package/cdn/chunks/chunk.HNWBSRBL.js +0 -43
- package/cdn/chunks/chunk.HUX2RF6U.js +0 -53
- package/cdn/chunks/chunk.HWZP2UTW.js +0 -49
- package/cdn/chunks/chunk.IC4T7CZD.js +0 -62
- package/cdn/chunks/chunk.IJC2KB5R.js +0 -25
- package/cdn/chunks/chunk.J25AAZTC.js +0 -21
- package/cdn/chunks/chunk.JOFHFGQP.js +0 -180
- package/cdn/chunks/chunk.JUQDLDHB.js +0 -139
- package/cdn/chunks/chunk.KIC5ZCAM.js +0 -63
- package/cdn/chunks/chunk.KLCOAQUS.js +0 -65
- package/cdn/chunks/chunk.KUSRVQBO.js +0 -20
- package/cdn/chunks/chunk.KXL6VOQP.js +0 -82
- package/cdn/chunks/chunk.L63WM7I3.js +0 -65
- package/cdn/chunks/chunk.LDCRCQNJ.js +0 -103
- package/cdn/chunks/chunk.M6X72F3Q.js +0 -373
- package/cdn/chunks/chunk.MGM5E2VQ.js +0 -98
- package/cdn/chunks/chunk.MQOXBVDK.js +0 -58
- package/cdn/chunks/chunk.NMWP5DQX.js +0 -259
- package/cdn/chunks/chunk.NQYUJ7FK.js +0 -24
- package/cdn/chunks/chunk.O6SXSDFR.js +0 -539
- package/cdn/chunks/chunk.O7SVDS2A.js +0 -11
- package/cdn/chunks/chunk.OJC754DG.js +0 -228
- package/cdn/chunks/chunk.P7EL7GKI.js +0 -41
- package/cdn/chunks/chunk.PAJVTERU.js +0 -357
- package/cdn/chunks/chunk.PBC3S6IG.js +0 -33
- package/cdn/chunks/chunk.PG4TSLWI.js +0 -78
- package/cdn/chunks/chunk.QAMFDZKG.js +0 -11
- package/cdn/chunks/chunk.QQQ2BD4U.js +0 -80
- package/cdn/chunks/chunk.QZS6UUDI.js +0 -277
- package/cdn/chunks/chunk.RZ3APMFR.js +0 -195
- package/cdn/chunks/chunk.SGFD3ORP.js +0 -293
- package/cdn/chunks/chunk.T53RBNNE.js +0 -519
- package/cdn/chunks/chunk.TCEJ3MS6.js +0 -97
- package/cdn/chunks/chunk.TJGA66AX.js +0 -25
- package/cdn/chunks/chunk.TVFCHGU3.js +0 -76
- package/cdn/chunks/chunk.UDCRU3NE.js +0 -120
- package/cdn/chunks/chunk.UT5XKCBV.js +0 -183
- package/cdn/chunks/chunk.UZAIWUWC.js +0 -8
- package/cdn/chunks/chunk.UZZDJISQ.js +0 -258
- package/cdn/chunks/chunk.V2Z7ZBTD.js +0 -293
- package/cdn/chunks/chunk.V3EFWONT.js +0 -26
- package/cdn/chunks/chunk.V7LXD3II.js +0 -318
- package/cdn/chunks/chunk.WJL4R4O2.js +0 -7
- package/cdn/chunks/chunk.XJVLYIYE.js +0 -41
- package/cdn/chunks/chunk.XOD4KYCP.js +0 -120
- package/cdn/chunks/chunk.XWDZOQJ3.js +0 -11
- package/cdn/chunks/chunk.XXFKVRN5.js +0 -104
- package/cdn/chunks/chunk.XZB6CNAL.js +0 -96
- package/cdn/chunks/chunk.Y7ZED6A4.js +0 -24
- package/cdn/chunks/chunk.YMHBYV33.js +0 -1625
- package/cdn/chunks/chunk.YXLIUMJM.js +0 -147
- package/cdn/chunks/chunk.YY65ZHR5.js +0 -35
- package/cdn/chunks/chunk.Z4S5QPB7.js +0 -655
- package/dist/chunks/chunk.2GEN6UCO.js +0 -21
- package/dist/chunks/chunk.2LGINANI.js +0 -82
- package/dist/chunks/chunk.2OQZA3CW.js +0 -477
- package/dist/chunks/chunk.34PJLKJJ.js +0 -416
- package/dist/chunks/chunk.35EPISNE.js +0 -11
- package/dist/chunks/chunk.3UAVO7EA.js +0 -24
- package/dist/chunks/chunk.3ULVIGJG.js +0 -21
- package/dist/chunks/chunk.3XJ5QNGT.js +0 -21
- package/dist/chunks/chunk.44BRND6T.js +0 -21
- package/dist/chunks/chunk.642Z3X7N.js +0 -11
- package/dist/chunks/chunk.64ARWPHU.js +0 -11
- package/dist/chunks/chunk.65TXBD5Q.js +0 -11
- package/dist/chunks/chunk.6DUMNJRP.js +0 -11
- package/dist/chunks/chunk.76XDDHGB.js +0 -24
- package/dist/chunks/chunk.77RFVKUZ.js +0 -21
- package/dist/chunks/chunk.7JCOOCRE.js +0 -498
- package/dist/chunks/chunk.A7JSMGCJ.js +0 -11
- package/dist/chunks/chunk.ADFWUZLL.js +0 -21
- package/dist/chunks/chunk.AHGKSSSI.js +0 -185
- package/dist/chunks/chunk.AQADCBKW.js +0 -11
- package/dist/chunks/chunk.AU4MMC6N.js +0 -24
- package/dist/chunks/chunk.B63QBHY2.js +0 -21
- package/dist/chunks/chunk.CA2ZDE2M.js +0 -11
- package/dist/chunks/chunk.CDJJZBFH.js +0 -21
- package/dist/chunks/chunk.E4HHQCTB.js +0 -25
- package/dist/chunks/chunk.EBJUC35J.js +0 -11
- package/dist/chunks/chunk.EFBCCYOG.js +0 -21
- package/dist/chunks/chunk.ERXCYNDC.js +0 -11
- package/dist/chunks/chunk.EU34RZJ6.js +0 -348
- package/dist/chunks/chunk.FD3GJNJJ.js +0 -82
- package/dist/chunks/chunk.FNTPKP6P.js +0 -538
- package/dist/chunks/chunk.FZMMKJAN.js +0 -11
- package/dist/chunks/chunk.FZUQIX6Q.js +0 -24
- package/dist/chunks/chunk.GJZMMPJG.js +0 -21
- package/dist/chunks/chunk.GPP6JDF4.js +0 -11
- package/dist/chunks/chunk.H73IKOBV.js +0 -11
- package/dist/chunks/chunk.HKST5N6O.js +0 -21
- package/dist/chunks/chunk.HN27UQHP.js +0 -21
- package/dist/chunks/chunk.IG5HGQXY.js +0 -11
- package/dist/chunks/chunk.J6VAJGFU.js +0 -11
- package/dist/chunks/chunk.JHEFOGNL.js +0 -11
- package/dist/chunks/chunk.KIC5ZCAM.js +0 -63
- package/dist/chunks/chunk.KOT22IKI.js +0 -21
- package/dist/chunks/chunk.KQXAXXOQ.js +0 -53
- package/dist/chunks/chunk.KRADMAUS.js +0 -11
- package/dist/chunks/chunk.KXL6VOQP.js +0 -82
- package/dist/chunks/chunk.L2M2AJ4W.js +0 -21
- package/dist/chunks/chunk.LNIZRE4P.js +0 -180
- package/dist/chunks/chunk.LQXULJBQ.js +0 -21
- package/dist/chunks/chunk.M3SLDTSE.js +0 -477
- package/dist/chunks/chunk.M74U5ILB.js +0 -25
- package/dist/chunks/chunk.M7ZB5QRP.js +0 -273
- package/dist/chunks/chunk.MFI2M54Y.js +0 -273
- package/dist/chunks/chunk.NDADYNAA.js +0 -11
- package/dist/chunks/chunk.O6SXSDFR.js +0 -539
- package/dist/chunks/chunk.O7SVDS2A.js +0 -11
- package/dist/chunks/chunk.OBANVLY7.js +0 -11
- package/dist/chunks/chunk.OJC754DG.js +0 -228
- package/dist/chunks/chunk.OVUWZWWN.js +0 -355
- package/dist/chunks/chunk.OX5IY75Y.js +0 -11
- package/dist/chunks/chunk.OY5R7EVO.js +0 -24
- package/dist/chunks/chunk.P6OOV5UQ.js +0 -25
- package/dist/chunks/chunk.P7UY5YOM.js +0 -202
- package/dist/chunks/chunk.PA5O6555.js +0 -24
- package/dist/chunks/chunk.PG4TSLWI.js +0 -78
- package/dist/chunks/chunk.PKAXRUSD.js +0 -11
- package/dist/chunks/chunk.PRQ5P3TK.js +0 -11
- package/dist/chunks/chunk.PSIAGOIP.js +0 -538
- package/dist/chunks/chunk.Q6LK4OHE.js +0 -11
- package/dist/chunks/chunk.QAMFDZKG.js +0 -11
- package/dist/chunks/chunk.QEGTBKYW.js +0 -21
- package/dist/chunks/chunk.QHY2BYL4.js +0 -11
- package/dist/chunks/chunk.QNNEWLT7.js +0 -11
- package/dist/chunks/chunk.RBVJJWF4.js +0 -21
- package/dist/chunks/chunk.RDID3JKQ.js +0 -25
- package/dist/chunks/chunk.RJUTQBOV.js +0 -21
- package/dist/chunks/chunk.RVCQSKMD.js +0 -108
- package/dist/chunks/chunk.RVH4PSND.js +0 -416
- package/dist/chunks/chunk.SFFOTZON.js +0 -25
- package/dist/chunks/chunk.SPVE7NND.js +0 -11
- package/dist/chunks/chunk.SRBWEFVT.js +0 -27
- package/dist/chunks/chunk.SWDQJJ7Q.js +0 -11
- package/dist/chunks/chunk.T7DACXNM.js +0 -11
- package/dist/chunks/chunk.TCGYS77N.js +0 -27
- package/dist/chunks/chunk.TIQXW7ZH.js +0 -11
- package/dist/chunks/chunk.TMXTLPTE.js +0 -11
- package/dist/chunks/chunk.UPMJQK2S.js +0 -120
- package/dist/chunks/chunk.URKW2CME.js +0 -21
- package/dist/chunks/chunk.UT5XKCBV.js +0 -183
- package/dist/chunks/chunk.UTXEG3QD.js +0 -214
- package/dist/chunks/chunk.UZZDJISQ.js +0 -258
- package/dist/chunks/chunk.V3CHZTI6.js +0 -470
- package/dist/chunks/chunk.VDCD52OC.js +0 -185
- package/dist/chunks/chunk.VO4JJ7CZ.js +0 -357
- package/dist/chunks/chunk.VT32WPUI.js +0 -73
- package/dist/chunks/chunk.VYPNLWLL.js +0 -11
- package/dist/chunks/chunk.W5O3LYQV.js +0 -21
- package/dist/chunks/chunk.WTQMOLV2.js +0 -24
- package/dist/chunks/chunk.WXZHDVQ3.js +0 -21
- package/dist/chunks/chunk.WZCLDYKY.js +0 -25
- package/dist/chunks/chunk.X7MVYC7B.js +0 -11
- package/dist/chunks/chunk.XIUGWVFS.js +0 -355
- package/dist/chunks/chunk.XJPYDQOZ.js +0 -11
- package/dist/chunks/chunk.XWDZOQJ3.js +0 -11
- package/dist/chunks/chunk.Y7TVB466.js +0 -1625
- package/dist/chunks/chunk.YIP3L3SE.js +0 -21
- package/dist/chunks/chunk.YP5DVLJS.js +0 -11
- package/dist/chunks/chunk.YRJRQDLF.js +0 -21
- package/dist/chunks/chunk.ZK4JLVS4.js +0 -11
- package/dist/chunks/chunk.ZLRH3XYC.js +0 -24
- package/dist/chunks/chunk.ZOCIZGYF.js +0 -11
- package/cdn/chunks/{chunk.OXUFHTFN.js → chunk.2PNASAQ6.js} +3 -3
- package/cdn/chunks/{chunk.DUUVIZLI.js → chunk.6HV5UAUR.js} +3 -3
- package/cdn/chunks/{chunk.EMLDT66I.js → chunk.EDY6YM3Y.js} +4 -4
- package/cdn/chunks/{chunk.SU2EH44I.js → chunk.NFS2RDEX.js} +5 -5
- package/cdn/chunks/{chunk.VPW32Q52.js → chunk.QFJLPXXJ.js} +3 -3
- 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
|
-
};
|