UNPKG

@grafana/ui

Version:
59 lines (54 loc) 2 kB
'use strict'; 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'); "use strict"; 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