@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 1.5 kB
JavaScript
(function(n,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("../common/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../common/index.umd.js"],e):(n=typeof globalThis<"u"?globalThis:n||self,e(n["radio-button"]={},n.Vue,n.common))})(this,function(n,e,c){"use strict";const u={enumData:{type:Array,default:[{text:"1",active:!0}]},suffixValue:{type:String,default:""},onSelectedValueChanged:{type:Function,default:()=>{}}},d=e.defineComponent({name:"FRadioButton",props:u,emits:["selectedValueChanged"],setup(a,f){const s=e.ref(a.enumData);function m(t,o){if(t.currentTarget.classList.value="btn btn-secondary active",t.currentTarget.tagName.toLowerCase()==="label"){const{currentTarget:i}=t,p=i.parentElement;Array.from(p.querySelectorAll("label")).filter(r=>r!==i).forEach(r=>r.classList.remove("active"))}f.emit("selectedValueChanged",o)}function b(t){return`${t.text}${a.suffixValue}`}return e.watch(()=>a.enumData,(t,o)=>{t!==o&&(s.value=a.enumData)}),()=>e.createVNode("div",{class:"f-radio-button"},[e.createVNode("div",{class:["farris-input-wrap"]},[s.value.map((t,o)=>e.createVNode(e.Fragment,null,[e.createVNode("label",{class:t.active?"btn btn-secondary active":"btn btn-secondary",onClick:i=>m(i,t)},[e.createVNode("span",{class:"f-radio-button-text"},[b(t)])])]))])])}}),l=c.withInstall(d);n.RadioButton=d,n.default=l,n.radioButtonProps=u,Object.defineProperties(n,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});