{"version":3,"sources":["webpack:///./src/components/charts/ostanizdrav/UserPublishedByCountChart.vue?7147","webpack:///./src/vega/userPublishedByCount.js","webpack:///src/components/charts/ostanizdrav/UserPublishedByCountChart.vue","webpack:///./src/components/charts/ostanizdrav/UserPublishedByCountChart.vue?f199","webpack:///./src/components/charts/ostanizdrav/UserPublishedByCountChart.vue","webpack:///./src/components/cards/InfoCard.vue?9f90","webpack:///./src/assets/svg/tw-icon.svg","webpack:///../../src/fable-library/Date.ts","webpack:///./src/components/charts/ostanizdrav/PublishedChart.vue?4309","webpack:///./src/vega/published.js","webpack:///src/components/charts/ostanizdrav/PublishedChart.vue","webpack:///./src/components/charts/ostanizdrav/PublishedChart.vue?38ee","webpack:///./src/components/charts/ostanizdrav/PublishedChart.vue","webpack:///src/visualizations/Types.fs","webpack:///../../src/fable-library/AsyncBuilder.ts","webpack:///../../src/fable-library/Async.ts","webpack:///../../src/fable-library/Observable.ts","webpack:///../../src/fable-library/Event.ts","webpack:///../../src/fable-library/Timer.ts","webpack:///.fable/Fable.Elmish.3.0.6/prelude.fs","webpack:///.fable/Fable.Elmish.3.0.6/cmd.fs","webpack:///.fable/Fable.SimpleHttp.3.0.0/Http.fs","webpack:///src/visualizations/data/WeeklyStats.fs","webpack:///../../src/fable-library/TimeSpan.ts","webpack:///.fable/Feliz.1.16.0/Interop.fs","webpack:///src/visualizations/I18N.fs","webpack:///src/visualizations/Utils.fs","webpack:///.fable/FsToolkit.ErrorHandling.1.4.3/ResultCE.fs","webpack:///src/visualizations/data/Regions.fs","webpack:///src/visualizations/data/Stats.fs","webpack:///src/visualizations/Highcharts.fs","webpack:///src/visualizations/data/Hospitals.fs","webpack:///src/visualizations/data/Patients.fs","webpack:///./.fable/Feliz.1.16.0/ReactInterop.js","webpack:///.fable/Feliz.1.16.0/React.fs","webpack:///.fable/Fable.Promise.2.1.0/Promise.fs","webpack:///.fable/Fable.Promise.2.1.0/PromiseImpl.fs","webpack:///.fable/Feliz.UseElmish.1.4.1/UseElmish.fs","webpack:///src/visualizations/HospitalsChart.fs","webpack:///.fable/Fable.Elmish.React.3.0.1/common.fs","webpack:///src/visualizations/MetricsComparisonChart.fs","webpack:///src/visualizations/DailyComparisonChart.fs","webpack:///src/visualizations/SpreadChart.fs","webpack:///src/visualizations/MapChart.fs","webpack:///src/visualizations/MunicipalitiesChart.fs","webpack:///src/visualizations/data/OurWorldInData.fs","webpack:///src/visualizations/EuropeMapChart.fs","webpack:///src/visualizations/Days.fs","webpack:///src/visualizations/AgeGroupsTimelineViz/Analysis.fs","webpack:///src/visualizations/Statistics.fs","webpack:///./.fable/fable-library.2.13.0/System.Text.js","webpack:///src/visualizations/AgeGroupsTimelineViz/Synthesis.fs","webpack:///src/visualizations/AgeGroupsTimelineViz/Rendering.fs","webpack:///src/visualizations/TestsChart.fs","webpack:///src/visualizations/data/HCenters.fs","webpack:///src/visualizations/HCentersChart.fs","webpack:///src/visualizations/InfectionsChart.fs","webpack:///src/visualizations/CasesChart.fs","webpack:///src/visualizations/PatientsChart.fs","webpack:///src/visualizations/RatiosChart.fs","webpack:///src/visualizations/AgeGroupsChart.fs","webpack:///src/visualizations/RegionsChart.fs","webpack:///src/visualizations/SourcesChart.fs","webpack:///src/visualizations/HcCasesChart.fs","webpack:///src/visualizations/CountriesChartViz/Analysis.fs","webpack:///src/visualizations/CountriesChartViz/Synthesis.fs","webpack:///src/visualizations/CountriesChartViz/CountrySets.fs","webpack:///src/visualizations/CountriesChartViz/Rendering.fs","webpack:///src/visualizations/PhaseDiagram/Types.fs","webpack:///src/visualizations/PhaseDiagram/Data.fs","webpack:///src/visualizations/PhaseDiagram/Chart.fs","webpack:///src/visualizations/MetricsCorrelationViz/Rendering.fs","webpack:///src/visualizations/ShareButton.fs","webpack:///./src/visualizations/IntersectionObserver.js","webpack:///src/visualizations/IntersectionObserver.fs","webpack:///src/visualizations/App.fs","webpack:///.fable/Fable.Elmish.3.0.6/ring.fs","webpack:///.fable/Fable.Elmish.3.0.6/program.fs","webpack:///.fable/Fable.Elmish.React.3.0.1/react.fs","webpack:///src/visualizations/Main.fs","webpack:///./src/components/Navbar.vue?6358","webpack:///../../../src/fable-library/lib/long.js","webpack:///../../src/fable-library/Long.ts","webpack:///.fable/Fable.SimpleJson.3.11.0/Json.Converter.fs","webpack:///./.fable/Fable.Parsimmon.4.0.0/Parsimmon.js","webpack:///../../../src/fable-library/lib/big.js","webpack:///../../src/fable-library/Decimal.ts","webpack:///./src/components/cards/InfoCard.vue?8c8a","webpack:///src/components/cards/InfoCard.vue","webpack:///./src/components/cards/InfoCard.vue?ca27","webpack:///./src/components/cards/InfoCard.vue","webpack:///./src/assets/svg/gh-icon.svg","webpack:///./.fable/fable-library.2.13.0/MutableMap.js","webpack:///./.fable/fable-library.2.13.0/Map.js","webpack:///./src/App.vue?bdff","webpack:///./src/components/Navbar.vue?bad3","webpack:///./src/components/LanguageSwitcher.vue?3699","webpack:///src/components/LanguageSwitcher.vue","webpack:///./src/components/LanguageSwitcher.vue?4f5d","webpack:///./src/components/LanguageSwitcher.vue","webpack:///src/components/Navbar.vue","webpack:///./src/components/Navbar.vue?9640","webpack:///./src/components/Navbar.vue","webpack:///./src/components/Footer.vue?6e0f","webpack:///src/components/Footer.vue","webpack:///./src/components/Footer.vue?a982","webpack:///./src/components/Footer.vue","webpack:///src/App.vue","webpack:///./src/App.vue?1160","webpack:///./src/App.vue","webpack:///./src/services/api.service.js","webpack:///./src/store/stats.store.js","webpack:///./src/store/hospitals.store.js","webpack:///./src/store/patients.store.js","webpack:///./src/store/municipalities.store.js","webpack:///./src/store/skopje-municipalities.store.js","webpack:///./src/store/health-centers.store.js","webpack:///./src/store/tables.store.js","webpack:///./src/store/ostanizdrav.store.js","webpack:///./src/store/index.js","webpack:///./.fable/fable-library.2.13.0/List.js","webpack:///./src/components/charts/ostanizdrav/UserCountChart.vue?e88e","webpack:///./src/vega/usercount.js","webpack:///src/components/charts/ostanizdrav/UserCountChart.vue","webpack:///./src/components/charts/ostanizdrav/UserCountChart.vue?ca3c","webpack:///./src/components/charts/ostanizdrav/UserCountChart.vue","webpack:///./.fable/fable-library.2.13.0/Array.js","webpack:///../../src/fable-library/RegExp.ts","webpack:///../../src/fable-library/String.ts","webpack:///./src/filters.js","webpack:///./src/directives.js","webpack:///./src/main.js","webpack:///./.fable/fable-library.2.13.0/MutableSet.js","webpack:///./.fable/fable-library.2.13.0/Set.js","webpack:///./src/App.vue?c650","webpack:///../../src/fable-library/Types.ts","webpack:///./src/assets/svg/fb-icon.svg","webpack:///./src/components/Footer.vue?91be","webpack:///.fable/Fable.Parsimmon.4.0.0/Parsimmon.fs","webpack:///.fable/Fable.SimpleJson.3.11.0/Parser.fs","webpack:///.fable/Fable.SimpleJson.3.11.0/TypeCheck.fs","webpack:///.fable/Fable.SimpleJson.3.11.0/SimpleJson.fs","webpack:///./src/i18n.js","webpack:///./src/components/LanguageSwitcher.vue?6eb7","webpack:///./src/components/charts/ostanizdrav/ValidByRiskChart.vue?dc41","webpack:///./src/vega/validByRisk.js","webpack:///src/components/charts/ostanizdrav/ValidByRiskChart.vue","webpack:///./src/components/charts/ostanizdrav/ValidByRiskChart.vue?4b0c","webpack:///./src/components/charts/ostanizdrav/ValidByRiskChart.vue","webpack:///./.fable/fable-library.2.13.0/BigInt/n.js","webpack:///./.fable/fable-library.2.13.0/BigInt/z.js","webpack:///./.fable/fable-library.2.13.0/BigInt.js","webpack:///../../src/fable-library/Double.ts","webpack:///../../src/fable-library/Guid.ts","webpack:///../../src/fable-library/BitConverter.ts","webpack:///../../src/fable-library/Reflection.ts","webpack:///../../src/fable-library/Int32.ts","webpack:///./src/components/charts/VegaChart.vue?9fbe","webpack:///./src/vega/opts.js","webpack:///src/components/charts/VegaChart.vue","webpack:///./src/components/charts/VegaChart.vue?06f2","webpack:///./src/components/charts/VegaChart.vue","webpack:///.fable/Fable.SimpleJson.3.11.0/TypeInfo.Converter.fs","webpack:///../../src/fable-library/Option.ts","webpack:///./src/components/charts/VegaChart.vue?3fd4","webpack:///./src/components/charts/ostanizdrav/PublishedByRiskChart.vue?be04","webpack:///./src/vega/publishedByRisk.js","webpack:///src/components/charts/ostanizdrav/PublishedByRiskChart.vue","webpack:///./src/components/charts/ostanizdrav/PublishedByRiskChart.vue?c665","webpack:///./src/components/charts/ostanizdrav/PublishedByRiskChart.vue","webpack:///../../src/fable-library/Seq.ts","webpack:///../../src/fable-library/Util.ts","webpack:///./src/visualizations/_highcharts.js","webpack:///./src/components/charts/ostanizdrav/ValidChart.vue?33cf","webpack:///./src/vega/valid.js","webpack:///src/components/charts/ostanizdrav/ValidChart.vue","webpack:///./src/components/charts/ostanizdrav/ValidChart.vue?b32e","webpack:///./src/components/charts/ostanizdrav/ValidChart.vue","webpack:///../../src/fable-library/DateOffset.ts"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","$t","plotData","staticRenderFns","name","components","VegaChart","data","userPublishedByCount","component","module","exports","rep","utc","date","getUTCHours","getHours","d","published","a","clo1","b","clo2","x","text","ex","console","interval","callback","t","returnVal","Start","dispatch","cmd","List","sub","cmds","msg","start","task","arg","ofSuccess","ofError","arg00","_arg1","value","Header","HttpMethod","BodyContent","ResponseContent","delimiter","input","url","defaultRequest","httpVerb","req","singleHeader","headers","tupledArg","xhr","serializeMethod","responseText","matchValue","statusCode","responseType","content","elements","array","readyState","status","response","getAllResponseHeaders","splitAt","headerLine","parts","forLoopVar","setRequestHeader","mimeType","overrideMimeType","send","request","method","mapKeysToUpperCase","map","source","Seq","ToDomain","parseWStatsData","responseData","transferWStatsData","inputJson","typeInfo","transferDataPoint","Array","countryTotals","weeklyStats","table","ws","state","a_","key","b_","v","arg0","_arg2","arg10","mkAttr","mkStyle","i18n","tOptions","options","tt","section","dow","dayOfWeek","chartText","chartTextsGroup","textId","zeroToNone","optionToInt","parseDate","str","roundDecimals","decimals","roundTo1Decimal","roundTo3Decimals","formatToInt","formatted","formatTo1DecimalWithTrailingZero","formatTo3DecimalWithTrailingZero","percentageValuesWith1DecimalTrailingZeroLabelFormatter","percentageValuesLabelFormatter","copyOfStruct","abs","findDoublingTime","values","reversedValues","list","dp","Value","Date","halfValue","classes","classTuples","names","renderScaleSelector","scaleType","elems","xs","renderSelector","currentScaleType","label","defaultProps","yLabel","linearLabel","logLabel","renderChartTopControls","children","renderChartTopControlRight","topControl","properties","loadingLabel","renderErrorLoading","error","renderMaybeVisible","visible","transliterateCSZ","Set","groupKey","fromValue","toValue","exn","ageGroupId","toAgeGroupId","agePopulationStats","__","generator","( .ctor )","parseRegionsData","csv","headerMunicipalities","rows","header","col","region","municipality","row","columns","result","municipalities","apiEndpoint","loadSkMun","item","parseStatsData","transferStatsData","y","jsNoon","nWeeks","saturday","origin","i","from","to","addContainmentMeasuresFlags","startDate","endDate","events","title","ts","showMeasure","onLoadEvent","e","event","document","createEvent","initEvent","optionsWithOnLoadEvent","className","o","configureRangeSelector","selectedRangeSelectionButtonIndex","buttons","inputDateFormat","inputEditDateFormat","arg20","localStorage","getItem","arg30","clo3","basicChartOptions","rangeSelectorButtonClickHandler","labels","plotLines","plotBands","week","type","min","max","maxPadding","showFirstLabel","tickInterval","condition","chart","xAxis","tooltip","shadedWeekendPlotBands","yAxis","navigator","scrollbar","legend","responsive","plotOptions","rangeSelector","credictsOptions","count","counts","asset","assets","getValue","facilitySeriesInfo","ps","getSortedFacilityCodes","quality","Option","vents","option","hospitals","tuple","cached","useEffect","getDisposable","useEffectReact","disposable","Dispose","useEffectWithDeps","deps","useLayoutEffect","useLayoutEffectReact","renderElement","withKey","props","propsWithKey","areEqual","memoElementType","f","dispose","effect","dependencies","createDisposable","_arg3","_arg4","callbackFunction","initialValue","createFunction","functionComponent","memo","lastRenderCallbackRef","useRef","callbackRef","useCallback","initial","PromiseBuilder","guard","p","While","f1","f2","er","success","fail","size","_","rix'","init","update","token","ring","patternInput","cts","setChildState","current","pr","nextMsg","Pop","record","useElmish","breakdown","cmd2","facilities","switchBreakdown","getAllScopes","fcode","extractFacilityDataPoint","scope","atype","ctype","fa","binder","extractPatientDataPoint","cType","extractTotalsCount","extractFacilityCount","renderChartOptions","spline","yAxes","getYAxis","renderFacilitiesSeries","aType","scaleBy","color","dash","renderPoint","n","dashStyle","extra","renderPatientsProjection","growthFactor","limit","k","Math","renderPatientsSeries","mapping","nDays","series","baseOptions","buttonIndex","enabled","renderChartContainer","renderTable","getFacilityDp","getPatientsDp","numericCell","pt","cur","total","free","renderScopeSelector","onClick","renderBreakdownSelectors","err","hospitalsChart","fullKey","equal","view","comp","lazyViewWith","nextProps","_nextState","metric","fn","metrics","mc","Error","Metrics","Visible","statsDataGenerator","point","patientsDataGenerator","calcRunningAverage","entriesCount","cutOff","averagedDataLength","averages","daysOfMovingAverageFloat","currentSum","average","valueToSubtract","prepareMetricsData","untrimmedData","UseStatsData","isValueMissing","trimmedData","finalData","allSeries","startTime","visibleMetrics","MetricType","metricStartTime","marker","lineWidth","states","ax","renderMetricSelector","style","renderMetricsSelectors","renderMetricTypeSelectors","activeMetricType","metricTypesSelectors","metricTypeToRender","active","Name","availableMetricTypes","metricsComparisonChart","dType","fourWeeks","percentageFormatter","valueF","aa","bb","weekIdx","rgb","sat","argb","r","g","avg","newR","newG","newB","idx","len","getColor","Int32","diff","credits","fmtStr","jsThis","category","pts","getName","fmtLine","yStr","arg40","clo4","dt","isActive","renderDisplaySelectors","all","dailyComparisonChart","inputRecord","legendTitle","daily","yesterday","rate","days","chartCfg","fromScale","dataLabels","renderExplainer","h","positive","hospitalized","renderScaleSelectors","page","spreadChart","munGeoJsonUrl","regGeoJsonUrl","skopjeGeoJsonUrl","mapToDisplay","regionsData","municipalityDataMap","dataTimeInterval","regionsDataPoint","excludedMunicipalities","MunicipalityKey","totalCases","TotalConfirmedCases","TotalDeceasedCases","projection","regDataMap","munData","cases","skopjeMunData","RegionKey","regData","Default","activePatternResult25038","GeoJson","newContentType","( |ConfirmedCasesMsgCase|DeceasedMsgCase| )","newDisplayType","loadRegGeoJson","loadSkopjeMunGeoJson","loadMunGeoJson","seriesData","areaData","index","confirmedCasesValue","newCases","cc","deceasedValue","totalConfirmed","lastValueTotal","lastValueRelative","dateInterval","firstValueTotal","lastValue","weeklyIncrease","scaled","value100k","parseNumber","casesNow","cases7dAgo","cases14dAgo","increaseThisWeek","increaseLastWeek","renderMap","keys","joinBy","normal","colorMax","dataMax","colorAxis","lastDate","colorMin","stops","c","dateText","noData","subtitle","MapToDisplay","desaturateColor","color2","color3","temp","columnColors","arrays","points","area","absolute","population","pctPopulation","labelKey","e2","areaLocalized","currentOption","renderSelectors","renderDisplayTypeSelector","selectors","renderDataTimeIntervalSelector","dataTimeIntervals","renderContentTypeSelector","selected","renderedTypes","ContentType","ev","mapChart","query","regions","Query","search","Regions","sort","queryObj","dataToDisplay","lastDataPoint","reg","last","before","totals","ActiveCases","ConfirmedToDate","DeceasedToDate","totalsShown","maxConfirmed","showMaxBars","lastChange","activeCases","maxActive","dayBefore","doublingTime","Search","Region","View","DataToDisplay","ShowAll","evt","dispatchEvent","renderMunicipality","renderLastCase","renderedDoublingTime","renderedBars","displayValue","maxValue","confirmedToDate","deceasedToDate","recoveredToDate","aHeight","barMaxHeight","dHeight","rHeight","showDate","renderMunicipalities","dataFilteredByQuery","dataFilteredByRegion","compareStringOption","sortedMunicipalities","s1","s2","compareActiveCases","m1","m2","d1","d2","collapsedMunicipalityCount","renderShowMore","showAll","preventDefault","element","getElementById","position","getBoundingClientRect","window","pageYOffset","renderSearch","renderRegionSelector","renderedRegions","renderView","currentView","municipalitiesChart","loadData","apiUrl","URLSearchParams","rowString","parseInt","parseFloat","europeGeoJsonUrl","worldGeoJsonUrl","cmdGeoJson","cmdOwdData","CountrySelection","euCountries","prepareCountryData","weeklyData","importedFrom","dataForLastTwoWeeks","importedDate","incidence","incidenceMaxValue","owdDate","fixedCode","country","incidence100k","imported","redCountries","greenCountries","redNote","greenNote","cd","OwdData","owdCountries","code","someWeeksAgo","ret","CountryData","loadWorldGeoJson","loadEuropeGeoJson","mapData","countries","worldCountries","nc","casesLastWeek","casesWeekBefore","relativeIncrease","twoWeekCaseNumbers","ncDate","impDate","baseRec","twoWeekCases","geoJson","align","verticalAlign","clo5","clo6","maxCases","tickScale","twoWeekIncidence","textHtml","renderChartTypeSelectors","activeChartType","renderChartSelector","chartSelector","daysInYear","year","between","date1","date2","yearsDays","daysToAdd","mapDateTuplesListToArray","dateTupleList","arraySize","daysSince","trimDatedArray","trimPredicate","datedArray","trimmedLeading","daysToIncrement","newStartDate","trimmed","mapDatedArrayItems","mapDatedArray","calcCasesByAgeForDay","prevDay","currentDay","calcIntOptionDiff","value1","value2","prevDayGroups","keyValuePairs","ageGroup","calculateCasesByAgeTimeline","totalCasesByAgeGroups","newCasesTimelineArray","totalCasesTimelineArray","forDay","group","movingAverageCentered","keyFunc","valueFunc","centerIndex","averageValue","targetKey","movingAverages","averageFunc","daysOfMovingAverage","roundKeyValueFloatArray","howManyDecimals","calculateWindowedSumInt","windowSize","runningSum","addValue","subValue","StringBuilder","declare","capacity","$this$$1","buf","isNullOrEmpty","push","StringBuilder$$$$002Ector$$Z18115A39","call","StringBuilder$$$$002Ector","StringBuilder$$Append$$Z721C83C5","s","StringBuilder$$AppendFormat$$433E080","x$$2","fmt","format","prototype","toString","join","listAgeGroups","timeline","extractTimelineForAgeGroup","ageGroupKey","metricsType","casesTimeline","newCasesTimeline","dayGroupsData","dataForGroup","tooltipFormatter","ageGroupLabel","ageGroupColor","dataPoint","dataValue","percentage","ageGroupTooltip","availableDisplayMetrics","totalCasesByAgeGroupsList","allGroupsKeys","colors","groupTimeline","activeMetrics","renderChart","positiveTests","negativeTests","allYAxis","performed","testsChart","sumOption","( + )","None","parseData","municipalityStats","PhoneTriage","Tests","SentTo","getRegionList","hcData","hc","hCentersChart","filter","without","metricType","availableDisplayTypes","allMetricsData","metricsToDisplay","runningTotals","pointData","metricFunc","skipLeadingMissing","allDates","sources","activeDisplayType","displayType","halfDaysOfMovingAverage","infectionsChart","legendFormatter","fmtDate","fmtUnder","subtract","negative","getPoint","getPointTotal","getSeriesInfo","casesChart","hTypeToDisplay","getAllBreakdowns","getFacilitiesList","AllFacilities","renderByHospitalChart","stats","renderStructureChart","psData","fmtTotal","structure","renderBreakdownSelector","patientsChart","renderRatiosChart","getClassName","ratio","percent","renderRatioPoint","getSeries","renderDisplaySelector","ratiosChart","mode","maybeFloat","populationOf","sexLabel","fromAge","toAge","ageGroupStats","percentageOfPopulation","affected","rawPercentage","percentageOfPopulationMaybe","infections","percentageOfInfected","deaths","deathsPerInfectionsMaybe","mergeInfectionsAndDeathsByGroups","mappedInfections","deathsDict","merged","combined","latestAgeData","extractAgeGroupsDataMaybe","ageGroupsData","deathsData","infectionsData","infectionsDataMaybe","deathsDataMaybe","ag","calculateChartData","infectionsAndDeathsPerAge","chartMode","mapNoneToZero","infectionsWithoutNones","categories","ageGroupData","populationStats","male","female","renderScaleTypeSelectors","activeScaleType","renderScaleTypeSelector","renderChartCategorySelector","activeChartMode","chartModeToRender","renderChartCategorySelectors","ScaleType","latestDate","chartData","valuesLabelFormatter","AgeGroupsLabels","sex","arg50","arg60","arg70","clo7","MaleValues","FemaleValues","toChartMode","latest","regionTotal","city","config","regionsWithoutExcluded","regionsByTotalCases","excludedRegions","regionsInfo","newMetrics","m","tooltipValueFormatter","regionTooltip","regionName","regionColor","metricsToRender","totalSum","finalValue","muni","regionPopulation","regionPopBy100k","typeSelector","strings","fmtWeekYearFromTo","tooltipFormatterWithTotal","totalText","splitOutFromTotal","split","split_","total_","renderSeriesImportedByCountry","countryCodesSortedByTotal","countriesToShowInLegend","countryIndex","countryCode","countryColors","showInLegend","renderSeries","legendIndex","onRangeSelectorButtonClick","lastWeek","quarantine","quarantineRelative","bySource","reversedStacks","disclaimer","sourcesChart","healthcare","hcCasesChart","groupEntriesByCountries","metricToDisplay","entries","groupedRaw","entry","countryEntries","entryRaw","totalDeaths","calculateActiveCases","runningActiveCases","countryEntry","calculateMovingAverages","averagesSetLength","entryToRemove","buildFromSloveniaDomesticData","statsData","domesticDataForDate","dataForDate","extractMetricIfPresent","metricValue","SloveniaPopulationInM","updateWithSloveniaDomesticData","countryData","aggregateOurWorldInData","owidDataState","doAggregate","owidData","dataPointsWithLocalSloveniaData","groupedByCountries","averagedAndFilteredByCountries","postProcessedEntries","trimmedEntries","minValueFilter","DashStyle","yAxisValueFormatter","dataDescription","countryTooltip","countryName","countryColor","prepareChartData","aggregated","colorsInPalette","countriesCount","ColorPalette","countryIsoCode","colorIndex","countriesDisplaySets","setCriticalEU","setCriticalWorld","setNeighboringCountries","setNordic","setEastAsiaOceania","setLatinAmerica","getCountriesCodes","selectedSet","countriesCodes","newOwidDataState","renderChartCode","countrySeries","renderCountriesSetsSelectors","activeSet","setToRender","topControls","totalVsWeekData","normalizedData","aCount","bCount","bCountToDate","CountToDate","countToDate","countInWindow","Count","weekVsWeekBeforeData","doubleWindow","firstWindowSum","secondWindowSum","diagramKind","displayData","Day","newState","activePatternResult25889","Metric","newDisplayData","sharedChartOptions","totalVsWeekChartOptions","sharedOptions","weekVsWeekBeforeOptions","renderDiagramKindSelectors","chartOptions","Props","All","casesYAxis","hospitalizedYAxis","deceasedYAxis","yAxesResponsive","dropdown","viz","graphUrl","embedUrl","createIntersectionObserver","targetElementId","target","observer","IntersectionObserver","observe","intersectionObserverEntries","visualization","renderingMode","initialState","WeeklyStatsData","RegionsData","SkopjeMunicipalitiesData","StatsData","visualizationType","brandLink","metricsComparison","dailyComparison","spread","regionMap","skopjeMunMap","skopjeMunicipalities","europeMap","worldMap","ageGroupsTimeline","tests","hCenters","patients","patientsCare","ratios","ageGroups","regionsAbs","regions100k","hcCases","countriesCasesPer1M","countriesActiveCasesPer1M","countriesDeathsPer1M","countriesDeathsPerCases","phaseDiagram","metricsCorrelation","localVisualizations","worldVisualizations","allVisualizations","renderFaqLink","context","wix'","doubleSize","wix","ix","items","model","setState","program","rb","reentered","syncDispatch","runWith","lazyView2With","placeholderId","withReactSynchronousUsing","Visualizations","elementId","Long","compare","$this","other","fromBits","parse","_a","flattenMap","json","activePatternResult14283","( |MapKey|_| )","left","right","activePatternResult14285","activePatternResult14289","( |MapEmpty|_| )","activePatternResult14288","( |MapOne|_| )","activePatternResult14287","( |MapNode|_| )","leftMap","rightMap","generateMap","case","isRecord","foundCase","testExpr","comparer","getlElemType","getElemType","getTypes","jsonValue","optionalTypeDelayed","elemType","insideBrowser","caseName","activePatternResult14307","( |NonArray|_| )","caseNames","expectedCases","arrayLike","deserialized","fromJsonAs","optional","parsedOptional","parsedValues","array2","caseInfo","caseType","unionOfRecords","unexpectedJson","expectedType","discriminators","foundDiscriminatorKey","keyword","discriminatorKey","discriminatorValueJson","foundUnionCase","optionalType","dict","isQuoted","get","high","low","lowBytes","highBytes","combinedBytes","removeQuotes","serializedRecord","caseValue","elementTypeDelayed","tupleTypesDelayed","tuples","getType","_arg5","otherwise","_arg6","_arg7","types","foundCaseName","elementType","converted","tupleTypes","recordValues","_arg8","dictKeys","recordFields","pairs","keyValuePair","output","inputSequence","hashset","tree","internalMap","nextKey","nextValue","unknownType","Parsimmon","action","times","forEach","arr","length","reduce","seed","elem","acc","concat","bufferExists","Buffer","isParser","obj","isArray","isBuffer","makeSuccess","furthest","expected","makeFailure","mergeReplies","union","makeLineColumnIndex","offset","line","column","lines","slice","lineWeAreUpTo","columnWeAreUpTo","ys","j","hasOwnProperty","assertParser","charAt","assertArray","assertNumber","assertRegexp","RegExp","flags","assertFunction","assertString","linesBeforeStringError","linesAfterStringError","bytesPerLine","bytesBefore","bytesAfter","defaultLinePrefix","repeat","string","amount","formatExpected","leftPad","pad","char","add","toChunks","chunkSize","chunks","chunkIndex","rangeFromIndexAndOffsets","after","byteRangeToRange","byteRange","floor","formatGot","lineWithErrorIndex","lineRange","lastLineNumberLabelLength","verticalMarkerLength","byteLineWithErrorIndex","columnByteIndex","bytes","bytesInChunks","toJSON","byteLines","byteRow","byteValue","byteLine","inputLines","lineWithErrorCurrentIndex","linesWithLineNumbers","lineSource","lineNumberLabel","isLineWithError","prefix","formatError","re","lastIndexOf","anchoredRegexp","seq","parsers","arguments","numParsers","accum","seqMap","args","mapper","pop","apply","results","alt","sepBy","parser","separator","sepBy1","or","succeed","then","many","rs","head","regexp","anchored","match","exec","fullMatch","groupMatch","message","lookahead","notFollowedBy","test","predicate","oneOf","ch","indexOf","desc","noneOf","takeWhile","lazy","undefined","empty","skip","eof","tryParse","alternative","trim","wrap","leftParser","rightParser","middle","thru","wrapper","next","self","tieWith","tie","prevResult","res","atMost","atLeast","rest","contramap","promap","mark","end","node","reply","fallback","ap","chain","nextParser","of","any","digit","letter","letters","optWhitespace","whitespace","cr","lf","crlf","newline","rm","P","staticClass","class","specialCardStyleClass","_v","_s","round","renderValues","lastDay","_f","field","diffClass","percentDiff","_e","iconClass","renderActiveValues","fieldNewCases","renderTotalValues","totalIn","fieldDeceased","totalOut","totalDeceased","staticStyle","displayDate","String","goodTrend","default","seriesType","computed","incidenceClass","cardTitle","Object","$route","firstDate","showAbsolute","showIn","showIncidence","showOut","showDeceased","methods","MutableMap$00602","this$","FSharpRef","contents","hashMap","Map","iterate","pair","MutableMap$00602$$Add$$5BDDA1","MutableMap$00602$$$$002Ector$$6623D9B3","MutableMap$00602$$TryFindIndex$$2B595","this$$$1","GetHashCode","tryGetValue","findIndex","pair$$1","Equals","MutableMap$00602$$TryFind$$2B595","this$$$2","k$$1","$target$$10","matchValue$$1","getItemFromDict","MutableMap$00602$$Clear","this$$$4","clear","MutableMap$00602$$get_Count","this$$$5","sumBy","pairs$$2","GetZero","Add","$x$$2","$y$$3","MutableMap$00602$$get_Item$$2B595","this$$$6","k$$2","matchValue$$2","pair$$2","MutableMap$00602$$set_Item$$5BDDA1","this$$$7","k$$3","$target$$20","matchValue$$3","set","this$$$8","k$$4","v$$1","$target$$24","matchValue$$4","MutableMap$00602$$ContainsKey$$2B595","this$$$9","k$$5","$target$$27","matchValue$$5","MutableMap$00602$$Remove$$2B595","this$$$10","k$$6","$target$$30","matchValue$$6","splice","Symbol","iterator","this$$$11","toIterator","delay","collect","pairs$$3","pair$$3","getEnumerator","this$$$12","Clear","this$$$13","Contains","item$$1","$target$$31","this$$$14","matchValue$$7","equals","CopyTo","arrayIndex","this$$$15","iterateIndexed","i$$10","defineProperty","this$$$16","Remove","item$$2","this$$$18","matchValue$$8","pair$$4","this$$$19","this$$$20","delete","k$$7","this$$$21","this$$$22","k$$8","this$$$23","has","k$$9","this$$$24","this$$$25","pair$$5","k$$10","v$$2","this$$$26","this$$$27","pair$$6","MapTree$00602","tag","fields","Union","MapTreeModule$$$sizeAux","$acc$$5","$m$$6","MapTreeModule$$$size","MapTreeModule$$$empty","MapTreeModule$$$height","MapTreeModule$$$isEmpty","m$$1","MapTreeModule$$$mk","l$$1","r$$1","$target$$14","hl","hr","m$$2","MapTreeModule$$$rebalance","t1","t2","t1h","t2h","MapTreeModule$$$add","m$$3","Compare","c$$1","MapTreeModule$$$find","$comparer$$1$$23","$k$$3$$24","$m$$4$$25","comparer$$1","m$$4","c$$2","c$$3","MapTreeModule$$$tryFind","$comparer$$2$$26","$k$$4$$27","$m$$5$$28","comparer$$2","m$$5","c$$4","some","c$$5","MapTreeModule$$$filter1","comparer$$6","f$$3","v$$6","acc$$4","MapTreeModule$$$filterAux","$comparer$$7$$48","$f$$4$$49","$s$$2$$50","$acc$$5$$51","comparer$$7","f$$4","s$$2","acc$$5","acc$$6","acc$$7","MapTreeModule$$$filter","comparer$$8","f$$5","s$$3","MapTreeModule$$$spliceOutSuccessor","m$$6","MapTreeModule$$$remove","comparer$$9","k$$11","m$$7","c$$6","c$$7","patternInput$$1","MapTreeModule$$$mem","$comparer$$10$$59","$k$$12$$60","$m$$8$$61","comparer$$10","k$$12","m$$8","c$$8","MapTreeModule$$$iter","$f$$6$$62","$m$$9$$63","f$$6","m$$9","MapTreeModule$$$mapi","f$$11","m$$14","l2$$1","v2$$17","r2$$1","MapTreeModule$$$fold","$f$$13$$77","$x$$4$$78","$m$$16$$79","f$$13","x$$4","m$$16","x$$5","x$$6","MapTreeModule$$$loop","$m$$19$$92","$acc$$8$$93","m$$19","acc$$8","MapTreeModule$$$toList","m$$20","MapTreeModule$$$ofList","comparer$$13","l$$20","fold$$1","acc$$9","MapTreeModule$$$mkFromEnumerator","$comparer$$14$$97","$acc$$10$$98","$e$$99","comparer$$14","acc$$10","MoveNext","patternInput$$2","Current","MapTreeModule$$$ofArray","comparer$$15","res$$2","patternInput$$3","MapTreeModule$$$ofSeq","comparer$$16","c$$9","ie","isDisposable","MapTreeModule$$$copyToArray","s$$4","arr$$1","i$$1","x$$15","y$$2","MapTreeModule$002EMapIterator$00602","stack","started","Record","MapTreeModule$$$collapseLHS","$stack$$111","tail","MapTreeModule$$$mkIterator","s$$5","MapTreeModule$$$notStarted","MapTreeModule$$$alreadyFinished","MapTreeModule$$$current","i$$2","MapTreeModule$$$moveNext","i$$3","MapTreeModule$002EmkIEnumerator$0027$00602","s$$6","MapTreeModule$002EmkIEnumerator$0027$00602$$$$002Ector$$Z26BC498C","MapTreeModule$$$mkIEnumerator","s$$7","MapTreeModule$$$toSeq","s$$8","en","unfold","en$$1","__$$1","Reset","__$$2","FSharpMap","comparer$$17","$this$$2","FSharpMap$$$$002Ector$$58ADD115","FSharpMap$$get_Tree","__$$5","FSharpMap$$Add$$5BDDA1","__$$6","k$$28","v$$24","FSharpMap$$get_IsEmpty","__$$7","FSharpMap$$get_Item$$2B595","__$$8","k$$29","FSharpMap$$Filter$$Z395DDC35","__$$12","f$$19","FSharpMap$$Map$$Z6F6B671C","__$$18","f$$25","FSharpMap$$get_Count","__$$20","FSharpMap$$ContainsKey$$2B595","__$$21","k$$31","FSharpMap$$Remove$$2B595","__$$22","k$$32","FSharpMap$$TryFind$$2B595","__$$23","k$$33","FSharpMap$$ToList","__$$24","isEmpty","m$$23","k$$37","v$$27","m$$24","find","k$$38","m$$25","tryFind","k$$39","m$$26","remove","k$$40","m$$27","containsKey","k$$41","m$$28","f$$31","m$$33","f$$35","m$$37","fold","f$$36","z","m$$38","toSeq","m$$40","ofList","l$$22","comparer$$18","ofSeq","l$$23","comparer$$19","ofArray","comparer$$20","toList","m$$45","toArray","m$$46","res$$6","comparer$$21","createMutable","source$$3","comparer$$22","map$$1","MutableMap$002400602$0024$0024$0024$0024002Ector$0024$00246623D9B3","groupBy","comparer$$23","empty$$1","iterate$$1","v$$30","map$$2","kv$$3","kv","combineHash","x$$16","y$$3","res$$3","e$$1","patternInput$$5","activePatternResult3682","structuralHash","that","CompareTo","__$$25","m$$22","res$$4","finished","e1","kvp1","kvp2","c$$10","this$$$3","_arg1$$1","k$$34","k$$35","source$$1","kv$$1","k$$36","v$$26","source$$2","kv$$2","embed","path","scrolled","scrollPosition","menuOpen","menuOpened","closingMenu","on","toggleMenu","isMobile","_l","lang","$i18n","i18next","language","toLowerCase","replace","$event","changeLanguage","lng","toggleDropdown","selectedLanguage","toUpperCase","directives","rawName","expression","showFullLang","mixins","languages","onResize","innerWidth","params","log","hideDropdown","mounted","addEventListener","beforeDestroy","removeEventListener","LanguageSwitcher","dropdownVisible","created","handleScroll","scrollY","closeMenu","setTimeout","watch","_m","metaInfo","pathWithoutLanguage","links","htmlAttrs","meta","link","Boolean","Navbar","Footer","$store","hash","elm","clearInterval","checker","ApiService","baseURL","axios","defaults","resource","opts","axiosETAGCache","cumulative","day2Before","month","padStart","day","getTime","exportTime","loaded","getters","getValueOn","searchResult","getLastValue","reverse","setHours","actions","fetchData","commit","tempDate","setDate","getDate","ApiEndpoint","timestamp","refreshDataEvery","seconds","setInterval","mutations","setData","setRegions","setExportTime","statsStore","namespaced","hospitalName","id","hospitalsJSON","setHospitals","hospitalsStore","patientsStore","municipalitiesStore","skopjeMunicipalitiesStore","healthCentersStore","processTableData","dimension","newData","interpolation","escapeValue","val","tableData","filterTableData","includes","dim","sample","stickyColumn","sortable","loadCsv","resp","unix","location","d3","Vue","use","Vuex","store","Store","modules","healthCenters","ostanizdrav","ostanizdravStore","$_arg1$$3$$5","_arg1$$3","tryLast","$_arg1$$4$$6","_arg1$$4","foldIndexedAux","$f$$12","$i$$13","$acc$$14","$_arg1$$5$$15","_arg1$$5","foldIndexed","f$$1","xs$$7","$f$$2$$19","$state$$1$$20","$xs$$8$$21","f$$2","state$$1","xs$$8","xs$$9","acc$$1","xs$$12","xs$$13","acc$$3","x$$9","lists","xs$$15","state$$3","xs$$14","x$$10","xs$$27","_arg1$$7","append","xs$$28","ys$$10","f$$16","xs$$31","xs$$32","acc$$11","mapIndexed","f$$17","xs$$33","xs$$34","acc$$12","x$$17","f$$24","xs$$46","unitVar0","x$$24","xs$$50","res$$1","i$$9","tryPickIndexedAux","$f$$28$$120","$i$$10$$121","$_arg1$$9$$122","f$$28","_arg1$$9","tryPickIndexed","f$$29","xs$$52","tryPick","f$$30","xs$$53","_arg1$$10","x$$29","pick","xs$$54","x$$30","value$$1","tryFindIndexed","f$$32","xs$$55","i$$11","x$$31","f$$33","xs$$56","_arg1$$11","x$$32","findIndexed","f$$34","xs$$57","x$$33","xs$$58","_arg1$$12","x$$34","xs$$69","i$$13","_arg1$$13","f$$42","xs$$71","xs$$72","acc$$17","x$$37","choose","f$$44","xs$$74","xs$$75","acc$$18","x$$39","y$$10","contains","eq","loop$$1","$xs$$76$$162","xs$$76","f$$47","_arg1$$16","exists","$f$$51$$180","$_arg1$$18$$181","f$$51","_arg1$$18","sortBy","xs$$90","comparer$$3","xs$$92","xs$$91","x$$50","y$$18","sortByDescending","projection$$1","xs$$96","xs$$98","xs$$97","x$$52","y$$20","sum","xs$$102","adder","acc$$21","x$$53","maxBy","projection$$2","xs$$104","comparer$$11","x$$55","y$$21","li","comparer$$12","x$$56","y$$22","minBy","projection$$3","xs$$105","x$$57","y$$23","skipWhile","$predicate$$243","$xs$$120$$244","$target$$245","t$$4","xs$$120","takeSplitAux","$error$$246","$i$$21$$247","$acc$$25$$248","$xs$$121$$249","i$$21","acc$$25","xs$$121","i$$30","xs$$129","$target$$260","i$$33","xs$$131","outOfRange","lower","upper","xs$$132","lower$$1","defaultArg","hasUpper","lastIndex","state$$13","i$$34","acc$$26","x$$67","projection$$5","xs$$139","eq$$4","createMutable$$1","matchValue$$16","addToDict","result$$1","xs$$141","key$$1","pairwise","xs$$145","pairwise$$1","windowed","i$$35","usercount","indexNotFoundMsg","array1","cons","ArrayBuffer","isView","len1","len2","newArray","fill","targetIndex","getSubArray","array$$3","start$$1","count$$2","array$$5","array$$6","cons$$1","target$$1","delegateArg0","delegateArg1","cons$$2","len$$1","target$$2","i$$4","x$$1","map2","source1$$1","source2$$1","cons$$4","i$$6","cons$$9","arr$$4","arrays$$1","totalIdx","totalLength","arr$$5","result$$4","idx$$1","arr$$6","array$$26","cons$$11","eq$$5","dict$$1","keys$$1","idx$$3","key$$2","result$$6","key$$3","array$$28","initialize","count$$8","initializer","cons$$15","result$$7","array$$30","count$$9","result$$8","i$$14","replicate","count$$10","cons$$16","result$$9","i$$15","copy","array$$31","cons$$17","array$$33","cons$$18","array$$35","count$$11","array$$39","cons$$21","count$$12","predicate$$7","array$$41","cons$$23","count$$14","count$$15","take","count$$16","array$$43","cons$$25","predicate$$13","array$$61","findIndexBack","predicate$$22","array$$72","loop$$6","$i$$27$$164","i$$27","tryFindIndexBack","predicate$$23","array$$73","loop$$7","$i$$28$$167","i$$28","chooser$$2","array$$74","cons$$30","arr$$7","option$$1","value$$15","folder$$4","state$$6","array$$78","delegateArg0$$2","delegateArg1$$2","action$$1","array$$81","i$$31","permute","f$$8","array$$85","isValid","res$$7","checkFlags","Int32Array","j$$1","every","projection$$4","xs$$4","comparer$$4","xs$$5","x$$14","y$$4","y$$6","sortWith","xs$$10","xs$$11","zip","array1$$4","array2$$4","result$$10","len$$15","i$$38","chunkBySize","array$$97","result$$12","x$$18","ceil","start$$8","compareWith","array1$$6","array2$$6","i$$40","result$$13","length1","length2","equalsWith","array1$$7","array2$$7","tryItem","index$$6","array$$109","reduction","array$$114","array$$120","i$$44","projection$$6","array$$121","adder$$1","i$$45","projection$$7","x$$25","y$$11","source$$6","cons$$31","source$$7","cons$$32","source$$8","len$$17","target$$6","i$$48","source$$9","res$$9","len$$18","max$$1","comparePrimitives","i$$49","splitInto","array$$124","result$$14","chunks$$1","min$$1","minChunkSize","chunksWithExtraItem","i$$50","chunkSize$$1","start$$11","slice$$1","precision","minimumFractionDigits","maximumFractionDigits","formatNumber","signDisplay","marked","directive","bind","el","binding","innerHTML","LayoutPlugin","TabsPlugin","FormTextareaPlugin","TooltipPlugin","BTable","BFormSelect","library","faSpinner","faGlobe","faCaretDown","FontAwesomeIcon","productionTip","MutableSet$00601","MutableSet$00601$$Add$$2B595","MutableSet$00601$$$$002Ector$$Z6150332D","MutableSet$00601$$TryFindIndex$$2B595","MutableSet$00601$$Clear","MutableSet$00601$$get_Count","$target$$16","MutableSet$00601$$Contains$$2B595","$target$$19","MutableSet$00601$$Remove$$2B595","$target$$22","values$$1","value$$2","i$$8","item$$3","this$$$17","add_","SetTree$00601","SetTreeModule$$$SetOne","SetTreeModule$$$SetNode","SetTreeModule$$$height","SetTreeModule$$$tolerance","SetTreeModule$$$mk","l$$2","r$$2","SetTreeModule$$$rebalance","SetTreeModule$$$add","t$$1","SetTreeModule$$$mem","$comparer$$4$$35","$k$$5$$36","$t$$5$$37","t$$5","SetTreeModule$002ESetIterator$00601","SetTreeModule$$$collapseLHS","$stack$$104","SetTreeModule$$$mkIterator","s$$13","SetTreeModule$$$notStarted","SetTreeModule$$$alreadyFinished","SetTreeModule$$$current","SetTreeModule$$$moveNext","SetTreeModule$002EmkIEnumerator$00601","s$$14","SetTreeModule$002EmkIEnumerator$00601$$$$002Ector$$Z5B395D56","SetTreeModule$$$mkIEnumerator","s$$15","SetTreeModule$$$compareStacks","$comparer$$17$$112","$l1$$113","$l2$$114","$target$$115","t1$$6","t2$$6","n1k","n2k","t1$$7","t2$$7","n1k$$1","n2k$$1","n2r","t1$$8","t2$$8","emp","n1k$$2","n1r","n2k$$2","t1$$9","t2$$9","n1k$$3","n1r$$1","n2k$$3","n2r$$1","t1$$10","t2$$10","n1k$$4","t1$$11","n1k$$5","n1l","n1r$$2","t1$$12","n2k$$4","t2$$11","n2k$$5","n2l","n2r$$2","t2$$12","l1","l2","SetTreeModule$$$compare","SetTreeModule$$$mkFromEnumerator","$comparer$$19$$126","$acc$$11$$127","$e$$128","SetTreeModule$$$ofSeq","c$$11","SetTreeModule$$$ofArray","FSharpSet","FSharpSet$$$$002Ector$$2528C5CB","FSharpSet$$get_Comparer","__$$4","FSharpSet$$get_Tree","FSharpSet$$Contains$$2B595","s$$23","x$$11","x$$23","s$$34","comparer$$28","arr$$2","comparer$$29","comparer$$31","MutableSet$002400601$0024$0024$0024$0024002Ector$0024$0024Z6150332D","x$$21","x$$22","that$$1","s$$32","otherParser","skipped","keep","others","digits","jint","dot","digitsLeft","jfloat","negativeJFloat","negJint","escape","escapedCharSnippet","anyCharSnippet","normalCharSnippet","stringLiteral","withWhitespace","jnull","jbool","jnumber","jstring","jarray","leftBracket","rightBracket","arrayValue","comma","keyValues","jobject","leftBrace","rightBrace","jvalue","isObjectLiteral","isDateOffset","dateOffset","isBigInt","bigInt","activePatternResult14213","activePatternResult14212","number","activePatternResult14211","activePatternResult14210","activePatternResult14209","parseNative'","activePatternResult14208","object","parsed","VueI18Next","detectionOptions","order","lookupLocalStorage","lookupFromPathIndex","setHighchartsOptions","Highcharts","setOptions","global","useUTC","loading","months","shortMonths","weekdays","rangeSelectorFrom","rangeSelectorTo","rangeSelectorZoom","resetZoom","resetZoomTitle","thousandsSep","decimalPoint","dateFormats","W","getWeek","weekStartsOn","LanguageDetector","process","fallbackLng","returnObjects","resources","mk","translation","sq","detection","time","dateFormat","services","pluralResolver","addRule","numbers","plurals","Number","setItem","Intl","NumberFormat","validByRisk","BigNat","bound","BigNatModule$002EFFT$$$pow32","$x$$1","$n$$2","BigNatModule$002EFFT$$$patternInput$004075","BigNatModule$002EFFT$$$maxTwoPower","BigNatModule$$$bound","n$$10","BigNatModule$$$coeff","n$$12","i$$5","BigNatModule$$$coeff64","n$$13","fromInteger","BigNatModule$$$setCoeff","n$$14","i$$7","v$$4","BigNatModule$$$pow64","$x$$23$$48","$n$$15$$49","n$$15","op_Multiply","BigNatModule$$$pow32","$x$$24$$50","$n$$16$$51","n$$16","BigNatModule$$$hash","n$$17","BigNatModule$$$maxInt","b$$2","BigNatModule$$$baseBits","BigNatModule$$$baseN","BigNatModule$$$baseMask","BigNatModule$$$baseNi64","BigNatModule$$$baseMaski64","BigNatModule$$$divbase","BigNatModule$$$modbase","x$$26","BigNatModule$$$createN","b$$4","BigNatModule$$$copyN","x$$27","BigNatModule$$$normN","n$$18","findLeastBound","$na$$62","$i$$9$$63","na","bound$$1","BigNatModule$$$boundInt","BigNatModule$$$boundInt64","BigNatModule$$$embed","x$$28","r$$3","BigNatModule$$$embed64","r$$4","toInt","op_Modulus","op_Division","BigNatModule$$$eval32","n$$19","i$$12","BigNatModule$$$one","BigNatModule$$$zero","BigNatModule$$$degree","n$$24","BigNatModule$$$addP","$i$$16$$75","$n$$25$$76","$c$$77","$p$$78","$q$$79","$r$$5$$80","i$$16","n$$25","q","r$$5","BigNatModule$$$add","p$$1","q$$1","rbound","r$$6","BigNatModule$$$isZero","p$$4","BigNatModule$$$equal","p$$7","q$$4","check","$pa$$96","$qa$$97","$i$$22$$98","pa","qa","i$$22","BigNatModule$$$shiftCompare","p$$8","pn","q$$5","qn","check$$1","$pa$$1$$103","$qa$$1$$104","$i$$23$$105","pa$$1","qa$$1","i$$23","pai","qai","BigNatModule$$$compare","p$$9","q$$6","check$$2","$pa$$2$$108","$qa$$2$$109","$i$$24$$110","pa$$2","qa$$2","i$$24","BigNatModule$$$lt","p$$10","q$$7","BigNatModule$$$mulSchoolBookBothSmall","p$$15","q$$11","r$$11","rak","op_BitwiseAnd","BigNatModule$$$mulSchoolBookCarry","$r$$12$$130","$c$$8$$131","$k$$4$$132","r$$12","rak$$1","op_Addition","BigNatModule$$$mulSchoolBookOneSmall","p$$16","q$$12","value$$3","bp","rbound$$3","r$$13","q$$13","rak$$2","BigNatModule$$$mulSchoolBookNeitherSmall","p$$17","q$$14","value$$4","rbound$$4","r$$14","i$$29","pai$$1","qaj","rak$$3","BigNatModule$$$mulSchoolBook","p$$18","q$$15","pSmall","qSmall","BigNatModule$002Eencoding","bigL","twoToBigL","bigK","bigN","splits","BigNatModule$$$mkEncoding","bigK$$2","BigNatModule$$$table","i$$32","BigNatModule$$$mul","p$$20","q$$17","BigNatModule$$$scaleSubInPlace","a$$5","n$$30","j$$4","z$$7","zLo","value$$6","x$$59","value$$5","zHi","x$$60","BigNatModule$$$scaleAddInPlace","x$$62","a$$8","n$$32","patternInput$$4","j$$5","z$$8","zLo$$1","value$$8","x$$64","value$$7","zHi$$1","x$$65","BigNatModule$$$removeFactor","a$$11","n$$34","patternInput$$6","f64","f64$$1","lte","BigNatModule$$$divmod","b$$7","a$$12","x$$68","d$$6","p$$21","n$$35","Invariant","f$$7","BigNatModule$$$toFloat","n$$40","basef","evalFloat","$acc$$4$$219","$k$$10$$220","$i$$49$$221","BigNatModule$$$ofInt32","n$$41","BigNatModule$$$ofInt64","n$$42","BigNatModule$$$toString","n$$45","degn","route","$prior$$227","$k$$11$$228","$ten2k$$229","prior","ten2k","kten2ks","isLeading","n$$46","patternInput$$13","digits$$1","digits$$2","digits$$3","n$$47","int32ToString","digits$$4","BigNatModule$$$ofString","ten","build","$acc$$5$$235","$i$$50$$236","c$$12","d$$7","charCodeAt","BigNatModule$$$isSmall","n$$48","BigNatModule$$$getSmall","n$$49","BigInteger","signInt","BigInteger$$$$002Ector$$Z2BE94A1","BigInteger$$$nat$$Z67CCE57D","n$$1","BigNatModule$0024$0024$0024isSmall","BigNatModule$0024$0024$0024getSmall","smallLim","smallPosTab","BigInteger$$$posn$$Z67CCE57D","n$$3","BigInteger$$$negn$$Z67CCE57D","n$$4","BigInteger$$get_SignInt","BigInteger$$get_V","BigInteger$$$op_Equality$$56F059C0","x$$3","$target$$12","BigNatModule$0024$0024$0024equal","BigNatModule$0024$0024$0024isZero","BigInteger$$$op_LessThan$$56F059C0","$target$$17","BigNatModule$0024$0024$0024lt","BigInteger$$$compare$$56F059C0","n$$5","nn","BigInteger$$$hash$$Z665282C2","BigNatModule$0024$0024$0024hash","BigInteger$$$$002Ector$$Z524259A4","n$$6","BigNatModule$0024$0024$0024ofInt32","BigNatModule$0024$0024$0024ofInt64","op_UnaryNegation","op_UnaryNegation_Int32","BigInteger$$$$002Ector$$Z524259C1","n$$7","BigNatModule$0024$0024$0024add","BigNatModule$0024$0024$0024one","BigInteger$$$get_One","one","BigInteger$$$get_Two","two","BigInteger$$$get_Zero","zero","BigInteger$$get_ToDouble","matchValue$$12","BigNatModule$0024$0024$0024toFloat","BigInteger$$get_ToDecimal","x$$40","Decimal","BigInteger$$$Parse$$Z721C83C5","text$$1","matchValue$$13","BigNatModule$0024$0024$0024ofString","x$$7","BigNatModule$0024$0024$0024toString","obj$$1","BigInteger$0024$0024$0024Parse$0024$0024Z721C83C5","BigInteger$0024$0024$0024get_Zero","BigInteger$0024$0024$0024get_One","BigInteger$0024$0024$0024get_Two","fromInt32","BigInteger$0024$0024$0024$0024002Ector$0024$0024Z524259C1","BigInteger$0024$0024$0024$0024002Ector$0024$0024Z524259A4","toDecimal","BigInteger$0024$0024get_ToDecimal","guidRegex","smoothScroll","faqAnchor","visualizationId","timeFormatLocale","periods","shortDays","formatLocale","decimal","thousands","grouping","required","description","reuqired","toCamel","$1","scrollTo","history","pushState","primType","prop","info","caseTypes","genArgs","flattenFuncTypes","typeDef","lazyToDelayed","l","_createTypeInfo","resolvedType","activePatternResult14142","( |PrimitiveType|_| )","activePatternResult14141","( |FuncType|_| )","createTypeInfo","activePatternResult14140","( |RecordType|_| )","activePatternResult14139","( |UnionType|_| )","activePatternResult14138","( |EnumType|_| )","activePatternResult14137","( |ListType|_| )","activePatternResult14136","( |ResizeArrayType|_| )","activePatternResult14135","( |HashSetType|_| )","activePatternResult14134","( |ArrayType|_| )","activePatternResult14133","( |TupleType|_| )","activePatternResult14132","( |OptionType|_| )","activePatternResult14131","( |Nullable|_| )","activePatternResult14130","( |SetType|_| )","activePatternResult14129","( |MapType|_| )","keyType","valueType","activePatternResult14128","( |DictionaryType|_| )","activePatternResult14127","( |SeqType|_| )","activePatternResult14126","( |AsyncType|_| )","activePatternResult14125","( |PromiseType|_| )","typeInfoCache","ti","notAnonymousRecord","isPrimitive","enumUnion","publishedByRisk","iter","StockModule","MapModule","require","wrapLabelFormatterWithThis","labelFormatter","lfmt","React","createElement","HighchartsReact","highcharts","containerProps","height","renderChartFromWindow","constructorType","sparklineChart","documentElementId","valid"],"mappings":"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","file":"js/chunk-common.5d75805a.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('VegaChart',{attrs:{\"title\":_vm.$t('charts.ostanizdrav.userPublishedByCount.title'),\"name\":\"userPublishedByCount\",\"data\":_vm.plotData,\"description\":_vm.$t('charts.ostanizdrav.userPublishedByCount.description'),\"faqAnchor\":\"ostanizdrav-userPublishedByCount\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function ($t) {\n return {\n \"$schema\": \"https://vega.github.io/schema/vega-lite/v4.json\",\n \"width\": \"container\",\n \"height\": 250,\n \"data\": {\n \"url\": \"https://ostanizdrav.sledilnik.org/plots/usersByCount.json\"\n },\n \"transform\": [\n {\n \"calculate\": $t('charts.ostanizdrav.userPublishedByCount.tooltip'),\n \"as\": \"tt\"\n }\n ],\n \"layer\": [\n {\n \"encoding\": {\n \"x\": {\n \"title\": $t('charts.ostanizdrav.userPublishedByCount.date'),\n \"timeUnit\": \"utcmonthdate\",\n \"field\": \"date\",\n \"type\": \"temporal\",\n \"axis\": {\n \"labelAngle\": 0,\n \"tickCount\": \"week\",\n \"labelExpr\": \"[timeFormat(datum.value, '%d'), timeFormat(datum.value, '%d') <= '07' ? timeFormat(datum.value, '%b') : '']\",\n \"gridDash\": {\n \"condition\": {\n \"test\": {\n \"field\": \"value\",\n \"timeUnit\": \"day\",\n \"equal\": 1\n },\n \"value\": []\n },\n \"value\": [\n 2,\n 2\n ]\n },\n \"tickDash\": {\n \"condition\": {\n \"test\": {\n \"field\": \"value\",\n \"timeUnit\": \"day\",\n \"equal\": 1\n },\n \"value\": []\n },\n \"value\": [\n 2,\n 2\n ]\n }\n }\n },\n \"y\": {\n \"field\": \"key_count\",\n \"type\": \"quantitative\",\n \"scale\": {\n \"domain\": [\n 0,\n 14\n ]\n },\n \"axis\": {\n \"title\": $t('charts.ostanizdrav.userPublishedByCount.count')\n }\n },\n \"color\": {\n \"title\": $t('charts.ostanizdrav.userPublishedByCount.users'),\n \"field\": \"user_count\",\n \"type\": \"quantitative\"\n }\n },\n \"layer\": [\n {\n \"mark\": \"point\"\n },\n {\n \"selection\": {\n \"label\": {\n \"type\": \"single\",\n \"nearest\": true,\n \"on\": \"mouseover\",\n \"encodings\": [\n \"x\"\n ],\n \"empty\": \"none\"\n }\n },\n \"mark\": \"point\",\n \"encoding\": {\n \"opacity\": {\n \"condition\": {\n \"selection\": \"label\",\n \"value\": 1\n },\n \"value\": 0\n }\n }\n }\n ]\n },\n {\n \"mark\": {\n \"type\": \"line\",\n \"interpolate\": \"monotone\",\n \"point\": true\n },\n \"encoding\": {\n \"x\": {\n \"timeUnit\": \"utcmonthdate\",\n \"field\": \"date\",\n \"type\": \"temporal\"\n },\n \"y\": {\n \"field\": \"average_key_count_per_user\",\n \"type\": \"quantitative\"\n }\n }\n },\n {\n \"transform\": [\n {\n \"filter\": {\n \"selection\": \"label\"\n }\n }\n ],\n \"layer\": [\n {\n \"mark\": {\n \"type\": \"rule\",\n \"color\": \"gray\"\n },\n \"encoding\": {\n \"x\": {\n \"timeUnit\": \"utcmonthdate\",\n \"field\": \"date\",\n \"type\": \"temporal\",\n \"axis\": {\n \"labelAngle\": 0\n }\n }\n }\n },\n {\n \"encoding\": {\n \"text\": {\n \"type\": \"text\",\n \"field\": \"tt\"\n },\n \"x\": {\n \"timeUnit\": \"utcmonthdate\",\n \"field\": \"date\",\n \"type\": \"temporal\",\n \"axis\": {\n \"labelAngle\": 0\n }\n },\n \"y\": {\n \"type\": \"quantitative\",\n \"field\": \"key_count\"\n }\n },\n \"layer\": [\n {\n \"mark\": {\n \"type\": \"text\",\n \"stroke\": \"white\",\n \"strokeWidth\": 2,\n \"align\": \"right\",\n \"dx\": -5,\n \"dy\": -5\n }\n },\n {\n \"mark\": {\n \"type\": \"text\",\n \"align\": \"right\",\n \"dx\": -5,\n \"dy\": -5\n },\n \"encoding\": {\n \"color\": {\n \"type\": \"quantitative\",\n \"field\": \"user_count\",\n \"scale\": {\n \"scheme\": {\n \"name\": \"blues\",\n \"extent\": [\n 0.25,\n 1\n ]\n }\n }\n }\n }\n }\n ]\n }\n ]\n }\n ]\n }\n}","\n \n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserPublishedByCountChart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserPublishedByCountChart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UserPublishedByCountChart.vue?vue&type=template&id=5c5aa6fa&\"\nimport script from \"./UserPublishedByCountChart.vue?vue&type=script&lang=js&\"\nexport * from \"./UserPublishedByCountChart.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoCard.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoCard.vue?vue&type=style&index=0&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/tw-icon.acda4903.svg\";","/**\n * DateTimeOffset functions.\n *\n * Note: Date instances are always DateObjects in local\n * timezone (because JS dates are all kinds of messed up).\n * A local date returns UTC epoc when `.getTime()` is called.\n *\n * Basically; invariant: date.getTime() always return UTC time.\n */\nimport { fromValue, ticksToUnixEpochMilliseconds, unixEpochMillisecondsToTicks } from \"./Long\";\nimport { compareDates, dateOffset, padWithZeros } from \"./Util\";\nexport const offsetRegex = /(?:Z|[+-](\\d+):?([0-5]?\\d)?)\\s*$/;\nexport function dateOffsetToString(offset) {\n const isMinus = offset < 0;\n offset = Math.abs(offset);\n const hours = ~~(offset / 3600000);\n const minutes = (offset % 3600000) / 60000;\n return (isMinus ? \"-\" : \"+\") +\n padWithZeros(hours, 2) + \":\" +\n padWithZeros(minutes, 2);\n}\nexport function dateToHalfUTCString(date, half) {\n const str = date.toISOString();\n return half === \"first\"\n ? str.substring(0, str.indexOf(\"T\"))\n : str.substring(str.indexOf(\"T\") + 1, str.length - 1);\n}\nfunction dateToISOString(d, utc) {\n if (utc) {\n return d.toISOString();\n }\n else {\n // JS Date is always local\n const printOffset = d.kind == null ? true : d.kind === 2 /* Local */;\n return padWithZeros(d.getFullYear(), 4) + \"-\" +\n padWithZeros(d.getMonth() + 1, 2) + \"-\" +\n padWithZeros(d.getDate(), 2) + \"T\" +\n padWithZeros(d.getHours(), 2) + \":\" +\n padWithZeros(d.getMinutes(), 2) + \":\" +\n padWithZeros(d.getSeconds(), 2) + \".\" +\n padWithZeros(d.getMilliseconds(), 3) +\n (printOffset ? dateOffsetToString(d.getTimezoneOffset() * -60000) : \"\");\n }\n}\nfunction dateToISOStringWithOffset(dateWithOffset, offset) {\n const str = dateWithOffset.toISOString();\n return str.substring(0, str.length - 1) + dateOffsetToString(offset);\n}\nfunction dateToStringWithCustomFormat(date, format, utc) {\n return format.replace(/(\\w)\\1*/g, (match) => {\n let rep = Number.NaN;\n switch (match.substring(0, 1)) {\n case \"y\":\n const y = utc ? date.getUTCFullYear() : date.getFullYear();\n rep = match.length < 4 ? y % 100 : y;\n break;\n case \"M\":\n rep = (utc ? date.getUTCMonth() : date.getMonth()) + 1;\n break;\n case \"d\":\n rep = utc ? date.getUTCDate() : date.getDate();\n break;\n case \"H\":\n rep = utc ? date.getUTCHours() : date.getHours();\n break;\n case \"h\":\n const h = utc ? date.getUTCHours() : date.getHours();\n rep = h > 12 ? h % 12 : h;\n break;\n case \"m\":\n rep = utc ? date.getUTCMinutes() : date.getMinutes();\n break;\n case \"s\":\n rep = utc ? date.getUTCSeconds() : date.getSeconds();\n break;\n case \"f\":\n rep = utc ? date.getUTCMilliseconds() : date.getMilliseconds();\n break;\n }\n if (Number.isNaN(rep)) {\n return match;\n }\n else {\n return (rep < 10 && match.length > 1) ? \"0\" + rep : \"\" + rep;\n }\n });\n}\nfunction dateToStringWithOffset(date, format) {\n var _a, _b, _c;\n const d = new Date(date.getTime() + ((_a = date.offset) !== null && _a !== void 0 ? _a : 0));\n if (typeof format !== \"string\") {\n return d.toISOString().replace(/\\.\\d+/, \"\").replace(/[A-Z]|\\.\\d+/g, \" \") + dateOffsetToString(((_b = date.offset) !== null && _b !== void 0 ? _b : 0));\n }\n else if (format.length === 1) {\n switch (format) {\n case \"D\":\n case \"d\": return dateToHalfUTCString(d, \"first\");\n case \"T\":\n case \"t\": return dateToHalfUTCString(d, \"second\");\n case \"O\":\n case \"o\": return dateToISOStringWithOffset(d, ((_c = date.offset) !== null && _c !== void 0 ? _c : 0));\n default: throw new Error(\"Unrecognized Date print format\");\n }\n }\n else {\n return dateToStringWithCustomFormat(d, format, true);\n }\n}\nfunction dateToStringWithKind(date, format) {\n const utc = date.kind === 1 /* UTC */;\n if (typeof format !== \"string\") {\n return utc ? date.toUTCString() : date.toLocaleString();\n }\n else if (format.length === 1) {\n switch (format) {\n case \"D\":\n case \"d\":\n return utc ? dateToHalfUTCString(date, \"first\") : date.toLocaleDateString();\n case \"T\":\n case \"t\":\n return utc ? dateToHalfUTCString(date, \"second\") : date.toLocaleTimeString();\n case \"O\":\n case \"o\":\n return dateToISOString(date, utc);\n default:\n throw new Error(\"Unrecognized Date print format\");\n }\n }\n else {\n return dateToStringWithCustomFormat(date, format, utc);\n }\n}\nexport function toString(date, format, _provider) {\n return date.offset != null\n ? dateToStringWithOffset(date, format)\n : dateToStringWithKind(date, format);\n}\nexport function DateTime(value, kind) {\n const d = new Date(value);\n d.kind = (kind == null ? 0 /* Unspecified */ : kind) | 0;\n return d;\n}\nexport function fromTicks(ticks, kind) {\n ticks = fromValue(ticks);\n kind = kind != null ? kind : 0 /* Unspecified */;\n let date = DateTime(ticksToUnixEpochMilliseconds(ticks), kind);\n // Ticks are local to offset (in this case, either UTC or Local/Unknown).\n // If kind is anything but UTC, that means that the tick number was not\n // in utc, thus getTime() cannot return UTC, and needs to be shifted.\n if (kind !== 1 /* UTC */) {\n date = DateTime(date.getTime() - dateOffset(date), kind);\n }\n return date;\n}\nexport function fromDateTimeOffset(date, kind) {\n var _a;\n switch (kind) {\n case 1 /* UTC */: return DateTime(date.getTime(), 1 /* UTC */);\n case 2 /* Local */: return DateTime(date.getTime(), 2 /* Local */);\n default:\n const d = DateTime(date.getTime() + ((_a = date.offset) !== null && _a !== void 0 ? _a : 0), kind);\n return DateTime(d.getTime() - dateOffset(d), kind);\n }\n}\nexport function getTicks(date) {\n return unixEpochMillisecondsToTicks(date.getTime(), dateOffset(date));\n}\nexport function minValue() {\n // This is \"0001-01-01T00:00:00.000Z\", actual JS min value is -8640000000000000\n return DateTime(-62135596800000, 0 /* Unspecified */);\n}\nexport function maxValue() {\n // This is \"9999-12-31T23:59:59.999Z\", actual JS max value is 8640000000000000\n return DateTime(253402300799999, 0 /* Unspecified */);\n}\nexport function parseRaw(input) {\n if (input === null) {\n throw new Error(\"Value cannot be null when parsing DateTime\");\n }\n if (input.trim() === \"\") {\n throw new Error(\"An empty string is not recognized as a valid DateTime\");\n }\n let date = new Date(input);\n if (isNaN(date.getTime())) {\n // Try to check strings JS Date cannot parse (see #1045, #1422)\n // tslint:disable-next-line:max-line-length\n const m = /^\\s*(\\d+[^\\w\\s:]\\d+[^\\w\\s:]\\d+)?\\s*(\\d+:\\d+(?::\\d+(?:\\.\\d+)?)?)?\\s*([AaPp][Mm])?\\s*([+-]\\d+(?::\\d+)?)?\\s*$/.exec(input);\n if (m != null) {\n let baseDate;\n let timeInSeconds = 0;\n if (m[2] != null) {\n const timeParts = m[2].split(\":\");\n timeInSeconds =\n parseInt(timeParts[0], 10) * 3600 +\n parseInt(timeParts[1] || \"0\", 10) * 60 +\n parseFloat(timeParts[2] || \"0\");\n if (m[3] != null && m[3].toUpperCase() === \"PM\") {\n timeInSeconds += 720;\n }\n }\n if (m[4] != null) { // There's an offset, parse as UTC\n if (m[1] != null) {\n baseDate = new Date(m[1] + \" UTC\");\n }\n else {\n const d = new Date();\n baseDate = new Date(d.getUTCFullYear() + \"/\" + (d.getUTCMonth() + 1) + \"/\" + d.getUTCDate());\n }\n const offsetParts = m[4].substr(1).split(\":\");\n let offsetInMinutes = parseInt(offsetParts[0], 10) * 60 + parseInt(offsetParts[1] || \"0\", 10);\n if (m[4][0] === \"+\") {\n offsetInMinutes *= -1;\n }\n timeInSeconds += offsetInMinutes * 60;\n }\n else {\n if (m[1] != null) {\n baseDate = new Date(m[1]);\n }\n else {\n const d = new Date();\n baseDate = new Date(d.getFullYear() + \"/\" + (d.getMonth() + 1) + \"/\" + d.getDate());\n }\n }\n date = new Date(baseDate.getTime() + timeInSeconds * 1000);\n // correct for daylight savings time\n date = new Date(date.getTime() + (date.getTimezoneOffset() - baseDate.getTimezoneOffset()) * 60000);\n }\n else {\n throw new Error(\"The string is not a valid Date.\");\n }\n }\n return date;\n}\nexport function parse(str, detectUTC = false) {\n const date = parseRaw(str);\n const offset = offsetRegex.exec(str);\n // .NET always parses DateTime as Local if there's offset info (even \"Z\")\n // Newtonsoft.Json uses UTC if the offset is \"Z\"\n const kind = offset != null\n ? (detectUTC && offset[0] === \"Z\" ? 1 /* UTC */ : 2 /* Local */)\n : 0 /* Unspecified */;\n return DateTime(date.getTime(), kind);\n}\nexport function tryParse(v, _refValue) {\n try {\n return [true, parse(v)];\n }\n catch (_err) {\n return [false, minValue()];\n }\n}\nexport function create(year, month, day, h = 0, m = 0, s = 0, ms = 0, kind) {\n const dateValue = kind === 1 /* UTC */\n ? Date.UTC(year, month - 1, day, h, m, s, ms)\n : new Date(year, month - 1, day, h, m, s, ms).getTime();\n if (isNaN(dateValue)) {\n throw new Error(\"The parameters describe an unrepresentable Date.\");\n }\n const date = DateTime(dateValue, kind);\n if (year <= 99) {\n date.setFullYear(year, month - 1, day);\n }\n return date;\n}\nexport function now() {\n return DateTime(Date.now(), 2 /* Local */);\n}\nexport function utcNow() {\n return DateTime(Date.now(), 1 /* UTC */);\n}\nexport function today() {\n return date(now());\n}\nexport function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\nexport function daysInMonth(year, month) {\n return month === 2\n ? (isLeapYear(year) ? 29 : 28)\n : (month >= 8 ? (month % 2 === 0 ? 31 : 30) : (month % 2 === 0 ? 30 : 31));\n}\nexport function toUniversalTime(date) {\n return date.kind === 1 /* UTC */ ? date : DateTime(date.getTime(), 1 /* UTC */);\n}\nexport function toLocalTime(date) {\n return date.kind === 2 /* Local */ ? date : DateTime(date.getTime(), 2 /* Local */);\n}\nexport function specifyKind(d, kind) {\n return create(year(d), month(d), day(d), hour(d), minute(d), second(d), millisecond(d), kind);\n}\nexport function timeOfDay(d) {\n return hour(d) * 3600000\n + minute(d) * 60000\n + second(d) * 1000\n + millisecond(d);\n}\nexport function date(d) {\n return create(year(d), month(d), day(d), 0, 0, 0, 0, d.kind);\n}\nexport function day(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCDate() : d.getDate();\n}\nexport function hour(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCHours() : d.getHours();\n}\nexport function millisecond(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCMilliseconds() : d.getMilliseconds();\n}\nexport function minute(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCMinutes() : d.getMinutes();\n}\nexport function month(d) {\n return (d.kind === 1 /* UTC */ ? d.getUTCMonth() : d.getMonth()) + 1;\n}\nexport function second(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCSeconds() : d.getSeconds();\n}\nexport function year(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCFullYear() : d.getFullYear();\n}\nexport function dayOfWeek(d) {\n return d.kind === 1 /* UTC */ ? d.getUTCDay() : d.getDay();\n}\nexport function dayOfYear(d) {\n const _year = year(d);\n const _month = month(d);\n let _day = day(d);\n for (let i = 1; i < _month; i++) {\n _day += daysInMonth(_year, i);\n }\n return _day;\n}\nexport function add(d, ts) {\n const newDate = DateTime(d.getTime() + ts, d.kind);\n if (d.kind === 2 /* Local */) {\n const oldTzOffset = d.getTimezoneOffset();\n const newTzOffset = newDate.getTimezoneOffset();\n return oldTzOffset !== newTzOffset\n ? DateTime(newDate.getTime() + (newTzOffset - oldTzOffset) * 60000, d.kind)\n : newDate;\n }\n else {\n return newDate;\n }\n}\nexport function addDays(d, v) {\n return add(d, v * 86400000);\n}\nexport function addHours(d, v) {\n return add(d, v * 3600000);\n}\nexport function addMinutes(d, v) {\n return add(d, v * 60000);\n}\nexport function addSeconds(d, v) {\n return add(d, v * 1000);\n}\nexport function addMilliseconds(d, v) {\n return add(d, v);\n}\nexport function addYears(d, v) {\n const newMonth = month(d);\n const newYear = year(d) + v;\n const _daysInMonth = daysInMonth(newYear, newMonth);\n const newDay = Math.min(_daysInMonth, day(d));\n return create(newYear, newMonth, newDay, hour(d), minute(d), second(d), millisecond(d), d.kind);\n}\nexport function addMonths(d, v) {\n let newMonth = month(d) + v;\n let newMonth_ = 0;\n let yearOffset = 0;\n if (newMonth > 12) {\n newMonth_ = newMonth % 12;\n yearOffset = Math.floor(newMonth / 12);\n newMonth = newMonth_;\n }\n else if (newMonth < 1) {\n newMonth_ = 12 + newMonth % 12;\n yearOffset = Math.floor(newMonth / 12) + (newMonth_ === 12 ? -1 : 0);\n newMonth = newMonth_;\n }\n const newYear = year(d) + yearOffset;\n const _daysInMonth = daysInMonth(newYear, newMonth);\n const newDay = Math.min(_daysInMonth, day(d));\n return create(newYear, newMonth, newDay, hour(d), minute(d), second(d), millisecond(d), d.kind);\n}\nexport function subtract(d, that) {\n return typeof that === \"number\"\n ? add(d, -that)\n : d.getTime() - that.getTime();\n}\nexport function toLongDateString(d) {\n return d.toDateString();\n}\nexport function toShortDateString(d) {\n return d.toLocaleDateString();\n}\nexport function toLongTimeString(d) {\n return d.toLocaleTimeString();\n}\nexport function toShortTimeString(d) {\n return d.toLocaleTimeString().replace(/:\\d\\d(?!:)/, \"\");\n}\nexport function equals(d1, d2) {\n return d1.getTime() === d2.getTime();\n}\nexport const compare = compareDates;\nexport const compareTo = compareDates;\nexport function op_Addition(x, y) {\n return add(x, y);\n}\nexport function op_Subtraction(x, y) {\n return subtract(x, y);\n}\nexport function isDaylightSavingTime(x) {\n const jan = new Date(x.getFullYear(), 0, 1);\n const jul = new Date(x.getFullYear(), 6, 1);\n return isDST(jan.getTimezoneOffset(), jul.getTimezoneOffset(), x.getTimezoneOffset());\n}\nfunction isDST(janOffset, julOffset, tOffset) {\n return Math.min(janOffset, julOffset) === tOffset;\n}\nexport default DateTime;\n//# sourceMappingURL=Date.js.map","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('VegaChart',{attrs:{\"title\":_vm.$t('charts.ostanizdrav.published.title'),\"name\":\"published-chart\",\"data\":_vm.plotData,\"description\":_vm.$t('charts.ostanizdrav.published.description'),\"faqAnchor\":\"ostanizdrav-published\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function ($t) {\n return {\n \"$schema\": \"https://vega.github.io/schema/vega-lite/v4.json\",\n \"width\": \"container\",\n \"height\": 250,\n \"data\": {\n \"url\": \"https://ostanizdrav.sledilnik.org/plots/data.json\"\n },\n \"transform\": [\n {\n \"window\": [\n {\n \"op\": \"sum\",\n \"field\": \"published\",\n \"as\": \"sum_published\"\n }\n ]\n }\n ],\n \"layer\": [\n {\n \"encoding\": {\n \"x\": {\n \"title\": $t('charts.ostanizdrav.published.date'),\n \"timeUnit\": \"utcmonthdate\",\n \"field\": \"date\",\n \"type\": \"temporal\",\n \"axis\": {\n \"labelAngle\": 0,\n \"tickCount\": \"week\",\n \"labelExpr\": \"[timeFormat(datum.value, '%d'), timeFormat(datum.value, '%d') <= '07' ? timeFormat(datum.value, '%b') : '']\",\n \"gridDash\": {\n \"condition\": {\n \"test\": {\n \"field\": \"value\",\n \"timeUnit\": \"day\",\n \"equal\": 1\n },\n \"value\": []\n },\n \"value\": [\n 2,\n 2\n ]\n },\n \"tickDash\": {\n \"condition\": {\n \"test\": {\n \"field\": \"value\",\n \"timeUnit\": \"day\",\n \"equal\": 1\n },\n \"value\": []\n },\n \"value\": [\n 2,\n 2\n ]\n }\n }\n },\n \"y\": {\n \"field\": \"published\",\n \"type\": \"quantitative\",\n \"axis\": {\n \"title\": $t('charts.ostanizdrav.published.perDay'),\n \"titleColor\": \"steelblue\"\n }\n },\n \"text\": {\n \"field\": \"published\",\n \"type\": \"quantitative\"\n }\n },\n \"layer\": [\n {\n \"mark\": \"bar\"\n },\n {\n \"mark\": {\n \"type\": \"text\",\n \"color\": \"steelblue\",\n \"align\": \"right\",\n \"baseline\": \"middle\",\n \"fontSize\": 9,\n \"angle\": 90,\n \"dx\": -3,\n \"dy\": -4\n }\n }\n ]\n },\n {\n \"encoding\": {\n \"x\": {\n \"timeUnit\": \"utcmonthdate\",\n \"field\": \"date\",\n \"type\": \"temporal\"\n },\n \"y\": {\n \"field\": \"sum_published\",\n \"type\": \"quantitative\",\n \"axis\": {\n \"title\": $t('charts.ostanizdrav.published.runningTotal'),\n \"titleColor\": \"#b4464b\"\n }\n },\n \"text\": {\n \"field\": \"sum_published\",\n \"type\": \"quantitative\"\n }\n },\n \"layer\": [\n {\n \"mark\": {\n \"type\": \"line\",\n \"interpolate\": \"monotone\",\n \"point\": {\n \"color\": \"#b4464b\"\n },\n \"color\": \"#b4464b\"\n }\n }\n ]\n }\n ],\n \"resolve\": {\n \"scale\": {\n \"y\": \"independent\"\n }\n }\n }\n}","\n \n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublishedChart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublishedChart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PublishedChart.vue?vue&type=template&id=7a4498cb&\"\nimport script from \"./PublishedChart.vue?vue&type=script&lang=js&\"\nexport * from \"./PublishedChart.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module Types\n\ntype ScaleType =\n | Linear\n | Logarithmic\n\ntype RemoteData<'data, 'error> =\n | NotAsked\n | Loading\n | Failure of 'error\n | Success of 'data\n\ntype TestMeasure =\n { ToDate : int option\n Today : int option }\n\ntype TestGroup =\n { Performed : TestMeasure\n Positive : TestMeasure }\n\ntype Tests =\n { Performed : TestMeasure\n Positive : TestMeasure\n Regular : TestGroup\n NsApr20 : TestGroup\n }\n\ntype Cases =\n { ConfirmedToday : int option\n ConfirmedToDate : int option\n RecoveredToDate : int option\n ClosedToDate : int option\n Active : int option\n }\n\ntype Vaccination =\n { Administered : TestMeasure\n Administered2nd : TestMeasure }\n\ntype Treatment =\n { InHospital : int option\n InHospitalToDate : int option\n InICU : int option\n Critical : int option\n DeceasedToDate : int option\n Deceased : int option\n OutOfHospitalToDate : int option\n OutOfHospital : int option\n RecoveredToDate : int option }\n\ntype AgeGroupKey = {\n AgeFrom : int option\n AgeTo : int option\n } with\n\n member this.Label =\n match this.AgeFrom, this.AgeTo with\n | None, None -> \"\"\n | None, Some b -> sprintf \"0-%d\" b\n | Some a, Some b -> sprintf \"%d-%d\" a b\n | Some a, None -> sprintf \"%d+\" a\n\ntype AgeGroup =\n { GroupKey : AgeGroupKey\n Male : int option\n Female : int option\n All : int option }\n\ntype AgeGroupsList = AgeGroup list\n\ntype StatsDataPoint =\n { DayFromStart : int\n Date : System.DateTime\n Phase : string\n Tests : Tests\n Cases : Cases\n StatePerTreatment : Treatment\n StatePerAgeToDate : AgeGroupsList\n DeceasedPerAgeToDate : AgeGroupsList\n HospitalEmployeePositiveTestsToDate : int option\n RestHomeEmployeePositiveTestsToDate : int option\n RestHomeOccupantPositiveTestsToDate : int option\n UnclassifiedPositiveTestsToDate : int option\n Vaccination : Vaccination\n }\n\ntype StatsData = StatsDataPoint list\n\ntype InfectionSource =\n { FromQuarantine : int option\n Local : int option\n Import : int option\n ImportRelated : int option\n Unknown : int option\n }\n\ntype WeeklyStatsDataPoint =\n { Week : string\n Date : System.DateTime\n DateTo : System.DateTime\n ConfirmedCases : int option\n InvestigatedCases : int option\n HealthcareCases : int option\n SentToQuarantine : int option\n Source : InfectionSource\n ImportedFrom : Map\n }\n\ntype WeeklyStatsData = WeeklyStatsDataPoint[]\n\ntype Municipality =\n { Name : string\n ActiveCases : int option\n ConfirmedToDate : int option\n DeceasedToDate : int option }\n\ntype Region =\n { Name : string\n Municipalities : Municipality list }\n\ntype RegionsDataPoint =\n { Date : System.DateTime\n Regions : Region list }\n\ntype RegionsData = RegionsDataPoint list\n\ntype VisualizationType =\n | MetricsComparison\n | DailyComparison\n | Patients\n | CarePatients\n | Ratios\n | HCenters\n | Hospitals\n | HcCases\n | Tests\n | Cases\n | Spread\n | Regions\n | Regions100k\n | Sources\n | Municipalities\n | SkopjeMunicipalities\n | AgeGroups\n | AgeGroupsTimeline\n | Map\n | RegionMap\n | SkopjeMunMap\n | EuropeMap\n | WorldMap\n | Infections\n | CountriesCasesPer1M\n | CountriesActiveCasesPer1M\n | CountriesDeathsPer1M\n | PhaseDiagram\n | MetricsCorrelation\n\ntype RenderingMode =\n | Normal\n | Embedded of VisualizationType option\n\ntype State =\n {\n ApiEndpoint : string\n Page : string\n Query : obj // URL query parameters\n StatsData : RemoteData\n WeeklyStatsData : RemoteData\n RegionsData : RemoteData\n SkopjeMunicipalitiesData : RemoteData\n RenderingMode : RenderingMode }\n\ntype Visualization = {\n VisualizationType: VisualizationType\n ClassName: string\n ChartTextsGroup: string\n Explicit: bool\n Renderer: State -> Fable.React.ReactElement\n}\n\ntype Msg =\n | StatsDataRequested\n | StatsDataLoaded of RemoteData\n | WeeklyStatsDataRequested\n | WeeklyStatsDataLoaded of RemoteData\n | RegionsDataRequest\n | RegionsDataLoaded of RemoteData\n | SkopjeMunicipalitiesDataRequest\n | SkopjeMunicipalitiesDataLoaded of RemoteData\n","export class CancellationToken {\n constructor(cancelled = false) {\n this._id = 0;\n this._cancelled = cancelled;\n this._listeners = new Map();\n }\n get isCancelled() {\n return this._cancelled;\n }\n cancel() {\n if (!this._cancelled) {\n this._cancelled = true;\n for (const [, listener] of this._listeners) {\n listener();\n }\n }\n }\n addListener(f) {\n const id = this._id;\n this._listeners.set(this._id++, f);\n return id;\n }\n removeListener(id) {\n return this._listeners.delete(id);\n }\n register(f, state) {\n const $ = this;\n const id = this.addListener(state == null ? f : () => f(state));\n return { Dispose() { $.removeListener(id); } };\n }\n}\nexport class OperationCanceledError extends Error {\n constructor() {\n super(\"The operation was canceled\");\n Object.setPrototypeOf(this, OperationCanceledError.prototype);\n }\n}\nexport class Trampoline {\n constructor() {\n this.callCount = 0;\n }\n static get maxTrampolineCallCount() {\n return 2000;\n }\n incrementAndCheck() {\n return this.callCount++ > Trampoline.maxTrampolineCallCount;\n }\n hijack(f) {\n this.callCount = 0;\n setTimeout(f, 0);\n }\n}\nexport function protectedCont(f) {\n return (ctx) => {\n if (ctx.cancelToken.isCancelled) {\n ctx.onCancel(new OperationCanceledError());\n }\n else if (ctx.trampoline.incrementAndCheck()) {\n ctx.trampoline.hijack(() => {\n try {\n f(ctx);\n }\n catch (err) {\n ctx.onError(err);\n }\n });\n }\n else {\n try {\n f(ctx);\n }\n catch (err) {\n ctx.onError(err);\n }\n }\n };\n}\nexport function protectedBind(computation, binder) {\n return protectedCont((ctx) => {\n computation({\n onSuccess: (x) => {\n try {\n binder(x)(ctx);\n }\n catch (ex) {\n ctx.onError(ex);\n }\n },\n onError: ctx.onError,\n onCancel: ctx.onCancel,\n cancelToken: ctx.cancelToken,\n trampoline: ctx.trampoline,\n });\n });\n}\nexport function protectedReturn(value) {\n return protectedCont((ctx) => ctx.onSuccess(value));\n}\nexport class AsyncBuilder {\n Bind(computation, binder) {\n return protectedBind(computation, binder);\n }\n Combine(computation1, computation2) {\n return this.Bind(computation1, () => computation2);\n }\n Delay(generator) {\n return protectedCont((ctx) => generator()(ctx));\n }\n For(sequence, body) {\n const iter = sequence[Symbol.iterator]();\n let cur = iter.next();\n return this.While(() => !cur.done, this.Delay(() => {\n const res = body(cur.value);\n cur = iter.next();\n return res;\n }));\n }\n Return(value) {\n return protectedReturn(value);\n }\n ReturnFrom(computation) {\n return computation;\n }\n TryFinally(computation, compensation) {\n return protectedCont((ctx) => {\n computation({\n onSuccess: (x) => {\n compensation();\n ctx.onSuccess(x);\n },\n onError: (x) => {\n compensation();\n ctx.onError(x);\n },\n onCancel: (x) => {\n compensation();\n ctx.onCancel(x);\n },\n cancelToken: ctx.cancelToken,\n trampoline: ctx.trampoline,\n });\n });\n }\n TryWith(computation, catchHandler) {\n return protectedCont((ctx) => {\n computation({\n onSuccess: ctx.onSuccess,\n onCancel: ctx.onCancel,\n cancelToken: ctx.cancelToken,\n trampoline: ctx.trampoline,\n onError: (ex) => {\n try {\n catchHandler(ex)(ctx);\n }\n catch (ex2) {\n ctx.onError(ex2);\n }\n },\n });\n });\n }\n Using(resource, binder) {\n return this.TryFinally(binder(resource), () => resource.Dispose());\n }\n While(guard, computation) {\n if (guard()) {\n return this.Bind(computation, () => this.While(guard, computation));\n }\n else {\n return this.Return(void 0);\n }\n }\n Zero() {\n return protectedCont((ctx) => ctx.onSuccess(void 0));\n }\n}\nexport const singleton = new AsyncBuilder();\n//# sourceMappingURL=AsyncBuilder.js.map","import { OperationCanceledError, Trampoline } from \"./AsyncBuilder\";\nimport { CancellationToken } from \"./AsyncBuilder\";\nimport { protectedCont } from \"./AsyncBuilder\";\nimport { protectedBind } from \"./AsyncBuilder\";\nimport { protectedReturn } from \"./AsyncBuilder\";\nimport { choice1Of2, choice2Of2 } from \"./Option\";\nimport { map } from \"./Seq\";\n// Implemented just for type references\nexport class Async {\n}\nfunction emptyContinuation(_x) {\n // NOP\n}\n// MakeAsync: body:(AsyncActivation<'T> -> AsyncReturn) -> Async<'T>\nexport function makeAsync(body) {\n return body;\n}\n// Invoke: computation: Async<'T> -> ctxt:AsyncActivation<'T> -> AsyncReturn\nexport function invoke(computation, ctx) {\n return computation(ctx);\n}\n// CallThenInvoke: ctxt:AsyncActivation<'T> -> result1:'U -> part2:('U -> Async<'T>) -> AsyncReturn\nexport function callThenInvoke(ctx, result1, part2) {\n return part2(result1)(ctx);\n}\n// Bind: ctxt:AsyncActivation<'T> -> part1:Async<'U> -> part2:('U -> Async<'T>) -> AsyncReturn\nexport function bind(ctx, part1, part2) {\n return protectedBind(part1, part2)(ctx);\n}\nexport function createCancellationToken(arg) {\n const token = new CancellationToken(typeof arg === \"boolean\" ? arg : false);\n if (typeof arg === \"number\") {\n setTimeout(() => { token.cancel(); }, arg);\n }\n return token;\n}\nexport function cancel(token) {\n token.cancel();\n}\nexport function cancelAfter(token, ms) {\n setTimeout(() => { token.cancel(); }, ms);\n}\nexport function isCancellationRequested(token) {\n return token != null && token.isCancelled;\n}\nexport function startChild(computation) {\n const promise = startAsPromise(computation);\n // JS Promises are hot, computation has already started\n // but we delay returning the result\n return protectedCont((ctx) => protectedReturn(awaitPromise(promise))(ctx));\n}\nexport function awaitPromise(p) {\n return fromContinuations((conts) => p.then(conts[0]).catch((err) => (err instanceof OperationCanceledError\n ? conts[2] : conts[1])(err)));\n}\nexport function cancellationToken() {\n return protectedCont((ctx) => ctx.onSuccess(ctx.cancelToken));\n}\nexport const defaultCancellationToken = new CancellationToken();\nexport function catchAsync(work) {\n return protectedCont((ctx) => {\n work({\n onSuccess: (x) => ctx.onSuccess(choice1Of2(x)),\n onError: (ex) => ctx.onSuccess(choice2Of2(ex)),\n onCancel: ctx.onCancel,\n cancelToken: ctx.cancelToken,\n trampoline: ctx.trampoline,\n });\n });\n}\nexport function fromContinuations(f) {\n return protectedCont((ctx) => f([ctx.onSuccess, ctx.onError, ctx.onCancel]));\n}\nexport function ignore(computation) {\n return protectedBind(computation, (_x) => protectedReturn(void 0));\n}\nexport function parallel(computations) {\n return awaitPromise(Promise.all(map((w) => startAsPromise(w), computations)));\n}\nexport function sleep(millisecondsDueTime) {\n return protectedCont((ctx) => {\n let tokenId;\n const timeoutId = setTimeout(() => {\n ctx.cancelToken.removeListener(tokenId);\n ctx.onSuccess(void 0);\n }, millisecondsDueTime);\n tokenId = ctx.cancelToken.addListener(() => {\n clearTimeout(timeoutId);\n ctx.onCancel(new OperationCanceledError());\n });\n });\n}\nexport function start(computation, cancellationToken) {\n return startWithContinuations(computation, cancellationToken);\n}\nexport function startImmediate(computation, cancellationToken) {\n return start(computation, cancellationToken);\n}\nexport function startWithContinuations(computation, continuation, exceptionContinuation, cancellationContinuation, cancelToken) {\n if (typeof continuation !== \"function\") {\n cancelToken = continuation;\n continuation = undefined;\n }\n const trampoline = new Trampoline();\n computation({\n onSuccess: continuation ? continuation : emptyContinuation,\n onError: exceptionContinuation ? exceptionContinuation : emptyContinuation,\n onCancel: cancellationContinuation ? cancellationContinuation : emptyContinuation,\n cancelToken: cancelToken ? cancelToken : defaultCancellationToken,\n trampoline,\n });\n}\nexport function startAsPromise(computation, cancellationToken) {\n return new Promise((resolve, reject) => startWithContinuations(computation, resolve, reject, reject, cancellationToken ? cancellationToken : defaultCancellationToken));\n}\nexport default Async;\n//# sourceMappingURL=Async.js.map","import { tryValueIfChoice1Of2, tryValueIfChoice2Of2, value } from \"./Option\";\nexport class Observer {\n constructor(onNext, onError, onCompleted) {\n this.OnNext = onNext;\n this.OnError = onError || ((_e) => { return; });\n this.OnCompleted = onCompleted || (() => { return; });\n }\n}\nclass Observable {\n constructor(subscribe) {\n this.Subscribe = subscribe;\n }\n}\nexport function protect(f, succeed, fail) {\n try {\n return succeed(f());\n }\n catch (e) {\n fail(e);\n }\n}\nexport function add(callback, source) {\n source.Subscribe(new Observer(callback));\n}\nexport function choose(chooser, source) {\n return new Observable((observer) => source.Subscribe(new Observer((t) => protect(() => chooser(t), (u) => { if (u != null) {\n observer.OnNext(value(u));\n } }, observer.OnError), observer.OnError, observer.OnCompleted)));\n}\nexport function filter(predicate, source) {\n return choose((x) => predicate(x) ? x : null, source);\n}\nexport function map(mapping, source) {\n return new Observable((observer) => source.Subscribe(new Observer((t) => {\n protect(() => mapping(t), observer.OnNext, observer.OnError);\n }, observer.OnError, observer.OnCompleted)));\n}\nexport function merge(source1, source2) {\n return new Observable((observer) => {\n let stopped = false;\n let completed1 = false;\n let completed2 = false;\n const h1 = source1.Subscribe(new Observer((v) => { if (!stopped) {\n observer.OnNext(v);\n } }, (e) => {\n if (!stopped) {\n stopped = true;\n observer.OnError(e);\n }\n }, () => {\n if (!stopped) {\n completed1 = true;\n if (completed2) {\n stopped = true;\n observer.OnCompleted();\n }\n }\n }));\n const h2 = source2.Subscribe(new Observer((v) => { if (!stopped) {\n observer.OnNext(v);\n } }, (e) => {\n if (!stopped) {\n stopped = true;\n observer.OnError(e);\n }\n }, () => {\n if (!stopped) {\n completed2 = true;\n if (completed1) {\n stopped = true;\n observer.OnCompleted();\n }\n }\n }));\n return {\n Dispose() {\n h1.Dispose();\n h2.Dispose();\n },\n };\n });\n}\nexport function pairwise(source) {\n return new Observable((observer) => {\n let last;\n return source.Subscribe(new Observer((next) => {\n if (last != null) {\n observer.OnNext([last, next]);\n }\n last = next;\n }, observer.OnError, observer.OnCompleted));\n });\n}\nexport function partition(predicate, source) {\n return [filter(predicate, source), filter((x) => !predicate(x), source)];\n}\nexport function scan(collector, state, source) {\n return new Observable((observer) => {\n return source.Subscribe(new Observer((t) => {\n protect(() => collector(state, t), (u) => { state = u; observer.OnNext(u); }, observer.OnError);\n }, observer.OnError, observer.OnCompleted));\n });\n}\nexport function split(splitter, source) {\n return [\n choose((v) => tryValueIfChoice1Of2(splitter(v)), source),\n choose((v) => tryValueIfChoice2Of2(splitter(v)), source)\n ];\n}\nexport function subscribe(callback, source) {\n return source.Subscribe(new Observer(callback));\n}\n//# sourceMappingURL=Observable.js.map","import { Observer, protect } from \"./Observable\";\nimport { some, tryValueIfChoice1Of2, tryValueIfChoice2Of2, value } from \"./Option\";\nimport { iterate as seqIterate } from \"./Seq\";\nexport class Event {\n constructor(_subscriber, delegates) {\n this._subscriber = _subscriber;\n this.delegates = delegates || new Array();\n }\n Add(f) {\n this._addHandler(f);\n }\n // IEvent methods\n get Publish() {\n return this;\n }\n Trigger(value) {\n seqIterate((f) => f(value), this.delegates);\n }\n // IDelegateEvent methods\n AddHandler(handler) {\n if (this._dotnetDelegates == null) {\n this._dotnetDelegates = new Map();\n }\n const f = (x) => handler(null, x);\n this._dotnetDelegates.set(handler, f);\n this._addHandler(f);\n }\n RemoveHandler(handler) {\n if (this._dotnetDelegates != null) {\n const f = this._dotnetDelegates.get(handler);\n if (f != null) {\n this._dotnetDelegates.delete(handler);\n this._removeHandler(f);\n }\n }\n }\n // IObservable methods\n Subscribe(arg) {\n return typeof arg === \"function\"\n ? this._subscribeFromCallback(arg)\n : this._subscribeFromObserver(arg);\n }\n _addHandler(f) {\n this.delegates.push(f);\n }\n _removeHandler(f) {\n const index = this.delegates.indexOf(f);\n if (index > -1) {\n this.delegates.splice(index, 1);\n }\n }\n _subscribeFromObserver(observer) {\n if (this._subscriber) {\n return this._subscriber(observer);\n }\n const callback = observer.OnNext;\n this._addHandler(callback);\n return { Dispose: () => { this._removeHandler(callback); } };\n }\n _subscribeFromCallback(callback) {\n this._addHandler(callback);\n return { Dispose: () => { this._removeHandler(callback); } };\n }\n}\nexport function add(callback, sourceEvent) {\n sourceEvent.Subscribe(new Observer(callback));\n}\nexport function choose(chooser, sourceEvent) {\n const source = sourceEvent;\n return new Event((observer) => source.Subscribe(new Observer((t) => protect(() => chooser(t), (u) => { if (u != null) {\n observer.OnNext(value(u));\n } }, observer.OnError), observer.OnError, observer.OnCompleted)), source.delegates);\n}\nexport function filter(predicate, sourceEvent) {\n return choose((x) => predicate(x) ? some(x) : undefined, sourceEvent);\n}\nexport function map(mapping, sourceEvent) {\n const source = sourceEvent;\n return new Event((observer) => source.Subscribe(new Observer((t) => protect(() => mapping(t), observer.OnNext, observer.OnError), observer.OnError, observer.OnCompleted)), source.delegates);\n}\nexport function merge(event1, event2) {\n const source1 = event1;\n const source2 = event2;\n return new Event((observer) => {\n let stopped = false;\n let completed1 = false;\n let completed2 = false;\n const h1 = source1.Subscribe(new Observer((v) => { if (!stopped) {\n observer.OnNext(v);\n } }, (e) => {\n if (!stopped) {\n stopped = true;\n observer.OnError(e);\n }\n }, () => {\n if (!stopped) {\n completed1 = true;\n if (completed2) {\n stopped = true;\n observer.OnCompleted();\n }\n }\n }));\n const h2 = source2.Subscribe(new Observer((v) => { if (!stopped) {\n observer.OnNext(v);\n } }, (e) => {\n if (!stopped) {\n stopped = true;\n observer.OnError(e);\n }\n }, () => {\n if (!stopped) {\n completed2 = true;\n if (completed1) {\n stopped = true;\n observer.OnCompleted();\n }\n }\n }));\n return {\n Dispose() {\n h1.Dispose();\n h2.Dispose();\n },\n };\n }, source1.delegates.concat(source2.delegates));\n}\nexport function pairwise(sourceEvent) {\n const source = sourceEvent;\n return new Event((observer) => {\n let last;\n return source.Subscribe(new Observer((next) => {\n if (last != null) {\n observer.OnNext([last, next]);\n }\n last = next;\n }, observer.OnError, observer.OnCompleted));\n }, source.delegates);\n}\nexport function partition(predicate, sourceEvent) {\n return [filter(predicate, sourceEvent), filter((x) => !predicate(x), sourceEvent)];\n}\nexport function scan(collector, state, sourceEvent) {\n const source = sourceEvent;\n return new Event((observer) => {\n return source.Subscribe(new Observer((t) => {\n protect(() => collector(state, t), (u) => { state = u; observer.OnNext(u); }, observer.OnError);\n }, observer.OnError, observer.OnCompleted));\n }, source.delegates);\n}\nexport function split(splitter, sourceEvent) {\n return [\n choose((v) => tryValueIfChoice1Of2(splitter(v)), sourceEvent),\n choose((v) => tryValueIfChoice2Of2(splitter(v)), sourceEvent),\n ];\n}\nexport default Event;\n//# sourceMappingURL=Event.js.map","import Event from \"./Event\";\nexport class Timer {\n constructor(interval) {\n this._enabled = false;\n this._isDisposed = false;\n this._intervalId = 0;\n this._timeoutId = 0;\n this.Interval = interval && interval > 0 ? interval : 100;\n this.AutoReset = true;\n this._elapsed = new Event();\n }\n get Elapsed() {\n return this._elapsed;\n }\n get Enabled() {\n return this._enabled;\n }\n set Enabled(x) {\n if (!this._isDisposed && this._enabled !== x) {\n this._enabled = x;\n if (this._enabled) {\n if (this.AutoReset) {\n this._intervalId = setInterval(() => {\n if (!this.AutoReset) {\n this.Enabled = false;\n }\n this._elapsed.Trigger(new Date());\n }, this.Interval);\n }\n else {\n this._timeoutId = setTimeout(() => {\n this.Enabled = false;\n this._timeoutId = 0;\n if (this.AutoReset) {\n this.Enabled = true;\n }\n this._elapsed.Trigger(new Date());\n }, this.Interval);\n }\n }\n else {\n if (this._timeoutId) {\n clearTimeout(this._timeoutId);\n this._timeoutId = 0;\n }\n if (this._intervalId) {\n clearInterval(this._intervalId);\n this._intervalId = 0;\n }\n }\n }\n }\n Dispose() {\n this.Enabled = false;\n this._isDisposed = true;\n }\n Close() {\n this.Dispose();\n }\n Start() {\n this.Enabled = true;\n }\n Stop() {\n this.Enabled = false;\n }\n}\nexport default Timer;\n//# sourceMappingURL=Timer.js.map","namespace Elmish\n\n(**\nLog\n---------\nBasic cross-platform logging API.\n\n*)\nmodule internal Log =\n\n#if FABLE_COMPILER\n open Fable.Core.JS\n\n let onError (text: string, ex: exn) = console.error (text,ex)\n let toConsole(text: string, o: #obj) = console.log(text,o)\n\n#else\n#if NETSTANDARD2_0\n let onError (text: string, ex: exn) = System.Diagnostics.Trace.TraceError(\"{0}: {1}\", text, ex)\n let toConsole(text: string, o: #obj) = printfn \"%s: %A\" text o\n#else\n let onError (text: string, ex: exn) = System.Console.Error.WriteLine(\"{0}: {1}\", text, ex)\n let toConsole(text: string, o: #obj) = printfn \"%s: %A\" text o\n#endif\n#endif\n\n#if FABLE_COMPILER\nmodule internal Timer =\n open System.Timers\n let delay interval callback =\n let t = new Timer(float interval, AutoReset = false)\n t.Elapsed.Add callback\n t.Enabled <- true\n t.Start()\n#endif\n","(**\nCmd\n---------\nCore abstractions for dispatching messages in Elmish.\n\n*)\n\nnamespace Elmish\n\nopen System\n\n/// Dispatch - feed new message into the processing loop\ntype Dispatch<'msg> = 'msg -> unit\n\n/// Subscription - return immediately, but may schedule dispatch of a message at any time\ntype Sub<'msg> = Dispatch<'msg> -> unit\n\n/// Cmd - container for subscriptions that may produce messages\ntype Cmd<'msg> = Sub<'msg> list\n\n/// Cmd module for creating and manipulating commands\n[]\nmodule Cmd =\n /// Execute the commands using the supplied dispatcher\n let internal exec (dispatch:Dispatch<'msg>) (cmd:Cmd<'msg>) =\n cmd |> List.iter (fun sub -> sub dispatch)\n\n /// None - no commands, also known as `[]`\n let none : Cmd<'msg> =\n []\n\n /// When emitting the message, map to another type\n let map (f: 'a -> 'msg) (cmd: Cmd<'a>) : Cmd<'msg> =\n cmd |> List.map (fun g -> (fun dispatch -> f >> dispatch) >> g)\n\n /// Aggregate multiple commands\n let batch (cmds: #seq>) : Cmd<'msg> =\n cmds |> List.concat\n\n /// Command to call the subscriber\n let ofSub (sub: Sub<'msg>) : Cmd<'msg> =\n [sub]\n\n module OfFunc =\n /// Command to evaluate a simple function and map the result\n /// into success or error (of exception)\n let either (task: 'a -> _) (arg: 'a) (ofSuccess: _ -> 'msg) (ofError: _ -> 'msg) : Cmd<'msg> =\n let bind dispatch =\n try\n task arg\n |> (ofSuccess >> dispatch)\n with x ->\n x |> (ofError >> dispatch)\n [bind]\n\n /// Command to evaluate a simple function and map the success to a message\n /// discarding any possible error\n let perform (task: 'a -> _) (arg: 'a) (ofSuccess: _ -> 'msg) : Cmd<'msg> =\n let bind dispatch =\n try\n task arg\n |> (ofSuccess >> dispatch)\n with x ->\n ()\n [bind]\n\n /// Command to evaluate a simple function and map the error (in case of exception)\n let attempt (task: 'a -> unit) (arg: 'a) (ofError: _ -> 'msg) : Cmd<'msg> =\n let bind dispatch =\n try\n task arg\n with x ->\n x |> (ofError >> dispatch)\n [bind]\n\n /// Command to issue a specific message\n let result (msg:'msg) : Cmd<'msg> =\n [fun dispatch -> dispatch msg]\n\n module OfAsyncWith =\n /// Command that will evaluate an async block and map the result\n /// into success or error (of exception)\n let either (start: Async -> unit) \n (task: 'a -> Async<_>)\n (arg: 'a)\n (ofSuccess: _ -> 'msg)\n (ofError: _ -> 'msg) : Cmd<'msg> =\n let bind dispatch =\n async {\n let! r = task arg |> Async.Catch\n dispatch (match r with\n | Choice1Of2 x -> ofSuccess x\n | Choice2Of2 x -> ofError x)\n }\n [bind >> start]\n\n /// Command that will evaluate an async block and map the success\n let perform (start: Async -> unit) \n (task: 'a -> Async<_>)\n (arg: 'a)\n (ofSuccess: _ -> 'msg) : Cmd<'msg> =\n let bind dispatch =\n async {\n let! r = task arg |> Async.Catch\n match r with\n | Choice1Of2 x -> dispatch (ofSuccess x)\n | _ -> ()\n }\n [bind >> start]\n\n /// Command that will evaluate an async block and map the error (of exception)\n let attempt (start: Async -> unit) \n (task: 'a -> Async<_>)\n (arg: 'a)\n (ofError: _ -> 'msg) : Cmd<'msg> =\n let bind dispatch =\n async {\n let! r = task arg |> Async.Catch\n match r with\n | Choice2Of2 x -> dispatch (ofError x)\n | _ -> ()\n }\n [bind >> start]\n\n /// Command that will evaluate an async block to the message\n let result (start: Async -> unit) \n (task: Async<'msg>) : Cmd<'msg> =\n let bind dispatch =\n async {\n let! r = task |> Async.Catch\n match r with\n | Choice1Of2 x -> dispatch x\n | _ -> ()\n }\n [bind >> start]\n\n module OfAsync =\n#if FABLE_COMPILER\n let start x = Timer.delay 0 (fun _ -> Async.StartImmediate x)\n#else\n let inline start x = Async.Start x\n#endif \n /// Command that will evaluate an async block and map the result\n /// into success or error (of exception)\n let inline either (task: 'a -> Async<_>)\n (arg: 'a)\n (ofSuccess: _ -> 'msg)\n (ofError: _ -> 'msg) : Cmd<'msg> =\n OfAsyncWith.either start task arg ofSuccess ofError\n\n /// Command that will evaluate an async block and map the success\n let inline perform (task: 'a -> Async<_>)\n (arg: 'a)\n (ofSuccess: _ -> 'msg) : Cmd<'msg> =\n OfAsyncWith.perform start task arg ofSuccess\n\n /// Command that will evaluate an async block and map the error (of exception)\n let inline attempt (task: 'a -> Async<_>)\n (arg: 'a)\n (ofError: _ -> 'msg) : Cmd<'msg> =\n OfAsyncWith.attempt start task arg ofError\n\n /// Command that will evaluate an async block to the message\n let inline result (task: Async<'msg>) : Cmd<'msg> =\n OfAsyncWith.result start task\n\n module OfAsyncImmediate =\n /// Command that will evaluate an async block and map the result\n /// into success or error (of exception)\n let inline either (task: 'a -> Async<_>)\n (arg: 'a)\n (ofSuccess: _ -> 'msg)\n (ofError: _ -> 'msg) : Cmd<'msg> =\n OfAsyncWith.either Async.StartImmediate task arg ofSuccess ofError\n\n /// Command that will evaluate an async block and map the success\n let inline perform (task: 'a -> Async<_>)\n (arg: 'a)\n (ofSuccess: _ -> 'msg) : Cmd<'msg> =\n OfAsyncWith.perform Async.StartImmediate task arg ofSuccess\n\n /// Command that will evaluate an async block and map the error (of exception)\n let inline attempt (task: 'a -> Async<_>)\n (arg: 'a)\n (ofError: _ -> 'msg) : Cmd<'msg> =\n OfAsyncWith.attempt Async.StartImmediate task arg ofError\n\n /// Command that will evaluate an async block to the message\n let inline result (task: Async<'msg>) : Cmd<'msg> =\n OfAsyncWith.result Async.StartImmediate task\n\n#if FABLE_COMPILER\n module OfPromise =\n /// Command to call `promise` block and map the results\n let either (task: 'a -> Fable.Core.JS.Promise<_>)\n (arg:'a)\n (ofSuccess: _ -> 'msg)\n (ofError: #exn -> 'msg) : Cmd<'msg> =\n let bind dispatch =\n (task arg)\n .``then``(ofSuccess >> dispatch)\n .catch(unbox >> ofError >> dispatch)\n |> ignore\n [bind]\n\n /// Command to call `promise` block and map the success\n let perform (task: 'a -> Fable.Core.JS.Promise<_>)\n (arg:'a)\n (ofSuccess: _ -> 'msg) =\n let bind dispatch =\n (task arg)\n .``then``(ofSuccess >> dispatch)\n |> ignore\n [bind]\n\n /// Command to call `promise` block and map the error\n let attempt (task: 'a -> Fable.Core.JS.Promise<_>)\n (arg:'a)\n (ofError: #exn -> 'msg) : Cmd<'msg> =\n let bind dispatch =\n (task arg)\n .catch(unbox >> ofError >> dispatch)\n |> ignore\n [bind]\n\n /// Command to dispatch the `promise` result\n let result (task: Fable.Core.JS.Promise<'msg>) =\n let bind dispatch =\n task.``then`` dispatch\n |> ignore\n [bind]\n\n []\n let inline ofPromise (task: 'a -> Fable.Core.JS.Promise<_>)\n (arg:'a)\n (ofSuccess: _ -> 'msg)\n (ofError: _ -> 'msg) : Cmd<'msg> =\n OfPromise.either task arg ofSuccess ofError \n#else\n open System.Threading.Tasks\n module OfTask =\n /// Command to call a task and map the results\n let inline either (task: 'a -> Task<_>)\n (arg:'a)\n (ofSuccess: _ -> 'msg)\n (ofError: _ -> 'msg) : Cmd<'msg> =\n OfAsync.either (task >> Async.AwaitTask) arg ofSuccess ofError\n\n /// Command to call a task and map the success\n let inline perform (task: 'a -> Task<_>)\n (arg:'a)\n (ofSuccess: _ -> 'msg) : Cmd<'msg> =\n OfAsync.perform (task >> Async.AwaitTask) arg ofSuccess\n\n /// Command to call a task and map the error\n let inline attempt (task: 'a -> Task<_>)\n (arg:'a)\n (ofError: _ -> 'msg) : Cmd<'msg> =\n OfAsync.attempt (task >> Async.AwaitTask) arg ofError\n\n /// Command and map the task success\n let inline result (task: Task<'msg>) : Cmd<'msg> =\n OfAsync.result (task |> Async.AwaitTask)\n\n []\n let inline ofTask (task: 'a -> Task<_>)\n (arg:'a)\n (ofSuccess: _ -> 'msg)\n (ofError: _ -> 'msg) : Cmd<'msg> =\n OfTask.either task arg ofSuccess ofError\n#endif\n\n // Synonymous with `OfFunc.result`, may be removed in the future\n let inline ofMsg (msg:'msg) : Cmd<'msg> =\n OfFunc.result msg\n\n []\n let inline ofAsync (task: 'a -> Async<_>)\n (arg: 'a)\n (ofSuccess: _ -> 'msg)\n (ofError: _ -> 'msg) : Cmd<'msg> =\n OfAsync.either task arg ofSuccess ofError\n\n []\n let inline ofFunc (task: 'a -> _) (arg: 'a) (ofSuccess: _ -> 'msg) (ofError: _ -> 'msg) : Cmd<'msg> =\n OfFunc.either task arg ofSuccess ofError\n\n []\n let inline performFunc (task: 'a -> _) (arg: 'a) (ofSuccess: _ -> 'msg) : Cmd<'msg> =\n OfFunc.perform task arg ofSuccess\n\n []\n let attemptFunc (task: 'a -> unit) (arg: 'a) (ofError: _ -> 'msg) : Cmd<'msg> =\n OfFunc.attempt task arg ofError\n\n","namespace Fable.SimpleHttp\r\n\r\nopen System\r\nopen Browser\r\nopen Browser.Types\r\nopen Fable.Core\r\n\r\n#if !FABLE_COMPILER\r\nopen System.Net.Http\r\n#endif\r\n\r\nmodule Blob =\r\n /// Creates a Blob from the given input string\r\n []\r\n let fromText (value: string) : Blob = jsNative\r\n\r\n\r\nmodule File =\r\n /// Creates a File from the given input string and file name\r\n []\r\n let fromText (value: string) (fileName: string) : File = jsNative\r\n\r\n\r\n/// Utility functions to work with blob and file APIs.\r\nmodule FileReader =\r\n /// Asynchronously reads the blob data content as string\r\n let readBlobAsText (blob: Blob) : Async =\r\n Async.FromContinuations <| fun (resolve, _, _) ->\r\n let reader = FileReader.Create()\r\n reader.onload <- fun _ ->\r\n if reader.readyState = FileReaderState.DONE\r\n then resolve (unbox reader.result)\r\n\r\n reader.readAsText(blob)\r\n\r\n /// Asynchronously reads the blob data content as string\r\n let readFileAsText (file: File) : Async =\r\n Async.FromContinuations <| fun (resolve, _, _) ->\r\n let reader = FileReader.Create()\r\n reader.onload <- fun _ ->\r\n if reader.readyState = FileReaderState.DONE\r\n then resolve (unbox reader.result)\r\n\r\n reader.readAsText(file)\r\n\r\nmodule FormData =\r\n\r\n []\r\n /// Creates a new FormData object\r\n let create() : FormData = jsNative\r\n\r\n /// Appends a key-value pair to the form data\r\n let append (key:string) (value:string) (form : FormData) : FormData =\r\n form.append(key, value)\r\n form\r\n\r\n /// Appends a file to the form data\r\n let appendFile (key: string) (file: File) (form: FormData) : FormData =\r\n form.append (key, file)\r\n form\r\n\r\n /// Appends a named file to the form data\r\n let appendNamedFile (key: string) (fileName: string) (file: File) (form: FormData) : FormData =\r\n form.append (key, file, fileName)\r\n form\r\n\r\n /// Appends a blog to the form data\r\n let appendBlob (key: string) (blob: Blob) (form: FormData) : FormData =\r\n form.append (key, blob)\r\n form\r\n\r\n /// Appends a blog to the form data\r\n let appendNamedBlob (key: string) (fileName: string) (blob: Blob) (form: FormData) : FormData =\r\n form.append (key, blob, fileName)\r\n form\r\n\r\nmodule Headers =\r\n let contentType value = Header(\"Content-Type\", value)\r\n let accept value = Header(\"Accept\", value)\r\n let acceptCharset value = Header(\"Accept-Charset\", value)\r\n let acceptEncoding value = Header(\"Accept-Encoding\", value)\r\n let acceptLanguage value = Header(\"Accept-Language\", value)\r\n let acceptDateTime value = Header(\"Accept-Datetime\", value)\r\n let authorization value = Header(\"Authorization\", value)\r\n let cacheControl value = Header(\"Cache-Control\", value)\r\n let connection value = Header(\"Connection\", value)\r\n let cookie value = Header(\"Cookie\", value)\r\n let contentMD5 value = Header(\"Content-MD5\", value)\r\n let date value = Header(\"Date\", value)\r\n let expect value = Header(\"Expect\", value)\r\n let ifMatch value = Header(\"If-Match\", value)\r\n let ifModifiedSince value = Header(\"If-Modified-Since\", value)\r\n let ifNoneMatch value = Header(\"If-None-Match\", value)\r\n let ifRange value = Header(\"If-Range\", value)\r\n let IfUnmodifiedSince value = Header(\"If-Unmodified-Since\", value)\r\n let maxForwards value = Header(\"Max-Forwards\", value)\r\n let origin value = Header (\"Origin\", value)\r\n let pragma value = Header(\"Pragma\", value)\r\n let proxyAuthorization value = Header(\"Proxy-Authorization\", value)\r\n let range value = Header(\"Range\", value)\r\n let referer value = Header(\"Referer\", value)\r\n let userAgent value = Header(\"User-Agent\", value)\r\n let create key value = Header(key, value)\r\n\r\nmodule Http =\r\n\r\n let private defaultRequest =\r\n { url = \"\";\r\n method = HttpMethod.GET\r\n headers = []\r\n withCredentials = false\r\n overridenMimeType = None\r\n overridenResponseType = None\r\n content = BodyContent.Empty }\r\n\r\n let private emptyResponse =\r\n { statusCode = 0\r\n responseText = \"\"\r\n responseType = \"\"\r\n responseHeaders = Map.empty\r\n content = ResponseContent.Text \"\" }\r\n\r\n let private splitAt (delimiter: string) (input: string) : string [] =\r\n if String.IsNullOrEmpty input then [| input |]\r\n else input.Split([| delimiter |], StringSplitOptions.None)\r\n\r\n let private serializeMethod = function\r\n | HttpMethod.GET -> \"GET\"\r\n | HttpMethod.POST -> \"POST\"\r\n | HttpMethod.PATCH -> \"PATCH\"\r\n | HttpMethod.PUT -> \"PUT\"\r\n | HttpMethod.DELETE -> \"DELETE\"\r\n | HttpMethod.OPTIONS -> \"OPTIONS\"\r\n | HttpMethod.HEAD -> \"HEAD\"\r\n\r\n /// Starts the configuration of the request with the specified url\r\n let request (url: string) : HttpRequest =\r\n { defaultRequest with url = url }\r\n\r\n /// Sets the Http method of the request\r\n let method httpVerb (req: HttpRequest) =\r\n { req with method = httpVerb }\r\n\r\n /// Appends a header to the request configuration\r\n let header (singleHeader: Header) (req: HttpRequest) =\r\n { req with headers = List.append req.headers [singleHeader] }\r\n\r\n /// Appends a list of headers to the request configuration\r\n let headers (values: Header list) (req: HttpRequest) =\r\n { req with headers = List.append req.headers values }\r\n\r\n /// Enables cross-site credentials such as cookies\r\n let withCredentials (enabled: bool) (req: HttpRequest) =\r\n { req with withCredentials = enabled }\r\n\r\n /// Specifies a MIME type other than the one provided by the server to be used instead when interpreting the data being transferred in a request. This may be used, for example, to force a stream to be treated and parsed as \"text/xml\", even if the server does not report it as such.\r\n let overrideMimeType (value: string) (req: HttpRequest) =\r\n { req with overridenMimeType = Some value }\r\n\r\n /// Change the expected response type from the server\r\n let overrideResponseType (value: ResponseTypes) (req: HttpRequest) =\r\n { req with overridenResponseType = Some value }\r\n\r\n /// Sets the body content of the request\r\n let content (bodyContent: BodyContent) (req: HttpRequest) : HttpRequest =\r\n { req with content = bodyContent }\r\n\r\n /// Sends the request to the server, this function does not throw\r\n let send (req: HttpRequest) : Async =\r\n#if FABLE_COMPILER\r\n Async.FromContinuations <| fun (resolve, reject, _) ->\r\n let xhr = XMLHttpRequest.Create()\r\n xhr.``open``(serializeMethod req.method, req.url)\r\n xhr.onreadystatechange <- fun _ ->\r\n if xhr.readyState = ReadyState.Done\r\n then resolve {\r\n responseText =\r\n match xhr.responseType with\r\n | \"\" -> xhr.responseText\r\n | \"text\" -> xhr.responseText\r\n | _ -> \"\"\r\n\r\n statusCode = int xhr.status\r\n responseType = xhr.responseType\r\n content =\r\n match xhr.responseType with\r\n | (\"\" | \"text\") -> ResponseContent.Text xhr.responseText\r\n | \"arraybuffer\" -> ResponseContent.ArrayBuffer (unbox xhr.response)\r\n | \"blob\" -> ResponseContent.Blob (unbox xhr.response)\r\n | _ -> ResponseContent.Unknown xhr.response\r\n\r\n responseHeaders =\r\n xhr.getAllResponseHeaders()\r\n |> splitAt \"\\r\\n\"\r\n |> Array.choose (fun headerLine ->\r\n let parts = splitAt \":\" headerLine\r\n match List.ofArray parts with\r\n | key :: rest -> Some (key.ToLower(), (String.concat \":\" rest).Trim())\r\n | otherwise -> None)\r\n |> Map.ofArray\r\n }\r\n\r\n for (Header(key, value)) in req.headers do\r\n xhr.setRequestHeader(key, value)\r\n\r\n xhr.withCredentials <- req.withCredentials\r\n\r\n match req.overridenMimeType with\r\n | Some mimeType -> xhr.overrideMimeType(mimeType)\r\n | None -> ()\r\n\r\n match req.overridenResponseType with\r\n | Some ResponseTypes.Text -> xhr.responseType <- \"text\"\r\n | Some ResponseTypes.Blob -> xhr.responseType <- \"blob\"\r\n | Some ResponseTypes.ArrayBuffer -> xhr.responseType <- \"arraybuffer\"\r\n | None -> ()\r\n\r\n match req.method, req.content with\r\n | GET, _ -> xhr.send(None)\r\n | _, BodyContent.Empty -> xhr.send(None)\r\n | _, BodyContent.Text value -> xhr.send(value)\r\n | _, BodyContent.Form formData -> xhr.send(formData)\r\n | _, BodyContent.Binary blob -> xhr.send(blob)\r\n#else\r\n async {\r\n try\r\n use requestMessage = new HttpRequestMessage()\r\n requestMessage.RequestUri <- Uri(req.url)\r\n requestMessage.Method <-\r\n match req.method with\r\n | HttpMethod.GET -> HttpMethod.Get\r\n | HttpMethod.POST -> HttpMethod.Post\r\n | HttpMethod.PUT -> HttpMethod.Put\r\n | HttpMethod.PATCH -> HttpMethod \"PATCH\"\r\n | HttpMethod.DELETE -> HttpMethod.Delete\r\n | HttpMethod.HEAD -> HttpMethod.Head\r\n | HttpMethod.OPTIONS -> HttpMethod.Options\r\n req.headers\r\n |> Seq.iter (fun (Header (key, value)) ->\r\n requestMessage.Headers.Add(key, value))\r\n use content =\r\n match req.content with\r\n | BodyContent.Text text -> new StringContent(text)\r\n | BodyContent.Empty -> null\r\n | _ -> failwith \"Only BodyContent.Text is supported in the dotnet implementation\"\r\n requestMessage.Content <- content\r\n\r\n use client = new HttpClient()\r\n let! response = client.SendAsync requestMessage |> Async.AwaitTask\r\n let! responseBody = response.Content.ReadAsStringAsync() |> Async.AwaitTask\r\n\r\n let headers =\r\n response.Headers\r\n |> Seq.choose (fun kv ->\r\n kv.Value\r\n |> Seq.tryLast\r\n |> Option.map (fun value -> kv.Key, value))\r\n |> Map.ofSeq\r\n\r\n return\r\n { statusCode = int response.StatusCode\r\n responseText = responseBody\r\n responseType = \"text\"\r\n responseHeaders = headers\r\n content = ResponseContent.Text responseBody }\r\n with\r\n // We're catching a lot here to mimic the behaviour of the JS\r\n // implementation, which isn't able to expose the kind of error.\r\n | :? ArgumentException ->\r\n return emptyResponse // invalid uri\r\n | :? HttpRequestException\r\n | :? AggregateException as aggrEx when (aggrEx.InnerException :? HttpRequestException) ->\r\n return emptyResponse // connection errors\r\n }\r\n#endif\r\n\r\n /// Safely sends a GET request and returns a tuple(status code * response text). This function does not throw.\r\n let get url : Async =\r\n async {\r\n let! response =\r\n request url\r\n |> method HttpMethod.GET\r\n |> send\r\n return response.statusCode, response.responseText\r\n }\r\n\r\n /// Safely sends a PUT request and returns a tuple(status code * response text). This function does not throw.\r\n let put url (data: string) : Async =\r\n async {\r\n let! response =\r\n request url\r\n |> method HttpMethod.PUT\r\n |> content (BodyContent.Text data)\r\n |> send\r\n return response.statusCode, response.responseText\r\n }\r\n\r\n /// Safely sends a DELETE request and returns a tuple(status code * response text). This function does not throw.\r\n let delete url : Async =\r\n async {\r\n let! response =\r\n request url\r\n |> method HttpMethod.DELETE\r\n |> send\r\n return response.statusCode, response.responseText\r\n }\r\n\r\n /// Safely sends a PUT request and returns a tuple(status code * response text). This function does not throw.\r\n let patch url (data: string) : Async =\r\n async {\r\n let! response =\r\n request url\r\n |> method HttpMethod.PATCH\r\n |> content (BodyContent.Text data)\r\n |> send\r\n return response.statusCode, response.responseText\r\n }\r\n\r\n /// Safely sends a POST request and returns a tuple(status code * response text). This function does not throw.\r\n let post url (data: string) : Async =\r\n async {\r\n let! response =\r\n request url\r\n |> method HttpMethod.POST\r\n |> content (BodyContent.Text data)\r\n |> send\r\n return response.statusCode, response.responseText\r\n }\r\n","module Data.WeeklyStats\n\nopen Fable.SimpleHttp\nopen Fable.SimpleJson\nopen Types\n\n// let url = \"https://api.sledilnik.org/api/stats-weekly\" SLO-spec\nlet url = \"https://api.treker.mk/api/stats-weekly\"\n\ntype private TransferSource =\n { quarantine : int option\n local : int option\n import : int option\n ``import-related`` : int option\n unknown : int option\n }\n\n member this.ToDomain : InfectionSource =\n { FromQuarantine = this.quarantine\n Local = this.local\n Import = this.import\n ImportRelated = this.``import-related``\n Unknown = this.unknown }\n\nlet private mapKeysToUpperCase (map: Map) =\n Map.toSeq map\n |> Seq.map (fun (k, v) -> (k.ToUpper(), v))\n |> Map.ofSeq\n\ntype private TransferWStatsDataPoint =\n {\n week : string\n year : int\n month : int\n day : int\n ``to`` :\n {|\n year : int\n month : int\n day : int\n |}\n confirmed : int option\n investigated : int option\n healthcare : int option\n sentTo :\n {|\n quarantine : int option\n |}\n source : TransferSource\n from : Map\n }\n\n member this.ToDomain : WeeklyStatsDataPoint =\n {\n Week = this.week\n Date = System.DateTime(this.year, this.month, this.day)\n DateTo = System.DateTime(this.``to``.year, this.``to``.month, this.``to``.day)\n ConfirmedCases = this.confirmed\n InvestigatedCases = this.investigated\n HealthcareCases = this.healthcare\n SentToQuarantine = this.sentTo.quarantine\n Source = this.source.ToDomain\n ImportedFrom = this.from |> mapKeysToUpperCase\n }\n\ntype private TransferWStatsData = TransferWStatsDataPoint[]\n\nlet parseWStatsData responseData =\n let transferWStatsData =\n responseData\n |> Json.parseNativeAs\n\n transferWStatsData\n |> Array.map (fun transferDataPoint -> transferDataPoint.ToDomain)\n\nlet countryTotals (weeklyStats: seq) =\n let sum (a: int option) (b: int option) =\n match a, b with\n | None, Some b_ -> b_\n | Some a_, Some b_ -> a_ + b_\n | Some a_, None -> a_\n | _ -> 0\n\n let sumOfMaps (a: Map) (b: Map) =\n Map.fold (fun a_ key value -> Map.add key (sum (a.TryFind key) value) a_) a b\n\n weeklyStats\n |> Seq.map (fun ws -> ws.ImportedFrom)\n |> Seq.fold sumOfMaps Map.empty\n |> Map.filter (fun _ v -> v > 0)\n |> Map.toArray\n |> Array.sortByDescending (fun (_, v) -> v)\n\nlet load =\n async {\n let! (statusCode, response) = Http.get url\n\n if statusCode <> 200 then\n return WeeklyStatsDataLoaded (sprintf \"Napaka pri nalaganju statističnih podatkov: %d\" statusCode |> Failure)\n else\n try\n let data = parseWStatsData response\n return WeeklyStatsDataLoaded (Success data)\n with\n | ex -> return WeeklyStatsDataLoaded (sprintf \"Napaka pri branju statističnih podatkov: %s\" (ex.Message.Substring(0, 1000)) |> Failure)\n }\n","// tslint:disable:max-line-length\nimport { fromNumber, op_Division, op_Multiply, toNumber } from \"./Long\";\nimport { comparePrimitives, padLeftAndRightWithZeros, padWithZeros } from \"./Util\";\n// TimeSpan in runtime just becomes a number representing milliseconds\n/**\n * Calls:\n * - `Math.ceil` if the `value` is **negative**\n * - `Math.floor` if the `value` is **positive**\n * @param value Value to round\n */\nfunction signedRound(value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n}\nexport function create(d = 0, h = 0, m = 0, s = 0, ms = 0) {\n switch (arguments.length) {\n case 1:\n // ticks\n return fromTicks(arguments[0]);\n case 3:\n // h,m,s\n d = 0, h = arguments[0], m = arguments[1], s = arguments[2], ms = 0;\n break;\n default:\n // d,h,m,s,ms\n break;\n }\n return d * 86400000 + h * 3600000 + m * 60000 + s * 1000 + ms;\n}\nexport function fromTicks(ticks) {\n return toNumber(op_Division(ticks, 10000));\n}\nexport function fromDays(d) {\n return create(d, 0, 0, 0);\n}\nexport function fromHours(h) {\n return create(h, 0, 0);\n}\nexport function fromMinutes(m) {\n return create(0, m, 0);\n}\nexport function fromSeconds(s) {\n return create(0, 0, s);\n}\nexport function days(ts) {\n return signedRound(ts / 86400000);\n}\nexport function hours(ts) {\n return signedRound(ts % 86400000 / 3600000);\n}\nexport function minutes(ts) {\n return signedRound(ts % 3600000 / 60000);\n}\nexport function seconds(ts) {\n return signedRound(ts % 60000 / 1000);\n}\nexport function milliseconds(ts) {\n return signedRound(ts % 1000);\n}\nexport function ticks(ts) {\n return op_Multiply(fromNumber(ts), 10000);\n}\nexport function totalDays(ts) {\n return ts / 86400000;\n}\nexport function totalHours(ts) {\n return ts / 3600000;\n}\nexport function totalMinutes(ts) {\n return ts / 60000;\n}\nexport function totalSeconds(ts) {\n return ts / 1000;\n}\nexport function negate(ts) {\n return ts * -1;\n}\nexport function add(ts1, ts2) {\n return ts1 + ts2;\n}\nexport function subtract(ts1, ts2) {\n return ts1 - ts2;\n}\nexport const op_Addition = add;\nexport const op_Subtraction = subtract;\nexport const compare = comparePrimitives;\nexport const compareTo = comparePrimitives;\nexport function duration(x) {\n return Math.abs(x);\n}\nexport function toString(ts, format = \"c\", _provider) {\n if ([\"c\", \"g\", \"G\"].indexOf(format) === -1) {\n throw new Error(\"Custom formats are not supported\");\n }\n const d = Math.abs(days(ts));\n const h = Math.abs(hours(ts));\n const m = Math.abs(minutes(ts));\n const s = Math.abs(seconds(ts));\n const ms = Math.abs(milliseconds(ts));\n const sign = ts < 0 ? \"-\" : \"\";\n return `${sign}${d === 0 && (format === \"c\" || format === \"g\") ? \"\" : format === \"c\" ? d + \".\" : d + \":\"}${format === \"g\" ? h : padWithZeros(h, 2)}:${padWithZeros(m, 2)}:${padWithZeros(s, 2)}${ms === 0 && (format === \"c\" || format === \"g\") ? \"\" : format === \"g\" ? \".\" + padWithZeros(ms, 3) : \".\" + padLeftAndRightWithZeros(ms, 3, 7)}`;\n}\nexport function parse(str) {\n const firstDot = str.search(\"\\\\.\");\n const firstColon = str.search(\"\\\\:\");\n if (firstDot === -1 && firstColon === -1) { // There is only a day ex: 4\n const d = parseInt(str, 0);\n if (isNaN(d)) {\n throw new Error(`String '${str}' was not recognized as a valid TimeSpan.`);\n }\n else {\n return create(d, 0, 0, 0, 0);\n }\n }\n if (firstColon > 0) { // process time part\n // WIP: (-?)(((\\d+)\\.)?([0-9]|0[0-9]|1[0-9]|2[0-3]):(\\d+)(:\\d+(\\.\\d{1,7})?)?|\\d+(?:(?!\\.)))\n const r = /^(-?)((\\d+)\\.)?(?:0*)([0-9]|0[0-9]|1[0-9]|2[0-3]):(?:0*)([0-5][0-9]|[0-9])(:(?:0*)([0-5][0-9]|[0-9]))?\\.?(\\d+)?$/.exec(str);\n if (r != null && r[4] != null && r[5] != null) {\n let d = 0;\n let ms = 0;\n let s = 0;\n const sign = r[1] != null && r[1] === \"-\" ? -1 : 1;\n const h = +r[4];\n const m = +r[5];\n if (r[3] != null) {\n d = +r[3];\n }\n if (r[7] != null) {\n s = +r[7];\n }\n if (r[8] != null) {\n // Depending on the number of decimals passed, we need to adapt the numbers\n switch (r[8].length) {\n case 1:\n ms = +r[8] * 100;\n break;\n case 2:\n ms = +r[8] * 10;\n break;\n case 3:\n ms = +r[8];\n break;\n case 4:\n ms = +r[8] / 10;\n break;\n case 5:\n ms = +r[8] / 100;\n break;\n case 6:\n ms = +r[8] / 1000;\n break;\n case 7:\n ms = +r[8] / 10000;\n break;\n default:\n throw new Error(`String '${str}' was not recognized as a valid TimeSpan.`);\n }\n }\n return sign * create(d, h, m, s, ms);\n }\n }\n throw new Error(`String '${str}' was not recognized as a valid TimeSpan.`);\n}\nexport function tryParse(v, _refValue) {\n try {\n return [true, parse(v)];\n }\n catch (_err) {\n return [false, 0];\n }\n}\n//# sourceMappingURL=TimeSpan.js.map","namespace Feliz\r\n\r\nopen Fable.Core\r\nopen Fable.Core.JsInterop\r\nopen Fable.React\r\nopen Feliz.ReactApi\r\n\r\n[]\r\nmodule Interop =\r\n let reactApi : IReactApi = importDefault \"react\"\r\n let reactElement (name: string) (props: 'a) : ReactElement = import \"createElement\" \"react\"\r\n let mkAttr (key: string) (value: obj) : IReactProperty = unbox (key, value)\r\n let mkStyle (key: string) (value: obj) : IStyleAttribute = unbox (key, value)\r\n let inline reactElementWithChild (name: string) (child: 'a) =\r\n reactElement name (createObj [ \"children\" ==> [| child |] ])\r\n let inline reactElementWithChildren (name: string) (children: #seq) =\r\n reactElement name (createObj [ \"children\" ==> reactApi.Children.toArray (Array.ofSeq children) ])\r\n let inline createElement name (properties: IReactProperty list) : ReactElement =\r\n reactElement name (createObj !!properties)\r\n","module I18N\n\nopen Fable.Core.JsInterop\n\ntype Ii18n =\n abstract t : string -> string\n abstract t : string * obj -> string\n\nlet i18n : Ii18n = importDefault \"i18n\"\n\nlet t key = i18n.t key\n\nlet tOptions key options = i18n.t (key, options)\n\nlet tt section key =\n t (section + \".\" + key)\n\nlet dow dayOfWeek =\n t (sprintf \"weekday.%d\" dayOfWeek)\n\nlet chartText chartTextsGroup textId =\n t (\"charts.\" + chartTextsGroup + \".\" + textId)\n","[]\nmodule Utils\n\nopen Fable.Core\nopen Feliz\n\nopen Types\nopen System\n\nlet memoize f =\n let cache = new System.Collections.Generic.Dictionary<_,_>()\n (fun x ->\n match cache.TryGetValue x with\n | true, value ->\n value\n | false, _ ->\n let value = f x\n cache.Add(x, value)\n value)\n\n// Converts Some 0 value to None\nlet zeroToNone value =\n match value with\n | Some 0 -> None\n | _ -> value\n\nlet optionToInt (value: int option) =\n match value with\n | Some x -> x\n | None -> 0\n\n[ isNaN(x) ? null : x)(+$0)\")>]\nlet nativeParseInt (input : string) : int option = jsNative\n\n[ isNaN(x) ? null : x)(+$0)\")>]\nlet nativeParseFloat (input : string) : float option = jsNative\n\nlet parseDate (str : string) =\n try\n DateTime.Parse(str) |> Ok\n with _ ->\n sprintf \"Invalid date representation: %s\" str |> Error\n\nlet roundDecimals (decimals:int) (value: float) = Math.Round(value, decimals)\n\nlet roundToInt = roundDecimals 0\n\nlet roundTo1Decimal = roundDecimals 1\n\nlet roundTo3Decimals = roundDecimals 3\n\nlet formatToInt (value: float) =\n let formatted = sprintf \"%.0f\" value\n // A hack to replace decimal point with decimal comma.\n formatted.Replace('.', ',')\n\nlet formatTo1DecimalWithTrailingZero (value: float) =\n let formatted = sprintf \"%.1f\" value\n // A hack to replace decimal point with decimal comma.\n formatted.Replace('.', ',')\n\nlet formatTo3DecimalWithTrailingZero (value: float) =\n let formatted = sprintf \"%.3f\" value\n // A hack to replace decimal point with decimal comma.\n formatted.Replace('.', ',')\n\nlet percentageValuesWith1DecimalTrailingZeroLabelFormatter (value: float) =\n let formatted = sprintf \"%.1f\" value\n formatted.Replace('.', ',') + \"%\"\n\nlet percentageValuesLabelFormatter (value: float) =\n // A hack to replace decimal point with decimal comma.\n ((abs value).ToString() + \"%\").Replace('.', ',')\n\nlet calculateDoublingTime (v1 : {| Day : int ; PositiveTests : int |}) (v2 : {| Day : int ; PositiveTests : int |}) =\n let v1, v2, dt = float v1.PositiveTests, float v2.PositiveTests, float (v2.Day - v1.Day)\n if v1 = v2 then None\n else\n let value = log10 2.0 / log10 ((v2 / v1) ** (1.0 / dt))\n if value < 0.0 then None\n else Some value\n\nlet findDoublingTime (values : {| Date : DateTime ; Value : int option |} list) =\n let reversedValues =\n values\n |> List.choose (fun dp ->\n match dp.Value with\n | None -> None\n | Some value -> Some {| Date = dp.Date ; Value = value |}\n )\n |> List.rev\n\n match reversedValues with\n | head :: tail ->\n match tail |> List.tryFind (fun dp ->\n float head.Value / 2. >= float dp.Value) with\n | None -> None\n | Some halfValue -> (head.Date - halfValue.Date).TotalDays |> Some\n | _ -> None\n\nlet classes (classTuples: seq) =\n classTuples\n |> Seq.filter (fun (visible, _) -> visible)\n |> Seq.map (fun (_, className) -> className)\n |> Seq.toList\n |> prop.className\n\nlet renderScaleSelector scaleType dispatch =\n let renderSelector (scaleType : ScaleType) (currentScaleType : ScaleType) (label : string) =\n let defaultProps =\n [ prop.text label\n classes [\n (true, \"chart-display-property-selector__item\")\n (scaleType = currentScaleType, \"selected\") ] ]\n if scaleType = currentScaleType\n then Html.div defaultProps\n else Html.div ((prop.onClick (fun _ -> dispatch scaleType)) :: defaultProps)\n\n let yLabel = I18N.t \"charts.common.yAxis\"\n let linearLabel = I18N.t \"charts.common.linear\"\n let logLabel = I18N.t \"charts.common.log\"\n Html.div [\n prop.className \"chart-display-property-selector\"\n prop.children [\n Html.div [\n prop.text yLabel\n prop.className \"chart-display-property-selector__item\"\n ]\n renderSelector Linear scaleType linearLabel\n renderSelector Logarithmic scaleType logLabel\n ]\n ]\n\nlet renderChartTopControls (children: ReactElement seq) =\n Html.div [\n prop.className \"chart-display-properties\"\n prop.children children\n ]\n\nlet renderChartTopControlRight (topControl: ReactElement) =\n Html.div [\n prop.className \"chart-display-properties\"\n prop.style [ style.justifyContent.flexEnd ]\n prop.children [ topControl ]\n ]\n\nlet renderLoading =\n let loadingLabel = I18N.t \"charts.common.loading\"\n Html.div [\n prop.className \"loader\"\n prop.text loadingLabel\n ]\n\nlet renderErrorLoading (error : string) =\n Html.text error\n\nlet renderMaybeVisible (visible: bool) (children: ReactElement seq) =\n Html.div [\n prop.className (match visible with\n | true -> \"\"\n | false -> \"invisible\" )\n prop.children children\n ]\n\nlet monthNameOfDate (date : DateTime) =\n match date.Month with\n | 1 -> I18N.t \"month.0\"\n | 2 -> I18N.t \"month.1\"\n | 3 -> I18N.t \"month.2\"\n | 4 -> I18N.t \"month.3\"\n | 5 -> I18N.t \"month.4\"\n | 6 -> I18N.t \"month.5\"\n | 7 -> I18N.t \"month.6\"\n | 8 -> I18N.t \"month.7\"\n | 9 -> I18N.t \"month.8\"\n | 10 -> I18N.t \"month.9\"\n | 11 -> I18N.t \"month.10\"\n | 12 -> I18N.t \"month.11\"\n | _ -> failwith \"Invalid month\"\n\nlet transliterateCSZ (str : string) =\n str\n .Replace(\"Č\", \"C\")\n .Replace(\"Š\", \"S\")\n .Replace(\"Ž\", \"Z\")\n .Replace(\"č\", \"c\")\n .Replace(\"š\", \"s\")\n .Replace(\"ž\", \"z\")\n\nlet mixColors\n (minColorR, minColorG, minColorB)\n (maxColorR, maxColorG, maxColorB)\n mixRatio =\n\n let colorR =\n ((maxColorR - minColorR) |> float)\n * mixRatio + (float minColorR)\n |> round |> int\n let colorG =\n ((maxColorG - minColorG) |> float)\n * mixRatio + (float minColorG)\n |> round |> int\n let colorB =\n ((maxColorB - minColorB) |> float)\n * mixRatio + (float minColorB)\n |> round |> int\n\n \"#\" + colorR.ToString(\"X2\")\n + colorG.ToString(\"X2\")\n + colorB.ToString(\"X2\")\n\nmodule Dictionaries =\n\n type Region = {\n Key : string\n Name : string\n Population : int option }\n\n(* SLO-spec - replaced for MK *)\n let excludedRegions = Set.ofList [\"mk\"]\n\n let regions =\n [ \"mk\", Some 2076255\n \"va\", Some 151492\n \"is\", Some 182785\n \"jz\", Some 219180\n \"ji\", Some 172824\n \"pe\", Some 226837\n \"po\", Some 322872\n \"si\", Some 166992\n \"sk\", Some 633273 ]\n |> List.map (fun (key, population) -> key, { Key = key ; Name = key ; Population = population }) \n |> Map.ofList\n\n type Municipality = {\n Key : string\n Name : string\n Code : string\n Population : int\n }\n\n(* SLO-spec - replaced for MK *)\n let municipalities =\n [ \"berovo\", 12493, \"Berovo\"\n \"bitola\", 99873, \"Bitola\"\n \"valandovo\", 11621, \"Valandovo\"\n \"veles\", 65749, \"Veles\"\n \"vinica\", 19207, \"Vinitsa\"\n \"gevgelija\", 33860, \"Gevgelija\"\n \"gostivar\", 120348, \"Gostivar\"\n \"debar\", 28181, \"Debar\"\n \"delcevo\", 23057, \"Delchevo\"\n \"demir_hisar\", 7873, \"Demir Hisar\"\n \"kavadarci\", 42703, \"Kavadartsi\"\n \"kicevo\", 56487, \"Kichevo\"\n \"kocani\", 46960, \"Kochani\"\n \"kratovo\", 8981, \"Kratovo\"\n \"kriva_palanka\", 23245, \"Kriva Palanka\"\n \"krusevo\", 9255, \"Krushevo\"\n \"kumanovo\", 143747, \"Kumanovo\"\n \"makedonski_brod\", 10961, \"Makedonski Brod\"\n \"negotino\", 23141, \"Negotino\"\n \"ohrid\", 55030, \"Ohrid\"\n \"pehcevo\", 4722, \"Pehchevo\"\n \"prilep\", 93678, \"Prilep\"\n \"probistip\", 14771, \"Probishtip\"\n \"radovis\", 32609, \"Radovish\"\n \"resen\", 16158, \"Resen\"\n \"sveti_nikole\", 19899, \"Sveti Nikole\"\n \"skopje\", 633273, \"Skopje\"\n \"struga\", 68521, \"Struga\"\n \"strumica\", 94734, \"Strumitsa\"\n \"tetovo\", 202524, \"Tetovo\"\n \"stip\", 52594, \"Shtip\" ] \n |> List.map (fun (key, population, code) -> key, { Key = key ; Name = key ; Population = population ; Code = code })\n |> Map.ofList\n\n let skopjeMunicipalities =\n [ \"chair\", 64773, \"Chair\"\n \"aerodrom\", 72009, \"Aerodrom\"\n \"butel\", 36154, \"Butel\"\n \"gazi_baba\", 72617, \"Gazi Baba\"\n \"centar\", 45412, \"Centar\"\n \"karposh\", 59666, \"Karposh\"\n \"saraj\", 35408, \"Saraj\"\n \"kisela_voda\", 57236, \"Kisela Voda\"\n \"gjorche_petrov\", 41634, \"Gjorche Petrov\"\n \"studenichani\", 17246, \"Studenichani\"\n \"shuto_orizari\", 22017, \"Shuto Orizari\"\n \"arachinovo\", 11597, \"Arachinovo\"\n \"ilinden\", 15894, \"Ilinden\"\n \"petrovets\", 8255, \"Petrovets\"\n \"chucher-sandevo\", 8493, \"Chucher - Sandevo\"\n \"sopishte\", 5656, \"Sopishte\"\n \"zelenikovo\", 4077, \"Zelenikovo\" ] \n |> List.map (fun (key, population, code) -> key, { Municipality.Key = key ; Municipality.Name = key ; Municipality.Population = population ; Municipality.Code = code })\n |> Map.ofList\n\nmodule AgePopulationStats =\n type AgeGroupId = string\n\n type AgeGroupPopulationStats = {\n Key: AgeGroupId\n Male: int\n Female: int\n }\n\n let agePopulationStats =\n [\n \"0-4\", 53183, 50328\n \"5-14\", 106600, 100566\n \"15-24\", 100391, 93739\n \"25-34\", 133471, 122333\n \"35-44\", 162436, 146922\n \"45-54\", 153735, 146868\n \"55-64\", 147957, 147089\n \"65-74\", 101173, 113253\n \"75-84\", 54460, 81981\n \"85+\", 13635, 36760\n ]\n |> List.map (fun (ageGroupId, male, female) ->\n ageGroupId, { Key = ageGroupId; Male = male; Female = female })\n |> Map.ofList\n\n let parseAgeGroupId (ageGroupId: AgeGroupId): AgeGroupKey =\n if ageGroupId.Contains('-') then\n let i = ageGroupId.IndexOf('-')\n let fromAge = Int32.Parse(ageGroupId.Substring(0, i))\n let toAge = Int32.Parse(ageGroupId.Substring(i+1))\n { AgeFrom = Some fromAge; AgeTo = Some toAge }\n else if ageGroupId.Contains('+') then\n let i = ageGroupId.IndexOf('+')\n let fromAge = Int32.Parse(ageGroupId.Substring(0, i-1))\n { AgeFrom = Some fromAge; AgeTo = None }\n else\n sprintf \"Invalid age group ID: %s\" ageGroupId\n |> ArgumentException |> raise\n\n let toAgeGroupId (groupKey: AgeGroupKey): AgeGroupId =\n match groupKey.AgeFrom, groupKey.AgeTo with\n | Some fromValue, Some toValue -> sprintf \"%d-%d\" fromValue toValue\n | Some fromValue, None -> sprintf \"%d+\" fromValue\n | _ -> sprintf \"Invalid age group key (%A)\" groupKey\n |> ArgumentException |> raise\n\n let populationStatsForAgeGroup (groupKey: AgeGroupKey)\n : AgeGroupPopulationStats =\n let ageGroupId = toAgeGroupId groupKey\n\n if agePopulationStats.ContainsKey ageGroupId then\n agePopulationStats.[ageGroupId]\n else\n sprintf \"Age group '%s' does not exist.\" ageGroupId\n |> ArgumentException |> raise\n","namespace FsToolkit.ErrorHandling\n\nopen System \n\n[]\nmodule ResultCE =\n\n type ResultBuilder() =\n member __.Return (value: 'T) : Result<'T, 'TError> =\n Ok value\n\n member inline __.ReturnFrom (result: Result<'T, 'TError>) : Result<'T, 'TError> =\n result\n\n member this.Zero () : Result =\n this.Return ()\n\n member inline __.Bind\n (result: Result<'T, 'TError>, binder: 'T -> Result<'U, 'TError>)\n : Result<'U, 'TError> =\n Result.bind binder result\n\n member __.Delay\n (generator: unit -> Result<'T, 'TError>)\n : unit -> Result<'T, 'TError> =\n generator\n\n member inline __.Run\n (generator: unit -> Result<'T, 'TError>)\n : Result<'T, 'TError> =\n generator ()\n\n member this.Combine\n (result: Result, binder: unit -> Result<'T, 'TError>)\n : Result<'T, 'TError> =\n this.Bind(result, binder)\n\n member this.TryWith\n (generator: unit -> Result<'T, 'TError>,\n handler: exn -> Result<'T, 'TError>)\n : Result<'T, 'TError> =\n try this.Run generator with | e -> handler e\n\n member this.TryFinally\n (generator: unit -> Result<'T, 'TError>, compensation: unit -> unit)\n : Result<'T, 'TError> =\n try this.Run generator finally compensation ()\n\n member this.Using\n (resource: 'T when 'T :> IDisposable, binder: 'T -> Result<'U, 'TError>)\n : Result<'U, 'TError> =\n this.TryFinally (\n (fun () -> binder resource),\n (fun () -> if not <| obj.ReferenceEquals(resource, null) then resource.Dispose ())\n )\n\n member this.While\n (guard: unit -> bool, generator: unit -> Result)\n : Result =\n if not <| guard () then this.Zero ()\n else this.Bind(this.Run generator, fun () -> this.While (guard, generator))\n\n member this.For\n (sequence: #seq<'T>, binder: 'T -> Result)\n : Result =\n this.Using(sequence.GetEnumerator (), fun enum ->\n this.While(enum.MoveNext,\n this.Delay(fun () -> binder enum.Current)))\n\n member _.BindReturn(x: Result<'T,'U>, f) = Result.map f x\n\n member _.MergeSources(t1: Result<'T,'U>, t2: Result<'T1,'U>) = Result.zip t1 t2\n\n /// \n /// Method lets us transform data types into our internal representation. This is the identity method to recognize the self type.\n /// \n /// See https://stackoverflow.com/questions/35286541/why-would-you-use-builder-source-in-a-custom-computation-expression-builder\n /// \n /// \n /// \n member inline _.Source(result : Result<_,_>) : Result<_,_> = result\n\n let result = ResultBuilder()\n\n[]\nmodule ResultCEExtensions =\n\n type ResultBuilder with\n /// \n /// Needed to allow `for..in` and `for..do` functionality\n /// \n member inline __.Source(s: #seq<_>) = s\n\n\n// Having Choice<_> members as extensions gives them lower priority in\n// overload resolution and allows skipping more type annotations.\n[]\nmodule ResultCEChoiceExtensions =\n type ResultBuilder with\n /// \n /// Method lets us transform data types into our internal representation.\n /// \n /// \n member inline _.Source(choice : Choice<_,_>) = Result.ofChoice choice\n\n","module Data.Regions\n\nopen FsToolkit.ErrorHandling\nopen Fable.SimpleHttp\n\nopen Types\n\ntype Metric =\n | ActiveCases\n | ConfirmedToDate\n | DeceasedToDate\n\ntype DataPoint = {\n Region : string\n Municipality : string\n Metric : Metric\n Value : int option\n}\n\nlet parseRegionsData (csv : string) =\n let rows = csv.Split(\"\\n\")\n let header = rows.[0].Split(\",\")\n\n // Parse municipality header (region, municipality and metric)\n let headerMunicipalities =\n header.[1..]\n |> Array.map (fun col ->\n match col.Split(\".\") with\n | [| \"region\" ; region ; municipality ; \"cases\" ; \"active\" |] ->\n Some { Region = region ; Municipality = municipality ; Metric = ActiveCases ; Value = None }\n | [| \"region\" ; region ; municipality ; \"cases\" ; \"confirmed\" ; \"todate\" |] ->\n Some { Region = region ; Municipality = municipality ; Metric = ConfirmedToDate ; Value = None }\n | [| \"region\" ; region ; municipality ; \"deceased\" ; \"todate\" |] ->\n Some { Region = region ; Municipality = municipality ; Metric = DeceasedToDate ; Value = None }\n | unknown ->\n printfn \"Error parsing municipalities header: %s\" col\n None\n )\n\n // Parse data rows\n rows.[1..]\n |> Array.map (fun row ->\n result {\n let columns = row.Split(\",\")\n\n if headerMunicipalities.Length <> columns.[1..].Length then\n return! Error \"\"\n else\n // Date is in the first column\n let! date = Utils.parseDate(columns.[0])\n // Merge municipality header information with data columns\n let data =\n Array.map2 (fun header value ->\n match header with\n | None _ -> None\n | Some header -> Some { header with Value = Utils.nativeParseInt value }\n ) headerMunicipalities columns.[1..]\n |> Array.choose id\n // Group by region\n |> Array.groupBy (fun dp -> dp.Region)\n |> Array.map (fun (region, dps) ->\n let municipalities =\n dps\n // Group by municipality and combine values\n |> Array.groupBy (fun dp -> dp.Municipality)\n |> Array.map (fun (municipality, dps) ->\n dps\n |> Array.fold (fun state dp ->\n match dp.Metric with\n | ActiveCases -> { state with ActiveCases = dp.Value }\n | ConfirmedToDate -> { state with ConfirmedToDate = dp.Value }\n | DeceasedToDate -> { state with DeceasedToDate = dp.Value }\n ) { Name = municipality ; ActiveCases = None ; ConfirmedToDate = None ; DeceasedToDate = None })\n // Region\n { Name = region ; Municipalities = municipalities |> Array.toList }\n )\n // RegionsDataPoint\n return { Date = date ; Regions = data |> Array.toList }\n })\n |> Array.choose (fun row ->\n match row with\n | Ok row -> Some row\n | Error _ -> None)\n |> Array.toList\n\nlet load(apiEndpoint: string) =\n async {\n let! (statusCode, response) = Http.get (sprintf \"%s/api/municipalities?format=csv\" apiEndpoint)\n\n if statusCode <> 200 then\n return RegionsDataLoaded (sprintf \"Napaka pri nalaganju podatkov o občinah: %d\" statusCode |> Failure)\n else\n let data = parseRegionsData response\n return RegionsDataLoaded (Success data)\n }\n \nlet loadSkMun(apiEndpoint: string) =\n async {\n let! (statusCode, response) = Http.get (sprintf \"%s/api/skopje-municipalities?format=csv\" apiEndpoint)\n\n if statusCode <> 200 then\n return SkopjeMunicipalitiesDataLoaded (sprintf \"Napaka pri nalaganju podatkov o občinah: %d\" statusCode |> Failure)\n else\n let data = parseRegionsData response\n return SkopjeMunicipalitiesDataLoaded (Success data)\n }\n","module Data.Stats\n\nopen Fable.SimpleHttp\nopen Fable.SimpleJson\n\nopen Types\n\nlet url = \"https://api.treker.mk/api/stats\"\n\ntype TransferAgeGroup =\n { ageFrom : int option\n ageTo : int option\n allToDate : int option\n femaleToDate : int option\n maleToDate : int option }\n\n member this.ToDomain : AgeGroup =\n { GroupKey = { AgeFrom = this.ageFrom; AgeTo = this.ageTo }\n Male = this.maleToDate\n Female = this.femaleToDate\n All = this.allToDate }\n\ntype private TransferStatsDataPoint =\n { dayFromStart : int\n year : int\n month : int\n day : int\n phase : string\n tests :\n {|\n performed : {| toDate : int option; today : int option |}\n positive : {| toDate : int option; today : int option |}\n regular :\n {|\n performed : {| toDate : int option; today : int option |}\n positive : {| toDate : int option; today : int option |}\n |}\n nsApr20 :\n {|\n performed : {| toDate : int option; today : int option |}\n positive : {| toDate : int option; today : int option |}\n |}\n |}\n cases :\n {| confirmedToday : int option\n confirmedToDate : int option\n recoveredToDate : int option\n closedToDate : int option\n active : int option\n hs : {| employeeConfirmedToDate: int option |}\n rh : {| employeeConfirmedToDate: int option; occupantConfirmedToDate: int option |}\n unclassified : {| confirmedToDate: int option |}\n |}\n statePerTreatment :\n {| inHospital : int option\n inHospitalToDate : int option\n inICU : int option\n critical : int option\n deceasedToDate : int option\n deceased : int option\n outOfHospitalToDate : int option\n outOfHospital : int option\n recoveredToDate : int option |}\n statePerAgeToDate : TransferAgeGroup list\n deceasedPerAgeToDate : TransferAgeGroup list\n vaccination :\n {|\n administered : {| toDate : int option; today : int option |}\n administered2nd : {| toDate : int option; today : int option |}\n |}\n }\n\n member this.ToDomain : StatsDataPoint =\n { DayFromStart = this.dayFromStart\n Date = System.DateTime(this.year, this.month, this.day)\n Phase = this.phase\n Tests =\n { Performed = { ToDate = this.tests.performed.toDate; Today = this.tests.performed.today }\n Positive = { ToDate = this.tests.positive.toDate; Today = this.tests.positive.today }\n Regular =\n { Performed = { ToDate = this.tests.regular.performed.toDate; Today = this.tests.regular.performed.today }\n Positive = { ToDate = this.tests.regular.positive.toDate; Today = this.tests.regular.positive.today } }\n NsApr20 =\n { Performed = { ToDate = this.tests.nsApr20.performed.toDate; Today = this.tests.nsApr20.performed.today }\n Positive = { ToDate = this.tests.nsApr20.positive.toDate; Today = this.tests.nsApr20.positive.today } }\n }\n Cases =\n { ConfirmedToday = this.cases.confirmedToday\n ConfirmedToDate = this.cases.confirmedToDate\n RecoveredToDate = this.cases.recoveredToDate\n ClosedToDate = this.cases.closedToDate\n Active = this.cases.active }\n StatePerTreatment =\n { InHospital = this.statePerTreatment.inHospital\n InHospitalToDate = this.statePerTreatment.inHospitalToDate\n InICU = this.statePerTreatment.inICU\n Critical = this.statePerTreatment.critical\n DeceasedToDate = this.statePerTreatment.deceasedToDate\n Deceased = this.statePerTreatment.deceased\n OutOfHospitalToDate = this.statePerTreatment.outOfHospitalToDate\n OutOfHospital = this.statePerTreatment.outOfHospital\n RecoveredToDate = this.statePerTreatment.recoveredToDate }\n StatePerAgeToDate = this.statePerAgeToDate |> List.map (fun item -> item.ToDomain)\n DeceasedPerAgeToDate = this.deceasedPerAgeToDate |> List.map (fun item -> item.ToDomain)\n HospitalEmployeePositiveTestsToDate = this.cases.hs.employeeConfirmedToDate\n RestHomeEmployeePositiveTestsToDate = this.cases.rh.employeeConfirmedToDate\n RestHomeOccupantPositiveTestsToDate = this.cases.rh.occupantConfirmedToDate\n UnclassifiedPositiveTestsToDate = this.cases.unclassified.confirmedToDate\n Vaccination =\n { Administered = { ToDate = this.vaccination.administered.toDate; Today = this.vaccination.administered.today }\n Administered2nd = { ToDate = this.vaccination.administered2nd.toDate; Today = this.vaccination.administered2nd.today } }\n }\n\ntype private TransferStatsData = TransferStatsDataPoint list\n\nlet parseStatsData responseData =\n let transferStatsData =\n responseData\n |> Json.parseNativeAs\n\n transferStatsData\n |> List.map (fun transferDataPoint -> transferDataPoint.ToDomain)\n\nlet load =\n async {\n let! (statusCode, response) = Http.get url\n\n if statusCode <> 200 then\n return StatsDataLoaded (sprintf \"Napaka pri nalaganju statističnih podatkov: %d\" statusCode |> Failure)\n else\n try\n let data = parseStatsData response\n return StatsDataLoaded (Success data)\n with\n | ex -> return StatsDataLoaded (sprintf \"Napaka pri branju statističnih podatkov: %s\" (ex.Message.Substring(0, 1000)) |> Failure)\n }\n","module Highcharts\n\nopen System\nopen Fable.Core\nopen Fable.React\nopen Browser\n\nopen Types\n\n[]\nlet chart: obj -> ReactElement = jsNative\n\n[]\nlet chartFromWindow: obj -> ReactElement = jsNative\n\n[]\nlet map: obj -> ReactElement = jsNative\n\n[]\nlet sparklineChart (documentElementId : string, options : obj) : unit = jsNative\n\n[]\nmodule Helpers =\n // Plain-Old-Javascript-Object (i.e. box)\n let inline pojo o = JsInterop.toPlainJsObj o\n\n // plain old javascript object\n []\n let poja (a: 'T[]) : obj = jsNative\n\n type JsTimestamp = float\n\n []\n let jsTime (x: DateTime): JsTimestamp = jsNative\n\n let jsNoon : JsTimestamp = 43200000.0\n let jsTime12h = jsTime >> ( + ) jsNoon\n []\n let jsTimeMidnight (x: DateTime): JsTimestamp = jsNative\n\n /// Given two dates it calculates the middle point between the midnight for the first date and end of day for the second date\n let jsDatesMiddle (a: DateTime) (b: DateTime): JsTimestamp = ( + ) (0.5 * jsTimeMidnight a) (0.5 * jsTimeMidnight b) + 43200000.0\n\ntype DashStyle =\n | Solid\n | ShortDash\n | ShortDot\n | ShortDashDot\n | ShortDashDotDot\n | Dot\n | Dash\n | LongDash\n | DashDot\n | LongDashDot\n | LongDashDotDot\n with\n static member toString = function\n | Solid -> \"Solid\"\n | ShortDash -> \"ShortDash\"\n | ShortDot -> \"ShortDot\"\n | ShortDashDot -> \"ShortDashDot\"\n | ShortDashDotDot -> \"ShortDashDotDot\"\n | Dot -> \"Dot\"\n | Dash -> \"Dash\"\n | LongDash -> \"LongDash\"\n | DashDot -> \"DashDot\"\n | LongDashDot -> \"LongDashDot\"\n | LongDashDotDot -> \"LongDashDotDot\"\n\n\nlet shadedWeekendPlotBands =\n let saturday = DateTime(2020,02,22)\n let nWeeks = (DateTime.Today-saturday).TotalDays / 7.0 |> int\n let oneDay = 86400000.0\n let origin = jsTime saturday // - oneDay / 2.0\n [|\n for i in 0..nWeeks+2 do\n //yield {| value=origin + oneDay * 7.0 * float i; label=None; color=Some \"rgba(0,0,0,0.05)\"; width=Some 5 |}\n //yield {| value=origin + oneDay * 7.0 * float (i+1); label=None; color=Some \"rgba(0,0,0,0.05)\"; width=Some 5 |}\n yield\n {|\n ``from`` = origin + oneDay * 7.0 * float i\n ``to`` = origin + oneDay * 7.0 * float i + oneDay * 2.0\n color = \"rgb(0,0,0,0.025)\"\n label = None\n |}\n |]\n\n// if set to true:\n// - MunicipalitiesChart will showDoublesInXday\nlet showDoublingTimeFeatures =\n true\n\n// if set to true:\n// - SpreadChart will show exponential growth pages\nlet showExpGrowthFeatures =\n true\n\nlet addContainmentMeasuresFlags\n (startDate: JsTimestamp)\n (endDate: JsTimestamp option) =\n let events = [|\n // day, mo, year, color, i18n\n 28, 2, 2020, \"#FFe6e6\", \"gatheringsMass\"\n 16, 3, 2020, \"#FFe6e6\", \"bordersClosure\"\n 17, 3, 2020, \"#FFe6e6\", \"debarQuarantine\"\n 19, 3, 2020, \"#FFe6e6\", \"gatherings5\"\n 21, 3, 2020, \"#FFe6e6\", \"21hLockdown\"\n 22, 4, 2020, \"#FFe6e6\", \"masksOn\"\n 12, 5, 2020, \"#FFe6e6\", \"lessMeasures\"\n 27, 5, 2020, \"#ebfaeb\", \"kafanasOpen\"\n 23, 6, 2020, \"#e6f0ff\", \"bordersOopen\"\n 9, 9, 2020, \"#ebfaeb\", \"kindergartensOpen\" \n 1, 10, 2020, \"#ebfaeb\", \"ucilistaOpen\"\n 4, 11, 2020, \"#FFe6e6\", \"kafanas21h\"\n 18, 12, 2020, \"#FFe6e6\", \"kafanas18h\"\n 21, 1, 2021, \"#ebfaeb\", \"kafanas21h\"\n 17, 2, 2021, \"#ebfaeb\", \"vaksajns\"\n 10, 3, 2021, \"#FFe6e6\", \"22_05hLockdown\"\n 6, 4, 2021, \"#FFe6e6\", \"kafanasClosed\"\n 28, 4, 2021, \"#ebfaeb\", \"goceva_terasa\"\n |]\n {|\n ``type`` = \"flags\"\n shape = \"flag\"\n showInLegend = false\n color = \"#444\"\n data =\n events |> Array.choose (fun (d,m,y,color,i18n) ->\n let ts = DateTime(y,m,d) |> jsTime\n let showMeasure =\n match startDate, endDate with\n | startDate, None -> ts >= startDate\n | startDate, Some endDate ->\n ts >= startDate && ts <= endDate\n\n let title = \"mk.cm.\" + i18n + \".title\"\n let text = \"mk.cm.\" + i18n + \".description\"\n if showMeasure then\n Some {| x=ts; fillColor=color; title=I18N.t title; text=I18N.t text |}\n else None\n )\n |}\n\n(* Trigger document event for iframe resizing *)\nlet onLoadEvent (name : String) =\n let res (e : Event) =\n let event = document.createEvent(\"Event\")\n event.initEvent(\"chartLoaded\", true, true)\n document.dispatchEvent(event)\n res\n\nlet optionsWithOnLoadEvent (className : string) =\n {| chart = pojo\n {| events = pojo\n {| load = onLoadEvent(className) |}\n |}\n |}\n\nlet parseDate (value: String) =\n match I18N.t \"charts.common.numDateFormat\" with\n | \"%m/%d/%Y\" -> // EN, ME\n let date = value.Replace(\" \", \"\").Split('/')\n DateTime\n .Parse(date.[2] + \"-\" + date.[0] + \"-\" + date.[1])\n .Subtract(DateTime(1970,1,1))\n .TotalMilliseconds\n | \"%d/%m/%Y\" -> // IT\n let date = value.Replace(\" \", \"\").Split('/')\n DateTime\n .Parse(date.[2] + \"-\" + date.[1] + \"-\" + date.[0])\n .Subtract(DateTime(1970,1,1))\n .TotalMilliseconds\n | _ -> // DE, HR, MK, SL, SQ\n let date = value.Replace(\" \", \"\").Split('.')\n DateTime\n .Parse(date.[2] + \"-\" + date.[1] + \"-\" + date.[0])\n .Subtract(DateTime(1970,1,1))\n .TotalMilliseconds\n\nlet configureRangeSelector selectedRangeSelectionButtonIndex buttons =\n pojo {|\n enabled = true\n allButtonsEnabled = true\n selected = selectedRangeSelectionButtonIndex\n inputDateFormat = I18N.t \"charts.common.numDateFormat\"\n inputEditDateFormat = I18N.t \"charts.common.numDateFormat\"\n inputDateParser = parseDate\n x = 0\n inputBoxBorderColor = \"#ced4da\"\n buttonTheme = pojo {| r = 6; states = pojo {| select = pojo {| fill = \"#ffd922\" |} |} |}\n buttons = buttons\n |}\n\nlet credictsOptions =\n {| enabled = true\n text = sprintf \"%s: %s, %s\"\n (I18N.t \"charts.common.dataSource\")\n (I18N.tOptions (\"charts.common.dsNIJZ\") {| context = localStorage.getItem (\"contextCountry\") |})\n (I18N.tOptions (\"charts.common.dsMZ\") {| context = localStorage.getItem (\"contextCountry\") |})\n // SLO-spec href = \"https://www.nijz.si/sl/dnevno-spremljanje-okuzb-s-sars-cov-2-covid-19\"\n href = \"http://www.iph.mk\"\n |} |> pojo\n\n\nlet basicChartOptions\n (scaleType:ScaleType)\n (className:string)\n (selectedRangeSelectionButtonIndex: int)\n (rangeSelectorButtonClickHandler: int -> (Event -> bool))\n =\n {|\n chart = pojo\n {|\n animation = false\n ``type`` = \"line\"\n zoomType = \"x\"\n className = className\n events = pojo {| load = onLoadEvent(className) |}\n |}\n title = pojo {| text = None |}\n xAxis = [|\n {|\n index=0; crosshair=true; ``type``=\"datetime\"\n gridLineWidth=1 //; isX=true\n gridZIndex = -1\n tickInterval=86400000\n //labels = pojo {| align = \"center\"; y = 30; reserveSpace = false |} // style = pojo {| marginBottom = \"-30px\" |}\n labels = pojo {| align = \"center\"; y = 30; reserveSpace = true; distance = -20; |} // style = pojo {| marginBottom = \"-30px\" |}\n //labels = {| rotation= -45 |}\n plotLines=[|\n(* SLO-spec \n {| value=jsTime <| DateTime(2020,3,13); label=Some {| text=I18N.t \"phase.2.description\"; rotation=270; align=\"right\"; x=12 |} |}\n {| value=jsTime <| DateTime(2020,3,20); label=Some {| text=I18N.t \"phase.3.description\"; rotation=270; align=\"right\"; x=12 |} |}\n {| value=jsTime <| DateTime(2020,4,8); label=Some {| text=I18N.t \"phase.4.description\"; rotation=270; align=\"right\"; x=12 |} |}\n {| value=jsTime <| DateTime(2020,4,15); label=Some {| text=I18N.t \"phase.5.description\"; rotation=270; align=\"right\"; x=12 |} |}\n {| value=jsTime <| DateTime(2020,4,21); label=Some {| text=I18N.t \"phase.6.description\"; rotation=270; align=\"right\"; x=12 |} |}\n {| value=jsTime <| DateTime(2020,5,15); label=Some {| text=I18N.t \"phase.7.description\"; rotation=270; align=\"right\"; x=12 |} |}\n*)\n |]\n\n plotBands=[|\n // SLO-spec - TODO: this is just placeholder/hack until you have MK phases \n {| ``from``=jsTime <| DateTime(2020,2,29);\n ``to``=jsTime <| DateTime(2020,3,13);\n color=\"transparent\"\n label=Some {| align=\"center\"; text=\"\" |}\n |}\n(* SLO-spec \n {| ``from``=jsTime <| DateTime(2020,2,29);\n ``to``=jsTime <| DateTime(2020,3,13);\n color=\"transparent\"\n label=Some {| align=\"center\"; text=I18N.t \"phase.1.title\" |}\n |}\n {| ``from``=jsTime <| DateTime(2020,3,13);\n ``to``=jsTime <| DateTime(2020,3,20);\n color=\"transparent\"\n label=Some {| align=\"center\"; text=I18N.t \"phase.2.title\" |}\n |}\n {| ``from``=jsTime <| DateTime(2020,3,20);\n ``to``=jsTime <| DateTime(2020,4,8);\n color=\"transparent\"\n label=Some {| align=\"center\"; text=I18N.t \"phase.3.title\" |}\n |}\n {| ``from``=jsTime <| DateTime(2020,4,8);\n ``to``=jsTime <| DateTime(2020,4,15);\n color=\"transparent\"\n label=Some {| align=\"center\"; text=I18N.t \"phase.4.title\" |}\n |}\n {| ``from``=jsTime <| DateTime(2020,4,15);\n ``to``=jsTime <| DateTime(2020,4,21);\n color=\"transparent\"\n label=Some {| align=\"center\"; text=I18N.t \"phase.5.title\" |}\n |}\n {| ``from``=jsTime <| DateTime(2020,4,21);\n ``to``=jsTime <| DateTime(2020,5,15);\n color=\"transparent\"\n label=Some {| align=\"center\"; text=I18N.t \"phase.6.title\" |}\n |}\n {| ``from``=jsTime <| DateTime(2020,5,15);\n ``to``=jsTime <| DateTime(2020,9,10);\n color=\"transparent\"\n label=Some {| align=\"center\"; text=I18N.t \"phase.7.title\" |}\n |}\n*)\n yield! shadedWeekendPlotBands\n |]\n // https://api.highcharts.com/highcharts/xAxis.dateTimeLabelFormats\n dateTimeLabelFormats = pojo\n {|\n week = I18N.t \"charts.common.shortDateFormat\"\n day = I18N.t \"charts.common.shortDateFormat\"\n |}\n |}\n |]\n yAxis = [|\n {|\n index = 0\n ``type`` = if scaleType=Linear then \"linear\" else \"logarithmic\"\n min = if scaleType=Linear then None else Some 1\n max = None\n //floor = if scaleType=Linear then None else Some 1.0\n opposite = true // right side\n maxPadding = if scaleType = Linear then None else Some 0.25\n title = {| text = null |} // \"oseb\" |}\n showFirstLabel = None\n tickInterval = if scaleType=Linear then None else Some 0.4\n gridZIndex = -1\n plotLines = [| {| value = 0; color = \"black\" |} |]\n crosshair = true\n |}\n |]\n\n tooltip = pojo\n {|\n shared = true\n split = false\n xDateFormat = \"\" + I18N.t \"charts.common.dateFormat\" + \"\"\n |}\n\n legend =\n {|\n enabled = false\n align = \"left\"\n verticalAlign = \"top\"\n borderColor = \"#ddd\"\n borderWidth = 1\n //labelFormatter = string //fun series -> series.name\n layout = \"vertical\"\n //backgroundColor = None :> string option\n |}\n\n navigator = pojo {| enabled = false |}\n scrollbar = pojo {| enabled = false |}\n rangeSelector = configureRangeSelector selectedRangeSelectionButtonIndex [|\n {|\n ``type`` = \"month\"\n count = 2\n text = I18N.tOptions \"charts.common.x_months\" {| count = 2 |}\n events = pojo {| click = rangeSelectorButtonClickHandler 0 |}\n |}\n {|\n ``type`` = \"month\"\n count = 3\n text = I18N.tOptions \"charts.common.x_months\" {| count = 3 |}\n events = pojo {| click = rangeSelectorButtonClickHandler 1 |}\n |}\n {|\n ``type`` = \"all\"\n count = 1\n text = I18N.t \"charts.common.all\"\n events = pojo {| click = rangeSelectorButtonClickHandler 2 |}\n |}\n |]\n\n responsive = pojo\n {|\n rules =\n [| {|\n condition = {| maxWidth = 768 |}\n chartOptions =\n {|\n yAxis = [| {| labels = pojo {| enabled = false |} |} |]\n |}\n |} |]\n |}\n\n plotOptions = pojo\n {|\n line = pojo\n {|\n //dataLabels = pojo {| enabled = true |}\n marker = pojo {| symbol = \"circle\"; radius = 3 |}\n //enableMouseTracking = false\n |}\n |}\n\n credits = credictsOptions\n |}\n","module Data.Hospitals\n\nopen System\n\n// let url = \"https://api.sledilnik.org/api/hospitals\" SLO-spec\nlet url = \"https://api.treker.mk/api/hospitals\"\n\ntype CountType =\n | Total\n | Max\n | Occupied\n | Free\n | MaxFree\n\ntype AssetCounts = {\n total: int option\n max: int option\n occupied: int option\n free: int option\n maxFree: int option\n } with\n static member getValue count (counts: AssetCounts) =\n match count with\n | Total -> counts.total\n | Max -> counts.max\n | Occupied -> counts.occupied\n | Free -> counts.free\n | MaxFree -> counts.maxFree\n\ntype AssetType =\n | Beds\n | Icus\n | Vents\n\ntype Assets = {\n beds: AssetCounts\n icu: AssetCounts\n vents: AssetCounts\n } with\n static member getValue (count: CountType) asset assets =\n match asset with\n | Beds -> assets.beds |> AssetCounts.getValue count\n | Icus -> assets.icu |> AssetCounts.getValue count\n | Vents -> assets.vents |> AssetCounts.getValue count\n\n\n\ntype FacilityCode = string // ukclj, sbce, ukg, ...\n\n/// return (seriesName * color) based on facility name\nlet facilitySeriesInfo : FacilityCode -> (string option * string) = function\n | \"bse\" -> None , \"B Sežana\"\n | \"bto\" -> None , \"B Topolšica\"\n | \"sbbr\" -> None , \"SB Brežice\"\n | \"sbce\" -> Some \"#70a471\", \"SB Celje\"\n | \"sbje\" -> None , \"SB Jesenice\"\n | \"sbiz\" -> None , \"SB Izola\"\n | \"sbms\" -> None , \"SB Murska Sobota\"\n | \"sbng\" -> None , \"SB Nova Gorica\"\n | \"sbnm\" -> None , \"SB Novo mesto\"\n | \"sbpt\" -> None , \"SB Ptuj\"\n | \"sbsg\" -> None , \"SB Slovenj Gradec\"\n | \"sbtr\" -> None , \"SB Trbovlje\"\n | \"upklj\" -> None , \"UPK Ljubljana\"\n | \"pbbe\" -> None , \"PB Begunje\"\n | \"pbvo\" -> None , \"PB Vojnik\"\n | \"pbor\" -> None , \"PB Ormož\"\n | \"pbid\" -> None , \"PB Idrija\"\n | other -> None , I18N.t (\"mk.hospital.\" + other) // SLO-spec\n\n\ntype FacilityAssets = {\n year: int\n month: int\n day: int\n overall: Assets\n perHospital: Map\n } with\n member ps.Date = DateTime(ps.year, ps.month, ps.day)\n member ps.JsDate12h = DateTime(ps.year, ps.month, ps.day)\n |> Highcharts.Helpers.jsTime12h\n\nlet getSortedFacilityCodes (data: FacilityAssets []) =\n match data with\n | [||] -> []\n | [| _ |] -> []\n | data ->\n // TODO: in future we'll need more\n seq { // take few samples\n data.[data.Length/2]\n data.[data.Length-2]\n data.[data.Length-1]\n }\n |> Seq.collect (fun assets ->\n assets.perHospital\n |> Map.toSeq\n |> Seq.map (fun (facility, stats) ->\n let quality =\n seq {\n stats.beds.total\n stats.vents.total |> Option.map (fun vents -> if vents>0 then 1000 else 0)\n //stats.icu.total\n }\n |> Seq.sumBy (Option.defaultValue -1)\n facility,quality)) // hospital name\n |> Seq.fold (fun hospitals (hospital,cnt) -> hospitals |> Map.add hospital cnt) Map.empty // all\n |> Map.toList\n |> List.sortBy (fun (fc,quality) ->\n //printfn \"hospital %s %A\" fc cnt\n -quality, (if fc.Length = 3 then fc else \"x\"+fc))\n |> List.map fst\n\n\nlet getOrFetch = DataLoader.makeDataLoader url\n","module Data.Patients\n\nopen System\n\nlet url = \"https://api.treker.mk/api/patients\"\n//let url = \"https://api.sledilnik.org/api/patients\"\n\ntype DeceasedCounts = {\n today: int option\n toDate: int option\n}\n\ntype HDeceasedCounts = {\n today: int option\n toDate: int option\n icu : DeceasedCounts\n}\n\ntype TDeceasedCounts = {\n today: int option\n toDate: int option\n hospital : HDeceasedCounts\n home : DeceasedCounts\n}\n\ntype DepartmentCounts = {\n ``in``: int option\n out: int option\n today: int option\n toDate: int option\n}\n\ntype FacilityPatientStats = {\n inHospital: DepartmentCounts\n icu: DepartmentCounts\n critical: DepartmentCounts\n care: DepartmentCounts\n deceasedCare: DeceasedCounts\n deceased: HDeceasedCounts\n}\n\ntype TotalPatientStats =\n {\n outOfHospital: DepartmentCounts\n inHospital: DepartmentCounts\n icu: DepartmentCounts\n critical: DepartmentCounts\n care: DepartmentCounts\n deceasedCare: DeceasedCounts\n deceased: TDeceasedCounts\n }\n member this.ToFacilityStats : FacilityPatientStats =\n { inHospital = this.inHospital\n icu = this.icu\n critical = this.critical\n care = this.care\n deceasedCare = this.deceasedCare\n deceased = this.deceased.hospital }\n\n\ntype PatientsStats = {\n dayFromStart: int\n year: int\n month: int\n day: int\n total: TotalPatientStats\n facilities: Map\n } with\n member ps.Date = DateTime(ps.year, ps.month, ps.day)\n member ps.JsDate12h = DateTime(ps.year, ps.month, ps.day)\n |> Highcharts.Helpers.jsTime12h\n\n\nlet getOrFetch = DataLoader.makeDataLoader url\n","import {\r\n useEffect as useEffectReact,\r\n useLayoutEffect as useLayoutEffectReact,\r\n useDebugValue as useDebugValueReact } from 'react'\r\n\r\nexport const useEffect = getDisposable => {\r\n useEffectReact(() => {\r\n const disposable = getDisposable()\r\n return () => {\r\n disposable.Dispose();\r\n }\r\n })\r\n}\r\n\r\nexport const useEffectWithDeps = (getDisposable, deps) => {\r\n useEffectReact(() => {\r\n const disposable = getDisposable()\r\n return () => {\r\n disposable.Dispose();\r\n }\r\n }, deps)\r\n}\r\n\r\nexport const useLayoutEffect = getDisposable => {\r\n useLayoutEffectReact(() => {\r\n const disposable = getDisposable()\r\n return () => {\r\n disposable.Dispose();\r\n }\r\n })\r\n}\r\n\r\nexport const useLayoutEffectWithDeps = (getDisposable, deps) => {\r\n useLayoutEffectReact(() => {\r\n const disposable = getDisposable()\r\n return () => {\r\n disposable.Dispose();\r\n }\r\n }, deps)\r\n}\r\n\r\nexport const useDebugValue = (value, formatter) => useDebugValueReact(value, formatter)","namespace Feliz\r\n\r\nopen System\r\nopen System.ComponentModel\r\nopen Fable.Core\r\nopen Fable.Core.JsInterop\r\nopen Browser.Types\r\n\r\nmodule internal ReactInterop =\r\n let useDebugValueWithFormatter<'t>(value: 't, formatter: 't -> string) : unit = import \"useDebugValue\" \"./ReactInterop.js\"\r\n let useEffect (effect: obj) : unit = import \"useEffect\" \"./ReactInterop.js\"\r\n let useEffectWithDeps (effect: obj) (deps: obj) : unit = import \"useEffectWithDeps\" \"./ReactInterop.js\"\r\n let useLayoutEffect (effect: obj) : unit = import \"useLayoutEffect\" \"./ReactInterop.js\"\r\n let useLayoutEffectWithDeps (effect: obj) (deps: obj) : unit = import \"useLayoutEffectWithDeps\" \"./ReactInterop.js\"\r\n\r\n[]\r\n[]\r\nmodule Helpers =\r\n let inline optDispose (disposeOption: #IDisposable option) =\r\n { new IDisposable with member _.Dispose () = disposeOption |> Option.iter (fun d -> d.Dispose()) }\r\n\r\ntype internal Internal() =\r\n static let propsWithKey (withKey: ('props -> string) option) props =\r\n match withKey with\r\n | Some f ->\r\n props?key <- f props\r\n props\r\n | None -> props\r\n static member\r\n functionComponent\r\n (\r\n renderElement: 'props -> ReactElement,\r\n ?name: string,\r\n ?withKey: 'props -> string\r\n )\r\n : 'props -> Fable.React.ReactElement =\r\n name |> Option.iter (fun name -> renderElement?displayName <- name)\r\n fun props ->\r\n let props = props |> propsWithKey withKey\r\n Interop.reactApi.createElement(renderElement, props)\r\n static member\r\n memo\r\n (\r\n renderElement: 'props -> ReactElement,\r\n ?name: string,\r\n ?areEqual: 'props -> 'props -> bool,\r\n ?withKey: 'props -> string\r\n )\r\n : 'props -> Fable.React.ReactElement =\r\n let memoElementType = Interop.reactApi.memo(renderElement, (defaultArg areEqual (unbox null)))\r\n name |> Option.iter (fun name -> renderElement?displayName <- name)\r\n fun props ->\r\n let props = props |> propsWithKey withKey\r\n Interop.reactApi.createElement(memoElementType, props)\r\n\r\ntype React =\r\n /// Creates a disposable instance by providing the implementation of the dispose member.\r\n static member createDisposable(dispose: unit -> unit) =\r\n { new IDisposable with member _.Dispose() = dispose() }\r\n\r\n /// The `React.fragment` component lets you return multiple elements in your `render()` method without creating an additional DOM element.\r\n static member inline fragment xs = Fable.React.Helpers.fragment [] xs\r\n\r\n /// The `React.fragment` component lets you return multiple elements in your `render()` method without creating an additional DOM element.\r\n static member inline keyedFragment(key: int, xs) = Fable.React.Helpers.fragment [ !!(\"key\", key) ] xs\r\n /// The `React.fragment` component lets you return multiple elements in your `render()` method without creating an additional DOM element.\r\n static member inline keyedFragment(key: string, xs) = Fable.React.Helpers.fragment [ !!(\"key\", key) ] xs\r\n /// The `React.fragment` component lets you return multiple elements in your `render()` method without creating an additional DOM element.\r\n static member inline keyedFragment(key: System.Guid, xs) = Fable.React.Helpers.fragment [ !!(\"key\", string key) ] xs\r\n\r\n /// The `useState` hook that create a state variable for React function components from a initialization function.\r\n static member useState<'t>(initializer: unit -> 't) = Interop.reactApi.useState 't,'t>(initializer)\r\n\r\n /// Accepts a reducer and returns the current state paired with a dispatch.\r\n static member useReducer(update, initialState) = Interop.reactApi.useReducer update initialState\r\n\r\n /// The `useEffect` hook that creates a disposable effect for React function components\r\n /// This effect has no dependencies which means the effect is re-executed on every re-render.\r\n /// To make the effect run once (for example you subscribe once to web sockets) then provide an empty array\r\n /// for the dependencies: `React.useEffect(disposableEffect, [| |])`.\r\n static member useEffect(effect: unit -> #IDisposable) : unit = ReactInterop.useEffect(effect)\r\n /// The `useEffect` hook that creates a disposable effect for React function components\r\n /// This effect has no dependencies which means the effect is re-executed on every re-render.\r\n /// To make the effect run once (for example you subscribe once to web sockets) then provide an empty array\r\n /// for the dependencies: `React.useEffect(disposableEffect, [| |])`.\r\n static member inline useEffect(effect: unit -> #IDisposable option) = React.useEffect(effect >> Helpers.optDispose)\r\n /// The `useEffect` hook that creates a disposable effect for React function components.\r\n /// This effect takes a array of *dependencies*.\r\n /// Whenever any of these dependencies change, the effect is re-executed. To execute the effect only once,\r\n /// you have to explicitly provide an empty array for the dependencies: `React.useEffect(effect, [| |])`.\r\n static member useEffect(effect: unit -> #IDisposable, dependencies: obj []) : unit = ReactInterop.useEffectWithDeps effect dependencies\r\n /// The `useEffect` hook that creates a disposable effect for React function components.\r\n /// This effect takes a array of *dependencies*.\r\n /// Whenever any of these dependencies change, the effect is re-executed. To execute the effect only once,\r\n /// you have to explicitly provide an empty array for the dependencies: `React.useEffect(effect, [| |])`.\r\n static member inline useEffect(effect: unit -> #IDisposable option, dependencies: obj []) = React.useEffect(effect >> Helpers.optDispose, dependencies)\r\n\r\n /// The `useLayoutEffect` hook that creates a disposable effect for React function components\r\n /// This effect has no dependencies which means the effect is re-executed on every re-render.\r\n /// To make the effect run once (for example you subscribe once to web sockets) then provide an empty array\r\n /// for the dependencies: `React.useLayoutEffect(disposableEffect, [| |])`.\r\n /// The signature is identical to useEffect, but it fires synchronously after all DOM mutations. Use this to read layout from the DOM and synchronously re-render. Updates scheduled inside useLayoutEffect will be flushed synchronously, before the browser has a chance to paint.\r\n static member useLayoutEffect(effect: unit -> #IDisposable) : unit = ReactInterop.useLayoutEffect(effect)\r\n /// The `useLayoutEffect` hook that creates a disposable effect for React function components\r\n /// This effect has no dependencies which means the effect is re-executed on every re-render.\r\n /// To make the effect run once (for example you subscribe once to web sockets) then provide an empty array\r\n /// for the dependencies: `React.useLayoutEffect(disposableEffect, [| |])`.\r\n /// The signature is identical to useEffect, but it fires synchronously after all DOM mutations. Use this to read layout from the DOM and synchronously re-render. Updates scheduled inside useLayoutEffect will be flushed synchronously, before the browser has a chance to paint.\r\n static member inline useLayoutEffect(effect: unit -> #IDisposable option) = React.useLayoutEffect(effect >> Helpers.optDispose)\r\n /// The `useLayoutEffect` hook that creates a disposable effect for React function components.\r\n /// This effect takes a array of *dependencies*.\r\n /// Whenever any of these dependencies change, the effect is re-executed. To execute the effect only once,\r\n /// you have to explicitly provide an empty array for the dependencies: `React.useLayoutEffect(effect, [| |])`.\r\n /// The signature is identical to useEffect, but it fires synchronously after all DOM mutations. Use this to read layout from the DOM and synchronously re-render. Updates scheduled inside useLayoutEffect will be flushed synchronously, before the browser has a chance to paint.\r\n static member useLayoutEffect(effect: unit -> #IDisposable, dependencies: obj []) : unit = ReactInterop.useLayoutEffectWithDeps effect dependencies\r\n /// The `useLayoutEffect` hook that creates a disposable effect for React function components.\r\n /// This effect takes a array of *dependencies*.\r\n /// Whenever any of these dependencies change, the effect is re-executed. To execute the effect only once,\r\n /// you have to explicitly provide an empty array for the dependencies: `React.useLayoutEffect(effect, [| |])`.\r\n /// The signature is identical to useEffect, but it fires synchronously after all DOM mutations. Use this to read layout from the DOM and synchronously re-render. Updates scheduled inside useLayoutEffect will be flushed synchronously, before the browser has a chance to paint.\r\n static member inline useLayoutEffect(effect: unit -> #IDisposable option, dependencies: obj []) =\r\n React.useLayoutEffect(effect >> Helpers.optDispose, dependencies)\r\n /// The signature is identical to useEffect, but it fires synchronously after all DOM mutations. Use this to read layout from the DOM and synchronously re-render. Updates scheduled inside useLayoutEffect will be flushed synchronously, before the browser has a chance to paint.\r\n /// This effect is executed on every (re)render\r\n static member useLayoutEffect(effect: unit -> unit) =\r\n ReactInterop.useLayoutEffect\r\n (fun _ ->\r\n effect()\r\n React.createDisposable(ignore))\r\n\r\n /// The signature is identical to useEffect, but it fires synchronously after all DOM mutations. Use this to read layout from the DOM and synchronously re-render. Updates scheduled inside useLayoutEffect will be flushed synchronously, before the browser has a chance to paint.\r\n static member useLayoutEffect(effect: unit -> unit, dependencies: obj []) =\r\n ReactInterop.useLayoutEffectWithDeps\r\n (fun _ ->\r\n effect()\r\n React.createDisposable(ignore))\r\n dependencies\r\n\r\n static member inline useLayoutEffectOnce(effect: unit -> unit) =\r\n React.useLayoutEffect(effect, [| |])\r\n\r\n static member inline useLayoutEffectOnce(effect: unit -> #IDisposable) =\r\n React.useLayoutEffect(effect, [| |])\r\n\r\n static member inline useLayoutEffectOnce(effect: unit -> #IDisposable option) =\r\n React.useLayoutEffect(effect, [| |])\r\n\r\n /// React hook to define and use an effect only once when a function component renders for the first time.\r\n /// This an alias for `React.useEffect(effect, [| |])` which explicitly provide an empty array for the dependencies of the effect which means the effect will only run once.\r\n static member useEffectOnce(effect: unit -> unit) =\r\n React.useEffect(effect, [| |])\r\n\r\n /// React hook to define and use a disposable effect only once when a function component renders for the first time.\r\n /// This an alias for `React.useEffect(effect, [| |])` which explicitly provide an empty array for the dependencies of the effect which means the effect will only run once.\r\n static member useEffectOnce(effect: unit -> #IDisposable) =\r\n React.useEffect(effect, [| |])\r\n /// React hook to define and use a disposable effect only once when a function component renders for the first time.\r\n /// This an alias for `React.useEffect(effect, [| |])` which explicitly provide an empty array for the dependencies of the effect which means the effect will only run once.\r\n static member useEffectOnce(effect: unit -> #IDisposable option) =\r\n React.useEffect(effect >> Helpers.optDispose, [| |])\r\n\r\n /// The `useEffect` hook that creates an effect for React function components.\r\n /// This effect is executed *every time* the function component re-renders.\r\n ///\r\n /// To make the effect run only once, write: `React.useEffect(effect, [| |])` which explicitly states\r\n /// that this effect has no dependencies and should only run once on initial render.\r\n static member useEffect(effect: unit -> unit) : unit =\r\n ReactInterop.useEffect\r\n (fun _ ->\r\n effect()\r\n React.createDisposable(ignore))\r\n\r\n /// The `useEffect` hook that creates an effect for React function components. This effect takes a array of *dependencies*.\r\n /// Whenever any of these dependencies change, the effect is re-executed. To execute the effect only once,\r\n /// you have to explicitly provide an empty array for the dependencies: `React.useEffect(effect, [| |])`.\r\n static member useEffect(effect: unit -> unit, dependencies: obj []) : unit =\r\n ReactInterop.useEffectWithDeps\r\n (fun _ ->\r\n effect()\r\n React.createDisposable(ignore))\r\n dependencies\r\n\r\n /// Can be used to display a label for custom hooks in React DevTools.\r\n static member useDebugValue(value: string) =\r\n ReactInterop.useDebugValueWithFormatter(value, id)\r\n\r\n /// Can be used to display a label for custom hooks in React DevTools.\r\n static member useDebugValue(value: 't, formatter: 't -> string) =\r\n ReactInterop.useDebugValueWithFormatter(value, formatter)\r\n\r\n /// \r\n /// The `useCallback` hook. Returns a memoized callback. Pass an inline callback and an array of dependencies.\r\n /// `useCallback` will return a memoized version of the callback that only changes if one of the dependencies has changed.\r\n /// \r\n /// A callback function to be memoized.\r\n /// An array of dependencies upon which the callback function depends.\r\n /// If not provided, defaults to empty array, representing dependencies that never change.\r\n static member useCallback(callbackFunction: 'a -> 'b, ?dependencies: obj array) =\r\n Interop.reactApi.useCallback callbackFunction (defaultArg dependencies [||])\r\n\r\n /// Returns a mutable ref object whose .current property is initialized to the passed argument (initialValue). The returned object will persist for the full lifetime of the component.\r\n ///\r\n /// Essentially, useRef is like a container that can hold a mutable value in its .current property.\r\n static member useRef(initialValue) = Interop.reactApi.useRef(initialValue)\r\n\r\n /// A specialized version of React.useRef() that creates a reference to an input element.\r\n ///\r\n /// Useful for controlling the internal properties and methods that element, for example to enable focus().\r\n static member useInputRef() : IRefValue = React.useRef(None)\r\n\r\n /// A specialized version of React.useRef() that creates a reference to a button element.\r\n static member useButtonRef() : IRefValue = React.useRef(None)\r\n\r\n /// A specialized version of React.useRef() that creates a reference to a generic HTML element.\r\n ///\r\n /// Useful for controlling the internal properties and methods that element, for integration with third-party libraries that require a Html element.\r\n static member useElementRef() : IRefValue = React.useRef(None)\r\n\r\n /// \r\n /// The `useMemo` hook. Returns a memoized value. Pass a \"create\" function and an array of dependencies.\r\n /// `useMemo` will only recompute the memoized value when one of the dependencies has changed.\r\n /// \r\n /// A create function returning a value to be memoized.\r\n /// An array of dependencies upon which the create function depends.\r\n /// If not provided, defaults to empty array, representing dependencies that never change.\r\n static member useMemo(createFunction: unit -> 'a, ?dependencies: obj array) =\r\n Interop.reactApi.useMemo createFunction (defaultArg dependencies [||])\r\n\r\n //\r\n // React.functionComponent\r\n //\r\n\r\n /// \r\n /// Creates a React function component from a function that accepts a \"props\" object and renders a result.\r\n /// A component key can be provided in the props object, or a custom `withKey` function can be provided.\r\n /// \r\n /// A render function that returns an element.\r\n /// A function to derive a component key from the props.\r\n static member functionComponent(render: 'props -> ReactElement, ?withKey: 'props -> string) =\r\n Internal.functionComponent(render, ?withKey=withKey)\r\n\r\n /// \r\n /// Creates a React function component from a function that accepts a \"props\" object and renders a result.\r\n /// A component key can be provided in the props object, or a custom `withKey` function can be provided.\r\n /// \r\n /// The component name to display in the React dev tools.\r\n /// A render function that returns an element.\r\n /// A function to derive a component key from the props.\r\n static member functionComponent(name: string, render: 'props -> ReactElement, ?withKey: 'props -> string) =\r\n Internal.functionComponent(render, name, ?withKey=withKey)\r\n\r\n /// \r\n /// Creates a React function component from a function that accepts a \"props\" object and renders a result.\r\n /// A component key can be provided in the props object, or a custom `withKey` function can be provided.\r\n /// \r\n /// A render function that returns a list of elements.\r\n /// A function to derive a component key from the props.\r\n static member functionComponent(render: 'props -> #seq, ?withKey: 'props -> string) =\r\n Internal.functionComponent(render >> React.fragment, ?withKey=withKey)\r\n\r\n /// \r\n /// Creates a React function component from a function that accepts a \"props\" object and renders a result.\r\n /// A component key can be provided in the props object, or a custom `withKey` function can be provided.\r\n /// \r\n /// A render function that returns a list of elements.\r\n /// The component name to display in the React dev tools.\r\n /// A function to derive a component key from the props.\r\n static member functionComponent(name: string, render: 'props -> #seq, ?withKey: 'props -> string) =\r\n Internal.functionComponent(render >> React.fragment, name, ?withKey=withKey)\r\n\r\n //\r\n // React.memo\r\n //\r\n\r\n /// \r\n /// `React.memo` memoizes the result of a function component. Given the same props, React will skip rendering the component, and reuse the last rendered result.\r\n /// By default it will only shallowly compare complex objects in the props object. For more control, a custom `areEqual` function can be provided.\r\n /// A component key can be provided in the props object, or a custom `withKey` function can be provided.\r\n /// \r\n /// A render function or a React.functionComponent.\r\n /// A custom comparison function to use instead of React's default shallow compare.\r\n /// A function to derive a component key from the props.\r\n static member memo(render: 'props -> ReactElement, ?withKey: 'props -> string, ?areEqual: 'props -> 'props -> bool) =\r\n Internal.memo(render, ?areEqual=areEqual, ?withKey=withKey)\r\n\r\n /// \r\n /// `React.memo` memoizes the result of a function component. Given the same props, React will skip rendering the component, and reuse the last rendered result.\r\n /// By default it will only shallowly compare complex objects in the props object. For more control, a custom `areEqual` function can be provided.\r\n /// A component key can be provided in the props object, or a custom `withKey` function can be provided.\r\n /// \r\n /// The component name to display in the React dev tools.\r\n /// A render function or a React.functionComponent.\r\n /// A custom comparison function to use instead of React's default shallow compare.\r\n /// A function to derive a component key from the props.\r\n static member memo(name: string, render: 'props -> ReactElement, ?withKey: 'props -> string, ?areEqual: 'props -> 'props -> bool) =\r\n Internal.memo(render, name, ?areEqual=areEqual, ?withKey=withKey)\r\n\r\n /// \r\n /// `React.memo` memoizes the result of a function component. Given the same props, React will skip rendering the component, and reuse the last rendered result.\r\n /// By default it will only shallowly compare complex objects in the props object. For more control, a custom `areEqual` function can be provided.\r\n /// A component key can be provided in the props object, or a custom `withKey` function can be provided.\r\n /// \r\n /// A render function that returns a list of elements.\r\n /// A function to derive a component key from the props.\r\n /// A custom comparison function to use instead of React's default shallow compare.\r\n static member memo(render: 'props -> #seq, ?withKey: 'props -> string, ?areEqual: 'props -> 'props -> bool) =\r\n Internal.memo(render >> React.fragment, ?areEqual=areEqual, ?withKey=withKey)\r\n\r\n /// \r\n /// `React.memo` memoizes the result of a function component. Given the same props, React will skip rendering the component, and reuse the last rendered result.\r\n /// By default it will only shallowly compare complex objects in the props object. For more control, a custom `areEqual` function can be provided.\r\n /// A component key can be provided in the props object, or a custom `withKey` function can be provided.\r\n /// \r\n /// The component name to display in the React dev tools.\r\n /// A render function that returns a list of elements.\r\n /// A function to derive a component key from the props.\r\n /// A custom comparison function to use instead of React's default shallow compare.\r\n static member memo(name: string, render: 'props -> #seq, ?withKey: 'props -> string, ?areEqual: 'props -> 'props -> bool) =\r\n Internal.memo(render >> React.fragment, name, ?areEqual=areEqual, ?withKey=withKey)\r\n\r\n //\r\n // React.useContext\r\n //\r\n\r\n /// \r\n /// Creates a Context object. When React renders a component that subscribes to this Context object\r\n /// it will read the current context value from the closest matching Provider above it in the tree.\r\n /// \r\n /// The component name to display in the React dev tools.\r\n /// A default value that is only used when a component does not have a matching Provider above it in the tree.\r\n static member createContext<'a>(?name: string, ?defaultValue: 'a) =\r\n let contextObject = Interop.reactApi.createContext (defaultArg defaultValue Fable.Core.JS.undefined<'a>)\r\n name |> Option.iter (fun name -> contextObject?displayName <- name)\r\n contextObject\r\n\r\n /// \r\n /// A Provider component that allows consuming components to subscribe to context changes.\r\n /// \r\n /// A context object returned from a previous React.createContext call.\r\n /// The context value to be provided to descendant components.\r\n /// A child element.\r\n static member contextProvider(contextObject: Fable.React.IContext<'a>, contextValue: 'a, child: ReactElement) : ReactElement =\r\n Interop.reactApi.createElement(contextObject?Provider, createObj [\"value\" ==> contextValue], [child])\r\n /// \r\n /// A Provider component that allows consuming components to subscribe to context changes.\r\n /// \r\n /// A context object returned from a previous React.createContext call.\r\n /// The context value to be provided to descendant components.\r\n /// A sequence of child elements.\r\n static member contextProvider(contextObject: Fable.React.IContext<'a>, contextValue: 'a, children: #seq) : ReactElement =\r\n Interop.reactApi.createElement(contextObject?Provider, createObj [\"value\" ==> contextValue], children)\r\n\r\n /// \r\n /// A Consumer component that subscribes to context changes.\r\n /// \r\n /// A context object returned from a previous React.createContext call.\r\n /// A render function that returns an element.\r\n static member contextConsumer(contextObject: Fable.React.IContext<'a>, render: 'a -> ReactElement) : ReactElement =\r\n Interop.reactApi.createElement(contextObject?Consumer, null, [!!render])\r\n /// \r\n /// A Consumer component that subscribes to context changes.\r\n /// \r\n /// A context object returned from a previous React.createContext call.\r\n /// A render function that returns a sequence of elements.\r\n static member contextConsumer(contextObject: Fable.React.IContext<'a>, render: 'a -> #seq) : ReactElement =\r\n Interop.reactApi.createElement(contextObject?Consumer, null, [!!(render >> React.fragment)])\r\n\r\n /// \r\n /// The `useContext` hook. Accepts a context object (the value returned from React.createContext) and returns the current context value for that context.\r\n /// The current context value is determined by the value prop of the nearest Provider component above the calling component in the tree.\r\n /// \r\n /// A context object returned from a previous React.createContext call.\r\n static member useContext(contextObject: Fable.React.IContext<'a>) = Interop.reactApi.useContext contextObject\r\n\r\n /// \r\n /// Creates a callback that keeps the same reference during the entire lifecycle of the component while having access to\r\n /// the current value of the dependencies on every call.\r\n ///\r\n /// This hook should only be used for (like a dispatch) functions that are not used to provide information during render.\r\n ///\r\n /// This is not a complete replacement for the `useCallback` hook. It returns a callback that does not need explicit\r\n /// dependency declarations and never causes a re-render.\r\n /// \r\n /// The function call.\r\n static member useCallbackRef(callback: ('a -> 'b)) =\r\n let lastRenderCallbackRef = React.useRef(callback)\r\n\r\n let callbackRef =\r\n React.useCallback((fun (arg: 'a) ->\r\n lastRenderCallbackRef.current(arg)\r\n ), [||])\r\n\r\n React.useLayoutEffect(fun () ->\r\n // render is commited - it's safe to update the callback\r\n lastRenderCallbackRef.current <- callback\r\n )\r\n\r\n callbackRef\r\n\r\n /// \r\n /// Just like React.useState except that the updater function uses the previous state of the state variable as input and allows you to compute the next value using it.\r\n /// This is extremely useful in cases where defining helpers functions inside the definition of a React function component would actually cache the initial value (because they become closures) during first render as opposed to using the current value after multiple render cycles.\r\n /// \r\n static member useStateWithUpdater (initial: 't) : ('t * (('t -> 't) -> unit)) = import \"useState\" \"react\"\r\n\r\n /// \r\n /// Forwards a given ref, allowing you to pass it further down to a child.\r\n /// \r\n /// A render function that returns an element.\r\n static member forwardRef(render: ('props * IRefValue<'t> -> ReactElement)) : ('props * IRefValue<'t> -> ReactElement) =\r\n let forwardRefType = Interop.reactApi.forwardRef(Func<'props,IRefValue<'t>,ReactElement> (fun props ref -> render(props,ref)))\r\n fun (props, ref) ->\r\n Interop.reactApi.createElement(forwardRefType, {| props = props; ref = ref |} |> JsInterop.toPlainJsObj)\r\n\r\n /// \r\n /// Forwards a given ref, allowing you to pass it further down to a child.\r\n /// \r\n /// The component name to display in the React dev tools.\r\n /// A render function that returns an element.\r\n static member forwardRef(name: string, render: ('props * IRefValue<'t> -> ReactElement)) : ('props * IRefValue<'t> -> ReactElement) =\r\n let forwardRefType = Interop.reactApi.forwardRef(Func<'props,IRefValue<'t>,ReactElement> (fun props ref -> render(props,ref)))\r\n render?displayName <- name\r\n fun (props, ref) ->\r\n Interop.reactApi.createElement(forwardRefType, {| props = props; ref = ref |} |> JsInterop.toPlainJsObj)\r\n\r\n /// \r\n /// Highlights potential problems in an application by enabling additional checks\r\n /// and warnings for descendants. As well as double rendering function components.\r\n ///\r\n /// This *does not do anything* in production mode. You do not need to hide it\r\n /// with compiler directives.\r\n /// \r\n /// The elements that will be rendered with additional\r\n /// checks and warnings.\r\n static member strictMode(children: ReactElement list) =\r\n Interop.reactApi.createElement(Interop.reactApi.StrictMode, None, children)\r\n\r\n /// \r\n /// Lets you define a component that is loaded dynamically. Which helps with code\r\n /// splitting.\r\n /// \r\n /// \r\n /// The dynamicImport of the component.\r\n ///\r\n /// Such as `let asyncComponent : JS.Promise ReactElement> = JsInterop.importDynamic \"./CodeSplitting.fs\"`.\r\n ///\r\n /// Where you would then pass in `asyncComponent`.\r\n /// \r\n /// The props to be passed to the component.\r\n static member lazy'<'t,'props>(dynamicImport: JS.Promise<'t>, props: 'props) =\r\n Interop.reactApi.createElement(Interop.reactApi.lazy'(fun () -> dynamicImport),props)\r\n /// \r\n /// Lets you define a component that is loaded dynamically. Which helps with code\r\n /// splitting.\r\n /// \r\n /// \r\n /// The dynamicImport of the component.\r\n ///\r\n /// Such as `let asyncComponent : JS.Promise ReactElement> = JsInterop.importDynamic \"./CodeSplitting.fs\"`.\r\n ///\r\n /// Where you would then pass in `fun () -> asyncComponent`.\r\n /// \r\n /// The props to be passed to the component.\r\n static member lazy'<'t,'props>(dynamicImport: unit -> JS.Promise<'t>, props: 'props) =\r\n Interop.reactApi.createElement(Interop.reactApi.lazy'(dynamicImport),props)\r\n\r\n /// \r\n /// Lets you specify a loading indicator whenever a child element is not yet ready\r\n /// to render.\r\n ///\r\n /// Currently this is only usable with `React.lazy'`.\r\n /// \r\n /// The elements that will be rendered within the suspense block.\r\n static member suspense(children: ReactElement list) =\r\n Interop.reactApi.createElement(Interop.reactApi.Suspense, {| fallback = Html.none |} |> JsInterop.toPlainJsObj, children)\r\n /// \r\n /// Lets you specify a loading indicator whenever a child element is not yet ready\r\n /// to render.\r\n ///\r\n /// Currently this is only usable with `React.lazy'`.\r\n /// \r\n /// The elements that will be rendered within the suspense block.\r\n /// The element that will be rendered while the children are loading.\r\n static member suspense(children: ReactElement list, fallback: ReactElement) =\r\n Interop.reactApi.createElement(Interop.reactApi.Suspense, {| fallback = fallback |} |> JsInterop.toPlainJsObj, children)\r\n\r\n /// \r\n /// Allows you to override the behavior of a given ref.\r\n ///\r\n /// \r\n /// The ref you want to override.\r\n /// A function that returns a new ref with changed behavior.\r\n static member useImperativeHandle(ref: IRefValue<'t>, createHandle: unit -> 't) =\r\n Interop.reactApi.useImperativeHandleNoDeps ref createHandle\r\n\r\n /// \r\n /// Lets you specify a loading indicator whenever a child element is not yet ready\r\n /// to render.\r\n ///\r\n /// Currently this is only usable with `React.lazy'`.\r\n /// \r\n /// The ref you want to override.\r\n /// A function that returns a new ref with changed behavior.\r\n /// An array of dependencies upon which the imperative handle function depends.\r\n static member useImperativeHandle(ref: IRefValue<'t>, createHandle: unit -> 't, dependencies: obj []) =\r\n Interop.reactApi.useImperativeHandle ref createHandle dependencies\r\n\r\n /// \r\n /// Creates a CancellationToken that is cancelled when a component is unmounted.\r\n /// \r\n static member inline useCancellationToken () =\r\n let cts = React.useRef(new System.Threading.CancellationTokenSource())\r\n let token = React.useRef(cts.current.Token)\r\n\r\n React.useEffectOnce(fun () ->\r\n React.createDisposable(fun () ->\r\n cts.current.Cancel()\r\n cts.current.Dispose()\r\n )\r\n )\r\n\r\n token\r\n\r\n[]\r\nmodule ReactOverloadMagic =\r\n type React with\r\n /// Creates a disposable instance by merging multiple IDisposables.\r\n static member inline createDisposable([] disposables: #IDisposable []) =\r\n React.createDisposable(fun () ->\r\n disposables\r\n |> Array.iter (fun d -> d.Dispose())\r\n )\r\n /// Creates a disposable instance by merging multiple IDisposable options.\r\n static member inline createDisposable([] disposables: #IDisposable option []) =\r\n React.createDisposable(fun () ->\r\n disposables\r\n |> Array.iter (Option.iter (fun d -> d.Dispose()))\r\n )\r\n /// Creates a disposable instance by merging multiple IDisposable refs.\r\n static member inline createDisposable([] disposables: IRefValue<#IDisposable> []) =\r\n React.createDisposable(fun () ->\r\n disposables\r\n |> Array.iter (fun d -> d.current.Dispose())\r\n )\r\n /// Creates a disposable instance by merging multiple IDisposable refs.\r\n static member inline createDisposable([] disposables: IRefValue<#IDisposable option> []) =\r\n React.createDisposable(fun () ->\r\n disposables\r\n |> Array.iter (fun d -> d.current |> Option.iter (fun d -> d.Dispose()))\r\n )\r\n\r\n /// The `useState` hook that create a state variable for React function components.\r\n static member useState<'t>(initial: 't) = Interop.reactApi.useState<'t,'t>(initial)\r\n","\r\n[]\r\nmodule Promise\r\n\r\n#nowarn \"1182\" // Unused values\r\n\r\nopen System\r\nopen Fable.Core\r\nopen Fable.Core.JsInterop\r\n\r\nlet inline private (!!) (x:obj): 'T = unbox x\r\n\r\n[]\r\n/// The promise function receives two other function parameters: success and fail\r\nlet create (f: ('T->unit)->(Exception->unit)->unit): JS.Promise<'T> = jsNative\r\n\r\n[ setTimeout(resolve, $0))\")>]\r\nlet sleep (ms: int): JS.Promise = jsNative\r\n\r\n[]\r\nlet lift<'T> (a: 'T): JS.Promise<'T> = jsNative\r\n\r\n/// Creates promise (in rejected state) with supplied reason.\r\nlet reject<'T> reason : JS.Promise<'T> = JS.Constructors.Promise.reject<'T> reason\r\n\r\n[]\r\nlet bind (a: 'T->JS.Promise<'R>) (pr: JS.Promise<'T>): JS.Promise<'R> = jsNative\r\n\r\n[]\r\nlet map (a: 'T->'R) (pr: JS.Promise<'T>): JS.Promise<'R> = jsNative\r\n\r\n[]\r\nlet iter (a: 'T->unit) (pr: JS.Promise<'T>): unit = jsNative\r\n\r\n[]\r\n/// This version of `catch` fakes a function returning just 'T, as opposed to `Promise<'T>`. If you need to return `Promise<'T>`, use `catchBind`.\r\nlet catch (fail: Exception->'T) (pr: JS.Promise<'T>): JS.Promise<'T> = jsNative\r\n\r\n[]\r\n/// This is a version of `catch` that fakes a function returning Promise<'T> as opposed to just 'T. If you need to return just 'T, use `catch`.\r\nlet catchBind (fail: Exception->JS.Promise<'T>) (pr: JS.Promise<'T>): JS.Promise<'T> = jsNative\r\n\r\n[]\r\n/// Used to catch errors at the end of a promise chain.\r\nlet catchEnd (fail: Exception->unit) (pr: JS.Promise<'T>): unit = jsNative\r\n\r\n[]\r\n/// A combination of `map/bind` and `catch/catchBind`, this function applies the `success` continuation when the input promise resolves successfully, or `fail` continuation when the input promise fails. Both continuations may return either naked value `'R` or another promise `Promise<'R>`. Use the erased-cast operator `!^` to cast values when returning, for example:\r\n/// ```\r\n/// somePromise |> Promise.either (fun x -> !^(string x)) (fun err -> ^!(Promise.lift err.Message))\r\n/// ```\r\nlet either (success: 'T->U2<'R, JS.Promise<'R>>) (fail: 'E->U2<'R, JS.Promise<'R>>) (pr: JS.Promise<'T>): JS.Promise<'R> = jsNative\r\n\r\n[]\r\nlet eitherEnd (success: 'T->unit) (fail: 'E->unit) (pr: JS.Promise<'T>): unit = jsNative\r\n\r\n[]\r\nlet start (pr: JS.Promise<'T>): unit = jsNative\r\n\r\n[]\r\nlet tryStart (fail: Exception->unit) (pr: JS.Promise<'T>): unit = jsNative\r\n\r\n[]\r\nlet Parallel (pr: seq>): JS.Promise<'T[]> = jsNative\r\n\r\n[]\r\nlet all (pr: seq>): JS.Promise<'T[]> = jsNative\r\n\r\nlet result (a: JS.Promise<'A>): JS.Promise> =\r\n either (U2.Case1 << Ok) (U2.Case1 << Error) a\r\n\r\nlet mapResult (fn: 'A -> 'B) (a: JS.Promise>): JS.Promise> =\r\n a |> map (Result.map fn)\r\n\r\nlet bindResult (fn: 'A -> JS.Promise<'B>) (a: JS.Promise>): JS.Promise> =\r\n a |> bind (fun a ->\r\n match a with\r\n | Ok a ->\r\n result (fn a)\r\n | Error e ->\r\n lift (Error e))\r\n\r\nlet mapResultError (fn: 'B -> 'C) (a: JS.Promise>): JS.Promise> =\r\n a |> map (Result.mapError fn)\r\n\r\nlet tap (fn: 'A -> unit) (a: JS.Promise<'A>): JS.Promise<'A> =\r\n a |> map (fun x -> fn x; x)\r\n\r\ntype PromiseBuilder() =\r\n []\r\n member x.Bind(p: JS.Promise<'T>, f: 'T->JS.Promise<'R>): JS.Promise<'R> = jsNative\r\n\r\n [ $2)\")>]\r\n member x.Combine(p1: JS.Promise, p2: JS.Promise<'T>): JS.Promise<'T> = jsNative\r\n\r\n member x.For(seq: seq<'T>, body: 'T->JS.Promise): JS.Promise =\r\n // (lift (), seq)\r\n // ||> Seq.fold (fun p a ->\r\n // bind (fun () -> body a) p)\r\n let mutable p = lift ()\r\n for a in seq do\r\n p <- !!p?``then``(fun () -> body a)\r\n p\r\n\r\n []\r\n member x.For(p: JS.Promise<'T>, f: 'T->JS.Promise<'R>): JS.Promise<'R> = jsNative\r\n\r\n member x.While(guard, p): JS.Promise =\r\n if guard()\r\n then bind (fun () -> x.While(guard, p)) p\r\n else lift()\r\n\r\n []\r\n member x.Return(a: 'T): JS.Promise<'T> = jsNative\r\n\r\n []\r\n member x.ReturnFrom(p: JS.Promise<'T>): JS.Promise<'T> = jsNative\r\n\r\n []\r\n member x.Zero(): JS.Promise = jsNative\r\n\r\n member x.TryFinally(p: JS.Promise<'T>, compensation: unit->unit): JS.Promise<'T> =\r\n either (fun (x: 'T) -> compensation(); U2.Case1 x) (fun er -> compensation(); raise !!er) p\r\n\r\n []\r\n member x.TryWith(p: JS.Promise<'T>, catchHandler: Exception->JS.Promise<'T>): JS.Promise<'T> = jsNative\r\n\r\n member x.Delay(generator: unit->JS.Promise<'T>): JS.Promise<'T> =\r\n !!createObj[\r\n \"then\" ==> fun f1 f2 ->\r\n try generator()?``then``(f1,f2)\r\n with er ->\r\n if box f2 = null\r\n then !!JS.Constructors.Promise.reject(er)\r\n else\r\n try !!JS.Constructors.Promise.resolve(f2(er))\r\n with er -> !!JS.Constructors.Promise.reject(er)\r\n \"catch\" ==> fun f ->\r\n try generator()?catch(f)\r\n with er ->\r\n try !!JS.Constructors.Promise.resolve(f(er))\r\n with er -> !!JS.Constructors.Promise.reject(er)\r\n ]\r\n\r\n member x.Run(p:JS.Promise<'T>): JS.Promise<'T> =\r\n create (fun success fail ->\r\n try\r\n let p : JS.Promise<'T> = !!JS.Constructors.Promise.resolve(p)\r\n p?``then``(success, fail)\r\n with\r\n er -> fail(er)\r\n )\r\n\r\n member x.Using<'T, 'R when 'T :> IDisposable>(resource: 'T, binder: 'T->JS.Promise<'R>): JS.Promise<'R> =\r\n x.TryFinally(binder(resource), fun () -> resource.Dispose())\r\n\r\n [ $3(a,b))\")>]\r\n []\r\n member x.Merge(a: JS.Promise<'T1>, b: JS.Promise<'T2>, [] resultSelector : 'T1 -> 'T2 -> 'R): JS.Promise<'R> = jsNative\r\n","[]\r\nmodule PromiseImpl\r\n\r\nlet promise = Promise.PromiseBuilder()","namespace Feliz.UseElmish\r\n\r\nopen Feliz\r\nopen Elmish\r\nopen Fable.Core\r\n\r\n[]\r\ntype internal RingState<'item> =\r\n | Writable of wx:'item array * ix:int\r\n | ReadWritable of rw:'item array * wix:int * rix:int\r\n\r\ntype internal RingBuffer<'item>(size) =\r\n let doubleSize ix (items: 'item array) =\r\n seq { yield! items |> Seq.skip ix\r\n yield! items |> Seq.take ix\r\n for _ in 0..items.Length do\r\n yield Unchecked.defaultof<'item> }\r\n |> Array.ofSeq\r\n\r\n let mutable state : 'item RingState =\r\n Writable (Array.zeroCreate (max size 10), 0)\r\n\r\n member _.Pop() =\r\n match state with\r\n | ReadWritable (items, wix, rix) ->\r\n let rix' = (rix + 1) % items.Length\r\n match rix' = wix with\r\n | true ->\r\n state <- Writable(items, wix)\r\n | _ ->\r\n state <- ReadWritable(items, wix, rix')\r\n Some items.[rix]\r\n | _ ->\r\n None\r\n\r\n member _.Push (item:'item) =\r\n match state with\r\n | Writable (items, ix) ->\r\n items.[ix] <- item\r\n let wix = (ix + 1) % items.Length\r\n state <- ReadWritable(items, wix, ix)\r\n | ReadWritable (items, wix, rix) ->\r\n items.[wix] <- item\r\n let wix' = (wix + 1) % items.Length\r\n match wix' = rix with\r\n | true ->\r\n state <- ReadWritable(items |> doubleSize rix, items.Length, 0)\r\n | _ ->\r\n state <- ReadWritable(items, wix', rix)\r\n\r\n[]\r\nmodule UseElmishExtensions =\r\n let inline internal getDisposable (record: 'State) =\r\n match box record with\r\n | :? System.IDisposable as disposable -> Some disposable\r\n | _ -> None\r\n\r\n type React with\r\n static member useElmish<'State,'Msg> (init: 'State * Cmd<'Msg>, update: 'Msg -> 'State -> 'State * Cmd<'Msg>, dependencies: obj[]) =\r\n let state = React.useRef(fst init)\r\n let ring = React.useRef(RingBuffer(10))\r\n let childState, setChildState = React.useState(fst init)\r\n let token = React.useCancellationToken()\r\n let setChildState () = \r\n JS.setTimeout(fun () ->\r\n if not token.current.IsCancellationRequested then\r\n setChildState state.current\r\n ) 0 |> ignore\r\n\r\n let rec dispatch (msg: 'Msg) =\r\n promise {\r\n let mutable nextMsg = Some msg\r\n\r\n while nextMsg.IsSome && not (token.current.IsCancellationRequested) do\r\n let msg = nextMsg.Value\r\n let (state', cmd') = update msg state.current\r\n cmd' |> List.iter (fun sub -> sub dispatch)\r\n nextMsg <- ring.current.Pop()\r\n state.current <- state'\r\n setChildState()\r\n }\r\n |> Promise.start\r\n\r\n let dispatch = React.useCallbackRef(dispatch)\r\n\r\n React.useEffect((fun () -> \r\n React.createDisposable(fun () -> \r\n getDisposable state.current \r\n |> Option.iter (fun o -> o.Dispose())\r\n )\r\n ), dependencies)\r\n\r\n React.useEffect((fun () ->\r\n state.current <- fst init\r\n setChildState()\r\n\r\n snd init\r\n |> List.iter (fun sub -> sub dispatch)\r\n ), dependencies)\r\n\r\n React.useEffect(fun () -> ring.current.Pop() |> Option.iter dispatch)\r\n\r\n (childState, dispatch)\r\n\r\n static member inline useElmish<'State,'Msg> (init: 'State * Cmd<'Msg>, update: 'Msg -> 'State -> 'State * Cmd<'Msg>) =\r\n React.useElmish(init, update, [||])\r\n\r\n static member useElmish<'State,'Msg> (init: unit -> 'State * Cmd<'Msg>, update: 'Msg -> 'State -> 'State * Cmd<'Msg>, dependencies: obj[]) =\r\n let init = React.useMemo(init, dependencies)\r\n\r\n React.useElmish(init, update, dependencies)\r\n\r\n static member inline useElmish<'State,'Msg> (init: unit -> 'State * Cmd<'Msg>, update: 'Msg -> 'State -> 'State * Cmd<'Msg>) =\r\n React.useElmish(init, update, [||])\r\n","[]\nmodule HospitalsChart\n\nopen System\nopen Elmish\nopen Feliz\nopen Feliz.ElmishComponents\nopen Browser\n\nopen Types\nopen Data.Patients\nopen Data.Hospitals\nopen Highcharts\n\n\ntype Scope =\n | Totals\n | Projection\n | Facility of FacilityCode\n\ntype State = {\n scaleType : ScaleType\n facData : FacilityAssets []\n patientsData: PatientsStats []\n error: string option\n facilities: FacilityCode list\n scope: Scope\n RangeSelectionButtonIndex: int\n } with\n static member initial =\n {\n scaleType = Linear\n facData = [||]\n patientsData = [||]\n error = None\n facilities = []\n scope = Totals\n RangeSelectionButtonIndex = 1\n }\n static member switchBreakdown breakdown state = { state with scope = breakdown }\n\ntype Msg =\n | ConsumeHospitalsData of Result\n | ConsumePatientsData of Result\n | ConsumeServerError of exn\n | ScaleTypeChanged of ScaleType\n | SwitchBreakdown of Scope\n | RangeSelectionChanged of int\n\nlet init () : State * Cmd =\n let cmd = Cmd.OfAsync.either getOrFetch () ConsumeHospitalsData ConsumeServerError\n let cmd2 = Cmd.OfAsync.either Data.Patients.getOrFetch () ConsumePatientsData ConsumeServerError\n State.initial, (cmd @ cmd2)\n\nlet update (msg: Msg) (state: State) : State * Cmd =\n match msg with\n | ConsumeHospitalsData (Ok data) ->\n { state with\n facData = data\n facilities = data |> getSortedFacilityCodes\n } |> State.switchBreakdown state.scope, Cmd.none\n | ConsumeHospitalsData (Error err) ->\n { state with error = Some err }, Cmd.none\n\n | ConsumePatientsData (Ok data) ->\n { state with\n patientsData = data\n } |> State.switchBreakdown state.scope, Cmd.none\n | ConsumePatientsData (Error err) ->\n { state with error = Some err }, Cmd.none\n\n | ConsumeServerError ex ->\n { state with error = Some ex.Message }, Cmd.none\n | ScaleTypeChanged scaleType ->\n { state with scaleType = scaleType }, Cmd.none\n | SwitchBreakdown breakdown ->\n (state |> State.switchBreakdown breakdown), Cmd.none\n | RangeSelectionChanged buttonIndex ->\n { state with RangeSelectionButtonIndex = buttonIndex }, Cmd.none\n\nlet getAllScopes state = seq {\n yield Totals, I18N.t \"charts.hospitals.allHospitals\"\n yield Projection, I18N.t \"charts.hospitals.projection\"\n for fcode in state.facilities do\n let _, name = fcode |> facilitySeriesInfo\n yield Facility fcode, name\n}\n\n\nlet zeroToNone value =\n match value with\n | None -> None\n | Some x ->\n if x = 0 then None\n else Some x\n\nlet extractFacilityDataPoint (scope: Scope) (atype:AssetType) (ctype: CountType) : (FacilityAssets -> (JsTimestamp * int option)) =\n match scope with\n | Totals\n | Projection ->\n fun (fa: FacilityAssets) -> fa.JsDate12h, (fa.overall |> Assets.getValue ctype atype)\n | Facility fcode ->\n fun fa ->\n let value =\n fa.perHospital\n |> Map.tryFind fcode\n |> Option.bind (Assets.getValue ctype atype)\n |> zeroToNone\n fa.JsDate12h, value\n\nlet extractPatientDataPoint scope cType : (PatientsStats -> (JsTimestamp * int option)) =\n let extractTotalsCount : TotalPatientStats -> int option =\n match cType with\n | Beds -> fun ps -> ps.inHospital.today\n | Icus -> fun ps -> ps.icu.today\n | Vents -> fun _ -> failwithf \"no vents in data\"\n let extractFacilityCount : FacilityPatientStats -> int option =\n match cType with\n | Beds -> fun ps -> ps.inHospital.today\n | Icus -> fun ps -> ps.icu.today\n | Vents -> fun _ -> failwithf \"no vents in data\"\n\n match scope with\n | Totals ->\n fun (fa: PatientsStats) -> fa.JsDate12h, (fa.total |> extractTotalsCount)\n | Projection ->\n fun (fa: PatientsStats) -> fa.JsDate12h, (fa.total |> extractTotalsCount)\n | Facility fcode ->\n fun (fa: PatientsStats) ->\n let value =\n fa.facilities\n |> Map.tryFind fcode\n |> Option.bind extractFacilityCount\n |> zeroToNone\n fa.JsDate12h, value\n\n\nlet renderChartOptions (state : State) dispatch =\n\n let projectDays = 40\n\n let yAxes = [|\n {|\n index = 0\n height = \"55%\"; top = \"0%\"\n offset = 0\n ``type`` = if state.scaleType=Linear then \"linear\" else \"logarithmic\"\n min = if state.scaleType=Linear then None else Some 1.0\n //floor = if scaleType=Linear then None else Some 1.0\n opposite = true // right side\n title = pojo {| text = I18N.t \"charts.hospitals.bedsShort\" |} // \"oseb\" |}\n //showFirstLabel = false\n tickInterval = if state.scaleType=Linear then None else Some 0.25\n gridZIndex = -1\n visible = true\n plotLines=[| {| value=0; color=\"black\"; |} |]\n |}\n {|\n index = 1\n height = \"40%\"; top = \"60%\"\n offset = 0\n ``type`` = if state.scaleType=Linear then \"linear\" else \"logarithmic\"\n min = if state.scaleType=Linear then None else Some 1.0\n //floor = if scaleType=Linear then None else Some 1.0\n opposite = true // right side\n title = pojo {| text = I18N.t \"charts.hospitals.bedsICUShort\" |} // \"oseb\" |}\n //showFirstLabel = false\n tickInterval = if state.scaleType=Linear then None else Some 0.25\n gridZIndex = -1\n visible = true\n plotLines=[| {| value=0; color=\"black\"; |} |]\n |}\n |]\n let getYAxis = function\n | Beds -> 0\n | Icus\n | Vents -> 1\n\n\n let extendFacilitiesData (data: ((JsTimestamp*option)[])) =\n match data with\n | [||] -> data\n | _ ->\n let startDate, point = data.[data.Length-1]\n //printfn \"xy %A\" (startDate, point)\n match point with\n | None -> data\n | Some 0 -> data\n | _ ->\n let extra = [| for i in 1..projectDays+1 -> startDate + 86400000.0*float i, point |]\n Array.append data extra\n\n let renderFacilitiesSeries (scope: Scope) (aType:AssetType) (cType: CountType) scaleBy color dash name =\n let renderPoint =\n match scaleBy with\n | 1.0 -> extractFacilityDataPoint scope aType cType\n | k ->\n let scale = fun (ts,x) -> ts, x |> Option.map (fun n -> float n * k |> int)\n extractFacilityDataPoint scope aType cType >> scale\n\n {|\n //visible = state.activeSeries |> Set.contains series\n ``type``=\"line\"\n color = color\n name = name\n dashStyle = dash |> DashStyle.toString\n showInLegend = true\n data =\n state.facData\n |> Seq.map renderPoint\n |> Seq.skipWhile (function\n | _, None -> true\n | _, Some 0 -> true\n | _ -> false)\n |> Array.ofSeq\n |> if scope=Projection then extendFacilitiesData else id\n yAxis = getYAxis aType\n options = pojo {| dataLabels = false |}\n |}\n |> pojo\n\n\n let renderPatientsProjection (scope: Scope) (aType:AssetType) color dash growthFactor limit name =\n let startDate, point =\n match state.patientsData with\n | [||] -> DateTime.Now |> jsTime, None\n | data -> data.[data.Length-1] |> extractPatientDataPoint scope aType\n {|\n ``type``=\"line\"\n color = color\n name = name\n showInLegend = false\n dashStyle = dash |> DashStyle.toString\n //lineWidth = \"1\"\n data =\n [| for i in 1..projectDays+1 do\n let k = Math.Pow(growthFactor,float i)\n match point with\n | Some 0\n | None -> ()\n | Some n ->\n let value = k * float n |> int\n if value < limit then\n yield startDate + 86400000.0*float i, point |> Option.map (fun n -> k * float n |> int)\n |]\n yAxis = getYAxis aType\n |}\n |> pojo\n\n let renderPatientsSeries (scope: Scope) (aType) color dash name =\n {|\n ``type``=\"spline\"\n color = color\n name = name\n dashStyle = dash |> DashStyle.toString\n data =\n state.patientsData\n |> Seq.map (extractPatientDataPoint scope aType)\n |> Seq.skipWhile (snd >> Option.isNone)\n |> Array.ofSeq\n yAxis = getYAxis aType\n |}\n |> pojo\n\n let growthFactor nDays =\n Math.Exp(Math.Log 2.0 / float nDays)\n\n let series = [|\n let gf7, gf14, gf21 = growthFactor 7, growthFactor 14, growthFactor 21\n\n let clr = \"#444\"\n if state.scope = Projection then\n yield renderFacilitiesSeries state.scope Beds Max 1.0 clr Dash (I18N.t \"charts.hospitals.bedsMax\")\n else\n yield pojo {| showInLegend = false; data=[||] |}\n\n yield renderFacilitiesSeries state.scope Beds Total 1.0 clr Solid (I18N.t \"charts.hospitals.bedsAll\")\n yield renderFacilitiesSeries state.scope Beds Total 0.7 \"#777\" Dash (I18N.t \"charts.hospitals.beds70\")\n //yield renderFacilitiesSeries state.scope Beds Free clr ShortDot \"Postelje, proste\"\n //yield renderFacilitiesSeries state.scope Beds Occupied clr Solid \"Postelje, zasedene\"\n yield renderPatientsSeries state.scope Beds clr Solid (I18N.t \"charts.hospitals.bedsFull\")\n\n let clr = \"#c44\"\n //yield renderFacilitiesSeries state.scope Icus Max clr Dash \"Intenzivne, maksimalno\"\n yield renderFacilitiesSeries state.scope Icus Total 1.0 clr Solid (I18N.t \"charts.hospitals.bedsICUAll\")\n yield renderFacilitiesSeries state.scope Icus Total 0.7 \"#c88\" Dash (I18N.t \"charts.hospitals.bedsICU70\")\n //yield renderFacilitiesSeries state.scope Icus Occupied clr Solid \"Intenzivne, zasedene\"\n yield renderPatientsSeries state.scope Icus clr Solid (I18N.t \"charts.hospitals.bedsICUFull\")\n if state.scope = Projection then\n let clr = \"#888\"\n yield renderPatientsProjection state.scope Beds clr ShortDash gf7 1100 (I18N.t \"charts.hospitals.projection7\")\n yield renderPatientsProjection state.scope Beds clr ShortDash gf14 1100 (I18N.t \"charts.hospitals.projection14\")\n yield renderPatientsProjection state.scope Beds clr ShortDash gf21 1100 (I18N.t \"charts.hospitals.projection21\")\n\n let clr = \"#c88\"\n yield renderPatientsProjection state.scope Icus clr ShortDash gf7 130 (I18N.t \"charts.hospitals.projection7\")\n yield renderPatientsProjection state.scope Icus clr ShortDash gf14 130 (I18N.t \"charts.hospitals.projection14\")\n yield renderPatientsProjection state.scope Icus clr ShortDash gf21 130 (I18N.t \"charts.hospitals.projection21\")\n\n\n //let clr = \"#4ad\"\n //yield renderFacilitiesSeries state.scope Vents Total clr Dash \"Respiratorji, vsi\"\n //yield renderFacilitiesSeries state.scope Vents Occupied clr Solid \"Respiratorji, v uporabi\"\n |]\n\n let onRangeSelectorButtonClick(buttonIndex: int) =\n let res (_ : Event) =\n RangeSelectionChanged buttonIndex |> dispatch\n true\n res\n\n let baseOptions =\n basicChartOptions\n state.scaleType \"hospitals-chart\"\n state.RangeSelectionButtonIndex onRangeSelectorButtonClick\n {| baseOptions with\n yAxis = yAxes\n series = series\n legend = pojo\n {|\n enabled = Some true\n title = \"\"\n align = \"left\"\n verticalAlign = \"top\"\n borderColor = \"#ddd\"\n borderWidth = 1\n //labelFormatter = string //fun series -> series.name\n layout = \"vertical\"\n floating = true\n x = 20\n y = 30\n backgroundColor = \"rgba(255,255,255,0.5)\"\n |}\n xAxis = baseOptions.xAxis |> Array.map (fun xAxis ->\n if false //state.scope = Projection\n then\n {| xAxis with\n plotLines=[| {| value=jsTime <| DateTime.Now; label=None |} |]\n plotBands=[|\n {| ``from``=jsTime <| DateTime(2020,2,29);\n ``to``=jsTime <| DateTime.Now\n color=\"transparent\"\n label={| align=\"center\"; text=I18N.t \"charts.hospitals.data\" |}\n |}\n {| ``from``=jsTime <| DateTime.Today;\n ``to``=jsTime <| DateTime(2020,3,20) + TimeSpan.FromDays (float projectDays)\n color=\"transparent\"\n label={| align=\"center\"; text=(I18N.t \"charts.hospitals.projection\") |}\n |}\n |]\n |}\n else {| xAxis with plotLines=[||]; plotBands=[||] |}\n )\n plotOptions = pojo\n {|\n spline = pojo {| dataLabels = pojo {| enabled = true |} |}\n line = pojo {| dataLabels = pojo {| enabled = false |}; marker = pojo {| enabled = false |} |}\n |}\n |}\n\nlet renderChartContainer state dispatch =\n Html.div [\n prop.style [ style.height 480 ]\n prop.className \"highcharts-wrapper\"\n prop.children [\n renderChartOptions state dispatch\n |> chartFromWindow\n ]\n ]\n\nlet renderTable (state: State) dispatch =\n\n let getFacilityDp (breakdown: Scope) (atype:AssetType) (ctype: CountType) =\n let renderPoint = extractFacilityDataPoint breakdown atype ctype\n match state.facData with\n | [||]\n | [| _ |] -> None\n | data ->\n seq {\n for i = data.Length-1 downto data.Length / 2 do\n yield data.[i]\n }\n |> Seq.map (renderPoint >> snd)\n |> Seq.skipWhile Option.isNone\n |> Seq.take 1\n |> Seq.tryExactlyOne\n |> Option.flatten\n\n let getPatientsDp (breakdown: Scope) (atype:AssetType) =\n let renderPoint = extractPatientDataPoint breakdown atype\n match state.patientsData with\n | [||]\n | [| _ |] -> None\n | data ->\n seq {\n yield data.[data.Length-1]\n yield data.[data.Length-2]\n }\n |> Seq.map (renderPoint >> snd)\n |> Seq.skipWhile Option.isNone\n |> Seq.take 1\n |> Seq.tryExactlyOne\n |> Option.flatten\n\n let renderFacilityCells scope (facilityName: string) = [\n yield Html.th [\n prop.className \"text-left\"\n prop.text facilityName\n ]\n\n let numericCell (pt: int option) =\n Html.td [ prop.text (pt |> Option.map string |> Option.defaultValue \"\") ]\n\n // postelje\n let cur = getPatientsDp scope Beds\n let total = getFacilityDp scope Beds Total\n //let free = getFree cur total\n let free = getFacilityDp scope Beds Free\n yield free |> numericCell\n yield cur |> numericCell\n yield total |> numericCell\n yield getFacilityDp scope Beds Max |> numericCell\n // icu\n let cur = getPatientsDp scope Icus\n let total = getFacilityDp scope Icus Total\n //let free = getFree cur total\n let free = getFacilityDp scope Icus Free\n yield free |> numericCell\n yield cur |> numericCell\n yield total |> numericCell\n yield getFacilityDp scope Icus Max |> numericCell\n // resp\n //let cur = getPatientsDp scope Vents\n let cur = getFacilityDp scope Vents Occupied\n let total = getFacilityDp scope Vents Total\n //let free = getFree cur total\n let free = getFacilityDp scope Vents Free\n yield free |> numericCell\n yield cur |> numericCell\n yield total |> numericCell\n yield Html.td []\n ]\n\n Html.table [\n prop.className \"facilities-navigate b-table-sticky-header b-table table-striped table-hover table-bordered text-lg-right\"\n prop.style [ style.width (length.percent 100.0); style.fontSize 16 ]\n prop.children [\n Html.thead [\n prop.children [\n Html.tableRow [\n prop.className \"text-center\"\n prop.children [\n Html.th []\n Html.th [ prop.text (I18N.t \"charts.hospitals.bedsShort\"); prop.colSpan 4 ]\n Html.th [ prop.text (I18N.t \"charts.hospitals.bedsICUShort\"); prop.colSpan 4 ]\n Html.th [ prop.text (I18N.t \"charts.hospitals.ventilators\"); prop.colSpan 4 ]\n ]\n ]\n Html.tableRow [\n prop.children [\n Html.th []\n // postelje\n Html.th [ prop.text (I18N.t \"charts.hospitals.empty\") ]\n Html.th [ prop.text (I18N.t \"charts.hospitals.full\") ]\n Html.th [ prop.text (I18N.t \"charts.hospitals.all\") ]\n Html.th [ prop.text (I18N.t \"charts.hospitals.max\") ]\n // icu\n Html.th [ prop.text (I18N.t \"charts.hospitals.empty\") ]\n Html.th [ prop.text (I18N.t \"charts.hospitals.full\") ]\n Html.th [ prop.text (I18N.t \"charts.hospitals.all\") ]\n Html.th [ prop.text (I18N.t \"charts.hospitals.max\") ]\n // vents\n Html.th [ prop.text (I18N.t \"charts.hospitals.empty\") ]\n Html.th [ prop.text (I18N.t \"charts.hospitals.full\") ]\n Html.th [ prop.text (I18N.t \"charts.hospitals.all\") ]\n Html.th [ prop.text (I18N.t \"charts.hospitals.max\") ]\n ]\n ]\n ]\n ]\n Html.tbody [\n prop.children [\n for scope, facilityName in getAllScopes state do\n if scope <> Projection then\n yield Html.tableRow [\n yield prop.children (renderFacilityCells scope facilityName)\n if scope = state.scope then\n yield prop.className \"current highlight\" // bg-light\"\n yield prop.style [\n style.fontWeight.bold;\n style.cursor.defaultCursor\n style.backgroundColor \"#ccc\"\n ]\n else\n yield prop.onClick (fun _ -> SwitchBreakdown scope |> dispatch)\n yield prop.style [ style.cursor.pointer ]\n ]\n ]\n ]\n ]\n ]\n\n\nlet renderScopeSelector state scope (name:string) onClick =\n Html.div [\n prop.onClick onClick\n Utils.classes\n [(true, \"btn btn-sm metric-selector\")\n (state.scope = scope, \"metric-selector--selected\") ]\n prop.text name\n ]\n\nlet renderBreakdownSelectors state dispatch =\n Html.div [\n prop.className \"metrics-selectors\"\n prop.children (\n getAllScopes state\n |> Seq.map (fun (scope,name) ->\n renderScopeSelector state scope name (fun _ -> SwitchBreakdown scope |> dispatch)\n ) ) ]\n\nlet render (state : State) dispatch =\n match state.facData, state.error with\n | [||], None -> Html.div [ Utils.renderLoading ]\n | _, Some err -> Html.div [ Utils.renderErrorLoading err ]\n | _, None ->\n Html.div [\n Utils.renderChartTopControlRight\n (Utils.renderScaleSelector\n state.scaleType (ScaleTypeChanged >> dispatch))\n\n renderChartContainer state dispatch\n //Html.div [ prop.style [ style.height 10 ] ]\n renderBreakdownSelectors state dispatch\n Html.div [\n prop.style [ style.overflow.scroll ]\n prop.children [\n renderTable state dispatch\n ]\n ]\n ]\n\nlet hospitalsChart () =\n React.elmishComponent(\"HospitalsChart\", init (), update, render)\n","namespace Elmish.React\n\nopen Fable.React\nopen Elmish\n\ntype LazyProps<'model> = {\n model:'model\n render:unit->ReactElement\n equal:'model->'model->bool\n}\n\nmodule Components =\n type LazyView<'model>(props) =\n inherit Component,obj>(props)\n\n override this.shouldComponentUpdate(nextProps, _nextState) =\n not <| this.props.equal this.props.model nextProps.model\n\n override this.render () =\n this.props.render ()\n\n[]\nmodule Common =\n /// Avoid rendering the view unless the model has changed.\n /// equal: function to compare the previous and the new states\n /// view: function to render the model\n /// state: new state to render\n let lazyViewWith (equal:'model->'model->bool)\n (view:'model->ReactElement)\n (state:'model) =\n ofType,_,_>\n { render = fun () -> view state\n equal = equal\n model = state }\n []\n\n /// Avoid rendering the view unless the model has changed.\n /// equal: function to compare the previous and the new states\n /// view: function to render the model using the dispatch\n /// state: new state to render\n /// dispatch: dispatch function\n let lazyView2With (equal:'model->'model->bool)\n (view:'model->'msg Dispatch->ReactElement)\n (state:'model)\n (dispatch:'msg Dispatch) =\n ofType,_,_>\n { render = fun () -> view state dispatch\n equal = equal\n model = state }\n []\n\n /// Avoid rendering the view unless the model has changed.\n /// equal: function to compare the previous and the new model (a tuple of two states)\n /// view: function to render the model using the dispatch\n /// state1: new state to render\n /// state2: new state to render\n /// dispatch: dispatch function\n let lazyView3With (equal:_->_->bool) (view:_->_->_->ReactElement) state1 state2 (dispatch:'msg Dispatch) =\n ofType,_,_>\n { render = fun () -> view state1 state2 dispatch\n equal = equal\n model = (state1,state2) }\n []\n\n /// Avoid rendering the view unless the model has changed.\n /// view: function of model to render the view\n let lazyView (view:'model->ReactElement) =\n lazyViewWith (=) view\n\n /// Avoid rendering the view unless the model has changed.\n /// view: function of two arguments to render the model using the dispatch\n let lazyView2 (view:'model->'msg Dispatch->ReactElement) =\n lazyView2With (=) view\n\n /// Avoid rendering the view unless the model has changed.\n /// view: function of three arguments to render the model using the dispatch\n let lazyView3 (view:_->_->_->ReactElement) =\n lazyView3With (=) view\n\n\n","[]\nmodule MetricsComparisonChart\n\nopen System\nopen Elmish\nopen Feliz\nopen Feliz.ElmishComponents\nopen Browser\n\nopen Highcharts\nopen Types\n\nopen Data.Patients\n\nlet chartText = I18N.chartText \"metricsComparison\"\n\ntype MetricType =\n | Active\n | Today\n | ToDate\n\ntype FullMetricType = {\n MetricType: MetricType\n IsAveraged: bool\n}\n with\n member this.Name =\n match this.MetricType, this.IsAveraged with\n | Active, _ -> chartText \"showActive\"\n | Today, false -> chartText \"showToday\"\n | Today, true -> chartText \"show7DaysAverage\"\n | ToDate, _ -> chartText \"showToDate\"\n\nlet availableMetricTypes =\n [ { MetricType = Active; IsAveraged = false }\n { MetricType = Today; IsAveraged = false }\n { MetricType = ToDate; IsAveraged = false }\n { MetricType = Today; IsAveraged = true } ]\n\ntype Metric =\n | PerformedTestsToday\n | PerformedTestsToDate\n | ConfirmedCasesToday\n | ConfirmedCasesToDate\n | ActiveCases\n | RecoveredToDate\n | HospitalIn\n | HospitalOut\n | HospitalToday\n | HospitalToDate\n | HospitalOutToDate\n | ICUIn\n | ICUOut\n | ICUToday\n | ICUToDate\n | VentilatorIn\n | VentilatorOut\n | VentilatorToday\n | VentilatorToDate\n | DeceasedToday\n | DeceasedToDate\n | VacAdministeredToday\n | VacAdministeredToDate\n | VacAdministered2Today\n | VacAdministered2ToDate\n with\n static member UseStatsData metric =\n [PerformedTestsToday; PerformedTestsToDate; ConfirmedCasesToday\n ConfirmedCasesToDate; ActiveCases; RecoveredToDate\n VacAdministeredToday; VacAdministeredToDate; VacAdministered2Today; VacAdministered2ToDate]\n |> List.contains metric\n\ntype MetricCfg = {\n Metric: Metric\n Color : string\n Visible : bool\n Type : MetricType\n Id: string\n}\n\ntype Metrics = MetricCfg list\n\nmodule Metrics =\n let initial = [\n { Metric=ActiveCases; Color=\"#dba51d\"; Visible=true; Type=Active; Id=\"activeCases\" }\n { Metric=HospitalToday; Color=\"#be7A2a\"; Visible=true; Type=Active; Id=\"hospitalized\" }\n { Metric=ICUToday; Color=\"#d96756\"; Visible=true; Type=Active; Id=\"icu\" }\n // SLO-spec { Metric=VentilatorToday; Color=\"#bf5747\"; Visible=true; Type=Active; Id=\"ventilator\" }\n { Metric=PerformedTestsToday; Color=\"#19aebd\"; Visible=false; Type=Today; Id=\"testsPerformed\" }\n { Metric=ConfirmedCasesToday; Color=\"#bda506\"; Visible=true; Type=Today; Id=\"confirmedCases\" }\n { Metric=VacAdministeredToday; Color=\"#189a73\"; Visible=true; Type=Today; Id=\"vaccinationAdministered\" }\n { Metric=VacAdministered2Today; Color=\"#0e5842\"; Visible=true; Type=Today; Id=\"vaccinationAdministered2nd\" }\n // SLO-spec { Metric=HospitalIn; Color=\"#be7A2a\"; Visible=true; Type=Today; Id=\"hospitalAdmitted\" }\n // SLO-spec { Metric=HospitalOut; Color=\"#8cd4b2\"; Visible=false; Type=Today; Id=\"hospitalDischarged\" }\n // SLO-spec { Metric=ICUIn; Color=\"#d96756\"; Visible=true; Type=Today; Id=\"icuAdmitted\" }\n // SLO-spec { Metric=ICUOut; Color=\"#ffb4a2\"; Visible=false; Type=Today; Id=\"icuDischarged\" }\n // SLO-spec { Metric=VentilatorIn; Color=\"#bf5747\"; Visible=true; Type=Today; Id=\"ventilatorAdmitted\" }\n // SLO-spec { Metric=VentilatorOut; Color=\"#d99a91\"; Visible=false; Type=Today; Id=\"ventilatorDischarged\" }\n { Metric=DeceasedToday; Color=\"#000000\"; Visible=true; Type=Today; Id=\"deceased\" }\n { Metric=PerformedTestsToDate; Color=\"#19aebd\"; Visible=false; Type=ToDate; Id=\"testsPerformed\" }\n { Metric=ConfirmedCasesToDate; Color=\"#bda506\"; Visible=true; Type=ToDate; Id=\"confirmedCases\" }\n { Metric=RecoveredToDate; Color=\"#20b16d\"; Visible=true; Type=ToDate; Id=\"recovered\" }\n { Metric=VacAdministeredToDate; Color=\"#189a73\"; Visible=true; Type=ToDate; Id=\"vaccinationAdministered\" }\n { Metric=VacAdministered2ToDate;Color=\"#0e5842\"; Visible=true; Type=ToDate; Id=\"vaccinationAdministered2nd\" }\n { Metric=HospitalToDate; Color=\"#be7A2a\"; Visible=true; Type=ToDate; Id=\"hospitalAdmitted\" }\n // SLO-spec { Metric=HospitalOutToDate; Color=\"#8cd4b2\"; Visible=false; Type=ToDate; Id=\"hospitalDischarged\" }\n // SLO-spec { Metric=ICUToDate; Color=\"#d96756\"; Visible=false; Type=ToDate; Id=\"icuAdmitted\" }\n // SLO-spec { Metric=VentilatorToDate; Color=\"#d96756\"; Visible=false; Type=ToDate; Id=\"ventilatorAdmitted\" }\n { Metric=DeceasedToDate; Color=\"#000000\"; Visible=true; Type=ToDate; Id=\"deceased\" }\n ]\n /// Find a metric in the list and apply provided function to modify its value\n let update (fn: MetricCfg -> MetricCfg) metric metrics =\n metrics\n |> List.map (fun mc -> if mc.Metric = metric then fn mc else mc)\n\ntype State =\n { ScaleType : ScaleType\n MetricType : FullMetricType\n Metrics : Metrics\n StatsData : StatsData\n PatientsData : PatientsStats []\n Error : string option\n RangeSelectionButtonIndex: int\n }\n\ntype Msg =\n | ConsumePatientsData of Result\n | ConsumeServerError of exn\n | ToggleMetricVisible of Metric\n | ScaleTypeChanged of ScaleType\n | MetricTypeChanged of FullMetricType\n | RangeSelectionChanged of int\n\nlet init data : State * Cmd =\n let cmd = Cmd.OfAsync.either getOrFetch () ConsumePatientsData ConsumeServerError\n let state = {\n ScaleType = Linear\n MetricType = { MetricType = Today; IsAveraged = true }\n Metrics = Metrics.initial\n StatsData = data\n PatientsData = [||]\n Error = None\n RangeSelectionButtonIndex = 1\n }\n state, cmd\n\nlet update (msg: Msg) (state: State) : State * Cmd =\n match msg with\n | ConsumePatientsData (Ok data) ->\n { state with PatientsData = data; }, Cmd.none\n | ConsumePatientsData (Error err) ->\n { state with Error = Some err }, Cmd.none\n | ConsumeServerError ex ->\n { state with Error = Some ex.Message }, Cmd.none\n | ToggleMetricVisible metric ->\n { state with\n Metrics = state.Metrics\n |> Metrics.update (fun mc -> { mc with Visible = not mc.Visible}) metric\n }, Cmd.none\n | ScaleTypeChanged scaleType ->\n { state with ScaleType = scaleType }, Cmd.none\n | MetricTypeChanged metricType ->\n { state with\n MetricType = metricType\n }, Cmd.none\n | RangeSelectionChanged buttonIndex ->\n { state with RangeSelectionButtonIndex = buttonIndex }, Cmd.none\n\n\nlet statsDataGenerator metric =\n fun point ->\n match metric.Metric with\n | PerformedTestsToday -> point.Tests.Performed.Today\n | PerformedTestsToDate -> point.Tests.Performed.ToDate\n | ConfirmedCasesToday -> point.Cases.ConfirmedToday\n | ConfirmedCasesToDate -> point.Cases.ConfirmedToDate\n | ActiveCases -> point.Cases.Active\n | RecoveredToDate -> point.Cases.RecoveredToDate\n | VacAdministeredToday -> point.Vaccination.Administered.Today\n | VacAdministeredToDate -> point.Vaccination.Administered.ToDate\n | VacAdministered2Today -> point.Vaccination.Administered2nd.Today\n | VacAdministered2ToDate -> point.Vaccination.Administered2nd.ToDate\n | _ -> None\n\nlet patientsDataGenerator metric =\n fun point ->\n match metric.Metric with\n | HospitalToday -> point.total.inHospital.today\n | HospitalIn -> point.total.inHospital.``in``\n | HospitalOut -> point.total.inHospital.out\n | HospitalToDate -> point.total.inHospital.toDate\n | HospitalOutToDate -> point.total.outOfHospital.toDate\n | ICUToday -> point.total.icu.today\n | ICUIn -> point.total.icu.``in``\n | ICUOut -> point.total.icu.out\n | ICUToDate -> point.total.icu.toDate\n | VentilatorToday -> point.total.critical.today\n | VentilatorIn -> point.total.critical.``in``\n | VentilatorOut -> point.total.critical.out\n | VentilatorToDate -> point.total.critical.toDate\n | DeceasedToday -> point.total.deceased.today |> Utils.zeroToNone\n | DeceasedToDate -> point.total.deceased.toDate\n | _ -> None\n\n\nlet calcRunningAverage (data: (JsTimestamp * float)[]) =\n let daysOfMovingAverage = 7\n let roundToDecimals = 1\n\n let entriesCount = data.Length\n\n if entriesCount >= daysOfMovingAverage then\n let cutOff = daysOfMovingAverage / 2\n let averagedDataLength = entriesCount - cutOff * 2\n\n let averages = Array.zeroCreate averagedDataLength\n\n let daysOfMovingAverageFloat = float daysOfMovingAverage\n let mutable currentSum = 0.\n\n let movingAverageFunc index =\n let (_, entryValue) = data.[index]\n\n currentSum <- currentSum + entryValue\n\n match index with\n | index when index >= daysOfMovingAverage - 1 ->\n let date = data.[index - cutOff] |> fst\n let average =\n currentSum / daysOfMovingAverageFloat\n |> Utils.roundDecimals roundToDecimals\n\n averages.[index - (daysOfMovingAverage - 1)] <- (date, average)\n\n let valueToSubtract =\n data.[index - (daysOfMovingAverage - 1)] |> snd\n currentSum <- currentSum - valueToSubtract\n\n | _ -> ignore()\n\n for i in 0 .. entriesCount-1 do\n movingAverageFunc i\n\n averages\n else\n [||]\n\n\nlet prepareMetricsData (metric: MetricCfg) (state: State) =\n\n let statsData = statsDataGenerator metric\n let patientsData = patientsDataGenerator metric\n\n let untrimmedData =\n if Metric.UseStatsData metric.Metric then\n state.StatsData\n |> Seq.map (fun dp -> (dp.Date |> jsTime12h, statsData dp))\n else\n state.PatientsData\n |> Seq.map (fun dp -> (dp.Date |> jsTime12h, patientsData dp))\n\n let isValueMissing ((_, value): (JsTimestamp * int option)) = value.IsNone\n\n let intOptionToFloat value =\n match value with\n | Some x -> float x\n | None -> 0.\n\n let trimmedData =\n untrimmedData\n |> Seq.toArray\n |> Array.skipWhile isValueMissing\n |> Array.rev\n |> Array.skipWhile isValueMissing\n |> Array.rev\n |> Array.map(fun (date, value) -> (date, value |> intOptionToFloat))\n\n let finalData =\n match state.MetricType.IsAveraged with\n | true -> trimmedData |> calcRunningAverage\n | false -> trimmedData\n\n finalData\n\n\nlet renderChartOptions state dispatch =\n\n let allSeries = [\n let mutable startTime = DateTime.Today |> jsTime\n\n let visibleMetrics =\n state.Metrics\n |> Seq.filter (fun metric ->\n metric.Type = state.MetricType.MetricType\n && metric.Visible)\n\n for metric in visibleMetrics do\n let data = prepareMetricsData metric state\n\n if data |> Array.length > 0 then\n let metricStartTime = data.[0] |> fst\n if metricStartTime < startTime then\n startTime <- metricStartTime\n\n yield pojo\n {|\n visible = true\n ``type`` =\n if state.MetricType.IsAveraged then \"spline\"\n else \"line\"\n color = metric.Color\n name = chartText metric.Id\n marker =\n if metric.Metric = DeceasedToday then\n pojo {| enabled = true; symbol = \"diamond\" |}\n else pojo {| enabled = false |}\n lineWidth = if metric.Metric = DeceasedToday then 0 else 2\n states =\n if metric.Metric = DeceasedToday then\n pojo {| hover = {| lineWidthPlus = 0 |} |}\n else pojo {||}\n dashStyle =\n match state.MetricType.MetricType with\n | Active -> \"Solid\"\n | Today -> \"ShortDot\"\n | ToDate -> \"Dot\"\n data = data\n |}\n\n yield addContainmentMeasuresFlags startTime None |> pojo\n ]\n\n let onRangeSelectorButtonClick(buttonIndex: int) =\n let res (_ : Event) =\n RangeSelectionChanged buttonIndex |> dispatch\n true\n res\n\n let baseOptions =\n basicChartOptions state.ScaleType \"covid19-metrics-comparison\"\n state.RangeSelectionButtonIndex\n onRangeSelectorButtonClick\n {| baseOptions with\n series = List.toArray allSeries\n yAxis =\n let showFirstLabel = state.ScaleType <> Linear\n baseOptions.yAxis |> Array.map (fun ax -> {| ax with showFirstLabel = Some showFirstLabel |})\n |}\n\nlet renderChartContainer state dispatch =\n Html.div [\n prop.style [ style.height 480 ]\n prop.className \"highcharts-wrapper\"\n prop.children [\n renderChartOptions state dispatch\n |> chartFromWindow\n ]\n ]\n\nlet renderMetricSelector (metric : MetricCfg) dispatch =\n let style =\n if metric.Visible\n then [ style.backgroundColor metric.Color ; style.borderColor metric.Color ]\n else [ ]\n Html.div [\n prop.onClick (fun _ -> ToggleMetricVisible metric.Metric |> dispatch)\n Utils.classes\n [(true, \"btn btn-sm metric-selector\")\n (metric.Visible, \"metric-selector--selected\")]\n prop.style style\n prop.text (chartText metric.Id) ]\n\nlet renderMetricsSelectors state dispatch =\n Html.div [\n prop.className \"metrics-selectors\"\n prop.children [\n for mc in state.Metrics do\n if mc.Type = state.MetricType.MetricType then\n yield renderMetricSelector mc dispatch\n ]\n ]\n\nlet renderMetricTypeSelectors (activeMetricType: FullMetricType) dispatch =\n let renderMetricTypeSelector (metricTypeToRender: FullMetricType) =\n let active = metricTypeToRender = activeMetricType\n Html.div [\n prop.onClick (fun _ -> dispatch metricTypeToRender)\n Utils.classes\n [(true, \"chart-display-property-selector__item\")\n (active, \"selected\") ]\n prop.text (metricTypeToRender.Name)\n ]\n\n let metricTypesSelectors =\n availableMetricTypes\n |> List.map renderMetricTypeSelector\n\n Html.div [\n prop.className \"chart-display-property-selector\"\n prop.children (metricTypesSelectors)\n ]\n\nlet render state dispatch =\n match state.PatientsData, state.Error with\n | [||], None -> Html.div [ Utils.renderLoading ]\n | _, Some err -> Html.div [ Utils.renderErrorLoading err ]\n | _, None ->\n Html.div [\n Utils.renderChartTopControls [\n renderMetricTypeSelectors\n state.MetricType (MetricTypeChanged >> dispatch)\n Utils.renderScaleSelector\n state.ScaleType (ScaleTypeChanged >> dispatch)\n ]\n renderChartContainer state dispatch\n renderMetricsSelectors state dispatch\n ]\n\nlet metricsComparisonChart (props : {| data : StatsData |}) =\n React.elmishComponent(\"MetricsComparisonChart\", init props.data, update, render)\n","[]\nmodule DailyComparisonChart\n\nopen System\nopen Elmish\nopen Feliz\nopen Feliz.ElmishComponents\nopen Fable.Core.JsInterop\nopen Browser\n\nopen Types\nopen Highcharts\n\nopen Data.Patients\n\ntype DisplayType =\n | Active\n | New\n | Tests\n | PositivePct\n | HospitalAdmitted\n | HospitalDischarged\n | ICUAdmitted\n | Deceased\n | VacDosesAdministered\nwith\n static member UseStatsData dType = [ Active; New; Tests; PositivePct; VacDosesAdministered; ] |> List.contains dType\n static member all = [ New; Active; Tests; PositivePct; VacDosesAdministered; (* SLO-spec HospitalAdmitted; HospitalDischarged; ICUAdmitted; *)Deceased; ]\n static member getName = function\n | New -> I18N.t \"charts.dailyComparison.new\"\n | Active -> I18N.t \"charts.dailyComparison.active\"\n | Tests -> I18N.t \"charts.dailyComparison.tests\"\n | PositivePct -> I18N.t \"charts.dailyComparison.positivePct\"\n | HospitalAdmitted -> I18N.t \"charts.dailyComparison.hospitalAdmitted\"\n | HospitalDischarged -> I18N.t \"charts.dailyComparison.hospitalDischarged\"\n | ICUAdmitted -> I18N.t \"charts.dailyComparison.icuAdmitted\"\n | Deceased -> I18N.t \"charts.dailyComparison.deceased\"\n | VacDosesAdministered -> I18N.t \"charts.dailyComparison.vaccineDosesAdministered\"\n static member getColor = function\n | New -> \"#bda506\"\n | Active -> \"#dba51d\"\n | Tests -> \"#19aebd\"\n | PositivePct -> \"#665191\"\n | HospitalAdmitted -> \"#be7A2a\"\n | HospitalDischarged -> \"#20b16d\"\n | ICUAdmitted -> \"#d96756\"\n | Deceased -> \"#696969\"\n | VacDosesAdministered -> \"#189a73\"\n\ntype State = {\n StatsData: StatsData\n PatientsData : PatientsStats []\n Error : string option\n DisplayType: DisplayType\n}\n\ntype Msg =\n | ConsumePatientsData of Result\n | ConsumeServerError of exn\n | ChangeDisplayType of DisplayType\n\nlet init data : State * Cmd =\n let cmd = Cmd.OfAsync.either getOrFetch () ConsumePatientsData ConsumeServerError\n let state = {\n StatsData = data\n PatientsData = [||]\n Error = None\n DisplayType = New\n }\n state, cmd\n\nlet update (msg: Msg) (state: State) : State * Cmd =\n match msg with\n | ConsumePatientsData (Ok data) ->\n { state with PatientsData = data; }, Cmd.none\n | ConsumePatientsData (Error err) ->\n { state with Error = Some err }, Cmd.none\n | ConsumeServerError ex ->\n { state with Error = Some ex.Message }, Cmd.none\n | ChangeDisplayType dt ->\n { state with DisplayType = dt }, Cmd.none\n\nlet renderChartOptions (state : State) dispatch =\n\n let weeksShown = 6\n\n let percentageFormatter value =\n let valueF = float value / 100.0\n sprintf \"%0.2f%%\" valueF\n\n let tooltipFormatter state jsThis =\n let category = jsThis?x\n let pts: obj[] = jsThis?points\n\n let mutable fmtStr = sprintf \"%s
%s
\" (DisplayType.getName state.DisplayType) category\n let mutable fmtLine = \"\"\n fmtStr <- fmtStr + \"\"\n for p in pts do\n let yStr =\n match state.DisplayType with\n | PositivePct -> percentageFormatter p?point?y\n | _ -> sprintf \"%d\" p?point?y\n fmtLine <- sprintf \"● | %s | %s | %s |
\"\n p?series?color\n p?point?date\n yStr\n p?point?diff\n fmtStr <- fmtStr + fmtLine\n fmtStr <- fmtStr + \"
\"\n fmtStr\n\n let add (a : int option) (b : int option) =\n match a, b with\n | Some aa, Some bb -> Some (aa + bb)\n | Some _, None -> a\n | None, Some _ -> b\n | _ -> None\n\n let getStatsValue dp =\n match state.DisplayType with\n | New -> dp.Cases.ConfirmedToday\n | Active -> dp.Cases.Active\n | Tests -> dp.Tests.Performed.Today\n | VacDosesAdministered -> dp.Vaccination.Administered.Today |> add dp.Vaccination.Administered2nd.Today\n | PositivePct -> \n match dp.Tests.Positive.Today, dp.Tests.Performed.Today with\n | Some p, Some t -> Some ( (float p / float t * 100.0 * 100.0) |> int)\n | _ -> None \n | _ -> None\n\n let getPatientsValue dp =\n match state.DisplayType with\n | HospitalAdmitted -> dp.total.inHospital.``in``\n | HospitalDischarged -> dp.total.inHospital.out\n | ICUAdmitted -> dp.total.icu.``in``\n | Deceased -> dp.total.deceased.today\n | _ -> None\n\n let fourWeeks = \n if DisplayType.UseStatsData state.DisplayType then\n state.StatsData \n |> Seq.skipWhile (fun dp -> dp.Date < DateTime.Today.AddDays(float (- weeksShown * 7)))\n |> Seq.skipWhile (fun dp -> dp.Date.DayOfWeek <> DayOfWeek.Monday)\n |> Seq.map (fun dp -> (dp.Date, getStatsValue dp)) \n |> Seq.toArray\n else\n state.PatientsData \n |> Seq.skipWhile (fun dp -> dp.Date < DateTime.Today.AddDays(float (- weeksShown * 7)))\n |> Seq.skipWhile (fun dp -> dp.Date.DayOfWeek <> DayOfWeek.Monday)\n |> Seq.map (fun dp -> (dp.Date, getPatientsValue dp)) \n |> Seq.toArray\n\n let allSeries = [\n for weekIdx in 0 .. weeksShown-1 do \n let idx = weekIdx * 7\n let len = min 7 (fourWeeks.Length - idx)\n\n let desaturateColor (rgb:string) (sat:float) = \n let argb = Int32.Parse (rgb.Replace(\"#\", \"\"), Globalization.NumberStyles.HexNumber)\n let r = (argb &&& 0x00FF0000) >>> 16\n let g = (argb &&& 0x0000FF00) >>> 8\n let b = (argb &&& 0x000000FF)\n let avg = (float(r + g + b) / 3.0) * 1.6\n let newR = int (Math.Round (float(r) * sat + avg * (1.0 - sat)))\n let newG = int (Math.Round (float(g) * sat + avg * (1.0 - sat)))\n let newB = int (Math.Round (float(b) * sat + avg * (1.0 - sat)))\n sprintf \"#%02x%02x%02x\" newR newG newB\n\n let getSeriesColor dt series = \n desaturateColor (DisplayType.getColor dt) (float (series) / float (weeksShown))\n\n let percent a b =\n match a, b with\n | Some v, Some p -> \n if p = 0 \n then if v = 0 then \"\" else \">500%\" \n else sprintf \"%+0.0f%%\" (float(v) / float(p) * 100.0 - 100.0)\n | _, _ -> \"\"\n\n yield pojo\n {|\n ``type`` = \"column\"\n color = getSeriesColor state.DisplayType weekIdx\n data = \n fourWeeks\n |> Array.skip idx\n |> Array.take len \n |> Array.mapi (fun i (date, value) -> \n {|\n y = value\n date = I18N.tOptions \"days.date\" {| date = date |}\n diff = \n if weekIdx > 0\n then \n let _ , prev = fourWeeks.[(weekIdx-1) * 7 + i]\n percent value prev \n else \"\"\n dataLabels = \n if weekIdx = weeksShown-1 \n then \n if state.DisplayType = PositivePct\n then pojo {| enabled = true; formatter = fun () -> percentageFormatter jsThis?y |}\n else pojo {| enabled = true |}\n else pojo {||}\n |} |> pojo\n )\n |}\n ]\n\n {| optionsWithOnLoadEvent \"covid19-daily-comparison\" with\n chart = pojo {| ``type`` = \"column\" |}\n title = pojo {| text = None |}\n xAxis = [| \n {|\n ``type`` = \"category\"\n categories = [| I18N.dow 1; I18N.dow 2; I18N.dow 3; I18N.dow 4; I18N.dow 5; I18N.dow 6; I18N.dow 0; |]\n |} \n |]\n yAxis = [|\n {|\n opposite = true\n title = {| text = null |}\n labels = \n if state.DisplayType = PositivePct \n then pojo {| formatter = fun () -> percentageFormatter jsThis?value |}\n else pojo {| formatter = None |}\n |}\n |]\n\n series = List.toArray allSeries\n\n plotOptions = pojo {| series = {| groupPadding = 0.05 |} |}\n\n legend = pojo {| enabled = false |}\n\n tooltip = pojo\n {|\n formatter = fun () -> tooltipFormatter state jsThis\n shared = true\n useHTML = true\n |}\n\n credits = pojo\n {|\n enabled = true\n text =\n sprintf \"%s: %s, %s\"\n (I18N.t \"charts.common.dataSource\")\n (I18N.tOptions (\"charts.common.dsNIJZ\") {| context = localStorage.getItem (\"contextCountry\") |})\n (I18N.tOptions (\"charts.common.dsMZ\") {| context = localStorage.getItem (\"contextCountry\") |})\n // SLO-spec href = \"https://www.nijz.si/sl/dnevno-spremljanje-okuzb-s-sars-cov-2-covid-19\"\n href = \"http://www.iph.mk\"\n |}\n\n navigator = pojo {| enabled = false |}\n scrollbar = pojo {| enabled = false |}\n rangeSelector = pojo {| enabled = false |}\n |}\n\nlet renderChartContainer (state : State) dispatch =\n Html.div [\n prop.style [ style.height 480 ]\n prop.className \"highcharts-wrapper\"\n prop.children [\n renderChartOptions state dispatch\n |> Highcharts.chart\n ]\n ]\n\nlet renderSelector state (dt: DisplayType) dispatch =\n Html.div [\n let isActive = state.DisplayType = dt\n prop.onClick (fun _ -> ChangeDisplayType dt |> dispatch)\n Utils.classes\n [(true, \"btn btn-sm metric-selector\")\n (isActive, \"metric-selector--selected\")]\n prop.text (DisplayType.getName dt) ]\n\nlet renderDisplaySelectors state dispatch =\n Html.div [\n prop.className \"metrics-selectors\"\n prop.children (\n DisplayType.all\n |> List.map (fun dt -> renderSelector state dt dispatch) ) ]\n\nlet render (state: State) dispatch =\n match state.PatientsData, state.Error with\n | [||], None -> Html.div [ Utils.renderLoading ]\n | _, Some err -> Html.div [ Utils.renderErrorLoading err ]\n | _, None ->\n Html.div [\n renderChartContainer state dispatch\n renderDisplaySelectors state dispatch\n ]\n\nlet dailyComparisonChart (props : {| data : StatsData |}) =\n React.elmishComponent(\"DailyComparisonChart\", init props.data, update, render)\n","[]\nmodule SpreadChart\n\nopen System\nopen Elmish\nopen Feliz\nopen Feliz.ElmishComponents\nopen Browser\n\nopen Types\nopen Highcharts\n\ntype Scale =\n | Absolute\n | Percentage\n | DoublingRate\n with\n static member all = [ Absolute; Percentage; DoublingRate ]\n static member getName = function\n | Absolute -> I18N.t \"charts.spread.absolute\"\n | Percentage -> I18N.t \"charts.spread.percentage\"\n | DoublingRate -> I18N.t \"charts.spread.doublingRate\"\n\ntype Page =\n | Chart of Scale\n | Explainer\n with\n static member all = (Scale.all |> List.map Chart) @ [ Explainer ]\n static member getName = function\n | Chart scale -> Scale.getName scale\n | Explainer -> I18N.t \"charts.spread.explainer\"\n\ntype State = {\n page: Page\n data: StatsData\n RangeSelectionButtonIndex: int\n}\n\ntype Msg =\n | ChangePage of Page\n | RangeSelectionChanged of int\n\nlet init data : State * Cmd =\n let state = {\n page = Chart Absolute\n data = data\n RangeSelectionButtonIndex = 1\n }\n state, Cmd.none\n\nlet update (msg: Msg) (state: State) : State * Cmd =\n match msg with\n | ChangePage page ->\n { state with page = page }, Cmd.none\n | RangeSelectionChanged buttonIndex ->\n { state with RangeSelectionButtonIndex = buttonIndex }, Cmd.none\n\nlet maxOption a b =\n match a, b with\n | None, None -> None\n | Some x, None -> Some x\n | None, Some y -> Some y\n | Some x, Some y -> Some (max x y)\n\nlet inline yAxisBase () =\n {|\n ``type`` = \"linear\"\n opposite = true\n reversed = false\n title = {| text = null |}\n showFirstLabel = not Highcharts.showExpGrowthFeatures // need to hide negative label for addContainmentMeasuresFlags\n tickInterval = None\n gridZIndex = -1\n max = None\n plotLines = [| {| value = 0; color = \"black\" |} |]\n crosshair = true\n |}\n\nlet inline legend title =\n {|\n enabled = Highcharts.showExpGrowthFeatures\n title = {| text=title |}\n align = \"left\"\n verticalAlign = \"middle\"\n borderColor = \"#aaa\"\n borderWidth = 1\n layout = \"vertical\"\n floating = true\n x = 8\n y = 60\n backgroundColor = \"#FFF\"\n |}\n |> pojo\n\ntype ChartCfg = {\n seriesLabel: string\n legendTitle: string\n yAxis: obj\n dataKey: StatsDataPoint -> float*float\n } with\n static member fromScale = function\n | Absolute ->\n {\n legendTitle = I18N.t \"charts.spread.absoluteTitle\"\n seriesLabel = I18N.t \"charts.spread.absoluteLabel\"\n yAxis = yAxisBase ()\n dataKey = fun dp -> (dp.Date |> jsTime12h), dp.Cases.ConfirmedToday |> Option.map float |> Option.defaultValue nan\n }\n | Percentage ->\n {\n legendTitle = I18N.t \"charts.spread.relativeTitle\"\n seriesLabel = I18N.t \"charts.spread.relativeLabel\"\n yAxis = {| yAxisBase () with ``type``=\"logarithmic\" |}\n dataKey = fun dp ->\n let daily = dp.Cases.ConfirmedToday |> Utils.zeroToNone\n let total = dp.Cases.ConfirmedToDate |> Utils.zeroToNone (* SLO-spec dp.Cases.Active *)\n let value =\n (daily, total)\n ||> Option.map2 (fun daily total ->\n let yesterday = total-daily\n if yesterday < 2 then nan\n else\n (float total / float yesterday - 1.0) * 100.0\n |> Utils.roundDecimals 1\n )\n |> Option.defaultValue nan\n dp.Date |> jsTime12h, value\n }\n\n | DoublingRate ->\n {\n legendTitle = I18N.t \"charts.spread.doublingRateTitle\"\n seriesLabel = I18N.t \"charts.spread.doublingRateLabel\"\n yAxis =\n {| yAxisBase () with\n ``type``=\"logarithmic\"\n reversed=true\n plotLines=[|\n //pojo {| value=40.0; label={| text=I18N.t \"charts.spread.averageSouthKorea\"; align=\"right\"; y= 12; x= -300 |}; color=\"#408040\"; width=3; dashStyle=\"longdashdot\" |} // rotation=270; align=\"right\"; x=12 |} |}\n pojo {| value= 1.0; label={| text=I18N.t \"charts.spread.oneDay\" |}; color=\"#aaa\"; dashStyle=\"ShortDash\" |}\n pojo {| value= 7.0; label={| text=I18N.t \"charts.spread.oneWeek\" |}; color=\"#888\"; dashStyle=\"ShortDash\" |}\n pojo {| value=30.0; label={| text=I18N.t \"charts.spread.oneMonth\"|}; color=\"#888\"; dashStyle=\"ShortDash\" |}\n |]\n max = Some 100\n |}\n\n dataKey = fun dp ->\n let daily = dp.Cases.ConfirmedToday |> Utils.zeroToNone\n let total = dp.Cases.Active |> Utils.zeroToNone\n let value =\n (daily, total)\n ||> Option.map2 (fun daily total ->\n let yesterday = total-daily\n let v =\n if yesterday < 2 then nan\n else\n let rate = float total / float yesterday\n let days = Math.Log 2.0 / Math.Log rate\n days |> Utils.roundDecimals 1\n v\n )\n |> Option.defaultValue nan\n dp.Date |> jsTime12h, value\n }\n\n\nlet renderChartOptions scaleType state dispatch =\n\n let chartCfg = ChartCfg.fromScale scaleType\n let startDate = DateTime(2020,3,4)\n let mutable startTime = startDate |> jsTime\n\n let allSeries = [|\n yield pojo\n {|\n id = \"data\"\n color = \"#bda506\"\n name = chartCfg.seriesLabel\n dataLabels = pojo {| enabled = true |}\n data =\n state.data\n |> Seq.skipWhile (fun dp -> dp.Date < startDate)\n |> Seq.map chartCfg.dataKey\n |> Seq.toArray\n |}\n if Highcharts.showExpGrowthFeatures then\n yield addContainmentMeasuresFlags startTime None |> pojo \n |]\n\n let onRangeSelectorButtonClick(buttonIndex: int) =\n let res (_ : Event) =\n RangeSelectionChanged buttonIndex |> dispatch\n true\n res\n\n // return highcharts options\n {| basicChartOptions Linear \"covid19-spread\"\n state.RangeSelectionButtonIndex onRangeSelectorButtonClick\n with\n series = allSeries\n yAxis=chartCfg.yAxis\n legend=legend chartCfg.legendTitle\n |}\n\nlet renderExplainer (data: StatsData) =\n let curPositive, curHospitalized =\n data\n |> List.rev\n |> Seq.choose (fun dp ->\n match dp.Cases.Active, dp.StatePerTreatment.InHospital with\n | Some p, Some h -> Some (p, h)\n | _, _ -> None)\n |> Seq.take 1\n |> Seq.toList |> List.head\n |> fun (p, h) -> (p,h)\n\n let box (title: string) times positive hospitalized =\n Html.div [\n prop.className \"box\"\n prop.children [\n Html.h3 title\n Html.p [\n match times with\n | 0 -> Html.span \"\"\n | 1 -> Html.span (sprintf \"%d%s\" (1<< Html.span (sprintf \"%d%s\" (1<< List.map (fun (title, doublings) ->\n box title doublings (curPositive <<< doublings) (curHospitalized <<< doublings)\n )\n ]\n ]\n ]\n ]\n\nlet renderChartContainer scaleType data dispatch =\n Html.div [\n prop.style [ style.height 480; (Interop.mkStyle \"width\" \"100%\"); style.position.absolute ] //; style.width 500; ]\n prop.className \"highcharts-wrapper\"\n prop.children [\n renderChartOptions scaleType data dispatch\n |> Highcharts.chartFromWindow\n ]\n ]\n\nlet renderScaleSelectors state dispatch =\n\n let renderScaleSelector (page: Page) dispatch =\n let isActive = state.page = page\n let style =\n if isActive\n then [ style.backgroundColor \"#808080\" ]\n else [ ]\n Html.div [\n prop.onClick (fun _ -> ChangePage page |> dispatch)\n Utils.classes\n [(true, \"btn btn-sm metric-selector\")\n (isActive, \"metric-selector--selected\")]\n prop.style style\n prop.text (page |> Page.getName) ]\n\n Html.div [\n prop.className \"metrics-selectors\"\n prop.children [\n for page in Page.all do\n yield renderScaleSelector page dispatch\n ]\n ]\n\nlet render (state: State) dispatch =\n Html.div [\n prop.children [\n Html.div [\n prop.style [ style.height 480; (Interop.mkStyle \"width\" \"100%\"); style.position.relative ]\n prop.children [\n match state.page with\n | Chart scale ->\n yield renderChartContainer scale state dispatch\n | Explainer ->\n yield renderChartContainer DoublingRate state dispatch\n yield renderExplainer state.data\n ]\n ]\n if Highcharts.showExpGrowthFeatures then\n renderScaleSelectors state dispatch\n ]\n ]\n\nlet spreadChart (props : {| data : StatsData |}) =\n React.elmishComponent(\"SpreadChart\", init props.data, update, render)\n","[]\nmodule Map\n\nopen System\n\nopen Fable.SimpleHttp\n\nopen Elmish\nopen Feliz\nopen Feliz.ElmishComponents\nopen Fable.Core.JsInterop\nopen Browser\n\nopen Highcharts\nopen Types\n\ntype MapToDisplay = Municipality | Region | SkopjeMunicipality\n\n(* SLO-spec \nlet munGeoJsonUrl = \"/maps/municipalities-gurs-simplified-3857.geojson\"\n*)\nlet munGeoJsonUrl = \"/maps/new_31_Cities_MKD-3857.json\"\nlet regGeoJsonUrl = \"/maps/statistical-regions-gurs-simplified-3857.geojson\"\nlet skopjeGeoJsonUrl = \"/maps/SkopjeOpstini-3857.json\"\n\nlet excludedMunicipalities = Set.ofList [\"kraj\" ; \"tujina\"]\n\ntype TotalCasesForDate =\n { Date : System.DateTime\n TotalConfirmedCases : int option\n TotalDeceasedCases : int option }\n\ntype Area =\n { Id : string\n Code : string\n Name : string\n Population : int\n Cases : TotalCasesForDate seq option }\n\ntype ContentType =\n | ConfirmedCases\n | Deceased\n\n override this.ToString() =\n match this with\n | ConfirmedCases -> I18N.t \"charts.map.confirmedCases\"\n | Deceased -> I18N.t \"charts.map.deceased\"\n\nlet (|ConfirmedCasesMsgCase|DeceasedMsgCase|) str =\n if str = I18N.t \"charts.map.confirmedCases\" \n then ConfirmedCasesMsgCase\n else DeceasedMsgCase \n\ntype DisplayType =\n | AbsoluteValues\n | RegionPopulationWeightedValues\n | RelativeIncrease\nwith\n static member Default = AbsoluteValues // SLO-specRegionPopulationWeightedValues\n\n override this.ToString() =\n match this with\n | AbsoluteValues -> I18N.t \"charts.map.absolute\"\n | RegionPopulationWeightedValues -> I18N.t \"charts.map.populationShare\"\n | RelativeIncrease -> I18N.t \"charts.map.relativeIncrease\" \n\ntype DataTimeInterval =\n | Complete\n | LastDays of int\n\n override this.ToString() =\n match this with\n | Complete -> I18N.t \"charts.map.all\"\n | LastDays days -> I18N.tOptions \"charts.map.last_x_days\" {| count = days |}\n\nlet dataTimeIntervals =\n [ LastDays 1\n LastDays 7\n LastDays 14\n LastDays 21\n Complete ]\n\ntype GeoJson = RemoteData\n\ntype State =\n { MapToDisplay : MapToDisplay\n GeoJson : GeoJson\n Data : Area seq\n DataTimeInterval : DataTimeInterval\n ContentType : ContentType\n DisplayType : DisplayType }\n\ntype Msg =\n | GeoJsonRequested\n | GeoJsonLoaded of GeoJson\n | DataTimeIntervalChanged of DataTimeInterval\n | ContentTypeChanged of string\n | DisplayTypeChanged of DisplayType\n\nlet loadMunGeoJson =\n async {\n let! (statusCode, response) = Http.get munGeoJsonUrl\n\n if statusCode <> 200 then\n return GeoJsonLoaded (sprintf \"Error loading map: %d\" statusCode |> Failure)\n else\n try\n let data = response |> Fable.Core.JS.JSON.parse\n return GeoJsonLoaded (data |> Success)\n with\n | ex -> return GeoJsonLoaded (sprintf \"Error loading map: %s\" ex.Message |> Failure)\n }\n\nlet loadRegGeoJson =\n async {\n let! (statusCode, response) = Http.get regGeoJsonUrl\n\n if statusCode <> 200 then\n return GeoJsonLoaded (sprintf \"Error loading map: %d\" statusCode |> Failure)\n else\n try\n let data = response |> Fable.Core.JS.JSON.parse\n return GeoJsonLoaded (data |> Success)\n with\n | ex -> return GeoJsonLoaded (sprintf \"Error loading map: %s\" ex.Message |> Failure)\n }\n\nlet loadSkopjeMunGeoJson =\n async {\n let! (statusCode, response) = Http.get skopjeGeoJsonUrl\n\n if statusCode <> 200 then\n return GeoJsonLoaded (sprintf \"Error loading map: %d\" statusCode |> Failure)\n else\n try\n let data = response |> Fable.Core.JS.JSON.parse\n return GeoJsonLoaded (data |> Success)\n with\n | ex -> return GeoJsonLoaded (sprintf \"Error loading map: %s\" ex.Message |> Failure)\n }\n\nlet init (mapToDisplay : MapToDisplay) (regionsData : RegionsData) : State * Cmd =\n let dataTimeInterval = if mapToDisplay = SkopjeMunicipality then Complete else LastDays 14\n\n let municipalityDataMap =\n seq {\n for regionsDataPoint in regionsData do\n for region in regionsDataPoint.Regions do\n for municipality in region.Municipalities do\n if not (Set.contains municipality.Name excludedMunicipalities) then\n yield {| Date = regionsDataPoint.Date\n MunicipalityKey = municipality.Name\n TotalConfirmedCases = municipality.ConfirmedToDate\n TotalDeceasedCases = municipality.DeceasedToDate |} }\n |> Seq.groupBy (fun dp -> dp.MunicipalityKey)\n |> Seq.map (fun (municipalityKey, dp) ->\n let totalCases =\n dp\n |> Seq.map (fun dp ->\n { Date = dp.Date\n TotalConfirmedCases = dp.TotalConfirmedCases\n TotalDeceasedCases = dp.TotalDeceasedCases } )\n |> Seq.sortBy (fun dp -> dp.Date)\n ( municipalityKey, totalCases ) )\n |> Map.ofSeq\n\n let munData =\n seq {\n for municipality in Utils.Dictionaries.municipalities do\n match Map.tryFind municipality.Key municipalityDataMap with\n | None ->\n yield { Id = municipality.Key\n Code = municipality.Value.Code\n Name = municipality.Value.Name\n Population = municipality.Value.Population\n Cases = None }\n | Some cases ->\n yield { Id = municipality.Key\n Code = municipality.Value.Code\n Name = municipality.Value.Name\n Population = municipality.Value.Population\n Cases = Some cases }\n }\n\n let skopjeMunData = \n seq {\n for municipality in Utils.Dictionaries.skopjeMunicipalities do\n match Map.tryFind municipality.Key municipalityDataMap with\n | None ->\n yield { Id = municipality.Key\n Code = municipality.Value.Code\n Name = municipality.Value.Name\n Population = municipality.Value.Population\n Cases = None }\n | Some cases ->\n yield { Id = municipality.Key\n Code = municipality.Value.Code\n Name = municipality.Value.Name\n Population = municipality.Value.Population\n Cases = Some cases }\n }\n\n let regDataMap =\n seq {\n for regionsDataPoint in regionsData do\n for region in regionsDataPoint.Regions do\n yield {| Date = regionsDataPoint.Date\n RegionKey = region.Name\n TotalConfirmedCases =\n region.Municipalities\n |> Seq.sumBy (fun municipality -> municipality.ConfirmedToDate |> Option.defaultValue 0)\n TotalDeceasedCases =\n region.Municipalities\n |> Seq.sumBy (fun municipality -> municipality.DeceasedToDate |> Option.defaultValue 0) |} }\n |> Seq.groupBy (fun dp -> dp.RegionKey)\n |> Seq.map (fun (regionKey, dp) ->\n let totalCases =\n dp\n |> Seq.map (fun dp ->\n { Date = dp.Date\n TotalConfirmedCases = Some dp.TotalConfirmedCases\n TotalDeceasedCases = Some dp.TotalDeceasedCases } )\n |> Seq.sortBy (fun dp -> dp.Date)\n ( regionKey, totalCases ) )\n |> Map.ofSeq\n\n let regData =\n seq {\n for region in Utils.Dictionaries.regions do\n match Map.tryFind region.Key regDataMap with\n | None ->\n yield { Id = region.Key\n Code = region.Key\n Name = I18N.tt \"region\" region.Key\n Population = region.Value.Population |> Option.defaultValue 0\n Cases = None }\n | Some cases ->\n yield { Id = region.Key\n Code = region.Key\n Name = I18N.tt \"region\" region.Key\n Population = region.Value.Population |> Option.defaultValue 0\n Cases = Some cases }\n }\n\n let data =\n match mapToDisplay with\n | Municipality -> munData\n | Region -> regData\n | SkopjeMunicipality -> skopjeMunData\n\n { MapToDisplay = mapToDisplay\n GeoJson = NotAsked\n Data = data\n DataTimeInterval = dataTimeInterval\n ContentType = ConfirmedCases \n DisplayType = DisplayType.Default\n }, Cmd.ofMsg GeoJsonRequested\n\nlet update (msg: Msg) (state: State) : State * Cmd =\n match msg with\n | GeoJsonRequested ->\n let cmd =\n match state.MapToDisplay with\n | Municipality -> Cmd.OfAsync.result loadMunGeoJson\n | Region -> Cmd.OfAsync.result loadRegGeoJson\n | SkopjeMunicipality -> Cmd.OfAsync.result loadSkopjeMunGeoJson\n { state with GeoJson = Loading }, cmd\n | GeoJsonLoaded geoJson ->\n { state with GeoJson = geoJson }, Cmd.none\n | DataTimeIntervalChanged dataTimeInterval ->\n { state with DataTimeInterval = dataTimeInterval }, Cmd.none\n | ContentTypeChanged contentType ->\n let newContentType =\n match contentType with\n | ConfirmedCasesMsgCase -> ConfirmedCases\n | DeceasedMsgCase -> Deceased\n let newDisplayType =\n if state.DisplayType = RelativeIncrease && newContentType = Deceased\n then DisplayType.Default // for Deceased, RelativeIncrease not supported\n else state.DisplayType\n { state with ContentType = newContentType; DisplayType = newDisplayType }, Cmd.none\n | DisplayTypeChanged displayType ->\n { state with DisplayType = displayType }, Cmd.none\n\nlet seriesData (state : State) =\n\n seq {\n for areaData in state.Data do\n let dlabel, value, absolute, value100k, totalConfirmed, weeklyIncrease, population, newCases =\n match areaData.Cases with\n | None -> None, 0.0001, 0, 0., 0, 0., areaData.Population, null\n | Some totalCases ->\n let confirmedCasesValue = totalCases |> Seq.map (fun dp -> dp.TotalConfirmedCases) |> Seq.choose id |> Seq.toArray\n let newCases = \n confirmedCasesValue \n |> Array.mapi (fun i cc -> if i > 0 then cc - confirmedCasesValue.[i-1] else cc) \n |> Array.skip (confirmedCasesValue.Length - 56) // we only show last 56 days\n |> Seq.toArray\n let deceasedValue = totalCases |> Seq.map (fun dp -> dp.TotalDeceasedCases) |> Seq.choose id |> Seq.toArray\n let values =\n match state.ContentType with\n | ConfirmedCases -> confirmedCasesValue\n | Deceased -> deceasedValue\n\n let totalConfirmed = confirmedCasesValue |> Array.tryLast\n\n let lastValueTotal = values |> Array.tryLast\n let lastValueRelative =\n let dateInterval = \n if state.DisplayType = RelativeIncrease \n then LastDays 7 // for weekly relative increase we force 7 day interval for display in tooltip\n else state.DataTimeInterval\n match dateInterval with\n | Complete -> lastValueTotal\n | LastDays days ->\n let firstValueTotal = values |> Array.tryItem (values.Length - days - 1)\n match firstValueTotal, lastValueTotal with\n | None, None -> None\n | None, Some b -> Some b\n | Some a, None -> Some a\n | Some a, Some b -> Some (b - a)\n\n match lastValueRelative with\n | None -> None, 0.0001, 0, 0., 0, 0., areaData.Population, null\n | Some lastValue ->\n let absolute = lastValue\n let value100k =\n float absolute * 100000. / float areaData.Population\n let dlabel, value =\n match state.DisplayType with\n | AbsoluteValues -> ((Some absolute) |> Utils.zeroToNone), absolute\n | RegionPopulationWeightedValues -> None, 10. * value100k |> System.Math.Round |> int //factor 10 for better resolution in graph\n | RelativeIncrease -> None, absolute \n let weeklyIncrease = \n let parseNumber x = \n match x with \n | None -> 0.\n | Some x -> x |> float \n let casesNow = values |> Array.tryItem(values.Length - 1) |> parseNumber \n let cases7dAgo = values |> Array.tryItem(values.Length - 8) |> parseNumber\n let cases14dAgo = values |> Array.tryItem(values.Length - 15) |> parseNumber\n \n let increaseThisWeek = casesNow - cases7dAgo\n let increaseLastWeek = cases7dAgo - cases14dAgo \n\n if (increaseThisWeek, increaseLastWeek) = (0.,0.) then 0.\n else 100. * min ( increaseThisWeek/increaseLastWeek - 1.) 5. // Set the maximum value to 5 to cut off infinities\n let scaled =\n match state.ContentType with\n | ConfirmedCases ->\n match state.DisplayType with\n | AbsoluteValues -> \n if absolute > 0 then float absolute\n else 0.0001\n | RegionPopulationWeightedValues -> \n if value100k > 0.0 then value100k \n else 0.0001\n | RelativeIncrease -> \n min weeklyIncrease 200. // for colorAxis limit to 200%\n | Deceased ->\n match value with\n | 0 -> 0.\n | x -> float x + Math.E |> Math.Log\n\n dlabel, scaled, absolute, value100k, totalConfirmed.Value, weeklyIncrease, areaData.Population, newCases\n {|\n code = areaData.Code\n area = areaData.Name\n value = value\n absolute = absolute\n value100k = value100k\n totalConfirmed = totalConfirmed\n weeklyIncrease = weeklyIncrease\n population = population\n dlabel = dlabel\n dataLabels = {| enabled = true; format = \"{point.dlabel}\" |}\n newCases = newCases\n |}\n } |> Seq.toArray\n\n\nlet renderMap (state : State) =\n\n match state.GeoJson with\n | NotAsked\n | Loading -> Html.none\n | Failure str -> Html.text str\n | Success geoJson ->\n let data = seriesData state\n\n let key =\n match state.MapToDisplay with\n | Municipality -> \"Name4_E\" (* \"isoid\" SLO-spec *)\n | Region -> \"code\"\n | SkopjeMunicipality -> \"Name4_E\"\n\n let series geoJson =\n {| visible = true\n mapData = geoJson\n data = data\n keys = [| \"code\" ; \"value\" |]\n joinBy = [| key ; \"code\" |]\n nullColor = \"white\"\n borderColor = \"#000\"\n borderWidth = 0.2\n mapline = {| animation = {| duration = 0 |} |}\n states =\n {| normal = {| animation = {| duration = 0 |} |}\n hover = {| borderColor = \"black\" ; animation = {| duration = 0 |} |} |}\n |}\n\n let sparklineFormatter newCases =\n let desaturateColor (rgb:string) (sat:float) = \n let argb = Int32.Parse (rgb.Replace(\"#\", \"\"), Globalization.NumberStyles.HexNumber)\n let r = (argb &&& 0x00FF0000) >>> 16\n let g = (argb &&& 0x0000FF00) >>> 8\n let b = (argb &&& 0x000000FF)\n let avg = (float(r + g + b) / 3.0) * 1.6\n let newR = int (Math.Round (float(r) * sat + avg * (1.0 - sat)))\n let newG = int (Math.Round (float(g) * sat + avg * (1.0 - sat)))\n let newB = int (Math.Round (float(b) * sat + avg * (1.0 - sat)))\n sprintf \"#%02x%02x%02x\" newR newG newB\n\n let color1 = \"#bda506\"\n let color2 = desaturateColor color1 0.6\n let color3 = desaturateColor color1 0.3\n\n let temp = [|([| color3 |] |> Array.replicate 42 |> Array.concat ); ([|color2 |] |> Array.replicate 7 |> Array.concat)|] |> Array.concat\n let columnColors = [| temp; ([| color1 |] |> Array.replicate 7 |> Array.concat) |] |> Array.concat\n\n\n let options =\n {|\n chart = \n {|\n ``type`` = \"column\"\n backgroundColor = \"transparent\"\n |} |> pojo\n credits = {| enabled = false |}\n xAxis = \n {| \n visible = true \n labels = {| enabled = false |} \n title = {| enabled = false |}\n tickInterval = 7 \n lineColor = \"#696969\"\n tickColor = \"#696969\"\n tickLength = 4\n |}\n yAxis = \n {| \n title = {| enabled = false |}\n visible = true \n opposite = true \n min = 0.\n max = newCases |> Array.max \n tickInterval = 5 \n endOnTick = true \n startOnTick = false \n allowDecimals = false \n showFirstLabel = true\n showLastLabel = true\n gridLineColor = \"#000000\"\n gridLineDashStyle = \"dot\"\n |} |> pojo\n title = {| text = \"\" |}\n legend = {| enabled = false |}\n series = \n [| \n {| \n data = newCases |> Array.map ( max 0.)\n animation = false\n colors = columnColors \n borderColor = columnColors \n pointWidth = 2\n colorByPoint = true\n |} |> pojo \n |]\n |} |> pojo\n match state.MapToDisplay with \n | Municipality -> \n Fable.Core.JS.setTimeout (fun () -> sparklineChart(\"tooltip-chart-mun\", options)) 10 |> ignore\n \"\"\"\"\"\"\n | SkopjeMunicipality -> \n Fable.Core.JS.setTimeout (fun () -> sparklineChart(\"tooltip-chart-mun\", options)) 10 |> ignore\n \"\"\"\"\"\"\n | Region -> \n Fable.Core.JS.setTimeout (fun () -> sparklineChart(\"tooltip-chart-reg\", options)) 10 |> ignore\n \"\"\"\"\"\"\n\n\n\n let tooltipFormatter state jsThis =\n let points = jsThis?point\n let area = points?area\n let absolute = points?absolute\n let value100k = points?value100k\n let totalConfirmed = points?totalConfirmed\n let weeklyIncrease = points?weeklyIncrease\n let newCases= points?newCases\n let population = points?population\n let pctPopulation = float absolute * 100.0 / float population\n let fmtStr = sprintf \"%s: %d\" (I18N.t \"charts.map.populationC\") population\n\n let lastTwoWeeks = newCases \n\n let label =\n match state.ContentType with\n | ConfirmedCases ->\n let labelKey = if state.MapToDisplay = MapToDisplay.SkopjeMunicipality then \"charts.map.activeCases\" else \"charts.map.confirmedCases\" \n let label = fmtStr + sprintf \"
%s: %d\" (I18N.t labelKey) absolute\n if totalConfirmed > 0 then\n if state.MapToDisplay = MapToDisplay.SkopjeMunicipality then\n label\n + sprintf \" (%s %% %s)\" (Utils.formatTo3DecimalWithTrailingZero pctPopulation) (I18N.t \"charts.map.population\")\n else\n label\n + sprintf \" (%s %% %s)\" (Utils.formatTo3DecimalWithTrailingZero pctPopulation) (I18N.t \"charts.map.population\")\n + sprintf \"
%s: %0.1f %s\" (I18N.t \"charts.map.confirmedCases\") value100k (I18N.t \"charts.map.per100k\")\n + sprintf \"
%s: %s%s%%\" (I18N.t \"charts.map.relativeIncrease\") (if weeklyIncrease < 500. then \"\" else \">\") (weeklyIncrease |> Utils.formatTo1DecimalWithTrailingZero)\n + if (Array.max lastTwoWeeks) > 0. then sparklineFormatter lastTwoWeeks else \"\"\n else\n label\n | Deceased ->\n let label = fmtStr + sprintf \"
%s: %d\" (I18N.t \"charts.map.deceased\") absolute\n if absolute > 0 && state.DataTimeInterval = Complete then // deceased\n label + sprintf \" (%s %% %s)\"\n (Utils.formatTo3DecimalWithTrailingZero pctPopulation)\n (I18N.t \"charts.map.population\")\n + sprintf \"
%s: %d (%s %% %s)\"\n (I18N.t \"charts.map.confirmedCases\")\n totalConfirmed (Utils.formatTo3DecimalWithTrailingZero (float totalConfirmed * 100.0 / float population))\n (I18N.t \"charts.map.population\")\n + sprintf \"
%s: %s %%\"\n (I18N.t \"charts.map.mortalityOfConfirmedCases\")\n (Utils.formatTo1DecimalWithTrailingZero (float absolute * 100.0 / float totalConfirmed))\n else\n label\n let areaLocalized = I18N.tt \"mk.municipality\" area\n sprintf \"%s
%s
\" areaLocalized label\n\n let legend =\n let enabled = state.ContentType = ConfirmedCases \n {| enabled = enabled\n title = {| text = null |}\n align = \"right\"\n verticalAlign = \"bottom\"\n layout = \"vertical\"\n floating = false // SLO-spec true (in mk on phone we want to not cover the map)\n borderWidth = 1\n backgroundColor = \"white\"\n valueDecimals = 0 \n width = 58 // SLO-spec 70\n |}\n |> pojo\n\n let colorMax = \n match state.ContentType with\n | ConfirmedCases -> \n match state.DataTimeInterval with\n | Complete -> 20000.\n | LastDays days -> \n match days with\n | 21 -> 10500.\n | 14 -> 7000.\n | 7 -> 3500.\n | 1 -> 500.\n | _ -> 100.\n | Deceased -> \n let dataMax = data |> Seq.map(fun dp -> dp.value) |> Seq.max\n if dataMax < 1. then 10. else dataMax\n\n\n\n let colorMin = \n match state.DisplayType with \n | AbsoluteValues -> 0.9\n | RegionPopulationWeightedValues -> colorMax / 7000.\n | RelativeIncrease -> -100.\n\n let colorAxis = \n match state.ContentType with\n | Deceased ->\n {|\n ``type`` = \"linear\"\n tickInterval = 0.4\n max = colorMax \n min = colorMin \n endOnTick = false \n startOnTick = false \n stops =\n [|\n (0.000, \"#ffffff\")\n (0.111, \"#efedf5\")\n (0.222, \"#dadaeb\")\n (0.333, \"#bcbddc\")\n (0.444, \"#9e9ac8\")\n (0.556, \"#807dba\")\n (0.667, \"#6a51a3\")\n (0.778, \"#54278f\")\n (0.889, \"#3f007d\")\n |]\n |} |> pojo\n | ConfirmedCases ->\n match state.DisplayType with\n | AbsoluteValues -> \n {|\n ``type`` = \"logarithmic\"\n tickInterval = 0.4\n max = colorMax\n min = colorMin \n endOnTick = false\n startOnTick = false\n stops =\n [|\n (0.000,\"#ffffff\")\n (0.001,\"#fff7db\")\n (0.200,\"#ffefb7\") \n (0.280,\"#ffe792\") \n (0.360,\"#ffdf6c\") \n (0.440,\"#ffb74d\") \n (0.520,\"#ff8d3c\") \n (0.600,\"#f85d3a\") \n (0.680,\"#ea1641\") \n (0.760,\"#d0004e\") \n (0.840,\"#ad005b\") \n (0.920,\"#800066\") \n (0.999,\"#43006e\")\n |]\n reversed = true\n labels = \n {| \n formatter = fun() -> jsThis?value\n |} |> pojo\n |} |> pojo \n \n | RegionPopulationWeightedValues -> \n {|\n ``type`` = \"logarithmic\"\n tickInterval = 0.4\n max = colorMax\n min = colorMin \n endOnTick = false\n startOnTick = false\n stops =\n [|\n (0.000,\"#ffffff\")\n (0.001,\"#fff7db\")\n (0.200,\"#ffefb7\") \n (0.280,\"#ffe792\") \n (0.360,\"#ffdf6c\") \n (0.440,\"#ffb74d\") \n (0.520,\"#ff8d3c\") \n (0.600,\"#f85d3a\") \n (0.680,\"#ea1641\") \n (0.760,\"#d0004e\") \n (0.840,\"#ad005b\") \n (0.920,\"#800066\") \n (0.999,\"#43006e\")\n |]\n reversed = true\n labels = \n {| \n formatter = fun() -> jsThis?value\n |} |> pojo\n |} |> pojo\n | RelativeIncrease -> \n {| \n ``type`` = \"linear\"\n tickInterval = 50\n max = 200\n min = -100\n endOnTick = false\n startOnTick = false\n stops =\n [|\n (0.000,\"#009e94\")\n (0.166,\"#6eb49d\")\n (0.250,\"#b2c9a7\") \n (0.333,\"#f0deb0\") \n (0.500,\"#e3b656\")\n (0.600,\"#cc8f00\")\n (0.999,\"#b06a00\")\n |]\n reversed=false\n labels = \n {| \n formatter = fun() -> sprintf \"%s%%\" jsThis?value\n |} |> pojo\n |} |> pojo\n\n let lastDate = \n state.Data \n |> Seq.map (fun a ->\n match a.Cases with\n | Some c -> c |> Seq.tryLast\n |_ -> None ) \n |> Seq.pick (fun c -> \n match c with\n | Some c -> Some c.Date\n | _ -> None) \n\n let dateText = (I18N.tOptions \"charts.common.dataDate\" {| date = lastDate |})\n let noData = (I18N.t \"noData.skopjeMun\")\n \n let subtitle = if state.MapToDisplay = MapToDisplay.SkopjeMunicipality then noData else dateText\n\n {| Highcharts.optionsWithOnLoadEvent \"covid19-map\" with\n title = null\n subtitle = {| text = subtitle ; align=\"left\"; verticalAlign=\"bottom\" |}\n series = [| series geoJson |]\n legend = legend\n colorAxis = colorAxis\n tooltip =\n {|\n formatter = fun () -> tooltipFormatter state jsThis\n useHTML = true\n distance = 50\n |} |> pojo\n credits =\n {|\n enabled = true\n text =\n sprintf \"%s: %s, %s\"\n (I18N.t \"charts.common.dataSource\")\n (I18N.tOptions (\"charts.common.dsNIJZ\") {| context = localStorage.getItem (\"contextCountry\") |})\n (I18N.tOptions (\"charts.common.dsMZ\") {| context = localStorage.getItem (\"contextCountry\") |})\n mapTextFull = \"\"\n mapText = \"\"\n // SLO-spec href = \"https://www.nijz.si/sl/dnevno-spremljanje-okuzb-s-sars-cov-2-covid-19\"\n href = \"http://www.iph.mk\"\n position = {| align = \"right\" ; verticalAlign = \"bottom\" ; x = -10 ; y = -5 |}\n style = {| color = \"#999999\" ; cursor = \"pointer\" ; fontSize = \"9px\" |}\n |}\n |}\n |> Highcharts.map\n\nlet renderSelector option currentOption dispatch =\n let defaultProps =\n [ prop.text (option.ToString())\n Utils.classes\n [(true, \"chart-display-property-selector__item\")\n (option = currentOption, \"selected\") ] ]\n if option = currentOption\n then Html.div defaultProps\n else Html.div ((prop.onClick (fun _ -> dispatch option)) :: defaultProps)\n\nlet renderSelectors options currentOption dispatch =\n options\n |> List.map (fun option ->\n renderSelector option currentOption dispatch)\n\nlet renderDisplayTypeSelector state dispatch =\n let selectors = \n if state.ContentType = ConfirmedCases && state.MapToDisplay <> MapToDisplay.SkopjeMunicipality\n then [ RelativeIncrease; AbsoluteValues; RegionPopulationWeightedValues ]\n else [ AbsoluteValues; RegionPopulationWeightedValues ]\n Html.div [\n prop.className \"chart-display-property-selector\"\n prop.children (renderSelectors selectors state.DisplayType dispatch)\n ]\n\nlet renderDataTimeIntervalSelector state dispatch =\n if state.DisplayType <> RelativeIncrease then\n Html.div [\n prop.className \"chart-data-interval-selector\"\n prop.children ( Html.text \"\" :: renderSelectors dataTimeIntervals state.DataTimeInterval dispatch )\n ]\n else Html.none\n\nlet renderContentTypeSelector selected dispatch =\n let renderedTypes = seq {\n yield Html.option [\n prop.text (ContentType.ConfirmedCases.ToString())\n prop.value (ContentType.ConfirmedCases.ToString())\n ]\n yield Html.option [\n prop.text (ContentType.Deceased.ToString())\n prop.value (ContentType.Deceased.ToString())\n ]\n }\n\n Html.select [\n prop.value (selected.ToString())\n prop.className \"form-control form-control-sm filters__type\"\n prop.children renderedTypes\n prop.onChange (ContentTypeChanged >> dispatch)\n ]\n\nlet render (state : State) dispatch =\n Html.div [\n prop.children [\n Utils.renderChartTopControls [\n match state.MapToDisplay with\n | SkopjeMunicipality -> Html.none\n | _ ->\n Html.div [\n prop.className \"filters\"\n prop.children [\n renderContentTypeSelector state.ContentType dispatch \n renderDataTimeIntervalSelector state (DataTimeIntervalChanged >> dispatch)\n ]\n ]\n renderDisplayTypeSelector state (DisplayTypeChanged >> dispatch)\n ]\n Html.div [\n prop.className \"map\"\n prop.children [ renderMap state ]\n ]\n ]\n ]\n\nlet mapChart (props : {| mapToDisplay : MapToDisplay; data : RegionsData |}) =\n React.elmishComponent(\"MapChart\", init props.mapToDisplay props.data, update, render)","[]\nmodule MunicipalitiesChart\n\nopen System\nopen Elmish\nopen Browser\nopen Fable.Core.JsInterop\n\nopen Feliz\nopen Feliz.ElmishComponents\n\nopen Types\n\ntype DataToDisplay = Municipality | SkopjeMunicipality\n\nlet barMaxHeight = 65\nlet showMaxBars = 30\nlet collapsedMunicipalityCount = 16\n\nlet excludedMunicipalities = Set.ofList [\"kraj\"]\n\ntype Region =\n { Key : string\n Name : string }\n\ntype TotalsForDate =\n { Date : DateTime\n ActiveCases : int option\n ConfirmedToDate : int option\n DeceasedToDate : int option\n }\n\ntype Municipality =\n { Key : string\n Name : string option\n RegionKey : string\n DoublingTime : float option\n NewCases : int option\n ActiveCases : int option\n MaxActiveCases : int option\n MaxConfirmedCases : int option\n LastConfirmedCase : DateTime\n DaysSinceLastCase : int\n TotalsForDate : TotalsForDate list }\n\ntype View =\n | ActiveCases\n | TotalConfirmedCases\n | LastConfirmedCase\n | DoublingTime\n\ntype Query (query : obj, regions : Region list) =\n member this.Query = query\n member this.Regions =\n regions\n |> List.map (fun region -> region.Key)\n |> Set.ofList\n member this.Search =\n match query?(\"search\") with\n | Some (search : string) -> Some search\n | _ -> None\n member this.Region =\n match query?(\"region\") with\n | Some (region : string) when Set.contains (region.ToLower()) this.Regions ->\n Some (region.ToLower())\n | _ -> None\n member this.View =\n match query?(\"sort\") with\n | Some (sort : string) ->\n match sort.ToLower() with\n | \"active-cases\" -> Some ActiveCases\n | \"total-confirmed-cases\" -> Some TotalConfirmedCases\n | \"last-confirmed-case\" -> Some LastConfirmedCase\n | \"time-to-double\" ->\n match Highcharts.showDoublingTimeFeatures with\n | true -> Some DoublingTime\n | _ -> None\n | _ -> None\n | _ -> None\n\ntype State =\n { DataToDisplay : DataToDisplay\n Municipalities : Municipality seq\n Regions : Region list\n ShowAll : bool\n SearchQuery : string\n FilterByRegion : string\n View : View }\n\ntype Msg =\n | ToggleShowAll\n | SearchInputChanged of string\n | RegionFilterChanged of string\n | ViewChanged of View\n\nlet init (queryObj : obj) (dataToDisplay : DataToDisplay) (data : RegionsData) : State * Cmd =\n let lastDataPoint = List.last data\n\n let regions =\n lastDataPoint.Regions\n |> List.filter (fun region -> Set.contains region.Name Utils.Dictionaries.excludedRegions |> not)\n |> List.map (fun reg -> { Key = reg.Name ; Name = I18N.tt \"mk.region\" reg.Name }) // SLO-spec\n |> List.sortBy (fun region -> region.Name)\n\n let query = Query(queryObj, regions)\n\n let municipalities =\n seq {\n for regionsDataPoint in data do\n for region in regionsDataPoint.Regions do\n for municipality in region.Municipalities do\n if not (Set.contains municipality.Name excludedMunicipalities) then\n yield {| Date = regionsDataPoint.Date\n RegionKey = region.Name\n MunicipalityKey = municipality.Name\n ActiveCases = municipality.ActiveCases\n ConfirmedToDate = municipality.ConfirmedToDate\n DeceasedToDate = municipality.DeceasedToDate |} }\n |> Seq.groupBy (fun dp -> dp.MunicipalityKey)\n |> Seq.map (fun (municipalityKey, dp) ->\n let totals =\n dp\n |> Seq.map (\n fun dp -> {\n Date = dp.Date\n ActiveCases = dp.ActiveCases\n ConfirmedToDate = dp.ConfirmedToDate\n DeceasedToDate = dp.DeceasedToDate } )\n |> Seq.sortBy (fun dp -> dp.Date)\n |> Seq.toList\n let totalsShown = totals |> Seq.skip ((Seq.length totals) - showMaxBars) |> Seq.toList\n let maxConfirmed = totals |> Seq.tryLast |> Option.map (fun dp -> dp.ConfirmedToDate) |> Option.defaultValue None\n let lastChange = totals |> Seq.filter (fun dp -> dp.ConfirmedToDate = maxConfirmed) |> Seq.head\n let activeCases = totalsShown |> Seq.tryLast |> Option.map (fun dp -> dp.ActiveCases) |> Option.defaultValue None\n let maxActive = totalsShown |> Seq.map (fun dp -> dp.ActiveCases) |> Seq.max\n let dayBefore = totalsShown |> Seq.skip (Seq.length totalsShown - 2) |> Seq.tryHead |> Option.map (fun dp -> dp.ConfirmedToDate) |> Option.defaultValue None\n let newCases =\n match dayBefore, maxConfirmed with\n | Some before, Some last -> if last > before then Some (last - before) else None\n | None, Some last -> Some last\n | _ -> None\n let doublingTime =\n if activeCases.IsSome && activeCases.Value >= 1 (* SLO-spec SLO activeCases.Value >= 5 *)\n then \n dp\n |> Seq.map (fun dp -> {| Date = dp.Date ; Value = dp.ActiveCases |})\n |> Seq.toList\n |> Utils.findDoublingTime\n else None\n { Key = municipalityKey\n Name = Some (I18N.tt \"mk.municipality\" municipalityKey) // SLO-spec\n RegionKey = (dp |> Seq.last).RegionKey\n DoublingTime = doublingTime\n NewCases = newCases\n ActiveCases = activeCases\n MaxActiveCases = maxActive\n MaxConfirmedCases = maxConfirmed\n LastConfirmedCase = lastChange.Date\n DaysSinceLastCase = DateTime.Today.Subtract(lastChange.Date).Days\n TotalsForDate = totalsShown\n })\n\n let state =\n { DataToDisplay = dataToDisplay\n Municipalities = municipalities\n Regions = regions\n ShowAll = false\n SearchQuery = \n match query.Search with\n | None -> \"\"\n | Some search -> search\n FilterByRegion =\n match query.Region with\n | None -> \"\"\n | Some region -> region\n View =\n match query.View with\n | None -> if dataToDisplay = DataToDisplay.SkopjeMunicipality then ActiveCases else LastConfirmedCase\n | Some view -> view }\n\n state, Cmd.none\n\nlet update (msg: Msg) (state: State) : State * Cmd =\n // trigger event for iframe resize\n let evt = document.createEvent(\"event\")\n evt.initEvent(\"chartLoaded\", true, true)\n document.dispatchEvent(evt) |> ignore\n\n match msg with\n | ToggleShowAll ->\n { state with ShowAll = not state.ShowAll }, Cmd.none\n | SearchInputChanged query ->\n { state with SearchQuery = query }, Cmd.none\n | RegionFilterChanged region ->\n { state with FilterByRegion = region }, Cmd.none\n | ViewChanged view ->\n { state with View = view }, Cmd.none\n\nlet renderMunicipality (state : State) (municipality : Municipality) =\n\n let renderLastCase =\n let label, value =\n match municipality.DaysSinceLastCase with\n | 0 -> I18N.t \"charts.municipalities.lastCase\", I18N.t \"charts.municipalities.today\"\n | 1 -> I18N.t \"charts.municipalities.lastCase\", I18N.t \"charts.municipalities.yesterday\"\n | x -> I18N.t \"charts.municipalities.lastCase\", I18N.tOptions \"days.x_days_ago\" {| count = x |}\n\n Html.div [\n prop.className \"last-case-days\"\n prop.children [\n Html.span [\n prop.className \"label\"\n prop.text label\n ]\n Html.span [\n prop.className \"value\"\n prop.text value\n ]\n ]\n ]\n\n let renderedDoublingTime =\n match municipality.DoublingTime with\n | None -> Html.none\n | Some value ->\n let displayValue = int (round value)\n Html.div [\n prop.className \"doubling-time\"\n prop.children [\n Html.span [\n prop.className \"label\"\n prop.text (I18N.t \"charts.municipalities.doubles\")\n ]\n Html.span [\n prop.className \"value\"\n prop.text (I18N.tOptions \"days.in_x_days\" {| count = displayValue |})\n ]\n ]\n ]\n\n let renderedBars =\n let maxValue = if state.View = TotalConfirmedCases then municipality.MaxConfirmedCases else municipality.MaxActiveCases\n match maxValue with\n | None -> Seq.empty\n | Some maxValue ->\n seq {\n for dp in municipality.TotalsForDate do\n match dp.ConfirmedToDate with\n | None ->\n yield Html.div [\n prop.className \"bar bar--empty\"\n ]\n | Some confirmedToDate ->\n yield Html.div [\n prop.className \"bar-wrapper\"\n prop.children [\n let activeCases = dp.ActiveCases |> Option.defaultValue 0\n let deceasedToDate = dp.DeceasedToDate |> Option.defaultValue 0\n let recoveredToDate = confirmedToDate - deceasedToDate - activeCases\n let aHeight = Math.Ceiling(float activeCases * float barMaxHeight / float maxValue)\n let dHeight = Math.Ceiling(float deceasedToDate * float barMaxHeight / float maxValue)\n let rHeight = confirmedToDate * barMaxHeight / maxValue - int dHeight - int aHeight\n Html.div [\n prop.className \"bar\"\n prop.children [\n if state.View = TotalConfirmedCases then\n Html.div [\n prop.style [ style.height (int dHeight) ]\n prop.className \"bar--deceased\" ]\n Html.div [\n prop.style [ style.height rHeight ]\n prop.className \"bar--recovered\" ]\n Html.div [\n prop.style [ style.height (int aHeight) ]\n prop.className \"bar--active\" ]\n ]\n ]\n Html.div [\n prop.className \"total-and-date total-and-date--hover\"\n prop.children [\n Html.div [\n prop.className \"date\"\n prop.text (I18N.tOptions \"days.date\" {| date = dp.Date |} )]\n Html.div [\n if (activeCases > 0) then\n prop.className \"active\"\n prop.children [\n Html.span [ prop.text (I18N.tOptions \"charts.map.last_x_days\" {| count = 7 |} + \": \") ]\n Html.b [ prop.text activeCases ] ] ]\n Html.div [\n if (recoveredToDate > 0) then\n prop.className \"recovered\"\n prop.children [\n Html.span [ prop.text (I18N.t \"charts.municipalities.recovered\") ]\n Html.b [ prop.text recoveredToDate ] ] ]\n Html.div [\n if (deceasedToDate > 0) then\n prop.className \"deceased\"\n prop.children [\n Html.span [ prop.text (I18N.t \"charts.municipalities.deceased\") ]\n Html.b [ prop.text deceasedToDate ] ] ]\n if state.DataToDisplay <> DataToDisplay.SkopjeMunicipality then\n Html.div [\n prop.className \"confirmed\"\n prop.children [\n Html.span [ prop.text (I18N.t \"charts.municipalities.all\") ]\n Html.b [ prop.text confirmedToDate ] ] ]\n ]\n ]\n ]\n ]\n }\n\n Html.div [\n prop.className \"municipality\"\n prop.children [\n Html.div [\n prop.className \"name\"\n prop.text (\n match municipality.Name with\n | None -> municipality.Key\n | Some name -> name)\n ]\n Html.div [\n prop.className \"positive-tests\"\n prop.children [\n Html.div [\n prop.className \"bars\"\n prop.children renderedBars\n ]\n Html.div [\n let showDate = state.DataToDisplay <> DataToDisplay.SkopjeMunicipality\n let className = if showDate then \"total-and-date\" else \"total-and-date no-date\"\n \n prop.className className\n prop.children [\n Html.div [\n prop.className \"active\"\n prop.text (sprintf \"%d\" (municipality.ActiveCases |> Option.defaultValue 0)) ]\n Html.div [\n prop.className \"total-and-new\"\n prop.children [\n Html.div [\n prop.className \"total\"\n prop.text (sprintf \"%d\" (municipality.MaxConfirmedCases |> Option.defaultValue 0)) ]\n if municipality.NewCases.IsSome then\n Html.div [\n prop.className \"new\"\n prop.text (sprintf \"(+%d)\" (municipality.NewCases |> Option.defaultValue 0)) ]\n ]\n ]\n if showDate\n then\n Html.div [\n prop.className \"date\"\n prop.text (I18N.tOptions \"days.date\" {| date = municipality.LastConfirmedCase.Date |})]\n ]\n ]\n ]\n ]\n if state.DataToDisplay <> DataToDisplay.SkopjeMunicipality then\n if Highcharts.showDoublingTimeFeatures then\n renderedDoublingTime\n else\n renderLastCase\n ]\n ]\n\nlet renderMunicipalities (state : State) _ =\n\n let dataFilteredByQuery =\n let query = state.SearchQuery.Trim().ToLower() |> Utils.transliterateCSZ\n if query = \"\"\n then state.Municipalities\n else\n state.Municipalities\n |> Seq.filter (fun municipality ->\n let name =\n match municipality.Name with\n | None -> municipality.Key\n | Some name -> name\n (name.ToLower() |> Utils.transliterateCSZ).Contains(query))\n\n let dataFilteredByRegion =\n dataFilteredByQuery\n |> Seq.filter (fun municipality ->\n if state.FilterByRegion = \"\"\n then true\n else municipality.RegionKey = state.FilterByRegion\n )\n\n let compareStringOption s1 s2 =\n match s1, s2 with\n | None, None -> 0\n | Some _, None -> 1\n | None, Some _ -> -1\n | Some s1, Some s2 -> String.Compare(s1, s2)\n\n let compareActiveCases m1 m2 =\n if m1.ActiveCases < m2.ActiveCases then 1\n else if m1.ActiveCases > m2.ActiveCases then -1\n else compareStringOption m1.Name m2.Name\n\n let compareMaxCases m1 m2 =\n if m1.MaxConfirmedCases < m2.MaxConfirmedCases then 1\n else if m1.MaxConfirmedCases > m2.MaxConfirmedCases then -1\n else compareStringOption m1.Name m2.Name\n\n let sortedMunicipalities =\n match state.View with\n | ActiveCases ->\n dataFilteredByRegion\n |> Seq.sortWith compareActiveCases\n | TotalConfirmedCases ->\n dataFilteredByRegion\n |> Seq.sortWith compareMaxCases\n | DoublingTime ->\n dataFilteredByRegion\n |> Seq.sortWith (fun m1 m2 ->\n match m1.DoublingTime, m2.DoublingTime with\n | None, None -> compareStringOption m1.Name m2.Name\n | Some _, None -> -1\n | None, Some _ -> 1\n | Some d1, Some d2 ->\n if d1 > d2 then 1\n else if d1 < d2 then -1\n else compareActiveCases m1 m2)\n | LastConfirmedCase ->\n dataFilteredByRegion\n |> Seq.sortWith (fun m1 m2 ->\n if m1.LastConfirmedCase < m2.LastConfirmedCase then 1\n else if m1.LastConfirmedCase > m2.LastConfirmedCase then -1\n else if m1.NewCases < m2.NewCases then 1\n else if m1.NewCases > m2.NewCases then -1\n else compareActiveCases m1 m2)\n\n let truncatedData, displayShowAllButton =\n if state.DataToDisplay = DataToDisplay.SkopjeMunicipality then sortedMunicipalities, false\n else if state.ShowAll then sortedMunicipalities, true\n else if Seq.length sortedMunicipalities <= collapsedMunicipalityCount then sortedMunicipalities, false\n else Seq.take collapsedMunicipalityCount sortedMunicipalities, true\n\n (truncatedData |> Seq.map (fun municipality -> renderMunicipality state municipality), displayShowAllButton)\n\nlet renderShowMore showAll dispatch =\n\n let scrollToElement (e: MouseEvent) =\n e.preventDefault ()\n\n dispatch ToggleShowAll\n\n let element =\n document.getElementById \"municipalities-chart\"\n\n let offset = -100.\n\n let position =\n element.getBoundingClientRect().top\n + window.pageYOffset\n + offset\n\n if showAll then\n window.scrollTo\n ({| top = position\n behavior = \"auto\" |}\n |> unbox) // behavior = smooth | auto\n\n Html.div [\n prop.className \"show-all\"\n prop.children [\n Html.div [\n Html.a [\n prop.className \"btn btn-primary\"\n prop.text (if showAll then I18N.t \"charts.municipalities.showLess\" else I18N.t \"charts.municipalities.showAll\")\n prop.onClick scrollToElement\n ]\n ]\n ]\n ]\n\n\nlet renderSearch (query : string) dispatch =\n Html.input [\n prop.className \"form-control form-control-sm filters__query\"\n prop.type' .text\n prop.placeholder (I18N.t \"charts.municipalities.search\")\n prop.valueOrDefault query\n prop.onChange (SearchInputChanged >> dispatch)\n ]\n\nlet renderRegionSelector (regions : Region list) (selected : string) dispatch =\n let renderedRegions = seq {\n yield Html.option [\n prop.text (I18N.t \"charts.municipalities.allRegions\")\n prop.value \"\"\n ]\n\n for region in regions do\n yield Html.option [\n prop.text region.Name\n prop.value region.Key\n ]\n }\n\n Html.select [\n prop.value selected\n prop.className \"form-control form-control-sm filters__region\"\n prop.children renderedRegions\n prop.onChange (RegionFilterChanged >> dispatch)\n ]\n\nlet renderView (currentView : View) (dataToDisplay : DataToDisplay) dispatch =\n\n let renderSelector (view : View) (label : string) =\n let defaultProps =\n [ prop.text label\n Utils.classes [\n (true, \"chart-display-property-selector__item\")\n (view = currentView, \"selected\") ] ]\n if view = currentView\n then Html.div defaultProps\n else Html.div ((prop.onClick (fun _ -> ViewChanged view |> dispatch)) :: defaultProps)\n\n if dataToDisplay <> DataToDisplay.SkopjeMunicipality\n then\n Html.div [\n prop.className \"chart-display-property-selector\"\n prop.children [\n Html.text (I18N.t \"charts.common.sortBy\")\n if Highcharts.showDoublingTimeFeatures then\n renderSelector View.DoublingTime (I18N.t \"charts.municipalities.viewDoublingTime\")\n renderSelector View.LastConfirmedCase (I18N.t \"charts.municipalities.viewLast\")\n renderSelector View.ActiveCases (I18N.tOptions \"charts.map.last_x_days\" {| count = 7 |})\n renderSelector View.TotalConfirmedCases (I18N.t \"charts.municipalities.viewTotal\")\n ]\n ]\n else\n Html.none\n\nlet render (state : State) dispatch =\n let renderedMunicipalities, showMore = renderMunicipalities state dispatch\n\n let element = Html.div [\n prop.children [\n Utils.renderChartTopControls [\n if state.DataToDisplay <> DataToDisplay.SkopjeMunicipality\n then \n Html.div [\n prop.className \"filters\"\n prop.children [\n renderRegionSelector state.Regions state.FilterByRegion dispatch\n renderSearch state.SearchQuery dispatch\n ]\n ]\n renderView state.View state.DataToDisplay dispatch\n ]\n Html.div [\n prop.className \"municipalities\"\n prop.children renderedMunicipalities ]\n (if showMore then renderShowMore state.ShowAll dispatch else Html.none)\n \n if state.DataToDisplay <> DataToDisplay.SkopjeMunicipality\n then\n Html.div [\n prop.className \"highcharts-subtitle\"\n prop.children [\n Html.p [\n prop.text (I18N.t \"noData.macedoniaMun\")\n ]\n ]\n prop.style [ \n style.marginLeft 10 \n style.marginRight 10 \n style.marginTop 20 \n ]\n ]\n else\n Html.none\n\n Html.div [\n prop.className \"credits\"\n prop.children [\n Html.a [\n // SLO-spec prop.href \"https://www.nijz.si/sl/dnevno-spremljanje-okuzb-s-sars-cov-2-covid-19\"\n prop.href \"http://www.iph.mk\"\n prop.text (sprintf \"%s: %s, %s\"\n (I18N.t \"charts.common.dataSource\")\n (I18N.tOptions (\"charts.common.dsNIJZ\") {| context = localStorage.getItem (\"contextCountry\") |})\n (I18N.tOptions (\"charts.common.dsMZ\") {| context = localStorage.getItem (\"contextCountry\") |}))\n ]\n ]\n ]\n ]\n ]\n\n // trigger event for iframe resize\n let evt = document.createEvent(\"event\")\n evt.initEvent(\"chartLoaded\", true, true)\n document.dispatchEvent(evt) |> ignore\n\n element\n\nlet municipalitiesChart (props : {| query : obj ; dataToDisplay : DataToDisplay; data : RegionsData |}) =\n React.elmishComponent(\"MunicipalitiesChart\", init props.query props.dataToDisplay props.data, update, render)\n","module Data.OurWorldInData\n\nopen System\nopen Fable.SimpleHttp\nopen Fable.Extras.Web\n\nopen Types\n\n// let apiUrl = \"https://api.sledilnik.org/api/owid\" SLO-spec\nlet apiUrl = \"https://api.treker.mk/api/owid\"\n\ntype CountryIsoCode = string\n\ntype DataPoint = {\n CountryCode : CountryIsoCode\n Date : DateTime\n NewCases : int option\n NewCasesPerMillion : float option\n TotalCases : int option\n TotalCasesPerMillion : float option\n TotalDeaths : int option\n TotalDeathsPerMillion : float option\n}\n\n[]\ntype CountrySelection =\n | All\n | Selected of CountryIsoCode list\n\ntype Query =\n { DateFrom : DateTime option\n DateTo : DateTime option\n Countries : CountrySelection\n }\n\n with\n\n member this.URLSearchParams =\n [ this.DateFrom |> Option.map (fun date-> (\"from\", date.ToString(\"yyyy-MM-dd\")))\n this.DateTo |> Option.map (fun date-> (\"to\", date.ToString(\"yyyy-MM-dd\")))\n match this.Countries with\n | CountrySelection.All -> None\n | CountrySelection.Selected countries -> Some (\"countries\", (String.Join(\",\", countries))) ]\n |> List.choose id\n |> JSe.URLSearchParams\n\ntype OurWorldInDataRemoteData = RemoteData\n\nlet parseInt = Utils.nativeParseInt\n\nlet parseFloat = Utils.nativeParseFloat\n\nlet loadData (query : Query) msg =\n async {\n let url = JSe.URL apiUrl\n url.Search <- query.URLSearchParams.ToString()\n\n let! response =\n Http.request (url.ToString())\n |> Http.method GET\n |> Http.header (Headers.accept \"text/csv\")\n |>Http.send\n\n match response.statusCode = 200 with\n | false ->\n return sprintf\n \"Napaka pri nalaganju OurWorldInData podatkov: %d\" response.statusCode |> Failure |> msg\n | true ->\n let csv = response.content.ToString()\n let data =\n csv.Split(\"\\n\").[1..]\n |> Array.map (fun rowString ->\n let row = rowString.Split(\";\")\n try\n Some {\n Date = DateTime.Parse(row.[0])\n CountryCode = row.[1]\n NewCases = parseInt row.[2]\n NewCasesPerMillion = parseFloat row.[3]\n TotalCases = parseInt row.[4]\n TotalCasesPerMillion = parseFloat row.[5]\n TotalDeaths = parseInt row.[6]\n TotalDeathsPerMillion = parseFloat row.[7]\n }\n with\n | _ -> None\n )\n |> Array.choose id\n |> Array.toList\n\n return data |> Success |> msg\n }\n","[]\nmodule EuropeMap\n\nopen System\nopen Feliz\nopen Elmish\nopen Feliz.ElmishComponents\nopen Fable.Core.JsInterop\nopen Fable.SimpleHttp\nopen Browser\n\nopen Highcharts\nopen Types\nopen Data.OurWorldInData\n\nlet chartText = I18N.chartText \"europe\"\n\ntype MapToDisplay = Europe | World\n\nlet europeGeoJsonUrl = \"/maps/europe.geo.json\"\nlet worldGeoJsonUrl = \"/maps/world-robinson.geo.json\"\n\ntype GeoJson = RemoteData\n\ntype OwdData = OurWorldInDataRemoteData\n\ntype CountryData =\n { Country: string\n // OWD data\n TwoWeekIncidence100k: float\n TwoWeekIncidence: float []\n TwoWeekIncidenceMaxValue: float\n NewCases: int list\n OwdDate: DateTime\n // NIJZ data\n RestrictionColor: string\n RestrictionText: string\n RestrictionAltText: string\n ImportedFrom: int\n ImportedDate: DateTime }\n\ntype CountriesMap = Map\n\ntype ChartType =\n | TwoWeekIncidence\n | Restrictions\n | WeeklyIncrease\n\n override this.ToString() =\n match this with\n | TwoWeekIncidence -> chartText \"twoWeekIncidence\"\n | Restrictions -> chartText \"restrictions\"\n | WeeklyIncrease -> chartText \"weeklyIncrease\"\n\ntype State =\n { MapToDisplay : MapToDisplay\n Data : WeeklyStatsData\n Countries : CountrySelection\n GeoJson: GeoJson\n OwdData: OwdData\n CountryData: CountriesMap\n ChartType: ChartType }\n\ntype Msg =\n | GeoJsonRequested\n | GeoJsonLoaded of GeoJson\n | OwdDataRequested\n | OwdDataReceived of OwdData\n | ChartTypeChanged of ChartType\n\nlet worldCountries =\n [ \"AFG\" ; \"ALB\" ; \"DZA\" ; \"ASM\" ; \"AND\" ; \"AGO\" ; \"AIA\" ; \"ATA\" ; \"ATG\" ; \"ARG\" ; \"ARM\" ; \"ABW\" ; \"AUS\" ; \"AUT\" ; \"AZE\" ; \"BHS\" ; \"BHR\" ; \"BGD\" ; \"BRB\" ; \"BLR\" ; \"BEL\" ; \"BLZ\" ; \"BEN\" ; \"BMU\" ; \"BTN\" ; \"BOL\" ; \"BES\" ; \"BIH\" ; \"BWA\" ; \"BVT\" ; \"BRA\" ; \"IOT\" ; \"BRN\" ; \"BGR\" ; \"BFA\" ; \"BDI\" ; \"CPV\" ; \"KHM\" ; \"CMR\" ; \"CAN\" ; \"CYM\" ; \"CAF\" ; \"TCD\" ; \"CHL\" ; \"CHN\" ; \"CXR\" ; \"CCK\" ; \"COL\" ; \"COM\" ; \"COD\" ; \"COG\" ; \"COK\" ; \"CRI\" ; \"HRV\" ; \"CUB\" ; \"CUW\" ; \"CYP\" ; \"CZE\" ; \"CIV\" ; \"DNK\" ; \"DJI\" ; \"DMA\" ; \"DOM\" ; \"ECU\" ; \"EGY\" ; \"SLV\" ; \"GNQ\" ; \"ERI\" ; \"EST\" ; \"SWZ\" ; \"ETH\" ; \"FLK\" ; \"FRO\" ; \"FJI\" ; \"FIN\" ; \"FRA\" ; \"GUF\" ; \"PYF\" ; \"ATF\" ; \"GAB\" ; \"GMB\" ; \"GEO\" ; \"DEU\" ; \"GHA\" ; \"GIB\" ; \"GRC\" ; \"GRL\" ; \"GRD\" ; \"GLP\" ; \"GUM\" ; \"GTM\" ; \"GGY\" ; \"GIN\" ; \"GNB\" ; \"GUY\" ; \"HTI\" ; \"HMD\" ; \"VAT\" ; \"HND\" ; \"HKG\" ; \"HUN\" ; \"ISL\" ; \"IND\" ; \"IDN\" ; \"IRN\" ; \"IRQ\" ; \"IRL\" ; \"IMN\" ; \"ISR\" ; \"ITA\" ; \"JAM\" ; \"JPN\" ; \"JEY\" ; \"JOR\" ; \"KAZ\" ; \"KEN\" ; \"KIR\" ; \"PRK\" ; \"KOR\" ; \"KWT\" ; \"KGZ\" ; \"LAO\" ; \"LVA\" ; \"LBN\" ; \"LSO\" ; \"LBR\" ; \"LBY\" ; \"LIE\" ; \"LTU\" ; \"LUX\" ; \"MAC\" ; \"MDG\" ; \"MWI\" ; \"MYS\" ; \"MDV\" ; \"MLI\" ; \"MLT\" ; \"MHL\" ; \"MTQ\" ; \"MRT\" ; \"MUS\" ; \"MYT\" ; \"MEX\" ; \"FSM\" ; \"MDA\" ; \"MCO\" ; \"MNG\" ; \"MNE\" ; \"MSR\" ; \"MAR\" ; \"MOZ\" ; \"MMR\" ; \"NAM\" ; \"NRU\" ; \"NPL\" ; \"NLD\" ; \"NCL\" ; \"NZL\" ; \"NIC\" ; \"NER\" ; \"NGA\" ; \"NIU\" ; \"NFK\" ; \"MNP\" ; \"NOR\" ; \"OMN\" ; \"PAK\" ; \"PLW\" ; \"PSE\" ; \"PAN\" ; \"PNG\" ; \"PRY\" ; \"PER\" ; \"PHL\" ; \"PCN\" ; \"POL\" ; \"PRT\" ; \"PRI\" ; \"QAT\" ; \"MKD\" ; \"ROU\" ; \"RUS\" ; \"RWA\" ; \"REU\" ; \"BLM\" ; \"SHN\" ; \"KNA\" ; \"LCA\" ; \"MAF\" ; \"SPM\" ; \"VCT\" ; \"WSM\" ; \"SMR\" ; \"STP\" ; \"SAU\" ; \"SEN\" ; \"SRB\" ; \"SYC\" ; \"SLE\" ; \"SGP\" ; \"SXM\" ; \"SVK\" ; \"SVN\" ; \"SLB\" ; \"SOM\" ; \"ZAF\" ; \"SGS\" ; \"SSD\" ; \"ESP\" ; \"LKA\" ; \"SDN\" ; \"SUR\" ; \"SJM\" ; \"SWE\" ; \"CHE\" ; \"SYR\" ; \"TWN\" ; \"TJK\" ; \"TZA\" ; \"THA\" ; \"TLS\" ; \"TGO\" ; \"TKL\" ; \"TON\" ; \"TTO\" ; \"TUN\" ; \"TUR\" ; \"TKM\" ; \"TCA\" ; \"TUV\" ; \"UGA\" ; \"UKR\" ; \"ARE\" ; \"GBR\" ; \"UMI\" ; \"USA\" ; \"URY\" ; \"UZB\" ; \"VUT\" ; \"VEN\" ; \"VNM\" ; \"VGB\" ; \"VIR\" ; \"WLF\" ; \"ESH\" ; \"YEM\" ; \"ZMB\" ; \"ZWE\" ; \"ALA\" ; \"XKX\"]\n\nlet euCountries =\n [ \"ALB\"\n \"AND\"\n \"AUT\"\n \"BLR\"\n \"BEL\"\n \"BIH\"\n \"BGR\"\n \"HRV\"\n \"CYP\"\n \"CZE\"\n \"DNK\"\n \"EST\"\n \"FRO\"\n \"FIN\"\n \"FRA\"\n \"DEU\"\n \"GRC\"\n \"HUN\"\n \"ISL\"\n \"IRL\"\n \"ITA\"\n \"LVA\"\n \"LIE\"\n \"LTU\"\n \"LUX\"\n \"MKD\"\n \"MLT\"\n \"MDA\"\n \"MCO\"\n \"MNE\"\n \"NLD\"\n \"NOR\"\n \"POL\"\n \"PRT\"\n \"SRB\"\n \"ROU\"\n \"RUS\"\n \"SMR\"\n \"SVK\"\n \"SVN\"\n \"ESP\"\n \"SWE\"\n \"CHE\"\n \"TUR\"\n \"UKR\"\n \"GBR\"\n \"VAT\"\n \"XKX\"\n \"NCY\"\n \"NMA\" ]\n\nlet greenCountries =\n Map.ofList\n [\n (\"AUS\", \"\")\n (\"NZL\", \"\")\n (\"URY\", \"\")\n ]\n\nlet redCountries =\n Map.ofList\n [\n (\"AFG\", \"\")\n (\"ALB\", \"\")\n (\"DZA\", \"\")\n (\"AND\", \"\")\n (\"AGO\", \"\")\n (\"ARG\", \"\")\n (\"ARM\", \"\")\n (\"AUT\", \"vse razen administrativne enote Koroška (Kärnten)\")\n (\"AZE\", \"\")\n (\"BAH\", \"\")\n (\"BHR\", \"\")\n (\"BGD\", \"\")\n (\"BEL\", \"\")\n (\"BLZ\", \"\")\n (\"BLR\", \"\")\n (\"BEN\", \"\")\n (\"BGR\", \"administrativna enota: Blagoevgrad, Rasgrad, Sliven, Sofia (mesto Sofija), Targovishte\")\n (\"BOL\", \"\")\n (\"BIH\", \"\")\n (\"BRA\", \"\")\n (\"BFA\", \"\")\n (\"BDI\", \"\")\n (\"BTN\", \"\")\n (\"TCD\", \"\")\n (\"CZE\", \"\")\n (\"CHL\", \"\")\n (\"MNE\", \"\")\n (\"DNK\", \"administrativna enota: Hovedstaden, regija glavnega mesta\")\n (\"DOM\", \"\")\n (\"EGY\", \"\")\n (\"ECU\", \"\")\n (\"GNQ\", \"\")\n (\"ERI\", \"\")\n (\"EST\", \"administrativna enota: Jogeva\")\n (\"SWZ\", \"\")\n (\"ETH\", \"\")\n (\"PHL\", \"\")\n (\"FIN\", \"administrativna enota: Österbotten\")\n (\"FRA\", \"vse administrativne enote celinske Francije, čezmorsko ozemlje: Francoska Gvajana, Guadeloupe, Sveti Martin, La Réunion, Martinique\")\n (\"GAB\", \"\")\n (\"GMB\", \"\")\n (\"GHA\", \"\")\n (\"GEO\", \"\")\n (\"GUY\", \"\")\n (\"GTM\", \"\")\n (\"GIN\", \"\")\n (\"GNB\", \"\")\n (\"HTI\", \"\")\n (\"HND\", \"\")\n (\"HRV\", \"administrativne enote: Bjelovarsko-bilogorska, Dubrovniško-neretvanska, Karlovška, Krapinsko-zagorska, Liško-senjska, Medžimurska, Osiješko-baranjska, Požeško-slavonska, Sisaško-moslavška, Splitsko-dalmatinska, Varaždinska, Virovitiško-podravska, Vukovarsko-sremska, Zagreb (celotna županija, vključno z mestom Zagreb)\")\n (\"IND\", \"\")\n (\"IDN\", \"\")\n (\"IRQ\", \"\")\n (\"IRN\", \"\")\n (\"IRL\", \"\")\n (\"ISL\", \"\")\n (\"ITA\", \"administrativne enote: Abruzzo, Valle d'Aosta, Campania, Emilia-Romagna, Friuli Venezia Giulia, Lazio, Liguria, Lombardia, Piedmont, Sardegna, Toscana, Umbria, Veneto, Provincia autonoma di Bolzano – Alto Adige\")\n (\"ISR\", \"\")\n (\"JAM\", \"\")\n (\"YEM\", \"\")\n (\"JOR\", \"\")\n (\"ZAF\", \"\")\n (\"SSD\", \"\")\n (\"CMR\", \"\")\n (\"QAT\", \"\")\n (\"KAZ\", \"\")\n (\"KEN\", \"\")\n (\"KGZ\", \"\")\n (\"COL\", \"\")\n (\"COM\", \"\")\n (\"COG\", \"\")\n (\"COD\", \"\")\n (\"XKX\", \"\")\n (\"CRI\", \"\")\n (\"KWT\", \"\")\n (\"LSO\", \"\")\n (\"LBN\", \"\")\n (\"LBR\", \"\")\n (\"LBY\", \"\")\n (\"LIE\", \"\")\n (\"LTU\", \"administrativna enota: Šiaulių, Kaunas\")\n (\"LUX\", \"\")\n (\"MDG\", \"\")\n (\"HUN\", \"administrativne enote: Budimpešta, Baranya, Borsod-Abaúj-Zemplén, Csongrád-Csanád, Győr-Moson-Sopron, Pest, Hajdú-Bihar, Heves, Jász-Nagykun-Szolnok, Komárom-Esztergom, Nógrád, Pešta (Pest), Somogy, Szabolcs-Szatmár-Bereg, Vas, Veszprém, Zala\")\n (\"MWL\", \"\")\n (\"MDV\", \"\")\n (\"MLI\", \"\")\n (\"MLT\", \"\")\n (\"MAR\", \"\")\n (\"MRT\", \"\")\n (\"MEX\", \"\")\n (\"MDA\", \"\")\n (\"MNG\", \"\")\n (\"MOZ\", \"\")\n (\"NPL\", \"\")\n (\"NIG\", \"\")\n (\"NGA\", \"\")\n (\"NIC\", \"\")\n (\"NLD\", \"\")\n (\"OMN\", \"\")\n (\"PAK\", \"\")\n (\"PAN\", \"\")\n (\"PNG\", \"\")\n (\"PRY\", \"\")\n (\"PER\", \"\")\n (\"POL\", \"\")\n (\"PRT\", \"administrativna enota: Lizbona (Lisboa), Norte\")\n (\"ROU\", \"\")\n (\"RUS\", \"\")\n (\"SLV\", \"\")\n (\"STP\", \"\")\n (\"SAU\", \"\")\n (\"SEN\", \"\")\n (\"PRK\", \"\")\n (\"MKD\", \"\")\n (\"SLE\", \"\")\n (\"SYR\", \"\")\n (\"CIV\", \"\")\n (\"SVK\", \"\")\n (\"SOM\", \"\")\n (\"CAF\", \"\")\n (\"SUR\", \"\")\n (\"ESP\", \"vse administrativne enote razen Kanarski otoki (Islas Canarias)\")\n (\"SWE\", \"administrativne enote: Jämtland, Jönköping, Örebro, Östergötland, Stockholm, Uppsala\")\n (\"CHE\", \"\")\n (\"TJK\", \"\")\n (\"TZA\", \"\")\n (\"TGO\", \"\")\n (\"TTO\", \"\")\n (\"TUN\", \"\")\n (\"TUR\", \"\")\n (\"TKM\", \"\")\n (\"UKR\", \"\")\n (\"UZB\", \"\")\n (\"VEN\", \"\")\n (\"TLS\", \"\")\n (\"ZMB\", \"\")\n (\"USA\", \"\")\n (\"ARE\", \"\")\n (\"ZWE\", \"\")\n ]\n\nlet loadEuropeGeoJson =\n async {\n let! (statusCode, response) = Http.get europeGeoJsonUrl\n\n if statusCode <> 200 then\n return GeoJsonLoaded\n (sprintf \"Error loading map: %d\" statusCode\n |> Failure)\n else\n try\n let data = response |> Fable.Core.JS.JSON.parse\n return GeoJsonLoaded(data |> Success)\n with ex ->\n return GeoJsonLoaded\n (sprintf \"Error loading map: %s\" ex.Message\n |> Failure)\n }\n\nlet loadWorldGeoJson =\n async {\n let! (statusCode, response) = Http.get worldGeoJsonUrl\n\n if statusCode <> 200 then\n return GeoJsonLoaded\n (sprintf \"Error loading map: %d\" statusCode\n |> Failure)\n else\n try\n let data = response |> Fable.Core.JS.JSON.parse\n return GeoJsonLoaded(data |> Success)\n with ex ->\n return GeoJsonLoaded\n (sprintf \"Error loading map: %s\" ex.Message\n |> Failure)\n }\n\nlet init (mapToDisplay: MapToDisplay) (data: WeeklyStatsData): State * Cmd =\n let cmdGeoJson = Cmd.ofMsg GeoJsonRequested\n let cmdOwdData = Cmd.ofMsg OwdDataRequested\n { MapToDisplay = mapToDisplay\n Data = data\n Countries =\n match mapToDisplay with\n | World -> CountrySelection.All\n | Europe -> CountrySelection.Selected euCountries\n GeoJson = NotAsked\n OwdData = NotAsked\n CountryData = Map.empty\n ChartType =\n match mapToDisplay with\n | Europe -> TwoWeekIncidence\n (* | Europe -> Restrictions SLO-spec *)\n | World -> TwoWeekIncidence },\n (cmdGeoJson @ cmdOwdData)\n\nlet prepareCountryData (data: DataPoint list) (weeklyData: WeeklyStatsData) =\n let dataForLastTwoWeeks = Array.sub weeklyData (weeklyData.Length - 2) 2\n let importedFrom = dataForLastTwoWeeks |> Data.WeeklyStats.countryTotals |> Map.ofArray\n let importedDate = (Array.last dataForLastTwoWeeks).DateTo\n\n let last n xs = List.toSeq xs |> Seq.skip (xs.Length - n) |> Seq.toList\n\n data\n |> List.groupBy (fun dp -> dp.CountryCode)\n |> List.map (fun (code, dps) ->\n let fixedCode =\n if code = \"OWID_KOS\" then \"XKX\" else code // hack for Kosovo code\n\n let country = I18N.tt \"country\" code // TODO: change country code in i18n for Kosovo\n\n let incidence100k =\n (dps\n |> List.map (fun dp -> dp.NewCasesPerMillion)\n |> List.choose id\n |> last 14 // select the last two weeks\n |> List.sum)\n / 10.\n\n let incidence =\n dps\n |> List.map (fun dp -> dp.NewCasesPerMillion)\n |> List.choose id\n |> last 14\n |> List.toArray\n\n let incidenceMaxValue =\n if incidence.Length = 0\n then 0.\n else incidence |> Array.toList |> last 14 |> List.max\n\n let newCases =\n dps |> List.map (fun dp -> dp.NewCases |> Utils.optionToInt)\n\n let owdDate =\n dps |> List.map (fun dp -> dp.Date) |> List.max\n\n let red, green =\n redCountries.TryFind(fixedCode),\n greenCountries.TryFind(fixedCode)\n let rText, rColor, rAltText =\n match fixedCode with\n | \"SVN\" -> chartText \"statusNone\", \"#10829a\", \"\"\n | _ ->\n match red with\n | Some redNote ->\n if redNote.Length > 0\n then chartText \"statusRed\", \"#FF9057\", redNote\n else chartText \"statusRed\", \"#FF5348\", redNote\n | _ ->\n match green with\n | Some greenNote -> chartText \"statusGreen\", \"#C4DE6F\", greenNote\n | _ -> chartText \"statusOrange\", \"#FFC65A\", \"\"\n\n let imported =\n importedFrom.TryFind(fixedCode)\n |> Option.defaultValue 0\n\n let cd: CountryData =\n { CountryData.Country = country\n CountryData.TwoWeekIncidence100k = incidence100k\n CountryData.TwoWeekIncidence = incidence\n CountryData.TwoWeekIncidenceMaxValue = incidenceMaxValue\n CountryData.NewCases = newCases\n CountryData.OwdDate = owdDate\n CountryData.RestrictionColor = rColor\n CountryData.RestrictionText = rText\n CountryData.RestrictionAltText = rAltText\n CountryData.ImportedFrom = imported\n CountryData.ImportedDate = importedDate }\n\n (fixedCode, cd))\n |> Map.ofList\n\nlet update (msg: Msg) (state: State): State * Cmd =\n\n let owdCountries =\n match state.Countries with\n | CountrySelection.All ->\n CountrySelection.All\n | CountrySelection.Selected countries ->\n countries\n |> List.map (fun code -> if code = \"XKX\" then \"OWID_KOS\" else code) // hack for Kosovo code\n |> CountrySelection.Selected\n\n match msg with\n | GeoJsonRequested ->\n let cmd =\n match state.MapToDisplay with\n | Europe -> Cmd.OfAsync.result loadEuropeGeoJson\n | World -> Cmd.OfAsync.result loadWorldGeoJson\n { state with GeoJson = Loading }, cmd\n | GeoJsonLoaded geoJson -> { state with GeoJson = geoJson }, Cmd.none\n | OwdDataRequested ->\n let someWeeksAgo = DateTime.Today.AddDays(-21.0) // increased to 21 days from 14\n let cmd = Cmd.OfAsync.result (loadData {\n Countries = owdCountries\n DateFrom = Some someWeeksAgo\n DateTo = None } OwdDataReceived)\n { state with OwdData = Loading }, cmd\n | OwdDataReceived result ->\n let ret =\n match result with\n | Success owdData ->\n { state with\n OwdData = result\n CountryData = prepareCountryData owdData state.Data }\n | _ -> { state with OwdData = result }\n\n ret, Cmd.none\n | ChartTypeChanged chartType -> { state with ChartType = chartType }, Cmd.none\n\n\nlet mapData state =\n let countries =\n match state.Countries with\n | CountrySelection.All -> worldCountries\n | CountrySelection.Selected countries -> countries\n\n countries\n |> List.map (fun code ->\n match state.CountryData.TryFind(code) with\n | Some cd ->\n let incidence100k = cd.TwoWeekIncidence100k |> int\n let incidence = cd.TwoWeekIncidence\n let incidenceMaxValue = cd.TwoWeekIncidenceMaxValue\n\n let nc =\n cd.NewCases\n |> List.tryLast\n |> Option.defaultValue 0\n\n let cases = cd.NewCases |> List.toArray\n\n let casesLastWeek = Array.sub cases (cases.Length - 7) 7 |> Array.sum\n let casesWeekBefore = Array.sub cases (cases.Length - 14) 7 |> Array.sum\n let relativeIncrease =\n if casesWeekBefore > 0\n then 100. * (float casesLastWeek/ float casesWeekBefore - 1.) |> min 500.\n else\n 0.\n\n let last n xs = List.toSeq xs |> Seq.skip (xs.Length - n) |> Seq.toList\n let twoWeekCaseNumbers =\n cd.NewCases\n |> List.filter(fun x -> x > 0) // filter out date with missing data\n |> last 14 // take the last 14 non zero data points\n |> List.toArray\n |> Array.map float\n\n let ncDate =\n (I18N.tOptions \"days.date\" {| date = cd.OwdDate |})\n\n let impDate =\n (I18N.tOptions \"days.date\" {| date = cd.ImportedDate |})\n\n let baseRec =\n {| code = code\n country = cd.Country\n incidence100k = incidence100k\n incidence = incidence\n incidenceMaxValue = incidenceMaxValue\n newCases = nc\n weeklyIncrease = relativeIncrease\n twoWeekCases = twoWeekCaseNumbers\n ncDate = ncDate\n rType = cd.RestrictionText\n rAltText = cd.RestrictionAltText\n imported = cd.ImportedFrom\n impDate = impDate |}\n\n match state.ChartType with\n | TwoWeekIncidence ->\n {| baseRec with\n value = max (float incidence100k) 0.001\n color = null\n dataLabels = {| enabled = false |} |}\n | Restrictions ->\n {| baseRec with\n value = float cd.ImportedFrom\n color = cd.RestrictionColor\n dataLabels = {| enabled = cd.ImportedFrom > 0 |} |}\n | WeeklyIncrease ->\n {| baseRec with\n value = relativeIncrease\n color = null\n dataLabels = {| enabled = false |} |}\n | _ ->\n {| code = code\n country = \"\"\n value = 0.1\n color = null\n dataLabels = {| enabled = false |}\n incidence100k = 0\n incidence = null\n incidenceMaxValue = 0.0\n newCases = 0\n weeklyIncrease = 0.\n twoWeekCases = [| |]\n ncDate = \"\"\n rType = \"\"\n rAltText = \"\"\n imported = 0\n impDate = \"\" |})\n |> List.toArray\n\nlet renderMap state geoJson _ =\n\n let legend =\n let enabled = state.ChartType <> Restrictions\n {| enabled = enabled\n title = {| text = null |}\n align = if state.MapToDisplay = World then \"left\" else \"right\"\n verticalAlign = if state.MapToDisplay = World then \"bottom\" else \"top\"\n layout = \"vertical\"\n floating = true\n borderWidth = 1\n backgroundColor = \"white\"\n valueDecimals = 0\n width = 70\n |}\n |> pojo\n\n let colorAxis =\n match state.ChartType with\n | TwoWeekIncidence ->\n {|\n ``type`` = \"logarithmic\"\n tickInterval = 0.4\n max = 7000\n min = 1\n endOnTick = false\n startOnTick = false\n stops =\n [|\n (0.000,\"#ffffff\")\n (0.001,\"#fff7db\")\n (0.200,\"#ffefb7\")\n (0.280,\"#ffe792\")\n (0.360,\"#ffdf6c\")\n (0.440,\"#ffb74d\")\n (0.520,\"#ff8d3c\")\n (0.600,\"#f85d3a\")\n (0.680,\"#ea1641\")\n (0.760,\"#d0004e\")\n (0.840,\"#ad005b\")\n (0.920,\"#800066\")\n (0.999,\"#43006e\")\n |]\n reversed = true\n labels =\n {|\n formatter = fun() -> jsThis?value\n |} |> pojo\n |} |> pojo\n | Restrictions ->\n {|\n ``type`` = \"linear\"\n tickInterval = 0.4\n max = 7000\n min = 1\n endOnTick = false\n startOnTick = false\n stops =\n [|\n (0.000,\"#ffffff\")\n (0.001,\"#fff7db\")\n (0.200,\"#ffefb7\")\n (0.280,\"#ffe792\")\n (0.360,\"#ffdf6c\")\n (0.440,\"#ffb74d\")\n (0.520,\"#ff8d3c\")\n (0.600,\"#f85d3a\")\n (0.680,\"#ea1641\")\n (0.760,\"#d0004e\")\n (0.840,\"#ad005b\")\n (0.920,\"#800066\")\n (0.999,\"#43006e\")\n |]\n reversed = true\n labels =\n {|\n formatter = fun() -> jsThis?value\n |} |> pojo\n |} |> pojo\n | WeeklyIncrease ->\n {|\n ``type`` = \"linear\"\n tickInterval = 50\n max = 200\n min = -100\n endOnTick = false\n startOnTick = false\n stops =\n [|\n (0.000,\"#009e94\")\n (0.166,\"#6eb49d\")\n (0.250,\"#b2c9a7\")\n (0.333,\"#f0deb0\")\n (0.500,\"#e3b656\")\n (0.600,\"#cc8f00\")\n (0.999,\"#b06a00\")\n |]\n reversed=false\n labels =\n {|\n formatter = fun() -> sprintf \"%s%%\" jsThis?value\n |} |> pojo\n |} |> pojo\n\n\n let sparklineFormatter newCases =\n let desaturateColor (rgb:string) (sat:float) =\n let argb = Int32.Parse (rgb.Replace(\"#\", \"\"), Globalization.NumberStyles.HexNumber)\n let r = (argb &&& 0x00FF0000) >>> 16\n let g = (argb &&& 0x0000FF00) >>> 8\n let b = (argb &&& 0x000000FF)\n let avg = (float(r + g + b) / 3.0) * 1.6\n let newR = int (Math.Round (float(r) * sat + avg * (1.0 - sat)))\n let newG = int (Math.Round (float(g) * sat + avg * (1.0 - sat)))\n let newB = int (Math.Round (float(b) * sat + avg * (1.0 - sat)))\n sprintf \"#%02x%02x%02x\" newR newG newB\n\n let maxCases = newCases |> Array.max\n let tickScale = max 1. (10. ** round (Math.Log10 (maxCases + 1.) - 1.))\n\n let color1 = \"#bda506\"\n let color2 = desaturateColor color1 0.6\n\n let columnColors = [| ([|color2 |] |> Array.replicate 7 |> Array.concat); ([| color1 |] |> Array.replicate 7 |> Array.concat) |] |> Array.concat\n let options =\n {|\n chart =\n {|\n ``type`` = \"column\"\n backgroundColor = \"transparent\"\n |} |> pojo\n credits = {| enabled = false |}\n xAxis =\n {|\n visible = true\n labels = {| enabled = false |}\n title = {| enabled = false |}\n tickInterval = 7\n lineColor = \"#696969\"\n tickColor = \"#696969\"\n tickLength = 4\n |}\n yAxis =\n {|\n title = {| enabled = false |}\n visible = true\n opposite = true\n min = 0.\n max = newCases |> Array.max\n tickInterval = tickScale\n endOnTick = true\n startOnTick = false\n allowDecimals = false\n showFirstLabel = true\n showLastLabel = true\n gridLineColor = \"#000000\"\n gridLineDashStyle = \"dot\"\n |} |> pojo\n title = {| text = \"\" |}\n legend = {| enabled = false |}\n series =\n [|\n {|\n data = newCases |> Array.map ( max 0.)\n animation = false\n colors = columnColors\n borderColor = columnColors\n pointWidth = 15 //\n colorByPoint = true\n |} |> pojo\n |]\n |} |> pojo\n match state.MapToDisplay with\n | Europe ->\n Fable.Core.JS.setTimeout (fun () -> sparklineChart(\"tooltip-chart-eur\", options)) 10 |> ignore\n \"\"\"\"\"\"\n | World ->\n Fable.Core.JS.setTimeout (fun () -> sparklineChart(\"tooltip-chart-world\", options)) 10 |> ignore\n \"\"\"\"\"\"\n\n let tooltipFormatter jsThis =\n let points = jsThis?point\n let twoWeekIncidence = points?incidence\n let country = points?country\n let incidence100k = points?incidence100k\n let newCases = points?newCases\n let twoWeekCases = points?twoWeekCases\n let ncDate = points?ncDate\n let imported = points?imported\n let impDate = points?impDate\n let rType = points?rType\n let rAltText = points?rAltText\n let weeklyIncrease = points?weeklyIncrease\n\n\n (* SLO-spec mk has no imported cases\n let textHtml =\n sprintf \"%s
\n %s: %s
%s\n %s: %s (%s)
\n %s: %s
\n %s: %s (%s)
\"\n country\n (chartText \"countryStatus\") rType rAltText\n (chartText \"importedCases\") imported impDate\n (chartText \"incidence100k\") incidence100k\n (chartText \"newCases\") newCases ncDate\n + sprintf \"
%s: %s%s%%\" (I18N.t \"charts.map.relativeIncrease\") (if weeklyIncrease < 500. then \"\" else \">\") (weeklyIncrease |> Utils.formatTo1DecimalWithTrailingZero)\n *)\n\n let textHtml =\n sprintf \"%s
\n %s: %s
\n %s: %s (%s)
\"\n country\n (chartText \"incidence100k\") incidence100k\n (chartText \"newCases\") newCases ncDate\n + sprintf \"
%s: %s%s%%\" (I18N.t \"charts.map.relativeIncrease\") (if weeklyIncrease < 500. then \"\" else \">\") (weeklyIncrease |> Utils.formatTo1DecimalWithTrailingZero)\n\n match twoWeekIncidence with\n | null -> chartText \"noData\"\n | _ ->\n if (twoWeekCases |> Array.max) > 0. then\n textHtml + sparklineFormatter twoWeekCases\n else\n textHtml\n\n let series geoJson =\n {| visible = true\n mapData = geoJson\n data = mapData state\n joinBy = [| \"iso-a3\"; \"code\" |]\n nullColor = \"white\"\n borderColor = \"#888\"\n borderWidth = 0.5\n mapline = {| animation = {| duration = 0 |} |}\n states =\n {| normal = {| animation = {| duration = 0 |} |}\n hover =\n {| borderColor = \"black\"\n animation = {| duration = 0 |} |} |} |}\n |> pojo\n\n {| optionsWithOnLoadEvent \"covid19-europe-map\" with\n title = null\n series = [| series geoJson |]\n colorAxis = colorAxis\n legend = legend\n tooltip =\n pojo\n {| formatter = fun () -> tooltipFormatter jsThis\n useHTML = true\n distance = 50 |}\n credits =\n pojo\n {| enabled = true\n text =\n sprintf \"%s: %s, %s\" (I18N.t \"charts.common.dataSource\") (I18N.tOptions (\"charts.common.dsNIJZ\") {| context = localStorage.getItem (\"contextCountry\") |})\n (I18N.tOptions (\"charts.common.dsMZ\") {| context = localStorage.getItem (\"contextCountry\") |})\n mapTextFull = \"\"\n mapText = \"\"\n href = \"https://ourworldindata.org/coronavirus\" |} |}\n |> map\n\n\nlet renderChartTypeSelectors (activeChartType: ChartType) dispatch =\n let renderChartSelector (chartSelector: ChartType) =\n let active = chartSelector = activeChartType\n Html.div [\n prop.onClick (fun _ -> dispatch chartSelector)\n Utils.classes\n [(true, \"chart-display-property-selector__item\")\n (active, \"selected\")]\n prop.text (chartSelector.ToString())\n ]\n\n Html.div\n [ prop.className \"chart-display-property-selector\"\n prop.children\n [ // SLO-spec renderChartSelector Restrictions\n renderChartSelector TwoWeekIncidence\n renderChartSelector WeeklyIncrease\n ]\n ]\n\n\nlet render (state: State) dispatch =\n\n let chart =\n match state.GeoJson, state.OwdData with\n | Success geoJson, Success owdData -> renderMap state geoJson owdData\n | Failure err, _ -> Utils.renderErrorLoading err\n | _, Failure err -> Utils.renderErrorLoading err\n | _ -> Utils.renderLoading\n\n Html.div\n [ prop.children\n [ Utils.renderChartTopControls [ renderChartTypeSelectors state.ChartType (ChartTypeChanged >> dispatch) ]\n Html.div\n [ prop.style [ style.height 550 ]\n prop.className \"map\"\n prop.children [ chart ] ] ] ]\n\nlet mapChart (props : {| mapToDisplay : MapToDisplay; data : WeeklyStatsData |}) =\n React.elmishComponent (\"EuropeMapChart\", init props.mapToDisplay props.data, update, render)\n","[]\nmodule Days\n\nopen System\n\nlet daysInYear year =\n match DateTime.IsLeapYear year with\n | true -> 366\n | false -> 365\n\n// NOTE: Fable's (or JS?) implementation of DateTime incorrectly calculates\n// the count of days between two dates when there is a Daylight Saving Time\n// switch in-between, so use this function instead.\nlet between (date1: DateTime) (date2: DateTime) =\n let yearsDays =\n seq { date1.Year .. (date2.Year - 1) }\n |> Seq.sumBy daysInYear\n\n date2.DayOfYear - date1.DayOfYear + yearsDays\n\nlet add (daysToAdd: int) (date: DateTime) =\n (date.Date.AddDays (daysToAdd |> float)).Date\n","module AgeGroupsTimelineViz.Analysis\n\nopen System\nopen System.Collections.Generic\nopen Types\n\ntype DateTuple<'T> = DateTime * 'T\ntype DateTupleList<'T> = DateTuple<'T> list\ntype DatedArray<'T> = {\n StartDate: DateTime\n Data: 'T[]\n}\n\nlet mapDateTuplesListToArray (dateTupleList: DateTupleList<'T>)\n : DatedArray<'T> =\n // find the first and the last dates in the list\n let (firstDate, _) = dateTupleList |> List.minBy(fun (date, _) -> date.Date)\n let (lastDate, _) = dateTupleList |> List.maxBy(fun (date, _) -> date.Date)\n\n // from that, we can know the size of the resulting array\n let arraySize = (Days.between firstDate lastDate) + 1\n\n // create an empty array\n let array: 'T[] = Array.zeroCreate arraySize\n\n // now fill the array with the values from the original list\n dateTupleList\n |> List.iter(fun (date, itemData) ->\n let daysSince = Days.between firstDate date\n array.[daysSince] <- itemData\n )\n\n { StartDate = firstDate; Data = array }\n\nlet trimDatedArray trimPredicate (datedArray: DatedArray<'T>) =\n let trimmedLeading =\n datedArray.Data\n |> Array.skipWhile trimPredicate\n\n // we need to increment the start date by the count of trimmed leading days\n let daysToIncrement =\n (datedArray.Data |> Array.length) - (trimmedLeading |> Array.length)\n\n let newStartDate = datedArray.StartDate |> Days.add daysToIncrement\n\n let trimmed =\n trimmedLeading\n |> Array.rev\n |> Array.skipWhile trimPredicate\n |> Array.rev\n\n { StartDate = newStartDate; Data = trimmed }\n\nlet mapDatedArrayItems mapping datedArray =\n let startDate = datedArray.StartDate\n let originalArray = datedArray.Data\n { StartDate = startDate; Data = originalArray |> Array.map mapping }\n\nlet mapDatedArray mapping datedArray =\n let startDate = datedArray.StartDate\n let originalArray = datedArray.Data\n { StartDate = startDate; Data = originalArray |> mapping }\n\ntype CasesByAgeGroupsForDay = AgeGroupsList\n\ntype CasesByAgeGroupsTimeline = DatedArray\n\nlet calcCasesByAgeForDay\n (prevDay: AgeGroupsList option)\n (currentDay: AgeGroupsList): AgeGroupsList =\n\n let calcIntOptionDiff value1 value2 =\n match value1, value2 with\n | Some value1, Some value2 ->\n // sometimes NIJZ's data is corrected and total cases can decrease,\n // so we need to ignore this for the purposes of our visualization\n max (value2 - value1) 0 |> Some\n | Some _, None -> None\n | None, Some value2 -> Some value2\n | None, None -> None\n\n let calcAgeGroupDiff\n (prevDay: IDictionary) ageGroup =\n match prevDay.TryGetValue ageGroup.GroupKey with\n | true, prevDayGroup ->\n { GroupKey = ageGroup.GroupKey\n Male = calcIntOptionDiff prevDayGroup.Male ageGroup.Male\n Female = calcIntOptionDiff prevDayGroup.Female ageGroup.Female\n All = calcIntOptionDiff prevDayGroup.All ageGroup.All\n }\n | false, _ -> ageGroup\n\n match prevDay with\n | None -> currentDay\n | Some prevDay ->\n // create a dictionary of prevDay age groups\n let prevDayGroups =\n prevDay\n |> List.map (fun ageGroup -> (ageGroup.GroupKey, ageGroup))\n |> dict\n\n currentDay\n // for each age group of currentDay find the group in prevDay\n // and calculate the difference\n |> List.map (fun ageGroup -> calcAgeGroupDiff prevDayGroups ageGroup)\n\nlet calculateCasesByAgeTimeline\n (totalCasesByAgeGroups: CasesByAgeGroupsTimeline)\n : CasesByAgeGroupsTimeline =\n\n // returns False if there is at least one new infection for any\n // age group for the given day\n let thereAreNoCases (forDay: CasesByAgeGroupsForDay) =\n forDay\n |> List.exists\n (fun group ->\n match group.All with\n | Some cases -> cases > 0\n | None -> false\n )\n |> not\n\n let totalCasesTimelineArray: AgeGroupsList option[] =\n Array.append\n [| None |]\n (totalCasesByAgeGroups.Data |> Array.map Some)\n\n let newCasesTimelineArray =\n totalCasesTimelineArray\n |> Array.pairwise\n |> Array.map\n (fun (prevDayRecord, currentDayRecord) ->\n match prevDayRecord, currentDayRecord with\n | Some prevDay, Some currentDay ->\n calcCasesByAgeForDay (Some prevDay) currentDay\n | None, Some currentDay ->\n calcCasesByAgeForDay None currentDay\n | _ -> invalidOp \"BUG: this should never happen\"\n )\n\n { StartDate = totalCasesByAgeGroups.StartDate\n Data = newCasesTimelineArray\n }\n // skip initial and trailing days without any cases\n |> trimDatedArray thereAreNoCases\n","module Statistics\n\nopen System\n\ntype SeriesValue<'XAxis> = 'XAxis * float\ntype SeriesValues<'XAxis> = SeriesValue<'XAxis>[]\n\n/// \n/// A function that returns the key for a given data value object.\n/// \n/// The type of data value object.\n/// The type of key for the value object\n/// (like int or DateTime).\ntype ValueItemKeyFunc<'T, 'TKey> = ('T -> 'TKey)\n\n/// \n/// A function that returns the value for a given data value object.\n/// \n/// The type of data value object.\ntype ValueItemValueFunc<'T> = ('T -> float)\n\n/// \n/// A function that calculates the moving average value for a given array\n/// values.\n/// \n/// The type of key for the value\n/// (like int or DateTime).\n/// The type of value.\n/// The function that returns the key of the pair.\n/// The function that returns the value of the pair.\n/// \n/// A key-value pair containing the average value and its\n/// corresponding key.\ntype MovingAverageFunc<'TKey, 'TValue> =\n ValueItemKeyFunc<'TKey, 'TValue> -> ValueItemValueFunc<'TKey> -> 'TKey[]\n -> ('TValue * float)\n\n/// \n/// Calculates the centered moving average for a given array of values.\n/// \n/// \n/// The centered moving average takes the day that is at the center of the\n/// values array as the target day of the average.\n/// \n/// The type of key for the value\n/// (like int or DateTime).\n/// The type of value.\n/// The function that returns the key of the pair.\n/// The function that returns the value of the pair.\nlet movingAverageCentered: MovingAverageFunc<'TKey, 'TValue> =\n fun keyFunc valueFunc values ->\n match (values |> Seq.length) % 2 with\n | 1 ->\n let centerIndex = (values |> Seq.length) / 2\n let targetKey = values.[centerIndex] |> keyFunc\n let averageValue =\n values |> Seq.averageBy valueFunc\n (targetKey, averageValue)\n | _ -> ArgumentException \"values array length needs to be an odd number\"\n |> raise\n\n/// \n/// Calculates the trailing moving average for a given array of values.\n/// \n/// \n/// The centered moving average takes the day that is at the center of the\n/// values array as the target day of the average.\n/// \n/// The type of key for the value\n/// (like int or DateTime).\n/// The type of value.\n/// The function that returns the key of the pair.\n/// The function that returns the value of the pair.\n/// \n/// The trailing moving average takes the last day as the target day of the\n/// average.\n/// \nlet movingAverageTrailing: MovingAverageFunc<'TKey, 'TValue> =\n fun keyFunc valueFunc values ->\n let targetKey = values |> Array.last |> keyFunc\n let averageValue = values |> Seq.averageBy valueFunc\n (targetKey, averageValue)\n\n/// \n/// Calculates an array of moving averages array for a given array values.\n/// \n/// The type of the object holding an individual value.\n/// The type of key for the value\n/// (like int or DateTime).\n/// The function that returns the key of the pair.\n/// The function that returns the value of the pair.\nlet movingAverages<'T, 'TKey>\n (averageFunc: MovingAverageFunc<'T, 'TKey>)\n (daysOfMovingAverage: int)\n (keyFunc: ValueItemKeyFunc<'T, 'TKey>)\n (valueFunc: ValueItemValueFunc<'T>)\n (series: 'T[])\n : ('TKey * float)[] =\n series\n |> Array.windowed daysOfMovingAverage\n |> Array.map (averageFunc keyFunc valueFunc)\n\nlet roundKeyValueFloatArray<'TKey> howManyDecimals (array: ('TKey * float)[])\n : ('TKey * float)[] =\n array\n |> Array.map (fun (key, value) ->\n (key, value |> Utils.roundDecimals howManyDecimals))\n\nlet calculateWindowedSumInt windowSize (data: int[]): int[] =\n let len = data |> Array.length\n\n let mutable runningSum = 0\n\n let runningSumForItem index =\n let addValue = data.[index]\n if index >= windowSize then\n let subValue = data.[index - windowSize]\n runningSum <- runningSum + addValue - subValue\n else\n runningSum <- runningSum + addValue\n runningSum\n\n Array.init len runningSumForItem\n","import { substring, join, format, isNullOrEmpty } from \"./String.js\";\nimport { declare } from \"./Types.js\";\nimport { class_type } from \"./Reflection.js\";\nimport { sumBy } from \"./Seq.js\";\nimport { clear } from \"./Util.js\";\nexport const StringBuilder = declare(function System_Text_StringBuilder(value, capacity) {\n const $this$$1 = this;\n $this$$1.buf = [];\n\n if (!isNullOrEmpty(value)) {\n void $this$$1.buf.push(value);\n } else {\n void null;\n }\n\n void null;\n});\nexport function StringBuilder$reflection() {\n return class_type(\"System.Text.StringBuilder\", undefined, StringBuilder);\n}\nexport function StringBuilder$$$$002Ector$$Z18115A39(value, capacity) {\n return this instanceof StringBuilder ? StringBuilder.call(this, value, capacity) : new StringBuilder(value, capacity);\n}\nexport function StringBuilder$$$$002Ector$$Z524259A4(capacity$$1) {\n return StringBuilder$$$$002Ector$$Z18115A39.call(this, \"\", capacity$$1);\n}\nexport function StringBuilder$$$$002Ector$$Z721C83C5(value$$1) {\n return StringBuilder$$$$002Ector$$Z18115A39.call(this, value$$1, 16);\n}\nexport function StringBuilder$$$$002Ector() {\n return StringBuilder$$$$002Ector$$Z18115A39.call(this, \"\", 16);\n}\nexport function StringBuilder$$Append$$Z721C83C5(x, s) {\n void x.buf.push(s);\n return x;\n}\nexport function StringBuilder$$Append$$244C7CD6(x$$1, c) {\n void x$$1.buf.push(c);\n return x$$1;\n}\nexport function StringBuilder$$AppendFormat$$433E080(x$$2, fmt, o) {\n void x$$2.buf.push(format(fmt, o));\n return x$$2;\n}\nexport function StringBuilder$$AppendLine(x$$3) {\n void x$$3.buf.push(\"\\n\");\n return x$$3;\n}\nexport function StringBuilder$$AppendLine$$Z721C83C5(x$$4, s$$1) {\n void x$$4.buf.push(s$$1);\n void x$$4.buf.push(\"\\n\");\n return x$$4;\n}\n\nStringBuilder.prototype.toString = function () {\n const __ = this;\n return join(\"\", __.buf);\n};\n\nexport function StringBuilder$$get_Length(x$$5) {\n return sumBy(function (str) {\n return str.length;\n }, x$$5.buf, {\n GetZero() {\n return 0;\n },\n\n Add($x$$2, $y$$3) {\n return $x$$2 + $y$$3;\n }\n\n }) | 0;\n}\nexport function StringBuilder$$ToString$$Z37302880(x$$6, firstIndex, length) {\n const str$$1 = String(x$$6);\n return substring(str$$1, firstIndex, length);\n}\nexport function StringBuilder$$Clear(x$$7) {\n clear(x$$7.buf);\n return x$$7;\n}","module AgeGroupsTimelineViz.Synthesis\n\nopen Types\nopen AgeGroupsTimelineViz.Analysis\nopen System.Collections.Generic\nopen System.Text\nopen Fable.Core\nopen JsInterop\n\ntype CasesInAgeGroupForDay = int\ntype CasesInAgeGroupTimeline = DatedArray\ntype CasesInAgeGroupSeries = {\n AgeGroupKey: AgeGroupKey\n Timeline: CasesInAgeGroupTimeline\n}\n\ntype AllCasesInAgeGroupSeries = IDictionary\n\ntype ChartType =\n | StackedBarNormal\n | StackedBarPercent\n\ntype DisplayMetricsType = NewCases | ActiveCases\ntype DisplayMetrics = {\n Id: string\n MetricsType: DisplayMetricsType\n ChartType: ChartType\n}\n\nlet availableDisplayMetrics = [|\n { Id = \"newCases\"; MetricsType = NewCases\n ChartType = StackedBarNormal }\n { Id = \"newCasesRelative\"; MetricsType = NewCases\n ChartType = StackedBarPercent }\n { Id = \"activeCases\"; MetricsType = ActiveCases\n ChartType = StackedBarNormal }\n { Id = \"activeCasesRelative\"; MetricsType = ActiveCases\n ChartType = StackedBarPercent }\n|]\n\nlet listAgeGroups (timeline: CasesByAgeGroupsTimeline): AgeGroupKey list =\n timeline.Data.[0]\n |> List.map (fun group -> group.GroupKey)\n |> List.sortBy (fun groupKey -> groupKey.AgeFrom)\n\nlet extractTimelineForAgeGroup\n ageGroupKey\n (metricsType: DisplayMetricsType)\n (casesTimeline: CasesByAgeGroupsTimeline)\n : CasesInAgeGroupTimeline =\n\n let newCasesTimeline =\n casesTimeline\n |> mapDatedArrayItems (fun dayGroupsData ->\n let dataForGroup =\n dayGroupsData\n |> List.find(fun group -> group.GroupKey = ageGroupKey)\n dataForGroup.All\n |> Utils.optionToInt\n )\n match metricsType with\n | NewCases -> newCasesTimeline\n | ActiveCases ->\n newCasesTimeline\n |> mapDatedArray (Statistics.calculateWindowedSumInt 14)\n\nlet tooltipFormatter jsThis =\n let points: obj[] = jsThis?points\n\n match points with\n | [||] -> \"\"\n | _ ->\n // points.[0].point.y\n\n let totalCases =\n points\n |> Array.sumBy(fun point -> float point?point?y)\n\n let s = StringBuilder()\n\n let date = points.[0]?point?date\n s.AppendFormat (\"{0}
\", date.ToString()) |> ignore\n\n s.Append \"\" |> ignore\n\n points\n |> Array.iter\n (fun ageGroup ->\n let ageGroupLabel = ageGroup?series?name\n let ageGroupColor = ageGroup?series?color\n let dataPoint = ageGroup?point\n\n let dataValue: int = dataPoint?y\n\n match dataValue with\n | 0 -> ignore()\n | _ ->\n let format =\n \"● | \"+\n \"{1}: | \"+\n \"\"+\n \"{2} | \" +\n \"\" +\n \"{3} | \"\n\n let percentage =\n (float dataValue) * 100. / totalCases\n |> Utils.percentageValuesWith1DecimalTrailingZeroLabelFormatter\n\n s.Append \"\" |> ignore\n let ageGroupTooltip =\n System.String.Format\n (format,\n ageGroupColor,\n ageGroupLabel,\n dataValue,\n percentage)\n s.Append ageGroupTooltip |> ignore\n s.Append \"
\" |> ignore\n )\n\n s.Append \"
\" |> ignore\n s.ToString()\n","[]\nmodule AgeGroupsTimelineViz.Rendering\n\nopen System\nopen Analysis\nopen Synthesis\nopen Highcharts\nopen Types\n\nopen Elmish\nopen Feliz\nopen Feliz.ElmishComponents\nopen Fable.Core.JsInterop\nopen Browser.Types\n\ntype DayValueIntMaybe = JsTimestamp*int option\ntype DayValueFloat = JsTimestamp*float\n\ntype State = {\n Metrics : DisplayMetrics\n Data : StatsData\n RangeSelectionButtonIndex: int\n}\n\ntype Msg =\n | ChangeMetrics of DisplayMetrics\n | RangeSelectionChanged of int\n\nlet init data : State * Cmd =\n let state = {\n Data = data\n Metrics = availableDisplayMetrics.[0]\n RangeSelectionButtonIndex = 1\n }\n state, Cmd.none\n\nlet update (msg: Msg) (state: State) : State * Cmd =\n match msg with\n | ChangeMetrics metrics -> { state with Metrics=metrics }, Cmd.none\n | RangeSelectionChanged buttonIndex ->\n { state with RangeSelectionButtonIndex = buttonIndex }, Cmd.none\n\nlet renderChartOptions state dispatch =\n\n // map state data into a list needed for calculateCasesByAgeTimeline\n let totalCasesByAgeGroupsList =\n state.Data\n |> List.map (fun point -> (point.Date, point.StatePerAgeToDate))\n\n let totalCasesByAgeGroups =\n mapDateTuplesListToArray totalCasesByAgeGroupsList\n\n // calculate complete merged timeline\n let timeline = calculateCasesByAgeTimeline totalCasesByAgeGroups\n\n // get keys of all age groups\n let allGroupsKeys = listAgeGroups timeline\n\n let colorOfAgeGroup ageGroupIndex =\n let colors =\n [| \"#FFEEBA\"; \"#FFDA6B\";\"#E9B825\";\"#AEEFDB\";\"#52C4A2\";\"#33AB87\"\n \"#189A73\";\"#F4B2E0\";\"#D559B0\";\"#B01C83\" |]\n colors.[ageGroupIndex]\n\n let mapPoint\n (startDate: DateTime)\n (daysFromStartDate: int)\n (cases: CasesInAgeGroupForDay) =\n let date = startDate |> Days.add daysFromStartDate\n\n pojo {|\n x = date |> jsTime12h :> obj\n y = cases\n date = I18N.tOptions \"days.longerDate\" {| date = date |}\n |}\n\n let mapAllPoints (groupTimeline: CasesInAgeGroupTimeline) =\n let startDate = groupTimeline.StartDate\n let timelineArray = groupTimeline.Data\n\n timelineArray\n |> Array.mapi (fun i cases -> mapPoint startDate i cases)\n\n // generate all series\n let allSeries =\n allGroupsKeys\n |> List.mapi (fun index ageGroupKey ->\n let points =\n timeline\n |> extractTimelineForAgeGroup\n ageGroupKey state.Metrics.MetricsType\n |> mapAllPoints\n\n pojo {|\n visible = true\n name = ageGroupKey.Label\n color = colorOfAgeGroup index\n data = points\n |}\n )\n |> List.toArray\n\n let onRangeSelectorButtonClick(buttonIndex: int) =\n let res (_ : Event) =\n RangeSelectionChanged buttonIndex |> dispatch\n true\n res\n\n let className = \"covid19-infections\"\n let baseOptions =\n Highcharts.basicChartOptions\n ScaleType.Linear className\n state.RangeSelectionButtonIndex onRangeSelectorButtonClick\n\n {| baseOptions with\n chart = pojo\n {|\n animation = false\n ``type`` = \"column\"\n zoomType = \"x\"\n className = className\n events = pojo {| load = onLoadEvent(className) |}\n |}\n title = pojo {| text = None |}\n series = allSeries\n xAxis = baseOptions.xAxis\n yAxis = baseOptions.yAxis\n\n plotOptions = pojo\n {|\n column = pojo\n {|\n groupPadding = 0\n pointPadding = 0\n borderWidth = 0 |}\n series =\n match state.Metrics.ChartType with\n | StackedBarNormal -> pojo {| stacking = \"normal\" |}\n | StackedBarPercent -> pojo {| stacking = \"percent\" |}\n |}\n legend = pojo {| enabled = true ; layout = \"horizontal\" |}\n tooltip = pojo {|\n formatter = fun () -> tooltipFormatter jsThis\n shared = true\n useHTML = true\n |}\n |}\n\nlet renderChartContainer state dispatch =\n Html.div [\n prop.style [ style.height 480 ]\n prop.className \"highcharts-wrapper\"\n prop.children [\n renderChartOptions state dispatch\n |> Highcharts.chartFromWindow\n ]\n ]\n\nlet renderMetricsSelectors activeMetrics dispatch =\n let renderSelector (metrics : DisplayMetrics) =\n let active = metrics = activeMetrics\n Html.div [\n prop.text (I18N.chartText \"ageGroupsTimeline\" metrics.Id)\n Utils.classes\n [(true, \"btn btn-sm metric-selector\")\n (active, \"metric-selector--selected selected\")]\n if not active then prop.onClick (fun _ -> dispatch metrics)\n if active then prop.style [ style.backgroundColor \"#808080\" ]\n ]\n\n Html.div [\n prop.className \"metrics-selectors\"\n availableDisplayMetrics\n |> Array.map renderSelector\n |> prop.children\n ]\n\nlet render state dispatch =\n Html.div [\n renderChartContainer state dispatch\n renderMetricsSelectors state.Metrics (ChangeMetrics >> dispatch)\n ]\n\nlet renderChart (props : {| data : StatsData |}) =\n React.elmishComponent\n (\"AgeGroupsTimelineViz/Chart\", init props.data, update, render)\n","[]\nmodule TestsChart\n\nopen System\nopen Elmish\nopen Feliz\nopen Feliz.ElmishComponents\nopen Browser\n\nopen Types\nopen Highcharts\n\ntype DisplayType =\n | Total\n | Regular\n | NsApr20\nwith\n static member all = [ Regular; NsApr20; Total; ]\n static member getName = function\n | Total -> I18N.t \"charts.tests.allTesting\"\n | Regular -> I18N.t \"charts.tests.regularTesting\"\n | NsApr20 -> I18N.t \"charts.tests.nationalStudyTesting\"\n\ntype State = {\n data: StatsData\n displayType: DisplayType\n RangeSelectionButtonIndex: int\n}\n\ntype Msg =\n | ChangeDisplayType of DisplayType\n | RangeSelectionChanged of int\n\nlet init data : State * Cmd =\n let state = {\n data = data\n displayType = Regular\n RangeSelectionButtonIndex = 1\n }\n state, Cmd.none\n\nlet update (msg: Msg) (state: State) : State * Cmd =\n match msg with\n | ChangeDisplayType dt ->\n { state with displayType = dt }, Cmd.none\n | RangeSelectionChanged buttonIndex ->\n { state with RangeSelectionButtonIndex = buttonIndex }, Cmd.none\n\nlet renderChartOptions (state : State) dispatch =\n let className = \"tests-chart\"\n let scaleType = ScaleType.Linear\n\n let positiveTests (dp: StatsDataPoint) =\n match state.displayType with\n | Total -> dp.Tests.Positive.Today.Value\n | Regular -> dp.Tests.Regular.Positive.Today.Value\n | NsApr20 -> dp.Tests.NsApr20.Positive.Today.Value\n let negativeTests (dp: StatsDataPoint) =\n match state.displayType with\n | Total -> dp.Tests.Performed.Today.Value - dp.Tests.Positive.Today.Value\n | Regular -> dp.Tests.Regular.Performed.Today.Value - dp.Tests.Regular.Positive.Today.Value\n | NsApr20 -> dp.Tests.NsApr20.Performed.Today.Value - dp.Tests.NsApr20.Positive.Today.Value\n let percentPositive (dp: StatsDataPoint) =\n let positive = positiveTests dp\n let performed = positiveTests dp + negativeTests dp\n Math.Round(float positive / float performed * float 100.0, 2)\n\n let allYAxis = [|\n {|\n index = 0\n title = {| text = null |}\n labels = pojo {| format = \"{value}\"; align = \"center\"; x = -15; reserveSpace = false; |}\n opposite = true\n visible = true\n max = None // SLO-spec\n crosshair = true\n |}\n {|\n index = 1\n title = {| text = null |}\n labels = pojo {| format = \"{value}%\"; align = \"center\"; x = 10; reserveSpace = false; |}\n opposite = false\n visible = true\n max = Some 45 // SLO-spec\n crosshair = true\n |}\n |]\n\n let allSeries = [\n yield pojo\n {|\n name = I18N.t \"charts.tests.negativeTests\"\n ``type`` = \"column\"\n color = \"#19aebd\"\n yAxis = 0\n data = state.data |> Seq.filter (fun dp -> dp.Tests.Positive.Today.IsSome )\n |> Seq.map (fun dp -> (dp.Date |> jsTime12h, negativeTests dp)) |> Seq.toArray\n |}\n yield pojo\n {|\n name = I18N.t \"charts.tests.positiveTests\"\n ``type`` = \"column\"\n color = \"#d5c768\"\n yAxis = 0\n data = state.data |> Seq.filter (fun dp -> dp.Tests.Positive.Today.IsSome )\n |> Seq.map (fun dp -> (dp.Date |> jsTime12h, positiveTests dp)) |> Seq.toArray\n |}\n yield pojo\n {|\n name = I18N.t \"charts.tests.shareOfPositive\"\n ``type`` = \"line\"\n color = \"#665191\"\n yAxis = 1\n data = state.data |> Seq.filter (fun dp -> dp.Tests.Positive.Today.IsSome )\n |> Seq.map (fun dp -> (dp.Date |> jsTime12h, percentPositive dp)) |> Seq.toArray\n |}\n ]\n\n let onRangeSelectorButtonClick(buttonIndex: int) =\n let res (_ : Event) =\n RangeSelectionChanged buttonIndex |> dispatch\n true\n res\n\n let baseOptions =\n Highcharts.basicChartOptions\n scaleType className\n state.RangeSelectionButtonIndex onRangeSelectorButtonClick\n {| baseOptions with\n yAxis = allYAxis\n series = List.toArray allSeries\n plotOptions = pojo\n {|\n series = {| stacking = \"normal\"; crisp = false; borderWidth = 0; pointPadding = 0; groupPadding = 0 |}\n |}\n\n legend = pojo {| enabled = true ; layout = \"horizontal\" |}\n\n responsive = pojo\n {|\n rules =\n [| {|\n condition = {| maxWidth = 768 |}\n chartOptions =\n {|\n yAxis = [|\n {| labels = {| enabled = false |} |}\n {| labels = {| enabled = false |} |}\n |]\n |}\n |} |]\n |}\n |}\n\nlet renderChartContainer (state : State) dispatch =\n Html.div [\n prop.style [ style.height 480 ]\n prop.className \"highcharts-wrapper\"\n prop.children [\n renderChartOptions state dispatch\n |> Highcharts.chartFromWindow\n ]\n ]\n\nlet renderSelector state (dt: DisplayType) dispatch =\n Html.div [\n let isActive = state.displayType = dt\n prop.onClick (fun _ -> ChangeDisplayType dt |> dispatch)\n Utils.classes\n [(true, \"btn btn-sm metric-selector\")\n (isActive, \"metric-selector--selected\")]\n prop.text (DisplayType.getName dt) ]\n\nlet renderDisplaySelectors state dispatch =\n Html.div [\n prop.className \"metrics-selectors\"\n prop.children (\n DisplayType.all\n |> List.map (fun dt -> renderSelector state dt dispatch) ) ]\n\nlet render (state: State) dispatch =\n Html.div [\n renderChartContainer state dispatch\n renderDisplaySelectors state dispatch\n ]\n\nlet testsChart (props : {| data : StatsData |}) =\n React.elmishComponent(\"TestsChart\", init props.data, update, render)\n","module Data.HCenters\n\nopen System\nopen FsToolkit.ErrorHandling\nopen Fable.SimpleHttp\n\nlet sumOption a b =\n match a, b with\n | None, None -> None\n | Some x, None -> Some x\n | None, Some y -> Some y\n | Some x, Some y -> Some (x + y)\n\ntype Examinations = {\n MedicalEmergency: int option\n SuspectedCovid: int option\n} with\n static member (+) (a, b) = {\n MedicalEmergency = sumOption a.MedicalEmergency b.MedicalEmergency\n SuspectedCovid = sumOption a.SuspectedCovid b.SuspectedCovid\n }\n static member None = {\n MedicalEmergency = None\n SuspectedCovid = None\n }\n\ntype PhoneTriage = {\n SuspectedCovid: int option\n} with\n static member (+) (a, b) = {\n SuspectedCovid = sumOption a.SuspectedCovid b.SuspectedCovid\n }\n static member None = {\n SuspectedCovid = None\n }\n\ntype Tests = {\n Performed: int option\n Positive: int option\n} with\n static member (+) (a, b) = {\n Performed = sumOption a.Performed b.Performed\n Positive = sumOption a.Positive b.Positive\n }\n static member None = {\n Performed = None\n Positive = None\n }\n\ntype SentTo = {\n Hospital: int option\n SelfIsolation: int option\n} with\n static member (+) (a, b) = {\n Hospital = sumOption a.Hospital b.Hospital\n SelfIsolation = sumOption a.SelfIsolation b.SelfIsolation\n }\n static member None = {\n Hospital = None\n SelfIsolation = None\n }\n\ntype TotalHcStats = {\n Examinations: Examinations\n PhoneTriage: PhoneTriage\n Tests: Tests\n SentTo: SentTo\n} with\n static member (+) (a, b) = {\n Examinations = a.Examinations + b.Examinations\n PhoneTriage = a.PhoneTriage + b.PhoneTriage\n Tests = a.Tests + b.Tests\n SentTo = a.SentTo + b.SentTo\n }\n static member None = {\n Examinations = Examinations.None\n PhoneTriage = PhoneTriage.None\n Tests = Tests.None\n SentTo = SentTo.None\n }\n\ntype HcStats = {\n Date : DateTime\n Total: TotalHcStats\n Municipalities : Map>\n}\n\ntype Metric =\n | ExaminationsMedicalEmergency\n | ExaminationsSuspectedCovid\n | PhoneTriageSuspectedCovid\n | TestPerformed\n | TestsPositive\n | SentToHospital\n | SentToSelIsolation\n\ntype DataPoint = {\n Region : string\n Municipality : string\n Metric : Metric\n Value : int option\n}\n\nlet parseData (csv : string) =\n let rows = csv.Split(\"\\n\")\n let header = rows.[0].Split(\",\")\n\n let headerMunicipalities =\n header.[8..]\n |> Array.map (fun col ->\n match col.Split(\".\") with\n | [| \"hc\" ; region ; municipality ; \"examinations\" ; \"medical_emergency\" |] ->\n Some { Region = region ; Municipality = municipality ; Metric = ExaminationsMedicalEmergency ; Value = None }\n | [| \"hc\" ; region ; municipality ; \"examinations\" ; \"suspected_covid\" |] ->\n Some { Region = region ; Municipality = municipality ; Metric = ExaminationsSuspectedCovid ; Value = None }\n | [| \"hc\" ; region ; municipality ; \"phone_triage\" ; \"suspected_covid\" |] ->\n Some { Region = region ; Municipality = municipality ; Metric = PhoneTriageSuspectedCovid ; Value = None }\n | [| \"hc\" ; region ; municipality ; \"tests\" ; \"performed\" |] ->\n Some { Region = region ; Municipality = municipality ; Metric = TestPerformed ; Value = None }\n | [| \"hc\" ; region ; municipality ; \"tests\" ; \"positive\" |] ->\n Some { Region = region ; Municipality = municipality ; Metric = TestsPositive ; Value = None }\n | [| \"hc\" ; region ; municipality ; \"sent_to\" ; \"hospital\" |] ->\n Some { Region = region ; Municipality = municipality ; Metric = SentToHospital ; Value = None }\n | [| \"hc\" ; region ; municipality ; \"sent_to\" ; \"self_isolation\" |] ->\n Some { Region = region ; Municipality = municipality ; Metric = SentToSelIsolation ; Value = None }\n | unknown ->\n printfn \"Napaka pri branju glave podatkov zdravstvenih ustanov: %s\" col\n None\n )\n\n rows.[1..]\n |> Array.map (fun row ->\n let columns = row.Split(\",\")\n result {\n if headerMunicipalities.Length <> columns.[8..].Length then\n return! Error \"\"\n else\n // Date is in the first column\n let! date = Utils.parseDate(columns.[0])\n // Total values\n let total = {\n Examinations = { MedicalEmergency = Utils.nativeParseInt columns.[1] ; SuspectedCovid = Utils.nativeParseInt columns.[2] }\n PhoneTriage = { SuspectedCovid = Utils.nativeParseInt columns.[3] }\n Tests = { Performed = Utils.nativeParseInt columns.[4] ; Positive = Utils.nativeParseInt columns.[5] }\n SentTo = { Hospital = Utils.nativeParseInt columns.[6] ; SelfIsolation = Utils.nativeParseInt columns.[7] }\n }\n // Merge municipality header information with data columns\n let regions =\n Array.map2 (fun header value ->\n match header with\n | None _ -> None\n | Some header -> Some { header with Value = Utils.nativeParseInt value }\n ) headerMunicipalities columns.[8..]\n |> Array.choose id\n // Group by region\n |> Array.groupBy (fun dp -> dp.Region)\n |> Array.map (fun (region, dps) ->\n let municipalities =\n dps\n // Group by municipality and combine values\n |> Array.groupBy (fun dp -> dp.Municipality)\n |> Array.map (fun (municipality, dps) ->\n let municipalityStats =\n dps\n |> Array.fold (fun state dp ->\n match dp.Metric with\n | ExaminationsMedicalEmergency -> { state with Examinations = { state.Examinations with MedicalEmergency = dp.Value }}\n | ExaminationsSuspectedCovid -> { state with Examinations = { state.Examinations with SuspectedCovid = dp.Value }}\n | PhoneTriageSuspectedCovid -> { state with PhoneTriage = { state.PhoneTriage with SuspectedCovid = dp.Value }}\n | TestPerformed -> { state with Tests = { state.Tests with Performed = dp.Value }}\n | TestsPositive -> { state with Tests = { state.Tests with Positive = dp.Value }}\n | SentToHospital -> { state with SentTo = { state.SentTo with Hospital = dp.Value }}\n | SentToSelIsolation -> { state with SentTo = { state.SentTo with SelfIsolation = dp.Value }}\n ) TotalHcStats.None\n (municipality, municipalityStats))\n |> Map.ofArray\n (region, municipalities) )\n |> Map.ofArray\n return { Date = date ; Total = total ; Municipalities = regions }\n })\n |> Array.choose (fun row ->\n match row with\n | Ok row -> Some row\n | Error _ -> None)\n\nlet loadData (apiEndpoint: string) =\n async {\n let! (statusCode, response) = Http.get (sprintf \"%s/api/health-centers?format=csv\" apiEndpoint)\n\n if statusCode <> 200 then\n return Error (sprintf \"Napaka pri nalaganju podatkov zdravstvenih ustanov: %d\" statusCode)\n else\n return Ok (parseData response)\n }\n","[]\nmodule HCentersChart\n\nopen System\nopen Elmish\nopen Feliz\nopen Feliz.ElmishComponents\nopen Browser\n\nopen Types\nopen Data.HCenters\nopen Highcharts\n\nlet chartText = I18N.chartText \"hCenters\"\n\ntype Region =\n { Key : string\n Name : string }\n\ntype State = {\n HcData : HcStats []\n Error: string option\n Regions : Region list\n FilterByRegion : string\n RangeSelectionButtonIndex: int\n }\n\ntype Msg =\n | ConsumeHcData of Result\n | ConsumeServerError of exn\n | RegionFilterChanged of string\n | RangeSelectionChanged of int\n\nlet init apiEndpoint : State * Cmd =\n let cmd = Cmd.OfAsync.either Data.HCenters.loadData apiEndpoint ConsumeHcData ConsumeServerError\n\n let state = {\n HcData = [| |]\n Error = None\n Regions = [ ]\n FilterByRegion = \"\"\n RangeSelectionButtonIndex = 1\n }\n\n state, (cmd)\n\nlet getRegionList hcData =\n hcData.Municipalities\n |> Map.toList\n |> List.map (fun (reg, _) -> { Key = reg ; Name = I18N.tt \"region\" reg })\n |> List.sortBy (fun region -> region.Name)\n\nlet update (msg: Msg) (state: State) : State * Cmd =\n\n match msg with\n | ConsumeHcData (Ok data) ->\n { state with HcData = data; Regions = getRegionList (data |> Array.last) }, Cmd.none\n | ConsumeHcData (Error err) ->\n { state with Error = Some err }, Cmd.none\n | ConsumeServerError ex ->\n { state with Error = Some ex.Message }, Cmd.none\n | RegionFilterChanged region ->\n { state with FilterByRegion = region }, Cmd.none\n | RangeSelectionChanged buttonIndex ->\n { state with RangeSelectionButtonIndex = buttonIndex }, Cmd.none\n\nlet renderChartOptions (state : State) dispatch =\n let className = \"hcenters-chart\"\n let scaleType = ScaleType.Linear\n let startDate = DateTime(2020,3,18)\n let mutable startTime = startDate |> jsTime\n\n let getRegionStats region mp =\n mp |> Map.find region\n |> Map.fold ( fun total _ hc -> total + hc ) TotalHcStats.None\n\n let hcData =\n match state.FilterByRegion with\n | \"\" -> state.HcData |> Seq.map (fun dp -> (dp.Date, dp.Total)) |> Seq.toArray\n | region -> state.HcData |> Seq.map (fun dp -> (dp.Date, getRegionStats region dp.Municipalities)) |> Seq.toArray\n\n let allSeries = [\n yield pojo\n {|\n name = chartText \"emergencyExamination\"\n ``type`` = \"line\"\n visible = false\n color = \"#70a471\"\n dashStyle = Dot |> DashStyle.toString\n data = hcData |> Seq.map (fun (date, dp) -> (date |> jsTime12h, dp.Examinations.MedicalEmergency)) |> Seq.toArray\n |}\n\n yield pojo\n {|\n name = chartText \"suspectedCovidExamination\"\n ``type`` = \"line\"\n color = \"#a05195\"\n dashStyle = Dot |> DashStyle.toString\n data = hcData |> Seq.map (fun (date, dp) -> (date |> jsTime12h, dp.Examinations.SuspectedCovid)) |> Seq.toArray\n |}\n yield pojo\n {|\n name = chartText \"suspectedCovidPhone\"\n ``type`` = \"line\"\n color = \"#d45087\"\n dashStyle = Dot |> DashStyle.toString\n data = hcData |> Seq.map (fun (date, dp) -> (date |> jsTime12h, dp.PhoneTriage.SuspectedCovid)) |> Seq.toArray\n |}\n yield pojo\n {|\n name = chartText \"sentToSelfIsolation\"\n ``type`` = \"line\"\n color = \"#665191\"\n data = hcData |> Seq.map (fun (date, dp) -> (date |> jsTime12h, dp.SentTo.SelfIsolation)) |> Seq.toArray\n |}\n yield pojo\n {|\n name = chartText \"testsPerformed\"\n ``type`` = \"line\"\n color = \"#19aebd\"\n data = hcData |> Seq.map (fun (date, dp) -> (date |> jsTime12h, dp.Tests.Performed)) |> Seq.toArray\n |}\n yield pojo\n {|\n name = chartText \"testsPositive\"\n ``type`` = \"line\"\n color = \"#d5c768\"\n data = hcData |> Seq.map (fun (date, dp) -> (date |> jsTime12h, dp.Tests.Positive)) |> Seq.toArray\n |}\n yield addContainmentMeasuresFlags startTime None |> pojo\n\n ]\n\n let onRangeSelectorButtonClick(buttonIndex: int) =\n let res (_ : Event) =\n RangeSelectionChanged buttonIndex |> dispatch\n true\n res\n\n let baseOptions =\n Highcharts.basicChartOptions\n scaleType className\n state.RangeSelectionButtonIndex onRangeSelectorButtonClick\n {| baseOptions with\n series = List.toArray allSeries\n\n // need to hide negative label for addContainmentMeasuresFlags\n yAxis = baseOptions.yAxis |> Array.map (fun ax -> {| ax with showFirstLabel = false |})\n\n legend = pojo {| enabled = true ; layout = \"horizontal\" |}\n |}\n\nlet renderChartContainer (state : State) dispatch =\n Html.div [\n prop.style [ style.height 480 ]\n prop.className \"highcharts-wrapper\"\n prop.children [\n renderChartOptions state dispatch\n |> Highcharts.chartFromWindow\n ]\n ]\n\nlet renderRegionSelector (regions : Region list) (selected : string) dispatch =\n let renderedRegions = seq {\n yield Html.option [\n prop.text (chartText \"allRegions\")\n prop.value \"\"\n ]\n\n for region in regions do\n yield Html.option [\n prop.text region.Name\n prop.value region.Key\n ]\n }\n\n Html.select [\n prop.value selected\n prop.className \"form-control form-control-sm filters__region\"\n prop.children renderedRegions\n prop.onChange (RegionFilterChanged >> dispatch)\n ]\n\nlet render (state : State) dispatch =\n match state.HcData, state.Error with\n | [||], None -> Html.div [ Utils.renderLoading ]\n | _, Some err -> Html.div [ Utils.renderErrorLoading err ]\n | _, None ->\n Html.div [\n Utils.renderChartTopControls [\n Html.div [\n prop.className \"filters\"\n prop.children [\n renderRegionSelector state.Regions state.FilterByRegion dispatch\n ]\n ]\n ]\n renderChartContainer state dispatch\n\n Html.div [\n prop.className \"disclaimer\"\n prop.children [\n Html.text (chartText \"disclaimer\")\n ]\n ]\n ]\n\n\nlet hCentersChart (apiEndpoint : string) =\n React.elmishComponent(\"HCentersChart\", init apiEndpoint, update, render)\n","[]\nmodule InfectionsChart\n\nopen Statistics\nopen System\nopen Elmish\nopen Feliz\nopen Feliz.ElmishComponents\nopen Browser\n\nopen Highcharts\nopen Types\n\nlet chartText = I18N.chartText \"infections\"\n\ntype Metric =\n | HospitalStaff\n | RestHomeStaff\n | RestHomeOccupant\n | OtherPeople\n | AllConfirmed\n\ntype MetricCfg = {\n Metric : Metric\n Color : string\n Id : string\n}\n\ntype Metrics = MetricCfg list\n\ntype DayValueIntMaybe = JsTimestamp*int option\ntype DayValueFloat = JsTimestamp*float\n\ntype ShowAllOrOthers = ShowAllConfirmed | ShowOthers\n\nmodule Metrics =\n let all = [\n { Metric=AllConfirmed; Color=\"#bda506\"; Id=\"allConfirmed\" }\n { Metric=OtherPeople; Color=\"#FFDBA3\"; Id=\"otherPersons\" }\n { Metric=HospitalStaff; Color=\"#73ccd5\"; Id=\"hcStaff\" }\n // SLO-spec { Metric=RestHomeStaff; Color=\"#20b16d\"; Id=\"rhStaff\" }\n // SLO-spec { Metric=RestHomeOccupant; Color=\"#bf5747\"; Id=\"rhOccupant\" }\n ]\n\n let metricsToDisplay filter =\n let without metricType =\n all |> List.filter (fun metric -> metric.Metric <> metricType)\n\n match filter with\n | ShowAllConfirmed -> without OtherPeople\n | ShowOthers -> without AllConfirmed\n\ntype ValueTypes = RunningTotals | MovingAverages\ntype ChartType =\n | StackedBarNormal\n | StackedBarPercent\n | SplineChart\n\ntype DisplayType = {\n Id: string\n ValueTypes: ValueTypes\n ShowAllOrOthers: ShowAllOrOthers\n ChartType: ChartType\n ShowPhases: bool\n}\n\n[]\nlet DaysOfMovingAverage = 7\n\nlet availableDisplayTypes: DisplayType array = [|\n { Id = \"averageByDay\"\n ValueTypes = MovingAverages\n ShowAllOrOthers = ShowAllConfirmed\n ChartType = SplineChart\n ShowPhases = true\n }\n { Id = \"all\";\n ValueTypes = RunningTotals\n ShowAllOrOthers = ShowOthers\n ChartType = StackedBarNormal\n ShowPhases = false\n }\n { Id = \"relative\";\n ValueTypes = RunningTotals\n ShowAllOrOthers = ShowOthers\n ChartType = StackedBarPercent\n ShowPhases = false\n }\n|]\n\ntype State = {\n DisplayType : DisplayType\n Data : StatsData\n RangeSelectionButtonIndex: int\n}\n\ntype Msg =\n | ChangeDisplayType of DisplayType\n | RangeSelectionChanged of int\n\nlet init data : State * Cmd =\n let state = {\n Data = data\n DisplayType = availableDisplayTypes.[0]\n RangeSelectionButtonIndex = 1\n }\n state, Cmd.none\n\nlet update (msg: Msg) (state: State) : State * Cmd =\n match msg with\n | ChangeDisplayType rt ->\n { state with DisplayType=rt }, Cmd.none\n | RangeSelectionChanged buttonIndex ->\n { state with RangeSelectionButtonIndex = buttonIndex }, Cmd.none\n\nlet renderChartOptions state dispatch =\n\n let xAxisPoint (dp: StatsDataPoint) = dp.Date\n\n let metricDataGenerator mc : (StatsDataPoint -> int option) =\n let metricFunc =\n match mc.Metric with\n | HospitalStaff -> fun pt -> pt.HospitalEmployeePositiveTestsToDate\n | RestHomeStaff -> fun pt -> pt.RestHomeEmployeePositiveTestsToDate\n | RestHomeOccupant -> fun pt -> pt.RestHomeOccupantPositiveTestsToDate\n | OtherPeople -> fun pt -> pt.UnclassifiedPositiveTestsToDate\n | AllConfirmed -> fun pt -> pt.Cases.ConfirmedToDate\n\n fun pt -> (pt |> metricFunc |> Utils.zeroToNone)\n\n /// \n /// Calculates running totals for a given metric.\n /// \n let calcRunningTotals metric =\n let pointData = metricDataGenerator metric\n\n let skipLeadingMissing data =\n data |> List.skipWhile (fun (_,value: 'T option) -> value.IsNone)\n\n let skipTrailingMissing data =\n data\n |> List.rev\n |> skipLeadingMissing\n |> List.rev\n\n state.Data\n |> List.map (fun dp -> ((xAxisPoint dp |> jsTime12h), pointData dp))\n |> skipLeadingMissing\n |> skipTrailingMissing\n |> Seq.toArray\n\n /// \n /// Converts running total series to daily (delta) values.\n /// \n let toDailyValues (series: DayValueIntMaybe[]) =\n let mutable last = 0\n Array.init series.Length (fun i ->\n match series.[i] with\n | ts, None -> ts, None\n | ts, Some current ->\n let result = current - last\n last <- current\n ts, Some result\n )\n\n let toFloatValues (series: DayValueIntMaybe[]) =\n series\n |> Array.map (fun (date, value) ->\n (date, value |> Option.defaultValue 0 |> float))\n\n let allSeries = [\n let allMetricsData =\n Metrics.metricsToDisplay state.DisplayType.ShowAllOrOthers\n |> Seq.map(fun metric ->\n let data =\n let runningTotals = calcRunningTotals metric\n match state.DisplayType.ValueTypes with\n | RunningTotals -> runningTotals |> toFloatValues\n | MovingAverages ->\n runningTotals |> toDailyValues\n |> (movingAverages\n movingAverageCentered\n DaysOfMovingAverage\n (fun (timestamp, _) -> timestamp)\n (fun (_, value) ->\n value |> Option.defaultValue 0 |> float)\n )\n |> roundKeyValueFloatArray 1\n\n (metric, data))\n\n for (metric, metricData) in allMetricsData do\n yield pojo\n {|\n visible = true\n color = metric.Color\n name = chartText metric.Id\n data = metricData\n marker = pojo {| enabled = false |}\n |}\n\n let allDates =\n allMetricsData\n |> Seq.map (fun (_, metricData) ->\n metricData |> Seq.map (fun (date, _) -> date))\n |> Seq.concat\n let startDate = allDates |> Seq.min\n let endDate = allDates |> Seq.max |> Some\n\n if state.DisplayType.ShowPhases then\n yield addContainmentMeasuresFlags startDate endDate |> pojo\n ]\n\n let onRangeSelectorButtonClick(buttonIndex: int) =\n let res (_ : Event) =\n RangeSelectionChanged buttonIndex |> dispatch\n true\n res\n\n let className = \"covid19-infections\"\n let baseOptions =\n basicChartOptions\n ScaleType.Linear className\n state.RangeSelectionButtonIndex onRangeSelectorButtonClick\n\n let axisWithPhases() = baseOptions.xAxis\n\n let axisWithWithoutPhases() =\n baseOptions.xAxis\n |> Array.map (fun ax ->\n {| ax with\n plotBands = shadedWeekendPlotBands\n plotLines = [||]\n |})\n\n {| baseOptions with\n chart = pojo\n {|\n animation = false\n ``type`` =\n match state.DisplayType.ChartType with\n | SplineChart -> \"spline\"\n | StackedBarNormal -> \"column\"\n | StackedBarPercent -> \"column\"\n zoomType = \"x\"\n className = className\n events = pojo {| load = onLoadEvent(className) |}\n |}\n title = pojo {| text = None |}\n series = List.toArray allSeries\n xAxis =\n if state.DisplayType.ShowPhases then axisWithPhases()\n else axisWithWithoutPhases()\n yAxis = // need to hide negative label for addContainmentMeasuresFlags\n let showFirstLabel = not state.DisplayType.ShowPhases\n baseOptions.yAxis |> Array.map (fun ax -> {| ax with showFirstLabel = Some showFirstLabel |})\n\n plotOptions = pojo\n {|\n series =\n match state.DisplayType.ChartType with\n | SplineChart -> pojo {| stacking = \"\"; |}\n | StackedBarNormal -> pojo {| stacking = \"normal\" |}\n | StackedBarPercent -> pojo {| stacking = \"percent\" |}\n |}\n legend = pojo {| enabled = true ; layout = \"horizontal\" |}\n |}\n\nlet renderChartContainer state dispatch =\n Html.div [\n prop.style [ style.height 480 ]\n prop.className \"highcharts-wrapper\"\n prop.children [\n renderChartOptions state dispatch\n |> chartFromWindow\n ]\n ]\n\nlet renderDisplaySelectors activeDisplayType dispatch =\n let renderSelector (displayType : DisplayType) =\n let active = displayType = activeDisplayType\n Html.div [\n prop.text (chartText displayType.Id)\n Utils.classes\n [(true, \"btn btn-sm metric-selector\")\n (active, \"metric-selector--selected selected\")]\n if not active then prop.onClick (fun _ -> dispatch displayType)\n if active then prop.style [ style.backgroundColor \"#808080\" ]\n ]\n\n Html.div [\n prop.className \"metrics-selectors\"\n availableDisplayTypes\n |> Array.map renderSelector\n |> prop.children\n ]\n\n\nlet halfDaysOfMovingAverage = DaysOfMovingAverage / 2\n\n// TODO: the last date of the graph should be determined from the actual data\n// because the graph cuts trailing days without any data. This requires some\n// bit of refactoring of the code, to first prepare the data and only then\n// render everything. Also the series arrays should work with native DateTime\n// so it can be used in arithmetic calculations, instead of JsTimestamp (it should be\n// transformed to JsTimestamp at the moment of setting the Highcharts objects).\nlet lastDateOfGraph =\n DateTime.Now.AddDays(-(halfDaysOfMovingAverage + 1) |> float)\n\n\nlet render state dispatch =\n Html.div [\n renderChartContainer state dispatch\n renderDisplaySelectors state.DisplayType (ChangeDisplayType >> dispatch)\n\n (* SLO-spec\n Html.div [\n prop.className \"disclaimer\"\n prop.children [\n Html.text (chartText \"disclaimer\")\n ]\n ]\n *)\n ]\n\n\nlet infectionsChart (props : {| data : StatsData |}) =\n React.elmishComponent(\"InfectionsChart\", init props.data, update, render)\n","[]\nmodule CasesChart\n\nopen Elmish\nopen Feliz\nopen Feliz.ElmishComponents\nopen Fable.Core.JsInterop\nopen Browser\n\nopen Types\nopen Highcharts\n\ntype DisplayType =\n | MultiChart\n\ntype State = {\n data: StatsData\n displayType: DisplayType\n RangeSelectionButtonIndex: int\n}\n\ntype Msg =\n | ChangeDisplayType of DisplayType\n | RangeSelectionChanged of int\n\ntype Series =\n | Deceased\n | Recovered\n | Active\n | InHospital\n | Icu\n | Critical\n\nmodule Series =\n let all =\n [ Active; InHospital; Icu; Critical; Recovered; Deceased; ]\n let active =\n [ Active; InHospital; Icu; Critical; ]\n let inHospital =\n [ InHospital; Icu; Critical; ]\n let closed =\n [ Deceased; Recovered; ]\n\n let getSeriesInfo = function\n | Deceased -> true, \"#666666\", \"deceased\"\n | Recovered -> true, \"#8cd4b2\", \"recovered\"\n | Active -> true, \"#d5c768\", \"active\"\n | InHospital -> true, \"#de9a5a\", \"hospitalized\"\n | Icu -> true, \"#d96756\", \"icu\"\n | Critical -> true, \"#bf5747\", \"ventilator\"\n\nlet init data : State * Cmd =\n let state = {\n data = data\n displayType = MultiChart\n RangeSelectionButtonIndex = 1\n }\n state, Cmd.none\n\nlet update (msg: Msg) (state: State) : State * Cmd =\n match msg with\n | ChangeDisplayType rt ->\n { state with displayType=rt }, Cmd.none\n | RangeSelectionChanged buttonIndex ->\n { state with RangeSelectionButtonIndex = buttonIndex }, Cmd.none\n\nlet legendFormatter jsThis =\n let pts: obj[] = jsThis?points\n let fmtDate = pts.[0]?point?fmtDate\n\n let mutable fmtUnder = \"\"\n let mutable fmtStr = sprintf \"%s\" fmtDate\n for p in pts do\n match p?point?fmtTotal with\n | \"null\" -> ()\n | _ ->\n match p?point?seriesId with\n | \"active\" | \"recovered\" | \"deceased\" -> fmtUnder <- \"\"\n | _ -> fmtUnder <- fmtUnder + \"↳ \"\n fmtStr <- fmtStr + sprintf \"\"\"
%s● %s: %s\"\"\"\n fmtUnder\n p?series?color\n p?series?name\n p?point?fmtTotal\n fmtStr\n\nlet renderChartOptions (state : State) dispatch =\n let className = \"cases-chart\"\n let scaleType = ScaleType.Linear\n\n let subtract (a : int option) (b : int option) =\n match a, b with\n | Some aa, Some bb -> Some (bb - aa)\n | Some aa, None -> -aa |> Some\n | None, Some _ -> b\n | _ -> None\n let negative (a : int option) =\n match a with\n | Some aa -> -aa |> Some\n | None -> None\n\n let renderSeries series =\n\n let getPoint : (StatsDataPoint -> int option) =\n match series with\n | Recovered -> fun dp -> negative dp.Cases.RecoveredToDate\n | Deceased -> fun dp -> negative dp.StatePerTreatment.DeceasedToDate\n | Active -> fun dp -> dp.Cases.Active |> subtract dp.StatePerTreatment.InHospital\n | InHospital -> fun dp -> dp.StatePerTreatment.InHospital |> subtract dp.StatePerTreatment.InICU\n | Icu -> fun dp -> dp.StatePerTreatment.InICU |> subtract dp.StatePerTreatment.Critical\n | Critical -> fun dp -> dp.StatePerTreatment.Critical\n\n let getPointTotal : (StatsDataPoint -> int option) =\n match series with\n | Recovered -> fun dp -> dp.Cases.RecoveredToDate\n | Deceased -> fun dp -> dp.StatePerTreatment.DeceasedToDate\n | Active -> fun dp -> dp.Cases.Active\n | InHospital -> fun dp -> dp.StatePerTreatment.InHospital\n | Icu -> fun dp -> dp.StatePerTreatment.InICU\n | Critical -> fun dp -> dp.StatePerTreatment.Critical\n\n let visible, color, seriesid = Series.getSeriesInfo series\n {|\n ``type`` = \"column\"\n visible = visible\n color = color\n name = I18N.tt \"charts.cases\" seriesid\n data =\n state.data\n |> Seq.filter (fun dp -> dp.Cases.Active.IsSome)\n |> Seq.map (fun dp ->\n {|\n x = dp.Date |> jsTime12h\n y = getPoint dp\n seriesId = seriesid\n fmtDate = I18N.tOptions \"days.longerDate\" {| date = dp.Date |}\n fmtTotal = getPointTotal dp |> string\n |} |> pojo\n )\n |> Array.ofSeq\n |}\n |> pojo\n\n let allSeries = [|\n for series in Series.all do\n yield renderSeries series\n |]\n\n let onRangeSelectorButtonClick(buttonIndex: int) =\n let res (_ : Event) =\n RangeSelectionChanged buttonIndex |> dispatch\n true\n res\n\n let baseOptions =\n Highcharts.basicChartOptions\n scaleType className\n state.RangeSelectionButtonIndex onRangeSelectorButtonClick\n {| baseOptions with\n series = allSeries\n plotOptions = pojo\n {|\n series = {| stacking = \"normal\"; crisp = false; borderWidth = 0; pointPadding = 0; groupPadding = 0; turboThreshold = 0 |}\n |}\n\n tooltip = pojo\n {|\n shared = true\n formatter = fun () -> legendFormatter jsThis\n |}\n\n legend = pojo {| enabled = true ; layout = \"horizontal\" |}\n\n |}\n\nlet renderChartContainer (state : State) dispatch =\n Html.div [\n prop.style [ style.height 480 ]\n prop.className \"highcharts-wrapper\"\n prop.children [\n renderChartOptions state dispatch\n |> Highcharts.chartFromWindow\n ]\n ]\n\nlet render (state: State) dispatch =\n Html.div [\n renderChartContainer state dispatch\n ]\n\nlet casesChart (props : {| data : StatsData |}) =\n React.elmishComponent(\"CasesChart\", init props.data, update, render)\n","[]\nmodule PatientsChart\n\nopen System\nopen Elmish\nopen Feliz\nopen Feliz.ElmishComponents\nopen Fable.Core.JsInterop\nopen Browser\n\nopen Highcharts\nopen Types\n\nopen Data.Patients\n\ntype HospitalType =\n | CovidHospitals\n | CareHospitals\n\ntype Breakdown =\n | ByHospital\n | AllHospitals\n | Facility of string\n with\n static member getName = function\n | ByHospital -> I18N.t \"charts.patients.byHospital\"\n | AllHospitals -> I18N.t \"charts.patients.allHospitals\"\n | Facility fcode ->\n let _, name = Data.Hospitals.facilitySeriesInfo fcode\n name\n\ntype Series =\n | InHospital\n | Icu\n | Critical\n | InHospitalIn\n | InHospitalOut\n | InHospitalDeceased\n | Care\n | CareIn\n | CareOut\n | CareDeceased\n\nmodule Series =\n let structure hTypeToDisplay =\n if hTypeToDisplay = CareHospitals\n then [ CareIn; Care; CareOut; CareDeceased; ]\n else [ InHospitalIn; InHospital; Icu; Critical; InHospitalOut; InHospitalDeceased; ]\n\n let byHospital =\n [ InHospital; ]\n\n let getSeriesInfo = function\n | InHospital -> \"#de9a5a\", \"hospitalized\"\n | Icu -> \"#d96756\", \"icu\"\n | Critical -> \"#bf5747\", \"ventilator\"\n | InHospitalIn -> \"#d5c768\", \"admitted\"\n | InHospitalOut -> \"#8cd4b2\", \"discharged\"\n | InHospitalDeceased -> \"#666666\", \"deceased\"\n | Care -> \"#dba51d\", \"care\"\n | CareIn -> \"#d5c768\", \"admitted\"\n | CareOut -> \"#8cd4b2\", \"discharged\"\n | CareDeceased -> \"#666666\", \"deceased\"\n\ntype State = {\n PatientsData : PatientsStats []\n Error : string option\n AllFacilities : string list\n HTypeToDisplay : HospitalType\n Breakdown : Breakdown\n RangeSelectionButtonIndex: int\n } with\n static member initial hTypeToDisplay =\n {\n PatientsData = [||]\n Error = None\n AllFacilities = []\n HTypeToDisplay = hTypeToDisplay\n Breakdown = AllHospitals\n RangeSelectionButtonIndex = 1\n }\n\nlet getAllBreakdowns state = seq {\n yield ByHospital\n yield AllHospitals\n for fcode in state.AllFacilities do\n yield Facility fcode\n }\n\ntype Msg =\n | ConsumePatientsData of Result\n | ConsumeServerError of exn\n | SwitchBreakdown of Breakdown\n | RangeSelectionChanged of int\n\nlet init (hTypeToDisplay : HospitalType) : State * Cmd =\n let cmd = Cmd.OfAsync.either getOrFetch () ConsumePatientsData ConsumeServerError\n State.initial hTypeToDisplay, cmd\n\nlet getFacilitiesList (state : State) (data : PatientsStats array) =\n data.[data.Length-1].facilities\n |> Map.toSeq\n |> Seq.filter \n (fun (facility, stats) -> \n if state.HTypeToDisplay = CareHospitals \n then stats.care.toDate.IsSome \n else true (* SLO-spec stats.inHospital.toDate.IsSome*))\n |> Seq.map\n (fun (facility, stats) ->\n facility, \n if state.HTypeToDisplay = CareHospitals \n then stats.care.today\n else stats.inHospital.today)\n |> Seq.fold (fun hospitals (hospital,cnt) -> hospitals |> Map.add hospital cnt) Map.empty // all\n |> Map.toList\n |> List.sortBy (fun (_,cnt) -> cnt |> Option.defaultValue -1 |> ( * ) -1)\n |> List.map (fst)\n\nlet update (msg: Msg) (state: State) : State * Cmd =\n match msg with\n | ConsumePatientsData (Ok data) ->\n { state with PatientsData = data; AllFacilities = getFacilitiesList state data }, Cmd.none\n | ConsumePatientsData (Error err) ->\n { state with Error = Some err }, Cmd.none\n | ConsumeServerError ex ->\n { state with Error = Some ex.Message }, Cmd.none\n | SwitchBreakdown breakdown ->\n { state with Breakdown = breakdown }, Cmd.none\n | RangeSelectionChanged buttonIndex ->\n { state with RangeSelectionButtonIndex = buttonIndex }, Cmd.none\n\nlet renderByHospitalChart (state : State) dispatch =\n\n let startDate = DateTime(2020,03,10)\n\n let renderSources fcode =\n let renderPoint ps : (JsTimestamp * int option) =\n let value =\n ps.facilities\n |> Map.tryFind fcode\n |> Option.bind (fun stats -> \n if state.HTypeToDisplay = CareHospitals \n then stats.care.today\n else stats.inHospital.today\n )\n ps.JsDate12h, value\n\n let color, name = Data.Hospitals.facilitySeriesInfo fcode\n {|\n visible = true\n color = color\n name = name\n dashStyle = Solid |> DashStyle.toString\n data =\n state.PatientsData\n |> Seq.skipWhile (fun dp -> dp.Date < startDate)\n |> Seq.map renderPoint\n |> Array.ofSeq\n showInLegend = true\n |} |> pojo\n\n let onRangeSelectorButtonClick(buttonIndex: int) =\n let res (_ : Event) =\n RangeSelectionChanged buttonIndex |> dispatch\n true\n res\n\n let baseOptions =\n basicChartOptions\n ScaleType.Linear \"covid19-patients-by-hospital\"\n state.RangeSelectionButtonIndex onRangeSelectorButtonClick\n {| baseOptions with\n\n series = [| for fcode in state.AllFacilities do yield renderSources fcode |]\n\n tooltip = pojo {| shared = true; formatter = None ; xDateFormat = \"\" + I18N.t \"charts.common.dateFormat\" + \"\"|}\n\n legend = pojo {| enabled = true ; layout = \"horizontal\" |}\n\n |} |> pojo\n\n\nlet renderStructureChart (state : State) dispatch =\n\n let startDate = DateTime(2020,03,10)\n\n let tooltipFormatter jsThis =\n let pts: obj[] = jsThis?points\n let fmtDate = pts.[0]?point?fmtDate\n\n let mutable fmtStr = \"\"\n let mutable fmtLine = \"\"\n let mutable fmtUnder = \"\"\n for p in pts do\n match p?point?fmtTotal with\n | \"null\" -> ()\n | _ ->\n match p?point?seriesId with\n | \"hospitalized\" | \"care\" | \"discharged\" | \"deceased\" -> fmtUnder <- \"\"\n | _ -> fmtUnder <- fmtUnder + \"↳ \"\n fmtLine <- sprintf \"\"\"
%s● %s: %s\"\"\"\n fmtUnder\n p?series?color\n p?series?name\n p?point?fmtTotal\n if fmtStr.Length > 0 && List.contains p?point?seriesId [ \"hospitalized\"; \"care\" ] then\n fmtStr <- fmtLine + fmtStr // if we got Admitted before, then put it after Hospitalized\n else\n fmtStr <- fmtStr + fmtLine\n sprintf \"%s\" fmtDate + fmtStr\n\n let psData: (DateTime * FacilityPatientStats)[] =\n match state.Breakdown with\n | Facility fcode ->\n state.PatientsData\n |> Seq.skipWhile (fun dp -> dp.Date < startDate)\n |> Seq.map (\n fun ps -> (ps.Date, ps.facilities |> Map.find fcode)\n )\n |> Seq.toArray\n | _ ->\n state.PatientsData\n |> Seq.skipWhile (fun dp -> dp.Date < startDate)\n |> Seq.map\n (fun ps -> (ps.Date, ps.total.ToFacilityStats))\n |> Seq.toArray\n\n let renderBarSeries series =\n let subtract (a : int option) (b : int option) =\n match a, b with\n | Some aa, Some bb -> Some (bb - aa)\n | Some aa, None -> -aa |> Some\n | None, Some _ -> b\n | _ -> None\n let negative (a : int option) =\n match a with\n | Some aa -> -aa |> Some\n | None -> None\n\n let getPoint : (FacilityPatientStats -> int option) =\n match series with\n | InHospital ->\n fun ps ->\n ps.inHospital.today\n |> subtract ps.icu.today\n |> subtract ps.inHospital.``in``\n | Icu ->\n fun ps ->\n ps.icu.today\n |> subtract ps.critical.today\n | Critical -> fun ps -> ps.critical.today\n | InHospitalIn -> fun ps -> ps.inHospital.``in``\n | InHospitalOut -> fun ps -> negative ps.inHospital.out\n | InHospitalDeceased -> fun ps -> negative ps.deceased.today\n | Care ->\n fun ps ->\n ps.care.today\n |> subtract ps.care.``in``\n | CareIn -> fun ps -> ps.care.``in``\n | CareOut -> fun ps -> negative ps.care.out\n | CareDeceased -> fun ps -> negative ps.deceasedCare.today\n\n let getPointTotal : (FacilityPatientStats -> int option) =\n match series with\n | InHospital -> fun ps -> ps.inHospital.today\n | Icu -> fun ps -> ps.icu.today\n | Critical -> fun ps -> ps.critical.today\n | InHospitalIn -> fun ps -> ps.inHospital.``in``\n | InHospitalOut -> fun ps -> ps.inHospital.out\n | InHospitalDeceased -> fun ps -> ps.deceased.today\n | Care -> fun ps -> ps.care.today\n | CareIn -> fun ps -> ps.care.``in``\n | CareOut -> fun ps -> ps.care.out\n | CareDeceased -> fun ps -> ps.deceasedCare.today\n\n let color, seriesId = Series.getSeriesInfo series\n {|\n color = color\n name = I18N.tt \"charts.patients\" seriesId\n data =\n psData\n |> Seq.map (fun (date,ps) ->\n {|\n x = date |> jsTime12h\n y = getPoint ps\n fmtTotal = getPointTotal ps |> string\n fmtDate = I18N.tOptions \"days.longerDate\" {| date = date |}\n seriesId = seriesId\n |} )\n |> Seq.toArray\n |} |> pojo\n\n let onRangeSelectorButtonClick(buttonIndex: int) =\n let res (_ : Event) =\n RangeSelectionChanged buttonIndex |> dispatch\n true\n res\n\n let className = \"covid19-patients-structure\"\n let baseOptions =\n basicChartOptions\n ScaleType.Linear className\n state.RangeSelectionButtonIndex onRangeSelectorButtonClick\n {| baseOptions with\n chart = pojo\n {|\n animation = false\n ``type`` = \"column\"\n zoomType = \"x\"\n className = className\n events = pojo {| load = onLoadEvent(className) |}\n |}\n plotOptions = pojo\n {|\n column = pojo {| stacking = \"normal\"; crisp = false; borderWidth = 0; pointPadding = 0; groupPadding = 0; turboThreshold = 0 |}\n |}\n\n series = [| for series in Series.structure state.HTypeToDisplay\n do yield renderBarSeries series |]\n\n tooltip = pojo {| shared = true; formatter = (fun () -> tooltipFormatter jsThis) |}\n\n legend = pojo {| enabled = true ; layout = \"horizontal\" |}\n\n |} |> pojo\n\n\nlet renderChartContainer state dispatch =\n Html.div [\n prop.style [ style.height 480 ]\n prop.className \"highcharts-wrapper\"\n prop.children [\n match state.Breakdown with\n | ByHospital ->\n renderByHospitalChart state dispatch\n |> chartFromWindow\n | _ ->\n renderStructureChart state dispatch\n |> chartFromWindow\n ]\n ]\n\nlet renderBreakdownSelector state breakdown dispatch =\n Html.div [\n prop.onClick (fun _ -> SwitchBreakdown breakdown |> dispatch)\n Utils.classes\n [(true, \"btn btn-sm metric-selector\")\n (state.Breakdown = breakdown, \"metric-selector--selected\") ]\n prop.text (breakdown |> Breakdown.getName)\n ]\n\nlet renderBreakdownSelectors state dispatch =\n Html.div [\n prop.className \"metrics-selectors\"\n prop.children (\n getAllBreakdowns state\n |> Seq.map (fun breakdown -> renderBreakdownSelector state breakdown dispatch) ) ]\n\nlet render (state : State) dispatch =\n match state.PatientsData, state.Error with\n | [||], None -> Html.div [ Utils.renderLoading ]\n | _, Some err -> Html.div [ Utils.renderErrorLoading err ]\n | _, None ->\n Html.div [\n renderChartContainer state dispatch\n renderBreakdownSelectors state dispatch\n Html.div [\n prop.className \"highcharts-subtitle\"\n prop.children [\n Html.p [\n prop.text (I18N.t \"noData.hospitals\")\n ]\n ]\n prop.style [ \n style.marginLeft 10 \n style.marginRight 10 \n style.marginTop 20 \n ]\n ]\n ]\n\nlet patientsChart (props : {| hTypeToDisplay : HospitalType |}) =\n React.elmishComponent(\"PatientsChart\", init props.hTypeToDisplay, update, render)\n","[]\nmodule RatiosChart\n\nopen System\nopen Elmish\nopen Feliz\nopen Feliz.ElmishComponents\nopen Browser\n\nopen Highcharts\nopen Types\n\nopen Data.Patients\n\ntype DisplayType =\n | Cases\n | Hospital\n | Mortality\n with\n static member all = [ Cases; Hospital; Mortality ]\n static member getName = function\n | Cases -> I18N.t \"charts.ratios.seriousCases\"\n | Hospital -> I18N.t \"charts.ratios.hospitalizations\"\n | Mortality -> I18N.t \"charts.ratios.mortality\"\n static member getClassName = function\n | Cases -> \"covid19-ratios-cases\"\n | Hospital -> \"covid19-ratios-hospital\"\n | Mortality -> \"covid19-ratios-mortality\"\n\ntype Ratios =\n | HospitalCases\n | IcuCases\n | CriticalCases\n | DeceasedCases\n | IcuHospital\n | CriticalHospital\n | DeceasedHospital\n | DeceasedHospitalC\n | DeceasedIcuC\n | DeceasedIcuDeceasedTotal\n | DeceasedHospitalDeceasedTotal\n\nmodule Ratios =\n let getSeries = function\n | Cases -> [ HospitalCases; IcuCases; CriticalCases; DeceasedCases ]\n | Hospital -> [ IcuHospital; CriticalHospital; DeceasedHospital]\n | Mortality -> [ DeceasedHospitalDeceasedTotal; DeceasedIcuDeceasedTotal; DeceasedIcuC; DeceasedHospitalC; ]\n\n // color, dash, id\n let getSeriesInfo = function\n | HospitalCases -> \"#de9a5a\", Solid, \"hospitalCases\"\n | IcuCases -> \"#d96756\", Solid, \"icuCases\"\n | CriticalCases -> \"#bf5747\", Solid, \"ventilatorCases\"\n | DeceasedCases -> \"#666666\", Dot, \"deceasedCases\"\n | IcuHospital -> \"#d96756\", Solid, \"icuHospital\"\n | CriticalHospital -> \"#bf5747\", Solid, \"ventilatorHospital\"\n | DeceasedHospital -> \"#666666\", Dot, \"deceasedHospital\"\n | DeceasedHospitalC -> \"#de9a5a\", Dot, \"hospitalMortality\"\n | DeceasedIcuC -> \"#d96756\", Dot, \"icuMortality\"\n | DeceasedIcuDeceasedTotal -> \"#d96756\", Solid, \"icuDeceasedShare\"\n | DeceasedHospitalDeceasedTotal -> \"#de9a5a\", Solid, \"hospitalDeceasedShare\"\n\ntype State = {\n casesMap: Map\n patientsData : PatientsStats []\n error: string option\n displayType: DisplayType\n RangeSelectionButtonIndex: int\n}\n\ntype Msg =\n | ConsumePatientsData of Result\n | ConsumeServerError of exn\n | ChangeDisplayType of DisplayType\n | RangeSelectionChanged of int\n\nlet init (data : StatsData) : State * Cmd =\n let state = {\n casesMap = data |> Seq.map (fun dp -> dp.Date, dp.Cases.ConfirmedToDate) |> Map.ofSeq\n patientsData = [||]\n error = None\n displayType = Cases\n RangeSelectionButtonIndex = 1\n }\n let cmd = Cmd.OfAsync.either Data.Patients.getOrFetch () ConsumePatientsData ConsumeServerError\n state, cmd\n\nlet update (msg: Msg) (state: State) : State * Cmd =\n match msg with\n | ConsumePatientsData (Ok data) ->\n { state with patientsData = data }, Cmd.none\n | ConsumePatientsData (Error err) ->\n { state with error = Some err }, Cmd.none\n | ConsumeServerError ex ->\n { state with error = Some ex.Message }, Cmd.none\n | ChangeDisplayType dt ->\n { state with displayType = dt }, Cmd.none\n | RangeSelectionChanged buttonIndex ->\n { state with RangeSelectionButtonIndex = buttonIndex }, Cmd.none\n\n\nlet renderRatiosChart (state : State) dispatch =\n\n let startDate = DateTime(2020,03,10)\n\n let renderRatiosH ratio =\n let percent (a : int option) (b : int option) =\n match a with\n | None | Some 0 -> None\n | _ -> Some (float a.Value * 100. / float b.Value |> Utils.roundTo1Decimal)\n\n let cases (date : DateTime) =\n match state.casesMap.TryFind date with\n | None -> None\n | Some i -> i\n\n let renderRatioPoint : (Data.Patients.PatientsStats -> JsTimestamp * float option) =\n match ratio with\n | HospitalCases -> fun ps -> ps.JsDate12h, percent ps.total.inHospital.toDate (cases ps.Date)\n | IcuCases -> fun ps -> ps.JsDate12h, percent ps.total.icu.toDate (cases ps.Date)\n | CriticalCases -> fun ps -> ps.JsDate12h, percent ps.total.critical.toDate (cases ps.Date)\n | DeceasedCases -> fun ps -> ps.JsDate12h, percent ps.total.deceased.toDate (cases ps.Date)\n | IcuHospital -> fun ps -> ps.JsDate12h, percent ps.total.icu.toDate ps.total.inHospital.toDate\n | CriticalHospital -> fun ps -> ps.JsDate12h, percent ps.total.critical.toDate ps.total.inHospital.toDate\n | DeceasedHospital -> fun ps -> ps.JsDate12h, percent ps.total.deceased.hospital.toDate ps.total.inHospital.toDate\n | DeceasedHospitalC -> fun ps -> ps.JsDate12h, percent ps.total.deceased.hospital.toDate ps.total.inHospital.toDate\n | DeceasedIcuC -> fun ps -> ps.JsDate12h, percent ps.total.deceased.hospital.icu.toDate ps.total.icu.toDate\n | DeceasedIcuDeceasedTotal -> fun ps -> ps.JsDate12h, percent ps.total.deceased.hospital.icu.toDate ps.total.deceased.toDate\n | DeceasedHospitalDeceasedTotal -> fun ps -> ps.JsDate12h, percent ps.total.deceased.hospital.toDate ps.total.deceased.toDate\n\n let color, line, id = Ratios.getSeriesInfo ratio\n {|\n visible = true\n color = color\n dashStyle = line |> DashStyle.toString\n name = I18N.tt \"charts.ratios\" id\n data =\n state.patientsData\n |> Seq.skipWhile (fun dp -> dp.Date < startDate || dp.total.inHospital.toDate.IsNone)\n |> Seq.map renderRatioPoint\n |> Array.ofSeq\n |}\n |> pojo\n\n let onRangeSelectorButtonClick(buttonIndex: int) =\n let res (_ : Event) =\n RangeSelectionChanged buttonIndex |> dispatch\n true\n res\n\n let className = DisplayType.getClassName state.displayType\n let baseOptions =\n Highcharts.basicChartOptions\n ScaleType.Linear className\n state.RangeSelectionButtonIndex onRangeSelectorButtonClick\n {| baseOptions with\n chart = pojo\n {|\n animation = false\n ``type`` = \"spline\"\n zoomType = \"x\"\n className = className\n events = pojo {| load = onLoadEvent(className) |}\n |}\n plotOptions = pojo\n {|\n spline = pojo {| dataLabels = pojo {| enabled = false |}; marker = pojo {| enabled = false |} |}\n |}\n\n series = [|\n for ratio in Ratios.getSeries(state.displayType) do\n yield renderRatiosH ratio\n |]\n\n tooltip = pojo {| shared = true; split = false ; valueSuffix = \" %\" ; xDateFormat = \"\" + I18N.t \"charts.common.dateFormat\" + \"\" |}\n\n legend = pojo {| enabled = true ; layout = \"horizontal\" |}\n|}\n\nlet renderChartContainer state dispatch =\n Html.div [\n prop.style [ style.height 480 ]\n prop.className \"highcharts-wrapper\"\n prop.children [\n renderRatiosChart state dispatch |> Highcharts.chartFromWindow\n ]\n ]\n\nlet renderDisplaySelector state dt dispatch =\n Html.div [\n prop.onClick (fun _ -> ChangeDisplayType dt |> dispatch)\n Utils.classes\n [(true, \"btn btn-sm metric-selector\")\n (state.displayType = dt, \"metric-selector--selected\") ]\n prop.text (dt |> DisplayType.getName)\n ]\n\nlet renderDisplaySelectors state dispatch =\n Html.div [\n prop.className \"metrics-selectors\"\n prop.children (\n DisplayType.all\n |> List.map (fun dt -> renderDisplaySelector state dt dispatch) ) ]\n\nlet render (state : State) dispatch =\n match state.patientsData, state.error with\n | [||], None -> Html.div [ Utils.renderLoading ]\n | _, Some err -> Html.div [ Utils.renderErrorLoading err ]\n | _, None ->\n Html.div [\n renderChartContainer state dispatch\n renderDisplaySelectors state dispatch\n ]\n\nlet ratiosChart (props : {| data : StatsData |}) =\n React.elmishComponent(\"RatiosChart\", init props.data, update, render)\n","[]\nmodule AgeGroupsChart\n\nopen Browser\nopen Elmish\nopen Feliz\nopen Feliz.ElmishComponents\nopen Fable.Core.JsInterop\n\nopen Types\nopen Highcharts\nopen System\n\ntype ScaleType = Absolute | Relative\n\ntype ChartMode =\n | AbsoluteInfections\n | AbsoluteDeaths\n | InfectionsPerPopulation\n | DeathsPerPopulation\n | DeathsPerInfections\n\n static member ScaleType mode =\n match mode with\n | AbsoluteInfections -> Absolute\n | AbsoluteDeaths -> Absolute\n | InfectionsPerPopulation -> Relative\n | DeathsPerPopulation -> Relative\n | DeathsPerInfections -> Relative\n\ntype State = {\n ChartMode: ChartMode\n Data: StatsData\n}\n\ntype Msg =\n | ChartModeChanged of ChartMode\n | ScaleTypeChanged of ScaleType\n\nlet maybeFloat = Option.map float\n\n[]\nlet LabelMale = \"Moški\"\n[]\nlet LabelFemale = \"Ženske\"\n\nlet chartText = I18N.chartText \"ageGroups\"\n\nlet populationOf sexLabel ageGroupLabel =\n let parseAgeGroupLabel (label: string): AgeGroupKey =\n if label.Contains('-') then\n let i = label.IndexOf('-')\n let fromAge = Int32.Parse(label.Substring(0, i))\n let toAge = Int32.Parse(label.Substring(i+1))\n { AgeFrom = Some fromAge; AgeTo = Some toAge }\n else if label.Contains(\"+\") then\n let i = label.IndexOf('-')\n let fromAge = Int32.Parse(label.Substring(0, i))\n { AgeFrom = Some fromAge; AgeTo = None }\n else\n sprintf \"Invalid age group label: %s\" label\n |> ArgumentException |> raise\n\n let groupKey = parseAgeGroupLabel ageGroupLabel\n let ageGroupStats =\n Utils.AgePopulationStats.populationStatsForAgeGroup groupKey\n\n match sexLabel with\n | LabelMale -> ageGroupStats.Male\n | LabelFemale -> ageGroupStats.Female\n | _ ->\n sprintf \"Invalid sex label: '%s'\" sexLabel\n |> ArgumentException |> raise\n\nlet percentageOfPopulation affected total =\n let rawPercentage = (float affected) / (float total) * 100.\n rawPercentage |> Utils.roundTo3Decimals\n\nlet percentageOfPopulationMaybe infections population =\n infections |> Option.map (fun x -> percentageOfPopulation x population)\n\nlet percentageOfInfected deaths infections =\n (float deaths) / (float infections) * 100. |> Utils.roundTo1Decimal\n\nlet deathsPerInfectionsMaybe deaths infections =\n match deaths, infections with\n | (_, Some 0) -> None\n | (Some deaths, Some infections) ->\n percentageOfInfected deaths infections |> Some\n | _ -> None\n\ntype InfectionsAndDeathsForAgeGroup = {\n GroupKey: AgeGroupKey\n InfectionsMale : int option\n InfectionsFemale : int option\n DeathsMale : int option\n DeathsFemale : int option\n}\n\ntype InfectionsAndDeathsPerAge = InfectionsAndDeathsForAgeGroup[]\n\nlet mergeInfectionsAndDeathsByGroups\n (infections: AgeGroupsList) (deaths: AgeGroupsList)\n : InfectionsAndDeathsPerAge =\n\n let mappedInfections =\n infections\n |> List.map (fun group ->\n let groupKey = group.GroupKey\n let combined = { GroupKey = groupKey\n InfectionsMale = group.Male\n InfectionsFemale = group.Female\n DeathsMale = None; DeathsFemale = None }\n combined)\n |> List.toArray\n\n let deathsDict =\n deaths\n |> Seq.map (fun group -> group.GroupKey, group)\n |> dict\n\n let merged =\n mappedInfections\n |> Array.map (fun combined ->\n match deathsDict.TryGetValue combined.GroupKey with\n | (true, deathsForGroup) ->\n { combined with\n DeathsMale = deathsForGroup.Male\n DeathsFemale = deathsForGroup.Female }\n | (false, _) -> combined\n )\n\n merged |> Array.sortBy (fun group -> group.GroupKey)\n\n/// \n/// Fetches the infections and deaths per age groups for the latest day that\n/// has both sets of data.\n/// \nlet latestAgeData state =\n /// \n /// Filter function for determining whether the specified AgeGroups\n /// actually has any data or just an empty record.\n /// \n let extractAgeGroupsDataMaybe (ageGroupsData: AgeGroupsList) =\n ageGroupsData\n |> List.filter (fun ageGroup ->\n match ageGroup.Male, ageGroup.Female with\n | None, None -> false\n | _ -> true)\n |> function // take the most recent day with some data\n | [] -> None\n | _ -> Some ageGroupsData\n\n state.Data\n |> List.rev\n |> List.pick (fun dataPoint ->\n let infectionsDataMaybe =\n extractAgeGroupsDataMaybe dataPoint.StatePerAgeToDate\n let deathsDataMaybe =\n extractAgeGroupsDataMaybe dataPoint.DeceasedPerAgeToDate\n\n match infectionsDataMaybe, deathsDataMaybe with\n | Some infectionsData, Some deathsData ->\n Some (dataPoint.Date, mergeInfectionsAndDeathsByGroups infectionsData deathsData)\n | _ -> None\n )\n\ntype AgeCategoryChartData = {\n GroupKey: AgeGroupKey\n Male: float option\n Female: float option\n}\n\ntype AgesChartData = {\n Categories: AgeCategoryChartData[]\n } with\n\n member this.AgeGroupsLabels =\n this.Categories\n |> Array.map (fun ag -> ag.GroupKey.Label)\n\n member this.MaleValues =\n this.Categories |> Array.map (fun ag -> ag.Male)\n\n member this.FemaleValues =\n this.Categories |> Array.map (fun ag -> ag.Female)\n\nlet calculateChartData\n (infectionsAndDeathsPerAge: InfectionsAndDeathsPerAge) chartMode\n : AgesChartData =\n\n let mapNoneToZero x =\n match x with\n | None -> Some 0\n | _ -> x\n\n // Since HC bar chart no longer seems to accept Nones for values,\n // we map them to zeros first.\n let infectionsWithoutNones =\n infectionsAndDeathsPerAge\n |> Array.map(fun x ->\n { GroupKey = x.GroupKey\n InfectionsMale = x.InfectionsMale |> mapNoneToZero\n InfectionsFemale = x.InfectionsFemale |> mapNoneToZero\n DeathsMale = x.DeathsMale |> mapNoneToZero\n DeathsFemale = x.DeathsFemale |> mapNoneToZero\n }\n )\n\n let categories =\n infectionsWithoutNones\n |> Array.map (fun ageGroupData ->\n let populationStats =\n Utils.AgePopulationStats.populationStatsForAgeGroup\n ageGroupData.GroupKey\n\n let (male, female) =\n match chartMode with\n | AbsoluteInfections ->\n (maybeFloat ageGroupData.InfectionsMale,\n maybeFloat ageGroupData.InfectionsFemale)\n | AbsoluteDeaths ->\n (maybeFloat ageGroupData.DeathsMale,\n maybeFloat ageGroupData.DeathsFemale)\n | InfectionsPerPopulation ->\n let male =\n percentageOfPopulationMaybe\n ageGroupData.InfectionsMale populationStats.Male\n let female =\n percentageOfPopulationMaybe\n ageGroupData.InfectionsFemale populationStats.Female\n (male, female)\n\n | DeathsPerPopulation ->\n let male =\n percentageOfPopulationMaybe\n ageGroupData.DeathsMale populationStats.Male\n let female =\n percentageOfPopulationMaybe\n ageGroupData.DeathsFemale populationStats.Female\n (male, female)\n\n | DeathsPerInfections ->\n let male =\n deathsPerInfectionsMaybe\n ageGroupData.DeathsMale\n ageGroupData.InfectionsMale\n let female =\n deathsPerInfectionsMaybe\n ageGroupData.DeathsFemale\n ageGroupData.InfectionsFemale\n (male, female)\n\n { GroupKey = ageGroupData.GroupKey\n Male = male; Female = female }\n )\n\n { Categories = categories }\n\nlet renderScaleTypeSelectors activeScaleType dispatch =\n let renderScaleTypeSelector\n (scaleType : ScaleType)\n (activeScaleType : ScaleType)\n (label : string) =\n let defaultProps =\n [ prop.text label\n Utils.classes [\n (true, \"chart-display-property-selector__item\")\n (scaleType = activeScaleType, \"selected\") ] ]\n if scaleType = activeScaleType then\n Html.div defaultProps\n else\n Html.div\n ((prop.onClick (fun _ -> dispatch scaleType)) :: defaultProps)\n\n Html.div [\n prop.className \"chart-display-property-selector\"\n prop.children [\n renderScaleTypeSelector\n Absolute activeScaleType (chartText \"absolute\")\n renderScaleTypeSelector\n Relative activeScaleType (chartText \"populationShare\")\n ]\n ]\n\nlet renderChartCategorySelector\n (activeChartMode: ChartMode)\n dispatch\n (chartModeToRender: ChartMode) =\n\n let isActive = chartModeToRender = activeChartMode\n\n Html.div [\n prop.onClick (fun _ -> ChartModeChanged chartModeToRender |> dispatch)\n Utils.classes [\n (true, \"btn btn-sm metric-selector\")\n (isActive, \"metric-selector--selected\") ]\n prop.text (\n match chartModeToRender with\n | AbsoluteInfections -> chartText \"confirmedCases\"\n | AbsoluteDeaths -> chartText \"deceased\"\n | InfectionsPerPopulation -> chartText \"confirmedCases\"\n | DeathsPerPopulation -> chartText \"deceased\"\n | DeathsPerInfections -> chartText \"deceasedPerConfirmedCases\"\n )\n ]\n\nlet renderChartCategorySelectors activeChartMode dispatch =\n let categoriesForChartMode chartMode =\n match ChartMode.ScaleType chartMode with\n | Absolute -> [ AbsoluteInfections; AbsoluteDeaths ]\n | Relative ->\n [ \n InfectionsPerPopulation;\n DeathsPerPopulation;\n // DeathsPerInfections; \n ]\n\n Html.div [\n prop.className \"metrics-selectors\"\n prop.children (\n categoriesForChartMode activeChartMode\n |> List.map (renderChartCategorySelector activeChartMode dispatch)\n ) ]\n\nlet renderChartOptions\n (state : State) (latestDate: DateTime) (chartData: AgesChartData) =\n\n let valuesLabelFormatter (value: float) =\n match ChartMode.ScaleType state.ChartMode with\n | Absolute -> (abs value).ToString()\n | Relative -> Utils.percentageValuesLabelFormatter value\n\n let dateText = (I18N.tOptions \"charts.common.dataDate\" {| date = latestDate |})\n\n {| optionsWithOnLoadEvent \"covid19-age-groups\" with\n chart = pojo {| ``type`` = \"bar\" |}\n title = pojo {| text = None |}\n subtitle = {| text = dateText ; align=\"left\"; verticalAlign=\"bottom\" |}\n xAxis = [|\n {| categories = chartData.AgeGroupsLabels\n reversed = false\n opposite = false\n linkedTo = None |}\n {| categories = chartData.AgeGroupsLabels // mirror axis on right side\n reversed = false\n opposite = true\n linkedTo = Some 0 |}\n |]\n yAxis = pojo\n {| title = {| text = \"\" |}\n labels = pojo\n {| formatter = fun () -> valuesLabelFormatter jsThis?value |}\n // allowDecimals needs to be enabled because the values can be\n // be below 1, otherwise it won't auto-scale to below 1.\n allowDecimals = ChartMode.ScaleType state.ChartMode = Relative\n |}\n plotOptions = pojo\n {| series = pojo\n {| stacking = \"normal\" |}\n |}\n credits = pojo\n {|\n enabled = true\n text =\n sprintf \"%s: %s, %s\"\n (I18N.chartText \"common\" \"dataSource\")\n (I18N.tOptions (\"charts.common.dsNIJZ\") {| context = localStorage.getItem (\"contextCountry\") |})\n (I18N.tOptions (\"charts.common.dsMZ\") {| context = localStorage.getItem (\"contextCountry\") |})\n // SLO-spec href = \"https://www.nijz.si/sl/dnevno-spremljanje-okuzb-s-sars-cov-2-covid-19\"\n href = \"http://www.iph.mk\"\n\n |}\n tooltip = pojo\n {| formatter = fun () ->\n let sex = jsThis?series?name\n let ageGroup = jsThis?point?category\n let dataValue: float = jsThis?point?y\n\n match state.ChartMode with\n | AbsoluteInfections ->\n sprintf\n \"%s
%s: %s
%s: %A\"\n sex\n (chartText \"age\")\n ageGroup\n (chartText \"confirmedCases\")\n (abs dataValue)\n | InfectionsPerPopulation ->\n sprintf\n \"%s
%s: %s
%s: %s
%s: %d\"\n sex\n (chartText \"age\")\n ageGroup\n (chartText \"shareOfInfectedPopulation\")\n (Utils.percentageValuesLabelFormatter dataValue)\n (chartText \"populationTotal\")\n (populationOf sex ageGroup)\n | AbsoluteDeaths ->\n sprintf\n \"%s
%s: %s
%s: %A\"\n sex\n (chartText \"age\")\n ageGroup\n (chartText \"deceased\")\n (abs dataValue)\n | DeathsPerPopulation ->\n sprintf\n \"%s
%s: %s
%s: %s
%s: %d\"\n sex\n (chartText \"age\")\n ageGroup\n (chartText \"shareOfDeceasedPopulation\")\n (Utils.percentageValuesLabelFormatter dataValue)\n (chartText \"populationTotal\")\n (populationOf sex ageGroup)\n | DeathsPerInfections ->\n sprintf\n \"%s
%s: %s
%s: %s\"\n sex\n (chartText \"age\")\n ageGroup\n (chartText \"shareOfDeceasedConfirmedCases\")\n (Utils.percentageValuesLabelFormatter dataValue)\n |}\n series = [|\n {| name = chartText \"male\"\n color = \"#73CCD5\"\n dataLabels = pojo\n {| enabled = true\n formatter = fun() -> valuesLabelFormatter jsThis?y\n align = \"right\"\n style = pojo {| textOutline = false |}\n padding = 10 |}\n data = chartData.MaleValues\n |> Array.map (Option.map (fun y -> -y))\n |}\n {| name = chartText \"female\"\n color = \"#D99A91\"\n dataLabels = pojo\n {| enabled = true\n formatter = fun () -> valuesLabelFormatter jsThis?y\n align = \"left\"\n style = pojo {| textOutline = false |}\n padding = 10 |}\n data = chartData.FemaleValues\n |}\n |]\n |}\n\nlet init (data : StatsData) : State * Cmd =\n { ChartMode = AbsoluteInfections; Data = data }, Cmd.none\n\nlet update (msg: Msg) (state: State) : State * Cmd =\n match msg with\n | ChartModeChanged chartMode ->\n { state with ChartMode = chartMode}, Cmd.none\n | ScaleTypeChanged scaleType ->\n let toChartMode =\n match scaleType with\n | Absolute ->\n match state.ChartMode with\n | DeathsPerPopulation -> AbsoluteDeaths\n | DeathsPerInfections -> AbsoluteDeaths\n | _ -> AbsoluteInfections\n | Relative ->\n match state.ChartMode with\n | AbsoluteInfections -> InfectionsPerPopulation\n | _ -> DeathsPerPopulation\n { state with ChartMode = toChartMode }, Cmd.none\n\nlet renderChartContainer state =\n let latest = latestAgeData state\n let latestDate = fst (latest)\n let infectionsAndDeathsPerAge = snd (latest)\n let chartData = calculateChartData infectionsAndDeathsPerAge state.ChartMode\n \n Html.div [\n prop.style [ style.height 400 ]\n prop.className \"highcharts-wrapper\"\n prop.children [ renderChartOptions state latestDate chartData |> chart ]\n ]\n\nlet render (state : State) dispatch =\n let activeScaleType = ChartMode.ScaleType state.ChartMode\n\n Html.div [\n Utils.renderChartTopControlRight\n (renderScaleTypeSelectors activeScaleType (ScaleTypeChanged >> dispatch))\n renderChartContainer state\n renderChartCategorySelectors state.ChartMode dispatch\n\n match state.ChartMode with\n | AbsoluteDeaths | DeathsPerPopulation | DeathsPerInfections ->\n Html.div [\n prop.className \"disclaimer\"\n prop.children [\n Html.text (chartText \"disclaimer\")\n ]\n ]\n | _ -> Html.none\n ]\n\nlet renderChart (props : {| data : StatsData |}) =\n React.elmishComponent(\"AgeGroupsChart\", init props.data, update, render)\n","[]\nmodule RegionsChart\n\nopen Types\n\nopen Browser.Types\nopen Elmish\nopen Fable.Core\nopen Highcharts\nopen JsInterop\nopen Feliz\nopen Feliz.ElmishComponents\n\nopen System.Text\n\ntype RegionInfo = {\n Color: string\n}\n\nlet regionsInfo = dict[\n \"ce\", { Color = \"#665191\" }\n \"kk\", { Color = \"#d45087\" }\n \"kp\", { Color = \"#70a471\" }\n \"kr\", { Color = \"#ffa600\" }\n \"lj\", { Color = \"#457844\" }\n \"ng\", { Color = \"#dba51d\" }\n \"nm\", { Color = \"#afa53f\" }\n \"mb\", { Color = \"#f95d6a\" }\n \"ms\", { Color = \"#024a66\" }\n \"po\", { Color = \"#a05195\" }\n \"sg\", { Color = \"#777c29\" }\n \"za\", { Color = \"#10829a\" }\n]\n\nlet excludedRegions = Set.ofList [\"t\"]\n\ntype Metric =\n { Key : string\n Color : string\n Visible : bool }\n\ntype MetricType =\n | ActiveCases\n | ConfirmedCases\n | Deceased\n with\n static member getName = function\n | ActiveCases -> I18N.chartText \"regions\" \"activeCases\"\n | ConfirmedCases -> I18N.chartText \"regions\" \"confirmedCases\"\n | Deceased -> I18N.chartText \"regions\" \"deceased\"\n\ntype MetricRelativeTo = Absolute | Pop100k\n\ntype RegionsChartConfig = {\n RelativeTo: MetricRelativeTo\n ChartTextsGroup: string\n}\n\ntype State =\n {\n ChartConfig: RegionsChartConfig\n ScaleType : ScaleType\n MetricType : MetricType\n Data : RegionsData\n Regions : Region list\n Metrics : Metric list\n RangeSelectionButtonIndex: int\n }\n\ntype Msg =\n | ToggleRegionVisible of string\n | MetricTypeChanged of MetricType\n | ScaleTypeChanged of ScaleType\n | RangeSelectionChanged of int\n\nlet regionTotal (region : Region) : int =\n region.Municipalities\n |> List.map (fun city -> city.ActiveCases)\n |> List.choose id\n |> List.sum\n\nlet init (config: RegionsChartConfig) (data : RegionsData) : State * Cmd =\n let lastDataPoint = List.last data\n\n let regionsWithoutExcluded =\n lastDataPoint.Regions\n |> List.filter (fun region ->\n not (excludedRegions |> Set.contains region.Name))\n\n let regionsByTotalCases =\n regionsWithoutExcluded\n |> List.sortByDescending regionTotal\n\n let metrics =\n regionsByTotalCases\n |> List.map (fun region ->\n let regionKey = region.Name\n let color = regionsInfo.[regionKey].Color\n { Key = regionKey\n Color = color\n Visible = true } )\n\n { ScaleType = Linear; MetricType = ActiveCases\n ChartConfig = config\n Data = data ; Regions = regionsByTotalCases ; Metrics = metrics\n RangeSelectionButtonIndex = 1 },\n Cmd.none\n\nlet update (msg: Msg) (state: State) : State * Cmd =\n match msg with\n | ToggleRegionVisible regionKey ->\n let newMetrics =\n state.Metrics\n |> List.map (fun m ->\n if m.Key = regionKey\n then { m with Visible = not m.Visible }\n else m)\n { state with Metrics = newMetrics }, Cmd.none\n | MetricTypeChanged newMetricType ->\n { state with MetricType = newMetricType }, Cmd.none\n | ScaleTypeChanged scaleType ->\n { state with ScaleType = scaleType }, Cmd.none\n | RangeSelectionChanged buttonIndex ->\n { state with RangeSelectionButtonIndex = buttonIndex }, Cmd.none\n\nlet tooltipValueFormatter (state: State) value =\n match state.ChartConfig.RelativeTo with\n // todo igor: format to int for absolute values\n | Absolute -> Utils.formatToInt value\n | Pop100k -> Utils.formatTo1DecimalWithTrailingZero value\n\nlet tooltipFormatter (state: State) chartData jsThis =\n let points: obj[] = jsThis?points\n\n match points with\n | [||] -> \"\"\n | _ ->\n let s = StringBuilder()\n // todo igor: extract date\n// let date = points.[0]?point?date\n// s.AppendFormat (\"{0}
\", date.ToString()) |> ignore\n s.Append \"\" |> ignore\n\n points\n |> Array.sortByDescending\n (fun region ->\n let dataValue: float = region?point?y\n dataValue)\n |> Array.iter\n (fun region ->\n let regionName = region?series?name\n let regionColor = region?series?color\n\n let dataValue: float = region?point?y\n\n s.Append \"\" |> ignore\n let regionTooltip =\n sprintf\n \"● | %s | %A | \"\n regionColor\n regionName\n (tooltipValueFormatter state dataValue)\n s.Append regionTooltip |> ignore\n s.Append \"
\" |> ignore\n )\n\n s.Append \"
\" |> ignore\n s.ToString()\n\nlet renderChartOptions (state : State) dispatch =\n\n let metricsToRender =\n state.Metrics\n |> List.filter (fun metric -> metric.Visible)\n\n let renderRegion metricToRender (point : RegionsDataPoint) =\n let ts = point.Date |> jsTime12h\n let region =\n point.Regions\n |> List.find (fun reg -> reg.Name = metricToRender.Key)\n\n let municipalityMetricValue muni =\n match state.MetricType with\n | ActiveCases -> muni.ActiveCases\n | ConfirmedCases -> muni.ConfirmedToDate\n | Deceased -> muni.DeceasedToDate\n |> Option.defaultValue 0\n\n let totalSum =\n region.Municipalities\n |> Seq.sumBy municipalityMetricValue\n |> float\n\n let finalValue =\n match state.ChartConfig.RelativeTo with\n | Absolute -> totalSum\n | Pop100k ->\n let regionPopulation =\n Utils.Dictionaries.regions.[region.Name].Population\n |> Option.get\n |> float\n\n let regionPopBy100k = regionPopulation / 100000.0\n totalSum / regionPopBy100k\n\n ts, finalValue\n\n let allSeries =\n metricsToRender\n |> List.map (fun metric ->\n let renderPoint = renderRegion metric\n {|\n visible = metric.Visible\n color = metric.Color\n name = I18N.tt \"mk.region\" metric.Key // SLO-spec\n data = state.Data |> Seq.map renderPoint |> Array.ofSeq\n |}\n |> pojo\n )\n |> List.toArray\n\n let onRangeSelectorButtonClick(buttonIndex: int) =\n let res (_ : Event) =\n RangeSelectionChanged buttonIndex |> dispatch\n true\n res\n\n let baseOptions =\n basicChartOptions\n state.ScaleType \"covid19-regions\"\n state.RangeSelectionButtonIndex onRangeSelectorButtonClick\n\n let xAxis =\n baseOptions.xAxis\n |> Array.map(fun xAxis -> {| xAxis with gridZIndex = 1 |})\n\n let chartTextGroup = state.ChartConfig.ChartTextsGroup\n\n let redThreshold = 140\n let yAxis =\n baseOptions.yAxis\n |> Array.map\n (fun yAxis ->\n {| yAxis with\n min = None\n gridZIndex = 1\n plotLines =\n match state.ChartConfig.RelativeTo, state.MetricType with\n | Pop100k, ActiveCases -> [|\n {| value=redThreshold\n label={|\n text=I18N.chartText chartTextGroup \"red\"\n align=\"left\"\n verticalAlign=\"bottom\"\n |}\n color=\"red\"\n width=1\n dashStyle=\"longdashdot\"\n zIndex=2\n |}\n |]\n | _ -> [| |]\n plotBands =\n match state.ChartConfig.RelativeTo, state.MetricType with\n | Pop100k, ActiveCases -> [|\n {| from=redThreshold; ``to``=100000.0\n color=\"#FCD5CF30\"\n |}\n |]\n | _ -> [| |]\n |})\n\n {| baseOptions with\n chart = pojo\n {|\n animation = false\n ``type`` = \"spline\"\n zoomType = \"x\"\n styledMode = false // <- set this to 'true' for CSS styling\n |}\n series = allSeries\n xAxis = xAxis\n yAxis = yAxis\n legend = {| enabled = false |}\n tooltip = pojo {|\n formatter = fun () ->\n tooltipFormatter state allSeries jsThis\n shared = true\n useHTML = true\n |}\n |}\n\nlet renderChartContainer state dispatch =\n Html.div [\n prop.style [ style.height 450 ] //; style.width 500; ]\n prop.className \"highcharts-wrapper\"\n prop.children [\n renderChartOptions state dispatch\n |> chartFromWindow\n ]\n ]\n\nlet renderMetricSelector (metric : Metric) dispatch =\n let style =\n if metric.Visible\n then [ style.backgroundColor metric.Color ; style.borderColor metric.Color ]\n else [ ]\n Html.div [\n prop.onClick (fun _ -> ToggleRegionVisible metric.Key |> dispatch)\n Utils.classes\n [(true, \"btn btn-sm metric-selector\")\n (metric.Visible, \"metric-selector--selected\") ]\n prop.style style\n prop.text (I18N.tt \"mk.region\" metric.Key) ] // SLO-spec\n\nlet renderMetricsSelectors metrics dispatch =\n Html.div [\n prop.className \"metrics-selectors\"\n prop.children (\n metrics\n |> List.map (fun metric ->\n renderMetricSelector metric dispatch\n ) ) ]\n\nlet renderMetricTypeSelectors (activeMetricType: MetricType) dispatch =\n let renderMetricTypeSelector (typeSelector: MetricType) =\n let active = typeSelector = activeMetricType\n Html.div [\n prop.onClick (fun _ -> dispatch typeSelector)\n Utils.classes\n [(true, \"chart-display-property-selector__item\")\n (active, \"selected\") ]\n prop.text (typeSelector |> MetricType.getName)\n ]\n\n let metricTypesSelectors =\n [ ActiveCases; ConfirmedCases; Deceased ]\n |> List.map renderMetricTypeSelector\n\n Html.div [\n prop.className \"chart-display-property-selector\"\n prop.children (metricTypesSelectors)\n ]\n\nlet render (state : State) dispatch =\n Html.div [\n Utils.renderChartTopControls [\n renderMetricTypeSelectors state.MetricType (MetricTypeChanged >> dispatch)\n Utils.renderScaleSelector state.ScaleType (ScaleTypeChanged >> dispatch)\n ]\n renderChartContainer state dispatch\n renderMetricsSelectors state.Metrics dispatch\n ]\n\nlet renderChart\n (config: RegionsChartConfig) (props : {| data : RegionsData |}) =\n React.elmishComponent\n (\"RegionsChart\", init config props.data, update, render)\n","module SourcesChart\n\nopen Elmish\nopen Feliz\nopen Feliz.ElmishComponents\nopen Fable.Core.JsInterop\nopen Browser\nopen Types\nopen Highcharts\n\nlet chartText = I18N.chartText \"sources\"\n\nlet countryColors =\n [\n \"#dba51d\"\n \"#afa53f\"\n \"#777c29\"\n \"#70a471\"\n \"#457844\"\n \"#f95d6a\"\n \"#d45087\"\n \"#a05195\"\n \"#665191\"\n \"#10829a\"\n \"#024a66\"\n \"#f95d6a\"\n \"#a05195\"\n \"#024a66\"\n \"#665191\"\n \"#10829a\"\n \"#dba51d\"\n \"#afa53f\"\n \"#777c29\"\n \"#70a471\"\n \"#457844\"\n \"#ffa600\"\n \"#d45087\"\n ]\n\ntype DisplayType =\n | Quarantine\n | QuarantineRelative\n | BySource\n | BySourceRelative\n | BySourceCountry\n | BySourceCountryRelative\n with\n static member all = [ BySource; BySourceRelative; BySourceCountry; BySourceCountryRelative; Quarantine; QuarantineRelative ]\n static member getName = function\n | Quarantine -> chartText \"quarantine\"\n | QuarantineRelative -> chartText \"quarantineRelative\"\n | BySource -> chartText \"bySource\"\n | BySourceRelative -> chartText \"bySourceRelative\"\n | BySourceCountry -> chartText \"bySourceCountry\"\n | BySourceCountryRelative -> chartText \"bySourceCountryRelative\"\n\n// ---------------------------\n// State management\n// ---------------------------\ntype State =\n { displayType: DisplayType\n data: WeeklyStatsData\n RangeSelectionButtonIndex: int }\n\ntype Msg =\n | RangeSelectionChanged of int\n | ChangeDisplayType of DisplayType\n\nlet init data: State * Cmd =\n let state =\n { displayType = BySource\n data = data\n RangeSelectionButtonIndex = 1 }\n\n state, Cmd.none\n\nlet update (msg: Msg) (state: State): State * Cmd =\n match msg with\n | RangeSelectionChanged buttonIndex ->\n { state with\n RangeSelectionButtonIndex = buttonIndex },\n Cmd.none\n | ChangeDisplayType displayType ->\n { state with displayType = displayType },\n Cmd.none\n\n// ---------------------------\n// Display Type Selection\n// ---------------------------\nlet renderDisplaySelector state dt dispatch =\n Html.div [\n prop.onClick (fun _ -> ChangeDisplayType dt |> dispatch)\n Utils.classes\n [(true, \"btn btn-sm metric-selector\")\n (state.displayType = dt, \"metric-selector--selected\") ]\n prop.text (dt |> DisplayType.getName)\n ]\n\nlet renderDisplaySelectors state dispatch =\n Html.div [\n prop.className \"metrics-selectors\"\n prop.children (\n DisplayType.all\n |> List.map (fun dt -> renderDisplaySelector state dt dispatch) ) ]\n\ntype Series =\n | ConfirmedCases\n | SentToQuarantine\n | ConfirmedFromQuarantine\n | ImportedCases\n | ImportRelatedCases\n | SourceUnknown\n | LocalSource\n\nmodule Series =\n let quarantine = [ SentToQuarantine; ConfirmedCases; ConfirmedFromQuarantine ]\n let quarantineRelative = [ ConfirmedCases; ConfirmedFromQuarantine ]\n let bySource = [ImportedCases; ImportRelatedCases; LocalSource; SourceUnknown; ]\n\n let getSeriesInfo =\n function\n | SentToQuarantine -> \"#cccccc\", \"sentToQuarantine\", 0\n | ConfirmedFromQuarantine -> \"#665191\", \"confirmedFromQuarantine\", 1\n | ConfirmedCases -> \"#d5c768\", \"confirmedCases\", 1\n\n | ImportedCases -> \"#d559b0\", \"importedCases\", 0\n | ImportRelatedCases -> \"#f4b2e0\", \"importRelatedCases\", 0\n | SourceUnknown -> \"#f95d6a\", \"sourceUnknown\", 0\n | LocalSource ->\"#F59C9C\", \"localSource\", 0\n\n\nlet tooltipFormatter jsThis =\n let pts: obj [] = jsThis?points\n let fmtWeekYearFromTo = pts.[0]?point?fmtWeekYearFromTo\n let arrows p = match p?point?seriesId with\n | \"confirmedFromQuarantine\" -> \"↳ \"\n |_ -> \"\"\n\n fmtWeekYearFromTo\n + \"
\"\n + (pts\n |> Seq.map (fun p ->\n sprintf \"\"\"%s● %s: %s\"\"\" (arrows p) p?series?color p?series?name p?point?fmtTotal)\n |> String.concat \"
\")\n\nlet tooltipFormatterWithTotal totalText jsThis =\n let pts: obj [] = jsThis?points\n let total = pts |> Array.map (fun p -> p?point?y |> Utils.optionToInt) |> Array.sum\n tooltipFormatter jsThis + sprintf \"\"\"
● %s: %s\"\"\" totalText (total |> string)\n\n\n\n// ---------------------------\n// Data Massaging\n// ---------------------------\nlet splitOutFromTotal (split : int option) (total : int option) =\n match split, total with\n | Some split_, Some total_ -> Some (total_ - split_)\n | None, Some _ -> total\n | _ -> None\n\n\n// ---------------------------\n// Chart Rendering w Highcharts\n// ---------------------------\nlet renderSeriesImportedByCountry (state: State) =\n let countryCodesSortedByTotal = state.data |> Data.WeeklyStats.countryTotals |> Array.map (fun (countryCode, _) -> countryCode)\n\n let countriesToShowInLegend = Array.sub countryCodesSortedByTotal 0 10 |> Set.ofArray// Top 10\n //let countriesToShowInLegend = countriesToShowInLegend |> Set.ofArray // All\n\n let countryToSeries (countryIndex:int) (countryCode:string) =\n {|\n stack = 0\n animation = false\n legendIndex = countryIndex\n color = countryColors.[countryIndex% countryColors.Length]\n name = I18N.tt \"country\" countryCode\n showInLegend = Set.contains countryCode countriesToShowInLegend\n data = state.data |> Seq.map (fun dp -> {|\n x = jsDatesMiddle dp.Date dp.DateTo\n y = dp.ImportedFrom.Item countryCode\n fmtTotal = dp.ImportedFrom.Item countryCode |> string\n fmtWeekYearFromTo =\n I18N.tOptions \"days.weekYearFromToDate\" {| date = dp.Date; dateTo = dp.DateTo |}\n\n |} |> pojo) |> Array.ofSeq\n |} |> pojo\n\n countryCodesSortedByTotal |> Seq.mapi countryToSeries\n\nlet renderSeries state = Seq.mapi (fun legendIndex series ->\n let getPoint: (WeeklyStatsDataPoint -> int option) =\n match series with\n | ConfirmedCases -> fun dp -> dp.ConfirmedCases |> splitOutFromTotal dp.Source.FromQuarantine\n | SentToQuarantine -> fun dp -> dp.SentToQuarantine\n | ConfirmedFromQuarantine -> fun dp -> dp.Source.FromQuarantine\n | ImportedCases -> fun dp -> dp.Source.Import\n | ImportRelatedCases -> fun dp -> dp.Source.ImportRelated\n | SourceUnknown -> fun dp -> dp.Source.Unknown\n | LocalSource -> fun dp -> dp.Source.Local\n\n let getPointTotal: (WeeklyStatsDataPoint -> int option) =\n match series with\n | ConfirmedCases -> fun dp -> dp.ConfirmedCases\n | SentToQuarantine -> fun dp -> dp.SentToQuarantine\n | ConfirmedFromQuarantine -> fun dp -> dp.Source.FromQuarantine\n | ImportedCases -> fun dp -> dp.Source.Import\n | ImportRelatedCases -> fun dp -> dp.Source.ImportRelated\n | SourceUnknown -> fun dp -> dp.Source.Unknown\n | LocalSource -> fun dp -> dp.Source.Local\n\n let color, seriesId, stack = Series.getSeriesInfo (series)\n {|\n color = color\n name = chartText seriesId\n stack = stack\n animation = false\n legendIndex = legendIndex\n data =\n state.data\n |> Seq.map (fun dp ->\n {| x = jsDatesMiddle dp.Date dp.DateTo\n y = getPoint dp\n fmtTotal = getPointTotal dp |> string\n seriesId = seriesId\n fmtWeekYearFromTo =\n I18N.tOptions \"days.weekYearFromToDate\" {| date = dp.Date; dateTo = dp.DateTo |} |}\n |> pojo)\n |> Array.ofSeq |}\n |> pojo)\n\nlet renderChartOptions (state: State) dispatch =\n let onRangeSelectorButtonClick (buttonIndex: int) =\n let res (_: Event) =\n RangeSelectionChanged buttonIndex |> dispatch\n true\n\n res\n\n let lastWeek = state.data.[state.data.Length-1]\n\n let className = \"covid19-weekly-stats\"\n let baseOptions =\n basicChartOptions ScaleType.Linear className state.RangeSelectionButtonIndex onRangeSelectorButtonClick\n\n {| baseOptions with\n chart = pojo\n {|\n animation = false\n ``type`` = \"column\"\n zoomType = \"x\"\n className = className\n events = pojo {| load = onLoadEvent(className) |}\n |}\n series = (match state.displayType with\n | Quarantine -> Series.quarantine |> renderSeries state\n | QuarantineRelative -> Series.quarantineRelative |> renderSeries state\n | BySource | BySourceRelative -> Series.bySource |> renderSeries state\n | BySourceCountry | BySourceCountryRelative -> renderSeriesImportedByCountry state\n ) |> Seq.toArray\n yAxis =\n baseOptions.yAxis\n |> Array.map (fun yAxis -> {| yAxis with\n min = None\n labels = match state.displayType with\n | QuarantineRelative | BySourceRelative | BySourceCountryRelative ->pojo {| format = \"{value} %\" |}\n | _ -> pojo {| format = \"{value}\" |}\n\n reversedStacks = match state.displayType with\n | Quarantine | QuarantineRelative -> true\n | _ -> false |})\n xAxis =\n baseOptions.xAxis\n |> Array.map (fun xAxis ->\n {| xAxis with\n tickInterval = 86400000 * 7\n plotBands =\n [|\n {| from=jsTime <| lastWeek.Date\n ``to``=jsTime <| lastWeek.DateTo\n color=\"#ffffe0\"\n |}\n |]\n |})\n tooltip =\n pojo\n {| shared = true\n split = false\n useHTML = true\n formatter = match state.displayType with\n | Quarantine | QuarantineRelative -> fun () -> tooltipFormatter jsThis\n | BySource | BySourceRelative -> fun () -> tooltipFormatterWithTotal (chartText \"totalConfirmed\") jsThis\n | BySourceCountry | BySourceCountryRelative -> fun () -> tooltipFormatterWithTotal (chartText \"totalImported\") jsThis\n |}\n legend =\n pojo\n {| enabled = true\n layout = \"horizontal\" |}\n plotOptions = pojo {|\n column = pojo {|\n stacking = match state.displayType with\n | QuarantineRelative | BySourceRelative | BySourceCountryRelative -> \"percent\"\n | _ -> \"normal\" |}\n\n |}\n rangeSelector = configureRangeSelector state.RangeSelectionButtonIndex\n [|\n {|\n ``type`` = \"week\" // Customized to align x axis to exactly 9 weeks\n count = 9\n text = I18N.tOptions \"charts.common.x_months\" {| count = 2 |}\n events = pojo {| click = onRangeSelectorButtonClick 0 |}\n |}\n {|\n ``type`` = \"month\"\n count = 3\n text = I18N.tOptions \"charts.common.x_months\" {| count = 3 |}\n events = pojo {| click = onRangeSelectorButtonClick 1 |}\n |}\n {|\n ``type`` = \"all\"\n count = 1\n text = I18N.t \"charts.common.all\"\n events = pojo {| click = onRangeSelectorButtonClick 2 |}\n |}\n |]\n\n |}\n\nlet renderChartContainer state dispatch =\n Html.div [ prop.style [ style.height 450 ]\n prop.className \"highcharts-wrapper\"\n prop.children\n [ renderChartOptions state dispatch\n |> chartFromWindow ] ]\n\n\nlet render (state: State) dispatch =\n let disclaimer =\n match state.displayType with\n | Quarantine | QuarantineRelative -> \"disclaimer\"\n | _ -> \"disclaimerGeneral\"\n\n Html.div [\n renderChartContainer state dispatch\n renderDisplaySelectors state dispatch\n\n Html.div [\n prop.className \"disclaimer\"\n prop.children [\n Html.text (chartText disclaimer)\n ]\n ]\n ]\n\nlet sourcesChart (props: {| data: WeeklyStatsData |}) =\n React.elmishComponent (\"sourcesChart\", init props.data, update, render)\n","module HcCasesChart\n\nopen Elmish\nopen Feliz\nopen Feliz.ElmishComponents\nopen Fable.Core.JsInterop\nopen Browser\nopen Types\nopen Highcharts\n\nlet chartText = I18N.chartText \"hcCases\"\n\ntype DisplayType =\n | Healthcare\n | HealthcareRelative\n with\n static member all = [ Healthcare; HealthcareRelative; ]\n static member getName = function\n | Healthcare -> chartText \"healthcareEmployees\"\n | HealthcareRelative -> chartText \"healthcareEmployeesRelative\"\n\n// ---------------------------\n// State management\n// ---------------------------\ntype State =\n { scaleType : ScaleType\n displayType: DisplayType\n data: WeeklyStatsData\n RangeSelectionButtonIndex: int }\n\ntype Msg =\n | RangeSelectionChanged of int\n | ScaleTypeChanged of ScaleType\n | ChangeDisplayType of DisplayType\n\nlet init data: State * Cmd =\n let state =\n { scaleType = Linear\n displayType = Healthcare\n data = data\n RangeSelectionButtonIndex = 1 }\n\n state, Cmd.none\n\nlet update (msg: Msg) (state: State): State * Cmd =\n match msg with\n | RangeSelectionChanged buttonIndex ->\n { state with\n RangeSelectionButtonIndex = buttonIndex },\n Cmd.none\n | ScaleTypeChanged scaleType ->\n { state with scaleType = scaleType }, Cmd.none\n | ChangeDisplayType displayType ->\n { state with displayType = displayType },\n Cmd.none\n\n// ---------------------------\n// Display Type Selection\n// ---------------------------\nlet renderDisplaySelector state dt dispatch =\n Html.div [\n prop.onClick (fun _ -> ChangeDisplayType dt |> dispatch)\n Utils.classes\n [(true, \"btn btn-sm metric-selector\")\n (state.displayType = dt, \"metric-selector--selected\") ]\n prop.text (dt |> DisplayType.getName)\n ]\n\nlet renderDisplaySelectors state dispatch =\n Html.div [\n prop.className \"metrics-selectors\"\n prop.children (\n DisplayType.all\n |> List.map (fun dt -> renderDisplaySelector state dt dispatch) ) ]\n\ntype Series =\n | ConfirmedCases\n | HealthcareCases\n\nmodule Series =\n let healthcare = [ ConfirmedCases; HealthcareCases ]\n\n let getSeriesInfo =\n function\n | HealthcareCases -> \"#73ccd5\", \"healthcareEmployeesCases\", 1\n | ConfirmedCases -> \"#d5c768\", \"totalConfirmed\", 1\n\nlet tooltipFormatter jsThis =\n let pts: obj [] = jsThis?points\n let fmtWeekYearFromTo = pts.[0]?point?fmtWeekYearFromTo\n let arrows p = match p?point?seriesId with\n | \"healthcareEmployeesCases\" -> \"↳ \"\n |_ -> \"\"\n\n fmtWeekYearFromTo\n + \"
\"\n + (pts\n |> Seq.map (fun p ->\n sprintf \"\"\"%s● %s: %s\"\"\" (arrows p) p?series?color p?series?name p?point?fmtTotal)\n |> String.concat \"
\")\n\n\n// ---------------------------\n// Data Massaging\n// ---------------------------\nlet splitOutFromTotal (split : int option) (total : int option) =\n match split, total with\n | Some split_, Some total_ -> Some (total_ - split_)\n | None, Some _ -> total\n | _ -> None\n\nlet renderSeries state = Seq.mapi (fun legendIndex series ->\n let getPoint: (WeeklyStatsDataPoint -> int option) =\n match series with\n | ConfirmedCases -> fun dp -> (match state.displayType with\n | Healthcare -> dp.ConfirmedCases\n | HealthcareRelative -> dp.ConfirmedCases |> splitOutFromTotal dp.HealthcareCases) // Because \"relative\" is a stacked bar chart\n\n | HealthcareCases -> fun dp -> dp.HealthcareCases\n\n let getPointTotal: (WeeklyStatsDataPoint -> int option) =\n match series with\n | ConfirmedCases -> fun dp -> dp.ConfirmedCases\n | HealthcareCases -> fun dp -> dp.HealthcareCases\n\n let color, seriesId, stack = Series.getSeriesInfo (series)\n {|\n color = color\n name = chartText seriesId\n stack = stack\n animation = false\n legendIndex = legendIndex\n data =\n state.data\n |> Seq.map (fun dp ->\n {| x = jsDatesMiddle dp.Date dp.DateTo\n y = getPoint dp\n fmtTotal = getPointTotal dp |> string\n seriesId = seriesId\n fmtWeekYearFromTo =\n I18N.tOptions \"days.weekYearFromToDate\" {| date = dp.Date; dateTo = dp.DateTo |} |}\n |> pojo)\n |> Array.ofSeq |}\n |> pojo)\n\nlet scaleType (state:State) =\n match state.displayType with\n | HealthcareRelative -> ScaleType.Linear\n | _ -> state.scaleType\n\nlet renderChartOptions (state: State) dispatch =\n let onRangeSelectorButtonClick (buttonIndex: int) =\n let res (_: Event) =\n RangeSelectionChanged buttonIndex |> dispatch\n true\n\n res\n\n let className = \"covid19-healthcare-employees\"\n let baseOptions =\n basicChartOptions (scaleType state) className state.RangeSelectionButtonIndex onRangeSelectorButtonClick\n\n let lastWeek = state.data.[state.data.Length-1]\n\n {| baseOptions with\n chart = pojo\n {|\n animation = false\n ``type`` = (match state.displayType with\n | HealthcareRelative -> \"column\"\n | _ -> \"line\")\n zoomType = \"x\"\n className = className\n events = pojo {| load = onLoadEvent(className) |}\n |}\n series = (match state.displayType with\n | Healthcare -> Series.healthcare |> renderSeries state\n | HealthcareRelative -> Series.healthcare |> renderSeries state\n ) |> Seq.toArray\n yAxis =\n baseOptions.yAxis\n |> Array.map (fun yAxis -> {| yAxis with\n min = match (scaleType state) with\n | Linear -> Some 0\n | _ -> None\n labels = match state.displayType with\n | HealthcareRelative -> pojo {| format = \"{value} %\" |}\n | _ -> pojo {| format = \"{value}\" |}\n\n reversedStacks = true\n |})\n xAxis =\n baseOptions.xAxis\n |> Array.map (fun xAxis ->\n {| xAxis with\n tickInterval = 86400000 * 7\n plotBands =\n [|\n {| from=jsTime <| lastWeek.Date\n ``to``=jsTime <| lastWeek.DateTo\n color=\"#ffffe0\"\n |}\n |]\n |})\n tooltip =\n pojo\n {| shared = true\n split = false\n useHTML = true\n formatter = fun () -> tooltipFormatter jsThis\n |}\n legend =\n pojo\n {| enabled = true\n layout = \"horizontal\" |}\n plotOptions = pojo {|\n column = pojo {|\n stacking = match state.displayType with\n | HealthcareRelative -> \"percent\"\n | _ -> \"normal\" |}\n\n |}\n rangeSelector = configureRangeSelector state.RangeSelectionButtonIndex\n [|\n {|\n ``type`` = \"week\" // Customized to align x axis to exactly 9 weeks\n count = 9\n text = I18N.tOptions \"charts.common.x_months\" {| count = 2 |}\n events = pojo {| click = onRangeSelectorButtonClick 0 |}\n |}\n {|\n ``type`` = \"month\"\n count = 3\n text = I18N.tOptions \"charts.common.x_months\" {| count = 3 |}\n events = pojo {| click = onRangeSelectorButtonClick 1 |}\n |}\n {|\n ``type`` = \"all\"\n count = 1\n text = I18N.t \"charts.common.all\"\n events = pojo {| click = onRangeSelectorButtonClick 2 |}\n |}\n |]\n\n |}\n\nlet renderChartContainer state dispatch =\n Html.div [ prop.style [ style.height 450 ]\n prop.className \"highcharts-wrapper\"\n prop.children\n [ renderChartOptions state dispatch\n |> chartFromWindow ] ]\n\n\n\nlet render (state: State) dispatch =\n Html.div [\n Utils.renderChartTopControlRight (\n Utils.renderMaybeVisible (match state.displayType with\n | HealthcareRelative -> false\n | _ -> true) [\n Utils.renderScaleSelector\n state.scaleType (ScaleTypeChanged >> dispatch)])\n renderChartContainer state dispatch\n renderDisplaySelectors state dispatch\n\n Html.div [\n prop.className \"disclaimer\"\n prop.children [\n Html.text (chartText \"disclaimer\")\n ]\n ]\n ]\n\nlet hcCasesChart (props: {| data: WeeklyStatsData |}) =\n React.elmishComponent (\"hcCasesChart\", init props.data, update, render)\n","module CountriesChartViz.Analysis\n\nopen Data.OurWorldInData\nopen Types\nopen System\n\ntype MetricToDisplay =\n | NewCasesPer1M\n | ActiveCasesPer1M\n | TotalDeathsPer1M\n | DeathsPerCases\n\ntype CountryDataDayEntry = {\n Date: DateTime\n Value: float\n}\n\ntype CountryData = {\n IsoCode : CountryIsoCode\n Entries: CountryDataDayEntry[]\n}\n\ntype CountriesData = Map\n\nlet groupEntriesByCountries\n (metricToDisplay: MetricToDisplay) (entries: DataPoint list)\n : CountriesData =\n\n let transformFromRawOwid (entryRaw: DataPoint)\n : CountryDataDayEntry option =\n match metricToDisplay with\n | NewCasesPer1M ->\n match entryRaw.NewCasesPerMillion with\n | Some value -> Some { Date = entryRaw.Date; Value = value / 10. }\n | None -> None\n | ActiveCasesPer1M ->\n match entryRaw.NewCasesPerMillion with\n | Some value -> Some { Date = entryRaw.Date; Value = value / 10. }\n | None -> None\n | TotalDeathsPer1M ->\n match entryRaw.TotalDeathsPerMillion with\n | Some value -> Some { Date = entryRaw.Date; Value = value / 10. }\n | None -> None\n | DeathsPerCases ->\n match entryRaw.TotalDeaths, entryRaw.TotalCases with\n | Some totalDeaths, Some totalCases ->\n if totalCases > 0 then\n let value = (float totalDeaths) * 100.0 / (float totalCases)\n Some { Date = entryRaw.Date; Value = value }\n else\n None\n | _ -> None\n\n let groupedRaw =\n entries |> Seq.groupBy (fun entry -> entry.CountryCode)\n\n groupedRaw\n |> Seq.map (fun (isoCode, countryEntriesRaw) ->\n let countryEntries =\n countryEntriesRaw\n |> Seq.choose transformFromRawOwid\n |> Seq.toArray\n\n (isoCode, { IsoCode = isoCode; Entries = countryEntries } )\n ) |> Map.ofSeq\n\nlet calculateActiveCases (countryEntries: CountryDataDayEntry[]) =\n let entriesCount = countryEntries.Length\n\n let mutable runningActiveCases = 0.\n Array.init entriesCount (fun i ->\n let countryEntry = countryEntries.[i]\n\n runningActiveCases <- runningActiveCases + countryEntry.Value\n if i >= 14 then\n runningActiveCases <-\n runningActiveCases - countryEntries.[i - 14].Value\n\n { countryEntry with Value = runningActiveCases }\n )\n\nlet calculateMovingAverages\n daysOfMovingAverage\n (countryEntries: CountryDataDayEntry[]) =\n\n let entriesCount = countryEntries.Length\n let cutOff = daysOfMovingAverage / 2\n let averagesSetLength = entriesCount - cutOff * 2\n\n let averages: CountryDataDayEntry[] = Array.zeroCreate averagesSetLength\n\n let daysOfMovingAverageFloat = float daysOfMovingAverage\n let mutable currentSum = 0.\n\n let movingAverageFunc index =\n let entry = countryEntries.[index]\n\n currentSum <- currentSum + entry.Value\n\n match index with\n | index when index >= daysOfMovingAverage - 1 ->\n let date = countryEntries.[index - cutOff].Date\n let average = currentSum / daysOfMovingAverageFloat\n\n averages.[index - (daysOfMovingAverage - 1)] <- {\n Date = date; Value = average }\n\n let entryToRemove =\n countryEntries.[index - (daysOfMovingAverage - 1)]\n currentSum <- currentSum - entryToRemove.Value\n\n | _ -> ignore()\n\n for i in 0 .. entriesCount-1 do\n movingAverageFunc i\n\n averages\n\ntype OwidDataState =\n | NotLoaded\n | PreviousAndLoadingNew of OurWorldInDataRemoteData\n | Current of OurWorldInDataRemoteData\n\nlet SloveniaPopulationInM =\n (Utils.Dictionaries.regions.[\"mk\"].Population\n |> Utils.optionToInt\n |> float)\n / 1000000.\n\nlet buildFromSloveniaDomesticData (statsData: StatsData) (date: DateTime)\n : DataPoint option =\n let domesticDataForDate =\n statsData\n |> List.tryFind(fun dataForDate -> dataForDate.Date = date)\n\n let extractMetricIfPresent (metricValue: int option)\n : (int option * float option) =\n match metricValue with\n | Some value ->\n (Some value, (float value) / SloveniaPopulationInM |> Some)\n | None -> (None, None)\n\n match domesticDataForDate with\n | Some domesticDataForDate ->\n let newCases, newCasesPerM =\n extractMetricIfPresent domesticDataForDate.Cases.ConfirmedToday\n let totalCases, totalCasesPerM =\n extractMetricIfPresent domesticDataForDate.Cases.ConfirmedToDate\n let totalDeaths, totalDeathsPerM =\n extractMetricIfPresent\n domesticDataForDate.StatePerTreatment.DeceasedToDate\n\n {\n CountryCode = \"MKD\"; Date = date\n NewCases = newCases\n NewCasesPerMillion = newCasesPerM\n TotalCases = totalCases\n TotalCasesPerMillion = totalCasesPerM\n TotalDeaths = totalDeaths\n TotalDeathsPerMillion = totalDeathsPerM\n } |> Some\n | None -> None\n\nlet updateWithSloveniaDomesticData\n (statsData: StatsData) (countryData: DataPoint): DataPoint option =\n match countryData.CountryCode with\n | \"MKD\" ->\n countryData.Date |> buildFromSloveniaDomesticData statsData\n | _ -> Some countryData\n\nlet aggregateOurWorldInData\n daysOfMovingAverage\n (metricToDisplay: MetricToDisplay)\n (owidDataState: OwidDataState)\n (statsData: StatsData)\n : CountriesData option =\n\n let doAggregate (owidData: OurWorldInDataRemoteData): CountriesData option =\n match owidData with\n | Success dataPoints ->\n let dataPointsWithLocalSloveniaData =\n dataPoints\n |> List.choose (updateWithSloveniaDomesticData statsData)\n\n let groupedByCountries: CountriesData =\n dataPointsWithLocalSloveniaData\n |> (groupEntriesByCountries metricToDisplay)\n\n let averagedAndFilteredByCountries: CountriesData =\n groupedByCountries\n |> Map.map (fun _ (countryData: CountryData) ->\n let postProcessedEntries =\n match metricToDisplay with\n | NewCasesPer1M ->\n countryData.Entries\n |> calculateMovingAverages daysOfMovingAverage\n | ActiveCasesPer1M ->\n countryData.Entries |> calculateActiveCases\n | TotalDeathsPer1M ->\n countryData.Entries\n |> calculateMovingAverages daysOfMovingAverage\n | DeathsPerCases ->\n countryData.Entries\n |> calculateMovingAverages daysOfMovingAverage\n\n let minValueFilter =\n match metricToDisplay with\n | NewCasesPer1M -> 0.1\n | ActiveCasesPer1M -> 0.1\n | TotalDeathsPer1M -> 0.1\n | DeathsPerCases -> 0.001\n\n let trimmedEntries =\n postProcessedEntries\n |> Array.skipWhile\n (fun entry -> entry.Value < minValueFilter)\n\n { countryData with Entries = trimmedEntries })\n\n Some averagedAndFilteredByCountries\n | _ -> None\n\n match owidDataState with\n | PreviousAndLoadingNew owidData -> doAggregate owidData\n | Current owidData -> doAggregate owidData\n | NotLoaded -> None\n","module CountriesChartViz.Synthesis\n\nopen System.Text\nopen CountriesChartViz.Analysis\nopen Fable.Core\nopen Highcharts\nopen JsInterop\nopen Types\nopen I18N\n\ntype CountriesChartConfig = {\n StatsData: StatsData\n MetricToDisplay: MetricToDisplay\n ChartTextsGroup: string\n DataSource: string\n}\n\ntype CountriesDisplaySet = {\n Label: string\n CountriesCodes: string[]\n}\n\ntype ChartState = {\n OwidDataState: OwidDataState\n StatsData: StatsData\n DisplayedCountriesSet: CountriesDisplaySet\n MetricToDisplay: MetricToDisplay\n ScaleType: ScaleType\n ChartTextsGroup: string\n DataSource: string\n}\n\nlet ColorPalette =\n [ \"#f95d6a\" // SLO-spec: redish color for Macedonia\n \"#ffa600\"\n \"#dba51d\"\n \"#afa53f\"\n \"#777c29\"\n \"#70a471\"\n \"#457844\"\n \"#d45087\"\n \"#a05195\"\n \"#665191\"\n \"#10829a\"\n \"#024a66\" ]\n\nlet Dashes = [ DashStyle.Solid; DashStyle.Dash ]\n\ntype CountrySeries = {\n CountryAbbr: string\n CountryName: string\n Color: string\n Entries: CountryDataDayEntry[]\n}\n\ntype ChartData = {\n LegendTitle: string\n XAxisTitle: string\n YAxisTitle: string\n Series: CountrySeries[]\n}\n\nlet yAxisValueFormatter state jsThis =\n match state.MetricToDisplay with\n | DeathsPerCases ->\n Utils.percentageValuesLabelFormatter jsThis?value\n | _ -> jsThis?value\n\nlet tooltipValueFormatter state value =\n match state.MetricToDisplay with\n | DeathsPerCases ->\n Utils.percentageValuesWith1DecimalTrailingZeroLabelFormatter value\n | _ -> Utils.formatTo1DecimalWithTrailingZero value\n\nlet tooltipFormatter state chartData jsThis =\n let points: obj[] = jsThis?points\n\n match points with\n | [||] -> \"\"\n | _ ->\n let dataDescription =\n sprintf \"%s:\" chartData.LegendTitle\n\n let s = StringBuilder()\n s.Append dataDescription |> ignore\n s.Append \"
\" |> ignore\n\n let date = points.[0]?point?date\n s.AppendFormat (\"{0}
\", date.ToString()) |> ignore\n s.Append \"\" |> ignore\n\n points\n |> Array.sortByDescending\n (fun country ->\n let dataValue: float = country?point?y\n dataValue)\n |> Array.iter\n (fun country ->\n let countryName = country?series?name\n let countryColor = country?series?color\n\n let dataValue: float = country?point?y\n\n s.Append \"\" |> ignore\n let countryTooltip =\n sprintf\n \"● | %s | %A | \"\n countryColor\n countryName\n (tooltipValueFormatter state dataValue)\n s.Append countryTooltip |> ignore\n s.Append \"
\" |> ignore\n )\n\n s.Append \"
\" |> ignore\n s.ToString()\n\nlet prepareChartData daysOfMovingAverage (state: ChartState)\n : ChartData option =\n\n /// \n /// Ensures Macedonia is über alles ;-). -- SLO-Spec\n /// \n let countriesComparer (a, countryNameA: string) (b, countryNameB: string) =\n match a.IsoCode, b.IsoCode with\n | \"MKD\", _ -> -1 // SLO-spec\n | _, \"MKD\" -> 1 // SLO-spec\n | _ -> countryNameA.CompareTo countryNameB\n\n let aggregated =\n aggregateOurWorldInData\n daysOfMovingAverage\n state.MetricToDisplay\n state.OwidDataState\n state.StatsData\n\n\n match aggregated with\n | Some aggregated ->\n let colorsInPalette = ColorPalette |> List.length\n let countriesCount = aggregated |> Seq.length\n\n let series =\n aggregated\n // assign country names\n |> Map.map (fun countryIsoCode countryData ->\n (countryData, tt \"country\" countryIsoCode))\n |> Map.toArray\n |> Array.map (fun (_, value) -> value)\n // sort by country names (but keep Slovenia at the top)\n |> Array.sortWith countriesComparer\n // assign colors to countries and transform into final records\n |> Array.mapi (fun countryIndex (countryData, countryName) ->\n let colorIndex =\n countryIndex * colorsInPalette / countriesCount\n let color = ColorPalette.[colorIndex]\n\n { CountryAbbr = countryData.IsoCode\n CountryName = countryName\n Color = color\n Entries = countryData.Entries }\n )\n\n {\n Series = series\n LegendTitle = chartText state.ChartTextsGroup \"legendTitle\"\n XAxisTitle = \"\"\n YAxisTitle = chartText state.ChartTextsGroup \"yAxisTitle\"\n }\n |> Some\n | None -> None\n","module CountriesChartViz.CountrySets\n\nopen CountriesChartViz.Analysis\nopen Synthesis\n\nlet setNeighboringCountries = {\n Label = \"groupNeighbouring\"\n CountriesCodes = [| \"BGR\"; \"GRC\"; \"ALB\"; \"OWID_KOS\"; \"SRB\"; \"BIH\"; \"ROU\"; \"TUR\"; \"MNE\"; \"SVN\"; \"HRV\"; \"HUN\" |] // SLO-spec - changed for Macedonia\n }\n\nlet setHighestNewCases = {\n Label = \"groupHighestNewCases\"\n CountriesCodes = [| \"CZE\"; \"BEL\"; \"NLD\"; \"ARM\"; \"SVN\"; \"FRA\"; \"CHE\"; \"MNE\"; \"ARG\"; \"ESP\" |]\n}\n\nlet setHighestActiveCases = {\n Label = \"groupHighestActiveCases\"\n CountriesCodes = [| \"CZE\"; \"BEL\"; \"NLD\"; \"ARM\"; \"SVN\"; \"FRA\"; \"CHE\"; \"MNE\"; \"ARG\"; \"ESP\" |]\n}\n\nlet setHighestTotalDeaths = {\n Label = \"groupHighestTotalDeaths\"\n CountriesCodes = [| \"PER\"; \"BEL\"; \"BOL\"; \"ESP\"; \"BRA\"; \"CHL\"; \"ECU\"; \"MEX\"; \"USA\"; \"GBR\" |]\n}\n\nlet setLargestEuCountries = {\n Label = \"groupLargestEuCountries\"\n CountriesCodes = [| \"DEU\"; \"GBR\"; \"FRA\"; \"ITA\"; \"ESP\"; \"POL\"; \"ROU\"; \"NLD\"; \"BEL\" |]\n}\n\nlet setLargestWorldCountries = {\n Label = \"groupLargestWorldCountries\"\n CountriesCodes = [| \"CHN\"; \"IND\"; \"USA\"; \"IDN\"; \"PAK\"; \"BRA\"; \"NGA\"; \"BGD\"; \"RUS\"; \"MEX\"; \"JPN\" |]\n}\n\nlet setNordic = {\n Label = \"groupNordic\"\n CountriesCodes = [| \"DNK\"; \"FIN\"; \"ISL\"; \"NOR\"; \"SWE\" |]\n}\n\nlet setExYU = {\n Label = \"groupExYu\"\n CountriesCodes = [| \"BIH\"; \"HRV\"; \"SVN\"; \"MNE\"; \"OWID_KOS\"; \"SRB\" |] // SLO-spec - changed for Macedonia\n}\n\nlet setEastAsiaOceania = {\n Label = \"groupEastAsiaOceania\"\n CountriesCodes = [| \"AUS\"; \"CHN\"; \"JPN\"; \"KOR\"; \"NZL\"; \"SGP\"; \"TWN\" |]\n}\n\nlet setLatinAmerica = {\n Label = \"groupLatinAmerica\"\n CountriesCodes = [| \"ARG\"; \"BRA\"; \"CHL\"; \"COL\"; \"ECU\"; \"MEX\"; \"PER\" |]\n}\n\n// SLO-spec\nlet setCriticalEU = {\n Label = \"groupCriticalEU\"\n CountriesCodes = [| \"BEL\"; \"ESP\"; \"FRA\"; \"GBR\"; \"ITA\"; \"SWE\" |]\n}\n\nlet setCriticalWorld = {\n Label = \"groupCriticalWorld\"\n CountriesCodes = [| \"BRA\"; \"ECU\"; \"ITA\"; \"RUS\"; \"SWE\"; \"USA\" |]\n}\n\nlet countriesDisplaySets (metric: MetricToDisplay) =\n [| setCriticalEU; setCriticalWorld\n setNeighboringCountries; setNordic\n setEastAsiaOceania; setLatinAmerica\n |]\n\n(* SLO-spec\nlet countriesDisplaySets (metric: MetricToDisplay) =\n match metric with\n | NewCasesPer1M ->\n [| setNeighboringCountries; setHighestNewCases\n setLargestEuCountries; setLargestWorldCountries\n setNordic; setExYU; setEastAsiaOceania; setLatinAmerica\n |]\n | ActiveCasesPer1M ->\n [| setNeighboringCountries; setHighestActiveCases\n setLargestEuCountries; setLargestWorldCountries\n setNordic; setExYU; setEastAsiaOceania; setLatinAmerica\n |]\n | TotalDeathsPer1M ->\n [| setNeighboringCountries; setHighestTotalDeaths\n setLargestEuCountries; setLargestWorldCountries\n setNordic; setExYU; setEastAsiaOceania; setLatinAmerica\n |]\n | DeathsPerCases ->\n [| setNeighboringCountries\n setLargestEuCountries; setLargestWorldCountries\n setNordic; setExYU; setEastAsiaOceania; setLatinAmerica\n |]\n*)\n","module CountriesChartViz.Rendering\n\nopen System\nopen Browser\nopen Elmish\nopen Feliz\nopen Feliz.ElmishComponents\nopen Fable.Core.JsInterop\n\nopen Data.OurWorldInData\nopen Analysis\nopen Synthesis\nopen CountrySets\nopen Highcharts\nopen Types\nopen I18N\n\ntype Msg =\n | DataRequested\n | DataLoaded of OurWorldInDataRemoteData\n | CountriesSelectionChanged of CountriesDisplaySet\n | ScaleTypeChanged of ScaleType\n\n[]\nlet DaysOfMovingAverage = 7\n\nlet init (config: CountriesChartConfig): ChartState * Cmd =\n let metric = config.MetricToDisplay\n let state = {\n OwidDataState = NotLoaded\n StatsData = config.StatsData\n DisplayedCountriesSet = (countriesDisplaySets metric).[0]\n MetricToDisplay = metric\n ScaleType = Linear\n ChartTextsGroup = config.ChartTextsGroup\n DataSource = config.DataSource\n }\n state, Cmd.ofMsg DataRequested\n\nlet update (msg: Msg) (state: ChartState) : ChartState * Cmd =\n let getCountriesCodes selectedSet =\n \"MKD\" :: // SLO-spec here we specify origin country\n (selectedSet.CountriesCodes |> Array.toList)\n\n match msg with\n | CountriesSelectionChanged selectedSet ->\n let countriesCodes = getCountriesCodes selectedSet\n\n let newOwidDataState =\n match state.OwidDataState with\n | NotLoaded -> PreviousAndLoadingNew Loading\n | PreviousAndLoadingNew oldOwidData ->\n PreviousAndLoadingNew oldOwidData\n | Current oldOwidData -> PreviousAndLoadingNew oldOwidData\n\n { state with\n OwidDataState = newOwidDataState\n DisplayedCountriesSet = selectedSet\n },\n Cmd.OfAsync.result\n (loadData {\n DateFrom = None\n DateTo = None\n Countries = CountrySelection.Selected countriesCodes\n } DataLoaded)\n | DataRequested ->\n let countriesCodes = getCountriesCodes state.DisplayedCountriesSet\n\n let newOwidDataState =\n match state.OwidDataState with\n | NotLoaded -> PreviousAndLoadingNew Loading\n | PreviousAndLoadingNew oldOwidData ->\n PreviousAndLoadingNew oldOwidData\n | Current oldOwidData -> PreviousAndLoadingNew oldOwidData\n\n { state with OwidDataState = newOwidDataState },\n Cmd.OfAsync.result\n (loadData {\n DateFrom = None\n DateTo = None\n Countries = CountrySelection.Selected countriesCodes\n } DataLoaded)\n | DataLoaded remoteData ->\n { state with OwidDataState = Current remoteData }, Cmd.none\n | ScaleTypeChanged newScaleType ->\n { state with ScaleType = newScaleType }, Cmd.none\n\nlet renderChartCode (state: ChartState) (chartData: ChartData) =\n let myLoadEvent _ =\n let ret _ =\n let evt = document.createEvent(\"event\")\n evt.initEvent(\"chartLoaded\", true, true);\n document.dispatchEvent(evt)\n ret\n\n let allSeries =\n chartData.Series\n |> Array.map (fun countrySeries ->\n pojo\n {|\n visible = true\n color = countrySeries.Color\n name = countrySeries.CountryName\n data =\n countrySeries.Entries\n |> Array.mapi (fun i entry ->\n pojo {|\n x = entry.Date |> jsTime12h :> obj\n y = entry.Value\n date = tOptions \"days.longerDate\"\n {| date = entry.Date |}\n dataLabels =\n if i = countrySeries.Entries.Length-1 then\n pojo {|\n enabled = true\n format = countrySeries.CountryName\n align = \"left\"\n verticalAlign = \"middle\"\n x = 0\n y = 0\n |}\n else pojo {||}\n |}\n )\n marker = pojo {| enabled = false |}\n |}\n )\n\n\n let legend =\n pojo {|\n enabled = true\n title = pojo {| text = chartData.LegendTitle |}\n align = \"left\"\n verticalAlign = \"top\"\n borderColor = \"#ddd\"\n borderWidth = 1\n layout = \"vertical\"\n floating = true\n padding = 15\n x = 0\n y = 0\n backgroundColor = \"rgba(255,255,255,0.9)\"\n |}\n\n let redZoneStart = 50\n\n let baseOptions =\n basicChartOptions state.ScaleType \"covid19-metrics-comparison\"\n 1 (fun _ -> (fun _ -> true))\n {| baseOptions with\n chart = pojo\n {|\n animation = false\n ``type`` = \"spline\"\n zoomType = \"x\"\n events = {| load = myLoadEvent(\"countries\") |}\n |}\n title = pojo {| text = None |}\n series = allSeries\n xAxis =\n pojo {|\n ``type`` = \"datetime\"\n allowDecimals = false\n title = pojo {| text = chartData.XAxisTitle |}\n dateTimeLabelFormats = pojo\n {|\n week = t \"charts.common.shortDateFormat\"\n day = t \"charts.common.shortDateFormat\"\n |}\n |}\n yAxis =\n pojo {|\n ``type`` =\n match state.ScaleType with\n | Linear -> \"linear\"\n | Logarithmic -> \"logarithmic\"\n labels = pojo {| formatter = yAxisValueFormatter state |}\n min =\n match state.ScaleType with\n | Linear -> 0\n | Logarithmic -> 1\n// max =\n// match state.MetricToDisplay with\n// // double of the red condition\n// | ActiveCasesPer1M -> Some 800\n// | _ -> None\n opposite = true\n crosshair = true\n title =\n pojo {|\n align = \"middle\"\n text = chartData.YAxisTitle\n |}\n plotLines =\n match state.MetricToDisplay with\n | ActiveCasesPer1M -> [|\n {| value=redZoneStart\n label={|\n text=t \"charts.countriesActiveCasesPer1M.red\"\n align=\"left\"\n verticalAlign=\"bottom\"\n |}\n color=\"red\"\n width=1\n dashStyle=\"longdashdot\"\n zIndex=9\n |}\n |]\n | _ -> [| |]\n plotBands =\n match state.MetricToDisplay with\n | ActiveCasesPer1M -> [|\n {| from=redZoneStart; ``to``=10000.0\n color=\"#FEF8F7\"\n |}\n |]\n | _ -> [| |]\n |}\n plotOptions = pojo\n {|\n series = pojo {| stacking = \"\" |}\n |}\n legend = legend\n tooltip = pojo {|\n formatter = fun () ->\n tooltipFormatter state chartData jsThis\n shared = true\n useHTML = true\n |}\n rangeSelector = pojo {| enabled = false |}\n credits = pojo\n {|\n enabled = true\n text =\n sprintf \"%s: %s\"\n (t \"charts.common.dataSource\")\n (t (\"charts.common.\" + state.DataSource))\n href = \"https://ourworldindata.org/coronavirus\"\n |}\n |}\n\nlet renderChartContainer state chartData =\n Html.div [\n prop.style [ style.height 480 ]\n prop.className \"highcharts-wrapper\"\n prop.children [ renderChartCode state chartData |> chart ]\n ]\n\nlet renderCountriesSetsSelectors\n (metric: MetricToDisplay)\n (activeSet: CountriesDisplaySet)\n dispatch =\n let renderCountriesSetSelector (setToRender: CountriesDisplaySet) =\n let active = setToRender = activeSet\n Html.div [\n prop.text (t (\"country-groups.\" + setToRender.Label))\n Utils.classes\n [(true, \"btn btn-sm metric-selector\")\n (active, \"metric-selector--selected selected\") ]\n if not active then prop.onClick (fun _ -> dispatch setToRender)\n if active then prop.style [ style.backgroundColor \"#808080\" ]\n ]\n\n Html.div [\n prop.className \"metrics-selectors\"\n countriesDisplaySets metric\n |> Array.map renderCountriesSetSelector\n |> prop.children\n ]\n\nlet render (state: ChartState) dispatch =\n let chartData =\n state |> prepareChartData DaysOfMovingAverage\n\n let topControls = [\n Html.div [ prop.className \"chart-display-property-selector\" ]\n Utils.renderScaleSelector\n state.ScaleType (ScaleTypeChanged >> dispatch)\n ]\n\n match chartData with\n | Some chartData ->\n Html.div [\n Utils.renderChartTopControls topControls\n renderChartContainer state chartData\n renderCountriesSetsSelectors\n state.MetricToDisplay\n state.DisplayedCountriesSet\n (CountriesSelectionChanged >> dispatch)\n\n Html.div [\n prop.className \"disclaimer\"\n ]\n ]\n | None -> Html.none\n\nlet renderChart (config: CountriesChartConfig) =\n React.elmishComponent\n (\"CountriesChartViz/CountriesChart\", init config, update, render)\n","module PhaseDiagram.Types\n\nopen Browser\n\nopen Types\n\nlet i18n = I18N.tt \"charts.phaseDiagram\"\n\ntype DiagramKind =\n | TotalVsWeek\n | WeekVsWeekBefore\n\n with\n\n member this.Name =\n match this with\n | TotalVsWeek -> i18n \"totalVsWeek.name\"\n | WeekVsWeekBefore -> i18n \"weekVsWeekBefore.name\"\n\n static member All = [TotalVsWeek ; WeekVsWeekBefore]\n\ntype Color = {\n Dark : string\n Light : string\n}\n\ntype Metric =\n | Cases\n | Hospitalized\n | Deceased\n\n with\n\n member this.Name =\n match this with\n | Cases -> i18n \"cases\"\n | Hospitalized -> i18n \"hospitalized\"\n | Deceased -> i18n \"deceased\"\n\n member this.Color =\n match this with\n | Cases ->\n { Dark = \"#dba51d\"\n Light = \"#f2dba2\" }\n | Hospitalized ->\n { Dark = \"#be7A2a\"\n Light = \"#eacaa3\" }\n | Deceased ->\n { Dark = \"#000000\"\n Light = \"#999999\" }\n\n static member AllMetrics =\n [ Cases ; Hospitalized ; Deceased ]\n\nlet (|CasesMetric|HospitalizedMetric|DeceasedMetric|UnknownMetric|) str =\n if str = Metric.Cases.ToString() then CasesMetric\n elif str = Metric.Hospitalized.ToString() then HospitalizedMetric\n elif str = Metric.Deceased.ToString() then DeceasedMetric\n else UnknownMetric\n\ntype DisplayData = {\n x : int\n y : int\n date : System.DateTime\n}\n\ntype State = {\n StatsData : StatsData\n DisplayData : DisplayData array\n DiagramKind : DiagramKind\n Metric : Metric\n Day : int\n}\n\ntype Msg =\n | DiagramKindSelected of DiagramKind\n | MetricSelected of string\n | DayChanged of int\n","module PhaseDiagram.Data\n\nopen Types\n\nlet totalVsWeekData metric statsData =\n let windowSize = 7\n\n let normalizedData =\n match metric with\n | Cases ->\n statsData\n |> List.map (fun (dp : StatsDataPoint) ->\n {| Date = dp.Date\n Count = dp.Cases.ConfirmedToday\n CountToDate = dp.Cases.ConfirmedToDate\n |})\n | Deceased ->\n statsData\n |> List.map (fun (dp : StatsDataPoint) ->\n {| Date = dp.Date\n Count = dp.StatePerTreatment.Deceased\n CountToDate = dp.StatePerTreatment.DeceasedToDate\n |})\n | Hospitalized ->\n statsData\n |> List.map (fun (dp : StatsDataPoint) ->\n {| Date = dp.Date\n Count = dp.StatePerTreatment.InHospital\n CountToDate = dp.StatePerTreatment.InHospitalToDate\n |})\n |> List.pairwise\n |> List.map (fun (a, b) ->\n match a.Count, b.Count, b.CountToDate with\n | Some aCount, Some bCount, Some bCountToDate ->\n {| Date = b.Date\n Count = Some (bCount - aCount)\n CountToDate = Some bCountToDate\n |} |> Some\n | _ -> None)\n |> List.choose id\n\n normalizedData\n |> List.windowed windowSize\n |> List.map (fun window ->\n let last =\n window\n |> List.toArray\n |> Array.last\n\n match last.CountToDate with\n | None -> None\n | Some countToDate ->\n let countInWindow =\n window\n |> List.map (fun dp -> dp.Count)\n |> List.choose id\n |> List.sum\n { x = countToDate\n y = countInWindow\n date = last.Date\n } |> Some)\n |> List.choose id\n |> List.toArray\n\nlet weekVsWeekBeforeData metric statsData =\n let windowSize = 7\n\n let normalizedData =\n match metric with\n | Cases ->\n statsData\n |> List.map (fun (dp : StatsDataPoint) ->\n {| Date = dp.Date\n Count = dp.Cases.ConfirmedToday\n |})\n | Deceased ->\n statsData\n |> List.map (fun (dp : StatsDataPoint) ->\n {| Date = dp.Date\n Count = dp.StatePerTreatment.Deceased\n |})\n | Hospitalized ->\n statsData\n |> List.map (fun (dp : StatsDataPoint) ->\n {| Date = dp.Date\n Count = dp.StatePerTreatment.InHospital\n |})\n |> List.pairwise\n |> List.map (fun (a, b) ->\n match a.Count, b.Count with\n | Some aCount, Some bCount ->\n {| Date = b.Date\n Count = Some (bCount - aCount)\n |} |> Some\n | _ -> None)\n |> List.choose id\n\n normalizedData\n |> List.filter (fun dp -> dp.Count |> Option.isSome)\n |> List.windowed (windowSize * 2)\n |> List.map (fun doubleWindow ->\n let firstWindow, secondWindow = List.splitAt windowSize doubleWindow\n let firstWindowSum = firstWindow |> List.map (fun dp -> dp.Count |> Option.defaultValue 0) |> List.sum\n let secondWindowSum = secondWindow |> List.map (fun dp -> dp.Count |> Option.defaultValue 0) |> List.sum\n if firstWindowSum = 0 then\n None\n else\n Some { x = firstWindowSum\n y = (float secondWindowSum) / (float firstWindowSum) * 100.0 |> System.Convert.ToInt32\n date = (secondWindow |> List.rev |> List.head ).Date })\n |> List.choose id\n |> List.toArray\n\nlet displayData metric diagramKind statsData =\n match diagramKind with\n | TotalVsWeek ->\n totalVsWeekData metric statsData\n | WeekVsWeekBefore ->\n weekVsWeekBeforeData metric statsData\n","[]\nmodule PhaseDiagram.Chart\n\nopen Browser\nopen Fable.Core.JsInterop\nopen Elmish\nopen Feliz\nopen Feliz.UseElmish\n\nopen Components.Slider\nopen Highcharts\n\nopen Types\nopen Data\n\nlet init statsData : State * Cmd =\n let metric = Cases\n let diagramKind = TotalVsWeek\n let displayData = totalVsWeekData metric statsData\n\n let state = {\n StatsData = statsData\n DisplayData = displayData\n DiagramKind = diagramKind\n Metric = metric\n Day = displayData.Length - 1\n }\n state, Cmd.none\n\nlet update (msg: Msg) (state: State) : State * Cmd =\n match msg with\n | DayChanged day ->\n { state with Day = day }, Cmd.none\n | DiagramKindSelected diagramKind ->\n let displayData = displayData state.Metric diagramKind state.StatsData\n { state with\n DiagramKind = diagramKind\n DisplayData = displayData\n Day = displayData.Length - 1 }, Cmd.none\n | MetricSelected metric ->\n let newState =\n match metric with\n | CasesMetric -> { state with Metric = Cases }\n | HospitalizedMetric -> { state with Metric = Hospitalized }\n | DeceasedMetric -> { state with Metric = Deceased }\n | UnknownMetric -> state\n let newDisplayData = displayData newState.Metric state.DiagramKind state.StatsData\n { newState with\n DisplayData = newDisplayData\n Day = newDisplayData.Length - 1 }, Cmd.none\n\nlet sharedChartOptions displayData =\n {| title = None\n chart = pojo {| ``type`` = \"scatter\" ; animation = false ; zoomType = None |}\n legend = {| |}\n credits = Highcharts.credictsOptions |}\n\nlet totalVsWeekChartOptions state =\n let sharedOptions = sharedChartOptions()\n\n let data = state.DisplayData |> Array.map (fun dp -> dp |> pojo)\n\n {| sharedOptions with\n xAxis = pojo\n {| ``type`` = \"logarithmic\"\n gridLineWidth = 1\n title = pojo {| text = i18n \"totalVsWeek.xAxisTitle\" |}\n min = 1\n max = (state.DisplayData |> Array.maxBy (fun dp -> dp.x)).x\n |}\n\n yAxis = pojo\n {| ``type`` = \"logarithmic\"\n title = pojo {| text = i18n \"totalVsWeek.yAxisTitle\" |}\n min = 1\n max = (state.DisplayData |> Array.maxBy (fun dp -> dp.y)).y\n |}\n\n tooltip = pojo\n {| formatter = fun () ->\n let date = I18N.tOptions \"days.longerDate\" {| date = jsThis?point?date |}\n sprintf \"%s
%s: %d
%s: %d\"\n date\n (i18n \"totalVsWeek.xAxisLabel\") jsThis?x\n (i18n \"totalVsWeek.yAxisLabel\") jsThis?y |}\n\n series = [|\n {| data = data\n color = state.Metric.Color.Light\n marker = pojo {| symbol = \"circle\" ; radius = 2 |}\n states = pojo {| hover = pojo {| lineWidth = 0 |} |}\n |} |> pojo\n {| data = [| data.[state.Day] |]\n color = state.Metric.Color.Dark\n marker = pojo {| symbol = \"circle\" ; radius = 8 |}\n states = pojo {| hover = pojo {| lineWidth = 0 |} |}\n |} |> pojo\n |]\n |} |> pojo\n\nlet weekVsWeekBeforeOptions state =\n let sharedOptions = sharedChartOptions()\n\n let data = state.DisplayData |> Array.map (fun dp -> dp |> pojo)\n\n {| sharedOptions with\n xAxis = pojo\n {| ``type`` = \"logarithmic\"\n gridLineWidth = 1\n title = pojo {| text = i18n \"weekVsWeekBefore.xAxisTitle\" |}\n min = 1\n max = (state.DisplayData |> Array.maxBy (fun dp -> dp.x)).x\n |}\n\n yAxis = pojo\n {| ``type`` = \"linear\"\n title = pojo {| text = i18n \"weekVsWeekBefore.yAxisTitle\" |}\n min = 0\n max = (state.DisplayData |> Array.maxBy (fun dp -> dp.y)).y\n |}\n\n tooltip = pojo\n {| formatter = fun () ->\n let date = I18N.tOptions \"days.longerDate\" {| date = jsThis?point?date |}\n sprintf \"%s
%s: %d
%s: %d %%\"\n date\n (i18n \"weekVsWeekBefore.xAxisLabel\") jsThis?x\n (i18n \"weekVsWeekBefore.yAxisLabel\") jsThis?y |}\n\n series = [|\n {| data = data\n color = state.Metric.Color.Light\n marker = pojo {| symbol = \"circle\" ; radius = 3 |}\n states = pojo {| hover = pojo {| lineWidth = 0 |} |}\n |} |> pojo\n {| data = [| data.[state.Day] |]\n color = state.Metric.Color.Dark\n marker = pojo {| symbol = \"circle\" ; radius = 8 |}\n states = pojo {| hover = pojo {| lineWidth = 0 |} |}\n |} |> pojo\n |]\n |} |> pojo\n\nlet renderMetricSelector (selected : Metric) dispatch =\n let options =\n Metric.AllMetrics\n |> List.map (fun metric ->\n Html.option [\n prop.text metric.Name\n prop.value (metric.ToString())\n ]\n )\n\n Html.select [\n prop.value (selected.ToString())\n prop.className \"form-control form-control-sm filters__type\"\n prop.children options\n prop.onChange (MetricSelected >> dispatch)\n ]\n\nlet renderDiagramKindSelectors (selected : DiagramKind) dispatch =\n let renderDiagramKindSelector diagramKind =\n Html.div [\n prop.onClick (fun _ -> dispatch (DiagramKindSelected diagramKind))\n Utils.classes\n [(true, \"chart-display-property-selector__item\")\n (diagramKind = selected, \"selected\") ]\n prop.text diagramKind.Name\n ]\n\n Html.div [\n prop.className \"chart-display-property-selector\"\n prop.children (DiagramKind.All |> List.map renderDiagramKindSelector)\n ]\n\nlet renderChartContainer state dispatch =\n let chartOptions =\n match state.DiagramKind with\n | TotalVsWeek -> totalVsWeekChartOptions\n | WeekVsWeekBefore -> weekVsWeekBeforeOptions\n Html.div [\n prop.style [ style.height 480 ]\n prop.className \"highcharts-wrapper\"\n prop.children [\n Highcharts.chart (chartOptions state)\n ]\n ]\n\nlet renderChart state dispatch =\n let date = state.DisplayData.[state.Day].date\n\n Html.div [\n prop.children [\n Utils.renderChartTopControls [\n Html.div [\n prop.className \"filters\"\n prop.children [\n renderMetricSelector state.Metric dispatch\n ]\n ]\n renderDiagramKindSelectors state.DiagramKind dispatch\n ]\n renderChartContainer state dispatch\n Html.div [\n prop.className \"slider\"\n prop.children [\n Html.span [\n prop.className \"date\"\n prop.children [\n Html.text (sprintf \"%02d. %02d. %d\" date.Day date.Month date.Year)\n ]\n ]\n Slider [\n Props.Min 0\n Props.Max (state.DisplayData.Length - 1)\n Props.Value state.Day\n Props.OnChange (fun value -> dispatch (DayChanged value))\n ] []\n ]\n ]\n ]\n ]\n\nlet chart =\n React.functionComponent(fun (props : {| data : StatsData |}) ->\n let state, dispatch = React.useElmish(init props.data, update, [| |])\n renderChart state dispatch\n )\n","module MetricsCorrelationViz.Rendering\n\nopen DataVisualization.ChartingTypes\nopen Statistics\nopen System\nopen Elmish\nopen Feliz\nopen Feliz.ElmishComponents\nopen Browser\n\nopen Highcharts\nopen Types\nopen I18N\n\nlet chartText = I18N.chartText \"metricsCorrelation\"\n\ntype Metric =\n | Cases\n | Hospitalized\n | Deceased\n\ntype MetricCfg = {\n Metric : Metric\n Color : string\n Id : string\n YAxisIndex: int\n}\n\ntype Metrics = MetricCfg list\n\ntype DayValueIntMaybe = JsTimestamp*int option\ntype DayValueFloat = JsTimestamp*float\n\nmodule Metrics =\n let all = [\n { Metric=Cases; Color=\"#bda506\";Id=\"cases\"; YAxisIndex = 0 }\n { Metric=Hospitalized; Color=\"#be7A2a\"\n Id=\"hospitalized\"; YAxisIndex = 1 }\n { Metric=Deceased; Color=\"#8C71A8\"; Id=\"deceased\"; YAxisIndex = 2 }\n ]\n\ntype ValueTypes = RunningTotals | MovingAverages\n\ntype DisplayType = {\n Id: string\n ValueTypes: ValueTypes\n ChartType: ChartType\n ShowPhases: bool\n} with\n static member All = [|\n { Id = \"averageByDay\"\n ValueTypes = MovingAverages\n ChartType = LineChart\n ShowPhases = true\n }\n { Id = \"all\";\n ValueTypes = RunningTotals\n ChartType = LineChart\n ShowPhases = true\n }\n |]\n static member Default = DisplayType.All.[0]\n\n[]\nlet DaysOfMovingAverage = 7\n\ntype State = {\n DisplayType : DisplayType\n Data : StatsData\n RangeSelectionButtonIndex: int\n}\n\ntype Msg =\n | ChangeDisplayType of DisplayType\n | RangeSelectionChanged of int\n\nlet init data : State * Cmd =\n let state = {\n Data = data\n DisplayType = DisplayType.Default\n RangeSelectionButtonIndex = 1\n }\n state, Cmd.none\n\nlet update (msg: Msg) (state: State) : State * Cmd =\n match msg with\n | ChangeDisplayType rt ->\n { state with DisplayType=rt }, Cmd.none\n | RangeSelectionChanged buttonIndex ->\n { state with RangeSelectionButtonIndex = buttonIndex }, Cmd.none\n\nlet renderChartOptions state dispatch =\n\n let xAxisPoint (dp: StatsDataPoint) = dp.Date\n\n let metricDataGenerator mc : (StatsDataPoint -> int option) =\n let metricFunc =\n match mc.Metric with\n | Cases -> fun pt -> pt.Cases.ConfirmedToDate\n | Hospitalized -> fun pt -> pt.StatePerTreatment.InHospitalToDate\n | Deceased -> fun pt -> pt.StatePerTreatment.DeceasedToDate\n\n fun pt -> (pt |> metricFunc |> Utils.zeroToNone)\n\n /// \n /// Calculates running totals for a given metric.\n /// \n let calcRunningTotals metric =\n let pointData = metricDataGenerator metric\n\n let skipLeadingMissing data =\n data |> List.skipWhile (fun (_,value: 'T option) -> value.IsNone)\n\n let skipTrailingMissing data =\n data\n |> List.rev\n |> skipLeadingMissing\n |> List.rev\n\n state.Data\n |> List.map (fun dp -> ((xAxisPoint dp |> jsTime12h), pointData dp))\n |> skipLeadingMissing\n |> skipTrailingMissing\n |> Seq.toArray\n\n /// \n /// Converts running total series to daily (delta) values.\n /// \n let toDailyValues (series: DayValueIntMaybe[]) =\n let mutable last = 0\n Array.init series.Length (fun i ->\n match series.[i] with\n | ts, None -> ts, None\n | ts, Some current ->\n let result = current - last\n last <- current\n ts, Some result\n )\n\n let toFloatValues (series: DayValueIntMaybe[]) =\n series\n |> Array.map (fun (date, value) ->\n (date, value |> Option.defaultValue 0 |> float))\n\n let allSeries = [\n let allMetricsData =\n Metrics.all\n |> Seq.map(fun metric ->\n let data =\n let runningTotals = calcRunningTotals metric\n match state.DisplayType.ValueTypes with\n | RunningTotals -> runningTotals |> toFloatValues\n | MovingAverages ->\n runningTotals |> toDailyValues\n |> (movingAverages\n movingAverageCentered\n DaysOfMovingAverage\n (fun (timestamp, _) -> timestamp)\n (fun (_, value) ->\n value |> Option.defaultValue 0 |> float)\n )\n |> roundKeyValueFloatArray 1\n\n (metric, data))\n\n for (metric, metricData) in allMetricsData do\n yield pojo\n {|\n visible = true\n yAxis = metric.YAxisIndex\n color = metric.Color\n name = chartText metric.Id\n data = metricData\n marker = pojo {| enabled = false |}\n |}\n\n let allDates =\n allMetricsData\n |> Seq.map (fun (_, metricData) ->\n metricData |> Seq.map (fun (date, _) -> date))\n |> Seq.concat\n let startDate = allDates |> Seq.min\n let endDate = allDates |> Seq.max |> Some\n\n if state.DisplayType.ShowPhases then\n yield addContainmentMeasuresFlags startDate endDate |> pojo\n ]\n\n let onRangeSelectorButtonClick(buttonIndex: int) =\n let res (_ : Event) =\n RangeSelectionChanged buttonIndex |> dispatch\n true\n res\n\n let className = \"covid19-infections\"\n let baseOptions =\n basicChartOptions\n ScaleType.Linear className\n state.RangeSelectionButtonIndex onRangeSelectorButtonClick\n\n let axisWithPhases() = baseOptions.xAxis\n\n let axisWithWithoutPhases() =\n baseOptions.xAxis\n |> Array.map (fun ax ->\n {| ax with\n plotBands = shadedWeekendPlotBands\n plotLines = [||]\n |})\n\n let casesYAxis = {|\n gridLineWidth = 0\n title = pojo {| text = chartText Metrics.all.[0].Id |}\n index = 0\n opposite = false\n |}\n\n let hospitalizedYAxis = {|\n gridLineWidth = 0\n title = pojo {| text = chartText Metrics.all.[1].Id |}\n index = 1\n opposite = true\n |}\n\n let deceasedYAxis = {|\n gridLineWidth = 0\n title = pojo {| text = chartText Metrics.all.[2].Id |}\n index = 2\n opposite = true\n |}\n\n let yAxes = [| casesYAxis; hospitalizedYAxis; deceasedYAxis |]\n\n let yAxesResponsive =\n [|\n {| visible = false |}\n {| visible = false |}\n {| visible = false |}\n |]\n\n let responsive =\n {| rules =\n [| {|\n condition = {| maxWidth = 1000 |}\n chartOptions = {| yAxis = yAxesResponsive |}\n |} |] |}\n\n {| baseOptions with\n chart = pojo\n {|\n animation = false\n ``type`` =\n match state.DisplayType.ChartType with\n | LineChart -> \"line\"\n | StackedBarNormal -> \"column\"\n | StackedBarPercent -> \"column\"\n zoomType = \"x\"\n className = className\n events = pojo {| load = onLoadEvent(className) |}\n |}\n title = pojo {| text = None |}\n series = List.toArray allSeries\n xAxis =\n if state.DisplayType.ShowPhases then axisWithPhases()\n else axisWithWithoutPhases()\n yAxis = yAxes\n\n plotOptions = pojo\n {|\n series =\n match state.DisplayType.ChartType with\n | LineChart -> pojo {| stacking = \"\"; |}\n | StackedBarNormal -> pojo {| stacking = \"normal\" |}\n | StackedBarPercent -> pojo {| stacking = \"percent\" |}\n |}\n legend = pojo {| enabled = true ; layout = \"horizontal\" |}\n responsive = responsive\n credits = pojo\n {|\n enabled = true\n text =\n sprintf \"%s: %s, %s\"\n (I18N.t \"charts.common.dataSource\")\n (I18N.tOptions (\"charts.common.dsNIJZ\") {| context = localStorage.getItem (\"contextCountry\") |})\n (I18N.tOptions (\"charts.common.dsMZ\") {| context = localStorage.getItem (\"contextCountry\") |})\n // SLO-spec href = \"https://www.nijz.si/sl/dnevno-spremljanje-okuzb-s-sars-cov-2-covid-19\"\n href = \"http://www.iph.mk\"\n |}\n |}\n\nlet renderChartContainer state dispatch =\n Html.div [\n prop.style [ style.height 480 ]\n prop.className \"highcharts-wrapper\"\n prop.children [\n renderChartOptions state dispatch\n |> chartFromWindow\n ]\n ]\n\nlet renderDisplaySelectors activeDisplayType dispatch =\n let renderSelector (displayType : DisplayType) =\n let active = displayType = activeDisplayType\n Html.div [\n prop.text (chartText displayType.Id)\n Utils.classes\n [(true, \"btn btn-sm metric-selector\")\n (active, \"metric-selector--selected selected\")]\n if not active then prop.onClick (fun _ -> dispatch displayType)\n if active then prop.style [ style.backgroundColor \"#808080\" ]\n ]\n\n Html.div [\n prop.className \"metrics-selectors\"\n DisplayType.All\n |> Array.map renderSelector\n |> prop.children\n ]\n\n\nlet halfDaysOfMovingAverage = DaysOfMovingAverage / 2\n\n// TODO: the last date of the graph should be determined from the actual data\n// because the graph cuts trailing days without any data. This requires some\n// bit of refactoring of the code, to first prepare the data and only then\n// render everything. Also the series arrays should work with native DateTime\n// so it can be used in arithmetic calculations, instead of JsTimestamp (it should be\n// transformed to JsTimestamp at the moment of setting the Highcharts objects).\nlet lastDateOfGraph =\n DateTime.Now.AddDays(-(halfDaysOfMovingAverage + 1) |> float)\n\n\nlet render state dispatch =\n Html.div [\n renderChartContainer state dispatch\n renderDisplaySelectors state.DisplayType (ChangeDisplayType >> dispatch)\n ]\n\n\nlet renderChart (props : {| data : StatsData |}) =\n React.elmishComponent(\"InfectionsChart\", init props.data, update, render)\n","module ShareButton\n\nopen Feliz\nopen Browser\nopen Types\nopen I18N\n\nlet dropdown (viz: Visualization) =\n React.functionComponent (fun () ->\n let (dropdown, setDropdown) = React.useState (false)\n let (modal, setModal) = React.useState (false)\n // TODO: needs refactoring eventually because we're just duplicating code from EmbedMakerPage.vue\n let (width, height) =\n match viz.VisualizationType with\n | MetricsComparison -> (1140, 720)\n | DailyComparison -> (1140, 720)\n | Cases -> (1140, 630)\n | Patients -> (1140, 720)\n | CarePatients -> (1140, 720)\n | Ratios -> (1140, 720)\n | HCenters -> (1140, 720)\n | Tests -> (1140, 720)\n | Infections -> (1140, 720)\n | Spread -> (1140, 630)\n | Regions -> (1140, 720)\n | SkopjeMunMap -> (1140, 720)\n | Regions100k -> (1140, 720)\n | HcCases -> (1140, 720)\n | Sources -> (1140, 720)\n | Map -> (1140, 820)\n | RegionMap -> (1140, 820)\n | EuropeMap -> (1140, 780)\n | WorldMap -> (1140, 780)\n | Municipalities -> (1140, 1150)\n | SkopjeMunicipalities -> (1140, 1150)\n | AgeGroups -> (1140, 720)\n | AgeGroupsTimeline -> (1140, 720)\n | Hospitals -> (1140, 1130)\n | CountriesCasesPer1M -> (1140, 740)\n | CountriesActiveCasesPer1M -> (1140, 740)\n | CountriesDeathsPer1M -> (1140, 740)\n | PhaseDiagram -> (1140, 720)\n | MetricsCorrelation -> (1140, 720)\n\n let graphUrl =\n \"https://covid-19.treker.mk/\"\n + localStorage.getItem (\"i18nextLng\")\n + \"/stats%23\"\n + viz.ClassName\n\n let embedUrl =\n \"https://covid-19.treker.mk/\"\n + \"embed.html#/\"\n + localStorage.getItem (\"i18nextLng\")\n + \"/chart/\"\n + viz.VisualizationType.ToString()\n\n // let copy (e: MouseEvent) =\n // let element = e.target\n // element.select ()\n // element.setSelectionRange (0, 99999)\n // document.execCommand (\"copy\")\n\n Html.div\n [ prop.className \"share-component-wrapper\"\n prop.children\n [ Html.div\n [ if dropdown\n then prop.className \"share-dropdown-wrapper show\"\n else prop.className \"share-dropdown-wrapper hide\"\n prop.children\n [ Html.a\n [ prop.className \"share-link\"\n prop.target \"_blank\"\n prop.href\n // TODO: make facebook sharing better by creating an app here:\n // https://developers.facebook.com/docs/sharing/reference/share-dialog\n (\"https://facebook.com/sharer/sharer.php?u=\"\n + graphUrl)\n prop.children\n [ Html.img\n [ prop.className \"share-icon\"\n prop.src \"/images/facebook-f.svg\"\n prop.alt (I18N.t \"charts.common.facebook\") ]\n Html.span [ prop.text (I18N.t \"charts.common.facebook\") ] ] ]\n Html.a\n [ prop.className \"share-link\"\n prop.target \"_blank\"\n prop.href\n // https://developer.twitter.com/en/docs/twitter-for-websites/tweet-button/guides/web-intent\n (\"https://twitter.com/intent/tweet/?\"\n + \"text=\"\n + chartText viz.ChartTextsGroup \"title\"\n + \"&url=\"\n + graphUrl)\n prop.children\n [ Html.img\n [ prop.className \"share-icon\"\n prop.src \"/images/twitter.svg\"\n prop.alt (I18N.t \"charts.common.twitter\") ]\n Html.span [ prop.text (I18N.t \"charts.common.twitter\") ] ] ]\n Html.a\n [ prop.className \"share-link\"\n prop.children\n [ Html.img\n [ prop.className \"share-icon\"\n prop.src \"/images/code.svg\"\n prop.alt (I18N.t \"charts.common.webpage\") ]\n Html.span [ prop.text (I18N.t \"charts.common.webpage\") ] ]\n prop.onClick (fun _ -> setModal (not modal)) ] ] ]\n\n // TODO: add export to PNG\n // https://www.highcharts.com/docs/export-module/client-side-export\n\n Html.div\n [ prop.className \"share-button-wrapper\"\n prop.children\n [ Html.img\n [ prop.className \"share-button-icon\"\n prop.src \"/images/share-icon.svg\"\n prop.alt (I18N.t \"charts.common.share\") ]\n Html.span\n [ prop.className \"share-button-caption\"\n prop.text (I18N.t \"charts.common.share\") ] ]\n // TODO: click outside the button should close the dropdown as well\n prop.onClick (fun _ -> setDropdown (not dropdown)) ]\n\n\n Html.div\n [ if modal then prop.className \"embed-menu show\" else prop.className \"embed-menu hide\"\n prop.children\n [ Html.h2 [ prop.text (I18N.t \"embedMaker.title\") ]\n Html.p\n // TODO: refactor https://www.i18next.com/translation-function/interpolation\n // check why this doesn't work: I18N.tOptions \"embedMaker.description\" {| interpolation = {| escapeValue = false |} }|}\n [ Html.span [ prop.text (I18N.t \"embedMaker.descriptionPart1\") ]\n Html.a\n [ prop.href\n \"https://github.com/treker-mk/website/blob/master/examples/README.md\"\n prop.text (I18N.t \"embedMaker.descriptionPart2\") ] ]\n Html.textarea\n [ prop.title (I18N.t \"embedMaker.copy\")\n prop.className \"form-control\"\n prop.defaultValue\n (\"\") ]\n // TODO: implement copy method as it is in EmbedPageMake\n // prop.onClick (fun _ -> copy) ]\n Html.button\n [ prop.text (I18N.t \"charts.common.close\")\n prop.className \"btn btn-primary btn-sm\"\n prop.onClick (fun _ -> setModal (not modal)) ] ] ] ] ])\n","let createIntersectionObserver = (targetElementId, callback, options) => {\n let target = document.getElementById(targetElementId)\n let observer = new IntersectionObserver(callback, options)\n observer.observe(target)\n return observer\n}\n\nexport {\n createIntersectionObserver\n}\n","module IntersectionObserver\n\nopen System\nopen Fable.Core\nopen Elmish\nopen Feliz\nopen Feliz.UseElmish\n\ntype Options = {\n root : Browser.Types.Element option\n rootMargin : string\n threshold: float\n}\n\nlet defaultOptions = {\n root = None\n rootMargin = \"0px\"\n threshold = 0.0\n}\n\ntype IntersectionObserver = obj\n\ntype IntersectionObserverEntry = {\n isIntersecting : bool\n intersectionRatio : float\n}\n\n[]\nlet private createIntersectionObserverJS (targetElementId : string, callback : IntersectionObserverEntry array -> obj -> unit, options : Options option) : IntersectionObserver = jsNative\n\nlet createIntersectionObserver (targetElementId : string) (callback : IntersectionObserverEntry array -> unit) (options : Options option) : IntersectionObserver =\n let callbackWrapper = fun intersectionObserverEntries _ -> callback intersectionObserverEntries\n createIntersectionObserverJS (targetElementId, callbackWrapper, options)\n\nmodule Component =\n open Fable.Core.JsInterop\n\n type Visibility =\n | Hidden\n | Visible\n\n type State = {\n Visibility : Visibility\n }\n\n type Msg =\n | Show\n\n let init data : State * Cmd =\n { Visibility = Hidden }, Cmd.none\n\n let update (msg: Msg) (state: State) : State * Cmd =\n match msg with\n | Show -> { state with Visibility = Visible }, Cmd.none\n\n let intersectionObserver = React.functionComponent(fun (props : {| targetElementId : string ; content : ReactElement ; options : Options |}) ->\n let state, dispatch = React.useElmish(init, update, [||])\n\n let subscribeToIntersectionObserver () =\n let callback (entries : IntersectionObserverEntry array) =\n match state.Visibility, entries.[0].isIntersecting with\n | Hidden, true -> dispatch Show ; ()\n | _ -> ()\n let observer = createIntersectionObserver props.targetElementId callback (Some props.options)\n { new IDisposable with member this.Dispose() = observer?disconnect() }\n\n React.useEffect(subscribeToIntersectionObserver)\n\n match state.Visibility with\n | Hidden -> Html.none\n | Visible -> props.content\n )\n","module App\n\nopen Browser\nopen Elmish\nopen Feliz\n\nopen Types\nopen CountriesChartViz.Analysis\nopen I18N\n\nlet init (query: obj) (visualization: string option) (page: string) (apiEndpoint: string)=\n let renderingMode =\n match visualization with\n | None -> Normal\n | Some viz ->\n match viz with\n | \"Map\" -> Some Map\n | \"RegionMap\" -> Some RegionMap\n | \"SkopjeMunMap\" -> Some SkopjeMunMap\n | \"EuropeMap\" -> Some EuropeMap\n | \"WorldMap\" -> Some WorldMap\n | \"MetricsComparison\" -> Some MetricsComparison\n | \"DailyComparison\" -> Some DailyComparison\n | \"Patients\" -> Some Patients\n | \"CarePatients\" -> Some CarePatients\n | \"Ratios\" -> Some Ratios\n | \"Tests\" -> Some Tests\n | \"Cases\" -> Some Cases\n | \"Spread\" -> Some Spread\n | \"Regions\" -> Some Regions\n | \"Regions100k\" -> Some Regions100k\n | \"Weekly\" -> Some Sources\n | \"HcCases\" -> Some HcCases\n | \"Municipalities\" -> Some Municipalities\n | \"SkopjeMunicipalities\" -> Some SkopjeMunicipalities\n | \"AgeGroups\" -> Some AgeGroups\n | \"AgeGroupsTimeline\" -> Some AgeGroupsTimeline\n | \"HCenters\" -> Some HCenters\n | \"Hospitals\" -> Some Hospitals\n | \"Infections\" -> Some Infections\n | \"CountriesCasesPer1M\" -> Some CountriesCasesPer1M\n | \"CountriesActiveCasesPer1M\" -> Some CountriesActiveCasesPer1M\n | \"CountriesDeathsPer1M\" -> Some CountriesDeathsPer1M\n | \"PhaseDiagram\" -> Some PhaseDiagram\n | \"MetricsCorrelation\" -> Some MetricsCorrelation\n | _ -> None\n |> Embedded\n\n let initialState =\n {\n ApiEndpoint = apiEndpoint\n Page = page\n Query = query\n StatsData = NotAsked\n WeeklyStatsData = NotAsked\n RegionsData = NotAsked\n SkopjeMunicipalitiesData = NotAsked\n RenderingMode = renderingMode }\n\n // Request data loading based on the page we are on\n let cmd =\n match page with\n | \"local\" ->\n Cmd.batch\n [ Cmd.ofMsg StatsDataRequested\n Cmd.ofMsg WeeklyStatsDataRequested\n Cmd.ofMsg RegionsDataRequest\n Cmd.ofMsg SkopjeMunicipalitiesDataRequest ]\n | \"world\" ->\n Cmd.batch\n [ Cmd.ofMsg StatsDataRequested\n Cmd.ofMsg WeeklyStatsDataRequested ]\n | _ ->\n Cmd.batch\n [ Cmd.ofMsg StatsDataRequested\n Cmd.ofMsg WeeklyStatsDataRequested\n Cmd.ofMsg RegionsDataRequest\n Cmd.ofMsg SkopjeMunicipalitiesDataRequest ]\n\n initialState, cmd\n\nlet update (msg: Msg) (state: State) =\n match msg with\n | StatsDataRequested ->\n match state.StatsData with\n | Loading -> state, Cmd.none\n | _ -> { state with StatsData = Loading }, Cmd.OfAsync.result Data.Stats.load\n | StatsDataLoaded data -> { state with StatsData = data }, Cmd.none\n | WeeklyStatsDataRequested ->\n match state.WeeklyStatsData with\n | Loading -> state, Cmd.none\n | _ -> { state with WeeklyStatsData = Loading }, Cmd.OfAsync.result Data.WeeklyStats.load\n | WeeklyStatsDataLoaded data -> { state with WeeklyStatsData = data }, Cmd.none\n | RegionsDataRequest ->\n match state.RegionsData with\n | Loading -> state, Cmd.none\n | _ -> { state with RegionsData = Loading }, Cmd.OfAsync.result (Data.Regions.load state.ApiEndpoint)\n | RegionsDataLoaded data -> { state with RegionsData = data }, Cmd.none\n | SkopjeMunicipalitiesDataRequest ->\n match state.SkopjeMunicipalitiesData with\n | Loading -> state, Cmd.none\n | _ -> { state with SkopjeMunicipalitiesData = Loading }, Cmd.OfAsync.result (Data.Regions.loadSkMun state.ApiEndpoint)\n | SkopjeMunicipalitiesDataLoaded data -> { state with SkopjeMunicipalitiesData = data }, Cmd.none\n\nopen Elmish.React\n\nlet render (state: State) (_: Msg -> unit) =\n let hospitals =\n { VisualizationType = Hospitals\n ClassName = \"hospitals-chart\"\n ChartTextsGroup = \"hospitals\"\n Explicit = true\n Renderer = fun _ -> lazyView HospitalsChart.hospitalsChart () }\n\n let metricsComparison =\n { VisualizationType = MetricsComparison\n ClassName = \"metrics-comparison-chart\"\n ChartTextsGroup = \"metricsComparison\"\n Explicit = false\n Renderer =\n fun state ->\n match state.StatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data -> lazyView MetricsComparisonChart.metricsComparisonChart {| data = data |} }\n\n let dailyComparison =\n { VisualizationType = DailyComparison\n ClassName = \"daily-comparison-chart\"\n ChartTextsGroup = \"dailyComparison\"\n Explicit = false\n Renderer =\n fun state ->\n match state.StatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data -> lazyView DailyComparisonChart.dailyComparisonChart {| data = data |} }\n\n let spread =\n { VisualizationType = Spread\n ClassName = \"spread-chart\"\n ChartTextsGroup = \"spread\"\n Explicit = false\n Renderer =\n fun state ->\n match state.StatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data -> lazyView SpreadChart.spreadChart {| data = data |} }\n\n let map =\n { VisualizationType = Map\n ClassName = \"map-chart\"\n ChartTextsGroup = \"map\"\n Explicit = false\n Renderer =\n fun state ->\n match state.RegionsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data -> lazyView Map.mapChart {| mapToDisplay = Map.MapToDisplay.Municipality; data = data |} }\n\n let regionMap =\n { VisualizationType = RegionMap\n ClassName = \"rmap-chart\"\n ChartTextsGroup = \"rmap\"\n Explicit = false\n Renderer =\n fun state ->\n match state.RegionsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data -> lazyView Map.mapChart {| mapToDisplay = Map.MapToDisplay.Region; data = data |} }\n\n let skopjeMunMap =\n { VisualizationType = SkopjeMunMap\n ClassName = \"sk-map-chart\"\n ChartTextsGroup = \"sk-map\"\n Explicit = false\n Renderer =\n fun state ->\n match state.SkopjeMunicipalitiesData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data -> lazyView Map.mapChart {| mapToDisplay = Map.MapToDisplay.SkopjeMunicipality; data = data |} }\n\n\n let municipalities =\n { VisualizationType = Municipalities\n ClassName = \"municipalities-chart\"\n ChartTextsGroup = \"municipalities\"\n Explicit = false\n Renderer =\n fun state ->\n match state.RegionsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data ->\n lazyView MunicipalitiesChart.municipalitiesChart {| query = state.Query; dataToDisplay = MunicipalitiesChart.DataToDisplay.Municipality; data = data |} }\n \n let skopjeMunicipalities =\n { VisualizationType = SkopjeMunicipalities\n ClassName = \"sk-municipalities-chart\"\n ChartTextsGroup = \"sk-municipalities\"\n Explicit = false\n Renderer =\n fun state ->\n match state.SkopjeMunicipalitiesData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data ->\n lazyView MunicipalitiesChart.municipalitiesChart {| query = state.Query; dataToDisplay = MunicipalitiesChart.DataToDisplay.SkopjeMunicipality; data = data |} }\n\n let europeMap =\n { VisualizationType = EuropeMap\n ClassName = \"europe-chart\"\n ChartTextsGroup = \"europe\"\n Explicit = false\n Renderer =\n fun state ->\n match state.WeeklyStatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data -> lazyView EuropeMap.mapChart {| mapToDisplay = EuropeMap.MapToDisplay.Europe; data = data |} }\n\n let worldMap =\n { VisualizationType = WorldMap\n ClassName = \"world-chart\"\n ChartTextsGroup = \"world\"\n Explicit = false\n Renderer =\n fun state ->\n match state.WeeklyStatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data -> lazyView EuropeMap.mapChart {| mapToDisplay = EuropeMap.MapToDisplay.World; data = data |} }\n\n let ageGroupsTimeline =\n { VisualizationType = AgeGroupsTimeline\n ClassName = \"age-groups-trends-chart\"\n ChartTextsGroup = \"ageGroupsTimeline\"\n Explicit = false\n Renderer =\n fun state ->\n match state.StatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data ->\n lazyView AgeGroupsTimelineViz.Rendering.renderChart\n {| data = data |} }\n\n let tests =\n { VisualizationType = Tests\n ClassName = \"tests-chart\"\n ChartTextsGroup = \"tests\"\n Explicit = false\n Renderer =\n fun state ->\n match state.StatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data -> lazyView TestsChart.testsChart {| data = data |} }\n\n let hCenters =\n { VisualizationType = HCenters\n ClassName = \"hcenters-chart\"\n ChartTextsGroup = \"hCenters\"\n Explicit = false\n Renderer = fun _ -> lazyView HCentersChart.hCentersChart state.ApiEndpoint }\n\n let infections =\n { VisualizationType = Infections\n ClassName = \"infections-chart\"\n ChartTextsGroup = \"infections\"\n Explicit = false\n Renderer =\n fun state ->\n match state.StatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data -> lazyView InfectionsChart.infectionsChart {| data = data |} }\n\n let cases =\n { VisualizationType = Cases\n ClassName = \"cases-chart\"\n ChartTextsGroup = \"cases\"\n Explicit = false\n Renderer =\n fun state ->\n match state.StatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data -> lazyView CasesChart.casesChart {| data = data |} }\n\n let patients =\n { VisualizationType = Patients\n ClassName = \"patients-chart\"\n ChartTextsGroup = \"patients\"\n Explicit = false\n Renderer = fun _ -> lazyView PatientsChart.patientsChart {| hTypeToDisplay = PatientsChart.HospitalType.CovidHospitals |} }\n\n let patientsCare =\n { VisualizationType = CarePatients\n ClassName = \"care-patients-chart\"\n ChartTextsGroup = \"carePatients\"\n Explicit = false\n Renderer = fun _ -> lazyView PatientsChart.patientsChart {| hTypeToDisplay = PatientsChart.HospitalType.CareHospitals |} }\n\n let ratios =\n { VisualizationType = Ratios\n ClassName = \"ratios-chart\"\n ChartTextsGroup = \"ratios\"\n Explicit = false\n Renderer =\n fun state ->\n match state.StatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data -> lazyView RatiosChart.ratiosChart {| data = data |} }\n\n let ageGroups =\n { VisualizationType = AgeGroups\n ClassName = \"age-groups-chart\"\n ChartTextsGroup = \"ageGroups\"\n Explicit = false\n Renderer =\n fun state ->\n match state.StatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data -> lazyView AgeGroupsChart.renderChart {| data = data |} }\n\n let regionsAbs =\n { VisualizationType = Regions\n ClassName = \"regions-chart\"\n ChartTextsGroup = \"regions\"\n Explicit = false\n Renderer =\n fun state ->\n match state.RegionsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data ->\n let config: RegionsChart.RegionsChartConfig =\n { RelativeTo = RegionsChart.MetricRelativeTo.Absolute\n ChartTextsGroup = \"regions\"\n }\n let props = {| data = data |}\n lazyView (RegionsChart.renderChart config) props\n }\n\n let regions100k =\n { VisualizationType = Regions100k\n ClassName = \"regions-chart-100k\"\n ChartTextsGroup = \"regions100k\"\n Explicit = false\n Renderer =\n fun state ->\n match state.RegionsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data ->\n let config: RegionsChart.RegionsChartConfig =\n { RelativeTo = RegionsChart.MetricRelativeTo.Pop100k\n ChartTextsGroup = \"regions100k\"\n }\n let props = {| data = data |}\n lazyView (RegionsChart.renderChart config) props\n }\n\n let sources =\n { VisualizationType = Sources\n ClassName = \"sources-chart\"\n ChartTextsGroup = \"sources\"\n Explicit = false\n Renderer =\n fun state ->\n match state.WeeklyStatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data -> lazyView SourcesChart.sourcesChart {| data = data |} }\n\n let hcCases =\n { VisualizationType = HcCases\n ClassName = \"hc-cases-chart\"\n ChartTextsGroup = \"hcCases\"\n Explicit = false\n Renderer =\n fun state ->\n match state.WeeklyStatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data -> lazyView HcCasesChart.hcCasesChart {| data = data |} }\n\n let countriesCasesPer1M =\n { VisualizationType = CountriesCasesPer1M\n ClassName = \"countries-cases-chart\"\n ChartTextsGroup = \"countriesNewCasesPer1M\"\n Explicit = false\n Renderer =\n fun state ->\n match state.StatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data ->\n lazyView CountriesChartViz.Rendering.renderChart\n { StatsData = data\n MetricToDisplay = NewCasesPer1M\n ChartTextsGroup = \"countriesNewCasesPer1M\"\n DataSource = \"dsOWD_NIJZ\"\n }\n }\n\n let countriesActiveCasesPer1M =\n { VisualizationType = CountriesActiveCasesPer1M\n ClassName = \"countries-active-chart\"\n ChartTextsGroup = \"countriesActiveCasesPer1M\"\n Explicit = false\n Renderer =\n fun state ->\n match state.StatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data ->\n lazyView CountriesChartViz.Rendering.renderChart\n { StatsData = data\n MetricToDisplay = ActiveCasesPer1M\n ChartTextsGroup = \"countriesActiveCasesPer1M\"\n DataSource = \"dsOWD_NIJZ\"\n }\n }\n\n let countriesDeathsPer1M =\n { VisualizationType = CountriesDeathsPer1M\n ClassName = \"countries-deaths-chart\"\n ChartTextsGroup = \"countriesTotalDeathsPer1M\"\n Explicit = false\n Renderer =\n fun state ->\n match state.StatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data ->\n lazyView CountriesChartViz.Rendering.renderChart\n { StatsData = data\n MetricToDisplay = TotalDeathsPer1M\n ChartTextsGroup = \"countriesTotalDeathsPer1M\"\n DataSource = \"dsOWD_MZ\"\n }\n }\n\n let countriesDeathsPerCases =\n { VisualizationType = CountriesDeathsPer1M\n ClassName = \"countries-deaths-per-cases\"\n ChartTextsGroup = \"countriesDeathsPerCases\"\n Explicit = false\n Renderer =\n fun state ->\n match state.StatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data ->\n lazyView CountriesChartViz.Rendering.renderChart\n { StatsData = data\n MetricToDisplay = DeathsPerCases\n ChartTextsGroup = \"countriesDeathsPerCases\"\n DataSource = \"dsOWD_MZ\"\n }\n }\n\n let phaseDiagram =\n { VisualizationType = PhaseDiagram\n ClassName = \"phase-diagram-chart\"\n ChartTextsGroup = \"phaseDiagram\"\n Explicit = false\n Renderer =\n fun state ->\n match state.StatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data -> lazyView PhaseDiagram.Chart.chart {| data = data |} }\n\n let metricsCorrelation =\n { VisualizationType = MetricsCorrelation\n ClassName = \"metrics-correlation-chart\"\n ChartTextsGroup = \"metricsCorrelation\"\n Explicit = false\n Renderer =\n fun state ->\n match state.StatsData with\n | NotAsked -> Html.none\n | Loading -> Utils.renderLoading\n | Failure error -> Utils.renderErrorLoading error\n | Success data ->\n lazyView MetricsCorrelationViz.Rendering.renderChart\n {| data = data |} }\n\n let localVisualizations =\n [ metricsComparison; dailyComparison; spread; map; municipalities\n europeMap; tests; infections;\n cases; patients; metricsCorrelation;\n skopjeMunMap; // skopjeMunicipalities; Venko booljash\n ]\n\n let worldVisualizations =\n [ worldMap; countriesActiveCasesPer1M\n countriesCasesPer1M; countriesDeathsPerCases; countriesDeathsPer1M ]\n\n let allVisualizations =\n [ hospitals; metricsComparison; spread; dailyComparison; map\n municipalities; sources; metricsCorrelation\n europeMap; worldMap; ageGroupsTimeline; tests; hCenters; infections\n cases; patients; patientsCare; ratios; ageGroups; regionMap; regionsAbs\n regions100k; hcCases; sources\n countriesCasesPer1M\n countriesActiveCasesPer1M\n countriesDeathsPer1M\n phaseDiagram\n skopjeMunMap; skopjeMunicipalities;\n ]\n\n let embedded, visualizations =\n match state.Page, state.RenderingMode with\n | (\"local\", Normal) ->\n false,\n localVisualizations\n |> List.filter (fun viz -> not viz.Explicit)\n | (\"world\", Normal) ->\n false,\n worldVisualizations\n |> List.filter (fun viz -> not viz.Explicit)\n | (_, Embedded visualizationType) ->\n match visualizationType with\n | None -> true, []\n | Some visualizationType ->\n true,\n allVisualizations\n |> List.filter\n (fun viz -> viz.VisualizationType = visualizationType)\n | _ -> invalidOp \"BUG: this should never happen.\"\n\n let brandLink =\n match state.RenderingMode with\n | Normal -> Html.none\n | Embedded _ ->\n Html.a\n [ prop.className \"brand-link\"\n prop.target \"_blank\"\n prop.href \"https://covid-19.treker.mk/\"\n prop.text (t \"meta.title\") ]\n\n\n let renderFaqLink (visualization: Visualization) =\n if visualization.Explicit then\n Html.none // we do not have FAQ for hidden charts yet\n else\n Html.div\n [ prop.className \"faq-link-wrapper\"\n prop.children\n [ Html.a\n [ prop.className \"faq-link\"\n prop.key visualization.ClassName\n prop.target \"_blank\"\n prop.href\n (\"/\"\n + localStorage.getItem (\"i18nextLng\")\n + \"/faq#\"\n + visualization.ClassName)\n prop.text \"?\" ]\n |> Html.div ] ]\n\n\n let renderFaqAndShareBtn (visualization: Visualization) =\n match state.RenderingMode with\n | Embedded _ ->\n Html.div\n [ prop.className \"faq-and-share-wrapper\"\n prop.children\n [ renderFaqLink visualization\n brandLink ] ]\n | Normal ->\n Html.div\n [ prop.className \"faq-and-share-wrapper\"\n prop.children\n [ renderFaqLink visualization\n ShareButton.dropdown visualization () ] ]\n\n\n let renderChartTitle (visualization: Visualization) =\n\n let scrollToElement (e: MouseEvent) visualizationId =\n e.preventDefault ()\n\n let element =\n document.getElementById (visualizationId)\n\n let offset = -100.\n\n let position =\n element.getBoundingClientRect().top\n + window.pageYOffset\n + offset\n\n window.scrollTo\n ({| top = position\n behavior = \"smooth\" |}\n |> unbox) // behavior = smooth | auto\n window.history.pushState (null, null, \"#\" + visualizationId)\n\n let context = localStorage.getItem (\"contextCountry\")\n\n Html.div\n [ prop.className \"title-brand-wrapper\"\n prop.children\n [ Html.h2\n [ prop.children\n [ Html.a\n [ prop.href (\"#\" + visualization.ClassName)\n prop.text (tOptions (\"charts.\" + visualization.ChartTextsGroup + \".title\") {| context = context |} )\n prop.onClick (fun e -> scrollToElement e visualization.ClassName) ]\n Html.span\n [ prop.text (\"charts.\" + visualization.ChartTextsGroup + \".titleMenu\")\n prop.className \"hidden\" ] ] ] ] ]\n\n Html.div\n [ Utils.classes [\n (true, \"visualization container\")\n (embedded, \"embeded\") ]\n prop.children (\n visualizations\n |> List.map (fun viz ->\n Html.section [\n prop.className [ viz.ClassName ; \"visualization-chart\" ]\n prop.id viz.ClassName\n prop.children [\n Html.div [\n prop.className \"title-chart-wrapper\"\n prop.children [\n renderChartTitle viz\n renderFaqAndShareBtn viz\n ]\n ]\n IntersectionObserver.Component.intersectionObserver\n {| targetElementId = viz.ClassName\n content = state |> viz.Renderer\n options = { IntersectionObserver.defaultOptions with rootMargin = \"100px\" }\n |}\n ] ] ) ) ]\n","namespace Elmish\nopen System\n\n[]\ntype internal RingState<'item> =\n | Writable of wx:'item array * ix:int\n | ReadWritable of rw:'item array * wix:int * rix:int\n\ntype internal RingBuffer<'item>(size) =\n let doubleSize ix (items: 'item array) =\n seq { yield! items |> Seq.skip ix\n yield! items |> Seq.take ix\n for _ in 0..items.Length do\n yield Unchecked.defaultof<'item> }\n |> Array.ofSeq\n\n let mutable state : 'item RingState =\n Writable (Array.zeroCreate (max size 10), 0)\n\n member __.Pop() =\n match state with\n | ReadWritable (items, wix, rix) ->\n let rix' = (rix + 1) % items.Length\n match rix' = wix with\n | true -> \n state <- Writable(items, wix)\n | _ ->\n state <- ReadWritable(items, wix, rix')\n Some items.[rix]\n | _ ->\n None\n\n member __.Push (item:'item) =\n match state with\n | Writable (items, ix) ->\n items.[ix] <- item\n let wix = (ix + 1) % items.Length\n state <- ReadWritable(items, wix, ix)\n | ReadWritable (items, wix, rix) ->\n items.[wix] <- item\n let wix' = (wix + 1) % items.Length\n match wix' = rix with\n | true -> \n state <- ReadWritable(items |> doubleSize rix, items.Length, 0)\n | _ -> \n state <- ReadWritable(items, wix', rix)","(**\nProgram\n---------\nCore abstractions for creating and running the dispatch loop.\n\n*)\n\nnamespace Elmish\n\n\n/// Program type captures various aspects of program behavior\ntype Program<'arg, 'model, 'msg, 'view> = private {\n init : 'arg -> 'model * Cmd<'msg>\n update : 'msg -> 'model -> 'model * Cmd<'msg>\n subscribe : 'model -> Cmd<'msg>\n view : 'model -> Dispatch<'msg> -> 'view\n setState : 'model -> Dispatch<'msg> -> unit\n onError : (string*exn) -> unit\n syncDispatch: Dispatch<'msg> -> Dispatch<'msg>\n}\n\n/// Program module - functions to manipulate program instances\n[]\n[]\nmodule Program =\n /// Typical program, new commands are produced by `init` and `update` along with the new state.\n let mkProgram \n (init : 'arg -> 'model * Cmd<'msg>) \n (update : 'msg -> 'model -> 'model * Cmd<'msg>)\n (view : 'model -> Dispatch<'msg> -> 'view) =\n { init = init\n update = update\n view = view\n setState = fun model -> view model >> ignore\n subscribe = fun _ -> Cmd.none\n onError = Log.onError\n syncDispatch = id }\n\n /// Simple program that produces only new state with `init` and `update`.\n let mkSimple \n (init : 'arg -> 'model) \n (update : 'msg -> 'model -> 'model)\n (view : 'model -> Dispatch<'msg> -> 'view) =\n { init = init >> fun state -> state,Cmd.none\n update = fun msg -> update msg >> fun state -> state,Cmd.none\n view = view\n setState = fun model -> view model >> ignore\n subscribe = fun _ -> Cmd.none\n onError = Log.onError\n syncDispatch = id }\n\n /// Subscribe to external source of events.\n /// The subscription is called once - with the initial model, but can dispatch new messages at any time.\n let withSubscription (subscribe : 'model -> Cmd<'msg>) (program: Program<'arg, 'model, 'msg, 'view>) =\n let sub model =\n Cmd.batch [ program.subscribe model\n subscribe model ]\n { program with subscribe = sub }\n\n /// Trace all the updates to the console\n let withConsoleTrace (program: Program<'arg, 'model, 'msg, 'view>) =\n let traceInit (arg:'arg) =\n let initModel,cmd = program.init arg\n Log.toConsole (\"Initial state:\", initModel)\n initModel,cmd\n\n let traceUpdate msg model =\n Log.toConsole (\"New message:\", msg)\n let newModel,cmd = program.update msg model\n Log.toConsole (\"Updated state:\", newModel)\n newModel,cmd\n\n { program with\n init = traceInit \n update = traceUpdate }\n\n /// Trace all the messages as they update the model\n let withTrace trace (program: Program<'arg, 'model, 'msg, 'view>) =\n let update msg model =\n let state,cmd = program.update msg model\n trace msg state\n state,cmd\n { program\n with update = update }\n\n /// Handle dispatch loop exceptions\n let withErrorHandler onError (program: Program<'arg, 'model, 'msg, 'view>) =\n { program\n with onError = onError }\n\n /// For library authors only: map existing error handler and return new `Program` \n let mapErrorHandler map (program: Program<'arg, 'model, 'msg, 'view>) =\n { program\n with onError = map program.onError }\n\n /// For library authors only: get the current error handler \n let onError (program: Program<'arg, 'model, 'msg, 'view>) =\n program.onError\n\n /// For library authors only: function to render the view with the latest state \n let withSetState (setState:'model -> Dispatch<'msg> -> unit)\n (program: Program<'arg, 'model, 'msg, 'view>) = \n { program\n with setState = setState }\n\n /// For library authors only: return the function to render the state \n let setState (program: Program<'arg, 'model, 'msg, 'view>) = \n program.setState\n\n /// For library authors only: return the view function \n let view (program: Program<'arg, 'model, 'msg, 'view>) = \n program.view\n\n /// For library authors only: function to synchronize the dispatch function\n let withSyncDispatch (syncDispatch:Dispatch<'msg> -> Dispatch<'msg>)\n (program: Program<'arg, 'model, 'msg, 'view>) = \n { program\n with syncDispatch = syncDispatch }\n\n /// For library authors only: map the program type\n let map mapInit mapUpdate mapView mapSetState mapSubscribe\n (program: Program<'arg, 'model, 'msg, 'view>) =\n { init = mapInit program.init\n update = mapUpdate program.update\n view = mapView program.view\n setState = mapSetState program.setState\n subscribe = mapSubscribe program.subscribe\n onError = program.onError\n syncDispatch = id }\n\n /// Start the program loop.\n /// arg: argument to pass to the init() function.\n /// program: program created with 'mkSimple' or 'mkProgram'.\n let runWith (arg: 'arg) (program: Program<'arg, 'model, 'msg, 'view>) =\n let (model,cmd) = program.init arg\n let rb = RingBuffer 10\n let mutable reentered = false\n let mutable state = model \n let rec dispatch msg = \n if reentered then\n rb.Push msg\n else\n reentered <- true\n let mutable nextMsg = Some msg\n while Option.isSome nextMsg do\n let msg = nextMsg.Value\n try\n let (model',cmd') = program.update msg state\n program.setState model' syncDispatch\n cmd' |> Cmd.exec syncDispatch\n state <- model'\n with ex ->\n program.onError (sprintf \"Unable to process the message: %A\" msg, ex)\n nextMsg <- rb.Pop()\n reentered <- false\n and syncDispatch = program.syncDispatch dispatch \n\n program.setState model syncDispatch\n let sub = \n try \n program.subscribe model \n with ex ->\n program.onError (\"Unable to subscribe:\", ex)\n Cmd.none\n sub @ cmd |> Cmd.exec syncDispatch\n\n /// Start the dispatch loop with `unit` for the init() function.\n let run (program: Program) = runWith () program\n","namespace Elmish.React\n\n[]\nmodule Helpers =\n open Fable.React.Props\n open Fable.Core.JsInterop\n\n /// `Ref` callback that sets the value of an input textbox after DOM element is created.\n /// Can be used instead of `DefaultValue` and `Value` props to override input box value.\n let inline valueOrDefault value =\n Ref <| (fun e -> if e |> isNull |> not && !!e?value <> !!value then e?value <- !!value)\n\n[]\nmodule Program =\n\n module Internal =\n\n open Fable.React\n open Browser\n open Elmish\n\n let withReactBatchedUsing lazyView2With placeholderId (program:Program<_,_,_,_>) =\n let mutable lastRequest = None\n let setState model dispatch =\n match lastRequest with\n | Some r -> window.cancelAnimationFrame r\n | _ -> ()\n\n lastRequest <- Some (window.requestAnimationFrame (fun _ ->\n ReactDom.render(\n lazyView2With (fun x y -> obj.ReferenceEquals(x,y)) (Program.view program) model dispatch,\n document.getElementById placeholderId\n )))\n\n program\n |> Program.withSetState setState\n\n let withReactSynchronousUsing lazyView2With placeholderId (program:Elmish.Program<_,_,_,_>) =\n let setState model dispatch =\n ReactDom.render(\n lazyView2With (fun x y -> obj.ReferenceEquals(x,y)) (Program.view program) model dispatch,\n document.getElementById placeholderId\n )\n\n program\n |> Program.withSetState setState\n\n let withReactHydrateUsing lazyView2With placeholderId (program:Elmish.Program<_,_,_,_>) =\n let setState model dispatch =\n ReactDom.hydrate(\n lazyView2With (fun x y -> obj.ReferenceEquals(x,y)) (Program.view program) model dispatch,\n document.getElementById placeholderId\n )\n\n program\n |> Program.withSetState setState\n\n\n /// Renders React root component inside html element identified by placeholderId.\n /// Uses `requestAnimationFrame` to batch updates to prevent drops in frame rate.\n /// NOTE: This may have unexpected effects in React controlled inputs, see https://github.com/elmish/react/issues/12\n let withReactBatched placeholderId (program:Elmish.Program<_,_,_,_>) =\n Internal.withReactBatchedUsing lazyView2With placeholderId program\n\n /// Renders React root component inside html element identified by placeholderId.\n /// New renders are triggered immediately after an update.\n let withReactSynchronous placeholderId (program:Elmish.Program<_,_,_,_>) =\n Internal.withReactSynchronousUsing lazyView2With placeholderId program\n\n []\n let withReact placeholderId (program:Elmish.Program<_,_,_,_>) =\n Internal.withReactBatchedUsing lazyView2With placeholderId program\n\n []\n let withReactUnoptimized placeholderId (program:Elmish.Program<_,_,_,_>) =\n Internal.withReactSynchronousUsing lazyView2With placeholderId program\n\n /// Renders React root component inside html element identified by placeholderId using `React.hydrate`.\n let withReactHydrate placeholderId (program:Elmish.Program<_,_,_,_>) =\n Internal.withReactHydrateUsing lazyView2With placeholderId program\n","module Main\n\nopen Elmish\nopen Elmish.React\nopen Elmish.Debug\nopen Elmish.HMR\n\nlet Visualizations\n (elementId: string,\n page: string,\n query: obj,\n apiEndpoint: string,\n visualization: string option) =\n Program.mkProgram (fun () -> App.init query visualization page apiEndpoint) App.update App.render\n #if DEBUG\n |> Program.withDebugger\n #endif\n |> Program.withReactSynchronous elementId\n |> Program.run\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=style&index=0&lang=scss&\"","// Adapted from: https://github.com/dcodeIO/long.js/blob/master/src/long.js\n// Apache License 2.0: https://github.com/dcodeIO/long.js/blob/master/LICENSE\nexport default Long;\n/**\n * wasm optimizations, to do native i64 multiplication and divide\n */\nvar wasm = null;\ntry {\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\n ])), {}).exports;\n}\ncatch (e) {\n // no wasm support :(\n}\n/**\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\n * See the from* functions below for more convenient ways of constructing Longs.\n * @exports Long\n * @class A Long class for representing a 64 bit two's-complement integer value.\n * @param {number} low The low (signed) 32 bits of the long\n * @param {number} high The high (signed) 32 bits of the long\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @constructor\n */\nexport function Long(low, high, unsigned) {\n /**\n * The low 32 bits as a signed value.\n * @type {number}\n */\n this.low = low | 0;\n /**\n * The high 32 bits as a signed value.\n * @type {number}\n */\n this.high = high | 0;\n /**\n * Whether unsigned or not.\n * @type {boolean}\n */\n this.unsigned = !!unsigned;\n}\nLong.prototype.GetHashCode = function () {\n let h1 = this.unsigned ? 1 : 0;\n h1 = ((h1 << 5) + h1) ^ this.high;\n h1 = ((h1 << 5) + h1) ^ this.low;\n return h1;\n};\nLong.prototype.Equals = function (x) { return equals(this, x); };\nLong.prototype.CompareTo = function (x) { return compare(this, x); };\nLong.prototype.toString = function (radix) { return toString(this, radix); };\nLong.prototype.toJSON = function () { return toString(this); };\n// The internal representation of a long is the two given signed, 32-bit values.\n// We use 32-bit pieces because these are the size of integers on which\n// Javascript performs bit-operations. For operations like addition and\n// multiplication, we split each number into 16 bit pieces, which can easily be\n// multiplied within Javascript's floating-point representation without overflow\n// or change in sign.\n//\n// In the algorithms below, we frequently reduce the negative case to the\n// positive case by negating the input(s) and then post-processing the result.\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\n// a positive number, it overflows back into a negative). Not handling this\n// case would often result in infinite recursion.\n//\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\n// methods on which they depend.\n/**\n * An indicator used to reliably determine if an object is a Long or not.\n * @type {boolean}\n * @const\n * @private\n */\nLong.prototype.__isLong__;\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\n/**\n * @function\n * @param {*} obj Object\n * @returns {boolean}\n * @inner\n */\nexport function isLong(obj) {\n return (obj && obj[\"__isLong__\"]) === true;\n}\n/**\n * Tests if the specified object is a Long.\n * @function\n * @param {*} obj Object\n * @returns {boolean}\n */\n// Long.isLong = isLong;\n/**\n * A cache of the Long representations of small integer values.\n * @type {!Object}\n * @inner\n */\nvar INT_CACHE = {};\n/**\n * A cache of the Long representations of small unsigned integer values.\n * @type {!Object}\n * @inner\n */\nvar UINT_CACHE = {};\n/**\n * @param {number} value\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nexport function fromInt(value, unsigned) {\n var obj, cachedObj, cache;\n if (unsigned) {\n value >>>= 0;\n if (cache = (0 <= value && value < 256)) {\n cachedObj = UINT_CACHE[value];\n if (cachedObj)\n return cachedObj;\n }\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\n if (cache)\n UINT_CACHE[value] = obj;\n return obj;\n }\n else {\n value |= 0;\n if (cache = (-128 <= value && value < 128)) {\n cachedObj = INT_CACHE[value];\n if (cachedObj)\n return cachedObj;\n }\n obj = fromBits(value, value < 0 ? -1 : 0, false);\n if (cache)\n INT_CACHE[value] = obj;\n return obj;\n }\n}\n/**\n * Returns a Long representing the given 32 bit integer value.\n * @function\n * @param {number} value The 32 bit integer in question\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\n// Long.fromInt = fromInt;\n/**\n * @param {number} value\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nexport function fromNumber(value, unsigned) {\n if (isNaN(value))\n return unsigned ? UZERO : ZERO;\n if (unsigned) {\n if (value < 0)\n return UZERO;\n if (value >= TWO_PWR_64_DBL)\n return MAX_UNSIGNED_VALUE;\n }\n else {\n if (value <= -TWO_PWR_63_DBL)\n return MIN_VALUE;\n if (value + 1 >= TWO_PWR_63_DBL)\n return MAX_VALUE;\n }\n if (value < 0)\n return negate(fromNumber(-value, unsigned));\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\n}\n/**\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\n * @function\n * @param {number} value The number in question\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\n// Long.fromNumber = fromNumber;\n/**\n * @param {number} lowBits\n * @param {number} highBits\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nexport function fromBits(lowBits, highBits, unsigned) {\n return new Long(lowBits, highBits, unsigned);\n}\n/**\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\n * assumed to use 32 bits.\n * @function\n * @param {number} lowBits The low 32 bits\n * @param {number} highBits The high 32 bits\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long} The corresponding Long value\n */\n// Long.fromBits = fromBits;\n/**\n * @function\n * @param {number} base\n * @param {number} exponent\n * @returns {number}\n * @inner\n */\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\n/**\n * @param {string} str\n * @param {(boolean|number)=} unsigned\n * @param {number=} radix\n * @returns {!Long}\n * @inner\n */\nexport function fromString(str, unsigned, radix) {\n if (str.length === 0)\n throw Error('empty string');\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\n return ZERO;\n if (typeof unsigned === 'number') {\n // For goog.math.long compatibility\n radix = unsigned,\n unsigned = false;\n }\n else {\n unsigned = !!unsigned;\n }\n radix = radix || 10;\n if (radix < 2 || 36 < radix)\n throw RangeError('radix');\n var p = str.indexOf('-');\n if (p > 0)\n throw Error('interior hyphen');\n else if (p === 0) {\n return negate(fromString(str.substring(1), unsigned, radix));\n }\n // Do several (8) digits each time through the loop, so as to\n // minimize the calls to the very expensive emulated div.\n var radixToPower = fromNumber(pow_dbl(radix, 8));\n var result = ZERO;\n for (var i = 0; i < str.length; i += 8) {\n var size = Math.min(8, str.length - i), value = parseInt(str.substring(i, i + size), radix);\n if (size < 8) {\n var power = fromNumber(pow_dbl(radix, size));\n result = add(multiply(result, power), fromNumber(value));\n }\n else {\n result = multiply(result, radixToPower);\n result = add(result, fromNumber(value));\n }\n }\n result.unsigned = unsigned;\n return result;\n}\n/**\n * Returns a Long representation of the given string, written using the specified radix.\n * @function\n * @param {string} str The textual representation of the Long\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\n * @returns {!Long} The corresponding Long value\n */\n// Long.fromString = fromString;\n/**\n * @function\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\n * @param {boolean=} unsigned\n * @returns {!Long}\n * @inner\n */\nexport function fromValue(val, unsigned) {\n if (typeof val === 'number')\n return fromNumber(val, unsigned);\n if (typeof val === 'string')\n return fromString(val, unsigned);\n // Throws for non-objects, converts non-instanceof Long:\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\n}\n/**\n * Converts the specified value to a Long using the appropriate from* function for its type.\n * @function\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {!Long}\n */\n// Long.fromValue = fromValue;\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\n// no runtime penalty for these.\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_16_DBL = 1 << 16;\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_24_DBL = 1 << 24;\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\n/**\n * @type {number}\n * @const\n * @inner\n */\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\n/**\n * @type {!Long}\n * @const\n * @inner\n */\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\n/**\n * @type {!Long}\n * @inner\n */\nexport var ZERO = fromInt(0);\n/**\n * Signed zero.\n * @type {!Long}\n */\n// Long.ZERO = ZERO;\n/**\n * @type {!Long}\n * @inner\n */\nexport var UZERO = fromInt(0, true);\n/**\n * Unsigned zero.\n * @type {!Long}\n */\n// Long.UZERO = UZERO;\n/**\n * @type {!Long}\n * @inner\n */\nexport var ONE = fromInt(1);\n/**\n * Signed one.\n * @type {!Long}\n */\n// Long.ONE = ONE;\n/**\n * @type {!Long}\n * @inner\n */\nexport var UONE = fromInt(1, true);\n/**\n * Unsigned one.\n * @type {!Long}\n */\n// Long.UONE = UONE;\n/**\n * @type {!Long}\n * @inner\n */\nexport var NEG_ONE = fromInt(-1);\n/**\n * Signed negative one.\n * @type {!Long}\n */\n// Long.NEG_ONE = NEG_ONE;\n/**\n * @type {!Long}\n * @inner\n */\nexport var MAX_VALUE = fromBits(0xFFFFFFFF | 0, 0x7FFFFFFF | 0, false);\n/**\n * Maximum signed value.\n * @type {!Long}\n */\n// Long.MAX_VALUE = MAX_VALUE;\n/**\n * @type {!Long}\n * @inner\n */\nexport var MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF | 0, 0xFFFFFFFF | 0, true);\n/**\n * Maximum unsigned value.\n * @type {!Long}\n */\n// Long.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\n/**\n * @type {!Long}\n * @inner\n */\nexport var MIN_VALUE = fromBits(0, 0x80000000 | 0, false);\n/**\n * Minimum signed value.\n * @type {!Long}\n */\n// Long.MIN_VALUE = MIN_VALUE;\n/**\n * @alias Long.prototype\n * @inner\n */\n// var LongPrototype = Long.prototype;\n/**\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\n * @this {!Long}\n * @returns {number}\n */\nexport function toInt($this) {\n return $this.unsigned ? $this.low >>> 0 : $this.low;\n}\n;\n/**\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\n * @this {!Long}\n * @returns {number}\n */\nexport function toNumber($this) {\n if ($this.unsigned)\n return (($this.high >>> 0) * TWO_PWR_32_DBL) + ($this.low >>> 0);\n return $this.high * TWO_PWR_32_DBL + ($this.low >>> 0);\n}\n;\n/**\n * Converts the Long to a string written in the specified radix.\n * @this {!Long}\n * @param {number=} radix Radix (2-36), defaults to 10\n * @returns {string}\n * @override\n * @throws {RangeError} If `radix` is out of range\n */\nexport function toString($this, radix) {\n radix = radix || 10;\n if (radix < 2 || 36 < radix)\n throw RangeError('radix');\n if (isZero($this))\n return '0';\n if (isNegative($this)) { // Unsigned Longs are never negative\n if (equals($this, MIN_VALUE)) {\n // We need to change the Long value before it can be negated, so we remove\n // the bottom-most digit in this base and then recurse to do the rest.\n var radixLong = fromNumber(radix), div = divide($this, radixLong), rem1 = subtract(multiply(div, radixLong), $this);\n return toString(div, radix) + toInt(rem1).toString(radix);\n }\n else\n return '-' + toString(negate($this), radix);\n }\n // Do several (6) digits each time through the loop, so as to\n // minimize the calls to the very expensive emulated div.\n var radixToPower = fromNumber(pow_dbl(radix, 6), $this.unsigned), rem = $this;\n var result = '';\n while (true) {\n var remDiv = divide(rem, radixToPower), intval = toInt(subtract(rem, multiply(remDiv, radixToPower))) >>> 0, digits = intval.toString(radix);\n rem = remDiv;\n if (isZero(rem))\n return digits + result;\n else {\n while (digits.length < 6)\n digits = '0' + digits;\n result = '' + digits + result;\n }\n }\n}\n;\n/**\n * Gets the high 32 bits as a signed integer.\n * @this {!Long}\n * @returns {number} Signed high bits\n */\nexport function getHighBits($this) {\n return $this.high;\n}\n;\n/**\n * Gets the high 32 bits as an unsigned integer.\n * @this {!Long}\n * @returns {number} Unsigned high bits\n */\nexport function getHighBitsUnsigned($this) {\n return $this.high >>> 0;\n}\n;\n/**\n * Gets the low 32 bits as a signed integer.\n * @this {!Long}\n * @returns {number} Signed low bits\n */\nexport function getLowBits($this) {\n return $this.low;\n}\n;\n/**\n * Gets the low 32 bits as an unsigned integer.\n * @this {!Long}\n * @returns {number} Unsigned low bits\n */\nexport function getLowBitsUnsigned($this) {\n return $this.low >>> 0;\n}\n;\n/**\n * Gets the number of bits needed to represent the absolute value of this Long.\n * @this {!Long}\n * @returns {number}\n */\nexport function getNumBitsAbs($this) {\n if (isNegative($this)) // Unsigned Longs are never negative\n return equals($this, MIN_VALUE) ? 64 : getNumBitsAbs(negate($this));\n var val = $this.high != 0 ? $this.high : $this.low;\n for (var bit = 31; bit > 0; bit--)\n if ((val & (1 << bit)) != 0)\n break;\n return $this.high != 0 ? bit + 33 : bit + 1;\n}\n;\n/**\n * Tests if this Long's value equals zero.\n * @this {!Long}\n * @returns {boolean}\n */\nexport function isZero($this) {\n return $this.high === 0 && $this.low === 0;\n}\n;\n/**\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\n * @returns {boolean}\n */\n// LongPrototype.eqz = LongPrototype.isZero;\n/**\n * Tests if this Long's value is negative.\n * @this {!Long}\n * @returns {boolean}\n */\nexport function isNegative($this) {\n return !$this.unsigned && $this.high < 0;\n}\n;\n/**\n * Tests if this Long's value is positive.\n * @this {!Long}\n * @returns {boolean}\n */\nexport function isPositive($this) {\n return $this.unsigned || $this.high >= 0;\n}\n;\n/**\n * Tests if this Long's value is odd.\n * @this {!Long}\n * @returns {boolean}\n */\nexport function isOdd($this) {\n return ($this.low & 1) === 1;\n}\n;\n/**\n * Tests if this Long's value is even.\n * @this {!Long}\n * @returns {boolean}\n */\nexport function isEven($this) {\n return ($this.low & 1) === 0;\n}\n;\n/**\n * Tests if this Long's value equals the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nexport function equals($this, other) {\n if (!isLong(other))\n other = fromValue(other);\n if ($this.unsigned !== other.unsigned && ($this.high >>> 31) === 1 && (other.high >>> 31) === 1)\n return false;\n return $this.high === other.high && $this.low === other.low;\n}\n;\n/**\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.eq = LongPrototype.equals;\n/**\n * Tests if this Long's value differs from the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nexport function notEquals($this, other) {\n return !equals($this, /* validates */ other);\n}\n;\n/**\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.neq = LongPrototype.notEquals;\n/**\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.ne = LongPrototype.notEquals;\n/**\n * Tests if this Long's value is less than the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nexport function lessThan($this, other) {\n return compare($this, /* validates */ other) < 0;\n}\n;\n/**\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.lt = LongPrototype.lessThan;\n/**\n * Tests if this Long's value is less than or equal the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nexport function lessThanOrEqual($this, other) {\n return compare($this, /* validates */ other) <= 0;\n}\n;\n/**\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.lte = LongPrototype.lessThanOrEqual;\n/**\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.le = LongPrototype.lessThanOrEqual;\n/**\n * Tests if this Long's value is greater than the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nexport function greaterThan($this, other) {\n return compare($this, /* validates */ other) > 0;\n}\n;\n/**\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.gt = LongPrototype.greaterThan;\n/**\n * Tests if this Long's value is greater than or equal the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\nexport function greaterThanOrEqual($this, other) {\n return compare($this, /* validates */ other) >= 0;\n}\n;\n/**\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.gte = LongPrototype.greaterThanOrEqual;\n/**\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {boolean}\n */\n// LongPrototype.ge = LongPrototype.greaterThanOrEqual;\n/**\n * Compares this Long's value with the specified's.\n * @this {!Long}\n * @param {!Long|number|string} other Other value\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\n * if the given one is greater\n */\nexport function compare($this, other) {\n if (!isLong(other))\n other = fromValue(other);\n if (equals($this, other))\n return 0;\n var thisNeg = isNegative($this), otherNeg = isNegative(other);\n if (thisNeg && !otherNeg)\n return -1;\n if (!thisNeg && otherNeg)\n return 1;\n // At this point the sign bits are the same\n if (!$this.unsigned)\n return isNegative(subtract($this, other)) ? -1 : 1;\n // Both are positive if at least one is unsigned\n return (other.high >>> 0) > ($this.high >>> 0) || (other.high === $this.high && (other.low >>> 0) > ($this.low >>> 0)) ? -1 : 1;\n}\n;\n/**\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\n * @function\n * @param {!Long|number|string} other Other value\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\n * if the given one is greater\n */\n// LongPrototype.comp = LongPrototype.compare;\n/**\n * Negates this Long's value.\n * @this {!Long}\n * @returns {!Long} Negated Long\n */\nexport function negate($this) {\n if (!$this.unsigned && equals($this, MIN_VALUE))\n return MIN_VALUE;\n return add(not($this), ONE);\n}\n;\n/**\n * Negates this Long's value. This is an alias of {@link Long#negate}.\n * @function\n * @returns {!Long} Negated Long\n */\n// LongPrototype.neg = LongPrototype.negate;\n/**\n * Returns the sum of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|string} addend Addend\n * @returns {!Long} Sum\n */\nexport function add($this, addend) {\n if (!isLong(addend))\n addend = fromValue(addend);\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\n var a48 = $this.high >>> 16;\n var a32 = $this.high & 0xFFFF;\n var a16 = $this.low >>> 16;\n var a00 = $this.low & 0xFFFF;\n var b48 = addend.high >>> 16;\n var b32 = addend.high & 0xFFFF;\n var b16 = addend.low >>> 16;\n var b00 = addend.low & 0xFFFF;\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\n c00 += a00 + b00;\n c16 += c00 >>> 16;\n c00 &= 0xFFFF;\n c16 += a16 + b16;\n c32 += c16 >>> 16;\n c16 &= 0xFFFF;\n c32 += a32 + b32;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c48 += a48 + b48;\n c48 &= 0xFFFF;\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, $this.unsigned);\n}\n;\n/**\n * Returns the difference of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|string} subtrahend Subtrahend\n * @returns {!Long} Difference\n */\nexport function subtract($this, subtrahend) {\n if (!isLong(subtrahend))\n subtrahend = fromValue(subtrahend);\n return add($this, negate(subtrahend));\n}\n;\n/**\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\n * @function\n * @param {!Long|number|string} subtrahend Subtrahend\n * @returns {!Long} Difference\n */\n// LongPrototype.sub = LongPrototype.subtract;\n/**\n * Returns the product of this and the specified Long.\n * @this {!Long}\n * @param {!Long|number|string} multiplier Multiplier\n * @returns {!Long} Product\n */\nexport function multiply($this, multiplier) {\n if (isZero($this))\n return $this.unsigned ? UZERO : ZERO;\n if (!isLong(multiplier))\n multiplier = fromValue(multiplier);\n // use wasm support if present\n if (wasm) {\n var low = wasm.mul($this.low, $this.high, multiplier.low, multiplier.high);\n return fromBits(low, wasm.get_high(), $this.unsigned);\n }\n if (isZero(multiplier))\n return $this.unsigned ? UZERO : ZERO;\n if (equals($this, MIN_VALUE))\n return isOdd(multiplier) ? MIN_VALUE : ZERO;\n if (equals(multiplier, MIN_VALUE))\n return isOdd($this) ? MIN_VALUE : ZERO;\n if (isNegative($this)) {\n if (isNegative(multiplier))\n return multiply(negate($this), negate(multiplier));\n else\n return negate(multiply(negate($this), multiplier));\n }\n else if (isNegative(multiplier))\n return negate(multiply($this, negate(multiplier)));\n // If both longs are small, use float multiplication\n if (lessThan($this, TWO_PWR_24) && lessThan(multiplier, TWO_PWR_24))\n return fromNumber(toNumber($this) * toNumber(multiplier), $this.unsigned);\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\n // We can skip products that would overflow.\n var a48 = $this.high >>> 16;\n var a32 = $this.high & 0xFFFF;\n var a16 = $this.low >>> 16;\n var a00 = $this.low & 0xFFFF;\n var b48 = multiplier.high >>> 16;\n var b32 = multiplier.high & 0xFFFF;\n var b16 = multiplier.low >>> 16;\n var b00 = multiplier.low & 0xFFFF;\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\n c00 += a00 * b00;\n c16 += c00 >>> 16;\n c00 &= 0xFFFF;\n c16 += a16 * b00;\n c32 += c16 >>> 16;\n c16 &= 0xFFFF;\n c16 += a00 * b16;\n c32 += c16 >>> 16;\n c16 &= 0xFFFF;\n c32 += a32 * b00;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c32 += a16 * b16;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c32 += a00 * b32;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\n c48 &= 0xFFFF;\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, $this.unsigned);\n}\n;\n/**\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\n * @function\n * @param {!Long|number|string} multiplier Multiplier\n * @returns {!Long} Product\n */\n// LongPrototype.mul = LongPrototype.multiply;\n/**\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\n * unsigned if this Long is unsigned.\n * @this {!Long}\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Quotient\n */\nexport function divide($this, divisor) {\n if (!isLong(divisor))\n divisor = fromValue(divisor);\n if (isZero(divisor))\n throw Error('division by zero');\n // use wasm support if present\n if (wasm) {\n // guard against signed division overflow: the largest\n // negative number / -1 would be 1 larger than the largest\n // positive number, due to two's complement.\n if (!$this.unsigned &&\n $this.high === -0x80000000 &&\n divisor.low === -1 && divisor.high === -1) {\n // be consistent with non-wasm code path\n return $this;\n }\n var low = ($this.unsigned ? wasm.div_u : wasm.div_s)($this.low, $this.high, divisor.low, divisor.high);\n return fromBits(low, wasm.get_high(), $this.unsigned);\n }\n if (isZero($this))\n return $this.unsigned ? UZERO : ZERO;\n var approx, rem, res;\n if (!$this.unsigned) {\n // This section is only relevant for signed longs and is derived from the\n // closure library as a whole.\n if (equals($this, MIN_VALUE)) {\n if (equals(divisor, ONE) || equals(divisor, NEG_ONE))\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\n else if (equals(divisor, MIN_VALUE))\n return ONE;\n else {\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\n var halfThis = shiftRight($this, 1);\n approx = shiftLeft(divide(halfThis, divisor), 1);\n if (equals(approx, ZERO)) {\n return isNegative(divisor) ? ONE : NEG_ONE;\n }\n else {\n rem = subtract($this, multiply(divisor, approx));\n res = add(approx, divide(rem, divisor));\n return res;\n }\n }\n }\n else if (equals(divisor, MIN_VALUE))\n return $this.unsigned ? UZERO : ZERO;\n if (isNegative($this)) {\n if (isNegative(divisor))\n return divide(negate($this), negate(divisor));\n return negate(divide(negate($this), divisor));\n }\n else if (isNegative(divisor))\n return negate(divide($this, negate(divisor)));\n res = ZERO;\n }\n else {\n // The algorithm below has not been made for unsigned longs. It's therefore\n // required to take special care of the MSB prior to running it.\n if (!divisor.unsigned)\n divisor = toUnsigned(divisor);\n if (greaterThan(divisor, $this))\n return UZERO;\n if (greaterThan(divisor, shiftRightUnsigned($this, 1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\n return UONE;\n res = UZERO;\n }\n // Repeat the following until the remainder is less than other: find a\n // floating-point that approximates remainder / other *from below*, add this\n // into the result, and subtract it from the remainder. It is critical that\n // the approximate value is less than or equal to the real value so that the\n // remainder never becomes negative.\n rem = $this;\n while (greaterThanOrEqual(rem, divisor)) {\n // Approximate the result of division. This may be a little greater or\n // smaller than the actual value.\n approx = Math.max(1, Math.floor(toNumber(rem) / toNumber(divisor)));\n // We will tweak the approximate result by changing it in the 48-th digit or\n // the smallest non-fractional digit, whichever is larger.\n var log2 = Math.ceil(Math.log(approx) / Math.LN2), delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48), \n // Decrease the approximation until it is smaller than the remainder. Note\n // that if it is too large, the product overflows and is negative.\n approxRes = fromNumber(approx), approxRem = multiply(approxRes, divisor);\n while (isNegative(approxRem) || greaterThan(approxRem, rem)) {\n approx -= delta;\n approxRes = fromNumber(approx, $this.unsigned);\n approxRem = multiply(approxRes, divisor);\n }\n // We know the answer can't be zero... and actually, zero would cause\n // infinite recursion since we would make no progress.\n if (isZero(approxRes))\n approxRes = ONE;\n res = add(res, approxRes);\n rem = subtract(rem, approxRem);\n }\n return res;\n}\n;\n/**\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\n * @function\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Quotient\n */\n// LongPrototype.div = LongPrototype.divide;\n/**\n * Returns this Long modulo the specified.\n * @this {!Long}\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Remainder\n */\nexport function modulo($this, divisor) {\n if (!isLong(divisor))\n divisor = fromValue(divisor);\n // use wasm support if present\n if (wasm) {\n var low = ($this.unsigned ? wasm.rem_u : wasm.rem_s)($this.low, $this.high, divisor.low, divisor.high);\n return fromBits(low, wasm.get_high(), $this.unsigned);\n }\n return subtract($this, multiply(divide($this, divisor), divisor));\n}\n;\n/**\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\n * @function\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Remainder\n */\n// LongPrototype.mod = LongPrototype.modulo;\n/**\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\n * @function\n * @param {!Long|number|string} divisor Divisor\n * @returns {!Long} Remainder\n */\n// LongPrototype.rem = LongPrototype.modulo;\n/**\n * Returns the bitwise NOT of this Long.\n * @this {!Long}\n * @returns {!Long}\n */\nexport function not($this) {\n return fromBits(~$this.low, ~$this.high, $this.unsigned);\n}\n;\n/**\n * Returns the bitwise AND of this Long and the specified.\n * @this {!Long}\n * @param {!Long|number|string} other Other Long\n * @returns {!Long}\n */\nexport function and($this, other) {\n if (!isLong(other))\n other = fromValue(other);\n return fromBits($this.low & other.low, $this.high & other.high, $this.unsigned);\n}\n;\n/**\n * Returns the bitwise OR of this Long and the specified.\n * @this {!Long}\n * @param {!Long|number|string} other Other Long\n * @returns {!Long}\n */\nexport function or($this, other) {\n if (!isLong(other))\n other = fromValue(other);\n return fromBits($this.low | other.low, $this.high | other.high, $this.unsigned);\n}\n;\n/**\n * Returns the bitwise XOR of this Long and the given one.\n * @this {!Long}\n * @param {!Long|number|string} other Other Long\n * @returns {!Long}\n */\nexport function xor($this, other) {\n if (!isLong(other))\n other = fromValue(other);\n return fromBits($this.low ^ other.low, $this.high ^ other.high, $this.unsigned);\n}\n;\n/**\n * Returns this Long with bits shifted to the left by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nexport function shiftLeft($this, numBits) {\n if (isLong(numBits))\n numBits = toInt(numBits);\n if ((numBits &= 63) === 0)\n return $this;\n else if (numBits < 32)\n return fromBits($this.low << numBits, ($this.high << numBits) | ($this.low >>> (32 - numBits)), $this.unsigned);\n else\n return fromBits(0, $this.low << (numBits - 32), $this.unsigned);\n}\n;\n/**\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\n// LongPrototype.shl = LongPrototype.shiftLeft;\n/**\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nexport function shiftRight($this, numBits) {\n if (isLong(numBits))\n numBits = toInt(numBits);\n if ((numBits &= 63) === 0)\n return $this;\n else if (numBits < 32)\n return fromBits(($this.low >>> numBits) | ($this.high << (32 - numBits)), $this.high >> numBits, $this.unsigned);\n else\n return fromBits($this.high >> (numBits - 32), $this.high >= 0 ? 0 : -1, $this.unsigned);\n}\n;\n/**\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\n// LongPrototype.shr = LongPrototype.shiftRight;\n/**\n * Returns this Long with bits logically shifted to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\nexport function shiftRightUnsigned($this, numBits) {\n if (isLong(numBits))\n numBits = toInt(numBits);\n numBits &= 63;\n if (numBits === 0)\n return $this;\n else {\n var high = $this.high;\n if (numBits < 32) {\n var low = $this.low;\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, $this.unsigned);\n }\n else if (numBits === 32)\n return fromBits(high, 0, $this.unsigned);\n else\n return fromBits(high >>> (numBits - 32), 0, $this.unsigned);\n }\n}\n;\n/**\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\n// LongPrototype.shru = LongPrototype.shiftRightUnsigned;\n/**\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Shifted Long\n */\n// LongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\n/**\n * Returns this Long with bits rotated to the left by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nexport const rotateLeft = function rotateLeft(numBits) {\n var b;\n if (isLong(numBits))\n numBits = numBits.toInt();\n if ((numBits &= 63) === 0)\n return this;\n if (numBits === 32)\n return fromBits(this.high, this.low, this.unsigned);\n if (numBits < 32) {\n b = (32 - numBits);\n return fromBits(((this.low << numBits) | (this.high >>> b)), ((this.high << numBits) | (this.low >>> b)), this.unsigned);\n }\n numBits -= 32;\n b = (32 - numBits);\n return fromBits(((this.high << numBits) | (this.low >>> b)), ((this.low << numBits) | (this.high >>> b)), this.unsigned);\n};\n/**\n * Returns this Long with bits rotated to the left by the given amount. This is an alias of {@link Long#rotateLeft}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\n// LongPrototype.rotl = LongPrototype.rotateLeft;\n/**\n * Returns this Long with bits rotated to the right by the given amount.\n * @this {!Long}\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\nexport const rotateRight = function rotateRight(numBits) {\n var b;\n if (isLong(numBits))\n numBits = numBits.toInt();\n if ((numBits &= 63) === 0)\n return this;\n if (numBits === 32)\n return fromBits(this.high, this.low, this.unsigned);\n if (numBits < 32) {\n b = (32 - numBits);\n return fromBits(((this.high << b) | (this.low >>> numBits)), ((this.low << b) | (this.high >>> numBits)), this.unsigned);\n }\n numBits -= 32;\n b = (32 - numBits);\n return fromBits(((this.low << b) | (this.high >>> numBits)), ((this.high << b) | (this.low >>> numBits)), this.unsigned);\n};\n/**\n * Returns this Long with bits rotated to the right by the given amount. This is an alias of {@link Long#rotateRight}.\n * @function\n * @param {number|!Long} numBits Number of bits\n * @returns {!Long} Rotated Long\n */\n// LongPrototype.rotr = LongPrototype.rotateRight;\n/**\n * Converts this Long to signed.\n * @this {!Long}\n * @returns {!Long} Signed long\n */\nexport function toSigned($this) {\n if (!$this.unsigned)\n return $this;\n return fromBits($this.low, $this.high, false);\n}\n;\n/**\n * Converts this Long to unsigned.\n * @this {!Long}\n * @returns {!Long} Unsigned long\n */\nexport function toUnsigned($this) {\n if ($this.unsigned)\n return $this;\n return fromBits($this.low, $this.high, true);\n}\n;\n/**\n * Converts this Long to its byte representation.\n * @param {boolean=} le Whether little or big endian, defaults to big endian\n * @this {!Long}\n * @returns {!Array.} Byte representation\n */\nexport function toBytes($this, le) {\n return le ? toBytesLE($this) : toBytesBE($this);\n}\n;\n/**\n * Converts this Long to its little endian byte representation.\n * @this {!Long}\n * @returns {!Array.} Little endian byte representation\n */\nexport function toBytesLE($this) {\n var hi = $this.high, lo = $this.low;\n return [\n lo & 0xff,\n lo >>> 8 & 0xff,\n lo >>> 16 & 0xff,\n lo >>> 24,\n hi & 0xff,\n hi >>> 8 & 0xff,\n hi >>> 16 & 0xff,\n hi >>> 24\n ];\n}\n;\n/**\n * Converts this Long to its big endian byte representation.\n * @this {!Long}\n * @returns {!Array.} Big endian byte representation\n */\nexport function toBytesBE($this) {\n var hi = $this.high, lo = $this.low;\n return [\n hi >>> 24,\n hi >>> 16 & 0xff,\n hi >>> 8 & 0xff,\n hi & 0xff,\n lo >>> 24,\n lo >>> 16 & 0xff,\n lo >>> 8 & 0xff,\n lo & 0xff\n ];\n}\n;\n/**\n * Creates a Long from its byte representation.\n * @param {!Array.} bytes Byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @param {boolean=} le Whether little or big endian, defaults to big endian\n * @returns {Long} The corresponding Long value\n */\nexport function fromBytes(bytes, unsigned, le) {\n return le ? fromBytesLE(bytes, unsigned) : fromBytesBE(bytes, unsigned);\n}\n;\n/**\n * Creates a Long from its little endian byte representation.\n * @param {!Array.} bytes Little endian byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {Long} The corresponding Long value\n */\nexport function fromBytesLE(bytes, unsigned) {\n return new Long(bytes[0] |\n bytes[1] << 8 |\n bytes[2] << 16 |\n bytes[3] << 24, bytes[4] |\n bytes[5] << 8 |\n bytes[6] << 16 |\n bytes[7] << 24, unsigned);\n}\n;\n/**\n * Creates a Long from its big endian byte representation.\n * @param {!Array.} bytes Big endian byte representation\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\n * @returns {Long} The corresponding Long value\n */\nexport function fromBytesBE(bytes, unsigned) {\n return new Long(bytes[4] << 24 |\n bytes[5] << 16 |\n bytes[6] << 8 |\n bytes[7], bytes[0] << 24 |\n bytes[1] << 16 |\n bytes[2] << 8 |\n bytes[3], unsigned);\n}\n;\n//# sourceMappingURL=long.js.map","import { isValid } from \"./Int32\";\nimport * as LongLib from \"./lib/long\";\nexport default LongLib.Long;\nexport const get_Zero = LongLib.ZERO;\nexport const get_One = LongLib.ONE;\nexport const op_Addition = LongLib.add;\nexport const op_Subtraction = LongLib.subtract;\nexport const op_Multiply = LongLib.multiply;\nexport const op_Division = LongLib.divide;\nexport const op_Modulus = LongLib.modulo;\nexport const op_UnaryNegation = LongLib.negate;\nexport const op_LeftShift = LongLib.shiftLeft;\nexport const op_RightShift = LongLib.shiftRight;\nexport const op_RightShiftUnsigned = LongLib.shiftRightUnsigned;\nexport const op_BitwiseAnd = LongLib.and;\nexport const op_BitwiseOr = LongLib.or;\nexport const op_ExclusiveOr = LongLib.xor;\nexport const op_LogicalNot = LongLib.not;\nexport const op_LessThan = LongLib.lessThan;\nexport const op_LessThanOrEqual = LongLib.lessThanOrEqual;\nexport const op_GreaterThan = LongLib.greaterThan;\nexport const op_GreaterThanOrEqual = LongLib.greaterThanOrEqual;\nexport const op_Equality = LongLib.equals;\nexport const op_Inequality = LongLib.notEquals;\nexport const equals = LongLib.equals;\nexport const compare = LongLib.compare;\nexport const fromInt = LongLib.fromInt;\nexport const fromBits = LongLib.fromBits;\nexport const fromBytes = LongLib.fromBytes;\nexport const fromNumber = LongLib.fromNumber;\nexport const fromString = LongLib.fromString;\nexport const fromValue = LongLib.fromValue;\nexport const toInt = LongLib.toInt;\nexport const toBytes = LongLib.toBytes;\nexport const toNumber = LongLib.toNumber;\nexport const toString = LongLib.toString;\nexport const getLowBits = LongLib.getLowBits;\nexport const getHighBits = LongLib.getHighBits;\nexport const getLowBitsUnsigned = LongLib.getLowBitsUnsigned;\nexport const getHighBitsUnsigned = LongLib.getHighBitsUnsigned;\nfunction getMaxValue(unsigned, radix, isNegative) {\n switch (radix) {\n case 2: return unsigned ?\n \"1111111111111111111111111111111111111111111111111111111111111111\" :\n (isNegative ? \"1000000000000000000000000000000000000000000000000000000000000000\"\n : \"111111111111111111111111111111111111111111111111111111111111111\");\n case 8: return unsigned ?\n \"1777777777777777777777\" :\n (isNegative ? \"1000000000000000000000\" : \"777777777777777777777\");\n case 10: return unsigned ?\n \"18446744073709551615\" :\n (isNegative ? \"9223372036854775808\" : \"9223372036854775807\");\n case 16: return unsigned ?\n \"FFFFFFFFFFFFFFFF\" :\n (isNegative ? \"8000000000000000\" : \"7FFFFFFFFFFFFFFF\");\n default: throw new Error(\"Invalid radix.\");\n }\n}\nexport function abs(x) {\n if (!x.unsigned && LongLib.isNegative(x)) {\n return op_UnaryNegation(x);\n }\n else {\n return x;\n }\n}\nexport function fromInteger(value, unsigned, kind) {\n let x = value;\n let xh = 0;\n switch (kind) {\n case 0:\n x = value << 24 >> 24;\n xh = x;\n break;\n case 4:\n x = value << 24 >>> 24;\n break;\n case 1:\n x = value << 16 >> 16;\n xh = x;\n break;\n case 5:\n x = value << 16 >>> 16;\n break;\n case 2:\n x = value >> 0;\n xh = x;\n break;\n case 6:\n x = value >>> 0;\n break;\n }\n return LongLib.fromBits(x, xh >> 31, unsigned);\n}\nexport function parse(str, style, unsigned, _bitsize, radix) {\n const res = isValid(str, style, radix);\n if (res != null) {\n const lessOrEqual = (x, y) => {\n const len = Math.max(x.length, y.length);\n return x.padStart(len, \"0\") <= y.padStart(len, \"0\");\n };\n const isNegative = res.sign === \"-\";\n const maxValue = getMaxValue(unsigned || res.radix !== 10, res.radix, isNegative);\n if (lessOrEqual(res.digits.toUpperCase(), maxValue)) {\n str = isNegative ? res.sign + res.digits : res.digits;\n return LongLib.fromString(str, unsigned, res.radix);\n }\n }\n throw new Error(\"Input string was not in a correct format.\");\n}\nexport function tryParse(str, style, unsigned, bitsize) {\n try {\n const v = parse(str, style, unsigned, bitsize);\n return [true, v];\n }\n catch (_a) {\n // supress error\n }\n return [false, LongLib.ZERO];\n}\nexport function unixEpochMillisecondsToTicks(ms, offset) {\n return op_Multiply(op_Addition(op_Addition(LongLib.fromNumber(ms), 62135596800000), offset), 10000);\n}\nexport function ticksToUnixEpochMilliseconds(ticks) {\n return LongLib.toNumber(op_Subtraction(op_Division(ticks, 10000), 62135596800000));\n}\nexport function makeRangeStepFunction(step, last, unsigned) {\n const stepComparedWithZero = LongLib.compare(step, unsigned ? LongLib.UZERO : LongLib.ZERO);\n if (stepComparedWithZero === 0) {\n throw new Error(\"The step of a range cannot be zero\");\n }\n const stepGreaterThanZero = stepComparedWithZero > 0;\n return (x) => {\n const comparedWithLast = LongLib.compare(x, last);\n if ((stepGreaterThanZero && comparedWithLast <= 0)\n || (!stepGreaterThanZero && comparedWithLast >= 0)) {\n return [x, op_Addition(x, step)];\n }\n else {\n return undefined;\n }\n };\n}\n//# sourceMappingURL=Long.js.map","namespace Fable.SimpleJson\r\n\r\nopen System\r\nopen Fable.Core\r\nopen FSharp.Reflection\r\nopen System.Numerics\r\nopen System.Collections\r\nopen System.Collections.Generic\r\n\r\nmodule Node =\r\n\r\n []\r\n /// Converts Base64 string into a byte array in Node environment\r\n let bytesFromBase64 (value: string) : byte array = jsNative\r\n\r\nmodule Convert =\r\n []\r\n let internal isBrowser : unit -> bool = jsNative\r\n\r\n let insideBrowser = isBrowser()\r\n\r\n []\r\n let internal insideWorker : bool = jsNative\r\n\r\n []\r\n let internal setProp o k v = jsNative\r\n\r\n type InternalMap =\r\n | MapEmpty\r\n | MapOne of string * Json\r\n | MapNode of string * Json * InternalMap * InternalMap\r\n\r\n let rec flattenMap = function\r\n | MapEmpty -> [ ]\r\n | MapOne (key, value) -> [ key, value ]\r\n | MapNode (key, value, left, right) ->\r\n [ yield! flattenMap left\r\n yield! flattenMap right\r\n yield (key, value) ]\r\n\r\n let (|KeyValue|_|) key (map: Map) =\r\n map\r\n |> Map.tryFind key\r\n |> Option.map (fun value -> key, value, Map.remove key map)\r\n\r\n let (|NonArray|_|) = function\r\n | JArray _ -> None\r\n | json -> Some json\r\n\r\n let (|MapEmpty|_|) json =\r\n match json with\r\n | JString \"MapEmpty\" -> Some json\r\n | _ -> None\r\n\r\n let (|MapKey|_|) = function\r\n | JNumber number -> Some (string number)\r\n | JString key -> Some key\r\n | _ -> None\r\n\r\n let (|MapOne|_|) = function\r\n | JArray [ JString \"MapOne\"; MapKey key; value ] -> Some (key, value)\r\n | _ -> None\r\n\r\n let (|MapNode|_|) = function\r\n | JArray [ JString \"MapNode\"; MapKey key; value; left; right; JNumber _ ] ->\r\n Some (key, value, left, right)\r\n | _ -> None\r\n\r\n let rec generateMap json =\r\n match json with\r\n | MapEmpty _ -> Some InternalMap.MapEmpty\r\n | MapOne (key, value) -> Some (InternalMap.MapOne (key, value))\r\n | MapNode (key, value, left, right) ->\r\n match generateMap left, generateMap right with\r\n | Some leftMap, Some rightMap ->\r\n Some (InternalMap.MapNode(key, value, leftMap, rightMap))\r\n | _ -> None\r\n | _ -> None\r\n\r\n let arrayLike = function\r\n | TypeInfo.Array _ -> true\r\n | TypeInfo.List _ -> true\r\n | TypeInfo.Seq _ -> true\r\n | TypeInfo.Tuple _ -> true\r\n | TypeInfo.Set _ -> true\r\n | _ -> false\r\n\r\n let isRecord = function\r\n | TypeInfo.Record recordType -> true\r\n | _ -> false\r\n\r\n let unionOfRecords = function\r\n | TypeInfo.Union getCases ->\r\n let (unionCases, unionType) = getCases()\r\n unionCases\r\n |> Seq.forall (fun case -> case.CaseTypes.Length = 1 && isRecord case.CaseTypes.[0])\r\n | _ ->\r\n false\r\n\r\n let optional = function\r\n | TypeInfo.Option _ -> true\r\n | _ -> false\r\n\r\n let isQuoted (input: string) =\r\n input.StartsWith \"\\\"\" && input.EndsWith \"\\\"\"\r\n\r\n let removeQuotes (input: string) =\r\n input.Substring(1, input.Length - 2)\r\n\r\n let rec fromJsonAs (input: Json) (typeInfo: Fable.SimpleJson.TypeInfo) : obj =\r\n match input, typeInfo with\r\n | JNumber value, TypeInfo.Float -> unbox value\r\n | JNumber value, TypeInfo.Float32 -> unbox (float32 value)\r\n | JString value, TypeInfo.Float32 -> unbox (float32 value)\r\n // reading number as int -> floor it\r\n | JNumber value, TypeInfo.Int32 -> unbox (JS.Math.floor(value))\r\n | JBool value, TypeInfo.Bool -> unbox value\r\n // reading int from string -> parse it\r\n | JString value, TypeInfo.Int32 -> unbox (int value)\r\n // reading into strings\r\n | JString value, TypeInfo.String -> unbox value\r\n | JNumber value, TypeInfo.String -> unbox (string value)\r\n // decimals\r\n | JString value, TypeInfo.Decimal -> unbox (decimal value)\r\n | JNumber value, TypeInfo.Decimal -> unbox (decimal value)\r\n | JString value, TypeInfo.Short -> unbox (int16 value)\r\n | JNumber value, TypeInfo.Short -> unbox (int16 value)\r\n // Unsigned integers\r\n | JNumber value, TypeInfo.UInt16 -> unbox (uint16 value)\r\n | JString value, TypeInfo.UInt16 -> unbox (uint16 value)\r\n | JNumber value, TypeInfo.UInt32 -> unbox (uint32 value)\r\n | JString value, TypeInfo.UInt32 -> unbox (uint32 value)\r\n | JNumber value, TypeInfo.UInt64 -> unbox (uint64 value)\r\n | JString value, TypeInfo.UInt64 -> unbox (uint64 value)\r\n | JNumber value, TypeInfo.TimeSpan -> unbox (JS.Math.floor value)\r\n | JString value, TypeInfo.Enum getlElemType ->\r\n let (underlyingType, originalType) = getlElemType()\r\n match underlyingType with\r\n | TypeInfo.Int32 ->\r\n match Int32.TryParse(value) with\r\n | true, parsedNumber ->\r\n unbox parsedNumber\r\n | false, _ ->\r\n failwithf \"The value '%s' is not valid for enum of type '%s'\" value originalType.Name\r\n | TypeInfo.Long ->\r\n match Int64.TryParse(value) with\r\n | true, parsedNumber ->\r\n unbox parsedNumber\r\n | false, _ ->\r\n failwithf \"The value '%s' is not valid for enum of type '%s'\" value originalType.Name\r\n | other ->\r\n failwithf \"The value '%s' cannot be converted to enum of type '%s'\" value originalType.Name\r\n | JNumber value, TypeInfo.Enum getElemType ->\r\n let (_, originalType) = getElemType()\r\n unbox value\r\n // byte[] coming from the server is serialized as base64 string\r\n // convert it back to the actual byte array\r\n | JString value, TypeInfo.Array getElemType ->\r\n let elemType = getElemType()\r\n match elemType with\r\n | TypeInfo.Byte ->\r\n if insideWorker || insideBrowser\r\n then unbox (Convert.FromBase64String value)\r\n else unbox (Node.bytesFromBase64 value)\r\n | otherType -> failwithf \"Cannot convert arbitrary string '%s' to %A\" value otherType\r\n\r\n // null values for strings are just the null string\r\n | JNull, TypeInfo.String -> unbox null\r\n | JNull, TypeInfo.Unit -> unbox ()\r\n // int64 as string -> parse it\r\n | JString value, TypeInfo.Long -> unbox (int64 value)\r\n | JString value, TypeInfo.Byte -> unbox (byte value)\r\n | JNumber value, TypeInfo.Byte -> unbox (byte value)\r\n // BigInt as string -> parse it\r\n | JString value, TypeInfo.BigInt -> unbox (BigInteger.Parse value)\r\n | JNumber value, TypeInfo.BigInt -> unbox (bigint (JS.Math.floor(value)))\r\n // parse formatted date time\r\n | JString value, TypeInfo.DateTime -> unbox (DateTime.Parse(value))\r\n // parse formatted date time offset\r\n | JString value, TypeInfo.DateTimeOffset -> unbox (DateTimeOffset.Parse(value))\r\n // deserialize union from objects\r\n // { \"One\": 20 } or {\"One\": [20]} -> One of int\r\n | JObject values, TypeInfo.Union (getTypes) ->\r\n let (cases, unionType) = getTypes()\r\n match Map.toList values with\r\n | [ caseName, JArray values ] ->\r\n cases\r\n |> Array.tryFind (fun case -> case.CaseName = caseName)\r\n |> function\r\n | None ->\r\n let caseNames = Array.map (fun case -> sprintf \" '%s' \" case.CaseName) cases\r\n let expectedCases = String.concat \", \" caseNames\r\n failwithf \"Case %s was not valid for type '%s', expected one of the cases [%s]\" caseName unionType.Name expectedCases\r\n | Some foundCase when Array.length foundCase.CaseTypes = 1 && arrayLike foundCase.CaseTypes.[0] ->\r\n let deserialized = fromJsonAs (JArray values) foundCase.CaseTypes.[0]\r\n FSharpValue.MakeUnion(foundCase.Info, [| deserialized |])\r\n |> unbox\r\n | Some foundCase when Array.length foundCase.CaseTypes = 1 && optional foundCase.CaseTypes.[0] ->\r\n let parsedOptional = unbox (fromJsonAs (JArray values) foundCase.CaseTypes.[0])\r\n FSharpValue.MakeUnion(foundCase.Info, [| parsedOptional |])\r\n |> unbox\r\n | Some foundCase ->\r\n if Array.length foundCase.CaseTypes = 1\r\n && not (arrayLike foundCase.CaseTypes.[0])\r\n && Array.length foundCase.CaseTypes <> List.length values\r\n then failwithf \"Expected case '%s' to have %d argument types but the JSON data only contained %d values\" foundCase.CaseName (Array.length foundCase.CaseTypes) (List.length values)\r\n let parsedValues =\r\n Array.ofList values\r\n |> Array.zip foundCase.CaseTypes\r\n |> Array.map (fun (valueType, value) -> fromJsonAs value valueType)\r\n FSharpValue.MakeUnion(foundCase.Info, parsedValues)\r\n |> unbox\r\n | [ caseName, NonArray json ] ->\r\n cases\r\n |> Array.tryFind (fun case -> case.CaseName = caseName)\r\n |> function\r\n | Some ({ CaseName = caseName; Info = caseInfo; CaseTypes = [| caseType |] }) ->\r\n FSharpValue.MakeUnion(caseInfo, [| unbox fromJsonAs json caseType |])\r\n |> unbox\r\n | _ ->\r\n let caseNames = Array.map (fun case -> sprintf \" '%s' \" case.CaseName) cases\r\n let expectedCases = String.concat \", \" caseNames\r\n failwithf \"Case %s was not valid for type '%s', expected one of the cases [%s]\" caseName unionType.Name expectedCases\r\n | otherwise when unionOfRecords typeInfo ->\r\n let discriminators = [\"__typename\"; \"$typename\"; \"$type\" ]\r\n let foundDiscriminatorKey =\r\n discriminators\r\n |> List.tryFind (fun keyword -> Map.containsKey keyword values)\r\n\r\n match foundDiscriminatorKey with\r\n | None ->\r\n failwithf \"Could not serialize the JSON object into the union of records of type %s because the JSON did not contain a known discriminator. Expected '__typename', '$typeName' or '$type'\" unionType.Name\r\n | Some discriminatorKey ->\r\n let discriminatorValueJson = Map.find discriminatorKey values\r\n match discriminatorValueJson with\r\n | JString discriminatorValue ->\r\n let foundUnionCase =\r\n cases\r\n |> Seq.tryFind (fun case -> case.CaseName.ToUpperInvariant() = discriminatorValue.ToUpperInvariant())\r\n\r\n match foundUnionCase with\r\n | None ->\r\n failwithf \"Union of records of type '%s' does not have a matching case '%s'\" unionType.Name discriminatorValue\r\n | Some case ->\r\n // Assuming the case types is [recordType]\r\n // one element of types and the first element is a record\r\n // as satisfied by the unionOfRecords function\r\n let record = unbox (fromJsonAs (JObject values) (case.CaseTypes.[0]))\r\n FSharpValue.MakeUnion(case.Info, [| record |])\r\n | otherwise ->\r\n failwithf \"Union of records of type '%s' cannot be deserialized with the value of the discriminator key is not a string to match against a specific union case\" unionType.Name\r\n | otherwise ->\r\n // TODO!!! Better error messages here\r\n let unexpectedJson = JS.JSON.stringify otherwise\r\n let expectedType = JS.JSON.stringify cases\r\n failwithf \"Expected JSON:\\n%s\\nto match the type\\n%s\" unexpectedJson expectedType\r\n | JNull, TypeInfo.Option _ -> unbox None\r\n | jsonValue, TypeInfo.Option optionalTypeDelayed when jsonValue <> JNull ->\r\n let optionalType = optionalTypeDelayed()\r\n let parsedOptional = unbox (fromJsonAs jsonValue optionalType)\r\n unbox Some parsedOptional\r\n | JString value, TypeInfo.Guid _ -> unbox (System.Guid.Parse(value))\r\n // int64 as a number, convert it to int then to in64\r\n | JNumber value , TypeInfo.Long _ -> unbox int64 (int value)\r\n // int64 as the internal representation from Long.js\r\n // then reconstruct it from the high/low (two integers) components\r\n | JObject dict, TypeInfo.Long _ ->\r\n let get key = Map.tryFind key dict\r\n [ get \"low\"; get \"high\"; get \"unsigned\" ]\r\n |> List.choose id\r\n |> function\r\n | [ JNumber low; JNumber high; JBool _ ] ->\r\n let lowBytes = BitConverter.GetBytes(int low)\r\n let highBytes = BitConverter.GetBytes(int high)\r\n let combinedBytes = Array.concat [ lowBytes; highBytes ]\r\n BitConverter.ToInt64(combinedBytes, 0)\r\n |> unbox\r\n | _ -> failwithf \"Unable to construct int64 from object literal { low: int, high: int, unsigned: bool }\"\r\n // convert a single case string to union\r\n // \"One\" -> One, here is a special case where the case in quoted inside the string\r\n | JString caseName, TypeInfo.Union getTypes when isQuoted caseName ->\r\n let (caseTypes, unionType) = getTypes()\r\n caseTypes\r\n |> Array.tryFind (fun case -> case.CaseName = removeQuotes caseName)\r\n |> function\r\n | Some ({ Info = caseInfo }) -> unbox (FSharpValue.MakeUnion(caseInfo, [||]))\r\n | None ->\r\n let caseNames = Array.map (fun case -> sprintf \" '%s' \" case.CaseName) caseTypes\r\n let expectedCases = String.concat \", \" caseNames\r\n failwithf \"Case %s was not valid for type '%s', expected one of the cases [%s]\" caseName unionType.Name expectedCases\r\n // convert a single case string to union\r\n // \"One\" -> One\r\n | JString caseName, TypeInfo.Union getTypes ->\r\n let (caseTypes, unionType) = getTypes()\r\n caseTypes\r\n |> Array.tryFind (fun case -> case.CaseName = caseName)\r\n |> function\r\n | Some ({ Info = caseInfo }) -> unbox (FSharpValue.MakeUnion(caseInfo, [||]))\r\n | None ->\r\n let caseNames = Array.map (fun case -> sprintf \" '%s' \" case.CaseName) caseTypes\r\n let expectedCases = String.concat \", \" caseNames\r\n failwithf \"Case %s was not valid for type '%s', expected one of the cases [%s]\" caseName unionType.Name expectedCases\r\n | JString serializedRecord, TypeInfo.Record getFields ->\r\n fromJsonAs (SimpleJson.parse serializedRecord) typeInfo\r\n // convert unions from arrays\r\n // [\"One\", 20] -> One of int\r\n | JArray caseValue, TypeInfo.Union getTypes ->\r\n let (cases, unionType) = getTypes()\r\n match caseValue with\r\n // Union case without values\r\n | [ JString caseName ] ->\r\n cases\r\n |> Array.tryFind (fun case -> case.CaseName = caseName)\r\n |> function\r\n | Some ({ CaseName = caseName; Info = caseInfo; CaseTypes = caseInfoTypes }) ->\r\n // single case without values\r\n unbox (FSharpValue.MakeUnion(caseInfo, [||]))\r\n | None ->\r\n let caseNames = Array.map (fun case -> sprintf \" '%s' \" case.CaseName) cases\r\n let expectedCases = String.concat \", \" caseNames\r\n failwithf \"Case '%s' was not valid for type '%s', expected one of the cases [%s]\" caseName unionType.Name expectedCases\r\n | JString caseName :: values ->\r\n cases\r\n |> Array.tryFind (fun case -> case.CaseName = caseName)\r\n |> function\r\n | None ->\r\n let caseNames = Array.map (fun ({ CaseName = name }) -> name) cases\r\n let expectedCases = String.concat \", \" caseNames\r\n failwithf \"Case %s was not valid, expected one of [%s]\" caseName expectedCases\r\n | Some ({ CaseName = foundCaseName; Info = caseInfo; CaseTypes = types }) ->\r\n if Array.length types <> List.length values\r\n then failwithf \"The number of union case parameters for '%s' is different\" foundCaseName\r\n let parsedValues =\r\n Array.ofList values\r\n |> Array.zip types\r\n |> Array.map (fun (valueType, value) -> fromJsonAs value valueType)\r\n FSharpValue.MakeUnion(caseInfo, parsedValues)\r\n |> unbox\r\n | otherwise ->\r\n let unexpectedJson = JS.JSON.stringify otherwise\r\n let expectedType = JS.JSON.stringify cases\r\n failwithf \"Expected JSON:\\n%s\\nto match the type\\n%s\" unexpectedJson expectedType\r\n // Arrays\r\n | JArray values, TypeInfo.Array elementTypeDelayed ->\r\n let elementType = elementTypeDelayed()\r\n values\r\n |> List.map (fun value -> unbox (fromJsonAs value elementType))\r\n |> Array.ofList\r\n |> unbox\r\n // Lists\r\n | JArray values, TypeInfo.List elementTypeDelayed ->\r\n let elementType = elementTypeDelayed()\r\n values\r\n |> List.map (fun value -> unbox (fromJsonAs value elementType))\r\n |> unbox\r\n | JArray values, TypeInfo.Set elementTypeDelayed ->\r\n let elementType = elementTypeDelayed()\r\n values\r\n |> List.map (fun value -> unbox (fromJsonAs value elementType))\r\n |> Set.ofList\r\n |> unbox\r\n\r\n | JArray values, TypeInfo.Seq elementTypeDelayed ->\r\n let elementType = elementTypeDelayed()\r\n let converted = List.map (fun value -> unbox (fromJsonAs value elementType)) values\r\n unbox converted\r\n // Tuples, become just arrays\r\n | JArray array, TypeInfo.Tuple tupleTypesDelayed ->\r\n let tupleTypes = tupleTypesDelayed()\r\n array\r\n |> Array.ofList\r\n |> Array.zip tupleTypes\r\n |> Array.map (fun (jsonType, jsonData) -> fromJsonAs jsonData jsonType)\r\n |> unbox\r\n // Records\r\n | JObject dict, TypeInfo.Record getTypes ->\r\n let fields, recordType = getTypes()\r\n // Match the JSON object literal keys with their types\r\n let recordValues =\r\n let values = Map.toList dict\r\n fields\r\n |> Array.map (fun ({ FieldName = fieldName; FieldType = fieldType }) ->\r\n values\r\n |> List.tryFind (fun (key, value) -> fieldName = key)\r\n |> function\r\n | Some (key, value) -> unbox (fromJsonAs value fieldType)\r\n | None ->\r\n match fieldType with\r\n // field type is an option of something, just return None\r\n | TypeInfo.Option _ -> unbox None\r\n | _ ->\r\n // field type is required and it doens't exist in the JSON\r\n // then generate a nice error message\r\n let dictKeys =\r\n Map.toList dict\r\n |> List.map (fst >> sprintf \"'%s'\")\r\n |> String.concat \", \"\r\n |> sprintf \"[ %s ]\"\r\n let recordFields =\r\n fields\r\n |> Array.map (fun ({ FieldName = name; FieldType = innerFieldType }) ->\r\n match innerFieldType with\r\n | TypeInfo.Option _ -> sprintf \"optional('%s')\" name\r\n | _ -> sprintf \"required('%s')\" name)\r\n |> String.concat \", \"\r\n |> sprintf \"[ %s ]\"\r\n failwithf \"Could not find the required key '%s' in the JSON object literal with keys %s to match with record type '%s' that has fields %s\" fieldName dictKeys recordType.Name recordFields)\r\n unbox (FSharpValue.MakeRecord(recordType, recordValues))\r\n\r\n | JArray tuples, TypeInfo.Map getTypes ->\r\n let (keyType, valueType) = getTypes()\r\n let pairs =\r\n [ for keyValuePair in tuples do\r\n let tuple = fromJsonAs keyValuePair (TypeInfo.Tuple (let a = [| keyType; valueType |] in fun () -> a))\r\n yield tuple ]\r\n match keyType with\r\n | TypeInfo.Int32\r\n | TypeInfo.String\r\n | TypeInfo.Bool ->\r\n pairs\r\n |> unbox<(string * obj) list>\r\n |> Map.ofList\r\n |> unbox\r\n | _ ->\r\n pairs\r\n |> unbox<(IStructuralComparable * obj) list>\r\n |> Map.ofList\r\n |> unbox\r\n\r\n | JArray tuples, TypeInfo.Dictionary getTypes ->\r\n let (keyType, valueType) = getTypes()\r\n let pairs =\r\n [ for keyValuePair in tuples do\r\n let tuple = fromJsonAs keyValuePair (TypeInfo.Tuple (let a = [| keyType; valueType |] in fun () -> a))\r\n yield tuple ]\r\n let output = System.Collections.Generic.Dictionary()\r\n for (key, value) in (unbox<(IStructuralComparable * obj) list> pairs) do output.Add(unbox key, value)\r\n output\r\n |> unbox\r\n\r\n | JObject dict, TypeInfo.Dictionary getTypes ->\r\n let (keyType, valueType) = getTypes()\r\n dict\r\n |> Map.toList\r\n |> List.map (fun (key, value) -> fromJsonAs (JString key) keyType, fromJsonAs value valueType )\r\n |> fun pairs ->\r\n let output = System.Collections.Generic.Dictionary()\r\n for (key, value) in pairs do output.Add(unbox key, value)\r\n output\r\n |> unbox\r\n\r\n | JArray items, TypeInfo.HashSet getType ->\r\n let elemType = getType()\r\n let hashset = HashSet()\r\n for item in items do\r\n let deserialized = fromJsonAs item elemType\r\n hashset.Add(unbox deserialized) |> ignore\r\n\r\n unbox hashset\r\n\r\n | JObject map, TypeInfo.Map getTypes ->\r\n let (keyType, valueType) = getTypes()\r\n // check whether the map is serialized to it's internal representation\r\n // and convert that to back to a normal map from the data\r\n match Map.tryFind \"comparer\" map, Map.tryFind \"tree\" map with\r\n | Some (JObject comparer), Some (JArray tree) when Map.isEmpty comparer ->\r\n match generateMap (JArray tree) with\r\n | Some internalMap ->\r\n let pairs =\r\n flattenMap internalMap\r\n |> List.map (fun (key, value) ->\r\n let nextKey =\r\n if not (isQuoted key)\r\n then unbox (fromJsonAs (JString key) keyType)\r\n else unbox (fromJsonAs (SimpleJson.parseNative key) keyType)\r\n let nextValue = unbox (fromJsonAs value valueType)\r\n unbox nextKey, nextValue)\r\n match keyType with\r\n | TypeInfo.Int32\r\n | TypeInfo.String\r\n | TypeInfo.Bool ->\r\n pairs\r\n |> unbox<(string * obj) list>\r\n |> Map.ofList\r\n |> unbox\r\n | _ ->\r\n pairs\r\n |> unbox<(IStructuralComparable * obj) list>\r\n |> Map.ofList\r\n |> unbox\r\n\r\n | None ->\r\n let inputJson = SimpleJson.toString (JArray tree)\r\n failwithf \"Could not generate map from JSON\\n %s\" inputJson\r\n | _ ->\r\n // if comparer and tree are not present,\r\n // assume we are parsing Fable 1 object literal\r\n // and converting that to map\r\n let pairs =\r\n map\r\n |> Map.toList\r\n |> List.map (fun (key, value) ->\r\n let nextKey =\r\n if not (isQuoted key)\r\n then\r\n if Converter.isPrimitive keyType || Converter.enumUnion keyType\r\n then\r\n // for primitive type, just read them as string and parse\r\n unbox (fromJsonAs (JString key) keyType)\r\n else\r\n // server-side JSON can still be complex (for complex types)\r\n // but doesn't have to be quoted, parse again here\r\n unbox (fromJsonAs (SimpleJson.parseNative key) keyType)\r\n else\r\n unbox (fromJsonAs (SimpleJson.parseNative key) keyType)\r\n let nextValue = unbox (fromJsonAs value valueType)\r\n unbox nextKey, nextValue)\r\n\r\n match keyType with\r\n | TypeInfo.Int32\r\n | TypeInfo.String\r\n | TypeInfo.Bool ->\r\n pairs\r\n |> unbox<(string * obj) list>\r\n |> Map.ofList\r\n |> unbox\r\n | _ ->\r\n pairs\r\n |> unbox<(IStructuralComparable * obj) list>\r\n |> Map.ofList\r\n |> unbox\r\n | _, TypeInfo.Any getType ->\r\n let unknownType = getType()\r\n failwithf \"Cannot convert %s to %s\" (SimpleJson.toString input) unknownType.FullName\r\n | _ ->\r\n failwithf \"Cannot convert %s to %s\" (SimpleJson.toString input) (JS.JSON.stringify typeInfo)\r\n\r\n let fromJson<'t> json typeInfo =\r\n unbox<'t> (fromJsonAs json typeInfo)\r\n\r\n[]\r\nmodule ConverterExtensions =\r\n type Json with\r\n static member stringify<'t> (x: 't) =\r\n SimpleJson.stringify x\r\n\r\n /// Parses the input string as JSON and tries to convert it as the given type argument\r\n static member inline parseAs<'t> (input: string) : 't =\r\n match SimpleJson.tryParse input with\r\n | None -> failwith \"Couldn't parse the input JSON string because it seems to be invalid\"\r\n | Some inputJson ->\r\n let typeInfo = TypeInfo.createFrom<'t> ()\r\n Convert.fromJson<'t> inputJson typeInfo\r\n\r\n /// Parses the input string as JSON using native parsing and tries to convert it as the given type argument\r\n static member inline parseNativeAs<'t> (input: string) : 't =\r\n let inputJson = SimpleJson.parseNative input\r\n let typeInfo = TypeInfo.createFrom<'t> ()\r\n Convert.fromJson<'t> inputJson typeInfo\r\n\r\n /// Tries to parse the input string as JSON and tries to convert it as the given type argument, returing a (hopefully) useful error message when it fails\r\n static member inline tryParseAs<'t> (input: string) : Result<'t, string> =\r\n try Ok (Json.parseAs<'t> input)\r\n with | ex -> Error ex.Message\r\n\r\n /// Tries to parse the input string as JSON using native parsing and tries to convert it as the given type argument\r\n static member inline tryParseNativeAs<'t> (input: string) : Result<'t, string> =\r\n try Ok (Json.parseNativeAs<'t> input)\r\n with | ex -> Error ex.Message\r\n\r\n /// Tries to convert parsed JSON object as the given type parameter argument, this method is used when you want to apply transformations to the JSON object before parsing\r\n static member inline convertFromJsonAs<'t> (input: Json) : 't =\r\n let typeInfo = TypeInfo.createFrom<'t> ()\r\n Convert.fromJson<'t> input typeInfo\r\n\r\n /// Tries to convert parsed JSON object as the given type parameter argument, this method is used when you want to apply transformations to the JSON object before parsing\r\n static member inline tryConvertFromJsonAs<'t> (input: Json) : Result<'t, string> =\r\n try Ok (Json.convertFromJsonAs<'t> input)\r\n with | ex -> Error ex.Message\r\n","\"use strict\";\r\n\r\nexport function Parsimmon(action) {\r\n if (!(this instanceof Parsimmon)) {\r\n return new Parsimmon(action);\r\n }\r\n this._ = action;\r\n}\r\n\r\nvar _ = Parsimmon.prototype;\r\n\r\nexport function times(n, f) {\r\n var i = 0;\r\n for (i; i < n; i++) {\r\n f(i);\r\n }\r\n}\r\n\r\nexport function forEach(f, arr) {\r\n times(arr.length, function(i) {\r\n f(arr[i], i, arr);\r\n });\r\n}\r\n\r\nexport function reduce(f, seed, arr) {\r\n forEach(function(elem, i, arr) {\r\n seed = f(seed, elem, i, arr);\r\n }, arr);\r\n return seed;\r\n}\r\n\r\nexport function map(f, arr) {\r\n return reduce(\r\n function(acc, elem, i, a) {\r\n return acc.concat([f(elem, i, a)]);\r\n },\r\n [],\r\n arr\r\n );\r\n}\r\n\r\nexport function lshiftBuffer(input) {\r\n var asTwoBytes = reduce(\r\n function(a, v, i, b) {\r\n return a.concat(\r\n i === b.length - 1\r\n ? Buffer.from([v, 0]).readUInt16BE(0)\r\n : b.readUInt16BE(i)\r\n );\r\n },\r\n [],\r\n input\r\n );\r\n return Buffer.from(\r\n map(function(x) {\r\n return ((x << 1) & 0xffff) >> 8;\r\n }, asTwoBytes)\r\n );\r\n}\r\n\r\nfunction consumeBitsFromBuffer(n, input) {\r\n var state = { v: 0, buf: input };\r\n times(n, function() {\r\n state = {\r\n v: (state.v << 1) | bitPeekBuffer(state.buf),\r\n buf: lshiftBuffer(state.buf)\r\n };\r\n });\r\n return state;\r\n}\r\n\r\nfunction bitPeekBuffer(input) {\r\n return input[0] >> 7;\r\n}\r\n\r\nexport function sum(numArr) {\r\n return reduce(\r\n function(x, y) {\r\n return x + y;\r\n },\r\n 0,\r\n numArr\r\n );\r\n}\r\n\r\nexport function find(pred, arr) {\r\n return reduce(\r\n function(found, elem) {\r\n return found || (pred(elem) ? elem : found);\r\n },\r\n null,\r\n arr\r\n );\r\n}\r\n\r\nfunction bufferExists() {\r\n return typeof Buffer !== \"undefined\";\r\n}\r\n\r\nfunction ensureBuffer() {\r\n if (!bufferExists()) {\r\n throw new Error(\r\n \"Buffer global does not exist; please consider using https://github.com/feross/buffer if you are running Parsimmon in a browser.\"\r\n );\r\n }\r\n}\r\n\r\nfunction bitSeq(alignments) {\r\n ensureBuffer();\r\n var totalBits = sum(alignments);\r\n if (totalBits % 8 !== 0) {\r\n throw new Error(\r\n \"The bits [\" +\r\n alignments.join(\", \") +\r\n \"] add up to \" +\r\n totalBits +\r\n \" which is not an even number of bytes; the total should be divisible by 8\"\r\n );\r\n }\r\n var bytes = totalBits / 8;\r\n\r\n var tooBigRange = find(function(x) {\r\n return x > 48;\r\n }, alignments);\r\n if (tooBigRange) {\r\n throw new Error(\r\n tooBigRange + \" bit range requested exceeds 48 bit (6 byte) Number max.\"\r\n );\r\n }\r\n\r\n return new Parsimmon(function(input, i) {\r\n var newPos = bytes + i;\r\n if (newPos > input.length) {\r\n return makeFailure(i, bytes.toString() + \" bytes\");\r\n }\r\n return makeSuccess(\r\n newPos,\r\n reduce(\r\n function(acc, bits) {\r\n var state = consumeBitsFromBuffer(bits, acc.buf);\r\n return {\r\n coll: acc.coll.concat(state.v),\r\n buf: state.buf\r\n };\r\n },\r\n { coll: [], buf: input.slice(i, newPos) },\r\n alignments\r\n ).coll\r\n );\r\n });\r\n}\r\n\r\nfunction bitSeqObj(namedAlignments) {\r\n ensureBuffer();\r\n var seenKeys = {};\r\n var totalKeys = 0;\r\n var fullAlignments = map(function(item) {\r\n if (isArray(item)) {\r\n var pair = item;\r\n if (pair.length !== 2) {\r\n throw new Error(\r\n \"[\" +\r\n pair.join(\", \") +\r\n \"] should be length 2, got length \" +\r\n pair.length\r\n );\r\n }\r\n assertString(pair[0]);\r\n assertNumber(pair[1]);\r\n if (Object.prototype.hasOwnProperty.call(seenKeys, pair[0])) {\r\n throw new Error(\"duplicate key in bitSeqObj: \" + pair[0]);\r\n }\r\n seenKeys[pair[0]] = true;\r\n totalKeys++;\r\n return pair;\r\n } else {\r\n assertNumber(item);\r\n return [null, item];\r\n }\r\n }, namedAlignments);\r\n if (totalKeys < 1) {\r\n throw new Error(\r\n \"bitSeqObj expects at least one named pair, got [\" +\r\n namedAlignments.join(\", \") +\r\n \"]\"\r\n );\r\n }\r\n var namesOnly = map(function(pair) {\r\n return pair[0];\r\n }, fullAlignments);\r\n var alignmentsOnly = map(function(pair) {\r\n return pair[1];\r\n }, fullAlignments);\r\n\r\n return bitSeq(alignmentsOnly).map(function(parsed) {\r\n var namedParsed = map(function(name, i) {\r\n return [name, parsed[i]];\r\n }, namesOnly);\r\n\r\n return reduce(\r\n function(obj, kv) {\r\n if (kv[0] !== null) {\r\n obj[kv[0]] = kv[1];\r\n }\r\n return obj;\r\n },\r\n {},\r\n namedParsed\r\n );\r\n });\r\n}\r\n\r\nfunction parseBufferFor(other, length) {\r\n ensureBuffer();\r\n return new Parsimmon(function(input, i) {\r\n if (i + length > input.length) {\r\n return makeFailure(i, length + \" bytes for \" + other);\r\n }\r\n return makeSuccess(i + length, input.slice(i, i + length));\r\n });\r\n}\r\n\r\nfunction parseBuffer(length) {\r\n return parseBufferFor(\"buffer\", length).map(function(unsafe) {\r\n return Buffer.from(unsafe);\r\n });\r\n}\r\n\r\nfunction encodedString(encoding, length) {\r\n return parseBufferFor(\"string\", length).map(function(buff) {\r\n return buff.toString(encoding);\r\n });\r\n}\r\n\r\nfunction isInteger(value) {\r\n return typeof value === \"number\" && Math.floor(value) === value;\r\n}\r\n\r\nfunction assertValidIntegerByteLengthFor(who, length) {\r\n if (!isInteger(length) || length < 0 || length > 6) {\r\n throw new Error(who + \" requires integer length in range [0, 6].\");\r\n }\r\n}\r\n\r\nfunction uintBE(length) {\r\n assertValidIntegerByteLengthFor(\"uintBE\", length);\r\n return parseBufferFor(\"uintBE(\" + length + \")\", length).map(function(buff) {\r\n return buff.readUIntBE(0, length);\r\n });\r\n}\r\n\r\nfunction uintLE(length) {\r\n assertValidIntegerByteLengthFor(\"uintLE\", length);\r\n return parseBufferFor(\"uintLE(\" + length + \")\", length).map(function(buff) {\r\n return buff.readUIntLE(0, length);\r\n });\r\n}\r\n\r\nfunction intBE(length) {\r\n assertValidIntegerByteLengthFor(\"intBE\", length);\r\n return parseBufferFor(\"intBE(\" + length + \")\", length).map(function(buff) {\r\n return buff.readIntBE(0, length);\r\n });\r\n}\r\n\r\nfunction intLE(length) {\r\n assertValidIntegerByteLengthFor(\"intLE\", length);\r\n return parseBufferFor(\"intLE(\" + length + \")\", length).map(function(buff) {\r\n return buff.readIntLE(0, length);\r\n });\r\n}\r\n\r\nfunction floatBE() {\r\n return parseBufferFor(\"floatBE\", 4).map(function(buff) {\r\n return buff.readFloatBE(0);\r\n });\r\n}\r\n\r\nfunction floatLE() {\r\n return parseBufferFor(\"floatLE\", 4).map(function(buff) {\r\n return buff.readFloatLE(0);\r\n });\r\n}\r\n\r\nfunction doubleBE() {\r\n return parseBufferFor(\"doubleBE\", 8).map(function(buff) {\r\n return buff.readDoubleBE(0);\r\n });\r\n}\r\n\r\nfunction doubleLE() {\r\n return parseBufferFor(\"doubleLE\", 8).map(function(buff) {\r\n return buff.readDoubleLE(0);\r\n });\r\n}\r\n\r\nfunction toArray(arrLike) {\r\n return Array.prototype.slice.call(arrLike);\r\n}\r\n// -*- Helpers -*-\r\n\r\nfunction isParser(obj) {\r\n return obj instanceof Parsimmon;\r\n}\r\n\r\nfunction isArray(x) {\r\n return {}.toString.call(x) === \"[object Array]\";\r\n}\r\n\r\nfunction isBuffer(x) {\r\n /* global Buffer */\r\n return bufferExists() && Buffer.isBuffer(x);\r\n}\r\n\r\nexport function makeSuccess(index, value) {\r\n return {\r\n status: true,\r\n index: index,\r\n value: value,\r\n furthest: -1,\r\n expected: []\r\n };\r\n}\r\n\r\nexport function makeFailure(index, expected) {\r\n if (!isArray(expected)) {\r\n expected = [expected];\r\n }\r\n return {\r\n status: false,\r\n index: -1,\r\n value: null,\r\n furthest: index,\r\n expected: expected\r\n };\r\n}\r\n\r\nfunction mergeReplies(result, last) {\r\n if (!last) {\r\n return result;\r\n }\r\n if (result.furthest > last.furthest) {\r\n return result;\r\n }\r\n var expected =\r\n result.furthest === last.furthest\r\n ? union(result.expected, last.expected)\r\n : last.expected;\r\n return {\r\n status: result.status,\r\n index: result.index,\r\n value: result.value,\r\n furthest: last.furthest,\r\n expected: expected\r\n };\r\n}\r\n\r\nfunction makeLineColumnIndex(input, i) {\r\n if (isBuffer(input)) {\r\n return {\r\n offset: i,\r\n line: -1,\r\n column: -1\r\n };\r\n }\r\n var lines = input.slice(0, i).split(\"\\n\");\r\n // Note that unlike the character offset, the line and column offsets are\r\n // 1-based.\r\n var lineWeAreUpTo = lines.length;\r\n var columnWeAreUpTo = lines[lines.length - 1].length + 1;\r\n return {\r\n offset: i,\r\n line: lineWeAreUpTo,\r\n column: columnWeAreUpTo\r\n };\r\n}\r\n\r\n// Returns the sorted set union of two arrays of strings\r\nfunction union(xs, ys) {\r\n var obj = {};\r\n for (var i = 0; i < xs.length; i++) {\r\n obj[xs[i]] = true;\r\n }\r\n for (var j = 0; j < ys.length; j++) {\r\n obj[ys[j]] = true;\r\n }\r\n var keys = [];\r\n for (var k in obj) {\r\n if ({}.hasOwnProperty.call(obj, k)) {\r\n keys.push(k);\r\n }\r\n }\r\n keys.sort();\r\n return keys;\r\n}\r\n\r\nfunction assertParser(p) {\r\n if (!isParser(p)) {\r\n throw new Error(\"not a parser: \" + p);\r\n }\r\n}\r\n\r\nfunction get(input, i) {\r\n if (typeof input === \"string\") {\r\n return input.charAt(i);\r\n }\r\n return input[i];\r\n}\r\n\r\n// TODO[ES5]: Switch to Array.isArray eventually.\r\nfunction assertArray(x) {\r\n if (!isArray(x)) {\r\n throw new Error(\"not an array: \" + x);\r\n }\r\n}\r\n\r\nfunction assertNumber(x) {\r\n if (typeof x !== \"number\") {\r\n throw new Error(\"not a number: \" + x);\r\n }\r\n}\r\n\r\nfunction assertRegexp(x) {\r\n if (!(x instanceof RegExp)) {\r\n throw new Error(\"not a regexp: \" + x);\r\n }\r\n var f = flags(x);\r\n for (var i = 0; i < f.length; i++) {\r\n var c = f.charAt(i);\r\n // Only allow regexp flags [imu] for now, since [g] and [y] specifically\r\n // mess up Parsimmon. If more non-stateful regexp flags are added in the\r\n // future, this will need to be revisited.\r\n if (c !== \"i\" && c !== \"m\" && c !== \"u\") {\r\n throw new Error('unsupported regexp flag \"' + c + '\": ' + x);\r\n }\r\n }\r\n}\r\n\r\nfunction assertFunction(x) {\r\n if (typeof x !== \"function\") {\r\n throw new Error(\"not a function: \" + x);\r\n }\r\n}\r\n\r\nfunction assertString(x) {\r\n if (typeof x !== \"string\") {\r\n throw new Error(\"not a string: \" + x);\r\n }\r\n}\r\n\r\n// -*- Error Formatting -*-\r\n\r\nvar linesBeforeStringError = 2;\r\nvar linesAfterStringError = 3;\r\nvar bytesPerLine = 8;\r\nvar bytesBefore = bytesPerLine * 5;\r\nvar bytesAfter = bytesPerLine * 4;\r\nvar defaultLinePrefix = \" \";\r\n\r\nexport function repeat(string, amount) {\r\n return new Array(amount + 1).join(string);\r\n}\r\n\r\nexport function formatExpected(expected) {\r\n if (expected.length === 1) {\r\n return \"Expected:\\n\\n\" + expected[0];\r\n }\r\n return \"Expected one of the following: \\n\\n\" + expected.join(\", \");\r\n}\r\n\r\nexport function leftPad(str, pad, char) {\r\n var add = pad - str.length;\r\n if (add <= 0) {\r\n return str;\r\n }\r\n return repeat(char, add) + str;\r\n}\r\n\r\nfunction toChunks(arr, chunkSize) {\r\n var length = arr.length;\r\n var chunks = [];\r\n var chunkIndex = 0;\r\n\r\n if (length <= chunkSize) {\r\n return [arr.slice()];\r\n }\r\n\r\n for (var i = 0; i < length; i++) {\r\n if (!chunks[chunkIndex]) {\r\n chunks.push([]);\r\n }\r\n\r\n chunks[chunkIndex].push(arr[i]);\r\n\r\n if ((i + 1) % chunkSize === 0) {\r\n chunkIndex++;\r\n }\r\n }\r\n\r\n return chunks;\r\n}\r\n\r\n// Get a range of indexes including `i`-th element and `before` and `after` amount of elements from `arr`.\r\nexport function rangeFromIndexAndOffsets(i, before, after, length) {\r\n return {\r\n // Guard against the negative upper bound for lines included in the output.\r\n from: i - before > 0 ? i - before : 0,\r\n to: i + after > length ? length : i + after\r\n };\r\n}\r\n\r\nexport function byteRangeToRange(byteRange) {\r\n // Exception for inputs smaller than `bytesPerLine`\r\n if (byteRange.from === 0 && byteRange.to === 1) {\r\n return {\r\n from: byteRange.from,\r\n to: byteRange.to\r\n };\r\n }\r\n\r\n return {\r\n from: byteRange.from / bytesPerLine,\r\n // Round `to`, so we don't get float if the amount of bytes is not divisible by `bytesPerLine`\r\n to: Math.floor(byteRange.to / bytesPerLine)\r\n };\r\n}\r\n\r\nexport function formatGot(input, error) {\r\n var index = error.index;\r\n var i = index.offset;\r\n\r\n var verticalMarkerLength = 1;\r\n var column;\r\n var lineWithErrorIndex;\r\n var lines;\r\n var lineRange;\r\n var lastLineNumberLabelLength;\r\n\r\n if (i === input.length) {\r\n return \"Got the end of the input\";\r\n }\r\n\r\n if (isBuffer(input)) {\r\n var byteLineWithErrorIndex = i - (i % bytesPerLine);\r\n var columnByteIndex = i - byteLineWithErrorIndex;\r\n var byteRange = rangeFromIndexAndOffsets(\r\n byteLineWithErrorIndex,\r\n bytesBefore,\r\n bytesAfter + bytesPerLine,\r\n input.length\r\n );\r\n var bytes = input.slice(byteRange.from, byteRange.to);\r\n var bytesInChunks = toChunks(bytes.toJSON().data, bytesPerLine);\r\n\r\n var byteLines = map(function(byteRow) {\r\n return map(function(byteValue) {\r\n // Prefix byte values with a `0` if they are shorter than 2 characters.\r\n return leftPad(byteValue.toString(16), 2, \"0\");\r\n }, byteRow);\r\n }, bytesInChunks);\r\n\r\n lineRange = byteRangeToRange(byteRange);\r\n lineWithErrorIndex = byteLineWithErrorIndex / bytesPerLine;\r\n column = columnByteIndex * 3;\r\n\r\n // Account for an extra space.\r\n if (columnByteIndex >= 4) {\r\n column += 1;\r\n }\r\n\r\n verticalMarkerLength = 2;\r\n lines = map(function(byteLine) {\r\n return byteLine.length <= 4\r\n ? byteLine.join(\" \")\r\n : byteLine.slice(0, 4).join(\" \") + \" \" + byteLine.slice(4).join(\" \");\r\n }, byteLines);\r\n lastLineNumberLabelLength = (\r\n (lineRange.to > 0 ? lineRange.to - 1 : lineRange.to) * 8\r\n ).toString(16).length;\r\n\r\n if (lastLineNumberLabelLength < 2) {\r\n lastLineNumberLabelLength = 2;\r\n }\r\n } else {\r\n var inputLines = input.split(/\\r\\n|[\\n\\r\\u2028\\u2029]/);\r\n column = index.column - 1;\r\n lineWithErrorIndex = index.line - 1;\r\n lineRange = rangeFromIndexAndOffsets(\r\n lineWithErrorIndex,\r\n linesBeforeStringError,\r\n linesAfterStringError,\r\n inputLines.length\r\n );\r\n\r\n lines = inputLines.slice(lineRange.from, lineRange.to);\r\n lastLineNumberLabelLength = lineRange.to.toString().length;\r\n }\r\n\r\n var lineWithErrorCurrentIndex = lineWithErrorIndex - lineRange.from;\r\n\r\n if (isBuffer(input)) {\r\n lastLineNumberLabelLength = (\r\n (lineRange.to > 0 ? lineRange.to - 1 : lineRange.to) * 8\r\n ).toString(16).length;\r\n\r\n if (lastLineNumberLabelLength < 2) {\r\n lastLineNumberLabelLength = 2;\r\n }\r\n }\r\n\r\n var linesWithLineNumbers = reduce(\r\n function(acc, lineSource, index) {\r\n var isLineWithError = index === lineWithErrorCurrentIndex;\r\n var prefix = isLineWithError ? \"> \" : defaultLinePrefix;\r\n var lineNumberLabel;\r\n\r\n if (isBuffer(input)) {\r\n lineNumberLabel = leftPad(\r\n ((lineRange.from + index) * 8).toString(16),\r\n lastLineNumberLabelLength,\r\n \"0\"\r\n );\r\n } else {\r\n lineNumberLabel = leftPad(\r\n (lineRange.from + index + 1).toString(),\r\n lastLineNumberLabelLength,\r\n \" \"\r\n );\r\n }\r\n\r\n return [].concat(\r\n acc,\r\n [prefix + lineNumberLabel + \" | \" + lineSource],\r\n isLineWithError\r\n ? [\r\n defaultLinePrefix +\r\n repeat(\" \", lastLineNumberLabelLength) +\r\n \" | \" +\r\n leftPad(\"\", column, \" \") +\r\n repeat(\"^\", verticalMarkerLength)\r\n ]\r\n : []\r\n );\r\n },\r\n [],\r\n lines\r\n );\r\n\r\n return linesWithLineNumbers.join(\"\\n\");\r\n}\r\n\r\nexport function formatError(input, error) {\r\n return [\r\n \"\\n\",\r\n \"-- PARSING FAILED \" + repeat(\"-\", 50),\r\n \"\\n\\n\",\r\n formatGot(input, error),\r\n \"\\n\\n\",\r\n formatExpected(error.expected),\r\n \"\\n\"\r\n ].join(\"\");\r\n}\r\n\r\nexport function flags(re) {\r\n var s = \"\" + re;\r\n return s.slice(s.lastIndexOf(\"/\") + 1);\r\n}\r\n\r\nexport function anchoredRegexp(re) {\r\n return RegExp(\"^(?:\" + re.source + \")\", flags(re));\r\n}\r\n\r\n// -*- Combinators -*-\r\n\r\nexport function seq() {\r\n var parsers = [].slice.call(arguments);\r\n var numParsers = parsers.length;\r\n for (var j = 0; j < numParsers; j += 1) {\r\n assertParser(parsers[j]);\r\n }\r\n return Parsimmon(function(input, i) {\r\n var result;\r\n var accum = new Array(numParsers);\r\n for (var j = 0; j < numParsers; j += 1) {\r\n result = mergeReplies(parsers[j]._(input, i), result);\r\n if (!result.status) {\r\n return result;\r\n }\r\n accum[j] = result.value;\r\n i = result.index;\r\n }\r\n return mergeReplies(makeSuccess(i, accum), result);\r\n });\r\n}\r\n\r\nexport function seqObj() {\r\n var seenKeys = {};\r\n var totalKeys = 0;\r\n var parsers = toArray(arguments);\r\n var numParsers = parsers.length;\r\n for (var j = 0; j < numParsers; j += 1) {\r\n var p = parsers[j];\r\n if (isParser(p)) {\r\n continue;\r\n }\r\n if (isArray(p)) {\r\n var isWellFormed =\r\n p.length === 2 && typeof p[0] === \"string\" && isParser(p[1]);\r\n if (isWellFormed) {\r\n var key = p[0];\r\n if (Object.prototype.hasOwnProperty.call(seenKeys, key)) {\r\n throw new Error(\"seqObj: duplicate key \" + key);\r\n }\r\n seenKeys[key] = true;\r\n totalKeys++;\r\n continue;\r\n }\r\n }\r\n throw new Error(\r\n \"seqObj arguments must be parsers or [string, parser] array pairs.\"\r\n );\r\n }\r\n if (totalKeys === 0) {\r\n throw new Error(\"seqObj expects at least one named parser, found zero\");\r\n }\r\n return Parsimmon(function(input, i) {\r\n var result;\r\n var accum = {};\r\n for (var j = 0; j < numParsers; j += 1) {\r\n var name;\r\n var parser;\r\n if (isArray(parsers[j])) {\r\n name = parsers[j][0];\r\n parser = parsers[j][1];\r\n } else {\r\n name = null;\r\n parser = parsers[j];\r\n }\r\n result = mergeReplies(parser._(input, i), result);\r\n if (!result.status) {\r\n return result;\r\n }\r\n if (name) {\r\n accum[name] = result.value;\r\n }\r\n i = result.index;\r\n }\r\n return mergeReplies(makeSuccess(i, accum), result);\r\n });\r\n}\r\n\r\nexport function seqMap() {\r\n var args = [].slice.call(arguments);\r\n if (args.length === 0) {\r\n throw new Error(\"seqMap needs at least one argument\");\r\n }\r\n var mapper = args.pop();\r\n assertFunction(mapper);\r\n return seq.apply(null, args).map(function(results) {\r\n return mapper.apply(null, results);\r\n });\r\n}\r\n\r\n// TODO[ES5]: Revisit this with Object.keys and .bind.\r\nexport function createLanguage(parsers) {\r\n var language = {};\r\n for (var key in parsers) {\r\n if ({}.hasOwnProperty.call(parsers, key)) {\r\n (function(key) {\r\n var func = function() {\r\n return parsers[key](language);\r\n };\r\n language[key] = lazy(func);\r\n })(key);\r\n }\r\n }\r\n return language;\r\n}\r\n\r\nexport function alt() {\r\n var parsers = [].slice.call(arguments);\r\n var numParsers = parsers.length;\r\n if (numParsers === 0) {\r\n return fail(\"zero alternates\");\r\n }\r\n for (var j = 0; j < numParsers; j += 1) {\r\n assertParser(parsers[j]);\r\n }\r\n return Parsimmon(function(input, i) {\r\n var result;\r\n for (var j = 0; j < parsers.length; j += 1) {\r\n result = mergeReplies(parsers[j]._(input, i), result);\r\n if (result.status) {\r\n return result;\r\n }\r\n }\r\n return result;\r\n });\r\n}\r\n\r\nexport function sepBy(parser, separator) {\r\n // Argument asserted by sepBy1\r\n return sepBy1(parser, separator).or(succeed([]));\r\n}\r\n\r\nexport function sepBy1(parser, separator) {\r\n assertParser(parser);\r\n assertParser(separator);\r\n var pairs = separator.then(parser).many();\r\n return seqMap(parser, pairs, function(r, rs) {\r\n return [r].concat(rs);\r\n });\r\n}\r\n\r\n// -*- Core Parsing Methods -*-\r\n\r\n_.parse = function(input) {\r\n if (typeof input !== \"string\" && !isBuffer(input)) {\r\n throw new Error(\r\n \".parse must be called with a string or Buffer as its argument\"\r\n );\r\n }\r\n var result = this.skip(eof)._(input, 0);\r\n if (result.status) {\r\n return {\r\n status: true,\r\n value: result.value\r\n };\r\n }\r\n return {\r\n status: false,\r\n index: makeLineColumnIndex(input, result.furthest),\r\n expected: result.expected\r\n };\r\n};\r\n\r\n// -*- Other Methods -*-\r\n\r\n_.tryParse = function(str) {\r\n var result = this.parse(str);\r\n if (result.status) {\r\n return result.value;\r\n } else {\r\n var msg = formatError(str, result);\r\n var err = new Error(msg);\r\n err.type = \"ParsimmonError\";\r\n err.result = result;\r\n throw err;\r\n }\r\n};\r\n\r\n_.or = function(alternative) {\r\n return alt(this, alternative);\r\n};\r\n\r\n_.trim = function(parser) {\r\n return this.wrap(parser, parser);\r\n};\r\n\r\n_.wrap = function(leftParser, rightParser) {\r\n return seqMap(leftParser, this, rightParser, function(left, middle) {\r\n return middle;\r\n });\r\n};\r\n\r\n_.thru = function(wrapper) {\r\n return wrapper(this);\r\n};\r\n\r\n_.then = function(next) {\r\n assertParser(next);\r\n return seq(this, next).map(function(results) {\r\n return results[1];\r\n });\r\n};\r\n\r\n_.many = function() {\r\n var self = this;\r\n\r\n return Parsimmon(function(input, i) {\r\n var accum = [];\r\n var result = undefined;\r\n\r\n for (;;) {\r\n result = mergeReplies(self._(input, i), result);\r\n if (result.status) {\r\n if (i === result.index) {\r\n throw new Error(\r\n \"infinite loop detected in .many() parser --- calling .many() on \" +\r\n \"a parser which can accept zero characters is usually the cause\"\r\n );\r\n }\r\n i = result.index;\r\n accum.push(result.value);\r\n } else {\r\n return mergeReplies(makeSuccess(i, accum), result);\r\n }\r\n }\r\n });\r\n};\r\n\r\n_.tieWith = function(separator) {\r\n assertString(separator);\r\n return this.map(function(args) {\r\n assertArray(args);\r\n if (args.length) {\r\n assertString(args[0]);\r\n var s = args[0];\r\n for (var i = 1; i < args.length; i++) {\r\n assertString(args[i]);\r\n s += separator + args[i];\r\n }\r\n return s;\r\n } else {\r\n return \"\";\r\n }\r\n });\r\n};\r\n\r\n_.tie = function() {\r\n return this.tieWith(\"\");\r\n};\r\n\r\n_.times = function(min, max) {\r\n var self = this;\r\n if (arguments.length < 2) {\r\n max = min;\r\n }\r\n assertNumber(min);\r\n assertNumber(max);\r\n return Parsimmon(function(input, i) {\r\n var accum = [];\r\n var result = undefined;\r\n var prevResult = undefined;\r\n for (var times = 0; times < min; times += 1) {\r\n result = self._(input, i);\r\n prevResult = mergeReplies(result, prevResult);\r\n if (result.status) {\r\n i = result.index;\r\n accum.push(result.value);\r\n } else {\r\n return prevResult;\r\n }\r\n }\r\n for (; times < max; times += 1) {\r\n result = self._(input, i);\r\n prevResult = mergeReplies(result, prevResult);\r\n if (result.status) {\r\n i = result.index;\r\n accum.push(result.value);\r\n } else {\r\n break;\r\n }\r\n }\r\n return mergeReplies(makeSuccess(i, accum), prevResult);\r\n });\r\n};\r\n\r\n_.result = function(res) {\r\n return this.map(function() {\r\n return res;\r\n });\r\n};\r\n\r\n_.atMost = function(n) {\r\n return this.times(0, n);\r\n};\r\n\r\n_.atLeast = function(n) {\r\n return seqMap(this.times(n), this.many(), function(init, rest) {\r\n return init.concat(rest);\r\n });\r\n};\r\n\r\n_.map = function(fn) {\r\n assertFunction(fn);\r\n var self = this;\r\n return Parsimmon(function(input, i) {\r\n var result = self._(input, i);\r\n if (!result.status) {\r\n return result;\r\n }\r\n return mergeReplies(makeSuccess(result.index, fn(result.value)), result);\r\n });\r\n};\r\n\r\n_.contramap = function(fn) {\r\n assertFunction(fn);\r\n var self = this;\r\n return Parsimmon(function(input, i) {\r\n var result = self.parse(fn(input.slice(i)));\r\n if (!result.status) {\r\n return result;\r\n }\r\n return makeSuccess(i + input.length, result.value);\r\n });\r\n};\r\n\r\n_.promap = function(f, g) {\r\n assertFunction(f);\r\n assertFunction(g);\r\n return this.contramap(f).map(g);\r\n};\r\n\r\n_.skip = function(next) {\r\n return seq(this, next).map(function(results) {\r\n return results[0];\r\n });\r\n};\r\n\r\n_.mark = function() {\r\n return seqMap(index, this, index, function(start, value, end) {\r\n return {\r\n start: start,\r\n value: value,\r\n end: end\r\n };\r\n });\r\n};\r\n\r\n_.node = function(name) {\r\n return seqMap(index, this, index, function(start, value, end) {\r\n return {\r\n name: name,\r\n value: value,\r\n start: start,\r\n end: end\r\n };\r\n });\r\n};\r\n\r\n_.sepBy = function(separator) {\r\n return sepBy(this, separator);\r\n};\r\n\r\n_.sepBy1 = function(separator) {\r\n return sepBy1(this, separator);\r\n};\r\n\r\n_.lookahead = function(x) {\r\n return this.skip(lookahead(x));\r\n};\r\n\r\n_.notFollowedBy = function(x) {\r\n return this.skip(notFollowedBy(x));\r\n};\r\n\r\n_.desc = function(expected) {\r\n if (!isArray(expected)) {\r\n expected = [expected];\r\n }\r\n var self = this;\r\n return Parsimmon(function(input, i) {\r\n var reply = self._(input, i);\r\n if (!reply.status) {\r\n reply.expected = expected;\r\n }\r\n return reply;\r\n });\r\n};\r\n\r\n_.fallback = function(result) {\r\n return this.or(succeed(result));\r\n};\r\n\r\n_.ap = function(other) {\r\n return seqMap(other, this, function(f, x) {\r\n return f(x);\r\n });\r\n};\r\n\r\n_.chain = function(f) {\r\n var self = this;\r\n return Parsimmon(function(input, i) {\r\n var result = self._(input, i);\r\n if (!result.status) {\r\n return result;\r\n }\r\n var nextParser = f(result.value);\r\n return mergeReplies(nextParser._(input, result.index), result);\r\n });\r\n};\r\n\r\n// -*- Constructors -*-\r\n\r\nexport function string(str) {\r\n assertString(str);\r\n var expected = \"'\" + str + \"'\";\r\n return Parsimmon(function(input, i) {\r\n var j = i + str.length;\r\n var head = input.slice(i, j);\r\n if (head === str) {\r\n return makeSuccess(j, head);\r\n } else {\r\n return makeFailure(i, expected);\r\n }\r\n });\r\n}\r\n\r\nexport function byte(b) {\r\n ensureBuffer();\r\n assertNumber(b);\r\n if (b > 0xff) {\r\n throw new Error(\r\n \"Value specified to byte constructor (\" +\r\n b +\r\n \"=0x\" +\r\n b.toString(16) +\r\n \") is larger in value than a single byte.\"\r\n );\r\n }\r\n var expected = (b > 0xf ? \"0x\" : \"0x0\") + b.toString(16);\r\n return Parsimmon(function(input, i) {\r\n var head = get(input, i);\r\n if (head === b) {\r\n return makeSuccess(i + 1, head);\r\n } else {\r\n return makeFailure(i, expected);\r\n }\r\n });\r\n}\r\n\r\nexport function regexp(re, group) {\r\n assertRegexp(re);\r\n if (arguments.length >= 2) {\r\n assertNumber(group);\r\n } else {\r\n group = 0;\r\n }\r\n var anchored = anchoredRegexp(re);\r\n var expected = \"\" + re;\r\n return Parsimmon(function(input, i) {\r\n var match = anchored.exec(input.slice(i));\r\n if (match) {\r\n if (0 <= group && group <= match.length) {\r\n var fullMatch = match[0];\r\n var groupMatch = match[group];\r\n return makeSuccess(i + fullMatch.length, groupMatch);\r\n }\r\n var message =\r\n \"valid match group (0 to \" + match.length + \") in \" + expected;\r\n return makeFailure(i, message);\r\n }\r\n return makeFailure(i, expected);\r\n });\r\n}\r\n\r\nexport function succeed(value) {\r\n return Parsimmon(function(input, i) {\r\n return makeSuccess(i, value);\r\n });\r\n}\r\n\r\nexport function fail(expected) {\r\n return Parsimmon(function(input, i) {\r\n return makeFailure(i, expected);\r\n });\r\n}\r\n\r\nexport function lookahead(x) {\r\n if (isParser(x)) {\r\n return Parsimmon(function(input, i) {\r\n var result = x._(input, i);\r\n result.index = i;\r\n result.value = \"\";\r\n return result;\r\n });\r\n } else if (typeof x === \"string\") {\r\n return lookahead(string(x));\r\n } else if (x instanceof RegExp) {\r\n return lookahead(regexp(x));\r\n }\r\n throw new Error(\"not a string, regexp, or parser: \" + x);\r\n}\r\n\r\nexport function notFollowedBy(parser) {\r\n assertParser(parser);\r\n return Parsimmon(function(input, i) {\r\n var result = parser._(input, i);\r\n var text = input.slice(i, result.index);\r\n return result.status\r\n ? makeFailure(i, 'not \"' + text + '\"')\r\n : makeSuccess(i, null);\r\n });\r\n}\r\n\r\nexport function test(predicate) {\r\n assertFunction(predicate);\r\n return Parsimmon(function(input, i) {\r\n var char = get(input, i);\r\n if (i < input.length && predicate(char)) {\r\n return makeSuccess(i + 1, char);\r\n } else {\r\n return makeFailure(i, \"a character/byte matching \" + predicate);\r\n }\r\n });\r\n}\r\n\r\nexport function oneOf(str) {\r\n var expected = str.split(\"\");\r\n for (var idx = 0; idx < expected.length; idx++) {\r\n expected[idx] = \"'\" + expected[idx] + \"'\";\r\n }\r\n return test(function(ch) {\r\n return str.indexOf(ch) >= 0;\r\n }).desc(expected);\r\n}\r\n\r\nexport function noneOf(str) {\r\n return test(function(ch) {\r\n return str.indexOf(ch) < 0;\r\n }).desc(\"none of '\" + str + \"'\");\r\n}\r\n\r\nexport function custom(parsingFunction) {\r\n return Parsimmon(parsingFunction(makeSuccess, makeFailure));\r\n}\r\n\r\n// TODO[ES5]: Improve error message using JSON.stringify eventually.\r\nexport function range(begin, end) {\r\n return test(function(ch) {\r\n return begin <= ch && ch <= end;\r\n }).desc(begin + \"-\" + end);\r\n}\r\n\r\nexport function takeWhile(predicate) {\r\n assertFunction(predicate);\r\n\r\n return Parsimmon(function(input, i) {\r\n var j = i;\r\n while (j < input.length && predicate(get(input, j))) {\r\n j++;\r\n }\r\n return makeSuccess(j, input.slice(i, j));\r\n });\r\n}\r\n\r\nexport function lazy(desc, f) {\r\n if (arguments.length < 2) {\r\n f = desc;\r\n desc = undefined;\r\n }\r\n\r\n var parser = Parsimmon(function(input, i) {\r\n parser._ = f()._;\r\n return parser._(input, i);\r\n });\r\n\r\n if (desc) {\r\n return parser.desc(desc);\r\n } else {\r\n return parser;\r\n }\r\n}\r\n\r\n// -*- Fantasy Land Extras -*-\r\n\r\nfunction empty() {\r\n return fail(\"fantasy-land/empty\");\r\n}\r\n\r\n_.concat = _.or;\r\n_.empty = empty;\r\n_.of = succeed;\r\n_[\"fantasy-land/ap\"] = _.ap;\r\n_[\"fantasy-land/chain\"] = _.chain;\r\n_[\"fantasy-land/concat\"] = _.concat;\r\n_[\"fantasy-land/empty\"] = _.empty;\r\n_[\"fantasy-land/of\"] = _.of;\r\n_[\"fantasy-land/map\"] = _.map;\r\n\r\n// -*- Base Parsers -*-\r\n\r\nexport const index = Parsimmon(function(input, i) {\r\n return makeSuccess(i, makeLineColumnIndex(input, i));\r\n});\r\n\r\nexport const any = Parsimmon(function(input, i) {\r\n if (i >= input.length) {\r\n return makeFailure(i, \"any character/byte\");\r\n }\r\n return makeSuccess(i + 1, get(input, i));\r\n});\r\n\r\nexport const all = Parsimmon(function(input, i) {\r\n return makeSuccess(input.length, input.slice(i));\r\n});\r\n\r\nexport const eof = Parsimmon(function(input, i) {\r\n if (i < input.length) {\r\n return makeFailure(i, \"EOF\");\r\n }\r\n return makeSuccess(i, null);\r\n});\r\n\r\nexport const digit = regexp(/[0-9]/).desc(\"a digit\");\r\nexport const digits = regexp(/[0-9]*/).desc(\"optional digits\");\r\nexport const letter = regexp(/[a-z]/i).desc(\"a letter\");\r\nexport const letters = regexp(/[a-z]*/i).desc(\"optional letters\");\r\nexport const optWhitespace = regexp(/\\s*/).desc(\"optional whitespace\");\r\nexport const whitespace = regexp(/\\s+/).desc(\"whitespace\");\r\nexport const cr = string(\"\\r\");\r\nexport const lf = string(\"\\n\");\r\nexport const crlf = string(\"\\r\\n\");\r\nexport const newline = alt(crlf, lf, cr).desc(\"newline\");\r\nexport const end = alt(newline, eof);","// https://github.com/MikeMcl/big.js/blob/01b3ce3a6b0ba7b42442ea48ec4ffc88d1669ec4/big.mjs\n/* tslint:disable */\nimport { combineHashCodes } from \"../Util\";\n// The shared prototype object.\nvar P = {\n GetHashCode() { return combineHashCodes([this.s, this.e].concat(this.c)); },\n Equals(x) { return !this.cmp(x); },\n CompareTo(x) { return this.cmp(x); },\n};\n/*\n * big.js v5.2.2\n * A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic.\n * Copyright (c) 2018 Michael Mclaughlin \n * https://github.com/MikeMcl/big.js/LICENCE\n */\n/************************************** EDITABLE DEFAULTS *****************************************/\n// The default values below must be integers within the stated ranges.\n/*\n * The maximum number of decimal places (DP) of the results of operations involving division:\n * div and sqrt, and pow with negative exponents.\n */\nvar DP = 28, // 0 to MAX_DP\n/*\n * The rounding mode (RM) used when rounding to the above decimal places.\n *\n * 0 Towards zero (i.e. truncate, no rounding). (ROUND_DOWN)\n * 1 To nearest neighbour. If equidistant, round up. (ROUND_HALF_UP)\n * 2 To nearest neighbour. If equidistant, to even. (ROUND_HALF_EVEN)\n * 3 Away from zero. (ROUND_UP)\n */\nRM = 1, // 0, 1, 2 or 3\n// The maximum value of DP and Big.DP.\nMAX_DP = 1E6, // 0 to 1000000\n// The maximum magnitude of the exponent argument to the pow method.\nMAX_POWER = 1E6, // 1 to 1000000\n/*\n * The negative exponent (NE) at and beneath which toString returns exponential notation.\n * (JavaScript numbers: -7)\n * -1000000 is the minimum recommended exponent value of a Big.\n */\nNE = -29, // 0 to -1000000\n/*\n * The positive exponent (PE) at and above which toString returns exponential notation.\n * (JavaScript numbers: 21)\n * 1000000 is the maximum recommended exponent value of a Big.\n * (This limit is not enforced or checked.)\n */\nPE = 29, // 0 to 1000000\n/**************************************************************************************************/\n// Error messages.\nNAME = '[big.js] ', INVALID = NAME + 'Invalid ', INVALID_DP = INVALID + 'decimal places', INVALID_RM = INVALID + 'rounding mode', DIV_BY_ZERO = NAME + 'Division by zero', UNDEFINED = void 0, NUMERIC = /^-?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i;\n/*\n * Create and return a Big constructor.\n *\n */\nfunction _Big_() {\n /*\n * The Big constructor and exported function.\n * Create and return a new instance of a Big number object.\n *\n * n {number|string|Big} A numeric value.\n */\n function Big(n) {\n var x = this;\n // Enable constructor usage without new.\n if (!(x instanceof Big))\n return n === UNDEFINED ? _Big_() : new Big(n);\n // Duplicate.\n if (n instanceof Big) {\n x.s = n.s;\n x.e = n.e;\n x.c = n.c.slice();\n normalize(x);\n }\n else {\n parse(x, n);\n }\n /*\n * Retain a reference to this Big constructor, and shadow Big.prototype.constructor which\n * points to Object.\n */\n x.constructor = Big;\n }\n Big.prototype = P;\n Big.DP = DP;\n Big.RM = RM;\n Big.NE = NE;\n Big.PE = PE;\n Big.version = '5.2.2';\n return Big;\n}\nfunction normalize(x) {\n x = round(x, DP, 0);\n if (x.c.length > 1 && !x.c[0]) {\n let i = x.c.findIndex(x => x);\n x.c = x.c.slice(i);\n x.e = x.e - i;\n }\n}\n/*\n * Parse the number or string value passed to a Big constructor.\n *\n * x {Big} A Big number instance.\n * n {number|string} A numeric value.\n */\nfunction parse(x, n) {\n var e, i, nl;\n // Minus zero?\n if (n === 0 && 1 / n < 0)\n n = '-0';\n else if (!NUMERIC.test(n += ''))\n throw Error(INVALID + 'number');\n // Determine sign.\n x.s = n.charAt(0) == '-' ? (n = n.slice(1), -1) : 1;\n // Decimal point?\n if ((e = n.indexOf('.')) > -1)\n n = n.replace('.', '');\n // Exponential form?\n if ((i = n.search(/e/i)) > 0) {\n // Determine exponent.\n if (e < 0)\n e = i;\n e += +n.slice(i + 1);\n n = n.substring(0, i);\n }\n else if (e < 0) {\n // Integer.\n e = n.length;\n }\n nl = n.length;\n // Determine leading zeros before decimal point.\n for (i = 0; i < e && i < nl && n.charAt(i) == '0';)\n ++i;\n // older version (ignores decimal point).\n // // Determine leading zeros.\n // for (i = 0; i < nl && n.charAt(i) == '0';) ++i;\n if (i == nl) {\n // Zero.\n x.c = [x.e = 0];\n }\n else {\n x.e = e - i - 1;\n x.c = [];\n // Convert string to array of digits without leading zeros\n for (e = 0; i < nl;)\n x.c[e++] = +n.charAt(i++);\n // older version (doesn't keep trailing zeroes).\n // // Determine trailing zeros.\n // for (; nl > 0 && n.charAt(--nl) == '0';);\n // // Convert string to array of digits without leading/trailing zeros.\n // for (e = 0; i <= nl;) x.c[e++] = +n.charAt(i++);\n }\n x = round(x, Big.DP, Big.RM);\n return x;\n}\n/*\n * Round Big x to a maximum of dp decimal places using rounding mode rm.\n * Called by stringify, P.div, P.round and P.sqrt.\n *\n * x {Big} The Big to round.\n * dp {number} Integer, 0 to MAX_DP inclusive.\n * rm {number} 0, 1, 2 or 3 (DOWN, HALF_UP, HALF_EVEN, UP)\n * [more] {boolean} Whether the result of division was truncated.\n */\nfunction round(x, dp, rm, more) {\n var xc = x.c, i = x.e + dp + 1;\n if (i < xc.length) {\n if (rm === 1) {\n // xc[i] is the digit after the digit that may be rounded up.\n more = xc[i] >= 5;\n }\n else if (rm === 2) {\n more = xc[i] > 5 || xc[i] == 5 &&\n (more || i < 0 || xc[i + 1] !== UNDEFINED || xc[i - 1] & 1);\n }\n else if (rm === 3) {\n more = more || !!xc[0];\n }\n else {\n more = false;\n if (rm !== 0)\n throw Error(INVALID_RM);\n }\n if (i < 1) {\n xc.length = 1;\n if (more) {\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\n x.e = -dp;\n xc[0] = 1;\n }\n else {\n // Zero.\n xc[0] = x.e = 0;\n }\n }\n else {\n // Remove any digits after the required decimal places.\n xc.length = i--;\n // Round up?\n if (more) {\n // Rounding up may mean the previous digit has to be rounded up.\n for (; ++xc[i] > 9;) {\n xc[i] = 0;\n if (!i--) {\n ++x.e;\n xc.unshift(1);\n }\n }\n }\n // Remove trailing zeros.\n for (i = xc.length; !xc[--i];)\n xc.pop();\n }\n }\n else if (rm < 0 || rm > 3 || rm !== ~~rm) {\n throw Error(INVALID_RM);\n }\n return x;\n}\n/*\n * Return a string representing the value of Big x in normal or exponential notation.\n * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf.\n *\n * x {Big}\n * id? {number} Caller id.\n * 1 toExponential\n * 2 toFixed\n * 3 toPrecision\n * 4 valueOf\n * n? {number|undefined} Caller's argument.\n * k? {number|undefined}\n */\nfunction stringify(x, id, n, k) {\n var e, s, Big = x.constructor, z = !x.c[0];\n if (n !== UNDEFINED) {\n if (n !== ~~n || n < (id == 3) || n > MAX_DP) {\n throw Error(id == 3 ? INVALID + 'precision' : INVALID_DP);\n }\n x = new Big(x);\n // The index of the digit that may be rounded up.\n n = k - x.e;\n // Round?\n if (x.c.length > ++k)\n round(x, n, Big.RM);\n // toFixed: recalculate k as x.e may have changed if value rounded up.\n if (id == 2)\n k = x.e + n + 1;\n // Append zeros?\n for (; x.c.length < k;)\n x.c.push(0);\n }\n e = x.e;\n s = x.c.join('');\n n = s.length;\n // Exponential notation?\n if (id != 2 && (id == 1 || id == 3 && k <= e || e <= Big.NE || e >= Big.PE)) {\n s = s.charAt(0) + (n > 1 ? '.' + s.slice(1) : '') + (e < 0 ? 'e' : 'e+') + e;\n // Normal notation.\n }\n else if (e < 0) {\n for (; ++e;)\n s = '0' + s;\n s = '0.' + s;\n }\n else if (e > 0) {\n if (++e > n)\n for (e -= n; e--;)\n s += '0';\n else if (e < n)\n s = s.slice(0, e) + '.' + s.slice(e);\n }\n else if (n > 1) {\n s = s.charAt(0) + '.' + s.slice(1);\n }\n return x.s < 0 && (!z || id == 4) ? '-' + s : s;\n}\n// Prototype/instance methods\n/*\n * Return a new Big whose value is the absolute value of this Big.\n */\nP.abs = function () {\n var x = new this.constructor(this);\n x.s = 1;\n return x;\n};\n/*\n * Return 1 if the value of this Big is greater than the value of Big y,\n * -1 if the value of this Big is less than the value of Big y, or\n * 0 if they have the same value.\n*/\nP.cmp = function (y) {\n var isneg, Big = this.constructor, x = new Big(this), y = new Big(y), xc = x.c, yc = y.c, i = x.s, j = y.s, k = x.e, l = y.e;\n // Either zero?\n if (!xc[0] || !yc[0])\n return !xc[0] ? !yc[0] ? 0 : -j : i;\n // Signs differ?\n if (i != j)\n return i;\n isneg = i < 0;\n // Compare exponents.\n if (k != l)\n return k > l ^ isneg ? 1 : -1;\n // Compare digit by digit.\n j = Math.max(xc.length, yc.length);\n for (i = 0; i < j; i++) {\n k = i < xc.length ? xc[i] : 0;\n l = i < yc.length ? yc[i] : 0;\n if (k != l)\n return k > l ^ isneg ? 1 : -1;\n }\n return 0;\n // old version (doesn't compare well trailing zeroes, e.g. 1.0 with 1.00)\n // j = (k = xc.length) < (l = yc.length) ? k : l;\n // // Compare digit by digit.\n // for (i = -1; ++i < j;) {\n // if (xc[i] != yc[i]) return xc[i] > yc[i] ^ isneg ? 1 : -1;\n // }\n // // Compare lengths.\n // return k == l ? 0 : k > l ^ isneg ? 1 : -1;\n};\n/*\n * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded,\n * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\n */\nP.div = function (y) {\n var Big = this.constructor, x = new Big(this), y = new Big(y), a = x.c, // dividend\n b = y.c, // divisor\n k = x.s == y.s ? 1 : -1, dp = Big.DP;\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP)\n throw Error(INVALID_DP);\n // Divisor is zero?\n if (!b[0])\n throw Error(DIV_BY_ZERO);\n // Dividend is 0? Return +-0.\n if (!a[0])\n return new Big(k * 0);\n var bl, bt, n, cmp, ri, bz = b.slice(), ai = bl = b.length, al = a.length, r = a.slice(0, bl), // remainder\n rl = r.length, q = y, // quotient\n qc = q.c = [], qi = 0, d = dp + (q.e = x.e - y.e) + 1; // number of digits of the result\n q.s = k;\n k = d < 0 ? 0 : d;\n // Create version of divisor with leading zero.\n bz.unshift(0);\n // Add zeros to make remainder as long as divisor.\n for (; rl++ < bl;)\n r.push(0);\n do {\n // n is how many times the divisor goes into current remainder.\n for (n = 0; n < 10; n++) {\n // Compare divisor and remainder.\n if (bl != (rl = r.length)) {\n cmp = bl > rl ? 1 : -1;\n }\n else {\n for (ri = -1, cmp = 0; ++ri < bl;) {\n if (b[ri] != r[ri]) {\n cmp = b[ri] > r[ri] ? 1 : -1;\n break;\n }\n }\n }\n // If divisor < remainder, subtract divisor from remainder.\n if (cmp < 0) {\n // Remainder can't be more than 1 digit longer than divisor.\n // Equalise lengths using divisor with extra leading zero?\n for (bt = rl == bl ? b : bz; rl;) {\n if (r[--rl] < bt[rl]) {\n ri = rl;\n for (; ri && !r[--ri];)\n r[ri] = 9;\n --r[ri];\n r[rl] += 10;\n }\n r[rl] -= bt[rl];\n }\n for (; !r[0];)\n r.shift();\n }\n else {\n break;\n }\n }\n // Add the digit n to the result array.\n qc[qi++] = cmp ? n : ++n;\n // Update the remainder.\n if (r[0] && cmp)\n r[rl] = a[ai] || 0;\n else\n r = [a[ai]];\n } while ((ai++ < al || r[0] !== UNDEFINED) && k--);\n // Leading zero? Do not remove if result is simply zero (qi == 1).\n if (!qc[0] && qi != 1) {\n // There can't be more than one zero.\n qc.shift();\n q.e--;\n }\n // Round?\n if (qi > d)\n round(q, dp, Big.RM, r[0] !== UNDEFINED);\n return q;\n};\n/*\n * Return true if the value of this Big is equal to the value of Big y, otherwise return false.\n */\nP.eq = function (y) {\n return !this.cmp(y);\n};\n/*\n * Return true if the value of this Big is greater than the value of Big y, otherwise return\n * false.\n */\nP.gt = function (y) {\n return this.cmp(y) > 0;\n};\n/*\n * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise\n * return false.\n */\nP.gte = function (y) {\n return this.cmp(y) > -1;\n};\n/*\n * Return true if the value of this Big is less than the value of Big y, otherwise return false.\n */\nP.lt = function (y) {\n return this.cmp(y) < 0;\n};\n/*\n * Return true if the value of this Big is less than or equal to the value of Big y, otherwise\n * return false.\n */\nP.lte = function (y) {\n return this.cmp(y) < 1;\n};\n/*\n * Return a new Big whose value is the value of this Big minus the value of Big y.\n */\nP.minus = P.sub = function (y) {\n var i, j, t, xlty, Big = this.constructor, x = new Big(this), y = new Big(y), a = x.s, b = y.s;\n // Signs differ?\n if (a != b) {\n y.s = -b;\n return x.plus(y);\n }\n var xc = x.c.slice(), xe = x.e, yc = y.c, ye = y.e;\n // Either zero?\n if (!xc[0] || !yc[0]) {\n // y is non-zero? x is non-zero? Or both are zero.\n return yc[0] ? (y.s = -b, y) : new Big(xc[0] ? x : 0);\n }\n // Determine which is the bigger number. Prepend zeros to equalise exponents.\n if (a = xe - ye) {\n if (xlty = a < 0) {\n a = -a;\n t = xc;\n }\n else {\n ye = xe;\n t = yc;\n }\n t.reverse();\n for (b = a; b--;)\n t.push(0);\n t.reverse();\n }\n else {\n // Exponents equal. Check digit by digit.\n j = ((xlty = xc.length < yc.length) ? xc : yc).length;\n for (a = b = 0; b < j; b++) {\n if (xc[b] != yc[b]) {\n xlty = xc[b] < yc[b];\n break;\n }\n }\n }\n // x < y? Point xc to the array of the bigger number.\n if (xlty) {\n t = xc;\n xc = yc;\n yc = t;\n y.s = -y.s;\n }\n /*\n * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only\n * needs to start at yc.length.\n */\n if ((b = (j = yc.length) - (i = xc.length)) > 0)\n for (; b--;)\n xc[i++] = 0;\n // Subtract yc from xc.\n for (b = i; j > a;) {\n if (xc[--j] < yc[j]) {\n for (i = j; i && !xc[--i];)\n xc[i] = 9;\n --xc[i];\n xc[j] += 10;\n }\n xc[j] -= yc[j];\n }\n // Remove trailing zeros.\n for (; xc[--b] === 0;)\n xc.pop();\n // Remove leading zeros and adjust exponent accordingly.\n for (; xc[0] === 0;) {\n xc.shift();\n --ye;\n }\n if (!xc[0]) {\n // n - n = +0\n y.s = 1;\n // Result must be zero.\n xc = [ye = 0];\n }\n y.c = xc;\n y.e = ye;\n return y;\n};\n/*\n * Return a new Big whose value is the value of this Big modulo the value of Big y.\n */\nP.mod = function (y) {\n var ygtx, Big = this.constructor, x = new Big(this), y = new Big(y), a = x.s, b = y.s;\n if (!y.c[0])\n throw Error(DIV_BY_ZERO);\n x.s = y.s = 1;\n ygtx = y.cmp(x) == 1;\n x.s = a;\n y.s = b;\n if (ygtx)\n return new Big(x);\n a = Big.DP;\n b = Big.RM;\n Big.DP = Big.RM = 0;\n x = x.div(y);\n Big.DP = a;\n Big.RM = b;\n return this.minus(x.times(y));\n};\n/*\n * Return a new Big whose value is the value of this Big plus the value of Big y.\n */\nP.plus = P.add = function (y) {\n var t, Big = this.constructor, x = new Big(this), y = new Big(y), a = x.s, b = y.s;\n // Signs differ?\n if (a != b) {\n y.s = -b;\n return x.minus(y);\n }\n var xe = x.e, xc = x.c, ye = y.e, yc = y.c;\n // Either zero? y is non-zero? x is non-zero? Or both are zero.\n if (!xc[0] || !yc[0])\n return yc[0] ? y : new Big(xc[0] ? x : a * 0);\n xc = xc.slice();\n // Prepend zeros to equalise exponents.\n // Note: reverse faster than unshifts.\n if (a = xe - ye) {\n if (a > 0) {\n ye = xe;\n t = yc;\n }\n else {\n a = -a;\n t = xc;\n }\n t.reverse();\n for (; a--;)\n t.push(0);\n t.reverse();\n }\n // Point xc to the longer array.\n if (xc.length - yc.length < 0) {\n t = yc;\n yc = xc;\n xc = t;\n }\n a = yc.length;\n // Only start adding at yc.length - 1 as the further digits of xc can be left as they are.\n for (b = 0; a; xc[a] %= 10)\n b = (xc[--a] = xc[a] + yc[a] + b) / 10 | 0;\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\n if (b) {\n xc.unshift(b);\n ++ye;\n }\n // Remove trailing zeros.\n for (a = xc.length; xc[--a] === 0;)\n xc.pop();\n y.c = xc;\n y.e = ye;\n return y;\n};\n/*\n * Return a Big whose value is the value of this Big raised to the power n.\n * If n is negative, round to a maximum of Big.DP decimal places using rounding\n * mode Big.RM.\n *\n * n {number} Integer, -MAX_POWER to MAX_POWER inclusive.\n */\nP.pow = function (n) {\n var Big = this.constructor, x = new Big(this), y = new Big(1), one = new Big(1), isneg = n < 0;\n if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER)\n throw Error(INVALID + 'exponent');\n if (isneg)\n n = -n;\n for (;;) {\n if (n & 1)\n y = y.times(x);\n n >>= 1;\n if (!n)\n break;\n x = x.times(x);\n }\n return isneg ? one.div(y) : y;\n};\n/*\n * Return a new Big whose value is the value of this Big rounded using rounding mode rm\n * to a maximum of dp decimal places, or, if dp is negative, to an integer which is a\n * multiple of 10**-dp.\n * If dp is not specified, round to 0 decimal places.\n * If rm is not specified, use Big.RM.\n *\n * dp? {number} Integer, -MAX_DP to MAX_DP inclusive.\n * rm? 0, 1, 2 or 3 (ROUND_DOWN, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_UP)\n */\nP.round = function (dp, rm) {\n var Big = this.constructor;\n if (dp === UNDEFINED)\n dp = 0;\n else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP)\n throw Error(INVALID_DP);\n return round(new Big(this), dp, rm === UNDEFINED ? Big.RM : rm);\n};\n/*\n * Return a new Big whose value is the square root of the value of this Big, rounded, if\n * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\n */\nP.sqrt = function () {\n var r, c, t, Big = this.constructor, x = new Big(this), s = x.s, e = x.e, half = new Big(0.5);\n // Zero?\n if (!x.c[0])\n return new Big(x);\n // Negative?\n if (s < 0)\n throw Error(NAME + 'No square root');\n // Estimate.\n s = Math.sqrt(x + '');\n // Math.sqrt underflow/overflow?\n // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent.\n if (s === 0 || s === 1 / 0) {\n c = x.c.join('');\n if (!(c.length + e & 1))\n c += '0';\n s = Math.sqrt(c);\n e = ((e + 1) / 2 | 0) - (e < 0 || e & 1);\n r = new Big((s == 1 / 0 ? '1e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + e);\n }\n else {\n r = new Big(s);\n }\n e = r.e + (Big.DP += 4);\n // Newton-Raphson iteration.\n do {\n t = r;\n r = half.times(t.plus(x.div(t)));\n } while (t.c.slice(0, e).join('') !== r.c.slice(0, e).join(''));\n return round(r, Big.DP -= 4, Big.RM);\n};\n/*\n * Return a new Big whose value is the value of this Big times the value of Big y.\n */\nP.times = P.mul = function (y) {\n var c, Big = this.constructor, x = new Big(this), y = new Big(y), xc = x.c, yc = y.c, a = xc.length, b = yc.length, i = x.e, j = y.e;\n // Determine sign of result.\n y.s = x.s == y.s ? 1 : -1;\n // Return signed 0 if either 0.\n if (!xc[0] || !yc[0])\n return new Big(y.s * 0);\n // Initialise exponent of result as x.e + y.e.\n y.e = i + j;\n // If array xc has fewer digits than yc, swap xc and yc, and lengths.\n if (a < b) {\n c = xc;\n xc = yc;\n yc = c;\n j = a;\n a = b;\n b = j;\n }\n // Initialise coefficient array of result with zeros.\n for (c = new Array(j = a + b); j--;)\n c[j] = 0;\n // Multiply.\n // i is initially xc.length.\n for (i = b; i--;) {\n b = 0;\n // a is yc.length.\n for (j = a + i; j > i;) {\n // Current sum of products at this digit position, plus carry.\n b = c[j] + yc[i] * xc[j - i - 1] + b;\n c[j--] = b % 10;\n // carry\n b = b / 10 | 0;\n }\n c[j] = (c[j] + b) % 10;\n }\n // Increment result exponent if there is a final carry, otherwise remove leading zero.\n if (b)\n ++y.e;\n else\n c.shift();\n // Remove trailing zeros.\n for (i = c.length; !c[--i];)\n c.pop();\n y.c = c;\n return y;\n};\n/*\n * Return a string representing the value of this Big in exponential notation to dp fixed decimal\n * places and rounded using Big.RM.\n *\n * dp? {number} Integer, 0 to MAX_DP inclusive.\n */\nP.toExponential = function (dp) {\n return stringify(this, 1, dp, dp);\n};\n/*\n * Return a string representing the value of this Big in normal notation to dp fixed decimal\n * places and rounded using Big.RM.\n *\n * dp? {number} Integer, 0 to MAX_DP inclusive.\n *\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\n */\nP.toFixed = function (dp) {\n return stringify(this, 2, dp, this.e + dp);\n};\n/*\n * Return a string representing the value of this Big rounded to sd significant digits using\n * Big.RM. Use exponential notation if sd is less than the number of digits necessary to represent\n * the integer part of the value in normal notation.\n *\n * sd {number} Integer, 1 to MAX_DP inclusive.\n */\nP.toPrecision = function (sd) {\n return stringify(this, 3, sd, sd - 1);\n};\n/*\n * Return a string representing the value of this Big.\n * Return exponential notation if this Big has a positive exponent equal to or greater than\n * Big.PE, or a negative exponent equal to or less than Big.NE.\n * Omit the sign for negative zero.\n */\nP.toString = function () {\n return stringify(this);\n};\n/*\n * Return a string representing the value of this Big.\n * Return exponential notation if this Big has a positive exponent equal to or greater than\n * Big.PE, or a negative exponent equal to or less than Big.NE.\n * Include the sign for negative zero.\n */\nP.valueOf = P.toJSON = function () {\n return stringify(this, 4);\n};\n// Export\nexport var Big = _Big_();\nexport default Big;\n//# sourceMappingURL=big.js.map","import Decimal from \"./lib/big\";\nexport default Decimal;\nexport const get_Zero = new Decimal(0);\nexport const get_One = new Decimal(1);\nexport const get_MinusOne = new Decimal(-1);\nexport const get_MaxValue = new Decimal(\"79228162514264337593543950335\");\nexport const get_MinValue = new Decimal(\"-79228162514264337593543950335\");\nexport function compare(x, y) {\n return x.cmp(y);\n}\nexport function equals(x, y) {\n return !x.cmp(y);\n}\nexport function abs(x) {\n return x.abs();\n}\nexport function round(x, digits = 0) {\n return x.round(digits, 2 /* ROUND_HALF_EVEN */);\n}\nexport function truncate(x) {\n return x.round(0, 0 /* ROUND_DOWN */);\n}\nexport function ceiling(x) {\n return x.round(0, x.cmp(0) >= 0 ? 3 /* ROUND_UP */ : 0 /* ROUND_DOWN */);\n}\nexport function floor(x) {\n return x.round(0, x.cmp(0) >= 0 ? 0 /* ROUND_DOWN */ : 3 /* ROUND_UP */);\n}\nexport function pow(x, n) {\n return x.pow(n);\n}\nexport function sqrt(x) {\n return x.sqrt();\n}\nexport function op_Addition(x, y) {\n return x.add(y);\n}\nexport function op_Subtraction(x, y) {\n return x.sub(y);\n}\nexport function op_Multiply(x, y) {\n return x.mul(y);\n}\nexport function op_Division(x, y) {\n return x.div(y);\n}\nexport function op_Modulus(x, y) {\n return x.mod(y);\n}\nexport function op_UnaryNegation(x) {\n const x2 = new Decimal(x);\n x2.s = -x2.s || 0;\n return x2;\n}\nexport const add = op_Addition;\nexport const subtract = op_Subtraction;\nexport const multiply = op_Multiply;\nexport const divide = op_Division;\nexport const remainder = op_Modulus;\nexport const negate = op_UnaryNegation;\nexport function toString(x) {\n return x.toString();\n}\nexport function tryParse(str) {\n try {\n return [true, new Decimal(str.trim())];\n }\n catch (_a) {\n return [false, get_Zero];\n }\n}\nexport function parse(str) {\n const [ok, value] = tryParse(str);\n if (ok) {\n return value;\n }\n else {\n throw new Error(\"Input string was not in a correct format.\");\n }\n}\nexport function toNumber(x) {\n return +x;\n}\nfunction decimalToHex(dec, bitSize) {\n const hex = new Uint8Array(bitSize / 4 | 0);\n let hexCount = 1;\n for (let d = 0; d < dec.length; d++) {\n let value = dec[d];\n for (let i = 0; i < hexCount; i++) {\n const digit = hex[i] * 10 + value | 0;\n hex[i] = digit & 0xF;\n value = digit >> 4;\n }\n if (value !== 0) {\n hex[hexCount++] = value;\n }\n }\n return hex.slice(0, hexCount); // digits in reverse order\n}\nfunction hexToDecimal(hex, bitSize) {\n const dec = new Uint8Array(bitSize * 301 / 1000 + 1 | 0);\n let decCount = 1;\n for (let d = hex.length - 1; d >= 0; d--) {\n let carry = hex[d];\n for (let i = 0; i < decCount; i++) {\n const val = dec[i] * 16 + carry | 0;\n dec[i] = (val % 10) | 0;\n carry = (val / 10) | 0;\n }\n while (carry > 0) {\n dec[decCount++] = (carry % 10) | 0;\n carry = (carry / 10) | 0;\n }\n }\n return dec.slice(0, decCount); // digits in reverse order\n}\nfunction setInt32Bits(hexDigits, bits, offset) {\n for (let i = 0; i < 8; i++) {\n hexDigits[offset + i] = (bits >> (i * 4)) & 0xF;\n }\n}\nfunction getInt32Bits(hexDigits, offset) {\n let bits = 0;\n for (let i = 0; i < 8; i++) {\n bits = bits | (hexDigits[offset + i] << (i * 4));\n }\n return bits;\n}\nexport function fromIntArray(bits) {\n return fromInts(bits[0], bits[1], bits[2], bits[3]);\n}\nexport function fromInts(low, mid, high, signExp) {\n const isNegative = signExp < 0;\n const scale = (signExp >> 16) & 0x7F;\n return fromParts(low, mid, high, isNegative, scale);\n}\nexport function fromParts(low, mid, high, isNegative, scale) {\n const bitSize = 96;\n const hexDigits = new Uint8Array(bitSize / 4);\n setInt32Bits(hexDigits, low, 0);\n setInt32Bits(hexDigits, mid, 8);\n setInt32Bits(hexDigits, high, 16);\n const decDigits = hexToDecimal(hexDigits, bitSize);\n scale = scale & 0x7F;\n const big = new Decimal(0);\n big.c = Array.from(decDigits.reverse());\n big.e = decDigits.length - scale - 1;\n big.s = isNegative ? -1 : 1;\n const d = new Decimal(big);\n return d;\n}\nexport function getBits(d) {\n const bitSize = 96;\n const decDigits = Uint8Array.from(d.c);\n const hexDigits = decimalToHex(decDigits, bitSize);\n const low = getInt32Bits(hexDigits, 0);\n const mid = getInt32Bits(hexDigits, 8);\n const high = getInt32Bits(hexDigits, 16);\n const decStr = d.toString();\n const dotPos = decStr.indexOf(\".\");\n const scale = dotPos < 0 ? 0 : decStr.length - dotPos - 1;\n const signExp = ((scale & 0x7F) << 16) | (d.s < 0 ? 0x80000000 : 0);\n return [low, mid, high, signExp];\n}\nexport function makeRangeStepFunction(step, last) {\n const stepComparedWithZero = step.cmp(get_Zero);\n if (stepComparedWithZero === 0) {\n throw new Error(\"The step of a range cannot be zero\");\n }\n const stepGreaterThanZero = stepComparedWithZero > 0;\n return (x) => {\n const comparedWithLast = x.cmp(last);\n if ((stepGreaterThanZero && comparedWithLast <= 0)\n || (!stepGreaterThanZero && comparedWithLast >= 0)) {\n return [x, op_Addition(x, step)];\n }\n else {\n return undefined;\n }\n };\n}\n//# sourceMappingURL=Decimal.js.map","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"hp-card-holder\",class:_vm.specialCardStyleClass},[(_vm.loaded)?_c('div',{staticClass:\"hp-card\"},[_c('div',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.title))]),_c('div',{staticClass:\"card-number\"},[(_vm.showIncidence)?_c('span',[_vm._v(_vm._s(Math.round(_vm.renderValues.lastDay.value / _vm.incidence)))]):_c('span',[_vm._v(_vm._s(_vm._f(\"number\")(_vm.renderValues.lastDay.value)))]),(_vm.field !== 'vaccination.administered2nd.toDate')?_c('div',{staticClass:\"card-percentage-diff\",class:_vm.diffClass},[_vm._v(\" \"+_vm._s(_vm._f(\"prefixDiff\")(_vm.renderValues.lastDay.percentDiff))+\"% \")]):_vm._e()]),_c('div',{staticClass:\"card-diff\",attrs:{\"id\":_vm.name}},[(_vm.field === 'vaccination.administered2nd.toDate')?_c('div',{staticClass:\"card-diff-item percent\"},[_c('div',{staticClass:\"trend-icon percent tests\"}),_c('span',{staticClass:\"percent tests\"},[_vm._v(_vm._s(Math.round(_vm.renderValues.lastDay.value / _vm.population * 100))+\"%\")])]):_vm._e(),(_vm.showIncidence)?_c('div',[_c('span',{staticClass:\"card-note\"},[_vm._v(_vm._s(_vm.$t('infocard.per100k'))+\" \")])]):_vm._e(),(_vm.showAbsolute)?_c('div',[_c('div',{staticClass:\"trend-icon\",class:[_vm.diffClass, _vm.iconClass]}),_c('span',{class:_vm.diffClass},[_vm._v(_vm._s(Math.abs(_vm.renderValues.lastDay.diff))+\" \")])]):_vm._e(),(_vm.showIn)?_c('div',{staticClass:\"card-diff-item\"},[_c('div',{staticClass:\"trend-icon in bad up\"}),(_vm.field === 'cases.active')?_c('span',{staticClass:\"in bad\"},[_vm._v(_vm._s(_vm.renderActiveValues(_vm.fieldNewCases).lastDay.value))]):_c('span',{staticClass:\"in bad\"},[_vm._v(_vm._s(_vm.renderTotalValues(_vm.totalIn)))])]):_vm._e(),(_vm.showOut)?_c('div',{staticClass:\"card-diff-item\"},[_c('div',{staticClass:\"trend-icon out good down\"}),(_vm.field === 'cases.active')?_c('span',{staticClass:\"out good\"},[_vm._v(_vm._s(_vm.renderActiveValues(_vm.fieldNewCases).lastDay.value - _vm.renderActiveValues(_vm.field).lastDay.diff - _vm.renderActiveValues(_vm.fieldDeceased).lastDay.value))]):_c('span',{staticClass:\"out good\"},[_vm._v(_vm._s(_vm.renderTotalValues(_vm.totalOut)))])]):_vm._e(),(_vm.showDeceased)?_c('div',{staticClass:\"card-diff-item\"},[_c('div',{staticClass:\"trend-icon deceased\"}),(_vm.field === 'cases.active')?_c('span',{staticClass:\"deceased\"},[_vm._v(_vm._s(_vm.renderActiveValues(_vm.fieldDeceased).lastDay.value))]):_c('span',{staticClass:\"deceased\"},[_vm._v(_vm._s(_vm.renderTotalValues(_vm.totalDeceased))+\" \")])]):_vm._e()]),(_vm.field === 'statePerTreatment.inHospital')?_c('div',{staticClass:\"card-title\",staticStyle:{\"font-weight\":\"300\"}},[_vm._v(\" \"+_vm._s(_vm.$t('noData.hospitals'))+\" \")]):_vm._e(),_c('div',{staticClass:\"data-time\"},[_vm._v(\" \"+_vm._s(_vm.$t('infocard.lastUpdated', { date: new Date(_vm.renderValues.lastDay.displayDate), }))+\" \")])]):_c('div',{staticClass:\"hp-card\"},[_c('div',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.title))]),_c('font-awesome-icon',{attrs:{\"icon\":\"spinner\",\"spin\":\"\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","