@@ -2,6 +2,8 @@ function $(expr, con) {
2
2
return typeof expr === "string" ? ( con || document ) . querySelector ( expr ) : expr || null ;
3
3
}
4
4
5
+
6
+
5
7
$ . create = ( tag , o ) => {
6
8
var element = document . createElement ( tag ) ;
7
9
@@ -64,6 +66,10 @@ function getElementContentWidth(element) {
64
66
return element . clientWidth - padding ;
65
67
}
66
68
69
+
70
+
71
+
72
+
67
73
function fire ( target , type , properties ) {
68
74
var evt = document . createEvent ( "HTMLEvents" ) ;
69
75
@@ -76,6 +82,8 @@ function fire(target, type, properties) {
76
82
return target . dispatchEvent ( evt ) ;
77
83
}
78
84
85
+ // https://css-tricks.com/snippets/javascript/loop-queryselectorall-matches/
86
+
79
87
const BASE_MEASURES = {
80
88
margins : {
81
89
top : 10 ,
@@ -151,6 +159,8 @@ const DEFAULT_CHART_COLORS = ['light-blue', 'blue', 'violet', 'red', 'orange',
151
159
'yellow' , 'green' , 'light-green' , 'purple' , 'magenta' , 'light-grey' , 'dark-grey' ] ;
152
160
const HEATMAP_COLORS_GREEN = [ '#ebedf0' , '#c6e48b' , '#7bc96f' , '#239a3b' , '#196127' ] ;
153
161
162
+
163
+
154
164
const DEFAULT_COLORS = {
155
165
bar : DEFAULT_CHART_COLORS ,
156
166
line : DEFAULT_CHART_COLORS ,
@@ -292,6 +302,19 @@ function floatTwo(d) {
292
302
return parseFloat ( d . toFixed ( 2 ) ) ;
293
303
}
294
304
305
+ /**
306
+ * Returns whether or not two given arrays are equal.
307
+ * @param {Array } arr1 First array
308
+ * @param {Array } arr2 Second array
309
+ */
310
+
311
+
312
+ /**
313
+ * Shuffles array in place. ES6 version
314
+ * @param {Array } array An array containing the items.
315
+ */
316
+
317
+
295
318
/**
296
319
* Fill an array with extra points
297
320
* @param {Array } array Array
@@ -317,6 +340,11 @@ function getStringWidth(string, charWidth) {
317
340
return ( string + "" ) . length * charWidth ;
318
341
}
319
342
343
+
344
+
345
+ // https://stackoverflow.com/a/29325222
346
+
347
+
320
348
function getPositionByAngle ( angle , radius ) {
321
349
return {
322
350
x : Math . sin ( angle * ANGLE_RATIO ) * radius ,
@@ -482,6 +510,8 @@ function makeSVGGroup(className, transform='', parent=undefined) {
482
510
return createSVG ( 'g' , args ) ;
483
511
}
484
512
513
+
514
+
485
515
function makePath ( pathStr , className = '' , stroke = 'none' , fill = 'none' ) {
486
516
return createSVG ( 'path' , {
487
517
className : className ,
@@ -1703,14 +1733,17 @@ class AggregationChart extends BaseChart {
1703
1733
1704
1734
const NO_OF_YEAR_MONTHS = 12 ;
1705
1735
const NO_OF_DAYS_IN_WEEK = 7 ;
1736
+
1706
1737
const NO_OF_MILLIS = 1000 ;
1707
1738
const SEC_IN_DAY = 86400 ;
1708
1739
1709
1740
const MONTH_NAMES = [ "January" , "February" , "March" , "April" , "May" ,
1710
1741
"June" , "July" , "August" , "September" , "October" , "November" , "December" ] ;
1711
1742
1743
+
1712
1744
const DAY_NAMES_SHORT = [ "Sun" , "Mon" , "Tue" , "Wed" , "Thu" , "Fri" , "Sat" ] ;
1713
1745
1746
+
1714
1747
// https://stackoverflow.com/a/11252167/6495043
1715
1748
function treatAsUtc ( date ) {
1716
1749
let result = new Date ( date ) ;
@@ -1732,6 +1765,10 @@ function clone(date) {
1732
1765
return new Date ( date . getTime ( ) ) ;
1733
1766
}
1734
1767
1768
+
1769
+
1770
+
1771
+
1735
1772
// export function getMonthsBetween(startDate, endDate) {}
1736
1773
1737
1774
function getWeeksBetween ( startDate , endDate ) {
@@ -2606,6 +2643,8 @@ function getZeroIndex(yPts) {
2606
2643
return zeroIndex ;
2607
2644
}
2608
2645
2646
+
2647
+
2609
2648
function getIntervalSize ( orderedArray ) {
2610
2649
return orderedArray [ 1 ] - orderedArray [ 0 ] ;
2611
2650
}
@@ -2618,6 +2657,10 @@ function scale(val, yAxis) {
2618
2657
return floatTwo ( yAxis . zeroLine - val * yAxis . scaleMultiplier ) ;
2619
2658
}
2620
2659
2660
+
2661
+
2662
+
2663
+
2621
2664
function getClosestInArray ( goal , arr , index = false ) {
2622
2665
let closest = arr . reduce ( function ( prev , curr ) {
2623
2666
return ( Math . abs ( curr - goal ) < Math . abs ( prev - goal ) ? curr : prev ) ;
0 commit comments