@grafana/ui
Version:
Grafana Components Library
59 lines (54 loc) • 2 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var jsxRuntime = require('react/jsx-runtime');
var React = require('react');
var RadioButtonGroup = require('../Forms/RadioButtonGroup/RadioButtonGroup.cjs');
var utils = require('./utils.cjs');
;
function buildScopeOptions(providedUniqScopes, currentScope, allowedScopes = Array.from(providedUniqScopes)) {
const uniqScopes = new Set(providedUniqScopes);
if (allowedScopes) {
uniqScopes.forEach((scope) => {
if (!allowedScopes.includes(scope)) {
uniqScopes.delete(scope);
}
});
}
const scopeNotFound = currentScope && !uniqScopes.has(currentScope);
if (scopeNotFound) {
uniqScopes.add(currentScope);
}
const arr = [
{
label: utils.getGroupLabelForScope("series"),
description: utils.getGroupDescriptionForScope("series"),
value: "series"
}
];
for (const scope of uniqScopes) {
if (scope === "series") {
continue;
}
arr.push({
label: utils.getGroupLabelForScope(scope),
description: utils.getGroupDescriptionForScope(scope),
value: scope
});
}
return arr;
}
function useMatcherScopesOptions(providedUniqScopes, currentScope, allowedScopes = Array.from(providedUniqScopes)) {
return React.useMemo(
() => buildScopeOptions(providedUniqScopes, currentScope, allowedScopes),
[providedUniqScopes, currentScope, allowedScopes]
);
}
function MatcherScopeSelector({ value, scopes, allowedScopes, ...rest }) {
var _a;
const options = useMatcherScopesOptions(scopes, value, allowedScopes);
return /* @__PURE__ */ jsxRuntime.jsx(RadioButtonGroup.RadioButtonGroup, { ...rest, options, value: value != null ? value : (_a = options[0]) == null ? void 0 : _a.value });
}
exports.getUniqueMatcherScopes = utils.getUniqueMatcherScopes;
exports.MatcherScopeSelector = MatcherScopeSelector;
exports.buildScopeOptions = buildScopeOptions;
//# sourceMappingURL=MatcherScopeSelector.cjs.map