UNPKG

@volverjs/ui-vue

Version:

@volverjs/ui-vue is a lightweight Vue 3 component library to accompany @volverjs/style.

2 lines (1 loc) 2.37 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue")):"function"==typeof define&&define.amd?define(["vue"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvButtonGroup=t(e.vue)}(this,function(e){"use strict";var t=(e=>(e.local="local",e.session="session",e))(t||{}),o=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(o||{}),l=(e=>(e.before="before",e.after="after",e))(l||{}),r=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(r||{}),n=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(n||{});const u=Symbol.for("buttonGroup"),a={disabled:{type:Boolean,default:!1}},i={modifiers:{type:[String,Array],default:void 0}};l.before;const s={unselectable:{type:Boolean,default:!0}};o.bottom,r.button,n.button,t.local;const d={...i,...a,...s,legendLabel:{type:String},itemModifiers:{type:[String,Array],default:""},toggle:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},modelValue:{type:[String,Number,Boolean,Array],default:void 0}};const f={key:0,class:"vv-button-group__legend"};return e.defineComponent({name:"VvButtonGroup",props:d,emits:["update:modelValue"],setup(t,{emit:o}){const l=t,r=o,{disabled:n,toggle:a,modifiers:i,multiple:s,unselectable:d,itemModifiers:p}=e.toRefs(l);e.watchEffect(()=>{"string"==typeof l.modelValue&&s.value&&console.warn("[VvButtonGroup]: modelValue is a string but multiple is true.")});const m=e.computed({get:()=>s.value?l.modelValue:Array.isArray(l.modelValue)?l.modelValue[0]:l.modelValue,set:e=>void 0===e||!Array.isArray(l.modelValue)&&!s.value||Array.isArray(e)?r("update:modelValue",e):r("update:modelValue",[e])});var c,b;c=u,b={modelValue:m,disabled:n,toggle:a,multiple:s,unselectable:d,modifiers:p},e.provide(c,b);const g=function(t,o){return e.computed(()=>{const e={[t]:!0},l="string"==typeof o?.value?o.value.split(" "):o?.value;return l&&Array.isArray(l)&&l.forEach(o=>{o&&(e[`${t}--${o}`]=!0)}),e})}("vv-button-group",i);return(t,o)=>(e.openBlock(),e.createElementBlock("fieldset",{class:e.normalizeClass(e.unref(g)),role:"group"},[t.$slots.legend||t.legendLabel?(e.openBlock(),e.createElementBlock("legend",f,[e.renderSlot(t.$slots,"legend",{},()=>[e.createTextVNode(e.toDisplayString(t.legendLabel),1)])])):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"default")],2))}})});