UNPKG

@visitscotland/component-library

Version:
1 lines 6.17 kB
(self.webpackChunk_visitscotland_component_library=self.webpackChunk_visitscotland_component_library||[]).push([[4828],{4482:function(t,a,n){"use strict";var e=n(34982),s=n(11438),r=n(46422),o=n(13838),i=n(50953),l=n(38795),c=n(98745);a.A={name:"VsCarbonCalculatorResults",status:"prototype",release:"0.0.1",components:{VsCol:s.Il,VsRow:s.AQ,VsHeading:o.default,VsIcon:r.default,Chart:l.t1,Grid:l.xA,Bar:l.yP,Responsive:l.Ft},mixins:[c.default],inject:["labelsMap"],props:{totalKilos:{type:Number,default:0},foodKilos:{type:Number,default:0},transportKilos:{type:Number,default:0},accommodationKilos:{type:Number,default:0},stayDuration:{type:Number,default:1},comparisonReplacements:{type:Array,default:function(){return[]}},language:{type:String,default:"en-gb"}},data:function(){return{chartDirection:(0,i.KR)("horizontal"),chartAxis:(0,i.KR)({primary:{type:"band"}}),cssProps:"--chart-label: '".concat(this.labelsMap.kgsOf,"'"),tokens:e}},computed:{chartData:function(){return[{name:this.labelsMap.transport,emissions:this.transportKilos},{name:this.labelsMap.accommodation,emissions:this.accommodationKilos},{name:this.labelsMap.food,emissions:this.foodKilos}]},interpolComparison:function(){for(var t=this.labelsMap.comparison,a=0;a<this.comparisonReplacements.length;a++)t=t.replace(this.comparisonReplacements[a].repl,(this.totalKilos/this.comparisonReplacements[a].divisor).toLocaleString(this.language,{minimumFractionDigits:3}));return t},interpolKGsPerDay:function(){return this.labelsMap.kgsPerDay.replace("xxx",this.totalPerDay)},interpolPerDaySuccess:function(){return this.labelsMap.perDaySuccess.replace("xxx",this.labelsMap.perDayTarget)},transportPercent:function(){return this.transportKilos/this.totalKilos*100},accommodationPercent:function(){return this.accommodationKilos/this.totalKilos*100},foodPercent:function(){return this.foodKilos/this.totalKilos*100},totalPerDay:function(){return this.totalKilos/Math.max(this.stayDuration,1)}},mounted:function(){this.createDataLayerObject("carbonCompleteEvent",{totalEmissions:this.totalKilos,totalPerDay:this.totalPerDay,travelPercent:this.transportPercent.toFixed(3)||0,accommodationPercent:this.accommodationPercent.toFixed(3)||0,foodPercent:this.foodPercent.toFixed(3)||0})},methods:{responsiveMargin:function(t){return t>300?{left:20,top:20,right:20,bottom:20}:{left:5,top:5,right:5,bottom:5}}}}},6310:function(t,a,n){"use strict";n.d(a,{A:function(){return e.A}});var e=n(4482)},6980:function(t,a,n){"use strict";var e=n(85072),s=n.n(e),r=n(97825),o=n.n(r),i=n(77659),l=n.n(i),c=n(55056),u=n.n(c),p=n(10540),d=n.n(p),f=n(41113),m=n.n(f),h=n(61086),b=n.n(h),g={};g.styleTagTransform=m(),g.setAttributes=u(),g.insert=l().bind(null,"head"),g.domAPI=o(),g.insertStyleElement=d(),s()(b(),g),b()&&b().locals&&b().locals},24840:function(t,a,n){"use strict";n.d(a,{X:function(){return e.X}});var e=n(29112)},29112:function(t,a,n){"use strict";n.d(a,{X:function(){return p}});var e=n(20641),s=n(90033),r={class:"vs-carbon-calculator-results__headline"},o={class:"mb-050"},i={class:"vs-carbon-calculator-results__total"},l=["innerHTML"],c={class:"vs-carbon-calculator-results__unicorn-icon-container"},u={class:"vs-carbon-calculator-results__unicorn-content"};function p(t,a,n,p,d,f){var m=(0,e.g2)("VsHeading"),h=(0,e.g2)("VsCol"),b=(0,e.g2)("VsRow"),g=(0,e.g2)("VsIcon"),y=(0,e.g2)("Grid"),v=(0,e.g2)("Bar"),_=(0,e.g2)("Chart"),k=(0,e.g2)("Responsive");return(0,e.uX)(),(0,e.Wv)(b,{"data-test":"vs-carbon-calculator-results",style:(0,s.normalizeStyle)(d.cssProps)},{default:(0,e.k6)((function(){return[(0,e.bF)(h,{cols:"12"},{default:(0,e.k6)((function(){return[(0,e.bF)(m,{level:"2","heading-style":"heading-m"},{default:(0,e.k6)((function(){return[(0,e.eW)((0,s.toDisplayString)(f.labelsMap.results),1)]})),_:1})]})),_:1}),(0,e.bF)(h,{cols:"12"},{default:(0,e.k6)((function(){return[(0,e.bF)(b,{class:"vs-carbon-calculator-results__summary"},{default:(0,e.k6)((function(){return[(0,e.bF)(h,{cols:"12",md:"6"},{default:(0,e.k6)((function(){return[(0,e.Lk)("div",r,[(0,e.Lk)("p",o,(0,s.toDisplayString)(f.labelsMap.resultsIntro),1),(0,e.Lk)("p",null,[(0,e.Lk)("span",i,(0,s.toDisplayString)(n.totalKilos.toLocaleString(n.language,{minimumFractionDigits:3})),1),(0,e.eW)(" "+(0,s.toDisplayString)(f.labelsMap.kgsOf),1)])])]})),_:1}),(0,e.bF)(h,{cols:"12",md:"6",class:"vs-carbon-calculator-results__comparison"},{default:(0,e.k6)((function(){return[(0,e.Lk)("p",{innerHTML:f.interpolComparison},null,8,l)]})),_:1})]})),_:1})]})),_:1}),f.totalPerDay<=f.labelsMap.perDayTarget?((0,e.uX)(),(0,e.Wv)(h,{key:0,cols:"12",class:"vs-carbon-calculator-results__unicorn"},{default:(0,e.k6)((function(){return[(0,e.Lk)("div",c,[(0,e.bF)(g,{icon:"fa-kit fa-vs-unicorn",size:"lg",variant:"highlight",class:"vs-carbon-calculator-results__unicorn-icon"})]),(0,e.Lk)("div",u,[(0,e.bF)(m,{level:"3","heading-style":"heading-xs"},{default:(0,e.k6)((function(){return[(0,e.eW)((0,s.toDisplayString)(f.labelsMap.perDayCongratulations),1)]})),_:1}),(0,e.Lk)("p",null,(0,s.toDisplayString)(f.interpolPerDaySuccess),1)])]})),_:1})):(0,e.Q3)("",!0),(0,e.bF)(h,null,{default:(0,e.k6)((function(){return[(0,e.bF)(m,{level:"3","heading-style":"heading-xs"},{default:(0,e.k6)((function(){return[(0,e.eW)((0,s.toDisplayString)(f.labelsMap.chartTitle),1)]})),_:1})]})),_:1}),(0,e.bF)(h,{class:"vs-carbon-calculator-results__chart-wrapper",cols:"12"},{default:(0,e.k6)((function(){return[(0,e.bF)(k,null,{main:(0,e.k6)((function(t){var a=t.width;return[(0,e.bF)(_,{class:"vs-carbon-calculator-results__chart",size:{width:a,height:420},data:f.chartData,margin:f.responsiveMargin(a),direction:d.chartDirection,axis:d.chartAxis},{layers:(0,e.k6)((function(){return[(0,e.bF)(y,{"stroke-dasharray":"2,2"}),(0,e.bF)(v,{"data-keys":["name","emissions"],"bar-style":{fill:d.tokens["vs-color-background-highlight"]},gap:20},null,8,["bar-style"])]})),_:2},1032,["size","data","margin","direction","axis"])]})),_:1})]})),_:1})]})),_:1},8,["style"])}},34828:function(t,a,n){"use strict";n.r(a);var e=n(24840),s=n(6310);n(93160);const r=(0,n(66262).A)(s.A,[["render",e.X]]);a.default=r},61086:function(){},93160:function(t,a,n){"use strict";n(6980)}}]);