UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

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