{"version":3,"file":"taiga-ui-kit-components-radio.mjs","sources":["../../../projects/kit/components/radio/radio.options.ts","../../../projects/kit/components/radio/radio.component.ts","../../../projects/kit/components/radio/radio.directive.ts","../../../projects/kit/components/radio/radio.ts","../../../projects/kit/components/radio/taiga-ui-kit-components-radio.ts"],"sourcesContent":["import type {Provider} from '@angular/core';\nimport {InjectionToken} from '@angular/core';\nimport type {TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiRadioOptions {\n    readonly appearance: TuiStringHandler<HTMLInputElement> | string;\n    readonly size: TuiSizeS;\n}\n\nexport const TUI_RADIO_DEFAULT_OPTIONS: TuiRadioOptions = {\n    size: 'm',\n    appearance: ({checked}) => (checked ? 'primary' : 'outline-grayscale'),\n};\n\nexport const TUI_RADIO_OPTIONS = new InjectionToken(\n    ngDevMode ? 'TUI_RADIO_OPTIONS' : '',\n    {\n        factory: () => TUI_RADIO_DEFAULT_OPTIONS,\n    },\n);\n\nexport function tuiRadioOptionsProvider(options: Partial<TuiRadioOptions>): Provider {\n    return tuiProvideOptions(TUI_RADIO_OPTIONS, options, TUI_RADIO_DEFAULT_OPTIONS);\n}\n","import type {DoCheck, OnInit} from '@angular/core';\nimport {\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    DestroyRef,\n    inject,\n    Input,\n    ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {NgControl} from '@angular/forms';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport {tuiWatch} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiAppearance} from '@taiga-ui/core/directives/appearance';\nimport type {TuiSizeS} from '@taiga-ui/core/types';\n\nimport {TUI_RADIO_OPTIONS} from './radio.options';\n\n@Component({\n    standalone: true,\n    selector: 'input[type=\"radio\"][tuiRadio]',\n    template: '',\n    styles: ['@import \"@taiga-ui/kit/styles/components/radio.less\";'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    hostDirectives: [\n        {\n            directive: TuiAppearance,\n            inputs: ['tuiAppearanceState', 'tuiAppearanceFocus', 'tuiAppearanceMode'],\n        },\n        TuiNativeValidator,\n    ],\n    host: {\n        '[disabled]': '!control || control.disabled',\n        '[attr.data-size]': 'size',\n        '[class._readonly]': '!control',\n    },\n})\nexport class TuiRadioComponent implements DoCheck, OnInit {\n    private readonly appearance = inject(TuiAppearance);\n    private readonly destroyRef = inject(DestroyRef);\n    private readonly cdr = inject(ChangeDetectorRef);\n    private readonly options = inject(TUI_RADIO_OPTIONS);\n    private readonly el = tuiInjectElement<HTMLInputElement>();\n\n    protected readonly control = inject(NgControl, {self: true, optional: true});\n\n    @Input()\n    public size: TuiSizeS = this.options.size;\n\n    public ngOnInit(): void {\n        this.control?.valueChanges\n            ?.pipe(tuiWatch(this.cdr), takeUntilDestroyed(this.destroyRef))\n            .subscribe();\n    }\n\n    public ngDoCheck(): void {\n        this.appearance.tuiAppearance = tuiIsString(this.options.appearance)\n            ? this.options.appearance\n            : this.options.appearance(this.el);\n    }\n}\n","import {Directive, inject, Input} from '@angular/core';\nimport {RadioControlValueAccessor} from '@angular/forms';\nimport {TUI_DEFAULT_IDENTITY_MATCHER} from '@taiga-ui/cdk/constants';\nimport type {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n@Directive({\n    standalone: true,\n    selector: 'input[type=\"radio\"][tuiRadio][identityMatcher]',\n})\nexport class TuiRadioDirective<T> {\n    @Input()\n    public identityMatcher: TuiIdentityMatcher<T> = TUI_DEFAULT_IDENTITY_MATCHER;\n\n    constructor() {\n        const accessor = inject(RadioControlValueAccessor);\n        const writeValue = accessor.writeValue.bind(accessor);\n\n        accessor.writeValue = (value: T) => {\n            if (this.identityMatcher(value, accessor.value)) {\n                writeValue(accessor.value);\n            } else {\n                writeValue(value);\n            }\n        };\n    }\n}\n","import {TuiRadioComponent} from './radio.component';\nimport {TuiRadioDirective} from './radio.directive';\n\nexport const TuiRadio = [TuiRadioComponent, TuiRadioDirective] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}