From 4b5df97d89807309e3eba8e26bc5b4920c8dc9c2 Mon Sep 17 00:00:00 2001 From: AlitaBernachot Date: Wed, 31 Jul 2024 12:06:43 +0200 Subject: [PATCH 1/9] feat(draw): activate MyMaps panel on click draw in toolbar --- src/stores/app.store.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/stores/app.store.ts b/src/stores/app.store.ts index 656a7ce5..8abd5d6a 100644 --- a/src/stores/app.store.ts +++ b/src/stores/app.store.ts @@ -64,7 +64,6 @@ export const useAppStore = defineStore( if (drawToolbarOpen.value) { myMapsOpen.value = true - styleEditorOpen.value = false layersOpen.value = false } } From ef5ca8b6ef90e56273fb4ddfe4ba45d711ebf421 Mon Sep 17 00:00:00 2001 From: AlitaBernachot Date: Wed, 31 Jul 2024 22:44:09 +0200 Subject: [PATCH 2/9] feat(draw): add new drawing panel --- src/assets/main.css | 68 +++++++++++++ src/components/common/menu-popup.vue | 65 ++++++++++++ src/components/draw/draw-panel-item-sub.vue | 84 ++++++++++++++++ src/components/draw/draw-panel-item.vue | 39 ++++++++ src/components/draw/draw-panel.vue | 64 ++++++++++++ src/components/draw/feature-delete.vue | 9 ++ src/components/draw/feature-edit-info.vue | 11 +++ src/components/draw/feature-edit-style.vue | 98 +++++++++++++++++++ src/components/footer/footer-bar.vue | 14 ++- src/components/header/header-bar.vue | 33 ++++--- .../layer-manager/layer-manager.vue | 40 +++----- src/components/my-maps/my-maps-panel.vue | 3 + src/composables/sortable.ts | 34 +++++++ src/stores/app.store.ts | 20 ++++ tailwind.config.cjs | 11 +++ 15 files changed, 550 insertions(+), 43 deletions(-) create mode 100644 src/components/common/menu-popup.vue create mode 100644 src/components/draw/draw-panel-item-sub.vue create mode 100644 src/components/draw/draw-panel-item.vue create mode 100644 src/components/draw/draw-panel.vue create mode 100644 src/components/draw/feature-delete.vue create mode 100644 src/components/draw/feature-edit-info.vue create mode 100644 src/components/draw/feature-edit-style.vue create mode 100644 src/composables/sortable.ts diff --git a/src/assets/main.css b/src/assets/main.css index 62e860ab..745ca0a4 100644 --- a/src/assets/main.css +++ b/src/assets/main.css @@ -76,11 +76,32 @@ outline: none; } + .lux-icon { + font-family: 'geoportail-icons-wc'; + } + + .lux-icon.point::before { + content: '\E901'; + } + + .lux-icon.line::before { + content: '\E900'; + } + + .lux-icon.polygon::before { + content: '\E902'; + } + .lux-btn { @apply bg-white border text-primary py-[6px] px-[12px] hover:bg-primary hover:text-white leading-snug focus:bg-[#e6e6e6] focus:border-[#8c8c8c] focus:[color:var(--color-primary)] focus:lux-outlined; border: 1px solid var(--button-bg-color); } + .lux-btn-primary { + @apply lux-btn bg-primary text-white hover:bg-quaternary; + border: 1px solid var(--color-quaternary); + } + .lux-btn-grey { @apply lux-btn py-[3px] px-[8px]; background-color: rgb(239, 239, 239); @@ -306,6 +327,22 @@ .lux-tooltip { @apply relative bg-black bg-opacity-50 rounded text-white p-1.5 opacity-70 whitespace-nowrap; } + + .lux-draw-panel-title { + @apply text-white; + } + + .lux-drawing-item { + @apply my-1; + } + + .lux-drawing-item-label { + @apply text-white; + } + + .lux-drawing-item-content { + @apply bg-secondary mt-1 mb-2 p-3; + } } .fa-solid { @@ -327,98 +364,129 @@ --color-primary: #2980b9; --color-secondary: #97bbd3; --color-tertiary: #1f5d87; + --color-quaternary: #20638f; --color-navbar-default: #777; --color-btn-ol: #8394a0; --main-primary: #2980b9; --main-secondary: #97bbd3; --main-tertiary: #1f5d87; + --main-quaternary: #20638f; --tourisme-primary: #e84c3d; --tourisme-secondary: #e88c83; --tourisme-tertiary: #a50f15; + --tourisme-quaternary: #d82a1a; --emwelt-primary: #558b2f; --emwelt-secondary: #85bb5c; --emwelt-tertiary: #255d00; + --emwelt-quaternary: #667625; --eau-primary: #03a2ac; --eau-secondary: #45cdd6; --eau-tertiary: #078f98; + --eau-quaternary: #02737a; --pag-primary: #2b8cbe; --pag-secondary: #74a9cf; --pag-tertiary: #045a8d; + --pag-quaternary: #226d94; --agriculture-primary: #f39c11; --agriculture-secondary: #ffc363; --agriculture-tertiary: #9c6101; + --agriculture-quaternary: #c77e0a; --lenoz-primary: #f4b72b; --lenoz-secondary: #f3d89b; --lenoz-tertiary: #b3851d; + --lenoz-quaternary: #e0a00c; --preizerdaul-primary: #2980b9; --preizerdaul-secondary: #97bbd3; --preizerdaul-tertiary: #1f5d87; + --preizerdaul-quaternary: #821a2c; --wellenstein-primary: #7ac573; --wellenstein-secondary: #b0e4ab; --wellenstein-tertiary: #42803c; + --wellenstein-quaternary: #58b64f; --lintgen-primary: #f3c531; --lintgen-secondary: #f3d89b; --lintgen-tertiary: #b3851d; + --lintgen-quaternary: #e4b10d; --remich-primary: #8ca229; --remich-secondary: #bacd63; --remich-tertiary: #5c6b1b; + --remich-quaternary: #69791f; --at-primary: #f4511e; --at-secondary: #ff844c; --at-tertiary: #b91400; + --at-quaternary: #986a34; --cadastre_hertzien-primary: #7ac573; --cadastre_hertzien-secondary: #b0e4ab; --cadastre_hertzien-tertiary: #42803c; + --cadastre_hertzien-quaternary: #4f792b; --urban_farming-primary: #028349; --urban_farming-secondary: #4ab475; --urban_farming-tertiary: #005520; + --urban_farming-quaternary: #005520; --energie-primary: #558b2f; --energie-secondary: #85bb5c; --energie-tertiary: #255d00; + --energie-quaternary: #255d00; --atlas_demographique-primary: #f4b72b; --atlas_demographique-secondary: #f3d89b; --atlas_demographique-tertiary: #b3851d; + --atlas_demographique-quaternary: #b3851d; --logement-primary: #b0271a; --logement-secondary: #e95b43; --logement-tertiary: #790000; + --logement-quaternary: #790000; --np_our-primary: #76b854; --np_our-secondary: #a8ea82; --np_our-tertiary: #458725; + --np_our-quaternary: #458725; --geosciences-primary: #895e03; --geosciences-secondary: #d7ba87; --geosciences-tertiary: #5e4024; + --geosciences-quaternary: #5e4024; --ahc-primary: #ff5722; --ahc-secondary: #ff8a50; --ahc-tertiary: #c41c00; + --ahc-quaternary: #c41c00; --municipalities-primary: #9e9ac8; --municipalities-secondary: #cbc9e2; --municipalities-tertiary: #756bb1; + --municipalities-quaternary: #7e79b6; --Amenagement_du_territoire-primary: #f4511e; --Amenagement_du_territoire-secondary: #ff844c; --Amenagement_du_territoire-tertiary: #b91400; + --Amenagement_du_territoire-quaternary: #b91400; --Environnement_naturel-primary: #879d31; --Environnement_naturel-secondary: #bacd81; --Environnement_naturel-tertiary: #627529; + --Environnement_naturel-quaternary: #627529; --Environnement_humain-primary: #558b2f; --Environnement_humain-secondary: #85bb5c; --Environnement_humain-tertiary: #255d00; + --Environnement_humain-quaternary: #255d00; --Occupation_du_sol-primary: #8d6e63; --Occupation_du_sol-secondary: #bd9b8f; --Occupation_du_sol-tertiary: #5e4238; + --Occupation_du_sol-quaternary: #5e4238; --intranet-at-primary: #9e9ac8; --intranet-at-secondary: #cbc9e2; --intranet-at-tertiary: #756bb1; + --intranet-at-quaternary: #756bb1; --prof-primary: #006d2c; --prof-secondary: #99d8c9; --prof-tertiary: #238b45; + --prof-quaternary: #003a17; --go-primary: #555; --go-secondary: #bbb; --go-tertiary: #756bb1; + --go-quaternary: #3b3b3b; --sig_secours-primary: #2979ff; --sig_secours-secondary: #75a7ff; --sig_secours-tertiary: #004ecb; + --sig_secours-quaternary: #004ecb; --school-primary: #756bb1; --school-secondary: #9e9ac8; --school-tertiary: #54278f; + --school-quaternary: #54278f; --button-bg-color: #ccc; } } diff --git a/src/components/common/menu-popup.vue b/src/components/common/menu-popup.vue new file mode 100644 index 00000000..f8a6dcce --- /dev/null +++ b/src/components/common/menu-popup.vue @@ -0,0 +1,65 @@ + + + diff --git a/src/components/draw/draw-panel-item-sub.vue b/src/components/draw/draw-panel-item-sub.vue new file mode 100644 index 00000000..1fdbc9ea --- /dev/null +++ b/src/components/draw/draw-panel-item-sub.vue @@ -0,0 +1,84 @@ + + + diff --git a/src/components/draw/draw-panel-item.vue b/src/components/draw/draw-panel-item.vue new file mode 100644 index 00000000..c33e7dbd --- /dev/null +++ b/src/components/draw/draw-panel-item.vue @@ -0,0 +1,39 @@ + + + diff --git a/src/components/draw/draw-panel.vue b/src/components/draw/draw-panel.vue new file mode 100644 index 00000000..3acd44db --- /dev/null +++ b/src/components/draw/draw-panel.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/src/components/draw/feature-delete.vue b/src/components/draw/feature-delete.vue new file mode 100644 index 00000000..b6cbebaa --- /dev/null +++ b/src/components/draw/feature-delete.vue @@ -0,0 +1,9 @@ + + + diff --git a/src/components/draw/feature-edit-info.vue b/src/components/draw/feature-edit-info.vue new file mode 100644 index 00000000..f770b5a5 --- /dev/null +++ b/src/components/draw/feature-edit-info.vue @@ -0,0 +1,11 @@ + + + diff --git a/src/components/draw/feature-edit-style.vue b/src/components/draw/feature-edit-style.vue new file mode 100644 index 00000000..c6486220 --- /dev/null +++ b/src/components/draw/feature-edit-style.vue @@ -0,0 +1,98 @@ + + + diff --git a/src/components/footer/footer-bar.vue b/src/components/footer/footer-bar.vue index fee150d8..1387cedd 100644 --- a/src/components/footer/footer-bar.vue +++ b/src/components/footer/footer-bar.vue @@ -8,9 +8,15 @@ import { useTranslation } from 'i18next-vue' import { useAppStore } from '@/stores/app.store' const { t, i18next } = useTranslation() -const { setLayersOpen, setDrawToolbarOpen, toggleMyMapsOpen } = useAppStore() -const { layersOpen, drawToolbarOpen, styleEditorOpen, myMapsOpen } = - storeToRefs(useAppStore()) +const appStore = useAppStore() +const { setLayersOpen, setDrawToolbarOpen, toggleMyMapsOpen } = appStore +const { + layersOpen, + drawToolbarOpen, + styleEditorOpen, + myMapsOpen, + themeGridOpen, +} = storeToRefs(appStore) function onClickLayersIcon() { const open = !layersOpen.value @@ -20,6 +26,8 @@ function onClickLayersIcon() { styleEditorOpen.value = false myMapsOpen.value = false } + + themeGridOpen.value = false }