ExpansionPanel.vue 949 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <!--
  2. Panneaux déroulants de type "accordéon"
  3. @see https://vuetifyjs.com/en/components/expansion-panels/
  4. -->
  5. <template>
  6. <v-expansion-panel :id="id">
  7. <v-expansion-panel-header color="ot-light_grey">
  8. <v-icon class="ot-white--text ot-green icon">
  9. {{ icon }}
  10. </v-icon>
  11. {{ $t(id) }}
  12. </v-expansion-panel-header>
  13. <v-expansion-panel-content>
  14. <slot />
  15. </v-expansion-panel-content>
  16. </v-expansion-panel>
  17. </template>
  18. <script setup lang="ts">
  19. const props = defineProps({
  20. id: {
  21. type: String,
  22. required: true
  23. },
  24. icon: {
  25. type: String,
  26. required: false,
  27. default: null
  28. }
  29. })
  30. </script>
  31. <style scoped>
  32. .icon{
  33. width: 47px;
  34. height: 47px;
  35. padding: 10px;
  36. margin-right: 10px;
  37. flex: none !important;
  38. }
  39. .v-expansion-panel-header{
  40. padding: 0;
  41. padding-right: 20px;
  42. }
  43. .v-expansion-panel--active > .v-expansion-panel-header{
  44. min-height: 47px;
  45. }
  46. </style>