From db9f5dd73d494dcfaf773339b186bd58b3903bd3 Mon Sep 17 00:00:00 2001 From: andig Date: Mon, 7 Nov 2022 16:32:19 +0100 Subject: [PATCH] Sessions: add odometer (#5069) --- assets/i18n/de.toml | 1 + assets/i18n/en.toml | 1 + core/db/session.go | 1 + core/loadpoint.go | 15 ++++++++++++++- ...loadpoint_database.go => loadpoint_session.go} | 15 +++++++-------- .../{index.2e41d610.js => index.3dafc84f.js} | 2 +- dist/index.html | 2 +- 7 files changed, 26 insertions(+), 11 deletions(-) rename core/{loadpoint_database.go => loadpoint_session.go} (83%) rename dist/assets/{index.2e41d610.js => index.3dafc84f.js} (96%) diff --git a/assets/i18n/de.toml b/assets/i18n/de.toml index 2b693de6e..842a0dee6 100644 --- a/assets/i18n/de.toml +++ b/assets/i18n/de.toml @@ -201,6 +201,7 @@ title = "Ladevorgänge" downloadCsv = "Als CSV herunterladen" loadpoint = "Ladepunkt" vehicle = "Fahrzeug" +odometer = "Kilometerstand" energy = "Geladen" date = "Zeitraum" diff --git a/assets/i18n/en.toml b/assets/i18n/en.toml index c72461711..e726b3c6c 100644 --- a/assets/i18n/en.toml +++ b/assets/i18n/en.toml @@ -207,6 +207,7 @@ date = "Period" [sessions.csv] loadpoint = "Loadpoint" vehicle = "Vehicle" +odometer = "Mileage (km)" identifier = "Identifier" chargedenergy = "Energy (kWh)" meterstart = "Meter Start (kWh)" diff --git a/core/db/session.go b/core/db/session.go index 180caab7d..98f3d5da7 100644 --- a/core/db/session.go +++ b/core/db/session.go @@ -23,6 +23,7 @@ type Session struct { Loadpoint string `json:"loadpoint"` Identifier string `json:"identifier"` Vehicle string `json:"vehicle"` + Odometer float64 `json:"odometer"` MeterStart float64 `json:"meterStart" csv:"Meter Start (kWh)" gorm:"column:meter_start_kwh"` MeterStop float64 `json:"meterStop" csv:"Meter Stop (kWh)" gorm:"column:meter_end_kwh"` ChargedEnergy float64 `json:"chargedEnergy" csv:"Charged Energy (kWh)" gorm:"column:charged_kwh"` diff --git a/core/loadpoint.go b/core/loadpoint.go index 6c7892d52..1de19fdba 100644 --- a/core/loadpoint.go +++ b/core/loadpoint.go @@ -905,7 +905,15 @@ func (lp *LoadPoint) setActiveVehicle(vehicle api.Vehicle) { lp.Lock() lp.unpublishVehicle() - lp.updateSession() + + lp.updateSession(func(session *db.Session) { + var title string + if lp.vehicle != nil { + title = lp.vehicle.Title() + } + + lp.session.Vehicle = title + }) } func (lp *LoadPoint) wakeUpVehicle() { @@ -1039,6 +1047,11 @@ func (lp *LoadPoint) vehicleOdometer() { if odo, err := vs.Odometer(); err == nil { lp.log.DEBUG.Printf("vehicle odometer: %.0fkm", odo) lp.publish(vehicleOdometer, odo) + + // update session once odometer is read + lp.updateSession(func(session *db.Session) { + session.Odometer = odo + }) } else { lp.log.ERROR.Printf("vehicle odometer: %v", err) } diff --git a/core/loadpoint_database.go b/core/loadpoint_session.go similarity index 83% rename from core/loadpoint_database.go rename to core/loadpoint_session.go index 0553a1df8..3fe03049b 100644 --- a/core/loadpoint_database.go +++ b/core/loadpoint_session.go @@ -2,6 +2,7 @@ package core import ( "github.com/evcc-io/evcc/api" + "github.com/evcc-io/evcc/core/db" ) func (lp *LoadPoint) chargeMeterTotal() float64 { @@ -53,21 +54,19 @@ func (lp *LoadPoint) stopSession() { lp.db.Persist(lp.session) } -func (lp *LoadPoint) updateSession() { +type sessionOption func(*db.Session) + +func (lp *LoadPoint) updateSession(opts ...sessionOption) { // test guard if lp.db == nil || lp.session == nil { return } - var title string - if lp.vehicle != nil { - title = lp.vehicle.Title() + for _, opt := range opts { + opt(lp.session) } - if lp.session.Vehicle != title { - lp.session.Vehicle = title - lp.db.Persist(lp.session) - } + lp.db.Persist(lp.session) } func (lp *LoadPoint) finalizeSession() { diff --git a/dist/assets/index.2e41d610.js b/dist/assets/index.3dafc84f.js similarity index 96% rename from dist/assets/index.2e41d610.js rename to dist/assets/index.3dafc84f.js index dccfa0061..d29bf98d4 100644 --- a/dist/assets/index.2e41d610.js +++ b/dist/assets/index.3dafc84f.js @@ -67,4 +67,4 @@ var Hv=Object.defineProperty;var Bv=(t,e,n)=>e in t?Hv(t,e,{enumerable:!0,config * vue-i18n v9.2.2 * (c) 2022 kazuya kawaguchi * Released under the MIT License. - */const tD="9.2.2";function nD(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Is().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Is().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Is().__INTLIFY_PROD_DEVTOOLS__=!1)}RI.__EXTEND_POINT__;let Mv=Oe.__EXTEND_POINT__;const Et=()=>++Mv,Ze={UNEXPECTED_RETURN_TYPE:Mv,INVALID_ARGUMENT:Et(),MUST_BE_CALL_SETUP_TOP:Et(),NOT_INSLALLED:Et(),NOT_AVAILABLE_IN_LEGACY_MODE:Et(),REQUIRED_VALUE:Et(),INVALID_VALUE:Et(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Et(),NOT_INSLALLED_WITH_PROVIDE:Et(),UNEXPECTED_ERROR:Et(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Et(),BRIDGE_SUPPORT_VUE_2_ONLY:Et(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Et(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Et(),__EXTEND_POINT__:Et()};function nt(t,...e){return Ya(t,null,void 0)}const jc=Ar("__transrateVNode"),Wc=Ar("__datetimeParts"),zc=Ar("__numberParts"),Iv=Ar("__setPluralRules");Ar("__intlifyMeta");const Dv=Ar("__injectWithOption");function Kc(t){if(!Be(t))return t;for(const e in t)if(!!pf(t,e))if(!e.includes("."))Be(t[e])&&Kc(t[e]);else{const n=e.split("."),r=n.length-1;let i=t;for(let s=0;s{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(o[l]=o[l]||{},Ds(c,o[l])):Ds(c,o)}else re(a)&&Ds(JSON.parse(a),o)}),i==null&&s)for(const a in o)pf(o,a)&&Kc(o[a]);return o}const xo=t=>!Be(t)||He(t);function Ds(t,e){if(xo(t)||xo(e))throw nt(Ze.INVALID_VALUE);for(const n in t)pf(t,n)&&(xo(t[n])||xo(e[n])?e[n]=t[n]:Ds(t[n],e[n]))}function $v(t){return t.type}function Rv(t,e,n){let r=Be(e.messages)?e.messages:{};"__i18nGlobal"in n&&(r=Ga(t.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const i=Object.keys(r);i.length&&i.forEach(s=>{t.mergeLocaleMessage(s,r[s])});{if(Be(e.datetimeFormats)){const s=Object.keys(e.datetimeFormats);s.length&&s.forEach(o=>{t.mergeDateTimeFormat(o,e.datetimeFormats[o])})}if(Be(e.numberFormats)){const s=Object.keys(e.numberFormats);s.length&&s.forEach(o=>{t.mergeNumberFormat(o,e.numberFormats[o])})}}}function Em(t){return ie(Pa,null,t,0)}const wm="__INTLIFY_META__";let Tm=0;function Cm(t){return(e,n,r,i)=>t(n,r,Ln()||void 0,i)}const rD=()=>{const t=Ln();let e=null;return t&&(e=$v(t)[wm])?{[wm]:e}:null};function bf(t={},e){const{__root:n}=t,r=n===void 0;let i=Se(t.inheritLocale)?t.inheritLocale:!0;const s=cn(n&&i?n.locale.value:re(t.locale)?t.locale:fo),o=cn(n&&i?n.fallbackLocale.value:re(t.fallbackLocale)||He(t.fallbackLocale)||_e(t.fallbackLocale)||t.fallbackLocale===!1?t.fallbackLocale:s.value),a=cn(Ga(s.value,t)),l=cn(_e(t.datetimeFormats)?t.datetimeFormats:{[s.value]:{}}),c=cn(_e(t.numberFormats)?t.numberFormats:{[s.value]:{}});let u=n?n.missingWarn:Se(t.missingWarn)||br(t.missingWarn)?t.missingWarn:!0,d=n?n.fallbackWarn:Se(t.fallbackWarn)||br(t.fallbackWarn)?t.fallbackWarn:!0,f=n?n.fallbackRoot:Se(t.fallbackRoot)?t.fallbackRoot:!0,m=!!t.fallbackFormat,w=Ye(t.missing)?t.missing:null,g=Ye(t.missing)?Cm(t.missing):null,E=Ye(t.postTranslation)?t.postTranslation:null,_=n?n.warnHtmlMessage:Se(t.warnHtmlMessage)?t.warnHtmlMessage:!0,C=!!t.escapeParameter;const S=n?n.modifiers:_e(t.modifiers)?t.modifiers:{};let v=t.pluralRules||n&&n.pluralRules,b;b=(()=>{r&&dm(null);const A={version:tD,locale:s.value,fallbackLocale:o.value,messages:a.value,modifiers:S,pluralRules:v,missing:g===null?void 0:g,missingWarn:u,fallbackWarn:d,fallbackFormat:m,unresolving:!0,postTranslation:E===null?void 0:E,warnHtmlMessage:_,escapeParameter:C,messageResolver:t.messageResolver,__meta:{framework:"vue"}};A.datetimeFormats=l.value,A.numberFormats=c.value,A.__datetimeFormatters=_e(b)?b.__datetimeFormatters:void 0,A.__numberFormatters=_e(b)?b.__numberFormatters:void 0;const $=qI(A);return r&&dm($),$})(),hs(b,s.value,o.value);function x(){return[s.value,o.value,a.value,l.value,c.value]}const N=je({get:()=>s.value,set:A=>{s.value=A,b.locale=s.value}}),O=je({get:()=>o.value,set:A=>{o.value=A,b.fallbackLocale=o.value,hs(b,s.value,A)}}),B=je(()=>a.value),q=je(()=>l.value),Q=je(()=>c.value);function ee(){return Ye(E)?E:null}function I(A){E=A,b.postTranslation=A}function M(){return w}function Y(A){A!==null&&(g=Cm(A)),w=A,b.missing=g}const z=(A,$,J,ne,ue,be)=>{x();let Ce;if(__INTLIFY_PROD_DEVTOOLS__)try{fm(rD()),r||(b.fallbackContext=n?YI():void 0),Ce=A(b)}finally{fm(null),r||(b.fallbackContext=void 0)}else Ce=A(b);if(tt(Ce)&&Ce===qa){const[Me,Ve]=$();return n&&f?ne(n):ue(Me)}else{if(be(Ce))return Ce;throw nt(Ze.UNEXPECTED_RETURN_TYPE)}};function te(...A){return z($=>Reflect.apply(gm,null,[$,...A]),()=>Hc(...A),"translate",$=>Reflect.apply($.t,$,[...A]),$=>$,$=>re($))}function se(...A){const[$,J,ne]=A;if(ne&&!Be(ne))throw nt(Ze.INVALID_ARGUMENT);return te($,J,st({resolvedMessage:!0},ne||{}))}function ce(...A){return z($=>Reflect.apply(_m,null,[$,...A]),()=>Bc(...A),"datetime format",$=>Reflect.apply($.d,$,[...A]),()=>cm,$=>re($))}function he(...A){return z($=>Reflect.apply(bm,null,[$,...A]),()=>Uc(...A),"number format",$=>Reflect.apply($.n,$,[...A]),()=>cm,$=>re($))}function fe(A){return A.map($=>re($)||tt($)||Se($)?Em(String($)):$)}const me={normalize:fe,interpolate:A=>A,type:"vnode"};function R(...A){return z($=>{let J;const ne=$;try{ne.processor=me,J=Reflect.apply(gm,null,[ne,...A])}finally{ne.processor=null}return J},()=>Hc(...A),"translate",$=>$[jc](...A),$=>[Em($)],$=>He($))}function X(...A){return z($=>Reflect.apply(bm,null,[$,...A]),()=>Uc(...A),"number format",$=>$[zc](...A),()=>[],$=>re($)||He($))}function U(...A){return z($=>Reflect.apply(_m,null,[$,...A]),()=>Bc(...A),"datetime format",$=>$[Wc](...A),()=>[],$=>re($)||He($))}function Z(A){v=A,b.pluralRules=v}function pe(A,$){const J=re($)?$:s.value,ne=oe(J);return b.messageResolver(ne,A)!==null}function ge(A){let $=null;const J=wv(b,o.value,s.value);for(let ne=0;ne{i&&(s.value=A,b.locale=A,hs(b,s.value,o.value))}),cr(n.fallbackLocale,A=>{i&&(o.value=A,b.fallbackLocale=A,hs(b,s.value,o.value))}));const j={id:Tm,locale:N,fallbackLocale:O,get inheritLocale(){return i},set inheritLocale(A){i=A,A&&n&&(s.value=n.locale.value,o.value=n.fallbackLocale.value,hs(b,s.value,o.value))},get availableLocales(){return Object.keys(a.value).sort()},messages:B,get modifiers(){return S},get pluralRules(){return v||{}},get isGlobal(){return r},get missingWarn(){return u},set missingWarn(A){u=A,b.missingWarn=u},get fallbackWarn(){return d},set fallbackWarn(A){d=A,b.fallbackWarn=d},get fallbackRoot(){return f},set fallbackRoot(A){f=A},get fallbackFormat(){return m},set fallbackFormat(A){m=A,b.fallbackFormat=m},get warnHtmlMessage(){return _},set warnHtmlMessage(A){_=A,b.warnHtmlMessage=A},get escapeParameter(){return C},set escapeParameter(A){C=A,b.escapeParameter=A},t:te,getLocaleMessage:oe,setLocaleMessage:h,mergeLocaleMessage:p,getPostTranslationHandler:ee,setPostTranslationHandler:I,getMissingHandler:M,setMissingHandler:Y,[Iv]:Z};return j.datetimeFormats=q,j.numberFormats=Q,j.rt=se,j.te=pe,j.tm=le,j.d=ce,j.n=he,j.getDateTimeFormat=T,j.setDateTimeFormat=L,j.mergeDateTimeFormat=D,j.getNumberFormat=H,j.setNumberFormat=G,j.mergeNumberFormat=W,j[Dv]=t.__injectWithOption,j[jc]=R,j[Wc]=U,j[zc]=X,j}function iD(t){const e=re(t.locale)?t.locale:fo,n=re(t.fallbackLocale)||He(t.fallbackLocale)||_e(t.fallbackLocale)||t.fallbackLocale===!1?t.fallbackLocale:e,r=Ye(t.missing)?t.missing:void 0,i=Se(t.silentTranslationWarn)||br(t.silentTranslationWarn)?!t.silentTranslationWarn:!0,s=Se(t.silentFallbackWarn)||br(t.silentFallbackWarn)?!t.silentFallbackWarn:!0,o=Se(t.fallbackRoot)?t.fallbackRoot:!0,a=!!t.formatFallbackMessages,l=_e(t.modifiers)?t.modifiers:{},c=t.pluralizationRules,u=Ye(t.postTranslation)?t.postTranslation:void 0,d=re(t.warnHtmlInMessage)?t.warnHtmlInMessage!=="off":!0,f=!!t.escapeParameterHtml,m=Se(t.sync)?t.sync:!0;let w=t.messages;if(_e(t.sharedMessages)){const b=t.sharedMessages;w=Object.keys(b).reduce((x,N)=>{const O=x[N]||(x[N]={});return st(O,b[N]),x},w||{})}const{__i18n:g,__root:E,__injectWithOption:_}=t,C=t.datetimeFormats,S=t.numberFormats,v=t.flatJson;return{locale:e,fallbackLocale:n,messages:w,flatJson:v,datetimeFormats:C,numberFormats:S,missing:r,missingWarn:i,fallbackWarn:s,fallbackRoot:o,fallbackFormat:a,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:d,escapeParameter:f,messageResolver:t.messageResolver,inheritLocale:m,__i18n:g,__root:E,__injectWithOption:_}}function Yc(t={},e){{const n=bf(iD(t)),r={id:n.id,get locale(){return n.locale.value},set locale(i){n.locale.value=i},get fallbackLocale(){return n.fallbackLocale.value},set fallbackLocale(i){n.fallbackLocale.value=i},get messages(){return n.messages.value},get datetimeFormats(){return n.datetimeFormats.value},get numberFormats(){return n.numberFormats.value},get availableLocales(){return n.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(i){},get missing(){return n.getMissingHandler()},set missing(i){n.setMissingHandler(i)},get silentTranslationWarn(){return Se(n.missingWarn)?!n.missingWarn:n.missingWarn},set silentTranslationWarn(i){n.missingWarn=Se(i)?!i:i},get silentFallbackWarn(){return Se(n.fallbackWarn)?!n.fallbackWarn:n.fallbackWarn},set silentFallbackWarn(i){n.fallbackWarn=Se(i)?!i:i},get modifiers(){return n.modifiers},get formatFallbackMessages(){return n.fallbackFormat},set formatFallbackMessages(i){n.fallbackFormat=i},get postTranslation(){return n.getPostTranslationHandler()},set postTranslation(i){n.setPostTranslationHandler(i)},get sync(){return n.inheritLocale},set sync(i){n.inheritLocale=i},get warnHtmlInMessage(){return n.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(i){n.warnHtmlMessage=i!=="off"},get escapeParameterHtml(){return n.escapeParameter},set escapeParameterHtml(i){n.escapeParameter=i},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(i){},get pluralizationRules(){return n.pluralRules||{}},__composer:n,t(...i){const[s,o,a]=i,l={};let c=null,u=null;if(!re(s))throw nt(Ze.INVALID_ARGUMENT);const d=s;return re(o)?l.locale=o:He(o)?c=o:_e(o)&&(u=o),He(a)?c=a:_e(a)&&(u=a),Reflect.apply(n.t,n,[d,c||u||{},l])},rt(...i){return Reflect.apply(n.rt,n,[...i])},tc(...i){const[s,o,a]=i,l={plural:1};let c=null,u=null;if(!re(s))throw nt(Ze.INVALID_ARGUMENT);const d=s;return re(o)?l.locale=o:tt(o)?l.plural=o:He(o)?c=o:_e(o)&&(u=o),re(a)?l.locale=a:He(a)?c=a:_e(a)&&(u=a),Reflect.apply(n.t,n,[d,c||u||{},l])},te(i,s){return n.te(i,s)},tm(i){return n.tm(i)},getLocaleMessage(i){return n.getLocaleMessage(i)},setLocaleMessage(i,s){n.setLocaleMessage(i,s)},mergeLocaleMessage(i,s){n.mergeLocaleMessage(i,s)},d(...i){return Reflect.apply(n.d,n,[...i])},getDateTimeFormat(i){return n.getDateTimeFormat(i)},setDateTimeFormat(i,s){n.setDateTimeFormat(i,s)},mergeDateTimeFormat(i,s){n.mergeDateTimeFormat(i,s)},n(...i){return Reflect.apply(n.n,n,[...i])},getNumberFormat(i){return n.getNumberFormat(i)},setNumberFormat(i,s){n.setNumberFormat(i,s)},mergeNumberFormat(i,s){n.mergeNumberFormat(i,s)},getChoiceIndex(i,s){return-1},__onComponentInstanceCreated(i){const{componentInstanceCreatedListener:s}=t;s&&s(i,r)}};return r}}const yf={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:t=>t==="parent"||t==="global",default:"parent"},i18n:{type:Object}};function sD({slots:t},e){return e.length===1&&e[0]==="default"?(t.default?t.default():[]).reduce((r,i)=>r=[...r,...He(i.children)?i.children:[i]],[]):e.reduce((n,r)=>{const i=t[r];return i&&(n[r]=i()),n},{})}function Fv(t){return xe}const Sm={name:"i18n-t",props:st({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:t=>tt(t)||!isNaN(t)}},yf),setup(t,e){const{slots:n,attrs:r}=e,i=t.i18n||Ef({useScope:t.scope,__useComponent:!0});return()=>{const s=Object.keys(n).filter(d=>d!=="_"),o={};t.locale&&(o.locale=t.locale),t.plural!==void 0&&(o.plural=re(t.plural)?+t.plural:t.plural);const a=sD(e,s),l=i[jc](t.keypath,a,o),c=st({},r),u=re(t.tag)||Be(t.tag)?t.tag:Fv();return Cr(u,c,l)}}};function oD(t){return He(t)&&!re(t[0])}function Vv(t,e,n,r){const{slots:i,attrs:s}=e;return()=>{const o={part:!0};let a={};t.locale&&(o.locale=t.locale),re(t.format)?o.key=t.format:Be(t.format)&&(re(t.format.key)&&(o.key=t.format.key),a=Object.keys(t.format).reduce((f,m)=>n.includes(m)?st({},f,{[m]:t.format[m]}):f,{}));const l=r(t.value,o,a);let c=[o.key];He(l)?c=l.map((f,m)=>{const w=i[f.type],g=w?w({[f.type]:f.value,index:m,parts:l}):[f.value];return oD(g)&&(g[0].key=`${f.type}-${m}`),g}):re(l)&&(c=[l]);const u=st({},s),d=re(t.tag)||Be(t.tag)?t.tag:Fv();return Cr(d,u,c)}}const Am={name:"i18n-n",props:st({value:{type:Number,required:!0},format:{type:[String,Object]}},yf),setup(t,e){const n=t.i18n||Ef({useScope:"parent",__useComponent:!0});return Vv(t,e,Pv,(...r)=>n[zc](...r))}},km={name:"i18n-d",props:st({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},yf),setup(t,e){const n=t.i18n||Ef({useScope:"parent",__useComponent:!0});return Vv(t,e,Ov,(...r)=>n[Wc](...r))}};function aD(t,e){const n=t;if(t.mode==="composition")return n.__getInstance(e)||t.global;{const r=n.__getInstance(e);return r!=null?r.__composer:t.global.__composer}}function lD(t){const e=o=>{const{instance:a,modifiers:l,value:c}=o;if(!a||!a.$)throw nt(Ze.UNEXPECTED_ERROR);const u=aD(t,a.$),d=xm(c);return[Reflect.apply(u.t,u,[...Lm(d)]),u]};return{created:(o,a)=>{const[l,c]=e(a);Fc&&t.global===c&&(o.__i18nWatcher=cr(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),o.__composer=c,o.textContent=l},unmounted:o=>{Fc&&o.__i18nWatcher&&(o.__i18nWatcher(),o.__i18nWatcher=void 0,delete o.__i18nWatcher),o.__composer&&(o.__composer=void 0,delete o.__composer)},beforeUpdate:(o,{value:a})=>{if(o.__composer){const l=o.__composer,c=xm(a);o.textContent=Reflect.apply(l.t,l,[...Lm(c)])}},getSSRProps:o=>{const[a]=e(o);return{textContent:a}}}}function xm(t){if(re(t))return{path:t};if(_e(t)){if(!("path"in t))throw nt(Ze.REQUIRED_VALUE,"path");return t}else throw nt(Ze.INVALID_VALUE)}function Lm(t){const{path:e,locale:n,args:r,choice:i,plural:s}=t,o={},a=r||{};return re(n)&&(o.locale=n),tt(i)&&(o.plural=i),tt(s)&&(o.plural=s),[e,a,o]}function cD(t,e,...n){const r=_e(n[0])?n[0]:{},i=!!r.useI18nComponentName;(Se(r.globalInstall)?r.globalInstall:!0)&&(t.component(i?"i18n":Sm.name,Sm),t.component(Am.name,Am),t.component(km.name,km)),t.directive("t",lD(e))}function uD(t,e,n){return{beforeCreate(){const r=Ln();if(!r)throw nt(Ze.UNEXPECTED_ERROR);const i=this.$options;if(i.i18n){const s=i.i18n;i.__i18n&&(s.__i18n=i.__i18n),s.__root=e,this===this.$root?this.$i18n=Nm(t,s):(s.__injectWithOption=!0,this.$i18n=Yc(s))}else i.__i18n?this===this.$root?this.$i18n=Nm(t,i):this.$i18n=Yc({__i18n:i.__i18n,__injectWithOption:!0,__root:e}):this.$i18n=t;i.__i18nGlobal&&Rv(e,i,i),t.__onComponentInstanceCreated(this.$i18n),n.__setInstance(r,this.$i18n),this.$t=(...s)=>this.$i18n.t(...s),this.$rt=(...s)=>this.$i18n.rt(...s),this.$tc=(...s)=>this.$i18n.tc(...s),this.$te=(s,o)=>this.$i18n.te(s,o),this.$d=(...s)=>this.$i18n.d(...s),this.$n=(...s)=>this.$i18n.n(...s),this.$tm=s=>this.$i18n.tm(s)},mounted(){},unmounted(){const r=Ln();if(!r)throw nt(Ze.UNEXPECTED_ERROR);delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,n.__deleteInstance(r),delete this.$i18n}}}function Nm(t,e){t.locale=e.locale||t.locale,t.fallbackLocale=e.fallbackLocale||t.fallbackLocale,t.missing=e.missing||t.missing,t.silentTranslationWarn=e.silentTranslationWarn||t.silentFallbackWarn,t.silentFallbackWarn=e.silentFallbackWarn||t.silentFallbackWarn,t.formatFallbackMessages=e.formatFallbackMessages||t.formatFallbackMessages,t.postTranslation=e.postTranslation||t.postTranslation,t.warnHtmlInMessage=e.warnHtmlInMessage||t.warnHtmlInMessage,t.escapeParameterHtml=e.escapeParameterHtml||t.escapeParameterHtml,t.sync=e.sync||t.sync,t.__composer[Iv](e.pluralizationRules||t.pluralizationRules);const n=Ga(t.locale,{messages:e.messages,__i18n:e.__i18n});return Object.keys(n).forEach(r=>t.mergeLocaleMessage(r,n[r])),e.datetimeFormats&&Object.keys(e.datetimeFormats).forEach(r=>t.mergeDateTimeFormat(r,e.datetimeFormats[r])),e.numberFormats&&Object.keys(e.numberFormats).forEach(r=>t.mergeNumberFormat(r,e.numberFormats[r])),t}const fD=Ar("global-vue-i18n");function dD(t={},e){const n=__VUE_I18N_LEGACY_API__&&Se(t.legacy)?t.legacy:__VUE_I18N_LEGACY_API__,r=Se(t.globalInjection)?t.globalInjection:!0,i=__VUE_I18N_LEGACY_API__&&n?!!t.allowComposition:!0,s=new Map,[o,a]=hD(t,n),l=Ar("");function c(f){return s.get(f)||null}function u(f,m){s.set(f,m)}function d(f){s.delete(f)}{const f={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return i},async install(m,...w){m.__VUE_I18N_SYMBOL__=l,m.provide(m.__VUE_I18N_SYMBOL__,f),!n&&r&&wD(m,f.global),__VUE_I18N_FULL_INSTALL__&&cD(m,f,...w),__VUE_I18N_LEGACY_API__&&n&&m.mixin(uD(a,a.__composer,f));const g=m.unmount;m.unmount=()=>{f.dispose(),g()}},get global(){return a},dispose(){o.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:d};return f}}function Ef(t={}){const e=Ln();if(e==null)throw nt(Ze.MUST_BE_CALL_SETUP_TOP);if(!e.isCE&&e.appContext.app!=null&&!e.appContext.app.__VUE_I18N_SYMBOL__)throw nt(Ze.NOT_INSLALLED);const n=mD(e),r=gD(n),i=$v(e),s=pD(t,i);if(__VUE_I18N_LEGACY_API__&&n.mode==="legacy"&&!t.__useComponent){if(!n.allowComposition)throw nt(Ze.NOT_AVAILABLE_IN_LEGACY_MODE);return bD(e,s,r,t)}if(s==="global")return Rv(r,t,i),r;if(s==="parent"){let l=_D(n,e,t.__useComponent);return l==null&&(l=r),l}const o=n;let a=o.__getInstance(e);if(a==null){const l=st({},t);"__i18n"in i&&(l.__i18n=i.__i18n),r&&(l.__root=r),a=bf(l),vD(o,e),o.__setInstance(e,a)}return a}function hD(t,e,n){const r=ow();{const i=__VUE_I18N_LEGACY_API__&&e?r.run(()=>Yc(t)):r.run(()=>bf(t));if(i==null)throw nt(Ze.UNEXPECTED_ERROR);return[r,i]}}function mD(t){{const e=Un(t.isCE?fD:t.appContext.app.__VUE_I18N_SYMBOL__);if(!e)throw nt(t.isCE?Ze.NOT_INSLALLED_WITH_PROVIDE:Ze.UNEXPECTED_ERROR);return e}}function pD(t,e){return Ka(t)?"__i18n"in e?"local":"global":t.useScope?t.useScope:"local"}function gD(t){return t.mode==="composition"?t.global:t.global.__composer}function _D(t,e,n=!1){let r=null;const i=e.root;let s=e.parent;for(;s!=null;){const o=t;if(t.mode==="composition")r=o.__getInstance(s);else if(__VUE_I18N_LEGACY_API__){const a=o.__getInstance(s);a!=null&&(r=a.__composer,n&&r&&!r[Dv]&&(r=null))}if(r!=null||i===s)break;s=s.parent}return r}function vD(t,e,n){xu(()=>{},e),Oa(()=>{t.__deleteInstance(e)},e)}function bD(t,e,n,r={}){const i=e==="local",s=Qp(null);if(i&&t.proxy&&!(t.proxy.$options.i18n||t.proxy.$options.__i18n))throw nt(Ze.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const o=Se(r.inheritLocale)?r.inheritLocale:!0,a=cn(i&&o?n.locale.value:re(r.locale)?r.locale:fo),l=cn(i&&o?n.fallbackLocale.value:re(r.fallbackLocale)||He(r.fallbackLocale)||_e(r.fallbackLocale)||r.fallbackLocale===!1?r.fallbackLocale:a.value),c=cn(Ga(a.value,r)),u=cn(_e(r.datetimeFormats)?r.datetimeFormats:{[a.value]:{}}),d=cn(_e(r.numberFormats)?r.numberFormats:{[a.value]:{}}),f=i?n.missingWarn:Se(r.missingWarn)||br(r.missingWarn)?r.missingWarn:!0,m=i?n.fallbackWarn:Se(r.fallbackWarn)||br(r.fallbackWarn)?r.fallbackWarn:!0,w=i?n.fallbackRoot:Se(r.fallbackRoot)?r.fallbackRoot:!0,g=!!r.fallbackFormat,E=Ye(r.missing)?r.missing:null,_=Ye(r.postTranslation)?r.postTranslation:null,C=i?n.warnHtmlMessage:Se(r.warnHtmlMessage)?r.warnHtmlMessage:!0,S=!!r.escapeParameter,v=i?n.modifiers:_e(r.modifiers)?r.modifiers:{},b=r.pluralRules||i&&n.pluralRules;function k(){return[a.value,l.value,c.value,u.value,d.value]}const x=je({get:()=>s.value?s.value.locale.value:a.value,set:p=>{s.value&&(s.value.locale.value=p),a.value=p}}),N=je({get:()=>s.value?s.value.fallbackLocale.value:l.value,set:p=>{s.value&&(s.value.fallbackLocale.value=p),l.value=p}}),O=je(()=>s.value?s.value.messages.value:c.value),B=je(()=>u.value),q=je(()=>d.value);function Q(){return s.value?s.value.getPostTranslationHandler():_}function ee(p){s.value&&s.value.setPostTranslationHandler(p)}function I(){return s.value?s.value.getMissingHandler():E}function M(p){s.value&&s.value.setMissingHandler(p)}function Y(p){return k(),p()}function z(...p){return s.value?Y(()=>Reflect.apply(s.value.t,null,[...p])):Y(()=>"")}function te(...p){return s.value?Reflect.apply(s.value.rt,null,[...p]):""}function se(...p){return s.value?Y(()=>Reflect.apply(s.value.d,null,[...p])):Y(()=>"")}function ce(...p){return s.value?Y(()=>Reflect.apply(s.value.n,null,[...p])):Y(()=>"")}function he(p){return s.value?s.value.tm(p):{}}function fe(p,T){return s.value?s.value.te(p,T):!1}function Ne(p){return s.value?s.value.getLocaleMessage(p):{}}function me(p,T){s.value&&(s.value.setLocaleMessage(p,T),c.value[p]=T)}function R(p,T){s.value&&s.value.mergeLocaleMessage(p,T)}function X(p){return s.value?s.value.getDateTimeFormat(p):{}}function U(p,T){s.value&&(s.value.setDateTimeFormat(p,T),u.value[p]=T)}function Z(p,T){s.value&&s.value.mergeDateTimeFormat(p,T)}function pe(p){return s.value?s.value.getNumberFormat(p):{}}function ge(p,T){s.value&&(s.value.setNumberFormat(p,T),d.value[p]=T)}function le(p,T){s.value&&s.value.mergeNumberFormat(p,T)}const oe={get id(){return s.value?s.value.id:-1},locale:x,fallbackLocale:N,messages:O,datetimeFormats:B,numberFormats:q,get inheritLocale(){return s.value?s.value.inheritLocale:o},set inheritLocale(p){s.value&&(s.value.inheritLocale=p)},get availableLocales(){return s.value?s.value.availableLocales:Object.keys(c.value)},get modifiers(){return s.value?s.value.modifiers:v},get pluralRules(){return s.value?s.value.pluralRules:b},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:f},set missingWarn(p){s.value&&(s.value.missingWarn=p)},get fallbackWarn(){return s.value?s.value.fallbackWarn:m},set fallbackWarn(p){s.value&&(s.value.missingWarn=p)},get fallbackRoot(){return s.value?s.value.fallbackRoot:w},set fallbackRoot(p){s.value&&(s.value.fallbackRoot=p)},get fallbackFormat(){return s.value?s.value.fallbackFormat:g},set fallbackFormat(p){s.value&&(s.value.fallbackFormat=p)},get warnHtmlMessage(){return s.value?s.value.warnHtmlMessage:C},set warnHtmlMessage(p){s.value&&(s.value.warnHtmlMessage=p)},get escapeParameter(){return s.value?s.value.escapeParameter:S},set escapeParameter(p){s.value&&(s.value.escapeParameter=p)},t:z,getPostTranslationHandler:Q,setPostTranslationHandler:ee,getMissingHandler:I,setMissingHandler:M,rt:te,d:se,n:ce,tm:he,te:fe,getLocaleMessage:Ne,setLocaleMessage:me,mergeLocaleMessage:R,getDateTimeFormat:X,setDateTimeFormat:U,mergeDateTimeFormat:Z,getNumberFormat:pe,setNumberFormat:ge,mergeNumberFormat:le};function h(p){p.locale.value=a.value,p.fallbackLocale.value=l.value,Object.keys(c.value).forEach(T=>{p.mergeLocaleMessage(T,c.value[T])}),Object.keys(u.value).forEach(T=>{p.mergeDateTimeFormat(T,u.value[T])}),Object.keys(d.value).forEach(T=>{p.mergeNumberFormat(T,d.value[T])}),p.escapeParameter=S,p.fallbackFormat=g,p.fallbackRoot=w,p.fallbackWarn=m,p.missingWarn=f,p.warnHtmlMessage=C}return hg(()=>{if(t.proxy==null||t.proxy.$i18n==null)throw nt(Ze.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const p=s.value=t.proxy.$i18n.__composer;e==="global"?(a.value=p.locale.value,l.value=p.fallbackLocale.value,c.value=p.messages.value,u.value=p.datetimeFormats.value,d.value=p.numberFormats.value):i&&h(p)}),oe}const yD=["locale","fallbackLocale","availableLocales"],ED=["t","rt","d","n","tm"];function wD(t,e){const n=Object.create(null);yD.forEach(r=>{const i=Object.getOwnPropertyDescriptor(e,r);if(!i)throw nt(Ze.UNEXPECTED_ERROR);const s=ct(i.value)?{get(){return i.value.value},set(o){i.value.value=o}}:{get(){return i.get&&i.get()}};Object.defineProperty(n,r,s)}),t.config.globalProperties.$i18n=n,ED.forEach(r=>{const i=Object.getOwnPropertyDescriptor(e,r);if(!i||!i.value)throw nt(Ze.UNEXPECTED_ERROR);Object.defineProperty(t.config.globalProperties,`$${r}`,i)})}jI(XI);WI(CI);zI(wv);nD();if(__INTLIFY_PROD_DEVTOOLS__){const t=Is();t.__INTLIFY__=!0,MI(t.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const TD={header:{sessions:"Ladevorg\xE4nge",docs:"Doku",blog:"Blog",github:"GitHub",login:"Fahrzeug Logins",about:"\xDCber evcc",theme:{auto:"Design: System",light:"Design: Hell",dark:"Design: Dunkel"}},footer:{version:{availableShort:"Update",availableLong:"Update verf\xFCgbar",modalTitle:"Update verf\xFCgbar",modalUpdateStarted:"Nach der Aktualisierung wird evcc neu gestartet.",modalInstalledVersion:"Aktuell installierte Version",modalNoReleaseNotes:"Keine Releasenotes verf\xFCgbar. Mehr Informationen zur neuen Version findest du hier:",modalCancel:"Abbrechen",modalUpdate:"Aktualisieren",modalUpdateNow:"Jetzt aktualisieren",modalDownload:"Download",modalUpdateStatusStart:"Aktualisierung gestartet: ",modalUpdateStatusFailed:"Aktualisierung nicht m\xF6glich: "},savings:{tabTitle:"Meine Daten",footerShort:"{percent}% Sonne",footerLong:"{percent}% Sonnenenergie",modalTitle:"Auswertung Ladeenergie",since:"seit {since}",percentTitle:"Sonnenenergie",percentSelf:"{self} kWh Sonne",percentGrid:"{grid} kWh Netz",priceTitle:"Energiepreis",priceFeedIn:"{feedInPrice} Einspeisung",priceGrid:"{gridPrice} Netz",savingsTitle:"Ersparnis",savingsComparedToGrid:"gegen\xFCber Netzbezug",savingsTotalEnergy:"{total} kWh geladen"},community:{tabTitle:"Live-Community",power:"Ladeleistung",powerSub1:"{activeClients} von {totalClients} Nutzern",powerSub2:"laden mit evcc",greenShare:"Sonnenanteil",greenShareSub1:"der Leistung kommt",greenShareSub2:"aus PV & Hausakku",greenEnergy:"Sonnenenergie",greenEnergySub1:"seit Oktober 2022",greenEnergySub2:"\xFCber evcc geladen"},telemetry:{optIn:"Ich m\xF6chte meine Daten auch beisteuern.",optInMoreDetails:"Mehr Details gibts {0}.",optInMoreDetailsLink:"hier",optInSponsorship:"Sponsoring erforderlich."},sponsor:{titleSponsor:"Du bist Unterst\xFCtzer",titleNoSponsor:"Unterst\xFCtze uns",thanks:"Danke f\xFCr dein Sponsoring, {sponsor}! Das hilft uns bei der Weiterentwicklung.",confetti:"Lust auf Konfetti?",supportUs:"Unsere Mission: Sonne tanken zum Standard machen. Hilf uns und unterst\xFCtze evcc finanziell.",sticker:"...oder evcc Sticker?",confettiPromise:"Es gibt auch Sticker und digitales Konfetti ;)",becomeSponsor:"Sponsor werden"}},notifications:{modalTitle:"Meldungen",dismissAll:"Meldungen entfernen"},main:{vehicles:"Parkplatz",energyflow:{noEnergy:"Kein Messwerte",homePower:"Verbrauch",pvProduction:"Erzeugung",loadpoints:"Ladepunkt | Ladepunkt | {count} Ladepunkte",battery:"Batterie",batteryCharge:"Batterie laden",batteryDischarge:"Batterie entladen",gridImport:"Netzbezug",selfConsumption:"Eigenverbrauch",pvExport:"Einspeisung"},mode:{off:"Aus",minpv:"Min+PV",pv:"PV",now:"Schnell"},loadpoint:{fallbackName:"Ladepunkt",remoteDisabledSoft:"{source}: Adaptives PV-Laden deaktiviert",remoteDisabledHard:"{source}: Deaktiviert",power:"Leistung",charged:"Geladen",duration:"Dauer",remaining:"Restzeit"},loadpointSettings:{title:'Einstellungen "{0}"',vehicle:"Fahrzeug",currents:"Ladestrom",default:"default",disclaimerHint:"Hinweis:",disclaimerText:"\xC4nderungen sind aktuell noch nicht persistent und werden nach einem Serverneustart wieder zur\xFCckgesetzt.",minSoC:{label:"Mindestladestand",description:'Reichweite f\xFCr Notf\xE4lle. Fahrzeug wird im PV-Modus "schnell" auf {0}% geladen. Danach weiter mit PV-\xDCberschuss.'},phasesConfigured:{label:"Phasen",phases_0:"automatischer Wechsel",phases_1:"1-phasig",phases_1_hint:"({min} bis {max})",phases_3:"3-phasig",phases_3_hint:"({min} bis {max})"},maxCurrent:{label:"Max. Ladestrom"},minCurrent:{label:"Min. Ladestrom"}},vehicle:{fallbackName:"Fahrzeug",vehicleSoC:"Ladestand",targetSoC:"Ladeziel",none:"Kein Fahrzeug",unknown:"Gastfahrzeug",changeVehicle:"Fahrzeug \xE4ndern",detectionActive:"Fahrzeugerkennung l\xE4uft ..."},vehicleSoC:{disconnected:"getrennt",charging:"l\xE4dt",ready:"bereit",connected:"verbunden",vehicleTarget:"Fahrzeuglimit: {soc}%"},vehicleStatus:{minCharge:"Mindestladung bis {soc}%.",waitForVehicle:"Ladebereit. Warte auf Fahrzeug.",vehicleTargetReached:"Fahrzeuglimit {soc}% erreicht.",charging:"Ladevorgang aktiv.",targetChargePlanned:"Zielladen geplant. Ladung startet {time} Uhr.",targetChargeWaitForVehicle:"Zielladen bereit. Warte auf Fahrzeug.",targetChargeActive:"Zielladen aktiv.",connected:"Verbunden.",pvDisable:"Zu wenig \xDCberschuss. Pausiere in {remaining}.",pvEnable:"\xDCberschuss verf\xFCgbar. Starte in {remaining}.",scale1p:"Reduziere auf einphasig in {remaining}.",scale3p:"Erh\xF6he auf dreiphasig in {remaining}.",disconnected:"Nicht verbunden.",unknown:""},provider:{login:"anmelden",logout:"abmelden"},targetCharge:{title:"Zielzeit",inactiveLabel:"Zielzeit",activeLabel:"{time}",modalTitle:"Zielzeit festlegen",setTargetTime:"keine",description:"Wann soll das Fahrzeug auf {targetSoC}% geladen sein?",today:"heute",tomorrow:"morgen",targetIsInThePast:"Zeitpunkt liegt in der Vergangenheit.",remove:"Entfernen",activate:"Aktivieren",experimentalLabel:"Experimentell",experimentalText:"Dieses Feature funktioniert, ist aber noch nicht perfekt. Bitte melde unerwartetes Verhalten in unseren"},targetEnergy:{label:"Ladeziel",noLimit:"keins"}},startupError:{title:"Fehler beim Starten",description:"Bitte \xFCberpr\xFCfe deine Konfigurationsdatei. Sollte dir die Fehlermeldung nicht weiterhelfen, suche in unseren {0} nach einer L\xF6sung.",discussions:"GitHub Discussions",hint:"Hinweis: Ein weiterer Grund, warum du diese Meldung siehst, k\xF6nnte ein fehlerhaftes Ger\xE4t (Wechselrichter, Z\xE4hler, ...) sein. \xDCberpr\xFCfe deine Netzwerkverbindungen.",configuration:"Konfiguration",configFile:"Verwendete Konfigurationsdatei:",lineError:"In {0} wurde ein Fehler gefunden.",lineErrorLink:"Zeile {0}",fixAndRestart:"Behebe das Problem und starte den Server neu.",restartButton:"Neu starten"},sessions:{title:"Ladevorg\xE4nge",downloadCsv:"Als CSV herunterladen",loadpoint:"Ladepunkt",vehicle:"Fahrzeug",energy:"Geladen",date:"Zeitraum",csv:{loadpoint:"Ladepunkt",vehicle:"Fahrzeug",identifier:"Kennung",chargedenergy:"Energie (kWh)",meterstart:"Anfangsz\xE4hlerstand (kWh)",meterstop:"Endz\xE4hlerstand (kWh)",created:"Startzeit",finished:"Endzeit"}},offline:{message:"Keine Verbindung zum Server.",reload:"Reload?"}},CD={header:{sessions:"Charging sessions",docs:"Documentation",blog:"Blog",github:"GitHub",login:"Vehicle logins",about:"About evcc",theme:{auto:"Design: system",light:"Design: light",dark:"Design: dark"}},footer:{version:{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:{tabTitle:"My data",footerShort:"{percent}% solar",footerLong:"{percent}% solar energy",modalTitle:"Charge Energy Overview",since:"since {since}",percentTitle:"Solar Energy",percentSelf:"{self} kWh solar",percentGrid:"{grid} kWh grid",priceTitle:"Energy Price",priceFeedIn:"{feedInPrice} feed-in",priceGrid:"{gridPrice} grid",savingsTitle:"Savings",savingsComparedToGrid:"compared to grid",savingsTotalEnergy:"{total} kWh charged"},community:{tabTitle:"Live community",power:"Charging power",powerSub1:"{activeClients} of {totalClients} participants",powerSub2:"are charging right now",greenShare:"Solar share",greenShareSub1:"power is covered by",greenShareSub2:"PV & battery storage",greenEnergy:"Solar energy",greenEnergySub1:"charged with evcc",greenEnergySub2:"since October 2022"},telemetry:{optIn:"I want to contribute my data as well.",optInMoreDetails:"More details are available {0}.",optInMoreDetailsLink:"here",optInSponsorship:"Sponsoring required."},sponsor:{titleSponsor:"You are a supporter",titleNoSponsor:"Support us",thanks:"Thanks for your support, {sponsor}! It helps us with the further development.",confetti:"Ready for confetti?",supportUs:"Our mission: Make solar charging the standard. Help us and support evcc financially.",sticker:"...or evcc stickers?",confettiPromise:"There will be stickers and digital confetti ;)",becomeSponsor:"Become a Sponsor"}},notifications:{modalTitle:"Notifications",dismissAll:"Dismiss all"},main:{vehicles:"Parking",energyflow:{noEnergy:"No meter data",homePower:"Consumption",pvProduction:"Production",loadpoints:"Loadpoint | Loadpoint | {count} Loadpoints",battery:"Battery",batteryCharge:"Battery charge",batteryDischarge:"Battery discharge",gridImport:"Grid import",selfConsumption:"Self consumption",pvExport:"Grid export"},mode:{off:"Off",minpv:"Min+PV",pv:"PV",now:"Fast"},loadpoint:{fallbackName:"Loadpoint",remoteDisabledSoft:"{source}: adaptive PV charging disabled",remoteDisabledHard:"{source}: disabled",power:"Power",charged:"Charged",duration:"Duration",remaining:"Remaining"},loadpointSettings:{title:'Settings "{0}"',vehicle:"Vehicle",currents:"Charging",default:"default",disclaimerHint:"Note:",disclaimerText:"Changes are not persistent yet. They will be reset after server restart.",minSoC:{label:"Minimal SoC",description:'Range for emergencies. Vehicle gets "fast" charged to {0}% in PV mode. Then continues with PV surplus only.'},phasesConfigured:{label:"Phases",phases_0:"automatic switching",phases_1:"1 phase",phases_1_hint:"({min} to {max})",phases_3:"3 phases",phases_3_hint:"({min} to {max})"},maxCurrent:{label:"Max. Current"},minCurrent:{label:"Min. Current"}},vehicle:{fallbackName:"Vehicle",vehicleSoC:"SoC",targetSoC:"Limit",none:"No vehicle",unknown:"Guest vehicle",changeVehicle:"Change Vehicle",detectionActive:"Detecting vehicle ..."},vehicleSoC:{disconnected:"disconnected",charging:"charging",ready:"ready",connected:"connected",vehicleTarget:"Vehicle limit: {soc}%"},vehicleStatus:{minCharge:"minimum charging to {soc}%.",waitForVehicle:"Ready. Waiting for vehicle.",vehicleTargetReached:"Vehicle limit {soc}% reached.",charging:"Charging.",targetChargePlanned:"Target charge planned. Starting {time}.",targetChargeWaitForVehicle:"Target charge ready. Wait for vehicle.",targetChargeActive:"Target charge active.",connected:"Connected.",pvDisable:"Not enough surplus. Pausing in {remaining}.",pvEnable:"Surplus available. Starting in {remaining}.",scale1p:"Reduce to single phase in {remaining}.",scale3p:"Increase to three phase in {remaining}.",disconnected:"Disconnected.",unknown:""},provider:{login:"login",logout:"logout"},targetCharge:{title:"Target Time",inactiveLabel:"Target time",activeLabel:"{time}",modalTitle:"Set Target Time",setTargetTime:"none",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:"This feature works but isn't perfect yet. Please report unexpected behaviour in our"},targetEnergy:{label:"Limit",noLimit:"none"}},startupError:{title:"Startup Error",description:"Please check your configuration file. If the error message does not help you, have a look at our {0}.",discussions:"GitHub Discussions",hint:"Note: Another reason why you see this message could be a faulty device (inverter, meter, ...). Check your network connections.",configuration:"Config",configFile:"Configuration file used:",lineError:"We found an error in {0}.",lineErrorLink:"line {0}",fixAndRestart:"Fix the problem and restart the server.",restartButton:"Restart"},sessions:{title:"Charging sessions",downloadCsv:"Download as CSV",loadpoint:"Loadpoint",vehicle:"Vehicle",energy:"Charged",date:"Period",csv:{loadpoint:"Loadpoint",vehicle:"Vehicle",identifier:"Identifier",chargedenergy:"Energy (kWh)",meterstart:"Meter Start (kWh)",meterstop:"Meter Stop (kWh)",created:"Created",finished:"Finished"}},offline:{message:"No connection to server.",reload:"Reload?"}},SD={header:{docs:"Documentazione",blog:"Blog",github:"GitHub",login:"Iscrizioni"},footer:{version:{availableShort:"aggiornamento",availableLong:"aggiornamento disponibile",modalTitle:"Aggiornamento disponibile",modalUpdateStarted:"Evcc ripartir\xE0 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: "}},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:{off:"Stop",minpv:"Min+FV",pv:"FV",now:"Ora"},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"}}},AD={header:{sessions:"\u012Ekrovimo sesijos ",docs:"Dokumentacija (Vokie\u010Di\u0173 k.)",blog:"Tinklara\u0161tis",github:"GitHub",login:" Automobili\u0173 prisijungimai",about:"Apie EVCC",theme:{auto:"Dizainas: Sistemos",light:"Dizainas: \u0160viesus",dark:"Dizainas: Tamsus"}},footer:{version:{availableShort:"naujinimas",availableLong:"yra naujesn\u0117 versija",modalTitle:"Yra naujesn\u0117 versija",modalUpdateStarted:"Pasibaigus naujinimui EVCC startuos i\u0161 naujo..",modalInstalledVersion:"Dabartin\u0117 versija",modalNoReleaseNotes:"Naujinimo pastab\u0173 n\u0117ra. Daugiau informacijos apie nauj\u0105 versij\u0105 galite rasti rasite \u010Dia:",modalCancel:"At\u0161aukti",modalUpdate:"Naujinti",modalUpdateNow:"Naujinti dabar",modalDownload:"Atsisi\u0173sti",modalUpdateStatusStart:"Naujinimas prasid\u0117jo: ",modalUpdateStatusFailed:"Naujinimas nepavyko: "},savings:{tabTitle:"Mano duomenys",footerShort:"{percent}% saul\u0117s",footerLong:"{percent}% saul\u0117s energija",modalTitle:"\u012Ekrovimo energijos ap\u017Evalga",since:"nuo {since}",percentTitle:"Saul\u0117s energija",percentSelf:"{self} kWh saul\u0117s",percentGrid:"{grid} kWh tinklo",priceTitle:"Energijos kaina",priceFeedIn:"{feedInPrice} eksporto",priceGrid:"{gridPrice} tinklo",savingsTitle:"Sutaupyta",savingsComparedToGrid:"palyginus su tinklu",savingsTotalEnergy:"{total} kWh \u012Fkrauta"},community:{tabTitle:"Bendruomen\u0117s duomenys",power:"\u012Ekrovimo galia",powerSub1:"{activeClients} i\u0161 {totalClients} dalyvi\u0173",powerSub2:"\u012Fkrauna \u0161iuo metu",greenShare:"Saul\u0117s dalis",greenShareSub1:"galios tieka Saul\u0117 ir",greenShareSub2:"energijos kaupikliai",greenEnergy:"Saul\u0117s energija",greenEnergySub1:"\u012Fkrauta su evcc",greenEnergySub2:"nuo 2022 Spalio"},telemetry:{optIn:"Noriu prisid\u0117ti savo duomenimis.",optInMoreDetails:"Daugiau informacijos rasite {0}.",optInMoreDetailsLink:"\u010Dia",optInSponsorship:"(Gali tik r\u0117m\u0117jai.)"},sponsor:{titleSponsor:"Esate r\u0117m\u0117jais",titleNoSponsor:"Paremkite mus",thanks:"A\u010Di\u016B, kad mus remiate {sponsor}! Taip prisidedate prie projekto vystymo.",confetti:"Norite konfeti?",supportUs:"M\u016Bs\u0173 misija: Siekiame, kad \u012Fkrovimas saul\u0117s energija tapt\u0173 standartu. Pad\u0117kite mums ir paremkite evcc finansi\u0161kai.",sticker:"... ar evcc lipduk\u0173?",confettiPromise:"Bus lipduk\u0173 ir skaitmenini\u0173 konfeti ;)",becomeSponsor:"Tapkite r\u0117m\u0117ju"}},notifications:{modalTitle:"Prane\u0161imai",dismissAll:"I\u0161valyti visus"},main:{vehicles:"Autoparkas",energyflow:{noEnergy:"N\u0117ra skaitikli\u0173 duomen\u0173",homePower:"Namo suvartojimas",pvProduction:"Gamyba",loadpoints:"\u012Ekroviklis | \u012Ekroviklis | {count} \u012Ekrovikliai",battery:"Baterija",batteryCharge:"Baterijos \u012Fkrovimas",batteryDischarge:"Baterijos i\u0161krovimas",gridImport:"Tinklo importas",selfConsumption:"Sunaudojama i\u0161kart",pvExport:"Tinklo eksportas"},mode:{off:"Stop",minpv:"Min+S",pv:"Saul\u0117s",now:"Greitas"},loadpoint:{fallbackName:"\u012Ekroviklis",remoteDisabledSoft:"{source}: adaptyvus Saul\u0117s \u012Fkrovimas i\u0161jungtas",remoteDisabledHard:"{source}: i\u0161jungtas",power:"Galia",charged:"\u012Ekrauta",duration:"Trukm\u0117",remaining:"Liko"},loadpointSettings:{title:'Nustatymai "{0}"',vehicle:"Automobilis",currents:"\u012Ekraunama",default:"standarti\u0161kai",disclaimerHint:"Pastaba:",disclaimerText:"\u0160ie pakeitimai nei\u0161lieka ir po EVCC serverio restarto pradings.",minSoC:{label:"Minimali \u012Fkrova",description:'Minimali \u012Fkrova. Automobilis \u012Fkraunamas "Greitai" iki {0}% nustatyme "Saul\u0117" . Toliau \u012Fkraunamas tik saul\u0117s energijos pertekliumi.'},phasesConfigured:{label:"Faz\u0117s",phases_0:"automatinis perjungimas",phases_1:"1 faz\u0117",phases_1_hint:"({min} to {max})",phases_3:"3 faz\u0117s",phases_3_hint:"({min} to {max})"},maxCurrent:{label:"Max. Srov\u0117"},minCurrent:{label:"Min. Srov\u0117"}},vehicle:{fallbackName:"Automobilis",vehicleSoC:"\u012Ekrova",targetSoC:"Limitas",none:"N\u0117ra automobilio",unknown:"Ne\u017Einomas automobilis",changeVehicle:"Pakeisti automobil\u012F",detectionActive:"Bandome atpa\u017Einti automobil\u012F ..."},vehicleSoC:{disconnected:"neprijungtas",charging:"vyksta \u012Fkrovimas",ready:"leid\u017Eiama \u012Fkrauti",connected:"automobilis prijungtas",vehicleTarget:"Automobilio limitas: {soc}%"},vehicleStatus:{minCharge:"minimalus \u012Fkrovimas iki {soc}%.",waitForVehicle:"\u012Ekrovimas leid\u017Eiamas. Laukiama automobilio signalo.",vehicleTargetReached:"Automobilio limitas {soc}% pasiektas.",charging:"\u012Ekraunama.",targetChargePlanned:"Suplanuotas \u012Fkrovimas, prasid\u0117s {time}.",targetChargeWaitForVehicle:"Suplanuotas \u012Fkrovimas leid\u017Eiamas. Laukiama automobilio signalo.",targetChargeActive:"Suplanuotas \u012Fkrovimas aktyvuotas.",connected:"Prijungtas.",pvDisable:"Tr\u016Bksta saul\u0117s, \u012Fkrovimo pauz\u0117 u\u017E {remaining}.",pvEnable:"Saul\u0117s u\u017Etenka, \u012Fkrovimas prasid\u0117s u\u017E {remaining}.",scale1p:"Suma\u017Einti \u012F vienfaz\u012F \u012Fkrovim\u0105 u\u017E {remaining}.",scale3p:"Padidinti \u012F trifaz\u012F \u012Fkrovim\u0105 u\u017E {remaining}.",disconnected:"Neprijungtas.",unknown:""},provider:{login:"prisijungti",logout:"atsijungti"},targetCharge:{title:"\u012Ekrauti iki",inactiveLabel:"\u012Ekrauti iki",activeLabel:"{time}",modalTitle:"Nustatyti \u012Fkrovimo pabaigos laik\u0105",setTargetTime:"nenustatytas",description:"Kada automobilis tur\u0117t\u0173 b\u016Bti \u012Fkrautas iki {targetSoC}%?",today:"\u0161iandien",tomorrow:"rytoj",targetIsInThePast:"Pasirinktas laikas yra praeityje.",remove:"Panaikinti",activate:"Aktyvuoti",experimentalLabel:"Eksperimentinis",experimentalText:"\u0160i funkcija veikia, bet dar n\u0117ra tobula. Apie netik\u0117t\u0105 elges\u012F prane\u0161kite m\u016Bs\u0173"},targetEnergy:{label:"Limitas",noLimit:"n\u0117ra"}},startupError:{title:"Klaida startuojant",description:"Patikrinkite konfig\u016Bracijos fail\u0105. Jei klaidos \u017Einut\u0117 jums nepad\u0117jo, atsakym\u0173 ie\u0161kokite m\u016Bs\u0173 {0}.",discussions:"GitHub Diskusijose",hint:"Pastaba: Gali b\u016Bti, kad prane\u0161im\u0105 apie klaid\u0105 matote d\u0117l neteisingai veikian\u010Dio \u012Frenginio (inverterio, skaitiklio, ...). Patikrinkite tiklo jungtis.",configuration:"Konfig\u016Bracija",configFile:"Naudojamas konfiguracijos failas:",lineError:"Radome klaid\u0105 \u010Dia {0}.",lineErrorLink:"eilut\u0117 {0}",fixAndRestart:"I\u0161taisykite klaid\u0105 ir restartuokite server\u012F.",restartButton:"Restartuoti"},sessions:{title:"\u012Ekrovimo sesijos",downloadCsv:"Parsisi\u0173sti CSV fail\u0105",loadpoint:"\u012Ekroviklis",vehicle:"Automobilis",energy:"\u012Ekrauta",date:"Laikotarpis",csv:{loadpoint:"\u012Ekroviklis",vehicle:"Automobilis",identifier:"Identifikatorius",chargedenergy:"Energija (kWh)",meterstart:"Skaitiklis prad\u017Eioje (kWh)",meterstop:"Skaitiklis pabaigoje (kWh)",created:"Prad\u0117ta",finished:"Pabaigta"}},offline:{message:"N\u0117ra ry\u0161io su serveriu.",reload:"Perkrauti?"}},kD="preferred_locale";function xD(){const t=navigator.languages!==void 0?navigator.languages[0]:navigator.language;if(!!t)return t.trim().split(/-|_/)[0]}const LD=dD({locale:window.localStorage[kD]||xD(),fallbackLocale:"en",messages:{de:TD,en:CD,it:SD,lt:AD}}),ND={install:t=>{t.config.globalProperties.$hiddenFeatures=window.localStorage.hidden_features==="true"}};KE.polyfill();const si=d2({data(){return{notifications:[],offline:!1}},watch:{offline:function(t){console.log(`we are ${t?"offline":"online"}`)}},methods:{raise:function(t){console[t.type](t);const e=new Date,n=this.notifications[0];n&&n.message===t.message?(n.count++,n.time=e):this.notifications=[{...t,count:1,time:e},...this.notifications]},clear:function(){this.notifications=[]},error:function(t){t.type="error",this.raise(t)},setOnline:function(){this.offline=!1},setOffline:function(){this.offline=!0},warn:function(t){t.type="warn",this.raise(t)}},render:function(){return Cr(M2,{notifications:this.notifications,offline:this.offline})}});si.use(LD);si.use(UM);si.use(A2());si.use(L2);si.use(ND);si.use(D_);window.app=si.mount("#app");vk()});export default OD(); + */const tD="9.2.2";function nD(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Is().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Is().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Is().__INTLIFY_PROD_DEVTOOLS__=!1)}RI.__EXTEND_POINT__;let Mv=Oe.__EXTEND_POINT__;const Et=()=>++Mv,Ze={UNEXPECTED_RETURN_TYPE:Mv,INVALID_ARGUMENT:Et(),MUST_BE_CALL_SETUP_TOP:Et(),NOT_INSLALLED:Et(),NOT_AVAILABLE_IN_LEGACY_MODE:Et(),REQUIRED_VALUE:Et(),INVALID_VALUE:Et(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Et(),NOT_INSLALLED_WITH_PROVIDE:Et(),UNEXPECTED_ERROR:Et(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Et(),BRIDGE_SUPPORT_VUE_2_ONLY:Et(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Et(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Et(),__EXTEND_POINT__:Et()};function nt(t,...e){return Ya(t,null,void 0)}const jc=Ar("__transrateVNode"),Wc=Ar("__datetimeParts"),zc=Ar("__numberParts"),Iv=Ar("__setPluralRules");Ar("__intlifyMeta");const Dv=Ar("__injectWithOption");function Kc(t){if(!Be(t))return t;for(const e in t)if(!!pf(t,e))if(!e.includes("."))Be(t[e])&&Kc(t[e]);else{const n=e.split("."),r=n.length-1;let i=t;for(let s=0;s{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(o[l]=o[l]||{},Ds(c,o[l])):Ds(c,o)}else re(a)&&Ds(JSON.parse(a),o)}),i==null&&s)for(const a in o)pf(o,a)&&Kc(o[a]);return o}const xo=t=>!Be(t)||He(t);function Ds(t,e){if(xo(t)||xo(e))throw nt(Ze.INVALID_VALUE);for(const n in t)pf(t,n)&&(xo(t[n])||xo(e[n])?e[n]=t[n]:Ds(t[n],e[n]))}function $v(t){return t.type}function Rv(t,e,n){let r=Be(e.messages)?e.messages:{};"__i18nGlobal"in n&&(r=Ga(t.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const i=Object.keys(r);i.length&&i.forEach(s=>{t.mergeLocaleMessage(s,r[s])});{if(Be(e.datetimeFormats)){const s=Object.keys(e.datetimeFormats);s.length&&s.forEach(o=>{t.mergeDateTimeFormat(o,e.datetimeFormats[o])})}if(Be(e.numberFormats)){const s=Object.keys(e.numberFormats);s.length&&s.forEach(o=>{t.mergeNumberFormat(o,e.numberFormats[o])})}}}function Em(t){return ie(Pa,null,t,0)}const wm="__INTLIFY_META__";let Tm=0;function Cm(t){return(e,n,r,i)=>t(n,r,Ln()||void 0,i)}const rD=()=>{const t=Ln();let e=null;return t&&(e=$v(t)[wm])?{[wm]:e}:null};function bf(t={},e){const{__root:n}=t,r=n===void 0;let i=Se(t.inheritLocale)?t.inheritLocale:!0;const s=cn(n&&i?n.locale.value:re(t.locale)?t.locale:fo),o=cn(n&&i?n.fallbackLocale.value:re(t.fallbackLocale)||He(t.fallbackLocale)||_e(t.fallbackLocale)||t.fallbackLocale===!1?t.fallbackLocale:s.value),a=cn(Ga(s.value,t)),l=cn(_e(t.datetimeFormats)?t.datetimeFormats:{[s.value]:{}}),c=cn(_e(t.numberFormats)?t.numberFormats:{[s.value]:{}});let u=n?n.missingWarn:Se(t.missingWarn)||br(t.missingWarn)?t.missingWarn:!0,d=n?n.fallbackWarn:Se(t.fallbackWarn)||br(t.fallbackWarn)?t.fallbackWarn:!0,f=n?n.fallbackRoot:Se(t.fallbackRoot)?t.fallbackRoot:!0,m=!!t.fallbackFormat,w=Ye(t.missing)?t.missing:null,g=Ye(t.missing)?Cm(t.missing):null,E=Ye(t.postTranslation)?t.postTranslation:null,_=n?n.warnHtmlMessage:Se(t.warnHtmlMessage)?t.warnHtmlMessage:!0,C=!!t.escapeParameter;const S=n?n.modifiers:_e(t.modifiers)?t.modifiers:{};let v=t.pluralRules||n&&n.pluralRules,b;b=(()=>{r&&dm(null);const A={version:tD,locale:s.value,fallbackLocale:o.value,messages:a.value,modifiers:S,pluralRules:v,missing:g===null?void 0:g,missingWarn:u,fallbackWarn:d,fallbackFormat:m,unresolving:!0,postTranslation:E===null?void 0:E,warnHtmlMessage:_,escapeParameter:C,messageResolver:t.messageResolver,__meta:{framework:"vue"}};A.datetimeFormats=l.value,A.numberFormats=c.value,A.__datetimeFormatters=_e(b)?b.__datetimeFormatters:void 0,A.__numberFormatters=_e(b)?b.__numberFormatters:void 0;const $=qI(A);return r&&dm($),$})(),hs(b,s.value,o.value);function x(){return[s.value,o.value,a.value,l.value,c.value]}const N=je({get:()=>s.value,set:A=>{s.value=A,b.locale=s.value}}),O=je({get:()=>o.value,set:A=>{o.value=A,b.fallbackLocale=o.value,hs(b,s.value,A)}}),B=je(()=>a.value),q=je(()=>l.value),Q=je(()=>c.value);function ee(){return Ye(E)?E:null}function I(A){E=A,b.postTranslation=A}function M(){return w}function Y(A){A!==null&&(g=Cm(A)),w=A,b.missing=g}const z=(A,$,J,ne,ue,be)=>{x();let Ce;if(__INTLIFY_PROD_DEVTOOLS__)try{fm(rD()),r||(b.fallbackContext=n?YI():void 0),Ce=A(b)}finally{fm(null),r||(b.fallbackContext=void 0)}else Ce=A(b);if(tt(Ce)&&Ce===qa){const[Me,Ve]=$();return n&&f?ne(n):ue(Me)}else{if(be(Ce))return Ce;throw nt(Ze.UNEXPECTED_RETURN_TYPE)}};function te(...A){return z($=>Reflect.apply(gm,null,[$,...A]),()=>Hc(...A),"translate",$=>Reflect.apply($.t,$,[...A]),$=>$,$=>re($))}function se(...A){const[$,J,ne]=A;if(ne&&!Be(ne))throw nt(Ze.INVALID_ARGUMENT);return te($,J,st({resolvedMessage:!0},ne||{}))}function ce(...A){return z($=>Reflect.apply(_m,null,[$,...A]),()=>Bc(...A),"datetime format",$=>Reflect.apply($.d,$,[...A]),()=>cm,$=>re($))}function he(...A){return z($=>Reflect.apply(bm,null,[$,...A]),()=>Uc(...A),"number format",$=>Reflect.apply($.n,$,[...A]),()=>cm,$=>re($))}function fe(A){return A.map($=>re($)||tt($)||Se($)?Em(String($)):$)}const me={normalize:fe,interpolate:A=>A,type:"vnode"};function R(...A){return z($=>{let J;const ne=$;try{ne.processor=me,J=Reflect.apply(gm,null,[ne,...A])}finally{ne.processor=null}return J},()=>Hc(...A),"translate",$=>$[jc](...A),$=>[Em($)],$=>He($))}function X(...A){return z($=>Reflect.apply(bm,null,[$,...A]),()=>Uc(...A),"number format",$=>$[zc](...A),()=>[],$=>re($)||He($))}function U(...A){return z($=>Reflect.apply(_m,null,[$,...A]),()=>Bc(...A),"datetime format",$=>$[Wc](...A),()=>[],$=>re($)||He($))}function Z(A){v=A,b.pluralRules=v}function pe(A,$){const J=re($)?$:s.value,ne=oe(J);return b.messageResolver(ne,A)!==null}function ge(A){let $=null;const J=wv(b,o.value,s.value);for(let ne=0;ne{i&&(s.value=A,b.locale=A,hs(b,s.value,o.value))}),cr(n.fallbackLocale,A=>{i&&(o.value=A,b.fallbackLocale=A,hs(b,s.value,o.value))}));const j={id:Tm,locale:N,fallbackLocale:O,get inheritLocale(){return i},set inheritLocale(A){i=A,A&&n&&(s.value=n.locale.value,o.value=n.fallbackLocale.value,hs(b,s.value,o.value))},get availableLocales(){return Object.keys(a.value).sort()},messages:B,get modifiers(){return S},get pluralRules(){return v||{}},get isGlobal(){return r},get missingWarn(){return u},set missingWarn(A){u=A,b.missingWarn=u},get fallbackWarn(){return d},set fallbackWarn(A){d=A,b.fallbackWarn=d},get fallbackRoot(){return f},set fallbackRoot(A){f=A},get fallbackFormat(){return m},set fallbackFormat(A){m=A,b.fallbackFormat=m},get warnHtmlMessage(){return _},set warnHtmlMessage(A){_=A,b.warnHtmlMessage=A},get escapeParameter(){return C},set escapeParameter(A){C=A,b.escapeParameter=A},t:te,getLocaleMessage:oe,setLocaleMessage:h,mergeLocaleMessage:p,getPostTranslationHandler:ee,setPostTranslationHandler:I,getMissingHandler:M,setMissingHandler:Y,[Iv]:Z};return j.datetimeFormats=q,j.numberFormats=Q,j.rt=se,j.te=pe,j.tm=le,j.d=ce,j.n=he,j.getDateTimeFormat=T,j.setDateTimeFormat=L,j.mergeDateTimeFormat=D,j.getNumberFormat=H,j.setNumberFormat=G,j.mergeNumberFormat=W,j[Dv]=t.__injectWithOption,j[jc]=R,j[Wc]=U,j[zc]=X,j}function iD(t){const e=re(t.locale)?t.locale:fo,n=re(t.fallbackLocale)||He(t.fallbackLocale)||_e(t.fallbackLocale)||t.fallbackLocale===!1?t.fallbackLocale:e,r=Ye(t.missing)?t.missing:void 0,i=Se(t.silentTranslationWarn)||br(t.silentTranslationWarn)?!t.silentTranslationWarn:!0,s=Se(t.silentFallbackWarn)||br(t.silentFallbackWarn)?!t.silentFallbackWarn:!0,o=Se(t.fallbackRoot)?t.fallbackRoot:!0,a=!!t.formatFallbackMessages,l=_e(t.modifiers)?t.modifiers:{},c=t.pluralizationRules,u=Ye(t.postTranslation)?t.postTranslation:void 0,d=re(t.warnHtmlInMessage)?t.warnHtmlInMessage!=="off":!0,f=!!t.escapeParameterHtml,m=Se(t.sync)?t.sync:!0;let w=t.messages;if(_e(t.sharedMessages)){const b=t.sharedMessages;w=Object.keys(b).reduce((x,N)=>{const O=x[N]||(x[N]={});return st(O,b[N]),x},w||{})}const{__i18n:g,__root:E,__injectWithOption:_}=t,C=t.datetimeFormats,S=t.numberFormats,v=t.flatJson;return{locale:e,fallbackLocale:n,messages:w,flatJson:v,datetimeFormats:C,numberFormats:S,missing:r,missingWarn:i,fallbackWarn:s,fallbackRoot:o,fallbackFormat:a,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:d,escapeParameter:f,messageResolver:t.messageResolver,inheritLocale:m,__i18n:g,__root:E,__injectWithOption:_}}function Yc(t={},e){{const n=bf(iD(t)),r={id:n.id,get locale(){return n.locale.value},set locale(i){n.locale.value=i},get fallbackLocale(){return n.fallbackLocale.value},set fallbackLocale(i){n.fallbackLocale.value=i},get messages(){return n.messages.value},get datetimeFormats(){return n.datetimeFormats.value},get numberFormats(){return n.numberFormats.value},get availableLocales(){return n.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(i){},get missing(){return n.getMissingHandler()},set missing(i){n.setMissingHandler(i)},get silentTranslationWarn(){return Se(n.missingWarn)?!n.missingWarn:n.missingWarn},set silentTranslationWarn(i){n.missingWarn=Se(i)?!i:i},get silentFallbackWarn(){return Se(n.fallbackWarn)?!n.fallbackWarn:n.fallbackWarn},set silentFallbackWarn(i){n.fallbackWarn=Se(i)?!i:i},get modifiers(){return n.modifiers},get formatFallbackMessages(){return n.fallbackFormat},set formatFallbackMessages(i){n.fallbackFormat=i},get postTranslation(){return n.getPostTranslationHandler()},set postTranslation(i){n.setPostTranslationHandler(i)},get sync(){return n.inheritLocale},set sync(i){n.inheritLocale=i},get warnHtmlInMessage(){return n.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(i){n.warnHtmlMessage=i!=="off"},get escapeParameterHtml(){return n.escapeParameter},set escapeParameterHtml(i){n.escapeParameter=i},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(i){},get pluralizationRules(){return n.pluralRules||{}},__composer:n,t(...i){const[s,o,a]=i,l={};let c=null,u=null;if(!re(s))throw nt(Ze.INVALID_ARGUMENT);const d=s;return re(o)?l.locale=o:He(o)?c=o:_e(o)&&(u=o),He(a)?c=a:_e(a)&&(u=a),Reflect.apply(n.t,n,[d,c||u||{},l])},rt(...i){return Reflect.apply(n.rt,n,[...i])},tc(...i){const[s,o,a]=i,l={plural:1};let c=null,u=null;if(!re(s))throw nt(Ze.INVALID_ARGUMENT);const d=s;return re(o)?l.locale=o:tt(o)?l.plural=o:He(o)?c=o:_e(o)&&(u=o),re(a)?l.locale=a:He(a)?c=a:_e(a)&&(u=a),Reflect.apply(n.t,n,[d,c||u||{},l])},te(i,s){return n.te(i,s)},tm(i){return n.tm(i)},getLocaleMessage(i){return n.getLocaleMessage(i)},setLocaleMessage(i,s){n.setLocaleMessage(i,s)},mergeLocaleMessage(i,s){n.mergeLocaleMessage(i,s)},d(...i){return Reflect.apply(n.d,n,[...i])},getDateTimeFormat(i){return n.getDateTimeFormat(i)},setDateTimeFormat(i,s){n.setDateTimeFormat(i,s)},mergeDateTimeFormat(i,s){n.mergeDateTimeFormat(i,s)},n(...i){return Reflect.apply(n.n,n,[...i])},getNumberFormat(i){return n.getNumberFormat(i)},setNumberFormat(i,s){n.setNumberFormat(i,s)},mergeNumberFormat(i,s){n.mergeNumberFormat(i,s)},getChoiceIndex(i,s){return-1},__onComponentInstanceCreated(i){const{componentInstanceCreatedListener:s}=t;s&&s(i,r)}};return r}}const yf={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:t=>t==="parent"||t==="global",default:"parent"},i18n:{type:Object}};function sD({slots:t},e){return e.length===1&&e[0]==="default"?(t.default?t.default():[]).reduce((r,i)=>r=[...r,...He(i.children)?i.children:[i]],[]):e.reduce((n,r)=>{const i=t[r];return i&&(n[r]=i()),n},{})}function Fv(t){return xe}const Sm={name:"i18n-t",props:st({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:t=>tt(t)||!isNaN(t)}},yf),setup(t,e){const{slots:n,attrs:r}=e,i=t.i18n||Ef({useScope:t.scope,__useComponent:!0});return()=>{const s=Object.keys(n).filter(d=>d!=="_"),o={};t.locale&&(o.locale=t.locale),t.plural!==void 0&&(o.plural=re(t.plural)?+t.plural:t.plural);const a=sD(e,s),l=i[jc](t.keypath,a,o),c=st({},r),u=re(t.tag)||Be(t.tag)?t.tag:Fv();return Cr(u,c,l)}}};function oD(t){return He(t)&&!re(t[0])}function Vv(t,e,n,r){const{slots:i,attrs:s}=e;return()=>{const o={part:!0};let a={};t.locale&&(o.locale=t.locale),re(t.format)?o.key=t.format:Be(t.format)&&(re(t.format.key)&&(o.key=t.format.key),a=Object.keys(t.format).reduce((f,m)=>n.includes(m)?st({},f,{[m]:t.format[m]}):f,{}));const l=r(t.value,o,a);let c=[o.key];He(l)?c=l.map((f,m)=>{const w=i[f.type],g=w?w({[f.type]:f.value,index:m,parts:l}):[f.value];return oD(g)&&(g[0].key=`${f.type}-${m}`),g}):re(l)&&(c=[l]);const u=st({},s),d=re(t.tag)||Be(t.tag)?t.tag:Fv();return Cr(d,u,c)}}const Am={name:"i18n-n",props:st({value:{type:Number,required:!0},format:{type:[String,Object]}},yf),setup(t,e){const n=t.i18n||Ef({useScope:"parent",__useComponent:!0});return Vv(t,e,Pv,(...r)=>n[zc](...r))}},km={name:"i18n-d",props:st({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},yf),setup(t,e){const n=t.i18n||Ef({useScope:"parent",__useComponent:!0});return Vv(t,e,Ov,(...r)=>n[Wc](...r))}};function aD(t,e){const n=t;if(t.mode==="composition")return n.__getInstance(e)||t.global;{const r=n.__getInstance(e);return r!=null?r.__composer:t.global.__composer}}function lD(t){const e=o=>{const{instance:a,modifiers:l,value:c}=o;if(!a||!a.$)throw nt(Ze.UNEXPECTED_ERROR);const u=aD(t,a.$),d=xm(c);return[Reflect.apply(u.t,u,[...Lm(d)]),u]};return{created:(o,a)=>{const[l,c]=e(a);Fc&&t.global===c&&(o.__i18nWatcher=cr(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),o.__composer=c,o.textContent=l},unmounted:o=>{Fc&&o.__i18nWatcher&&(o.__i18nWatcher(),o.__i18nWatcher=void 0,delete o.__i18nWatcher),o.__composer&&(o.__composer=void 0,delete o.__composer)},beforeUpdate:(o,{value:a})=>{if(o.__composer){const l=o.__composer,c=xm(a);o.textContent=Reflect.apply(l.t,l,[...Lm(c)])}},getSSRProps:o=>{const[a]=e(o);return{textContent:a}}}}function xm(t){if(re(t))return{path:t};if(_e(t)){if(!("path"in t))throw nt(Ze.REQUIRED_VALUE,"path");return t}else throw nt(Ze.INVALID_VALUE)}function Lm(t){const{path:e,locale:n,args:r,choice:i,plural:s}=t,o={},a=r||{};return re(n)&&(o.locale=n),tt(i)&&(o.plural=i),tt(s)&&(o.plural=s),[e,a,o]}function cD(t,e,...n){const r=_e(n[0])?n[0]:{},i=!!r.useI18nComponentName;(Se(r.globalInstall)?r.globalInstall:!0)&&(t.component(i?"i18n":Sm.name,Sm),t.component(Am.name,Am),t.component(km.name,km)),t.directive("t",lD(e))}function uD(t,e,n){return{beforeCreate(){const r=Ln();if(!r)throw nt(Ze.UNEXPECTED_ERROR);const i=this.$options;if(i.i18n){const s=i.i18n;i.__i18n&&(s.__i18n=i.__i18n),s.__root=e,this===this.$root?this.$i18n=Nm(t,s):(s.__injectWithOption=!0,this.$i18n=Yc(s))}else i.__i18n?this===this.$root?this.$i18n=Nm(t,i):this.$i18n=Yc({__i18n:i.__i18n,__injectWithOption:!0,__root:e}):this.$i18n=t;i.__i18nGlobal&&Rv(e,i,i),t.__onComponentInstanceCreated(this.$i18n),n.__setInstance(r,this.$i18n),this.$t=(...s)=>this.$i18n.t(...s),this.$rt=(...s)=>this.$i18n.rt(...s),this.$tc=(...s)=>this.$i18n.tc(...s),this.$te=(s,o)=>this.$i18n.te(s,o),this.$d=(...s)=>this.$i18n.d(...s),this.$n=(...s)=>this.$i18n.n(...s),this.$tm=s=>this.$i18n.tm(s)},mounted(){},unmounted(){const r=Ln();if(!r)throw nt(Ze.UNEXPECTED_ERROR);delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,n.__deleteInstance(r),delete this.$i18n}}}function Nm(t,e){t.locale=e.locale||t.locale,t.fallbackLocale=e.fallbackLocale||t.fallbackLocale,t.missing=e.missing||t.missing,t.silentTranslationWarn=e.silentTranslationWarn||t.silentFallbackWarn,t.silentFallbackWarn=e.silentFallbackWarn||t.silentFallbackWarn,t.formatFallbackMessages=e.formatFallbackMessages||t.formatFallbackMessages,t.postTranslation=e.postTranslation||t.postTranslation,t.warnHtmlInMessage=e.warnHtmlInMessage||t.warnHtmlInMessage,t.escapeParameterHtml=e.escapeParameterHtml||t.escapeParameterHtml,t.sync=e.sync||t.sync,t.__composer[Iv](e.pluralizationRules||t.pluralizationRules);const n=Ga(t.locale,{messages:e.messages,__i18n:e.__i18n});return Object.keys(n).forEach(r=>t.mergeLocaleMessage(r,n[r])),e.datetimeFormats&&Object.keys(e.datetimeFormats).forEach(r=>t.mergeDateTimeFormat(r,e.datetimeFormats[r])),e.numberFormats&&Object.keys(e.numberFormats).forEach(r=>t.mergeNumberFormat(r,e.numberFormats[r])),t}const fD=Ar("global-vue-i18n");function dD(t={},e){const n=__VUE_I18N_LEGACY_API__&&Se(t.legacy)?t.legacy:__VUE_I18N_LEGACY_API__,r=Se(t.globalInjection)?t.globalInjection:!0,i=__VUE_I18N_LEGACY_API__&&n?!!t.allowComposition:!0,s=new Map,[o,a]=hD(t,n),l=Ar("");function c(f){return s.get(f)||null}function u(f,m){s.set(f,m)}function d(f){s.delete(f)}{const f={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return i},async install(m,...w){m.__VUE_I18N_SYMBOL__=l,m.provide(m.__VUE_I18N_SYMBOL__,f),!n&&r&&wD(m,f.global),__VUE_I18N_FULL_INSTALL__&&cD(m,f,...w),__VUE_I18N_LEGACY_API__&&n&&m.mixin(uD(a,a.__composer,f));const g=m.unmount;m.unmount=()=>{f.dispose(),g()}},get global(){return a},dispose(){o.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:d};return f}}function Ef(t={}){const e=Ln();if(e==null)throw nt(Ze.MUST_BE_CALL_SETUP_TOP);if(!e.isCE&&e.appContext.app!=null&&!e.appContext.app.__VUE_I18N_SYMBOL__)throw nt(Ze.NOT_INSLALLED);const n=mD(e),r=gD(n),i=$v(e),s=pD(t,i);if(__VUE_I18N_LEGACY_API__&&n.mode==="legacy"&&!t.__useComponent){if(!n.allowComposition)throw nt(Ze.NOT_AVAILABLE_IN_LEGACY_MODE);return bD(e,s,r,t)}if(s==="global")return Rv(r,t,i),r;if(s==="parent"){let l=_D(n,e,t.__useComponent);return l==null&&(l=r),l}const o=n;let a=o.__getInstance(e);if(a==null){const l=st({},t);"__i18n"in i&&(l.__i18n=i.__i18n),r&&(l.__root=r),a=bf(l),vD(o,e),o.__setInstance(e,a)}return a}function hD(t,e,n){const r=ow();{const i=__VUE_I18N_LEGACY_API__&&e?r.run(()=>Yc(t)):r.run(()=>bf(t));if(i==null)throw nt(Ze.UNEXPECTED_ERROR);return[r,i]}}function mD(t){{const e=Un(t.isCE?fD:t.appContext.app.__VUE_I18N_SYMBOL__);if(!e)throw nt(t.isCE?Ze.NOT_INSLALLED_WITH_PROVIDE:Ze.UNEXPECTED_ERROR);return e}}function pD(t,e){return Ka(t)?"__i18n"in e?"local":"global":t.useScope?t.useScope:"local"}function gD(t){return t.mode==="composition"?t.global:t.global.__composer}function _D(t,e,n=!1){let r=null;const i=e.root;let s=e.parent;for(;s!=null;){const o=t;if(t.mode==="composition")r=o.__getInstance(s);else if(__VUE_I18N_LEGACY_API__){const a=o.__getInstance(s);a!=null&&(r=a.__composer,n&&r&&!r[Dv]&&(r=null))}if(r!=null||i===s)break;s=s.parent}return r}function vD(t,e,n){xu(()=>{},e),Oa(()=>{t.__deleteInstance(e)},e)}function bD(t,e,n,r={}){const i=e==="local",s=Qp(null);if(i&&t.proxy&&!(t.proxy.$options.i18n||t.proxy.$options.__i18n))throw nt(Ze.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const o=Se(r.inheritLocale)?r.inheritLocale:!0,a=cn(i&&o?n.locale.value:re(r.locale)?r.locale:fo),l=cn(i&&o?n.fallbackLocale.value:re(r.fallbackLocale)||He(r.fallbackLocale)||_e(r.fallbackLocale)||r.fallbackLocale===!1?r.fallbackLocale:a.value),c=cn(Ga(a.value,r)),u=cn(_e(r.datetimeFormats)?r.datetimeFormats:{[a.value]:{}}),d=cn(_e(r.numberFormats)?r.numberFormats:{[a.value]:{}}),f=i?n.missingWarn:Se(r.missingWarn)||br(r.missingWarn)?r.missingWarn:!0,m=i?n.fallbackWarn:Se(r.fallbackWarn)||br(r.fallbackWarn)?r.fallbackWarn:!0,w=i?n.fallbackRoot:Se(r.fallbackRoot)?r.fallbackRoot:!0,g=!!r.fallbackFormat,E=Ye(r.missing)?r.missing:null,_=Ye(r.postTranslation)?r.postTranslation:null,C=i?n.warnHtmlMessage:Se(r.warnHtmlMessage)?r.warnHtmlMessage:!0,S=!!r.escapeParameter,v=i?n.modifiers:_e(r.modifiers)?r.modifiers:{},b=r.pluralRules||i&&n.pluralRules;function k(){return[a.value,l.value,c.value,u.value,d.value]}const x=je({get:()=>s.value?s.value.locale.value:a.value,set:p=>{s.value&&(s.value.locale.value=p),a.value=p}}),N=je({get:()=>s.value?s.value.fallbackLocale.value:l.value,set:p=>{s.value&&(s.value.fallbackLocale.value=p),l.value=p}}),O=je(()=>s.value?s.value.messages.value:c.value),B=je(()=>u.value),q=je(()=>d.value);function Q(){return s.value?s.value.getPostTranslationHandler():_}function ee(p){s.value&&s.value.setPostTranslationHandler(p)}function I(){return s.value?s.value.getMissingHandler():E}function M(p){s.value&&s.value.setMissingHandler(p)}function Y(p){return k(),p()}function z(...p){return s.value?Y(()=>Reflect.apply(s.value.t,null,[...p])):Y(()=>"")}function te(...p){return s.value?Reflect.apply(s.value.rt,null,[...p]):""}function se(...p){return s.value?Y(()=>Reflect.apply(s.value.d,null,[...p])):Y(()=>"")}function ce(...p){return s.value?Y(()=>Reflect.apply(s.value.n,null,[...p])):Y(()=>"")}function he(p){return s.value?s.value.tm(p):{}}function fe(p,T){return s.value?s.value.te(p,T):!1}function Ne(p){return s.value?s.value.getLocaleMessage(p):{}}function me(p,T){s.value&&(s.value.setLocaleMessage(p,T),c.value[p]=T)}function R(p,T){s.value&&s.value.mergeLocaleMessage(p,T)}function X(p){return s.value?s.value.getDateTimeFormat(p):{}}function U(p,T){s.value&&(s.value.setDateTimeFormat(p,T),u.value[p]=T)}function Z(p,T){s.value&&s.value.mergeDateTimeFormat(p,T)}function pe(p){return s.value?s.value.getNumberFormat(p):{}}function ge(p,T){s.value&&(s.value.setNumberFormat(p,T),d.value[p]=T)}function le(p,T){s.value&&s.value.mergeNumberFormat(p,T)}const oe={get id(){return s.value?s.value.id:-1},locale:x,fallbackLocale:N,messages:O,datetimeFormats:B,numberFormats:q,get inheritLocale(){return s.value?s.value.inheritLocale:o},set inheritLocale(p){s.value&&(s.value.inheritLocale=p)},get availableLocales(){return s.value?s.value.availableLocales:Object.keys(c.value)},get modifiers(){return s.value?s.value.modifiers:v},get pluralRules(){return s.value?s.value.pluralRules:b},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:f},set missingWarn(p){s.value&&(s.value.missingWarn=p)},get fallbackWarn(){return s.value?s.value.fallbackWarn:m},set fallbackWarn(p){s.value&&(s.value.missingWarn=p)},get fallbackRoot(){return s.value?s.value.fallbackRoot:w},set fallbackRoot(p){s.value&&(s.value.fallbackRoot=p)},get fallbackFormat(){return s.value?s.value.fallbackFormat:g},set fallbackFormat(p){s.value&&(s.value.fallbackFormat=p)},get warnHtmlMessage(){return s.value?s.value.warnHtmlMessage:C},set warnHtmlMessage(p){s.value&&(s.value.warnHtmlMessage=p)},get escapeParameter(){return s.value?s.value.escapeParameter:S},set escapeParameter(p){s.value&&(s.value.escapeParameter=p)},t:z,getPostTranslationHandler:Q,setPostTranslationHandler:ee,getMissingHandler:I,setMissingHandler:M,rt:te,d:se,n:ce,tm:he,te:fe,getLocaleMessage:Ne,setLocaleMessage:me,mergeLocaleMessage:R,getDateTimeFormat:X,setDateTimeFormat:U,mergeDateTimeFormat:Z,getNumberFormat:pe,setNumberFormat:ge,mergeNumberFormat:le};function h(p){p.locale.value=a.value,p.fallbackLocale.value=l.value,Object.keys(c.value).forEach(T=>{p.mergeLocaleMessage(T,c.value[T])}),Object.keys(u.value).forEach(T=>{p.mergeDateTimeFormat(T,u.value[T])}),Object.keys(d.value).forEach(T=>{p.mergeNumberFormat(T,d.value[T])}),p.escapeParameter=S,p.fallbackFormat=g,p.fallbackRoot=w,p.fallbackWarn=m,p.missingWarn=f,p.warnHtmlMessage=C}return hg(()=>{if(t.proxy==null||t.proxy.$i18n==null)throw nt(Ze.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const p=s.value=t.proxy.$i18n.__composer;e==="global"?(a.value=p.locale.value,l.value=p.fallbackLocale.value,c.value=p.messages.value,u.value=p.datetimeFormats.value,d.value=p.numberFormats.value):i&&h(p)}),oe}const yD=["locale","fallbackLocale","availableLocales"],ED=["t","rt","d","n","tm"];function wD(t,e){const n=Object.create(null);yD.forEach(r=>{const i=Object.getOwnPropertyDescriptor(e,r);if(!i)throw nt(Ze.UNEXPECTED_ERROR);const s=ct(i.value)?{get(){return i.value.value},set(o){i.value.value=o}}:{get(){return i.get&&i.get()}};Object.defineProperty(n,r,s)}),t.config.globalProperties.$i18n=n,ED.forEach(r=>{const i=Object.getOwnPropertyDescriptor(e,r);if(!i||!i.value)throw nt(Ze.UNEXPECTED_ERROR);Object.defineProperty(t.config.globalProperties,`$${r}`,i)})}jI(XI);WI(CI);zI(wv);nD();if(__INTLIFY_PROD_DEVTOOLS__){const t=Is();t.__INTLIFY__=!0,MI(t.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const TD={header:{sessions:"Ladevorg\xE4nge",docs:"Doku",blog:"Blog",github:"GitHub",login:"Fahrzeug Logins",about:"\xDCber evcc",theme:{auto:"Design: System",light:"Design: Hell",dark:"Design: Dunkel"}},footer:{version:{availableShort:"Update",availableLong:"Update verf\xFCgbar",modalTitle:"Update verf\xFCgbar",modalUpdateStarted:"Nach der Aktualisierung wird evcc neu gestartet.",modalInstalledVersion:"Aktuell installierte Version",modalNoReleaseNotes:"Keine Releasenotes verf\xFCgbar. Mehr Informationen zur neuen Version findest du hier:",modalCancel:"Abbrechen",modalUpdate:"Aktualisieren",modalUpdateNow:"Jetzt aktualisieren",modalDownload:"Download",modalUpdateStatusStart:"Aktualisierung gestartet: ",modalUpdateStatusFailed:"Aktualisierung nicht m\xF6glich: "},savings:{tabTitle:"Meine Daten",footerShort:"{percent}% Sonne",footerLong:"{percent}% Sonnenenergie",modalTitle:"Auswertung Ladeenergie",since:"seit {since}",percentTitle:"Sonnenenergie",percentSelf:"{self} kWh Sonne",percentGrid:"{grid} kWh Netz",priceTitle:"Energiepreis",priceFeedIn:"{feedInPrice} Einspeisung",priceGrid:"{gridPrice} Netz",savingsTitle:"Ersparnis",savingsComparedToGrid:"gegen\xFCber Netzbezug",savingsTotalEnergy:"{total} kWh geladen"},community:{tabTitle:"Live-Community",power:"Ladeleistung",powerSub1:"{activeClients} von {totalClients} Nutzern",powerSub2:"laden mit evcc",greenShare:"Sonnenanteil",greenShareSub1:"der Leistung kommt",greenShareSub2:"aus PV & Hausakku",greenEnergy:"Sonnenenergie",greenEnergySub1:"seit Oktober 2022",greenEnergySub2:"\xFCber evcc geladen"},telemetry:{optIn:"Ich m\xF6chte meine Daten auch beisteuern.",optInMoreDetails:"Mehr Details gibts {0}.",optInMoreDetailsLink:"hier",optInSponsorship:"Sponsoring erforderlich."},sponsor:{titleSponsor:"Du bist Unterst\xFCtzer",titleNoSponsor:"Unterst\xFCtze uns",thanks:"Danke f\xFCr dein Sponsoring, {sponsor}! Das hilft uns bei der Weiterentwicklung.",confetti:"Lust auf Konfetti?",supportUs:"Unsere Mission: Sonne tanken zum Standard machen. Hilf uns und unterst\xFCtze evcc finanziell.",sticker:"...oder evcc Sticker?",confettiPromise:"Es gibt auch Sticker und digitales Konfetti ;)",becomeSponsor:"Sponsor werden"}},notifications:{modalTitle:"Meldungen",dismissAll:"Meldungen entfernen"},main:{vehicles:"Parkplatz",energyflow:{noEnergy:"Kein Messwerte",homePower:"Verbrauch",pvProduction:"Erzeugung",loadpoints:"Ladepunkt | Ladepunkt | {count} Ladepunkte",battery:"Batterie",batteryCharge:"Batterie laden",batteryDischarge:"Batterie entladen",gridImport:"Netzbezug",selfConsumption:"Eigenverbrauch",pvExport:"Einspeisung"},mode:{off:"Aus",minpv:"Min+PV",pv:"PV",now:"Schnell"},loadpoint:{fallbackName:"Ladepunkt",remoteDisabledSoft:"{source}: Adaptives PV-Laden deaktiviert",remoteDisabledHard:"{source}: Deaktiviert",power:"Leistung",charged:"Geladen",duration:"Dauer",remaining:"Restzeit"},loadpointSettings:{title:'Einstellungen "{0}"',vehicle:"Fahrzeug",currents:"Ladestrom",default:"default",disclaimerHint:"Hinweis:",disclaimerText:"\xC4nderungen sind aktuell noch nicht persistent und werden nach einem Serverneustart wieder zur\xFCckgesetzt.",minSoC:{label:"Mindestladestand",description:'Reichweite f\xFCr Notf\xE4lle. Fahrzeug wird im PV-Modus "schnell" auf {0}% geladen. Danach weiter mit PV-\xDCberschuss.'},phasesConfigured:{label:"Phasen",phases_0:"automatischer Wechsel",phases_1:"1-phasig",phases_1_hint:"({min} bis {max})",phases_3:"3-phasig",phases_3_hint:"({min} bis {max})"},maxCurrent:{label:"Max. Ladestrom"},minCurrent:{label:"Min. Ladestrom"}},vehicle:{fallbackName:"Fahrzeug",vehicleSoC:"Ladestand",targetSoC:"Ladeziel",none:"Kein Fahrzeug",unknown:"Gastfahrzeug",changeVehicle:"Fahrzeug \xE4ndern",detectionActive:"Fahrzeugerkennung l\xE4uft ..."},vehicleSoC:{disconnected:"getrennt",charging:"l\xE4dt",ready:"bereit",connected:"verbunden",vehicleTarget:"Fahrzeuglimit: {soc}%"},vehicleStatus:{minCharge:"Mindestladung bis {soc}%.",waitForVehicle:"Ladebereit. Warte auf Fahrzeug.",vehicleTargetReached:"Fahrzeuglimit {soc}% erreicht.",charging:"Ladevorgang aktiv.",targetChargePlanned:"Zielladen geplant. Ladung startet {time} Uhr.",targetChargeWaitForVehicle:"Zielladen bereit. Warte auf Fahrzeug.",targetChargeActive:"Zielladen aktiv.",connected:"Verbunden.",pvDisable:"Zu wenig \xDCberschuss. Pausiere in {remaining}.",pvEnable:"\xDCberschuss verf\xFCgbar. Starte in {remaining}.",scale1p:"Reduziere auf einphasig in {remaining}.",scale3p:"Erh\xF6he auf dreiphasig in {remaining}.",disconnected:"Nicht verbunden.",unknown:""},provider:{login:"anmelden",logout:"abmelden"},targetCharge:{title:"Zielzeit",inactiveLabel:"Zielzeit",activeLabel:"{time}",modalTitle:"Zielzeit festlegen",setTargetTime:"keine",description:"Wann soll das Fahrzeug auf {targetSoC}% geladen sein?",today:"heute",tomorrow:"morgen",targetIsInThePast:"Zeitpunkt liegt in der Vergangenheit.",remove:"Entfernen",activate:"Aktivieren",experimentalLabel:"Experimentell",experimentalText:"Dieses Feature funktioniert, ist aber noch nicht perfekt. Bitte melde unerwartetes Verhalten in unseren"},targetEnergy:{label:"Ladeziel",noLimit:"keins"}},startupError:{title:"Fehler beim Starten",description:"Bitte \xFCberpr\xFCfe deine Konfigurationsdatei. Sollte dir die Fehlermeldung nicht weiterhelfen, suche in unseren {0} nach einer L\xF6sung.",discussions:"GitHub Discussions",hint:"Hinweis: Ein weiterer Grund, warum du diese Meldung siehst, k\xF6nnte ein fehlerhaftes Ger\xE4t (Wechselrichter, Z\xE4hler, ...) sein. \xDCberpr\xFCfe deine Netzwerkverbindungen.",configuration:"Konfiguration",configFile:"Verwendete Konfigurationsdatei:",lineError:"In {0} wurde ein Fehler gefunden.",lineErrorLink:"Zeile {0}",fixAndRestart:"Behebe das Problem und starte den Server neu.",restartButton:"Neu starten"},sessions:{title:"Ladevorg\xE4nge",downloadCsv:"Als CSV herunterladen",loadpoint:"Ladepunkt",vehicle:"Fahrzeug",odometer:"Kilometerstand",energy:"Geladen",date:"Zeitraum",csv:{loadpoint:"Ladepunkt",vehicle:"Fahrzeug",identifier:"Kennung",chargedenergy:"Energie (kWh)",meterstart:"Anfangsz\xE4hlerstand (kWh)",meterstop:"Endz\xE4hlerstand (kWh)",created:"Startzeit",finished:"Endzeit"}},offline:{message:"Keine Verbindung zum Server.",reload:"Reload?"}},CD={header:{sessions:"Charging sessions",docs:"Documentation",blog:"Blog",github:"GitHub",login:"Vehicle logins",about:"About evcc",theme:{auto:"Design: system",light:"Design: light",dark:"Design: dark"}},footer:{version:{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:{tabTitle:"My data",footerShort:"{percent}% solar",footerLong:"{percent}% solar energy",modalTitle:"Charge Energy Overview",since:"since {since}",percentTitle:"Solar Energy",percentSelf:"{self} kWh solar",percentGrid:"{grid} kWh grid",priceTitle:"Energy Price",priceFeedIn:"{feedInPrice} feed-in",priceGrid:"{gridPrice} grid",savingsTitle:"Savings",savingsComparedToGrid:"compared to grid",savingsTotalEnergy:"{total} kWh charged"},community:{tabTitle:"Live community",power:"Charging power",powerSub1:"{activeClients} of {totalClients} participants",powerSub2:"are charging right now",greenShare:"Solar share",greenShareSub1:"power is covered by",greenShareSub2:"PV & battery storage",greenEnergy:"Solar energy",greenEnergySub1:"charged with evcc",greenEnergySub2:"since October 2022"},telemetry:{optIn:"I want to contribute my data as well.",optInMoreDetails:"More details are available {0}.",optInMoreDetailsLink:"here",optInSponsorship:"Sponsoring required."},sponsor:{titleSponsor:"You are a supporter",titleNoSponsor:"Support us",thanks:"Thanks for your support, {sponsor}! It helps us with the further development.",confetti:"Ready for confetti?",supportUs:"Our mission: Make solar charging the standard. Help us and support evcc financially.",sticker:"...or evcc stickers?",confettiPromise:"There will be stickers and digital confetti ;)",becomeSponsor:"Become a Sponsor"}},notifications:{modalTitle:"Notifications",dismissAll:"Dismiss all"},main:{vehicles:"Parking",energyflow:{noEnergy:"No meter data",homePower:"Consumption",pvProduction:"Production",loadpoints:"Loadpoint | Loadpoint | {count} Loadpoints",battery:"Battery",batteryCharge:"Battery charge",batteryDischarge:"Battery discharge",gridImport:"Grid import",selfConsumption:"Self consumption",pvExport:"Grid export"},mode:{off:"Off",minpv:"Min+PV",pv:"PV",now:"Fast"},loadpoint:{fallbackName:"Loadpoint",remoteDisabledSoft:"{source}: adaptive PV charging disabled",remoteDisabledHard:"{source}: disabled",power:"Power",charged:"Charged",duration:"Duration",remaining:"Remaining"},loadpointSettings:{title:'Settings "{0}"',vehicle:"Vehicle",currents:"Charging",default:"default",disclaimerHint:"Note:",disclaimerText:"Changes are not persistent yet. They will be reset after server restart.",minSoC:{label:"Minimal SoC",description:'Range for emergencies. Vehicle gets "fast" charged to {0}% in PV mode. Then continues with PV surplus only.'},phasesConfigured:{label:"Phases",phases_0:"automatic switching",phases_1:"1 phase",phases_1_hint:"({min} to {max})",phases_3:"3 phases",phases_3_hint:"({min} to {max})"},maxCurrent:{label:"Max. Current"},minCurrent:{label:"Min. Current"}},vehicle:{fallbackName:"Vehicle",vehicleSoC:"SoC",targetSoC:"Limit",none:"No vehicle",unknown:"Guest vehicle",changeVehicle:"Change Vehicle",detectionActive:"Detecting vehicle ..."},vehicleSoC:{disconnected:"disconnected",charging:"charging",ready:"ready",connected:"connected",vehicleTarget:"Vehicle limit: {soc}%"},vehicleStatus:{minCharge:"minimum charging to {soc}%.",waitForVehicle:"Ready. Waiting for vehicle.",vehicleTargetReached:"Vehicle limit {soc}% reached.",charging:"Charging.",targetChargePlanned:"Target charge planned. Starting {time}.",targetChargeWaitForVehicle:"Target charge ready. Wait for vehicle.",targetChargeActive:"Target charge active.",connected:"Connected.",pvDisable:"Not enough surplus. Pausing in {remaining}.",pvEnable:"Surplus available. Starting in {remaining}.",scale1p:"Reduce to single phase in {remaining}.",scale3p:"Increase to three phase in {remaining}.",disconnected:"Disconnected.",unknown:""},provider:{login:"login",logout:"logout"},targetCharge:{title:"Target Time",inactiveLabel:"Target time",activeLabel:"{time}",modalTitle:"Set Target Time",setTargetTime:"none",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:"This feature works but isn't perfect yet. Please report unexpected behaviour in our"},targetEnergy:{label:"Limit",noLimit:"none"}},startupError:{title:"Startup Error",description:"Please check your configuration file. If the error message does not help you, have a look at our {0}.",discussions:"GitHub Discussions",hint:"Note: Another reason why you see this message could be a faulty device (inverter, meter, ...). Check your network connections.",configuration:"Config",configFile:"Configuration file used:",lineError:"We found an error in {0}.",lineErrorLink:"line {0}",fixAndRestart:"Fix the problem and restart the server.",restartButton:"Restart"},sessions:{title:"Charging sessions",downloadCsv:"Download as CSV",loadpoint:"Loadpoint",vehicle:"Vehicle",energy:"Charged",date:"Period",csv:{loadpoint:"Loadpoint",vehicle:"Vehicle",odometer:"Mileage (km)",identifier:"Identifier",chargedenergy:"Energy (kWh)",meterstart:"Meter Start (kWh)",meterstop:"Meter Stop (kWh)",created:"Created",finished:"Finished"}},offline:{message:"No connection to server.",reload:"Reload?"}},SD={header:{docs:"Documentazione",blog:"Blog",github:"GitHub",login:"Iscrizioni"},footer:{version:{availableShort:"aggiornamento",availableLong:"aggiornamento disponibile",modalTitle:"Aggiornamento disponibile",modalUpdateStarted:"Evcc ripartir\xE0 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: "}},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:{off:"Stop",minpv:"Min+FV",pv:"FV",now:"Ora"},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"}}},AD={header:{sessions:"\u012Ekrovimo sesijos ",docs:"Dokumentacija (Vokie\u010Di\u0173 k.)",blog:"Tinklara\u0161tis",github:"GitHub",login:" Automobili\u0173 prisijungimai",about:"Apie EVCC",theme:{auto:"Dizainas: Sistemos",light:"Dizainas: \u0160viesus",dark:"Dizainas: Tamsus"}},footer:{version:{availableShort:"naujinimas",availableLong:"yra naujesn\u0117 versija",modalTitle:"Yra naujesn\u0117 versija",modalUpdateStarted:"Pasibaigus naujinimui EVCC startuos i\u0161 naujo..",modalInstalledVersion:"Dabartin\u0117 versija",modalNoReleaseNotes:"Naujinimo pastab\u0173 n\u0117ra. Daugiau informacijos apie nauj\u0105 versij\u0105 galite rasti rasite \u010Dia:",modalCancel:"At\u0161aukti",modalUpdate:"Naujinti",modalUpdateNow:"Naujinti dabar",modalDownload:"Atsisi\u0173sti",modalUpdateStatusStart:"Naujinimas prasid\u0117jo: ",modalUpdateStatusFailed:"Naujinimas nepavyko: "},savings:{tabTitle:"Mano duomenys",footerShort:"{percent}% saul\u0117s",footerLong:"{percent}% saul\u0117s energija",modalTitle:"\u012Ekrovimo energijos ap\u017Evalga",since:"nuo {since}",percentTitle:"Saul\u0117s energija",percentSelf:"{self} kWh saul\u0117s",percentGrid:"{grid} kWh tinklo",priceTitle:"Energijos kaina",priceFeedIn:"{feedInPrice} eksporto",priceGrid:"{gridPrice} tinklo",savingsTitle:"Sutaupyta",savingsComparedToGrid:"palyginus su tinklu",savingsTotalEnergy:"{total} kWh \u012Fkrauta"},community:{tabTitle:"Bendruomen\u0117s duomenys",power:"\u012Ekrovimo galia",powerSub1:"{activeClients} i\u0161 {totalClients} dalyvi\u0173",powerSub2:"\u012Fkrauna \u0161iuo metu",greenShare:"Saul\u0117s dalis",greenShareSub1:"galios tieka Saul\u0117 ir",greenShareSub2:"energijos kaupikliai",greenEnergy:"Saul\u0117s energija",greenEnergySub1:"\u012Fkrauta su evcc",greenEnergySub2:"nuo 2022 Spalio"},telemetry:{optIn:"Noriu prisid\u0117ti savo duomenimis.",optInMoreDetails:"Daugiau informacijos rasite {0}.",optInMoreDetailsLink:"\u010Dia",optInSponsorship:"(Gali tik r\u0117m\u0117jai.)"},sponsor:{titleSponsor:"Esate r\u0117m\u0117jais",titleNoSponsor:"Paremkite mus",thanks:"A\u010Di\u016B, kad mus remiate {sponsor}! Taip prisidedate prie projekto vystymo.",confetti:"Norite konfeti?",supportUs:"M\u016Bs\u0173 misija: Siekiame, kad \u012Fkrovimas saul\u0117s energija tapt\u0173 standartu. Pad\u0117kite mums ir paremkite evcc finansi\u0161kai.",sticker:"... ar evcc lipduk\u0173?",confettiPromise:"Bus lipduk\u0173 ir skaitmenini\u0173 konfeti ;)",becomeSponsor:"Tapkite r\u0117m\u0117ju"}},notifications:{modalTitle:"Prane\u0161imai",dismissAll:"I\u0161valyti visus"},main:{vehicles:"Autoparkas",energyflow:{noEnergy:"N\u0117ra skaitikli\u0173 duomen\u0173",homePower:"Namo suvartojimas",pvProduction:"Gamyba",loadpoints:"\u012Ekroviklis | \u012Ekroviklis | {count} \u012Ekrovikliai",battery:"Baterija",batteryCharge:"Baterijos \u012Fkrovimas",batteryDischarge:"Baterijos i\u0161krovimas",gridImport:"Tinklo importas",selfConsumption:"Sunaudojama i\u0161kart",pvExport:"Tinklo eksportas"},mode:{off:"Stop",minpv:"Min+S",pv:"Saul\u0117s",now:"Greitas"},loadpoint:{fallbackName:"\u012Ekroviklis",remoteDisabledSoft:"{source}: adaptyvus Saul\u0117s \u012Fkrovimas i\u0161jungtas",remoteDisabledHard:"{source}: i\u0161jungtas",power:"Galia",charged:"\u012Ekrauta",duration:"Trukm\u0117",remaining:"Liko"},loadpointSettings:{title:'Nustatymai "{0}"',vehicle:"Automobilis",currents:"\u012Ekraunama",default:"standarti\u0161kai",disclaimerHint:"Pastaba:",disclaimerText:"\u0160ie pakeitimai nei\u0161lieka ir po EVCC serverio restarto pradings.",minSoC:{label:"Minimali \u012Fkrova",description:'Minimali \u012Fkrova. Automobilis \u012Fkraunamas "Greitai" iki {0}% nustatyme "Saul\u0117" . Toliau \u012Fkraunamas tik saul\u0117s energijos pertekliumi.'},phasesConfigured:{label:"Faz\u0117s",phases_0:"automatinis perjungimas",phases_1:"1 faz\u0117",phases_1_hint:"({min} to {max})",phases_3:"3 faz\u0117s",phases_3_hint:"({min} to {max})"},maxCurrent:{label:"Max. Srov\u0117"},minCurrent:{label:"Min. Srov\u0117"}},vehicle:{fallbackName:"Automobilis",vehicleSoC:"\u012Ekrova",targetSoC:"Limitas",none:"N\u0117ra automobilio",unknown:"Ne\u017Einomas automobilis",changeVehicle:"Pakeisti automobil\u012F",detectionActive:"Bandome atpa\u017Einti automobil\u012F ..."},vehicleSoC:{disconnected:"neprijungtas",charging:"vyksta \u012Fkrovimas",ready:"leid\u017Eiama \u012Fkrauti",connected:"automobilis prijungtas",vehicleTarget:"Automobilio limitas: {soc}%"},vehicleStatus:{minCharge:"minimalus \u012Fkrovimas iki {soc}%.",waitForVehicle:"\u012Ekrovimas leid\u017Eiamas. Laukiama automobilio signalo.",vehicleTargetReached:"Automobilio limitas {soc}% pasiektas.",charging:"\u012Ekraunama.",targetChargePlanned:"Suplanuotas \u012Fkrovimas, prasid\u0117s {time}.",targetChargeWaitForVehicle:"Suplanuotas \u012Fkrovimas leid\u017Eiamas. Laukiama automobilio signalo.",targetChargeActive:"Suplanuotas \u012Fkrovimas aktyvuotas.",connected:"Prijungtas.",pvDisable:"Tr\u016Bksta saul\u0117s, \u012Fkrovimo pauz\u0117 u\u017E {remaining}.",pvEnable:"Saul\u0117s u\u017Etenka, \u012Fkrovimas prasid\u0117s u\u017E {remaining}.",scale1p:"Suma\u017Einti \u012F vienfaz\u012F \u012Fkrovim\u0105 u\u017E {remaining}.",scale3p:"Padidinti \u012F trifaz\u012F \u012Fkrovim\u0105 u\u017E {remaining}.",disconnected:"Neprijungtas.",unknown:""},provider:{login:"prisijungti",logout:"atsijungti"},targetCharge:{title:"\u012Ekrauti iki",inactiveLabel:"\u012Ekrauti iki",activeLabel:"{time}",modalTitle:"Nustatyti \u012Fkrovimo pabaigos laik\u0105",setTargetTime:"nenustatytas",description:"Kada automobilis tur\u0117t\u0173 b\u016Bti \u012Fkrautas iki {targetSoC}%?",today:"\u0161iandien",tomorrow:"rytoj",targetIsInThePast:"Pasirinktas laikas yra praeityje.",remove:"Panaikinti",activate:"Aktyvuoti",experimentalLabel:"Eksperimentinis",experimentalText:"\u0160i funkcija veikia, bet dar n\u0117ra tobula. Apie netik\u0117t\u0105 elges\u012F prane\u0161kite m\u016Bs\u0173"},targetEnergy:{label:"Limitas",noLimit:"n\u0117ra"}},startupError:{title:"Klaida startuojant",description:"Patikrinkite konfig\u016Bracijos fail\u0105. Jei klaidos \u017Einut\u0117 jums nepad\u0117jo, atsakym\u0173 ie\u0161kokite m\u016Bs\u0173 {0}.",discussions:"GitHub Diskusijose",hint:"Pastaba: Gali b\u016Bti, kad prane\u0161im\u0105 apie klaid\u0105 matote d\u0117l neteisingai veikian\u010Dio \u012Frenginio (inverterio, skaitiklio, ...). Patikrinkite tiklo jungtis.",configuration:"Konfig\u016Bracija",configFile:"Naudojamas konfiguracijos failas:",lineError:"Radome klaid\u0105 \u010Dia {0}.",lineErrorLink:"eilut\u0117 {0}",fixAndRestart:"I\u0161taisykite klaid\u0105 ir restartuokite server\u012F.",restartButton:"Restartuoti"},sessions:{title:"\u012Ekrovimo sesijos",downloadCsv:"Parsisi\u0173sti CSV fail\u0105",loadpoint:"\u012Ekroviklis",vehicle:"Automobilis",energy:"\u012Ekrauta",date:"Laikotarpis",csv:{loadpoint:"\u012Ekroviklis",vehicle:"Automobilis",identifier:"Identifikatorius",chargedenergy:"Energija (kWh)",meterstart:"Skaitiklis prad\u017Eioje (kWh)",meterstop:"Skaitiklis pabaigoje (kWh)",created:"Prad\u0117ta",finished:"Pabaigta"}},offline:{message:"N\u0117ra ry\u0161io su serveriu.",reload:"Perkrauti?"}},kD="preferred_locale";function xD(){const t=navigator.languages!==void 0?navigator.languages[0]:navigator.language;if(!!t)return t.trim().split(/-|_/)[0]}const LD=dD({locale:window.localStorage[kD]||xD(),fallbackLocale:"en",messages:{de:TD,en:CD,it:SD,lt:AD}}),ND={install:t=>{t.config.globalProperties.$hiddenFeatures=window.localStorage.hidden_features==="true"}};KE.polyfill();const si=d2({data(){return{notifications:[],offline:!1}},watch:{offline:function(t){console.log(`we are ${t?"offline":"online"}`)}},methods:{raise:function(t){console[t.type](t);const e=new Date,n=this.notifications[0];n&&n.message===t.message?(n.count++,n.time=e):this.notifications=[{...t,count:1,time:e},...this.notifications]},clear:function(){this.notifications=[]},error:function(t){t.type="error",this.raise(t)},setOnline:function(){this.offline=!1},setOffline:function(){this.offline=!0},warn:function(t){t.type="warn",this.raise(t)}},render:function(){return Cr(M2,{notifications:this.notifications,offline:this.offline})}});si.use(LD);si.use(UM);si.use(A2());si.use(L2);si.use(ND);si.use(D_);window.app=si.mount("#app");vk()});export default OD(); diff --git a/dist/index.html b/dist/index.html index dc279ec00..5139fae5b 100644 --- a/dist/index.html +++ b/dist/index.html @@ -20,7 +20,7 @@ evcc - +