|
|
|
@ -808,6 +808,49 @@ kbn.toDuration = (size, decimals, timeScale) => { |
|
|
|
|
return strings.join(', '); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
kbn.toClock = (size, decimals) => { |
|
|
|
|
console.log(`size ${JSON.stringify(size, null, 2)}`); |
|
|
|
|
|
|
|
|
|
// < 1 second
|
|
|
|
|
if (size < 1000) { |
|
|
|
|
return moment.utc(size).format('SSS\\m\\s'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// < 1 minute
|
|
|
|
|
if (size < 60000) { |
|
|
|
|
let format = 'ss\\s:SSS\\m\\s'; |
|
|
|
|
if (decimals === 0) { |
|
|
|
|
format = 'ss\\s'; |
|
|
|
|
} |
|
|
|
|
return moment.utc(size).format(format); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// < 1 hour
|
|
|
|
|
if (size < 3600000) { |
|
|
|
|
let format = 'mm\\m:ss\\s:SSS\\m\\s'; |
|
|
|
|
if (decimals === 0) { |
|
|
|
|
format = 'mm\\m'; |
|
|
|
|
} else if (decimals === 1) { |
|
|
|
|
format = 'mm\\m:ss\\s'; |
|
|
|
|
} |
|
|
|
|
return moment.utc(size).format(format); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
let format = 'mm\\m:ss\\s:SSS\\m\\s'; |
|
|
|
|
|
|
|
|
|
const hours = ('0' + Math.floor(moment.duration(size, 'milliseconds').asHours())).slice(-2); |
|
|
|
|
|
|
|
|
|
if (decimals === 0) { |
|
|
|
|
format = ''; |
|
|
|
|
} else if (decimals === 1) { |
|
|
|
|
format = 'mm\\m'; |
|
|
|
|
} else if (decimals === 2) { |
|
|
|
|
format = 'mm\\m:ss\\s'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return format ? `${hours}:${moment.utc(size).format(format)}` : hours; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
kbn.valueFormats.dtdurationms = (size, decimals) => { |
|
|
|
|
return kbn.toDuration(size, decimals, 'millisecond'); |
|
|
|
|
}; |
|
|
|
@ -824,6 +867,14 @@ kbn.valueFormats.timeticks = (size, decimals, scaledDecimals) => { |
|
|
|
|
return kbn.valueFormats.s(size / 100, decimals, scaledDecimals); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
kbn.valueFormats.clockms = (size, decimals) => { |
|
|
|
|
return kbn.toClock(size, decimals); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
kbn.valueFormats.clocks = (size, decimals) => { |
|
|
|
|
return kbn.toClock(size * 1000, decimals); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
kbn.valueFormats.dateTimeAsIso = (epoch, isUtc) => { |
|
|
|
|
const time = isUtc ? moment.utc(epoch) : moment(epoch); |
|
|
|
|
|
|
|
|
@ -901,6 +952,8 @@ kbn.getUnitFormats = () => { |
|
|
|
|
{ text: 'duration (s)', value: 'dtdurations' }, |
|
|
|
|
{ text: 'duration (hh:mm:ss)', value: 'dthms' }, |
|
|
|
|
{ text: 'Timeticks (s/100)', value: 'timeticks' }, |
|
|
|
|
{ text: 'clock (ms)', value: 'clockms' }, |
|
|
|
|
{ text: 'clock (s)', value: 'clocks' }, |
|
|
|
|
], |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|