UNPKG

@redocly/theme

Version:

Shared UI components lib

47 lines (45 loc) 2.68 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.CatalogClassicInfoBlock = CatalogClassicInfoBlock; const react_1 = __importDefault(require("react")); const styled_components_1 = __importDefault(require("styled-components")); const hooks_1 = require("../../core/hooks"); const utils_1 = require("../../core/utils"); const Tag_1 = require("../../components/Tag/Tag"); const Link_1 = require("../../components/Link/Link"); function CatalogClassicInfoBlock(props) { var _a, _b, _c, _d; const scorecardBadge = ((_a = props.metadata) === null || _a === void 0 ? void 0 : _a.scorecardLevel) ? (react_1.default.createElement(ScorecardBadge, { level: props.metadata.scorecardLevel, slug: (_b = props.metadata) === null || _b === void 0 ? void 0 : _b.scoreCardSlug, colorVariable: (0, utils_1.getScorecardColorVariable)(((_c = props.metadata) === null || _c === void 0 ? void 0 : _c.scorecardLevelIdx) || 0, Object.keys(((_d = props.metadata) === null || _d === void 0 ? void 0 : _d.scorecardLevels) || {}).length) })) : null; return (react_1.default.createElement(CatalogInfoBlockWrapper, null, react_1.default.createElement(CatalogBadgesWrapper, { "data-component-name": "CatalogClassic/CatalogClassicInfoBlock" }, scorecardBadge))); } function ScorecardBadge(props) { const { level, slug, colorVariable } = props; const { useOtelTelemetry } = (0, hooks_1.useThemeHooks)(); const otelTelemetry = useOtelTelemetry(); return (react_1.default.createElement(Link_1.Link, { to: slug }, react_1.default.createElement(Tag_1.Tag, { onClick: () => otelTelemetry.send({ type: 'scorecard_link.clicked', payload: { action: 'click' } }), withStatusDot: true, statusDotColor: `var(${colorVariable})` }, level))); } const CatalogInfoBlockWrapper = styled_components_1.default.div ` position: relative; width: 100%; `; const CatalogBadgesWrapper = styled_components_1.default.div ` &:empty { display: none; } position: absolute; z-index: 10; right: 0; margin-top: var(--panel-gap-vertical); --badge-border-radius: var(--catalog-classic-page-badge-border-radius); --badge-padding: var(--catalog-classic-page-badge-padding); --badge-font-size: var(--catalog-classic-page-badge-font-size); --badge-line-height: var(--catalog-classic-page-badge-line-height); --badge-dot-size: var(--catalog-classic-page-badge-dot-size); --badge-dot-border-color: var(--catalog-classic-page-badge-dot-border-color); `; //# sourceMappingURL=CatalogClassicInfoBlock.js.map