-
-
-
- {{ kw(gridImport) }}
-
-
- {{ kwNoUnit(gridImport) }}
-
-
+
+
+ {{ kw(gridImport) }}
+
+
+ {{ kwNoUnit(gridImport) }}
+
+
+
+
+
@@ -68,11 +74,12 @@
import "../../icons";
import formatter from "../../mixins/formatter";
import BatteryIcon from "./BatteryIcon.vue";
+import GridIcon from "./GridIcon.vue";
import LabelBar from "./LabelBar.vue";
export default {
name: "Visualization",
- components: { BatteryIcon, LabelBar },
+ components: { BatteryIcon, LabelBar, GridIcon },
props: {
showDetails: Boolean,
gridImport: { type: Number, default: 0 },
@@ -100,6 +107,9 @@ export default {
},
mixins: [formatter],
computed: {
+ gridExport: function () {
+ return this.pvExport;
+ },
totalRaw: function () {
return this.gridImport + this.selfConsumption + this.pvExport;
},
@@ -169,8 +179,8 @@ export default {
},
isLabel(position, name, last) {
const labels = {
- top: ["batteryDischarge", "pvProduction"],
- bottom: ["houseConsumption", "loadpoints", "batteryCharge"],
+ top: ["pvProduction", "batteryDischarge", "gridImport"],
+ bottom: ["houseConsumption", "loadpoints", "batteryCharge", "gridExport"],
};
const entries = [...labels[position]];
if (last) {
@@ -186,7 +196,7 @@ export default {
},
labelBarProps(position, name) {
const value = this[name];
- const minWidth = name.startsWith("battery") ? 44 : 32;
+ const minWidth = name.startsWith("battery") || name.startsWith("grid") ? 44 : 32;
return {
value,
hideIcon: this.hideLabelIcon(value, minWidth),
diff --git a/dist/css/index.7916d96a.css b/dist/css/index.7916d96a.css
deleted file mode 100644
index 967739312..000000000
--- a/dist/css/index.7916d96a.css
+++ /dev/null
@@ -1 +0,0 @@
-:root{--evcc-green:#66d85a;--evcc-dark-green:#3aba2c;--evcc-yellow:#ffe000;--evcc-grid:var(--bs-gray-dark);--evcc-self:var(--evcc-dark-green);--evcc-export:var(--evcc-yellow);--bs-primary:var(--evcc-dark-green);--bs-primary-rgb:58,186,44}.bg-primary{background-color:var(--evcc-dark-green)!important}a{color:var(--evcc-dark-green)}.progress-bar-animated{animation-direction:reverse}.bg-muted{opacity:.25}.btn-primary{background-color:var(--bs-gray-dark);border-color:var(--bs-gray-dark)}.btn-primary:hover{background-color:var(--evcc-dark-green);border-color:var(--evcc-dark-green)}.icon[data-v-785de62e]{color:#0fdd42}.icon[data-v-1eecc7b7]{color:#0fdd42;display:inline-block}.sponsor-button[data-v-1eecc7b7]{touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.support-button .solid[data-v-1eecc7b7]{display:none}.support-button:hover .solid[data-v-1eecc7b7]{display:inline-block}.support-button:hover .outline[data-v-1eecc7b7]{display:none}.logo[data-v-152e128c]{width:85px}.app[data-v-152e128c]{min-height:100vh}.title[data-v-152e128c]{position:relative;top:.1rem}.battery[data-v-2dcca16c]{transform:translateX(.35rem) rotate(-90deg);transition-property:transform;transition-duration:.25s;transition-timing-function:ease}.power--in .battery[data-v-2dcca16c]{transform:translateX(.7rem) rotate(-90deg)}.power--out .battery[data-v-2dcca16c]{transform:translateX(0) rotate(-90deg)}.arrow[data-v-2dcca16c]{margin-left:-.2rem;opacity:0;transform:translateX(-.5rem);transition-property:opacity,transform;transition-duration:.25s;transition-timing-function:ease}.power--in .arrow[data-v-2dcca16c]{opacity:1;transform:translateX(-1rem) scaleX(1)}.power--out .arrow[data-v-2dcca16c]{opacity:1;transform:translateX(0) scaleX(1)}.label-bar[data-v-17da7e54]{width:0;margin:0;height:1.7rem;padding:.6rem 0;opacity:1;overflow:hidden}.label-bar-scale--hidden[data-v-17da7e54]{opacity:0}.label-bar-scale[data-v-17da7e54]{border:1px solid var(--bs-gray);height:.5rem;background:none;display:flex;justify-content:center;align-items:center;white-space:nowrap;border-radius:0;transition:border-radius .5s linear}.label-bar--top .label-bar-scale[data-v-17da7e54]{border-bottom:none}.label-bar--bottom .label-bar-scale[data-v-17da7e54]{border-top:none}.label-bar--top.label-bar--first .label-bar-scale[data-v-17da7e54]{border-top-left-radius:4px}.label-bar--top.label-bar--last .label-bar-scale[data-v-17da7e54]{border-top-right-radius:4px}.label-bar--bottom.label-bar--first .label-bar-scale[data-v-17da7e54]{border-bottom-left-radius:4px}.label-bar--bottom.label-bar--last .label-bar-scale[data-v-17da7e54]{border-bottom-right-radius:4px}.label-bar:not(.label-bar--first) .label-bar-scale[data-v-17da7e54]{border-left:none}.label-bar-icon[data-v-17da7e54]{background-color:#fff;color:var(--bs-gray);padding:0 .3rem;opacity:1}.label-bar--top .label-bar-icon[data-v-17da7e54]{margin-top:-6px}.label-bar--bottom .label-bar-icon[data-v-17da7e54]{margin-top:6px}.label-bar--hidden[data-v-17da7e54],.label-bar--hide-icon .label-bar-icon[data-v-17da7e54]{opacity:0}.site-progress[data-v-787f3c3e]{--height:38px;height:var(--height);margin:.25rem 0;border-radius:5px;display:flex;overflow:hidden}.site-progress-bar[data-v-787f3c3e]{display:flex;justify-content:center;align-items:center;overflow:hidden;position:relative;width:0}.visualization--ready .site-progress-bar[data-v-787f3c3e]{transition-property:width;transition-duration:.5s;transition-timing-function:linear}.grid-import[data-v-787f3c3e]{background-color:var(--evcc-grid);color:var(--bs-white)}.self-consumption[data-v-787f3c3e]{background-color:var(--evcc-self);color:var(--bs-white)}.pv-export[data-v-787f3c3e]{background-color:var(--evcc-export);color:var(--bs-dark)}.power[data-v-787f3c3e]{display:block;margin:0 .2rem;white-space:nowrap;overflow:hidden}.visualization--ready[data-v-787f3c3e] .label-bar{transition-property:width,opacity;transition-duration:.5s,.25s;transition-timing-function:linear,ease}.visualization--ready[data-v-787f3c3e] .label-bar-icon{transition:opacity .25s ease-in}.energyflow[data-v-d9a8a664]{cursor:pointer}.color-grid[data-v-d9a8a664]{color:var(--evcc-grid)}.color-self[data-v-d9a8a664]{color:var(--evcc-self)}.color-export[data-v-d9a8a664]{color:var(--evcc-export)}.details-icon[data-v-d9a8a664]{text-align:center;width:30px;margin-right:.25rem;white-space:nowrap;flex-shrink:0}.btn[data-v-1ff39d22]{flex-basis:0;white-space:nowrap}.vehicle-soc[data-v-0f275f90]{--height:38px;--thumb-overlap:3px;--thumb-width:3px;--thumb-horizontal-padding:15px;--label-height:26px;position:relative;height:var(--height)}.progress[data-v-0f275f90]{height:100%;font-size:1rem}.progress-bar.bg-muted[data-v-0f275f90]{color:var(--white)}.bg-light[data-v-0f275f90]{color:var(--bs-gray-dark)}.target-label[data-v-0f275f90]{width:3em;margin-left:-1.5em;height:var(--label-height);position:absolute;top:calc(var(--label-height)*-1 + var(--thumb-overlap)*-1);text-align:center;color:var(--bs-gray-dark);font-size:1rem;opacity:1;transition:opacity .2s ease 1s}.target-slider[data-v-0f275f90]{-webkit-appearance:none;position:absolute;top:calc(var(--thumb-overlap)*-1);left:calc(var(--thumb-horizontal-padding)*-1);height:calc(100% + var(--thumb-overlap)*2);width:calc(100% + var(--thumb-horizontal-padding)*2);background:transparent}.target-slider[data-v-0f275f90]:focus{outline:none}.target-slider[data-v-0f275f90]::-webkit-slider-runnable-track{position:relative;background:transparent;border:none;height:100%;cursor:pointer}.target-slider[data-v-0f275f90]::-moz-range-track{background:transparent;border:none;height:100%;cursor:pointer}.target-slider[data-v-0f275f90]::-webkit-slider-thumb{-webkit-appearance:none;position:relative;top:calc(var(--label-height)*-1);height:100%;width:var(--thumb-width);padding:var(--label-height) var(--thumb-horizontal-padding) 0;box-sizing:content-box;background-clip:content-box;background-color:var(--bs-gray-dark);cursor:-webkit-grab;cursor:grab;border:none;opacity:1;-webkit-transition:opacity .2s ease 1s;transition:opacity .2s ease 1s;box-shadow:none}.target-slider[data-v-0f275f90]::-moz-range-thumb{position:relative;top:calc(var(--label-height)*-1);height:100%;width:var(--thumb-width);padding:0 var(--thumb-horizontal-padding) 0;box-sizing:content-box;background-clip:content-box;background-color:var(--bs-gray-dark);cursor:grab;border:none;opacity:1;-moz-transition:opacity .5s ease 1s;transition:opacity .5s ease 1s}.target--slider-hidden .target-label[data-v-0f275f90],.target--slider-hidden .target-slider[data-v-0f275f90]::-webkit-slider-thumb{opacity:0}.target--slider-hidden .target-label[data-v-0f275f90],.target--slider-hidden .target-slider[data-v-0f275f90]::-moz-range-thumb{opacity:0}.target:hover .target-label[data-v-0f275f90],.target:hover .target-slider[data-v-0f275f90]::-webkit-slider-thumb{opacity:1;transition-delay:0s}.target:hover .target-label[data-v-0f275f90],.target:hover .target-slider[data-v-0f275f90]::-moz-range-thumb{opacity:1;transition-delay:0s}
\ No newline at end of file
diff --git a/dist/css/index.c4286c47.css b/dist/css/index.c4286c47.css
new file mode 100644
index 000000000..7bfb98f41
--- /dev/null
+++ b/dist/css/index.c4286c47.css
@@ -0,0 +1 @@
+:root{--evcc-green:#66d85a;--evcc-dark-green:#3aba2c;--evcc-yellow:#ffe000;--evcc-grid:var(--bs-gray-dark);--evcc-self:var(--evcc-dark-green);--evcc-export:var(--evcc-yellow);--bs-primary:var(--evcc-dark-green);--bs-primary-rgb:58,186,44}.bg-primary{background-color:var(--evcc-dark-green)!important}a{color:var(--evcc-dark-green)}.progress-bar-animated{animation-direction:reverse}.bg-muted{opacity:.25}.btn-primary{background-color:var(--bs-gray-dark);border-color:var(--bs-gray-dark)}.btn-primary:hover{background-color:var(--evcc-dark-green);border-color:var(--evcc-dark-green)}.icon[data-v-785de62e]{color:#0fdd42}.icon[data-v-1eecc7b7]{color:#0fdd42;display:inline-block}.sponsor-button[data-v-1eecc7b7]{touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.support-button .solid[data-v-1eecc7b7]{display:none}.support-button:hover .solid[data-v-1eecc7b7]{display:inline-block}.support-button:hover .outline[data-v-1eecc7b7]{display:none}.logo[data-v-152e128c]{width:85px}.app[data-v-152e128c]{min-height:100vh}.title[data-v-152e128c]{position:relative;top:.1rem}.battery[data-v-2dcca16c]{transform:translateX(.35rem) rotate(-90deg);transition-property:transform;transition-duration:.25s;transition-timing-function:ease}.power--in .battery[data-v-2dcca16c]{transform:translateX(.7rem) rotate(-90deg)}.power--out .battery[data-v-2dcca16c]{transform:translateX(0) rotate(-90deg)}.arrow[data-v-2dcca16c]{margin-left:-.2rem;opacity:0;transform:translateX(-.5rem);transition-property:opacity,transform;transition-duration:.25s;transition-timing-function:ease}.power--in .arrow[data-v-2dcca16c]{opacity:1;transform:translateX(-1rem) scaleX(1)}.power--out .arrow[data-v-2dcca16c]{opacity:1;transform:translateX(0) scaleX(1)}.grid[data-v-b61bd512]{transform:translateX(.35rem);transition-property:transform;transition-duration:.25s;transition-timing-function:ease}.power-export .grid[data-v-b61bd512]{transform:translateX(.9rem)}.power-import .grid[data-v-b61bd512]{transform:translateX(0)}.arrow[data-v-b61bd512]{margin-left:-.2rem;opacity:0;transform:translateX(-.5rem);transition-property:opacity,transform;transition-duration:.25s;transition-timing-function:ease}.power-export .arrow[data-v-b61bd512]{opacity:1;transform:translateX(-1.1rem) scaleX(1)}.power-import .arrow[data-v-b61bd512]{opacity:1;transform:translateX(-.1rem) scaleX(1)}.label-bar[data-v-17da7e54]{width:0;margin:0;height:1.7rem;padding:.6rem 0;opacity:1;overflow:hidden}.label-bar-scale--hidden[data-v-17da7e54]{opacity:0}.label-bar-scale[data-v-17da7e54]{border:1px solid var(--bs-gray);height:.5rem;background:none;display:flex;justify-content:center;align-items:center;white-space:nowrap;border-radius:0;transition:border-radius .5s linear}.label-bar--top .label-bar-scale[data-v-17da7e54]{border-bottom:none}.label-bar--bottom .label-bar-scale[data-v-17da7e54]{border-top:none}.label-bar--top.label-bar--first .label-bar-scale[data-v-17da7e54]{border-top-left-radius:4px}.label-bar--top.label-bar--last .label-bar-scale[data-v-17da7e54]{border-top-right-radius:4px}.label-bar--bottom.label-bar--first .label-bar-scale[data-v-17da7e54]{border-bottom-left-radius:4px}.label-bar--bottom.label-bar--last .label-bar-scale[data-v-17da7e54]{border-bottom-right-radius:4px}.label-bar:not(.label-bar--first) .label-bar-scale[data-v-17da7e54]{border-left:none}.label-bar-icon[data-v-17da7e54]{background-color:#fff;color:var(--bs-gray);padding:0 .3rem;opacity:1}.label-bar--top .label-bar-icon[data-v-17da7e54]{margin-top:-6px}.label-bar--bottom .label-bar-icon[data-v-17da7e54]{margin-top:6px}.label-bar--hidden[data-v-17da7e54],.label-bar--hide-icon .label-bar-icon[data-v-17da7e54]{opacity:0}.site-progress[data-v-340f04c6]{--height:38px;height:var(--height);margin:.25rem 0;border-radius:5px;display:flex;overflow:hidden}.site-progress-bar[data-v-340f04c6]{display:flex;justify-content:center;align-items:center;overflow:hidden;position:relative;width:0}.visualization--ready .site-progress-bar[data-v-340f04c6]{transition-property:width;transition-duration:.5s;transition-timing-function:linear}.grid-import[data-v-340f04c6]{background-color:var(--evcc-grid);color:var(--bs-white)}.self-consumption[data-v-340f04c6]{background-color:var(--evcc-self);color:var(--bs-white)}.pv-export[data-v-340f04c6]{background-color:var(--evcc-export);color:var(--bs-dark)}.power[data-v-340f04c6]{display:block;margin:0 .2rem;white-space:nowrap;overflow:hidden}.visualization--ready[data-v-340f04c6] .label-bar{transition-property:width,opacity;transition-duration:.5s,.25s;transition-timing-function:linear,ease}.visualization--ready[data-v-340f04c6] .label-bar-icon{transition:opacity .25s ease-in}.energyflow[data-v-d9a8a664]{cursor:pointer}.color-grid[data-v-d9a8a664]{color:var(--evcc-grid)}.color-self[data-v-d9a8a664]{color:var(--evcc-self)}.color-export[data-v-d9a8a664]{color:var(--evcc-export)}.details-icon[data-v-d9a8a664]{text-align:center;width:30px;margin-right:.25rem;white-space:nowrap;flex-shrink:0}.btn[data-v-1ff39d22]{flex-basis:0;white-space:nowrap}.vehicle-soc[data-v-0f275f90]{--height:38px;--thumb-overlap:3px;--thumb-width:3px;--thumb-horizontal-padding:15px;--label-height:26px;position:relative;height:var(--height)}.progress[data-v-0f275f90]{height:100%;font-size:1rem}.progress-bar.bg-muted[data-v-0f275f90]{color:var(--white)}.bg-light[data-v-0f275f90]{color:var(--bs-gray-dark)}.target-label[data-v-0f275f90]{width:3em;margin-left:-1.5em;height:var(--label-height);position:absolute;top:calc(var(--label-height)*-1 + var(--thumb-overlap)*-1);text-align:center;color:var(--bs-gray-dark);font-size:1rem;opacity:1;transition:opacity .2s ease 1s}.target-slider[data-v-0f275f90]{-webkit-appearance:none;position:absolute;top:calc(var(--thumb-overlap)*-1);left:calc(var(--thumb-horizontal-padding)*-1);height:calc(100% + var(--thumb-overlap)*2);width:calc(100% + var(--thumb-horizontal-padding)*2);background:transparent}.target-slider[data-v-0f275f90]:focus{outline:none}.target-slider[data-v-0f275f90]::-webkit-slider-runnable-track{position:relative;background:transparent;border:none;height:100%;cursor:pointer}.target-slider[data-v-0f275f90]::-moz-range-track{background:transparent;border:none;height:100%;cursor:pointer}.target-slider[data-v-0f275f90]::-webkit-slider-thumb{-webkit-appearance:none;position:relative;top:calc(var(--label-height)*-1);height:100%;width:var(--thumb-width);padding:var(--label-height) var(--thumb-horizontal-padding) 0;box-sizing:content-box;background-clip:content-box;background-color:var(--bs-gray-dark);cursor:-webkit-grab;cursor:grab;border:none;opacity:1;-webkit-transition:opacity .2s ease 1s;transition:opacity .2s ease 1s;box-shadow:none}.target-slider[data-v-0f275f90]::-moz-range-thumb{position:relative;top:calc(var(--label-height)*-1);height:100%;width:var(--thumb-width);padding:0 var(--thumb-horizontal-padding) 0;box-sizing:content-box;background-clip:content-box;background-color:var(--bs-gray-dark);cursor:grab;border:none;opacity:1;-moz-transition:opacity .5s ease 1s;transition:opacity .5s ease 1s}.target--slider-hidden .target-label[data-v-0f275f90],.target--slider-hidden .target-slider[data-v-0f275f90]::-webkit-slider-thumb{opacity:0}.target--slider-hidden .target-label[data-v-0f275f90],.target--slider-hidden .target-slider[data-v-0f275f90]::-moz-range-thumb{opacity:0}.target:hover .target-label[data-v-0f275f90],.target:hover .target-slider[data-v-0f275f90]::-webkit-slider-thumb{opacity:1;transition-delay:0s}.target:hover .target-label[data-v-0f275f90],.target:hover .target-slider[data-v-0f275f90]::-moz-range-thumb{opacity:1;transition-delay:0s}
\ No newline at end of file
diff --git a/dist/index.html b/dist/index.html
index bae560042..00d237a0f 100644
--- a/dist/index.html
+++ b/dist/index.html
@@ -1,4 +1,4 @@
-
evcc
\ No newline at end of file
+ };