{"version":3,"file":"ng-zorro-antd-radio.mjs","sources":["../../components/radio/radio-button.directive.ts","../../components/radio/radio.service.ts","../../components/radio/radio-group.component.ts","../../components/radio/radio.component.ts","../../components/radio/radio.module.ts","../../components/radio/public-api.ts","../../components/radio/ng-zorro-antd-radio.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[nz-radio-button]'\n})\nexport class NzRadioButtonDirective {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Injectable } from '@angular/core';\nimport { ReplaySubject, Subject } from 'rxjs';\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n@Injectable()\nexport class NzRadioService {\n  selected$ = new ReplaySubject<NzSafeAny>(1);\n  touched$ = new Subject<void>();\n  disabled$ = new ReplaySubject<boolean>(1);\n  name$ = new ReplaySubject<string>(1);\n  touch(): void {\n    this.touched$.next();\n  }\n  select(value: NzSafeAny): void {\n    this.selected$.next(value);\n  }\n  setDisabled(value: boolean): void {\n    this.disabled$.next(value);\n  }\n  setName(value: string): void {\n    this.name$.next(value);\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  forwardRef,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Optional,\n  SimpleChanges,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { BooleanInput, NzSafeAny, NzSizeLDSType, OnChangeType, OnTouchedType } from 'ng-zorro-antd/core/types';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\n\nimport { NzRadioService } from './radio.service';\n\nexport type NzRadioButtonStyle = 'outline' | 'solid';\n\n@Component({\n  selector: 'nz-radio-group',\n  exportAs: 'nzRadioGroup',\n  preserveWhitespaces: false,\n  template: ` <ng-content></ng-content> `,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    NzRadioService,\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => NzRadioGroupComponent),\n      multi: true\n    }\n  ],\n  host: {\n    class: 'ant-radio-group',\n    '[class.ant-radio-group-large]': `nzSize === 'large'`,\n    '[class.ant-radio-group-small]': `nzSize === 'small'`,\n    '[class.ant-radio-group-solid]': `nzButtonStyle === 'solid'`,\n    '[class.ant-radio-group-rtl]': `dir === 'rtl'`\n  }\n})\nexport class NzRadioGroupComponent implements OnInit, ControlValueAccessor, OnDestroy, OnChanges {\n  static ngAcceptInputType_nzDisabled: BooleanInput;\n\n  private value: NzSafeAny | null = null;\n  private destroy$ = new Subject();\n  onChange: OnChangeType = () => {};\n  onTouched: OnTouchedType = () => {};\n  @Input() @InputBoolean() nzDisabled = false;\n  @Input() nzButtonStyle: NzRadioButtonStyle = 'outline';\n  @Input() nzSize: NzSizeLDSType = 'default';\n  @Input() nzName: string | null = null;\n\n  dir: Direction = 'ltr';\n\n  constructor(\n    private cdr: ChangeDetectorRef,\n    private nzRadioService: NzRadioService,\n    @Optional() private directionality: Directionality\n  ) {}\n\n  ngOnInit(): void {\n    this.nzRadioService.selected$.pipe(takeUntil(this.destroy$)).subscribe(value => {\n      if (this.value !== value) {\n        this.value = value;\n        this.onChange(this.value);\n      }\n    });\n    this.nzRadioService.touched$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n      Promise.resolve().then(() => this.onTouched());\n    });\n\n    this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n      this.dir = direction;\n      this.cdr.detectChanges();\n    });\n\n    this.dir = this.directionality.value;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { nzDisabled, nzName } = changes;\n    if (nzDisabled) {\n      this.nzRadioService.setDisabled(this.nzDisabled);\n    }\n    if (nzName) {\n      this.nzRadioService.setName(this.nzName!);\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  writeValue(value: NzSafeAny): void {\n    this.value = value;\n    this.nzRadioService.select(value);\n    this.cdr.markForCheck();\n  }\n\n  registerOnChange(fn: OnChangeType): void {\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: OnTouchedType): void {\n    this.onTouched = fn;\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.nzDisabled = isDisabled;\n    this.nzRadioService.setDisabled(isDisabled);\n    this.cdr.markForCheck();\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  forwardRef,\n  Inject,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  Optional,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { BooleanInput, NzSafeAny, OnChangeType, OnTouchedType } from 'ng-zorro-antd/core/types';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\n\nimport { NzRadioButtonDirective } from './radio-button.directive';\nimport { NzRadioService } from './radio.service';\n\n@Component({\n  selector: '[nz-radio],[nz-radio-button]',\n  exportAs: 'nzRadio',\n  preserveWhitespaces: false,\n  template: `\n    <span\n      [class.ant-radio]=\"!isRadioButton\"\n      [class.ant-radio-checked]=\"isChecked && !isRadioButton\"\n      [class.ant-radio-disabled]=\"nzDisabled && !isRadioButton\"\n      [class.ant-radio-button]=\"isRadioButton\"\n      [class.ant-radio-button-checked]=\"isChecked && isRadioButton\"\n      [class.ant-radio-button-disabled]=\"nzDisabled && isRadioButton\"\n    >\n      <input\n        #inputElement\n        type=\"radio\"\n        [attr.autofocus]=\"nzAutoFocus ? 'autofocus' : null\"\n        [class.ant-radio-input]=\"!isRadioButton\"\n        [class.ant-radio-button-input]=\"isRadioButton\"\n        [disabled]=\"nzDisabled\"\n        [checked]=\"isChecked\"\n        [attr.name]=\"name\"\n      />\n      <span [class.ant-radio-inner]=\"!isRadioButton\" [class.ant-radio-button-inner]=\"isRadioButton\"></span>\n    </span>\n    <span><ng-content></ng-content></span>\n  `,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => NzRadioComponent),\n      multi: true\n    }\n  ],\n  host: {\n    '[class.ant-radio-wrapper]': '!isRadioButton',\n    '[class.ant-radio-button-wrapper]': 'isRadioButton',\n    '[class.ant-radio-wrapper-checked]': 'isChecked && !isRadioButton',\n    '[class.ant-radio-button-wrapper-checked]': 'isChecked && isRadioButton',\n    '[class.ant-radio-wrapper-disabled]': 'nzDisabled && !isRadioButton',\n    '[class.ant-radio-button-wrapper-disabled]': 'nzDisabled && isRadioButton',\n    '[class.ant-radio-wrapper-rtl]': `!isRadioButton && dir === 'rtl'`,\n    '[class.ant-radio-button-wrapper-rtl]': `isRadioButton && dir === 'rtl'`\n  }\n})\nexport class NzRadioComponent implements ControlValueAccessor, AfterViewInit, OnDestroy, OnInit {\n  static ngAcceptInputType_nzDisabled: BooleanInput;\n  static ngAcceptInputType_nzAutoFocus: BooleanInput;\n\n  private isNgModel = false;\n  private destroy$ = new Subject<void>();\n  isChecked = false;\n  name: string | null = null;\n  isRadioButton = !!this.nzRadioButtonDirective;\n  onChange: OnChangeType = () => {};\n  onTouched: OnTouchedType = () => {};\n  @ViewChild('inputElement', { static: true }) inputElement!: ElementRef<HTMLInputElement>;\n  @Input() nzValue: NzSafeAny | null = null;\n  @Input() @InputBoolean() nzDisabled = false;\n  @Input() @InputBoolean() nzAutoFocus = false;\n\n  dir: Direction = 'ltr';\n\n  focus(): void {\n    this.focusMonitor.focusVia(this.inputElement!, 'keyboard');\n  }\n\n  blur(): void {\n    this.inputElement!.nativeElement.blur();\n  }\n\n  constructor(\n    private ngZone: NgZone,\n    private elementRef: ElementRef,\n    private cdr: ChangeDetectorRef,\n    private focusMonitor: FocusMonitor,\n    @Optional() private directionality: Directionality,\n    @Optional() @Inject(NzRadioService) private nzRadioService: NzRadioService | null,\n    @Optional() @Inject(NzRadioButtonDirective) private nzRadioButtonDirective: NzRadioButtonDirective | null\n  ) {}\n\n  setDisabledState(disabled: boolean): void {\n    this.nzDisabled = disabled;\n    this.cdr.markForCheck();\n  }\n\n  writeValue(value: boolean): void {\n    this.isChecked = value;\n    this.cdr.markForCheck();\n  }\n\n  registerOnChange(fn: OnChangeType): void {\n    this.isNgModel = true;\n    this.onChange = fn;\n  }\n\n  registerOnTouched(fn: OnTouchedType): void {\n    this.onTouched = fn;\n  }\n\n  ngOnInit(): void {\n    if (this.nzRadioService) {\n      this.nzRadioService.name$.pipe(takeUntil(this.destroy$)).subscribe(name => {\n        this.name = name;\n        this.cdr.markForCheck();\n      });\n      this.nzRadioService.disabled$.pipe(takeUntil(this.destroy$)).subscribe(disabled => {\n        this.nzDisabled = disabled;\n        this.cdr.markForCheck();\n      });\n      this.nzRadioService.selected$.pipe(takeUntil(this.destroy$)).subscribe(value => {\n        const isChecked = this.isChecked;\n        this.isChecked = this.nzValue === value;\n        // We don't have to run `onChange()` on each `nz-radio` button whenever the `selected$` emits.\n        // If we have 8 `nz-radio` buttons within the `nz-radio-group` and they're all connected with\n        // `ngModel` or `formControl` then `onChange()` will be called 8 times for each `nz-radio` button.\n        // We prevent this by checking if `isChecked` has been changed or not.\n        if (\n          this.isNgModel &&\n          isChecked !== this.isChecked &&\n          // We're only intereted if `isChecked` has been changed to `false` value to emit `false` to the ascendant form,\n          // since we already emit `true` within the `setupClickListener`.\n          this.isChecked === false\n        ) {\n          this.onChange(false);\n        }\n        this.cdr.markForCheck();\n      });\n    }\n    this.focusMonitor\n      .monitor(this.elementRef, true)\n      .pipe(takeUntil(this.destroy$))\n      .subscribe(focusOrigin => {\n        if (!focusOrigin) {\n          Promise.resolve().then(() => this.onTouched());\n          if (this.nzRadioService) {\n            this.nzRadioService.touch();\n          }\n        }\n      });\n\n    this.directionality.change.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n      this.dir = direction;\n      this.cdr.detectChanges();\n    });\n\n    this.dir = this.directionality.value;\n\n    this.setupClickListener();\n  }\n\n  ngAfterViewInit(): void {\n    if (this.nzAutoFocus) {\n      this.focus();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n    this.focusMonitor.stopMonitoring(this.elementRef);\n  }\n\n  private setupClickListener(): void {\n    this.ngZone.runOutsideAngular(() => {\n      fromEvent<MouseEvent>(this.elementRef.nativeElement, 'click')\n        .pipe(takeUntil(this.destroy$))\n        .subscribe(event => {\n          /** prevent label click triggered twice. **/\n          event.stopPropagation();\n          event.preventDefault();\n          if (this.nzDisabled || this.isChecked) {\n            return;\n          }\n          this.ngZone.run(() => {\n            this.nzRadioService?.select(this.nzValue);\n            if (this.isNgModel) {\n              this.isChecked = true;\n              this.onChange(true);\n            }\n            this.cdr.markForCheck();\n          });\n        });\n    });\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { NzRadioButtonDirective } from './radio-button.directive';\nimport { NzRadioGroupComponent } from './radio-group.component';\nimport { NzRadioComponent } from './radio.component';\n\n@NgModule({\n  imports: [BidiModule, CommonModule, FormsModule],\n  exports: [NzRadioComponent, NzRadioButtonDirective, NzRadioGroupComponent],\n  declarations: [NzRadioComponent, NzRadioButtonDirective, NzRadioGroupComponent]\n})\nexport class NzRadioModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './radio-button.directive';\nexport * from './radio-group.component';\nexport * from './radio.component';\nexport * from './radio.service';\nexport * from './radio.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}