| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import moment, { Moment } from 'moment';
- import { TimeOption, TimeRange, TIME_FORMAT } from '@grafana/ui';
- import * as dateMath from '@grafana/ui/src/utils/datemath';
- import { describeTimeRange } from '@grafana/ui/src/utils/rangeutil';
- export const mapTimeOptionToTimeRange = (
- timeOption: TimeOption,
- isTimezoneUtc: boolean,
- timezone?: dateMath.Timezone
- ): TimeRange => {
- const fromMoment = stringToMoment(timeOption.from, isTimezoneUtc, false, timezone);
- const toMoment = stringToMoment(timeOption.to, isTimezoneUtc, true, timezone);
- return { from: fromMoment, to: toMoment, raw: { from: timeOption.from, to: timeOption.to } };
- };
- export const stringToMoment = (
- value: string,
- isTimezoneUtc: boolean,
- roundUp?: boolean,
- timezone?: dateMath.Timezone
- ): Moment => {
- if (value.indexOf('now') !== -1) {
- if (!dateMath.isValid(value)) {
- return moment();
- }
- const parsed = dateMath.parse(value, roundUp, timezone);
- return parsed || moment();
- }
- if (isTimezoneUtc) {
- return moment.utc(value, TIME_FORMAT);
- }
- return moment(value, TIME_FORMAT);
- };
- export const mapTimeRangeToRangeString = (timeRange: TimeRange): string => {
- return describeTimeRange(timeRange.raw);
- };
- export const isValidTimeString = (text: string) => dateMath.isValid(text);
|