UNPKG

@grafana/ui

Version:
69 lines (64 loc) 2.33 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var jsxRuntime = require('react/jsx-runtime'); var React = require('react'); var e2eSelectors = require('@grafana/e2e-selectors'); var i18n = require('@grafana/i18n'); var Combobox = require('../Combobox/Combobox.cjs'); "use strict"; function isWeekStart(value) { return ["saturday", "sunday", "monday"].includes(value); } function getWeekStart(override) { var _a, _b; if (override && isWeekStart(override)) { return override; } const preference = (_b = (_a = window == null ? void 0 : window.grafanaBootData) == null ? void 0 : _a.user) == null ? void 0 : _b.weekStart; if (preference && isWeekStart(preference)) { return preference; } return "monday"; } const WeekStartPicker = (props) => { const { onChange, width, autoFocus = false, onBlur, value, disabled = false, inputId } = props; const weekStarts = React.useMemo( () => [ { value: "", label: i18n.t("grafana-ui.week-start-picker.weekStarts-label-default", "Default") }, { value: "saturday", label: i18n.t("grafana-ui.week-start-picker.weekStarts-label-saturday", "Saturday") }, { value: "sunday", label: i18n.t("grafana-ui.week-start-picker.weekStarts-label-sunday", "Sunday") }, { value: "monday", label: i18n.t("grafana-ui.week-start-picker.weekStarts-label-monday", "Monday") } ], [] ); const onChangeWeekStart = React.useCallback( (selectable) => { if (selectable && selectable.value !== void 0) { onChange(isWeekStart(selectable.value) ? selectable.value : void 0); } }, [onChange] ); const selected = React.useMemo(() => { var _a, _b; return (_b = (_a = weekStarts.find((item) => item.value === value)) == null ? void 0 : _a.value) != null ? _b : ""; }, [value, weekStarts]); return /* @__PURE__ */ jsxRuntime.jsx( Combobox.Combobox, { id: inputId, value: selected, placeholder: e2eSelectors.selectors.components.WeekStartPicker.placeholder, autoFocus, width, options: weekStarts, onChange: onChangeWeekStart, onBlur, disabled } ); }; exports.WeekStartPicker = WeekStartPicker; exports.getWeekStart = getWeekStart; exports.isWeekStart = isWeekStart; //# sourceMappingURL=WeekStartPicker.cjs.map