UNPKG

@fusioncharts/fusiontime

Version:

FusionCharts JavaScript time-series charting framework

1 lines 3.18 kB
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule=true;exports.getFormatStore=exports.getAtomicity=void 0;var _datetimeEnums=require("@fusioncharts/utils/src/datetime-enums");var _validateBinsize=_interopRequireDefault(require("./validate-binsize"));var getFormatStore=exports.getFormatStore=function getFormatStore(specifier){if(specifier===void 0){specifier=""}var timeUnits=[],store={};if(/%[_ -]?[cfLQ]/.test(specifier)){timeUnits.push(_datetimeEnums.DatetimeUnits.Millisecond);store[_datetimeEnums.DatetimeUnits.Millisecond.name]={}}if(/%[_ -]?[sSX]/.test(specifier)){timeUnits.push(_datetimeEnums.DatetimeUnits.Second);store[_datetimeEnums.DatetimeUnits.Second.name]={}}if(/%[_ -]?M/.test(specifier)){timeUnits.push(_datetimeEnums.DatetimeUnits.Minute);store[_datetimeEnums.DatetimeUnits.Minute.name]={}}if(/%[_ -]?[HI]/.test(specifier)){timeUnits.push(_datetimeEnums.DatetimeUnits.Hour);store[_datetimeEnums.DatetimeUnits.Hour.name]={}}if(/%[_ -]?[dejuwx]/.test(specifier)){timeUnits.push(_datetimeEnums.DatetimeUnits.Day);store[_datetimeEnums.DatetimeUnits.Day.name]={}}if(/%[_ -]?[dejuwxbBmyY]/.test(specifier)){timeUnits.push(_datetimeEnums.DatetimeUnits.Week);store[_datetimeEnums.DatetimeUnits.Week.name]={}}if(/%[_ -]?[bBm]/.test(specifier)){timeUnits.push(_datetimeEnums.DatetimeUnits.Month);store[_datetimeEnums.DatetimeUnits.Month.name]={}}if(/%[_ -]?[yY]/.test(specifier)){timeUnits.push(_datetimeEnums.DatetimeUnits.Year);store[_datetimeEnums.DatetimeUnits.Year.name]={}}return{timeUnits:timeUnits,store:store}},getAtomicity=exports.getAtomicity=function getAtomicity(_ref){var _ref$timeUnits=_ref.timeUnits,timeUnits=_ref$timeUnits===void 0?[]:_ref$timeUnits,_ref$store=_ref.store,store=_ref$store===void 0?{}:_ref$store,index=_ref.index,_ref$data=_ref.data,data=_ref$data===void 0?[]:_ref$data,bins=_ref.bins,intervalIndexMap=_ref.intervalIndexMap,ms=_ref.ms;var i,diff,prevDate,currentDate,bin,count,minInfo={count:0},multipliersCountMap,len=data.length;if(!timeUnits.length){return[]}if(len===1||len===0){return[timeUnits[0].ms,1,timeUnits[0].ms]}timeUnits.forEach((function(unit){var unitName=unit.name,intervals=store[unitName];if(!intervals)return;Object.keys(intervals).forEach((function(interval){var intervalCount=intervals[interval];if(minInfo.count<=intervalCount){minInfo.count=intervalCount;Object.assign(minInfo,{multiplier:Number(interval),unit:{name:unitName,ms:bins[intervalIndexMap[unitName.toLowerCase()]][2]}})}}))}));for(i=1;i<len;++i){prevDate=data[i-1][index];currentDate=data[i][index];diff=ms.count(prevDate,currentDate);if(!Math.max(0,diff))continue;bin=(0,_validateBinsize.default)(bins,intervalIndexMap,timeUnits,diff);multipliersCountMap=store[bin.unit.name];if(!multipliersCountMap[bin.multiplier]){multipliersCountMap[bin.multiplier]=0}count=++multipliersCountMap[bin.multiplier];if(minInfo.count<count||minInfo.count===count&&minInfo.unit.ms*minInfo.multiplier>bin.unit.ms*bin.multiplier){minInfo.count=count;Object.assign(minInfo,bin)}}return minInfo.count?[minInfo.unit.ms,minInfo.multiplier,minInfo.multiplier*minInfo.unit.ms]:[timeUnits[0].ms,1,timeUnits[0].ms]};