diff --git a/packages/modules/web_themes/koala/source/src/components/BaseCarousel.vue b/packages/modules/web_themes/koala/source/src/components/BaseCarousel.vue index 15659bf6e7..7d0c670702 100644 --- a/packages/modules/web_themes/koala/source/src/components/BaseCarousel.vue +++ b/packages/modules/web_themes/koala/source/src/components/BaseCarousel.vue @@ -78,7 +78,7 @@ function measure() { onMounted(() => { measure(); - window.addEventListener('resize', measure); + window.addEventListener('resize', measure, {passive: true}); }); onBeforeUnmount(() => { @@ -92,17 +92,17 @@ const groupSize = computed(() => { const maxGroup = Math.max( 1, Math.floor( - (carouselWidth.value - (showArrows.value ? carouselPadding.value : 50)) / + (carouselWidth.value - 2 - (showArrows.value ? carouselPadding.value : 50)) / itemWidth.value, ), ); // Spezialfall: Alle passen nebeneinander if ( props.items.length > maxGroup && - props.items.length <= maxGroup * 2 && + props.items.length <= maxGroup + 1 && props.items.length - maxGroup === 1 ) { - if (props.items.length * itemWidth.value <= carouselWidth.value) { + if (props.items.length * itemWidth.value < carouselWidth.value) { return props.items.length; } } @@ -126,6 +126,7 @@ watch(groupedItems, (groups) => { if (currentSlide.value > groups.length - 1) { currentSlide.value = Math.max(0, groups.length - 1); } + measure(); }); diff --git a/packages/modules/web_themes/koala/source/src/components/charts/energyFlowChart/EnergyFlowChart.vue b/packages/modules/web_themes/koala/source/src/components/charts/energyFlowChart/EnergyFlowChart.vue index 15db2c4ccf..944a7b0967 100644 --- a/packages/modules/web_themes/koala/source/src/components/charts/energyFlowChart/EnergyFlowChart.vue +++ b/packages/modules/web_themes/koala/source/src/components/charts/energyFlowChart/EnergyFlowChart.vue @@ -75,7 +75,11 @@ const homeProduction = computed(() => Number(homePower.value.value) < 0); const pvPower = computed(() => mqttStore.getPvPower('object') as ValueObject); const pvProduction = computed(() => { const value = Number(pvPower.value.value); - return Math.abs(value) >= 50; + return value < 0; +}); +const pvConsumption = computed(() => { + const value = Number(pvPower.value.value); + return value > 0; }); const connectedChargePoints = computed(() => mqttStore.chargePointIds); @@ -284,7 +288,7 @@ const svgComponents = computed((): FlowComponent[] => { base: 'pv', valueLabel: 'fill-success', animated: pvProduction.value, - animatedReverse: false, + animatedReverse: pvConsumption.value, }, position: { row: 1, column: 0 }, label: ['PV', absoluteValueObject(pvPower.value).textValue],