UNPKG

@redocly/theme

Version:

Shared UI components lib

45 lines 2.94 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FilterCheckboxes = FilterCheckboxes; const react_1 = __importDefault(require("react")); const styled_components_1 = __importDefault(require("styled-components")); const FilterOptions_1 = require("../../components/Filter/FilterOptions"); const FilterOption_1 = require("../../components/Filter/FilterOption"); const FilterTitle_1 = require("../../components/Filter/FilterTitle"); const FilterOptionLabel_1 = require("../../components/Filter/FilterOptionLabel"); const hooks_1 = require("../../core/hooks"); const CheckboxIcon_1 = require("../../icons/CheckboxIcon/CheckboxIcon"); const CounterTag_1 = require("../../components/Tags/CounterTag"); const utils_1 = require("../../core/utils"); function FilterCheckboxes({ filter, filterValuesCasing, showCounter = true, }) { const { useTranslate, useTelemetry } = (0, hooks_1.useThemeHooks)(); const { translate } = useTranslate(); const telemetry = useTelemetry(); return (react_1.default.createElement(FilterCheckboxesWrapper, { "data-component-name": "Filter/FilterCheckboxes" }, react_1.default.createElement(FilterTitle_1.FilterTitle, { "data-translation-key": filter.titleTranslationKey }, translate(filter.titleTranslationKey, filter.title)), react_1.default.createElement(FilterOptions_1.FilterOptions, null, (filter.filteredOptions || filter.options).map(({ value, count }) => { const id = 'filter--' + filter.property + '--' + value; return (react_1.default.createElement(FilterCheckboxOption, { key: id, role: "link", onClick: () => { filter.toggleOption(value); telemetry.sendFilterCheckboxToggledMessage([{ object: 'checkbox', id }]); } }, react_1.default.createElement(CheckboxIcon_1.CheckboxIcon, { checked: filter.selectedOptions instanceof Set ? filter.selectedOptions.has(value) || filter.selectedOptions.has(value === null || value === void 0 ? void 0 : value.toLowerCase()) : false }), react_1.default.createElement(FilterOptionLabel_1.FilterOptionLabel, { "data-translation-key": value }, (0, utils_1.changeTextCasing)(translate(value), filterValuesCasing)), showCounter && react_1.default.createElement(CounterTag_1.CounterTag, { borderless: true }, count))); })))); } const FilterCheckboxOption = (0, styled_components_1.default)(FilterOption_1.FilterOption) ` padding-left: var(--filter-option-checkbox-padding-left); `; const FilterCheckboxesWrapper = styled_components_1.default.div ` display: flex; flex-direction: column; gap: var(--spacing-sm); `; //# sourceMappingURL=FilterCheckboxes.js.map