import { p as proxyCustomElement, H, c as createEvent, h, d as Host } from './p-a53686b3.js';
import { r as randomIdGenerator } from './p-ffe5c0e8.js';
import { d as defineCustomElement$2 } from './p-2f619b66.js';

const formRadiogroupCss = "";
const DigiFormRadiogroupStyle0 = formRadiogroupCss;

const FormRadiogroup = /*@__PURE__*/ proxyCustomElement(class FormRadiogroup extends H {
    constructor() {
        super();
        this.__registerHost();
        this.afOnGroupChange = createEvent(this, "afOnGroupChange", 7);
        this.radiobuttons = undefined;
        this.afValue = undefined;
        this.value = undefined;
        this.afName = randomIdGenerator('digi-form-radiogroup');
    }
    OnAfValueChange(value) {
        this.value = value;
    }
    OnValueChange(value) {
        this.afValue = value;
        this.setRadiobuttons(value);
    }
    radiobuttonChangeListener(e) {
        if (Array.from(this.radiobuttons).includes(e.target)) {
            e.preventDefault();
            this.afValue = e.detail.target.value;
            this.afOnGroupChange.emit(e);
        }
    }
    componentDidLoad() {
        this.setRadiobuttons(this.value || this.afValue);
        if (this.value)
            this.afValue = this.value;
    }
    setRadiobuttons(value) {
        this.radiobuttons = this.hostElement.querySelectorAll('digi-form-radiobutton');
        this.radiobuttons.forEach((r) => {
            r.afName = this.afName;
            if (value && r.afValue == value) {
                r.setAttribute('af-checked', 'true');
            }
        });
    }
    render() {
        return (h(Host, { key: 'f08c5f7fef0959450fdfac51eb5f65d942f4c857' }, h("div", { key: 'f5a83a8d456f8d8e98bf1614720813d66f5db924', class: {
                'digi-form-radiogroup': true
            } }, h("digi-util-mutation-observer", { key: 'd58acfea2c0554233188a6572a35f58312d24135', onAfOnChange: (e) => this.radiobuttonChangeListener(e) }, h("slot", { key: '6e6fc7086a86f8b5d0b57cd4ad4e8540b212da38' })))));
    }
    get hostElement() { return this; }
    static get watchers() { return {
        "afValue": ["OnAfValueChange"],
        "value": ["OnValueChange"]
    }; }
    static get style() { return DigiFormRadiogroupStyle0; }
}, [6, "digi-form-radiogroup", {
        "afValue": [1025, "af-value"],
        "value": [1025],
        "afName": [1, "af-name"],
        "radiobuttons": [32]
    }, undefined, {
        "afValue": ["OnAfValueChange"],
        "value": ["OnValueChange"]
    }]);
function defineCustomElement$1() {
    if (typeof customElements === "undefined") {
        return;
    }
    const components = ["digi-form-radiogroup", "digi-util-mutation-observer"];
    components.forEach(tagName => { switch (tagName) {
        case "digi-form-radiogroup":
            if (!customElements.get(tagName)) {
                customElements.define(tagName, FormRadiogroup);
            }
            break;
        case "digi-util-mutation-observer":
            if (!customElements.get(tagName)) {
                defineCustomElement$2();
            }
            break;
    } });
}

const DigiFormRadiogroup = FormRadiogroup;
const defineCustomElement = defineCustomElement$1;

export { DigiFormRadiogroup, defineCustomElement };
