\n\t\t\t\t\t\t{{ pageTitle }}\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t{{ t('health', 'Saved Statistics view') }}\n\t\t\t
\n\t\t\t\n\t\t\t\t{{ t('health', 'Updating statistics…') }}\n\t\t\t
\n\t\t\t=0;--d)if(!g()){this.updateRangeFromParsed(c,t,f,l);break}}return c}getAllParsedValues(t){const e=this._cachedMeta._parsed,i=[];let n,a,o;for(n=0,a=e.length;n=0&&t m&&(m=_),h=(u*h+k)/++u):(O(),s.lineTo(k,_),g=L,u=0,p=m=_),b=_}O()}function Ps(s){const t=s.options,e=t.borderDash&&t.borderDash.length;return!s._decimated&&!s._loop&&!t.tension&&t.cubicInterpolationMode!=="monotone"&&!t.stepped&&!e?lc:rc}function cc(s){return s.stepped?lr:s.tension||s.cubicInterpolationMode==="monotone"?cr:Ft}function hc(s,t,e,i){let n=t._path;n||(n=t._path=new Path2D,t.path(n,e,i)&&n.closePath()),Wn(s,t.options),s.stroke(n)}function uc(s,t,e,i){const{segments:n,options:a}=t,o=Ps(t);for(const r of n)Wn(s,a,r.style),s.beginPath(),o(s,t,r,{start:e,end:e+i-1})&&s.closePath(),s.stroke()}const dc=typeof Path2D=="function";function fc(s,t,e,i){dc&&!t.options.segment?hc(s,t,e,i):uc(s,t,e,i)}class pc extends Qt{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:t=>t!=="borderDash"&&t!=="fill"};constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){const n=i.spanGaps?this._loop:this._fullLoop;tr(this._points,i,t,n,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=yr(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){const i=this.options,n=t[e],a=this.points,o=mr(this,{property:e,start:n,end:n});if(!o.length)return;const r=[],l=cc(i);let c,h;for(c=0,h=o.length;c \n\t\t\t\t{{ focusedDescription }}\n\t\t\t \n\t\t\t\t{{ t('health', 'No data in this period') }}\n\t\t\t \n\t\t\t{{ t('health', 'No measurements in this period.') }}\n\t\t \n\t\t\t\t{{ t('health', 'Saved Statistics view') }}\n\t\t\t \n\t\t\t\t{{ t('health', 'Updating statistics…') }}\n\t\t\t =0;--u)if(!g()){this.updateRangeFromParsed(h,t,f,l);break}}return h}getAllParsedValues(t){const e=this._cachedMeta._parsed,i=[];let n,o,a;for(n=0,o=e.length;n =M){A.skip=!0;continue}const T=this.getParsed(w),v=B(T[f]),x=A[u]=a.getPixelForValue(T[u],w),y=A[f]=o||v?r.getBasePixel():r.getPixelForValue(l?this.applyStack(r,T,l):T[f],w);A.skip=isNaN(x)||isNaN(y)||v,A.stop=w>0&&Math.abs(T[u]-_[u])>m,p&&(A.parsed=T,A.raw=h.data[w]),d&&(A.options=c||this.resolveDataElementOptions(w,I.active?"active":n)),b||this.updateElement(I,w,A,n),_=T}}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,n=t.data||[];if(!n.length)return i;const o=n[0].size(this.resolveDataElementOptions(0)),a=n[n.length-1].size(this.resolveDataElementOptions(n.length-1));return Math.max(i,o,a)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}function Pt(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class Cs{static override(t){Object.assign(Cs.prototype,t)}options;constructor(t){this.options=t||{}}init(){}formats(){return Pt()}parse(){return Pt()}format(){return Pt()}add(){return Pt()}diff(){return Pt()}startOf(){return Pt()}endOf(){return Pt()}}var Hr={_date:Cs};function Kr(s,t,e,i){const{controller:n,data:o,_sorted:a}=s,r=n._cachedMeta.iScale,l=s.dataset&&s.dataset.options?s.dataset.options.spanGaps:null;if(r&&t===r.axis&&t!=="r"&&a&&o.length){const h=r._reversePixels?oa:It;if(i){if(n._sharedOptions){const c=o[0],d=typeof c.getRange=="function"&&c.getRange(t);if(d){const u=h(o,t,e-d),f=h(o,t,e+d);return{lo:u.lo,hi:f.hi}}}}else{const c=h(o,t,e);if(l){const{vScale:d}=n._cachedMeta,{_parsed:u}=s,f=u.slice(0,c.lo+1).reverse().findIndex(p=>!B(p[d.axis]));c.lo-=Math.max(0,f);const g=u.slice(c.hi).findIndex(p=>!B(p[d.axis]));c.hi+=Math.max(0,g)}return c}}return{lo:0,hi:o.length-1}}function He(s,t,e,i,n){const o=s.getSortedVisibleDatasetMetas(),a=e[t];for(let r=0,l=o.length;r m&&(m=w),c=(d*c+_)/++d):(P(),s.lineTo(_,w),g=I,d=0,p=m=w),b=w}P()}function xs(s){const t=s.options,e=t.borderDash&&t.borderDash.length;return!s._decimated&&!s._loop&&!t.tension&&t.cubicInterpolationMode!=="monotone"&&!t.stepped&&!e?sh:eh}function ih(s){return s.stepped?sr:s.tension||s.cubicInterpolationMode==="monotone"?ir:Dt}function nh(s,t,e,i){let n=t._path;n||(n=t._path=new Path2D,t.path(n,e,i)&&n.closePath()),zn(s,t.options),s.stroke(n)}function oh(s,t,e,i){const{segments:n,options:o}=t,a=xs(t);for(const r of n)zn(s,o,r.style),s.beginPath(),a(s,t,r,{start:e,end:e+i-1})&&s.closePath(),s.stroke()}const ah=typeof Path2D=="function";function rh(s,t,e,i){ah&&!t.options.segment?nh(s,t,e,i):oh(s,t,e,i)}class lh extends Wt{static id="line";static defaults={borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:3,capBezierPoints:!0,cubicInterpolationMode:"default",fill:!1,spanGaps:!1,stepped:!1,tension:0};static defaultRoutes={backgroundColor:"backgroundColor",borderColor:"borderColor"};static descriptors={_scriptable:!0,_indexable:t=>t!=="borderDash"&&t!=="fill"};constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const i=this.options;if((i.tension||i.cubicInterpolationMode==="monotone")&&!i.stepped&&!this._pointsUpdated){const n=i.spanGaps?this._loop:this._fullLoop;Xa(this._points,i,t,n,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=fr(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){const i=this.options,n=t[e],o=this.points,a=cr(this,{property:e,start:n,end:n});if(!a.length)return;const r=[],l=ih(i);let h,c;for(h=0,c=a.length;h \n\t\t\t\t{{ focusedDescription }}\n\t\t\t \n\t\t\t\t{{ t('health', 'No data in this period') }}\n\t\t\t \n\t\t\t\t{{ t('health', 'Saved Statistics view') }}\n\t\t\t \n\t\t\t\t{{ t('health', 'Updating statistics…') }}\n\t\t\t {{ t('health', 'Adult BMI is calculated as weight in kilograms divided by height in metres squared. It is shown as a descriptive value only.') }} {{ t('health', 'Adult BMI is calculated as weight in kilograms divided by height in metres squared. It is shown as a descriptive value only.') }}\n\t\t\t{{ title }}\n\t\t
\n\t\t\n\t\t\t
\n\t\n\t\t\t{{ t('health', 'Measurements') }}\n\t\t
\n\t\t\n\t\t\t\t\t{{ dateFormatter.format(new Date(`${group.date}T12:00:00`)) }}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\n\t\t\t\t
\n\t\t\t{{ recordCount }}\n\t\t\n\t\t\n\t\t\t{{ t('health', '{count}×', { count: metric.summary.count }) }}\n\t\t\t{{ recordCount }}\n\t\t\n\t\t\n\t\t\t{{ mainValue }}\n\t\t\t{{ t('health', 'per day') }}\n\t\t\t{{ getUnitLabel(unit) }}\n\t\t\t\n\t\t\t\t
\n\t\t\t{{ recordCount }}\n\t\t\n\t\t\n\t\t\t—\n\t\t\t{{ t('health', 'No data in this period') }}\n\t\t\n\t\n\t\t\t\t\t\t{{ pageTitle }}\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ t('health', 'Average for the selected period') }}\n\t\t\t\t
\n\t\t\t\t\n\t\t\t{{ title }}\n\t\t
\n\t\t\n\t\t\t
\n\t\n\t\t\t\t
\n\t\t\t{{ recordCount }}\n\t\t\n\t\t\n\t\t\t{{ mainValue }}\n\t\t\t{{ t('health', 'per day') }}\n\t\t\t{{ getUnitLabel(unit) }}\n\t\t\t\n\t\t\t\t
\n\t\t\t{{ recordCount }}\n\t\t\n\t\t\n\t\t\t—\n\t\t\t{{ t('health', 'No data in this period') }}\n\t\t\n\t\n\t\t\t\t\t\t{{ pageTitle }}\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{{ t('health', 'Average for the selected period') }}\n\t\t\t\t
\n\t\t\t\t