From 469a805e81ac2df52be7afee38f35e55c0aaa8a0 Mon Sep 17 00:00:00 2001 From: christof-wittreich Date: Mon, 22 Jul 2024 16:15:19 -0400 Subject: [PATCH 1/2] Release to Main v4.44.0 (#5361) * Main to Develop v4.43.0 (#5338) * UAT-v4.42.0 * Release to Main v4.42.0 (#5324) * WV-3177: Rename EOSDIS Worldview to NASA Worldview (#5316) * Remove EOSDIS * Update EOSDIS to ESDIS and LANCE acronyms * Updated eslint-plugin-n (#5317) * dependency updates * WV-3210 Distraction Free Timezone Fix (#5320) * Added kioskMode check for timezone label * Separated ternary statements * Update IMERG to version 7 (#5321) * UAT-v4.42.0 --------- Co-authored-by: Patrick Moulden <4834892+PatchesMaps@users.noreply.github.com> Co-authored-by: minniewong Co-authored-by: PatchesMaps * v4.43.0 --------- Co-authored-by: Patrick Moulden <4834892+PatchesMaps@users.noreply.github.com> Co-authored-by: minniewong Co-authored-by: PatchesMaps * Dependency Updates 07-12-234 (#5345) * Added check for non BEST layers in build (#5333) * WV-3104 GIBS API Link in Embed Tab (#5340) * Added api docs link * Simplified to a single class * WV-3154 Replace Social Tab with Citation Tab (#5346) * Changed the social tab to the citation tab * Changed citation to cite us & modified intro text * Fixed test * WV-3242 index out of bounds error (#5332) * only insert layers at valid index * only reload when new palette is AERONET * reload layers on change to rendered palettes * Dependency Updates 07-19-2024 (#5358) * Dependency Updates 07-19-2024 * revert sass bump * WV-3220 Smaller Extent BBox For Finding High-Resolution Imagery (#5347) * Added smallerExtent * Added getSmallerExtent reusable function * WV-3218: Update welcome.md to point users to the Worldview Image of the Week (#5359) * Update welcome.md * open link in new tab * v4.44.0 --------- Co-authored-by: Patrick Moulden <4834892+PatchesMaps@users.noreply.github.com> Co-authored-by: minniewong Co-authored-by: PatchesMaps --- config/default/common/brand/about/welcome.md | 4 +- .../stories/default/worldview_intro.json | 2 +- e2e/features/share/share-test.spec.js | 20 +- package-lock.json | 468 ++++++++++++------ package.json | 38 +- tasks/build-options/getVisMetadata.js | 4 +- .../layer/settings/imagery-search.js | 29 +- web/js/components/toolbar/share/links.js | 78 --- web/js/containers/share.js | 83 ++-- web/js/mapUI/components/layers/addLayer.js | 7 +- .../update-projection/updateProjection.js | 4 +- web/js/modules/link/util.js | 19 - web/scss/features/share.scss | 64 +-- 13 files changed, 424 insertions(+), 396 deletions(-) delete mode 100644 web/js/components/toolbar/share/links.js diff --git a/config/default/common/brand/about/welcome.md b/config/default/common/brand/about/welcome.md index 0b617e7fb6..65881627a0 100644 --- a/config/default/common/brand/about/welcome.md +++ b/config/default/common/brand/about/welcome.md @@ -26,6 +26,6 @@ mapping library, GIBS imagery can also be accessed from Google Earth, NASA World Wind, and several other clients. We encourage interested developers to build their own clients or integrate NASA imagery into their existing ones using these services.

-

Frequently - Asked Questions

+

View the Frequently + Asked Questions and visit the Worldview Image of the Week archive which uses data and imagery available in Worldview to highlight recent events, hazards, and disasters.


diff --git a/config/default/common/config/wv.json/stories/default/worldview_intro.json b/config/default/common/config/wv.json/stories/default/worldview_intro.json index 6ed19a4350..260d7c340d 100644 --- a/config/default/common/config/wv.json/stories/default/worldview_intro.json +++ b/config/default/common/config/wv.json/stories/default/worldview_intro.json @@ -118,7 +118,7 @@ }, { "target": "#wv-share-button", - "content": "Create a custom URL link of your Worldview page and share Worldview via social media with friends and colleagues!", + "content": "Create a custom URL link of your Worldview map view, access information about embedding Worldview, learn how to use imagery directly from GIBS, and remember to cite us!", "placementBeacon": "bottom" }, { diff --git a/e2e/features/share/share-test.spec.js b/e2e/features/share/share-test.spec.js index 4409ce4e6a..81b81fd800 100644 --- a/e2e/features/share/share-test.spec.js +++ b/e2e/features/share/share-test.spec.js @@ -29,12 +29,12 @@ test('Clicking the share link button opens the share dialog', async () => { await expect(shareToolbar).toBeVisible() }) -test('Share tabs link and social are visible and enabled', async () => { +test('Share tabs link and cite us are visible and enabled', async () => { const linkShareNav = await page.locator('.link-share-nav') - const socialShareNav = await page.locator('.social-share-nav') + const citeUsShareNav = await page.locator('.cite-us-share-nav') const linkShareActive = await page.locator('.link-share-nav a') await expect(linkShareNav).toBeVisible() - await expect(socialShareNav).toBeVisible() + await expect(citeUsShareNav).toBeVisible() await expect(linkShareActive).toHaveClass(/active/) }) @@ -72,20 +72,6 @@ test('Share link clipboard with no time query string param in the page url will expect(shareLinkValue).toContain(`t=${year}-${monthText}-${dayText}`) }) -test('Clicking the social tab displays social share buttons', async () => { - const { shareToolbarButton } = selectors - const facebook = await page.locator('#fb-share') - const twitter = await page.locator('#tw-share') - const reddit = await page.locator('#rd-share') - const email = await page.locator('#email-share') - await shareToolbarButton.click() - await page.locator('.social-share-nav a').click() - await expect(facebook).toBeVisible() - await expect(twitter).toBeVisible() - await expect(reddit).toBeVisible() - await expect(email).toBeVisible() -}) - test('Clicking Shorten link works with links less than 2049 characters', async () => { const { shareToolbarButton } = selectors const shortQueryString = 'http://localhost:3000/?l=Reference_Labels_15m,Reference_Features_15m,Coastlines_15m,VIIRS_NOAA20_CorrectedReflectance_TrueColor(hidden),VIIRS_SNPP_CorrectedReflectance_TrueColor(hidden),MODIS_Aqua_CorrectedReflectance_TrueColor(hidden),MODIS_Terra_CorrectedReflectance_TrueColor&lg=true&t=2022-08-10-T15%3A15%3A05Z' diff --git a/package-lock.json b/package-lock.json index adc50d2a1e..2abcefaa7d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,23 +1,23 @@ { "name": "worldview", - "version": "4.43.0", + "version": "4.44.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "worldview", - "version": "4.43.0", + "version": "4.44.0", "hasInstallScript": true, "license": "NASA-1.3", "dependencies": { "@elastic/react-search-ui": "^1.21.5", "@elastic/react-search-ui-views": "^1.21.2", - "@fortawesome/fontawesome-svg-core": "^6.5.2", - "@fortawesome/free-brands-svg-icons": "^6.5.2", - "@fortawesome/free-solid-svg-icons": "^6.5.2", + "@fortawesome/fontawesome-svg-core": "^6.6.0", + "@fortawesome/free-brands-svg-icons": "^6.6.0", + "@fortawesome/free-solid-svg-icons": "^6.6.0", "@fortawesome/react-fontawesome": "^0.2.2", "@khanisak/temperature-converter": "^2.0.1", - "@reduxjs/toolkit": "^2.2.5", + "@reduxjs/toolkit": "^2.2.6", "axios": "^1.7.2", "bluebird": "3.7.2", "bootstrap": "^5.3.3", @@ -42,17 +42,17 @@ "moment-locales-webpack-plugin": "^1.2.0", "node-dir": "^0.1.17", "ol": "^8.2.0", - "ol-mapbox-style": "^12.3.3", + "ol-mapbox-style": "^12.3.4", "p-queue": "^8.0.1", "proj4": "^2.11.0", "prop-types": "^15.8.1", - "qs": "^6.12.1", + "qs": "^6.12.3", "react": "^18.3.1", "react-beautiful-dnd": "^13.1.1", "react-device-detect": "^2.2.3", "react-dom": "^18.3.0", "react-draggable": "^4.4.6", - "react-image-crop": "^11.0.4", + "react-image-crop": "^11.0.6", "react-infinite-scroller": "^1.2.6", "react-joyride": "^2.8.2", "react-mobile-datepicker": "^4.0.2", @@ -78,13 +78,13 @@ "what-input": "^5.2.12" }, "devDependencies": { - "@babel/core": "^7.24.7", - "@babel/eslint-parser": "^7.24.7", + "@babel/core": "^7.24.9", + "@babel/eslint-parser": "^7.24.8", "@babel/plugin-transform-class-properties": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/preset-env": "^7.24.7", + "@babel/preset-env": "^7.24.8", "@babel/preset-react": "^7.24.7", - "@playwright/test": "^1.45.0", + "@playwright/test": "^1.45.2", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", "@webpack-cli/serve": "^2.0.5", "ajv": "^8.16.0", @@ -96,7 +96,7 @@ "css-loader": "^7.1.2", "css-minimizer-webpack-plugin": "^7.0.0", "css-url-relative-plugin": "^1.1.0", - "cssnano": "^7.0.3", + "cssnano": "^7.0.4", "eslint": "^8.57.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-standard": "^17.1.0", @@ -107,10 +107,10 @@ "eslint-plugin-n": "^17.9.0", "eslint-plugin-no-storage": "^1.0.2", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.2.0", - "eslint-plugin-react": "^7.34.3", + "eslint-plugin-promise": "^6.4.0", + "eslint-plugin-react": "^7.34.4", "express": "^4.19.2", - "glob": "^10.4.2", + "glob": "^11.0.0", "husky": "^9.0.11", "jest": "^29.7.0", "jest-canvas-mock": "^2.5.2", @@ -121,7 +121,7 @@ "node-ssh": "^13.2.0", "npm-run-all": "^4.1.5", "patch-package": "^8.0.0", - "postcss": "^8.4.38", + "postcss": "^8.4.39", "postcss-loader": "^8.1.1", "react-refresh": "^0.14.1", "react-test-renderer": "^18.3.0", @@ -137,10 +137,10 @@ "tar": "^7.4.0", "terser-webpack-plugin": "^5.3.10", "uuid": "^10.0.0", - "webpack": "^5.92.1", + "webpack": "^5.93.0", "webpack-bundle-analyzer": "^4.10.2", "webpack-cli": "^5.1.4", - "webpack-dev-middleware": "^7.2.1", + "webpack-dev-middleware": "^7.3.0", "webpack-dev-server": "^5.0.4", "xml-js": "^1.6.11", "xml2js": "^0.6.2", @@ -180,26 +180,28 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.7", + "version": "7.24.8", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.7", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", + "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helpers": "^7.24.7", - "@babel/parser": "^7.24.7", + "@babel/generator": "^7.24.9", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-module-transforms": "^7.24.9", + "@babel/helpers": "^7.24.8", + "@babel/parser": "^7.24.8", "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.9", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -215,7 +217,7 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.24.7", + "version": "7.24.8", "dev": true, "license": "MIT", "dependencies": { @@ -232,10 +234,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.7", + "version": "7.24.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.10.tgz", + "integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7", + "@babel/types": "^7.24.9", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -280,12 +284,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.7", + "version": "7.24.8", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -412,7 +416,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.7", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz", + "integrity": "sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==", "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.24.7", @@ -440,7 +446,7 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.7", + "version": "7.24.8", "dev": true, "license": "MIT", "engines": { @@ -513,7 +519,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.7", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -527,7 +535,7 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", + "version": "7.24.8", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -548,11 +556,13 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.7", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.8.tgz", + "integrity": "sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==", "license": "MIT", "dependencies": { "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -572,7 +582,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.7", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", + "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", "license": "MIT", "bin": { "parser": "bin/babel-parser.js" @@ -1015,15 +1027,15 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.24.7", + "version": "7.24.8", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.8", "@babel/helper-environment-visitor": "^7.24.7", "@babel/helper-function-name": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-replace-supers": "^7.24.7", "@babel/helper-split-export-declaration": "^7.24.7", "globals": "^11.1.0" @@ -1051,11 +1063,11 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.7", + "version": "7.24.8", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1243,12 +1255,12 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.7", + "version": "7.24.8", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-simple-access": "^7.24.7" }, "engines": { @@ -1397,11 +1409,11 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.7", + "version": "7.24.8", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, @@ -1620,11 +1632,11 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.7", + "version": "7.24.8", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1693,14 +1705,14 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.24.7", + "version": "7.24.8", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", + "@babel/compat-data": "^7.24.8", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", @@ -1731,9 +1743,9 @@ "@babel/plugin-transform-block-scoping": "^7.24.7", "@babel/plugin-transform-class-properties": "^7.24.7", "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.24.7", + "@babel/plugin-transform-classes": "^7.24.8", "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-dotall-regex": "^7.24.7", "@babel/plugin-transform-duplicate-keys": "^7.24.7", "@babel/plugin-transform-dynamic-import": "^7.24.7", @@ -1746,7 +1758,7 @@ "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", "@babel/plugin-transform-member-expression-literals": "^7.24.7", "@babel/plugin-transform-modules-amd": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-modules-systemjs": "^7.24.7", "@babel/plugin-transform-modules-umd": "^7.24.7", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", @@ -1756,7 +1768,7 @@ "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-object-super": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", @@ -1767,7 +1779,7 @@ "@babel/plugin-transform-spread": "^7.24.7", "@babel/plugin-transform-sticky-regex": "^7.24.7", "@babel/plugin-transform-template-literals": "^7.24.7", - "@babel/plugin-transform-typeof-symbol": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", "@babel/plugin-transform-unicode-escapes": "^7.24.7", "@babel/plugin-transform-unicode-property-regex": "^7.24.7", "@babel/plugin-transform-unicode-regex": "^7.24.7", @@ -1776,7 +1788,7 @@ "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.4", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.31.0", + "core-js-compat": "^3.37.1", "semver": "^6.3.1" }, "engines": { @@ -1846,17 +1858,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.24.7", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz", + "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", + "@babel/generator": "^7.24.8", "@babel/helper-environment-visitor": "^7.24.7", "@babel/helper-function-name": "^7.24.7", "@babel/helper-hoist-variables": "^7.24.7", "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/parser": "^7.24.8", + "@babel/types": "^7.24.8", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1865,10 +1879,12 @@ } }, "node_modules/@babel/types": { - "version": "7.24.7", + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.9.tgz", + "integrity": "sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-string-parser": "^7.24.8", "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, @@ -2248,41 +2264,45 @@ "license": "MIT" }, "node_modules/@fortawesome/fontawesome-common-types": { - "version": "6.5.2", - "hasInstallScript": true, + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.6.0.tgz", + "integrity": "sha512-xyX0X9mc0kyz9plIyryrRbl7ngsA9jz77mCZJsUkLl+ZKs0KWObgaEBoSgQiYWAsSmjz/yjl0F++Got0Mdp4Rw==", "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/@fortawesome/fontawesome-svg-core": { - "version": "6.5.2", - "hasInstallScript": true, + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.6.0.tgz", + "integrity": "sha512-KHwPkCk6oRT4HADE7smhfsKudt9N/9lm6EJ5BVg0tD1yPA5hht837fB87F8pn15D8JfTqQOjhKTktwmLMiD7Kg==", "license": "MIT", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.5.2" + "@fortawesome/fontawesome-common-types": "6.6.0" }, "engines": { "node": ">=6" } }, "node_modules/@fortawesome/free-brands-svg-icons": { - "version": "6.5.2", - "hasInstallScript": true, + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.6.0.tgz", + "integrity": "sha512-1MPD8lMNW/earme4OQi1IFHtmHUwAKgghXlNwWi9GO7QkTfD+IIaYpIai4m2YJEzqfEji3jFHX1DZI5pbY/biQ==", "license": "(CC-BY-4.0 AND MIT)", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.5.2" + "@fortawesome/fontawesome-common-types": "6.6.0" }, "engines": { "node": ">=6" } }, "node_modules/@fortawesome/free-solid-svg-icons": { - "version": "6.5.2", - "hasInstallScript": true, + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.6.0.tgz", + "integrity": "sha512-IYv/2skhEDFc2WGUcqvFJkeK39Q+HyPf5GHUrT/l2pKbtgEIv1al1TKd6qStR5OIwQdN1GZP54ci3y4mroJWjA==", "license": "(CC-BY-4.0 AND MIT)", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.5.2" + "@fortawesome/fontawesome-common-types": "6.6.0" }, "engines": { "node": ">=6" @@ -3251,11 +3271,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.45.0", + "version": "1.45.3", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.45.3.tgz", + "integrity": "sha512-UKF4XsBfy+u3MFWEH44hva1Q8Da28G6RFtR2+5saw+jgAFQV5yYnB1fu68Mz7fO+5GJF3wgwAIs0UelU8TxFrA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.45.0" + "playwright": "1.45.3" }, "bin": { "playwright": "cli.js" @@ -3351,7 +3373,7 @@ } }, "node_modules/@reduxjs/toolkit": { - "version": "2.2.5", + "version": "2.2.6", "license": "MIT", "dependencies": { "immer": "^10.0.3", @@ -4495,17 +4517,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.toreversed": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } - }, "node_modules/array.prototype.tosorted": { "version": "1.1.4", "dev": true, @@ -5849,7 +5860,7 @@ } }, "node_modules/core-js-compat": { - "version": "3.36.1", + "version": "3.37.1", "dev": true, "license": "MIT", "dependencies": { @@ -6266,11 +6277,11 @@ "license": "MIT" }, "node_modules/cssnano": { - "version": "7.0.3", + "version": "7.0.4", "dev": true, "license": "MIT", "dependencies": { - "cssnano-preset-default": "^7.0.3", + "cssnano-preset-default": "^7.0.4", "lilconfig": "^3.1.2" }, "engines": { @@ -6285,7 +6296,7 @@ } }, "node_modules/cssnano-preset-default": { - "version": "7.0.3", + "version": "7.0.4", "dev": true, "license": "MIT", "dependencies": { @@ -6294,7 +6305,7 @@ "cssnano-utils": "^5.0.0", "postcss-calc": "^10.0.0", "postcss-colormin": "^7.0.1", - "postcss-convert-values": "^7.0.1", + "postcss-convert-values": "^7.0.2", "postcss-discard-comments": "^7.0.1", "postcss-discard-duplicates": "^7.0.0", "postcss-discard-empty": "^7.0.0", @@ -7798,7 +7809,7 @@ } }, "node_modules/eslint-plugin-promise": { - "version": "6.2.0", + "version": "6.4.0", "dev": true, "license": "ISC", "engines": { @@ -7812,34 +7823,36 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.34.3", + "version": "7.35.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", + "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", "dev": true, "license": "MIT", "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", "array.prototype.flatmap": "^1.3.2", - "array.prototype.toreversed": "^1.1.2", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", "es-iterator-helpers": "^1.0.19", "estraverse": "^5.3.0", + "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.8", "object.fromentries": "^2.0.8", - "object.hasown": "^1.1.4", "object.values": "^1.2.0", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11" + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, "node_modules/eslint-plugin-react-hooks": { @@ -8903,22 +8916,22 @@ } }, "node_modules/glob": { - "version": "10.4.2", + "version": "11.0.0", "dev": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "path-scurry": "^2.0.0" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -8948,14 +8961,14 @@ } }, "node_modules/glob/node_modules/minimatch": { - "version": "9.0.4", + "version": "10.0.1", "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -10179,14 +10192,14 @@ } }, "node_modules/jackspeak": { - "version": "3.1.2", + "version": "4.0.1", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -12490,6 +12503,81 @@ "node": ">= 18" } }, + "node_modules/minizlib/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/minizlib/node_modules/glob": { + "version": "10.4.5", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minizlib/node_modules/jackspeak": { + "version": "3.4.3", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/minizlib/node_modules/lru-cache": { + "version": "10.4.3", + "dev": true, + "license": "ISC" + }, + "node_modules/minizlib/node_modules/minimatch": { + "version": "9.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minizlib/node_modules/path-scurry": { + "version": "1.11.1", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/minizlib/node_modules/rimraf": { "version": "5.0.5", "dev": true, @@ -12928,22 +13016,6 @@ "get-intrinsic": "^1.2.1" } }, - "node_modules/object.hasown": { - "version": "1.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object.values": { "version": "1.2.0", "dev": true, @@ -12982,7 +13054,7 @@ } }, "node_modules/ol-mapbox-style": { - "version": "12.3.3", + "version": "12.3.4", "license": "BSD-2-Clause", "dependencies": { "@mapbox/mapbox-gl-style-spec": "^13.23.1", @@ -13425,26 +13497,26 @@ "license": "MIT" }, "node_modules/path-scurry": { - "version": "1.11.1", + "version": "2.0.0", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.18" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.2", + "version": "11.0.0", "dev": true, "license": "ISC", "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, "node_modules/path-to-regexp": { @@ -13591,11 +13663,13 @@ } }, "node_modules/playwright": { - "version": "1.45.0", + "version": "1.45.3", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.45.3.tgz", + "integrity": "sha512-QhVaS+lpluxCaioejDZ95l4Y4jSFCsBvl2UZkpeXlzxmqS+aABr5c82YmfMHrL6x27nvrvykJAFpkzT2eWdJww==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.45.0" + "playwright-core": "1.45.3" }, "bin": { "playwright": "cli.js" @@ -13608,7 +13682,9 @@ } }, "node_modules/playwright-core": { - "version": "1.45.0", + "version": "1.45.3", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.45.3.tgz", + "integrity": "sha512-+ym0jNbcjikaOwwSZycFbwkWgfruWvYlJfThKYAlImbxUgdWFO2oW70ojPm4OpE4t6TAo2FY/smM+hpVTtkhDA==", "dev": true, "license": "Apache-2.0", "bin": { @@ -13635,7 +13711,7 @@ } }, "node_modules/postcss": { - "version": "8.4.38", + "version": "8.4.39", "dev": true, "funding": [ { @@ -13654,7 +13730,7 @@ "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", + "picocolors": "^1.0.1", "source-map-js": "^1.2.0" }, "engines": { @@ -13694,7 +13770,7 @@ } }, "node_modules/postcss-convert-values": { - "version": "7.0.1", + "version": "7.0.2", "dev": true, "license": "MIT", "dependencies": { @@ -14356,7 +14432,7 @@ "license": "MIT" }, "node_modules/qs": { - "version": "6.12.1", + "version": "6.12.3", "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.6" @@ -14622,7 +14698,9 @@ "license": "MIT" }, "node_modules/react-image-crop": { - "version": "11.0.5", + "version": "11.0.6", + "resolved": "https://registry.npmjs.org/react-image-crop/-/react-image-crop-11.0.6.tgz", + "integrity": "sha512-T+/RPBhwFxdf8PjD/uoWk+tBkS0Xf2XW0lY5mnsmClvnAujO81EEjDwj0M2pcHX3seXVgKOr/yIiL+Sx4evMNw==", "license": "ISC", "peerDependencies": { "react": ">=16.13.1" @@ -16393,6 +16471,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, "node_modules/string.prototype.trim": { "version": "1.2.9", "dev": true, @@ -17568,7 +17657,9 @@ } }, "node_modules/webpack": { - "version": "5.92.1", + "version": "5.93.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz", + "integrity": "sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==", "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -17720,7 +17811,9 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "7.2.1", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.3.0.tgz", + "integrity": "sha512-xD2qnNew+F6KwOGZR7kWdbIou/ud7cVqLEXeK1q0nHcNsX/u7ul/fSdlOTX4ntSL5FNFy7ZJJXbf0piF591JYw==", "dev": true, "license": "MIT", "dependencies": { @@ -17889,6 +17982,33 @@ } } }, + "node_modules/webpack-dev-server/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob": { + "version": "10.4.5", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/webpack-dev-server/node_modules/ipaddr.js": { "version": "2.1.0", "dev": true, @@ -17911,6 +18031,39 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/webpack-dev-server/node_modules/jackspeak": { + "version": "3.4.3", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/webpack-dev-server/node_modules/lru-cache": { + "version": "10.4.3", + "dev": true, + "license": "ISC" + }, + "node_modules/webpack-dev-server/node_modules/minimatch": { + "version": "9.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/webpack-dev-server/node_modules/open": { "version": "10.1.0", "dev": true, @@ -17928,6 +18081,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/webpack-dev-server/node_modules/path-scurry": { + "version": "1.11.1", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/webpack-dev-server/node_modules/rimraf": { "version": "5.0.5", "dev": true, diff --git a/package.json b/package.json index 6f3016d2bd..70b082485f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "worldview", - "version": "4.43.0", + "version": "4.44.0", "description": "Interactive interface for browsing full-resolution, global satellite imagery", "keywords": [ "NASA", @@ -77,13 +77,13 @@ "upload": "node tasks/util/upload.js" }, "devDependencies": { - "@babel/core": "^7.24.7", - "@babel/eslint-parser": "^7.24.7", + "@babel/core": "^7.24.9", + "@babel/eslint-parser": "^7.24.8", "@babel/plugin-transform-class-properties": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/preset-env": "^7.24.7", + "@babel/preset-env": "^7.24.8", "@babel/preset-react": "^7.24.7", - "@playwright/test": "^1.45.0", + "@playwright/test": "^1.45.2", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", "@webpack-cli/serve": "^2.0.5", "ajv": "^8.16.0", @@ -95,7 +95,7 @@ "css-loader": "^7.1.2", "css-minimizer-webpack-plugin": "^7.0.0", "css-url-relative-plugin": "^1.1.0", - "cssnano": "^7.0.3", + "cssnano": "^7.0.4", "eslint": "^8.57.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-standard": "^17.1.0", @@ -106,10 +106,10 @@ "eslint-plugin-n": "^17.9.0", "eslint-plugin-no-storage": "^1.0.2", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.2.0", - "eslint-plugin-react": "^7.34.3", + "eslint-plugin-promise": "^6.4.0", + "eslint-plugin-react": "^7.34.4", "express": "^4.19.2", - "glob": "^10.4.2", + "glob": "^11.0.0", "husky": "^9.0.11", "jest": "^29.7.0", "jest-canvas-mock": "^2.5.2", @@ -120,7 +120,7 @@ "node-ssh": "^13.2.0", "npm-run-all": "^4.1.5", "patch-package": "^8.0.0", - "postcss": "^8.4.38", + "postcss": "^8.4.39", "postcss-loader": "^8.1.1", "react-refresh": "^0.14.1", "react-test-renderer": "^18.3.0", @@ -136,10 +136,10 @@ "tar": "^7.4.0", "terser-webpack-plugin": "^5.3.10", "uuid": "^10.0.0", - "webpack": "^5.92.1", + "webpack": "^5.93.0", "webpack-bundle-analyzer": "^4.10.2", "webpack-cli": "^5.1.4", - "webpack-dev-middleware": "^7.2.1", + "webpack-dev-middleware": "^7.3.0", "webpack-dev-server": "^5.0.4", "xml-js": "^1.6.11", "xml2js": "^0.6.2", @@ -148,12 +148,12 @@ "dependencies": { "@elastic/react-search-ui": "^1.21.5", "@elastic/react-search-ui-views": "^1.21.2", - "@fortawesome/fontawesome-svg-core": "^6.5.2", - "@fortawesome/free-brands-svg-icons": "^6.5.2", - "@fortawesome/free-solid-svg-icons": "^6.5.2", + "@fortawesome/fontawesome-svg-core": "^6.6.0", + "@fortawesome/free-brands-svg-icons": "^6.6.0", + "@fortawesome/free-solid-svg-icons": "^6.6.0", "@fortawesome/react-fontawesome": "^0.2.2", "@khanisak/temperature-converter": "^2.0.1", - "@reduxjs/toolkit": "^2.2.5", + "@reduxjs/toolkit": "^2.2.6", "axios": "^1.7.2", "bluebird": "3.7.2", "bootstrap": "^5.3.3", @@ -178,17 +178,17 @@ "moment-locales-webpack-plugin": "^1.2.0", "node-dir": "^0.1.17", "ol": "^8.2.0", - "ol-mapbox-style": "^12.3.3", + "ol-mapbox-style": "^12.3.4", "p-queue": "^8.0.1", "proj4": "^2.11.0", "prop-types": "^15.8.1", - "qs": "^6.12.1", + "qs": "^6.12.3", "react": "^18.3.1", "react-beautiful-dnd": "^13.1.1", "react-device-detect": "^2.2.3", "react-dom": "^18.3.0", "react-draggable": "^4.4.6", - "react-image-crop": "^11.0.4", + "react-image-crop": "^11.0.6", "react-infinite-scroller": "^1.2.6", "react-joyride": "^2.8.2", "react-mobile-datepicker": "^4.0.2", diff --git a/tasks/build-options/getVisMetadata.js b/tasks/build-options/getVisMetadata.js index 5d0dfa52bd..7ba5ae4e8b 100644 --- a/tasks/build-options/getVisMetadata.js +++ b/tasks/build-options/getVisMetadata.js @@ -108,7 +108,9 @@ async function main (url) { console.warn(`${prog}: Fetching ${layerOrder.length} layer-metadata files`) for (const layerId of layerOrder) { - await getMetadata(layerId, url) + if (!layerId.includes('_STD') && !layerId.includes('_NRT')) { + await getMetadata(layerId, url) + } } const layers = Object.keys(layerMetadata).sort().reduce( diff --git a/web/js/components/layer/settings/imagery-search.js b/web/js/components/layer/settings/imagery-search.js index 3668f48111..7d43f71a6c 100644 --- a/web/js/components/layer/settings/imagery-search.js +++ b/web/js/components/layer/settings/imagery-search.js @@ -37,7 +37,7 @@ export default function ImagerySearch({ layer }) { const conceptID = layer?.conceptIds?.[0]?.value || layer?.collectionConceptID; - const getOlderGranules = async (layer, refDate = selectedDate, pageNum = 1) => { + const getSmallerExtent = () => { // clamp extent to maximum extent allowed by the CMR api const extent = map.extent.map((coord, i) => { const condition = i <= 1 ? coord > maxExtent[i] : coord < maxExtent[i]; @@ -46,8 +46,22 @@ export default function ImagerySearch({ layer }) { } return maxExtent[i]; }); + const xDiff = Math.abs(extent[0] - extent[2]); + const yDiff = Math.abs(extent[1] - extent[3]); + // Reduce width by 40% and height by 20%, to show only centered data + const smallerExtent = [ + extent[0] + (xDiff * 0.2), + extent[1] + (yDiff * 0.1), + extent[2] - (xDiff * 0.2), + extent[3] - (yDiff * 0.1), + ]; + return smallerExtent; + }; + + const getOlderGranules = async (layer, refDate = selectedDate, pageNum = 1) => { + const smallerExtent = getSmallerExtent(); try { - const olderUrl = `https://cmr.earthdata.nasa.gov/search/granules.json?collection_concept_id=${conceptID}&bounding_box=${extent.join(',')}&temporal=,${refDate.toISOString()}&sort_key=-start_date&pageSize=25&page_num=${pageNum}`; + const olderUrl = `https://cmr.earthdata.nasa.gov/search/granules.json?collection_concept_id=${conceptID}&bounding_box=${smallerExtent.join(',')}&temporal=,${refDate.toISOString()}&sort_key=-start_date&pageSize=25&page_num=${pageNum}`; const olderResponse = await fetch(olderUrl, { headers }); const olderGranules = await olderResponse.json(); const olderDates = olderGranules.feed.entry.map(parseGranuleTimestamp); @@ -59,16 +73,9 @@ export default function ImagerySearch({ layer }) { }; const getNewerGranules = async (layer, refDate = selectedDate, pageNum = 1) => { - // clamp extent to maximum extent allowed by the CMR api - const extent = map.extent.map((coord, i) => { - const condition = i <= 1 ? coord > maxExtent[i] : coord < maxExtent[i]; - if (condition) { - return coord; - } - return maxExtent[i]; - }); + const smallerExtent = getSmallerExtent(); try { - const newerUrl = `https://cmr.earthdata.nasa.gov/search/granules.json?collection_concept_id=${conceptID}&bounding_box=${extent.join(',')}&temporal=${refDate.toISOString()},&sort_key=start_date&pageSize=25&page_num=${pageNum}`; + const newerUrl = `https://cmr.earthdata.nasa.gov/search/granules.json?collection_concept_id=${conceptID}&bounding_box=${smallerExtent.join(',')}&temporal=${refDate.toISOString()},&sort_key=start_date&pageSize=25&page_num=${pageNum}`; const newerResponse = await fetch(newerUrl, { headers }); const newerGranules = await newerResponse.json(); const newerDates = newerGranules.feed.entry.map(parseGranuleTimestamp); diff --git a/web/js/components/toolbar/share/links.js b/web/js/components/toolbar/share/links.js deleted file mode 100644 index fd287319ec..0000000000 --- a/web/js/components/toolbar/share/links.js +++ /dev/null @@ -1,78 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import HoverTooltip from '../../util/hover-tooltip'; - -const ShareLinks = function ({ isMobile, onClick }) { - const handleClick = (event, type) => { - event.preventDefault(); - onClick(type); - }; - return ( - - ); -}; - -ShareLinks.propTypes = { - isMobile: PropTypes.bool, - onClick: PropTypes.func, -}; - -export default ShareLinks; diff --git a/web/js/containers/share.js b/web/js/containers/share.js index b401a82762..e2ea7d7768 100644 --- a/web/js/containers/share.js +++ b/web/js/containers/share.js @@ -13,10 +13,9 @@ import { TabContent, TabPane, } from 'reactstrap'; import googleTagManager from 'googleTagManager'; -import ShareLinks from '../components/toolbar/share/links'; import ShareToolTips from '../components/toolbar/share/tooltips'; import { - getPermalink, getShareLink, wrapWithIframe, + getPermalink, wrapWithIframe, } from '../modules/link/util'; import onClickFeedback from '../modules/feedback/util'; import initFeedback from '../modules/feedback/actions'; @@ -39,8 +38,8 @@ const getShortenRequestString = (mock, permalink) => { ); }; -const DESKTOP_SHARE_TABS = ['link', 'embed', 'social']; -const MOBILE_SHARE_TABS = ['link', 'social']; +const DESKTOP_SHARE_TABS = ['link', 'embed', 'cite-us']; +const MOBILE_SHARE_TABS = ['link', 'cite-us']; class ShareLinkContainer extends Component { constructor(props) { @@ -142,34 +141,6 @@ class ShareLinkContainer extends Component { return getPermalink(queryString, selectedDate, isEmbed); }; - onLinkClick = (type) => { - const permalink = this.getPermalink(); - let shareLink = getShareLink(type, permalink); - - googleTagManager.pushEvent({ - event: 'share_social_platform', - social_type: type, - }); - - // If a short link can be generated, replace the full link. - if (type === 'twitter') { - const newTab = window.open('', '_blank'); - this.getShortLink().then(({ link }) => { - shareLink = getShareLink(type, link); - }).finally(() => { - newTab.location = shareLink; - }); - } else if (type === 'email') { - this.getShortLink().then(({ link }) => { - shareLink = getShareLink(type, link); - }).finally(() => { - window.location = shareLink; - }); - } else { - window.open(shareLink, '_blank'); - } - }; - setActiveTab = (activeTab) => { this.setState({ activeTab }); }; @@ -242,6 +213,27 @@ class ShareLinkContainer extends Component { ); + renderTextareaGroup = (value, type) => ( + +