{"version":3,"file":"pad-ui-lib-radio.mjs","sources":["../../../components/radio/radio.service.ts","../../../components/radio/radio-group.component.ts","../../../components/radio/radio.component.ts","../../../components/radio/radio-button.component.ts","../../../components/radio/radio.module.ts","../../../components/radio/radio.provider.ts","../../../components/radio/pad-ui-lib-radio.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\nimport { PadSafeAny } from \"pad-ui-lib/core/type\";\nimport { BehaviorSubject } from \"rxjs\";\n\n@Injectable()\nexport class PadRadioService {\n  private readonly _selectedSubject = new BehaviorSubject<PadSafeAny>(null);\n  name: string | null = null;\n  get selected$() {\n    return this._selectedSubject.asObservable();\n  }\n\n  get selected() {\n    return this._selectedSubject.value;\n  }\n\n  select(value: PadSafeAny) {\n    if (this._selectedSubject.value != value) {\n      this._selectedSubject.next(value);\n    }\n  }\n}\n","import { BooleanInput, coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  DestroyRef,\n  Input,\n  OnInit,\n  QueryList,\n  ViewEncapsulation,\n  forwardRef,\n  inject,\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { OnChangeType, OnTouchedType, PadSafeAny } from \"pad-ui-lib/core/type\";\nimport { PadRadioComponent, PadRadioSize } from \"./radio.component\";\nimport { PadRadioService } from \"./radio.service\";\n\n@Component({\n  selector: \"pad-radio-group\",\n  exportAs: \"padRadioGroup\",\n  template: `<ng-content></ng-content>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  providers: [\n    PadRadioService,\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => PadRadioGroupComponent),\n      multi: true,\n    },\n  ],\n  host: {\n    class: \"pad-radio-group\",\n    \"[class.pad-radio-group-size-sm]\": `padSize === 'sm'`,\n    \"[class.pad-radio-group-size-md]\": `padSize === 'md'`,\n    \"[class.disabled]\": \"disabled\",\n  },\n})\nexport class PadRadioGroupComponent implements ControlValueAccessor, OnInit {\n  protected readonly _cdr = inject(ChangeDetectorRef);\n  protected readonly _destroyRef = inject(DestroyRef);\n  protected readonly _radioService = inject(PadRadioService);\n  @Input()\n  get value() {\n    return this._radioService.selected;\n  }\n  set value(selected: PadSafeAny) {\n    this._radioService.select(selected);\n  }\n  // private readonly _selected$ = new BehaviorSubject<PadSafeAny>(1);\n\n  @Input()\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: BooleanInput) {\n    const newValue = coerceBooleanProperty(value);\n\n    if (newValue !== this.disabled) {\n      this._disabled = newValue;\n      this._cdr.markForCheck();\n    }\n  }\n  private _disabled = false;\n\n  @Input() padSize: PadRadioSize = \"md\";\n  @Input() name: string | null = null;\n  private _onChange!: OnChangeType;\n  private _onTouched!: OnTouchedType;\n\n  @ContentChildren(forwardRef(() => PadRadioComponent), { descendants: true })\n  _radios!: QueryList<PadRadioComponent>;\n\n  writeValue(obj: PadSafeAny): void {\n    this._radioService.select(obj);\n  }\n  registerOnChange(fn: PadSafeAny): void {\n    this._onChange = fn;\n  }\n  registerOnTouched(fn: PadSafeAny): void {\n    this._onTouched = fn;\n  }\n  setDisabledState?(isDisabled: boolean): void {\n    this._disabled = isDisabled;\n  }\n\n  touch() {\n    if (this._onTouched) {\n      this._onTouched();\n    }\n  }\n\n  ngOnInit() {\n    this._radioService.name = this.name;\n    this._radioService.selected$\n      .pipe(takeUntilDestroyed(this._destroyRef))\n      .subscribe(value => {\n        if (this._onChange) {\n          this._onChange(value);\n        }\n      });\n    // this._selected$\n    //   .pipe(takeUntilDestroyed(this.destroyRef))\n    //   .subscribe((value) => {\n    //     if (this._selected$.value != value) {\n    //       this._onChange(value);\n    //     };\n    //   });\n  }\n\n  private _markRadiosForCheck() {\n    if (this._radios) {\n      this._radios.forEach(radio => radio.markForCheck());\n    }\n  }\n}\n","import { A11yModule, FocusMonitor } from \"@angular/cdk/a11y\";\nimport { BooleanInput, coerceBooleanProperty } from \"@angular/cdk/coercion\";\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  DestroyRef,\n  ElementRef,\n  Input,\n  NgZone,\n  OnDestroy,\n  OnInit,\n  ViewChild,\n  ViewEncapsulation,\n  forwardRef,\n  inject,\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { fromEvent } from \"rxjs\";\n\nimport { OnChangeType, OnTouchedType, PadSafeAny } from \"pad-ui-lib/core/type\";\nimport { PadRadioGroupComponent } from \"./radio-group.component\";\nimport { PadRadioService } from \"./radio.service\";\n\nexport type PadRadioSize = \"sm\" | \"md\";\nlet nextUniqueId = 0;\n@Component({\n  selector: \"pad-radio\",\n  exportAs: \"padRadio\",\n  template: `\n    <span\n      [class.checked]=\"checked\"\n      [class.disabled]=\"disabled\"\n      class=\"pad-radio__outer-circle\">\n      <div class=\"pad-radio__inner-circle\"></div>\n      <input #inputElement type=\"radio\" [attr.name]=\"name\" [checked]=\"checked\" />\n    </span>\n    <span> <ng-content></ng-content></span>\n  `,\n  styleUrls: [\"./radio.scss\"],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [PadRadioGroupComponent, A11yModule],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => PadRadioComponent),\n      multi: true,\n    },\n  ],\n  host: {\n    class: \"pad-radio\",\n    \"[class.pad-radio-size-sm]\": `padSize === 'sm'`,\n    \"[class.pad-radio-size-md]\": `padSize === 'md'`,\n    \"[class.disabled]\": \"disabled\",\n    \"[class.checked]\": \"checked\",\n  },\n})\nexport class PadRadioComponent implements ControlValueAccessor, OnInit, OnDestroy {\n  protected readonly _cdr = inject(ChangeDetectorRef);\n  protected readonly _destroyRef = inject(DestroyRef);\n  protected readonly _radioService = inject(PadRadioService, {\n    optional: true,\n  });\n  protected readonly _ngZone = inject(NgZone);\n  protected readonly _focusMonitor = inject(FocusMonitor);\n  protected readonly _elementRef = inject(ElementRef);\n\n  @ViewChild(\"inputElement\", { static: true })\n  inputElement!: ElementRef<HTMLInputElement>;\n\n  @Input() padSize: PadRadioSize = \"sm\";\n  @Input() padValue: PadSafeAny | null = null;\n  @Input() id = `pad-radio-${++nextUniqueId}`;\n  @Input()\n  get checked(): boolean {\n    return this._checked;\n  }\n  set checked(value: BooleanInput) {\n    const newValue = coerceBooleanProperty(value);\n    if (newValue !== this._checked) {\n      this._checked = newValue;\n      this._radioService?.select(this.padValue);\n      this.markForCheck();\n    }\n  }\n  private _checked = false;\n\n  @Input()\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: BooleanInput) {\n    const newValue = coerceBooleanProperty(value);\n\n    if (newValue !== this.disabled) {\n      this._disabled = newValue;\n      this.markForCheck();\n    }\n  }\n  private _disabled = false;\n  private _isNgModel = false;\n\n  private _onChange!: OnChangeType;\n  private _onTouched!: OnTouchedType;\n\n  name: string | null = null;\n\n  writeValue(obj: PadSafeAny): void {\n    this._checked = obj;\n  }\n  registerOnChange(fn: PadSafeAny): void {\n    this._isNgModel = true;\n    this._onChange = fn;\n  }\n  registerOnTouched(fn: PadSafeAny): void {\n    this._onTouched = fn;\n  }\n  setDisabledState?(isDisabled: boolean): void {\n    this._disabled = isDisabled;\n  }\n\n  ngOnInit() {\n    if (this._radioService) {\n      this.name = this._radioService.name;\n      this.markForCheck();\n      this._radioService.selected$\n        .pipe(takeUntilDestroyed(this._destroyRef))\n        .subscribe(newSelected => {\n          const isSelected = newSelected === this.padValue;\n\n          if (this._isNgModel && this._checked !== isSelected) {\n            this._onChange(false);\n          }\n          this._checked = isSelected;\n          this.markForCheck();\n        });\n    }\n\n    this._setupClickListener();\n  }\n  ngOnDestroy(): void {\n    this._focusMonitor.stopMonitoring(this._elementRef);\n  }\n\n  markForCheck() {\n    console.log(\"markForCheck\");\n    this._cdr.markForCheck();\n  }\n\n  focus(): void {\n    this._focusMonitor.focusVia(this.inputElement, \"keyboard\");\n    if (this._onTouched) {\n      this._onTouched();\n    }\n  }\n\n  private _setupClickListener() {\n    this._ngZone.runOutsideAngular(() => {\n      fromEvent<MouseEvent>(this._elementRef.nativeElement, \"click\")\n        .pipe(takeUntilDestroyed(this._destroyRef))\n        .subscribe((event: MouseEvent) => {\n          /** prevent label click triggered twice. **/\n          event.stopPropagation();\n          event.preventDefault();\n          if (this._disabled || this._checked) {\n            return;\n          }\n\n          this._ngZone.run(() => {\n            this.focus();\n            this._radioService?.select(this.padValue);\n            if (this._isNgModel) {\n              this._checked = true;\n              this._onChange(true);\n            }\n            this.markForCheck();\n          });\n        });\n    });\n  }\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from \"@angular/core\";\nimport { PadRadioComponent } from \"./radio.component\";\n\n@Component({\n  selector: \"pad-radio-button\",\n  template: `\n    <span\n      [class.checked]=\"checked\"\n      [class.disabled]=\"disabled\"\n      class=\"pad-radio__outer-circle\">\n      <div class=\"pad-radio__inner-circle\"></div>\n      <input #inputElement type=\"radio\" [attr.name]=\"name\" [checked]=\"checked\" />\n    </span>\n\n    <div>\n      <ng-content></ng-content>\n    </div>\n  `,\n  styleUrls: [\"./radio-button.scss\"],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  host: {\n    class: \"pad-radio-button\",\n    \"[class.pad-radio-size-sm]\": `padSize === 'sm'`,\n    \"[class.pad-radio-size-md]\": `padSize === 'md'`,\n    \"[class.disabled]\": \"disabled\",\n    \"[class.checked]\": \"checked\",\n  },\n  providers: [\n    {\n      provide: PadRadioComponent,\n      useExisting: PadRadioButtonComponent,\n    },\n  ],\n})\nexport class PadRadioButtonComponent extends PadRadioComponent {}\n","import { NgModule } from \"@angular/core\";\nimport { PadRadioButtonComponent } from \"./radio-button.component\";\nimport { PadRadioGroupComponent } from \"./radio-group.component\";\nimport { PadRadioComponent } from \"./radio.component\";\n\n@NgModule({\n  imports: [PadRadioComponent, PadRadioButtonComponent, PadRadioGroupComponent],\n  providers: [],\n  exports: [PadRadioComponent, PadRadioButtonComponent, PadRadioGroupComponent],\n})\nexport class PadRadioModule {}\n","import { EnvironmentProviders, Provider, makeEnvironmentProviders } from \"@angular/core\";\nimport { PadRadioButtonComponent } from \"./radio-button.component\";\nimport { PadRadioGroupComponent } from \"./radio-group.component\";\nimport { PadRadioComponent } from \"./radio.component\";\n\nexport const providePadRadio = (): EnvironmentProviders => {\n  const providers: Provider[] = [\n    PadRadioGroupComponent,\n    PadRadioButtonComponent,\n    PadRadioComponent,\n  ];\n\n  return makeEnvironmentProviders(providers);\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}