@sis-cc/dotstatsuite-components 17.10.0 → 17.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/rules/src/chart/getAxisOptions.js +1 -1
- package/lib/rules/src/chart/getTooltipOptions.js +1 -1
- package/lib/rules/src/factories/timeline-series.js +1 -0
- package/lib/rules2/src/refineTimePeriod.js +10 -11
- package/package.json +1 -1
- package/src/rules/src/chart/getAxisOptions.js +2 -2
- package/src/rules/src/chart/getTooltipOptions.js +1 -1
- package/src/rules/src/factories/timeline-series.js +1 -0
- package/src/rules2/src/refineTimePeriod.js +10 -13
|
@@ -85,7 +85,7 @@ var getTimeProc = exports.getTimeProc = function getTimeProc(frequency) {
|
|
|
85
85
|
}
|
|
86
86
|
var format = R.pipe(R.mergeRight(defaultTimeFormats), R.ifElse(R.has(frequency), R.prop(frequency), R.prop('A')))(timeFormats);
|
|
87
87
|
return function (datum) {
|
|
88
|
-
return _dateFns2.default.format(datum, format, { locale: (0, _date.getLocale)(locale) });
|
|
88
|
+
return _dateFns2.default.format((0, _date.dateWithoutTZ)(new Date(datum)), format, { locale: (0, _date.getLocale)(locale) });
|
|
89
89
|
};
|
|
90
90
|
};
|
|
91
91
|
|
|
@@ -58,7 +58,7 @@ var getTooltipOptions = exports.getTooltipOptions = function getTooltipOptions(d
|
|
|
58
58
|
}
|
|
59
59
|
})], [R.always(R.equals(_constants.TIMELINE, type)), R.mergeRight({
|
|
60
60
|
layout: function layout(serie, datum, color) {
|
|
61
|
-
return '\n <div style="' + primaryFonts(color) + '">\n <div style="text-align: right;">\n ' + R.pipe(R.propOr({}, 'dimensionValues'), R.values, R.pluck('name'), R.join('<br />'))(datum) + '\n </div>\n <div style="text-align: right;">\n ' +
|
|
61
|
+
return '\n <div style="' + primaryFonts(color) + '">\n <div style="text-align: right;">\n ' + R.pipe(R.propOr({}, 'dimensionValues'), R.values, R.pluck('name'), R.join('<br />'))(datum) + '\n </div>\n <div style="text-align: right;">\n ' + datum.timeLabel + '\n </div>\n <div style="text-align: right; ' + secondaryFonts + '">\n ' + (datum.formatedValue || valueFormatter(datum.y)) + '\n </div>\n </div>\n ';
|
|
62
62
|
}
|
|
63
63
|
})], [R.always(R.equals(_constants.H_SYMBOL, type)), R.mergeRight({
|
|
64
64
|
layout: function layout(serie, datum, color) {
|
|
@@ -80,6 +80,7 @@ var series = function series(observations, dimensions, dimensionsWithValuesIndex
|
|
|
80
80
|
var datapoint = {
|
|
81
81
|
x: timePeriod.start,
|
|
82
82
|
y: (0, _head3.default)(o),
|
|
83
|
+
timeLabel: timePeriod.name,
|
|
83
84
|
formatedValue: (0, _observationFormater.getFormatedObservation)(o, formaterAttrs),
|
|
84
85
|
dimensionValues: getDimensionValues(oDimensionValuesIndexes, dimensions, dimensionsWithValuesIndexedById, timePeriodDimension.id, display)
|
|
85
86
|
//index: Number(timePeriodDimensionValueIndex)
|
|
@@ -67,11 +67,6 @@ var getFormat = function getFormat(freqDisplay) {
|
|
|
67
67
|
var getEndDate = function getEndDate(start, mult, duration) {
|
|
68
68
|
var adder = getAdder(duration);
|
|
69
69
|
var endDate = adder(start, Number(mult));
|
|
70
|
-
var startTZ = start.getTimezoneOffset();
|
|
71
|
-
var endTZ = endDate.getTimezoneOffset();
|
|
72
|
-
if (startTZ !== endTZ) {
|
|
73
|
-
endDate = dateFns.addMinutes(endDate, Math.abs(endTZ) - Math.abs(startTZ));
|
|
74
|
-
}
|
|
75
70
|
return dateFns.subSeconds(endDate, 1);
|
|
76
71
|
};
|
|
77
72
|
|
|
@@ -106,9 +101,12 @@ var computeName = function computeName(start, end, freqDisplay, locale, format)
|
|
|
106
101
|
|
|
107
102
|
var getStartDate = exports.getStartDate = function getStartDate(start) {
|
|
108
103
|
if (!R.includes('T', start) && !R.endsWith('Z', start)) {
|
|
109
|
-
return new Date(start);
|
|
104
|
+
return (0, _date.dateWithoutTZ)(new Date(start));
|
|
110
105
|
}
|
|
111
|
-
|
|
106
|
+
return new Date(start);
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
var dateWithTZ = function dateWithTZ(date) {
|
|
112
110
|
return dateFns.addMinutes(date, -date.getTimezoneOffset());
|
|
113
111
|
};
|
|
114
112
|
|
|
@@ -122,7 +120,7 @@ var refineTimePeriod = exports.refineTimePeriod = function refineTimePeriod(time
|
|
|
122
120
|
if (R.length(split) !== 2) {
|
|
123
121
|
var _start = getStartDate(R.prop('start', timePeriod));
|
|
124
122
|
var end = getStartDate(R.prop('end', timePeriod));
|
|
125
|
-
return (0, _extends3.default)({}, timePeriod, { start: _start.toISOString(), end: end.toISOString() });
|
|
123
|
+
return (0, _extends3.default)({}, timePeriod, { start: dateWithTZ(_start).toISOString(), end: dateWithTZ(end).toISOString() });
|
|
126
124
|
}
|
|
127
125
|
|
|
128
126
|
var _split = (0, _slicedToArray3.default)(split, 2),
|
|
@@ -145,11 +143,12 @@ var refineTimePeriod = exports.refineTimePeriod = function refineTimePeriod(time
|
|
|
145
143
|
var endDate = getEndDate(startDate, mult, duration);
|
|
146
144
|
var freqDisplay = computeDisplayFreq(start, duration);
|
|
147
145
|
var format = freqDisplay === 'M' ? monthlyFormat : getFormat(freqDisplay);
|
|
148
|
-
var name = computeName(
|
|
146
|
+
var name = computeName(startDate, endDate, freqDisplay, locale, format);
|
|
147
|
+
|
|
149
148
|
return (0, _extends3.default)({}, timePeriod, {
|
|
150
149
|
id: id,
|
|
151
150
|
name: name,
|
|
152
|
-
start: startDate.toISOString(),
|
|
153
|
-
end: endDate.toISOString()
|
|
151
|
+
start: dateWithTZ(startDate).toISOString(),
|
|
152
|
+
end: dateWithTZ(endDate).toISOString()
|
|
154
153
|
});
|
|
155
154
|
};
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@ import isFriday from 'date-fns/is_friday';
|
|
|
9
9
|
import isSaturday from 'date-fns/is_saturday';
|
|
10
10
|
import isSunday from 'date-fns/is_sunday';
|
|
11
11
|
import getISOWeek from 'date-fns/get_iso_week';
|
|
12
|
-
import { getLocale } from '../date';
|
|
12
|
+
import { getLocale, dateWithoutTZ } from '../date';
|
|
13
13
|
import {
|
|
14
14
|
BAR,
|
|
15
15
|
CHORO,
|
|
@@ -53,7 +53,7 @@ export const getTimeProc = (frequency, timeFormats = {}, locale) => {
|
|
|
53
53
|
R.prop('A')
|
|
54
54
|
)
|
|
55
55
|
)(timeFormats);
|
|
56
|
-
return datum => dateFns.format(datum, format, { locale: getLocale(locale) });
|
|
56
|
+
return datum => dateFns.format(dateWithoutTZ(new Date(datum)), format, { locale: getLocale(locale) });
|
|
57
57
|
};
|
|
58
58
|
|
|
59
59
|
const getTimeFrequency = (data) => {
|
|
@@ -109,7 +109,7 @@ export const getTooltipOptions = (data, type, options, fonts={}, timeFormats={}
|
|
|
109
109
|
${R.pipe(R.propOr({}, 'dimensionValues'), R.values, R.pluck('name'), R.join('<br />'))(datum)}
|
|
110
110
|
</div>
|
|
111
111
|
<div style="text-align: right;">
|
|
112
|
-
${
|
|
112
|
+
${datum.timeLabel}
|
|
113
113
|
</div>
|
|
114
114
|
<div style="text-align: right; ${secondaryFonts}">
|
|
115
115
|
${datum.formatedValue || valueFormatter(datum.y)}
|
|
@@ -39,6 +39,7 @@ const series = (
|
|
|
39
39
|
const datapoint = {
|
|
40
40
|
x: timePeriod.start,
|
|
41
41
|
y: head(o),
|
|
42
|
+
timeLabel: timePeriod.name,
|
|
42
43
|
formatedValue: getFormatedObservation(o, formaterAttrs),
|
|
43
44
|
dimensionValues: getDimensionValues(
|
|
44
45
|
oDimensionValuesIndexes, dimensions, dimensionsWithValuesIndexedById, timePeriodDimension.id, display
|
|
@@ -52,12 +52,7 @@ const getFormat = (freqDisplay) => {
|
|
|
52
52
|
|
|
53
53
|
const getEndDate = (start, mult, duration) => {
|
|
54
54
|
const adder = getAdder(duration);
|
|
55
|
-
|
|
56
|
-
const startTZ = start.getTimezoneOffset();
|
|
57
|
-
const endTZ = endDate.getTimezoneOffset();
|
|
58
|
-
if (startTZ !== endTZ) {
|
|
59
|
-
endDate = dateFns.addMinutes(endDate, (Math.abs(endTZ) - Math.abs(startTZ)));
|
|
60
|
-
}
|
|
55
|
+
const endDate = adder(start, Number(mult));
|
|
61
56
|
return dateFns.subSeconds(endDate, 1);
|
|
62
57
|
};
|
|
63
58
|
|
|
@@ -94,19 +89,20 @@ const computeName = (start, end, freqDisplay, locale, format) => {
|
|
|
94
89
|
|
|
95
90
|
export const getStartDate = (start) => {
|
|
96
91
|
if (!R.includes('T', start) && !R.endsWith('Z', start)) {
|
|
97
|
-
return new Date(start);
|
|
92
|
+
return dateWithoutTZ(new Date(start));
|
|
98
93
|
}
|
|
99
|
-
|
|
100
|
-
return dateFns.addMinutes(date, -date.getTimezoneOffset());
|
|
94
|
+
return new Date(start);
|
|
101
95
|
};
|
|
102
96
|
|
|
97
|
+
const dateWithTZ = date => dateFns.addMinutes(date, -date.getTimezoneOffset());
|
|
98
|
+
|
|
103
99
|
export const refineTimePeriod = (timePeriod, { locale, monthlyFormat='YYYY-MMM' }) => {
|
|
104
100
|
const { id } = timePeriod;
|
|
105
101
|
const split = R.split('/', id);
|
|
106
102
|
if (R.length(split) !== 2) {
|
|
107
103
|
const start = getStartDate(R.prop('start', timePeriod));
|
|
108
104
|
const end = getStartDate(R.prop('end', timePeriod))
|
|
109
|
-
return ({ ...timePeriod, start: start.toISOString(), end: end.toISOString() });
|
|
105
|
+
return ({ ...timePeriod, start: dateWithTZ(start).toISOString(), end: dateWithTZ(end).toISOString() });
|
|
110
106
|
}
|
|
111
107
|
const [start, range] = split;
|
|
112
108
|
const startDate = getStartDate(start);
|
|
@@ -119,12 +115,13 @@ export const refineTimePeriod = (timePeriod, { locale, monthlyFormat='YYYY-MMM'
|
|
|
119
115
|
const endDate = getEndDate(startDate, mult, duration);
|
|
120
116
|
const freqDisplay = computeDisplayFreq(start, duration);
|
|
121
117
|
const format = freqDisplay === 'M' ? monthlyFormat : getFormat(freqDisplay);
|
|
122
|
-
const name = computeName(
|
|
118
|
+
const name = computeName(startDate, endDate, freqDisplay, locale, format);
|
|
119
|
+
|
|
123
120
|
return ({
|
|
124
121
|
...timePeriod,
|
|
125
122
|
id,
|
|
126
123
|
name,
|
|
127
|
-
start: startDate.toISOString(),
|
|
128
|
-
end: endDate.toISOString()
|
|
124
|
+
start: dateWithTZ(startDate).toISOString(),
|
|
125
|
+
end: dateWithTZ(endDate).toISOString()
|
|
129
126
|
})
|
|
130
127
|
};
|