1import{a as fe,d as ge}from"./chunk-DZXZIM5R.js";import{a as ue}from"./chunk-5UJYJEDQ.js";import{p as me}from"./chunk-QVNH5W7F.js";import{d as se,e as le,z as pe}from"./chunk-V5UNYABO.js";import"./chunk-JI5SUK7K.js";import"./chunk-WNQ4N7RJ.js";import{Ba as z,Bh as ce,Ch as de,Ga as x,Ha as _,Hb as K,Ka as E,Kg as I,La as O,Lg as p,Ma as d,Na as l,Nb as v,Oa as m,Ob as h,Pa as w,Pf as ie,Qa as b,Ra as D,Sa as A,Sb as Q,Sf as ae,T as S,Tf as ne,Ub as G,Va as W,Vb as y,Xa as F,Ya as k,Yb as B,Zb as X,_a as u,da as M,ea as $,fg as re,gb as q,gg as oe,hb as Y,ib as R,jb as V,kb as Z,nb as c,ob as P,pa as r,pb as f,pc as ee,rb as J,wa as T,wf as te,xb as N,yb as U,zb as H}from"./chunk-SCIFG7YC.js";import"./chunk-XPNIDFOS.js";import"./chunk-IR53HPP2.js";import"./chunk-CXHL3I57.js";import"./chunk-CB6G7DI2.js";import"./chunk-QDSGMOWV.js";var _e=(i,o)=>o.items[0]==null?null:o.items[0].timestamp,he=(i,o)=>o.timestamp;function be(i,o){if(i&1&&(b(0,"span",8),c(1),D()),i&2){let e=u(),t=e.$implicit,a=e.$index,n=e.$count,s=u(2).$implicit,g=u();V("left",g.getTimeLabelPosition(a,s.items.length),"%"),Z("time-plan-timestamp-start",a===0)("time-plan-timestamp-end",a===n-1),r(),f(" ",g.getTimeLabel(t.timestamp)," ")}}function Te(i,o){if(i&1&&x(0,be,2,7,"span",7),i&2){let e=o.$index,t=u(2).$implicit,a=u();_(a.shouldShowTimeLabel(e,t.items.length)?0:-1)}}function De(i,o){if(i&1&&(b(0,"div",4),E(1,Te,1,1,null,null,he),D()),i&2){let e=u().$implicit;r(),O(e.items)}}function Se(i,o){if(i&1&&A(0,"span",6),i&2){let e=o.$implicit;F("title",e.timestamp+": "+e.cost)}}function we(i,o){if(i&1&&(b(0,"div",1)(1,"span",2),c(2),D(),b(3,"div",3),x(4,De,3,0,"div",4),b(5,"div",5),E(6,Se,1,1,"span",6,he),D()()()),i&2){let e=o.$implicit,t=o.$index,a=u();r(),F("title",a.getResolutionLabel(e)),r(),f(" ",a.getResolutionLabel(e)," "),r(2),_(t===0?4:-1),r(),V("background-image",a.getBarGradient(e)),r(),O(e.items)}}var Ce=(()=>{class i{constructor(){this.tarifData=B.required()}getBarGradient(e){let{items:t}=e;if(t.length===0)return"";if(t.length===1){let n=this.getCostColor(e,t[0].cost);return`linear-gradient(90deg, ${n}, ${n})`}return`linear-gradient(90deg, ${t.flatMap((n,s)=>{let g=this.getCostColor(e,n.cost);if(s===0)return[`${g} 0%`];let C=this.getTimeLabelPosition(s,t.length);return[`${this.getCostColor(e,t[s-1].cost)} ${C}%`,`${g} ${C}%`]}).join(", ")})`}getTimeLabel(e){return e.slice(11,16)}shouldShowTimeLabel(e,t){if(t<=4)return!0;let a=t-1;return e===0||e===Math.round(a/3)||e===Math.round(a*2/3)||e===a}getTimeLabelPosition(e,t){return t<=1?0:e/(t-1)*100}getResolutionLabel(e){let t=e.items[0]?.timestamp;if(!t)return"";let[a,n,s]=t.slice(0,10).split("-").map(Number);return match(this.tarifData().range).pipe(mWhen(p.Quarterly,()=>`Q${Math.ceil(n/3)} ${a}`),mWhen(p.Monthly,()=>`${String(n).padStart(2,"0")}/${a}`),mWhen(p.Weekly,()=>`W${this.getWeekNumber(a,n,s)} ${a}`),mWhen(p.Daily,()=>`${String(s).padStart(2,"0")}.${String(n).padStart(2,"0")}.${a}`),mExhaustive)}getCostColor(e,t){let a=t<=e.medium?this.getGradientPosition(t,e.low,e.medium,0,.5):this.getGradientPosition(t,e.medium,e.high,.5,1);if(a<=.5){let s=a*200;return`color-mix(in oklch, var(--evu-good) ${100-s}%, var(--evu-warning) ${s}%)`}let n=(a-.5)*200;return`color-mix(in oklch, var(--evu-warning) ${100-n}%, var(--evu-bad) ${n}%)`}getWeekNumber(e,t,a){let n=new Date(Date.UTC(e,t-1,a)),s=n.getUTCDay()||7;n.setUTCDate(n.getUTCDate()+4-s);let g=new Date(Date.UTC(n.getUTCFullYear(),0,1)),C=Math.ceil(((n.getTime()-g.getTime())/864e5+1)/7);return String(C).padStart(2,"0")}getGradientPosition(e,t,a,n,s){if(t===a)return n;let g=(e-t)/(a-t),C=n+g*(s-n);return Math.min(Math.max(C,0),1)}static{this.\u0275fac=function(t){return new(t||i)}}static{this.\u0275cmp=T({type:i,selectors:[["enb-dynamic-tariff-time-plan-bars"]],inputs:{tarifData:[1,"tarifData"]},decls:3,vars:0,consts:[[1,"time-plan"],[1,"time-plan-row"],[1,"time-plan-label",3,"title"],[1,"time-plan-timeline"],[1,"time-plan-timestamps"],[1,"time-plan-bar"],[1,"time-plan-segment",3,"title"],[1,"time-plan-timestamp",3,"time-plan-timestamp-start","time-plan-timestamp-end","left"],[1,"time-plan-timestamp"]],template:function(t,a){t&1&&(b(0,"div",0),E(1,we,8,5,"div",1,_e),D()),t&2&&(r(),O(a.tarifData().data))},styles:["[_nghost-%COMP%]{display:block;width:100%}.time-plan[_ngcontent-%COMP%]{display:flex;width:100%;flex-direction:column;gap:var(--evu-spacing-2xl)}.time-plan-row[_ngcontent-%COMP%]{display:grid;width:100%;grid-template-columns:max-content minmax(0,1fr);column-gap:var(--evu-spacing-md)}.time-plan-label[_ngcontent-%COMP%]{grid-row:2;
1align-self:center;color:var(--evu-text-secondary);font-variant-numeric:tabular-nums;text-align:right}.time-plan-timeline[_ngcontent-%COMP%]{display:contents}.time-plan-bar[_ngcontent-%COMP%]{grid-column:2;grid-row:2;display:flex;height:var(--evu-spacing-4xl);overflow:hidden;border-radius:var(--evu-border-radius);background-color:var(--evu-secondary-bg)}.time-plan-timestamps[_ngcontent-%COMP%]{grid-column:2;grid-row:1;position:relative;height:1.25rem}.time-plan-timestamp[_ngcontent-%COMP%], .time-plan-segment[_ngcontent-%COMP%]{font-size:.75rem;font-variant-numeric:tabular-nums;white-space:nowrap}.time-plan-timestamp[_ngcontent-%COMP%]{position:absolute;transform:translate(-50%);overflow:hidden;color:var(--evu-text-secondary)}.time-plan-timestamp-start[_ngcontent-%COMP%]{transform:none}.time-plan-timestamp-end[_ngcontent-%COMP%]{transform:translate(-100%)}.time-plan-segment[_ngcontent-%COMP%]{flex:1 1 0;min-width:0}"]})}}return i})();var L=(function(i){return i.getConfig=(o,e)=>({type:"line",data:{labels:i.getLabels(o),datasets:[{data:o.items.map(t=>t.cost),borderColor:e.getPropertyValue("--evu-primary"),backgroundColor:e.getPropertyValue("--evu-primary-bg"),fill:!0,tension:.3,pointRadius:2,borderWidth:2}]},options:{animation:{duration:200},color:()=>e.getPropertyValue("--evu-chart"),responsive:!0,maintainAspectRatio:!1,scales:{y:{beginAtZero:!1,ticks:{callback:t=>`${t} ct`}},x:{ticks:{maxTicksLimit:8,maxRotation:0}}},plugins:{datalabels:{display:!1},legend:{display:!1},tooltip:{callbacks:{label:t=>`${t.parsed.y.toFixed(2)} ct`}}}}}),i.getLabels=o=>o.items.map(e=>e.timestamp.slice(11,16)),i})(L||{});var Pe=["costCurveCanvas"],ye=(()=>{class i{constructor(){this.tarifData=B.required(),this.style=getComputedStyle(document.body),this.costCurveCanvas=X("costCurveCanvas"),this.selectedIndex=M(0),this.selectedPeriod=y(()=>{let e=this.tarifData().data;return e[Math.min(this.selectedIndex(),e.length-1)]}),this.selectedLabel=y(()=>this.getResolutionLabel(this.selectedPeriod())),this.datasetSlider=y(()=>({min:0,max:Math.max(this.tarifData().data.length-1,0),step:1,initialValue:this.selectedIndex(),unit:""})),$(()=>{this.tarifData(),G(()=>this.selectedIndex.set(0))}),$(e=>this.initializeCostCurveChart(e)),$(()=>this.updateCostCurveChart())}setSelectedIndex(e){this.selectedIndex.set(Math.round(e))}getResolutionLabel(e){let t=e.items[0]?.timestamp;if(!t)return"";let[a,n,s]=t.slice(0,10).split("-").map(Number);return match(this.tarifData().range).pipe(mWhen(p.Quarterly,()=>`Q${Math.ceil(n/3)} ${a}`),mWhen(p.Monthly,()=>`${String(n).padStart(2,"0")}/${a}`),mWhen(p.Weekly,()=>`W${this.getWeekNumber(a,n,s)} ${a}`),mWhen(p.Daily,()=>`${String(s).padStart(2,"0")}.${String(n).padStart(2,"0")}.${a}`),mExhaustive)}getWeekNumber(e,t,a){let n=new Date(Date.UTC(e,t-1,a)),s=n.getUTCDay()||7;n.setUTCDate(n.getUTCDate()+4-s);let g=new Date(Date.UTC(n.getUTCFullYear(),0,1)),C=Math.ceil(((n.getTime()-g.getTime())/864e5+1)/7);return String(C).padStart(2,"0")}initializeCostCurveChart(e){let t=this.costCurveCanvas();if(!t)return;let a=new me(t.nativeElement,G(()=>L.getConfig(this.selectedPeriod(),this.style)));this.costCurveChart=a,e(()=>{a.destroy(),this.costCurveChart=void 0})}updateCostCurveChart(){let e=this.selectedPeriod();this.costCurveChart&&(this.costCurveChart.data.labels=L.getLabels(e),this.costCurveChart.data.datasets[0].data=e.items.map(t=>t.cost),this.costCurveChart.update())}static{this.\u0275fac=function(t){return new(t||i)}}static{this.\u0275cmp=T({type:i,selectors:[["enb-cost-curve-chart"]],viewQuery:function(t,a){t&1&&q(a.costCurveCanvas,Pe,5),t&2&&Y()},inputs:{tarifData:[1,"tarifData"]},decls:6,vars:4,consts:[["costCurveCanvas",""],[1,"cost-curve-label"],[1,"cost-curve-chart-container"],[1,"cost-curve-slider",3,"sliderValueChange","model","sliderValue","showTicks"]],template:function(t,a){t&1&&(l(0,"span",1),c(1),m(),l(2,"div",2),w(3,"canvas",null,0),m(),l(5,"evu-slider",3),k("sliderValueChange",function(s){return a.setSelectedIndex(s)}),m()),t&2&&(r(),P(a.selectedLabel()),r(4),d("model",a.datasetSlider())("sliderValue",a.selectedIndex())("showTicks",!0))},dependencies:[ie],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:var(--evu-spacing-sm);width:100%}.cost-curve-label[_ngcontent-%COMP%]{font-weight:500;color:var(--evu-text-secondary)}.cost-curve-chart-container[_ngcontent-%COMP%]{position:relative;height:200px;width:100%}.cost-curve-slider[_ngcontent-%COMP%]{width:100%}"]})}}return i})();var Me=i=>[i];function $e(i,o){if(i&1&&W(0,6),i&2){u();let e=R(13);d("ngTemplateOutlet",e)}}function Ee(i,o){if(i&1&&W(0,6),i&2){u();let e=R(15);d("ngTemplateOutlet",e)}}function Oe(i,o){if(i&1&&c(0),i&2){u();let e=H(5);J(" ",e.objectName,", ",e.zipCode," ",e.city," ")}}function ke(i,o){i&1&&(c(0),v(1,"enbtranslate")),i&2&&f(" ",h(1,1,"pages.dynamic-tarif-time-plan.no-object-found")," ")}function Be(i,o){if(i&1&&(l(0,"repower-card",14)(1,"div",15),w(2,"enb-dynamic-tariff-time-plan-bars",16)(3,"enb-cost-curve-chart",16),m()()),i&2){u();let e=H(37);d("showHeader",!1)("showText",!0)("showFooter",!1)("isLoading",!1),r(2),d("tarifData",e.value),r(),d("tarifData",e.value)}}function Ie(i,o){if(i&1&&(l(0,"div",7)(1,"evu-state-box",8)(2,"span"),c(3),v(4,"enbtranslate"),N(5),l(6,"p",9),x(7,Oe,1,3)(8,ke,2,3),m()()(),l(9,"evu-state-box",8)(10,"span"),c(11),v(12,"enbtranslate"),l(13,"p",9),c(14,"Quarter"),m()()()(),l(15,"div",10)(16,"evu-state-box",8)(17,"span",11)(18,"p"),c(19),v(20,"enbtranslate"),m(),l(21,"p",12),c(22),m()()(),l(23,"evu-state-box",8)(24,"span",11)(25,"p"),c(26),v(27,"enbtranslate"),m(),l(28,"p",12),c(29),m()()(),l(30,"evu-state-box",8)(31,"span",13)(32,"p"),c(33),v(34,"enbtranslate"),m(),l(35,"p",12),c(36),m()()()(),N(37),x(38,Be,4,6,"repower-card",14)),i&2){let e=u();r(),d("variant",e.StateBoxVariant.PrimaryBg)("title","")("id","dynamic-tarif-time-plan-object")("useHeader",!1),r(2),f(" ",h(4,30,"pages.dynamic-tarif-time-plan.object-title")," "),r(2);let t=U(e.currentObject());r(2),_(e.isDefined(t)?7:8),r(2),d("variant",e.StateBoxVariant.PrimaryBg)("title","")("id","dynamic-tarif-time-plan-range")("useHeader",!1),r(2),f(" ",h(12,33,"pages.dynamic-tarif-time-plan.time-range.title")," "),r(5),d("variant",e.StateBoxVariant.Success)("title","")("id","dynamic-tarif-low-days-count")("useHeader",!1),r(3),f(" ",h(20,35,"pages.dynamic-tarif.time-plan.cheapDays")," "),r(3),f("",e.timeDistribution().low," Days"),r(),d("variant",e.StateBoxVariant.Warning)("title","")("id","dynamic-tarif-medium-days-count")("useHeader",!1),r(3),f(" ",h(27,37,"pages.dynamic-tarif.time-plan.regularDays")," "),r(3),f("",e.timeDistribution().medium," Days"),r(),d("variant",e.StateBoxVariant.Error)("title","")("id","dynamic-tarif-high-days-count")("useHeader",!1),r(3),f(" ",h(34,39,"pages.dynamic-tarif.time-plan.expensiveDays")," "),r(3),f("",e.timeDistribution().high," Days"),r();let a=U(e.dynamicTariffFetchService.currentTariff());r(),_(e.isDefined(a)?38:-1)}}function Le(i,o){}var je=i=>{let o=i.data[0]?.rangeStart;return match(i.range).pipe(mWhen(p.Daily,()=>1),mWhen(p.Weekly,()=>7),mWhen(p.Monthly,()=>xe(o,1)),mWhen(p.Quarterly,()=>xe(o,3)),mExhaustive)},xe=(i,o)=>
1{if(!i)return 0;let[e,t,a]=i.slice(0,10).split("-").map(Number),n=new Date(Date.UTC(e,t-1,a));return(new Date(Date.UTC(e,t-1+o,a)).getTime()-n.getTime())/864e5},j=(function(i){return i.CurrentTarif="currentTarif",i.Data="data",i})(j||{}),dt=(()=>{class i{constructor(){this.dynamicTarifCostDistributionService=S(ge),this.objectSelectionService=S(le),this.translationService=S(ce),this.dynamicTariffFetchService=S(ue),this.ObjectRules=se,this.StateBoxVariant=re,this.DynamicTarifTimePlanView=j,this.isDefined=isDefined,this.view=M(j.CurrentTarif),this.mkOption=(e,t)=>({id:t,label:e(`pages.dynamic-tarif.time-plan.view.${t}`),value:t}),this.viewModel=y(()=>{let e=this.translationService.translate();return{currentValue:this.mkOption(e,this.view()),options:Object.values(j).map(t=>this.mkOption(e,t)),id:"dynamic-tarif-time-plan-view-group-button",size:ae.Medium}}),this.currentObject=y(()=>this.objectSelectionService.getSelectedObject()),this.timeDistribution=y(()=>{let e=optOrElse(this.dynamicTariffFetchService.currentTariff(),()=>fe),t=this.dynamicTarifCostDistributionService.calculatePercentageDistribution(e),a=this.timeInHoursFromInterval(e.interval)*24*je(e);return{low:a*t.low/100,medium:a*t.medium/100,high:a*t.high/100}}),this.timeInHoursFromInterval=e=>match(e).pipe(mWhen(I.Hourly,()=>1),mWhen(I.Semihourly,()=>.5),mWhen(I.Quarterhourly,()=>.25),mExhaustive)}setView(e){this.view.set(e.value)}static{this.\u0275fac=function(t){return new(t||i)}}static{this.\u0275cmp=T({type:i,selectors:[["enb-dynamic-tariff-time-plan"]],decls:16,vars:11,consts:[["currentTarif",""],["data",""],[1,"flex-col","gap-2xl"],[1,"flex-col","gap-xl"],[3,"objectRules"],[3,"clicked","model"],[3,"ngTemplateOutlet"],[1,"object-grid"],[3,"variant","title","id","useHeader"],[1,"bold"],[1,"day-grid"],[1,"regular-days-wrapper"],[1,"font-lg","bold"],[1,"expensive-days-wrapper"],["icon","stake",3,"showHeader","showText","showFooter","isLoading"],["card-content",""],[3,"tarifData"]],template:function(t,a){if(t&1&&(l(0,"div",2)(1,"div",3)(2,"h3"),c(3),v(4,"enbtranslate"),m(),l(5,"p"),c(6),v(7,"enbtranslate"),m()(),w(8,"enb-object-selector",4),l(9,"evu-group-button",5),k("clicked",function(s){return a.setView(s)}),m(),x(10,$e,1,1,"ng-container",6)(11,Ee,1,1,"ng-container",6),m(),z(12,Ie,39,42,"ng-template",null,0,Q)(14,Le,0,0,"ng-template",null,1,Q)),t&2){let n;r(3),P(h(4,5,"pages.dynamic-tarif.time-plan.title")),r(3),P(h(7,7,"pages.dynamic-tarif.time-plan.explanation")),r(2),d("objectRules",K(9,Me,a.ObjectRules.ActiveTenant)),r(),d("model",a.viewModel()),r(),_((n=a.view())===a.DynamicTarifTimePlanView.CurrentTarif?10:n===a.DynamicTarifTimePlanView.Data?11:-1)}},dependencies:[pe,te,Ce,ye,oe,ee,ne,de],styles:[".day-grid[_ngcontent-%COMP%], .object-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:auto;gap:var(--evu-spacing-xl)}.object-grid[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:first-child{grid-column:span 2}.cheap-days-wrapper[_ngcontent-%COMP%]{color:color-mix(in oklch,var(--evu-good-contrast),var(--evu-good) 40%)}.regular-days-wrapper[_ngcontent-%COMP%]{color:color-mix(in oklch,var(--evu-warning-contrast),var(--evu-warning) 40%)}.expensive-days-wrapper[_ngcontent-%COMP%]{color:color-mix(in oklch,var(--evu-bad-contrast),var(--evu-bad) 40%)}enb-cost-curve-chart[_ngcontent-%COMP%]{display:block;margin-top:var(--evu-spacing-2xl)}"]})}}return i})();export{dt as DynamicTariffTimePlan,je as getDaysInTariffRange};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.