@volverjs/ui-vue 0.0.5-beta.3 → 0.0.5-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +1 -1
- package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
- package/dist/components/VvCombobox/VvCombobox.es.js +21 -10
- package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
- package/dist/components/VvRadioGroup/VvRadioGroup.es.js +1 -1
- package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
- package/dist/components/VvSelect/VvSelect.es.js +1 -1
- package/dist/components/VvSelect/VvSelect.umd.js +1 -1
- package/dist/components/index.es.js +21 -10
- package/dist/components/index.umd.js +1 -1
- package/dist/composables/useOptions.d.ts +1 -1
- package/dist/icons.es.js +3 -3
- package/dist/icons.umd.js +1 -1
- package/package.json +1 -1
- package/src/assets/icons/detailed.json +1 -1
- package/src/assets/icons/normal.json +1 -1
- package/src/assets/icons/simple.json +1 -1
- package/src/components/VvCombobox/VvCombobox.vue +23 -11
- package/src/composables/useOptions.ts +1 -1
- package/src/stories/Combobox/ComboboxOptions.stories.mdx +35 -0
- package/src/stories/Select/SelectOptions.stories.mdx +35 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,l){"object"==typeof exports&&"undefined"!=typeof module?module.exports=l(require("vue"),require("@vueuse/core"),require("nanoid")):"function"==typeof define&&define.amd?define(["vue","@vueuse/core","nanoid"],l):(e="undefined"!=typeof globalThis?globalThis:e||self).VvCheckboxGroup=l(e.vue,e.core,e.nanoid)}(this,(function(e,l,n){"use strict";var t=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(t||{}),a=(e=>(e.before="before",e.after="after",e))(a||{}),o=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(o||{});const u=Symbol.for("checkGroup");function i(e,l,n){return n?d(e,n)===d(l,n):r(e,l)}function r(e,l){if(e===l)return!0;if(e&&l&&"object"==typeof e&&"object"==typeof l){const n=Array.isArray(e),t=Array.isArray(l);let a,o,u;if(n&&t){if(o=e.length,o!=l.length)return!1;for(a=o;0!=a--;)if(!r(e[a],l[a]))return!1;return!0}if(n!=t)return!1;const i=e instanceof Date,d=l instanceof Date;if(i!=d)return!1;if(i&&d)return e.getTime()==l.getTime();const v=e instanceof RegExp,s=l instanceof RegExp;if(v!=s)return!1;if(v&&s)return e.toString()==l.toString();const c=Object.keys(e);if(o=c.length,o!==Object.keys(l).length)return!1;for(a=o;0!=a--;)if(!Object.prototype.hasOwnProperty.call(l,c[a]))return!1;for(a=o;0!=a--;)if(u=c[a],!r(e[u],l[u]))return!1;return!0}return e!=e&&l!=l}function d(e,l){if(e&&Object.keys(e).length&&l){if(-1===l.indexOf("."))return e[l];{const n=l.split(".");let t=e;for(let l=0,a=n.length;l<a;++l){if(null==e)return null;t=t[n[l]]}return t}}return null}function v(l){return null==(n=e.unref(l))||""===n||Array.isArray(n)&&0===n.length||!(n instanceof Date)&&"object"==typeof n&&0===Object.keys(n).length;var n}function s(e){return Array.isArray(e)?e.filter((e=>{return"string"==typeof(l=e)||l instanceof String;var l})).join(" "):e}function c(n,t){const{invalid:a,valid:o,hint:u,loading:i}=t,{hintLabel:r,modelValue:c,valid:f,validLabel:p,invalid:m,invalidLabel:b,...y}=e.toRefs(n),g=d(y,"loading"),h=d(y,"loadingLabel"),k=e.computed((()=>!!m.value&&(!(!m.value||!a)||(!!((null==b?void 0:b.value)&&Array.isArray(b.value)&&b.value.length>0)||!(!(null==b?void 0:b.value)||v(b)))))),S=e.computed((()=>!!(r&&r.value||u))),V=e.computed((()=>!!(p&&p.value||o))),B=e.computed((()=>!!((null==g?void 0:g.value)&&i||(null==g?void 0:g.value)&&(null==h?void 0:h.value)))),A=e.computed((()=>S.value||V.value||k.value||B.value));return{hasInvalid:k,hasHint:S,hasValid:V,hasLoading:B,HintSlot:{name:"HintSlot",props:{params:{type:Object,default:()=>({})}},setup(n){const t=e.computed((()=>{const e=l.toReactive({hintLabel:r,modelValue:c,valid:f,validLabel:p,invalid:m,invalidLabel:b,loading:g,loadingLabel:h,...n.params});return(null==m?void 0:m.value)?(null==a?void 0:a(e))||s(null==b?void 0:b.value)||(null==r?void 0:r.value):(null==f?void 0:f.value)?(null==o?void 0:o(e))||s(null==p?void 0:p.value)||(null==r?void 0:r.value):(null==g?void 0:g.value)?(null==i?void 0:i(e))||s(null==h?void 0:h.value)||(null==r?void 0:r.value):(null==u?void 0:u(e))||s(null==r?void 0:r.value)||(null==r?void 0:r.value)}));return{isVisible:A,hasInvalid:k,hasValid:V,hintContent:t}},render(){if(this.isVisible)return e.h("small",{role:this.hasInvalid?"alert":this.hasValid?"status":void 0},this.hintContent)}}}}const f={valid:Boolean,validLabel:[String,Array]},p={invalid:Boolean,invalidLabel:[String,Array]},m={disabled:Boolean},b=(Boolean,Boolean,{label:[String,Number]}),y={readonly:Boolean},g={modifiers:[String,Array]},h={hintLabel:{type:String,default:""}},k={options:{type:Array,default:()=>[]},labelKey:{type:[String,Function],default:"label"},valueKey:{type:[String,Function],default:"value"},disabledKey:{type:[String,Function],default:"disabled"}};a.before;const S={tabindex:{type:[String,Number],default:0}},V={id:[String,Number]};t.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean;const B={...{...V,name:{type:String,required:!0}},...S,...f,...p,...h,...m,...y,...g,...b,value:[String,Number,Boolean],modelValue:[Object,Number,Boolean,String]},A={...f,...p,...k,...h,...m,...y,...g,...b,modelValue:[String,Array,Boolean,Number,Symbol],name:{type:String,required:!0},vertical:Boolean};o.button;const x={...B,...g,indeterminate:Boolean,uncheckedValue:[String,Number,Boolean],switch:Boolean};function O(l,n){const{group:t,isInGroup:a,getGroupOrLocalRef:o}=function(l){const n=e.inject(l,void 0),t=e.computed((()=>!v(n)));return{group:n,isInGroup:t,getGroupOrLocalRef:function(l,t,a){if(null==n?void 0:n.value){const t=e.unref(n.value)[l];return e.computed({get:()=>null==t?void 0:t.value,set(e){t.value=e}})}const o=e.toRef(t,l);return e.computed({get:()=>o.value,set(e){a&&a(`update:${l}`,e)}})}}}(u),{id:i,switch:r,indeterminate:d}=e.toRefs(l),s=o("modelValue",l,n),c=o("valid",l),f=o("invalid",l),p=e.computed((()=>{var e;return Boolean(l.readonly||(null==(e=null==t?void 0:t.value)?void 0:e.disabled.value))})),m=e.computed((()=>{var e;return Boolean(l.disabled||(null==(e=null==t?void 0:t.value)?void 0:e.disabled.value))}));return{id:i,propsSwitch:r,indeterminate:d,group:t,isInGroup:a,modelValue:s,valid:c,invalid:f,readonly:p,disabled:m}}function j(l,n,t){return e.computed((()=>{const a={[l]:!0},o="string"==typeof(null==n?void 0:n.value)?n.value.split(" "):null==n?void 0:n.value;return o&&Array.isArray(o)&&o.forEach((e=>{e&&(a[`${l}--${e}`]=!0)})),t&&Object.keys(t.value).forEach((n=>{a[`${l}--${n}`]=e.unref(t.value[n])})),a}))}const L=["for"],C=["id","name","disabled","value","tabindex","aria-invalid"],w=e.defineComponent({name:"VvCheckbox",props:x,emits:["click","update:modelValue","change","blur"],setup(l,{emit:t}){const a=l,o=e.useSlots(),{id:u,disabled:r,readonly:d,valid:v,invalid:s,propsSwitch:f,modelValue:p,indeterminate:m,isInGroup:b}=O(a,t),y=(l=>e.computed((()=>String((null==l?void 0:l.value)||n.nanoid()))))(u),g=e.computed((()=>S.value?-1:a.tabindex)),h=e.ref(),k=e.computed((()=>void 0!==a.uncheckedValue&&!b.value)),S=e.computed((()=>r.value||d.value)),V=e.computed((()=>!0===s.value||!0!==v.value&&void 0)),B=e.computed((()=>k.value?p.value===a.value:Array.isArray(p.value)?function(e,l){if(null!=e&&l&&l.length)for(const n of l)if(i(e,n))return!0;return!1}(a.value,p.value):i(a.value,p.value))),A=e.computed((()=>!!m.value||!(B.value||!k.value||a.uncheckedValue===p.value))),x=e.computed((()=>{if(!k.value)return!["string","number","boolean"].includes(typeof a.value)||a.value})),w=e.computed({get:()=>B.value,set(e){if(k.value)p.value=e?a.value:a.uncheckedValue;else if(Array.isArray(p.value)||b.value){const l=new Set(Array.isArray(p.value)?p.value:void 0!==p.value?[p.value]:[]);e?l.add(a.value):l.delete(a.value),p.value=[...l]}else p.value=e?a.value:void 0;t("change",e)}}),{modifiers:N}=e.toRefs(a),R=j("vv-checkbox",N,e.computed((()=>({switch:f.value,valid:v.value,invalid:s.value,disabled:r.value,readonly:d.value,indeterminate:m.value}))));e.watchEffect((()=>{k.value&&Array.isArray(p.value)&&console.warn("[VvCheckbox] The model value is an array but the component is in binary mode.")})),e.watch((()=>A.value),(e=>{h.value.indeterminate=!!e})),e.onMounted((()=>{A.value&&(h.value.indeterminate=!0)}));const{HintSlot:E}=c(a,o);return(l,n)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(e.unref(R)),for:e.unref(y)},[e.withDirectives(e.createElementVNode("input",{id:e.unref(y),ref_key:"input",ref:h,"onUpdate:modelValue":n[0]||(n[0]=l=>e.isRef(w)?w.value=l:null),type:"checkbox",class:"vv-checkbox__input",name:l.name,disabled:e.unref(S),value:e.unref(x),tabindex:e.unref(g),"aria-invalid":e.unref(V)},null,8,C),[[e.vModelCheckbox,e.unref(w)]]),e.renderSlot(l.$slots,"default",{value:e.unref(p)},(()=>[e.createTextVNode(e.toDisplayString(l.label),1)])),e.createVNode(e.unref(E),{class:"vv-checkbox__hint",params:{value:e.unref(p)}},null,8,["params"])],10,L))}}),N=A;const R=["textContent"],E={class:"vv-checkbox-group__wrapper"};return e.defineComponent({name:"VvCheckboxGroup",props:N,emits:["update:modelValue","change"],setup(n,{emit:t}){const a=n,o=e.useSlots(),i=l.useVModel(a,"modelValue",t),{disabled:r,readonly:d,vertical:v,valid:s,invalid:f,modifiers:p}=e.toRefs(a);!function(l){if(Object.keys(l).some((n=>"key"!==n&&!e.isRef(l[n]))))throw Error("One or more groupState props aren't ref.");e.provide(l.key,e.computed((()=>l)))}({key:u,modelValue:i,disabled:r,readonly:d,valid:s,invalid:f});const{getOptionLabel:m,getOptionValue:b}=function(l){const{options:n,labelKey:t,valueKey:a,disabledKey:o}=e.toRefs(l);return{options:n,getOptionLabel:e=>"object"!=typeof e&&null!==e?e:"function"==typeof t.value?t.value(e):e[t.value],getOptionValue:e=>"object"!=typeof e&&null!==e?e:"function"==typeof a.value?a.value(e):e[a.value],getOptionDisabled:e=>("object"==typeof e||null===e)&&("function"==typeof o.value?o.value(e):e[o.value]),getOptionGrouped:e=>"object"!=typeof e&&null!==e?[]:e.options}}(a),y=j("vv-checkbox-group",p,e.computed((()=>({disabled:r.value,readonly:d.value,horizontal:!v.value,valid:s.value,invalid:f.value})))),{HintSlot:g}=c(a,o);return(l,n)=>(e.openBlock(),e.createElementBlock("fieldset",{class:e.normalizeClass(e.unref(y))},[l.label?(e.openBlock(),e.createElementBlock("legend",{key:0,textContent:e.toDisplayString(l.label)},null,8,R)):e.createCommentVNode("",!0),e.createElementVNode("div",E,[l.options.length>0?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(l.options,((l,n)=>(e.openBlock(),e.createBlock(w,e.mergeProps({key:n},((e,l)=>({id:`${a.name}_opt${l}`,name:a.name,label:m(e),value:b(e)}))(l,n)),null,16)))),128)):e.renderSlot(l.$slots,"default",{key:1})]),e.createVNode(e.unref(g),{class:"vv-checkbox-group__hint"})],2))}})}));
|
|
1
|
+
!function(e,l){"object"==typeof exports&&"undefined"!=typeof module?module.exports=l(require("vue"),require("@vueuse/core"),require("nanoid")):"function"==typeof define&&define.amd?define(["vue","@vueuse/core","nanoid"],l):(e="undefined"!=typeof globalThis?globalThis:e||self).VvCheckboxGroup=l(e.vue,e.core,e.nanoid)}(this,(function(e,l,n){"use strict";var t=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(t||{}),a=(e=>(e.before="before",e.after="after",e))(a||{}),o=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(o||{});const u=Symbol.for("checkGroup");function i(e,l,n){return n?d(e,n)===d(l,n):r(e,l)}function r(e,l){if(e===l)return!0;if(e&&l&&"object"==typeof e&&"object"==typeof l){const n=Array.isArray(e),t=Array.isArray(l);let a,o,u;if(n&&t){if(o=e.length,o!=l.length)return!1;for(a=o;0!=a--;)if(!r(e[a],l[a]))return!1;return!0}if(n!=t)return!1;const i=e instanceof Date,d=l instanceof Date;if(i!=d)return!1;if(i&&d)return e.getTime()==l.getTime();const v=e instanceof RegExp,s=l instanceof RegExp;if(v!=s)return!1;if(v&&s)return e.toString()==l.toString();const c=Object.keys(e);if(o=c.length,o!==Object.keys(l).length)return!1;for(a=o;0!=a--;)if(!Object.prototype.hasOwnProperty.call(l,c[a]))return!1;for(a=o;0!=a--;)if(u=c[a],!r(e[u],l[u]))return!1;return!0}return e!=e&&l!=l}function d(e,l){if(e&&Object.keys(e).length&&l){if(-1===l.indexOf("."))return e[l];{const n=l.split(".");let t=e;for(let l=0,a=n.length;l<a;++l){if(null==e)return null;t=t[n[l]]}return t}}return null}function v(l){return null==(n=e.unref(l))||""===n||Array.isArray(n)&&0===n.length||!(n instanceof Date)&&"object"==typeof n&&0===Object.keys(n).length;var n}function s(e){return Array.isArray(e)?e.filter((e=>{return"string"==typeof(l=e)||l instanceof String;var l})).join(" "):e}function c(n,t){const{invalid:a,valid:o,hint:u,loading:i}=t,{hintLabel:r,modelValue:c,valid:f,validLabel:p,invalid:m,invalidLabel:b,...y}=e.toRefs(n),g=d(y,"loading"),h=d(y,"loadingLabel"),k=e.computed((()=>!!m.value&&(!(!m.value||!a)||(!!((null==b?void 0:b.value)&&Array.isArray(b.value)&&b.value.length>0)||!(!(null==b?void 0:b.value)||v(b)))))),S=e.computed((()=>!!(r&&r.value||u))),V=e.computed((()=>!!(p&&p.value||o))),B=e.computed((()=>!!((null==g?void 0:g.value)&&i||(null==g?void 0:g.value)&&(null==h?void 0:h.value)))),A=e.computed((()=>S.value||V.value||k.value||B.value));return{hasInvalid:k,hasHint:S,hasValid:V,hasLoading:B,HintSlot:{name:"HintSlot",props:{params:{type:Object,default:()=>({})}},setup(n){const t=e.computed((()=>{const e=l.toReactive({hintLabel:r,modelValue:c,valid:f,validLabel:p,invalid:m,invalidLabel:b,loading:g,loadingLabel:h,...n.params});return(null==m?void 0:m.value)?(null==a?void 0:a(e))||s(null==b?void 0:b.value)||(null==r?void 0:r.value):(null==f?void 0:f.value)?(null==o?void 0:o(e))||s(null==p?void 0:p.value)||(null==r?void 0:r.value):(null==g?void 0:g.value)?(null==i?void 0:i(e))||s(null==h?void 0:h.value)||(null==r?void 0:r.value):(null==u?void 0:u(e))||s(null==r?void 0:r.value)||(null==r?void 0:r.value)}));return{isVisible:A,hasInvalid:k,hasValid:V,hintContent:t}},render(){if(this.isVisible)return e.h("small",{role:this.hasInvalid?"alert":this.hasValid?"status":void 0},this.hintContent)}}}}const f={valid:Boolean,validLabel:[String,Array]},p={invalid:Boolean,invalidLabel:[String,Array]},m={disabled:Boolean},b=(Boolean,Boolean,{label:[String,Number]}),y={readonly:Boolean},g={modifiers:[String,Array]},h={hintLabel:{type:String,default:""}},k={options:{type:Array,default:()=>[]},labelKey:{type:[String,Function],default:"label"},valueKey:{type:[String,Function],default:"value"},disabledKey:{type:[String,Function],default:"disabled"}};a.before;const S={tabindex:{type:[String,Number],default:0}},V={id:[String,Number]};t.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean;const B={...{...V,name:{type:String,required:!0}},...S,...f,...p,...h,...m,...y,...g,...b,value:[String,Number,Boolean],modelValue:[Object,Number,Boolean,String]},A={...f,...p,...k,...h,...m,...y,...g,...b,modelValue:[String,Array,Boolean,Number,Symbol],name:{type:String,required:!0},vertical:Boolean};o.button;const x={...B,...g,indeterminate:Boolean,uncheckedValue:[String,Number,Boolean],switch:Boolean};function O(l,n){const{group:t,isInGroup:a,getGroupOrLocalRef:o}=function(l){const n=e.inject(l,void 0),t=e.computed((()=>!v(n)));return{group:n,isInGroup:t,getGroupOrLocalRef:function(l,t,a){if(null==n?void 0:n.value){const t=e.unref(n.value)[l];return e.computed({get:()=>null==t?void 0:t.value,set(e){t.value=e}})}const o=e.toRef(t,l);return e.computed({get:()=>o.value,set(e){a&&a(`update:${l}`,e)}})}}}(u),{id:i,switch:r,indeterminate:d}=e.toRefs(l),s=o("modelValue",l,n),c=o("valid",l),f=o("invalid",l),p=e.computed((()=>{var e;return Boolean(l.readonly||(null==(e=null==t?void 0:t.value)?void 0:e.disabled.value))})),m=e.computed((()=>{var e;return Boolean(l.disabled||(null==(e=null==t?void 0:t.value)?void 0:e.disabled.value))}));return{id:i,propsSwitch:r,indeterminate:d,group:t,isInGroup:a,modelValue:s,valid:c,invalid:f,readonly:p,disabled:m}}function j(l,n,t){return e.computed((()=>{const a={[l]:!0},o="string"==typeof(null==n?void 0:n.value)?n.value.split(" "):null==n?void 0:n.value;return o&&Array.isArray(o)&&o.forEach((e=>{e&&(a[`${l}--${e}`]=!0)})),t&&Object.keys(t.value).forEach((n=>{a[`${l}--${n}`]=e.unref(t.value[n])})),a}))}const L=["for"],C=["id","name","disabled","value","tabindex","aria-invalid"],w=e.defineComponent({name:"VvCheckbox",props:x,emits:["click","update:modelValue","change","blur"],setup(l,{emit:t}){const a=l,o=e.useSlots(),{id:u,disabled:r,readonly:d,valid:v,invalid:s,propsSwitch:f,modelValue:p,indeterminate:m,isInGroup:b}=O(a,t),y=(l=>e.computed((()=>String((null==l?void 0:l.value)||n.nanoid()))))(u),g=e.computed((()=>S.value?-1:a.tabindex)),h=e.ref(),k=e.computed((()=>void 0!==a.uncheckedValue&&!b.value)),S=e.computed((()=>r.value||d.value)),V=e.computed((()=>!0===s.value||!0!==v.value&&void 0)),B=e.computed((()=>k.value?p.value===a.value:Array.isArray(p.value)?function(e,l){if(null!=e&&l&&l.length)for(const n of l)if(i(e,n))return!0;return!1}(a.value,p.value):i(a.value,p.value))),A=e.computed((()=>!!m.value||!(B.value||!k.value||a.uncheckedValue===p.value))),x=e.computed((()=>{if(!k.value)return!["string","number","boolean"].includes(typeof a.value)||a.value})),w=e.computed({get:()=>B.value,set(e){if(k.value)p.value=e?a.value:a.uncheckedValue;else if(Array.isArray(p.value)||b.value){const l=new Set(Array.isArray(p.value)?p.value:void 0!==p.value?[p.value]:[]);e?l.add(a.value):l.delete(a.value),p.value=[...l]}else p.value=e?a.value:void 0;t("change",e)}}),{modifiers:N}=e.toRefs(a),R=j("vv-checkbox",N,e.computed((()=>({switch:f.value,valid:v.value,invalid:s.value,disabled:r.value,readonly:d.value,indeterminate:m.value}))));e.watchEffect((()=>{k.value&&Array.isArray(p.value)&&console.warn("[VvCheckbox] The model value is an array but the component is in binary mode.")})),e.watch((()=>A.value),(e=>{h.value.indeterminate=!!e})),e.onMounted((()=>{A.value&&(h.value.indeterminate=!0)}));const{HintSlot:E}=c(a,o);return(l,n)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(e.unref(R)),for:e.unref(y)},[e.withDirectives(e.createElementVNode("input",{id:e.unref(y),ref_key:"input",ref:h,"onUpdate:modelValue":n[0]||(n[0]=l=>e.isRef(w)?w.value=l:null),type:"checkbox",class:"vv-checkbox__input",name:l.name,disabled:e.unref(S),value:e.unref(x),tabindex:e.unref(g),"aria-invalid":e.unref(V)},null,8,C),[[e.vModelCheckbox,e.unref(w)]]),e.renderSlot(l.$slots,"default",{value:e.unref(p)},(()=>[e.createTextVNode(e.toDisplayString(l.label),1)])),e.createVNode(e.unref(E),{class:"vv-checkbox__hint",params:{value:e.unref(p)}},null,8,["params"])],10,L))}}),N=A;const R=["textContent"],E={class:"vv-checkbox-group__wrapper"};return e.defineComponent({name:"VvCheckboxGroup",props:N,emits:["update:modelValue","change"],setup(n,{emit:t}){const a=n,o=e.useSlots(),i=l.useVModel(a,"modelValue",t),{disabled:r,readonly:d,vertical:v,valid:s,invalid:f,modifiers:p}=e.toRefs(a);!function(l){if(Object.keys(l).some((n=>"key"!==n&&!e.isRef(l[n]))))throw Error("One or more groupState props aren't ref.");e.provide(l.key,e.computed((()=>l)))}({key:u,modelValue:i,disabled:r,readonly:d,valid:s,invalid:f});const{getOptionLabel:m,getOptionValue:b}=function(l){const{options:n,labelKey:t,valueKey:a,disabledKey:o}=e.toRefs(l);return{options:n,getOptionLabel:e=>"object"!=typeof e&&null!==e?e:"function"==typeof t.value?t.value(e):e[t.value],getOptionValue:e=>"object"!=typeof e&&null!==e?e:"function"==typeof a.value?a.value(e):e[a.value],getOptionDisabled:e=>("object"==typeof e||null===e)&&("function"==typeof o.value?o.value(e):e[o.value]),getOptionGrouped:e=>"object"!=typeof e&&null!==e?[]:e.options||[]}}(a),y=j("vv-checkbox-group",p,e.computed((()=>({disabled:r.value,readonly:d.value,horizontal:!v.value,valid:s.value,invalid:f.value})))),{HintSlot:g}=c(a,o);return(l,n)=>(e.openBlock(),e.createElementBlock("fieldset",{class:e.normalizeClass(e.unref(y))},[l.label?(e.openBlock(),e.createElementBlock("legend",{key:0,textContent:e.toDisplayString(l.label)},null,8,R)):e.createCommentVNode("",!0),e.createElementVNode("div",E,[l.options.length>0?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(l.options,((l,n)=>(e.openBlock(),e.createBlock(w,e.mergeProps({key:n},((e,l)=>({id:`${a.name}_opt${l}`,name:a.name,label:m(e),value:b(e)}))(l,n)),null,16)))),128)):e.renderSlot(l.$slots,"default",{key:1})]),e.createVNode(e.unref(g),{class:"vv-checkbox-group__hint"})],2))}})}));
|
|
@@ -1544,7 +1544,7 @@ function useOptions(props) {
|
|
|
1544
1544
|
const getOptionGrouped = (option) => {
|
|
1545
1545
|
if (typeof option !== "object" && option !== null)
|
|
1546
1546
|
return [];
|
|
1547
|
-
return option.options;
|
|
1547
|
+
return option.options || [];
|
|
1548
1548
|
};
|
|
1549
1549
|
return {
|
|
1550
1550
|
options,
|
|
@@ -1859,6 +1859,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1859
1859
|
VvComboboxProps,
|
|
1860
1860
|
props
|
|
1861
1861
|
);
|
|
1862
|
+
const isGroup = (option) => {
|
|
1863
|
+
if (typeof option === "string") {
|
|
1864
|
+
return false;
|
|
1865
|
+
}
|
|
1866
|
+
return option.options && option.options.length > 0;
|
|
1867
|
+
};
|
|
1862
1868
|
const { HintSlot } = HintSlotFactory(props, slots);
|
|
1863
1869
|
const inputEl = ref(null);
|
|
1864
1870
|
const inputSearchEl = ref(null);
|
|
@@ -1990,9 +1996,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1990
1996
|
} else if (props.modelValue) {
|
|
1991
1997
|
selectedValues = [props.modelValue];
|
|
1992
1998
|
}
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1999
|
+
const options = props.options.reduce((acc, value) => {
|
|
2000
|
+
if (isGroup(value)) {
|
|
2001
|
+
return [...acc, ...getOptionGrouped(value)];
|
|
2002
|
+
}
|
|
2003
|
+
return [...acc, value];
|
|
2004
|
+
}, []);
|
|
2005
|
+
return options.filter((option) => {
|
|
2006
|
+
if (isGroup(option)) {
|
|
2007
|
+
return getOptionGrouped(option).some(
|
|
2008
|
+
(item) => selectedValues.includes(getOptionValue(item))
|
|
2009
|
+
);
|
|
2010
|
+
}
|
|
2011
|
+
return selectedValues.includes(getOptionValue(option));
|
|
2012
|
+
});
|
|
1996
2013
|
});
|
|
1997
2014
|
const hasValue = computed(() => {
|
|
1998
2015
|
return selectedOptions.value.map((option) => getOptionLabel(option)).join(props.separator);
|
|
@@ -2091,12 +2108,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2091
2108
|
toggleExpanded();
|
|
2092
2109
|
}
|
|
2093
2110
|
});
|
|
2094
|
-
const isGroup = (option) => {
|
|
2095
|
-
if (typeof option === "string") {
|
|
2096
|
-
return false;
|
|
2097
|
-
}
|
|
2098
|
-
return option.options && option.options.length > 0;
|
|
2099
|
-
};
|
|
2100
2111
|
return (_ctx, _cache) => {
|
|
2101
2112
|
return !_ctx.native ? (openBlock(), createElementBlock("div", {
|
|
2102
2113
|
key: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("@iconify/vue"),require("@floating-ui/vue"),require("nanoid"),require("@vueuse/core"),require("mitt")):"function"==typeof define&&define.amd?define(["vue","@iconify/vue","@floating-ui/vue","nanoid","@vueuse/core","mitt"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvCombobox=t(e.vue,e.vue$1,e.vue$2,e.nanoid,e.core,e.mitt)}(this,(function(e,t,l,o,n,a){"use strict";var r=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(r||{}),i=(e=>(e.topStart="top-start",e.topEnd="top-end",e.bottomStart="bottom-start",e.bottomEnd="bottom-end",e.leftStart="left-start",e.leftEnd="left-end",e.rightStart="right-start",e.rightEnd="right-end",e))(i||{}),u=(e=>(e.before="before",e.after="after",e))(u||{}),d=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(d||{}),s=(e=>(e.button="button",e.link="link",e.menuitem="menuitem",e))(s||{}),c=(e=>(e.listbox="listbox",e.menu="menu",e))(c||{}),p=(e=>(e.option="option",e.presentation="presentation",e))(p||{});const f=Symbol.for("volver"),v=Symbol.for("dropdownTrigger"),m=Symbol.for("dropdownItem"),b=Symbol.for("dropdownAction"),g={valid:Boolean,validLabel:[String,Array]},y={invalid:Boolean,invalidLabel:[String,Array]},h={loading:Boolean,loadingLabel:{type:String,default:"Loading..."}},k={disabled:Boolean},B={selected:Boolean},S=(Boolean,Boolean,{label:[String,Number]}),V={readonly:Boolean},w={modifiers:[String,Array]},x={hintLabel:{type:String,default:""}},E={options:{type:Array,default:()=>[]},labelKey:{type:[String,Function],default:"label"},valueKey:{type:[String,Function],default:"value"},disabledKey:{type:[String,Function],default:"disabled"}},N={icon:{type:[String,Object]},iconPosition:{type:String,default:u.before,validation:e=>Object.values(u).includes(e)}},P={tabindex:{type:[String,Number],default:0}},C={floating:Boolean},L={unselectable:{type:Boolean,default:!0}},_={id:[String,Number]},$={placement:{type:String,default:r.bottom,validator:e=>Object.values(r).includes(e)||Object.values(i).includes(e)},strategy:{type:String,default:"absolute",validator:e=>["fixed","absolute"].includes(e)},transitionName:{type:String},offset:{type:[Number,String,Object],default:0},shift:{type:[Boolean,Object],default:!1},flip:{type:[Boolean,Object],default:!0},size:{type:[Boolean,Object],default:()=>({padding:10})},autoPlacement:{type:[Boolean,Object],default:!1},arrow:{type:Boolean,default:!1},autoClose:{type:Boolean,default:!0},autofocusFirst:{type:Boolean,default:!0},triggerWidth:{type:Boolean}},O={..._,name:{type:String,required:!0}},A={autofocus:Boolean},D={autocomplete:{type:String,default:"off"}};d.button;const j={...O,...P,...g,...y,...x,...h,...k,...V,...w,...E,...N,...C,...L,...$,...S,modelValue:{type:[String,Number,Boolean,Object,Array],default:void 0},noResultsLabel:{type:String,default:"No results"},noOptionsLabel:{type:String,default:"No options available"},selectedHintLabel:{type:String,default:"Selected"},deselectActionLabel:{type:String,default:"Deselect"},selectHintLabel:{type:String,default:"Press enter to select"},deselectHintLabel:{type:String,default:"Press enter to remove"},placeholder:String,searchable:Boolean,searchPlaceholder:{type:String,default:"Search..."},debounceSearch:{type:[Number,String],default:0},multiple:Boolean,maxValues:[Number,String],separator:{type:String,default:", "},native:Boolean,badges:Boolean,badgeModifiers:{type:[String,Array],default:"action sm"},triggerWidth:{...$.triggerWidth,default:!0},dropdownModifiers:{type:[String,Array]},autoOpen:Boolean,autoClose:Boolean},F={color:String,width:{type:[String,Number]},height:{type:[String,Number]},name:{type:String,required:!0},provider:{type:String},prefix:{type:String,default:"normal"},src:String,horizontalFlip:Boolean,verticalFlip:Boolean,flip:String,mode:String,inline:Boolean,rotate:[Number,String],onLoad:Function,svg:String,modifiers:{type:[String,Array]}};function R(){return e.inject(f)}function z(t,l,o){return e.computed((()=>{const n={[t]:!0},a="string"==typeof(null==l?void 0:l.value)?l.value.split(" "):null==l?void 0:l.value;return a&&Array.isArray(a)&&a.forEach((e=>{e&&(n[`${t}--${e}`]=!0)})),o&&Object.keys(o.value).forEach((l=>{n[`${t}--${l}`]=e.unref(o.value[l])})),n}))}const H=e.defineComponent({name:"VvIcon",props:F,setup(l){const o=l,n=e.ref(!0),a=R(),{modifiers:r}=e.toRefs(o),i=z("vv-icon",r),u=e.computed((()=>o.provider||(null==a?void 0:a.iconsProvider))),d=e.computed((()=>{const e=o.name??"",l=`@${u.value}:${o.prefix}:${o.name}`;return t.iconExists(e)?e:t.iconExists(l)?l:(null==a?void 0:a.iconsCollections.find((l=>{const o=`@${u.value}:${l.prefix}:${e}`;if(t.iconExists(o))return o})))||e}));function s(e){const l=function(e){let t=null;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");t=(new e).window}return(t?new t.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),n=(null==l?void 0:l.innerHTML.trim())||"";l&&n&&t.addIcon(`@${u.value}:${o.prefix}:${o.name}`,{body:n,height:l.viewBox.baseVal.height,width:l.viewBox.baseVal.width})}return a&&(o.src&&!t.iconExists(`@${u.value}:${o.prefix}:${o.name}`)?(n.value=!1,a.fetchIcon(o.src).then((e=>{e&&(s(e),n.value=!0)})).catch((e=>{throw new Error(`During fetch icon: ${null==e?void 0:e.message}`)}))):o.svg&&s(o.svg)),(l,o)=>e.unref(n)?(e.openBlock(),e.createBlock(e.unref(t.Icon),e.mergeProps({key:0,class:e.unref(i)},{inline:l.inline,width:l.width,height:l.height,horizontalFlip:l.horizontalFlip,verticalFlip:l.verticalFlip,flip:l.flip,rotate:l.rotate,color:l.color,onLoad:l.onLoad,icon:e.unref(d)}),null,16,["class"])):e.createCommentVNode("",!0)}}),I={..._,...w,...$,modelValue:{type:Boolean,default:void 0},reference:{type:Object,default:null},role:{type:String,default:c.menu,validator:e=>Object.values(c).includes(e)}},T=t=>e.computed((()=>String((null==t?void 0:t.value)||o.nanoid())));const K=["id","tabindex","role","aria-labelledby"],q=e.defineComponent({name:"VvDropdown",inheritAttrs:!1,props:I,emits:["update:modelValue"],setup(t,{expose:o,emit:r}){const i=t,{id:u}=e.toRefs(i),d=T(u),s=e.useAttrs(),f=e.ref("auto"),b=e.ref("auto"),g=e.ref(null),y=e.ref(null),h=e.ref(null),k=e.ref(null),B=e.computed({get:()=>i.reference??g.value,set:e=>{g.value=e}}),S=e.computed((()=>{const e=[];if(i.autoPlacement?"boolean"==typeof i.autoPlacement?e.push(l.autoPlacement()):e.push(l.autoPlacement(i.autoPlacement)):i.flip&&("boolean"==typeof i.flip?e.push(l.flip()):e.push(l.flip(i.flip))),i.shift&&("boolean"==typeof i.shift?e.push(l.shift()):e.push(l.shift(i.shift))),i.size){const t=({availableWidth:e,availableHeight:t})=>{f.value=`${e}px`,b.value=`${t}px`};"boolean"==typeof i.size?e.push(l.size({apply:t})):e.push(l.size({...i.size,apply:t}))}return i.offset&&(e.push(l.offset(Number(i.offset))),["string","number"].includes(typeof i.offset)?e.push(l.offset(Number(i.offset))):e.push(l.offset(i.offset))),i.arrow&&e.push(l.arrow({element:h})),e})),{x:V,y:w,strategy:x,middlewareData:E,placement:N}=l.useFloating(B,y,{whileElementsMounted:l.autoUpdate,placement:e.computed((()=>i.placement)),strategy:e.computed((()=>i.strategy)),middleware:S}),P=e.computed((()=>({position:x.value,top:`${w.value??0}px`,left:`${V.value??0}px`,maxWidth:f.value,maxHeight:b.value,width:i.triggerWidth&&B.value?`${B.value.offsetWidth}px`:void 0}))),C=e.computed((()=>N.value.split("-")[0])),L=e.computed((()=>({top:"bottom",right:"left",bottom:"top",left:"right"}[C.value]??"bottom"))),_=e.computed((()=>{var e,t,l,o;return["bottom","top"].includes(L.value)?{right:`${(null==(e=E.value.arrow)?void 0:e.x)??0}px`,[L.value]:-((null==(t=h.value)?void 0:t.offsetWidth)??0)/2+"px"}:{top:`${(null==(l=E.value.arrow)?void 0:l.y)??0}px`,[L.value]:-((null==(o=h.value)?void 0:o.offsetWidth)??0)/2+"px"}})),$=n.useVModel(i,"modelValue",r),O=e.ref(!1),A=e.computed({get:()=>$.value??O.value,set:e=>{void 0!==$.value?$.value=e:O.value=e}}),D=()=>{A.value=!0},j=()=>{A.value=!1},F=()=>{A.value=!A.value},R=e=>{B.value=e};o({toggle:F,show:D,hide:j,init:R}),e.watch(A,(t=>{t&&i.autofocusFirst&&e.nextTick((()=>{const e=X(y.value);e.length>0&&e[0].focus()}))})),n.onClickOutside(y,(()=>{i.autoClose&&(A.value=!1)}),{ignore:[B]});const H=e.computed((()=>{var e,t;return(null==(t=null==(e=B.value)?void 0:e.getAttribute)?void 0:t.call(e,"id"))??void 0})),I=e.computed((()=>({"aria-controls":d.value,"aria-haspopup":!0,"aria-expanded":A.value}))),{component:q,bus:W}=function({reference:t,id:l,expanded:o,aria:n}){const r=a(),i=e.defineComponent({name:"VvDropdownTriggerProvider",provide:()=>({[v]:{reference:t,id:l,expanded:o,aria:n,bus:r}}),setup:()=>({}),render(){var t,l;return e.h(e.Fragment,{},null==(l=(t=this.$slots).default)?void 0:l.call(t))}});return{bus:r,component:i}}({reference:B,id:d,expanded:A,aria:I});W.on("click",F);const{role:M,modifiers:U}=e.toRefs(i),{itemRole:G}=function({role:t,expanded:l}){const o=e.computed((()=>t.value===c.listbox?p.option:p.presentation));return e.provide(m,{role:o,expanded:l}),{itemRole:o}}({role:M,expanded:A}),J=z("vv-dropdown",U,e.computed((()=>({arrow:i.arrow})))),{focused:Q}=n.useFocusWithin(y);function X(e){return e?[...e.querySelectorAll('a[href], button, input, textarea, select, details,[tabindex]:not([tabindex="-1"])')].filter((e=>!e.hasAttribute("disabled")&&!e.getAttribute("aria-hidden"))):[]}return n.onKeyStroke("Escape",(e=>{A.value&&(e.preventDefault(),j())})),n.onKeyStroke("ArrowDown",(t=>{A.value&&Q.value&&(t.preventDefault(),e.nextTick((()=>{if(Q.value){const e=X(y.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t<e.length-1?e[t+1].focus():e[0].focus()}})))})),n.onKeyStroke("ArrowUp",(t=>{A.value&&Q.value&&(t.preventDefault(),e.nextTick((()=>{if(Q.value){const e=X(y.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t>0?e[t-1].focus():e[e.length-1].focus()}})))})),n.onKeyStroke([" ","Enter"],(e=>{if(A.value&&Q.value){e.preventDefault();document.activeElement.click()}})),(t,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(q),null,{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps({init:R,show:D,hide:j,toggle:F,expanded:e.unref(A),aria:e.unref(I)})))])),_:3}),e.createVNode(e.Transition,{name:t.transitionName},{default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("div",{ref_key:"floatingEl",ref:y,style:e.normalizeStyle(e.unref(P)),class:e.normalizeClass(e.unref(J))},[i.arrow?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"arrowEl",ref:h,style:e.normalizeStyle(e.unref(_)),class:"vv-dropdown__arrow"},null,4)):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(A)}))),e.createElementVNode("ul",e.mergeProps(e.unref(s),{id:e.unref(d),ref_key:"listEl",ref:k,tabindex:e.unref(A)?void 0:-1,role:e.unref(M),"aria-labelledby":e.unref(H),class:"vv-dropdown__list"}),[e.renderSlot(t.$slots,"items",e.normalizeProps(e.guardReactiveProps({role:e.unref(G)})))],16,K),e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(A)})))],6),[[e.vShow,e.unref(A)]])])),_:3},8,["name"])],64))}});const W=e.defineComponent({name:"VvDropdownItem",setup(t){const{role:l,expanded:o}=e.inject(m,{}),a=e.ref(null);!function({expanded:t}){e.provide(b,{role:s.menuitem,expanded:t})}({expanded:o});const r=n.useElementHover(a),{focused:i}=n.useFocus(a),{focused:u}=n.useFocusWithin(a);return e.watch(r,(e=>{e&&(i.value=!0)})),(t,o)=>(e.openBlock(),e.createElementBlock("li",e.mergeProps({role:e.unref(l)},{ref_key:"element",ref:a,class:["vv-dropdown__item",{"focus-visible":e.unref(i)||e.unref(u)}]}),[e.renderSlot(t.$slots,"default")],16))}}),M=["title"],U=e.defineComponent({name:"VvDropdownOption",props:{...k,...B,...L,...w,deselectHintLabel:{type:String},selectHintLabel:{type:String},selectedHintLabel:{type:String}},setup(t){const l=t,{modifiers:o}=e.toRefs(l),n=z("vv-dropdown-option",o,e.computed((()=>({disabled:l.disabled,selected:l.selected,unselectable:l.unselectable&&l.selected})))),a=e.computed((()=>l.selected?l.unselectable?l.deselectHintLabel:l.selectedHintLabel:l.disabled?void 0:l.selectHintLabel));return(t,l)=>(e.openBlock(),e.createBlock(W,{class:e.normalizeClass(e.unref(n)),tabindex:t.disabled?-1:0,"aria-selected":t.selected,"aria-disabled":t.disabled},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default"),e.createElementVNode("span",{class:"vv-dropdown-option__hint",title:e.unref(a)},[e.renderSlot(t.$slots,"hint",e.normalizeProps(e.guardReactiveProps({disabled:t.disabled,selected:t.selected,unselectable:t.unselectable})),(()=>[e.createTextVNode(e.toDisplayString(e.unref(a)),1)]))],8,M)])),_:3},8,["class","tabindex","aria-selected","aria-disabled"]))}}),G={class:"vv-dropdown-optgroup",role:"presentation",tabindex:"-1"},J=e.defineComponent({name:"VvDropdownOptgroup",props:{...S},setup(t){const l=t;return(t,o)=>(e.openBlock(),e.createElementBlock("li",G,e.toDisplayString(l.label),1))}});function Q(e,t,l){return l?Y(e,l)===Y(t,l):X(e,t)}function X(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){const l=Array.isArray(e),o=Array.isArray(t);let n,a,r;if(l&&o){if(a=e.length,a!=t.length)return!1;for(n=a;0!=n--;)if(!X(e[n],t[n]))return!1;return!0}if(l!=o)return!1;const i=e instanceof Date,u=t instanceof Date;if(i!=u)return!1;if(i&&u)return e.getTime()==t.getTime();const d=e instanceof RegExp,s=t instanceof RegExp;if(d!=s)return!1;if(d&&s)return e.toString()==t.toString();const c=Object.keys(e);if(a=c.length,a!==Object.keys(t).length)return!1;for(n=a;0!=n--;)if(!Object.prototype.hasOwnProperty.call(t,c[n]))return!1;for(n=a;0!=n--;)if(r=c[n],!X(e[r],t[r]))return!1;return!0}return e!=e&&t!=t}function Y(e,t){if(e&&Object.keys(e).length&&t){if(-1===t.indexOf("."))return e[t];{const l=t.split(".");let o=e;for(let t=0,n=l.length;t<n;++t){if(null==e)return null;o=o[l[t]]}return o}}return null}function Z(e,t){if(null!=e&&t&&t.length)for(const l of t)if(Q(e,l))return!0;return!1}function ee(t){return null==(l=e.unref(t))||""===l||Array.isArray(l)&&0===l.length||!(l instanceof Date)&&"object"==typeof l&&0===Object.keys(l).length;var l}function te(e,t){const l=function(e,t){let l=-1;if(t)for(let o=0;o<t.length;o++)if(Q(t[o],e)){l=o;break}return l}(e,t);return l>-1?t.filter(((e,t)=>t!==l)):t}function le(e){return Array.isArray(e)?e.filter((e=>{return"string"==typeof(t=e)||t instanceof String;var t})).join(" "):e}function oe(t,l){const{invalid:o,valid:a,hint:r,loading:i}=l,{hintLabel:u,modelValue:d,valid:s,validLabel:c,invalid:p,invalidLabel:f,...v}=e.toRefs(t),m=Y(v,"loading"),b=Y(v,"loadingLabel"),g=e.computed((()=>!!p.value&&(!(!p.value||!o)||(!!((null==f?void 0:f.value)&&Array.isArray(f.value)&&f.value.length>0)||!(!(null==f?void 0:f.value)||ee(f)))))),y=e.computed((()=>!!(u&&u.value||r))),h=e.computed((()=>!!(c&&c.value||a))),k=e.computed((()=>!!((null==m?void 0:m.value)&&i||(null==m?void 0:m.value)&&(null==b?void 0:b.value)))),B=e.computed((()=>y.value||h.value||g.value||k.value));return{hasInvalid:g,hasHint:y,hasValid:h,hasLoading:k,HintSlot:{name:"HintSlot",props:{params:{type:Object,default:()=>({})}},setup(t){const l=e.computed((()=>{const e=n.toReactive({hintLabel:u,modelValue:d,valid:s,validLabel:c,invalid:p,invalidLabel:f,loading:m,loadingLabel:b,...t.params});return(null==p?void 0:p.value)?(null==o?void 0:o(e))||le(null==f?void 0:f.value)||(null==u?void 0:u.value):(null==s?void 0:s.value)?(null==a?void 0:a(e))||le(null==c?void 0:c.value)||(null==u?void 0:u.value):(null==m?void 0:m.value)?(null==i?void 0:i(e))||le(null==b?void 0:b.value)||(null==u?void 0:u.value):(null==r?void 0:r(e))||le(null==u?void 0:u.value)||(null==u?void 0:u.value)}));return{isVisible:B,hasInvalid:g,hasValid:h,hintContent:l}},render(){if(this.isVisible)return e.h("small",{role:this.hasInvalid?"alert":this.hasValid?"status":void 0},this.hintContent)}}}}const ne={...O,...A,...D,...P,...g,...y,...x,...h,...k,...V,...w,...E,...N,...C,...L,...S,multiple:Boolean,required:Boolean,size:[String,Number],modelValue:{type:[String,Number,Boolean,Object,Array],default:void 0},placeholder:String};function ae(t,l){const{focused:o}=n.useFocus(t);return e.watch(o,(o=>{l(o?"focus":"blur",e.unref(t))})),{focused:o}}function re(t,l){const o=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===u.before))),n=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===u.after))),a=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===r.left))),i=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===r.right))),d=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===r.top))),s=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===r.bottom)));return{hasIcon:e.computed((()=>"string"==typeof(null==t?void 0:t.value)?{name:null==t?void 0:t.value}:null==t?void 0:t.value)),hasIconLeft:a,hasIconRight:i,hasIconTop:d,hasIconBottom:s,hasIconBefore:o,hasIconAfter:n}}function ie(t){const{options:l,labelKey:o,valueKey:n,disabledKey:a}=e.toRefs(t);return{options:l,getOptionLabel:e=>"object"!=typeof e&&null!==e?e:"function"==typeof o.value?o.value(e):e[o.value],getOptionValue:e=>"object"!=typeof e&&null!==e?e:"function"==typeof n.value?n.value(e):e[n.value],getOptionDisabled:e=>("object"==typeof e||null===e)&&("function"==typeof a.value?a.value(e):e[a.value]),getOptionGrouped:e=>"object"!=typeof e&&null!==e?[]:e.options}}const ue=["for"],de={class:"vv-select__wrapper"},se={key:0,class:"vv-select__input-before"},ce={class:"vv-select__inner"},pe=["id"],fe=["disabled","hidden"],ve=["disabled","value"],me=["disabled","label"],be=["disabled","value"],ge={key:1,class:"vv-select__input-after"},ye=e.defineComponent({name:"VvSelect",props:ne,emits:["update:modelValue","focus","blur"],setup(t,{emit:l}){const o=t,a=e.useSlots(),r=e.ref(),{HintSlot:i,hasHint:u,hasInvalid:d}=oe(o,a),{id:s,modifiers:c,disabled:p,readonly:f,loading:v,icon:m,iconPosition:b,invalid:g,valid:y,floating:h,multiple:k}=e.toRefs(o),B=T(s),S=e.computed((()=>`${B.value}-hint`)),{focused:V}=ae(r,l),w=n.useElementVisibility(r);e.watch(w,(e=>{e&&o.autofocus&&(V.value=!0)}));const{hasIcon:x,hasIconBefore:E,hasIconAfter:N}=re(m,b),P=e.computed((()=>!ee(o.modelValue))),C=e.computed((()=>o.disabled||o.readonly)),L=e.computed((()=>C.value?-1:o.tabindex)),_=e.computed((()=>!0===o.invalid||!0!==o.valid&&void 0)),$=z("vv-select",c,e.computed((()=>({valid:y.value,invalid:g.value,loading:v.value,disabled:p.value,readonly:f.value,"icon-before":E.value,"icon-after":N.value,dirty:P.value,focus:V.value,floating:h.value,multiple:k.value})))),O=e.computed((()=>({name:o.name,tabindex:L.value,disabled:C.value,required:o.required,size:o.size,autocomplete:o.autocomplete,multiple:o.multiple,"aria-invalid":_.value,"aria-describedby":!d.value&&u.value?S.value:void 0,"aria-errormessage":d.value?S.value:void 0}))),A=e.computed((()=>({valid:o.valid,invalid:o.invalid,modelValue:o.modelValue}))),{getOptionLabel:D,getOptionValue:j,getOptionDisabled:F,getOptionGrouped:R}=ie(o),I=e.computed({get:()=>o.modelValue,set:e=>{Array.isArray(e)&&(e=e.filter((e=>void 0!==e))),l("update:modelValue",e)}}),K=e=>"string"!=typeof e&&(e&&e.options&&e.options.length>0);return(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref($))},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(B)},e.toDisplayString(t.label),9,ue)):e.createCommentVNode("",!0),e.createElementVNode("div",de,[t.$slots.before?(e.openBlock(),e.createElementBlock("div",se,[e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps(e.unref(A))))])):e.createCommentVNode("",!0),e.createElementVNode("div",ce,[e.unref(E)?(e.openBlock(),e.createBlock(H,e.mergeProps({key:0,class:"vv-select__icon"},e.unref(x)),null,16)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("select",e.mergeProps({id:e.unref(B),ref_key:"select",ref:r,"onUpdate:modelValue":l[0]||(l[0]=t=>e.isRef(I)?I.value=t:null)},e.unref(O)),[t.placeholder?(e.openBlock(),e.createElementBlock("option",{key:0,value:void 0,disabled:!t.unselectable,hidden:!t.unselectable},e.toDisplayString(t.placeholder),9,fe)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,((t,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[K(t)?(e.openBlock(),e.createElementBlock("optgroup",{key:`group-${l}`,disabled:e.unref(F)(t),label:e.unref(D)(t)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(R)(t),((t,o)=>(e.openBlock(),e.createElementBlock("option",{key:`group-${l}-item-${o}`,disabled:e.unref(F)(t),value:e.unref(j)(t)},e.toDisplayString(e.unref(D)(t)),9,be)))),128))],8,me)):(e.openBlock(),e.createElementBlock("option",{key:l,disabled:e.unref(F)(t),value:e.unref(j)(t)},e.toDisplayString(e.unref(D)(t)),9,ve))],64)))),256))],16,pe),[[e.vModelSelect,e.unref(I)]]),e.unref(N)?(e.openBlock(),e.createBlock(H,e.mergeProps({key:1,class:"vv-select__icon vv-select__icon-after"},e.unref(x)),null,16)):e.createCommentVNode("",!0)]),t.$slots.after?(e.openBlock(),e.createElementBlock("div",ge,[e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps(e.unref(A))))])):e.createCommentVNode("",!0)]),e.createVNode(e.unref(i),{id:e.unref(S),class:"vv-select__hint"},null,8,["id"])],2))}}),he={...w,value:[String,Number]},ke=e.defineComponent({name:"VvBadge",props:he,setup(t){const l=t,{modifiers:o}=e.toRefs(l),n=z("vv-badge",o);return(t,l)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(n)),role:"status"},[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.value),1)]))],2))}});const Be=["id"],Se=["id","for"],Ve=["id","aria-controls","aria-labelledby","aria-describedby","placeholder"],we={key:0,class:"vv-select__input-before"},xe={class:"vv-select__inner"},Ee=["aria-labelledby","tabindex"],Ne=["aria-label","onClick"],Pe={key:1,class:"vv-select__input-after"},Ce={name:"VvCombobox",components:{VvDropdown:q,VvDropdownOption:U,VvDropdownOptgroup:J}};return e.defineComponent({...Ce,props:j,emits:["update:modelValue","change:search","focus","blur"],setup(t,{emit:l}){const o=t,a=e.useSlots(),r=function(t,l,o){const n=R(),a=e.computed((()=>{var e;if(n&&(null==(e=n.defaults.value)?void 0:e[t]))return n.defaults.value[t]}));return e.computed((()=>{if(void 0===a.value)return o;const e=a.value,t=l,n=o;return Object.keys(t).reduce(((l,o)=>{const a=n[o];if(l[o]=a,o in e){if(Array.isArray(t[o])){const n=t[o];n.length&&n[0]===a&&(l[o]=e[o])}if("function"==typeof t[o]&&(0,t[o])()===a&&(l[o]=e[o]),"object"==typeof t[o]){let n=t[o].default;"function"==typeof n&&(n=n()),"object"==typeof n?JSON.stringify(n)===JSON.stringify(a)&&(l[o]=e[o]):n===a&&(l[o]=e[o])}}return l}),{})}))}("VvCombobox",j,o),{HintSlot:i}=oe(o,a),u=e.ref(null),d=e.ref(null),s=e.ref(null),{focused:p}=ae(u,l),{focused:f}=n.useFocusWithin(s);e.watch(p,(e=>{o.autoOpen&&(!e||b.value?e||!b.value||f.value||h():y())})),e.watch(f,(e=>{p.value||e||!b.value||h()}));const v=e.ref(""),m=n.refDebounced(v,Number(o.debounceSearch));e.watch(m,(()=>l("change:search",m.value)));const b=e.ref(!1),g=()=>{o.disabled||o.readonly||(b.value=!b.value)},y=()=>{o.disabled||o.readonly||b.value||(b.value=!0)},h=()=>{o.disabled||o.readonly||!b.value||(b.value=!1)};e.watch(b,(t=>{L.value&&e.nextTick((()=>{t?d.value&&d.value.focus():v.value=""}))}));const{id:k,icon:B,iconPosition:S,modifiers:V,disabled:w,readonly:x,loading:E,valid:N,invalid:P,floating:C,searchable:L}=e.toRefs(o),_=T(k),$=e.computed((()=>`${_.value}-hint`)),O=e.computed((()=>`${_.value}-dropdown`)),A=e.computed((()=>`${_.value}-search`)),D=e.computed((()=>`${_.value}-label`)),{hasIcon:F,hasIconBefore:I,hasIconAfter:K}=re(B,S),W=e.computed((()=>!ee(o.modelValue))),M=e.computed((()=>w.value||x.value?-1:o.tabindex)),G=z("vv-select",V,e.computed((()=>({disabled:w.value,loading:E.value,readonly:x.value,"icon-before":Boolean(I.value),"icon-after":Boolean(K.value),valid:N.value,invalid:P.value,dirty:W.value,focus:p.value,floating:C.value})))),X=e.computed((()=>o.searchable?de.value:o.options)),{getOptionLabel:Y,getOptionValue:le,getOptionDisabled:ne,getOptionGrouped:ue}=ie(o),de=e.computed((()=>{var e;return null==(e=o.options)?void 0:e.filter((e=>Y(e).toLowerCase().includes(m.value.toLowerCase().trim())))}));function se(e){return Array.isArray(o.modelValue)?Z(e,o.modelValue)||Z(le(e),o.modelValue):Q(e,o.modelValue)||Q(le(e),o.modelValue)}const ce=e.computed((()=>{let e=[];return Array.isArray(o.modelValue)?e=o.modelValue:o.modelValue&&(e=[o.modelValue]),o.options.filter((t=>e.includes(le(t))))})),pe=e.computed((()=>ce.value.map((e=>Y(e))).join(o.separator)));e.watch(ce,(()=>{!o.multiple&&o.autoClose&&h()}));const fe=()=>{o.autoOpen?y():g()},ve=e=>{var t;if(o.disabled||o.readonly)return;const n=le(e);let a=n;if(o.multiple)if(Array.isArray(o.modelValue)){const e=Number(o.maxValues);if(void 0!==o.maxValues&&e>=0&&(null==(t=o.modelValue)?void 0:t.length)>=e&&!Z(n,o.modelValue))return;a=Z(n,o.modelValue)?te(n,o.modelValue):[...o.modelValue,n]}else a=[n];else o.autoClose&&h(),o.unselectable&&n===o.modelValue&&(a=void 0);l("update:modelValue",a)},me=e.computed((()=>({id:_.value,name:o.name,tabindex:M.value,valid:N.value,validLabel:r.value.validLabel,invalid:P.value,invalidLabel:r.value.invalidLabel,hintLabel:r.value.hintLabel,loading:E.value,loadingLabel:r.value.loadingLabel,disabled:w.value,readonly:x.value,modifiers:o.modifiers,options:X.value,labelKey:o.labelKey,valueKey:o.valueKey,icon:o.icon,iconPosition:o.iconPosition,floating:o.floating,unselectable:o.unselectable,multiple:o.multiple,label:o.label,placeholder:o.placeholder,modelValue:o.modelValue}))),be=e.computed((()=>({id:O.value,reference:s.value,placement:o.placement,strategy:o.strategy,transitionName:o.transitionName,offset:o.offset,shift:o.shift,flip:o.flip,autoPlacement:o.autoPlacement,arrow:o.arrow,autoClose:o.autoClose,autofocusFirst:!L.value&&o.autofocusFirst,triggerWidth:o.triggerWidth,modifiers:o.dropdownModifiers}))),ge=e.computed((()=>({valid:o.valid,invalid:o.invalid,modelValue:o.modelValue})));n.onKeyStroke([" ","Enter"],(e=>{o.autoOpen||!b.value&&p.value&&(e.preventDefault(),e.stopImmediatePropagation(),g())}));const he=e=>"string"!=typeof e&&(e.options&&e.options.length>0);return(t,o)=>t.native?(e.openBlock(),e.createBlock(ye,e.mergeProps({key:1},e.unref(me),{"onUpdate:modelValue":o[2]||(o[2]=e=>l("update:modelValue",e))}),null,16)):(e.openBlock(),e.createElementBlock("div",{key:0,id:e.unref(_),class:e.normalizeClass(e.unref(G))},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,id:e.unref(D),for:e.unref(L)?e.unref(A):void 0},e.toDisplayString(t.label),9,Se)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"wrapperEl",ref:s,class:"vv-select__wrapper"},[e.createVNode(q,e.mergeProps({modelValue:e.unref(b),"onUpdate:modelValue":o[1]||(o[1]=t=>e.isRef(b)?b.value=t:null)},e.unref(be),{role:e.unref(c).listbox}),e.createSlots({default:e.withCtx((({aria:l})=>[t.$slots.before?(e.openBlock(),e.createElementBlock("div",we,[e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps(e.unref(ge))))])):e.createCommentVNode("",!0),e.createElementVNode("div",xe,[e.unref(I)?(e.openBlock(),e.createBlock(H,e.mergeProps({key:0,class:"vv-select__icon"},e.unref(F)),null,16)):e.createCommentVNode("",!0),e.createElementVNode("div",e.mergeProps({ref_key:"inputEl",ref:u},l,{"aria-labelledby":e.unref(D),class:"vv-select__input",role:"combobox",tabindex:e.unref(M),onClickPassive:fe}),[e.renderSlot(t.$slots,"value",e.normalizeProps(e.guardReactiveProps({selectedOptions:e.unref(ce),onInput:ve})),(()=>[e.unref(pe)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.badges?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(e.unref(ce),((l,o)=>(e.openBlock(),e.createBlock(ke,{key:o,modifiers:t.badgeModifiers,class:"vv-select__badge"},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(e.unref(Y)(l))+" ",1),!t.unselectable||e.unref(x)||e.unref(w)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,"aria-label":e.unref(r).deselectActionLabel,onClick:e.withModifiers((e=>ve(l)),["stop"])},[e.createVNode(H,{name:"close"})],8,Ne))])),_:2},1032,["modifiers"])))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(pe)),1)],64))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(t.placeholder),1)],64))]))],16,Ee),e.unref(K)?(e.openBlock(),e.createBlock(H,e.mergeProps({key:1,class:"vv-select__icon vv-select__icon-after"},e.unref(F)),null,16)):e.createCommentVNode("",!0)]),t.$slots.after?(e.openBlock(),e.createElementBlock("div",Pe,[e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps(e.unref(ge))))])):e.createCommentVNode("",!0)])),items:e.withCtx((()=>[e.unref(de).length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(e.unref(de),((l,o)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:o},[he(l)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(J,{label:e.unref(Y)(l)},null,8,["label"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(ue)(l),((o,n)=>(e.openBlock(),e.createBlock(U,e.mergeProps({disabled:e.unref(ne)(o),selected:se(o),unselectable:t.unselectable,deselectHintLabel:e.unref(r).deselectHintLabel,selectHintLabel:e.unref(r).selectHintLabel,selectedHintLabel:e.unref(r).selectedHintLabel},{key:n,class:"vv-dropdown-option",onClickPassive:e=>ve(o)}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"option",e.normalizeProps(e.guardReactiveProps({option:l,selectedOptions:e.unref(ce),selected:se(o),disabled:e.unref(ne)(o)})),(()=>[e.createTextVNode(e.toDisplayString(e.unref(Y)(o)),1)]))])),_:2},1040,["onClickPassive"])))),128))],64)):(e.openBlock(),e.createBlock(U,e.mergeProps({key:1},{disabled:e.unref(ne)(l),selected:se(l),unselectable:t.unselectable,deselectHintLabel:e.unref(r).deselectHintLabel,selectHintLabel:e.unref(r).selectHintLabel,selectedHintLabel:e.unref(r).selectedHintLabel},{class:"vv-dropdown-option",onClickPassive:e=>ve(l)}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"option",e.normalizeProps(e.guardReactiveProps({option:l,selectedOptions:e.unref(ce),selected:se(l),disabled:e.unref(ne)(l)})),(()=>[e.createTextVNode(e.toDisplayString(e.unref(Y)(l)),1)]))])),_:2},1040,["onClickPassive"]))],64)))),128)):t.options.length?(e.openBlock(),e.createBlock(U,{key:2,modifiers:"inert"},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"no-results",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(r).noResultsLabel),1)]))])),_:3})):(e.openBlock(),e.createBlock(U,{key:1,modifiers:"inert"},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"no-options",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(r).noOptionsLabel),1)]))])),_:3}))])),_:2},[e.unref(L)||t.$slots["dropdown::before"]?{name:"before",fn:e.withCtx((()=>[e.renderSlot(t.$slots,"dropdown::before"),e.unref(L)?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,id:e.unref(A),ref_key:"inputSearchEl",ref:d,"onUpdate:modelValue":o[0]||(o[0]=t=>e.isRef(v)?v.value=t:null),"aria-autocomplete":"list","aria-controls":e.unref(O),"aria-labelledby":e.unref(D),"aria-describedby":e.unref($),autocomplete:"off",spellcheck:"false",type:"search",class:"vv-dropdown__search",placeholder:e.unref(r).searchPlaceholder},null,8,Ve)),[[e.vShow,e.unref(b)],[e.vModelText,e.unref(v)]]):e.createCommentVNode("",!0)])),key:"0"}:void 0,t.$slots["dropdown::after"]?{name:"after",fn:e.withCtx((()=>[e.renderSlot(t.$slots,"dropdown::after")])),key:"1"}:void 0]),1040,["modelValue","role"])],512),e.createVNode(e.unref(i),{id:e.unref($),class:"vv-select__hint"},null,8,["id"])],10,Be))}})}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("@iconify/vue"),require("@floating-ui/vue"),require("nanoid"),require("@vueuse/core"),require("mitt")):"function"==typeof define&&define.amd?define(["vue","@iconify/vue","@floating-ui/vue","nanoid","@vueuse/core","mitt"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvCombobox=t(e.vue,e.vue$1,e.vue$2,e.nanoid,e.core,e.mitt)}(this,(function(e,t,l,o,n,a){"use strict";var r=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(r||{}),i=(e=>(e.topStart="top-start",e.topEnd="top-end",e.bottomStart="bottom-start",e.bottomEnd="bottom-end",e.leftStart="left-start",e.leftEnd="left-end",e.rightStart="right-start",e.rightEnd="right-end",e))(i||{}),u=(e=>(e.before="before",e.after="after",e))(u||{}),d=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(d||{}),s=(e=>(e.button="button",e.link="link",e.menuitem="menuitem",e))(s||{}),c=(e=>(e.listbox="listbox",e.menu="menu",e))(c||{}),p=(e=>(e.option="option",e.presentation="presentation",e))(p||{});const f=Symbol.for("volver"),v=Symbol.for("dropdownTrigger"),m=Symbol.for("dropdownItem"),b=Symbol.for("dropdownAction"),g={valid:Boolean,validLabel:[String,Array]},y={invalid:Boolean,invalidLabel:[String,Array]},h={loading:Boolean,loadingLabel:{type:String,default:"Loading..."}},k={disabled:Boolean},B={selected:Boolean},S=(Boolean,Boolean,{label:[String,Number]}),V={readonly:Boolean},w={modifiers:[String,Array]},x={hintLabel:{type:String,default:""}},E={options:{type:Array,default:()=>[]},labelKey:{type:[String,Function],default:"label"},valueKey:{type:[String,Function],default:"value"},disabledKey:{type:[String,Function],default:"disabled"}},N={icon:{type:[String,Object]},iconPosition:{type:String,default:u.before,validation:e=>Object.values(u).includes(e)}},P={tabindex:{type:[String,Number],default:0}},C={floating:Boolean},L={unselectable:{type:Boolean,default:!0}},_={id:[String,Number]},$={placement:{type:String,default:r.bottom,validator:e=>Object.values(r).includes(e)||Object.values(i).includes(e)},strategy:{type:String,default:"absolute",validator:e=>["fixed","absolute"].includes(e)},transitionName:{type:String},offset:{type:[Number,String,Object],default:0},shift:{type:[Boolean,Object],default:!1},flip:{type:[Boolean,Object],default:!0},size:{type:[Boolean,Object],default:()=>({padding:10})},autoPlacement:{type:[Boolean,Object],default:!1},arrow:{type:Boolean,default:!1},autoClose:{type:Boolean,default:!0},autofocusFirst:{type:Boolean,default:!0},triggerWidth:{type:Boolean}},O={..._,name:{type:String,required:!0}},A={autofocus:Boolean},D={autocomplete:{type:String,default:"off"}};d.button;const j={...O,...P,...g,...y,...x,...h,...k,...V,...w,...E,...N,...C,...L,...$,...S,modelValue:{type:[String,Number,Boolean,Object,Array],default:void 0},noResultsLabel:{type:String,default:"No results"},noOptionsLabel:{type:String,default:"No options available"},selectedHintLabel:{type:String,default:"Selected"},deselectActionLabel:{type:String,default:"Deselect"},selectHintLabel:{type:String,default:"Press enter to select"},deselectHintLabel:{type:String,default:"Press enter to remove"},placeholder:String,searchable:Boolean,searchPlaceholder:{type:String,default:"Search..."},debounceSearch:{type:[Number,String],default:0},multiple:Boolean,maxValues:[Number,String],separator:{type:String,default:", "},native:Boolean,badges:Boolean,badgeModifiers:{type:[String,Array],default:"action sm"},triggerWidth:{...$.triggerWidth,default:!0},dropdownModifiers:{type:[String,Array]},autoOpen:Boolean,autoClose:Boolean},F={color:String,width:{type:[String,Number]},height:{type:[String,Number]},name:{type:String,required:!0},provider:{type:String},prefix:{type:String,default:"normal"},src:String,horizontalFlip:Boolean,verticalFlip:Boolean,flip:String,mode:String,inline:Boolean,rotate:[Number,String],onLoad:Function,svg:String,modifiers:{type:[String,Array]}};function R(){return e.inject(f)}function z(t,l,o){return e.computed((()=>{const n={[t]:!0},a="string"==typeof(null==l?void 0:l.value)?l.value.split(" "):null==l?void 0:l.value;return a&&Array.isArray(a)&&a.forEach((e=>{e&&(n[`${t}--${e}`]=!0)})),o&&Object.keys(o.value).forEach((l=>{n[`${t}--${l}`]=e.unref(o.value[l])})),n}))}const H=e.defineComponent({name:"VvIcon",props:F,setup(l){const o=l,n=e.ref(!0),a=R(),{modifiers:r}=e.toRefs(o),i=z("vv-icon",r),u=e.computed((()=>o.provider||(null==a?void 0:a.iconsProvider))),d=e.computed((()=>{const e=o.name??"",l=`@${u.value}:${o.prefix}:${o.name}`;return t.iconExists(e)?e:t.iconExists(l)?l:(null==a?void 0:a.iconsCollections.find((l=>{const o=`@${u.value}:${l.prefix}:${e}`;if(t.iconExists(o))return o})))||e}));function s(e){const l=function(e){let t=null;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");t=(new e).window}return(t?new t.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),n=(null==l?void 0:l.innerHTML.trim())||"";l&&n&&t.addIcon(`@${u.value}:${o.prefix}:${o.name}`,{body:n,height:l.viewBox.baseVal.height,width:l.viewBox.baseVal.width})}return a&&(o.src&&!t.iconExists(`@${u.value}:${o.prefix}:${o.name}`)?(n.value=!1,a.fetchIcon(o.src).then((e=>{e&&(s(e),n.value=!0)})).catch((e=>{throw new Error(`During fetch icon: ${null==e?void 0:e.message}`)}))):o.svg&&s(o.svg)),(l,o)=>e.unref(n)?(e.openBlock(),e.createBlock(e.unref(t.Icon),e.mergeProps({key:0,class:e.unref(i)},{inline:l.inline,width:l.width,height:l.height,horizontalFlip:l.horizontalFlip,verticalFlip:l.verticalFlip,flip:l.flip,rotate:l.rotate,color:l.color,onLoad:l.onLoad,icon:e.unref(d)}),null,16,["class"])):e.createCommentVNode("",!0)}}),I={..._,...w,...$,modelValue:{type:Boolean,default:void 0},reference:{type:Object,default:null},role:{type:String,default:c.menu,validator:e=>Object.values(c).includes(e)}},T=t=>e.computed((()=>String((null==t?void 0:t.value)||o.nanoid())));const K=["id","tabindex","role","aria-labelledby"],q=e.defineComponent({name:"VvDropdown",inheritAttrs:!1,props:I,emits:["update:modelValue"],setup(t,{expose:o,emit:r}){const i=t,{id:u}=e.toRefs(i),d=T(u),s=e.useAttrs(),f=e.ref("auto"),b=e.ref("auto"),g=e.ref(null),y=e.ref(null),h=e.ref(null),k=e.ref(null),B=e.computed({get:()=>i.reference??g.value,set:e=>{g.value=e}}),S=e.computed((()=>{const e=[];if(i.autoPlacement?"boolean"==typeof i.autoPlacement?e.push(l.autoPlacement()):e.push(l.autoPlacement(i.autoPlacement)):i.flip&&("boolean"==typeof i.flip?e.push(l.flip()):e.push(l.flip(i.flip))),i.shift&&("boolean"==typeof i.shift?e.push(l.shift()):e.push(l.shift(i.shift))),i.size){const t=({availableWidth:e,availableHeight:t})=>{f.value=`${e}px`,b.value=`${t}px`};"boolean"==typeof i.size?e.push(l.size({apply:t})):e.push(l.size({...i.size,apply:t}))}return i.offset&&(e.push(l.offset(Number(i.offset))),["string","number"].includes(typeof i.offset)?e.push(l.offset(Number(i.offset))):e.push(l.offset(i.offset))),i.arrow&&e.push(l.arrow({element:h})),e})),{x:V,y:w,strategy:x,middlewareData:E,placement:N}=l.useFloating(B,y,{whileElementsMounted:l.autoUpdate,placement:e.computed((()=>i.placement)),strategy:e.computed((()=>i.strategy)),middleware:S}),P=e.computed((()=>({position:x.value,top:`${w.value??0}px`,left:`${V.value??0}px`,maxWidth:f.value,maxHeight:b.value,width:i.triggerWidth&&B.value?`${B.value.offsetWidth}px`:void 0}))),C=e.computed((()=>N.value.split("-")[0])),L=e.computed((()=>({top:"bottom",right:"left",bottom:"top",left:"right"}[C.value]??"bottom"))),_=e.computed((()=>{var e,t,l,o;return["bottom","top"].includes(L.value)?{right:`${(null==(e=E.value.arrow)?void 0:e.x)??0}px`,[L.value]:-((null==(t=h.value)?void 0:t.offsetWidth)??0)/2+"px"}:{top:`${(null==(l=E.value.arrow)?void 0:l.y)??0}px`,[L.value]:-((null==(o=h.value)?void 0:o.offsetWidth)??0)/2+"px"}})),$=n.useVModel(i,"modelValue",r),O=e.ref(!1),A=e.computed({get:()=>$.value??O.value,set:e=>{void 0!==$.value?$.value=e:O.value=e}}),D=()=>{A.value=!0},j=()=>{A.value=!1},F=()=>{A.value=!A.value},R=e=>{B.value=e};o({toggle:F,show:D,hide:j,init:R}),e.watch(A,(t=>{t&&i.autofocusFirst&&e.nextTick((()=>{const e=X(y.value);e.length>0&&e[0].focus()}))})),n.onClickOutside(y,(()=>{i.autoClose&&(A.value=!1)}),{ignore:[B]});const H=e.computed((()=>{var e,t;return(null==(t=null==(e=B.value)?void 0:e.getAttribute)?void 0:t.call(e,"id"))??void 0})),I=e.computed((()=>({"aria-controls":d.value,"aria-haspopup":!0,"aria-expanded":A.value}))),{component:q,bus:W}=function({reference:t,id:l,expanded:o,aria:n}){const r=a(),i=e.defineComponent({name:"VvDropdownTriggerProvider",provide:()=>({[v]:{reference:t,id:l,expanded:o,aria:n,bus:r}}),setup:()=>({}),render(){var t,l;return e.h(e.Fragment,{},null==(l=(t=this.$slots).default)?void 0:l.call(t))}});return{bus:r,component:i}}({reference:B,id:d,expanded:A,aria:I});W.on("click",F);const{role:M,modifiers:U}=e.toRefs(i),{itemRole:G}=function({role:t,expanded:l}){const o=e.computed((()=>t.value===c.listbox?p.option:p.presentation));return e.provide(m,{role:o,expanded:l}),{itemRole:o}}({role:M,expanded:A}),J=z("vv-dropdown",U,e.computed((()=>({arrow:i.arrow})))),{focused:Q}=n.useFocusWithin(y);function X(e){return e?[...e.querySelectorAll('a[href], button, input, textarea, select, details,[tabindex]:not([tabindex="-1"])')].filter((e=>!e.hasAttribute("disabled")&&!e.getAttribute("aria-hidden"))):[]}return n.onKeyStroke("Escape",(e=>{A.value&&(e.preventDefault(),j())})),n.onKeyStroke("ArrowDown",(t=>{A.value&&Q.value&&(t.preventDefault(),e.nextTick((()=>{if(Q.value){const e=X(y.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t<e.length-1?e[t+1].focus():e[0].focus()}})))})),n.onKeyStroke("ArrowUp",(t=>{A.value&&Q.value&&(t.preventDefault(),e.nextTick((()=>{if(Q.value){const e=X(y.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t>0?e[t-1].focus():e[e.length-1].focus()}})))})),n.onKeyStroke([" ","Enter"],(e=>{if(A.value&&Q.value){e.preventDefault();document.activeElement.click()}})),(t,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(q),null,{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps({init:R,show:D,hide:j,toggle:F,expanded:e.unref(A),aria:e.unref(I)})))])),_:3}),e.createVNode(e.Transition,{name:t.transitionName},{default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("div",{ref_key:"floatingEl",ref:y,style:e.normalizeStyle(e.unref(P)),class:e.normalizeClass(e.unref(J))},[i.arrow?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"arrowEl",ref:h,style:e.normalizeStyle(e.unref(_)),class:"vv-dropdown__arrow"},null,4)):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(A)}))),e.createElementVNode("ul",e.mergeProps(e.unref(s),{id:e.unref(d),ref_key:"listEl",ref:k,tabindex:e.unref(A)?void 0:-1,role:e.unref(M),"aria-labelledby":e.unref(H),class:"vv-dropdown__list"}),[e.renderSlot(t.$slots,"items",e.normalizeProps(e.guardReactiveProps({role:e.unref(G)})))],16,K),e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(A)})))],6),[[e.vShow,e.unref(A)]])])),_:3},8,["name"])],64))}});const W=e.defineComponent({name:"VvDropdownItem",setup(t){const{role:l,expanded:o}=e.inject(m,{}),a=e.ref(null);!function({expanded:t}){e.provide(b,{role:s.menuitem,expanded:t})}({expanded:o});const r=n.useElementHover(a),{focused:i}=n.useFocus(a),{focused:u}=n.useFocusWithin(a);return e.watch(r,(e=>{e&&(i.value=!0)})),(t,o)=>(e.openBlock(),e.createElementBlock("li",e.mergeProps({role:e.unref(l)},{ref_key:"element",ref:a,class:["vv-dropdown__item",{"focus-visible":e.unref(i)||e.unref(u)}]}),[e.renderSlot(t.$slots,"default")],16))}}),M=["title"],U=e.defineComponent({name:"VvDropdownOption",props:{...k,...B,...L,...w,deselectHintLabel:{type:String},selectHintLabel:{type:String},selectedHintLabel:{type:String}},setup(t){const l=t,{modifiers:o}=e.toRefs(l),n=z("vv-dropdown-option",o,e.computed((()=>({disabled:l.disabled,selected:l.selected,unselectable:l.unselectable&&l.selected})))),a=e.computed((()=>l.selected?l.unselectable?l.deselectHintLabel:l.selectedHintLabel:l.disabled?void 0:l.selectHintLabel));return(t,l)=>(e.openBlock(),e.createBlock(W,{class:e.normalizeClass(e.unref(n)),tabindex:t.disabled?-1:0,"aria-selected":t.selected,"aria-disabled":t.disabled},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default"),e.createElementVNode("span",{class:"vv-dropdown-option__hint",title:e.unref(a)},[e.renderSlot(t.$slots,"hint",e.normalizeProps(e.guardReactiveProps({disabled:t.disabled,selected:t.selected,unselectable:t.unselectable})),(()=>[e.createTextVNode(e.toDisplayString(e.unref(a)),1)]))],8,M)])),_:3},8,["class","tabindex","aria-selected","aria-disabled"]))}}),G={class:"vv-dropdown-optgroup",role:"presentation",tabindex:"-1"},J=e.defineComponent({name:"VvDropdownOptgroup",props:{...S},setup(t){const l=t;return(t,o)=>(e.openBlock(),e.createElementBlock("li",G,e.toDisplayString(l.label),1))}});function Q(e,t,l){return l?Y(e,l)===Y(t,l):X(e,t)}function X(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){const l=Array.isArray(e),o=Array.isArray(t);let n,a,r;if(l&&o){if(a=e.length,a!=t.length)return!1;for(n=a;0!=n--;)if(!X(e[n],t[n]))return!1;return!0}if(l!=o)return!1;const i=e instanceof Date,u=t instanceof Date;if(i!=u)return!1;if(i&&u)return e.getTime()==t.getTime();const d=e instanceof RegExp,s=t instanceof RegExp;if(d!=s)return!1;if(d&&s)return e.toString()==t.toString();const c=Object.keys(e);if(a=c.length,a!==Object.keys(t).length)return!1;for(n=a;0!=n--;)if(!Object.prototype.hasOwnProperty.call(t,c[n]))return!1;for(n=a;0!=n--;)if(r=c[n],!X(e[r],t[r]))return!1;return!0}return e!=e&&t!=t}function Y(e,t){if(e&&Object.keys(e).length&&t){if(-1===t.indexOf("."))return e[t];{const l=t.split(".");let o=e;for(let t=0,n=l.length;t<n;++t){if(null==e)return null;o=o[l[t]]}return o}}return null}function Z(e,t){if(null!=e&&t&&t.length)for(const l of t)if(Q(e,l))return!0;return!1}function ee(t){return null==(l=e.unref(t))||""===l||Array.isArray(l)&&0===l.length||!(l instanceof Date)&&"object"==typeof l&&0===Object.keys(l).length;var l}function te(e,t){const l=function(e,t){let l=-1;if(t)for(let o=0;o<t.length;o++)if(Q(t[o],e)){l=o;break}return l}(e,t);return l>-1?t.filter(((e,t)=>t!==l)):t}function le(e){return Array.isArray(e)?e.filter((e=>{return"string"==typeof(t=e)||t instanceof String;var t})).join(" "):e}function oe(t,l){const{invalid:o,valid:a,hint:r,loading:i}=l,{hintLabel:u,modelValue:d,valid:s,validLabel:c,invalid:p,invalidLabel:f,...v}=e.toRefs(t),m=Y(v,"loading"),b=Y(v,"loadingLabel"),g=e.computed((()=>!!p.value&&(!(!p.value||!o)||(!!((null==f?void 0:f.value)&&Array.isArray(f.value)&&f.value.length>0)||!(!(null==f?void 0:f.value)||ee(f)))))),y=e.computed((()=>!!(u&&u.value||r))),h=e.computed((()=>!!(c&&c.value||a))),k=e.computed((()=>!!((null==m?void 0:m.value)&&i||(null==m?void 0:m.value)&&(null==b?void 0:b.value)))),B=e.computed((()=>y.value||h.value||g.value||k.value));return{hasInvalid:g,hasHint:y,hasValid:h,hasLoading:k,HintSlot:{name:"HintSlot",props:{params:{type:Object,default:()=>({})}},setup(t){const l=e.computed((()=>{const e=n.toReactive({hintLabel:u,modelValue:d,valid:s,validLabel:c,invalid:p,invalidLabel:f,loading:m,loadingLabel:b,...t.params});return(null==p?void 0:p.value)?(null==o?void 0:o(e))||le(null==f?void 0:f.value)||(null==u?void 0:u.value):(null==s?void 0:s.value)?(null==a?void 0:a(e))||le(null==c?void 0:c.value)||(null==u?void 0:u.value):(null==m?void 0:m.value)?(null==i?void 0:i(e))||le(null==b?void 0:b.value)||(null==u?void 0:u.value):(null==r?void 0:r(e))||le(null==u?void 0:u.value)||(null==u?void 0:u.value)}));return{isVisible:B,hasInvalid:g,hasValid:h,hintContent:l}},render(){if(this.isVisible)return e.h("small",{role:this.hasInvalid?"alert":this.hasValid?"status":void 0},this.hintContent)}}}}const ne={...O,...A,...D,...P,...g,...y,...x,...h,...k,...V,...w,...E,...N,...C,...L,...S,multiple:Boolean,required:Boolean,size:[String,Number],modelValue:{type:[String,Number,Boolean,Object,Array],default:void 0},placeholder:String};function ae(t,l){const{focused:o}=n.useFocus(t);return e.watch(o,(o=>{l(o?"focus":"blur",e.unref(t))})),{focused:o}}function re(t,l){const o=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===u.before))),n=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===u.after))),a=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===r.left))),i=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===r.right))),d=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===r.top))),s=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===r.bottom)));return{hasIcon:e.computed((()=>"string"==typeof(null==t?void 0:t.value)?{name:null==t?void 0:t.value}:null==t?void 0:t.value)),hasIconLeft:a,hasIconRight:i,hasIconTop:d,hasIconBottom:s,hasIconBefore:o,hasIconAfter:n}}function ie(t){const{options:l,labelKey:o,valueKey:n,disabledKey:a}=e.toRefs(t);return{options:l,getOptionLabel:e=>"object"!=typeof e&&null!==e?e:"function"==typeof o.value?o.value(e):e[o.value],getOptionValue:e=>"object"!=typeof e&&null!==e?e:"function"==typeof n.value?n.value(e):e[n.value],getOptionDisabled:e=>("object"==typeof e||null===e)&&("function"==typeof a.value?a.value(e):e[a.value]),getOptionGrouped:e=>"object"!=typeof e&&null!==e?[]:e.options||[]}}const ue=["for"],de={class:"vv-select__wrapper"},se={key:0,class:"vv-select__input-before"},ce={class:"vv-select__inner"},pe=["id"],fe=["disabled","hidden"],ve=["disabled","value"],me=["disabled","label"],be=["disabled","value"],ge={key:1,class:"vv-select__input-after"},ye=e.defineComponent({name:"VvSelect",props:ne,emits:["update:modelValue","focus","blur"],setup(t,{emit:l}){const o=t,a=e.useSlots(),r=e.ref(),{HintSlot:i,hasHint:u,hasInvalid:d}=oe(o,a),{id:s,modifiers:c,disabled:p,readonly:f,loading:v,icon:m,iconPosition:b,invalid:g,valid:y,floating:h,multiple:k}=e.toRefs(o),B=T(s),S=e.computed((()=>`${B.value}-hint`)),{focused:V}=ae(r,l),w=n.useElementVisibility(r);e.watch(w,(e=>{e&&o.autofocus&&(V.value=!0)}));const{hasIcon:x,hasIconBefore:E,hasIconAfter:N}=re(m,b),P=e.computed((()=>!ee(o.modelValue))),C=e.computed((()=>o.disabled||o.readonly)),L=e.computed((()=>C.value?-1:o.tabindex)),_=e.computed((()=>!0===o.invalid||!0!==o.valid&&void 0)),$=z("vv-select",c,e.computed((()=>({valid:y.value,invalid:g.value,loading:v.value,disabled:p.value,readonly:f.value,"icon-before":E.value,"icon-after":N.value,dirty:P.value,focus:V.value,floating:h.value,multiple:k.value})))),O=e.computed((()=>({name:o.name,tabindex:L.value,disabled:C.value,required:o.required,size:o.size,autocomplete:o.autocomplete,multiple:o.multiple,"aria-invalid":_.value,"aria-describedby":!d.value&&u.value?S.value:void 0,"aria-errormessage":d.value?S.value:void 0}))),A=e.computed((()=>({valid:o.valid,invalid:o.invalid,modelValue:o.modelValue}))),{getOptionLabel:D,getOptionValue:j,getOptionDisabled:F,getOptionGrouped:R}=ie(o),I=e.computed({get:()=>o.modelValue,set:e=>{Array.isArray(e)&&(e=e.filter((e=>void 0!==e))),l("update:modelValue",e)}}),K=e=>"string"!=typeof e&&(e&&e.options&&e.options.length>0);return(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref($))},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(B)},e.toDisplayString(t.label),9,ue)):e.createCommentVNode("",!0),e.createElementVNode("div",de,[t.$slots.before?(e.openBlock(),e.createElementBlock("div",se,[e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps(e.unref(A))))])):e.createCommentVNode("",!0),e.createElementVNode("div",ce,[e.unref(E)?(e.openBlock(),e.createBlock(H,e.mergeProps({key:0,class:"vv-select__icon"},e.unref(x)),null,16)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("select",e.mergeProps({id:e.unref(B),ref_key:"select",ref:r,"onUpdate:modelValue":l[0]||(l[0]=t=>e.isRef(I)?I.value=t:null)},e.unref(O)),[t.placeholder?(e.openBlock(),e.createElementBlock("option",{key:0,value:void 0,disabled:!t.unselectable,hidden:!t.unselectable},e.toDisplayString(t.placeholder),9,fe)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,((t,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[K(t)?(e.openBlock(),e.createElementBlock("optgroup",{key:`group-${l}`,disabled:e.unref(F)(t),label:e.unref(D)(t)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(R)(t),((t,o)=>(e.openBlock(),e.createElementBlock("option",{key:`group-${l}-item-${o}`,disabled:e.unref(F)(t),value:e.unref(j)(t)},e.toDisplayString(e.unref(D)(t)),9,be)))),128))],8,me)):(e.openBlock(),e.createElementBlock("option",{key:l,disabled:e.unref(F)(t),value:e.unref(j)(t)},e.toDisplayString(e.unref(D)(t)),9,ve))],64)))),256))],16,pe),[[e.vModelSelect,e.unref(I)]]),e.unref(N)?(e.openBlock(),e.createBlock(H,e.mergeProps({key:1,class:"vv-select__icon vv-select__icon-after"},e.unref(x)),null,16)):e.createCommentVNode("",!0)]),t.$slots.after?(e.openBlock(),e.createElementBlock("div",ge,[e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps(e.unref(A))))])):e.createCommentVNode("",!0)]),e.createVNode(e.unref(i),{id:e.unref(S),class:"vv-select__hint"},null,8,["id"])],2))}}),he={...w,value:[String,Number]},ke=e.defineComponent({name:"VvBadge",props:he,setup(t){const l=t,{modifiers:o}=e.toRefs(l),n=z("vv-badge",o);return(t,l)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(n)),role:"status"},[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.value),1)]))],2))}});const Be=["id"],Se=["id","for"],Ve=["id","aria-controls","aria-labelledby","aria-describedby","placeholder"],we={key:0,class:"vv-select__input-before"},xe={class:"vv-select__inner"},Ee=["aria-labelledby","tabindex"],Ne=["aria-label","onClick"],Pe={key:1,class:"vv-select__input-after"},Ce={name:"VvCombobox",components:{VvDropdown:q,VvDropdownOption:U,VvDropdownOptgroup:J}};return e.defineComponent({...Ce,props:j,emits:["update:modelValue","change:search","focus","blur"],setup(t,{emit:l}){const o=t,a=e.useSlots(),r=function(t,l,o){const n=R(),a=e.computed((()=>{var e;if(n&&(null==(e=n.defaults.value)?void 0:e[t]))return n.defaults.value[t]}));return e.computed((()=>{if(void 0===a.value)return o;const e=a.value,t=l,n=o;return Object.keys(t).reduce(((l,o)=>{const a=n[o];if(l[o]=a,o in e){if(Array.isArray(t[o])){const n=t[o];n.length&&n[0]===a&&(l[o]=e[o])}if("function"==typeof t[o]&&(0,t[o])()===a&&(l[o]=e[o]),"object"==typeof t[o]){let n=t[o].default;"function"==typeof n&&(n=n()),"object"==typeof n?JSON.stringify(n)===JSON.stringify(a)&&(l[o]=e[o]):n===a&&(l[o]=e[o])}}return l}),{})}))}("VvCombobox",j,o),i=e=>"string"!=typeof e&&(e.options&&e.options.length>0),{HintSlot:u}=oe(o,a),d=e.ref(null),s=e.ref(null),p=e.ref(null),{focused:f}=ae(d,l),{focused:v}=n.useFocusWithin(p);e.watch(f,(e=>{o.autoOpen&&(!e||g.value?e||!g.value||v.value||k():h())})),e.watch(v,(e=>{f.value||e||!g.value||k()}));const m=e.ref(""),b=n.refDebounced(m,Number(o.debounceSearch));e.watch(b,(()=>l("change:search",b.value)));const g=e.ref(!1),y=()=>{o.disabled||o.readonly||(g.value=!g.value)},h=()=>{o.disabled||o.readonly||g.value||(g.value=!0)},k=()=>{o.disabled||o.readonly||!g.value||(g.value=!1)};e.watch(g,(t=>{_.value&&e.nextTick((()=>{t?s.value&&s.value.focus():m.value=""}))}));const{id:B,icon:S,iconPosition:V,modifiers:w,disabled:x,readonly:E,loading:N,valid:P,invalid:C,floating:L,searchable:_}=e.toRefs(o),$=T(B),O=e.computed((()=>`${$.value}-hint`)),A=e.computed((()=>`${$.value}-dropdown`)),D=e.computed((()=>`${$.value}-search`)),F=e.computed((()=>`${$.value}-label`)),{hasIcon:I,hasIconBefore:K,hasIconAfter:W}=re(S,V),M=e.computed((()=>!ee(o.modelValue))),G=e.computed((()=>x.value||E.value?-1:o.tabindex)),X=z("vv-select",w,e.computed((()=>({disabled:x.value,loading:N.value,readonly:E.value,"icon-before":Boolean(K.value),"icon-after":Boolean(W.value),valid:P.value,invalid:C.value,dirty:M.value,focus:f.value,floating:L.value})))),Y=e.computed((()=>o.searchable?se.value:o.options)),{getOptionLabel:le,getOptionValue:ne,getOptionDisabled:ue,getOptionGrouped:de}=ie(o),se=e.computed((()=>{var e;return null==(e=o.options)?void 0:e.filter((e=>le(e).toLowerCase().includes(b.value.toLowerCase().trim())))}));function ce(e){return Array.isArray(o.modelValue)?Z(e,o.modelValue)||Z(ne(e),o.modelValue):Q(e,o.modelValue)||Q(ne(e),o.modelValue)}const pe=e.computed((()=>{let e=[];Array.isArray(o.modelValue)?e=o.modelValue:o.modelValue&&(e=[o.modelValue]);return o.options.reduce(((e,t)=>i(t)?[...e,...de(t)]:[...e,t]),[]).filter((t=>i(t)?de(t).some((t=>e.includes(ne(t)))):e.includes(ne(t))))})),fe=e.computed((()=>pe.value.map((e=>le(e))).join(o.separator)));e.watch(pe,(()=>{!o.multiple&&o.autoClose&&k()}));const ve=()=>{o.autoOpen?h():y()},me=e=>{var t;if(o.disabled||o.readonly)return;const n=ne(e);let a=n;if(o.multiple)if(Array.isArray(o.modelValue)){const e=Number(o.maxValues);if(void 0!==o.maxValues&&e>=0&&(null==(t=o.modelValue)?void 0:t.length)>=e&&!Z(n,o.modelValue))return;a=Z(n,o.modelValue)?te(n,o.modelValue):[...o.modelValue,n]}else a=[n];else o.autoClose&&k(),o.unselectable&&n===o.modelValue&&(a=void 0);l("update:modelValue",a)},be=e.computed((()=>({id:$.value,name:o.name,tabindex:G.value,valid:P.value,validLabel:r.value.validLabel,invalid:C.value,invalidLabel:r.value.invalidLabel,hintLabel:r.value.hintLabel,loading:N.value,loadingLabel:r.value.loadingLabel,disabled:x.value,readonly:E.value,modifiers:o.modifiers,options:Y.value,labelKey:o.labelKey,valueKey:o.valueKey,icon:o.icon,iconPosition:o.iconPosition,floating:o.floating,unselectable:o.unselectable,multiple:o.multiple,label:o.label,placeholder:o.placeholder,modelValue:o.modelValue}))),ge=e.computed((()=>({id:A.value,reference:p.value,placement:o.placement,strategy:o.strategy,transitionName:o.transitionName,offset:o.offset,shift:o.shift,flip:o.flip,autoPlacement:o.autoPlacement,arrow:o.arrow,autoClose:o.autoClose,autofocusFirst:!_.value&&o.autofocusFirst,triggerWidth:o.triggerWidth,modifiers:o.dropdownModifiers}))),he=e.computed((()=>({valid:o.valid,invalid:o.invalid,modelValue:o.modelValue})));return n.onKeyStroke([" ","Enter"],(e=>{o.autoOpen||!g.value&&f.value&&(e.preventDefault(),e.stopImmediatePropagation(),y())})),(t,o)=>t.native?(e.openBlock(),e.createBlock(ye,e.mergeProps({key:1},e.unref(be),{"onUpdate:modelValue":o[2]||(o[2]=e=>l("update:modelValue",e))}),null,16)):(e.openBlock(),e.createElementBlock("div",{key:0,id:e.unref($),class:e.normalizeClass(e.unref(X))},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,id:e.unref(F),for:e.unref(_)?e.unref(D):void 0},e.toDisplayString(t.label),9,Se)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"wrapperEl",ref:p,class:"vv-select__wrapper"},[e.createVNode(q,e.mergeProps({modelValue:e.unref(g),"onUpdate:modelValue":o[1]||(o[1]=t=>e.isRef(g)?g.value=t:null)},e.unref(ge),{role:e.unref(c).listbox}),e.createSlots({default:e.withCtx((({aria:l})=>[t.$slots.before?(e.openBlock(),e.createElementBlock("div",we,[e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps(e.unref(he))))])):e.createCommentVNode("",!0),e.createElementVNode("div",xe,[e.unref(K)?(e.openBlock(),e.createBlock(H,e.mergeProps({key:0,class:"vv-select__icon"},e.unref(I)),null,16)):e.createCommentVNode("",!0),e.createElementVNode("div",e.mergeProps({ref_key:"inputEl",ref:d},l,{"aria-labelledby":e.unref(F),class:"vv-select__input",role:"combobox",tabindex:e.unref(G),onClickPassive:ve}),[e.renderSlot(t.$slots,"value",e.normalizeProps(e.guardReactiveProps({selectedOptions:e.unref(pe),onInput:me})),(()=>[e.unref(fe)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.badges?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(e.unref(pe),((l,o)=>(e.openBlock(),e.createBlock(ke,{key:o,modifiers:t.badgeModifiers,class:"vv-select__badge"},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(e.unref(le)(l))+" ",1),!t.unselectable||e.unref(E)||e.unref(x)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,"aria-label":e.unref(r).deselectActionLabel,onClick:e.withModifiers((e=>me(l)),["stop"])},[e.createVNode(H,{name:"close"})],8,Ne))])),_:2},1032,["modifiers"])))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(fe)),1)],64))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(t.placeholder),1)],64))]))],16,Ee),e.unref(W)?(e.openBlock(),e.createBlock(H,e.mergeProps({key:1,class:"vv-select__icon vv-select__icon-after"},e.unref(I)),null,16)):e.createCommentVNode("",!0)]),t.$slots.after?(e.openBlock(),e.createElementBlock("div",Pe,[e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps(e.unref(he))))])):e.createCommentVNode("",!0)])),items:e.withCtx((()=>[e.unref(se).length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(e.unref(se),((l,o)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:o},[i(l)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(J,{label:e.unref(le)(l)},null,8,["label"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(de)(l),((o,n)=>(e.openBlock(),e.createBlock(U,e.mergeProps({disabled:e.unref(ue)(o),selected:ce(o),unselectable:t.unselectable,deselectHintLabel:e.unref(r).deselectHintLabel,selectHintLabel:e.unref(r).selectHintLabel,selectedHintLabel:e.unref(r).selectedHintLabel},{key:n,class:"vv-dropdown-option",onClickPassive:e=>me(o)}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"option",e.normalizeProps(e.guardReactiveProps({option:l,selectedOptions:e.unref(pe),selected:ce(o),disabled:e.unref(ue)(o)})),(()=>[e.createTextVNode(e.toDisplayString(e.unref(le)(o)),1)]))])),_:2},1040,["onClickPassive"])))),128))],64)):(e.openBlock(),e.createBlock(U,e.mergeProps({key:1},{disabled:e.unref(ue)(l),selected:ce(l),unselectable:t.unselectable,deselectHintLabel:e.unref(r).deselectHintLabel,selectHintLabel:e.unref(r).selectHintLabel,selectedHintLabel:e.unref(r).selectedHintLabel},{class:"vv-dropdown-option",onClickPassive:e=>me(l)}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"option",e.normalizeProps(e.guardReactiveProps({option:l,selectedOptions:e.unref(pe),selected:ce(l),disabled:e.unref(ue)(l)})),(()=>[e.createTextVNode(e.toDisplayString(e.unref(le)(l)),1)]))])),_:2},1040,["onClickPassive"]))],64)))),128)):t.options.length?(e.openBlock(),e.createBlock(U,{key:2,modifiers:"inert"},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"no-results",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(r).noResultsLabel),1)]))])),_:3})):(e.openBlock(),e.createBlock(U,{key:1,modifiers:"inert"},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"no-options",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(r).noOptionsLabel),1)]))])),_:3}))])),_:2},[e.unref(_)||t.$slots["dropdown::before"]?{name:"before",fn:e.withCtx((()=>[e.renderSlot(t.$slots,"dropdown::before"),e.unref(_)?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,id:e.unref(D),ref_key:"inputSearchEl",ref:s,"onUpdate:modelValue":o[0]||(o[0]=t=>e.isRef(m)?m.value=t:null),"aria-autocomplete":"list","aria-controls":e.unref(A),"aria-labelledby":e.unref(F),"aria-describedby":e.unref(O),autocomplete:"off",spellcheck:"false",type:"search",class:"vv-dropdown__search",placeholder:e.unref(r).searchPlaceholder},null,8,Ve)),[[e.vShow,e.unref(g)],[e.vModelText,e.unref(m)]]):e.createCommentVNode("",!0)])),key:"0"}:void 0,t.$slots["dropdown::after"]?{name:"after",fn:e.withCtx((()=>[e.renderSlot(t.$slots,"dropdown::after")])),key:"1"}:void 0]),1040,["modelValue","role"])],512),e.createVNode(e.unref(u),{id:e.unref(O),class:"vv-select__hint"},null,8,["id"])],10,Be))}})}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,l){"object"==typeof exports&&"undefined"!=typeof module?module.exports=l(require("vue"),require("@vueuse/core"),require("nanoid")):"function"==typeof define&&define.amd?define(["vue","@vueuse/core","nanoid"],l):(e="undefined"!=typeof globalThis?globalThis:e||self).VvRadioGroup=l(e.vue,e.core,e.nanoid)}(this,(function(e,l,n){"use strict";var t=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(t||{}),o=(e=>(e.before="before",e.after="after",e))(o||{}),a=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(a||{});const u=Symbol.for("radioGroup");function i(e,l,n){return n?d(e,n)===d(l,n):r(e,l)}function r(e,l){if(e===l)return!0;if(e&&l&&"object"==typeof e&&"object"==typeof l){const n=Array.isArray(e),t=Array.isArray(l);let o,a,u;if(n&&t){if(a=e.length,a!=l.length)return!1;for(o=a;0!=o--;)if(!r(e[o],l[o]))return!1;return!0}if(n!=t)return!1;const i=e instanceof Date,d=l instanceof Date;if(i!=d)return!1;if(i&&d)return e.getTime()==l.getTime();const v=e instanceof RegExp,s=l instanceof RegExp;if(v!=s)return!1;if(v&&s)return e.toString()==l.toString();const c=Object.keys(e);if(a=c.length,a!==Object.keys(l).length)return!1;for(o=a;0!=o--;)if(!Object.prototype.hasOwnProperty.call(l,c[o]))return!1;for(o=a;0!=o--;)if(u=c[o],!r(e[u],l[u]))return!1;return!0}return e!=e&&l!=l}function d(e,l){if(e&&Object.keys(e).length&&l){if(-1===l.indexOf("."))return e[l];{const n=l.split(".");let t=e;for(let l=0,o=n.length;l<o;++l){if(null==e)return null;t=t[n[l]]}return t}}return null}function v(l){return null==(n=e.unref(l))||""===n||Array.isArray(n)&&0===n.length||!(n instanceof Date)&&"object"==typeof n&&0===Object.keys(n).length;var n}function s(e){return Array.isArray(e)?e.filter((e=>{return"string"==typeof(l=e)||l instanceof String;var l})).join(" "):e}function c(n,t){const{invalid:o,valid:a,hint:u,loading:i}=t,{hintLabel:r,modelValue:c,valid:f,validLabel:p,invalid:m,invalidLabel:b,...y}=e.toRefs(n),g=d(y,"loading"),h=d(y,"loadingLabel"),S=e.computed((()=>!!m.value&&(!(!m.value||!o)||(!!((null==b?void 0:b.value)&&Array.isArray(b.value)&&b.value.length>0)||!(!(null==b?void 0:b.value)||v(b)))))),B=e.computed((()=>!!(r&&r.value||u))),V=e.computed((()=>!!(p&&p.value||a))),k=e.computed((()=>!!((null==g?void 0:g.value)&&i||(null==g?void 0:g.value)&&(null==h?void 0:h.value)))),A=e.computed((()=>B.value||V.value||S.value||k.value));return{hasInvalid:S,hasHint:B,hasValid:V,hasLoading:k,HintSlot:{name:"HintSlot",props:{params:{type:Object,default:()=>({})}},setup(n){const t=e.computed((()=>{const e=l.toReactive({hintLabel:r,modelValue:c,valid:f,validLabel:p,invalid:m,invalidLabel:b,loading:g,loadingLabel:h,...n.params});return(null==m?void 0:m.value)?(null==o?void 0:o(e))||s(null==b?void 0:b.value)||(null==r?void 0:r.value):(null==f?void 0:f.value)?(null==a?void 0:a(e))||s(null==p?void 0:p.value)||(null==r?void 0:r.value):(null==g?void 0:g.value)?(null==i?void 0:i(e))||s(null==h?void 0:h.value)||(null==r?void 0:r.value):(null==u?void 0:u(e))||s(null==r?void 0:r.value)||(null==r?void 0:r.value)}));return{isVisible:A,hasInvalid:S,hasValid:V,hintContent:t}},render(){if(this.isVisible)return e.h("small",{role:this.hasInvalid?"alert":this.hasValid?"status":void 0},this.hintContent)}}}}const f={valid:Boolean,validLabel:[String,Array]},p={invalid:Boolean,invalidLabel:[String,Array]},m={disabled:Boolean},b=(Boolean,Boolean,{label:[String,Number]}),y={readonly:Boolean},g={modifiers:[String,Array]},h={hintLabel:{type:String,default:""}},S={options:{type:Array,default:()=>[]},labelKey:{type:[String,Function],default:"label"},valueKey:{type:[String,Function],default:"value"},disabledKey:{type:[String,Function],default:"disabled"}};o.before;const B={tabindex:{type:[String,Number],default:0}},V={id:[String,Number]};t.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean;const k={...{...V,name:{type:String,required:!0}},...B,...f,...p,...h,...m,...y,...g,...b,value:[String,Number,Boolean],modelValue:[Object,Number,Boolean,String]},A={...f,...p,...S,...h,...m,...y,...g,...b,modelValue:[String,Array,Boolean,Number,Symbol],name:{type:String,required:!0},vertical:Boolean};a.button;const O=k;function j(l,n){const{id:t}=e.toRefs(l),{group:o,isInGroup:a,getGroupOrLocalRef:i}=function(l){const n=e.inject(l,void 0),t=e.computed((()=>!v(n)));return{group:n,isInGroup:t,getGroupOrLocalRef:function(l,t,o){if(null==n?void 0:n.value){const t=e.unref(n.value)[l];return e.computed({get:()=>null==t?void 0:t.value,set(e){t.value=e}})}const a=e.toRef(t,l);return e.computed({get:()=>a.value,set(e){o&&o(`update:${l}`,e)}})}}}(u),r=i("modelValue",l,n),d=i("valid",l),s=i("invalid",l),c=e.computed((()=>{var e;return Boolean(l.readonly||(null==(e=null==o?void 0:o.value)?void 0:e.disabled.value))})),f=e.computed((()=>{var e;return Boolean(l.disabled||(null==(e=null==o?void 0:o.value)?void 0:e.disabled.value))}));return{id:t,group:o,isInGroup:a,modelValue:r,valid:d,invalid:s,readonly:c,disabled:f}}function L(l,n,t){return e.computed((()=>{const o={[l]:!0},a="string"==typeof(null==n?void 0:n.value)?n.value.split(" "):null==n?void 0:n.value;return a&&Array.isArray(a)&&a.forEach((e=>{e&&(o[`${l}--${e}`]=!0)})),t&&Object.keys(t.value).forEach((n=>{o[`${l}--${n}`]=e.unref(t.value[n])})),o}))}const R=["for"],x=["id","name","disabled","value","tabindex","aria-invalid"],N=e.defineComponent({name:"VvRadio",props:O,emits:["click","update:modelValue","change","blur"],setup(l,{emit:t}){const o=l,a=e.useSlots(),{id:u,disabled:r,readonly:d,modelValue:v,valid:s,invalid:f}=j(o,t),p=(l=>e.computed((()=>String((null==l?void 0:l.value)||n.nanoid()))))(u),m=e.computed((()=>y.value?-1:o.tabindex)),b=e.ref(),y=e.computed((()=>r.value||d.value)),g=e.computed((()=>!0===f.value||!0!==s.value&&void 0)),h=e.computed((()=>Array.isArray(v.value)?function(e,l){if(null!=e&&l&&l.length)for(const n of l)if(i(e,n))return!0;return!1}(o.value,v.value):i(o.value,v.value))),S=e.computed((()=>!["string","number","boolean"].includes(typeof o.value)||o.value)),B=e.computed({get:()=>h.value?S.value:null,set(e){Array.isArray(v.value)?v.value=[o.value]:v.value=o.value,t("change",e)}}),{modifiers:V}=e.toRefs(o),k=L("vv-radio",V,e.computed((()=>({valid:s.value,invalid:f.value,disabled:r.value,readonly:d.value})))),{HintSlot:A}=c(o,a);return(l,n)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(e.unref(k)),for:e.unref(p)},[e.withDirectives(e.createElementVNode("input",{id:e.unref(p),ref_key:"input",ref:b,"onUpdate:modelValue":n[0]||(n[0]=l=>e.isRef(B)?B.value=l:null),type:"radio",class:"vv-radio__input",name:l.name,disabled:e.unref(y),value:e.unref(S),tabindex:e.unref(m),"aria-invalid":e.unref(g)},null,8,x),[[e.vModelRadio,e.unref(B)]]),e.renderSlot(l.$slots,"default",{value:e.unref(v)},(()=>[e.createTextVNode(e.toDisplayString(l.label),1)])),e.createVNode(e.unref(A),{class:"vv-radio__hint",params:{value:e.unref(v)}},null,8,["params"])],10,R))}}),E=A;const _=["textContent"],C={class:"vv-radio-group__wrapper"};return e.defineComponent({name:"VvRadioGroup",props:E,emits:["update:modelValue","change"],setup(n,{emit:t}){const o=n,a=e.useSlots(),i=l.useVModel(o,"modelValue",t),{disabled:r,readonly:d,vertical:v,valid:s,invalid:f,modifiers:p}=e.toRefs(o);!function(l){if(Object.keys(l).some((n=>"key"!==n&&!e.isRef(l[n]))))throw Error("One or more groupState props aren't ref.");e.provide(l.key,e.computed((()=>l)))}({key:u,modelValue:i,disabled:r,readonly:d,valid:s,invalid:f});const{getOptionLabel:m,getOptionValue:b}=function(l){const{options:n,labelKey:t,valueKey:o,disabledKey:a}=e.toRefs(l);return{options:n,getOptionLabel:e=>"object"!=typeof e&&null!==e?e:"function"==typeof t.value?t.value(e):e[t.value],getOptionValue:e=>"object"!=typeof e&&null!==e?e:"function"==typeof o.value?o.value(e):e[o.value],getOptionDisabled:e=>("object"==typeof e||null===e)&&("function"==typeof a.value?a.value(e):e[a.value]),getOptionGrouped:e=>"object"!=typeof e&&null!==e?[]:e.options}}(o),y=L("vv-radio-group",p,e.computed((()=>({disabled:r.value,readonly:d.value,horizontal:!v.value,valid:s.value,invalid:f.value})))),{HintSlot:g}=c(o,a);return(l,n)=>(e.openBlock(),e.createElementBlock("fieldset",{class:e.normalizeClass(e.unref(y))},[l.label?(e.openBlock(),e.createElementBlock("legend",{key:0,textContent:e.toDisplayString(l.label)},null,8,_)):e.createCommentVNode("",!0),e.createElementVNode("div",C,[l.options.length>0?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(l.options,((l,n)=>(e.openBlock(),e.createBlock(N,e.mergeProps({key:n},((e,l)=>({id:`${o.name}_opt${l}`,name:o.name,label:m(e),value:b(e)}))(l,n)),null,16)))),128)):e.renderSlot(l.$slots,"default",{key:1})]),e.createVNode(e.unref(g),{class:"vv-radio-group__hint"})],2))}})}));
|
|
1
|
+
!function(e,l){"object"==typeof exports&&"undefined"!=typeof module?module.exports=l(require("vue"),require("@vueuse/core"),require("nanoid")):"function"==typeof define&&define.amd?define(["vue","@vueuse/core","nanoid"],l):(e="undefined"!=typeof globalThis?globalThis:e||self).VvRadioGroup=l(e.vue,e.core,e.nanoid)}(this,(function(e,l,n){"use strict";var t=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(t||{}),o=(e=>(e.before="before",e.after="after",e))(o||{}),a=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(a||{});const u=Symbol.for("radioGroup");function i(e,l,n){return n?d(e,n)===d(l,n):r(e,l)}function r(e,l){if(e===l)return!0;if(e&&l&&"object"==typeof e&&"object"==typeof l){const n=Array.isArray(e),t=Array.isArray(l);let o,a,u;if(n&&t){if(a=e.length,a!=l.length)return!1;for(o=a;0!=o--;)if(!r(e[o],l[o]))return!1;return!0}if(n!=t)return!1;const i=e instanceof Date,d=l instanceof Date;if(i!=d)return!1;if(i&&d)return e.getTime()==l.getTime();const v=e instanceof RegExp,s=l instanceof RegExp;if(v!=s)return!1;if(v&&s)return e.toString()==l.toString();const c=Object.keys(e);if(a=c.length,a!==Object.keys(l).length)return!1;for(o=a;0!=o--;)if(!Object.prototype.hasOwnProperty.call(l,c[o]))return!1;for(o=a;0!=o--;)if(u=c[o],!r(e[u],l[u]))return!1;return!0}return e!=e&&l!=l}function d(e,l){if(e&&Object.keys(e).length&&l){if(-1===l.indexOf("."))return e[l];{const n=l.split(".");let t=e;for(let l=0,o=n.length;l<o;++l){if(null==e)return null;t=t[n[l]]}return t}}return null}function v(l){return null==(n=e.unref(l))||""===n||Array.isArray(n)&&0===n.length||!(n instanceof Date)&&"object"==typeof n&&0===Object.keys(n).length;var n}function s(e){return Array.isArray(e)?e.filter((e=>{return"string"==typeof(l=e)||l instanceof String;var l})).join(" "):e}function c(n,t){const{invalid:o,valid:a,hint:u,loading:i}=t,{hintLabel:r,modelValue:c,valid:f,validLabel:p,invalid:m,invalidLabel:b,...y}=e.toRefs(n),g=d(y,"loading"),h=d(y,"loadingLabel"),S=e.computed((()=>!!m.value&&(!(!m.value||!o)||(!!((null==b?void 0:b.value)&&Array.isArray(b.value)&&b.value.length>0)||!(!(null==b?void 0:b.value)||v(b)))))),B=e.computed((()=>!!(r&&r.value||u))),V=e.computed((()=>!!(p&&p.value||a))),k=e.computed((()=>!!((null==g?void 0:g.value)&&i||(null==g?void 0:g.value)&&(null==h?void 0:h.value)))),A=e.computed((()=>B.value||V.value||S.value||k.value));return{hasInvalid:S,hasHint:B,hasValid:V,hasLoading:k,HintSlot:{name:"HintSlot",props:{params:{type:Object,default:()=>({})}},setup(n){const t=e.computed((()=>{const e=l.toReactive({hintLabel:r,modelValue:c,valid:f,validLabel:p,invalid:m,invalidLabel:b,loading:g,loadingLabel:h,...n.params});return(null==m?void 0:m.value)?(null==o?void 0:o(e))||s(null==b?void 0:b.value)||(null==r?void 0:r.value):(null==f?void 0:f.value)?(null==a?void 0:a(e))||s(null==p?void 0:p.value)||(null==r?void 0:r.value):(null==g?void 0:g.value)?(null==i?void 0:i(e))||s(null==h?void 0:h.value)||(null==r?void 0:r.value):(null==u?void 0:u(e))||s(null==r?void 0:r.value)||(null==r?void 0:r.value)}));return{isVisible:A,hasInvalid:S,hasValid:V,hintContent:t}},render(){if(this.isVisible)return e.h("small",{role:this.hasInvalid?"alert":this.hasValid?"status":void 0},this.hintContent)}}}}const f={valid:Boolean,validLabel:[String,Array]},p={invalid:Boolean,invalidLabel:[String,Array]},m={disabled:Boolean},b=(Boolean,Boolean,{label:[String,Number]}),y={readonly:Boolean},g={modifiers:[String,Array]},h={hintLabel:{type:String,default:""}},S={options:{type:Array,default:()=>[]},labelKey:{type:[String,Function],default:"label"},valueKey:{type:[String,Function],default:"value"},disabledKey:{type:[String,Function],default:"disabled"}};o.before;const B={tabindex:{type:[String,Number],default:0}},V={id:[String,Number]};t.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean;const k={...{...V,name:{type:String,required:!0}},...B,...f,...p,...h,...m,...y,...g,...b,value:[String,Number,Boolean],modelValue:[Object,Number,Boolean,String]},A={...f,...p,...S,...h,...m,...y,...g,...b,modelValue:[String,Array,Boolean,Number,Symbol],name:{type:String,required:!0},vertical:Boolean};a.button;const O=k;function j(l,n){const{id:t}=e.toRefs(l),{group:o,isInGroup:a,getGroupOrLocalRef:i}=function(l){const n=e.inject(l,void 0),t=e.computed((()=>!v(n)));return{group:n,isInGroup:t,getGroupOrLocalRef:function(l,t,o){if(null==n?void 0:n.value){const t=e.unref(n.value)[l];return e.computed({get:()=>null==t?void 0:t.value,set(e){t.value=e}})}const a=e.toRef(t,l);return e.computed({get:()=>a.value,set(e){o&&o(`update:${l}`,e)}})}}}(u),r=i("modelValue",l,n),d=i("valid",l),s=i("invalid",l),c=e.computed((()=>{var e;return Boolean(l.readonly||(null==(e=null==o?void 0:o.value)?void 0:e.disabled.value))})),f=e.computed((()=>{var e;return Boolean(l.disabled||(null==(e=null==o?void 0:o.value)?void 0:e.disabled.value))}));return{id:t,group:o,isInGroup:a,modelValue:r,valid:d,invalid:s,readonly:c,disabled:f}}function L(l,n,t){return e.computed((()=>{const o={[l]:!0},a="string"==typeof(null==n?void 0:n.value)?n.value.split(" "):null==n?void 0:n.value;return a&&Array.isArray(a)&&a.forEach((e=>{e&&(o[`${l}--${e}`]=!0)})),t&&Object.keys(t.value).forEach((n=>{o[`${l}--${n}`]=e.unref(t.value[n])})),o}))}const R=["for"],x=["id","name","disabled","value","tabindex","aria-invalid"],N=e.defineComponent({name:"VvRadio",props:O,emits:["click","update:modelValue","change","blur"],setup(l,{emit:t}){const o=l,a=e.useSlots(),{id:u,disabled:r,readonly:d,modelValue:v,valid:s,invalid:f}=j(o,t),p=(l=>e.computed((()=>String((null==l?void 0:l.value)||n.nanoid()))))(u),m=e.computed((()=>y.value?-1:o.tabindex)),b=e.ref(),y=e.computed((()=>r.value||d.value)),g=e.computed((()=>!0===f.value||!0!==s.value&&void 0)),h=e.computed((()=>Array.isArray(v.value)?function(e,l){if(null!=e&&l&&l.length)for(const n of l)if(i(e,n))return!0;return!1}(o.value,v.value):i(o.value,v.value))),S=e.computed((()=>!["string","number","boolean"].includes(typeof o.value)||o.value)),B=e.computed({get:()=>h.value?S.value:null,set(e){Array.isArray(v.value)?v.value=[o.value]:v.value=o.value,t("change",e)}}),{modifiers:V}=e.toRefs(o),k=L("vv-radio",V,e.computed((()=>({valid:s.value,invalid:f.value,disabled:r.value,readonly:d.value})))),{HintSlot:A}=c(o,a);return(l,n)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(e.unref(k)),for:e.unref(p)},[e.withDirectives(e.createElementVNode("input",{id:e.unref(p),ref_key:"input",ref:b,"onUpdate:modelValue":n[0]||(n[0]=l=>e.isRef(B)?B.value=l:null),type:"radio",class:"vv-radio__input",name:l.name,disabled:e.unref(y),value:e.unref(S),tabindex:e.unref(m),"aria-invalid":e.unref(g)},null,8,x),[[e.vModelRadio,e.unref(B)]]),e.renderSlot(l.$slots,"default",{value:e.unref(v)},(()=>[e.createTextVNode(e.toDisplayString(l.label),1)])),e.createVNode(e.unref(A),{class:"vv-radio__hint",params:{value:e.unref(v)}},null,8,["params"])],10,R))}}),E=A;const _=["textContent"],C={class:"vv-radio-group__wrapper"};return e.defineComponent({name:"VvRadioGroup",props:E,emits:["update:modelValue","change"],setup(n,{emit:t}){const o=n,a=e.useSlots(),i=l.useVModel(o,"modelValue",t),{disabled:r,readonly:d,vertical:v,valid:s,invalid:f,modifiers:p}=e.toRefs(o);!function(l){if(Object.keys(l).some((n=>"key"!==n&&!e.isRef(l[n]))))throw Error("One or more groupState props aren't ref.");e.provide(l.key,e.computed((()=>l)))}({key:u,modelValue:i,disabled:r,readonly:d,valid:s,invalid:f});const{getOptionLabel:m,getOptionValue:b}=function(l){const{options:n,labelKey:t,valueKey:o,disabledKey:a}=e.toRefs(l);return{options:n,getOptionLabel:e=>"object"!=typeof e&&null!==e?e:"function"==typeof t.value?t.value(e):e[t.value],getOptionValue:e=>"object"!=typeof e&&null!==e?e:"function"==typeof o.value?o.value(e):e[o.value],getOptionDisabled:e=>("object"==typeof e||null===e)&&("function"==typeof a.value?a.value(e):e[a.value]),getOptionGrouped:e=>"object"!=typeof e&&null!==e?[]:e.options||[]}}(o),y=L("vv-radio-group",p,e.computed((()=>({disabled:r.value,readonly:d.value,horizontal:!v.value,valid:s.value,invalid:f.value})))),{HintSlot:g}=c(o,a);return(l,n)=>(e.openBlock(),e.createElementBlock("fieldset",{class:e.normalizeClass(e.unref(y))},[l.label?(e.openBlock(),e.createElementBlock("legend",{key:0,textContent:e.toDisplayString(l.label)},null,8,_)):e.createCommentVNode("",!0),e.createElementVNode("div",C,[l.options.length>0?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(l.options,((l,n)=>(e.openBlock(),e.createBlock(N,e.mergeProps({key:n},((e,l)=>({id:`${o.name}_opt${l}`,name:o.name,label:m(e),value:b(e)}))(l,n)),null,16)))),128)):e.renderSlot(l.$slots,"default",{key:1})]),e.createVNode(e.unref(g),{class:"vv-radio-group__hint"})],2))}})}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,l){"object"==typeof exports&&"undefined"!=typeof module?module.exports=l(require("vue"),require("@iconify/vue"),require("@vueuse/core"),require("nanoid")):"function"==typeof define&&define.amd?define(["vue","@iconify/vue","@vueuse/core","nanoid"],l):(e="undefined"!=typeof globalThis?globalThis:e||self).VvSelect=l(e.vue,e.vue$1,e.core,e.nanoid)}(this,(function(e,l,o,n){"use strict";const t={color:String,width:{type:[String,Number]},height:{type:[String,Number]},name:{type:String,required:!0},provider:{type:String},prefix:{type:String,default:"normal"},src:String,horizontalFlip:Boolean,verticalFlip:Boolean,flip:String,mode:String,inline:Boolean,rotate:[Number,String],onLoad:Function,svg:String,modifiers:{type:[String,Array]}};var a=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(a||{}),i=(e=>(e.before="before",e.after="after",e))(i||{}),r=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(r||{});const u=Symbol.for("volver");function d(l,o,n){return e.computed((()=>{const t={[l]:!0},a="string"==typeof(null==o?void 0:o.value)?o.value.split(" "):null==o?void 0:o.value;return a&&Array.isArray(a)&&a.forEach((e=>{e&&(t[`${l}--${e}`]=!0)})),n&&Object.keys(n.value).forEach((o=>{t[`${l}--${o}`]=e.unref(n.value[o])})),t}))}const c=e.defineComponent({name:"VvIcon",props:t,setup(o){const n=o,t=e.ref(!0),a=e.inject(u),{modifiers:i}=e.toRefs(n),r=d("vv-icon",i),c=e.computed((()=>n.provider||(null==a?void 0:a.iconsProvider))),s=e.computed((()=>{const e=n.name??"",o=`@${c.value}:${n.prefix}:${n.name}`;return l.iconExists(e)?e:l.iconExists(o)?o:(null==a?void 0:a.iconsCollections.find((o=>{const n=`@${c.value}:${o.prefix}:${e}`;if(l.iconExists(n))return n})))||e}));function v(e){const o=function(e){let l=null;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");l=(new e).window}return(l?new l.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),t=(null==o?void 0:o.innerHTML.trim())||"";o&&t&&l.addIcon(`@${c.value}:${n.prefix}:${n.name}`,{body:t,height:o.viewBox.baseVal.height,width:o.viewBox.baseVal.width})}return a&&(n.src&&!l.iconExists(`@${c.value}:${n.prefix}:${n.name}`)?(t.value=!1,a.fetchIcon(n.src).then((e=>{e&&(v(e),t.value=!0)})).catch((e=>{throw new Error(`During fetch icon: ${null==e?void 0:e.message}`)}))):n.svg&&v(n.svg)),(o,n)=>e.unref(t)?(e.openBlock(),e.createBlock(e.unref(l.Icon),e.mergeProps({key:0,class:e.unref(r)},{inline:o.inline,width:o.width,height:o.height,horizontalFlip:o.horizontalFlip,verticalFlip:o.verticalFlip,flip:o.flip,rotate:o.rotate,color:o.color,onLoad:o.onLoad,icon:e.unref(s)}),null,16,["class"])):e.createCommentVNode("",!0)}});function s(e,l){if(e&&Object.keys(e).length&&l){if(-1===l.indexOf("."))return e[l];{const o=l.split(".");let n=e;for(let l=0,t=o.length;l<t;++l){if(null==e)return null;n=n[o[l]]}return n}}return null}function v(l){return null==(o=e.unref(l))||""===o||Array.isArray(o)&&0===o.length||!(o instanceof Date)&&"object"==typeof o&&0===Object.keys(o).length;var o}function p(e){return Array.isArray(e)?e.filter((e=>{return"string"==typeof(l=e)||l instanceof String;var l})).join(" "):e}const f={valid:Boolean,validLabel:[String,Array]},m={invalid:Boolean,invalidLabel:[String,Array]},g={loading:Boolean,loadingLabel:{type:String,default:"Loading..."}},b={disabled:Boolean},y=(Boolean,Boolean,{label:[String,Number]}),h={readonly:Boolean},B={modifiers:[String,Array]},S={hintLabel:{type:String,default:""}},k={options:{type:Array,default:()=>[]},labelKey:{type:[String,Function],default:"label"},valueKey:{type:[String,Function],default:"value"},disabledKey:{type:[String,Function],default:"disabled"}},V={icon:{type:[String,Object]},iconPosition:{type:String,default:i.before,validation:e=>Object.values(i).includes(e)}},$={tabindex:{type:[String,Number],default:0}},L={floating:Boolean},w={unselectable:{type:Boolean,default:!0}},E={id:[String,Number]};a.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean;const N={...E,name:{type:String,required:!0}},O={autofocus:Boolean},x={autocomplete:{type:String,default:"off"}};r.button;const A={...N,...O,...x,...$,...f,...m,...S,...g,...b,...h,...B,...k,...V,...L,...w,...y,multiple:Boolean,required:Boolean,size:[String,Number],modelValue:{type:[String,Number,Boolean,Object,Array],default:void 0},placeholder:String};const I=["for"],_={class:"vv-select__wrapper"},j={key:0,class:"vv-select__input-before"},F={class:"vv-select__inner"},C=["id"],P=["disabled","hidden"],D=["disabled","value"],q=["disabled","label"],z=["disabled","value"],R={key:1,class:"vv-select__input-after"};return e.defineComponent({name:"VvSelect",props:A,emits:["update:modelValue","focus","blur"],setup(l,{emit:t}){const r=l,u=e.useSlots(),f=e.ref(),{HintSlot:m,hasHint:g,hasInvalid:b}=function(l,n){const{invalid:t,valid:a,hint:i,loading:r}=n,{hintLabel:u,modelValue:d,valid:c,validLabel:f,invalid:m,invalidLabel:g,...b}=e.toRefs(l),y=s(b,"loading"),h=s(b,"loadingLabel"),B=e.computed((()=>!(!m.value||(!m.value||!t)&&!((null==g?void 0:g.value)&&Array.isArray(g.value)&&g.value.length>0)&&(!(null==g?void 0:g.value)||v(g))))),S=e.computed((()=>!!(u&&u.value||i))),k=e.computed((()=>!!(f&&f.value||a))),V=e.computed((()=>!!((null==y?void 0:y.value)&&r||(null==y?void 0:y.value)&&(null==h?void 0:h.value)))),$=e.computed((()=>S.value||k.value||B.value||V.value));return{hasInvalid:B,hasHint:S,hasValid:k,hasLoading:V,HintSlot:{name:"HintSlot",props:{params:{type:Object,default:()=>({})}},setup(l){const n=e.computed((()=>{const e=o.toReactive({hintLabel:u,modelValue:d,valid:c,validLabel:f,invalid:m,invalidLabel:g,loading:y,loadingLabel:h,...l.params});return(null==m?void 0:m.value)?(null==t?void 0:t(e))||p(null==g?void 0:g.value)||(null==u?void 0:u.value):(null==c?void 0:c.value)?(null==a?void 0:a(e))||p(null==f?void 0:f.value)||(null==u?void 0:u.value):(null==y?void 0:y.value)?(null==r?void 0:r(e))||p(null==h?void 0:h.value)||(null==u?void 0:u.value):(null==i?void 0:i(e))||p(null==u?void 0:u.value)||(null==u?void 0:u.value)}));return{isVisible:$,hasInvalid:B,hasValid:k,hintContent:n}},render(){if(this.isVisible)return e.h("small",{role:this.hasInvalid?"alert":this.hasValid?"status":void 0},this.hintContent)}}}}(r,u),{id:y,modifiers:h,disabled:B,readonly:S,loading:k,icon:V,iconPosition:$,invalid:L,valid:w,floating:E,multiple:N}=e.toRefs(r),O=(l=>e.computed((()=>String((null==l?void 0:l.value)||n.nanoid()))))(y),x=e.computed((()=>`${O.value}-hint`)),{focused:A}=function(l,n){const{focused:t}=o.useFocus(l);return e.watch(t,(o=>{n(o?"focus":"blur",e.unref(l))})),{focused:t}}(f,t),H=o.useElementVisibility(f);e.watch(H,(e=>{e&&r.autofocus&&(A.value=!0)}));const{hasIcon:K,hasIconBefore:M,hasIconAfter:T}=function(l,o){const n=e.computed((()=>Boolean((null==l?void 0:l.value)&&o.value===i.before))),t=e.computed((()=>Boolean((null==l?void 0:l.value)&&o.value===i.after))),r=e.computed((()=>Boolean((null==l?void 0:l.value)&&o.value===a.left))),u=e.computed((()=>Boolean((null==l?void 0:l.value)&&o.value===a.right))),d=e.computed((()=>Boolean((null==l?void 0:l.value)&&o.value===a.top))),c=e.computed((()=>Boolean((null==l?void 0:l.value)&&o.value===a.bottom)));return{hasIcon:e.computed((()=>"string"==typeof(null==l?void 0:l.value)?{name:null==l?void 0:l.value}:null==l?void 0:l.value)),hasIconLeft:r,hasIconRight:u,hasIconTop:d,hasIconBottom:c,hasIconBefore:n,hasIconAfter:t}}(V,$),G=e.computed((()=>!v(r.modelValue))),J=e.computed((()=>r.disabled||r.readonly)),U=e.computed((()=>J.value?-1:r.tabindex)),Q=e.computed((()=>!0===r.invalid||!0!==r.valid&&void 0)),W=d("vv-select",h,e.computed((()=>({valid:w.value,invalid:L.value,loading:k.value,disabled:B.value,readonly:S.value,"icon-before":M.value,"icon-after":T.value,dirty:G.value,focus:A.value,floating:E.value,multiple:N.value})))),X=e.computed((()=>({name:r.name,tabindex:U.value,disabled:J.value,required:r.required,size:r.size,autocomplete:r.autocomplete,multiple:r.multiple,"aria-invalid":Q.value,"aria-describedby":!b.value&&g.value?x.value:void 0,"aria-errormessage":b.value?x.value:void 0}))),Y=e.computed((()=>({valid:r.valid,invalid:r.invalid,modelValue:r.modelValue}))),{getOptionLabel:Z,getOptionValue:ee,getOptionDisabled:le,getOptionGrouped:oe}=function(l){const{options:o,labelKey:n,valueKey:t,disabledKey:a}=e.toRefs(l);return{options:o,getOptionLabel:e=>"object"!=typeof e&&null!==e?e:"function"==typeof n.value?n.value(e):e[n.value],getOptionValue:e=>"object"!=typeof e&&null!==e?e:"function"==typeof t.value?t.value(e):e[t.value],getOptionDisabled:e=>("object"==typeof e||null===e)&&("function"==typeof a.value?a.value(e):e[a.value]),getOptionGrouped:e=>"object"!=typeof e&&null!==e?[]:e.options}}(r),ne=e.computed({get:()=>r.modelValue,set:e=>{Array.isArray(e)&&(e=e.filter((e=>void 0!==e))),t("update:modelValue",e)}}),te=e=>"string"!=typeof e&&(e&&e.options&&e.options.length>0);return(l,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(W))},[l.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(O)},e.toDisplayString(l.label),9,I)):e.createCommentVNode("",!0),e.createElementVNode("div",_,[l.$slots.before?(e.openBlock(),e.createElementBlock("div",j,[e.renderSlot(l.$slots,"before",e.normalizeProps(e.guardReactiveProps(e.unref(Y))))])):e.createCommentVNode("",!0),e.createElementVNode("div",F,[e.unref(M)?(e.openBlock(),e.createBlock(c,e.mergeProps({key:0,class:"vv-select__icon"},e.unref(K)),null,16)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("select",e.mergeProps({id:e.unref(O),ref_key:"select",ref:f,"onUpdate:modelValue":o[0]||(o[0]=l=>e.isRef(ne)?ne.value=l:null)},e.unref(X)),[l.placeholder?(e.openBlock(),e.createElementBlock("option",{key:0,value:void 0,disabled:!l.unselectable,hidden:!l.unselectable},e.toDisplayString(l.placeholder),9,P)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.options,((l,o)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[te(l)?(e.openBlock(),e.createElementBlock("optgroup",{key:`group-${o}`,disabled:e.unref(le)(l),label:e.unref(Z)(l)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(oe)(l),((l,n)=>(e.openBlock(),e.createElementBlock("option",{key:`group-${o}-item-${n}`,disabled:e.unref(le)(l),value:e.unref(ee)(l)},e.toDisplayString(e.unref(Z)(l)),9,z)))),128))],8,q)):(e.openBlock(),e.createElementBlock("option",{key:o,disabled:e.unref(le)(l),value:e.unref(ee)(l)},e.toDisplayString(e.unref(Z)(l)),9,D))],64)))),256))],16,C),[[e.vModelSelect,e.unref(ne)]]),e.unref(T)?(e.openBlock(),e.createBlock(c,e.mergeProps({key:1,class:"vv-select__icon vv-select__icon-after"},e.unref(K)),null,16)):e.createCommentVNode("",!0)]),l.$slots.after?(e.openBlock(),e.createElementBlock("div",R,[e.renderSlot(l.$slots,"after",e.normalizeProps(e.guardReactiveProps(e.unref(Y))))])):e.createCommentVNode("",!0)]),e.createVNode(e.unref(m),{id:e.unref(x),class:"vv-select__hint"},null,8,["id"])],2))}})}));
|
|
1
|
+
!function(e,l){"object"==typeof exports&&"undefined"!=typeof module?module.exports=l(require("vue"),require("@iconify/vue"),require("@vueuse/core"),require("nanoid")):"function"==typeof define&&define.amd?define(["vue","@iconify/vue","@vueuse/core","nanoid"],l):(e="undefined"!=typeof globalThis?globalThis:e||self).VvSelect=l(e.vue,e.vue$1,e.core,e.nanoid)}(this,(function(e,l,o,n){"use strict";const t={color:String,width:{type:[String,Number]},height:{type:[String,Number]},name:{type:String,required:!0},provider:{type:String},prefix:{type:String,default:"normal"},src:String,horizontalFlip:Boolean,verticalFlip:Boolean,flip:String,mode:String,inline:Boolean,rotate:[Number,String],onLoad:Function,svg:String,modifiers:{type:[String,Array]}};var a=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(a||{}),i=(e=>(e.before="before",e.after="after",e))(i||{}),r=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(r||{});const u=Symbol.for("volver");function d(l,o,n){return e.computed((()=>{const t={[l]:!0},a="string"==typeof(null==o?void 0:o.value)?o.value.split(" "):null==o?void 0:o.value;return a&&Array.isArray(a)&&a.forEach((e=>{e&&(t[`${l}--${e}`]=!0)})),n&&Object.keys(n.value).forEach((o=>{t[`${l}--${o}`]=e.unref(n.value[o])})),t}))}const c=e.defineComponent({name:"VvIcon",props:t,setup(o){const n=o,t=e.ref(!0),a=e.inject(u),{modifiers:i}=e.toRefs(n),r=d("vv-icon",i),c=e.computed((()=>n.provider||(null==a?void 0:a.iconsProvider))),s=e.computed((()=>{const e=n.name??"",o=`@${c.value}:${n.prefix}:${n.name}`;return l.iconExists(e)?e:l.iconExists(o)?o:(null==a?void 0:a.iconsCollections.find((o=>{const n=`@${c.value}:${o.prefix}:${e}`;if(l.iconExists(n))return n})))||e}));function v(e){const o=function(e){let l=null;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");l=(new e).window}return(l?new l.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),t=(null==o?void 0:o.innerHTML.trim())||"";o&&t&&l.addIcon(`@${c.value}:${n.prefix}:${n.name}`,{body:t,height:o.viewBox.baseVal.height,width:o.viewBox.baseVal.width})}return a&&(n.src&&!l.iconExists(`@${c.value}:${n.prefix}:${n.name}`)?(t.value=!1,a.fetchIcon(n.src).then((e=>{e&&(v(e),t.value=!0)})).catch((e=>{throw new Error(`During fetch icon: ${null==e?void 0:e.message}`)}))):n.svg&&v(n.svg)),(o,n)=>e.unref(t)?(e.openBlock(),e.createBlock(e.unref(l.Icon),e.mergeProps({key:0,class:e.unref(r)},{inline:o.inline,width:o.width,height:o.height,horizontalFlip:o.horizontalFlip,verticalFlip:o.verticalFlip,flip:o.flip,rotate:o.rotate,color:o.color,onLoad:o.onLoad,icon:e.unref(s)}),null,16,["class"])):e.createCommentVNode("",!0)}});function s(e,l){if(e&&Object.keys(e).length&&l){if(-1===l.indexOf("."))return e[l];{const o=l.split(".");let n=e;for(let l=0,t=o.length;l<t;++l){if(null==e)return null;n=n[o[l]]}return n}}return null}function v(l){return null==(o=e.unref(l))||""===o||Array.isArray(o)&&0===o.length||!(o instanceof Date)&&"object"==typeof o&&0===Object.keys(o).length;var o}function p(e){return Array.isArray(e)?e.filter((e=>{return"string"==typeof(l=e)||l instanceof String;var l})).join(" "):e}const f={valid:Boolean,validLabel:[String,Array]},m={invalid:Boolean,invalidLabel:[String,Array]},g={loading:Boolean,loadingLabel:{type:String,default:"Loading..."}},b={disabled:Boolean},y=(Boolean,Boolean,{label:[String,Number]}),h={readonly:Boolean},B={modifiers:[String,Array]},S={hintLabel:{type:String,default:""}},k={options:{type:Array,default:()=>[]},labelKey:{type:[String,Function],default:"label"},valueKey:{type:[String,Function],default:"value"},disabledKey:{type:[String,Function],default:"disabled"}},V={icon:{type:[String,Object]},iconPosition:{type:String,default:i.before,validation:e=>Object.values(i).includes(e)}},$={tabindex:{type:[String,Number],default:0}},L={floating:Boolean},w={unselectable:{type:Boolean,default:!0}},E={id:[String,Number]};a.bottom,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean,Boolean;const N={...E,name:{type:String,required:!0}},O={autofocus:Boolean},x={autocomplete:{type:String,default:"off"}};r.button;const A={...N,...O,...x,...$,...f,...m,...S,...g,...b,...h,...B,...k,...V,...L,...w,...y,multiple:Boolean,required:Boolean,size:[String,Number],modelValue:{type:[String,Number,Boolean,Object,Array],default:void 0},placeholder:String};const I=["for"],_={class:"vv-select__wrapper"},j={key:0,class:"vv-select__input-before"},F={class:"vv-select__inner"},C=["id"],P=["disabled","hidden"],D=["disabled","value"],q=["disabled","label"],z=["disabled","value"],R={key:1,class:"vv-select__input-after"};return e.defineComponent({name:"VvSelect",props:A,emits:["update:modelValue","focus","blur"],setup(l,{emit:t}){const r=l,u=e.useSlots(),f=e.ref(),{HintSlot:m,hasHint:g,hasInvalid:b}=function(l,n){const{invalid:t,valid:a,hint:i,loading:r}=n,{hintLabel:u,modelValue:d,valid:c,validLabel:f,invalid:m,invalidLabel:g,...b}=e.toRefs(l),y=s(b,"loading"),h=s(b,"loadingLabel"),B=e.computed((()=>!(!m.value||(!m.value||!t)&&!((null==g?void 0:g.value)&&Array.isArray(g.value)&&g.value.length>0)&&(!(null==g?void 0:g.value)||v(g))))),S=e.computed((()=>!!(u&&u.value||i))),k=e.computed((()=>!!(f&&f.value||a))),V=e.computed((()=>!!((null==y?void 0:y.value)&&r||(null==y?void 0:y.value)&&(null==h?void 0:h.value)))),$=e.computed((()=>S.value||k.value||B.value||V.value));return{hasInvalid:B,hasHint:S,hasValid:k,hasLoading:V,HintSlot:{name:"HintSlot",props:{params:{type:Object,default:()=>({})}},setup(l){const n=e.computed((()=>{const e=o.toReactive({hintLabel:u,modelValue:d,valid:c,validLabel:f,invalid:m,invalidLabel:g,loading:y,loadingLabel:h,...l.params});return(null==m?void 0:m.value)?(null==t?void 0:t(e))||p(null==g?void 0:g.value)||(null==u?void 0:u.value):(null==c?void 0:c.value)?(null==a?void 0:a(e))||p(null==f?void 0:f.value)||(null==u?void 0:u.value):(null==y?void 0:y.value)?(null==r?void 0:r(e))||p(null==h?void 0:h.value)||(null==u?void 0:u.value):(null==i?void 0:i(e))||p(null==u?void 0:u.value)||(null==u?void 0:u.value)}));return{isVisible:$,hasInvalid:B,hasValid:k,hintContent:n}},render(){if(this.isVisible)return e.h("small",{role:this.hasInvalid?"alert":this.hasValid?"status":void 0},this.hintContent)}}}}(r,u),{id:y,modifiers:h,disabled:B,readonly:S,loading:k,icon:V,iconPosition:$,invalid:L,valid:w,floating:E,multiple:N}=e.toRefs(r),O=(l=>e.computed((()=>String((null==l?void 0:l.value)||n.nanoid()))))(y),x=e.computed((()=>`${O.value}-hint`)),{focused:A}=function(l,n){const{focused:t}=o.useFocus(l);return e.watch(t,(o=>{n(o?"focus":"blur",e.unref(l))})),{focused:t}}(f,t),H=o.useElementVisibility(f);e.watch(H,(e=>{e&&r.autofocus&&(A.value=!0)}));const{hasIcon:K,hasIconBefore:M,hasIconAfter:T}=function(l,o){const n=e.computed((()=>Boolean((null==l?void 0:l.value)&&o.value===i.before))),t=e.computed((()=>Boolean((null==l?void 0:l.value)&&o.value===i.after))),r=e.computed((()=>Boolean((null==l?void 0:l.value)&&o.value===a.left))),u=e.computed((()=>Boolean((null==l?void 0:l.value)&&o.value===a.right))),d=e.computed((()=>Boolean((null==l?void 0:l.value)&&o.value===a.top))),c=e.computed((()=>Boolean((null==l?void 0:l.value)&&o.value===a.bottom)));return{hasIcon:e.computed((()=>"string"==typeof(null==l?void 0:l.value)?{name:null==l?void 0:l.value}:null==l?void 0:l.value)),hasIconLeft:r,hasIconRight:u,hasIconTop:d,hasIconBottom:c,hasIconBefore:n,hasIconAfter:t}}(V,$),G=e.computed((()=>!v(r.modelValue))),J=e.computed((()=>r.disabled||r.readonly)),U=e.computed((()=>J.value?-1:r.tabindex)),Q=e.computed((()=>!0===r.invalid||!0!==r.valid&&void 0)),W=d("vv-select",h,e.computed((()=>({valid:w.value,invalid:L.value,loading:k.value,disabled:B.value,readonly:S.value,"icon-before":M.value,"icon-after":T.value,dirty:G.value,focus:A.value,floating:E.value,multiple:N.value})))),X=e.computed((()=>({name:r.name,tabindex:U.value,disabled:J.value,required:r.required,size:r.size,autocomplete:r.autocomplete,multiple:r.multiple,"aria-invalid":Q.value,"aria-describedby":!b.value&&g.value?x.value:void 0,"aria-errormessage":b.value?x.value:void 0}))),Y=e.computed((()=>({valid:r.valid,invalid:r.invalid,modelValue:r.modelValue}))),{getOptionLabel:Z,getOptionValue:ee,getOptionDisabled:le,getOptionGrouped:oe}=function(l){const{options:o,labelKey:n,valueKey:t,disabledKey:a}=e.toRefs(l);return{options:o,getOptionLabel:e=>"object"!=typeof e&&null!==e?e:"function"==typeof n.value?n.value(e):e[n.value],getOptionValue:e=>"object"!=typeof e&&null!==e?e:"function"==typeof t.value?t.value(e):e[t.value],getOptionDisabled:e=>("object"==typeof e||null===e)&&("function"==typeof a.value?a.value(e):e[a.value]),getOptionGrouped:e=>"object"!=typeof e&&null!==e?[]:e.options||[]}}(r),ne=e.computed({get:()=>r.modelValue,set:e=>{Array.isArray(e)&&(e=e.filter((e=>void 0!==e))),t("update:modelValue",e)}}),te=e=>"string"!=typeof e&&(e&&e.options&&e.options.length>0);return(l,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(W))},[l.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(O)},e.toDisplayString(l.label),9,I)):e.createCommentVNode("",!0),e.createElementVNode("div",_,[l.$slots.before?(e.openBlock(),e.createElementBlock("div",j,[e.renderSlot(l.$slots,"before",e.normalizeProps(e.guardReactiveProps(e.unref(Y))))])):e.createCommentVNode("",!0),e.createElementVNode("div",F,[e.unref(M)?(e.openBlock(),e.createBlock(c,e.mergeProps({key:0,class:"vv-select__icon"},e.unref(K)),null,16)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("select",e.mergeProps({id:e.unref(O),ref_key:"select",ref:f,"onUpdate:modelValue":o[0]||(o[0]=l=>e.isRef(ne)?ne.value=l:null)},e.unref(X)),[l.placeholder?(e.openBlock(),e.createElementBlock("option",{key:0,value:void 0,disabled:!l.unselectable,hidden:!l.unselectable},e.toDisplayString(l.placeholder),9,P)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.options,((l,o)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[te(l)?(e.openBlock(),e.createElementBlock("optgroup",{key:`group-${o}`,disabled:e.unref(le)(l),label:e.unref(Z)(l)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(oe)(l),((l,n)=>(e.openBlock(),e.createElementBlock("option",{key:`group-${o}-item-${n}`,disabled:e.unref(le)(l),value:e.unref(ee)(l)},e.toDisplayString(e.unref(Z)(l)),9,z)))),128))],8,q)):(e.openBlock(),e.createElementBlock("option",{key:o,disabled:e.unref(le)(l),value:e.unref(ee)(l)},e.toDisplayString(e.unref(Z)(l)),9,D))],64)))),256))],16,C),[[e.vModelSelect,e.unref(ne)]]),e.unref(T)?(e.openBlock(),e.createBlock(c,e.mergeProps({key:1,class:"vv-select__icon vv-select__icon-after"},e.unref(K)),null,16)):e.createCommentVNode("",!0)]),l.$slots.after?(e.openBlock(),e.createElementBlock("div",R,[e.renderSlot(l.$slots,"after",e.normalizeProps(e.guardReactiveProps(e.unref(Y))))])):e.createCommentVNode("",!0)]),e.createVNode(e.unref(m),{id:e.unref(x),class:"vv-select__hint"},null,8,["id"])],2))}})}));
|
|
@@ -1991,7 +1991,7 @@ function useOptions(props) {
|
|
|
1991
1991
|
const getOptionGrouped = (option) => {
|
|
1992
1992
|
if (typeof option !== "object" && option !== null)
|
|
1993
1993
|
return [];
|
|
1994
|
-
return option.options;
|
|
1994
|
+
return option.options || [];
|
|
1995
1995
|
};
|
|
1996
1996
|
return {
|
|
1997
1997
|
options,
|
|
@@ -3078,6 +3078,12 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
3078
3078
|
VvComboboxProps,
|
|
3079
3079
|
props
|
|
3080
3080
|
);
|
|
3081
|
+
const isGroup = (option) => {
|
|
3082
|
+
if (typeof option === "string") {
|
|
3083
|
+
return false;
|
|
3084
|
+
}
|
|
3085
|
+
return option.options && option.options.length > 0;
|
|
3086
|
+
};
|
|
3081
3087
|
const { HintSlot } = HintSlotFactory(props, slots);
|
|
3082
3088
|
const inputEl = ref(null);
|
|
3083
3089
|
const inputSearchEl = ref(null);
|
|
@@ -3209,9 +3215,20 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
3209
3215
|
} else if (props.modelValue) {
|
|
3210
3216
|
selectedValues = [props.modelValue];
|
|
3211
3217
|
}
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
3218
|
+
const options = props.options.reduce((acc, value) => {
|
|
3219
|
+
if (isGroup(value)) {
|
|
3220
|
+
return [...acc, ...getOptionGrouped(value)];
|
|
3221
|
+
}
|
|
3222
|
+
return [...acc, value];
|
|
3223
|
+
}, []);
|
|
3224
|
+
return options.filter((option) => {
|
|
3225
|
+
if (isGroup(option)) {
|
|
3226
|
+
return getOptionGrouped(option).some(
|
|
3227
|
+
(item) => selectedValues.includes(getOptionValue(item))
|
|
3228
|
+
);
|
|
3229
|
+
}
|
|
3230
|
+
return selectedValues.includes(getOptionValue(option));
|
|
3231
|
+
});
|
|
3215
3232
|
});
|
|
3216
3233
|
const hasValue = computed(() => {
|
|
3217
3234
|
return selectedOptions.value.map((option) => getOptionLabel(option)).join(props.separator);
|
|
@@ -3310,12 +3327,6 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
3310
3327
|
toggleExpanded();
|
|
3311
3328
|
}
|
|
3312
3329
|
});
|
|
3313
|
-
const isGroup = (option) => {
|
|
3314
|
-
if (typeof option === "string") {
|
|
3315
|
-
return false;
|
|
3316
|
-
}
|
|
3317
|
-
return option.options && option.options.length > 0;
|
|
3318
|
-
};
|
|
3319
3330
|
return (_ctx, _cache) => {
|
|
3320
3331
|
return !_ctx.native ? (openBlock(), createElementBlock("div", {
|
|
3321
3332
|
key: 0,
|