@tidepool/viz
Version:
Tidepool data visualization for diabetes device data.
1 lines • 129 kB
JavaScript
!function(e,t){for(var a in t)e[a]=t[a]}(exports,function(e){var t={};function a(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,a),r.l=!0,r.exports}return a.m=e,a.c=t,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)a.d(n,r,function(t){return e[t]}.bind(null,r));return n},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=407)}({1:function(e,t){e.exports=require("react")},10:function(e,t,a){var n=a(71);function r(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return r=function(){return e},e}e.exports=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=r();if(t&&t.has(e))return t.get(e);var a={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if(Object.prototype.hasOwnProperty.call(e,u)){var o=i?Object.getOwnPropertyDescriptor(e,u):null;o&&(o.get||o.set)?Object.defineProperty(a,u,o):a[u]=e[u]}return a.default=e,t&&t.set(e,a),a}},101:function(e,t){var a;a=function(){return this}();try{a=a||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(a=window)}e.exports=a},12:function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}a.r(t),a.d(t,"default",function(){return n})},15:function(e,t,a){"use strict";var n=a(3);Object.defineProperty(t,"__esModule",{value:!0}),t.getMsPer24=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"UTC",a=u.default.utc(e).tz(t),n=1e3*a.hours()*60*60,r=1e3*a.minutes()*60,i=1e3*a.seconds(),o=a.milliseconds();return n+r+i+o},t.getOffset=function(e,t){var a="string"==typeof e?Date.parse(e):e;return u.default.tz.zone(t).utcOffset(a)},t.getBrowserTimezone=s,t.getTimezoneFromTimePrefs=d,t.formatBirthdate=function(e){var t=r.default.get(e,["profile","patient","birthday"],"");if(t)return(0,i.utcFormat)("%b %-d, %Y")(Date.parse(t));return""},t.formatClocktimeFromMsPer24=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"h:mm a";if(r.default.isNull(e)||r.default.isUndefined(e)||e<0||e>l||e instanceof Date)throw new Error("First argument must be a value in milliseconds per twenty-four hour day!");return u.default.utc(e).format(t)},t.formatCurrentDate=function(){return(0,i.timeFormat)("%b %-d, %Y")(new Date)},t.formatDiagnosisDate=function(e){var t=r.default.get(e,["profile","patient","diagnosisDate"],"");if(t)return(0,i.utcFormat)("%b %-d, %Y")(Date.parse(t));return""},t.formatDateRange=function(e,t,a){var n=u.default.utc(e,a),r=u.default.utc(t,a),i=n.isSame(r,"year")?n.format("MMM D"):n.format("MMM D, YYYY"),o=r.format("MMM D, YYYY");return"".concat(i," - ").concat(o)},t.formatDuration=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=u.default.duration(e),n=a.days(),r=a.hours(),i=a.minutes(),o=a.seconds();if(t.condensed){var l={days:"",hours:"",minutes:"",seconds:""};if(n+r+i===0)o>0?l.seconds="".concat(o,"s"):l.minutes="0m";else{var s=o>=30?i+1:i,d=r,c=n;s>=60&&(s-=60,d++),d>=24&&(d-=24,c++),l.days=0!==c?"".concat(c,"d "):"",l.hours=0!==d?"".concat(d,"h "):"",l.minutes=0!==s?"".concat(s,"m "):""}return"".concat(l.days).concat(l.hours).concat(l.minutes).concat(l.seconds).trim()}if(0===r)return"".concat(i," min");var f=1===r?"hr":"hrs";switch(i){case 0:return"".concat(r," ").concat(f);case 15:return"".concat(r).concat("¼"," ").concat(f);case 20:return"".concat(r).concat("⅓"," ").concat(f);case 30:return"".concat(r).concat("½"," ").concat(f);case 40:return"".concat(r).concat("⅔"," ").concat(f);case 45:return"".concat(r).concat("¾"," ").concat(f);default:return"".concat(r," ").concat(f," ").concat(i," min")}},t.formatLocalizedFromUTC=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"dddd, MMMM D";if(e instanceof Date)throw new Error("`utc` must be a ISO-formatted String timestamp or integer hammertime!");var n=d(t);return u.default.utc(e).tz(n).format(a)},t.getLocalizedCeiling=function(e,t){if(e instanceof Date)throw new Error("`utc` must be a ISO-formatted String timestamp or integer hammertime!");var a=d(t),n=u.default.utc(e).tz(a).startOf("day"),r="string"==typeof e?Date.parse(e):e;if(n.valueOf()===r)return n.toDate();return n.add(1,"day").toDate()},t.TWENTY_FOUR_HRS=t.THREE_HRS=t.ONE_HR=t.THIRTY_MINS=void 0;var r=n(a(5)),i=a(59),u=n(a(44)),o=n(a(73));t.THIRTY_MINS=18e5;t.ONE_HR=36e5;t.THREE_HRS=108e5;var l=864e5;function s(){return(new Intl.DateTimeFormat).resolvedOptions().timeZone}function d(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.timezoneAware,a=e.timezoneName;try{var n=s()||"UTC";return t&&a&&(n=a),o.default.checkTimezoneName(n),n}catch(e){return"UTC"}}t.TWENTY_FOUR_HRS=l},21:function(e,t){e.exports=require("i18next")},22:function(e,t,a){"use strict";var n=a(3);Object.defineProperty(t,"__esModule",{value:!0}),t.formatBgValue=function(e,t,a){var n=r.default.get(t,"bgUnits","");if(!r.default.isEmpty(a)){var l=a.low,s=a.high;if(n===o.MMOLL_UNITS&&(l&&(l=(0,u.convertToMmolL)(l)),s&&(s=(0,u.convertToMmolL)(s))),l&&e<l)return o.BG_LOW;if(s&&e>s)return o.BG_HIGH}if(n===o.MMOLL_UNITS)return(0,i.format)(".1f")(e);return(0,i.format)("d")(e)},t.formatDecimalNumber=l,t.formatInsulin=function(e){var t=1,a=e.toString();if(-1!==a.indexOf(".")){var n=a.split(".")[1].length;t=r.default.min([n,3])}return l(e,t)},t.formatPercentage=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(Number.isNaN(e))return"--%";return(0,i.format)(".".concat(t,"%"))(e)},t.removeTrailingZeroes=function(e){return e.replace(/\.0+$/,"")};var r=n(a(5)),i=a(72),u=a(23),o=a(6);function l(e,t){return null===t||void 0===t?(0,i.format)("d")(e):(0,i.format)(".".concat(t,"f"))(e)}},23:function(e,t,a){"use strict";var n=a(3);Object.defineProperty(t,"__esModule",{value:!0}),t.classifyBgValue=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"threeWay";if(i.default.isEmpty(e)||!i.default.isNumber(i.default.get(e,"targetLowerBound"))||!i.default.isNumber(i.default.get(e,"targetUpperBound")))throw new Error("You must provide a `bgBounds` object with a `targetLowerBound` and a `targetUpperBound`!");if(!i.default.isNumber(t)||!i.default.gt(t,0))throw new Error("You must provide a positive, numerical blood glucose value to categorize!");var n=e.veryLowThreshold,r=e.targetLowerBound,u=e.targetUpperBound,o=e.veryHighThreshold;if("fiveWay"===a)return t<n?"veryLow":t>=n&&t<r?"low":t>u&&t<=o?"high":t>o?"veryHigh":"target";if(t<r)return"low";if(t>u)return"high";return"target"},t.classifyCvValue=function(e){return e<=36?"target":"high"},t.convertToMmolL=function(e){return e/u.MGDL_PER_MMOLL},t.convertToMGDL=function(e){return e*u.MGDL_PER_MMOLL},t.reshapeBgClassesToBgBounds=function(e){var t=e.bgClasses,a=e.bgUnits;return{veryHighThreshold:i.default.get(t,"high.boundary",u.DEFAULT_BG_BOUNDS[a].veryHighThreshold),targetUpperBound:i.default.get(t,"target.boundary",u.DEFAULT_BG_BOUNDS[a].targetUpperBound),targetLowerBound:i.default.get(t,"low.boundary",u.DEFAULT_BG_BOUNDS[a].targetLowerBound),veryLowThreshold:i.default.get(t,"very-low.boundary",u.DEFAULT_BG_BOUNDS[a].veryLowThreshold),clampThreshold:u.DEFAULT_BG_BOUNDS[a].clampThreshold}},t.generateBgRangeLabels=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=e.bgBounds,n=e.bgUnits,r=i.default.mapValues(a,function(t){return(0,o.formatBgValue)(t,e)});if(t.condensed)return{veryLow:"<".concat(r.veryLowThreshold),low:"".concat(r.veryLowThreshold,"-").concat(r.targetLowerBound),target:"".concat(r.targetLowerBound,"-").concat(r.targetUpperBound),high:"".concat(r.targetUpperBound,"-").concat(r.veryHighThreshold),veryHigh:">".concat(r.veryHighThreshold)};return{veryLow:"below ".concat(r.veryLowThreshold," ").concat(n),low:"between ".concat(r.veryLowThreshold," - ").concat(r.targetLowerBound," ").concat(n),target:"between ".concat(r.targetLowerBound," - ").concat(r.targetUpperBound," ").concat(n),high:"between ".concat(r.targetUpperBound," - ").concat(r.veryHighThreshold," ").concat(n),veryHigh:"above ".concat(r.veryHighThreshold," ").concat(n)}},t.getOutOfRangeThreshold=function(e){var t=i.default.find(e.annotations||[],function(e){return"bg/out-of-range"===e.code});return t?(0,r.default)({},t.value,t.threshold):null},t.weightedCGMCount=function(e){return i.default.reduce(e,function(e,t){var a=1,n=i.default.get(t,"deviceId","");return"cbg"===t.type&&0===n.indexOf("AbbottFreeStyleLibre")&&(a=3),e+a},0)},t.cgmSampleFrequency=function(e){return 0===i.default.get(e,"deviceId","").indexOf("AbbottFreeStyleLibre")?15*u.MS_IN_MIN:5*u.MS_IN_MIN};var r=n(a(9)),i=n(a(5)),u=a(6),o=a(22)},3:function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},31:function(e,t){e.exports=require("crossfilter2")},32:function(e,t,a){"use strict";var n=a(10),r=a(3);Object.defineProperty(t,"__esModule",{value:!0}),t.noData=s,t.deviceName=function(e){return{animas:"Animas",insulet:"OmniPod",medtronic:"Medtronic",tandem:"Tandem"}[e]||e},t.getTotalBasalRates=g,t.getScheduleLabel=function(e,t,a,n){var r=e;i.default.includes(["carelink","medtronic"],a)&&(r=i.default.map(e.split(" "),function(e){return i.default.upperFirst(e)}).join(" "));return{main:r,secondary:e===t?"Active at upload":"",units:n?"":"U/hr"}},t.getScheduleNames=function(e){return i.default.keysIn(e)},t.getTimedSchedules=function(e){for(var t=i.default.map(e,"name"),a=[],n=t.length-1;n>=0;n--)a.push({name:t[n],position:n});return a},t.getDeviceMeta=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,a=e.normalTime,n=!!a&&u.formatLocalizedFromUTC(a,t,"MMM D, YYYY");return{schedule:e.activeSchedule||"unknown",uploaded:n||"unknown",serial:e.deviceSerialNumber||"unknown"}},t.processBasalRateData=function(e){var t=m(e.value),a=[{start:"-",rate:"-"}];if(0===t.length)return a;if(1===t.length&&0===Number(d(e.value,t[0])))return a;var n=i.default.map(t,function(t){return{start:u.formatClocktimeFromMsPer24(t),rate:d(e.value,t)}});return n.push({start:"Total",rate:g(e.value)}),n},t.processBgTargetData=function(e,t,a){return i.default.map(m(e),function(n){return{start:u.formatClocktimeFromMsPer24(n),columnTwo:f(e,a.columnTwo,n,t),columnThree:f(e,a.columnThree,n,t)}})},t.processCarbRatioData=function(e){return i.default.map(m(e),function(t){return{start:u.formatClocktimeFromMsPer24(t),amount:c(e,"amount",t)}})},t.processSensitivityData=function(e,t){return i.default.map(m(e),function(a){return{start:u.formatClocktimeFromMsPer24(a),amount:f(e,"amount",a,t)}})},t.processTimedSettings=function(e,t,a){var n=i.default.map(m(e.bgTargets[t.name]),function(n){return{start:u.formatClocktimeFromMsPer24(n),rate:d(e.basalSchedules[t.position].value,n),bgTarget:f(e.bgTargets[t.name],"target",n,a),carbRatio:c(e.carbRatios[t.name],"amount",n),insulinSensitivity:f(e.insulinSensitivities[t.name],"amount",n,a)}});return n.push({start:"Total",rate:g(e.basalSchedules[t.position].value),bgTarget:"",carbRatio:"",insulinSensitivity:""}),n},t.startTimeAndValue=function(e){return[{key:"start",label:"Start time"},{key:e,label:"Value"}]};var i=r(a(5)),u=n(a(15)),o=n(a(22)),l=3;function s(e){return null==e||"string"==typeof e&&i.default.isEmpty(e)}function d(e,t){var a=i.default.find(e,function(e){return e.start===t}).rate;return s(a)?"":o.formatDecimalNumber(a,l)}function c(e,t,a){var n=i.default.find(e,function(e){return e.start===a})[t];return s(n)?"":n}function f(e,t,a,n){var r=c(e,t,a);return s(r)?"":o.formatBgValue(r,{bgUnits:n})}function m(e){return i.default.map(e,"start")}function g(e){for(var t=0,a=e.length-1;a>=0;a--){var n=e[a].start,r=864e5,i=a+1;i<e.length&&(r=e[i].start);var u=(r-n)/36e5,s=parseFloat(e[a].rate.toFixed(l))*u;t+=parseFloat(s.toFixed(l))}return o.formatDecimalNumber(t,l)}},36:function(e,t,a){"use strict";var n=a(3);Object.defineProperty(t,"__esModule",{value:!0}),t.statsText=function(e,t,a){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:I;l.default.defaults(a,{bgBounds:(0,c.reshapeBgClassesToBgBounds)(a)});var r="";return l.default.each(e,function(e){var u=l.default.includes(["timeInRange","readingsInRange","totalInsulin","timeInAuto","bgExtents"],e.id),o={bgPrefs:a,data:e.data,forcePlainTextValues:!0};if(u)r+=t.buildTextTable("".concat(e.title).concat(e.units?" (".concat(e.units,")"):""),l.default.map(l.default.reverse((0,i.default)(e.data.data)),function(t){var a=n(t,e.dataFormat.summary,o);return{label:t.legendTitle||t.title,value:"".concat(a.value).concat(a.suffix||"")}}),[{key:"label",label:"Label"},{key:"value",label:"Value"}],{showHeader:!1});else{var s=n(l.default.get(e.data,e.data.dataPaths.summary,{}),e.dataFormat.summary,o);r+="\n",r+=t.buildTextLine({label:e.title,value:"".concat(s.value).concat(s.suffix||(e.units?" ".concat(e.units):""))})}}),r},t.getStatDefinition=t.getStatTitle=t.getStatData=t.getStatAnnotations=t.formatDatum=t.ensureNumeric=t.getSum=t.statFetchMethods=t.commonStats=t.statFormats=t.statBgSourceLabels=t.statTypes=t.dailyDoseUnitOptions=void 0;var r,i=n(a(46)),u=n(a(39)),o=n(a(9)),l=n(a(5)),s=n(a(1)),d=n(a(21)),c=a(23),f=a(6),m=a(37),g=a(22),p=a(15),v=d.default.t.bind(d.default);void 0===l.default.get(d.default,"options.returnEmptyString")&&d.default.init({returnEmptyString:!1,nsSeparator:"|"});var y=[{label:"kg",value:"kg"},{label:"lb",value:"lb"}];t.dailyDoseUnitOptions=y;var h={barHorizontal:"barHorizontal",barBg:"barBg",input:"input",simple:"simple"};t.statTypes=h;var b={cbg:v("CGM"),smbg:v("BGM")};t.statBgSourceLabels=b;var D={bgCount:"bgCount",bgRange:"bgRange",bgValue:"bgValue",cv:"cv",carbs:"carbs",duration:"duration",gmi:"gmi",percentage:"percentage",standardDevRange:"standardDevRange",standardDevValue:"standardDevValue",units:"units",unitsPerKg:"unitsPerKg"};t.statFormats=D;var T={averageGlucose:"averageGlucose",averageDailyDose:"averageDailyDose",bgExtents:"bgExtents",carbs:"carbs",coefficientOfVariation:"coefficientOfVariation",glucoseManagementIndicator:"glucoseManagementIndicator",readingsInRange:"readingsInRange",sensorUsage:"sensorUsage",standardDev:"standardDev",timeInAuto:"timeInAuto",timeInRange:"timeInRange",totalInsulin:"totalInsulin"};t.commonStats=T;var S=(r={},(0,o.default)(r,T.averageGlucose,"getAverageGlucoseData"),(0,o.default)(r,T.averageDailyDose,"getTotalInsulinData"),(0,o.default)(r,T.bgExtents,"getBgExtentsData"),(0,o.default)(r,T.carbs,"getCarbsData"),(0,o.default)(r,T.coefficientOfVariation,"getCoefficientOfVariationData"),(0,o.default)(r,T.glucoseManagementIndicator,"getGlucoseManagementIndicatorData"),(0,o.default)(r,T.readingsInRange,"getReadingsInRangeData"),(0,o.default)(r,T.sensorUsage,"getSensorUsage"),(0,o.default)(r,T.standardDev,"getStandardDevData"),(0,o.default)(r,T.timeInAuto,"getTimeInAutoData"),(0,o.default)(r,T.timeInRange,"getTimeInRangeData"),(0,o.default)(r,T.totalInsulin,"getBasalBolusData"),r);t.statFetchMethods=S;var E=function(e){return l.default.sum(l.default.map(e,function(e){return l.default.max([e.value,0])}))};t.getSum=E;var A=function(e){return l.default.isNil(e)||l.default.isNaN(e)?-1:parseFloat(e)};t.ensureNumeric=A;var I=function(){var e,t,a,n,r,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},u=arguments.length>1?arguments[1]:void 0,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},d=i.id,m=i.value,v=i.suffix||"";l.default.defaults(o,{emptyDataPlaceholder:"--",forcePlainTextValues:!1});var y=l.default.get(o,"data.total.value"),h=function(){d="statDisabled",m=o.emptyDataPlaceholder};switch(u){case D.bgCount:if(m>=0){var b=m<.05?2:1;m=+m.toFixed(b)}else h();break;case D.bgRange:m=(0,c.generateBgRangeLabels)(o.bgPrefs,{condensed:!0})[d];break;case D.bgValue:m>=0?(d=(0,c.classifyBgValue)(l.default.get(o.bgPrefs,"bgBounds"),m),m=(0,g.formatBgValue)(m,o.bgPrefs)):h();break;case D.carbs:m>=0?(m=(0,g.formatDecimalNumber)(m),v="g"):h();break;case D.cv:m>=0?(d=(0,c.classifyCvValue)(m),m=(0,g.formatDecimalNumber)(m),v="%"):h();break;case D.duration:m>=0?m=(0,p.formatDuration)(m,{condensed:!0}):h();break;case D.gmi:m>=0?(m=(0,g.formatDecimalNumber)(m,1),v="%"):h();break;case D.percentage:if(y&&y>=0){var T=(m=l.default.max([m,0]))/y*100,S=0;T>0&&T<.5&&(S=T<.05?2:1),m=(0,g.formatDecimalNumber)(T,S),v="%"}else h();break;case D.standardDevRange:e=l.default.get(i,"deviation.value",-1),m>=0&&e>=0?(a=(t=m-e)>=0?(0,c.classifyBgValue)(l.default.get(o.bgPrefs,"bgBounds"),t):"low",n=m+e,r=(0,c.classifyBgValue)(l.default.get(o.bgPrefs,"bgBounds"),n),t=(0,g.formatBgValue)(t,o.bgPrefs),n=(0,g.formatBgValue)(n,o.bgPrefs),m=o.forcePlainTextValues?"".concat(t,"-").concat(n):s.default.createElement("span",null,s.default.createElement("span",{style:{color:f.BG_COLORS[a]}},t)," - ",s.default.createElement("span",{style:{color:f.BG_COLORS[r]}},n))):h();break;case D.standardDevValue:m>=0?m=(0,g.formatBgValue)(m,o.bgPrefs):h();break;case D.units:m>=0?(m=(0,g.formatDecimalNumber)(m,1),v="U"):h();break;case D.unitsPerKg:"lb"===v&&(m*=f.LBS_PER_KG),v="U/kg",m>0&&l.default.isFinite(m)?m=(0,g.formatDecimalNumber)(m,2):h()}return{id:d,value:m,suffix:v}};t.formatDatum=I;var x=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=a.bgSource,r=a.days,i=a.manufacturer,u=(0,m.getPumpVocabulary)(i),o=[],s=[T.averageGlucose,T.coefficientOfVariation,T.glucoseManagementIndicator,T.readingsInRange,T.timeInRange,T.standardDev];switch(t){case T.averageGlucose:o.push(v("**Avg. Glucose ({{bgSourceLabel}}):** All {{bgSourceLabel}} glucose values added together, divided by the number of readings.",{bgSourceLabel:b[n]}));break;case T.averageDailyDose:r>1?o.push(v("**Avg. Daily Insulin:** All basal and bolus insulin delivery (in Units) added together, divided by the number of days in this view.")):o.push(v("**Daily Insulin:** All basal and bolus insulin delivery (in Units) added together."));break;case T.carbs:r>1?o.push(v("**Avg. Daily Carbs**: All carb entries added together, then divided by the number of days in this view. Note, these entries come from either bolus wizard events, or Apple Health records.")):o.push(v("**Total Carbs**: All carb entries from bolus wizard events or Apple Health records added together.")),o.push(v("Derived from _**{{total}}**_ carb entries.",{total:e.total}));break;case T.coefficientOfVariation:o.push(v("**CV (Coefficient of Variation):** How far apart (wide) glucose values are; research suggests a target of 36% or lower."));break;case T.glucoseManagementIndicator:o.push(v("**GMI (Glucose Management Indicator):** Tells you what your approximate A1C level is likely to be, based on the average glucose level from your CGM readings."));break;case T.readingsInRange:o.push(v("**Readings In Range:** Daily average of the number of {{smbgLabel}} readings.",{smbgLabel:b.smbg}));break;case T.sensorUsage:o.push(v("**Sensor Usage:** Time the {{cbgLabel}} collected data, divided by the total time represented in this view.",{cbgLabel:b.cbg}));break;case T.standardDev:o.push(v("**SD (Standard Deviation):** How far values are from the average."));break;case T.timeInAuto:r>1?(o.push(v("**Time In {{automatedLabel}}:** Daily average of the time spent in automated basal delivery.",{automatedLabel:u[f.AUTOMATED_DELIVERY]})),o.push(v("**How we calculate this:**\n\n**(%)** is the duration in {{automatedLabel}} divided the total duration of basals for this time period.\n\n**(time)** is 24 hours multiplied by % in {{automatedLabel}}.",{automatedLabel:u[f.AUTOMATED_DELIVERY]}))):(o.push(v("**Time In {{automatedLabel}}:** Time spent in automated basal delivery.",{automatedLabel:u[f.AUTOMATED_DELIVERY]})),o.push(v("**How we calculate this:**\n\n**(%)** is the duration in {{automatedLabel}} divided the total duration of basals for this time period.\n\n**(time)** is total duration of time in {{automatedLabel}}.",{automatedLabel:u[f.AUTOMATED_DELIVERY]})));break;case T.timeInRange:r>1?(o.push(v("**Time In Range:** Daily average of the time spent in range, based on {{cbgLabel}} readings.",{cbgLabel:b.cbg})),o.push(v("**How we calculate this:**\n\n**(%)** is the number of readings in range divided by all readings for this time period.\n\n**(time)** is 24 hours multiplied by % in range."))):(o.push(v("**Time In Range:** Time spent in range, based on {{cbgLabel}} readings.",{cbgLabel:b.cbg})),o.push(v("**How we calculate this:**\n\n**(%)** is the number of readings in range divided by all readings for this time period.\n\n**(time)** is number of readings in range multiplied by the {{cbgLabel}} sample frequency.",{cbgLabel:b.cbg})));break;case T.totalInsulin:r>1?o.push(v("**Total Insulin:** All basal and bolus insulin delivery (in Units) added together, divided by the number of days in this view")):o.push(v("**Total Insulin:** All basal and bolus insulin delivery (in Units) added together")),o.push(v("**How we calculate this:**\n\n**(%)** is the respective total of basal or bolus delivery divided by total insulin delivered for this time period."))}return e.insufficientData?o.push(v("**Why is this stat empty?**\n\nThere is not enough data present in this view to calculate it.")):l.default.includes(s,t)&&"smbg"===n&&o.push(v("Derived from _**{{total}}**_ {{smbgLabel}} readings.",{total:e.total,smbgLabel:b.smbg})),o};t.getStatAnnotations=x;var B=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=(0,m.getPumpVocabulary)(a.manufacturer),r=(0,c.generateBgRangeLabels)(a.bgPrefs,{condensed:!0}),i={raw:(0,u.default)({days:a.days},e)};switch(t){case T.averageGlucose:i.data=[{value:A(e.averageGlucose)}],i.dataPaths={summary:"data.0"};break;case T.averageDailyDose:i.data=[{id:"insulin",input:{id:"weight",label:"Weight",suffix:{id:"units",options:y,value:a.suffixValue||y[0]},type:"number",value:a.inputValue?A(a.inputValue):void 0},output:{label:"Daily Dose ÷ Weight",type:"divisor",dataPaths:{dividend:"data.0"}},value:A(e.totalInsulin)}],i.dataPaths={input:"data.0.input",output:"data.0.output",summary:"data.0"};break;case T.bgExtents:i.data=[{id:"bgMax",value:A(e.bgMax),title:v("Max BG")},{id:"bgMin",value:A(e.bgMin),title:v("Min BG")}];break;case T.carbs:i.data=[{value:A(e.carbs)}],i.dataPaths={summary:"data.0"};break;case T.coefficientOfVariation:i.data=[{id:"cv",value:A(e.coefficientOfVariation)}],i.dataPaths={summary:"data.0"};break;case T.glucoseManagementIndicator:i.data=[{id:"gmi",value:A(e.glucoseManagementIndicator)}],i.dataPaths={summary:"data.0"};break;case T.readingsInRange:i.data=[{id:"veryLow",value:A(e.veryLow),title:v("Readings Below Range"),legendTitle:r.veryLow},{id:"low",value:A(e.low),title:v("Readings Below Range"),legendTitle:r.low},{id:"target",value:A(e.target),title:v("Readings In Range"),legendTitle:r.target},{id:"high",value:A(e.high),title:v("Readings Above Range"),legendTitle:r.high},{id:"veryHigh",value:A(e.veryHigh),title:v("Readings Above Range"),legendTitle:r.veryHigh}],i.total={value:E(i.data)},i.dataPaths={summary:["data",l.default.findIndex(i.data,{id:"target"})]};break;case T.sensorUsage:i.data=[{value:A(e.sensorUsage)}],i.total={value:A(e.total)},i.dataPaths={summary:"data.0"};break;case T.standardDev:i.data=[{value:A(e.averageGlucose),deviation:{value:A(e.standardDeviation)}}],i.dataPaths={summary:"data.0.deviation",title:"data.0"};break;case T.timeInAuto:i.data=[{id:"basalAutomated",value:A(e.automated),title:v("Time In {{automatedLabel}}",{automatedLabel:n[f.AUTOMATED_DELIVERY]}),legendTitle:n[f.AUTOMATED_DELIVERY]},{id:"basal",value:A(e.manual),title:v("Time In {{scheduledLabel}}",{scheduledLabel:n[f.SCHEDULED_DELIVERY]}),legendTitle:n[f.SCHEDULED_DELIVERY]}],i.total={value:E(i.data)},i.dataPaths={summary:["data",l.default.findIndex(i.data,{id:"basalAutomated"})]};break;case T.timeInRange:i.data=[{id:"veryLow",value:A(e.veryLow),title:v("Time Below Range"),legendTitle:r.veryLow},{id:"low",value:A(e.low),title:v("Time Below Range"),legendTitle:r.low},{id:"target",value:A(e.target),title:v("Time In Range"),legendTitle:r.target},{id:"high",value:A(e.high),title:v("Time Above Range"),legendTitle:r.high},{id:"veryHigh",value:A(e.veryHigh),title:v("Time Above Range"),legendTitle:r.veryHigh}],i.total={value:E(i.data)},i.dataPaths={summary:["data",l.default.findIndex(i.data,{id:"target"})]};break;case T.totalInsulin:i.data=[{id:"bolus",value:A(e.bolus),title:v("Bolus Insulin"),legendTitle:v("Bolus")},{id:"basal",value:A(e.basal),title:v("Basal Insulin"),legendTitle:v("Basal")}],i.total={id:"insulin",value:E(i.data)},i.dataPaths={summary:"total",title:"total"};break;default:i=void 0}return i};t.getStatData=B;var M=function(e){var t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=a.bgSource,r=a.days,i=(0,m.getPumpVocabulary)(a.manufacturer);switch(e){case T.averageGlucose:t=v("Avg. Glucose ({{bgSourceLabel}})",{bgSourceLabel:b[n]});break;case T.averageDailyDose:t=v(r>1?"Avg. Daily Insulin":"Total Insulin");break;case T.bgExtents:t=v("BG Extents ({{bgSourceLabel}})",{bgSourceLabel:b[n]});break;case T.carbs:t=v(r>1?"Avg. Daily Carbs":"Total Carbs");break;case T.coefficientOfVariation:t=v("CV ({{bgSourceLabel}})",{bgSourceLabel:b[n]});break;case T.glucoseManagementIndicator:t=v("GMI ({{bgSourceLabel}})",{bgSourceLabel:b[n]});break;case T.readingsInRange:t=v(r>1?"Avg. Daily Readings In Range":"Readings In Range");break;case T.sensorUsage:t=v("Sensor Usage");break;case T.standardDev:t=v("Std. Deviation ({{bgSourceLabel}})",{bgSourceLabel:b[n]});break;case T.timeInAuto:t=v(r>1?"Avg. Daily Time In {{automatedLabel}}":"Time In {{automatedLabel}}",{automatedLabel:i[f.AUTOMATED_DELIVERY]});break;case T.timeInRange:t=v(r>1?"Avg. Daily Time In Range":"Time In Range");break;case T.totalInsulin:t=v(r>1?"Avg. Daily Total Insulin":"Total Insulin");break;default:t=""}return t};t.getStatTitle=M;t.getStatDefinition=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n={annotations:x(e,t,a),collapsible:!1,data:B(e,t,a),id:t,title:M(t,a),type:h.barHorizontal};switch(t){case T.averageGlucose:n.dataFormat={label:D.bgValue,summary:D.bgValue},n.type=h.barBg,n.units=l.default.get(a,"bgPrefs.bgUnits");break;case T.averageDailyDose:n.alwaysShowSummary=!0,n.dataFormat={output:D.unitsPerKg,summary:D.units},n.type=h.input;break;case T.bgExtents:n.dataFormat={label:D.bgValue,summary:D.bgValue},n.type=h.simple,n.units=l.default.get(a,"bgPrefs.bgUnits");break;case T.carbs:n.dataFormat={summary:D.carbs},n.type=h.simple;break;case T.coefficientOfVariation:n.dataFormat={summary:D.cv},n.type=h.simple;break;case T.glucoseManagementIndicator:n.dataFormat={summary:D.gmi},n.type=h.simple;break;case T.readingsInRange:n.alwaysShowTooltips=!0,n.dataFormat={label:D.bgCount,summary:D.bgCount,tooltip:D.percentage,tooltipTitle:D.bgRange},n.legend=!0,n.reverseLegendOrder=!0,n.units=l.default.get(a,"bgPrefs.bgUnits");break;case T.sensorUsage:n.dataFormat={summary:D.percentage},n.type=h.simple;break;case T.standardDev:n.dataFormat={label:D.standardDevValue,summary:D.standardDevValue,title:D.standardDevRange},n.type=h.barBg,n.units=l.default.get(a,"bgPrefs.bgUnits");break;case T.timeInAuto:n.alwaysShowTooltips=!0,n.dataFormat={label:D.percentage,summary:D.percentage,tooltip:D.duration},n.legend=!0;break;case T.timeInRange:n.alwaysShowTooltips=!0,n.dataFormat={label:D.percentage,summary:D.percentage,tooltip:D.duration,tooltipTitle:D.bgRange},n.legend=!0,n.reverseLegendOrder=!0,n.units=l.default.get(a,"bgPrefs.bgUnits");break;case T.totalInsulin:n.alwaysShowTooltips=!0,n.dataFormat={label:D.percentage,summary:D.units,title:D.units,tooltip:D.units},n.legend=!0;break;default:n=void 0}return n}},37:function(e,t,a){"use strict";var n=a(3);Object.defineProperty(t,"__esModule",{value:!0}),t.getLatestPumpUpload=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return r.default.findLast(e,{deviceTags:["insulin-pump"]})},t.getLastManualBasalSchedule=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=r.default.findLast(e,{deliveryType:"scheduled"});return r.default.get(t,"scheduleName")},t.isAutomatedBasalDevice=function(e,t){return r.default.includes(r.default.get(i.AUTOMATED_BASAL_DEVICE_MODELS,(0,u.deviceName)(e),[]),t)},t.getPumpVocabulary=function(e){var t=r.default.cloneDeep(i.pumpVocabulary);return r.default.defaults(r.default.get(t,(0,u.deviceName)(e),{}),t.default)};var r=n(a(5)),i=a(6),u=a(32)},39:function(e,t,a){"use strict";a.r(t),a.d(t,"default",function(){return r});var n=a(9);function r(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{},r=Object.keys(Object(a));"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(a).filter(function(e){return Object.getOwnPropertyDescriptor(a,e).enumerable}))),r.forEach(function(t){Object(n.default)(e,t,a[t])})}return e}},407:function(e,t,a){e.exports=a(408)},408:function(e,t,a){"use strict";var n=a(3);Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"DataUtil",{enumerable:!0,get:function(){return r.default}});var r=n(a(409))},409:function(e,t,a){"use strict";var n=a(3);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.DataUtil=void 0;var r=n(a(46)),i=n(a(39)),u=n(a(12)),o=n(a(9)),l=n(a(61)),s=n(a(432)),d=n(a(44)),c=n(a(5)),f=a(37),m=a(53),g=a(23),p=a(6),v=a(15),y=n(a(410)),h=n(a(411)),b=a(36),D=n(a(412)),T=function e(){var t=this,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:D.default;(0,u.default)(this,e),(0,o.default)(this,"init",function(){t.startTimer("init total"),t.data=(0,s.default)([]),t.buildDimensions(),t.buildFilters(),t.buildSorts(),t.endTimer("init total")}),(0,o.default)(this,"addData",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],a=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(t.startTimer("addData"),t.bolusToWizardIdMap=t.bolusToWizardIdMap||{},t.bolusDatumsByIdMap=t.bolusDatumsByIdMap||{},t.deviceUploadMap=t.deviceUploadMap||{},t.wizardDatumsByIdMap=t.wizardDatumsByIdMap||{},t.latestDatumByType=t.latestDatumByType||{},c.default.isEmpty(e)||!a)return{};t.patientId&&t.patientId!==a&&t.removeData(),t.patientId=a,t.startTimer("cloneRawData");var r=c.default.cloneDeep(e);t.endTimer("cloneRawData"),t.startTimer("normalizeDataIn"),c.default.each(r,t.normalizeDatumIn),t.endTimer("normalizeDataIn"),t.startTimer("processNormalizedData"),c.default.each(r,t.joinWizardAndBolus),t.endTimer("processNormalizedData"),t.startTimer("filterValidData"),t.clearFilters();var i=c.default.uniqBy(r,"id"),u=c.default.remove(i,function(e){return e.reject||t.filter.byId(e.id).top(1).length});t.endTimer("filterValidData"),t.startTimer("tagData"),c.default.each(i,t.tagDatum),t.endTimer("tagData"),t.startTimer("addValidData"),t.data.add(i),t.endTimer("addValidData"),t.log("validData",i.length,"of",r.length),u.length&&t.log("rejectedData",u),t.setMetaData(),t.endTimer("addData");var o={metaData:t.getMetaData(["bgSources","latestDatumByType","latestPumpUpload","patientId","size"])};return n&&(c.default.each(i,function(e){return t.normalizeDatumOut(e,"*")}),o.data=i),o}),(0,o.default)(this,"normalizeDatumIn",function(e){if("basal"===e.type&&(e.rate||"suspend"!==e.deliveryType||(e.rate=0),e.suppressed&&t.normalizeSuppressedBasal(e)),e.messagetext&&(e.type="message",e.messageText=e.messagetext,e.parentMessage=e.parentmessage||null,e.time=e.timestamp),t.validateDatumIn(e),!e.reject){if(e._time=e.time,e._deviceTime=e.deviceTime,e.time=Date.parse(e.time),e.deviceTime=e.deviceTime?Date.parse(e.deviceTime):e.time,e.time>c.default.get(t.latestDatumByType,[e.type,"time"],0)&&(t.latestDatumByType[e.type]=e),"wizard"===e.type&&c.default.isString(e.bolus)&&(t.wizardDatumsByIdMap[e.id]=e,t.bolusToWizardIdMap[e.bolus]=e.id),"bolus"===e.type&&(t.bolusDatumsByIdMap[e.id]=e),!e.deviceId&&"com.apple.HealthKit"===c.default.get(e,"origin.name")){var a=["HealthKit"];c.default.get(e,"origin.payload.sourceRevision.source.name")&&a.push(c.default.get(e,"origin.payload.sourceRevision.source.name")),a.push(e.uploadId.slice(0,6)),e.deviceId=a.join(" ")}if(!e.deviceId&&c.default.get(e,"payload.transmitterId",!1)){var n=["Dexcom",e.uploadId.slice(0,6)];e.deviceId=n.join(" ")}e.deviceId&&!t.deviceUploadMap[e.deviceId]&&(t.deviceUploadMap[e.deviceId]=e.uploadId)}}),(0,o.default)(this,"joinWizardAndBolus",function(e){if(c.default.includes(["bolus","wizard"],e.type)){var a="wizard"===e.type,n=a?"bolus":"wizard",r=a?c.default.invert(t.bolusToWizardIdMap):t.bolusToWizardIdMap,i=a?t.bolusDatumsByIdMap:t.wizardDatumsByIdMap;r[e.id]&&(e[n]=c.default.omit(i[r[e.id]],e.type))}}),(0,o.default)(this,"tagDatum",function(e){"basal"===e.type&&(e.tags={suspend:"suspend"===e.deliveryType,temp:"temp"===e.deliveryType}),"bolus"===e.type&&(e.tags={correction:(0,m.isCorrection)(e),extended:(0,m.hasExtended)(e),interrupted:(0,m.isInterruptedBolus)(e),manual:!e.wizard,override:(0,m.isOverride)(e),underride:(0,m.isUnderride)(e),wizard:!!e.wizard}),"smbg"===e.type&&(e.tags={manual:"manual"===e.subType,meter:"manual"!==e.subType}),"deviceEvent"===e.type&&(e.tags={calibration:"calibration"===e.subType,reservoirChange:"reservoirChange"===e.subType,cannulaPrime:"prime"===e.subType&&"cannula"===e.primeTarget,tubingPrime:"prime"===e.subType&&"tubing"===e.primeTarget})}),(0,o.default)(this,"validateDatumIn",function(e){var a=t.validator[e.type]||t.validator.common;c.default.isFunction(a)&&(a={validator:a});var n=[];c.default.each(c.default.values(a),function(t,a){0!==a&&-1!==n.indexOf(!0)||n.push(t(e))}),-1===n.indexOf(!0)&&(e.reject=!0,e.rejectReason=n)}),(0,o.default)(this,"normalizeDatumOut",function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(t.returnRawData){if(e._time&&(e.time=e._time,delete e._time),e._deviceTime&&(e.deviceTime=e._deviceTime,delete e._deviceTime),delete e.tags,c.default.includes(["bolus","wizard"],e.type)){var n="wizard"===e.type?"bolus":"wizard";c.default.get(e,[n,"id"])&&(e[n]=e[n].id)}"message"===e.type&&(delete e.type,delete e.messageText,delete e.parentMessage,delete e.time)}else{var r=(t.timePrefs||{}).timezoneName,i="*"===a[0];if(t.normalizeDatumOutTime(e,a),e.uploadId&&(i||c.default.includes(a,"deviceSerialNumber"))&&(e.deviceSerialNumber=c.default.get(t.uploadMap,[e.uploadId,"deviceSerialNumber"])),e.source||(e.source=c.default.get(t.uploadMap,[e.uploadId,"source"],"Unspecified Data Source")),"basal"===e.type){if(e.normalEnd=e.normalTime+e.duration,e.subType=e.deliveryType,i||c.default.includes(a,"annotations"))c.default.some(t.incompleteSuspends,function(a){var n=a[t.activeTimeField];return e.normalTime<=n&&n<=e.normalEnd})&&(e.annotations=e.annotations||[],e.annotations.push({code:"basal/intersects-incomplete-suspend"}),t.log("intersectsIncompleteSuspend",e.id));e.suppressed&&(i||c.default.includes(a,"suppressed"))&&t.normalizeDatumOut(e.suppressed,a)}if("cbg"!==e.type&&"smbg"!==e.type||(t.normalizeDatumBgUnits(e),(i||c.default.includes(a,"msPer24"))&&(e.msPer24=(0,v.getMsPer24)(e.normalTime,r)),(i||c.default.includes(a,"localDate"))&&(e.localDate=d.default.utc(e[t.activeTimeField]).tz(r||"UTC").format("YYYY-MM-DD"))),"pumpSettings"===e.type&&(t.normalizeDatumBgUnits(e,["bgTarget","bgTargets"],["target","low","high"]),t.normalizeDatumBgUnits(e,["insulinSensitivity","insulinSensitivities"],["amount"]),(i||c.default.includes(a,"basalSchedules"))&&(e.basalSchedules=c.default.flatten(c.default.partition(c.default.sortBy(c.default.map(e.basalSchedules,function(e,t){return{name:t,value:e}}),"name"),function(e){return"standard"===e.name})))),"wizard"===e.type&&(t.normalizeDatumBgUnits(e,[],["bgInput"]),t.normalizeDatumBgUnits(e,["bgTarget"],["target","range","low","high"]),t.normalizeDatumBgUnits(e,[],["insulinSensitivity"]),c.default.isObject(e.bolus)&&t.normalizeDatumOut(e.bolus,a)),"bolus"===e.type&&c.default.isObject(e.wizard)&&t.normalizeDatumOut(e.wizard,a),"fill"===e.type){var u=e.normalTime+e.displayOffset*p.MS_IN_MIN,o=d.default.utc(e.normalTime).toISOString();e.normalEnd=e.normalTime+e.duration,e.msPer24=(0,v.getMsPer24)(e.normalTime,r),e.hourOfDay=e.msPer24/p.MS_IN_HOUR,e.fillDate=d.default.utc(u).toISOString().slice(0,10),e.id="fill_".concat(o.replace(/[^\w\s]|_/g,""))}}}),(0,o.default)(this,"normalizeDatumOutTime",function(e){var a=(t.timePrefs||{}).timezoneName;a?(e.normalTime=e.time,e.displayOffset=-(0,v.getOffset)(e.time,a)):(null!=e.timezoneOffset&&null!=e.conversionOffset?e.normalTime=e.time+(e.timezoneOffset*p.MS_IN_MIN+e.conversionOffset):e.normalTime=c.default.isEmpty(e.deviceTime)?e.time:e.deviceTime,e.displayOffset=0,e.deviceTime&&e.normalTime!==e.deviceTime&&(e.warning="Combining `time` and `timezoneOffset` does not yield `deviceTime`."))}),(0,o.default)(this,"normalizeDatumBgUnits",function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:["value"],r=c.default.get(t.bgPrefs,"bgUnits");if(r&&e.units&&(e.units=c.default.isPlainObject(e.units)?(0,i.default)({},e.units,{bg:r}):r),r===p.MGDL_UNITS){e.units&&(e.units=c.default.isPlainObject(e.units)?(0,i.default)({},e.units,{bg:p.MGDL_UNITS}):p.MGDL_UNITS);var u=function(a){var r=a?c.default.get(e,a):e;c.default.isPlainObject(r)&&c.default.keys(r).length?c.default.each(n,function(n){if(c.default.isNumber(r[n])){var i=c.default.reject([a,n],c.default.isEmpty);c.default.set(e,i,(0,g.convertToMGDL)(r[n]))}else c.default.isPlainObject(r)&&t.normalizeDatumBgUnits(r,c.default.keys(r),[n])}):c.default.isArray(r)&&c.default.each(r,function(e){t.normalizeDatumBgUnits(e,[],n)})};a.length?c.default.each(a,u):u()}}),(0,o.default)(this,"normalizeSuppressedBasal",function(e){"temp"!==e.suppressed.deliveryType||e.suppressed.rate||e.suppressed.percent&&e.suppressed.suppressed&&"scheduled"===e.suppressed.suppressed.deliveryType&&e.suppressed.suppressed.rate>=0&&(e.suppressed.rate=e.suppressed.percent*e.suppressed.suppressed.rate),e.suppressed.duration=e.duration,e.suppressed.time=Date.parse(e.time),e.deviceTime&&(e.suppressed.deviceTime=Date.parse(e.deviceTime)),e.suppressed.suppressed&&t.normalizeSuppressedBasal(e.suppressed)}),(0,o.default)(this,"removeData",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;e?(t.log("Removing data where",e),c.default.isPlainObject(e)&&(e=c.default.matches(e)),t.clearFilters(),t.data.remove(e)):(t.log("Reinitializing"),t.bolusToWizardIdMap={},t.bolusDatumsByIdMap={},t.wizardDatumsByIdMap={},t.latestDatumByType={},t.deviceUploadMap={},delete t.bgSources,delete t.bgPrefs,delete t.timePrefs,delete t.latestPumpUpload,delete t.devices,t.init())}),(0,o.default)(this,"updateDatum",function(e){t.log("Updating Datum",e),t.clearFilters();var a=t.filter.byId(e.id).top(1)[0],n=c.default.cloneDeep(e);t.normalizeDatumIn(n),a&&!n.reject&&c.default.assign(a,n),t.dimension.byId.filterAll(),t.buildByTimeDimension();var r=c.default.cloneDeep(a);return t.normalizeDatumOut(r,"*"),{datum:r}}),(0,o.default)(this,"buildByDayOfWeekDimension",function(){t.dimension.byDayOfWeek=t.data.dimension(function(e){return d.default.utc(e[t.activeTimeField||"time"]).tz(c.default.get(t,"timePrefs.timezoneName","UTC")).day()})}),(0,o.default)(this,"buildByDateDimension",function(){t.dimension.byDate=t.data.dimension(function(e){return d.default.utc(e[t.activeTimeField||"time"]).tz(c.default.get(t,"timePrefs.timezoneName","UTC")).format("YYYY-MM-DD")})}),(0,o.default)(this,"buildByIdDimension",function(){t.dimension.byId=t.data.dimension(function(e){return e.id})}),(0,o.default)(this,"buildBySubTypeDimension",function(){t.dimension.bySubType=t.data.dimension(function(e){return e.subType||""})}),(0,o.default)(this,"buildByTimeDimension",function(){t.dimension.byTime=t.data.dimension(function(e){return e[t.activeTimeField||"time"]})}),(0,o.default)(this,"buildByTypeDimension",function(){t.dimension.byType=t.data.dimension(function(e){return e.type})}),(0,o.default)(this,"buildByDeviceIdDimension",function(){t.dimension.byDeviceId=t.data.dimension(function(e){return e.deviceId||""})}),(0,o.default)(this,"buildDimensions",function(){t.startTimer("buildDimensions"),t.dimension={},t.buildByDayOfWeekDimension(),t.buildByDateDimension(),t.buildByIdDimension(),t.buildBySubTypeDimension(),t.buildByTimeDimension(),t.buildByTypeDimension(),t.buildByDeviceIdDimension(),t.endTimer("buildDimensions")}),(0,o.default)(this,"buildFilters",function(){t.startTimer("buildFilters"),t.filter={},t.filter.byActiveDays=function(e){return t.dimension.byDayOfWeek.filterFunction(function(t){return c.default.includes(e,t)})},t.filter.byEndpoints=function(e){return t.dimension.byTime.filterRange(e)},t.filter.byType=function(e){return t.activeType=e,t.dimension.byType.filterExact(e)},t.filter.byTypes=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return delete t.activeType,t.dimension.byType.filterFunction(function(t){return c.default.includes(e,t)})},t.filter.bySubType=function(e){return t.activeSubType=e,t.dimension.bySubType.filterExact(e)},t.filter.byDeviceIds=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return t.dimension.byDeviceId.filterFunction(function(t){return!c.default.includes(e,t)})},t.filter.byId=function(e){return t.dimension.byId.filterExact(e)},t.endTimer("buildFilters")}),(0,o.default)(this,"buildSorts",function(){t.startTimer("buildSorts"),t.sort={},t.sort.byTime=function(e){var a=c.default.get(t,"timePrefs.timezoneAware")?"time":"deviceTime";return e.sort(function(e,t){return e[a]-t[a]})},t.endTimer("buildSorts")}),(0,o.default)(this,"clearFilters",function(){t.startTimer("clearFilters"),t.dimension.byTime.filterAll(),t.dimension.byType.filterAll(),t.dimension.bySubType.filterAll(),t.dimension.byId.filterAll(),t.dimension.byDayOfWeek.filterAll(),t.dimension.byDeviceId.filterAll(),t.endTimer("clearFilters")}),(0,o.default)(this,"setBgSources",function(e){t.startTimer("setBgSources"),t.clearFilters();var a={cbg:t.filter.byType(p.CGM_DATA_KEY).top(1/0).length>0,smbg:t.filter.byType(p.BGM_DATA_KEY).top(1/0).length>0,current:c.default.includes([p.CGM_DATA_KEY,p.BGM_DATA_KEY],e)?e:void 0};a.current||(c.default.get(t,"bgSources.current")?a.current=t.bgSources.current:a.cbg?a.current=p.CGM_DATA_KEY:a.smbg&&(a.current=p.BGM_DATA_KEY)),t.bgSources=a,t.endTimer("setBgSources")}),(0,o.default)(this,"setLatestPumpUpload",function(){t.startTimer("setLatestPumpUpload"),t.clearFilters();var e=t.sort.byTime(t.filter.byType("upload").top(1/0)),a=c.default.cloneDeep((0,f.getLatestPumpUpload)(e));if(a){var n=c.default.get(t.uploadMap[a.uploadId],"source","").toLowerCase(),r="carelink"===n?"medtronic":n,i=c.default.get(a,"deviceModel",""),u=c.default.cloneDeep(t.latestDatumByType.pumpSettings),o=(0,f.isAutomatedBasalDevice)(r,i);if(u&&o){var l=t.sort.byTime(t.filter.byType("basal").top(1/0));u.lastManualBasalSchedule=(0,f.getLastManualBasalSchedule)(l)}t.latestPumpUpload={deviceModel:i,isAutomatedBasalDevice:o,manufacturer:r,settings:u}}t.endTimer("setLatestPumpUpload")}),(0,o.default)(this,"setUploadMap",function(){t.startTimer("setUploadMap"),t.clearFilters();var e=t.filter.byType("upload").top(1/0),a=t.filter.byType("pumpSettings").top(1/0);t.uploadMap={},c.default.each(e,function(e){var n="Unknown";c.default.get(e,"source")?n=e.source:c.default.isArray(e.deviceManufacturers)&&!c.default.isEmpty(e.deviceManufacturers)&&(n="Medtronic"===e.deviceManufacturers[0]&&c.default.filter(a,{uploadId:e.uploadId,source:"carelink"}).length?"carelink":e.deviceManufacturers[0]),t.uploadMap[e.uploadId]={source:n,deviceSerialNumber:e.deviceSerialNumber||e.serialNumber||"Unknown"}}),t.endTimer("setUploadMap")}),(0,o.default)(this,"setIncompleteSuspends",function(){t.startTimer("setIncompleteSuspends"),t.clearFilters();var e=t.sort.byTime(t.filter.byType("deviceEvent").top(1/0));t.incompleteSuspends=c.default.filter(e,function(e){var t=e.annotations,a=void 0===t?[]:t;return c.default.find(a,{code:"status/incomplete-tuple"})}),t.endTimer("setIncompleteSuspends")}),(0,o.default)(this,"setSize",function(){t.startTimer("setSize"),t.size=t.data.size(),t.endTimer("setSize")}),(0,o.default)(this,"setDevices",function(){t.startTimer("setDevices");var e=c.default.keyBy(t.sort.byTime(t.filter.byType("upload").top(1/0)),"uploadId");t.devices=c.default.reduce(t.deviceUploadMap,function(t,a,n){var r=e[a],i={id:n};if(r){var u="continuous"===c.default.get(r,"dataSetType"),o=c.default.get(r,"deviceManufacturers.0",""),l=c.default.get(r,"deviceModel",""),s=n;(o||l)&&(s="Dexcom"===o&&u?"Dexcom API":[o,l].join(" ")),i={bgm:c.default.includes(r.deviceTags,"bgm"),cgm:c.default.includes(r.deviceTags,"cgm"),id:n,label:s,pump:c.default.includes(r.deviceTags,"insulin-pump"),serialNumber:r.deviceSerialNumber}}return t.push(i),t},[]),t.endTimer("setDevices")}),(0,o.default)(this,"setMetaData",function(){t.startTimer("setMetaData"),t.setSize(),t.bgPrefs||t.setBgPrefs(),t.setBgSources(),t.timePrefs||t.setTimePrefs(),t.setEndpoints(),t.setActiveDays(),t.setTypes(),t.setUploadMap(),t.setDevices(),t.setLatestPumpUpload(),t.setIncompleteSuspends(),t.endTimer("setMetaData")}),(0,o.default)(this,"setEndpoints",function(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(t.startTimer("setEndpoints"),t.endpoints={current:{range:[0,1/0]}},e){var r=t.timePrefs.timezoneName,i=d.default.utc(e[1]).diff(d.default.utc(e[0]))/p.MS_IN_DAY;if(t.endpoints.current={range:c.default.map(e,function(e){return d.default.utc(e).valueOf()}),days:i,activeDays:i},a>0&&(t.endpoints.next={range:[t.endpoints.current.range[1],d.default.utc(e[1]).add(a,"days").valueOf()],days:a,activeDays:a},r)){var u=d.default.utc(t.endpoints.next.range[0]).tz(r).isDST(),o=d.default.utc(t.endpoints.next.range[1]).tz(r).isDST();if(u!==o){var l=o?-p.MS_IN_HOUR:p.MS_IN_HOUR;t.endpoints.next.range[1]=t.endpoints.next.range[1]+l}}if(n>0&&(t.endpoints.prev={range:[d.default.utc(e[0]).subtract(n,"days").valueOf(),t.endpoints.current.range[0]],days:n,activeDays:n},r)){var s=d.default.utc(t.endpoints.prev.range[0]).tz(r).isDST();if(s!==d.default.utc(t.endpoints.prev.range[1]).tz(r).isDST()){var f=s?-p.MS_IN_HOUR:p.MS_IN_HOUR;t.endpoints.prev.range[0]=t.endpoints.prev.range[0]+f}}}t.endTimer("setEndpoints")}),(0,o.default)(this,"setActiveDays",function(e){t.startTimer("setActiveDays"),t.activeDays=e||[0,1,2,3,4,5,6],c.default.each(c.default.keys(t.endpoints),function(e){t.endpoints[e].days&&(t.log("this.endpoints[range].days",t.endpoints[e].days),t.endpoints[e].activeDays=c.default.filter(c.default.reduce([t.endpoints[e].range[0]].concat((0,r.default)(new Array(Math.round(t.endpoints[e].days)-1))),function(e,a,n){var r;if(0===n)r=d.default.utc(a).tz(c.default.get(t,"timePrefs.timezoneName","UTC")).day();else{var i=e[n-1]+1;r=i>6?i-7:i}return e.push(r),e},[]),function(e){return c.default.includes(t.activeDays,e)}).length)}),t.endTimer("setActiveDays")}),(0,o.default)(this,"setStats",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];t.stats=c.default.isString(e)?c.default.map(e.split(","),c.default.trim):e}),(0,o.default)(this,"setTypes",function(e){if(t.startTimer("setTypes"),t.types=c.default.isArray(e)?e:[],c.default.isPlainObject(e))t.types=c.default.map(e,function(e,t){return(0,i.default)({type:t},e)});else if("*"===e){var a=t.dimension.byType.group();t.types=c.default.map(a.all(),function(e){return{type:e.key,select:"*",sort:"".concat(t.activeTimeField,",asc")}}),a.dispose()}t.endTimer("setTypes")}),(0,o.default)(this,"setTimePrefs",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.startTimer("setTimePrefs");var a=e.timezoneAware,n=void 0!==a&&a,r=e.timezoneName||void 0;n&&(r=(0,v.getTimezoneFromTimePrefs)(e));var i=r!==c.default.get(t,"timePrefs.timezoneName"),u=n!==c.default.get(t,"timePrefs.timezoneAware");t.timePrefs={timezoneAware:n,timezoneName:r};var o=t.activeTimeField;t.activeTimeField=n?"time":"deviceTime";var l=t.activeTimeField!==o,s=i||u||l,d=u||l;(i||u||l)&&t.buildByDateDimension(),s&&t.buildByDayOfWeekDimension(),d&&t.buildByTimeDimension(),t.endTimer("setTimePrefs")}),(0,o.default)(this,"setBgPrefs",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.startTimer("setBgPrefs");var a=e.bgBounds,n=void 0===a?p.DEFAULT_BG_BOUNDS[p.MGDL_UNITS]:a,r=e.bgClasses,i=void 0===r?{}:r,u=e.bgUnits,o=void 0===u?p.MGDL_UNITS:u;c.default.defaults(i,{"very-low":{boundary:p.DEFAULT_BG_BOUNDS[o].veryLowThreshold},low:{boundary:p.DEFAULT_BG_BOUNDS[o].targetLowerBound},target:{boundary:p.DEFAULT_BG_BOUNDS[o].targetUpperBound},high:{boundary:p.DEFAULT_BG_BOUNDS[o].veryHighThreshold}}),t.bgPrefs={bgBounds:n,bgClasses:i,bgUnits:o},t.endTimer("setBgPrefs")}),(0,o.default)(this,"setReturnRawData",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];t.returnRawData=e}),(0,o.default)(this,"setExcludedDevices",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];t.startTimer("setExcludedDevices"),t.excludedDevices=e,t.endTimer("setExcludedDevices")}),(0,o.default)(this,"setExcludedDaysWithoutBolus",function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];t.excludeDaysWithoutBolus=e}),(0,o.default)(this,"query",function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.log("Query",e),t.startTimer("query total");var a=e.activeDays,n=e.aggregationsByDate,r