{"version":3,"file":"synergy-design-system-angular-components-radio-group.mjs","sources":["../../components/radio-group/radio-group.component.ts","../../components/radio-group/synergy-design-system-angular-components-radio-group.ts"],"sourcesContent":["// ---------------------------------------------------------------------\n// 🔒 AUTOGENERATED @synergy-design-system/angular wrappers for @synergy-design-system/components\n// Please do not edit this file directly!\n// It will get recreated when running pnpm build.\n// ---------------------------------------------------------------------\nimport {\n  Component,\n  ElementRef,\n  NgZone,\n  Input,\n  Output,\n  EventEmitter,\n  AfterContentInit,\n} from '@angular/core';\nimport type { SynRadioGroup } from '@synergy-design-system/components';\nimport type { SynChangeEvent } from '@synergy-design-system/components';\nimport type { SynInputEvent } from '@synergy-design-system/components';\nimport type { SynInvalidEvent } from '@synergy-design-system/components';\nimport '@synergy-design-system/components/components/radio-group/radio-group.js';\n\n/**\n * @summary Radio groups are used to group multiple [radios](/components/radio) or [radio buttons](/components/radio-button) so they function as a single form control.\n * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-radio-group--docs\n * @status stable\n * @since 2.0\n *\n * @dependency syn-button-group\n *\n * @slot - The default slot where `<syn-radio>` or `<syn-radio-button>` elements are placed.\n * @slot label - The radio group's label. Required for proper accessibility. Alternatively, you can use the `label`\n *  attribute.\n * @slot help-text - Text that describes how to use the radio group. Alternatively, you can use the `help-text` attribute.\n *\n * @event syn-change - Emitted when the radio group's selected value changes.\n * @event syn-input - Emitted when the radio group receives user input.\n * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n *\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The input's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart button-group - The button group that wraps radio buttons.\n * @csspart button-group__base - The button group's `base` part.\n */\n@Component({\n  selector: 'syn-radio-group',\n  standalone: true,\n  template: '<ng-content></ng-content>',\n})\nexport class SynRadioGroupComponent {\n  public nativeElement: SynRadioGroup;\n  private _ngZone: NgZone;\n  private modelSignal = new AbortController();\n\n  constructor(e: ElementRef, ngZone: NgZone) {\n    this.nativeElement = e.nativeElement;\n    this._ngZone = ngZone;\n    this.nativeElement.addEventListener('syn-change', (e: SynChangeEvent) => {\n      this.synChangeEvent.emit(e);\n    });\n    this.nativeElement.addEventListener('syn-input', (e: SynInputEvent) => {\n      this.synInputEvent.emit(e);\n    });\n    this.nativeElement.addEventListener('syn-invalid', (e: SynInvalidEvent) => {\n      this.synInvalidEvent.emit(e);\n    });\n    this.ngModelUpdateOn = 'syn-input';\n  }\n\n  /**\n   * The event that will trigger the ngModel update.\n   * By default, this is set to \"syn-input\".\n   */\n  @Input()\n  set ngModelUpdateOn(v: keyof HTMLElementEventMap) {\n    this.modelSignal.abort();\n    this.modelSignal = new AbortController();\n    const option = v || 'syn-input';\n    this.nativeElement.addEventListener(\n      option,\n      () => {\n        this.valueChange.emit(this.value);\n      },\n      {\n        signal: this.modelSignal.signal,\n      },\n    );\n  }\n  get ngModelUpdateOn(): keyof HTMLElementEventMap {\n    return this.ngModelUpdateOn;\n  }\n\n  /**\n* The radio group's label.\n* Required for proper accessibility.\n* If you need to display HTML, use the `label` slot\ninstead.\n */\n  @Input()\n  set label(v: SynRadioGroup['label']) {\n    this._ngZone.runOutsideAngular(() => (this.nativeElement.label = v));\n  }\n  get label(): SynRadioGroup['label'] {\n    return this.nativeElement.label;\n  }\n\n  /**\n   * The radio groups's help text.\n   * If you need to display HTML, use the `help-text` slot instead.\n   */\n  @Input()\n  set helpText(v: SynRadioGroup['helpText']) {\n    this._ngZone.runOutsideAngular(() => (this.nativeElement.helpText = v));\n  }\n  get helpText(): SynRadioGroup['helpText'] {\n    return this.nativeElement.helpText;\n  }\n\n  /**\n   * The name of the radio group, submitted as a name/value pair with form data.\n   */\n  @Input()\n  set name(v: SynRadioGroup['name']) {\n    this._ngZone.runOutsideAngular(() => (this.nativeElement.name = v));\n  }\n  get name(): SynRadioGroup['name'] {\n    return this.nativeElement.name;\n  }\n\n  /**\n   * The current value of the radio group, submitted as a name/value pair with form data.\n   */\n  @Input()\n  set value(v: SynRadioGroup['value']) {\n    this._ngZone.runOutsideAngular(() => (this.nativeElement.value = v));\n  }\n  get value(): SynRadioGroup['value'] {\n    return this.nativeElement.value;\n  }\n\n  /**\n   * The radio group's size.\n   * This size will be applied to all child radios and radio buttons.\n   */\n  @Input()\n  set size(v: SynRadioGroup['size']) {\n    this._ngZone.runOutsideAngular(() => (this.nativeElement.size = v));\n  }\n  get size(): SynRadioGroup['size'] {\n    return this.nativeElement.size;\n  }\n\n  /**\n* By default, form controls are associated with the nearest containing `<form>` element.\n* This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`.\n* The form must be in\nthe same document or shadow root for this to work.\n */\n  @Input()\n  set form(v: SynRadioGroup['form']) {\n    this._ngZone.runOutsideAngular(() => (this.nativeElement.form = v));\n  }\n  get form(): SynRadioGroup['form'] {\n    return this.nativeElement.form;\n  }\n\n  /**\n   * Ensures a child radio is checked before allowing the containing form to submit.\n   */\n  @Input()\n  set required(v: '' | SynRadioGroup['required']) {\n    this._ngZone.runOutsideAngular(\n      () => (this.nativeElement.required = v === '' || v),\n    );\n  }\n  get required(): SynRadioGroup['required'] {\n    return this.nativeElement.required;\n  }\n\n  /**\n   * Emitted when the radio group's selected value changes.\n   */\n  @Output() synChangeEvent = new EventEmitter<SynChangeEvent>();\n\n  /**\n   * Emitted when the radio group receives user input.\n   */\n  @Output() synInputEvent = new EventEmitter<SynInputEvent>();\n\n  /**\n   * Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n   */\n  @Output() synInvalidEvent = new EventEmitter<SynInvalidEvent>();\n\n  /**\n   * Support for two way data binding\n   */\n  @Output() valueChange = new EventEmitter<SynRadioGroup['value']>();\n}\n\nexport type { SynChangeEvent } from '@synergy-design-system/components';\nexport type { SynInputEvent } from '@synergy-design-system/components';\nexport type { SynInvalidEvent } from '@synergy-design-system/components';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './radio-group.component';\n"],"names":[],"mappings":"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"}