{"version":3,"file":"503.js","mappings":"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","names":["CropTextPipe","transform","value","length","slice","static","this","t","core","Yjl","pure","standalone","i0","ctx_r0","currentSize","buttonImage","src","product","name","_r9","ctx_r8","onAddItem","balance","slug","defaultPrice_r5","$event","basketItem_r11","_r13","ngIf","ctx_r12","onChangeCount","itemKey","tmp_1_0","ctx_r7","undefined","counterControl","RelatedCardComponent_ng_container_7_div_1_button_1_Template","RelatedCardComponent_ng_container_7_div_1_app_counter_3_Template","ctx_r4","basketItem$","RelatedCardComponent_ng_container_7_div_1_Template","ctx_r1","defaultPrice$","RelatedCardComponent","constructor","router","menuListRepository","basketRepository","configRepository","FormControl","nonNullable","isBasketMode$","ngOnChanges","getDefaultSize","getDefaultPriceObservable","getBasketItem$","uniqKey","pipe","tap","item","patchValue","count","updateCount","removeItem","itemModifierGroups","onOpenCard","addItem","size","modifiers","appliedDiscount","setActiveCategory","categoryId","navigate","categorySlug","i1","i2","i3","i4","Xpm","selectors","inputs","features","decls","vars","consts","template","rf","ctx","RelatedCardComponent_picture_3_Template","RelatedCardComponent_ng_container_7_Template","RelatedCardComponent_ng_template_10_Template","_r2","CommonModule","i5","NgOptimizedImage","ProductPriceComponent","CounterComponent","ReactiveFormsModule","i6","styles","_c0","_c1","nextUniqueId","MatRadioChange","source","MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","MatRadioGroup","multi","MAT_RADIO_GROUP","InjectionToken","MAT_RADIO_DEFAULT_OPTIONS","providedIn","factory","MAT_RADIO_DEFAULT_OPTIONS_FACTORY","color","_MatRadioGroupBase","_name","_updateRadioButtonNames","labelPosition","_labelPosition","v","_markRadiosForCheck","_value","newValue","_updateSelectedRadioFromValue","_checkSelectedRadioButton","_selected","checked","selected","disabled","_disabled","coerceBooleanProperty","required","_required","_changeDetector","_isInitialized","_controlValueAccessorChangeFn","onTouched","change","EventEmitter","ngAfterContentInit","_buttonChanges","_radios","changes","subscribe","find","radio","ngOnDestroy","unsubscribe","_touch","forEach","_markForCheck","_emitChangeEvent","emit","writeValue","markForCheck","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","ɵfac","ɵdir","type","outputs","MatRadioButtonBase","_elementRef","_MatRadioButtonMixinBase","mixinDisableRipple","mixinTabIndex","_MatRadioButtonBase","_checked","newCheckedState","radioGroup","_radioDispatcher","notify","id","_setDisabled","_color","_providerOverride","inputId","_uniqueId","elementRef","_focusMonitor","animationMode","tabIndex","super","_removeUniqueSelectionListener","_noopAnimations","coerceNumberProperty","focus","options","origin","focusVia","_inputElement","nativeElement","ngOnInit","listen","ngDoCheck","_updateTabIndex","ngAfterViewInit","monitor","focusOrigin","stopMonitoring","_isRippleDisabled","disableRipple","_onInputClick","event","stopPropagation","_onInputInteraction","groupValueChanged","_onTouchTargetClick","group","_previousTabIndex","input","setAttribute","viewQuery","_t","first","ariaLabel","ariaLabelledby","ariaDescribedby","ɵMatRadioGroup_BaseFactory","contentQueries","dirIndex","MatRadioButton","hostAttrs","exportAs","ANIMATION_MODULE_TYPE","ɵcmp","hostVars","hostBindings","ngContentSelectors","_r0","dependencies","encapsulation","changeDetection","MatRadioModule","ɵmod","ɵinj","imports","MatCommonModule","MatRippleModule"],"sourceRoot":"webpack:///","sources":["./src/app/shared/pipes/crop-text/crop-text.pipe.ts","./src/app/components/related-card/related-card.component.html","./src/app/components/related-card/related-card.component.ts","./node_modules/@angular/material/fesm2022/radio.mjs"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'cropText',\n standalone: true\n})\nexport class CropTextPipe implements PipeTransform {\n transform(value: string, length: number | null = null): string {\n if(!length){return value}\n\n if(value.length <= length){return value}\n\n return value.slice(0, length) + '...';\n }\n}\n","
\n
\n
\n \n \n \n \n
\n
\n
{{ product.name | cropText:13 }}
\n \n
\n \n \n \n\n \n
\n
\n\n \n
\n\n\n \n\n","import { Component, Input, OnChanges } from '@angular/core';\nimport { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { ProductPriceComponent } from '../../blocks/product-price/product-price.component';\nimport { MenuListRepository } from '../../shared/repositories/menu-list.repository';\nimport { MenuItemSizeDto } from '../../api/v1/models/menu-item-size-dto';\nimport { CounterComponent } from '../../shared/components/counter/counter.component';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { BasketRepository } from '../../shared/repositories/basket.repository';\nimport { Observable, tap } from 'rxjs';\nimport { UIMenuItemDto } from '../../shared/interfaces/ui-menu-item-dto.interface';\nimport { BasketItem } from '../../shared/interfaces/basket-item.interface';\nimport { Router } from '@angular/router';\nimport { CropTextPipe } from '../../shared/pipes/crop-text/crop-text.pipe';\nimport { ConfigRepository } from '../../shared/repositories/config.repository';\n\n@Component({\n selector: 'app-related-card',\n standalone: true,\n templateUrl: './related-card.component.html',\n styleUrls: ['./related-card.component.scss'],\n imports: [\n CommonModule,\n NgOptimizedImage,\n ProductPriceComponent,\n CounterComponent,\n ReactiveFormsModule,\n CropTextPipe,\n ]\n})\nexport class RelatedCardComponent implements OnChanges {\n constructor (\n private router: Router,\n private menuListRepository: MenuListRepository,\n private basketRepository: BasketRepository,\n private configRepository: ConfigRepository\n ) {}\n\n @Input() product: UIMenuItemDto;\n\n counterControl: FormControl = new FormControl(1, {nonNullable: true});\n\n currentSize: MenuItemSizeDto | undefined;\n defaultPrice$: Observable;\n\n basketItem$: Observable;\n isBasketMode$: Observable = this.configRepository.isBasketMode$;\n\n ngOnChanges(): void {\n this.currentSize = this.menuListRepository.getDefaultSize(this.product);\n this.defaultPrice$ = this.menuListRepository.getDefaultPriceObservable(this.currentSize);\n\n this.basketItem$ = this.basketRepository.getBasketItem$(this.product.uniqKey).pipe(\n tap((item: BasketItem | null) => {\n if (!item) {return}\n this.counterControl.patchValue(item.count);\n })\n );\n }\n\n onChangeCount(itemKey: string, count: number): void {\n if(count === 0) {\n this.basketRepository.removeItem(itemKey);\n return;\n }\n this.basketRepository.updateCount(itemKey, count);\n }\n\n onAddItem (slug: string | null): void {\n if (!slug || !this.currentSize) {return}\n\n if (this.currentSize.itemModifierGroups.length) {\n this.onOpenCard(slug);\n return;\n }\n\n this.basketRepository.addItem({\n item: this.product,\n size: this.currentSize,\n count: 1,\n modifiers: [],\n appliedDiscount: 0,\n itemKey: '',\n })\n }\n\n onOpenCard(slug: string | null): void {\n if (!slug) { return }\n this.menuListRepository.setActiveCategory(this.product.categoryId);\n void this.router.navigate([`/category/${this.product.categorySlug}/${slug}`]);\n }\n\n}\n","import * as i0 from '@angular/core';\nimport { forwardRef, InjectionToken, EventEmitter, Directive, Output, Input, ViewChild, ContentChildren, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, Attribute, NgModule } from '@angular/core';\nimport * as i3 from '@angular/material/core';\nimport { mixinDisableRipple, mixinTabIndex, MatCommonModule, MatRippleModule } from '@angular/material/core';\nimport * as i1 from '@angular/cdk/a11y';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i2 from '@angular/cdk/collections';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n// Increasing integer for generating unique ids for radio components.\nlet nextUniqueId = 0;\n/** Change event object emitted by radio button and radio group. */\nclass MatRadioChange {\n constructor(\n /** The radio button that emits the change event. */\n source, \n /** The value of the radio button. */\n value) {\n this.source = source;\n this.value = value;\n }\n}\n/**\n * Provider Expression that allows mat-radio-group to register as a ControlValueAccessor. This\n * allows it to support [(ngModel)] and ngControl.\n * @docs-private\n */\nconst MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatRadioGroup),\n multi: true,\n};\n/**\n * Injection token that can be used to inject instances of `MatRadioGroup`. It serves as\n * alternative token to the actual `MatRadioGroup` class which could cause unnecessary\n * retention of the class and its component metadata.\n */\nconst MAT_RADIO_GROUP = new InjectionToken('MatRadioGroup');\nconst MAT_RADIO_DEFAULT_OPTIONS = new InjectionToken('mat-radio-default-options', {\n providedIn: 'root',\n factory: MAT_RADIO_DEFAULT_OPTIONS_FACTORY,\n});\nfunction MAT_RADIO_DEFAULT_OPTIONS_FACTORY() {\n return {\n color: 'accent',\n };\n}\n/**\n * Base class with all of the `MatRadioGroup` functionality.\n * @docs-private\n */\nclass _MatRadioGroupBase {\n /** Name of the radio button group. All radio buttons inside this group will use this name. */\n get name() {\n return this._name;\n }\n set name(value) {\n this._name = value;\n this._updateRadioButtonNames();\n }\n /** Whether the labels should appear after or before the radio-buttons. Defaults to 'after' */\n get labelPosition() {\n return this._labelPosition;\n }\n set labelPosition(v) {\n this._labelPosition = v === 'before' ? 'before' : 'after';\n this._markRadiosForCheck();\n }\n /**\n * Value for the radio-group. Should equal the value of the selected radio button if there is\n * a corresponding radio button with a matching value. If there is not such a corresponding\n * radio button, this value persists to be applied in case a new radio button is added with a\n * matching value.\n */\n get value() {\n return this._value;\n }\n set value(newValue) {\n if (this._value !== newValue) {\n // Set this before proceeding to ensure no circular loop occurs with selection.\n this._value = newValue;\n this._updateSelectedRadioFromValue();\n this._checkSelectedRadioButton();\n }\n }\n _checkSelectedRadioButton() {\n if (this._selected && !this._selected.checked) {\n this._selected.checked = true;\n }\n }\n /**\n * The currently selected radio button. If set to a new radio button, the radio group value\n * will be updated to match the new selected button.\n */\n get selected() {\n return this._selected;\n }\n set selected(selected) {\n this._selected = selected;\n this.value = selected ? selected.value : null;\n this._checkSelectedRadioButton();\n }\n /** Whether the radio group is disabled */\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = coerceBooleanProperty(value);\n this._markRadiosForCheck();\n }\n /** Whether the radio group is required */\n get required() {\n return this._required;\n }\n set required(value) {\n this._required = coerceBooleanProperty(value);\n this._markRadiosForCheck();\n }\n constructor(_changeDetector) {\n this._changeDetector = _changeDetector;\n /** Selected value for the radio group. */\n this._value = null;\n /** The HTML name attribute applied to radio buttons in this group. */\n this._name = `mat-radio-group-${nextUniqueId++}`;\n /** The currently selected radio button. Should match value. */\n this._selected = null;\n /** Whether the `value` has been set to its initial value. */\n this._isInitialized = false;\n /** Whether the labels should appear after or before the radio-buttons. Defaults to 'after' */\n this._labelPosition = 'after';\n /** Whether the radio group is disabled. */\n this._disabled = false;\n /** Whether the radio group is required. */\n this._required = false;\n /** The method to be called in order to update ngModel */\n this._controlValueAccessorChangeFn = () => { };\n /**\n * onTouch function registered via registerOnTouch (ControlValueAccessor).\n * @docs-private\n */\n this.onTouched = () => { };\n /**\n * Event emitted when the group value changes.\n * Change events are only emitted when the value changes due to user interaction with\n * a radio button (the same behavior as ``).\n */\n this.change = new EventEmitter();\n }\n /**\n * Initialize properties once content children are available.\n * This allows us to propagate relevant attributes to associated buttons.\n */\n ngAfterContentInit() {\n // Mark this component as initialized in AfterContentInit because the initial value can\n // possibly be set by NgModel on MatRadioGroup, and it is possible that the OnInit of the\n // NgModel occurs *after* the OnInit of the MatRadioGroup.\n this._isInitialized = true;\n // Clear the `selected` button when it's destroyed since the tabindex of the rest of the\n // buttons depends on it. Note that we don't clear the `value`, because the radio button\n // may be swapped out with a similar one and there are some internal apps that depend on\n // that behavior.\n this._buttonChanges = this._radios.changes.subscribe(() => {\n if (this.selected && !this._radios.find(radio => radio === this.selected)) {\n this._selected = null;\n }\n });\n }\n ngOnDestroy() {\n this._buttonChanges?.unsubscribe();\n }\n /**\n * Mark this group as being \"touched\" (for ngModel). Meant to be called by the contained\n * radio buttons upon their blur.\n */\n _touch() {\n if (this.onTouched) {\n this.onTouched();\n }\n }\n _updateRadioButtonNames() {\n if (this._radios) {\n this._radios.forEach(radio => {\n radio.name = this.name;\n radio._markForCheck();\n });\n }\n }\n /** Updates the `selected` radio button from the internal _value state. */\n _updateSelectedRadioFromValue() {\n // If the value already matches the selected radio, do nothing.\n const isAlreadySelected = this._selected !== null && this._selected.value === this._value;\n if (this._radios && !isAlreadySelected) {\n this._selected = null;\n this._radios.forEach(radio => {\n radio.checked = this.value === radio.value;\n if (radio.checked) {\n this._selected = radio;\n }\n });\n }\n }\n /** Dispatch change event with current selection and group value. */\n _emitChangeEvent() {\n if (this._isInitialized) {\n this.change.emit(new MatRadioChange(this._selected, this._value));\n }\n }\n _markRadiosForCheck() {\n if (this._radios) {\n this._radios.forEach(radio => radio._markForCheck());\n }\n }\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value\n */\n writeValue(value) {\n this.value = value;\n this._changeDetector.markForCheck();\n }\n /**\n * Registers a callback to be triggered when the model value changes.\n * Implemented as part of ControlValueAccessor.\n * @param fn Callback to be registered.\n */\n registerOnChange(fn) {\n this._controlValueAccessorChangeFn = fn;\n }\n /**\n * Registers a callback to be triggered when the control is touched.\n * Implemented as part of ControlValueAccessor.\n * @param fn Callback to be registered.\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * Sets the disabled state of the control. Implemented as a part of ControlValueAccessor.\n * @param isDisabled Whether the control should be disabled.\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this._changeDetector.markForCheck();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: _MatRadioGroupBase, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.1.1\", type: _MatRadioGroupBase, inputs: { color: \"color\", name: \"name\", labelPosition: \"labelPosition\", value: \"value\", selected: \"selected\", disabled: \"disabled\", required: \"required\" }, outputs: { change: \"change\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: _MatRadioGroupBase, decorators: [{\n type: Directive\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { change: [{\n type: Output\n }], color: [{\n type: Input\n }], name: [{\n type: Input\n }], labelPosition: [{\n type: Input\n }], value: [{\n type: Input\n }], selected: [{\n type: Input\n }], disabled: [{\n type: Input\n }], required: [{\n type: Input\n }] } });\n// Boilerplate for applying mixins to MatRadioButton.\n/** @docs-private */\nclass MatRadioButtonBase {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n }\n}\nconst _MatRadioButtonMixinBase = mixinDisableRipple(mixinTabIndex(MatRadioButtonBase));\n/**\n * Base class with all of the `MatRadioButton` functionality.\n * @docs-private\n */\nclass _MatRadioButtonBase extends _MatRadioButtonMixinBase {\n /** Whether this radio button is checked. */\n get checked() {\n return this._checked;\n }\n set checked(value) {\n const newCheckedState = coerceBooleanProperty(value);\n if (this._checked !== newCheckedState) {\n this._checked = newCheckedState;\n if (newCheckedState && this.radioGroup && this.radioGroup.value !== this.value) {\n this.radioGroup.selected = this;\n }\n else if (!newCheckedState && this.radioGroup && this.radioGroup.value === this.value) {\n // When unchecking the selected radio button, update the selected radio\n // property on the group.\n this.radioGroup.selected = null;\n }\n if (newCheckedState) {\n // Notify all radio buttons with the same name to un-check.\n this._radioDispatcher.notify(this.id, this.name);\n }\n this._changeDetector.markForCheck();\n }\n }\n /** The value of this radio button. */\n get value() {\n return this._value;\n }\n set value(value) {\n if (this._value !== value) {\n this._value = value;\n if (this.radioGroup !== null) {\n if (!this.checked) {\n // Update checked when the value changed to match the radio group's value\n this.checked = this.radioGroup.value === value;\n }\n if (this.checked) {\n this.radioGroup.selected = this;\n }\n }\n }\n }\n /** Whether the label should appear after or before the radio button. Defaults to 'after' */\n get labelPosition() {\n return this._labelPosition || (this.radioGroup && this.radioGroup.labelPosition) || 'after';\n }\n set labelPosition(value) {\n this._labelPosition = value;\n }\n /** Whether the radio button is disabled. */\n get disabled() {\n return this._disabled || (this.radioGroup !== null && this.radioGroup.disabled);\n }\n set disabled(value) {\n this._setDisabled(coerceBooleanProperty(value));\n }\n /** Whether the radio button is required. */\n get required() {\n return this._required || (this.radioGroup && this.radioGroup.required);\n }\n set required(value) {\n this._required = coerceBooleanProperty(value);\n }\n /** Theme color of the radio button. */\n get color() {\n // As per Material design specifications the selection control radio should use the accent color\n // palette by default. https://material.io/guidelines/components/selection-controls.html\n return (this._color ||\n (this.radioGroup && this.radioGroup.color) ||\n (this._providerOverride && this._providerOverride.color) ||\n 'accent');\n }\n set color(newValue) {\n this._color = newValue;\n }\n /** ID of the native input element inside `` */\n get inputId() {\n return `${this.id || this._uniqueId}-input`;\n }\n constructor(radioGroup, elementRef, _changeDetector, _focusMonitor, _radioDispatcher, animationMode, _providerOverride, tabIndex) {\n super(elementRef);\n this._changeDetector = _changeDetector;\n this._focusMonitor = _focusMonitor;\n this._radioDispatcher = _radioDispatcher;\n this._providerOverride = _providerOverride;\n this._uniqueId = `mat-radio-${++nextUniqueId}`;\n /** The unique ID for the radio button. */\n this.id = this._uniqueId;\n /**\n * Event emitted when the checked state of this radio button changes.\n * Change events are only emitted when the value changes due to user interaction with\n * the radio button (the same behavior as ``).\n */\n this.change = new EventEmitter();\n /** Whether this radio is checked. */\n this._checked = false;\n /** Value assigned to this radio. */\n this._value = null;\n /** Unregister function for _radioDispatcher */\n this._removeUniqueSelectionListener = () => { };\n // Assertions. Ideally these should be stripped out by the compiler.\n // TODO(jelbourn): Assert that there's no name binding AND a parent radio group.\n this.radioGroup = radioGroup;\n this._noopAnimations = animationMode === 'NoopAnimations';\n if (tabIndex) {\n this.tabIndex = coerceNumberProperty(tabIndex, 0);\n }\n }\n /** Focuses the radio button. */\n focus(options, origin) {\n if (origin) {\n this._focusMonitor.focusVia(this._inputElement, origin, options);\n }\n else {\n this._inputElement.nativeElement.focus(options);\n }\n }\n /**\n * Marks the radio button as needing checking for change detection.\n * This method is exposed because the parent radio group will directly\n * update bound properties of the radio button.\n */\n _markForCheck() {\n // When group value changes, the button will not be notified. Use `markForCheck` to explicit\n // update radio button's status\n this._changeDetector.markForCheck();\n }\n ngOnInit() {\n if (this.radioGroup) {\n // If the radio is inside a radio group, determine if it should be checked\n this.checked = this.radioGroup.value === this._value;\n if (this.checked) {\n this.radioGroup.selected = this;\n }\n // Copy name from parent radio group\n this.name = this.radioGroup.name;\n }\n this._removeUniqueSelectionListener = this._radioDispatcher.listen((id, name) => {\n if (id !== this.id && name === this.name) {\n this.checked = false;\n }\n });\n }\n ngDoCheck() {\n this._updateTabIndex();\n }\n ngAfterViewInit() {\n this._updateTabIndex();\n this._focusMonitor.monitor(this._elementRef, true).subscribe(focusOrigin => {\n if (!focusOrigin && this.radioGroup) {\n this.radioGroup._touch();\n }\n });\n }\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._elementRef);\n this._removeUniqueSelectionListener();\n }\n /** Dispatch change event with current value. */\n _emitChangeEvent() {\n this.change.emit(new MatRadioChange(this, this._value));\n }\n _isRippleDisabled() {\n return this.disableRipple || this.disabled;\n }\n _onInputClick(event) {\n // We have to stop propagation for click events on the visual hidden input element.\n // By default, when a user clicks on a label element, a generated click event will be\n // dispatched on the associated input element. Since we are using a label element as our\n // root container, the click event on the `radio-button` will be executed twice.\n // The real click event will bubble up, and the generated click event also tries to bubble up.\n // This will lead to multiple click events.\n // Preventing bubbling for the second event will solve that issue.\n event.stopPropagation();\n }\n /** Triggered when the radio button receives an interaction from the user. */\n _onInputInteraction(event) {\n // We always have to stop propagation on the change event.\n // Otherwise the change event, from the input element, will bubble up and\n // emit its event object to the `change` output.\n event.stopPropagation();\n if (!this.checked && !this.disabled) {\n const groupValueChanged = this.radioGroup && this.value !== this.radioGroup.value;\n this.checked = true;\n this._emitChangeEvent();\n if (this.radioGroup) {\n this.radioGroup._controlValueAccessorChangeFn(this.value);\n if (groupValueChanged) {\n this.radioGroup._emitChangeEvent();\n }\n }\n }\n }\n /** Triggered when the user clicks on the touch target. */\n _onTouchTargetClick(event) {\n this._onInputInteraction(event);\n if (!this.disabled) {\n // Normally the input should be focused already, but if the click\n // comes from the touch target, then we might have to focus it ourselves.\n this._inputElement.nativeElement.focus();\n }\n }\n /** Sets the disabled state and marks for check if a change occurred. */\n _setDisabled(value) {\n if (this._disabled !== value) {\n this._disabled = value;\n this._changeDetector.markForCheck();\n }\n }\n /** Gets the tabindex for the underlying input element. */\n _updateTabIndex() {\n const group = this.radioGroup;\n let value;\n // Implement a roving tabindex if the button is inside a group. For most cases this isn't\n // necessary, because the browser handles the tab order for inputs inside a group automatically,\n // but we need an explicitly higher tabindex for the selected button in order for things like\n // the focus trap to pick it up correctly.\n if (!group || !group.selected || this.disabled) {\n value = this.tabIndex;\n }\n else {\n value = group.selected === this ? this.tabIndex : -1;\n }\n if (value !== this._previousTabIndex) {\n // We have to set the tabindex directly on the DOM node, because it depends on\n // the selected state which is prone to \"changed after checked errors\".\n const input = this._inputElement?.nativeElement;\n if (input) {\n input.setAttribute('tabindex', value + '');\n this._previousTabIndex = value;\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: _MatRadioButtonBase, deps: \"invalid\", target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.1.1\", type: _MatRadioButtonBase, inputs: { id: \"id\", name: \"name\", ariaLabel: [\"aria-label\", \"ariaLabel\"], ariaLabelledby: [\"aria-labelledby\", \"ariaLabelledby\"], ariaDescribedby: [\"aria-describedby\", \"ariaDescribedby\"], checked: \"checked\", value: \"value\", labelPosition: \"labelPosition\", disabled: \"disabled\", required: \"required\", color: \"color\" }, outputs: { change: \"change\" }, viewQueries: [{ propertyName: \"_inputElement\", first: true, predicate: [\"input\"], descendants: true }], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: _MatRadioButtonBase, decorators: [{\n type: Directive\n }], ctorParameters: function () { return [{ type: _MatRadioGroupBase }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.FocusMonitor }, { type: i2.UniqueSelectionDispatcher }, { type: undefined }, { type: undefined }, { type: undefined }]; }, propDecorators: { id: [{\n type: Input\n }], name: [{\n type: Input\n }], ariaLabel: [{\n type: Input,\n args: ['aria-label']\n }], ariaLabelledby: [{\n type: Input,\n args: ['aria-labelledby']\n }], ariaDescribedby: [{\n type: Input,\n args: ['aria-describedby']\n }], checked: [{\n type: Input\n }], value: [{\n type: Input\n }], labelPosition: [{\n type: Input\n }], disabled: [{\n type: Input\n }], required: [{\n type: Input\n }], color: [{\n type: Input\n }], change: [{\n type: Output\n }], _inputElement: [{\n type: ViewChild,\n args: ['input']\n }] } });\n/**\n * A group of radio buttons. May contain one or more `` elements.\n */\nclass MatRadioGroup extends _MatRadioGroupBase {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatRadioGroup, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.1.1\", type: MatRadioGroup, selector: \"mat-radio-group\", host: { attributes: { \"role\": \"radiogroup\" }, classAttribute: \"mat-mdc-radio-group\" }, providers: [\n MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR,\n { provide: MAT_RADIO_GROUP, useExisting: MatRadioGroup },\n ], queries: [{ propertyName: \"_radios\", predicate: i0.forwardRef(function () { return MatRadioButton; }), descendants: true }], exportAs: [\"matRadioGroup\"], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatRadioGroup, decorators: [{\n type: Directive,\n args: [{\n selector: 'mat-radio-group',\n exportAs: 'matRadioGroup',\n providers: [\n MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR,\n { provide: MAT_RADIO_GROUP, useExisting: MatRadioGroup },\n ],\n host: {\n 'role': 'radiogroup',\n 'class': 'mat-mdc-radio-group',\n },\n }]\n }], propDecorators: { _radios: [{\n type: ContentChildren,\n args: [forwardRef(() => MatRadioButton), { descendants: true }]\n }] } });\nclass MatRadioButton extends _MatRadioButtonBase {\n constructor(radioGroup, elementRef, _changeDetector, _focusMonitor, _radioDispatcher, animationMode, _providerOverride, tabIndex) {\n super(radioGroup, elementRef, _changeDetector, _focusMonitor, _radioDispatcher, animationMode, _providerOverride, tabIndex);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatRadioButton, deps: [{ token: MAT_RADIO_GROUP, optional: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }, { token: i2.UniqueSelectionDispatcher }, { token: ANIMATION_MODULE_TYPE, optional: true }, { token: MAT_RADIO_DEFAULT_OPTIONS, optional: true }, { token: 'tabindex', attribute: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.1.1\", type: MatRadioButton, selector: \"mat-radio-button\", inputs: { disableRipple: \"disableRipple\", tabIndex: \"tabIndex\" }, host: { listeners: { \"focus\": \"_inputElement.nativeElement.focus()\" }, properties: { \"attr.id\": \"id\", \"class.mat-primary\": \"color === \\\"primary\\\"\", \"class.mat-accent\": \"color === \\\"accent\\\"\", \"class.mat-warn\": \"color === \\\"warn\\\"\", \"class.mat-mdc-radio-checked\": \"checked\", \"class._mat-animation-noopable\": \"_noopAnimations\", \"attr.tabindex\": \"null\", \"attr.aria-label\": \"null\", \"attr.aria-labelledby\": \"null\", \"attr.aria-describedby\": \"null\" }, classAttribute: \"mat-mdc-radio-button\" }, exportAs: [\"matRadioButton\"], usesInheritance: true, ngImport: i0, template: \"
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n\", styles: [\".mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color}.mdc-radio[hidden]{display:none}.mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\";transition:opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%;transition:border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%;transition:transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1}.mdc-radio--touch{margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mdc-radio--touch .mdc-radio__native-control{top:calc((40px - 48px) / 2);right:calc((40px - 48px) / 2);left:calc((40px - 48px) / 2);width:48px;height:48px}.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{border-color:CanvasText}}.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{border-color:CanvasText}}.mdc-radio__native-control:checked+.mdc-radio__background,.mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{transition:border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio--disabled{cursor:default;pointer-events:none}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transform:scale(0.5);transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:disabled+.mdc-radio__background,[aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background{cursor:default}.mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12;transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mat-mdc-radio-button{--mdc-radio-disabled-selected-icon-opacity:0.38;--mdc-radio-disabled-unselected-icon-opacity:0.38;--mdc-radio-state-layer-size:40px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-radio-button .mdc-radio{padding:calc((var(--mdc-radio-state-layer-size) - 20px) / 2)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-disabled-selected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{opacity:var(--mdc-radio-disabled-unselected-icon-opacity)}.mat-mdc-radio-button .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-focus-icon-color)}.mat-mdc-radio-button .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-focus-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__background::before{top:calc(-1 * (var(--mdc-radio-state-layer-size) - 20px) / 2);left:calc(-1 * (var(--mdc-radio-state-layer-size) - 20px) / 2);width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control{top:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);right:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);left:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size)}.mat-mdc-radio-button .mdc-radio .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background::before{opacity:.04;transform:scale(1)}.mat-mdc-radio-button.mat-mdc-radio-checked .mdc-radio__background::before{background-color:var(--mat-radio-checked-ripple-color)}.mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element{background-color:var(--mat-radio-checked-ripple-color)}.mat-mdc-radio-button .mdc-radio--disabled+label{color:var(--mat-radio-disabled-label-color)}.mat-mdc-radio-button .mat-radio-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:50%}.mat-mdc-radio-button .mat-radio-ripple .mat-ripple-element{opacity:.14}.mat-mdc-radio-button .mat-radio-ripple::before{border-radius:50%}.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__background::before,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__outer-circle,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__inner-circle{transition:none !important}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:focus:enabled:not(:checked)~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-focus-icon-color, black)}.mat-mdc-radio-button.cdk-focused .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-radio-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}[dir=rtl] .mat-mdc-radio-touch-target{left:0;right:50%;transform:translate(50%, -50%)}\"], dependencies: [{ kind: \"directive\", type: i3.MatRipple, selector: \"[mat-ripple], [matRipple]\", inputs: [\"matRippleColor\", \"matRippleUnbounded\", \"matRippleCentered\", \"matRippleRadius\", \"matRippleAnimation\", \"matRippleDisabled\", \"matRippleTrigger\"], exportAs: [\"matRipple\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatRadioButton, decorators: [{\n type: Component,\n args: [{ selector: 'mat-radio-button', host: {\n 'class': 'mat-mdc-radio-button',\n '[attr.id]': 'id',\n '[class.mat-primary]': 'color === \"primary\"',\n '[class.mat-accent]': 'color === \"accent\"',\n '[class.mat-warn]': 'color === \"warn\"',\n '[class.mat-mdc-radio-checked]': 'checked',\n '[class._mat-animation-noopable]': '_noopAnimations',\n // Needs to be removed since it causes some a11y issues (see #21266).\n '[attr.tabindex]': 'null',\n '[attr.aria-label]': 'null',\n '[attr.aria-labelledby]': 'null',\n '[attr.aria-describedby]': 'null',\n // Note: under normal conditions focus shouldn't land on this element, however it may be\n // programmatically set, for example inside of a focus trap, in this case we want to forward\n // the focus to the native element.\n '(focus)': '_inputElement.nativeElement.focus()',\n }, inputs: ['disableRipple', 'tabIndex'], exportAs: 'matRadioButton', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: \"
\\n
\\n \\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n\", styles: [\".mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color}.mdc-radio[hidden]{display:none}.mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\";transition:opacity 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%;transition:border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%;transition:transform 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1),border-color 120ms 0ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1}.mdc-radio--touch{margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:4px}.mdc-radio--touch .mdc-radio__native-control{top:calc((40px - 48px) / 2);right:calc((40px - 48px) / 2);left:calc((40px - 48px) / 2);width:48px;height:48px}.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{pointer-events:none;border:2px solid rgba(0,0,0,0);border-radius:6px;box-sizing:content-box;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:100%;width:100%}@media screen and (forced-colors: active){.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring{border-color:CanvasText}}.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{content:\\\"\\\";border:2px solid rgba(0,0,0,0);border-radius:8px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);height:calc(100% + 4px);width:calc(100% + 4px)}@media screen and (forced-colors: active){.mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__focus-ring::after,.mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__focus-ring::after{border-color:CanvasText}}.mdc-radio__native-control:checked+.mdc-radio__background,.mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__outer-circle{transition:border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle,.mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio--disabled{cursor:default;pointer-events:none}.mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__inner-circle{transform:scale(0.5);transition:transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1),border-color 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-radio__native-control:disabled+.mdc-radio__background,[aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background{cursor:default}.mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12;transition:opacity 120ms 0ms cubic-bezier(0, 0, 0.2, 1),transform 120ms 0ms cubic-bezier(0, 0, 0.2, 1)}.mdc-form-field{display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field[hidden]{display:none}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}.mat-mdc-radio-button{--mdc-radio-disabled-selected-icon-opacity:0.38;--mdc-radio-disabled-unselected-icon-opacity:0.38;--mdc-radio-state-layer-size:40px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-radio-button .mdc-radio{padding:calc((var(--mdc-radio-state-layer-size) - 20px) / 2)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-disabled-selected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:checked+.mdc-radio__background .mdc-radio__outer-circle{opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled+.mdc-radio__background .mdc-radio__inner-circle{opacity:var(--mdc-radio-disabled-selected-icon-opacity)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color)}.mat-mdc-radio-button .mdc-radio [aria-disabled=true] .mdc-radio__native-control:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{opacity:var(--mdc-radio-disabled-unselected-icon-opacity)}.mat-mdc-radio-button .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-focus-icon-color)}.mat-mdc-radio-button .mdc-radio.mdc-ripple-upgraded--background-focused .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio:not(.mdc-ripple-upgraded):focus .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-focus-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:checked+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled+.mdc-radio__background .mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-hover-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-icon-color)}.mat-mdc-radio-button .mdc-radio:not(:disabled):active .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-pressed-icon-color)}.mat-mdc-radio-button .mdc-radio .mdc-radio__background::before{top:calc(-1 * (var(--mdc-radio-state-layer-size) - 20px) / 2);left:calc(-1 * (var(--mdc-radio-state-layer-size) - 20px) / 2);width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size)}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control{top:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);right:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);left:calc((var(--mdc-radio-state-layer-size) - var(--mdc-radio-state-layer-size)) / 2);width:var(--mdc-radio-state-layer-size);height:var(--mdc-radio-state-layer-size)}.mat-mdc-radio-button .mdc-radio .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color)}.mat-mdc-radio-button .mdc-radio:hover .mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background::before{opacity:.04;transform:scale(1)}.mat-mdc-radio-button.mat-mdc-radio-checked .mdc-radio__background::before{background-color:var(--mat-radio-checked-ripple-color)}.mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element{background-color:var(--mat-radio-checked-ripple-color)}.mat-mdc-radio-button .mdc-radio--disabled+label{color:var(--mat-radio-disabled-label-color)}.mat-mdc-radio-button .mat-radio-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:50%}.mat-mdc-radio-button .mat-radio-ripple .mat-ripple-element{opacity:.14}.mat-mdc-radio-button .mat-radio-ripple::before{border-radius:50%}.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__background::before,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__outer-circle,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__inner-circle{transition:none !important}.mat-mdc-radio-button .mdc-radio .mdc-radio__native-control:focus:enabled:not(:checked)~.mdc-radio__background .mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-focus-icon-color, black)}.mat-mdc-radio-button.cdk-focused .mat-mdc-focus-indicator::before{content:\\\"\\\"}.mat-mdc-radio-touch-target{position:absolute;top:50%;height:48px;left:50%;width:48px;transform:translate(-50%, -50%)}[dir=rtl] .mat-mdc-radio-touch-target{left:0;right:50%;transform:translate(50%, -50%)}\"] }]\n }], ctorParameters: function () { return [{ type: MatRadioGroup, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_RADIO_GROUP]\n }] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.FocusMonitor }, { type: i2.UniqueSelectionDispatcher }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ANIMATION_MODULE_TYPE]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_RADIO_DEFAULT_OPTIONS]\n }] }, { type: undefined, decorators: [{\n type: Attribute,\n args: ['tabindex']\n }] }]; } });\n\nclass MatRadioModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.1.1\", ngImport: i0, type: MatRadioModule, declarations: [MatRadioGroup, MatRadioButton], imports: [MatCommonModule, CommonModule, MatRippleModule], exports: [MatCommonModule, MatRadioGroup, MatRadioButton] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatRadioModule, imports: [MatCommonModule, CommonModule, MatRippleModule, MatCommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MatRadioModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [MatCommonModule, CommonModule, MatRippleModule],\n exports: [MatCommonModule, MatRadioGroup, MatRadioButton],\n declarations: [MatRadioGroup, MatRadioButton],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_RADIO_DEFAULT_OPTIONS, MAT_RADIO_DEFAULT_OPTIONS_FACTORY, MAT_RADIO_GROUP, MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR, MatRadioButton, MatRadioChange, MatRadioGroup, MatRadioModule, _MatRadioButtonBase, _MatRadioGroupBase };\n"],"x_google_ignoreList":[3]}