diff --git a/package-lock.json b/package-lock.json index ea37d302..90210459 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,6 +41,7 @@ "vue": "^3.5.38", "vue-json-pretty": "^2.6.0", "vue-router": "^5.1.0", + "vue3-select-component": "^1.0.0", "zarrita": "^0.7.3" }, "devDependencies": { @@ -900,6 +901,24 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@internationalized/date": { + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.12.2.tgz", + "integrity": "sha512-FY1Y+H64NDs+HAF6omlnWxm3mEpfgaCSWtL5l551ZZfImA+kGjPFgrnJrGjH6lfmLL0g8Z/mBu1R3kufeCp6Jw==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/number": { + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.7.tgz", + "integrity": "sha512-3ji1fcrT+FPAK86UqEhB/psHixYo6niWPJtt7+qRaYFynt/BaJG8GhAPimtWUpEiVSTq8ZM8L5psMxGquiB/Vg==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -1686,6 +1705,41 @@ "dev": true, "license": "MIT" }, + "node_modules/@swc/helpers": { + "version": "0.5.23", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.23.tgz", + "integrity": "sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tanstack/virtual-core": { + "version": "3.17.3", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.17.3.tgz", + "integrity": "sha512-8Np/TFELpI0ySuJoVmjvOrQYXH/8sTX0Biv9szhFhY39xOdAAY+smrMxjxOum/ux3eM8MUJQsEJ0/R0UpvC8dw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/vue-virtual": { + "version": "3.13.31", + "resolved": "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.13.31.tgz", + "integrity": "sha512-wZMEoSf852jQqaf3Ika1J7PiBae6341LNy/2CxmIyn0XKDQXMuK41wVX+xp6G0yx8jyR95Ef+Tdr13DK7mbJtQ==", + "license": "MIT", + "dependencies": { + "@tanstack/virtual-core": "3.17.3" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "vue": "^2.7.0 || ^3.0.0" + } + }, "node_modules/@turf/boolean-point-in-polygon": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-7.2.0.tgz", @@ -2970,6 +3024,18 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, + "node_modules/aria-hidden": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/array-buffer-byte-length": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", @@ -4000,6 +4066,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/defu": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", + "license": "MIT" + }, "node_modules/delaunator": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", @@ -7242,6 +7314,12 @@ "node": ">=12.20.0" } }, + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "license": "MIT" + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -7947,6 +8025,31 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/reka-ui": { + "version": "2.9.10", + "resolved": "https://registry.npmjs.org/reka-ui/-/reka-ui-2.9.10.tgz", + "integrity": "sha512-yuvZVTp4fWH2G3qk+ze/x6YYlyc2Xl1d+eMUlIYrKqzTowBKteoDoN17fitURmqSUck3mc7JbcYgp49DnGu2EQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.6.13", + "@floating-ui/vue": "^1.1.6", + "@internationalized/date": "^3.5.0", + "@internationalized/number": "^3.5.0", + "@tanstack/vue-virtual": "^3.12.0", + "@vueuse/core": "^14.1.0", + "@vueuse/shared": "^14.1.0", + "aria-hidden": "^1.2.4", + "defu": "^6.1.5", + "ohash": "^2.0.11" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/zernonia" + }, + "peerDependencies": { + "vue": ">= 3.4.0" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -9588,6 +9691,18 @@ "typescript": ">=5.0.0" } }, + "node_modules/vue3-select-component": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vue3-select-component/-/vue3-select-component-1.0.0.tgz", + "integrity": "sha512-KPLAClC7gfg/VkVd3uV8vRIhEtnETRP2kYq1YpFjZ8Mp3RlL31hDFPU9jQWxTgAoViVls/hLSfOZ2bctMbsZiw==", + "license": "MIT", + "dependencies": { + "reka-ui": "2.9.10" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, "node_modules/web-worker": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz", diff --git a/package.json b/package.json index d01108b5..933e7975 100644 --- a/package.json +++ b/package.json @@ -60,6 +60,7 @@ "vue": "^3.5.38", "vue-json-pretty": "^2.6.0", "vue-router": "^5.1.0", + "vue3-select-component": "^1.0.0", "zarrita": "^0.7.3" }, "devDependencies": { diff --git a/public/static/catalog.json b/public/static/catalog.json index 8e9dd986..2e34246e 100644 --- a/public/static/catalog.json +++ b/public/static/catalog.json @@ -17,6 +17,11 @@ "url": "https://storage.googleapis.com/cmip6/CMIP6/HighResMIP/MOHC/HadGEM3-GC31-HM/highresSST-present/r1i1p1f1/Amon/tas/gn/v20170831/", "tag": "regular" }, + { + "title": "111km AWI-CM-1-1-MR day sfcWind", + "url": "https://storage.googleapis.com/cmip6/CMIP6/ScenarioMIP/AWI/AWI-CM-1-1-MR/ssp585/r1i1p1f1/day/sfcWind/gn/v20190529/", + "tag": "regular" + }, { "title": "50km tripolar historical NOAA GFDL-ESM4 Omon tos", "url": "https://storage.googleapis.com/cmip6/CMIP6/CMIP/NOAA-GFDL/GFDL-ESM4/historical/r2i1p1f1/Omon/tos/gn/v20180701/", @@ -27,15 +32,15 @@ "url": "https://cmip6-pds.s3.amazonaws.com/CMIP6/CMIP/AWI/AWI-CM-1-1-MR/historical/r1i1p1f1/Oday/tos/gn/v20181218/", "tag": "irregular" }, - { - "title": "WCRP Hackathon - P1D_mean_z7_atm", - "url": "https://s3.eu-dkrz-1.dkrz.cloud/wrcp-hackathon/data/ICON/d3hp003.zarr/P1D_mean_z7_atm", - "tag": "healpix" - }, { "title": "dpp0066 - 2d_ml @ R02B06", "url": "https://gridlook.pages.dev/static/index_mr_dpp0066.json", "tag": "triangular" + }, + { + "title": "50km eerie-future-ssp245-v20240618_P1M_mean_7 pr ts", + "url": "https://s3.waterpark.dkrz.de/eerie/eerie-future-ssp245-v20240618_P1M_mean_7.zarr", + "tag": "healpix" } ] } diff --git a/src/main.ts b/src/main.ts index c1450d75..6208c7b2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,8 +1,4 @@ -import { definePreset } from "@primevue/themes"; -import Aura from "@primevue/themes/aura"; import { createPinia } from "pinia"; -import PrimeVue from "primevue/config"; -import ToastService from "primevue/toastservice"; import { createApp } from "vue"; import App from "./App.vue"; @@ -13,33 +9,6 @@ app.directive("word-break", vWordBreak); const pinia = createPinia(); -const MyPreset = definePreset(Aura, { - semantic: { - primary: { - 50: "var(--bulma-info-95)", - 100: "var(--bulma-info-90)", - 200: "var(--bulma-info-80)", - 300: "var(--bulma-info-70)", - 400: "var(--bulma-info-60)", - 500: "var(--bulma-info-50)", - 600: "var(--bulma-info-40)", - 700: "var(--bulma-info-30)", - 800: "var(--bulma-info-20)", - 900: "var(--bulma-info-10)", - 950: "var(--bulma-info-05)", - }, - }, - components: { - select: {}, - }, -}); - app.use(router); app.use(pinia); -app.use(PrimeVue, { - theme: { - preset: MyPreset, - }, -}); -app.use(ToastService); app.mount("#app"); diff --git a/src/store/store.ts b/src/store/store.ts index a38cd41a..6bf6fb4b 100644 --- a/src/store/store.ts +++ b/src/store/store.ts @@ -150,7 +150,7 @@ export const useGlobeControlStore = defineStore("globeControl", { histogram: undefined as number[] | undefined, // selection-range histogram bins fullHistogram: undefined as number[] | undefined, // fixed histogram over full data range histogramSummary: undefined as THistogramSummary | undefined, // full-resolution (4096-bin) summary - colormap: "turbo" as TColorMap, + colormap: "viridis" as TColorMap, invertColormap: false, posterizeLevels: 0 as number, hideLowerBound: false, diff --git a/src/ui/common/Toast.vue b/src/ui/common/Toast.vue index 1d9e6844..d1edf50f 100644 --- a/src/ui/common/Toast.vue +++ b/src/ui/common/Toast.vue @@ -1,62 +1,59 @@ diff --git a/src/ui/overlays/controls/LayerPanel.vue b/src/ui/overlays/controls/LayerPanel.vue index d9934ee8..82c93c6e 100644 --- a/src/ui/overlays/controls/LayerPanel.vue +++ b/src/ui/overlays/controls/LayerPanel.vue @@ -27,7 +27,7 @@ import { type TLayerEntry, type TLayerKind, } from "@/store/store.ts"; -import { useLog } from "@/utils/logging.ts"; +import { useLog } from "@/ui/common/useLog.ts"; const store = useGlobeControlStore(); const { diff --git a/src/ui/overlays/controls/ShareButton.vue b/src/ui/overlays/controls/ShareButton.vue index ce51110c..ddc93294 100644 --- a/src/ui/overlays/controls/ShareButton.vue +++ b/src/ui/overlays/controls/ShareButton.vue @@ -1,11 +1,12 @@