UNPKG

@nextcloud/vue

Version:
84 lines (83 loc) 3.35 kB
import '../assets/NcRadioGroupButton-B1d2yRTk.css'; import { defineComponent, onMounted, computed, openBlock, createElementBlock, normalizeClass, unref, renderSlot, createCommentVNode, toDisplayString, createElementVNode } from "vue"; import { c as createElementId } from "./createElementId-DhjFt1I9.mjs"; import { u as useNcFormBox } from "./useNcFormBox-Djlh582y.mjs"; import { u as useInsideRadioGroup } from "./useNcRadioGroup-D6llQmAl.mjs"; import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs"; const _hoisted_1 = ["id"]; const _hoisted_2 = ["aria-labelledby", "aria-label", "checked", "disabled", "value"]; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "NcRadioGroupButton", props: { ariaLabel: {}, label: {}, value: {}, disabled: { type: Boolean } }, setup(__props) { const props = __props; const labelId = createElementId(); const radioGroup = useInsideRadioGroup(); const { formBoxItemClass } = useNcFormBox(); onMounted(() => radioGroup.value.register(true)); const isChecked = computed(() => radioGroup?.value.modelValue === props.value); function onUpdate() { if (props.disabled) { return; } radioGroup.value.onUpdate(props.value); } return (_ctx, _cache) => { return openBlock(), createElementBlock("div", { class: normalizeClass([{ [_ctx.$style.radioGroupButton_active]: isChecked.value, [_ctx.$style.radioGroupButton_disabled]: __props.disabled }, _ctx.$style.radioGroupButton, unref(formBoxItemClass)]), onClick: onUpdate }, [ _ctx.$slots.icon ? (openBlock(), createElementBlock("div", { key: 0, class: normalizeClass(_ctx.$style.radioGroupButton__icon) }, [ renderSlot(_ctx.$slots, "icon") ], 2)) : createCommentVNode("", true), __props.label ? (openBlock(), createElementBlock("div", { key: 1, id: unref(labelId), class: normalizeClass(_ctx.$style.radioGroupButton__label) }, toDisplayString(__props.label), 11, _hoisted_1)) : createCommentVNode("", true), createElementVNode("input", { "aria-labelledby": __props.label ? unref(labelId) : void 0, "aria-label": __props.label ? void 0 : __props.ariaLabel, class: "hidden-visually", checked: isChecked.value, type: "radio", disabled: __props.disabled, value: __props.value, onInput: onUpdate }, null, 40, _hoisted_2) ], 2); }; } }); const radioGroupButton = "_radioGroupButton_X-VUZ"; const radioGroupButton__label = "_radioGroupButton__label_vK-9z"; const radioGroupButton__icon = "_radioGroupButton__icon_5jUox"; const radioGroupButton_disabled = "_radioGroupButton_disabled_-1hSN"; const radioGroupButton_active = "_radioGroupButton_active_D4Uvj"; const style0 = { "material-design-icon": "_material-design-icon_gRPNS", radioGroupButton, radioGroupButton__label, radioGroupButton__icon, radioGroupButton_disabled, radioGroupButton_active }; const cssModules = { "$style": style0 }; const NcRadioGroupButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]); export { NcRadioGroupButton as N }; //# sourceMappingURL=NcRadioGroupButton-WKdAdfUy.mjs.map