617617 </v-card >
618618 </GlassModal >
619619 </teleport >
620- <transition
621- enter-active-class =" transition-transform duration-500 ease-in-out"
622- leave-active-class =" transition-transform duration-0 ease-in-out"
623- enter-from-class =" translate-x-full opacity-0"
624- enter-to-class =" translate-x-0 opacity-100"
625- leave-from-class =" translate-x-0 opacity-100"
626- leave-to-class =" translate-x-full opacity-0"
627- >
628- <div
629- v-if =" store.isElementsPropsDrawerVisible && store.editingMode && store.elementToShowOnDrawer"
630- class =" flex fixed w-[250px] h-[78vh] right-0 top-0 border-l-[1px] border-[#FFFFFF44] text-white elevation-5 bg-[#051e2d]"
631- >
632- <ElementConfigPanel />
633- </div >
634- </transition >
620+
621+ <SideConfigPanel position =" right" >
622+ <ElementConfigPanel v-if =" store.elementToShowOnDrawer?.hash" />
623+ </SideConfigPanel >
635624</template >
636625
637626<script setup lang="ts">
@@ -672,10 +661,11 @@ import {
672661 WidgetType ,
673662} from ' @/types/widgets'
674663
675- import ElementConfigPanel from ' ./ElementConfigPanel.vue'
676664import ExpansiblePanel from ' ./ExpansiblePanel.vue'
677665import GlassModal from ' ./GlassModal.vue'
666+ import ElementConfigPanel from ' ./InputElementConfig.vue'
678667import MiniWidgetInstantiator from ' ./MiniWidgetInstantiator.vue'
668+ import SideConfigPanel from ' ./SideConfigPanel.vue'
679669
680670const { showDialog, closeDialog } = useInteractionDialog ()
681671
@@ -714,6 +704,14 @@ const emit = defineEmits<{
714704 (e : ' update:editMode' , editMode : boolean ): void
715705}>()
716706
707+ watch (
708+ () => store .elementToShowOnDrawer ?.hash ,
709+ (newValue ) => {
710+ if (newValue ) interfaceStore .configPanelVisible = true
711+ if (! newValue ) interfaceStore .configPanelVisible = false
712+ }
713+ )
714+
717715const availableWidgetTypes = computed (() => Object .values (WidgetType ))
718716const availableMiniWidgetTypes = computed (() =>
719717 Object .values (MiniWidgetType ).map ((widgetType ) => ({
@@ -1064,25 +1062,6 @@ const vehicleTypesAssignedToCurrentProfile = computed({
10641062 color : white ;
10651063}
10661064
1067- .fade-and-suffle-move ,
1068- .fade-and-suffle-enter-active ,
1069- .fade-and-suffle-leave-active ,
1070- .fade-enter-active ,
1071- .fade-leave-active {
1072- transition : all 0.3s cubic-bezier (0.55 , 0 , 0.1 , 1 );
1073- }
1074- .fade-and-suffle-enter-from ,
1075- .fade-enter-from ,
1076- .fade-and-suffle-leave-to ,
1077- .fade-leave-to {
1078- opacity : 0 ;
1079- transform : scaleY (0.01 ) translate (30px , 0 );
1080- }
1081-
1082- .sortable-ghost {
1083- cursor : grabbing ;
1084- }
1085-
10861065.icon-btn {
10871066 display : flex ;
10881067 align-items : center ;
@@ -1097,13 +1076,6 @@ const vehicleTypesAssignedToCurrentProfile = computed({
10971076 cursor : pointer ;
10981077 opacity : 0.8 ;
10991078}
1100- .icon-bt {
1101- opacity : 1 ;
1102- }
1103-
1104- .selected-view {
1105- @apply bg-slate- 400;
1106- }
11071079
11081080.content-expand-collapse {
11091081 width : 100% ;
@@ -1120,10 +1092,6 @@ const vehicleTypesAssignedToCurrentProfile = computed({
11201092 max-height : 0 ;
11211093}
11221094
1123- .linear-gradient {
1124- background : linear-gradient (90deg , rgba (39 , 56 , 66 , 0 ) 0% , rgba (39 , 56 , 66 , 1 ) 57% , rgba (39 , 56 , 66 , 1 ) 100% );
1125- }
1126-
11271095.wrapclass {
11281096 overflow : hidden ;
11291097 text-overflow : ellipsis ;
0 commit comments