From 13331cd2402ed7923b8f36b118990024fa4883ca Mon Sep 17 00:00:00 2001 From: hcaillaud Date: Thu, 2 May 2024 15:57:10 +0200 Subject: [PATCH 01/15] =?UTF-8?q?=F0=9F=8C=9F=20menu=20catalogue=20et=20aj?= =?UTF-8?q?out=20des=20couche=20=C3=A0=20la=20carte=20(option=20remove=20a?= =?UTF-8?q?=20faire=20dans=20le=20layer=20switcher)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 661 +------------------- package.json | 4 +- src/components.d.ts | 4 + src/components/carte/Layer/Layer.vue | 26 + src/components/carte/Layer/LayerManager.vue | 45 ++ src/components/carte/Map.vue | 3 +- src/components/carte/MenuLateral.vue | 59 ++ src/components/carte/View.vue | 6 - src/composables/layers.ts | 24 + src/icons.ts | 4 + src/router/index.ts | 4 +- src/views/Carto.vue | 83 ++- src/views/CartoWrapper.vue | 29 + src/views/Patience.vue | 35 ++ 14 files changed, 309 insertions(+), 678 deletions(-) create mode 100644 src/components/carte/Layer/Layer.vue create mode 100644 src/components/carte/Layer/LayerManager.vue create mode 100644 src/components/carte/MenuLateral.vue create mode 100644 src/composables/layers.ts create mode 100644 src/views/CartoWrapper.vue create mode 100644 src/views/Patience.vue diff --git a/package-lock.json b/package-lock.json index 69bbda87..28b76597 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,9 +9,11 @@ "version": "0.0.0", "dependencies": { "@gouvfr/dsfr": "^1.11.2", - "@gouvminint/vue-dsfr": "^5.10.3", + "@gouvminint/vue-dsfr": "^5.14.2", "geoportal-extensions-openlayers": "./geoportal-extensions-openlayers-1.0.0-beta.13.tgz", - "ol": "8.2.0" + "ol": "8.2.0", + "vue": "^3.4.21", + "vue-router": "^4.3.0" }, "devDependencies": { "@antfu/eslint-config": "^2.11.6", @@ -682,6 +684,7 @@ }, "node_modules/@clack/prompts/node_modules/is-unicode-supported": { "version": "1.3.0", + "dev": true, "inBundle": true, "license": "MIT", "engines": { @@ -705,262 +708,6 @@ "node": ">=16" } }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@esbuild/linux-x64": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", @@ -977,102 +724,6 @@ "node": ">=12" } }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -1483,149 +1134,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.16.1.tgz", - "integrity": "sha512-92/y0TqNLRYOTXpm6Z7mnpvKAG9P7qmK7yJeRJSdzElNCUnsgbpAsGqerUboYRIQKzgfq4pWu9xVkgpWLfmNsw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.16.1.tgz", - "integrity": "sha512-ttWB6ZCfRLuDIUiE0yiu5gcqOsYjA5F7kEV1ggHMj20FwLZ8A1FMeahZJFl/pnOmcnD2QL0z4AcDuo27utGU8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.16.1.tgz", - "integrity": "sha512-QLDvPLetbqjHojTGFw9+nuSP3YY/iz2k1cep6crYlr97sS+ZJ0W43b8Z0zC00+lnFZj6JSNxiA4DjboNQMuh1A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.16.1.tgz", - "integrity": "sha512-TAUK/D8khRrRIa1KwRzo8JNKk3tcqaeXWdtsiLgA8zmACWwlWLjPCJ4DULGHQrMkeBjp1Cd3Yuwx04lZgFx5Vg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.16.1.tgz", - "integrity": "sha512-KO+WGZjrh6zyFTD1alIFkfdtxf8B4BC+hqd3kBZHscPLvE5FR/6QKsyuCT0JlERxxYBSUKNUQ/UHyX5uwO1x2A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.16.1.tgz", - "integrity": "sha512-NqxbllzIB1WoAo4ThUXVtd21iiM5IHMTTXmXySKBLVcZvkU0HIZmatlP7hLzb5yQubcmdIeWmncd2NdsjocEiw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.16.1.tgz", - "integrity": "sha512-snma5NvV8y7IECQ5rq0sr0f3UUu+92NVmG/913JXJMcXo84h9ak9TA5UI9Cl2XRM9j3m37QwDBtEYnJzRkSmxA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.16.1.tgz", - "integrity": "sha512-KOvqGprlD84ueivhCi2flvcUwDRD20mAsE3vxQNVEI2Di9tnPGAfEu6UcrSPZbM+jG2w1oSr43hrPo0RNg6GGg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.16.1.tgz", - "integrity": "sha512-/gsNwtiGLqYwN4vP+EIdUC6Q6LTlpupWqokqIndvZcjn9ig/5P01WyaYCU2wvfL/2Z82jp5kX8c1mDBOvCP3zg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.16.1.tgz", - "integrity": "sha512-uU8zuGkQfGqfD9w6VRJZI4IuG4JIfNxxJgEmLMAmPVHREKGsxFVfgHy5c6CexQF2vOfgjB33OsET3Vdn2lln9A==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.16.1.tgz", - "integrity": "sha512-lsjLtDgtcGFEuBP6yrXwkRN5/wKlvUZtfbKZZu0yaoNpiBL4epgnO21osAALIspVRnl4qZgyLFd8xjCYYWgwfw==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, "node_modules/@rollup/rollup-linux-x64-gnu": { "version": "4.16.1", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.16.1.tgz", @@ -1652,45 +1160,6 @@ "linux" ] }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.16.1.tgz", - "integrity": "sha512-1vIP6Ce02L+qWD7uZYRiFiuAJo3m9kARatWmFSnss0gZnVj2Id7OPUU9gm49JPGasgcR3xMqiH3fqBJ8t00yVg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.16.1.tgz", - "integrity": "sha512-Y3M92DcVsT6LoP+wrKpoUWPaazaP1fzbNkp0a0ZSj5Y//+pQVfVe/tQdsYQQy7dwXR30ZfALUIc9PCh9Izir6w==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.16.1.tgz", - "integrity": "sha512-x0fvpHMuF7fK5r8oZxSi8VYXkrVmRgubXpO/wcf15Lk3xZ4Jvvh5oG+u7Su1776A7XzVKZhD2eRc4t7H50gL3w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/@rushstack/eslint-patch": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.2.tgz", @@ -1864,14 +1333,6 @@ "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", "dev": true }, - "node_modules/@types/web-bluetooth": { - "version": "0.0.20", - "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", - "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "7.7.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.0.tgz", @@ -2498,104 +1959,6 @@ "integrity": "sha512-CPuIReonid9+zOG/CGTT05FXrPYATEqoDGNrEaqS4hwcw5BUNM2FguC0mOwJD4Jr16UpRVl9N0pY3P+srIbqmg==", "dev": true }, - "node_modules/@vueuse/core": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.9.0.tgz", - "integrity": "sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/web-bluetooth": "^0.0.20", - "@vueuse/metadata": "10.9.0", - "@vueuse/shared": "10.9.0", - "vue-demi": ">=0.14.7" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vueuse/core/node_modules/vue-demi": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz", - "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "peer": true, - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, - "node_modules/@vueuse/metadata": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.9.0.tgz", - "integrity": "sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA==", - "dev": true, - "optional": true, - "peer": true, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vueuse/shared": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.9.0.tgz", - "integrity": "sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "vue-demi": ">=0.14.7" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/@vueuse/shared/node_modules/vue-demi": { - "version": "0.14.7", - "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz", - "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "peer": true, - "bin": { - "vue-demi-fix": "bin/vue-demi-fix.js", - "vue-demi-switch": "bin/vue-demi-switch.js" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - }, - "peerDependencies": { - "@vue/composition-api": "^1.0.0-rc.1", - "vue": "^3.0.0-0 || ^2.6.0" - }, - "peerDependenciesMeta": { - "@vue/composition-api": { - "optional": true - } - } - }, "node_modules/@xmldom/xmldom": { "version": "0.8.10", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", @@ -4548,20 +3911,6 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", diff --git a/package.json b/package.json index a94b5fda..459bbd6a 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,9 @@ "@gouvfr/dsfr": "^1.11.2", "@gouvminint/vue-dsfr": "^5.14.2", "geoportal-extensions-openlayers": "./geoportal-extensions-openlayers-1.0.0-beta.13.tgz", - "ol": "8.2.0" + "ol": "8.2.0", + "vue": "^3.4.21", + "vue-router": "^4.3.0" }, "devDependencies": { "@antfu/eslint-config": "^2.11.6", diff --git a/src/components.d.ts b/src/components.d.ts index 6315316d..cb3bf128 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -12,6 +12,10 @@ declare module 'vue' { DsfrFooter: typeof import('@gouvminint/vue-dsfr')['DsfrFooter'] DsfrHeader: typeof import('@gouvminint/vue-dsfr')['DsfrHeader'] DsfrNavigation: typeof import('@gouvminint/vue-dsfr')['DsfrNavigation'] + DsfrPagination: typeof import('@gouvminint/vue-dsfr')['DsfrPagination'] + Layer: typeof import('./components/carte/Layer/Layer.vue')['default'] + LayerCatalogue: typeof import('./components/carte/Layer/LayerCatalogue.vue')['default'] + LayerManager: typeof import('./components/carte/Layer/LayerManager.vue')['default'] Map: typeof import('./components/carte/Map.vue')['default'] MenuControl: typeof import('./components/carte/MenuControl.vue')['default'] OverviewMap: typeof import('./components/carte/control/OverviewMap.vue')['default'] diff --git a/src/components/carte/Layer/Layer.vue b/src/components/carte/Layer/Layer.vue new file mode 100644 index 00000000..7c4ba345 --- /dev/null +++ b/src/components/carte/Layer/Layer.vue @@ -0,0 +1,26 @@ + + + diff --git a/src/components/carte/Layer/LayerManager.vue b/src/components/carte/Layer/LayerManager.vue new file mode 100644 index 00000000..a3938d5d --- /dev/null +++ b/src/components/carte/Layer/LayerManager.vue @@ -0,0 +1,45 @@ + + + diff --git a/src/components/carte/Map.vue b/src/components/carte/Map.vue index 203fa069..11fc122e 100644 --- a/src/components/carte/Map.vue +++ b/src/components/carte/Map.vue @@ -53,8 +53,7 @@ provide('map', map) diff --git a/src/components/carte/MenuLateral.vue b/src/components/carte/MenuLateral.vue new file mode 100644 index 00000000..13070dea --- /dev/null +++ b/src/components/carte/MenuLateral.vue @@ -0,0 +1,59 @@ + + + + + + + diff --git a/src/components/carte/View.vue b/src/components/carte/View.vue index 21f7b48d..8c87047b 100644 --- a/src/components/carte/View.vue +++ b/src/components/carte/View.vue @@ -7,7 +7,6 @@ const store = useMapStore() const props = defineProps({ zoom : Number, center : Array, - layers : Array }) // recuperation de l'objet 'map' du composant parent @@ -39,11 +38,6 @@ view.on("change:resolution", (e) => { onMounted(() => { if (map) { - // ajout des couches - props.layers.forEach((layer) => { - map.addLayer(layer) - }) - // ajout de la vue map.setView(view) // enregistrement store.setMap(map) diff --git a/src/composables/layers.ts b/src/composables/layers.ts new file mode 100644 index 00000000..b0d371d3 --- /dev/null +++ b/src/composables/layers.ts @@ -0,0 +1,24 @@ +export const resolutions = [ + 156543.03392804103, + 78271.5169640205, + 39135.75848201024, + 19567.879241005125, + 9783.939620502562, + 4891.969810251281, + 2445.9849051256406, + 1222.9924525628203, + 611.4962262814101, + 305.74811314070485, + 152.87405657035254, + 76.43702828517625, + 38.218514142588134, + 19.109257071294063, + 9.554628535647034, + 4.777314267823517, + 2.3886571339117584, + 1.1943285669558792, + 0.5971642834779396, + 0.29858214173896974, + 0.14929107086948493, + 0.07464553543474241 +]; \ No newline at end of file diff --git a/src/icons.ts b/src/icons.ts index a4be0b21..0261956c 100644 --- a/src/icons.ts +++ b/src/icons.ts @@ -11,3 +11,7 @@ export { export { FaUserCircle } from 'oh-vue-icons/icons/fa/index.js' + +export { + BiChevronDoubleRight +} from 'oh-vue-icons/icons/bi/index.js' \ No newline at end of file diff --git a/src/router/index.ts b/src/router/index.ts index 9c4facd2..434f5354 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -4,7 +4,7 @@ import { createWebHistory } from 'vue-router' -import Carto from '../views/Carto.vue' +import CartoWrapper from '../views/CartoWrapper.vue' import Catalogue from '../views/Catalogue.vue' import Login from '../views/Login.vue' import Presentation from '../views/Presentation.vue' @@ -16,7 +16,7 @@ const routes: Array = [ { path: '/', name: 'Carte', - component: Carto, + component: CartoWrapper, }, { path: '/accueil', diff --git a/src/views/Carto.vue b/src/views/Carto.vue index e7dbc0d6..77f87361 100644 --- a/src/views/Carto.vue +++ b/src/views/Carto.vue @@ -1,41 +1,102 @@ - + + \ No newline at end of file diff --git a/src/views/CartoWrapper.vue b/src/views/CartoWrapper.vue new file mode 100644 index 00000000..657a67c0 --- /dev/null +++ b/src/views/CartoWrapper.vue @@ -0,0 +1,29 @@ + + + + + \ No newline at end of file diff --git a/src/views/Patience.vue b/src/views/Patience.vue new file mode 100644 index 00000000..3f04e3ca --- /dev/null +++ b/src/views/Patience.vue @@ -0,0 +1,35 @@ + + + + + \ No newline at end of file From ef9547348d974504b8b3a354c94820caea153533 Mon Sep 17 00:00:00 2001 From: hcaillaud Date: Mon, 6 May 2024 15:42:08 +0200 Subject: [PATCH 02/15] =?UTF-8?q?=F0=9F=8C=9F=20component=20map=20lateral?= =?UTF-8?q?=20menu=20wrapper=20added?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 24 ++++++ package.json | 1 + src/components.d.ts | 7 ++ .../{MenuLateral.vue => MenuCatalogue.vue} | 23 ++--- src/components/carte/MenuLateralWrapper.vue | 83 +++++++++++++++++++ src/views/Carto.vue | 6 +- 6 files changed, 124 insertions(+), 20 deletions(-) rename src/components/carte/{MenuLateral.vue => MenuCatalogue.vue} (66%) create mode 100644 src/components/carte/MenuLateralWrapper.vue diff --git a/package-lock.json b/package-lock.json index 28b76597..f6d8ba8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,6 +34,7 @@ "oh-vue-icons": "1.0.0-rc3", "pinia": "^2.1.7", "rimraf": "^5.0.5", + "sass": "^1.76.0", "typescript": "~5.4.0", "unplugin-auto-import": "^0.17.5", "unplugin-vue-components": "^0.26.0", @@ -4172,6 +4173,12 @@ "node": ">= 4" } }, + "node_modules/immutable": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", + "dev": true + }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -5857,6 +5864,23 @@ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" }, + "node_modules/sass": { + "version": "1.76.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.76.0.tgz", + "integrity": "sha512-nc3LeqvF2FNW5xGF1zxZifdW3ffIz5aBb7I7tSvOoNu7z1RQ6pFt9MBuiPtjgaI62YWrM/txjWlOCFiGtf2xpw==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/scule": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz", diff --git a/package.json b/package.json index 459bbd6a..a38af56f 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "oh-vue-icons": "1.0.0-rc3", "pinia": "^2.1.7", "rimraf": "^5.0.5", + "sass": "^1.76.0", "typescript": "~5.4.0", "unplugin-auto-import": "^0.17.5", "unplugin-vue-components": "^0.26.0", diff --git a/src/components.d.ts b/src/components.d.ts index cb3bf128..ae7d5f7b 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -9,15 +9,22 @@ declare module 'vue' { export interface GlobalComponents { Attributions: typeof import('./components/carte/control/Attributions.vue')['default'] Control: typeof import('./components/carte/Control.vue')['default'] + copy: typeof import('./components/carte/MenuLateral copy.vue')['default'] DsfrFooter: typeof import('@gouvminint/vue-dsfr')['DsfrFooter'] DsfrHeader: typeof import('@gouvminint/vue-dsfr')['DsfrHeader'] DsfrNavigation: typeof import('@gouvminint/vue-dsfr')['DsfrNavigation'] DsfrPagination: typeof import('@gouvminint/vue-dsfr')['DsfrPagination'] + DsfrSideMenu: typeof import('@gouvminint/vue-dsfr')['DsfrSideMenu'] + LateralMenuWrapper: typeof import('./components/carte/LateralMenuWrapper.vue')['default'] Layer: typeof import('./components/carte/Layer/Layer.vue')['default'] LayerCatalogue: typeof import('./components/carte/Layer/LayerCatalogue.vue')['default'] LayerManager: typeof import('./components/carte/Layer/LayerManager.vue')['default'] Map: typeof import('./components/carte/Map.vue')['default'] + MenuCatalogue: typeof import('./components/carte/MenuCatalogue.vue')['default'] MenuControl: typeof import('./components/carte/MenuControl.vue')['default'] + MenuLateral: typeof import('./components/carte/MenuLateral.vue')['default'] + MenuLateralWrapper: typeof import('./components/carte/MenuLateralWrapper.vue')['default'] + MenuWrapper: typeof import('./components/carte/MenuWrapper.vue')['default'] OverviewMap: typeof import('./components/carte/control/OverviewMap.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] diff --git a/src/components/carte/MenuLateral.vue b/src/components/carte/MenuCatalogue.vue similarity index 66% rename from src/components/carte/MenuLateral.vue rename to src/components/carte/MenuCatalogue.vue index 13070dea..d33f270f 100644 --- a/src/components/carte/MenuLateral.vue +++ b/src/components/carte/MenuCatalogue.vue @@ -1,10 +1,8 @@ diff --git a/src/components/carte/MenuLateralWrapper.vue b/src/components/carte/MenuLateralWrapper.vue new file mode 100644 index 00000000..2e5914f2 --- /dev/null +++ b/src/components/carte/MenuLateralWrapper.vue @@ -0,0 +1,83 @@ + + + + + + + + + diff --git a/src/views/Carto.vue b/src/views/Carto.vue index 77f87361..7b46e683 100644 --- a/src/views/Carto.vue +++ b/src/views/Carto.vue @@ -6,12 +6,10 @@ import Map from '@/components/carte/Map.vue' import View from '@/components/carte/View.vue' import Control from '@/components/carte/Control.vue' import LayerManager from '@/components/carte/Layer/LayerManager.vue' -import LayerCatalogue from '@/components/carte/Layer/LayerCatalogue.vue' -import MenuLateral from '@/components/carte/MenuLateral.vue' +import MenuCatalogue from '@/components/carte/MenuCatalogue.vue' import { useControls } from '@/composables/controls' import { useMapStore } from "@/stores/mapStore" -import { listIcons } from 'oh-vue-icons' const techUrl = import.meta.env.VITE_GPF_CONF_TECH_URL || "data/layers.json"; const editoUrl = import.meta.env.VITE_GPF_CONF_EDITO_URL || "data/edito.json"; @@ -72,7 +70,7 @@ function addLayer(layername) {
- From 7846c349d76610ca94555cddd97e30b3a3bc7660 Mon Sep 17 00:00:00 2001 From: hcaillaud Date: Tue, 14 May 2024 16:53:37 +0200 Subject: [PATCH 03/15] =?UTF-8?q?=F0=9F=8C=9F=20ajout=20du=20menu=20de=20s?= =?UTF-8?q?=C3=A9lection=20des=20controls=20openlayers=20/=20am=C3=A9liora?= =?UTF-8?q?tion=20du=20wrapper=20menu=20lateral?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components.d.ts | 1 + src/components/carte/MenuControl.vue | 30 +++++++++--- src/components/carte/MenuLateralWrapper.vue | 51 ++++++++++++++++----- src/composables/controls.ts | 2 +- src/views/Carto.vue | 19 +++----- 5 files changed, 71 insertions(+), 32 deletions(-) diff --git a/src/components.d.ts b/src/components.d.ts index ae7d5f7b..60901336 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -10,6 +10,7 @@ declare module 'vue' { Attributions: typeof import('./components/carte/control/Attributions.vue')['default'] Control: typeof import('./components/carte/Control.vue')['default'] copy: typeof import('./components/carte/MenuLateral copy.vue')['default'] + DsfrCheckboxSet: typeof import('@gouvminint/vue-dsfr')['DsfrCheckboxSet'] DsfrFooter: typeof import('@gouvminint/vue-dsfr')['DsfrFooter'] DsfrHeader: typeof import('@gouvminint/vue-dsfr')['DsfrHeader'] DsfrNavigation: typeof import('@gouvminint/vue-dsfr')['DsfrNavigation'] diff --git a/src/components/carte/MenuControl.vue b/src/components/carte/MenuControl.vue index 662b31ce..fcf8b07f 100644 --- a/src/components/carte/MenuControl.vue +++ b/src/components/carte/MenuControl.vue @@ -1,12 +1,17 @@ + diff --git a/src/composables/controls.ts b/src/composables/controls.ts index d68fe818..fa781056 100644 --- a/src/composables/controls.ts +++ b/src/composables/controls.ts @@ -2,7 +2,7 @@ export const useControls = { OverviewMap: 'OverviewMap', SearchEngine: 'SearchEngine', ScaleLine: 'ScaleLine', - Zoom: 'Zoom', + // Zoom: 'Zoom', // Attributions: 'Attributions' // Rotate: 'Rotate' } diff --git a/src/views/Carto.vue b/src/views/Carto.vue index 7b46e683..7f1b6f49 100644 --- a/src/views/Carto.vue +++ b/src/views/Carto.vue @@ -1,7 +1,4 @@