You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
2.8 KiB

4 months ago
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.labelFormatter = labelFormatter;
exports.parseByTime = parseByTime;
exports.parseBySeries = parseBySeries;
var time_1 = require("../../util/time");
function labelFormatter(time, interval) {
if (typeof time === 'number') {
return parseBySeries(time);
}
return parseByTime(time, interval);
}
function parseByTime(time, interval) {
var date = new Date(time);
switch (interval) {
case 'half-hour':
case 'hour':
case 'four-hour':
if ([0, 6, 12, 18].includes(date.getHours()) && date.getMinutes() === 0) {
// HH:mm\nYYYY-MM-DD
return (0, time_1.formatTime)(date, 'HH:mm\nYYYY-MM-DD');
}
// HH:mm
return (0, time_1.formatTime)(date, 'HH:mm');
case 'half-day':
// A\nYYYY-MM-DD
if (date.getHours() < 12) {
return "AM\n".concat((0, time_1.formatTime)(date, 'YYYY-MM-DD'));
}
// A
return 'PM';
case 'day':
if ([1, 10, 20].includes(date.getDate())) {
// DD\nYYYY-MM
return (0, time_1.formatTime)(date, 'DD\nYYYY-MM');
}
// DD
return (0, time_1.formatTime)(date, 'DD');
case 'week':
if (date.getDate() <= 7) {
// DD\nYYYY-MM
return (0, time_1.formatTime)(date, 'DD\nYYYY-MM');
}
// DD
return (0, time_1.formatTime)(date, 'DD');
case 'month':
if ([0, 6].includes(date.getMonth())) {
// MM月\nYYYY
return (0, time_1.formatTime)(date, 'MM月\nYYYY');
}
// MM月
return (0, time_1.formatTime)(date, 'MM月');
case 'season':
if ([0].includes(date.getMonth())) {
// MM月\nYYYY
return (0, time_1.formatTime)(date, 'MM月\nYYYY');
}
// MM月
return (0, time_1.formatTime)(date, 'MM月');
case 'year':
// YYYY
return (0, time_1.formatTime)(date, 'YYYY');
default:
// YYYY-MM-DD HH:mm
return (0, time_1.formatTime)(date, 'YYYY-MM-DD HH:mm');
}
}
/**
* 按照序列数据解析如第 1, 2, 3
* @param time
* @param interval
*/
function parseBySeries(time) {
var hours = String(Math.floor(time / 3600)).padStart(2, '0');
var minutes = String(Math.floor((time % 3600) / 60)).padStart(2, '0');
var seconds = String(Math.floor(time % 60)).padStart(2, '0');
if (time < 3600) {
// mm:ss
return "".concat(minutes, ":").concat(seconds);
}
return "".concat(hours, ":").concat(minutes, ":").concat(seconds);
}
//# sourceMappingURL=utils.js.map