diff --git a/src/App.vue b/src/App.vue index fee4e7ee79ac8bcce90b3bf7a412877d5de02299..5c941e33ffd3add1778c4ecff63574bfde6f0394 100644 --- a/src/App.vue +++ b/src/App.vue @@ -68,9 +68,6 @@ export default { </script> <style> -@import "./assets/styles/base.css"; -@import "./assets/resources/semantic-ui-2.4.2/semantic.min.css"; - .vertical { flex-direction: column; justify-content: center; diff --git a/src/assets/styles/sidebar-layers.css b/src/assets/styles/sidebar-layers.css index 8ffe4dfc7c0afc5f10ba0c6aadeb25cab2f40e18..32a85c3dc477ad9b2f122216dd6d2b7f11dd19b0 100644 --- a/src/assets/styles/sidebar-layers.css +++ b/src/assets/styles/sidebar-layers.css @@ -142,7 +142,6 @@ } /* Layer item */ - .layer-item { padding-bottom: 0.5rem; } @@ -162,6 +161,7 @@ .range-container { display: flex; + min-width: 15em; /* give space for the bubble since adding a min-width to keep its shape */ } .range-output-bubble { @@ -170,6 +170,8 @@ padding: 4px 7px; border-radius: 40px; background-color: #2c3e50; + min-width: 2em; + text-align: center; } /* Overrides default padding of semantic-ui accordion */ diff --git a/src/components/FeatureType/SymbologySelector.vue b/src/components/FeatureType/SymbologySelector.vue index 29f419340b0416730f9d08a41c611d28750296c8..83bb06538a1d1a093f92399681ae9c40a184a14f 100644 --- a/src/components/FeatureType/SymbologySelector.vue +++ b/src/components/FeatureType/SymbologySelector.vue @@ -14,25 +14,25 @@ :name="form.color.html_name" > </div> - <!-- <div class="required inline field"> - <label>Symbole</label> - <button - class="ui icon button picker-button" - type="button" - @click="openIconSelectionModal" - > - <font-awesome-icon - :icon="['fas', form.icon]" - :style="{ color: form.color.value || '#000000' }" - class="icon alt" - /> - </button> - </div> --> + <div> + <label>Opacité <span>(%)</span></label> + <div class="range-container"> + <input + type="range" + min="0" + max="1" + v-model="form.opacity" + step="0.01" + > + <output class="range-output-bubble"> + {{ getOpacity(form.opacity) }} + </output> + </div> + </div> </div> <div ref="iconsPickerModal" - :class="isIconPickerModalOpen ? 'active' : ''" - class="ui dimmer modal transition" + :class="['ui dimmer modal transition', { active: isIconPickerModalOpen }]" > <div class="header"> Sélectionnez le symbole pour ce type de signalement : @@ -41,8 +41,7 @@ <div v-for="icon of iconsNamesList" :key="icon" - :class="form.icon === icon ? 'active' : ''" - class="icon-container" + :class="['icon-container', { active: form.icon === icon }]" @click="selectIcon(icon)" > <i @@ -83,6 +82,10 @@ export default { type: String, default: 'circle' }, + initOpacity: { + type: Number, + default: 1 + }, geomType: { type: String, default: 'Point' @@ -104,6 +107,7 @@ export default { html_name: 'couleur', value: '#000000', }, + opacity: 0, } }; }, @@ -125,6 +129,9 @@ export default { if (this.initIcon) { this.form.icon = this.initIcon; } + if (this.initOpacity) { + this.form.opacity = this.initOpacity; + } this.$emit('set', { name: this.title, value: this.form @@ -138,7 +145,11 @@ export default { selectIcon(icon) { this.form.icon = icon; - } + }, + + getOpacity(opacity) { + return Math.round(parseFloat(opacity) * 100); + }, } }; </script> diff --git a/src/components/Map/SidebarLayers.vue b/src/components/Map/SidebarLayers.vue index d53fa84e5254f2741fc15428f9a1a87d923c013c..c2faef528133167542f4fceb9e8b418b4c04f3bc 100644 --- a/src/components/Map/SidebarLayers.vue +++ b/src/components/Map/SidebarLayers.vue @@ -380,7 +380,6 @@ export default { </script> <style> -@import "../../assets/styles/sidebar-layers.css"; .queryable-layers-dropdown { margin-bottom: 1em; } diff --git a/src/main.js b/src/main.js index b5349516c720d93548c7d28f154d89092d7ebd3e..4bf957d27033d17d20e97b20b73a92e60d13335f 100644 --- a/src/main.js +++ b/src/main.js @@ -5,10 +5,13 @@ import App from './App.vue'; import './registerServiceWorker'; import router from '@/router'; import store from '@/store'; +import './assets/styles/base.css'; +import './assets/resources/semantic-ui-2.4.2/semantic.min.css'; import '@fortawesome/fontawesome-free/css/all.css'; import '@fortawesome/fontawesome-free/js/all.js'; import 'ol/ol.css'; import '@/assets/styles/openlayers-custom.css'; +import '@/assets/styles/sidebar-layers.css'; import { library } from '@fortawesome/fontawesome-svg-core'; import { fas } from '@fortawesome/free-solid-svg-icons'; import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';