diff --git a/assets/js/components/LoadpointDetails.vue b/assets/js/components/LoadpointDetails.vue index bd9225b6b..ce09c4747 100644 --- a/assets/js/components/LoadpointDetails.vue +++ b/assets/js/components/LoadpointDetails.vue @@ -172,7 +172,7 @@ export default { this.chargeDurationInterpolated = this.chargeDuration; }, chargeRemainingDuration() { - this.chargeDurationInterpolated = this.chargeRemainingDuration; + this.chargeRemainingDurationInterpolated = this.chargeRemainingDuration; }, }, mounted() { diff --git a/dist/index.html b/dist/index.html index 1789618ac..07a115856 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1,5 +1,5 @@ -evcc
\ No newline at end of file + };
\ No newline at end of file diff --git a/dist/js/index.e5e2e523.js b/dist/js/index.0be96fe8.js similarity index 78% rename from dist/js/index.e5e2e523.js rename to dist/js/index.0be96fe8.js index 5c7bd285e..2ae20dcea 100644 --- a/dist/js/index.e5e2e523.js +++ b/dist/js/index.0be96fe8.js @@ -1,2 +1,2 @@ -(function(t){function e(e){for(var i,o,r=e[0],l=e[1],c=e[2],u=0,m=[];ut,t=>{const e=t.config.baseURL+t.config.url,a=`${t.message}: API request failed ${e}`;window.app.error({message:a})});var m=u,p=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"app d-flex flex-column justify-content-between overflow-hidden"},[a("div",{staticClass:"flex-grow-1 d-flex flex-column justify-content-between"},[a("nav",{staticClass:"navbar navbar-expand-lg navbar-dark bg-dark"},[a("div",{staticClass:"container"},[a("a",{staticClass:"navbar-brand",attrs:{href:"https://evcc.io/",target:"_blank"}},[a("Logo",{staticClass:"logo"})],1),a("div",{staticClass:"d-flex flex-grow-1 justify-content-end"},[a("Notifications",{attrs:{notifications:t.notifications}}),t._m(0)],1),a("div",{staticClass:"collapse navbar-collapse flex-grow-0",attrs:{id:"navbarNavAltMarkup"}},[a("ul",{staticClass:"navbar-nav"},[t.providerLogins.length>0?a("li",{staticClass:"nav-item dropdown"},[a("a",{staticClass:"nav-link dropdown-toggle",attrs:{"data-bs-toggle":"dropdown",href:"#",role:"button","aria-expanded":"false"}},[t._v(t._s(t.$t("header.login"))+" "),t.logoutCount>0?a("span",{staticClass:"badge bg-secondary"},[t._v(t._s(t.logoutCount))]):t._e()]),a("ul",{staticClass:"dropdown-menu"},t._l(t.providerLogins,(function(e){return a("li",{key:e.title,staticClass:"dropdown-item"},[a("button",{staticClass:"dropdown-item",attrs:{type:"button"},on:{click:function(a){return t.handleProviderAuthorization(e)}}},[t._v(" "+t._s(e.title)+" "+t._s(t.$t(e.loggedIn?"main.provider.logout":"main.provider.login"))+" ")])])})),0)]):t._e(),a("li",{staticClass:"nav-item"},[a("a",{staticClass:"nav-link",attrs:{href:"https://docs.evcc.io/blog/",target:"_blank"}},[t._v(" "+t._s(t.$t("header.blog"))+" ")])]),a("li",{staticClass:"nav-item"},[a("a",{staticClass:"nav-link",attrs:{href:"https://docs.evcc.io/docs/Home/",target:"_blank"}},[t._v(" "+t._s(t.$t("header.docs"))+" ")])]),a("li",{staticClass:"nav-item"},[a("a",{staticClass:"nav-link",attrs:{href:"https://github.com/evcc-io/evcc",target:"_blank"}},[t._v(" "+t._s(t.$t("header.github"))+" ")])])])])])]),a("router-view",{staticClass:"flex-grow-1 d-flex flex-column justify-content-stretch"})],1),a("Footer",{attrs:{version:t.version,sponsor:t.sponsor,savings:t.savings}})],1)},h=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("button",{staticClass:"navbar-toggler",attrs:{type:"button","data-bs-toggle":"collapse","data-bs-target":"#navbarNavAltMarkup","aria-controls":"navbarNavAltMarkup","aria-expanded":"false","aria-label":"Toggle navigation"}},[a("span",{staticClass:"navbar-toggler-icon"})])}],g=a("ad3d"),v=a("ecee"),f=a("8475"),b=a("39f0"),C=a("8718"),_=a("7c8d"),w=a("c6b3"),y=a("aeda"),S=a("5d61"),x=a("5dae"),T=a("8560"),k=a("af2b"),D=a("dac1"),P=a("cca2"),$=a("eb9d"),N=a("f303"),L=a("7116"),I=a("fdca"),E=a("6023"),A=a("91fb"),B=a("184c"),j=a("ba01"),M=a("a17a"),R=a("28d3"),U=a("f15f"),z=a("6c88"),V=a("adbc"),W=a("a819"),H=a("23dc");v["c"].add(S["faAngleDown"],y["faAngleUp"],f["faBatteryEmpty"],b["faBatteryFull"],C["faBatteryHalf"],_["faBatteryQuarter"],w["faBatteryThreeQuarters"],j["faBox"],U["faCar"],W["faAngleDoubleLeft"],H["faAngleDoubleRight"],x["faClock"],V["faExclamationCircle"],T["faExclamationTriangle"],B["faGift"],M["faHome"],R["faWrench"],E["faHeart"],A["faHeart"],z["faSquare"],k["faSun"],D["faSun"],P["faInfoCircle"],$["faFlask"],N["faTemperatureHigh"],L["faTemperatureLow"],I["faThermometerHalf"]),i["a"].component("fa-icon",g["a"]);var O=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("svg",{attrs:{viewBox:"0 0 122 35",xmlns:"http://www.w3.org/2000/svg","fill-rule":"evenodd","clip-rule":"evenodd","stroke-linejoin":"round","stroke-miterlimit":"2"}},[a("path",{attrs:{d:"M13.082 29.071a12.384 12.384 0 01-9-3.42 12.192 12.192 0 01-3.54-9.12v-.64a15.394 15.394 0 011.47-6.83 10.825 10.825 0 014.17-4.64 11.64 11.64 0 016.15-1.63 10.45 10.45 0 018.21 3.26c2 2.194 3 5.297 3 9.31v2.76H7.382a6.348 6.348 0 002 4 5.997 5.997 0 004.16 1.49 7.305 7.305 0 006.1-2.84l3.31 3.73a10 10 0 01-4.13 3.39 13.309 13.309 0 01-5.74 1.18zm-.77-20.84a4.216 4.216 0 00-3.26 1.37 7.141 7.141 0 00-1.6 3.91h9.39v-.55a5.005 5.005 0 00-1.22-3.49 4.304 4.304 0 00-3.31-1.24zM36.452 20.331l4.7-17.09h7l-8.48 25.36h-6.44l-8.52-25.36h7l4.74 17.09zM85.542 23.611a4.444 4.444 0 003-1 3.638 3.638 0 001.22-2.75h6.32a8.668 8.668 0 01-1.4 4.73 9.145 9.145 0 01-3.79 3.3 11.736 11.736 0 01-5.29 1.19 10.912 10.912 0 01-8.54-3.46c-2.087-2.3-3.13-5.483-3.13-9.55v-.45c0-3.9 1.033-7.016 3.1-9.35a10.868 10.868 0 018.51-3.5c2.791-.134 5.524.84 7.6 2.71a9.626 9.626 0 012.9 7.21h-6.3a4.663 4.663 0 00-1.2-3.22 4.005 4.005 0 00-3.08-1.24 4.068 4.068 0 00-3.56 1.73c-.8 1.15-1.2 3-1.2 5.6v.7c0 2.61.39 4.49 1.19 5.63a4.092 4.092 0 003.65 1.72zM110.422 23.611a4.454 4.454 0 003-1 3.63 3.63 0 001.21-2.75h6.33a8.668 8.668 0 01-1.4 4.73 9.143 9.143 0 01-3.73 3.3 11.76 11.76 0 01-5.29 1.18 10.912 10.912 0 01-8.54-3.46c-2.087-2.3-3.13-5.483-3.13-9.55v-.45c0-3.9 1.033-7.016 3.1-9.35a10.85 10.85 0 018.57-3.49 10.575 10.575 0 017.6 2.71 9.598 9.598 0 012.91 7.21h-6.33a4.651 4.651 0 00-1.21-3.22 4.492 4.492 0 00-6.64.49c-.8 1.15-1.21 3-1.21 5.6v.7c0 2.607.4 4.484 1.2 5.63a4.09 4.09 0 003.56 1.72z",fill:"#fff","fill-rule":"nonzero"}}),a("path",{attrs:{d:"M58.462.751h9.22l-6.14 12.3h6.15l-11.53 21.51 2.3-15.36h-7.68l7.68-18.45z",fill:"#0fdd42","fill-rule":"nonzero"}}),a("path",{attrs:{fill:"none",d:"M-24.458-22.109h170v76h-170z"}})])},F=[],K={name:"Logo"},G=K,Z=a("2877"),q=Object(Z["a"])(G,O,F,!1,null,null,null),Y=q.exports,J=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("footer",{staticClass:"container"},[a("div",{staticClass:"py-3 py-md-5 mt-3 mt-md-5 border-top"},[a("div",{staticClass:"d-flex justify-content-between"},[a("Version",t._b({},"Version",t.version,!1)),a("Savings",t._b({attrs:{sponsor:t.sponsor}},"Savings",t.savings,!1))],1)])])},Q=[],X=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[t.newVersionAvailable?a("button",{staticClass:"btn btn-link ps-0 text-decoration-none link-dark text-nowrap",attrs:{href:"#","data-bs-toggle":"modal","data-bs-target":"#updateModal"}},[a("fa-icon",{staticClass:"icon me-2",attrs:{icon:"gift"}}),t._v("v"+t._s(t.installed)+" "),a("span",{staticClass:"d-none d-xs-inline d-sm-none text-muted text-decoration-underline"},[t._v(" "+t._s(t.$t("footer.version.availableShort"))+" ")]),a("span",{staticClass:"d-none d-sm-inline text-muted text-decoration-underline"},[t._v(" "+t._s(t.$t("footer.version.availableLong"))+" ")])],1):a("a",{staticClass:"btn btn-link ps-0 text-decoration-none link-dark text-nowrap",attrs:{href:t.releaseNotesUrl(t.installed),target:"_blank"}},[a("span",{staticClass:"d-inline d-xs-none d-sm-none"},[t._v(t._s(t.$t("footer.version.versionShort",{installed:t.installed})))]),a("span",{staticClass:"d-none d-xs-inline d-sm-inline"},[t._v(t._s(t.$t("footer.version.versionLong",{installed:t.installed})))])]),a("div",{staticClass:"modal fade",attrs:{id:"updateModal",tabindex:"-1",role:"dialog","aria-hidden":"true"}},[a("div",{staticClass:"modal-dialog modal-dialog-centered modal-dialog-scrollable",attrs:{role:"document"}},[a("div",{staticClass:"modal-content"},[a("div",{staticClass:"modal-header"},[a("h5",{staticClass:"modal-title"},[t._v(t._s(t.$t("footer.version.modalTitle")))]),a("button",{staticClass:"btn-close",attrs:{type:"button","data-bs-dismiss":"modal","aria-label":"Close"}})]),a("div",{staticClass:"modal-body"},[t.updateStarted?a("div",[a("p",[t._v(t._s(t.$t("footer.version.modalUpdateStarted")))]),a("div",{staticClass:"progress my-3"},[a("div",{staticClass:"progress-bar progress-bar-striped progress-bar-animated",style:{width:t.uploadProgress+"%"},attrs:{role:"progressbar"}})]),a("p",[t._v(t._s(t.updateStatus)+t._s(t.uploadMessage))])]):a("div",[a("p",[a("small",[t._v(" "+t._s(t.$t("footer.version.modalInstalledVersion"))+": "+t._s(t.installed)+" ")])]),t.releaseNotes?a("div",{domProps:{innerHTML:t._s(t.releaseNotes)}}):a("p",[t._v(" "+t._s(t.$t("footer.version.modalNoReleaseNotes"))+" "),a("a",{attrs:{href:t.releaseNotesUrl(t.available)}},[t._v("GitHub")]),t._v(". ")])])]),a("div",{staticClass:"modal-footer d-flex justify-content-between"},[a("button",{staticClass:"btn btn-outline-secondary",attrs:{type:"button",disabled:t.updateStarted,"data-bs-dismiss":"modal"}},[t._v(" "+t._s(t.$t("footer.version.modalCancel"))+" ")]),a("div",[t.hasUpdater?a("button",{staticClass:"btn btn-primary",attrs:{type:"button",disabled:t.updateStarted},on:{click:t.update}},[t.updateStarted?a("span",[a("span",{staticClass:"spinner-border spinner-border-sm",attrs:{role:"status","aria-hidden":"true"}}),t._v(" "+t._s(t.$t("footer.version.modalUpdate"))+" ")]):a("span",[t._v(t._s(t.$t("footer.version.modalUpdateNow")))])]):a("a",{staticClass:"btn btn-primary",attrs:{href:t.releaseNotesUrl(t.available)}},[t._v(" "+t._s(t.$t("footer.version.modalDownload"))+" ")])])])])])])])},tt=[],et={name:"Version",props:{installed:String,available:String,releaseNotes:String,commit:String,hasUpdater:Boolean,uploadMessage:String,uploadProgress:Number},data:function(){return{updateStarted:!1,updateStatus:""}},computed:{githubHashUrl:function(){return"https://github.com/evcc-io/evcc/commit/"+this.commit},newVersionAvailable:function(){return this.available&&"[[.Version]]"!=this.installed&&"0.0.1-alpha"!=this.installed&&this.available!=this.installed}},methods:{update:async function(){try{await m.post("update"),this.updateStatus=this.$t("footer.version.modalUpdateStatusStart"),this.updateStarted=!0}catch(t){this.updateStatus=this.$t("footer.version.modalUpdateStatusStart")+t}},releaseNotesUrl:function(t){return"https://github.com/evcc-io/evcc/releases/tag/"+t}}},at=et,it=(a("14fa"),Object(Z["a"])(at,X,tt,!1,null,"7872ae76",null)),st=it.exports,nt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("button",{staticClass:"btn btn-link pe-0 text-decoration-none link-dark text-nowrap",attrs:{"data-bs-toggle":"modal","data-bs-target":"#savingsModal"}},[a("span",{staticClass:"d-inline d-sm-none"},[t._v(t._s(t.$t("footer.savings.footerShort",{percent:t.percent})))]),a("span",{staticClass:"d-none d-sm-inline"},[t._v(t._s(t.$t("footer.savings.footerLong",{percent:t.percent})))]),a("fa-icon",{staticClass:"icon ms-2 text-evcc",attrs:{icon:"sun"}})],1),a("div",{ref:"modal",staticClass:"modal fade",attrs:{id:"savingsModal",tabindex:"-1",role:"dialog","aria-hidden":"true"}},[a("div",{staticClass:"modal-dialog modal-dialog-centered modal-dialog-scrollable",attrs:{role:"document"}},[a("div",{staticClass:"modal-content"},[a("div",{staticClass:"modal-header"},[a("h5",{staticClass:"modal-title"},[a("span",{staticClass:"d-block d-sm-none"},[t._v(" "+t._s(t.$t("footer.savings.modalTitleShort",{percent:t.percent,total:t.fmtKw(1e3*t.totalCharged,!0,!1)}))+" ")]),a("span",{staticClass:"d-none d-sm-block"},[t._v(" "+t._s(t.$t("footer.savings.modalTitleLong",{percent:t.percent,total:t.fmtKw(1e3*t.totalCharged,!0,!1)}))+" ")])]),a("button",{staticClass:"btn-close",attrs:{type:"button","data-bs-dismiss":"modal","aria-label":"Close"}})]),a("div",{staticClass:"modal-body py-4"},[a("div",{staticClass:"chart-container mb-3"},[a("div",{staticClass:"chart-legend d-flex flex-wrap justify-content-between mb-1"},[a("div",{staticClass:"text-nowrap"},[a("fa-icon",{staticClass:"text-evcc",attrs:{icon:"square"}}),t._v(" "+t._s(t.$t("footer.savings.modalChartSelf",{self:t.fmtKw(1e3*t.selfConsumptionCharged,!0,!1)}))+" ")],1),a("div",{staticClass:"text-nowrap"},[a("fa-icon",{staticClass:"text-grid",attrs:{icon:"square"}}),t._v(" "+t._s(t.$t("footer.savings.modalChartGrid",{grid:t.fmtKw(1e3*t.gridCharged,!0,!1)}))+" ")],1)]),a("div",{staticClass:"chart d-flex justify-content-stretch mb-1 rounded overflow-hidden"},[t.totalCharged>0?a("div",{staticClass:"chart-item chart-item--self d-flex justify-content-center text-white flex-shrink-1",style:{width:t.percent+"%"}},[a("span",{staticClass:"text-truncate"},[t._v(" "+t._s(t.percent)+"% ")])]):t._e(),t.totalCharged>0?a("div",{staticClass:"chart-item chart-item--grid d-flex justify-content-center text-white flex-shrink-1",style:{width:100-t.percent+"%"}},[a("span",{staticClass:"text-truncate"},[t._v(" "+t._s(100-t.percent)+"% ")])]):t._e(),0===t.totalCharged?a("div",{staticClass:"chart-item chart-item--no-data d-flex justify-content-center text-white w-100"},[a("span",[t._v(t._s(t.$t("footer.savings.modalNoData")))])]):t._e()])]),a("p",{staticClass:"mb-3"},[t._v(" "+t._s(t.$t("footer.savings.modalSavingsPrice"))+": "),a("strong",[t._v(t._s(t.fmtPricePerKWh(t.effectivePrice,t.currency)))]),a("br"),t._v(" "+t._s(t.$t("footer.savings.modalSavingsTotal"))+": "),a("strong",[t._v(t._s(t.fmtMoney(t.amount,t.currency)))])]),a("p",{staticClass:"small text-muted mb-3"},[a("a",{staticClass:"text-muted",attrs:{href:"https://docs.evcc.io/docs/guides/setup/#ersparnisberechnung",target:"_blank"}},[t._v(" "+t._s(t.$t("footer.savings.modalExplaination")))]),t._v(": "),a("span",{staticClass:"text-nowrap"},[t._v(" "+t._s(t.$t("footer.savings.modalExplainationGrid",{gridPrice:t.fmtPricePerKWh(t.gridPrice,t.currency)})))]),t._v(", "),a("span",{staticClass:"text-nowrap"},[t._v(" "+t._s(t.$t("footer.savings.modalExplainationFeedIn",{feedInPrice:t.fmtPricePerKWh(t.feedInPrice,t.currency)}))+" ")]),a("br"),t._v(" "+t._s(t.$t("footer.savings.modalServerStart",{since:t.fmtTimeAgo(t.secondsSinceStart())}))+" ")]),a("hr",{staticClass:"mb-4"}),a("Sponsor",{staticClass:"mb-4",attrs:{sponsor:t.sponsor}}),a("p",{staticClass:"small text-muted mb-0"},[a("strong",{staticClass:"text-primary"},[a("fa-icon",{attrs:{icon:"flask"}}),t._v(" "+t._s(t.$t("footer.savings.experimentalLabel"))+": ")],1),t._v(" "+t._s(t.$t("footer.savings.experimentalText"))+" "),a("a",{attrs:{href:"https://github.com/evcc-io/evcc/discussions/2104",target:"_blank"}},[t._v("GitHub Discussions")]),t._v(". ")])],1)])])])])},ot=[],rt={data:function(){return{fmtLimit:100,fmtDigits:1}},methods:{round:function(t,e){var a=10**e;return(Math.round(t*a)/a).toFixed(e)},fmt:function(t){return void 0===t||null===t?0:(t=Math.abs(t),t>=this.fmtLimit?this.round(t/1e3,this.fmtDigits):this.round(t,0))},fmtKw:function(t,e=!0,a=!0){const i=e?1:0,s=e?t/1e3:t;let n="";return a&&(n=e?" kW":" W"),this.$n(s,{minimumFractionDigits:i,maximumFractionDigits:i})+n},fmtUnit:function(t){return Math.abs(t)>=this.fmtLimit?"k":""},fmtDuration:function(t){if(t<=0||null==t)return"—";var e="0"+t%60,a="0"+Math.floor(t/60)%60,i=""+Math.floor(t/3600);return i.length<2&&(i="0"+i),i+":"+a.substr(-2)+":"+e.substr(-2)},fmtShortDuration:function(t=0,e=!1){if(t<=0)return"—";var a=t%60,i=Math.floor(t/60)%60,s=Math.floor(t/3600),n="";return n=s>=1?s+":"+(""+i).padStart(2,"0"):i>=1?i+":"+(""+a).padStart(2,"0"):""+a,e&&(n+=this.fmtShortDurationUnit(t)),n},fmtShortDurationUnit:function(t=0){if(t<=0)return"";var e=Math.floor(t/60)%60,a=Math.floor(t/3600);return a>=1?"h":e>=1?"m":"s"},fmtDayString:function(t){const e=""+t.getFullYear(),a=(""+(t.getMonth()+1)).padStart(2,"0"),i=(""+t.getDate()).padStart(2,"0");return`${e}-${a}-${i}`},fmtTimeString:function(t){const e=(""+t.getHours()).padStart(2,"0"),a=(""+t.getMinutes()).padStart(2,"0");return`${e}:${a}`},fmtAbsoluteDate:function(t){return new Intl.DateTimeFormat(this.$i18n.locale,{weekday:"short",hour:"numeric",minute:"numeric"}).format(t)},fmtMoney:function(t=0,e="EUR"){return this.$n(t,{style:"currency",currency:e})},fmtPricePerKWh:function(t=0,e="EUR"){let a=e,i=t,s=3;return["EUR","USD"].includes(e)&&(i*=100,a="ct",s=1),`${this.$n(i,{style:"decimal",maximumFractionDigits:s})} ${a}/kWh`},fmtTimeAgo:function(t){const e={day:864e5,hour:36e5,minute:6e4,second:1e3},a=new Intl.RelativeTimeFormat(this.$i18n.locale,{numeric:"auto"});for(var i in e)if(Math.abs(t)>e[i]||"second"==i)return a.format(Math.round(t/e[i]),i)}}},lt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.sponsor?a("div",[a("p",{staticClass:"mb-3"},[t._v(" "+t._s(t.$t("footer.sponsor.thanks",{sponsor:t.sponsor}))+" ")]),a("div",{staticClass:"d-flex justify-content-center flex-column"},[a("button",{ref:"confetti",staticClass:"btn btn-primary mb-2 confetti-button bg-evcc",on:{click:t.surprise}},[a("fa-icon",{staticClass:"icon me-1 solid",attrs:{icon:["fas","heart"]}}),t._v(" "+t._s(t.$t("footer.sponsor.confetti"))+" ")],1),a("a",{staticClass:"small text-muted text-center",attrs:{href:"https://evcc.io/sticker",target:"_blank"}},[t._v(" "+t._s(t.$t("footer.sponsor.sticker"))+" ")])])]):a("div",[a("p",{staticClass:"mb-3"},[t._v(" "+t._s(t.$t("footer.sponsor.supportUs"))+" ")]),a("div",{staticClass:"d-flex justify-content-center flex-column"},[a("a",{staticClass:"btn btn-outline-primary mb-2",attrs:{target:"_blank",href:"https://github.com/sponsors/andig"}},[a("fa-icon",{staticClass:"icon me-1",attrs:{icon:["far","heart"]}}),t._v(" "+t._s(t.$t("footer.sponsor.becomeSponsor"))+" ")],1),a("div",{staticClass:"small text-muted text-center"},[t._v(" "+t._s(t.$t("footer.sponsor.confettiPromise"))+" ")])])])},ct=[],dt=a("7129"),ut={name:"Sponsor",props:{sponsor:String},methods:{surprise:function(){const t=this.$refs.confetti,e=45+90*Math.random(),a=0,{top:i,height:s,left:n,width:o}=t.getBoundingClientRect(),r=(n+o/2)/window.innerWidth,l=(i+s/2)/window.innerHeight,c={x:r,y:l};Object(dt["a"])({origin:c,angle:e,particleCount:75+50*Math.random(),spread:50+50*Math.random(),drift:a,scalar:1.3,zIndex:1056,colors:["#0d6efd","#0fdd42","#408458","#4923BA","#5BC8EC","#C54482","#CC444A","#EE8437","#F7C144","#FFFD54"]})}}},mt=ut,pt=(a("357f"),Object(Z["a"])(mt,lt,ct,!1,null,"6edb9fae",null)),ht=pt.exports,gt={name:"Savings",components:{Sponsor:ht},mixins:[rt],props:{selfConsumptionPercent:Number,since:{type:Number,default:0},sponsor:String,amount:{type:Number,default:0},effectivePrice:{type:Number,default:0},totalCharged:{type:Number,default:0},gridCharged:{type:Number,default:0},selfConsumptionCharged:{type:Number,default:0},gridPrice:{type:Number},feedInPrice:{type:Number},currency:String},computed:{percent(){return Math.round(this.selfConsumptionPercent)||0}},methods:{secondsSinceStart(){return 1e3*this.since-Date.now()}}},vt=gt,ft=(a("1cf6"),Object(Z["a"])(vt,nt,ot,!1,null,"bd18982c",null)),bt=ft.exports,Ct={name:"Footer",components:{Version:st,Savings:bt},props:{version:Object,sponsor:String,savings:Object}},_t=Ct,wt=Object(Z["a"])(_t,J,Q,!1,null,null,null),yt=wt.exports,St=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("button",{directives:[{name:"show",rawName:"v-show",value:t.iconVisible,expression:"iconVisible"}],staticClass:"btn btn-link text-decoration-none link-light text-nowrap",attrs:{href:"#","data-bs-toggle":"modal","data-bs-target":"#notificationModal"}},[a("fa-icon",{class:t.iconClass,attrs:{icon:"exclamation-triangle"}})],1),a("div",{staticClass:"modal fade",attrs:{id:"notificationModal",tabindex:"-1",role:"dialog","aria-hidden":"true"}},[a("div",{staticClass:"modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable",attrs:{role:"document"}},[a("div",{staticClass:"modal-content"},[a("div",{staticClass:"modal-header"},[a("h5",{staticClass:"modal-title"},[t._v(t._s(t.$t("notifications.modalTitle")))]),a("button",{staticClass:"btn-close",attrs:{type:"button","data-bs-dismiss":"modal","aria-label":"Close"}})]),a("div",{staticClass:"modal-body"},t._l(t.notifications,(function(e,i){return a("div",{key:i},[a("small",{staticClass:"d-flex justify-content-end mt-3",attrs:{title:t.fmtAbsoluteDate(e.time)}},[t._v(" "+t._s(t.fmtTimeAgo(e.time-new Date))+" ")]),a("p",{staticClass:"d-flex align-items-baseline"},[a("fa-icon",{staticClass:"flex-grow-0 d-block",class:{"text-danger":"error"===e.type,"text-warning":"warn"===e.type},attrs:{icon:"exclamation-triangle"}}),a("span",{staticClass:"flex-grow-1 px-2 py-1 text-break"},[t._v(" "+t._s(e.message)+" ")]),e.count>1?a("span",{staticClass:"badge rounded-pill bg-secondary"},[t._v(" "+t._s(e.count)+" ")]):t._e()],1)])})),0),a("div",{staticClass:"modal-footer"},[a("button",{staticClass:"btn btn-outline-secondary",attrs:{type:"button","data-bs-dismiss":"modal","aria-label":"Close"},on:{click:t.clear}},[t._v(" "+t._s(t.$t("notifications.dismissAll"))+" ")])])])])])])},xt=[],Tt={name:"Notifications",mixins:[rt],props:{notifications:Array},computed:{iconVisible:function(){return this.notifications.length>0},iconClass:function(){return this.notifications.find(t=>"error"===t.type)?"text-danger":"text-warning"}},created:function(){this.interval=setInterval(()=>{this.$forceUpdate()},1e4)},destroyed:function(){clearTimeout(this.interval)},methods:{clear:function(){window.app&&window.app.clear()}}},kt=Tt,Dt=Object(Z["a"])(kt,St,xt,!1,null,null,null),Pt=Dt.exports;function $t(t,e,a){const s=e.shift();t[s]||i["a"].set(t,s,{}),e.length?$t(t[s],e,a):a&&"object"===typeof a&&!Array.isArray(a)?t[s]={...t[s],...a}:t[s]=a}const Nt={state:{loadpoints:[]},update:function(t){Object.keys(t).forEach((function(e){"function"===typeof window.app[e]?window.app[e]({message:t[e]}):$t(Nt.state,e.split("."),t[e])}))}};var Lt=Nt;const{protocol:It,hostname:Et,port:At,pathname:Bt}=window.location,jt=o.a.create({baseURL:It+"//"+Et+(At?":"+At:"")+Bt+"/"});jt.interceptors.response.use(t=>t,t=>{const e=t.config.baseURL+t.config.url,a=`${t.message}: API request failed ${e}`;window.app.error({message:a})});var Mt=jt,Rt={name:"App",components:{Logo:Y,Footer:yt,Notifications:Pt},props:{notifications:Array},data:function(){return{compact:!1,store:this.$root.$data.store,installedVersion:window.evcc.version,commit:window.evcc.commit}},computed:{version:function(){return{installed:this.installedVersion,available:this.store.state.availableVersion,releaseNotes:this.store.state.releaseNotes,hasUpdater:this.store.state.hasUpdater,uploadMessage:this.store.state.uploadMessage,uploadProgress:this.store.state.uploadProgress}},title:function(){return this.store.state.siteTitle},sponsor:function(){return this.store.state.sponsor},savings:function(){return{since:this.store.state.savingsSince,totalCharged:this.store.state.savingsTotalCharged,gridCharged:this.store.state.savingsGridCharged,selfConsumptionCharged:this.store.state.savingsSelfConsumptionCharged,amount:this.store.state.savingsAmount,effectivePrice:this.store.state.savingsEffectivePrice,selfConsumptionPercent:this.store.state.savingsSelfConsumptionPercent,gridPrice:this.store.state.tariffGrid,feedInPrice:this.store.state.tariffFeedIn,currency:this.store.state.currency}},logoutCount(){return this.providerLogins.filter(t=>!t.loggedIn).length},providerLogins(){return this.store.state.auth?Object.entries(this.store.state.auth.vehicles).map(([t,e])=>({title:t,loggedIn:e.authenticated,loginPath:e.uri+"/login",logoutPath:e.uri+"/logout"})):[]}},created:function(){const t=new URLSearchParams(window.location.search);this.compact=t.get("compact"),setTimeout(this.connect,0)},methods:{connect:function(){const t="WebSocket"in window;if(!t)return void window.app.error({message:"Web sockets not supported. Please upgrade your browser."});const e=window.location,a="https:"==e.protocol?"wss:":"ws:",i=a+"//"+e.hostname+(e.port?":"+e.port:"")+e.pathname+"ws",s=new WebSocket(i);s.onerror=()=>{s.close()},s.onclose=()=>{window.setTimeout(this.connect,1e3)},s.onmessage=t=>{try{var e=JSON.parse(t.data);Lt.update(e)}catch(a){window.app.error({message:`Failed to parse web socket data: ${a.message} [${t.data}]`})}}},reload(){window.location.reload()},handleProviderAuthorization:async function(t){t.loggedIn?Mt.post(t.logoutPath):Mt.post(t.loginPath).then((function(t){window.location.href=t.data.loginUri}))}},metaInfo(){return{title:this.title?"evcc | "+this.title:"evcc"}}},Ut=Rt,zt=(a("c1a8"),Object(Z["a"])(Ut,p,h,!1,null,"63bd1ae6",null)),Vt=zt.exports,Wt=a("8c4f"),Ht=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"container"},[t.configured?a("Site",t._b({},"Site",t.state,!1)):a("div",[a("div",{staticClass:"row py-5"},[a("div",{staticClass:"col12"},[a("p",{staticClass:"h1 pt-5 pb-2 border-bottom"},[t._v("Willkommen bei evcc")]),a("p",{staticClass:"lead pt-2"},[a("b",[t._v("evcc")]),t._v(" ist dient zur flexiblen Ladesteuerung von Elektrofahrzeugen. ")]),a("p",{staticClass:"pt-2"},[t._v(" Es sieht aus, als wäre Dein "),a("b",[t._v("evcc")]),t._v(" noch nicht konfiguriert. Um "),a("b",[t._v("evcc")]),t._v(" zu konfigurieren sind die folgenden Schritte notwendig: ")]),a("ol",{staticClass:"pt-2"},[a("li",[t._v(" Erzeugen einer Konfigurationsdatei mit Namen "),a("code",[t._v("evcc.yaml")]),t._v(". Die Standardkonfiguration "),a("code",[t._v("evcc.dist.yaml")]),t._v(" kann dafür als Vorlage dienen ("),a("a",{attrs:{href:"https://github.com/evcc-io/evcc/blob/master/evcc.dist.yaml"}},[t._v("Download")]),t._v("). ")]),a("li",[t._v("Konfiguration der Wallbox als "),a("code",[t._v("chargers")]),t._v(".")]),a("li",[t._v(" Konfiguration des EVU Zählers und evtl. weiterer Zähler unter "),a("code",[t._v("meters")]),t._v(". ")]),a("li",[t._v(" Konfiguration des Netzanschlusses unter "),a("code",[t._v("site")]),t._v(". In einer Site wird der Netzanschluss mit dem konfigurierten EVU Zähler ("),a("code",[t._v("meter")]),t._v(") verbunden. ")]),a("li",[t._v(" Konfiguration eines Ladepunktes unter "),a("code",[t._v("loadpoints")]),t._v(". In einem Ladepunkt wird die konfigurierte Wallbox ("),a("code",[t._v("charger")]),t._v(") mit dem Ladepunkt verbunden. ")]),a("li",[t._v(" Start von "),a("b",[t._v("evcc")]),t._v(" mit der neu erstellten Konfiguration: "),a("code",[t._v("evcc -c evcc.yaml")])])]),a("p",[t._v("Minimale Beispielkonfiguration für "),a("b",[t._v("evcc")]),t._v(":")]),a("p",[a("code",[a("pre",{staticClass:"mx-3"},[t._v(" uri: localhost:7070 # Adresse für UI\n interval: 10s # Regelintervall\n meters:\n - name: evu-zähler\n type: ... # Detailkonfiguration des EVU Zählers\n - name: ladezähler\n type: ... # Detailkonfiguration des Ladezählers (optional)\n chargers:\n - name: wallbox\n type: ... # Detailkonfiguration der Wallbox\n site:\n title: Home\n meters:\n grid: evu-zähler # EVU Zähler\n loadpoints:\n - title: Ladepunkt # ui display name\n charger: wallbox # charger\n meters:\n charge: ladezähler # Ladezählers (optional)\n ")])])]),a("p",[t._v(" Viel Spass mit "),a("b",[t._v("evcc")]),t._v("! Bei Problemen kannst Du uns auf "),a("a",{attrs:{href:"https://github.com/evcc-io/evcc/issues"}},[t._v("GitHub")]),t._v(" erreichen. ")])])])])],1)},Ot=[],Ft=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"flex-grow-1 d-flex flex-column"},[a("h3",{staticClass:"d-none d-md-block my-4"},[t._v(" "+t._s(t.siteTitle||"Home")+" ")]),a("Energyflow",t._b({},"Energyflow",t.energyflow,!1)),a("hr",{staticClass:"w-100 my-4"}),a("div",{staticClass:"flex-grow-1 d-flex justify-content-around flex-column"},[t._l(t.loadpoints,(function(e,i){return[i>0?a("hr",{key:i+"_hr",staticClass:"w-100 my-4"}):t._e(),a("Loadpoint",t._b({key:i,attrs:{id:i,single:1===t.loadpoints.length}},"Loadpoint",e,!1))]}))],2)],1)},Kt=[],Gt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("div",{staticClass:"row align-items-start align-items-md-center mt-4 energyflow",on:{click:t.toggleDetails}},[a("Visualization",{staticClass:"col-12 offset-md-1 col-md-6 offset-lg-1 col-lg-8 offset-xl-1 col-xl-6 offset-xxl-1 col-xl-8 order-md-2",attrs:{showDetails:t.showDetails,gridImport:t.gridImport,selfConsumption:t.selfConsumption,loadpoints:t.loadpointsPower,pvExport:t.pvExport,batteryCharge:t.batteryCharge,batteryDischarge:t.batteryDischarge,pvProduction:t.pvProduction,homePower:t.homePower,batterySoC:t.batterySoC,valuesInKw:t.valuesInKw}}),a("div",{staticClass:"col-12 col-sm-6 col-md-5 col-lg-3 col-xl-3 order-md-1 mt-2 mt-md-0",class:t.showDetails?"d-block":"d-none d-md-block"},[a("div",{staticClass:"d-flex justify-content-between",attrs:{"data-test-pv-production":""}},[a("span",{staticClass:"details-icon text-muted"},[a("fa-icon",{attrs:{icon:"sun"}})],1),a("span",{staticClass:"text-nowrap flex-grow-1"},[t._v(t._s(t.$t("main.energyflow.pvProduction")))]),a("span",{staticClass:"text-end text-nowrap ps-1"},[t._v(t._s(t.kw(t.pvProduction)))])]),a("div",{staticClass:"d-flex justify-content-between",attrs:{"data-test-home-power":""}},[a("span",{staticClass:"details-icon text-muted"},[a("fa-icon",{attrs:{icon:"home"}})],1),a("span",{staticClass:"text-nowrap flex-grow-1"},[t._v(t._s(t.$t("main.energyflow.homePower")))]),a("span",{staticClass:"text-end text-nowrap ps-1"},[t._v(t._s(t.kw(t.homePower)))])]),a("div",{staticClass:"d-flex justify-content-between",attrs:{"data-test-loadpoints":""}},[a("span",{staticClass:"details-icon text-muted"},[a("fa-icon",{attrs:{icon:"car"}})],1),a("span",{staticClass:"text-nowrap flex-grow-1"},[t._v(t._s(t.$tc("main.energyflow.loadpoints",t.activeLoadpointsCount,{count:t.activeLoadpointsCount})))]),a("span",{staticClass:"text-end text-nowrap ps-1"},[t._v(t._s(t.kw(t.loadpointsPower)))])]),t.batteryConfigured?a("div",{staticClass:"d-flex justify-content-between",attrs:{"data-test-battery":""}},[a("span",{staticClass:"details-icon text-muted"},[a("BatteryIcon",{attrs:{soc:t.batterySoC,charge:t.batteryCharge>0,discharge:t.batteryDischarge>0}})],1),a("span",{staticClass:"text-nowrap flex-grow-1 text-truncate"},[t.batteryCharge?a("span",[t._v(t._s(t.$t("main.energyflow.batteryCharge")))]):t.batteryDischarge?a("span",[t._v(t._s(t.$t("main.energyflow.batteryDischarge")))]):a("span",[t._v(t._s(t.$t("main.energyflow.battery")))])]),a("span",{staticClass:"text-end text-nowrap ps-1"},[t._v(" "+t._s(t.batterySoC)+"% / "+t._s(t.kw(Math.abs(t.batteryPower)))+" ")])]):t._e()]),t.showDetails?a("div",{staticClass:"col-12 col-sm-6 offset-md-6 col-md-6 offset-lg-4 col-lg-8 d-block d-md-flex order-md-3 justify-content-between mt-2"},[a("div",{staticClass:"text-nowrap d-flex d-md-block",attrs:{"data-test-grid-import":""}},[a("span",{staticClass:"color-grid details-icon"},[a("fa-icon",{attrs:{icon:"square"}})],1),a("span",{staticClass:"text-nowrap flex-grow-1"},[t._v(t._s(t.$t("main.energyflow.gridImport")))]),a("span",{staticClass:"text-end text-nowrap d-md-none"},[t._v(" "+t._s(t.kw(t.gridImport))+" ")])]),a("div",{staticClass:"text-nowrap d-flex d-md-block",attrs:{"data-test-self-consumption":""}},[a("span",{staticClass:"color-self details-icon"},[a("fa-icon",{attrs:{icon:"square"}})],1),a("span",{staticClass:"text-nowrap flex-grow-1"},[t._v(t._s(t.$t("main.energyflow.selfConsumption")))]),a("span",{staticClass:"text-end text-nowrap d-md-none"},[t._v(" "+t._s(t.kw(t.selfConsumption))+" ")])]),a("div",{staticClass:"text-nowrap d-flex d-md-block",attrs:{"data-test-pv-export":""}},[a("span",{staticClass:"color-export details-icon"},[a("fa-icon",{attrs:{icon:"square"}})],1),a("span",{staticClass:"text-nowrap flex-grow-1"},[t._v(t._s(t.$t("main.energyflow.pvExport")))]),a("span",{staticClass:"text-end text-nowrap d-md-none"},[t._v(" "+t._s(t.kw(t.pvExport))+" ")])])]):t._e()],1)])},Zt=[],qt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"visualization",class:{"visualization--ready":t.visualizationReady}},[a("div",{staticClass:"label-scale"},[a("div",{staticClass:"d-flex justify-content-start"},[a("LabelBar",t._b({},"LabelBar",t.labelBarProps("top","pvProduction"),!1),[a("fa-icon",{attrs:{icon:"sun"}})],1),a("LabelBar",t._b({},"LabelBar",t.labelBarProps("top","batteryDischarge"),!1),[a("BatteryIcon",{attrs:{soc:t.batterySoC,discharge:""}})],1),a("LabelBar",t._b({},"LabelBar",t.labelBarProps("top","gridImport"),!1),[a("GridIcon",{attrs:{import:""}})],1)],1)]),a("div",{ref:"site_progress",staticClass:"site-progress"},[a("div",{staticClass:"site-progress-bar self-consumption",style:{width:t.widthTotal(t.selfConsumptionAdjusted)}},[t.powerLabelEnoughSpace(t.selfConsumption)?a("span",{staticClass:"power"},[t._v(" "+t._s(t.kw(t.selfConsumption))+" ")]):t.powerLabelSomeSpace(t.selfConsumption)?a("span",{staticClass:"power"},[t._v(" "+t._s(t.kwNoUnit(t.selfConsumption))+" ")]):t._e()]),a("div",{staticClass:"site-progress-bar grid-import",style:{width:t.widthTotal(t.gridImportAdjusted)}},[t.powerLabelEnoughSpace(t.gridImport)?a("span",{staticClass:"power"},[t._v(" "+t._s(t.kw(t.gridImport))+" ")]):t.powerLabelSomeSpace(t.gridImport)?a("span",{staticClass:"power"},[t._v(" "+t._s(t.kwNoUnit(t.gridImport))+" ")]):t._e()]),a("div",{staticClass:"site-progress-bar pv-export",style:{width:t.widthTotal(t.pvExportAdjusted)}},[t.powerLabelEnoughSpace(t.pvExport)?a("span",{staticClass:"power"},[t._v(" "+t._s(t.kw(t.pvExport))+" ")]):t.powerLabelSomeSpace(t.pvExport)?a("span",{staticClass:"power"},[t._v(" "+t._s(t.kwNoUnit(t.pvExport))+" ")]):t._e()]),t.totalAdjusted<=0?a("div",{staticClass:"site-progress-bar bg-light border no-wrap w-100"},[a("span",[t._v(t._s(t.$t("main.energyflow.noEnergy")))])]):t._e()]),a("div",{staticClass:"label-scale"},[a("div",{staticClass:"d-flex justify-content-start"},[a("LabelBar",t._b({},"LabelBar",t.labelBarProps("bottom","homePower"),!1),[a("fa-icon",{attrs:{icon:"home"}})],1),a("LabelBar",t._b({},"LabelBar",t.labelBarProps("bottom","loadpoints"),!1),[a("fa-icon",{attrs:{icon:"car"}})],1),a("LabelBar",t._b({},"LabelBar",t.labelBarProps("bottom","batteryCharge"),!1),[a("BatteryIcon",{attrs:{soc:t.batterySoC,charge:""}})],1),a("LabelBar",t._b({},"LabelBar",t.labelBarProps("bottom","gridExport"),!1),[a("GridIcon",{attrs:{export:""}})],1)],1)])])},Yt=[],Jt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:{"power--in":t.charge,"power--out":t.discharge}},[a("fa-icon",{staticClass:"battery",attrs:{icon:t.batteryIcon}}),a("fa-icon",{staticClass:"arrow",attrs:{icon:"angle-double-right"}})],1)},Qt=[],Xt={name:"BatteryIcon",props:{discharge:{type:Boolean},charge:{type:Boolean},soc:{type:Number,default:0}},computed:{batteryIcon:function(){return this.soc>80?"battery-full":this.soc>60?"battery-three-quarters":this.soc>40?"battery-half":this.soc>20?"battery-quarter":"battery-empty"}}},te=Xt,ee=(a("702d"),Object(Z["a"])(te,Jt,Qt,!1,null,"2dcca16c",null)),ae=ee.exports,ie=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:{"power-import":this.import,"power-export":this.export}},[a("svg",{staticClass:"grid svg-inline--fa fa-home fa-w-18",attrs:{viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg","xml:space":"preserve"}},[a("path",{attrs:{fill:"currentColor",d:"M217.529 46.629H83.817c-8.83 0-16 7.169-16 16v32c0 .196.004.391.011.586v51.22c0 6.209 5.041 11.25 11.25 11.25h22.5c6.209 0 11.25-5.041 11.25-11.25v-35.806h104.701v84.697H83.577c-8.83 0-16 7.169-16 16v32c0 .196.004.391.011.586v51.22c0 6.209 5.041 11.25 11.25 11.25h22.5c6.209 0 11.25-5.041 11.25-11.25v-35.806h104.941v49.925L176.47 506.932l160 .033-39.179-197.538v-50.101h100.402v35.756c0 6.257 5.08 11.337 11.337 11.337h22.674c6.257 0 11.337-5.08 11.337-11.337v-83.756c0-8.831-7.169-16-16-16h-129.75v-84.697h100.642v35.756c0 6.257 5.08 11.337 11.337 11.337h22.674c6.257 0 11.337-5.08 11.337-11.337V62.629c0-8.831-7.169-16-16-16h-129.99V26.162c-.043-12.777-40.058-18.846-40.159-18.633 0 0-39.66 6.092-39.603 18.633v20.467Z"}})]),a("fa-icon",{staticClass:"arrow",attrs:{icon:"angle-double-right"}})],1)},se=[],ne={name:"GridIcon",props:{import:{type:Boolean},export:{type:Boolean}}},oe=ne,re=(a("06aa"),Object(Z["a"])(oe,ie,se,!1,null,"c8e84f48",null)),le=re.exports,ce=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"label-bar",class:{"label-bar--hide-icon":t.hideIcon,"label-bar--hidden":!t.value,"label-bar--top":t.top,"label-bar--bottom":t.bottom,"label-bar--first":t.first,"label-bar--last":t.last}},[a("div",{staticClass:"label-bar-scale"},[a("div",{staticClass:"label-bar-icon"},[t._t("default")],2)])])},de=[],ue={name:"LabelBar",props:{value:{type:Number,default:0},hideIcon:{type:Boolean},top:{type:Boolean},bottom:{type:Boolean},first:{type:Boolean},last:{type:Boolean}}},me=ue,pe=(a("67e4"),Object(Z["a"])(me,ce,de,!1,null,"17da7e54",null)),he=pe.exports,ge={name:"Visualization",components:{BatteryIcon:ae,LabelBar:he,GridIcon:le},mixins:[rt],props:{showDetails:Boolean,gridImport:{type:Number,default:0},selfConsumption:{type:Number,default:0},pvExport:{type:Number,default:0},loadpoints:{type:Number,default:0},batteryCharge:{type:Number,default:0},batteryDischarge:{type:Number,default:0},pvProduction:{type:Number,default:0},homePower:{type:Number,default:0},batterySoC:{type:Number,default:0},valuesInKw:{type:Boolean,default:!1}},data:function(){return{width:0,visualizationReady:!1}},computed:{gridExport:function(){return this.pvExport},totalRaw:function(){return this.gridImport+this.selfConsumption+this.pvExport},gridImportAdjusted:function(){return this.applyThreshold(this.gridImport)},selfConsumptionAdjusted:function(){return this.applyThreshold(this.selfConsumption)},pvExportAdjusted:function(){return this.applyThreshold(this.pvExport)},totalAdjusted:function(){return this.gridImportAdjusted+this.selfConsumptionAdjusted+this.pvExportAdjusted}},watch:{showDetails:function(){this.$nextTick(()=>this.updateElementWidth())},totalAdjusted:function(){!this.visualizationReady&&this.totalAdjusted>0&&setTimeout(()=>{this.visualizationReady=!0},500)}},mounted:function(){this.$nextTick((function(){window.addEventListener("resize",this.updateElementWidth),this.updateElementWidth()}))},beforeDestroy(){window.removeEventListener("resize",this.updateElementWidth)},methods:{widthTotal:function(t){return 0===this.totalAdjusted?"0%":100/this.totalAdjusted*t+"%"},kw:function(t){return this.fmtKw(t,this.valuesInKw,!0)},kwNoUnit:function(t){return this.fmtKw(t,this.valuesInKw,!1)},powerLabelAvailableSpace(t){if(0===this.totalAdjusted)return 0;const e=100/this.totalAdjusted*t;return this.width/100*e},powerLabelEnoughSpace(t){return this.powerLabelAvailableSpace(t)>60},powerLabelSomeSpace(t){return this.powerLabelAvailableSpace(t)>35},hideLabelIcon(t,e=32){if(0===this.totalAdjusted)return!0;const a=100/this.totalAdjusted*t;return this.width/100*a0)return t===e}return!1},labelBarProps(t,e){const a=this[e],i=e.startsWith("battery")||e.startsWith("grid")?44:32;return{value:a,hideIcon:this.hideLabelIcon(a,i),style:{width:this.widthTotal(a)},first:this.isLabelFirst(t,e),last:this.isLabelLast(t,e),[t]:!0}}}},ve=ge,fe=(a("4f12"),Object(Z["a"])(ve,qt,Yt,!1,null,"0c035ffc",null)),be=fe.exports,Ce={name:"Energyflow",components:{Visualization:be,BatteryIcon:ae},mixins:[rt],props:{gridConfigured:Boolean,gridPower:{type:Number,default:0},homePower:{type:Number,default:0},pvConfigured:Boolean,pvPower:{type:Number,default:0},loadpointsPower:{type:Number,default:0},activeLoadpointsCount:{type:Number,default:0},batteryConfigured:Boolean,batteryPower:{type:Number,default:0},batterySoC:{type:Number,default:0}},data:function(){return{showDetails:!1}},computed:{gridImport:function(){return Math.max(0,this.gridPower)},pvProduction:function(){return this.pvConfigured?Math.abs(this.pvPower):this.pvExport},batteryPowerAdjusted:function(){const t=50;return Math.abs(this.batteryPower)1e3}},methods:{kw:function(t){return this.fmtKw(t,this.valuesInKw)},toggleDetails(){this.showDetails=!this.showDetails}}},_e=Ce,we=(a("c126"),Object(Z["a"])(_e,Gt,Zt,!1,null,"c2b4f05e",null)),ye=we.exports,Se=ye,xe=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("p",{staticClass:"h3 mb-4 d-sm-block",class:{"d-none":t.single}},[t._v(" "+t._s(t.title||t.$t("main.loadpoint.fallbackName"))+" ")]),"soft"==t.remoteDisabled?a("div",{staticClass:"alert alert-warning mt-4 mb-2",attrs:{role:"alert"}},[t._v(" "+t._s(t.$t("main.loadpoint.remoteDisabledSoft",{source:t.remoteDisabledSource}))+" ")]):t._e(),"hard"==t.remoteDisabled?a("div",{staticClass:"alert alert-danger mt-4 mb-2",attrs:{role:"alert"}},[t._v(" "+t._s(t.$t("main.loadpoint.remoteDisabledHard",{source:t.remoteDisabledSource}))+" ")]):t._e(),a("div",{staticClass:"row"},[a("Mode",{staticClass:"col-12 col-md-6 col-lg-4 mb-4",attrs:{mode:t.mode},on:{updated:t.setTargetMode}}),a("Vehicle",t._b({staticClass:"col-12 col-md-6 col-lg-8 mb-4",on:{"target-soc-updated":t.setTargetSoC,"target-time-updated":t.setTargetTime,"target-time-removed":t.removeTargetTime}},"Vehicle",t.vehicle,!1))],1),a("LoadpointDetails",t._b({},"LoadpointDetails",t.details,!1))],1)},Te=[],ke=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("div",{staticClass:"mb-3"},[t._v(t._s(t.$t("main.mode.title")))]),a("div",{staticClass:"btn-group w-100",attrs:{role:"group"}},[a("button",{staticClass:"btn btn-outline-secondary",class:{active:"off"==t.mode},attrs:{type:"button"},on:{click:function(e){return t.setTargetMode("off")}}},[t._v(" "+t._s(t.$t("main.mode.stop"))+" ")]),a("button",{staticClass:"btn btn-outline-secondary",class:{active:"now"==t.mode},attrs:{type:"button"},on:{click:function(e){return t.setTargetMode("now")}}},[t._v(" "+t._s(t.$t("main.mode.now"))+" ")]),a("button",{staticClass:"btn btn-outline-secondary",class:{active:"minpv"==t.mode},attrs:{type:"button"},on:{click:function(e){return t.setTargetMode("minpv")}}},[a("span",{staticClass:"d-inline d-sm-none"},[t._v(" "+t._s(t.$t("main.mode.minpvShort"))+" ")]),a("span",{staticClass:"d-none d-sm-inline"},[t._v(" "+t._s(t.$t("main.mode.minpvLong"))+" ")])]),a("button",{staticClass:"btn btn-outline-secondary",class:{active:"pv"==t.mode},attrs:{type:"button"},on:{click:function(e){return t.setTargetMode("pv")}}},[a("span",{staticClass:"d-inline d-sm-none"},[t._v(" "+t._s(t.$t("main.mode.pvShort"))+" ")]),a("span",{staticClass:"d-none d-sm-inline"},[t._v(" "+t._s(t.$t("main.mode.pvLong"))+" ")])])])])},De=[],Pe={name:"Mode",props:{mode:String},methods:{setTargetMode:function(t){this.$emit("updated",t)}}},$e=Pe,Ne=(a("46d4"),Object(Z["a"])($e,ke,De,!1,null,"1ff39d22",null)),Le=Ne.exports,Ie=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("div",{staticClass:"mb-3"},[t._v(" "+t._s(t.vehicleTitle||t.$t("main.vehicle.fallbackName"))+" ")]),a("VehicleSoc",t._b({on:{"target-soc-updated":t.targetSocUpdated}},"VehicleSoc",t.vehicleSocProps,!1)),a("VehicleSubline",t._b({staticClass:"my-1",on:{"target-time-updated":t.setTargetTime,"target-time-removed":t.removeTargetTime}},"VehicleSubline",t.vehicleSubline,!1))],1)},Ee=[],Ae={methods:{collectProps:function(t){let e={};for(var a in t.props)e[a]=this[a];return e}}},Be=function(){var t,e,a=this,i=a.$createElement,s=a._self._c||i;return s("div",{staticClass:"vehicle-soc"},[s("div",{staticClass:"progress"},[s("div",{staticClass:"progress-bar",class:(t={"progress-bar-striped":a.charging,"progress-bar-animated":a.charging},t[a.progressColor]=!0,t),style:{width:a.vehicleSoCDisplayWidth+"%"},attrs:{role:"progressbar"}},[a._v(" "+a._s(a.vehicleSoCDisplayValue)+" ")]),a.remainingSoCWidth>0&&a.enabled?s("div",{staticClass:"progress-bar",class:(e={},e[a.progressColor]=!0,e["bg-muted"]=!0,e),style:{width:a.remainingSoCWidth+"%",transition:"none"},attrs:{role:"progressbar"}}):a._e()]),s("div",{staticClass:"target",class:{"target--slider-hidden":a.allowSliderHiding&&100===a.visibleTargetSoC}},[s("div",{staticClass:"target-label d-flex align-items-center justify-content-center",style:{left:a.visibleTargetSoC+"%"}},[a._v(" "+a._s(a.visibleTargetSoC)+"% ")]),s("input",{staticClass:"target-slider",attrs:{type:"range",min:"0",max:"100",step:"5"},domProps:{value:a.visibleTargetSoC},on:{input:a.movedTargetSoC,mousedown:a.changeTargetSoCStart,touchstart:a.changeTargetSoCStart,mouseup:a.changeTargetSoCEnd,touchend:a.changeTargetSoCEnd}})])])},je=[],Me={name:"VehicleSoc",props:{connected:Boolean,vehiclePresent:Boolean,vehicleSoC:Number,enabled:Boolean,charging:Boolean,minSoC:Number,targetSoC:Number},data:function(){return{selectedTargetSoC:null,allowSliderHiding:!1,interactionStartScreenY:null}},computed:{vehicleSoCDisplayWidth:function(){return this.vehiclePresent&&this.vehicleSoC>=0?this.vehicleSoC:100},vehicleSoCDisplayValue:function(){if(!this.vehiclePresent||!this.vehicleSoC||this.vehicleSoC<0){let t=this.$t("main.vehicleSoC.disconnected");return this.charging?t=this.$t("main.vehicleSoC.charging"):this.enabled?t=this.$t("main.vehicleSoC.ready"):this.connected&&(t=this.$t("main.vehicleSoC.connected")),t}let t=this.vehicleSoC;return t>=10&&(t+="%"),t},progressColor:function(){return this.connected?this.minSoCActive?"bg-danger":"bg-primary":"bg-light border"},minSoCActive:function(){return this.minSoC>0&&this.vehicleSoCthis.vehicleSoC?this.visibleTargetSoC-this.vehicleSoC:null},visibleTargetSoC:function(){return Number(this.selectedTargetSoC||this.targetSoC)}},watch:{targetSoC:function(){this.selectedTargetSoC=this.targetSoC}},mounted:function(){setTimeout(()=>{this.allowSliderHiding=!0},1e3)},methods:{changeTargetSoCStart:function(t){const e=t.screenY||t.changedTouches[0].screenY;this.interactionStartScreenY=e},changeTargetSoCEnd:function(t){const e=t.screenY||t.changedTouches[0].screenY,a=Math.abs(e-this.interactionStartScreenY);if(a>80)return t.preventDefault(),t.target.value=this.targetSoC,this.selectedTargetSoC=this.targetSoC,!1;t.target.value!==this.targetSoC&&this.$emit("target-soc-updated",t.target.value)},movedTargetSoC:function(t){const e=20;return t.target.valuenew Date;this.targetChargeEnabled&&e&&(t=new Date(this.targetTime)),this.selectedDay=this.fmtDayString(t),this.selectedTime=this.fmtTimeString(t)},dayOptions:function(){const t=[],e=new Date,a=[this.$t("main.targetCharge.today"),this.$t("main.targetCharge.tomorrow")];for(let i=0;i<7;i++){const s=e.toLocaleDateString("default",{month:"short",day:"numeric"}),n=a[i]||e.toLocaleDateString("default",{weekday:"long"});t.push({value:e.toISOString().split("T")[0],name:`${s} (${n})`}),e.setDate(e.getDate()+1)}return t},minTime:function(){return(new Date).toISOString().split("T")[1].slice(0,-8)},setTargetTime:function(){this.$emit("target-time-updated",this.selectedTargetTime)},removeTargetTime:function(){this.$emit("target-time-removed")}}},Ge=Ke,Ze=Object(Z["a"])(Ge,He,Oe,!1,null,null,null),qe=Ze.exports,Ye={name:"VehicleSubline",components:{TargetCharge:qe},mixins:[Ae],props:{id:Number,vehicleSoC:Number,minSoC:Number,targetTime:String,targetTimeActive:Boolean,targetTimeHourSuggestion:Number,targetSoC:Number},computed:{minSoCActive:function(){return this.minSoC>0&&this.vehicleSoC=0?a("div",{staticClass:"col-6 col-sm-3 col-lg-2 mt-3"},[a("div",{staticClass:"mb-2 value"},[t._v(t._s(t.$t("main.loadpointDetails.vehicleRange")))]),a("h3",{staticClass:"value"},[t._v(" "+t._s(Math.round(t.vehicleRange))+" "),a("small",{staticClass:"text-muted"},[t._v("km")])])]):a("div",{staticClass:"col-6 col-sm-3 col-lg-2 mt-3"},[a("div",{staticClass:"mb-2 value"},[t._v(t._s(t.$t("main.loadpointDetails.duration")))]),a("h3",{staticClass:"value"},[t._v(" "+t._s(t.fmtShortDuration(t.chargeDurationInterpolated))+" "),a("small",{staticClass:"text-muted"},[t._v(t._s(t.fmtShortDurationUnit(t.chargeDurationInterpolated)))])])]),t.vehiclePresent?a("div",{staticClass:"col-6 col-sm-3 col-lg-2 mt-3"},[a("div",{staticClass:"mb-2 value"},[t._v(t._s(t.$t("main.loadpointDetails.remaining")))]),a("h3",{staticClass:"value"},[t._v(" "+t._s(t.fmtShortDuration(t.chargeRemainingDurationInterpolated))+" "),a("small",{staticClass:"text-muted"},[t._v(t._s(t.fmtShortDurationUnit(t.chargeRemainingDurationInterpolated,!0)))])])]):t._e()])])},na=[],oa=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"root position-relative",class:"direction-"+t.direction},[a("shopicon-options-filled",{staticClass:"dots dots-back"}),a("shopicon-options-filled",{staticClass:"dots dots-front position-absolute start-0 top-0"})],1)},ra=[],la=(a("3d57"),{name:"WaitingDots",props:{direction:{type:String,default:"up"}}}),ca=la,da=(a("c5c7"),Object(Z["a"])(ca,oa,ra,!1,null,"60c12baf",null)),ua=da.exports,ma={name:"LoadpointDetails",components:{WaitingDots:ua},mixins:[rt],props:{chargedEnergy:Number,chargeDuration:Number,chargeRemainingDuration:Number,chargePower:Number,climater:String,vehiclePresent:Boolean,vehicleRange:Number,activePhases:Number,phaseRemaining:Number,phaseAction:String,pvRemaining:Number,pvAction:String,charging:Boolean},data(){return{tickerHandler:null,phaseRemainingInterpolated:this.phaseRemaining,pvRemainingInterpolated:this.pvRemaining,chargeDurationInterpolated:this.chargeDuration,chargeRemainingDurationInterpolated:this.chargeRemainingDuration}},computed:{phaseTooltip(){return["scale1p","scale3p"].includes(this.phaseAction)?this.$t("main.loadpointDetails.tooltip.phases."+this.phaseAction,{remaining:this.fmtShortDuration(this.phaseRemainingInterpolated,!0)}):this.$t(`main.loadpointDetails.tooltip.phases.charge${this.activePhases}p`)},phaseTimerActive(){return this.phaseRemainingInterpolated>0&&["scale1p","scale3p"].includes(this.phaseAction)},pvTimerActive(){return this.pvRemainingInterpolated>0&&["enable","disable"].includes(this.pvAction)},phaseTimerVisible(){return!(!this.phaseTimerActive||this.pvTimerActive)||!(!this.phaseTimerActive||!this.pvTimerActive)&&this.phaseRemainingInterpolated0&&this.phaseRemainingInterpolated--,this.pvRemainingInterpolated>0&&this.pvRemainingInterpolated--,this.chargeDurationInterpolated>0&&this.charging&&this.chargeDurationInterpolated++,this.chargeRemainingDurationInterpolated>0&&this.charging&&this.chargeRemainingDurationInterpolated--}}},pa=ma,ha=Object(Z["a"])(pa,sa,na,!1,null,null,null),ga=ha.exports,va={name:"Loadpoint",components:{LoadpointDetails:ga,Mode:Le,Vehicle:ia},mixins:[rt,Ae],props:{id:Number,single:Boolean,title:String,mode:String,targetSoC:Number,remoteDisabled:Boolean,remoteDisabledSource:String,chargeDuration:Number,charging:Boolean,connected:Boolean,enabled:Boolean,vehicleTitle:String,vehicleSoC:Number,vehiclePresent:Boolean,vehicleRange:Number,minSoC:Number,targetTime:String,targetTimeActive:Boolean,targetTimeHourSuggestion:Number,vehicleProviderLoggedIn:Boolean,vehicleProviderLoginPath:String,vehicleProviderLogoutPath:String,chargePower:Number,chargedEnergy:Number,climater:String,chargeRemainingDuration:Number,phases:Number,minCurrent:Number,maxCurrent:Number,activePhases:Number,chargeCurrent:Number,vehicleCapacity:Number,connectedDuration:Number,chargeCurrents:Array,chargeConfigured:Boolean,chargeRemainingEnergy:Number,phaseAction:String,phaseRemaining:Number,pvRemaining:Number,pvAction:String},computed:{details:function(){return this.collectProps(ga)},vehicle:function(){return this.collectProps(ia)}},methods:{apiPath:function(t){return"loadpoints/"+this.id+"/"+t},setTargetMode:function(t){m.post(this.apiPath("mode")+"/"+t)},setTargetSoC:function(t){m.post(this.apiPath("targetsoc")+"/"+t)},setTargetTime:function(t){const e=`${this.fmtDayString(t)}T${this.fmtTimeString(t)}:00`;m.post(this.apiPath("targetcharge")+"/"+this.targetSoC+"/"+e)},removeTargetTime:function(){m.delete(this.apiPath("targetcharge"))}}},fa=va,ba=Object(Z["a"])(fa,xe,Te,!1,null,null,null),Ca=ba.exports,_a={name:"Site",components:{Loadpoint:Ca,Energyflow:Se},mixins:[rt,Ae],props:{loadpoints:Array,gridConfigured:Boolean,gridPower:Number,homePower:Number,pvConfigured:Boolean,pvPower:Number,batteryConfigured:Boolean,batteryPower:Number,batterySoC:Number,gridCurrents:Array,prioritySoC:Number,siteTitle:String},computed:{energyflow:function(){return this.collectProps(Se)},activeLoadpointsCount:function(){return this.loadpoints.filter(t=>t.chargePower>0).length},loadpointsPower:function(){return this.loadpoints.reduce((t,e)=>(t+=e.chargePower||0,t),0)}}},wa=_a,ya=Object(Z["a"])(wa,Ft,Kt,!1,null,null,null),Sa=ya.exports,xa={name:"Main",components:{Site:Sa},data:function(){return this.$root.$data.store},computed:{configured:function(){const t=window.evcc.configured;return t==window.evcc.configured||!isNaN(parseInt(t))&&parseInt(t)>0}}},Ta=xa,ka=Object(Z["a"])(Ta,Ht,Ot,!1,null,null,null),Da=ka.exports,Pa=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"container"},[a("div",{staticClass:"row mt-4 border-bottom"},[a("div",{staticClass:"col-12"},[a("p",{staticClass:"h1"},[t._v(t._s(t.title||"Home"))])])]),a("div",{staticClass:"row h5"},[a("div",{staticClass:"col-md-4"}),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Netzzähler: "),t.gridConfigured?a("span",{staticClass:"text-primary"},[t._v("✓")]):a("span",{staticClass:"text-primary"},[t._v("—")])]),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" PV Zähler: "),t.pvConfigured?a("span",{staticClass:"text-primary"},[t._v("✓")]):a("span",{staticClass:"text-primary"},[t._v("—")])]),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Batteriezähler: "),t.batteryConfigured?a("span",{staticClass:"text-primary"},[t._v("✓")]):a("span",{staticClass:"text-primary"},[t._v("—")])])]),t._l(t.loadpoints,(function(e,i){return a("div",{key:i,attrs:{id:"loadpoint-"+i,loadpoint:e}},[a("div",{staticClass:"row mt-4 border-bottom"},[a("div",{staticClass:"col-12"},[a("p",{staticClass:"h1"},[t._v(t._s(e.title||"Ladepunkt"))])])]),a("div",{staticClass:"row h5"},[a("div",{staticClass:"col-md-4"}),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Ladezähler: "),e.chargeConfigured?a("span",{staticClass:"text-primary"},[t._v("✓")]):a("span",{staticClass:"text-primary"},[t._v("—")])]),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Phasen: "),a("span",{staticClass:"text-primary"},[t._v(t._s(e.phases)+"p")])]),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Min. Strom: "),a("span",{staticClass:"text-primary"},[t._v(t._s(e.minCurrent)+"A")])]),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Max. Strom: "),a("span",{staticClass:"text-primary"},[t._v(t._s(e.maxCurrent)+"A")])])]),a("div",{staticClass:"row h5"},[a("div",{staticClass:"col-md-4"}),a("div",{staticClass:"col-md-8 h2"},[t._m(0,!0),a("div",{staticClass:"row h5"},[a("div",{staticClass:"col-6 py-3"},[t._v(" Modell: "),a("span",{staticClass:"text-primary"},[t._v(t._s(e.vehicleTitle||"—"))])]),a("div",{staticClass:"col-6 py-3"},[t._v(" Kapazität: "),a("span",{staticClass:"text-primary"},[t._v(t._s(e.vehicleCapacity)+"kWh")])])])])])])}))],2)},$a=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"row py-3 h2 border-bottom"},[a("div",{staticClass:"col-12"},[t._v("Fahrzeug")])])}],Na={name:"Config",data:function(){return this.$root.$data.store.state}},La=Na,Ia=Object(Z["a"])(La,Pa,$a,!1,null,null,null),Ea=Ia.exports;i["a"].use(Wt["a"]);const Aa=[{path:"/",component:Da},{path:"/config",component:Ea}];var Ba=new Wt["a"]({routes:Aa,linkExactActiveClass:"active"}),ja=a("a925"),Ma={header:{docs:"Dokumentation",blog:"Blog",github:"GitHub",login:"Anmeldungen"},footer:{version:{versionShort:"v{installed}",versionLong:"Version {installed}",availableShort:"Update",availableLong:"Update verfügbar",modalTitle:"Update verfügbar",modalUpdateStarted:"Nach der Aktualisierung wird evcc neu gestartet.",modalInstalledVersion:"Aktuell installierte Version",modalNoReleaseNotes:"Keine Releasenotes verfügbar. Mehr Informationen zur neuen Version findest du hier:",modalCancel:"Abbrechen",modalUpdate:"Aktualisieren",modalUpdateNow:"Jetzt aktualisieren",modalDownload:"Download",modalUpdateStatusStart:"Aktualisierung gestartet: ",modalUpdateStatusFailed:"Aktualisierung nicht möglich: "},savings:{footerShort:"{percent}% Sonne",footerLong:"{percent}% Sonnenenergie",modalTitleShort:"{total} kWh geladen · {percent}% Sonne",modalTitleLong:"{total} kWh geladen · {percent}% Sonnenenergie",modalChartGrid:"Netz {grid} kWh",modalChartSelf:"Sonne {self} kWh",modalSavingsPrice:"Effektiver Energiepreis",modalSavingsTotal:"Ersparnis gegenüber Netzbezug",modalExplaination:"Berechnung",modalExplainationGrid:"Netz {gridPrice}",modalExplainationFeedIn:"Einspeisung {feedInPrice}",modalServerStart:"Seit Serverstart {since}.",modalNoData:"noch nicht geladen",experimentalLabel:"experimentell",experimentalText:"Unplausible Werte? Fragen zur Ansicht? Meld dich gerne in den"},sponsor:{thanks:"Danke für deine Unterstützung, {sponsor}! Das hilft uns bei der Weiterentwicklung.",confetti:"Lust auf etwas Sponsor-Konfetti?",supportUs:"Wir möchten effizientes Zuhause-Laden zum Standard für möglichst viele Menschen machen. Helfe uns indem du die Weiterentwicklung und Pflege des Projekts unterstützt.",sticker:"...oder evcc Sticker?",confettiPromise:"Es gibt auch Sticker und digitales Konfetti ;)",becomeSponsor:"Werde jetzt GitHub Sponsor"}},notifications:{modalTitle:"Meldungen",dismissAll:"Meldungen entfernen"},main:{energyflow:{noEnergy:"Kein Energiefluss",homePower:"Verbrauch",pvProduction:"Erzeugung",loadpoints:"Ladepunkt | Ladepunkt | {count} Ladepunkte",battery:"Batterie",batteryCharge:"Batterie laden",batteryDischarge:"Batterie entladen",gridImport:"Netzbezug",selfConsumption:"Eigenverbrauch",pvExport:"Einspeisung"},mode:{title:"Modus",stop:"Stop",now:"Sofort",minpvShort:"Min",minpvLong:"Min + PV",pvShort:"PV",pvLong:"Nur PV"},loadpoint:{fallbackName:"Ladepunkt",remoteDisabledSoft:"{source}: Adaptives PV-Laden deaktiviert",remoteDisabledHard:"{source}: Deaktiviert"},vehicle:{fallbackName:"Fahrzeug"},vehicleSoC:{disconnected:"getrennt",charging:"lädt",ready:"bereit",connected:"verbunden"},vehicleSubline:{mincharge:"Mindestladung bis {soc}%"},provider:{login:"anmelden",logout:"abmelden"},targetCharge:{inactiveLabel:"Zielzeit",activeLabel:"bis {time} Uhr",modalTitle:"Zielzeit festlegen",description:"Wann soll das Fahrzeug auf {targetSoC}% geladen sein?",today:"heute",tomorrow:"morgen",targetIsInThePast:"Zeitpunkt liegt in der Vergangenheit.",remove:"Keine Zielzeit",activate:"Zielzeit aktivieren",experimentalLabel:"experimentell",experimentalText:"\n Diese Funktion ist in einem frühen Stadium. Der Algorithmus ist noch\n nicht perfekt. Die Zielzeit wird aktuell nicht persistiert - das\n heißt sie geht beim Neustart verloren. Verlasse dich also noch nicht\n zu sehr auf diese Funktion. Wir freuen uns aber über deine\n Erfahrungen und Verbessungsvorschläge in den\n "},loadpointDetails:{power:"Leistung",vehicleRange:"Reichweite",charged:"Geladen",duration:"Dauer",remaining:"Restzeit",tooltip:{phases:{scale1p:"Herunterschalten auf einphasig in {remaining}.",scale3p:"Hochschalten auf dreiphasig in {remaining}.",charge1p:"Lädt einphasig.",charge2p:"Lädt zweiphasig.",charge3p:"Lädt dreiphasig."},pv:{enable:"Überschuss verfügbar. Ladung startet in {remaining}.",disable:"Zu wenig Überschuss. Ladung pausiert in {remaining}."}}}}},Ra={header:{docs:"Documentation",blog:"Blog",github:"GitHub",login:"Logins"},footer:{version:{versionShort:"v{installed}",versionLong:"Version {installed}",availableShort:"update",availableLong:"update available",modalTitle:"Update available",modalUpdateStarted:"Evcc will restart after the update..",modalInstalledVersion:"Currently installed version",modalNoReleaseNotes:"No release notes available. More information about the new version can be found here:",modalCancel:"Cancel",modalUpdate:"Update",modalUpdateNow:"Update now",modalDownload:"Download",modalUpdateStatusStart:"Update started: ",modalUpdateStatusFailed:"Update failed: "},savings:{footerShort:"{percent}% solar",footerLong:"{percent}% solar energy",modalTitleShort:"{total} kWh charged · {percent}% solar",modalTitleLong:"{total} kWh charged · {percent}% solar energy",modalChartGrid:"Grid energy {grid} kWh",modalChartSelf:"Solar energy {self} kWh",modalSavingsPrice:"Effective energy price",modalSavingsTotal:"Savings compared to grid",modalExplaination:"Calculation",modalExplainationGrid:"grid tariff {gridPrice}",modalExplainationFeedIn:"feed-in rate {feedInPrice}",modalServerStart:"since server start {since}.",modalNoData:"nothing charged yet",experimentalLabel:"experimental",experimentalText:"Implausible values? Questions about this view? Feel free to join our "},sponsor:{thanks:"Thanks for your support, {sponsor}! It helps us with the further development.",confetti:"Ready for some sponsor confetti?",supportUs:"We want to make efficient home charging the standard for as many people as possible. Help us by supporting the further development and maintenance of the project.",sticker:"...or evcc stickers?",confettiPromise:"There will be stickers and digital confetti ;)",becomeSponsor:"Become a GitHub Sponsor"}},notifications:{modalTitle:"Notifications",dismissAll:"Dismiss all"},main:{energyflow:{noEnergy:"No Energyflow",homePower:"Consumption",loadpoints:"Loadpoint | Loadpoint | {count} Loadpoints",pvProduction:"Production",battery:"Battery",batteryCharge:"Battery charge",batteryDischarge:"Battery discharge",gridImport:"Grid import",selfConsumption:"Self consumption",pvExport:"Grid export"},mode:{title:"Mode",stop:"Stop",now:"Now",minpvShort:"Min",minpvLong:"Min + PV",pvShort:"PV",pvLong:"PV only"},loadpoint:{fallbackName:"Loadpoint",remoteDisabledSoft:"{source}: adaptive PV charging disabled",remoteDisabledHard:"{source}: disabled"},vehicle:{fallbackName:"Vehicle"},vehicleSoC:{disconnected:"disconnected",charging:"charging",ready:"ready",connected:"connected"},vehicleSubline:{mincharge:"minimum charging to {soc}%"},provider:{login:"login",logout:"logout"},targetCharge:{inactiveLabel:"Target time",activeLabel:"until {time}",modalTitle:"Set Target Time",description:"When should the vehicle be charged to {targetSoC}%?",today:"today",tomorrow:"tomorrow",targetIsInThePast:"The chosen time is in the past.",remove:"Remove",activate:"Activate",experimentalLabel:"experimental",experimentalText:"\n This function is at an early stage.\n The algorithm is not perfect yet.\n The target time is currently not persisted - this means, it will be lost when your server restarts.\n So do not rely too much on this function.\n However, we look forward to your experiences and suggestions for improvement in the\n "},loadpointDetails:{power:"Power",vehicleRange:"Range",charged:"Charged",duration:"Duration",remaining:"Remaining",tooltip:{phases:{scale1p:"Switching to single-phase in {remaining}.",scale3p:"Switching to three-phase in {remaining}.",charge1p:"Single-phase charging.",charge2p:"Two-phase charging.",charge3p:"Three-phase charging."},pv:{enable:"Solar available. Resume charging in {remaining}.",disable:"Not enough solar. Pause charging in {remaining}."}}}}},Ua={header:{docs:"Documentazione",blog:"Blog",github:"GitHub",login:"Iscrizioni"},footer:{version:{version:"versione",availableShort:"aggiornamento",availableLong:"aggiornamento disponibile",modalTitle:"Aggiornamento disponibile",modalUpdateStarted:"Evcc ripartirà dopo l'aggiornamento..",modalInstalledVersion:"Versione correntemente installata",modalNoReleaseNotes:"Non ci sono note di rilascio disponibili. Altre informazioni circa la nuova versione si trovano qui:",modalCancel:"Cancella",modalUpdate:"Aggiorna",modalUpdateNow:"Aggiorna ora",modalDownload:"Download",modalUpdateStatusStart:"Aggiornamento iniziato: ",modalUpdateStatusFailed:"Aggiornamento fallito: "},sponsor:{sponsoredShort:"grazie",sponsoredLong:"grazie {sponsor}",supportProjectShort:"supporto",supportProjectLong:"supporta questo progetto"}},notifications:{modalTitle:"Notifiche",dismissAll:"Rimuovi tutte"},main:{energyflow:{noEnergy:"No Energyflow",homePower:"Consumption",pvProduction:"Produzione",battery:"Batteria",batteryCharge:"Battery charge",batteryDischarge:"Battery discharge",gridImport:"Grid import",selfConsumption:"Self consumption",pvExport:"Grid export"},mode:{title:"Modalità",stop:"Stop",now:"Ora",minpvShort:"Min",minpvLong:"Min + FV",pvShort:"FV",pvLong:"Solo FV"},loadpoint:{fallbackName:"Punto di carica",remoteDisabledSoft:"{source}: Ricarica FV adattiva disabilitata",remoteDisabledHard:"{source}: Disabilitato"},vehicle:{fallbackName:"Veicolo"},vehicleSoC:{disconnected:"disconesso",charging:"carica",ready:"pronto",connected:"collegato"},vehicleSubline:{mincharge:"carica minima fino a {soc}%"},provider:{login:"accedere",logout:"disconnettersi"},loadpointDetails:{power:"Potenza",vehicleRange:"Autonomia",charged:"Ricaricato",duration:"Duarata",remaining:"Rimanenti"}}};function za(){const t=void 0!==navigator.languages?navigator.languages[0]:navigator.language;if(!t)return;const e=t.trim().split(/-|_/)[0];return e}i["a"].use(ja["a"]);var Va=new ja["a"]({locale:za(),fallbackLocale:"en",messages:{de:Ma,en:Ra,it:Ua}}),Wa=(a("096e"),a("e37d"));Wa["a"].options.offset=[0,10],Wa["a"].options.themes.tooltip.triggers=["click","focus"],i["a"].use(Wa["a"]),i["a"].use(s["a"]),window.app=new i["a"]({el:"#app",router:Ba,i18n:Va,data:{store:Lt,notifications:[]},methods:{raise:function(t){console[t.type](t);const e=new Date,a=this.notifications[0];a&&a.message===t.message?(a.count++,a.time=e):this.notifications=[{...t,count:1,time:e},...this.notifications]},clear:function(){this.notifications=[]},error:function(t){t.type="error",this.raise(t)},warn:function(t){t.type="warn",this.raise(t)}},render:function(t){return t(Vt,{props:{notifications:this.notifications}})}}),window.setInterval((function(){m.get("health").catch((function(){window.app.error({message:"Server unavailable"})}))}),5e3)},abbc:function(t,e,a){},b19f:function(t,e,a){},c126:function(t,e,a){"use strict";a("0501")},c1a8:function(t,e,a){"use strict";a("dbaf")},c5c7:function(t,e,a){"use strict";a("0544")},dbaf:function(t,e,a){},ec98:function(t,e,a){},ed92:function(t,e,a){}}); -//# sourceMappingURL=index.e5e2e523.js.map \ No newline at end of file +(function(t){function e(e){for(var i,o,r=e[0],l=e[1],c=e[2],u=0,m=[];ut,t=>{const e=t.config.baseURL+t.config.url,a=`${t.message}: API request failed ${e}`;window.app.error({message:a})});var m=u,p=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"app d-flex flex-column justify-content-between overflow-hidden"},[a("div",{staticClass:"flex-grow-1 d-flex flex-column justify-content-between"},[a("nav",{staticClass:"navbar navbar-expand-lg navbar-dark bg-dark"},[a("div",{staticClass:"container"},[a("a",{staticClass:"navbar-brand",attrs:{href:"https://evcc.io/",target:"_blank"}},[a("Logo",{staticClass:"logo"})],1),a("div",{staticClass:"d-flex flex-grow-1 justify-content-end"},[a("Notifications",{attrs:{notifications:t.notifications}}),t._m(0)],1),a("div",{staticClass:"collapse navbar-collapse flex-grow-0",attrs:{id:"navbarNavAltMarkup"}},[a("ul",{staticClass:"navbar-nav"},[t.providerLogins.length>0?a("li",{staticClass:"nav-item dropdown"},[a("a",{staticClass:"nav-link dropdown-toggle",attrs:{"data-bs-toggle":"dropdown",href:"#",role:"button","aria-expanded":"false"}},[t._v(t._s(t.$t("header.login"))+" "),t.logoutCount>0?a("span",{staticClass:"badge bg-secondary"},[t._v(t._s(t.logoutCount))]):t._e()]),a("ul",{staticClass:"dropdown-menu"},t._l(t.providerLogins,(function(e){return a("li",{key:e.title,staticClass:"dropdown-item"},[a("button",{staticClass:"dropdown-item",attrs:{type:"button"},on:{click:function(a){return t.handleProviderAuthorization(e)}}},[t._v(" "+t._s(e.title)+" "+t._s(t.$t(e.loggedIn?"main.provider.logout":"main.provider.login"))+" ")])])})),0)]):t._e(),a("li",{staticClass:"nav-item"},[a("a",{staticClass:"nav-link",attrs:{href:"https://docs.evcc.io/blog/",target:"_blank"}},[t._v(" "+t._s(t.$t("header.blog"))+" ")])]),a("li",{staticClass:"nav-item"},[a("a",{staticClass:"nav-link",attrs:{href:"https://docs.evcc.io/docs/Home/",target:"_blank"}},[t._v(" "+t._s(t.$t("header.docs"))+" ")])]),a("li",{staticClass:"nav-item"},[a("a",{staticClass:"nav-link",attrs:{href:"https://github.com/evcc-io/evcc",target:"_blank"}},[t._v(" "+t._s(t.$t("header.github"))+" ")])])])])])]),a("router-view",{staticClass:"flex-grow-1 d-flex flex-column justify-content-stretch"})],1),a("Footer",{attrs:{version:t.version,sponsor:t.sponsor,savings:t.savings}})],1)},h=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("button",{staticClass:"navbar-toggler",attrs:{type:"button","data-bs-toggle":"collapse","data-bs-target":"#navbarNavAltMarkup","aria-controls":"navbarNavAltMarkup","aria-expanded":"false","aria-label":"Toggle navigation"}},[a("span",{staticClass:"navbar-toggler-icon"})])}],g=a("ad3d"),v=a("ecee"),f=a("8475"),b=a("39f0"),C=a("8718"),_=a("7c8d"),w=a("c6b3"),y=a("aeda"),S=a("5d61"),x=a("5dae"),T=a("8560"),k=a("af2b"),D=a("dac1"),P=a("cca2"),$=a("eb9d"),N=a("f303"),L=a("7116"),I=a("fdca"),E=a("6023"),A=a("91fb"),B=a("184c"),j=a("ba01"),M=a("a17a"),R=a("28d3"),U=a("f15f"),z=a("6c88"),V=a("adbc"),W=a("a819"),H=a("23dc");v["c"].add(S["faAngleDown"],y["faAngleUp"],f["faBatteryEmpty"],b["faBatteryFull"],C["faBatteryHalf"],_["faBatteryQuarter"],w["faBatteryThreeQuarters"],j["faBox"],U["faCar"],W["faAngleDoubleLeft"],H["faAngleDoubleRight"],x["faClock"],V["faExclamationCircle"],T["faExclamationTriangle"],B["faGift"],M["faHome"],R["faWrench"],E["faHeart"],A["faHeart"],z["faSquare"],k["faSun"],D["faSun"],P["faInfoCircle"],$["faFlask"],N["faTemperatureHigh"],L["faTemperatureLow"],I["faThermometerHalf"]),i["a"].component("fa-icon",g["a"]);var O=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("svg",{attrs:{viewBox:"0 0 122 35",xmlns:"http://www.w3.org/2000/svg","fill-rule":"evenodd","clip-rule":"evenodd","stroke-linejoin":"round","stroke-miterlimit":"2"}},[a("path",{attrs:{d:"M13.082 29.071a12.384 12.384 0 01-9-3.42 12.192 12.192 0 01-3.54-9.12v-.64a15.394 15.394 0 011.47-6.83 10.825 10.825 0 014.17-4.64 11.64 11.64 0 016.15-1.63 10.45 10.45 0 018.21 3.26c2 2.194 3 5.297 3 9.31v2.76H7.382a6.348 6.348 0 002 4 5.997 5.997 0 004.16 1.49 7.305 7.305 0 006.1-2.84l3.31 3.73a10 10 0 01-4.13 3.39 13.309 13.309 0 01-5.74 1.18zm-.77-20.84a4.216 4.216 0 00-3.26 1.37 7.141 7.141 0 00-1.6 3.91h9.39v-.55a5.005 5.005 0 00-1.22-3.49 4.304 4.304 0 00-3.31-1.24zM36.452 20.331l4.7-17.09h7l-8.48 25.36h-6.44l-8.52-25.36h7l4.74 17.09zM85.542 23.611a4.444 4.444 0 003-1 3.638 3.638 0 001.22-2.75h6.32a8.668 8.668 0 01-1.4 4.73 9.145 9.145 0 01-3.79 3.3 11.736 11.736 0 01-5.29 1.19 10.912 10.912 0 01-8.54-3.46c-2.087-2.3-3.13-5.483-3.13-9.55v-.45c0-3.9 1.033-7.016 3.1-9.35a10.868 10.868 0 018.51-3.5c2.791-.134 5.524.84 7.6 2.71a9.626 9.626 0 012.9 7.21h-6.3a4.663 4.663 0 00-1.2-3.22 4.005 4.005 0 00-3.08-1.24 4.068 4.068 0 00-3.56 1.73c-.8 1.15-1.2 3-1.2 5.6v.7c0 2.61.39 4.49 1.19 5.63a4.092 4.092 0 003.65 1.72zM110.422 23.611a4.454 4.454 0 003-1 3.63 3.63 0 001.21-2.75h6.33a8.668 8.668 0 01-1.4 4.73 9.143 9.143 0 01-3.73 3.3 11.76 11.76 0 01-5.29 1.18 10.912 10.912 0 01-8.54-3.46c-2.087-2.3-3.13-5.483-3.13-9.55v-.45c0-3.9 1.033-7.016 3.1-9.35a10.85 10.85 0 018.57-3.49 10.575 10.575 0 017.6 2.71 9.598 9.598 0 012.91 7.21h-6.33a4.651 4.651 0 00-1.21-3.22 4.492 4.492 0 00-6.64.49c-.8 1.15-1.21 3-1.21 5.6v.7c0 2.607.4 4.484 1.2 5.63a4.09 4.09 0 003.56 1.72z",fill:"#fff","fill-rule":"nonzero"}}),a("path",{attrs:{d:"M58.462.751h9.22l-6.14 12.3h6.15l-11.53 21.51 2.3-15.36h-7.68l7.68-18.45z",fill:"#0fdd42","fill-rule":"nonzero"}}),a("path",{attrs:{fill:"none",d:"M-24.458-22.109h170v76h-170z"}})])},F=[],K={name:"Logo"},G=K,Z=a("2877"),q=Object(Z["a"])(G,O,F,!1,null,null,null),Y=q.exports,J=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("footer",{staticClass:"container"},[a("div",{staticClass:"py-3 py-md-5 mt-3 mt-md-5 border-top"},[a("div",{staticClass:"d-flex justify-content-between"},[a("Version",t._b({},"Version",t.version,!1)),a("Savings",t._b({attrs:{sponsor:t.sponsor}},"Savings",t.savings,!1))],1)])])},Q=[],X=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[t.newVersionAvailable?a("button",{staticClass:"btn btn-link ps-0 text-decoration-none link-dark text-nowrap",attrs:{href:"#","data-bs-toggle":"modal","data-bs-target":"#updateModal"}},[a("fa-icon",{staticClass:"icon me-2",attrs:{icon:"gift"}}),t._v("v"+t._s(t.installed)+" "),a("span",{staticClass:"d-none d-xs-inline d-sm-none text-muted text-decoration-underline"},[t._v(" "+t._s(t.$t("footer.version.availableShort"))+" ")]),a("span",{staticClass:"d-none d-sm-inline text-muted text-decoration-underline"},[t._v(" "+t._s(t.$t("footer.version.availableLong"))+" ")])],1):a("a",{staticClass:"btn btn-link ps-0 text-decoration-none link-dark text-nowrap",attrs:{href:t.releaseNotesUrl(t.installed),target:"_blank"}},[a("span",{staticClass:"d-inline d-xs-none d-sm-none"},[t._v(t._s(t.$t("footer.version.versionShort",{installed:t.installed})))]),a("span",{staticClass:"d-none d-xs-inline d-sm-inline"},[t._v(t._s(t.$t("footer.version.versionLong",{installed:t.installed})))])]),a("div",{staticClass:"modal fade",attrs:{id:"updateModal",tabindex:"-1",role:"dialog","aria-hidden":"true"}},[a("div",{staticClass:"modal-dialog modal-dialog-centered modal-dialog-scrollable",attrs:{role:"document"}},[a("div",{staticClass:"modal-content"},[a("div",{staticClass:"modal-header"},[a("h5",{staticClass:"modal-title"},[t._v(t._s(t.$t("footer.version.modalTitle")))]),a("button",{staticClass:"btn-close",attrs:{type:"button","data-bs-dismiss":"modal","aria-label":"Close"}})]),a("div",{staticClass:"modal-body"},[t.updateStarted?a("div",[a("p",[t._v(t._s(t.$t("footer.version.modalUpdateStarted")))]),a("div",{staticClass:"progress my-3"},[a("div",{staticClass:"progress-bar progress-bar-striped progress-bar-animated",style:{width:t.uploadProgress+"%"},attrs:{role:"progressbar"}})]),a("p",[t._v(t._s(t.updateStatus)+t._s(t.uploadMessage))])]):a("div",[a("p",[a("small",[t._v(" "+t._s(t.$t("footer.version.modalInstalledVersion"))+": "+t._s(t.installed)+" ")])]),t.releaseNotes?a("div",{domProps:{innerHTML:t._s(t.releaseNotes)}}):a("p",[t._v(" "+t._s(t.$t("footer.version.modalNoReleaseNotes"))+" "),a("a",{attrs:{href:t.releaseNotesUrl(t.available)}},[t._v("GitHub")]),t._v(". ")])])]),a("div",{staticClass:"modal-footer d-flex justify-content-between"},[a("button",{staticClass:"btn btn-outline-secondary",attrs:{type:"button",disabled:t.updateStarted,"data-bs-dismiss":"modal"}},[t._v(" "+t._s(t.$t("footer.version.modalCancel"))+" ")]),a("div",[t.hasUpdater?a("button",{staticClass:"btn btn-primary",attrs:{type:"button",disabled:t.updateStarted},on:{click:t.update}},[t.updateStarted?a("span",[a("span",{staticClass:"spinner-border spinner-border-sm",attrs:{role:"status","aria-hidden":"true"}}),t._v(" "+t._s(t.$t("footer.version.modalUpdate"))+" ")]):a("span",[t._v(t._s(t.$t("footer.version.modalUpdateNow")))])]):a("a",{staticClass:"btn btn-primary",attrs:{href:t.releaseNotesUrl(t.available)}},[t._v(" "+t._s(t.$t("footer.version.modalDownload"))+" ")])])])])])])])},tt=[],et={name:"Version",props:{installed:String,available:String,releaseNotes:String,commit:String,hasUpdater:Boolean,uploadMessage:String,uploadProgress:Number},data:function(){return{updateStarted:!1,updateStatus:""}},computed:{githubHashUrl:function(){return"https://github.com/evcc-io/evcc/commit/"+this.commit},newVersionAvailable:function(){return this.available&&"[[.Version]]"!=this.installed&&"0.0.1-alpha"!=this.installed&&this.available!=this.installed}},methods:{update:async function(){try{await m.post("update"),this.updateStatus=this.$t("footer.version.modalUpdateStatusStart"),this.updateStarted=!0}catch(t){this.updateStatus=this.$t("footer.version.modalUpdateStatusStart")+t}},releaseNotesUrl:function(t){return"https://github.com/evcc-io/evcc/releases/tag/"+t}}},at=et,it=(a("14fa"),Object(Z["a"])(at,X,tt,!1,null,"7872ae76",null)),st=it.exports,nt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("button",{staticClass:"btn btn-link pe-0 text-decoration-none link-dark text-nowrap",attrs:{"data-bs-toggle":"modal","data-bs-target":"#savingsModal"}},[a("span",{staticClass:"d-inline d-sm-none"},[t._v(t._s(t.$t("footer.savings.footerShort",{percent:t.percent})))]),a("span",{staticClass:"d-none d-sm-inline"},[t._v(t._s(t.$t("footer.savings.footerLong",{percent:t.percent})))]),a("fa-icon",{staticClass:"icon ms-2 text-evcc",attrs:{icon:"sun"}})],1),a("div",{ref:"modal",staticClass:"modal fade",attrs:{id:"savingsModal",tabindex:"-1",role:"dialog","aria-hidden":"true"}},[a("div",{staticClass:"modal-dialog modal-dialog-centered modal-dialog-scrollable",attrs:{role:"document"}},[a("div",{staticClass:"modal-content"},[a("div",{staticClass:"modal-header"},[a("h5",{staticClass:"modal-title"},[a("span",{staticClass:"d-block d-sm-none"},[t._v(" "+t._s(t.$t("footer.savings.modalTitleShort",{percent:t.percent,total:t.fmtKw(1e3*t.totalCharged,!0,!1)}))+" ")]),a("span",{staticClass:"d-none d-sm-block"},[t._v(" "+t._s(t.$t("footer.savings.modalTitleLong",{percent:t.percent,total:t.fmtKw(1e3*t.totalCharged,!0,!1)}))+" ")])]),a("button",{staticClass:"btn-close",attrs:{type:"button","data-bs-dismiss":"modal","aria-label":"Close"}})]),a("div",{staticClass:"modal-body py-4"},[a("div",{staticClass:"chart-container mb-3"},[a("div",{staticClass:"chart-legend d-flex flex-wrap justify-content-between mb-1"},[a("div",{staticClass:"text-nowrap"},[a("fa-icon",{staticClass:"text-evcc",attrs:{icon:"square"}}),t._v(" "+t._s(t.$t("footer.savings.modalChartSelf",{self:t.fmtKw(1e3*t.selfConsumptionCharged,!0,!1)}))+" ")],1),a("div",{staticClass:"text-nowrap"},[a("fa-icon",{staticClass:"text-grid",attrs:{icon:"square"}}),t._v(" "+t._s(t.$t("footer.savings.modalChartGrid",{grid:t.fmtKw(1e3*t.gridCharged,!0,!1)}))+" ")],1)]),a("div",{staticClass:"chart d-flex justify-content-stretch mb-1 rounded overflow-hidden"},[t.totalCharged>0?a("div",{staticClass:"chart-item chart-item--self d-flex justify-content-center text-white flex-shrink-1",style:{width:t.percent+"%"}},[a("span",{staticClass:"text-truncate"},[t._v(" "+t._s(t.percent)+"% ")])]):t._e(),t.totalCharged>0?a("div",{staticClass:"chart-item chart-item--grid d-flex justify-content-center text-white flex-shrink-1",style:{width:100-t.percent+"%"}},[a("span",{staticClass:"text-truncate"},[t._v(" "+t._s(100-t.percent)+"% ")])]):t._e(),0===t.totalCharged?a("div",{staticClass:"chart-item chart-item--no-data d-flex justify-content-center text-white w-100"},[a("span",[t._v(t._s(t.$t("footer.savings.modalNoData")))])]):t._e()])]),a("p",{staticClass:"mb-3"},[t._v(" "+t._s(t.$t("footer.savings.modalSavingsPrice"))+": "),a("strong",[t._v(t._s(t.fmtPricePerKWh(t.effectivePrice,t.currency)))]),a("br"),t._v(" "+t._s(t.$t("footer.savings.modalSavingsTotal"))+": "),a("strong",[t._v(t._s(t.fmtMoney(t.amount,t.currency)))])]),a("p",{staticClass:"small text-muted mb-3"},[a("a",{staticClass:"text-muted",attrs:{href:"https://docs.evcc.io/docs/guides/setup/#ersparnisberechnung",target:"_blank"}},[t._v(" "+t._s(t.$t("footer.savings.modalExplaination")))]),t._v(": "),a("span",{staticClass:"text-nowrap"},[t._v(" "+t._s(t.$t("footer.savings.modalExplainationGrid",{gridPrice:t.fmtPricePerKWh(t.gridPrice,t.currency)})))]),t._v(", "),a("span",{staticClass:"text-nowrap"},[t._v(" "+t._s(t.$t("footer.savings.modalExplainationFeedIn",{feedInPrice:t.fmtPricePerKWh(t.feedInPrice,t.currency)}))+" ")]),a("br"),t._v(" "+t._s(t.$t("footer.savings.modalServerStart",{since:t.fmtTimeAgo(t.secondsSinceStart())}))+" ")]),a("hr",{staticClass:"mb-4"}),a("Sponsor",{staticClass:"mb-4",attrs:{sponsor:t.sponsor}}),a("p",{staticClass:"small text-muted mb-0"},[a("strong",{staticClass:"text-primary"},[a("fa-icon",{attrs:{icon:"flask"}}),t._v(" "+t._s(t.$t("footer.savings.experimentalLabel"))+": ")],1),t._v(" "+t._s(t.$t("footer.savings.experimentalText"))+" "),a("a",{attrs:{href:"https://github.com/evcc-io/evcc/discussions/2104",target:"_blank"}},[t._v("GitHub Discussions")]),t._v(". ")])],1)])])])])},ot=[],rt={data:function(){return{fmtLimit:100,fmtDigits:1}},methods:{round:function(t,e){var a=10**e;return(Math.round(t*a)/a).toFixed(e)},fmt:function(t){return void 0===t||null===t?0:(t=Math.abs(t),t>=this.fmtLimit?this.round(t/1e3,this.fmtDigits):this.round(t,0))},fmtKw:function(t,e=!0,a=!0){const i=e?1:0,s=e?t/1e3:t;let n="";return a&&(n=e?" kW":" W"),this.$n(s,{minimumFractionDigits:i,maximumFractionDigits:i})+n},fmtUnit:function(t){return Math.abs(t)>=this.fmtLimit?"k":""},fmtDuration:function(t){if(t<=0||null==t)return"—";var e="0"+t%60,a="0"+Math.floor(t/60)%60,i=""+Math.floor(t/3600);return i.length<2&&(i="0"+i),i+":"+a.substr(-2)+":"+e.substr(-2)},fmtShortDuration:function(t=0,e=!1){if(t<=0)return"—";var a=t%60,i=Math.floor(t/60)%60,s=Math.floor(t/3600),n="";return n=s>=1?s+":"+(""+i).padStart(2,"0"):i>=1?i+":"+(""+a).padStart(2,"0"):""+a,e&&(n+=this.fmtShortDurationUnit(t)),n},fmtShortDurationUnit:function(t=0){if(t<=0)return"";var e=Math.floor(t/60)%60,a=Math.floor(t/3600);return a>=1?"h":e>=1?"m":"s"},fmtDayString:function(t){const e=""+t.getFullYear(),a=(""+(t.getMonth()+1)).padStart(2,"0"),i=(""+t.getDate()).padStart(2,"0");return`${e}-${a}-${i}`},fmtTimeString:function(t){const e=(""+t.getHours()).padStart(2,"0"),a=(""+t.getMinutes()).padStart(2,"0");return`${e}:${a}`},fmtAbsoluteDate:function(t){return new Intl.DateTimeFormat(this.$i18n.locale,{weekday:"short",hour:"numeric",minute:"numeric"}).format(t)},fmtMoney:function(t=0,e="EUR"){return this.$n(t,{style:"currency",currency:e})},fmtPricePerKWh:function(t=0,e="EUR"){let a=e,i=t,s=3;return["EUR","USD"].includes(e)&&(i*=100,a="ct",s=1),`${this.$n(i,{style:"decimal",maximumFractionDigits:s})} ${a}/kWh`},fmtTimeAgo:function(t){const e={day:864e5,hour:36e5,minute:6e4,second:1e3},a=new Intl.RelativeTimeFormat(this.$i18n.locale,{numeric:"auto"});for(var i in e)if(Math.abs(t)>e[i]||"second"==i)return a.format(Math.round(t/e[i]),i)}}},lt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return t.sponsor?a("div",[a("p",{staticClass:"mb-3"},[t._v(" "+t._s(t.$t("footer.sponsor.thanks",{sponsor:t.sponsor}))+" ")]),a("div",{staticClass:"d-flex justify-content-center flex-column"},[a("button",{ref:"confetti",staticClass:"btn btn-primary mb-2 confetti-button bg-evcc",on:{click:t.surprise}},[a("fa-icon",{staticClass:"icon me-1 solid",attrs:{icon:["fas","heart"]}}),t._v(" "+t._s(t.$t("footer.sponsor.confetti"))+" ")],1),a("a",{staticClass:"small text-muted text-center",attrs:{href:"https://evcc.io/sticker",target:"_blank"}},[t._v(" "+t._s(t.$t("footer.sponsor.sticker"))+" ")])])]):a("div",[a("p",{staticClass:"mb-3"},[t._v(" "+t._s(t.$t("footer.sponsor.supportUs"))+" ")]),a("div",{staticClass:"d-flex justify-content-center flex-column"},[a("a",{staticClass:"btn btn-outline-primary mb-2",attrs:{target:"_blank",href:"https://github.com/sponsors/andig"}},[a("fa-icon",{staticClass:"icon me-1",attrs:{icon:["far","heart"]}}),t._v(" "+t._s(t.$t("footer.sponsor.becomeSponsor"))+" ")],1),a("div",{staticClass:"small text-muted text-center"},[t._v(" "+t._s(t.$t("footer.sponsor.confettiPromise"))+" ")])])])},ct=[],dt=a("7129"),ut={name:"Sponsor",props:{sponsor:String},methods:{surprise:function(){const t=this.$refs.confetti,e=45+90*Math.random(),a=0,{top:i,height:s,left:n,width:o}=t.getBoundingClientRect(),r=(n+o/2)/window.innerWidth,l=(i+s/2)/window.innerHeight,c={x:r,y:l};Object(dt["a"])({origin:c,angle:e,particleCount:75+50*Math.random(),spread:50+50*Math.random(),drift:a,scalar:1.3,zIndex:1056,colors:["#0d6efd","#0fdd42","#408458","#4923BA","#5BC8EC","#C54482","#CC444A","#EE8437","#F7C144","#FFFD54"]})}}},mt=ut,pt=(a("357f"),Object(Z["a"])(mt,lt,ct,!1,null,"6edb9fae",null)),ht=pt.exports,gt={name:"Savings",components:{Sponsor:ht},mixins:[rt],props:{selfConsumptionPercent:Number,since:{type:Number,default:0},sponsor:String,amount:{type:Number,default:0},effectivePrice:{type:Number,default:0},totalCharged:{type:Number,default:0},gridCharged:{type:Number,default:0},selfConsumptionCharged:{type:Number,default:0},gridPrice:{type:Number},feedInPrice:{type:Number},currency:String},computed:{percent(){return Math.round(this.selfConsumptionPercent)||0}},methods:{secondsSinceStart(){return 1e3*this.since-Date.now()}}},vt=gt,ft=(a("1cf6"),Object(Z["a"])(vt,nt,ot,!1,null,"bd18982c",null)),bt=ft.exports,Ct={name:"Footer",components:{Version:st,Savings:bt},props:{version:Object,sponsor:String,savings:Object}},_t=Ct,wt=Object(Z["a"])(_t,J,Q,!1,null,null,null),yt=wt.exports,St=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("button",{directives:[{name:"show",rawName:"v-show",value:t.iconVisible,expression:"iconVisible"}],staticClass:"btn btn-link text-decoration-none link-light text-nowrap",attrs:{href:"#","data-bs-toggle":"modal","data-bs-target":"#notificationModal"}},[a("fa-icon",{class:t.iconClass,attrs:{icon:"exclamation-triangle"}})],1),a("div",{staticClass:"modal fade",attrs:{id:"notificationModal",tabindex:"-1",role:"dialog","aria-hidden":"true"}},[a("div",{staticClass:"modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable",attrs:{role:"document"}},[a("div",{staticClass:"modal-content"},[a("div",{staticClass:"modal-header"},[a("h5",{staticClass:"modal-title"},[t._v(t._s(t.$t("notifications.modalTitle")))]),a("button",{staticClass:"btn-close",attrs:{type:"button","data-bs-dismiss":"modal","aria-label":"Close"}})]),a("div",{staticClass:"modal-body"},t._l(t.notifications,(function(e,i){return a("div",{key:i},[a("small",{staticClass:"d-flex justify-content-end mt-3",attrs:{title:t.fmtAbsoluteDate(e.time)}},[t._v(" "+t._s(t.fmtTimeAgo(e.time-new Date))+" ")]),a("p",{staticClass:"d-flex align-items-baseline"},[a("fa-icon",{staticClass:"flex-grow-0 d-block",class:{"text-danger":"error"===e.type,"text-warning":"warn"===e.type},attrs:{icon:"exclamation-triangle"}}),a("span",{staticClass:"flex-grow-1 px-2 py-1 text-break"},[t._v(" "+t._s(e.message)+" ")]),e.count>1?a("span",{staticClass:"badge rounded-pill bg-secondary"},[t._v(" "+t._s(e.count)+" ")]):t._e()],1)])})),0),a("div",{staticClass:"modal-footer"},[a("button",{staticClass:"btn btn-outline-secondary",attrs:{type:"button","data-bs-dismiss":"modal","aria-label":"Close"},on:{click:t.clear}},[t._v(" "+t._s(t.$t("notifications.dismissAll"))+" ")])])])])])])},xt=[],Tt={name:"Notifications",mixins:[rt],props:{notifications:Array},computed:{iconVisible:function(){return this.notifications.length>0},iconClass:function(){return this.notifications.find(t=>"error"===t.type)?"text-danger":"text-warning"}},created:function(){this.interval=setInterval(()=>{this.$forceUpdate()},1e4)},destroyed:function(){clearTimeout(this.interval)},methods:{clear:function(){window.app&&window.app.clear()}}},kt=Tt,Dt=Object(Z["a"])(kt,St,xt,!1,null,null,null),Pt=Dt.exports;function $t(t,e,a){const s=e.shift();t[s]||i["a"].set(t,s,{}),e.length?$t(t[s],e,a):a&&"object"===typeof a&&!Array.isArray(a)?t[s]={...t[s],...a}:t[s]=a}const Nt={state:{loadpoints:[]},update:function(t){Object.keys(t).forEach((function(e){"function"===typeof window.app[e]?window.app[e]({message:t[e]}):$t(Nt.state,e.split("."),t[e])}))}};var Lt=Nt;const{protocol:It,hostname:Et,port:At,pathname:Bt}=window.location,jt=o.a.create({baseURL:It+"//"+Et+(At?":"+At:"")+Bt+"/"});jt.interceptors.response.use(t=>t,t=>{const e=t.config.baseURL+t.config.url,a=`${t.message}: API request failed ${e}`;window.app.error({message:a})});var Mt=jt,Rt={name:"App",components:{Logo:Y,Footer:yt,Notifications:Pt},props:{notifications:Array},data:function(){return{compact:!1,store:this.$root.$data.store,installedVersion:window.evcc.version,commit:window.evcc.commit}},computed:{version:function(){return{installed:this.installedVersion,available:this.store.state.availableVersion,releaseNotes:this.store.state.releaseNotes,hasUpdater:this.store.state.hasUpdater,uploadMessage:this.store.state.uploadMessage,uploadProgress:this.store.state.uploadProgress}},title:function(){return this.store.state.siteTitle},sponsor:function(){return this.store.state.sponsor},savings:function(){return{since:this.store.state.savingsSince,totalCharged:this.store.state.savingsTotalCharged,gridCharged:this.store.state.savingsGridCharged,selfConsumptionCharged:this.store.state.savingsSelfConsumptionCharged,amount:this.store.state.savingsAmount,effectivePrice:this.store.state.savingsEffectivePrice,selfConsumptionPercent:this.store.state.savingsSelfConsumptionPercent,gridPrice:this.store.state.tariffGrid,feedInPrice:this.store.state.tariffFeedIn,currency:this.store.state.currency}},logoutCount(){return this.providerLogins.filter(t=>!t.loggedIn).length},providerLogins(){return this.store.state.auth?Object.entries(this.store.state.auth.vehicles).map(([t,e])=>({title:t,loggedIn:e.authenticated,loginPath:e.uri+"/login",logoutPath:e.uri+"/logout"})):[]}},created:function(){const t=new URLSearchParams(window.location.search);this.compact=t.get("compact"),setTimeout(this.connect,0)},methods:{connect:function(){const t="WebSocket"in window;if(!t)return void window.app.error({message:"Web sockets not supported. Please upgrade your browser."});const e=window.location,a="https:"==e.protocol?"wss:":"ws:",i=a+"//"+e.hostname+(e.port?":"+e.port:"")+e.pathname+"ws",s=new WebSocket(i);s.onerror=()=>{s.close()},s.onclose=()=>{window.setTimeout(this.connect,1e3)},s.onmessage=t=>{try{var e=JSON.parse(t.data);Lt.update(e)}catch(a){window.app.error({message:`Failed to parse web socket data: ${a.message} [${t.data}]`})}}},reload(){window.location.reload()},handleProviderAuthorization:async function(t){t.loggedIn?Mt.post(t.logoutPath):Mt.post(t.loginPath).then((function(t){window.location.href=t.data.loginUri}))}},metaInfo(){return{title:this.title?"evcc | "+this.title:"evcc"}}},Ut=Rt,zt=(a("c1a8"),Object(Z["a"])(Ut,p,h,!1,null,"63bd1ae6",null)),Vt=zt.exports,Wt=a("8c4f"),Ht=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"container"},[t.configured?a("Site",t._b({},"Site",t.state,!1)):a("div",[a("div",{staticClass:"row py-5"},[a("div",{staticClass:"col12"},[a("p",{staticClass:"h1 pt-5 pb-2 border-bottom"},[t._v("Willkommen bei evcc")]),a("p",{staticClass:"lead pt-2"},[a("b",[t._v("evcc")]),t._v(" ist dient zur flexiblen Ladesteuerung von Elektrofahrzeugen. ")]),a("p",{staticClass:"pt-2"},[t._v(" Es sieht aus, als wäre Dein "),a("b",[t._v("evcc")]),t._v(" noch nicht konfiguriert. Um "),a("b",[t._v("evcc")]),t._v(" zu konfigurieren sind die folgenden Schritte notwendig: ")]),a("ol",{staticClass:"pt-2"},[a("li",[t._v(" Erzeugen einer Konfigurationsdatei mit Namen "),a("code",[t._v("evcc.yaml")]),t._v(". Die Standardkonfiguration "),a("code",[t._v("evcc.dist.yaml")]),t._v(" kann dafür als Vorlage dienen ("),a("a",{attrs:{href:"https://github.com/evcc-io/evcc/blob/master/evcc.dist.yaml"}},[t._v("Download")]),t._v("). ")]),a("li",[t._v("Konfiguration der Wallbox als "),a("code",[t._v("chargers")]),t._v(".")]),a("li",[t._v(" Konfiguration des EVU Zählers und evtl. weiterer Zähler unter "),a("code",[t._v("meters")]),t._v(". ")]),a("li",[t._v(" Konfiguration des Netzanschlusses unter "),a("code",[t._v("site")]),t._v(". In einer Site wird der Netzanschluss mit dem konfigurierten EVU Zähler ("),a("code",[t._v("meter")]),t._v(") verbunden. ")]),a("li",[t._v(" Konfiguration eines Ladepunktes unter "),a("code",[t._v("loadpoints")]),t._v(". In einem Ladepunkt wird die konfigurierte Wallbox ("),a("code",[t._v("charger")]),t._v(") mit dem Ladepunkt verbunden. ")]),a("li",[t._v(" Start von "),a("b",[t._v("evcc")]),t._v(" mit der neu erstellten Konfiguration: "),a("code",[t._v("evcc -c evcc.yaml")])])]),a("p",[t._v("Minimale Beispielkonfiguration für "),a("b",[t._v("evcc")]),t._v(":")]),a("p",[a("code",[a("pre",{staticClass:"mx-3"},[t._v(" uri: localhost:7070 # Adresse für UI\n interval: 10s # Regelintervall\n meters:\n - name: evu-zähler\n type: ... # Detailkonfiguration des EVU Zählers\n - name: ladezähler\n type: ... # Detailkonfiguration des Ladezählers (optional)\n chargers:\n - name: wallbox\n type: ... # Detailkonfiguration der Wallbox\n site:\n title: Home\n meters:\n grid: evu-zähler # EVU Zähler\n loadpoints:\n - title: Ladepunkt # ui display name\n charger: wallbox # charger\n meters:\n charge: ladezähler # Ladezählers (optional)\n ")])])]),a("p",[t._v(" Viel Spass mit "),a("b",[t._v("evcc")]),t._v("! Bei Problemen kannst Du uns auf "),a("a",{attrs:{href:"https://github.com/evcc-io/evcc/issues"}},[t._v("GitHub")]),t._v(" erreichen. ")])])])])],1)},Ot=[],Ft=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"flex-grow-1 d-flex flex-column"},[a("h3",{staticClass:"d-none d-md-block my-4"},[t._v(" "+t._s(t.siteTitle||"Home")+" ")]),a("Energyflow",t._b({},"Energyflow",t.energyflow,!1)),a("hr",{staticClass:"w-100 my-4"}),a("div",{staticClass:"flex-grow-1 d-flex justify-content-around flex-column"},[t._l(t.loadpoints,(function(e,i){return[i>0?a("hr",{key:i+"_hr",staticClass:"w-100 my-4"}):t._e(),a("Loadpoint",t._b({key:i,attrs:{id:i,single:1===t.loadpoints.length}},"Loadpoint",e,!1))]}))],2)],1)},Kt=[],Gt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("div",{staticClass:"row align-items-start align-items-md-center mt-4 energyflow",on:{click:t.toggleDetails}},[a("Visualization",{staticClass:"col-12 offset-md-1 col-md-6 offset-lg-1 col-lg-8 offset-xl-1 col-xl-6 offset-xxl-1 col-xl-8 order-md-2",attrs:{showDetails:t.showDetails,gridImport:t.gridImport,selfConsumption:t.selfConsumption,loadpoints:t.loadpointsPower,pvExport:t.pvExport,batteryCharge:t.batteryCharge,batteryDischarge:t.batteryDischarge,pvProduction:t.pvProduction,homePower:t.homePower,batterySoC:t.batterySoC,valuesInKw:t.valuesInKw}}),a("div",{staticClass:"col-12 col-sm-6 col-md-5 col-lg-3 col-xl-3 order-md-1 mt-2 mt-md-0",class:t.showDetails?"d-block":"d-none d-md-block"},[a("div",{staticClass:"d-flex justify-content-between",attrs:{"data-test-pv-production":""}},[a("span",{staticClass:"details-icon text-muted"},[a("fa-icon",{attrs:{icon:"sun"}})],1),a("span",{staticClass:"text-nowrap flex-grow-1"},[t._v(t._s(t.$t("main.energyflow.pvProduction")))]),a("span",{staticClass:"text-end text-nowrap ps-1"},[t._v(t._s(t.kw(t.pvProduction)))])]),a("div",{staticClass:"d-flex justify-content-between",attrs:{"data-test-home-power":""}},[a("span",{staticClass:"details-icon text-muted"},[a("fa-icon",{attrs:{icon:"home"}})],1),a("span",{staticClass:"text-nowrap flex-grow-1"},[t._v(t._s(t.$t("main.energyflow.homePower")))]),a("span",{staticClass:"text-end text-nowrap ps-1"},[t._v(t._s(t.kw(t.homePower)))])]),a("div",{staticClass:"d-flex justify-content-between",attrs:{"data-test-loadpoints":""}},[a("span",{staticClass:"details-icon text-muted"},[a("fa-icon",{attrs:{icon:"car"}})],1),a("span",{staticClass:"text-nowrap flex-grow-1"},[t._v(t._s(t.$tc("main.energyflow.loadpoints",t.activeLoadpointsCount,{count:t.activeLoadpointsCount})))]),a("span",{staticClass:"text-end text-nowrap ps-1"},[t._v(t._s(t.kw(t.loadpointsPower)))])]),t.batteryConfigured?a("div",{staticClass:"d-flex justify-content-between",attrs:{"data-test-battery":""}},[a("span",{staticClass:"details-icon text-muted"},[a("BatteryIcon",{attrs:{soc:t.batterySoC,charge:t.batteryCharge>0,discharge:t.batteryDischarge>0}})],1),a("span",{staticClass:"text-nowrap flex-grow-1 text-truncate"},[t.batteryCharge?a("span",[t._v(t._s(t.$t("main.energyflow.batteryCharge")))]):t.batteryDischarge?a("span",[t._v(t._s(t.$t("main.energyflow.batteryDischarge")))]):a("span",[t._v(t._s(t.$t("main.energyflow.battery")))])]),a("span",{staticClass:"text-end text-nowrap ps-1"},[t._v(" "+t._s(t.batterySoC)+"% / "+t._s(t.kw(Math.abs(t.batteryPower)))+" ")])]):t._e()]),t.showDetails?a("div",{staticClass:"col-12 col-sm-6 offset-md-6 col-md-6 offset-lg-4 col-lg-8 d-block d-md-flex order-md-3 justify-content-between mt-2"},[a("div",{staticClass:"text-nowrap d-flex d-md-block",attrs:{"data-test-grid-import":""}},[a("span",{staticClass:"color-grid details-icon"},[a("fa-icon",{attrs:{icon:"square"}})],1),a("span",{staticClass:"text-nowrap flex-grow-1"},[t._v(t._s(t.$t("main.energyflow.gridImport")))]),a("span",{staticClass:"text-end text-nowrap d-md-none"},[t._v(" "+t._s(t.kw(t.gridImport))+" ")])]),a("div",{staticClass:"text-nowrap d-flex d-md-block",attrs:{"data-test-self-consumption":""}},[a("span",{staticClass:"color-self details-icon"},[a("fa-icon",{attrs:{icon:"square"}})],1),a("span",{staticClass:"text-nowrap flex-grow-1"},[t._v(t._s(t.$t("main.energyflow.selfConsumption")))]),a("span",{staticClass:"text-end text-nowrap d-md-none"},[t._v(" "+t._s(t.kw(t.selfConsumption))+" ")])]),a("div",{staticClass:"text-nowrap d-flex d-md-block",attrs:{"data-test-pv-export":""}},[a("span",{staticClass:"color-export details-icon"},[a("fa-icon",{attrs:{icon:"square"}})],1),a("span",{staticClass:"text-nowrap flex-grow-1"},[t._v(t._s(t.$t("main.energyflow.pvExport")))]),a("span",{staticClass:"text-end text-nowrap d-md-none"},[t._v(" "+t._s(t.kw(t.pvExport))+" ")])])]):t._e()],1)])},Zt=[],qt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"visualization",class:{"visualization--ready":t.visualizationReady}},[a("div",{staticClass:"label-scale"},[a("div",{staticClass:"d-flex justify-content-start"},[a("LabelBar",t._b({},"LabelBar",t.labelBarProps("top","pvProduction"),!1),[a("fa-icon",{attrs:{icon:"sun"}})],1),a("LabelBar",t._b({},"LabelBar",t.labelBarProps("top","batteryDischarge"),!1),[a("BatteryIcon",{attrs:{soc:t.batterySoC,discharge:""}})],1),a("LabelBar",t._b({},"LabelBar",t.labelBarProps("top","gridImport"),!1),[a("GridIcon",{attrs:{import:""}})],1)],1)]),a("div",{ref:"site_progress",staticClass:"site-progress"},[a("div",{staticClass:"site-progress-bar self-consumption",style:{width:t.widthTotal(t.selfConsumptionAdjusted)}},[t.powerLabelEnoughSpace(t.selfConsumption)?a("span",{staticClass:"power"},[t._v(" "+t._s(t.kw(t.selfConsumption))+" ")]):t.powerLabelSomeSpace(t.selfConsumption)?a("span",{staticClass:"power"},[t._v(" "+t._s(t.kwNoUnit(t.selfConsumption))+" ")]):t._e()]),a("div",{staticClass:"site-progress-bar grid-import",style:{width:t.widthTotal(t.gridImportAdjusted)}},[t.powerLabelEnoughSpace(t.gridImport)?a("span",{staticClass:"power"},[t._v(" "+t._s(t.kw(t.gridImport))+" ")]):t.powerLabelSomeSpace(t.gridImport)?a("span",{staticClass:"power"},[t._v(" "+t._s(t.kwNoUnit(t.gridImport))+" ")]):t._e()]),a("div",{staticClass:"site-progress-bar pv-export",style:{width:t.widthTotal(t.pvExportAdjusted)}},[t.powerLabelEnoughSpace(t.pvExport)?a("span",{staticClass:"power"},[t._v(" "+t._s(t.kw(t.pvExport))+" ")]):t.powerLabelSomeSpace(t.pvExport)?a("span",{staticClass:"power"},[t._v(" "+t._s(t.kwNoUnit(t.pvExport))+" ")]):t._e()]),t.totalAdjusted<=0?a("div",{staticClass:"site-progress-bar bg-light border no-wrap w-100"},[a("span",[t._v(t._s(t.$t("main.energyflow.noEnergy")))])]):t._e()]),a("div",{staticClass:"label-scale"},[a("div",{staticClass:"d-flex justify-content-start"},[a("LabelBar",t._b({},"LabelBar",t.labelBarProps("bottom","homePower"),!1),[a("fa-icon",{attrs:{icon:"home"}})],1),a("LabelBar",t._b({},"LabelBar",t.labelBarProps("bottom","loadpoints"),!1),[a("fa-icon",{attrs:{icon:"car"}})],1),a("LabelBar",t._b({},"LabelBar",t.labelBarProps("bottom","batteryCharge"),!1),[a("BatteryIcon",{attrs:{soc:t.batterySoC,charge:""}})],1),a("LabelBar",t._b({},"LabelBar",t.labelBarProps("bottom","gridExport"),!1),[a("GridIcon",{attrs:{export:""}})],1)],1)])])},Yt=[],Jt=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:{"power--in":t.charge,"power--out":t.discharge}},[a("fa-icon",{staticClass:"battery",attrs:{icon:t.batteryIcon}}),a("fa-icon",{staticClass:"arrow",attrs:{icon:"angle-double-right"}})],1)},Qt=[],Xt={name:"BatteryIcon",props:{discharge:{type:Boolean},charge:{type:Boolean},soc:{type:Number,default:0}},computed:{batteryIcon:function(){return this.soc>80?"battery-full":this.soc>60?"battery-three-quarters":this.soc>40?"battery-half":this.soc>20?"battery-quarter":"battery-empty"}}},te=Xt,ee=(a("702d"),Object(Z["a"])(te,Jt,Qt,!1,null,"2dcca16c",null)),ae=ee.exports,ie=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{class:{"power-import":this.import,"power-export":this.export}},[a("svg",{staticClass:"grid svg-inline--fa fa-home fa-w-18",attrs:{viewBox:"0 0 512 512",xmlns:"http://www.w3.org/2000/svg","xml:space":"preserve"}},[a("path",{attrs:{fill:"currentColor",d:"M217.529 46.629H83.817c-8.83 0-16 7.169-16 16v32c0 .196.004.391.011.586v51.22c0 6.209 5.041 11.25 11.25 11.25h22.5c6.209 0 11.25-5.041 11.25-11.25v-35.806h104.701v84.697H83.577c-8.83 0-16 7.169-16 16v32c0 .196.004.391.011.586v51.22c0 6.209 5.041 11.25 11.25 11.25h22.5c6.209 0 11.25-5.041 11.25-11.25v-35.806h104.941v49.925L176.47 506.932l160 .033-39.179-197.538v-50.101h100.402v35.756c0 6.257 5.08 11.337 11.337 11.337h22.674c6.257 0 11.337-5.08 11.337-11.337v-83.756c0-8.831-7.169-16-16-16h-129.75v-84.697h100.642v35.756c0 6.257 5.08 11.337 11.337 11.337h22.674c6.257 0 11.337-5.08 11.337-11.337V62.629c0-8.831-7.169-16-16-16h-129.99V26.162c-.043-12.777-40.058-18.846-40.159-18.633 0 0-39.66 6.092-39.603 18.633v20.467Z"}})]),a("fa-icon",{staticClass:"arrow",attrs:{icon:"angle-double-right"}})],1)},se=[],ne={name:"GridIcon",props:{import:{type:Boolean},export:{type:Boolean}}},oe=ne,re=(a("06aa"),Object(Z["a"])(oe,ie,se,!1,null,"c8e84f48",null)),le=re.exports,ce=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"label-bar",class:{"label-bar--hide-icon":t.hideIcon,"label-bar--hidden":!t.value,"label-bar--top":t.top,"label-bar--bottom":t.bottom,"label-bar--first":t.first,"label-bar--last":t.last}},[a("div",{staticClass:"label-bar-scale"},[a("div",{staticClass:"label-bar-icon"},[t._t("default")],2)])])},de=[],ue={name:"LabelBar",props:{value:{type:Number,default:0},hideIcon:{type:Boolean},top:{type:Boolean},bottom:{type:Boolean},first:{type:Boolean},last:{type:Boolean}}},me=ue,pe=(a("67e4"),Object(Z["a"])(me,ce,de,!1,null,"17da7e54",null)),he=pe.exports,ge={name:"Visualization",components:{BatteryIcon:ae,LabelBar:he,GridIcon:le},mixins:[rt],props:{showDetails:Boolean,gridImport:{type:Number,default:0},selfConsumption:{type:Number,default:0},pvExport:{type:Number,default:0},loadpoints:{type:Number,default:0},batteryCharge:{type:Number,default:0},batteryDischarge:{type:Number,default:0},pvProduction:{type:Number,default:0},homePower:{type:Number,default:0},batterySoC:{type:Number,default:0},valuesInKw:{type:Boolean,default:!1}},data:function(){return{width:0,visualizationReady:!1}},computed:{gridExport:function(){return this.pvExport},totalRaw:function(){return this.gridImport+this.selfConsumption+this.pvExport},gridImportAdjusted:function(){return this.applyThreshold(this.gridImport)},selfConsumptionAdjusted:function(){return this.applyThreshold(this.selfConsumption)},pvExportAdjusted:function(){return this.applyThreshold(this.pvExport)},totalAdjusted:function(){return this.gridImportAdjusted+this.selfConsumptionAdjusted+this.pvExportAdjusted}},watch:{showDetails:function(){this.$nextTick(()=>this.updateElementWidth())},totalAdjusted:function(){!this.visualizationReady&&this.totalAdjusted>0&&setTimeout(()=>{this.visualizationReady=!0},500)}},mounted:function(){this.$nextTick((function(){window.addEventListener("resize",this.updateElementWidth),this.updateElementWidth()}))},beforeDestroy(){window.removeEventListener("resize",this.updateElementWidth)},methods:{widthTotal:function(t){return 0===this.totalAdjusted?"0%":100/this.totalAdjusted*t+"%"},kw:function(t){return this.fmtKw(t,this.valuesInKw,!0)},kwNoUnit:function(t){return this.fmtKw(t,this.valuesInKw,!1)},powerLabelAvailableSpace(t){if(0===this.totalAdjusted)return 0;const e=100/this.totalAdjusted*t;return this.width/100*e},powerLabelEnoughSpace(t){return this.powerLabelAvailableSpace(t)>60},powerLabelSomeSpace(t){return this.powerLabelAvailableSpace(t)>35},hideLabelIcon(t,e=32){if(0===this.totalAdjusted)return!0;const a=100/this.totalAdjusted*t;return this.width/100*a0)return t===e}return!1},labelBarProps(t,e){const a=this[e],i=e.startsWith("battery")||e.startsWith("grid")?44:32;return{value:a,hideIcon:this.hideLabelIcon(a,i),style:{width:this.widthTotal(a)},first:this.isLabelFirst(t,e),last:this.isLabelLast(t,e),[t]:!0}}}},ve=ge,fe=(a("4f12"),Object(Z["a"])(ve,qt,Yt,!1,null,"0c035ffc",null)),be=fe.exports,Ce={name:"Energyflow",components:{Visualization:be,BatteryIcon:ae},mixins:[rt],props:{gridConfigured:Boolean,gridPower:{type:Number,default:0},homePower:{type:Number,default:0},pvConfigured:Boolean,pvPower:{type:Number,default:0},loadpointsPower:{type:Number,default:0},activeLoadpointsCount:{type:Number,default:0},batteryConfigured:Boolean,batteryPower:{type:Number,default:0},batterySoC:{type:Number,default:0}},data:function(){return{showDetails:!1}},computed:{gridImport:function(){return Math.max(0,this.gridPower)},pvProduction:function(){return this.pvConfigured?Math.abs(this.pvPower):this.pvExport},batteryPowerAdjusted:function(){const t=50;return Math.abs(this.batteryPower)1e3}},methods:{kw:function(t){return this.fmtKw(t,this.valuesInKw)},toggleDetails(){this.showDetails=!this.showDetails}}},_e=Ce,we=(a("c126"),Object(Z["a"])(_e,Gt,Zt,!1,null,"c2b4f05e",null)),ye=we.exports,Se=ye,xe=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("p",{staticClass:"h3 mb-4 d-sm-block",class:{"d-none":t.single}},[t._v(" "+t._s(t.title||t.$t("main.loadpoint.fallbackName"))+" ")]),"soft"==t.remoteDisabled?a("div",{staticClass:"alert alert-warning mt-4 mb-2",attrs:{role:"alert"}},[t._v(" "+t._s(t.$t("main.loadpoint.remoteDisabledSoft",{source:t.remoteDisabledSource}))+" ")]):t._e(),"hard"==t.remoteDisabled?a("div",{staticClass:"alert alert-danger mt-4 mb-2",attrs:{role:"alert"}},[t._v(" "+t._s(t.$t("main.loadpoint.remoteDisabledHard",{source:t.remoteDisabledSource}))+" ")]):t._e(),a("div",{staticClass:"row"},[a("Mode",{staticClass:"col-12 col-md-6 col-lg-4 mb-4",attrs:{mode:t.mode},on:{updated:t.setTargetMode}}),a("Vehicle",t._b({staticClass:"col-12 col-md-6 col-lg-8 mb-4",on:{"target-soc-updated":t.setTargetSoC,"target-time-updated":t.setTargetTime,"target-time-removed":t.removeTargetTime}},"Vehicle",t.vehicle,!1))],1),a("LoadpointDetails",t._b({},"LoadpointDetails",t.details,!1))],1)},Te=[],ke=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("div",{staticClass:"mb-3"},[t._v(t._s(t.$t("main.mode.title")))]),a("div",{staticClass:"btn-group w-100",attrs:{role:"group"}},[a("button",{staticClass:"btn btn-outline-secondary",class:{active:"off"==t.mode},attrs:{type:"button"},on:{click:function(e){return t.setTargetMode("off")}}},[t._v(" "+t._s(t.$t("main.mode.stop"))+" ")]),a("button",{staticClass:"btn btn-outline-secondary",class:{active:"now"==t.mode},attrs:{type:"button"},on:{click:function(e){return t.setTargetMode("now")}}},[t._v(" "+t._s(t.$t("main.mode.now"))+" ")]),a("button",{staticClass:"btn btn-outline-secondary",class:{active:"minpv"==t.mode},attrs:{type:"button"},on:{click:function(e){return t.setTargetMode("minpv")}}},[a("span",{staticClass:"d-inline d-sm-none"},[t._v(" "+t._s(t.$t("main.mode.minpvShort"))+" ")]),a("span",{staticClass:"d-none d-sm-inline"},[t._v(" "+t._s(t.$t("main.mode.minpvLong"))+" ")])]),a("button",{staticClass:"btn btn-outline-secondary",class:{active:"pv"==t.mode},attrs:{type:"button"},on:{click:function(e){return t.setTargetMode("pv")}}},[a("span",{staticClass:"d-inline d-sm-none"},[t._v(" "+t._s(t.$t("main.mode.pvShort"))+" ")]),a("span",{staticClass:"d-none d-sm-inline"},[t._v(" "+t._s(t.$t("main.mode.pvLong"))+" ")])])])])},De=[],Pe={name:"Mode",props:{mode:String},methods:{setTargetMode:function(t){this.$emit("updated",t)}}},$e=Pe,Ne=(a("46d4"),Object(Z["a"])($e,ke,De,!1,null,"1ff39d22",null)),Le=Ne.exports,Ie=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("div",{staticClass:"mb-3"},[t._v(" "+t._s(t.vehicleTitle||t.$t("main.vehicle.fallbackName"))+" ")]),a("VehicleSoc",t._b({on:{"target-soc-updated":t.targetSocUpdated}},"VehicleSoc",t.vehicleSocProps,!1)),a("VehicleSubline",t._b({staticClass:"my-1",on:{"target-time-updated":t.setTargetTime,"target-time-removed":t.removeTargetTime}},"VehicleSubline",t.vehicleSubline,!1))],1)},Ee=[],Ae={methods:{collectProps:function(t){let e={};for(var a in t.props)e[a]=this[a];return e}}},Be=function(){var t,e,a=this,i=a.$createElement,s=a._self._c||i;return s("div",{staticClass:"vehicle-soc"},[s("div",{staticClass:"progress"},[s("div",{staticClass:"progress-bar",class:(t={"progress-bar-striped":a.charging,"progress-bar-animated":a.charging},t[a.progressColor]=!0,t),style:{width:a.vehicleSoCDisplayWidth+"%"},attrs:{role:"progressbar"}},[a._v(" "+a._s(a.vehicleSoCDisplayValue)+" ")]),a.remainingSoCWidth>0&&a.enabled?s("div",{staticClass:"progress-bar",class:(e={},e[a.progressColor]=!0,e["bg-muted"]=!0,e),style:{width:a.remainingSoCWidth+"%",transition:"none"},attrs:{role:"progressbar"}}):a._e()]),s("div",{staticClass:"target",class:{"target--slider-hidden":a.allowSliderHiding&&100===a.visibleTargetSoC}},[s("div",{staticClass:"target-label d-flex align-items-center justify-content-center",style:{left:a.visibleTargetSoC+"%"}},[a._v(" "+a._s(a.visibleTargetSoC)+"% ")]),s("input",{staticClass:"target-slider",attrs:{type:"range",min:"0",max:"100",step:"5"},domProps:{value:a.visibleTargetSoC},on:{input:a.movedTargetSoC,mousedown:a.changeTargetSoCStart,touchstart:a.changeTargetSoCStart,mouseup:a.changeTargetSoCEnd,touchend:a.changeTargetSoCEnd}})])])},je=[],Me={name:"VehicleSoc",props:{connected:Boolean,vehiclePresent:Boolean,vehicleSoC:Number,enabled:Boolean,charging:Boolean,minSoC:Number,targetSoC:Number},data:function(){return{selectedTargetSoC:null,allowSliderHiding:!1,interactionStartScreenY:null}},computed:{vehicleSoCDisplayWidth:function(){return this.vehiclePresent&&this.vehicleSoC>=0?this.vehicleSoC:100},vehicleSoCDisplayValue:function(){if(!this.vehiclePresent||!this.vehicleSoC||this.vehicleSoC<0){let t=this.$t("main.vehicleSoC.disconnected");return this.charging?t=this.$t("main.vehicleSoC.charging"):this.enabled?t=this.$t("main.vehicleSoC.ready"):this.connected&&(t=this.$t("main.vehicleSoC.connected")),t}let t=this.vehicleSoC;return t>=10&&(t+="%"),t},progressColor:function(){return this.connected?this.minSoCActive?"bg-danger":"bg-primary":"bg-light border"},minSoCActive:function(){return this.minSoC>0&&this.vehicleSoCthis.vehicleSoC?this.visibleTargetSoC-this.vehicleSoC:null},visibleTargetSoC:function(){return Number(this.selectedTargetSoC||this.targetSoC)}},watch:{targetSoC:function(){this.selectedTargetSoC=this.targetSoC}},mounted:function(){setTimeout(()=>{this.allowSliderHiding=!0},1e3)},methods:{changeTargetSoCStart:function(t){const e=t.screenY||t.changedTouches[0].screenY;this.interactionStartScreenY=e},changeTargetSoCEnd:function(t){const e=t.screenY||t.changedTouches[0].screenY,a=Math.abs(e-this.interactionStartScreenY);if(a>80)return t.preventDefault(),t.target.value=this.targetSoC,this.selectedTargetSoC=this.targetSoC,!1;t.target.value!==this.targetSoC&&this.$emit("target-soc-updated",t.target.value)},movedTargetSoC:function(t){const e=20;return t.target.valuenew Date;this.targetChargeEnabled&&e&&(t=new Date(this.targetTime)),this.selectedDay=this.fmtDayString(t),this.selectedTime=this.fmtTimeString(t)},dayOptions:function(){const t=[],e=new Date,a=[this.$t("main.targetCharge.today"),this.$t("main.targetCharge.tomorrow")];for(let i=0;i<7;i++){const s=e.toLocaleDateString("default",{month:"short",day:"numeric"}),n=a[i]||e.toLocaleDateString("default",{weekday:"long"});t.push({value:e.toISOString().split("T")[0],name:`${s} (${n})`}),e.setDate(e.getDate()+1)}return t},minTime:function(){return(new Date).toISOString().split("T")[1].slice(0,-8)},setTargetTime:function(){this.$emit("target-time-updated",this.selectedTargetTime)},removeTargetTime:function(){this.$emit("target-time-removed")}}},Ge=Ke,Ze=Object(Z["a"])(Ge,He,Oe,!1,null,null,null),qe=Ze.exports,Ye={name:"VehicleSubline",components:{TargetCharge:qe},mixins:[Ae],props:{id:Number,vehicleSoC:Number,minSoC:Number,targetTime:String,targetTimeActive:Boolean,targetTimeHourSuggestion:Number,targetSoC:Number},computed:{minSoCActive:function(){return this.minSoC>0&&this.vehicleSoC=0?a("div",{staticClass:"col-6 col-sm-3 col-lg-2 mt-3"},[a("div",{staticClass:"mb-2 value"},[t._v(t._s(t.$t("main.loadpointDetails.vehicleRange")))]),a("h3",{staticClass:"value"},[t._v(" "+t._s(Math.round(t.vehicleRange))+" "),a("small",{staticClass:"text-muted"},[t._v("km")])])]):a("div",{staticClass:"col-6 col-sm-3 col-lg-2 mt-3"},[a("div",{staticClass:"mb-2 value"},[t._v(t._s(t.$t("main.loadpointDetails.duration")))]),a("h3",{staticClass:"value"},[t._v(" "+t._s(t.fmtShortDuration(t.chargeDurationInterpolated))+" "),a("small",{staticClass:"text-muted"},[t._v(t._s(t.fmtShortDurationUnit(t.chargeDurationInterpolated)))])])]),t.vehiclePresent?a("div",{staticClass:"col-6 col-sm-3 col-lg-2 mt-3"},[a("div",{staticClass:"mb-2 value"},[t._v(t._s(t.$t("main.loadpointDetails.remaining")))]),a("h3",{staticClass:"value"},[t._v(" "+t._s(t.fmtShortDuration(t.chargeRemainingDurationInterpolated))+" "),a("small",{staticClass:"text-muted"},[t._v(t._s(t.fmtShortDurationUnit(t.chargeRemainingDurationInterpolated,!0)))])])]):t._e()])])},na=[],oa=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"root position-relative",class:"direction-"+t.direction},[a("shopicon-options-filled",{staticClass:"dots dots-back"}),a("shopicon-options-filled",{staticClass:"dots dots-front position-absolute start-0 top-0"})],1)},ra=[],la=(a("3d57"),{name:"WaitingDots",props:{direction:{type:String,default:"up"}}}),ca=la,da=(a("c5c7"),Object(Z["a"])(ca,oa,ra,!1,null,"60c12baf",null)),ua=da.exports,ma={name:"LoadpointDetails",components:{WaitingDots:ua},mixins:[rt],props:{chargedEnergy:Number,chargeDuration:Number,chargeRemainingDuration:Number,chargePower:Number,climater:String,vehiclePresent:Boolean,vehicleRange:Number,activePhases:Number,phaseRemaining:Number,phaseAction:String,pvRemaining:Number,pvAction:String,charging:Boolean},data(){return{tickerHandler:null,phaseRemainingInterpolated:this.phaseRemaining,pvRemainingInterpolated:this.pvRemaining,chargeDurationInterpolated:this.chargeDuration,chargeRemainingDurationInterpolated:this.chargeRemainingDuration}},computed:{phaseTooltip(){return["scale1p","scale3p"].includes(this.phaseAction)?this.$t("main.loadpointDetails.tooltip.phases."+this.phaseAction,{remaining:this.fmtShortDuration(this.phaseRemainingInterpolated,!0)}):this.$t(`main.loadpointDetails.tooltip.phases.charge${this.activePhases}p`)},phaseTimerActive(){return this.phaseRemainingInterpolated>0&&["scale1p","scale3p"].includes(this.phaseAction)},pvTimerActive(){return this.pvRemainingInterpolated>0&&["enable","disable"].includes(this.pvAction)},phaseTimerVisible(){return!(!this.phaseTimerActive||this.pvTimerActive)||!(!this.phaseTimerActive||!this.pvTimerActive)&&this.phaseRemainingInterpolated0&&this.phaseRemainingInterpolated--,this.pvRemainingInterpolated>0&&this.pvRemainingInterpolated--,this.chargeDurationInterpolated>0&&this.charging&&this.chargeDurationInterpolated++,this.chargeRemainingDurationInterpolated>0&&this.charging&&this.chargeRemainingDurationInterpolated--}}},pa=ma,ha=Object(Z["a"])(pa,sa,na,!1,null,null,null),ga=ha.exports,va={name:"Loadpoint",components:{LoadpointDetails:ga,Mode:Le,Vehicle:ia},mixins:[rt,Ae],props:{id:Number,single:Boolean,title:String,mode:String,targetSoC:Number,remoteDisabled:Boolean,remoteDisabledSource:String,chargeDuration:Number,charging:Boolean,connected:Boolean,enabled:Boolean,vehicleTitle:String,vehicleSoC:Number,vehiclePresent:Boolean,vehicleRange:Number,minSoC:Number,targetTime:String,targetTimeActive:Boolean,targetTimeHourSuggestion:Number,vehicleProviderLoggedIn:Boolean,vehicleProviderLoginPath:String,vehicleProviderLogoutPath:String,chargePower:Number,chargedEnergy:Number,climater:String,chargeRemainingDuration:Number,phases:Number,minCurrent:Number,maxCurrent:Number,activePhases:Number,chargeCurrent:Number,vehicleCapacity:Number,connectedDuration:Number,chargeCurrents:Array,chargeConfigured:Boolean,chargeRemainingEnergy:Number,phaseAction:String,phaseRemaining:Number,pvRemaining:Number,pvAction:String},computed:{details:function(){return this.collectProps(ga)},vehicle:function(){return this.collectProps(ia)}},methods:{apiPath:function(t){return"loadpoints/"+this.id+"/"+t},setTargetMode:function(t){m.post(this.apiPath("mode")+"/"+t)},setTargetSoC:function(t){m.post(this.apiPath("targetsoc")+"/"+t)},setTargetTime:function(t){const e=`${this.fmtDayString(t)}T${this.fmtTimeString(t)}:00`;m.post(this.apiPath("targetcharge")+"/"+this.targetSoC+"/"+e)},removeTargetTime:function(){m.delete(this.apiPath("targetcharge"))}}},fa=va,ba=Object(Z["a"])(fa,xe,Te,!1,null,null,null),Ca=ba.exports,_a={name:"Site",components:{Loadpoint:Ca,Energyflow:Se},mixins:[rt,Ae],props:{loadpoints:Array,gridConfigured:Boolean,gridPower:Number,homePower:Number,pvConfigured:Boolean,pvPower:Number,batteryConfigured:Boolean,batteryPower:Number,batterySoC:Number,gridCurrents:Array,prioritySoC:Number,siteTitle:String},computed:{energyflow:function(){return this.collectProps(Se)},activeLoadpointsCount:function(){return this.loadpoints.filter(t=>t.chargePower>0).length},loadpointsPower:function(){return this.loadpoints.reduce((t,e)=>(t+=e.chargePower||0,t),0)}}},wa=_a,ya=Object(Z["a"])(wa,Ft,Kt,!1,null,null,null),Sa=ya.exports,xa={name:"Main",components:{Site:Sa},data:function(){return this.$root.$data.store},computed:{configured:function(){const t=window.evcc.configured;return t==window.evcc.configured||!isNaN(parseInt(t))&&parseInt(t)>0}}},Ta=xa,ka=Object(Z["a"])(Ta,Ht,Ot,!1,null,null,null),Da=ka.exports,Pa=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"container"},[a("div",{staticClass:"row mt-4 border-bottom"},[a("div",{staticClass:"col-12"},[a("p",{staticClass:"h1"},[t._v(t._s(t.title||"Home"))])])]),a("div",{staticClass:"row h5"},[a("div",{staticClass:"col-md-4"}),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Netzzähler: "),t.gridConfigured?a("span",{staticClass:"text-primary"},[t._v("✓")]):a("span",{staticClass:"text-primary"},[t._v("—")])]),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" PV Zähler: "),t.pvConfigured?a("span",{staticClass:"text-primary"},[t._v("✓")]):a("span",{staticClass:"text-primary"},[t._v("—")])]),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Batteriezähler: "),t.batteryConfigured?a("span",{staticClass:"text-primary"},[t._v("✓")]):a("span",{staticClass:"text-primary"},[t._v("—")])])]),t._l(t.loadpoints,(function(e,i){return a("div",{key:i,attrs:{id:"loadpoint-"+i,loadpoint:e}},[a("div",{staticClass:"row mt-4 border-bottom"},[a("div",{staticClass:"col-12"},[a("p",{staticClass:"h1"},[t._v(t._s(e.title||"Ladepunkt"))])])]),a("div",{staticClass:"row h5"},[a("div",{staticClass:"col-md-4"}),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Ladezähler: "),e.chargeConfigured?a("span",{staticClass:"text-primary"},[t._v("✓")]):a("span",{staticClass:"text-primary"},[t._v("—")])]),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Phasen: "),a("span",{staticClass:"text-primary"},[t._v(t._s(e.phases)+"p")])]),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Min. Strom: "),a("span",{staticClass:"text-primary"},[t._v(t._s(e.minCurrent)+"A")])]),a("div",{staticClass:"col-6 col-md-2 py-3"},[t._v(" Max. Strom: "),a("span",{staticClass:"text-primary"},[t._v(t._s(e.maxCurrent)+"A")])])]),a("div",{staticClass:"row h5"},[a("div",{staticClass:"col-md-4"}),a("div",{staticClass:"col-md-8 h2"},[t._m(0,!0),a("div",{staticClass:"row h5"},[a("div",{staticClass:"col-6 py-3"},[t._v(" Modell: "),a("span",{staticClass:"text-primary"},[t._v(t._s(e.vehicleTitle||"—"))])]),a("div",{staticClass:"col-6 py-3"},[t._v(" Kapazität: "),a("span",{staticClass:"text-primary"},[t._v(t._s(e.vehicleCapacity)+"kWh")])])])])])])}))],2)},$a=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"row py-3 h2 border-bottom"},[a("div",{staticClass:"col-12"},[t._v("Fahrzeug")])])}],Na={name:"Config",data:function(){return this.$root.$data.store.state}},La=Na,Ia=Object(Z["a"])(La,Pa,$a,!1,null,null,null),Ea=Ia.exports;i["a"].use(Wt["a"]);const Aa=[{path:"/",component:Da},{path:"/config",component:Ea}];var Ba=new Wt["a"]({routes:Aa,linkExactActiveClass:"active"}),ja=a("a925"),Ma={header:{docs:"Dokumentation",blog:"Blog",github:"GitHub",login:"Anmeldungen"},footer:{version:{versionShort:"v{installed}",versionLong:"Version {installed}",availableShort:"Update",availableLong:"Update verfügbar",modalTitle:"Update verfügbar",modalUpdateStarted:"Nach der Aktualisierung wird evcc neu gestartet.",modalInstalledVersion:"Aktuell installierte Version",modalNoReleaseNotes:"Keine Releasenotes verfügbar. Mehr Informationen zur neuen Version findest du hier:",modalCancel:"Abbrechen",modalUpdate:"Aktualisieren",modalUpdateNow:"Jetzt aktualisieren",modalDownload:"Download",modalUpdateStatusStart:"Aktualisierung gestartet: ",modalUpdateStatusFailed:"Aktualisierung nicht möglich: "},savings:{footerShort:"{percent}% Sonne",footerLong:"{percent}% Sonnenenergie",modalTitleShort:"{total} kWh geladen · {percent}% Sonne",modalTitleLong:"{total} kWh geladen · {percent}% Sonnenenergie",modalChartGrid:"Netz {grid} kWh",modalChartSelf:"Sonne {self} kWh",modalSavingsPrice:"Effektiver Energiepreis",modalSavingsTotal:"Ersparnis gegenüber Netzbezug",modalExplaination:"Berechnung",modalExplainationGrid:"Netz {gridPrice}",modalExplainationFeedIn:"Einspeisung {feedInPrice}",modalServerStart:"Seit Serverstart {since}.",modalNoData:"noch nicht geladen",experimentalLabel:"experimentell",experimentalText:"Unplausible Werte? Fragen zur Ansicht? Meld dich gerne in den"},sponsor:{thanks:"Danke für deine Unterstützung, {sponsor}! Das hilft uns bei der Weiterentwicklung.",confetti:"Lust auf etwas Sponsor-Konfetti?",supportUs:"Wir möchten effizientes Zuhause-Laden zum Standard für möglichst viele Menschen machen. Helfe uns indem du die Weiterentwicklung und Pflege des Projekts unterstützt.",sticker:"...oder evcc Sticker?",confettiPromise:"Es gibt auch Sticker und digitales Konfetti ;)",becomeSponsor:"Werde jetzt GitHub Sponsor"}},notifications:{modalTitle:"Meldungen",dismissAll:"Meldungen entfernen"},main:{energyflow:{noEnergy:"Kein Energiefluss",homePower:"Verbrauch",pvProduction:"Erzeugung",loadpoints:"Ladepunkt | Ladepunkt | {count} Ladepunkte",battery:"Batterie",batteryCharge:"Batterie laden",batteryDischarge:"Batterie entladen",gridImport:"Netzbezug",selfConsumption:"Eigenverbrauch",pvExport:"Einspeisung"},mode:{title:"Modus",stop:"Stop",now:"Sofort",minpvShort:"Min",minpvLong:"Min + PV",pvShort:"PV",pvLong:"Nur PV"},loadpoint:{fallbackName:"Ladepunkt",remoteDisabledSoft:"{source}: Adaptives PV-Laden deaktiviert",remoteDisabledHard:"{source}: Deaktiviert"},vehicle:{fallbackName:"Fahrzeug"},vehicleSoC:{disconnected:"getrennt",charging:"lädt",ready:"bereit",connected:"verbunden"},vehicleSubline:{mincharge:"Mindestladung bis {soc}%"},provider:{login:"anmelden",logout:"abmelden"},targetCharge:{inactiveLabel:"Zielzeit",activeLabel:"bis {time} Uhr",modalTitle:"Zielzeit festlegen",description:"Wann soll das Fahrzeug auf {targetSoC}% geladen sein?",today:"heute",tomorrow:"morgen",targetIsInThePast:"Zeitpunkt liegt in der Vergangenheit.",remove:"Keine Zielzeit",activate:"Zielzeit aktivieren",experimentalLabel:"experimentell",experimentalText:"\n Diese Funktion ist in einem frühen Stadium. Der Algorithmus ist noch\n nicht perfekt. Die Zielzeit wird aktuell nicht persistiert - das\n heißt sie geht beim Neustart verloren. Verlasse dich also noch nicht\n zu sehr auf diese Funktion. Wir freuen uns aber über deine\n Erfahrungen und Verbessungsvorschläge in den\n "},loadpointDetails:{power:"Leistung",vehicleRange:"Reichweite",charged:"Geladen",duration:"Dauer",remaining:"Restzeit",tooltip:{phases:{scale1p:"Herunterschalten auf einphasig in {remaining}.",scale3p:"Hochschalten auf dreiphasig in {remaining}.",charge1p:"Lädt einphasig.",charge2p:"Lädt zweiphasig.",charge3p:"Lädt dreiphasig."},pv:{enable:"Überschuss verfügbar. Ladung startet in {remaining}.",disable:"Zu wenig Überschuss. Ladung pausiert in {remaining}."}}}}},Ra={header:{docs:"Documentation",blog:"Blog",github:"GitHub",login:"Logins"},footer:{version:{versionShort:"v{installed}",versionLong:"Version {installed}",availableShort:"update",availableLong:"update available",modalTitle:"Update available",modalUpdateStarted:"Evcc will restart after the update..",modalInstalledVersion:"Currently installed version",modalNoReleaseNotes:"No release notes available. More information about the new version can be found here:",modalCancel:"Cancel",modalUpdate:"Update",modalUpdateNow:"Update now",modalDownload:"Download",modalUpdateStatusStart:"Update started: ",modalUpdateStatusFailed:"Update failed: "},savings:{footerShort:"{percent}% solar",footerLong:"{percent}% solar energy",modalTitleShort:"{total} kWh charged · {percent}% solar",modalTitleLong:"{total} kWh charged · {percent}% solar energy",modalChartGrid:"Grid energy {grid} kWh",modalChartSelf:"Solar energy {self} kWh",modalSavingsPrice:"Effective energy price",modalSavingsTotal:"Savings compared to grid",modalExplaination:"Calculation",modalExplainationGrid:"grid tariff {gridPrice}",modalExplainationFeedIn:"feed-in rate {feedInPrice}",modalServerStart:"since server start {since}.",modalNoData:"nothing charged yet",experimentalLabel:"experimental",experimentalText:"Implausible values? Questions about this view? Feel free to join our "},sponsor:{thanks:"Thanks for your support, {sponsor}! It helps us with the further development.",confetti:"Ready for some sponsor confetti?",supportUs:"We want to make efficient home charging the standard for as many people as possible. Help us by supporting the further development and maintenance of the project.",sticker:"...or evcc stickers?",confettiPromise:"There will be stickers and digital confetti ;)",becomeSponsor:"Become a GitHub Sponsor"}},notifications:{modalTitle:"Notifications",dismissAll:"Dismiss all"},main:{energyflow:{noEnergy:"No Energyflow",homePower:"Consumption",loadpoints:"Loadpoint | Loadpoint | {count} Loadpoints",pvProduction:"Production",battery:"Battery",batteryCharge:"Battery charge",batteryDischarge:"Battery discharge",gridImport:"Grid import",selfConsumption:"Self consumption",pvExport:"Grid export"},mode:{title:"Mode",stop:"Stop",now:"Now",minpvShort:"Min",minpvLong:"Min + PV",pvShort:"PV",pvLong:"PV only"},loadpoint:{fallbackName:"Loadpoint",remoteDisabledSoft:"{source}: adaptive PV charging disabled",remoteDisabledHard:"{source}: disabled"},vehicle:{fallbackName:"Vehicle"},vehicleSoC:{disconnected:"disconnected",charging:"charging",ready:"ready",connected:"connected"},vehicleSubline:{mincharge:"minimum charging to {soc}%"},provider:{login:"login",logout:"logout"},targetCharge:{inactiveLabel:"Target time",activeLabel:"until {time}",modalTitle:"Set Target Time",description:"When should the vehicle be charged to {targetSoC}%?",today:"today",tomorrow:"tomorrow",targetIsInThePast:"The chosen time is in the past.",remove:"Remove",activate:"Activate",experimentalLabel:"experimental",experimentalText:"\n This function is at an early stage.\n The algorithm is not perfect yet.\n The target time is currently not persisted - this means, it will be lost when your server restarts.\n So do not rely too much on this function.\n However, we look forward to your experiences and suggestions for improvement in the\n "},loadpointDetails:{power:"Power",vehicleRange:"Range",charged:"Charged",duration:"Duration",remaining:"Remaining",tooltip:{phases:{scale1p:"Switching to single-phase in {remaining}.",scale3p:"Switching to three-phase in {remaining}.",charge1p:"Single-phase charging.",charge2p:"Two-phase charging.",charge3p:"Three-phase charging."},pv:{enable:"Solar available. Resume charging in {remaining}.",disable:"Not enough solar. Pause charging in {remaining}."}}}}},Ua={header:{docs:"Documentazione",blog:"Blog",github:"GitHub",login:"Iscrizioni"},footer:{version:{version:"versione",availableShort:"aggiornamento",availableLong:"aggiornamento disponibile",modalTitle:"Aggiornamento disponibile",modalUpdateStarted:"Evcc ripartirà dopo l'aggiornamento..",modalInstalledVersion:"Versione correntemente installata",modalNoReleaseNotes:"Non ci sono note di rilascio disponibili. Altre informazioni circa la nuova versione si trovano qui:",modalCancel:"Cancella",modalUpdate:"Aggiorna",modalUpdateNow:"Aggiorna ora",modalDownload:"Download",modalUpdateStatusStart:"Aggiornamento iniziato: ",modalUpdateStatusFailed:"Aggiornamento fallito: "},sponsor:{sponsoredShort:"grazie",sponsoredLong:"grazie {sponsor}",supportProjectShort:"supporto",supportProjectLong:"supporta questo progetto"}},notifications:{modalTitle:"Notifiche",dismissAll:"Rimuovi tutte"},main:{energyflow:{noEnergy:"No Energyflow",homePower:"Consumption",pvProduction:"Produzione",battery:"Batteria",batteryCharge:"Battery charge",batteryDischarge:"Battery discharge",gridImport:"Grid import",selfConsumption:"Self consumption",pvExport:"Grid export"},mode:{title:"Modalità",stop:"Stop",now:"Ora",minpvShort:"Min",minpvLong:"Min + FV",pvShort:"FV",pvLong:"Solo FV"},loadpoint:{fallbackName:"Punto di carica",remoteDisabledSoft:"{source}: Ricarica FV adattiva disabilitata",remoteDisabledHard:"{source}: Disabilitato"},vehicle:{fallbackName:"Veicolo"},vehicleSoC:{disconnected:"disconesso",charging:"carica",ready:"pronto",connected:"collegato"},vehicleSubline:{mincharge:"carica minima fino a {soc}%"},provider:{login:"accedere",logout:"disconnettersi"},loadpointDetails:{power:"Potenza",vehicleRange:"Autonomia",charged:"Ricaricato",duration:"Duarata",remaining:"Rimanenti"}}};function za(){const t=void 0!==navigator.languages?navigator.languages[0]:navigator.language;if(!t)return;const e=t.trim().split(/-|_/)[0];return e}i["a"].use(ja["a"]);var Va=new ja["a"]({locale:za(),fallbackLocale:"en",messages:{de:Ma,en:Ra,it:Ua}}),Wa=(a("096e"),a("e37d"));Wa["a"].options.offset=[0,10],Wa["a"].options.themes.tooltip.triggers=["click","focus"],i["a"].use(Wa["a"]),i["a"].use(s["a"]),window.app=new i["a"]({el:"#app",router:Ba,i18n:Va,data:{store:Lt,notifications:[]},methods:{raise:function(t){console[t.type](t);const e=new Date,a=this.notifications[0];a&&a.message===t.message?(a.count++,a.time=e):this.notifications=[{...t,count:1,time:e},...this.notifications]},clear:function(){this.notifications=[]},error:function(t){t.type="error",this.raise(t)},warn:function(t){t.type="warn",this.raise(t)}},render:function(t){return t(Vt,{props:{notifications:this.notifications}})}}),window.setInterval((function(){m.get("health").catch((function(){window.app.error({message:"Server unavailable"})}))}),5e3)},abbc:function(t,e,a){},b19f:function(t,e,a){},c126:function(t,e,a){"use strict";a("0501")},c1a8:function(t,e,a){"use strict";a("dbaf")},c5c7:function(t,e,a){"use strict";a("0544")},dbaf:function(t,e,a){},ec98:function(t,e,a){},ed92:function(t,e,a){}}); +//# sourceMappingURL=index.0be96fe8.js.map \ No newline at end of file diff --git a/dist/js/index.e5e2e523.js.map b/dist/js/index.0be96fe8.js.map similarity index 86% rename from dist/js/index.e5e2e523.js.map rename to dist/js/index.0be96fe8.js.map index af30dfe49..de71801e2 100644 --- a/dist/js/index.e5e2e523.js.map +++ b/dist/js/index.0be96fe8.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./assets/js/components/Energyflow/GridIcon.vue?f546","webpack:///./assets/js/components/Version.vue?af13","webpack:///./assets/js/components/Savings.vue?001f","webpack:///./assets/js/components/VehicleSoc.vue?a87b","webpack:///./assets/js/components/Sponsor.vue?78ad","webpack:///./assets/js/components/Mode.vue?9ba9","webpack:///./assets/js/components/Energyflow/Visualization.vue?e065","webpack:///./assets/js/components/Energyflow/LabelBar.vue?2139","webpack:///./assets/js/components/Energyflow/BatteryIcon.vue?023c","webpack:///./assets/js/api.js","webpack:///./assets/js/views/App.vue?fbd3","webpack:///./assets/js/icons.js","webpack:///./assets/js/components/Logo.vue?00a6","webpack:///assets/js/components/Logo.vue","webpack:///./assets/js/components/Logo.vue?a186","webpack:///./assets/js/components/Logo.vue","webpack:///./assets/js/components/Footer.vue?0f95","webpack:///./assets/js/components/Version.vue?9ea3","webpack:///assets/js/components/Version.vue","webpack:///./assets/js/components/Version.vue?b577","webpack:///./assets/js/components/Version.vue","webpack:///./assets/js/components/Savings.vue?ee7e","webpack:///./assets/js/mixins/formatter.js","webpack:///./assets/js/components/Sponsor.vue?1c80","webpack:///assets/js/components/Sponsor.vue","webpack:///./assets/js/components/Sponsor.vue?c9bd","webpack:///./assets/js/components/Sponsor.vue","webpack:///assets/js/components/Savings.vue","webpack:///./assets/js/components/Savings.vue?e254","webpack:///./assets/js/components/Savings.vue","webpack:///assets/js/components/Footer.vue","webpack:///./assets/js/components/Footer.vue?f6f1","webpack:///./assets/js/components/Footer.vue","webpack:///./assets/js/components/Notifications.vue?5113","webpack:///assets/js/components/Notifications.vue","webpack:///./assets/js/components/Notifications.vue?e1ad","webpack:///./assets/js/components/Notifications.vue","webpack:///./assets/js/store.js","webpack:///./assets/js/baseapi.js","webpack:///assets/js/views/App.vue","webpack:///./assets/js/views/App.vue?bc92","webpack:///./assets/js/views/App.vue","webpack:///./assets/js/views/Main.vue?c945","webpack:///./assets/js/components/Site.vue?4062","webpack:///./assets/js/components/Energyflow/Energyflow.vue?9475","webpack:///./assets/js/components/Energyflow/Visualization.vue?d578","webpack:///./assets/js/components/Energyflow/BatteryIcon.vue?a6f7","webpack:///assets/js/components/Energyflow/BatteryIcon.vue","webpack:///./assets/js/components/Energyflow/BatteryIcon.vue?2d7d","webpack:///./assets/js/components/Energyflow/BatteryIcon.vue","webpack:///./assets/js/components/Energyflow/GridIcon.vue?1d6c","webpack:///assets/js/components/Energyflow/GridIcon.vue","webpack:///./assets/js/components/Energyflow/GridIcon.vue?51d6","webpack:///./assets/js/components/Energyflow/GridIcon.vue","webpack:///./assets/js/components/Energyflow/LabelBar.vue?2ef8","webpack:///assets/js/components/Energyflow/LabelBar.vue","webpack:///./assets/js/components/Energyflow/LabelBar.vue?de93","webpack:///./assets/js/components/Energyflow/LabelBar.vue","webpack:///assets/js/components/Energyflow/Visualization.vue","webpack:///./assets/js/components/Energyflow/Visualization.vue?70bf","webpack:///./assets/js/components/Energyflow/Visualization.vue","webpack:///assets/js/components/Energyflow/Energyflow.vue","webpack:///./assets/js/components/Energyflow/Energyflow.vue?96c6","webpack:///./assets/js/components/Energyflow/Energyflow.vue","webpack:///./assets/js/components/Energyflow/index.js","webpack:///./assets/js/components/Loadpoint.vue?8090","webpack:///./assets/js/components/Mode.vue?6abe","webpack:///assets/js/components/Mode.vue","webpack:///./assets/js/components/Mode.vue?61d2","webpack:///./assets/js/components/Mode.vue","webpack:///./assets/js/components/Vehicle.vue?fd0f","webpack:///./assets/js/mixins/collector.js","webpack:///./assets/js/components/VehicleSoc.vue?ef3b","webpack:///assets/js/components/VehicleSoc.vue","webpack:///./assets/js/components/VehicleSoc.vue?52d1","webpack:///./assets/js/components/VehicleSoc.vue","webpack:///./assets/js/components/VehicleSubline.vue?70e9","webpack:///./assets/js/components/TargetCharge.vue?e11b","webpack:///assets/js/components/TargetCharge.vue","webpack:///./assets/js/components/TargetCharge.vue?15d2","webpack:///./assets/js/components/TargetCharge.vue","webpack:///assets/js/components/VehicleSubline.vue","webpack:///./assets/js/components/VehicleSubline.vue?853d","webpack:///./assets/js/components/VehicleSubline.vue","webpack:///assets/js/components/Vehicle.vue","webpack:///./assets/js/components/Vehicle.vue?f059","webpack:///./assets/js/components/Vehicle.vue","webpack:///./assets/js/components/LoadpointDetails.vue?75bb","webpack:///./assets/js/components/WaitingDots.vue?e632","webpack:///assets/js/components/WaitingDots.vue","webpack:///./assets/js/components/WaitingDots.vue?55b4","webpack:///./assets/js/components/WaitingDots.vue","webpack:///assets/js/components/LoadpointDetails.vue","webpack:///./assets/js/components/LoadpointDetails.vue?3523","webpack:///./assets/js/components/LoadpointDetails.vue","webpack:///assets/js/components/Loadpoint.vue","webpack:///./assets/js/components/Loadpoint.vue?8e18","webpack:///./assets/js/components/Loadpoint.vue","webpack:///assets/js/components/Site.vue","webpack:///./assets/js/components/Site.vue?0ecf","webpack:///./assets/js/components/Site.vue","webpack:///assets/js/views/Main.vue","webpack:///./assets/js/views/Main.vue?05e7","webpack:///./assets/js/views/Main.vue","webpack:///./assets/js/views/Config.vue?7859","webpack:///assets/js/views/Config.vue","webpack:///./assets/js/views/Config.vue?2564","webpack:///./assets/js/views/Config.vue","webpack:///./assets/js/router.js","webpack:///./assets/js/i18n/de.js","webpack:///./assets/js/i18n/en.js","webpack:///./assets/js/i18n/it.js","webpack:///./assets/js/i18n/index.js","webpack:///./assets/js/tooltip.js","webpack:///./assets/js/app.js","webpack:///./assets/js/components/Energyflow/Energyflow.vue?c982","webpack:///./assets/js/views/App.vue?d59d","webpack:///./assets/js/components/WaitingDots.vue?2e0c"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","protocol","location","api","a","baseURL","hostname","port","pathname","headers","Accept","interceptors","response","use","error","url","config","message","app","render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","notifications","_m","providerLogins","_v","_s","$t","logoutCount","_e","_l","login","title","on","$event","handleProviderAuthorization","loggedIn","version","sponsor","savings","staticRenderFns","add","faAngleDown","faAngleUp","faBatteryEmpty","faBatteryFull","faBatteryHalf","faBatteryQuarter","faBatteryThreeQuarters","faBox","faCar","faAngleDoubleLeft","faAngleDoubleRight","faClock","faExclamationCircle","faExclamationTriangle","faGift","faHome","faWrench","faSquare","faSun","faInfoCircle","faFlask","faTemperatureHigh","faTemperatureLow","faThermometerHalf","component","_b","installed","releaseNotesUrl","style","width","uploadProgress","updateStatus","uploadMessage","domProps","releaseNotes","available","updateStarted","update","props","String","commit","hasUpdater","Boolean","Number","computed","githubHashUrl","newVersionAvailable","methods","async","post","e","percent","ref","total","fmtKw","totalCharged","self","selfConsumptionCharged","grid","gridCharged","fmtPricePerKWh","effectivePrice","currency","fmtMoney","amount","gridPrice","feedInPrice","since","fmtTimeAgo","secondsSinceStart","fmtLimit","fmtDigits","round","num","precision","base","Math","toFixed","fmt","val","undefined","abs","watt","kw","withUnit","digits","unit","$n","minimumFractionDigits","maximumFractionDigits","fmtUnit","fmtDuration","seconds","minutes","floor","hours","substr","fmtShortDuration","duration","padStart","fmtShortDurationUnit","fmtDayString","date","YY","getFullYear","MM","getMonth","DD","getDate","fmtTimeString","HH","getHours","mm","getMinutes","fmtAbsoluteDate","Intl","DateTimeFormat","$i18n","locale","weekday","hour","minute","format","amout","includes","elapsed","units","day","second","rtf","RelativeTimeFormat","numeric","u","surprise","$el","$refs","confetti","angle","random","drift","top","height","left","getBoundingClientRect","x","innerWidth","y","innerHeight","origin","particleCount","spread","scalar","zIndex","colors","components","Sponsor","mixins","formatter","selfConsumptionPercent","type","default","Date","now","Version","Savings","directives","rawName","expression","class","iconClass","msg","index","time","count","clear","Array","iconVisible","find","created","interval","setInterval","$forceUpdate","destroyed","clearTimeout","setProperty","obj","prop","set","isArray","store","state","loadpoints","keys","forEach","k","split","baseAPI","Logo","Footer","Notifications","compact","$root","$data","installedVersion","evcc","availableVersion","siteTitle","savingsSince","savingsTotalCharged","savingsGridCharged","savingsSelfConsumptionCharged","savingsAmount","savingsEffectivePrice","savingsSelfConsumptionPercent","tariffGrid","tariffFeedIn","filter","auth","entries","vehicles","map","v","authenticated","loginPath","uri","logoutPath","urlParams","URLSearchParams","search","setTimeout","connect","supportsWebSockets","loc","ws","WebSocket","onerror","close","onclose","onmessage","evt","JSON","parse","reload","provider","then","href","loginUri","energyflow","loadpoint","id","toggleDetails","showDetails","gridImport","selfConsumption","loadpointsPower","pvExport","batteryCharge","batteryDischarge","pvProduction","homePower","batterySoC","valuesInKw","$tc","activeLoadpointsCount","batteryPower","visualizationReady","labelBarProps","widthTotal","selfConsumptionAdjusted","powerLabelEnoughSpace","powerLabelSomeSpace","kwNoUnit","gridImportAdjusted","pvExportAdjusted","totalAdjusted","charge","discharge","batteryIcon","soc","import","export","hideIcon","bottom","first","last","_t","BatteryIcon","LabelBar","GridIcon","gridExport","totalRaw","applyThreshold","watch","$nextTick","updateElementWidth","mounted","addEventListener","removeEventListener","power","powerLabelAvailableSpace","minWidth","site_progress","position","isLabel","labels","reverse","entry","startsWith","hideLabelIcon","isLabelFirst","isLabelLast","Visualization","gridConfigured","gridPower","pvConfigured","pvPower","batteryConfigured","max","batteryPowerAdjusted","batteryPowerThreshold","min","ownPower","consumption","single","remoteDisabled","source","remoteDisabledSource","setTargetMode","setTargetSoC","setTargetTime","removeTargetTime","vehicle","details","active","$emit","vehicleTitle","targetSocUpdated","vehicleSocProps","vehicleSubline","collectProps","_obj","_obj$1","charging","progressColor","vehicleSoCDisplayWidth","vehicleSoCDisplayValue","remainingSoCWidth","enabled","transition","allowSliderHiding","visibleTargetSoC","movedTargetSoC","changeTargetSoCStart","changeTargetSoCEnd","connected","vehiclePresent","vehicleSoC","minSoC","targetSoC","selectedTargetSoC","interactionStartScreenY","chargeStatus","minSoCActive","screenY","changedTouches","yDiff","preventDefault","target","minTargetSoC","targetCharge","invisible","targetTimeActive","modalId","targetTimeLabel","arguments","$$selectedVal","options","selected","_value","selectedDay","multiple","dayOptions","opt","composing","selectedTime","selectedTargetTimeValid","DEFAULT_TARGET_HOUR","targetTime","targetTimeHourSuggestion","targetChargeEnabled","selectedTargetTime","initInputFields","targetDate","defaultDate","setSeconds","setMinutes","isInteger","setUTCHours","setHours","isInPast","setDate","targetTimeInTheFuture","dayNumber","toLocaleDateString","month","dayName","toISOString","minTime","TargetCharge","collector","VehicleSoc","VehicleSubline","chargePower","activePhases","content","phaseTooltip","phaseAction","climater","pvAction","remaining","pvRemainingInterpolated","staticStyle","chargedEnergy","vehicleRange","chargeDurationInterpolated","chargeRemainingDurationInterpolated","direction","WaitingDots","chargeDuration","chargeRemainingDuration","phaseRemaining","pvRemaining","tickerHandler","phaseRemainingInterpolated","phaseTimerActive","pvTimerActive","tick","clearInterval","LoadpointDetails","Mode","Vehicle","vehicleProviderLoggedIn","vehicleProviderLoginPath","vehicleProviderLogoutPath","phases","minCurrent","maxCurrent","chargeCurrent","vehicleCapacity","connectedDuration","chargeCurrents","chargeConfigured","chargeRemainingEnergy","apiPath","func","formattedDate","delete","Loadpoint","Energyflow","gridCurrents","prioritySoC","lp","reduce","sum","Site","configured","isNaN","parseInt","routes","path","Main","Config","linkExactActiveClass","header","docs","blog","github","footer","versionShort","versionLong","availableShort","availableLong","modalTitle","modalUpdateStarted","modalInstalledVersion","modalNoReleaseNotes","modalCancel","modalUpdate","modalUpdateNow","modalDownload","modalUpdateStatusStart","modalUpdateStatusFailed","footerShort","footerLong","modalTitleShort","modalTitleLong","modalChartGrid","modalChartSelf","modalSavingsPrice","modalSavingsTotal","modalExplaination","modalExplainationGrid","modalExplainationFeedIn","modalServerStart","modalNoData","experimentalLabel","experimentalText","thanks","supportUs","sticker","confettiPromise","becomeSponsor","dismissAll","main","noEnergy","battery","stop","minpvShort","minpvLong","pvShort","pvLong","fallbackName","remoteDisabledSoft","remoteDisabledHard","disconnected","ready","mincharge","logout","inactiveLabel","activeLabel","description","today","tomorrow","targetIsInThePast","remove","activate","loadpointDetails","charged","tooltip","scale1p","scale3p","charge1p","charge2p","charge3p","pv","enable","disable","sponsoredShort","sponsoredLong","supportProjectShort","supportProjectLong","getBrowserLocale","navigatorLocale","navigator","languages","language","trimmedLocale","trim","fallbackLocale","messages","de","en","it","offset","themes","triggers","el","router","i18n","raise","console","latestMsg","warn","h","App","catch"],"mappings":"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","file":"js/index.e5e2e523.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"index\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridIcon.vue?vue&type=style&index=0&id=c8e84f48&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=style&index=0&id=7872ae76&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Savings.vue?vue&type=style&index=0&id=bd18982c&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VehicleSoc.vue?vue&type=style&index=0&id=66f68a62&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sponsor.vue?vue&type=style&index=0&id=6edb9fae&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Mode.vue?vue&type=style&index=0&id=1ff39d22&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Visualization.vue?vue&type=style&index=0&id=0c035ffc&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LabelBar.vue?vue&type=style&index=0&id=17da7e54&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/@vue/cli-service/node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryIcon.vue?vue&type=style&index=0&id=2dcca16c&scoped=true&lang=css&\"","import axios from \"axios\";\n\nconst { protocol, hostname, port, pathname } = window.location;\n\nconst api = axios.create({\n baseURL: protocol + \"//\" + hostname + (port ? \":\" + port : \"\") + pathname + \"api/\",\n headers: {\n Accept: \"application/json\",\n },\n});\n\n// global error handling\napi.interceptors.response.use(\n (response) => response,\n (error) => {\n const url = error.config.baseURL + error.config.url;\n const message = `${error.message}: API request failed ${url}`;\n window.app.error({ message });\n }\n);\n\nexport default api;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app d-flex flex-column justify-content-between overflow-hidden\"},[_c('div',{staticClass:\"flex-grow-1 d-flex flex-column justify-content-between\"},[_c('nav',{staticClass:\"navbar navbar-expand-lg navbar-dark bg-dark\"},[_c('div',{staticClass:\"container\"},[_c('a',{staticClass:\"navbar-brand\",attrs:{\"href\":\"https://evcc.io/\",\"target\":\"_blank\"}},[_c('Logo',{staticClass:\"logo\"})],1),_c('div',{staticClass:\"d-flex flex-grow-1 justify-content-end\"},[_c('Notifications',{attrs:{\"notifications\":_vm.notifications}}),_vm._m(0)],1),_c('div',{staticClass:\"collapse navbar-collapse flex-grow-0\",attrs:{\"id\":\"navbarNavAltMarkup\"}},[_c('ul',{staticClass:\"navbar-nav\"},[(_vm.providerLogins.length > 0)?_c('li',{staticClass:\"nav-item dropdown\"},[_c('a',{staticClass:\"nav-link dropdown-toggle\",attrs:{\"data-bs-toggle\":\"dropdown\",\"href\":\"#\",\"role\":\"button\",\"aria-expanded\":\"false\"}},[_vm._v(_vm._s(_vm.$t(\"header.login\"))+\" \"),(_vm.logoutCount > 0)?_c('span',{staticClass:\"badge bg-secondary\"},[_vm._v(_vm._s(_vm.logoutCount))]):_vm._e()]),_c('ul',{staticClass:\"dropdown-menu\"},_vm._l((_vm.providerLogins),function(login){return _c('li',{key:login.title,staticClass:\"dropdown-item\"},[_c('button',{staticClass:\"dropdown-item\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.handleProviderAuthorization(login)}}},[_vm._v(\" \"+_vm._s(login.title)+\" \"+_vm._s(_vm.$t( login.loggedIn ? \"main.provider.logout\" : \"main.provider.login\" ))+\" \")])])}),0)]):_vm._e(),_c('li',{staticClass:\"nav-item\"},[_c('a',{staticClass:\"nav-link\",attrs:{\"href\":\"https://docs.evcc.io/blog/\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"header.blog\"))+\" \")])]),_c('li',{staticClass:\"nav-item\"},[_c('a',{staticClass:\"nav-link\",attrs:{\"href\":\"https://docs.evcc.io/docs/Home/\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"header.docs\"))+\" \")])]),_c('li',{staticClass:\"nav-item\"},[_c('a',{staticClass:\"nav-link\",attrs:{\"href\":\"https://github.com/evcc-io/evcc\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"header.github\"))+\" \")])])])])])]),_c('router-view',{staticClass:\"flex-grow-1 d-flex flex-column justify-content-stretch\"})],1),_c('Footer',{attrs:{\"version\":_vm.version,\"sponsor\":_vm.sponsor,\"savings\":_vm.savings}})],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"navbar-toggler\",attrs:{\"type\":\"button\",\"data-bs-toggle\":\"collapse\",\"data-bs-target\":\"#navbarNavAltMarkup\",\"aria-controls\":\"navbarNavAltMarkup\",\"aria-expanded\":\"false\",\"aria-label\":\"Toggle navigation\"}},[_c('span',{staticClass:\"navbar-toggler-icon\"})])}]\n\nexport { render, staticRenderFns }","import Vue from \"vue\";\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\n\nimport { faBatteryEmpty } from \"@fortawesome/free-solid-svg-icons/faBatteryEmpty\";\nimport { faBatteryFull } from \"@fortawesome/free-solid-svg-icons/faBatteryFull\";\nimport { faBatteryHalf } from \"@fortawesome/free-solid-svg-icons/faBatteryHalf\";\nimport { faBatteryQuarter } from \"@fortawesome/free-solid-svg-icons/faBatteryQuarter\";\nimport { faBatteryThreeQuarters } from \"@fortawesome/free-solid-svg-icons/faBatteryThreeQuarters\";\nimport { faAngleUp } from \"@fortawesome/free-solid-svg-icons/faAngleUp\";\nimport { faAngleDown } from \"@fortawesome/free-solid-svg-icons/faAngleDown\";\nimport { faClock } from \"@fortawesome/free-solid-svg-icons/faClock\";\nimport { faExclamationTriangle } from \"@fortawesome/free-solid-svg-icons/faExclamationTriangle\";\nimport { faSun } from \"@fortawesome/free-solid-svg-icons/faSun\";\nimport { faSun as farSun } from \"@fortawesome/free-regular-svg-icons/faSun\";\nimport { faInfoCircle } from \"@fortawesome/free-solid-svg-icons/faInfoCircle\";\nimport { faFlask } from \"@fortawesome/free-solid-svg-icons/faFlask\";\nimport { faTemperatureHigh } from \"@fortawesome/free-solid-svg-icons/faTemperatureHigh\";\nimport { faTemperatureLow } from \"@fortawesome/free-solid-svg-icons/faTemperatureLow\";\nimport { faThermometerHalf } from \"@fortawesome/free-solid-svg-icons/faThermometerHalf\";\nimport { faHeart as farHeart } from \"@fortawesome/free-regular-svg-icons/faHeart\";\nimport { faHeart as fasHeart } from \"@fortawesome/free-solid-svg-icons/faHeart\";\nimport { faGift } from \"@fortawesome/free-solid-svg-icons/faGift\";\nimport { faBox } from \"@fortawesome/free-solid-svg-icons/faBox\";\nimport { faHome } from \"@fortawesome/free-solid-svg-icons/faHome\";\nimport { faWrench } from \"@fortawesome/free-solid-svg-icons/faWrench\";\nimport { faCar } from \"@fortawesome/free-solid-svg-icons/faCar\";\nimport { faSquare } from \"@fortawesome/free-solid-svg-icons/faSquare\";\nimport { faExclamationCircle } from \"@fortawesome/free-solid-svg-icons/faExclamationCircle\";\nimport { faAngleDoubleLeft } from \"@fortawesome/free-solid-svg-icons/faAngleDoubleLeft\";\nimport { faAngleDoubleRight } from \"@fortawesome/free-solid-svg-icons/faAngleDoubleRight\";\n\nlibrary.add(\n faAngleDown,\n faAngleUp,\n faBatteryEmpty,\n faBatteryFull,\n faBatteryHalf,\n faBatteryQuarter,\n faBatteryThreeQuarters,\n faBox,\n faCar,\n faAngleDoubleLeft,\n faAngleDoubleRight,\n faClock,\n faExclamationCircle,\n faExclamationTriangle,\n faGift,\n faHome,\n faWrench,\n farHeart,\n fasHeart,\n faSquare,\n faSun,\n farSun,\n faInfoCircle,\n faFlask,\n faTemperatureHigh,\n faTemperatureLow,\n faThermometerHalf\n);\n\n// eslint-disable-next-line vue/component-definition-name-casing\nVue.component(\"fa-icon\", FontAwesomeIcon);\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"viewBox\":\"0 0 122 35\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill-rule\":\"evenodd\",\"clip-rule\":\"evenodd\",\"stroke-linejoin\":\"round\",\"stroke-miterlimit\":\"2\"}},[_c('path',{attrs:{\"d\":\"M13.082 29.071a12.384 12.384 0 01-9-3.42 12.192 12.192 0 01-3.54-9.12v-.64a15.394 15.394 0 011.47-6.83 10.825 10.825 0 014.17-4.64 11.64 11.64 0 016.15-1.63 10.45 10.45 0 018.21 3.26c2 2.194 3 5.297 3 9.31v2.76H7.382a6.348 6.348 0 002 4 5.997 5.997 0 004.16 1.49 7.305 7.305 0 006.1-2.84l3.31 3.73a10 10 0 01-4.13 3.39 13.309 13.309 0 01-5.74 1.18zm-.77-20.84a4.216 4.216 0 00-3.26 1.37 7.141 7.141 0 00-1.6 3.91h9.39v-.55a5.005 5.005 0 00-1.22-3.49 4.304 4.304 0 00-3.31-1.24zM36.452 20.331l4.7-17.09h7l-8.48 25.36h-6.44l-8.52-25.36h7l4.74 17.09zM85.542 23.611a4.444 4.444 0 003-1 3.638 3.638 0 001.22-2.75h6.32a8.668 8.668 0 01-1.4 4.73 9.145 9.145 0 01-3.79 3.3 11.736 11.736 0 01-5.29 1.19 10.912 10.912 0 01-8.54-3.46c-2.087-2.3-3.13-5.483-3.13-9.55v-.45c0-3.9 1.033-7.016 3.1-9.35a10.868 10.868 0 018.51-3.5c2.791-.134 5.524.84 7.6 2.71a9.626 9.626 0 012.9 7.21h-6.3a4.663 4.663 0 00-1.2-3.22 4.005 4.005 0 00-3.08-1.24 4.068 4.068 0 00-3.56 1.73c-.8 1.15-1.2 3-1.2 5.6v.7c0 2.61.39 4.49 1.19 5.63a4.092 4.092 0 003.65 1.72zM110.422 23.611a4.454 4.454 0 003-1 3.63 3.63 0 001.21-2.75h6.33a8.668 8.668 0 01-1.4 4.73 9.143 9.143 0 01-3.73 3.3 11.76 11.76 0 01-5.29 1.18 10.912 10.912 0 01-8.54-3.46c-2.087-2.3-3.13-5.483-3.13-9.55v-.45c0-3.9 1.033-7.016 3.1-9.35a10.85 10.85 0 018.57-3.49 10.575 10.575 0 017.6 2.71 9.598 9.598 0 012.91 7.21h-6.33a4.651 4.651 0 00-1.21-3.22 4.492 4.492 0 00-6.64.49c-.8 1.15-1.21 3-1.21 5.6v.7c0 2.607.4 4.484 1.2 5.63a4.09 4.09 0 003.56 1.72z\",\"fill\":\"#fff\",\"fill-rule\":\"nonzero\"}}),_c('path',{attrs:{\"d\":\"M58.462.751h9.22l-6.14 12.3h6.15l-11.53 21.51 2.3-15.36h-7.68l7.68-18.45z\",\"fill\":\"#0fdd42\",\"fill-rule\":\"nonzero\"}}),_c('path',{attrs:{\"fill\":\"none\",\"d\":\"M-24.458-22.109h170v76h-170z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Logo.vue?vue&type=template&id=14334b81&\"\nimport script from \"./Logo.vue?vue&type=script&lang=js&\"\nexport * from \"./Logo.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('footer',{staticClass:\"container\"},[_c('div',{staticClass:\"py-3 py-md-5 mt-3 mt-md-5 border-top\"},[_c('div',{staticClass:\"d-flex justify-content-between\"},[_c('Version',_vm._b({},'Version',_vm.version,false)),_c('Savings',_vm._b({attrs:{\"sponsor\":_vm.sponsor}},'Savings',_vm.savings,false))],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.newVersionAvailable)?_c('button',{staticClass:\"btn btn-link ps-0 text-decoration-none link-dark text-nowrap\",attrs:{\"href\":\"#\",\"data-bs-toggle\":\"modal\",\"data-bs-target\":\"#updateModal\"}},[_c('fa-icon',{staticClass:\"icon me-2\",attrs:{\"icon\":\"gift\"}}),_vm._v(\"v\"+_vm._s(_vm.installed)+\" \"),_c('span',{staticClass:\"d-none d-xs-inline d-sm-none text-muted text-decoration-underline\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"footer.version.availableShort\"))+\" \")]),_c('span',{staticClass:\"d-none d-sm-inline text-muted text-decoration-underline\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"footer.version.availableLong\"))+\" \")])],1):_c('a',{staticClass:\"btn btn-link ps-0 text-decoration-none link-dark text-nowrap\",attrs:{\"href\":_vm.releaseNotesUrl(_vm.installed),\"target\":\"_blank\"}},[_c('span',{staticClass:\"d-inline d-xs-none d-sm-none\"},[_vm._v(_vm._s(_vm.$t(\"footer.version.versionShort\", { installed: _vm.installed })))]),_c('span',{staticClass:\"d-none d-xs-inline d-sm-inline\"},[_vm._v(_vm._s(_vm.$t(\"footer.version.versionLong\", { installed: _vm.installed })))])]),_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"updateModal\",\"tabindex\":\"-1\",\"role\":\"dialog\",\"aria-hidden\":\"true\"}},[_c('div',{staticClass:\"modal-dialog modal-dialog-centered modal-dialog-scrollable\",attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_c('h5',{staticClass:\"modal-title\"},[_vm._v(_vm._s(_vm.$t(\"footer.version.modalTitle\")))]),_c('button',{staticClass:\"btn-close\",attrs:{\"type\":\"button\",\"data-bs-dismiss\":\"modal\",\"aria-label\":\"Close\"}})]),_c('div',{staticClass:\"modal-body\"},[(_vm.updateStarted)?_c('div',[_c('p',[_vm._v(_vm._s(_vm.$t(\"footer.version.modalUpdateStarted\")))]),_c('div',{staticClass:\"progress my-3\"},[_c('div',{staticClass:\"progress-bar progress-bar-striped progress-bar-animated\",style:({ width: _vm.uploadProgress + '%' }),attrs:{\"role\":\"progressbar\"}})]),_c('p',[_vm._v(_vm._s(_vm.updateStatus)+_vm._s(_vm.uploadMessage))])]):_c('div',[_c('p',[_c('small',[_vm._v(\" \"+_vm._s(_vm.$t(\"footer.version.modalInstalledVersion\"))+\": \"+_vm._s(_vm.installed)+\" \")])]),(_vm.releaseNotes)?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.releaseNotes)}}):_c('p',[_vm._v(\" \"+_vm._s(_vm.$t(\"footer.version.modalNoReleaseNotes\"))+\" \"),_c('a',{attrs:{\"href\":_vm.releaseNotesUrl(_vm.available)}},[_vm._v(\"GitHub\")]),_vm._v(\". \")])])]),_c('div',{staticClass:\"modal-footer d-flex justify-content-between\"},[_c('button',{staticClass:\"btn btn-outline-secondary\",attrs:{\"type\":\"button\",\"disabled\":_vm.updateStarted,\"data-bs-dismiss\":\"modal\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"footer.version.modalCancel\"))+\" \")]),_c('div',[(_vm.hasUpdater)?_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\",\"disabled\":_vm.updateStarted},on:{\"click\":_vm.update}},[(_vm.updateStarted)?_c('span',[_c('span',{staticClass:\"spinner-border spinner-border-sm\",attrs:{\"role\":\"status\",\"aria-hidden\":\"true\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"footer.version.modalUpdate\"))+\" \")]):_c('span',[_vm._v(_vm._s(_vm.$t(\"footer.version.modalUpdateNow\")))])]):_c('a',{staticClass:\"btn btn-primary\",attrs:{\"href\":_vm.releaseNotesUrl(_vm.available)}},[_vm._v(\" \"+_vm._s(_vm.$t(\"footer.version.modalDownload\"))+\" \")])])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Version.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Version.vue?vue&type=template&id=7872ae76&scoped=true&\"\nimport script from \"./Version.vue?vue&type=script&lang=js&\"\nexport * from \"./Version.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Version.vue?vue&type=style&index=0&id=7872ae76&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7872ae76\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('button',{staticClass:\"btn btn-link pe-0 text-decoration-none link-dark text-nowrap\",attrs:{\"data-bs-toggle\":\"modal\",\"data-bs-target\":\"#savingsModal\"}},[_c('span',{staticClass:\"d-inline d-sm-none\"},[_vm._v(_vm._s(_vm.$t(\"footer.savings.footerShort\", { percent: _vm.percent })))]),_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(_vm._s(_vm.$t(\"footer.savings.footerLong\", { percent: _vm.percent })))]),_c('fa-icon',{staticClass:\"icon ms-2 text-evcc\",attrs:{\"icon\":\"sun\"}})],1),_c('div',{ref:\"modal\",staticClass:\"modal fade\",attrs:{\"id\":\"savingsModal\",\"tabindex\":\"-1\",\"role\":\"dialog\",\"aria-hidden\":\"true\"}},[_c('div',{staticClass:\"modal-dialog modal-dialog-centered modal-dialog-scrollable\",attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_c('h5',{staticClass:\"modal-title\"},[_c('span',{staticClass:\"d-block d-sm-none\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"footer.savings.modalTitleShort\", { percent: _vm.percent, total: _vm.fmtKw(_vm.totalCharged * 1000, true, false), }))+\" \")]),_c('span',{staticClass:\"d-none d-sm-block\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"footer.savings.modalTitleLong\", { percent: _vm.percent, total: _vm.fmtKw(_vm.totalCharged * 1000, true, false), }))+\" \")])]),_c('button',{staticClass:\"btn-close\",attrs:{\"type\":\"button\",\"data-bs-dismiss\":\"modal\",\"aria-label\":\"Close\"}})]),_c('div',{staticClass:\"modal-body py-4\"},[_c('div',{staticClass:\"chart-container mb-3\"},[_c('div',{staticClass:\"chart-legend d-flex flex-wrap justify-content-between mb-1\"},[_c('div',{staticClass:\"text-nowrap\"},[_c('fa-icon',{staticClass:\"text-evcc\",attrs:{\"icon\":\"square\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"footer.savings.modalChartSelf\", { self: _vm.fmtKw(_vm.selfConsumptionCharged * 1000, true, false), }))+\" \")],1),_c('div',{staticClass:\"text-nowrap\"},[_c('fa-icon',{staticClass:\"text-grid\",attrs:{\"icon\":\"square\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"footer.savings.modalChartGrid\", { grid: _vm.fmtKw(_vm.gridCharged * 1000, true, false), }))+\" \")],1)]),_c('div',{staticClass:\"chart d-flex justify-content-stretch mb-1 rounded overflow-hidden\"},[(_vm.totalCharged > 0)?_c('div',{staticClass:\"chart-item chart-item--self d-flex justify-content-center text-white flex-shrink-1\",style:({ width: (_vm.percent + \"%\") })},[_c('span',{staticClass:\"text-truncate\"},[_vm._v(\" \"+_vm._s(_vm.percent)+\"% \")])]):_vm._e(),(_vm.totalCharged > 0)?_c('div',{staticClass:\"chart-item chart-item--grid d-flex justify-content-center text-white flex-shrink-1\",style:({ width: ((100 - _vm.percent) + \"%\") })},[_c('span',{staticClass:\"text-truncate\"},[_vm._v(\" \"+_vm._s(100 - _vm.percent)+\"% \")])]):_vm._e(),(_vm.totalCharged === 0)?_c('div',{staticClass:\"chart-item chart-item--no-data d-flex justify-content-center text-white w-100\"},[_c('span',[_vm._v(_vm._s(_vm.$t(\"footer.savings.modalNoData\")))])]):_vm._e()])]),_c('p',{staticClass:\"mb-3\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"footer.savings.modalSavingsPrice\"))+\": \"),_c('strong',[_vm._v(_vm._s(_vm.fmtPricePerKWh(_vm.effectivePrice, _vm.currency)))]),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t(\"footer.savings.modalSavingsTotal\"))+\": \"),_c('strong',[_vm._v(_vm._s(_vm.fmtMoney(_vm.amount, _vm.currency)))])]),_c('p',{staticClass:\"small text-muted mb-3\"},[_c('a',{staticClass:\"text-muted\",attrs:{\"href\":\"https://docs.evcc.io/docs/guides/setup/#ersparnisberechnung\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"footer.savings.modalExplaination\")))]),_vm._v(\": \"),_c('span',{staticClass:\"text-nowrap\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"footer.savings.modalExplainationGrid\", { gridPrice: _vm.fmtPricePerKWh(_vm.gridPrice, _vm.currency), })))]),_vm._v(\", \"),_c('span',{staticClass:\"text-nowrap\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"footer.savings.modalExplainationFeedIn\", { feedInPrice: _vm.fmtPricePerKWh(_vm.feedInPrice, _vm.currency), }))+\" \")]),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t(\"footer.savings.modalServerStart\", { since: _vm.fmtTimeAgo(_vm.secondsSinceStart()), }))+\" \")]),_c('hr',{staticClass:\"mb-4\"}),_c('Sponsor',{staticClass:\"mb-4\",attrs:{\"sponsor\":_vm.sponsor}}),_c('p',{staticClass:\"small text-muted mb-0\"},[_c('strong',{staticClass:\"text-primary\"},[_c('fa-icon',{attrs:{\"icon\":\"flask\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"footer.savings.experimentalLabel\"))+\": \")],1),_vm._v(\" \"+_vm._s(_vm.$t(\"footer.savings.experimentalText\"))+\" \"),_c('a',{attrs:{\"href\":\"https://github.com/evcc-io/evcc/discussions/2104\",\"target\":\"_blank\"}},[_vm._v(\"GitHub Discussions\")]),_vm._v(\". \")])],1)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n data: function () {\n return {\n fmtLimit: 100,\n fmtDigits: 1,\n };\n },\n methods: {\n round: function (num, precision) {\n var base = 10 ** precision;\n return (Math.round(num * base) / base).toFixed(precision);\n },\n fmt: function (val) {\n if (val === undefined || val === null) {\n return 0;\n }\n val = Math.abs(val);\n return val >= this.fmtLimit ? this.round(val / 1e3, this.fmtDigits) : this.round(val, 0);\n },\n fmtKw: function (watt, kw = true, withUnit = true) {\n const digits = kw ? 1 : 0;\n const value = kw ? watt / 1000 : watt;\n let unit = \"\";\n if (withUnit) {\n unit = kw ? \" kW\" : \" W\";\n }\n return (\n this.$n(value, { minimumFractionDigits: digits, maximumFractionDigits: digits }) + unit\n );\n },\n fmtUnit: function (val) {\n return Math.abs(val) >= this.fmtLimit ? \"k\" : \"\";\n },\n fmtDuration: function (d) {\n if (d <= 0 || d == null) {\n return \"—\";\n }\n var seconds = \"0\" + (d % 60);\n var minutes = \"0\" + (Math.floor(d / 60) % 60);\n var hours = \"\" + Math.floor(d / 3600);\n if (hours.length < 2) {\n hours = \"0\" + hours;\n }\n return hours + \":\" + minutes.substr(-2) + \":\" + seconds.substr(-2);\n },\n fmtShortDuration: function (duration = 0, withUnit = false) {\n if (duration <= 0) {\n return \"—\";\n }\n var seconds = duration % 60;\n var minutes = Math.floor(duration / 60) % 60;\n var hours = Math.floor(duration / 3600);\n var result = \"\";\n if (hours >= 1) {\n result = hours + \":\" + `${minutes}`.padStart(2, \"0\");\n } else if (minutes >= 1) {\n result = minutes + \":\" + `${seconds}`.padStart(2, \"0\");\n } else {\n result = `${seconds}`;\n }\n if (withUnit) {\n result += this.fmtShortDurationUnit(duration);\n }\n return result;\n },\n fmtShortDurationUnit: function (duration = 0) {\n if (duration <= 0) {\n return \"\";\n }\n var minutes = Math.floor(duration / 60) % 60;\n var hours = Math.floor(duration / 3600);\n if (hours >= 1) {\n return \"h\";\n }\n if (minutes >= 1) {\n return \"m\";\n }\n return \"s\";\n },\n fmtDayString: function (date) {\n const YY = `${date.getFullYear()}`;\n const MM = `${date.getMonth() + 1}`.padStart(2, \"0\");\n const DD = `${date.getDate()}`.padStart(2, \"0\");\n return `${YY}-${MM}-${DD}`;\n },\n fmtTimeString: function (date) {\n const HH = `${date.getHours()}`.padStart(2, \"0\");\n const mm = `${date.getMinutes()}`.padStart(2, \"0\");\n return `${HH}:${mm}`;\n },\n fmtAbsoluteDate: function (date) {\n return new Intl.DateTimeFormat(this.$i18n.locale, {\n weekday: \"short\",\n hour: \"numeric\",\n minute: \"numeric\",\n }).format(date);\n },\n fmtMoney: function (amout = 0, currency = \"EUR\") {\n return this.$n(amout, { style: \"currency\", currency });\n },\n fmtPricePerKWh: function (amout = 0, currency = \"EUR\") {\n let unit = currency;\n let value = amout;\n let maximumFractionDigits = 3;\n if ([\"EUR\", \"USD\"].includes(currency)) {\n value *= 100;\n unit = \"ct\";\n maximumFractionDigits = 1;\n }\n return `${this.$n(value, { style: \"decimal\", maximumFractionDigits })} ${unit}/kWh`;\n },\n fmtTimeAgo: function (elapsed) {\n const units = {\n day: 24 * 60 * 60 * 1000,\n hour: 60 * 60 * 1000,\n minute: 60 * 1000,\n second: 1000,\n };\n\n const rtf = new Intl.RelativeTimeFormat(this.$i18n.locale, { numeric: \"auto\" });\n\n // \"Math.abs\" accounts for both \"past\" & \"future\" scenarios\n for (var u in units)\n if (Math.abs(elapsed) > units[u] || u == \"second\")\n return rtf.format(Math.round(elapsed / units[u]), u);\n },\n },\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.sponsor)?_c('div',[_c('p',{staticClass:\"mb-3\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"footer.sponsor.thanks\", { sponsor: _vm.sponsor }))+\" \")]),_c('div',{staticClass:\"d-flex justify-content-center flex-column\"},[_c('button',{ref:\"confetti\",staticClass:\"btn btn-primary mb-2 confetti-button bg-evcc\",on:{\"click\":_vm.surprise}},[_c('fa-icon',{staticClass:\"icon me-1 solid\",attrs:{\"icon\":['fas', 'heart']}}),_vm._v(\" \"+_vm._s(_vm.$t(\"footer.sponsor.confetti\"))+\" \")],1),_c('a',{staticClass:\"small text-muted text-center\",attrs:{\"href\":\"https://evcc.io/sticker\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"footer.sponsor.sticker\"))+\" \")])])]):_c('div',[_c('p',{staticClass:\"mb-3\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"footer.sponsor.supportUs\"))+\" \")]),_c('div',{staticClass:\"d-flex justify-content-center flex-column\"},[_c('a',{staticClass:\"btn btn-outline-primary mb-2\",attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/sponsors/andig\"}},[_c('fa-icon',{staticClass:\"icon me-1\",attrs:{\"icon\":['far', 'heart']}}),_vm._v(\" \"+_vm._s(_vm.$t(\"footer.sponsor.becomeSponsor\"))+\" \")],1),_c('div',{staticClass:\"small text-muted text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"footer.sponsor.confettiPromise\"))+\" \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sponsor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sponsor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Sponsor.vue?vue&type=template&id=6edb9fae&scoped=true&\"\nimport script from \"./Sponsor.vue?vue&type=script&lang=js&\"\nexport * from \"./Sponsor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Sponsor.vue?vue&type=style&index=0&id=6edb9fae&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6edb9fae\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Savings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Savings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Savings.vue?vue&type=template&id=bd18982c&scoped=true&\"\nimport script from \"./Savings.vue?vue&type=script&lang=js&\"\nexport * from \"./Savings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Savings.vue?vue&type=style&index=0&id=bd18982c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bd18982c\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Footer.vue?vue&type=template&id=2627c98e&\"\nimport script from \"./Footer.vue?vue&type=script&lang=js&\"\nexport * from \"./Footer.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.iconVisible),expression:\"iconVisible\"}],staticClass:\"btn btn-link text-decoration-none link-light text-nowrap\",attrs:{\"href\":\"#\",\"data-bs-toggle\":\"modal\",\"data-bs-target\":\"#notificationModal\"}},[_c('fa-icon',{class:_vm.iconClass,attrs:{\"icon\":\"exclamation-triangle\"}})],1),_c('div',{staticClass:\"modal fade\",attrs:{\"id\":\"notificationModal\",\"tabindex\":\"-1\",\"role\":\"dialog\",\"aria-hidden\":\"true\"}},[_c('div',{staticClass:\"modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable\",attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_c('h5',{staticClass:\"modal-title\"},[_vm._v(_vm._s(_vm.$t(\"notifications.modalTitle\")))]),_c('button',{staticClass:\"btn-close\",attrs:{\"type\":\"button\",\"data-bs-dismiss\":\"modal\",\"aria-label\":\"Close\"}})]),_c('div',{staticClass:\"modal-body\"},_vm._l((_vm.notifications),function(msg,index){return _c('div',{key:index},[_c('small',{staticClass:\"d-flex justify-content-end mt-3\",attrs:{\"title\":_vm.fmtAbsoluteDate(msg.time)}},[_vm._v(\" \"+_vm._s(_vm.fmtTimeAgo(msg.time - new Date()))+\" \")]),_c('p',{staticClass:\"d-flex align-items-baseline\"},[_c('fa-icon',{staticClass:\"flex-grow-0 d-block\",class:{\n\t\t\t\t\t\t\t\t\t'text-danger': msg.type === 'error',\n\t\t\t\t\t\t\t\t\t'text-warning': msg.type === 'warn',\n\t\t\t\t\t\t\t\t},attrs:{\"icon\":\"exclamation-triangle\"}}),_c('span',{staticClass:\"flex-grow-1 px-2 py-1 text-break\"},[_vm._v(\" \"+_vm._s(msg.message)+\" \")]),(msg.count > 1)?_c('span',{staticClass:\"badge rounded-pill bg-secondary\"},[_vm._v(\" \"+_vm._s(msg.count)+\" \")]):_vm._e()],1)])}),0),_c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-outline-secondary\",attrs:{\"type\":\"button\",\"data-bs-dismiss\":\"modal\",\"aria-label\":\"Close\"},on:{\"click\":_vm.clear}},[_vm._v(\" \"+_vm._s(_vm.$t(\"notifications.dismissAll\"))+\" \")])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notifications.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Notifications.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Notifications.vue?vue&type=template&id=06be21d4&\"\nimport script from \"./Notifications.vue?vue&type=script&lang=js&\"\nexport * from \"./Notifications.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\n\nfunction setProperty(obj, props, value) {\n const prop = props.shift();\n if (!obj[prop]) {\n Vue.set(obj, prop, {});\n }\n\n if (!props.length) {\n if (value && typeof value === \"object\" && !Array.isArray(value)) {\n obj[prop] = { ...obj[prop], ...value };\n } else {\n obj[prop] = value;\n }\n return;\n }\n\n setProperty(obj[prop], props, value);\n}\n\nconst store = {\n state: {\n loadpoints: [], // ensure array type\n },\n update: function (msg) {\n Object.keys(msg).forEach(function (k) {\n if (typeof window.app[k] === \"function\") {\n window.app[k]({ message: msg[k] });\n } else {\n setProperty(store.state, k.split(\".\"), msg[k]);\n }\n });\n },\n};\n\nexport default store;\n","import axios from \"axios\";\n\nconst { protocol, hostname, port, pathname } = window.location;\n\nconst baseAPI = axios.create({\n baseURL: protocol + \"//\" + hostname + (port ? \":\" + port : \"\") + pathname + \"/\",\n});\n\n// global error handling\nbaseAPI.interceptors.response.use(\n (response) => response,\n (error) => {\n const url = error.config.baseURL + error.config.url;\n const message = `${error.message}: API request failed ${url}`;\n window.app.error({ message });\n }\n);\n\nexport default baseAPI;\n","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=63bd1ae6&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=63bd1ae6&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"63bd1ae6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[(_vm.configured)?_c('Site',_vm._b({},'Site',_vm.state,false)):_c('div',[_c('div',{staticClass:\"row py-5\"},[_c('div',{staticClass:\"col12\"},[_c('p',{staticClass:\"h1 pt-5 pb-2 border-bottom\"},[_vm._v(\"Willkommen bei evcc\")]),_c('p',{staticClass:\"lead pt-2\"},[_c('b',[_vm._v(\"evcc\")]),_vm._v(\" ist dient zur flexiblen Ladesteuerung von Elektrofahrzeugen. \")]),_c('p',{staticClass:\"pt-2\"},[_vm._v(\" Es sieht aus, als wäre Dein \"),_c('b',[_vm._v(\"evcc\")]),_vm._v(\" noch nicht konfiguriert. Um \"),_c('b',[_vm._v(\"evcc\")]),_vm._v(\" zu konfigurieren sind die folgenden Schritte notwendig: \")]),_c('ol',{staticClass:\"pt-2\"},[_c('li',[_vm._v(\" Erzeugen einer Konfigurationsdatei mit Namen \"),_c('code',[_vm._v(\"evcc.yaml\")]),_vm._v(\". Die Standardkonfiguration \"),_c('code',[_vm._v(\"evcc.dist.yaml\")]),_vm._v(\" kann dafür als Vorlage dienen (\"),_c('a',{attrs:{\"href\":\"https://github.com/evcc-io/evcc/blob/master/evcc.dist.yaml\"}},[_vm._v(\"Download\")]),_vm._v(\"). \")]),_c('li',[_vm._v(\"Konfiguration der Wallbox als \"),_c('code',[_vm._v(\"chargers\")]),_vm._v(\".\")]),_c('li',[_vm._v(\" Konfiguration des EVU Zählers und evtl. weiterer Zähler unter \"),_c('code',[_vm._v(\"meters\")]),_vm._v(\". \")]),_c('li',[_vm._v(\" Konfiguration des Netzanschlusses unter \"),_c('code',[_vm._v(\"site\")]),_vm._v(\". In einer Site wird der Netzanschluss mit dem konfigurierten EVU Zähler (\"),_c('code',[_vm._v(\"meter\")]),_vm._v(\") verbunden. \")]),_c('li',[_vm._v(\" Konfiguration eines Ladepunktes unter \"),_c('code',[_vm._v(\"loadpoints\")]),_vm._v(\". In einem Ladepunkt wird die konfigurierte Wallbox (\"),_c('code',[_vm._v(\"charger\")]),_vm._v(\") mit dem Ladepunkt verbunden. \")]),_c('li',[_vm._v(\" Start von \"),_c('b',[_vm._v(\"evcc\")]),_vm._v(\" mit der neu erstellten Konfiguration: \"),_c('code',[_vm._v(\"evcc -c evcc.yaml\")])])]),_c('p',[_vm._v(\"Minimale Beispielkonfiguration für \"),_c('b',[_vm._v(\"evcc\")]),_vm._v(\":\")]),_c('p',[_c('code',[_c('pre',{staticClass:\"mx-3\"},[_vm._v(\" uri: localhost:7070 # Adresse für UI\\n interval: 10s # Regelintervall\\n meters:\\n - name: evu-zähler\\n type: ... # Detailkonfiguration des EVU Zählers\\n - name: ladezähler\\n type: ... # Detailkonfiguration des Ladezählers (optional)\\n chargers:\\n - name: wallbox\\n type: ... # Detailkonfiguration der Wallbox\\n site:\\n title: Home\\n meters:\\n grid: evu-zähler # EVU Zähler\\n loadpoints:\\n - title: Ladepunkt # ui display name\\n charger: wallbox # charger\\n meters:\\n charge: ladezähler # Ladezählers (optional)\\n \")])])]),_c('p',[_vm._v(\" Viel Spass mit \"),_c('b',[_vm._v(\"evcc\")]),_vm._v(\"! Bei Problemen kannst Du uns auf \"),_c('a',{attrs:{\"href\":\"https://github.com/evcc-io/evcc/issues\"}},[_vm._v(\"GitHub\")]),_vm._v(\" erreichen. \")])])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"flex-grow-1 d-flex flex-column\"},[_c('h3',{staticClass:\"d-none d-md-block my-4\"},[_vm._v(\" \"+_vm._s(_vm.siteTitle || \"Home\")+\" \")]),_c('Energyflow',_vm._b({},'Energyflow',_vm.energyflow,false)),_c('hr',{staticClass:\"w-100 my-4\"}),_c('div',{staticClass:\"flex-grow-1 d-flex justify-content-around flex-column\"},[_vm._l((_vm.loadpoints),function(loadpoint,id){return [(id > 0)?_c('hr',{key:id + '_hr',staticClass:\"w-100 my-4\"}):_vm._e(),_c('Loadpoint',_vm._b({key:id,attrs:{\"id\":id,\"single\":_vm.loadpoints.length === 1}},'Loadpoint',loadpoint,false))]})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"row align-items-start align-items-md-center mt-4 energyflow\",on:{\"click\":_vm.toggleDetails}},[_c('Visualization',{staticClass:\"col-12 offset-md-1 col-md-6 offset-lg-1 col-lg-8 offset-xl-1 col-xl-6 offset-xxl-1 col-xl-8 order-md-2\",attrs:{\"showDetails\":_vm.showDetails,\"gridImport\":_vm.gridImport,\"selfConsumption\":_vm.selfConsumption,\"loadpoints\":_vm.loadpointsPower,\"pvExport\":_vm.pvExport,\"batteryCharge\":_vm.batteryCharge,\"batteryDischarge\":_vm.batteryDischarge,\"pvProduction\":_vm.pvProduction,\"homePower\":_vm.homePower,\"batterySoC\":_vm.batterySoC,\"valuesInKw\":_vm.valuesInKw}}),_c('div',{staticClass:\"col-12 col-sm-6 col-md-5 col-lg-3 col-xl-3 order-md-1 mt-2 mt-md-0\",class:(\"\" + (_vm.showDetails ? 'd-block' : \"d-none d-md-block\"))},[_c('div',{staticClass:\"d-flex justify-content-between\",attrs:{\"data-test-pv-production\":\"\"}},[_c('span',{staticClass:\"details-icon text-muted\"},[_c('fa-icon',{attrs:{\"icon\":\"sun\"}})],1),_c('span',{staticClass:\"text-nowrap flex-grow-1\"},[_vm._v(_vm._s(_vm.$t(\"main.energyflow.pvProduction\")))]),_c('span',{staticClass:\"text-end text-nowrap ps-1\"},[_vm._v(_vm._s(_vm.kw(_vm.pvProduction)))])]),_c('div',{staticClass:\"d-flex justify-content-between\",attrs:{\"data-test-home-power\":\"\"}},[_c('span',{staticClass:\"details-icon text-muted\"},[_c('fa-icon',{attrs:{\"icon\":\"home\"}})],1),_c('span',{staticClass:\"text-nowrap flex-grow-1\"},[_vm._v(_vm._s(_vm.$t(\"main.energyflow.homePower\")))]),_c('span',{staticClass:\"text-end text-nowrap ps-1\"},[_vm._v(_vm._s(_vm.kw(_vm.homePower)))])]),_c('div',{staticClass:\"d-flex justify-content-between\",attrs:{\"data-test-loadpoints\":\"\"}},[_c('span',{staticClass:\"details-icon text-muted\"},[_c('fa-icon',{attrs:{\"icon\":\"car\"}})],1),_c('span',{staticClass:\"text-nowrap flex-grow-1\"},[_vm._v(_vm._s(_vm.$tc(\"main.energyflow.loadpoints\", _vm.activeLoadpointsCount, { count: _vm.activeLoadpointsCount, })))]),_c('span',{staticClass:\"text-end text-nowrap ps-1\"},[_vm._v(_vm._s(_vm.kw(_vm.loadpointsPower)))])]),(_vm.batteryConfigured)?_c('div',{staticClass:\"d-flex justify-content-between\",attrs:{\"data-test-battery\":\"\"}},[_c('span',{staticClass:\"details-icon text-muted\"},[_c('BatteryIcon',{attrs:{\"soc\":_vm.batterySoC,\"charge\":_vm.batteryCharge > 0,\"discharge\":_vm.batteryDischarge > 0}})],1),_c('span',{staticClass:\"text-nowrap flex-grow-1 text-truncate\"},[(_vm.batteryCharge)?_c('span',[_vm._v(_vm._s(_vm.$t(\"main.energyflow.batteryCharge\")))]):(_vm.batteryDischarge)?_c('span',[_vm._v(_vm._s(_vm.$t(\"main.energyflow.batteryDischarge\")))]):_c('span',[_vm._v(_vm._s(_vm.$t(\"main.energyflow.battery\")))])]),_c('span',{staticClass:\"text-end text-nowrap ps-1\"},[_vm._v(\" \"+_vm._s(_vm.batterySoC)+\"% / \"+_vm._s(_vm.kw(Math.abs(_vm.batteryPower)))+\" \")])]):_vm._e()]),(_vm.showDetails)?_c('div',{staticClass:\"col-12 col-sm-6 offset-md-6 col-md-6 offset-lg-4 col-lg-8 d-block d-md-flex order-md-3 justify-content-between mt-2\"},[_c('div',{staticClass:\"text-nowrap d-flex d-md-block\",attrs:{\"data-test-grid-import\":\"\"}},[_c('span',{staticClass:\"color-grid details-icon\"},[_c('fa-icon',{attrs:{\"icon\":\"square\"}})],1),_c('span',{staticClass:\"text-nowrap flex-grow-1\"},[_vm._v(_vm._s(_vm.$t(\"main.energyflow.gridImport\")))]),_c('span',{staticClass:\"text-end text-nowrap d-md-none\"},[_vm._v(\" \"+_vm._s(_vm.kw(_vm.gridImport))+\" \")])]),_c('div',{staticClass:\"text-nowrap d-flex d-md-block\",attrs:{\"data-test-self-consumption\":\"\"}},[_c('span',{staticClass:\"color-self details-icon\"},[_c('fa-icon',{attrs:{\"icon\":\"square\"}})],1),_c('span',{staticClass:\"text-nowrap flex-grow-1\"},[_vm._v(_vm._s(_vm.$t(\"main.energyflow.selfConsumption\")))]),_c('span',{staticClass:\"text-end text-nowrap d-md-none\"},[_vm._v(\" \"+_vm._s(_vm.kw(_vm.selfConsumption))+\" \")])]),_c('div',{staticClass:\"text-nowrap d-flex d-md-block\",attrs:{\"data-test-pv-export\":\"\"}},[_c('span',{staticClass:\"color-export details-icon\"},[_c('fa-icon',{attrs:{\"icon\":\"square\"}})],1),_c('span',{staticClass:\"text-nowrap flex-grow-1\"},[_vm._v(_vm._s(_vm.$t(\"main.energyflow.pvExport\")))]),_c('span',{staticClass:\"text-end text-nowrap d-md-none\"},[_vm._v(\" \"+_vm._s(_vm.kw(_vm.pvExport))+\" \")])])]):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"visualization\",class:{ 'visualization--ready': _vm.visualizationReady }},[_c('div',{staticClass:\"label-scale\"},[_c('div',{staticClass:\"d-flex justify-content-start\"},[_c('LabelBar',_vm._b({},'LabelBar',_vm.labelBarProps('top', 'pvProduction'),false),[_c('fa-icon',{attrs:{\"icon\":\"sun\"}})],1),_c('LabelBar',_vm._b({},'LabelBar',_vm.labelBarProps('top', 'batteryDischarge'),false),[_c('BatteryIcon',{attrs:{\"soc\":_vm.batterySoC,\"discharge\":\"\"}})],1),_c('LabelBar',_vm._b({},'LabelBar',_vm.labelBarProps('top', 'gridImport'),false),[_c('GridIcon',{attrs:{\"import\":\"\"}})],1)],1)]),_c('div',{ref:\"site_progress\",staticClass:\"site-progress\"},[_c('div',{staticClass:\"site-progress-bar self-consumption\",style:({ width: _vm.widthTotal(_vm.selfConsumptionAdjusted) })},[(_vm.powerLabelEnoughSpace(_vm.selfConsumption))?_c('span',{staticClass:\"power\"},[_vm._v(\" \"+_vm._s(_vm.kw(_vm.selfConsumption))+\" \")]):(_vm.powerLabelSomeSpace(_vm.selfConsumption))?_c('span',{staticClass:\"power\"},[_vm._v(\" \"+_vm._s(_vm.kwNoUnit(_vm.selfConsumption))+\" \")]):_vm._e()]),_c('div',{staticClass:\"site-progress-bar grid-import\",style:({ width: _vm.widthTotal(_vm.gridImportAdjusted) })},[(_vm.powerLabelEnoughSpace(_vm.gridImport))?_c('span',{staticClass:\"power\"},[_vm._v(\" \"+_vm._s(_vm.kw(_vm.gridImport))+\" \")]):(_vm.powerLabelSomeSpace(_vm.gridImport))?_c('span',{staticClass:\"power\"},[_vm._v(\" \"+_vm._s(_vm.kwNoUnit(_vm.gridImport))+\" \")]):_vm._e()]),_c('div',{staticClass:\"site-progress-bar pv-export\",style:({ width: _vm.widthTotal(_vm.pvExportAdjusted) })},[(_vm.powerLabelEnoughSpace(_vm.pvExport))?_c('span',{staticClass:\"power\"},[_vm._v(\" \"+_vm._s(_vm.kw(_vm.pvExport))+\" \")]):(_vm.powerLabelSomeSpace(_vm.pvExport))?_c('span',{staticClass:\"power\"},[_vm._v(\" \"+_vm._s(_vm.kwNoUnit(_vm.pvExport))+\" \")]):_vm._e()]),(_vm.totalAdjusted <= 0)?_c('div',{staticClass:\"site-progress-bar bg-light border no-wrap w-100\"},[_c('span',[_vm._v(_vm._s(_vm.$t(\"main.energyflow.noEnergy\")))])]):_vm._e()]),_c('div',{staticClass:\"label-scale\"},[_c('div',{staticClass:\"d-flex justify-content-start\"},[_c('LabelBar',_vm._b({},'LabelBar',_vm.labelBarProps('bottom', 'homePower'),false),[_c('fa-icon',{attrs:{\"icon\":\"home\"}})],1),_c('LabelBar',_vm._b({},'LabelBar',_vm.labelBarProps('bottom', 'loadpoints'),false),[_c('fa-icon',{attrs:{\"icon\":\"car\"}})],1),_c('LabelBar',_vm._b({},'LabelBar',_vm.labelBarProps('bottom', 'batteryCharge'),false),[_c('BatteryIcon',{attrs:{\"soc\":_vm.batterySoC,\"charge\":\"\"}})],1),_c('LabelBar',_vm._b({},'LabelBar',_vm.labelBarProps('bottom', 'gridExport'),false),[_c('GridIcon',{attrs:{\"export\":\"\"}})],1)],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{ 'power--in': _vm.charge, 'power--out': _vm.discharge }},[_c('fa-icon',{staticClass:\"battery\",attrs:{\"icon\":_vm.batteryIcon}}),_c('fa-icon',{staticClass:\"arrow\",attrs:{\"icon\":\"angle-double-right\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryIcon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BatteryIcon.vue?vue&type=template&id=2dcca16c&scoped=true&\"\nimport script from \"./BatteryIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./BatteryIcon.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BatteryIcon.vue?vue&type=style&index=0&id=2dcca16c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2dcca16c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{ 'power-import': this.import, 'power-export': this.export }},[_c('svg',{staticClass:\"grid svg-inline--fa fa-home fa-w-18\",attrs:{\"viewBox\":\"0 0 512 512\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xml:space\":\"preserve\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M217.529 46.629H83.817c-8.83 0-16 7.169-16 16v32c0 .196.004.391.011.586v51.22c0 6.209 5.041 11.25 11.25 11.25h22.5c6.209 0 11.25-5.041 11.25-11.25v-35.806h104.701v84.697H83.577c-8.83 0-16 7.169-16 16v32c0 .196.004.391.011.586v51.22c0 6.209 5.041 11.25 11.25 11.25h22.5c6.209 0 11.25-5.041 11.25-11.25v-35.806h104.941v49.925L176.47 506.932l160 .033-39.179-197.538v-50.101h100.402v35.756c0 6.257 5.08 11.337 11.337 11.337h22.674c6.257 0 11.337-5.08 11.337-11.337v-83.756c0-8.831-7.169-16-16-16h-129.75v-84.697h100.642v35.756c0 6.257 5.08 11.337 11.337 11.337h22.674c6.257 0 11.337-5.08 11.337-11.337V62.629c0-8.831-7.169-16-16-16h-129.99V26.162c-.043-12.777-40.058-18.846-40.159-18.633 0 0-39.66 6.092-39.603 18.633v20.467Z\"}})]),_c('fa-icon',{staticClass:\"arrow\",attrs:{\"icon\":\"angle-double-right\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridIcon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GridIcon.vue?vue&type=template&id=c8e84f48&scoped=true&\"\nimport script from \"./GridIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./GridIcon.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GridIcon.vue?vue&type=style&index=0&id=c8e84f48&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c8e84f48\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"label-bar\",class:{\n\t\t'label-bar--hide-icon': _vm.hideIcon,\n\t\t'label-bar--hidden': !_vm.value,\n\t\t'label-bar--top': _vm.top,\n\t\t'label-bar--bottom': _vm.bottom,\n\t\t'label-bar--first': _vm.first,\n\t\t'label-bar--last': _vm.last,\n\t}},[_c('div',{staticClass:\"label-bar-scale\"},[_c('div',{staticClass:\"label-bar-icon\"},[_vm._t(\"default\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LabelBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LabelBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LabelBar.vue?vue&type=template&id=17da7e54&scoped=true&\"\nimport script from \"./LabelBar.vue?vue&type=script&lang=js&\"\nexport * from \"./LabelBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LabelBar.vue?vue&type=style&index=0&id=17da7e54&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"17da7e54\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Visualization.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Visualization.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Visualization.vue?vue&type=template&id=0c035ffc&scoped=true&\"\nimport script from \"./Visualization.vue?vue&type=script&lang=js&\"\nexport * from \"./Visualization.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Visualization.vue?vue&type=style&index=0&id=0c035ffc&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c035ffc\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Energyflow.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Energyflow.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Energyflow.vue?vue&type=template&id=c2b4f05e&scoped=true&\"\nimport script from \"./Energyflow.vue?vue&type=script&lang=js&\"\nexport * from \"./Energyflow.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Energyflow.vue?vue&type=style&index=0&id=c2b4f05e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c2b4f05e\",\n null\n \n)\n\nexport default component.exports","import Energyflow from \"./Energyflow.vue\";\n\nexport default Energyflow;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('p',{staticClass:\"h3 mb-4 d-sm-block\",class:{ 'd-none': _vm.single }},[_vm._v(\" \"+_vm._s(_vm.title || _vm.$t(\"main.loadpoint.fallbackName\"))+\" \")]),(_vm.remoteDisabled == 'soft')?_c('div',{staticClass:\"alert alert-warning mt-4 mb-2\",attrs:{\"role\":\"alert\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"main.loadpoint.remoteDisabledSoft\", { source: _vm.remoteDisabledSource }))+\" \")]):_vm._e(),(_vm.remoteDisabled == 'hard')?_c('div',{staticClass:\"alert alert-danger mt-4 mb-2\",attrs:{\"role\":\"alert\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"main.loadpoint.remoteDisabledHard\", { source: _vm.remoteDisabledSource }))+\" \")]):_vm._e(),_c('div',{staticClass:\"row\"},[_c('Mode',{staticClass:\"col-12 col-md-6 col-lg-4 mb-4\",attrs:{\"mode\":_vm.mode},on:{\"updated\":_vm.setTargetMode}}),_c('Vehicle',_vm._b({staticClass:\"col-12 col-md-6 col-lg-8 mb-4\",on:{\"target-soc-updated\":_vm.setTargetSoC,\"target-time-updated\":_vm.setTargetTime,\"target-time-removed\":_vm.removeTargetTime}},'Vehicle',_vm.vehicle,false))],1),_c('LoadpointDetails',_vm._b({},'LoadpointDetails',_vm.details,false))],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"mb-3\"},[_vm._v(_vm._s(_vm.$t(\"main.mode.title\")))]),_c('div',{staticClass:\"btn-group w-100\",attrs:{\"role\":\"group\"}},[_c('button',{staticClass:\"btn btn-outline-secondary\",class:{ active: _vm.mode == 'off' },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.setTargetMode('off')}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"main.mode.stop\"))+\" \")]),_c('button',{staticClass:\"btn btn-outline-secondary\",class:{ active: _vm.mode == 'now' },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.setTargetMode('now')}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"main.mode.now\"))+\" \")]),_c('button',{staticClass:\"btn btn-outline-secondary\",class:{ active: _vm.mode == 'minpv' },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.setTargetMode('minpv')}}},[_c('span',{staticClass:\"d-inline d-sm-none\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"main.mode.minpvShort\"))+\" \")]),_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"main.mode.minpvLong\"))+\" \")])]),_c('button',{staticClass:\"btn btn-outline-secondary\",class:{ active: _vm.mode == 'pv' },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.setTargetMode('pv')}}},[_c('span',{staticClass:\"d-inline d-sm-none\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"main.mode.pvShort\"))+\" \")]),_c('span',{staticClass:\"d-none d-sm-inline\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"main.mode.pvLong\"))+\" \")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Mode.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Mode.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Mode.vue?vue&type=template&id=1ff39d22&scoped=true&\"\nimport script from \"./Mode.vue?vue&type=script&lang=js&\"\nexport * from \"./Mode.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Mode.vue?vue&type=style&index=0&id=1ff39d22&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1ff39d22\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"mb-3\"},[_vm._v(\" \"+_vm._s(_vm.vehicleTitle || _vm.$t(\"main.vehicle.fallbackName\"))+\" \")]),_c('VehicleSoc',_vm._b({on:{\"target-soc-updated\":_vm.targetSocUpdated}},'VehicleSoc',_vm.vehicleSocProps,false)),_c('VehicleSubline',_vm._b({staticClass:\"my-1\",on:{\"target-time-updated\":_vm.setTargetTime,\"target-time-removed\":_vm.removeTargetTime}},'VehicleSubline',_vm.vehicleSubline,false))],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n methods: {\n // collect all target component properties from current instance\n collectProps: function (component) {\n let data = {};\n for (var p in component.props) {\n data[p] = this[p];\n }\n return data;\n },\n },\n};\n","var render = function () {\nvar _obj, _obj$1;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"vehicle-soc\"},[_c('div',{staticClass:\"progress\"},[_c('div',{staticClass:\"progress-bar\",class:( _obj = {\n\t\t\t\t'progress-bar-striped': _vm.charging,\n\t\t\t\t'progress-bar-animated': _vm.charging\n\t\t\t}, _obj[_vm.progressColor] = true, _obj ),style:({ width: (_vm.vehicleSoCDisplayWidth + \"%\") }),attrs:{\"role\":\"progressbar\"}},[_vm._v(\" \"+_vm._s(_vm.vehicleSoCDisplayValue)+\" \")]),(_vm.remainingSoCWidth > 0 && _vm.enabled)?_c('div',{staticClass:\"progress-bar\",class:( _obj$1 = {}, _obj$1[_vm.progressColor] = true, _obj$1['bg-muted'] = true, _obj$1 ),style:({ width: (_vm.remainingSoCWidth + \"%\"), transition: 'none' }),attrs:{\"role\":\"progressbar\"}}):_vm._e()]),_c('div',{staticClass:\"target\",class:{ 'target--slider-hidden': _vm.allowSliderHiding && _vm.visibleTargetSoC === 100 }},[_c('div',{staticClass:\"target-label d-flex align-items-center justify-content-center\",style:({ left: (_vm.visibleTargetSoC + \"%\") })},[_vm._v(\" \"+_vm._s(_vm.visibleTargetSoC)+\"% \")]),_c('input',{staticClass:\"target-slider\",attrs:{\"type\":\"range\",\"min\":\"0\",\"max\":\"100\",\"step\":\"5\"},domProps:{\"value\":_vm.visibleTargetSoC},on:{\"input\":_vm.movedTargetSoC,\"mousedown\":_vm.changeTargetSoCStart,\"touchstart\":_vm.changeTargetSoCStart,\"mouseup\":_vm.changeTargetSoCEnd,\"touchend\":_vm.changeTargetSoCEnd}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VehicleSoc.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VehicleSoc.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./VehicleSoc.vue?vue&type=template&id=66f68a62&scoped=true&\"\nimport script from \"./VehicleSoc.vue?vue&type=script&lang=js&\"\nexport * from \"./VehicleSoc.vue?vue&type=script&lang=js&\"\nimport style0 from \"./VehicleSoc.vue?vue&type=style&index=0&id=66f68a62&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"66f68a62\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex justify-content-between align-items-center\"},[_c('small',{staticClass:\"text-secondary\"},[(_vm.minSoCActive)?_c('span',[_c('fa-icon',{staticClass:\"text-muted me-1\",attrs:{\"icon\":\"exclamation-circle\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"main.vehicleSubline.mincharge\", { soc: _vm.minSoC }))+\" \")],1):_vm._e()]),_c('TargetCharge',_vm._b({on:{\"target-time-updated\":_vm.setTargetTime,\"target-time-removed\":_vm.removeTargetTime}},'TargetCharge',_vm.targetCharge,false))],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('button',{staticClass:\"target-time-button btn btn-link btn-sm pe-0\",class:{\n\t\t\tinvisible: !_vm.targetSoC,\n\t\t\t'text-dark': _vm.targetTimeActive,\n\t\t\t'text-secondary': !_vm.targetTimeActive,\n\t\t},attrs:{\"data-bs-toggle\":\"modal\",\"data-bs-target\":(\"#\" + _vm.modalId)}},[_vm._v(\" \"+_vm._s(_vm.targetTimeLabel())),_c('fa-icon',{staticClass:\"ms-1\",attrs:{\"icon\":\"clock\"}})],1),_c('div',{staticClass:\"modal fade\",attrs:{\"id\":_vm.modalId,\"tabindex\":\"-1\",\"role\":\"dialog\",\"aria-hidden\":\"true\"}},[_c('div',{staticClass:\"modal-dialog modal-dialog-centered modal-dialog-scrollable\",attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_c('h5',{staticClass:\"modal-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"main.targetCharge.modalTitle\"))+\" \")]),_c('button',{staticClass:\"btn-close\",attrs:{\"type\":\"button\",\"data-bs-dismiss\":\"modal\",\"aria-label\":\"Close\"}})]),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.setTargetTime.apply(null, arguments)}}},[_c('div',{staticClass:\"modal-body\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{staticClass:\"mb-3\",attrs:{\"for\":\"targetTimeLabel\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('main.targetCharge.description', { targetSoC: _vm.targetSoC }))}}),_c('div',{staticClass:\"d-flex justify-content-between\",style:({ 'max-width': '350px' })},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedDay),expression:\"selectedDay\"}],staticClass:\"form-select me-2\",style:({ 'flex-basis': '60%' }),on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedDay=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.dayOptions()),function(opt){return _c('option',{key:opt.value,domProps:{\"value\":opt.value}},[_vm._v(\" \"+_vm._s(opt.name)+\" \")])}),0),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedTime),expression:\"selectedTime\"}],staticClass:\"form-control ms-2\",style:({ 'flex-basis': '40%' }),attrs:{\"type\":\"time\",\"step\":60 * 5,\"required\":\"\"},domProps:{\"value\":(_vm.selectedTime)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.selectedTime=$event.target.value}}})])]),(!_vm.selectedTargetTimeValid)?_c('p',{staticClass:\"text-danger mb-0\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"main.targetCharge.targetIsInThePast\"))+\" \")]):_vm._e(),_c('p',{staticClass:\"small mt-3 text-muted\"},[_c('strong',{staticClass:\"text-primary\"},[_c('fa-icon',{attrs:{\"icon\":\"flask\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"main.targetCharge.experimentalLabel\"))+\": \")],1),_vm._v(\" \"+_vm._s(_vm.$t(\"main.targetCharge.experimentalText\"))+\" \"),_c('a',{attrs:{\"href\":\"https://github.com/evcc-io/evcc/discussions/1433\",\"target\":\"_blank\"}},[_vm._v(\"GitHub Discussions\")]),_vm._v(\". \")])]),_c('div',{staticClass:\"modal-footer d-flex justify-content-between\"},[_c('button',{staticClass:\"btn btn-outline-secondary\",attrs:{\"type\":\"button\",\"data-bs-dismiss\":\"modal\"},on:{\"click\":_vm.removeTargetTime}},[_vm._v(\" \"+_vm._s(_vm.$t(\"main.targetCharge.remove\"))+\" \")]),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"submit\",\"data-bs-dismiss\":\"modal\",\"disabled\":!_vm.selectedTargetTimeValid}},[_vm._v(\" \"+_vm._s(_vm.$t(\"main.targetCharge.activate\"))+\" \")])])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TargetCharge.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TargetCharge.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TargetCharge.vue?vue&type=template&id=28849959&\"\nimport script from \"./TargetCharge.vue?vue&type=script&lang=js&\"\nexport * from \"./TargetCharge.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VehicleSubline.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VehicleSubline.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./VehicleSubline.vue?vue&type=template&id=339c9c59&\"\nimport script from \"./VehicleSubline.vue?vue&type=script&lang=js&\"\nexport * from \"./VehicleSubline.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Vehicle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Vehicle.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Vehicle.vue?vue&type=template&id=64726dc5&\"\nimport script from \"./Vehicle.vue?vue&type=script&lang=js&\"\nexport * from \"./Vehicle.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-6 col-sm-3 col-lg-2 mt-3 offset-lg-4\"},[_c('div',{staticClass:\"mb-2 value\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"main.loadpointDetails.power\"))+\" \"),(_vm.chargePower && _vm.activePhases)?_c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.phaseTooltip }),expression:\"{ content: phaseTooltip }\"}],staticClass:\"badge rounded-pill bg-secondary text-light cursor-pointer d-inline-flex align-items-center\",attrs:{\"tabindex\":\"0\"}},[_c('div',[_vm._v(_vm._s(_vm.activePhases)+\"P\")]),(_vm.phaseTimerVisible)?_c('WaitingDots',{attrs:{\"direction\":_vm.phaseAction === 'scale1p' ? 'down' : 'up'}}):_vm._e()],1):_vm._e(),(_vm.climater == 'heating')?_c('fa-icon',{staticClass:\"text-primary ms-1\",attrs:{\"icon\":\"temperature-low\"}}):_vm._e(),(_vm.climater == 'cooling')?_c('fa-icon',{staticClass:\"text-primary ms-1\",attrs:{\"icon\":\"temperature-high\"}}):_vm._e(),(_vm.climater == 'on')?_c('fa-icon',{staticClass:\"text-primary ms-1\",attrs:{\"icon\":\"thermometer-half\"}}):_vm._e()],1),_c('h3',{staticClass:\"value\"},[_vm._v(\" \"+_vm._s(_vm.fmt(_vm.chargePower))+\" \"),_c('small',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.fmtUnit(_vm.chargePower))+\"W\")]),(_vm.pvTimerVisible)?_c('small',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({\n\t\t\t\t\t\tcontent: _vm.$t((\"main.loadpointDetails.tooltip.pv.\" + _vm.pvAction), {\n\t\t\t\t\t\t\tremaining: _vm.fmtShortDuration(_vm.pvRemainingInterpolated, true),\n\t\t\t\t\t\t}),\n\t\t\t\t\t}),expression:\"{\\n\\t\\t\\t\\t\\t\\tcontent: $t(`main.loadpointDetails.tooltip.pv.${pvAction}`, {\\n\\t\\t\\t\\t\\t\\t\\tremaining: fmtShortDuration(pvRemainingInterpolated, true),\\n\\t\\t\\t\\t\\t\\t}),\\n\\t\\t\\t\\t\\t}\"}],staticClass:\"text-muted cursor-pointer d-inline-block align-bottom\",staticStyle:{\"margin-bottom\":\"0.1em\"},attrs:{\"tabindex\":\"0\"}},[_c('WaitingDots',{attrs:{\"direction\":_vm.pvAction === 'disable' ? 'down' : 'up'}})],1):_vm._e()])]),_c('div',{staticClass:\"col-6 col-sm-3 col-lg-2 mt-3\"},[_c('div',{staticClass:\"mb-2 value\"},[_vm._v(_vm._s(_vm.$t(\"main.loadpointDetails.charged\")))]),_c('h3',{staticClass:\"value\"},[_vm._v(\" \"+_vm._s(_vm.fmt(_vm.chargedEnergy))+\" \"),_c('small',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.fmtUnit(_vm.chargedEnergy))+\"Wh\")])])]),(_vm.vehicleRange && _vm.vehicleRange >= 0)?_c('div',{staticClass:\"col-6 col-sm-3 col-lg-2 mt-3\"},[_c('div',{staticClass:\"mb-2 value\"},[_vm._v(_vm._s(_vm.$t(\"main.loadpointDetails.vehicleRange\")))]),_c('h3',{staticClass:\"value\"},[_vm._v(\" \"+_vm._s(Math.round(_vm.vehicleRange))+\" \"),_c('small',{staticClass:\"text-muted\"},[_vm._v(\"km\")])])]):_c('div',{staticClass:\"col-6 col-sm-3 col-lg-2 mt-3\"},[_c('div',{staticClass:\"mb-2 value\"},[_vm._v(_vm._s(_vm.$t(\"main.loadpointDetails.duration\")))]),_c('h3',{staticClass:\"value\"},[_vm._v(\" \"+_vm._s(_vm.fmtShortDuration(_vm.chargeDurationInterpolated))+\" \"),_c('small',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.fmtShortDurationUnit(_vm.chargeDurationInterpolated)))])])]),(_vm.vehiclePresent)?_c('div',{staticClass:\"col-6 col-sm-3 col-lg-2 mt-3\"},[_c('div',{staticClass:\"mb-2 value\"},[_vm._v(_vm._s(_vm.$t(\"main.loadpointDetails.remaining\")))]),_c('h3',{staticClass:\"value\"},[_vm._v(\" \"+_vm._s(_vm.fmtShortDuration(_vm.chargeRemainingDurationInterpolated))+\" \"),_c('small',{staticClass:\"text-muted\"},[_vm._v(_vm._s(_vm.fmtShortDurationUnit(_vm.chargeRemainingDurationInterpolated, true)))])])]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"root position-relative\",class:(\"direction-\" + _vm.direction)},[_c('shopicon-options-filled',{staticClass:\"dots dots-back\"}),_c('shopicon-options-filled',{staticClass:\"dots dots-front position-absolute start-0 top-0\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WaitingDots.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WaitingDots.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WaitingDots.vue?vue&type=template&id=60c12baf&scoped=true&\"\nimport script from \"./WaitingDots.vue?vue&type=script&lang=js&\"\nexport * from \"./WaitingDots.vue?vue&type=script&lang=js&\"\nimport style0 from \"./WaitingDots.vue?vue&type=style&index=0&id=60c12baf&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"60c12baf\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadpointDetails.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoadpointDetails.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LoadpointDetails.vue?vue&type=template&id=3c1cbb49&\"\nimport script from \"./LoadpointDetails.vue?vue&type=script&lang=js&\"\nexport * from \"./LoadpointDetails.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loadpoint.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loadpoint.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Loadpoint.vue?vue&type=template&id=14c88036&\"\nimport script from \"./Loadpoint.vue?vue&type=script&lang=js&\"\nexport * from \"./Loadpoint.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Site.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Site.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Site.vue?vue&type=template&id=6fe80f62&\"\nimport script from \"./Site.vue?vue&type=script&lang=js&\"\nexport * from \"./Site.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Main.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Main.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Main.vue?vue&type=template&id=08f88740&\"\nimport script from \"./Main.vue?vue&type=script&lang=js&\"\nexport * from \"./Main.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"row mt-4 border-bottom\"},[_c('div',{staticClass:\"col-12\"},[_c('p',{staticClass:\"h1\"},[_vm._v(_vm._s(_vm.title || \"Home\"))])])]),_c('div',{staticClass:\"row h5\"},[_c('div',{staticClass:\"col-md-4\"}),_c('div',{staticClass:\"col-6 col-md-2 py-3\"},[_vm._v(\" Netzzähler: \"),(_vm.gridConfigured)?_c('span',{staticClass:\"text-primary\"},[_vm._v(\"✓\")]):_c('span',{staticClass:\"text-primary\"},[_vm._v(\"—\")])]),_c('div',{staticClass:\"col-6 col-md-2 py-3\"},[_vm._v(\" PV Zähler: \"),(_vm.pvConfigured)?_c('span',{staticClass:\"text-primary\"},[_vm._v(\"✓\")]):_c('span',{staticClass:\"text-primary\"},[_vm._v(\"—\")])]),_c('div',{staticClass:\"col-6 col-md-2 py-3\"},[_vm._v(\" Batteriezähler: \"),(_vm.batteryConfigured)?_c('span',{staticClass:\"text-primary\"},[_vm._v(\"✓\")]):_c('span',{staticClass:\"text-primary\"},[_vm._v(\"—\")])])]),_vm._l((_vm.loadpoints),function(loadpoint,id){return _c('div',{key:id,attrs:{\"id\":'loadpoint-' + id,\"loadpoint\":loadpoint}},[_c('div',{staticClass:\"row mt-4 border-bottom\"},[_c('div',{staticClass:\"col-12\"},[_c('p',{staticClass:\"h1\"},[_vm._v(_vm._s(loadpoint.title || \"Ladepunkt\"))])])]),_c('div',{staticClass:\"row h5\"},[_c('div',{staticClass:\"col-md-4\"}),_c('div',{staticClass:\"col-6 col-md-2 py-3\"},[_vm._v(\" Ladezähler: \"),(loadpoint.chargeConfigured)?_c('span',{staticClass:\"text-primary\"},[_vm._v(\"✓\")]):_c('span',{staticClass:\"text-primary\"},[_vm._v(\"—\")])]),_c('div',{staticClass:\"col-6 col-md-2 py-3\"},[_vm._v(\" Phasen: \"),_c('span',{staticClass:\"text-primary\"},[_vm._v(_vm._s(loadpoint.phases)+\"p\")])]),_c('div',{staticClass:\"col-6 col-md-2 py-3\"},[_vm._v(\" Min. Strom: \"),_c('span',{staticClass:\"text-primary\"},[_vm._v(_vm._s(loadpoint.minCurrent)+\"A\")])]),_c('div',{staticClass:\"col-6 col-md-2 py-3\"},[_vm._v(\" Max. Strom: \"),_c('span',{staticClass:\"text-primary\"},[_vm._v(_vm._s(loadpoint.maxCurrent)+\"A\")])])]),_c('div',{staticClass:\"row h5\"},[_c('div',{staticClass:\"col-md-4\"}),_c('div',{staticClass:\"col-md-8 h2\"},[_vm._m(0,true),_c('div',{staticClass:\"row h5\"},[_c('div',{staticClass:\"col-6 py-3\"},[_vm._v(\" Modell: \"),_c('span',{staticClass:\"text-primary\"},[_vm._v(_vm._s(loadpoint.vehicleTitle || \"—\"))])]),_c('div',{staticClass:\"col-6 py-3\"},[_vm._v(\" Kapazität: \"),_c('span',{staticClass:\"text-primary\"},[_vm._v(_vm._s(loadpoint.vehicleCapacity)+\"kWh\")])])])])])])})],2)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row py-3 h2 border-bottom\"},[_c('div',{staticClass:\"col-12\"},[_vm._v(\"Fahrzeug\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Config.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Config.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Config.vue?vue&type=template&id=156c4242&\"\nimport script from \"./Config.vue?vue&type=script&lang=js&\"\nexport * from \"./Config.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import VueRouter from \"vue-router\";\nimport Vue from \"vue\";\nimport Main from \"./views/Main\";\nimport Config from \"./views/Config\";\n\nVue.use(VueRouter);\n\nconst routes = [\n { path: \"/\", component: Main },\n { path: \"/config\", component: Config },\n];\n\nexport default new VueRouter({\n routes,\n linkExactActiveClass: \"active\", // Bootstrap