diff --git a/package-lock.json b/package-lock.json index 0fe4840e..6187095c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,11 +27,11 @@ "react-mapbox-gl": "^4.8.6", "react-movable": "^2.5.0", "scrollama": "^2.2.2", - "styled-components": "^5.2.0", - "use-debounce": "^3.4.2" + "styled-components": "^6.1.12", + "use-debounce": "^10.0.3" }, "devDependencies": { - "@wordpress/scripts": "^28.5.0", + "@wordpress/scripts": "^27.9.0", "css-loader": "^7.1.2", "mapbox-gl": "^1.13.1", "postcss": "^8.4.41", @@ -177,6 +177,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dev": true, "dependencies": { "@babel/types": "^7.24.7" }, @@ -326,6 +327,7 @@ "version": "7.24.8", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -694,6 +696,7 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.24.7" }, @@ -1564,16 +1567,16 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", - "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.4.tgz", + "integrity": "sha512-8hsyG+KUYGY0coX6KUCDancA0Vw225KJ2HJO0yCNr1vq5r+lJTleDaJf0K7iOhjw4SWhu03TMBzYTJ9krmzULQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-corejs3": "^0.10.6", "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, @@ -2169,15 +2172,11 @@ } } }, - "node_modules/@emotion/stylis": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", - "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" - }, "node_modules/@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "license": "MIT" }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { "version": "1.1.0", @@ -5068,6 +5067,12 @@ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true }, + "node_modules/@types/stylis": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz", + "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==", + "license": "MIT" + }, "node_modules/@types/supercluster": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-5.0.3.tgz", @@ -5715,10 +5720,23 @@ "npm": ">=8.19.2" } }, + "node_modules/@wordpress/babel-plugin-import-jsx-pragma": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.41.0.tgz", + "integrity": "sha512-hYxj2Uobxk86ctlfaJou9v13XqXZ30yx4ZwRNu5cH5/LWXe2MIXBTPv7dUk6wqN/qFOjsFvP9jCB0NsW6MnkrA==", + "dev": true, + "license": "GPL-2.0-or-later", + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@babel/core": "^7.12.9" + } + }, "node_modules/@wordpress/babel-preset-default": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-8.6.0.tgz", - "integrity": "sha512-g8Soek91qosZgF7GVuXu8MIe/T5HZh/sxjN2w7+XWwHpT3OqOOExKbPpfHRVa2kfvqyU0M5HOG3rWU9p5grAMw==", + "version": "7.42.0", + "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.42.0.tgz", + "integrity": "sha512-AWSxWuEuzazt/nWomKiaVhYQeXuqxTniPCKhvks58wB3P4UXvSe3hRnO+nujz20IuxIk2xHT6x47HgpDZy30jw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -5728,28 +5746,34 @@ "@babel/preset-env": "^7.16.0", "@babel/preset-typescript": "^7.16.0", "@babel/runtime": "^7.16.0", - "@wordpress/browserslist-config": "^6.6.0", - "@wordpress/warning": "^3.6.0", + "@wordpress/babel-plugin-import-jsx-pragma": "^4.41.0", + "@wordpress/browserslist-config": "^5.41.0", + "@wordpress/warning": "^2.58.0", "browserslist": "^4.21.10", "core-js": "^3.31.0", "react": "^18.3.0" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=14" } }, - "node_modules/@wordpress/base-styles": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-5.6.0.tgz", - "integrity": "sha512-U+4ROBYaxzyf96bvFEJTzTJTaSS1igk3UxMJZIUa2Ixs+rBirywEkMPbbwto8uRCCEy4c0Gq/f+lmzfU02Vvpg==", + "node_modules/@wordpress/babel-preset-default/node_modules/@wordpress/warning": { + "version": "2.58.0", + "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.58.0.tgz", + "integrity": "sha512-9bZlORhyMY2nbWozeyC5kqJsFzEPP4DCLhGmjtbv+YWGHttUrxUZEfrKdqO+rUODA8rP5zeIly1nCQOUnkw4Lg==", "dev": true, "license": "GPL-2.0-or-later", "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=12" } }, + "node_modules/@wordpress/base-styles": { + "version": "4.49.0", + "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.49.0.tgz", + "integrity": "sha512-yFRYqNtd26ULZ0oAHhCu/IcaA0XHI3E7kRCKajZqUvyRQj7YprXnpD3o0/pnwvF6ZFTXzCX8pXHjUc2TIv97ig==", + "dev": true, + "license": "GPL-2.0-or-later" + }, "node_modules/@wordpress/blob": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-4.5.0.tgz", @@ -5902,14 +5926,13 @@ } }, "node_modules/@wordpress/browserslist-config": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-6.6.0.tgz", - "integrity": "sha512-godfjZwl9gZmgXKxUctl01MxX5uDGIgcGa7VrFxtoVX0YZPKuZob0LUOkENddfWTTRmPQfrQBMDA05XtPsmPcA==", + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.41.0.tgz", + "integrity": "sha512-J7ejzzDpPZddVIiq2YiK8J/pNTJDy3X1s+5ZtwkwklCxBMZJurxf9pEhtbaf7us0Q6c1j8Ubv7Fpx3lqk2ypxA==", "dev": true, "license": "GPL-2.0-or-later", "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=14" } }, "node_modules/@wordpress/commands": { @@ -6188,17 +6211,16 @@ } }, "node_modules/@wordpress/dependency-extraction-webpack-plugin": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-6.6.0.tgz", - "integrity": "sha512-w3TqOnLnjmbBaZRea7uBoF3Uo5pH4ORdmGTiIigezl/tp7c14VIw0x9xJNs3an7hWX6yal8L5We6WR4ixSJXOQ==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-5.9.0.tgz", + "integrity": "sha512-hXbCkbG1XES47t7hFSETRrLfaRSPyQPlCnhlCx7FfhYFD0wh1jVArApXX5dD+A6wTrayXX/a16MpfaNqE662XA==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "json2php": "^0.0.7" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=18" }, "peerDependencies": { "webpack": "^5.0.0" @@ -6243,27 +6265,106 @@ } }, "node_modules/@wordpress/e2e-test-utils-playwright": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-1.6.0.tgz", - "integrity": "sha512-ncu9cgaysr4tYwMfWYAu0O6E6vV8iMGvHeMmZow965ogIldePkIonQIwLB3PdXz536/u5kgUAjqcTb+nhEB8lQ==", + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils-playwright/-/e2e-test-utils-playwright-0.26.0.tgz", + "integrity": "sha512-4KFyQ3IsYIJaIvOQ1qhAHhRISs9abNToF/bktfMNxQiEJsmbNn7lq/IbaY+shqwdBWVg8TQtLcL4MpSl0ISaxQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { + "@wordpress/api-fetch": "^6.55.0", + "@wordpress/keycodes": "^3.58.0", + "@wordpress/url": "^3.59.0", "change-case": "^4.1.2", "form-data": "^4.0.0", "get-port": "^5.1.1", "lighthouse": "^10.4.0", "mime": "^3.0.0", - "web-vitals": "^4.2.1" + "web-vitals": "^3.5.0" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=12" }, "peerDependencies": { "@playwright/test": ">=1" } }, + "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/@wordpress/api-fetch": { + "version": "6.55.0", + "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.55.0.tgz", + "integrity": "sha512-1HrCUsJdeRY5Y0IjplotINwqMRO81e7O7VhBScuKk7iOuDm/E1ioKv2uLGnPNWziYu+Zf025byxOqVzXDyM2gw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "^7.16.0", + "@wordpress/i18n": "^4.58.0", + "@wordpress/url": "^3.59.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/@wordpress/hooks": { + "version": "3.58.0", + "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.58.0.tgz", + "integrity": "sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "^7.16.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/@wordpress/i18n": { + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.58.0.tgz", + "integrity": "sha512-VfvS3BWv/RDjRKD6PscIcvYfWKnGJcI/DEqyDgUMhxCM6NRwoL478CsUKTiGJIymeyRodNRfprdcF086DpGKYw==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "^7.16.0", + "@wordpress/hooks": "^3.58.0", + "gettext-parser": "^1.3.1", + "memize": "^2.1.0", + "sprintf-js": "^1.1.1", + "tannin": "^1.2.0" + }, + "bin": { + "pot-to-php": "tools/pot-to-php.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/@wordpress/keycodes": { + "version": "3.58.0", + "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.58.0.tgz", + "integrity": "sha512-Q/LRKpx8ndzuHlkxSQ2BD+NTYYKQPIneNNMng8hTAfyU7RFwXpqj06HpeOFGh4XIdPKCs/8hmucoLJRmmLmZJA==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "^7.16.0", + "@wordpress/i18n": "^4.58.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@wordpress/e2e-test-utils-playwright/node_modules/@wordpress/url": { + "version": "3.59.0", + "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.59.0.tgz", + "integrity": "sha512-GxvoMjYCav0w4CiX0i0h3qflrE/9rhLIZg5aPCQjbrBdwTxYR3Exfw0IJYcmVaTKXQOUU8fOxlDxULsbLmKe9w==", + "dev": true, + "license": "GPL-2.0-or-later", + "dependencies": { + "@babel/runtime": "^7.16.0", + "remove-accents": "^0.5.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@wordpress/editor": { "version": "14.5.0", "resolved": "https://registry.npmjs.org/@wordpress/editor/-/editor-14.5.0.tgz", @@ -6403,17 +6504,17 @@ } }, "node_modules/@wordpress/eslint-plugin": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-20.3.0.tgz", - "integrity": "sha512-Y272ZtosmXPJJ0K5X7j0ufcpuDf1unEEDOmdyStHhYV3DGjfETPKgMBVjpmWIObu5oMlqqkTiiQaNb+lho3EIQ==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-18.1.0.tgz", + "integrity": "sha512-5eGpXEwaZsKbEh9040nVr4ggmrpPmltP+Ie4iGruWvCme6ZIFYw70CyWEV8S102IkqjH/BaH6d+CWg8tN7sc/g==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/eslint-parser": "^7.16.0", "@typescript-eslint/eslint-plugin": "^6.4.1", "@typescript-eslint/parser": "^6.4.1", - "@wordpress/babel-preset-default": "^8.6.0", - "@wordpress/prettier-config": "^4.6.0", + "@wordpress/babel-preset-default": "^7.42.0", + "@wordpress/prettier-config": "^3.15.0", "cosmiconfig": "^7.0.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.25.2", @@ -6428,8 +6529,8 @@ "requireindex": "^1.2.0" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=14", + "npm": ">=6.14.4" }, "peerDependencies": { "@babel/core": ">=7", @@ -6562,9 +6663,9 @@ } }, "node_modules/@wordpress/jest-console": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-8.6.0.tgz", - "integrity": "sha512-U680VvNbmg8oGcNpeovuFN8w2Y8iN/lVDyjvO+iT/hsM74qAzUfjb4EOhQiaSnT/GEGP8KAqw7FNSUSMLv+/YA==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-7.29.0.tgz", + "integrity": "sha512-/9PZJhyszdRX4mka7t1WzoooM+Q/DwC4jkNVtJxqci5lbL3Lrhy1cCJGCgMr1n/9w+zs7eLmExFBvV4v44iyNw==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -6572,26 +6673,24 @@ "jest-matcher-utils": "^29.6.2" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=14" }, "peerDependencies": { "jest": ">=29" } }, "node_modules/@wordpress/jest-preset-default": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-12.6.0.tgz", - "integrity": "sha512-02ZozKXzlBdJnr5fD4PKfNrDFmsA44KvPJa1zNOsIILxHk+C5ZfqcSL0q++k2dOsSpLuIZg+tNwKkOeluL+s3Q==", + "version": "11.29.0", + "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-11.29.0.tgz", + "integrity": "sha512-7LA0ZS5t0Thn7xrdwPL3hLgjB9LKloneGhMwnnDUTgJP330lyfdDfJ+O6Lnz3iL+bg68mkA3AzrT9Fs9f3WKww==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/jest-console": "^8.6.0", + "@wordpress/jest-console": "^7.29.0", "babel-jest": "^29.6.2" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=14" }, "peerDependencies": { "@babel/core": ">=7", @@ -6663,14 +6762,13 @@ } }, "node_modules/@wordpress/npm-package-json-lint-config": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-5.6.0.tgz", - "integrity": "sha512-wJKEX0XC0eDQFTnvpuBQdV12KyJzWHJaAA8n6pyIgRWz8RjdeANEaKHAbdDK1aHOA5DbwuxZh7NUm4ngMaPBrA==", + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.43.0.tgz", + "integrity": "sha512-XSb7AdDC7yGTBVYeRM4oqmOygEB+/+tk7lobLIGDmlZJs+M3F/NUvQq0Vcas1pojq2fyPYTUwOlu81ga33fNwQ==", "dev": true, "license": "GPL-2.0-or-later", "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=14" }, "peerDependencies": { "npm-package-json-lint": ">=6.0.0" @@ -6730,18 +6828,17 @@ } }, "node_modules/@wordpress/postcss-plugins-preset": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-5.6.0.tgz", - "integrity": "sha512-r8QShU9dKd23nPcnOtW4Cvaf8LyZ9qyoIWw50lVNV4H9LAvaaXFN7kzID+B7bosLaqoB5vAe/H17n6/kxdDfHQ==", + "version": "4.42.0", + "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-4.42.0.tgz", + "integrity": "sha512-5xmKF7IUsqS5JcmJlHKHq7RaR6ZpaLj3n9c+X0X0/Oo7ZCIGp6WeDQngx13sH4NJoKXrZ9g4n1rbzhEKeo/Wtg==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/base-styles": "^5.6.0", + "@wordpress/base-styles": "^4.49.0", "autoprefixer": "^10.2.5" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=14" }, "peerDependencies": { "postcss": "^8.0.0" @@ -6774,14 +6871,13 @@ } }, "node_modules/@wordpress/prettier-config": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-4.6.0.tgz", - "integrity": "sha512-e43Ep9OiNt/zRkY0NAdPni3ac7Tf761lEZDVwxwSZdrm5N4u6SXqXJrHo5/AxcnLhq/21TG4Ry+g4zEA6L1aXA==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-3.15.0.tgz", + "integrity": "sha512-exC2rkEioTt//AnzPRyaaFv8FNYIvamPDytNol5bKQ6Qh65QSdZZE9V+GtRCrIPL7/Bq6xba03XuRVxl9TjtJg==", "dev": true, "license": "GPL-2.0-or-later", "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=14" }, "peerDependencies": { "prettier": ">=3" @@ -6907,25 +7003,25 @@ } }, "node_modules/@wordpress/scripts": { - "version": "28.6.0", - "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-28.6.0.tgz", - "integrity": "sha512-CBmmC3ftafLQ0hXXust5w9W/H1D14k28oQxCSYWQncAcCocGyOlALoEN27BGh+Hb79PZDqC/HB71ni6fQZOQTQ==", + "version": "27.9.0", + "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-27.9.0.tgz", + "integrity": "sha512-ohiDHMnfTTBTi7qS7AVJZUi1dxwg0k3Aav1a8CzUoOE8YoT8tvMQ3W89H9XgqMgMTWUCdgTUBYLTJTivfVVbXQ==", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { "@babel/core": "^7.16.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", "@svgr/webpack": "^8.0.1", - "@wordpress/babel-preset-default": "^8.6.0", - "@wordpress/browserslist-config": "^6.6.0", - "@wordpress/dependency-extraction-webpack-plugin": "^6.6.0", - "@wordpress/e2e-test-utils-playwright": "^1.6.0", - "@wordpress/eslint-plugin": "^20.3.0", - "@wordpress/jest-preset-default": "^12.6.0", - "@wordpress/npm-package-json-lint-config": "^5.6.0", - "@wordpress/postcss-plugins-preset": "^5.6.0", - "@wordpress/prettier-config": "^4.6.0", - "@wordpress/stylelint-config": "^22.6.0", + "@wordpress/babel-preset-default": "^7.42.0", + "@wordpress/browserslist-config": "^5.41.0", + "@wordpress/dependency-extraction-webpack-plugin": "^5.9.0", + "@wordpress/e2e-test-utils-playwright": "^0.26.0", + "@wordpress/eslint-plugin": "^18.1.0", + "@wordpress/jest-preset-default": "^11.29.0", + "@wordpress/npm-package-json-lint-config": "^4.43.0", + "@wordpress/postcss-plugins-preset": "^4.42.0", + "@wordpress/prettier-config": "^3.15.0", + "@wordpress/stylelint-config": "^21.41.0", "adm-zip": "^0.5.9", "babel-jest": "^29.6.2", "babel-loader": "^8.2.3", @@ -6963,7 +7059,6 @@ "rtlcss-webpack-plugin": "^4.0.7", "sass": "^1.35.2", "sass-loader": "^12.1.0", - "schema-utils": "^4.2.0", "source-map-loader": "^3.0.0", "stylelint": "^14.2.0", "terser-webpack-plugin": "^5.3.9", @@ -6977,43 +7072,15 @@ "wp-scripts": "bin/wp-scripts.js" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=18", + "npm": ">=6.14.4" }, "peerDependencies": { - "@playwright/test": "^1.46.0", + "@playwright/test": "^1.43.0", "react": "^18.0.0", "react-dom": "^18.0.0" } }, - "node_modules/@wordpress/scripts/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@wordpress/scripts/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, "node_modules/@wordpress/scripts/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -7107,12 +7174,6 @@ "node": ">=8" } }, - "node_modules/@wordpress/scripts/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "node_modules/@wordpress/scripts/node_modules/sass-loader": { "version": "12.6.0", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", @@ -7151,25 +7212,6 @@ } } }, - "node_modules/@wordpress/scripts/node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/@wordpress/scripts/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", @@ -7247,9 +7289,9 @@ } }, "node_modules/@wordpress/stylelint-config": { - "version": "22.6.0", - "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-22.6.0.tgz", - "integrity": "sha512-wtGdEbHp99Vh/ya4swP8AWKzZCDFHke1SYHvmgdbomSJ+C87APp9q4ggfk2VOk/tIcrHPK9oagDFH05B8H+VLA==", + "version": "21.41.0", + "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-21.41.0.tgz", + "integrity": "sha512-2wxFu8ICeRGF3Lxz7H7o2SU1u6pTI4mjuog39DgtCNb+v+f6yhgREDuNQEeti3Svb0rjj63AJ7r2CqLZk+EQIQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7257,8 +7299,7 @@ "stylelint-config-recommended-scss": "^5.0.2" }, "engines": { - "node": ">=18.12.0", - "npm": ">=8.19.2" + "node": ">=14" }, "peerDependencies": { "stylelint": "^14.2" @@ -8171,21 +8212,6 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/babel-plugin-styled-components": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", - "integrity": "sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "lodash": "^4.17.21", - "picomatch": "^2.3.1" - }, - "peerDependencies": { - "styled-components": ">= 2" - } - }, "node_modules/babel-preset-current-node-syntax": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", @@ -11037,9 +11063,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", - "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.2.tgz", + "integrity": "sha512-3XnC5fDyc8M4J2E8pt8pmSVRX2M+5yWMCfI/kDZwauQeFgzQOuhcRBFKjTeJagqgk4sFKxe1mvNVnaWwImx/Tg==", "dev": true, "license": "MIT", "dependencies": { @@ -18560,6 +18586,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "engines": { "node": ">=8.6" }, @@ -21855,9 +21882,9 @@ } }, "node_modules/streamx": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.18.0.tgz", - "integrity": "sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.19.0.tgz", + "integrity": "sha512-5z6CNR4gtkPbwlxyEqoDGDmWIzoNJqCBt4Eac1ICP9YaIT08ct712cFj0u1rx4F8luAuL+3Qc+RFIdI4OX00kg==", "dev": true, "license": "MIT", "dependencies": { @@ -22136,23 +22163,23 @@ "dev": true }, "node_modules/styled-components": { - "version": "5.3.11", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-5.3.11.tgz", - "integrity": "sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==", - "dependencies": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/traverse": "^7.4.5", - "@emotion/is-prop-valid": "^1.1.0", - "@emotion/stylis": "^0.8.4", - "@emotion/unitless": "^0.7.4", - "babel-plugin-styled-components": ">= 1.12.0", - "css-to-react-native": "^3.0.0", - "hoist-non-react-statics": "^3.0.0", - "shallowequal": "^1.1.0", - "supports-color": "^5.5.0" + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.12.tgz", + "integrity": "sha512-n/O4PzRPhbYI0k1vKKayfti3C/IGcPf+DqcrOB7O/ab9x4u/zjqraneT5N45+sIe87cxrCApXM8Bna7NYxwoTA==", + "license": "MIT", + "dependencies": { + "@emotion/is-prop-valid": "1.2.2", + "@emotion/unitless": "0.8.1", + "@types/stylis": "4.2.5", + "css-to-react-native": "3.2.0", + "csstype": "3.1.3", + "postcss": "8.4.38", + "shallowequal": "1.1.0", + "stylis": "4.3.2", + "tslib": "2.6.2" }, "engines": { - "node": ">=10" + "node": ">= 16" }, "funding": { "type": "opencollective", @@ -22160,10 +22187,24 @@ }, "peerDependencies": { "react": ">= 16.8.0", - "react-dom": ">= 16.8.0", - "react-is": ">= 16.8.0" + "react-dom": ">= 16.8.0" + } + }, + "node_modules/styled-components/node_modules/@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.8.1" } }, + "node_modules/styled-components/node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "license": "MIT" + }, "node_modules/styled-components/node_modules/css-to-react-native": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", @@ -22174,6 +22215,64 @@ "postcss-value-parser": "^4.0.2" } }, + "node_modules/styled-components/node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/styled-components/node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/styled-components/node_modules/stylis": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", + "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==", + "license": "MIT" + }, + "node_modules/styled-components/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "license": "0BSD" + }, "node_modules/stylehacks": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", @@ -23364,11 +23463,15 @@ } }, "node_modules/use-debounce": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/use-debounce/-/use-debounce-3.4.3.tgz", - "integrity": "sha512-nxy+opOxDccWfhMl36J5BSCTpvcj89iaQk2OZWLAtBJQj7ISCtx1gh+rFbdjGfMl6vtCZf6gke/kYvrkVfHMoA==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/use-debounce/-/use-debounce-10.0.3.tgz", + "integrity": "sha512-DxQSI9ZKso689WM1mjgGU3ozcxU1TJElBJ3X6S4SMzMNcm2lVH0AHmyXB+K7ewjz2BSUKJTDqTcwtSMRfB89dg==", + "license": "MIT", + "engines": { + "node": ">= 16.0.0" + }, "peerDependencies": { - "react": ">=16.8.0" + "react": "*" } }, "node_modules/use-lilius": { @@ -23573,9 +23676,9 @@ } }, "node_modules/web-vitals": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-4.2.3.tgz", - "integrity": "sha512-/CFAm1mNxSmOj6i0Co+iGFJ58OS4NRGVP+AWS/l509uIK5a1bSoIVaHz/ZumpHTfHSZBpgrJ+wjfpAOrTHok5Q==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-3.5.2.tgz", + "integrity": "sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==", "dev": true, "license": "Apache-2.0" }, diff --git a/package.json b/package.json index b3d721f7..2c1a4a9f 100644 --- a/package.json +++ b/package.json @@ -39,11 +39,11 @@ "react-mapbox-gl": "^4.8.6", "react-movable": "^2.5.0", "scrollama": "^2.2.2", - "styled-components": "^5.2.0", - "use-debounce": "^3.4.2" + "styled-components": "^6.1.12", + "use-debounce": "^10.0.3" }, "devDependencies": { - "@wordpress/scripts": "^28.5.0", + "@wordpress/scripts": "^27.9.0", "css-loader": "^7.1.2", "mapbox-gl": "^1.13.1", "postcss": "^8.4.41", diff --git a/src/README.txt b/src/README.txt index 5a4196fc..8e545c23 100755 --- a/src/README.txt +++ b/src/README.txt @@ -1,12 +1,12 @@ === JEO === Contributors: earthjournalism Tested up to: 6.6.1 -Stable tag: 2.9.3 +Stable tag: 2.10.0 Requires PHP: 7.2 Requires at least: 5.8 License: GPL-2.0+ License URI: http://www.gnu.org/licenses/gpl-2.0.txt -Version: 2.9.3 +Version: 2.10.0 The JEO plugin acts as a geojournalism platform that allows news organizations, bloggers and NGOs to publish news stories as layers of information on digital maps. @@ -49,6 +49,9 @@ After activating the plugin, a new item will appear on the WordPress dashboard: == Changelog == += 2.10.0 = +* Update dependencies + = 2.9.3 = * Add support for more syntax in EJS templates, via [eta](https://eta.js.org/docs/intro/template-syntax) * bugfix: Fix a regression that made popup template compilation fail diff --git a/src/includes/class-jeo.php b/src/includes/class-jeo.php index 8861ea92..28c6f81a 100644 --- a/src/includes/class-jeo.php +++ b/src/includes/class-jeo.php @@ -129,6 +129,7 @@ public function register_assets() { $deps = array_merge( array( 'lodash' ), $asset_file['dependencies'] ); + wp_register_style( 'jeo-js', JEO_BASEURL . '/js/build/postsSidebar.css' ); wp_register_script( 'jeo-js', JEO_BASEURL . '/js/build/postsSidebar.js', @@ -181,6 +182,7 @@ public function register_assets() { $map_blocks_assets = include JEO_BASEPATH . '/js/build/mapBlocks.asset.php'; + wp_register_style( 'jeo-map-blocks', JEO_BASEURL . '/js/build/mapBlocks.css' ); wp_register_script( 'jeo-map-blocks', JEO_BASEURL . '/js/build/mapBlocks.js', @@ -206,14 +208,19 @@ public function register_block_category( $categories ) { } public function register_block_types() { - register_block_type( 'jeo/map-blocks', array( 'editor_script' => 'jeo-map-blocks' ) ); + register_block_type( 'jeo/map-blocks', array( + 'editor_script' => 'jeo-map-blocks', + 'editor_style' => 'jeo-map-blocks', + ) ); register_block_type( 'jeo/storymap', array( 'render_callback' => [$this, 'story_map_dynamic_render_callback'], 'editor_script' => 'jeo-map-blocks', + 'editor_style' => 'jeo-map-blocks', ) ); register_block_type( 'jeo/embedded-storymap', array( 'render_callback' => [$this, 'embedded_story_map_dynamic_render_callback'], 'editor_script' => 'jeo-map-blocks', + 'editor_style' => 'jeo-map-blocks', ) ); } @@ -340,12 +347,14 @@ public function enqueue_scripts() { wp_enqueue_style( 'mapboxgl', 'https://api.mapbox.com/mapbox-gl-js/v1.13.1/mapbox-gl.css', time() ); wp_enqueue_script( 'mapboxgl-loader' ); wp_enqueue_script( 'mapboxgl-spiderifier' ); + wp_enqueue_style( 'jeo-map', JEO_BASEURL . '/js/build/jeoMap.css' ); wp_enqueue_script( 'jeo-map', JEO_BASEURL . '/js/build/jeoMap.js', array( 'mapboxgl-loader', 'mapboxgl-spiderifier', 'jquery', 'wp-element' ), false, true ); wp_set_script_translations('jeo-map', 'jeo', plugin_dir_path( __DIR__ ) . 'languages'); $discovery_assets = include JEO_BASEPATH . '/js/build/discovery.asset.php'; + wp_enqueue_style( 'discovery-map', JEO_BASEURL . '/js/build/discovery.css' ); wp_enqueue_script( 'discovery-map', JEO_BASEURL . '/js/build/discovery.js', array_merge( $discovery_assets['dependencies'], array( 'wp-element', 'mapboxgl-loader', 'jquery', 'jeo-map' ) ), false, true); wp_set_script_translations('discovery-map', 'jeo', plugin_dir_path( __DIR__ ) . 'languages'); @@ -370,7 +379,7 @@ public function enqueue_scripts() { ] )); - wp_enqueue_style( 'jeo-map', JEO_BASEURL . '/css/jeo-map.css', time() ); + wp_enqueue_style( 'jeo-map-css', JEO_BASEURL . '/css/jeo-map.css', time() ); wp_localize_script( 'jeo-map', 'jeoMapVars', diff --git a/src/includes/sidebars/class-sidebars.php b/src/includes/sidebars/class-sidebars.php index 9410759a..8e056694 100644 --- a/src/includes/sidebars/class-sidebars.php +++ b/src/includes/sidebars/class-sidebars.php @@ -22,6 +22,7 @@ public function rest_post_query($args, $request) { public function load_assets() { $asset_file = include JEO_BASEPATH . '/js/build/postsSidebar.asset.php'; + wp_enqueue_style( 'jeo-layers-sidebar', JEO_BASEURL . '/js/build/layersSidebar.css' ); wp_enqueue_script( 'jeo-layers-sidebar', JEO_BASEURL . '/js/build/layersSidebar.js', @@ -49,6 +50,7 @@ public function load_assets() { ) ); + wp_enqueue_style( 'jeo-maps-sidebar', JEO_BASEURL . '/js/build/mapsSidebar.css' ); wp_enqueue_script( 'jeo-maps-sidebar', JEO_BASEURL . '/js/build/mapsSidebar.js', diff --git a/src/jeo.php b/src/jeo.php index 43815eed..11762b92 100755 --- a/src/jeo.php +++ b/src/jeo.php @@ -5,7 +5,7 @@ * @wordpress-plugin * Plugin Name: JEO WP * Description: Interactive Map blocks for Wordpress Gutenberg - * Version: 2.9.3 + * Version: 2.10.0 * License: GPL-2.0+ * License URI: http://www.gnu.org/licenses/gpl-2.0.txt * Text Domain: jeo @@ -22,7 +22,7 @@ * Start at version 1.0.0 and use SemVer - https://semver.org * Rename this for your plugin and update it as you release new versions. */ -define( 'JEO_VERSION', '2.9.3' ); +define( 'JEO_VERSION', '2.10.0' ); define( 'JEO_BASEPATH', plugin_dir_path( __FILE__ ) ); define( 'JEO_BASEURL', plugins_url('', __FILE__) ); diff --git a/src/js/src/discovery/blocks/lazy-image.js b/src/js/src/discovery/blocks/lazy-image.js index f519b6e3..301ad002 100644 --- a/src/js/src/discovery/blocks/lazy-image.js +++ b/src/js/src/discovery/blocks/lazy-image.js @@ -1,8 +1,5 @@ -import { - useRef, -} from '@wordpress/element'; +import { useRef } from '@wordpress/element'; import styled, { keyframes } from 'styled-components'; -import PropTypes from 'prop-types'; const loadingAnimation = keyframes` 0%{ diff --git a/src/js/src/discovery/index.js b/src/js/src/discovery/index.js index e40d95c6..b1930158 100644 --- a/src/js/src/discovery/index.js +++ b/src/js/src/discovery/index.js @@ -1,4 +1,4 @@ -import { Component } from '@wordpress/element'; +import { Component, createRoot } from '@wordpress/element'; import Sidebar from './blocks/sidebar'; import './style/discovery.scss'; import { __ } from '@wordpress/i18n'; @@ -444,14 +444,10 @@ class Discovery extends Component { if ( document.querySelector( '.discovery-embed' ) ) { document.querySelectorAll( '.discovery-embed' ).forEach( ( element ) => { - wp.element.render( - , - element - ); + const root = createRoot( element ); + root.render( ); } ); -} else if ( document.getElementById( 'discovery' ) ) { - wp.element.render( - , - document.getElementById( 'discovery' ) - ); +} else if ( document.querySelector( '#discovery' ) ) { + const root = createRoot( document.querySelector( '#discovery' ) ); + root.render( ); } diff --git a/src/js/src/layers-sidebar/index.js b/src/js/src/layers-sidebar/index.js index 56cc8c40..8d9672c8 100644 --- a/src/js/src/layers-sidebar/index.js +++ b/src/js/src/layers-sidebar/index.js @@ -3,33 +3,32 @@ import domReady from '@wordpress/dom-ready'; import { registerPlugin } from '@wordpress/plugins'; import LayersSidebar from './layers-sidebar'; +import { waitUntil } from '../shared/wait'; -domReady( () => { - registerPlugin( 'jeo-layers-sidebar', { - icon: null, - render: () => { - const currentPostType = useSelect( ( select ) => { - return select( 'core/editor' ).getCurrentPostType() - }, [] ); +domReady(() => { + waitUntil( + () => document.querySelector( '.editor-post-title' ), + ( postTitleElement ) => { + registerPlugin( 'jeo-layers-sidebar', { + icon: null, + render: () => { + const currentPostType = useSelect( ( select ) => { + return select( 'core/editor' ).getCurrentPostType() + }, [] ); - const postTitleElement = document.querySelector('.editor-post-title'); + if (currentPostType === "map-layer") { + const preview = document.createElement('div'); + preview.setAttribute('id', 'layer-preview'); + postTitleElement.parentNode.appendChild(preview); + } - if(!postTitleElement) { - return null; - } - - if(currentPostType === "map-layer") { - const preview = document.createElement('div'); - preview.setAttribute('id', 'layer-preview'); - postTitleElement.parentNode.appendChild(preview); - } - - return ( - - { currentPostType === "map-layer"? : null }; - - ) - - }, - } ); -} ); + return ( + + { currentPostType === "map-layer"? : null }; + + ); + }, + } ); + } + ); +}); diff --git a/src/js/src/map-blocks/storymap-display.js b/src/js/src/map-blocks/storymap-display.js index 1995d407..af8dc145 100755 --- a/src/js/src/map-blocks/storymap-display.js +++ b/src/js/src/map-blocks/storymap-display.js @@ -1,7 +1,7 @@ +import { Component, createRoot } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import classNames from 'classnames'; import mapboxgl from 'mapbox-gl'; -import React, { Component } from 'react'; import scrollama from 'scrollama'; import { renderLayer } from './map-preview-layer'; @@ -537,8 +537,9 @@ function decodeHtml( html ) { } document.querySelectorAll( '.story-map-container' ).forEach( ( storyMapElement ) => { + const root = createRoot( storyMapElement ); const storyMapProps = JSON.parse( decodeHtml( storyMapElement.dataset.properties ) ); - wp.element.render( , storyMapElement ); + root.render( ); // `overflow` avoids `position:sticky` let parent = storyMapElement.parentElement; diff --git a/src/js/src/map-blocks/storymap-editor.js b/src/js/src/map-blocks/storymap-editor.js index e95a3009..8ae57f9f 100755 --- a/src/js/src/map-blocks/storymap-editor.js +++ b/src/js/src/map-blocks/storymap-editor.js @@ -859,7 +859,7 @@ const applyWithSelect = withSelect( ( select, { attributes } ) => ( { 'map', attributes.map_id, ] ), - loadedLayers: select( 'core' ).getEntityRecords( 'postType', 'map-layer', { per_page: -1, order: 'asc', orderby: 'menu_order', ID: 122820 } ), + loadedLayers: select( 'core' ).getEntityRecords( 'postType', 'map-layer', { per_page: -1, order: 'asc', orderby: 'menu_order' } ), loadingLayers: select( 'core/data' ).isResolving( 'core', 'getEntityRecords', diff --git a/src/js/src/maps-sidebar/index.js b/src/js/src/maps-sidebar/index.js index 42afc386..3efe8e86 100644 --- a/src/js/src/maps-sidebar/index.js +++ b/src/js/src/maps-sidebar/index.js @@ -1,43 +1,36 @@ -// import { select } from '@wordpress/data'; -import domReady from '@wordpress/dom-ready'; import { useSelect, AsyncModeProvider } from '@wordpress/data'; +import domReady from '@wordpress/dom-ready'; import { registerPlugin } from '@wordpress/plugins'; import MapsSidebar from './maps-sidebar'; - import StoryMapSidebar from './storymap-sidebar'; - -domReady( () => { - registerPlugin( 'jeo-maps-sidebar', { - icon: null, - render: () => { - const currentPostType = useSelect( ( select ) => { - return select( 'core/editor' ).getCurrentPostType() - }, [] ); - - const postTitleElement = document.querySelector('.editor-post-title'); - - if(!postTitleElement) { - return null; - } - - if(currentPostType === "map") { - const preview = document.createElement('div'); - preview.setAttribute('id', 'map-preview'); - postTitleElement.parentNode.appendChild(preview); - } - - return ( - - { currentPostType === "map"? : null }; - { currentPostType === "storymap"? : null }; - - ) - - }, - } ); - - // } - - -} ); +import { waitUntil } from '../shared/wait'; + +domReady(() => { + waitUntil( + () => document.querySelector( '.editor-post-title' ), + ( postTitleElement ) => { + registerPlugin( 'jeo-maps-sidebar', { + icon: null, + render: () => { + const currentPostType = useSelect( ( select ) => { + return select( 'core/editor' ).getCurrentPostType(); + }, [] ); + + if (currentPostType === "map") { + const preview = document.createElement('div'); + preview.setAttribute('id', 'map-preview'); + postTitleElement.parentNode.appendChild(preview); + } + + return ( + + { currentPostType === "map"? : null }; + { currentPostType === "storymap"? : null }; + + ); + }, + } ); + } + ); +}); diff --git a/src/js/src/posts-sidebar/index.js b/src/js/src/posts-sidebar/index.js index 0faab24a..49f52b6d 100644 --- a/src/js/src/posts-sidebar/index.js +++ b/src/js/src/posts-sidebar/index.js @@ -40,19 +40,18 @@ const JeoGeocodePanel = class JeoGeocodePanel extends Component { registerPlugin( 'jeo-posts-sidebar', { icon: null, render: () => { + const currentPostType = useSelect( ( select ) => { + return select( 'core/editor' ).getCurrentPostType(); + }, [] ); - const currentPostType = useSelect( ( select ) => { - return select( 'core/editor' ).getCurrentPostType() - }, [] ); - - return ( -
- { currentPostType ? - - - - : null }; -
- ) + return ( +
+ { currentPostType ? + + + + : null }; +
+ ); }, } ); diff --git a/src/js/src/shared/wait.js b/src/js/src/shared/wait.js new file mode 100644 index 00000000..e2ab98ff --- /dev/null +++ b/src/js/src/shared/wait.js @@ -0,0 +1,20 @@ +export function waitUntil ( condition, callback, intervalMs = 50, timeoutMs = 30_000 ) { + const initialValue = condition(); + if ( initialValue ) { + return callback( initialValue ); + } + + let elapsed = 0; + let interval = window.setInterval( () => { + const value = condition(); + if ( value ) { + callback( value ); + return window.clearInterval( interval ); + } + + elapsed += intervalMs; + if ( elapsed >= timeoutMs ) { + window.clearInterval( interval ); + } + }, intervalMs ); +} diff --git a/trunk/readme.txt b/trunk/readme.txt index 5a4196fc..8e545c23 100755 --- a/trunk/readme.txt +++ b/trunk/readme.txt @@ -1,12 +1,12 @@ === JEO === Contributors: earthjournalism Tested up to: 6.6.1 -Stable tag: 2.9.3 +Stable tag: 2.10.0 Requires PHP: 7.2 Requires at least: 5.8 License: GPL-2.0+ License URI: http://www.gnu.org/licenses/gpl-2.0.txt -Version: 2.9.3 +Version: 2.10.0 The JEO plugin acts as a geojournalism platform that allows news organizations, bloggers and NGOs to publish news stories as layers of information on digital maps. @@ -49,6 +49,9 @@ After activating the plugin, a new item will appear on the WordPress dashboard: == Changelog == += 2.10.0 = +* Update dependencies + = 2.9.3 = * Add support for more syntax in EJS templates, via [eta](https://eta.js.org/docs/intro/template-syntax) * bugfix: Fix a regression that made popup template compilation fail