{"version":3,"file":"koalarx-ui-shared-components-input-field-input-radio.mjs","sources":["../../projects/koala-ui/shared/components/input-field/input-radio/input-radio.ts","../../projects/koala-ui/shared/components/input-field/input-radio/input-radio.html","../../projects/koala-ui/shared/components/input-field/input-radio/koalarx-ui-shared-components-input-field-input-radio.ts"],"sourcesContent":["import {\n  booleanAttribute,\n  Component,\n  effect,\n  ElementRef,\n  input,\n  viewChild,\n} from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { InputFieldBase } from '@koalarx/ui/shared/components/input-field';\n\nexport type RadioColor =\n  | 'neutral'\n  | 'primary'\n  | 'secondary'\n  | 'accent'\n  | 'info'\n  | 'success'\n  | 'warning'\n  | 'error'\n  | 'ghost';\n\nexport type RadioSize =\n  | 'extraSmall'\n  | 'small'\n  | 'medium'\n  | 'large'\n  | 'extraLarge';\n\n@Component({\n  selector: 'kl-input-radio',\n  templateUrl: './input-radio.html',\n  imports: [ReactiveFormsModule],\n})\nexport class InputRadio extends InputFieldBase {\n  private readonly inputRadioElement =\n    viewChild<ElementRef<HTMLInputElement>>('inputRadio');\n\n  color = input<RadioColor>();\n  size = input<RadioSize>();\n  name = input.required<string>();\n  value = input.required<string | number>();\n  disableAutoTypeConversion = input(false, { transform: booleanAttribute });\n\n  private getColorClass(): string {\n    switch (this.color()) {\n      case 'neutral':\n        return 'radio-neutral';\n      case 'primary':\n        return 'radio-primary';\n      case 'secondary':\n        return 'radio-secondary';\n      case 'accent':\n        return 'radio-accent';\n      case 'info':\n        return 'radio-info';\n      case 'success':\n        return 'radio-success';\n      case 'warning':\n        return 'radio-warning';\n      case 'error':\n        return 'radio-error';\n      case 'ghost':\n        return 'radio-ghost';\n      default:\n        return 'radio';\n    }\n  }\n\n  private getSizeClass(): string {\n    switch (this.size()) {\n      case 'extraSmall':\n        return 'radio-xs';\n      case 'small':\n        return 'radio-sm';\n      case 'medium':\n        return 'radio-md';\n      case 'large':\n        return 'radio-lg';\n      case 'extraLarge':\n        return 'radio-xl';\n      default:\n        return 'radio';\n    }\n  }\n\n  constructor() {\n    super();\n\n    effect(() => {\n      const input = this.inputRadioElement()?.nativeElement;\n\n      if (input) {\n        input.classList.add(this.getColorClass());\n      }\n    });\n\n    effect(() => {\n      const input = this.inputRadioElement()?.nativeElement;\n\n      if (input) {\n        input.classList.add(this.getSizeClass());\n      }\n    });\n  }\n\n  toggle(event: Event) {\n    const target = event.target as HTMLInputElement;\n\n    let value: string | number = target.value;\n\n    if (\n      !Number.isNaN(parseInt(value as any)) &&\n      !/^0+[1-9]\\d*$/.test(value) &&\n      !this.disableAutoTypeConversion()\n    ) {\n      value = Number(value);\n    }\n\n    this.control().setValue(value);\n  }\n}\n","<input #inputRadio\n  type=\"radio\"\n  class=\"radio\"\n  [name]=\"name()\"\n  [value]=\"value()\"\n  [checked]=\"value() === control().value\"\n  [disabled]=\"disabled()\"\n  (change)=\"toggle($event)\"\n/>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}