UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

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