@grafana/ui
Version:
Grafana Components Library
47 lines (42 loc) • 1.43 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var jsxRuntime = require('react/jsx-runtime');
var css = require('@emotion/css');
var data = require('@grafana/data');
var ThemeContext = require('../../../themes/ThemeContext.cjs');
;
const TimeZoneOffset = (props) => {
const { timestamp, timeZone, className } = props;
const styles = ThemeContext.useStyles2(getStyles);
if (typeof timeZone !== "string") {
return null;
}
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: css.cx(styles.offset, className), children: formatUtcOffset(timestamp, timeZone) }) });
};
const formatUtcOffset = (timestamp, timeZone) => {
const offset = data.dateTimeFormat(timestamp, {
timeZone,
format: "Z"
});
return `UTC${offset}`;
};
const getStyles = (theme) => {
const textBase = css.css({
fontWeight: "normal",
fontSize: theme.typography.size.sm,
color: theme.colors.text.secondary,
whiteSpace: "normal"
});
return {
offset: css.css(textBase, {
color: theme.colors.text.primary,
background: theme.colors.background.secondary,
padding: "2px 5px",
borderRadius: theme.shape.radius.default,
marginLeft: "4px"
})
};
};
exports.TimeZoneOffset = TimeZoneOffset;
exports.formatUtcOffset = formatUtcOffset;
//# sourceMappingURL=TimeZoneOffset.cjs.map