UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

2 lines (1 loc) 2.21 kB
(function(t,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("../common/index.umd.js"),require("vue")):typeof define=="function"&&define.amd?define(["exports","../common/index.umd.js","vue"],n):(t=typeof globalThis<"u"?globalThis:t||self,n(t["radio-group"]={},t.common,t.Vue))})(this,function(t,n,a){"use strict";const h={...n.radioCheckboxCommonProps,id:String,disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},enumData:{type:Array},data:{type:Array},modelValue:{type:String,default:""},name:{type:String,default:""},tabIndex:{type:Number,default:-1},textField:{type:String,default:"name"},valueField:{type:String,default:"value"}};function V(e,d,r){const s=a.computed(()=>!e.disabled),c=a.computed(()=>e.data||e.enumData||e.options||[]);function u(o){return o[e.valueField]}function f(o){return o[e.textField]}function m(o,g){if(s.value){const i=u(o);r.value!==i&&(r.value=i,d.emit("change",i),d.emit("changeValue",i),d.emit("update:modelValue",i))}g.stopPropagation()}return{enumData:c,getValue:u,getText:f,onClickRadio:m}}const y=a.defineComponent({name:"FRadioGroup",props:h,emits:["changeValue","update:modelValue","change"],setup(e,d){const{guid:r}=n.useGuid(),s=`radio_${r().slice(0,8)}`,c=a.ref(e.name||s),u=a.ref(e.modelValue),{enumData:f,onClickRadio:m,getValue:o,getText:g}=V(e,d,u),i=a.computed(()=>({"farris-checkradio-hor":e.direction==="horizontal"})),C=a.ref([]);return a.provide(n.RADIOGROUP_CONTEXT,{radios:C,parentProps:e,parentContext:d}),a.watch(()=>e.modelValue,l=>{u.value=l}),()=>a.createVNode("div",{class:["farris-input-wrap","btn-group",i.value]},[d.slots.default?d.slots.default():f.value.map((l,v)=>{const p="radio_"+e.id+c.value+l[e.valueField];return a.createVNode("div",{class:"custom-control custom-radio"},[a.createVNode("input",{type:"radio",class:"custom-control-input",name:c.value,id:p,value:o(l),checked:o(l)===u.value,disabled:e.readonly||e.disabled,tabindex:e.tabIndex,onClick:R=>m(l,R)},null),a.createVNode("label",{class:"custom-control-label",for:p},[g(l)])])})])}}),b=n.withInstall(y);t.FRadioGroup=y,t.default=b,t.radioGroupProps=h,Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});