UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

2 lines (1 loc) 2.26 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 p(e,d,r){const s=a.computed(()=>!e.disabled),c=a.computed(()=>e.data||e.enumData||e.options||[]);function u(i){return i[e.valueField]}function f(i){return i[e.textField]}function m(i,g){if(s.value){const o=u(i);r.value!==o&&(r.value=o,d.emit("change",o),d.emit("changeValue",o),d.emit("update:modelValue",o))}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:i,getText:g}=p(e,d,u),o=a.computed(()=>({"farris-checkradio-hor":e.direction==="horizontal","farris-checkradio-ver":e.direction==="vertical"})),v=a.ref([]);return a.provide(n.RADIOGROUP_CONTEXT,{radios:v,parentProps:e,parentContext:d}),a.watch(()=>e.modelValue,l=>{u.value=l}),()=>a.createVNode("div",{class:["farris-input-wrap","btn-group",o.value]},[d.slots.default?d.slots.default():f.value.map((l,R)=>{const V="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:V,value:i(l),checked:i(l)===u.value,disabled:e.readonly||e.disabled,tabindex:e.tabIndex,onClick:C=>m(l,C)},null),a.createVNode("label",{class:"custom-control-label",for:V},[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"}})});