@volverjs/ui-vue 0.0.10-beta.71 → 0.0.10-beta.73
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/VvAlert/VvAlert.es.js +4 -4
- package/dist/components/VvAlert/VvAlert.umd.js +1 -1
- package/dist/components/VvAlertGroup/VvAlertGroup.es.js +4 -4
- package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
- package/dist/components/VvButton/VvButton.es.js +4 -4
- package/dist/components/VvButton/VvButton.umd.js +1 -1
- package/dist/components/VvCombobox/VvCombobox.es.js +141 -71
- package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
- package/dist/components/VvCombobox/VvCombobox.vue.d.ts +10 -3
- package/dist/components/VvCombobox/index.d.ts +35 -19
- package/dist/components/VvDropdown/VvDropdown.es.js +41 -22
- package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
- package/dist/components/VvDropdown/VvDropdown.vue.d.ts +4 -0
- package/dist/components/VvInputFile/VvInputFile.es.js +9 -9
- package/dist/components/VvInputFile/VvInputFile.umd.js +1 -1
- package/dist/components/VvInputText/VvInputText.es.js +54 -35
- package/dist/components/VvInputText/VvInputText.umd.js +1 -1
- package/dist/components/VvNav/VvNav.es.js +3 -1
- package/dist/components/VvNav/VvNav.umd.js +1 -1
- package/dist/components/VvNav/VvNavItem.vue.d.ts +4 -0
- package/dist/components/VvNavItem/VvNavItem.es.js +3 -1
- package/dist/components/VvNavItem/VvNavItem.umd.js +1 -1
- package/dist/components/VvSelect/VvSelect.es.js +34 -24
- package/dist/components/VvSelect/VvSelect.umd.js +1 -1
- package/dist/components/VvSelect/VvSelect.vue.d.ts +3 -1
- package/dist/components/VvSelect/index.d.ts +12 -19
- package/dist/components/VvTab/VvTab.es.js +3 -1
- package/dist/components/VvTab/VvTab.umd.js +1 -1
- package/dist/components/VvTextarea/VvTextarea.es.js +48 -29
- package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
- package/dist/components/index.es.js +153 -81
- package/dist/components/index.umd.js +1 -1
- package/dist/icons.es.js +3 -3
- package/dist/icons.umd.js +1 -1
- package/dist/props/index.d.ts +24 -0
- package/dist/stories/Combobox/Combobox.stories.d.ts +1 -0
- package/package.json +11 -11
|
@@ -39,6 +39,10 @@ const INJECTION_KEY_VOLVER = Symbol.for("volver");
|
|
|
39
39
|
const INJECTION_KEY_ALERT_GROUP = Symbol.for(
|
|
40
40
|
"alertGroup"
|
|
41
41
|
);
|
|
42
|
+
const VvIconPropsDefaults = {
|
|
43
|
+
prefix: "normal"
|
|
44
|
+
/* normal */
|
|
45
|
+
};
|
|
42
46
|
const IconProps = {
|
|
43
47
|
/**
|
|
44
48
|
* VvIcon name or props
|
|
@@ -300,10 +304,6 @@ function useVvAlert(props, emit) {
|
|
|
300
304
|
}))
|
|
301
305
|
};
|
|
302
306
|
}
|
|
303
|
-
const VvIconPropsDefaults = {
|
|
304
|
-
prefix: "normal"
|
|
305
|
-
/* normal */
|
|
306
|
-
};
|
|
307
307
|
function useVolver() {
|
|
308
308
|
return inject(INJECTION_KEY_VOLVER, void 0);
|
|
309
309
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("vue"),require("@iconify/vue")):"function"==typeof define&&define.amd?define(["vue","@iconify/vue"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).VvAlert=o(e.vue,e.vue$1)}(this,(function(e,o){"use strict";var t=(e=>(e.local="local",e.session="session",e))(t||{}),l=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(l||{}),r=(e=>(e.before="before",e.after="after",e))(r||{}),n=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(n||{}),i=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(i||{}),a=(e=>(e.alert="alert",e.alertdialog="alertdialog",e))(a||{});const s=Symbol.for("volver"),u=Symbol.for("alertGroup"),c={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:r.before,validation:e=>Object.values(r).includes(e)}},
|
|
1
|
+
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("vue"),require("@iconify/vue")):"function"==typeof define&&define.amd?define(["vue","@iconify/vue"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).VvAlert=o(e.vue,e.vue$1)}(this,(function(e,o){"use strict";var t=(e=>(e.local="local",e.session="session",e))(t||{}),l=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(l||{}),r=(e=>(e.before="before",e.after="after",e))(r||{}),n=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(n||{}),i=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(i||{}),a=(e=>(e.alert="alert",e.alertdialog="alertdialog",e))(a||{});const s=Symbol.for("volver"),u=Symbol.for("alertGroup"),c={prefix:"normal"},d={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:r.before,validation:e=>Object.values(r).includes(e)}},v={id:[String,Number]};function f(o,t,l){return e.computed((()=>{const r={[o]:!0},n="string"==typeof(null==t?void 0:t.value)?t.value.split(" "):null==t?void 0:t.value;return n&&Array.isArray(n)&&n.forEach((e=>{e&&(r[`${o}--${e}`]=!0)})),l&&Object.keys(l.value).forEach((t=>{r[`${o}--${t}`]=e.unref(l.value[t])})),r}))}l.bottom,n.button,i.button,t.local;const p={...v,...d,modifiers:{type:[String,Array],default:void 0},dismissable:{type:Boolean,default:!1},autoClose:{type:Number,default:0},closeLabel:{type:String,default:"Close"},title:{type:String,default:void 0},content:{type:String,default:void 0},footer:{type:String,default:void 0},role:{type:String,default:a.alert}};function m(o,t){const{bus:n}=e.inject(u,{}),i=(a=e.computed((()=>o.id)),e.computed((()=>String((null==a?void 0:a.value)||e.useId()))));var a;const s=e.computed((()=>`${i.value}-title`));let c;const d=()=>{c&&clearTimeout(c),t("close",i.value),null==n||n.emit("close",i.value)};e.watch((()=>o.autoClose),(e=>{e>0?c=setTimeout(d,e):c&&clearTimeout(c)}),{immediate:!0});const v=e.ref(!1),p=()=>{v.value=!0,c&&clearTimeout(c)},m=()=>{v.value=!1,o.autoClose>0&&(c=setTimeout(d,o.autoClose))},{hasIcon:h}=function(o,t){const n=e.computed((()=>"string"==typeof(null==o?void 0:o.value)?{name:null==o?void 0:o.value}:null==o?void 0:o.value)),i=e.computed((()=>(null==t?void 0:t.value)===r.before?n.value:void 0)),a=e.computed((()=>(null==t?void 0:t.value)===r.after?n.value:void 0)),s=e.computed((()=>(null==t?void 0:t.value)===l.left?n.value:void 0)),u=e.computed((()=>(null==t?void 0:t.value)===l.right?n.value:void 0)),c=e.computed((()=>(null==t?void 0:t.value)===l.top?n.value:void 0)),d=e.computed((()=>(null==t?void 0:t.value)===l.bottom?n.value:void 0));return{hasIcon:n,hasIconLeft:s,hasIconRight:u,hasIconTop:c,hasIconBottom:d,hasIconBefore:i,hasIconAfter:a}}(e.computed((()=>o.icon))),b=f("vv-alert",e.computed((()=>o.modifiers)),e.computed((()=>({dismissable:o.autoClose>0||o.dismissable,"auto-close":o.autoClose>0,hover:v.value})))),y=e.computed((()=>({"--alert-duration":`${o.autoClose}ms`})));return{close:d,hasIcon:h,hasTitleId:s,hasProps:e.computed((()=>({onMouseover:p,onMouseleave:m,class:b.value,style:y.value,role:o.role,"aria-labelledby":s.value})))}}const h=e.defineComponent({name:"VvIcon",props:e.mergeDefaults({name:{},color:{},width:{},height:{},provider:{},prefix:{},src:{},horizontalFlip:{type:Boolean},verticalFlip:{type:Boolean},flip:{},mode:{},inline:{type:Boolean},rotate:{},onLoad:{type:Function},svg:{},modifiers:{}},c),setup(t){const l=t,r=e.computed((()=>"string"==typeof l.rotate?Number.parseFloat(l.rotate):l.rotate)),n=e.ref(!0),i=e.inject(s,void 0),{modifiers:a}=e.toRefs(l),u=f("vv-icon",a),c=e.computed((()=>l.provider||(null==i?void 0:i.iconsProvider))),d=e.computed((()=>{const e=l.name??"",t=`@${c.value}:${l.prefix}:${e}`;if(o.iconLoaded(t))return t;const r=null==i?void 0:i.iconsCollections.find((t=>{const l=`@${c.value}:${t.prefix}:${e}`;return o.iconLoaded(l)}));return r?`@${c.value}:${r.prefix}:${e}`:e}));function v(e){const t=function(e){let o;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");o=(new e).window}return(o?new o.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),r=(null==t?void 0:t.innerHTML.trim())||"";t&&r&&o.addIcon(`@${c.value}:${l.prefix}:${l.name}`,{body:r,height:t.viewBox.baseVal.height,width:t.viewBox.baseVal.width})}return i&&l.src&&!o.iconLoaded(`@${c.value}:${l.prefix}:${l.name}`)&&(n.value=!1,i.fetchIcon(l.src).then((e=>{e&&(v(e),n.value=!0)})).catch((e=>{throw new Error(`Error during fetch icon: ${null==e?void 0:e.message}`)}))),l.svg&&v(l.svg),(t,l)=>e.unref(n)?(e.openBlock(),e.createBlock(e.unref(o.Icon),e.mergeProps({key:0,class:e.unref(u)},{inline:t.inline,width:t.width,height:t.height,horizontalFlip:t.horizontalFlip,verticalFlip:t.verticalFlip,flip:t.flip,rotate:e.unref(r),color:t.color,icon:e.unref(d)},{onLoad:t.onLoad}),null,16,["class","onLoad"])):e.createCommentVNode("v-if",!0)}}),b={key:0,class:"vv-alert__header"},y=["id"],g=["aria-label"],$={key:1,class:"vv-alert__content"},k={key:2,class:"vv-alert__footer"};return e.defineComponent({name:"VvAlert",props:p,emits:["close"],setup(o,{expose:t,emit:l}){const r=o,n=l,{hasProps:i,hasTitleId:a,hasIcon:s,close:u}=m(r,n);return t({close:u}),(o,t)=>(e.openBlock(),e.createElementBlock("div",e.normalizeProps(e.guardReactiveProps(e.unref(i))),[o.$slots.header||o.$slots.title||o.$slots.close||o.$slots["title::before"]||o.$slots["title::after"]||o.title||e.unref(s)||o.dismissable||o.autoClose?(e.openBlock(),e.createElementBlock("div",b,[e.unref(s)?(e.openBlock(),e.createBlock(h,e.mergeProps({key:0},e.unref(s),{class:"vv-alert__icon"}),null,16)):e.createCommentVNode("v-if",!0),e.renderSlot(o.$slots,"header",{},(()=>[e.renderSlot(o.$slots,"title::before"),o.$slots.title||o.title?(e.openBlock(),e.createElementBlock("strong",{key:0,id:e.unref(a),class:"vv-alert__title"},[e.renderSlot(o.$slots,"title",{},(()=>[e.createTextVNode(e.toDisplayString(o.title),1)]))],8,y)):e.createCommentVNode("v-if",!0),e.renderSlot(o.$slots,"title::after")])),e.renderSlot(o.$slots,"close",e.normalizeProps(e.guardReactiveProps({close:e.unref(u)})),(()=>[o.dismissable||o.autoClose?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vv-alert__close",type:"button","aria-label":o.closeLabel,onClick:t[0]||(t[0]=e.withModifiers(((...o)=>e.unref(u)&&e.unref(u)(...o)),["stop"]))},t[1]||(t[1]=[e.createElementVNode("div",{class:"vv-alert__close-mask"},null,-1)]),8,g)):e.createCommentVNode("v-if",!0)]))])):e.createCommentVNode("v-if",!0),o.$slots.default||o.content?(e.openBlock(),e.createElementBlock("div",$,[e.renderSlot(o.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(o.content),1)]))])):e.createCommentVNode("v-if",!0),o.$slots.footer||o.footer?(e.openBlock(),e.createElementBlock("div",k,[e.renderSlot(o.$slots,"footer",{},(()=>[e.createTextVNode(e.toDisplayString(o.footer),1)]))])):e.createCommentVNode("v-if",!0)],16))}})}));
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { provide, computed, unref, inject, useId, watch, ref, defineComponent, mergeDefaults, toRefs, createBlock, createCommentVNode, openBlock, mergeProps, createElementBlock, normalizeProps, guardReactiveProps, renderSlot, createTextVNode, toDisplayString, withModifiers, createElementVNode, createVNode, TransitionGroup, toHandlers, withCtx, Fragment, renderList } from "vue";
|
|
2
2
|
import mitt from "mitt";
|
|
3
3
|
import { iconLoaded, Icon, addIcon } from "@iconify/vue";
|
|
4
|
+
const VvIconPropsDefaults = {
|
|
5
|
+
prefix: "normal"
|
|
6
|
+
/* normal */
|
|
7
|
+
};
|
|
4
8
|
var StorageType = /* @__PURE__ */ ((StorageType2) => {
|
|
5
9
|
StorageType2["local"] = "local";
|
|
6
10
|
StorageType2["session"] = "session";
|
|
@@ -422,10 +426,6 @@ function useVvAlert(props, emit) {
|
|
|
422
426
|
}))
|
|
423
427
|
};
|
|
424
428
|
}
|
|
425
|
-
const VvIconPropsDefaults = {
|
|
426
|
-
prefix: "normal"
|
|
427
|
-
/* normal */
|
|
428
|
-
};
|
|
429
429
|
function useVolver() {
|
|
430
430
|
return inject(INJECTION_KEY_VOLVER, void 0);
|
|
431
431
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("mitt"),require("@iconify/vue")):"function"==typeof define&&define.amd?define(["vue","mitt","@iconify/vue"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvAlertGroup=t(e.vue,e.mitt,e.vue$1)}(this,(function(e,t,o){"use strict";
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("mitt"),require("@iconify/vue")):"function"==typeof define&&define.amd?define(["vue","mitt","@iconify/vue"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvAlertGroup=t(e.vue,e.mitt,e.vue$1)}(this,(function(e,t,o){"use strict";const l={prefix:"normal"};var r=(e=>(e.local="local",e.session="session",e))(r||{}),n=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(n||{}),a=(e=>(e.before="before",e.after="after",e))(a||{}),i=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(i||{}),s=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(s||{}),u=(e=>(e.alert="alert",e.alertdialog="alertdialog",e))(u||{});const c=Symbol.for("volver"),d=Symbol.for("alertGroup"),v={modifiers:{type:[String,Array],default:void 0}},f={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:a.before,validation:e=>Object.values(a).includes(e)}},p={id:[String,Number]};function m(t,o,l){return e.computed((()=>{const r={[t]:!0},n="string"==typeof(null==o?void 0:o.value)?o.value.split(" "):null==o?void 0:o.value;return n&&Array.isArray(n)&&n.forEach((e=>{e&&(r[`${t}--${e}`]=!0)})),l&&Object.keys(l.value).forEach((o=>{r[`${t}--${o}`]=e.unref(l.value[o])})),r}))}n.bottom,i.button,s.button,r.local;const b={...v,name:{type:String,required:!0},items:{type:Array,default:()=>[]},stack:{type:Boolean,default:!1},reverse:{type:Boolean,default:!1},inline:{type:String,default:void 0},block:{type:String,default:void 0},position:{type:String,default:void 0},transition:{type:String,default:void 0}};function h(o,l){const r=function({name:o}){const l=t();return e.provide(d,{name:o,bus:l}),l}({name:e.computed((()=>o.name))});(o.block&&!o.inline||!o.block&&o.inline)&&console.warn("[VvAlertGroup]: block and inline props must coexist at the same time.");const n=e.computed((()=>{const t=[m("vv-alert-group",e.computed((()=>o.modifiers)),e.computed((()=>({stack:o.stack,reverse:o.reverse,absolute:"absolute"===o.position,fixed:"fixed"===o.position})))).value];return o.inline&&o.block&&t.push(`vv-alert-group--${o.block}-${o.inline}`),t})),a=e.computed((()=>o.transition?o.transition:o.position?"start"===o.inline?"vv-alert--fade-inline-start":"end"===o.inline?"vv-alert--fade-inline-end":"top"===o.block?"vv-alert--fade-block-top":"bottom"===o.block?"vv-alert--fade-block-bottom":"vv-alert--fade":"vv-alert--fade"));return r.on("close",(e=>{l("close",e)})),{hasTransition:a,hasProps:e.computed((()=>({class:n.value})))}}const g={...p,...f,modifiers:{type:[String,Array],default:void 0},dismissable:{type:Boolean,default:!1},autoClose:{type:Number,default:0},closeLabel:{type:String,default:"Close"},title:{type:String,default:void 0},content:{type:String,default:void 0},footer:{type:String,default:void 0},role:{type:String,default:u.alert}};function y(t,o){const{bus:l}=e.inject(d,{}),r=(i=e.computed((()=>t.id)),e.computed((()=>String((null==i?void 0:i.value)||e.useId()))));var i;const s=e.computed((()=>`${r.value}-title`));let u;const c=()=>{u&&clearTimeout(u),o("close",r.value),null==l||l.emit("close",r.value)};e.watch((()=>t.autoClose),(e=>{e>0?u=setTimeout(c,e):u&&clearTimeout(u)}),{immediate:!0});const v=e.ref(!1),f=()=>{v.value=!0,u&&clearTimeout(u)},p=()=>{v.value=!1,t.autoClose>0&&(u=setTimeout(c,t.autoClose))},{hasIcon:b}=function(t,o){const l=e.computed((()=>"string"==typeof(null==t?void 0:t.value)?{name:null==t?void 0:t.value}:null==t?void 0:t.value)),r=e.computed((()=>(null==o?void 0:o.value)===a.before?l.value:void 0)),i=e.computed((()=>(null==o?void 0:o.value)===a.after?l.value:void 0)),s=e.computed((()=>(null==o?void 0:o.value)===n.left?l.value:void 0)),u=e.computed((()=>(null==o?void 0:o.value)===n.right?l.value:void 0)),c=e.computed((()=>(null==o?void 0:o.value)===n.top?l.value:void 0)),d=e.computed((()=>(null==o?void 0:o.value)===n.bottom?l.value:void 0));return{hasIcon:l,hasIconLeft:s,hasIconRight:u,hasIconTop:c,hasIconBottom:d,hasIconBefore:r,hasIconAfter:i}}(e.computed((()=>t.icon))),h=m("vv-alert",e.computed((()=>t.modifiers)),e.computed((()=>({dismissable:t.autoClose>0||t.dismissable,"auto-close":t.autoClose>0,hover:v.value})))),g=e.computed((()=>({"--alert-duration":`${t.autoClose}ms`})));return{close:c,hasIcon:b,hasTitleId:s,hasProps:e.computed((()=>({onMouseover:f,onMouseleave:p,class:h.value,style:g.value,role:t.role,"aria-labelledby":s.value})))}}const k=e.defineComponent({name:"VvIcon",props:e.mergeDefaults({name:{},color:{},width:{},height:{},provider:{},prefix:{},src:{},horizontalFlip:{type:Boolean},verticalFlip:{type:Boolean},flip:{},mode:{},inline:{type:Boolean},rotate:{},onLoad:{type:Function},svg:{},modifiers:{}},l),setup(t){const l=t,r=e.computed((()=>"string"==typeof l.rotate?Number.parseFloat(l.rotate):l.rotate)),n=e.ref(!0),a=e.inject(c,void 0),{modifiers:i}=e.toRefs(l),s=m("vv-icon",i),u=e.computed((()=>l.provider||(null==a?void 0:a.iconsProvider))),d=e.computed((()=>{const e=l.name??"",t=`@${u.value}:${l.prefix}:${e}`;if(o.iconLoaded(t))return t;const r=null==a?void 0:a.iconsCollections.find((t=>{const l=`@${u.value}:${t.prefix}:${e}`;return o.iconLoaded(l)}));return r?`@${u.value}:${r.prefix}:${e}`:e}));function v(e){const t=function(e){let t;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),r=(null==t?void 0:t.innerHTML.trim())||"";t&&r&&o.addIcon(`@${u.value}:${l.prefix}:${l.name}`,{body:r,height:t.viewBox.baseVal.height,width:t.viewBox.baseVal.width})}return a&&l.src&&!o.iconLoaded(`@${u.value}:${l.prefix}:${l.name}`)&&(n.value=!1,a.fetchIcon(l.src).then((e=>{e&&(v(e),n.value=!0)})).catch((e=>{throw new Error(`Error during fetch icon: ${null==e?void 0:e.message}`)}))),l.svg&&v(l.svg),(t,l)=>e.unref(n)?(e.openBlock(),e.createBlock(e.unref(o.Icon),e.mergeProps({key:0,class:e.unref(s)},{inline:t.inline,width:t.width,height:t.height,horizontalFlip:t.horizontalFlip,verticalFlip:t.verticalFlip,flip:t.flip,rotate:e.unref(r),color:t.color,icon:e.unref(d)},{onLoad:t.onLoad}),null,16,["class","onLoad"])):e.createCommentVNode("v-if",!0)}}),$={key:0,class:"vv-alert__header"},S=["id"],B=["aria-label"],C={key:1,class:"vv-alert__content"},w={key:2,class:"vv-alert__footer"},x=e.defineComponent({name:"VvAlert",props:g,emits:["close"],setup(t,{expose:o,emit:l}){const r=t,n=l,{hasProps:a,hasTitleId:i,hasIcon:s,close:u}=y(r,n);return o({close:u}),(t,o)=>(e.openBlock(),e.createElementBlock("div",e.normalizeProps(e.guardReactiveProps(e.unref(a))),[t.$slots.header||t.$slots.title||t.$slots.close||t.$slots["title::before"]||t.$slots["title::after"]||t.title||e.unref(s)||t.dismissable||t.autoClose?(e.openBlock(),e.createElementBlock("div",$,[e.unref(s)?(e.openBlock(),e.createBlock(k,e.mergeProps({key:0},e.unref(s),{class:"vv-alert__icon"}),null,16)):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"header",{},(()=>[e.renderSlot(t.$slots,"title::before"),t.$slots.title||t.title?(e.openBlock(),e.createElementBlock("strong",{key:0,id:e.unref(i),class:"vv-alert__title"},[e.renderSlot(t.$slots,"title",{},(()=>[e.createTextVNode(e.toDisplayString(t.title),1)]))],8,S)):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"title::after")])),e.renderSlot(t.$slots,"close",e.normalizeProps(e.guardReactiveProps({close:e.unref(u)})),(()=>[t.dismissable||t.autoClose?(e.openBlock(),e.createElementBlock("button",{key:0,class:"vv-alert__close",type:"button","aria-label":t.closeLabel,onClick:o[0]||(o[0]=e.withModifiers(((...t)=>e.unref(u)&&e.unref(u)(...t)),["stop"]))},o[1]||(o[1]=[e.createElementVNode("div",{class:"vv-alert__close-mask"},null,-1)]),8,B)):e.createCommentVNode("v-if",!0)]))])):e.createCommentVNode("v-if",!0),t.$slots.default||t.content?(e.openBlock(),e.createElementBlock("div",C,[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.content),1)]))])):e.createCommentVNode("v-if",!0),t.$slots.footer||t.footer?(e.openBlock(),e.createElementBlock("div",w,[e.renderSlot(t.$slots,"footer",{},(()=>[e.createTextVNode(e.toDisplayString(t.footer),1)]))])):e.createCommentVNode("v-if",!0)],16))}});return e.defineComponent({name:"VvAlertGroup",props:b,emits:["close","beforeEnter","afterLeave","enter","afterEnter","enterCancelled","beforeLeave","leave","leaveCancelled"],setup(t,{emit:o}){const l=t,r=o,{hasProps:n,hasTransition:a}=h(l,r),i={"before-enter":()=>{r("beforeEnter")},"after-leave":()=>{r("afterLeave")},enter:()=>{r("enter")},"after-enter":()=>{r("afterEnter")},"enter-cancelled":()=>{r("enterCancelled")},"before-leave":()=>{r("beforeLeave")},leave:()=>{r("leave")},"leave-cancelled":()=>{r("leaveCancelled")}};return(t,o)=>(e.openBlock(),e.createElementBlock("div",e.normalizeProps(e.guardReactiveProps(e.unref(n))),[e.renderSlot(t.$slots,"before"),e.createVNode(e.TransitionGroup,e.mergeProps({tag:"div",role:"group",name:e.unref(a),class:"vv-alert-group__list"},e.toHandlers(i)),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(t=>(e.openBlock(),e.createBlock(x,e.mergeProps({ref_for:!0},t,{key:t.id}),null,16)))),128))]))])),_:3},16,["name"]),e.renderSlot(t.$slots,"after")],16))}})}));
|
|
@@ -40,6 +40,10 @@ const INJECTION_KEY_DROPDOWN_TRIGGER = Symbol.for(
|
|
|
40
40
|
const INJECTION_KEY_DROPDOWN_ACTION = Symbol.for(
|
|
41
41
|
"dropdownAction"
|
|
42
42
|
);
|
|
43
|
+
const VvIconPropsDefaults = {
|
|
44
|
+
prefix: "normal"
|
|
45
|
+
/* normal */
|
|
46
|
+
};
|
|
43
47
|
const LinkProps = {
|
|
44
48
|
/**
|
|
45
49
|
* The router-link/nuxt-link property, if it is defined the button is rendered as a ruouter-link or nuxt-link.
|
|
@@ -480,10 +484,6 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
480
484
|
};
|
|
481
485
|
}
|
|
482
486
|
});
|
|
483
|
-
const VvIconPropsDefaults = {
|
|
484
|
-
prefix: "normal"
|
|
485
|
-
/* normal */
|
|
486
|
-
};
|
|
487
487
|
function useModifiers(prefix, modifiers, others) {
|
|
488
488
|
return computed(() => {
|
|
489
489
|
const toReturn = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("vue"),require("@iconify/vue")):"function"==typeof define&&define.amd?define(["vue","@iconify/vue"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).VvButton=o(e.vue,e.vue$1)}(this,(function(e,o){"use strict";var t=(e=>(e.local="local",e.session="session",e))(t||{}),n=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(n||{}),l=(e=>(e.before="before",e.after="after",e))(l||{}),r=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(r||{}),i=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(i||{});const u=Symbol.for("volver"),a=Symbol.for("buttonGroup"),d=Symbol.for("dropdownTrigger"),s=Symbol.for("dropdownAction"),c={to:{type:[String,Object]},href:String,target:String,rel:{type:String,default:"noopener noreferrer"}},v={loading:{type:Boolean,default:!1},loadingLabel:{type:String,default:"Loading..."}},f={disabled:{type:Boolean,default:!1}},p={active:{type:Boolean,default:!1}},m={current:{type:Boolean,default:!1}},g={pressed:{type:Boolean,default:!1}},b={label:{type:[String,Number],default:void 0}},y={modifiers:{type:[String,Array],default:void 0}},h={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:l.before,validation:e=>Object.values(l).includes(e)}},k={unselectable:{type:Boolean,default:!0}},S={id:[String,Number]};n.bottom;const B={...f,...b,...g,...p,...m,...c,type:{type:String,default:r.button,validator:e=>Object.values(r).includes(e)},ariaLabel:{type:String,default:void 0},defaultTag:{type:String,default:i.button}};t.local;const $={...B,...S,...y,...k,...v,...h,iconPosition:{type:String,default:n.left,validator:e=>Object.values(n).includes(e)},loadingIcon:{type:String,default:"eos-icons:bubble-loading"},toggle:{type:Boolean,default:!1},value:{type:[String,Number,Boolean],default:void 0},uncheckedValue:{type:[String,Number,Boolean],default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0}};function w(o,t){const{group:n,isInGroup:l,getGroupOrLocalRef:r}=function(o){const t=e.inject(o,void 0),n=e.computed((()=>void 0!==t));return{group:t,isInGroup:n,getGroupOrLocalRef:function(o,n,l){const r=null==t?void 0:t[o];if(r)return e.computed({get:()=>r.value,set(e){r.value=e}});const i=e.toRef(n,o);return e.computed({get:()=>i.value,set(e){l&&l(`update:${o}`,e)}})}}}(a),{id:i,iconPosition:u,icon:d,label:s,pressed:c}=e.toRefs(o),v=r("modelValue",o,t),f=r("toggle",o),p=r("unselectable",o),m=e.computed((()=>(null==n?void 0:n.multiple.value)??!1)),g=e.computed((()=>{let e=o.modifiers,t=null==n?void 0:n.modifiers.value;const l=new Set;return e&&(Array.isArray(e)||(e=e.split(" ")),e.forEach((e=>l.add(e)))),t&&(Array.isArray(t)||(t=t.split(" ")),t.forEach((e=>l.add(e)))),Array.from(l)})),b=e.computed((()=>Boolean(o.disabled||(null==n?void 0:n.disabled.value))));return{group:n,isInGroup:l,modelValue:v,toggle:f,unselectable:p,multiple:m,modifiers:g,disabled:b,id:i,pressed:c,iconPosition:u,icon:d,label:s}}const x=B;function L(){return e.inject(u,void 0)}const A=e.defineComponent({name:"VvAction",props:x,emits:["click","mouseover","mouseleave"],setup(o,{expose:t,emit:n}){const l=o,r=n,u=e.getCurrentInstance(),a=L(),c=e.ref(null);t({$el:c});const{reference:v,bus:f,aria:p,expanded:m}=e.inject(d,{});e.watch((()=>c.value),(e=>{v&&(v.value=e)}));const g=e.computed((()=>l.pressed||(null==m?void 0:m.value))),{role:b}=e.inject(s,{}),y=e.computed((()=>{switch(!0){case l.disabled:return i.button;case void 0!==l.to:return(null==a?void 0:a.nuxt)?e.resolveComponent(i.nuxtLink):i.routerLink;case void 0!==l.href:return i.a;default:return l.defaultTag}})),h=e.computed((()=>{const e={...null==p?void 0:p.value,ariaPressed:!!g.value||void 0,ariaLabel:l.ariaLabel,role:null==b?void 0:b.value};switch(y.value){case i.a:return{...e,href:l.href,target:l.target,rel:l.rel};case i.routerLink:case i.nuxtLink:return{...e,to:l.to,target:l.target};case i.button:return{...e,type:l.type,disabled:l.disabled};default:return e}}));function k(e){var o;l.disabled?e.preventDefault():(null==(o=null==u?void 0:u.vnode.props)?void 0:o.onClick)?r("click",e):null==f||f.emit("click",e)}function S(e){var o;(null==(o=null==u?void 0:u.vnode.props)?void 0:o.onMouseover)?r("mouseover",e):null==f||f.emit("mouseover",e)}function B(e){var o;(null==(o=null==u?void 0:u.vnode.props)?void 0:o.onMouseleave)?r("mouseleave",e):null==f||f.emit("mouseleave",e)}return(o,t)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(y)),e.mergeProps(e.unref(h),{ref_key:"element",ref:c,class:{active:o.active,pressed:e.unref(g),disabled:o.disabled,current:o.current},onClickPassive:k,onMouseoverPassive:S,onMouseleavePassive:B}),{default:e.withCtx((()=>[e.renderSlot(o.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(o.label),1)]))])),_:3},16,["class"]))}}),I={prefix:"normal"};function V(o,t,n){return e.computed((()=>{const l={[o]:!0},r="string"==typeof(null==t?void 0:t.value)?t.value.split(" "):null==t?void 0:t.value;return r&&Array.isArray(r)&&r.forEach((e=>{e&&(l[`${o}--${e}`]=!0)})),n&&Object.keys(n.value).forEach((t=>{l[`${o}--${t}`]=e.unref(n.value[t])})),l}))}const N=e.defineComponent({name:"VvIcon",props:e.mergeDefaults({name:{},color:{},width:{},height:{},provider:{},prefix:{},src:{},horizontalFlip:{type:Boolean},verticalFlip:{type:Boolean},flip:{},mode:{},inline:{type:Boolean},rotate:{},onLoad:{type:Function},svg:{},modifiers:{}},I),setup(t){const n=t,l=e.computed((()=>"string"==typeof n.rotate?Number.parseFloat(n.rotate):n.rotate)),r=e.ref(!0),i=L(),{modifiers:u}=e.toRefs(n),a=V("vv-icon",u),d=e.computed((()=>n.provider||(null==i?void 0:i.iconsProvider))),s=e.computed((()=>{const e=n.name??"",t=`@${d.value}:${n.prefix}:${e}`;if(o.iconLoaded(t))return t;const l=null==i?void 0:i.iconsCollections.find((t=>{const n=`@${d.value}:${t.prefix}:${e}`;return o.iconLoaded(n)}));return l?`@${d.value}:${l.prefix}:${e}`:e}));function c(e){const t=function(e){let o;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");o=(new e).window}return(o?new o.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),l=(null==t?void 0:t.innerHTML.trim())||"";t&&l&&o.addIcon(`@${d.value}:${n.prefix}:${n.name}`,{body:l,height:t.viewBox.baseVal.height,width:t.viewBox.baseVal.width})}return i&&n.src&&!o.iconLoaded(`@${d.value}:${n.prefix}:${n.name}`)&&(r.value=!1,i.fetchIcon(n.src).then((e=>{e&&(c(e),r.value=!0)})).catch((e=>{throw new Error(`Error during fetch icon: ${null==e?void 0:e.message}`)}))),n.svg&&c(n.svg),(t,n)=>e.unref(r)?(e.openBlock(),e.createBlock(e.unref(o.Icon),e.mergeProps({key:0,class:e.unref(a)},{inline:t.inline,width:t.width,height:t.height,horizontalFlip:t.horizontalFlip,verticalFlip:t.verticalFlip,flip:t.flip,rotate:e.unref(l),color:t.color,icon:e.unref(s)},{onLoad:t.onLoad}),null,16,["class","onLoad"])):e.createCommentVNode("v-if",!0)}});function j(e,o,t){return C(e,o)}function C(e,o){if(e===o)return!0;if(e&&o&&"object"==typeof e&&"object"==typeof o){const t=Array.isArray(e),n=Array.isArray(o);let l,r,i;if(t&&n){if(r=e.length,r!==o.length)return!1;for(l=r;0!==l--;)if(!C(e[l],o[l]))return!1;return!0}if(t!==n)return!1;const u=e instanceof Date,a=o instanceof Date;if(u!==a)return!1;if(u&&a)return e.getTime()===o.getTime();const d=e instanceof RegExp,s=o instanceof RegExp;if(d!==s)return!1;if(d&&s)return e.toString()===o.toString();const c=Object.keys(e);if(r=c.length,r!==Object.keys(o).length)return!1;for(l=r;0!==l--;)if(!Object.prototype.hasOwnProperty.call(o,c[l]))return!1;for(l=r;0!==l--;)if(i=c[l],!C(e[i],o[i]))return!1;return!0}return Number.isNaN(e)&&Number.isNaN(o)}function P(e,o){if(null!=e&&o&&o.length)for(const t of o)if(j(e,t))return!0;return!1}const O={key:1,class:"vv-button__label"},_={key:1,class:"vv-button__label"};return e.defineComponent({name:"VvButton",inheritAttrs:!1,props:$,emits:["update:modelValue"],setup(o,{expose:t,emit:r}){const i=o,u=r,a=e.useAttrs(),d=e.useSlots(),{id:s,modifiers:c,iconPosition:v,icon:f,label:p,modelValue:m,disabled:g,toggle:b,unselectable:y}=w(i,u),h=function(o){return e.computed((()=>String((null==o?void 0:o.value)||e.useId())))}(s),k=e.computed((()=>(null==a?void 0:a.name)||h.value)),S=e.ref(null);t({$el:e.computed((()=>{var e;return null==(e=S.value)?void 0:e.$el}))});const B=e.computed((()=>b.value?Array.isArray(m.value)?P(k.value,m.value):j(k.value,m.value):i.pressed)),$=V("vv-button",c,e.computed((()=>({reverse:[n.right,n.bottom].includes(v.value),column:[n.top,n.bottom].includes(v.value),"icon-only":Boolean((null==f?void 0:f.value)&&!(null==p?void 0:p.value)&&!d.default)})))),{hasIcon:x}=function(o,t){const r=e.computed((()=>"string"==typeof(null==o?void 0:o.value)?{name:null==o?void 0:o.value}:null==o?void 0:o.value)),i=e.computed((()=>(null==t?void 0:t.value)===l.before?r.value:void 0)),u=e.computed((()=>(null==t?void 0:t.value)===l.after?r.value:void 0)),a=e.computed((()=>(null==t?void 0:t.value)===n.left?r.value:void 0)),d=e.computed((()=>(null==t?void 0:t.value)===n.right?r.value:void 0)),s=e.computed((()=>(null==t?void 0:t.value)===n.top?r.value:void 0)),c=e.computed((()=>(null==t?void 0:t.value)===n.bottom?r.value:void 0));return{hasIcon:r,hasIconLeft:a,hasIconRight:d,hasIconTop:s,hasIconBottom:c,hasIconBefore:i,hasIconAfter:u}}(f),L=e.computed((()=>void 0!==i.value?i.value:k.value)),I=e.computed((()=>{if(b.value)return{onClick:C}}));function C(){if(b.value){if(Array.isArray(m.value))return P(L.value,m.value)?void(y.value&&(m.value=m.value.filter((e=>e!==L.value)))):void m.value.push(L.value);if(L.value===m.value&&y.value)return void(m.value=i.uncheckedValue);m.value=L.value}}return(o,t)=>(e.openBlock(),e.createBlock(A,e.mergeProps({...e.unref(a),...e.unref(I),disabled:e.unref(g),pressed:e.unref(B),active:o.active,type:o.type,to:o.to,href:o.href,target:o.target,rel:o.rel,ariaLabel:o.ariaLabel},{id:e.unref(h),ref_key:"element",ref:S,class:e.unref($)}),{default:e.withCtx((()=>[e.renderSlot(o.$slots,"default",{},(()=>[o.loading?e.renderSlot(o.$slots,"loading",{key:0},(()=>[o.loadingIcon?(e.openBlock(),e.createBlock(N,{key:0,class:"vv-button__loading-icon",name:o.loadingIcon},null,8,["name"])):e.createCommentVNode("v-if",!0),o.loadingLabel?(e.openBlock(),e.createElementBlock("span",O,e.toDisplayString(o.loadingLabel),1)):e.createCommentVNode("v-if",!0)])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.renderSlot(o.$slots,"before"),e.unref(x)?(e.openBlock(),e.createBlock(N,e.mergeProps({key:0},e.unref(x),{class:"vv-button__icon"}),null,16)):e.createCommentVNode("v-if",!0),e.unref(p)?(e.openBlock(),e.createElementBlock("span",_,[e.renderSlot(o.$slots,"label",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(p)),1)]))])):e.createCommentVNode("v-if",!0),e.renderSlot(o.$slots,"after")],64))]))])),_:3},16,["id","class"]))}})}));
|
|
1
|
+
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("vue"),require("@iconify/vue")):"function"==typeof define&&define.amd?define(["vue","@iconify/vue"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).VvButton=o(e.vue,e.vue$1)}(this,(function(e,o){"use strict";var t=(e=>(e.local="local",e.session="session",e))(t||{}),n=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(n||{}),l=(e=>(e.before="before",e.after="after",e))(l||{}),r=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(r||{}),i=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(i||{});const u=Symbol.for("volver"),a=Symbol.for("buttonGroup"),d=Symbol.for("dropdownTrigger"),s=Symbol.for("dropdownAction"),c={prefix:"normal"},v={to:{type:[String,Object]},href:String,target:String,rel:{type:String,default:"noopener noreferrer"}},f={loading:{type:Boolean,default:!1},loadingLabel:{type:String,default:"Loading..."}},p={disabled:{type:Boolean,default:!1}},m={active:{type:Boolean,default:!1}},g={current:{type:Boolean,default:!1}},b={pressed:{type:Boolean,default:!1}},y={label:{type:[String,Number],default:void 0}},h={modifiers:{type:[String,Array],default:void 0}},k={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:l.before,validation:e=>Object.values(l).includes(e)}},S={unselectable:{type:Boolean,default:!0}},B={id:[String,Number]};n.bottom;const $={...p,...y,...b,...m,...g,...v,type:{type:String,default:r.button,validator:e=>Object.values(r).includes(e)},ariaLabel:{type:String,default:void 0},defaultTag:{type:String,default:i.button}};t.local;const w={...$,...B,...h,...S,...f,...k,iconPosition:{type:String,default:n.left,validator:e=>Object.values(n).includes(e)},loadingIcon:{type:String,default:"eos-icons:bubble-loading"},toggle:{type:Boolean,default:!1},value:{type:[String,Number,Boolean],default:void 0},uncheckedValue:{type:[String,Number,Boolean],default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0}};function x(o,t){const{group:n,isInGroup:l,getGroupOrLocalRef:r}=function(o){const t=e.inject(o,void 0),n=e.computed((()=>void 0!==t));return{group:t,isInGroup:n,getGroupOrLocalRef:function(o,n,l){const r=null==t?void 0:t[o];if(r)return e.computed({get:()=>r.value,set(e){r.value=e}});const i=e.toRef(n,o);return e.computed({get:()=>i.value,set(e){l&&l(`update:${o}`,e)}})}}}(a),{id:i,iconPosition:u,icon:d,label:s,pressed:c}=e.toRefs(o),v=r("modelValue",o,t),f=r("toggle",o),p=r("unselectable",o),m=e.computed((()=>(null==n?void 0:n.multiple.value)??!1)),g=e.computed((()=>{let e=o.modifiers,t=null==n?void 0:n.modifiers.value;const l=new Set;return e&&(Array.isArray(e)||(e=e.split(" ")),e.forEach((e=>l.add(e)))),t&&(Array.isArray(t)||(t=t.split(" ")),t.forEach((e=>l.add(e)))),Array.from(l)})),b=e.computed((()=>Boolean(o.disabled||(null==n?void 0:n.disabled.value))));return{group:n,isInGroup:l,modelValue:v,toggle:f,unselectable:p,multiple:m,modifiers:g,disabled:b,id:i,pressed:c,iconPosition:u,icon:d,label:s}}const L=$;function A(){return e.inject(u,void 0)}const I=e.defineComponent({name:"VvAction",props:L,emits:["click","mouseover","mouseleave"],setup(o,{expose:t,emit:n}){const l=o,r=n,u=e.getCurrentInstance(),a=A(),c=e.ref(null);t({$el:c});const{reference:v,bus:f,aria:p,expanded:m}=e.inject(d,{});e.watch((()=>c.value),(e=>{v&&(v.value=e)}));const g=e.computed((()=>l.pressed||(null==m?void 0:m.value))),{role:b}=e.inject(s,{}),y=e.computed((()=>{switch(!0){case l.disabled:return i.button;case void 0!==l.to:return(null==a?void 0:a.nuxt)?e.resolveComponent(i.nuxtLink):i.routerLink;case void 0!==l.href:return i.a;default:return l.defaultTag}})),h=e.computed((()=>{const e={...null==p?void 0:p.value,ariaPressed:!!g.value||void 0,ariaLabel:l.ariaLabel,role:null==b?void 0:b.value};switch(y.value){case i.a:return{...e,href:l.href,target:l.target,rel:l.rel};case i.routerLink:case i.nuxtLink:return{...e,to:l.to,target:l.target};case i.button:return{...e,type:l.type,disabled:l.disabled};default:return e}}));function k(e){var o;l.disabled?e.preventDefault():(null==(o=null==u?void 0:u.vnode.props)?void 0:o.onClick)?r("click",e):null==f||f.emit("click",e)}function S(e){var o;(null==(o=null==u?void 0:u.vnode.props)?void 0:o.onMouseover)?r("mouseover",e):null==f||f.emit("mouseover",e)}function B(e){var o;(null==(o=null==u?void 0:u.vnode.props)?void 0:o.onMouseleave)?r("mouseleave",e):null==f||f.emit("mouseleave",e)}return(o,t)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(y)),e.mergeProps(e.unref(h),{ref_key:"element",ref:c,class:{active:o.active,pressed:e.unref(g),disabled:o.disabled,current:o.current},onClickPassive:k,onMouseoverPassive:S,onMouseleavePassive:B}),{default:e.withCtx((()=>[e.renderSlot(o.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(o.label),1)]))])),_:3},16,["class"]))}});function V(o,t,n){return e.computed((()=>{const l={[o]:!0},r="string"==typeof(null==t?void 0:t.value)?t.value.split(" "):null==t?void 0:t.value;return r&&Array.isArray(r)&&r.forEach((e=>{e&&(l[`${o}--${e}`]=!0)})),n&&Object.keys(n.value).forEach((t=>{l[`${o}--${t}`]=e.unref(n.value[t])})),l}))}const N=e.defineComponent({name:"VvIcon",props:e.mergeDefaults({name:{},color:{},width:{},height:{},provider:{},prefix:{},src:{},horizontalFlip:{type:Boolean},verticalFlip:{type:Boolean},flip:{},mode:{},inline:{type:Boolean},rotate:{},onLoad:{type:Function},svg:{},modifiers:{}},c),setup(t){const n=t,l=e.computed((()=>"string"==typeof n.rotate?Number.parseFloat(n.rotate):n.rotate)),r=e.ref(!0),i=A(),{modifiers:u}=e.toRefs(n),a=V("vv-icon",u),d=e.computed((()=>n.provider||(null==i?void 0:i.iconsProvider))),s=e.computed((()=>{const e=n.name??"",t=`@${d.value}:${n.prefix}:${e}`;if(o.iconLoaded(t))return t;const l=null==i?void 0:i.iconsCollections.find((t=>{const n=`@${d.value}:${t.prefix}:${e}`;return o.iconLoaded(n)}));return l?`@${d.value}:${l.prefix}:${e}`:e}));function c(e){const t=function(e){let o;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");o=(new e).window}return(o?new o.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),l=(null==t?void 0:t.innerHTML.trim())||"";t&&l&&o.addIcon(`@${d.value}:${n.prefix}:${n.name}`,{body:l,height:t.viewBox.baseVal.height,width:t.viewBox.baseVal.width})}return i&&n.src&&!o.iconLoaded(`@${d.value}:${n.prefix}:${n.name}`)&&(r.value=!1,i.fetchIcon(n.src).then((e=>{e&&(c(e),r.value=!0)})).catch((e=>{throw new Error(`Error during fetch icon: ${null==e?void 0:e.message}`)}))),n.svg&&c(n.svg),(t,n)=>e.unref(r)?(e.openBlock(),e.createBlock(e.unref(o.Icon),e.mergeProps({key:0,class:e.unref(a)},{inline:t.inline,width:t.width,height:t.height,horizontalFlip:t.horizontalFlip,verticalFlip:t.verticalFlip,flip:t.flip,rotate:e.unref(l),color:t.color,icon:e.unref(s)},{onLoad:t.onLoad}),null,16,["class","onLoad"])):e.createCommentVNode("v-if",!0)}});function j(e,o,t){return C(e,o)}function C(e,o){if(e===o)return!0;if(e&&o&&"object"==typeof e&&"object"==typeof o){const t=Array.isArray(e),n=Array.isArray(o);let l,r,i;if(t&&n){if(r=e.length,r!==o.length)return!1;for(l=r;0!==l--;)if(!C(e[l],o[l]))return!1;return!0}if(t!==n)return!1;const u=e instanceof Date,a=o instanceof Date;if(u!==a)return!1;if(u&&a)return e.getTime()===o.getTime();const d=e instanceof RegExp,s=o instanceof RegExp;if(d!==s)return!1;if(d&&s)return e.toString()===o.toString();const c=Object.keys(e);if(r=c.length,r!==Object.keys(o).length)return!1;for(l=r;0!==l--;)if(!Object.prototype.hasOwnProperty.call(o,c[l]))return!1;for(l=r;0!==l--;)if(i=c[l],!C(e[i],o[i]))return!1;return!0}return Number.isNaN(e)&&Number.isNaN(o)}function P(e,o){if(null!=e&&o&&o.length)for(const t of o)if(j(e,t))return!0;return!1}const O={key:1,class:"vv-button__label"},_={key:1,class:"vv-button__label"};return e.defineComponent({name:"VvButton",inheritAttrs:!1,props:w,emits:["update:modelValue"],setup(o,{expose:t,emit:r}){const i=o,u=r,a=e.useAttrs(),d=e.useSlots(),{id:s,modifiers:c,iconPosition:v,icon:f,label:p,modelValue:m,disabled:g,toggle:b,unselectable:y}=x(i,u),h=function(o){return e.computed((()=>String((null==o?void 0:o.value)||e.useId())))}(s),k=e.computed((()=>(null==a?void 0:a.name)||h.value)),S=e.ref(null);t({$el:e.computed((()=>{var e;return null==(e=S.value)?void 0:e.$el}))});const B=e.computed((()=>b.value?Array.isArray(m.value)?P(k.value,m.value):j(k.value,m.value):i.pressed)),$=V("vv-button",c,e.computed((()=>({reverse:[n.right,n.bottom].includes(v.value),column:[n.top,n.bottom].includes(v.value),"icon-only":Boolean((null==f?void 0:f.value)&&!(null==p?void 0:p.value)&&!d.default)})))),{hasIcon:w}=function(o,t){const r=e.computed((()=>"string"==typeof(null==o?void 0:o.value)?{name:null==o?void 0:o.value}:null==o?void 0:o.value)),i=e.computed((()=>(null==t?void 0:t.value)===l.before?r.value:void 0)),u=e.computed((()=>(null==t?void 0:t.value)===l.after?r.value:void 0)),a=e.computed((()=>(null==t?void 0:t.value)===n.left?r.value:void 0)),d=e.computed((()=>(null==t?void 0:t.value)===n.right?r.value:void 0)),s=e.computed((()=>(null==t?void 0:t.value)===n.top?r.value:void 0)),c=e.computed((()=>(null==t?void 0:t.value)===n.bottom?r.value:void 0));return{hasIcon:r,hasIconLeft:a,hasIconRight:d,hasIconTop:s,hasIconBottom:c,hasIconBefore:i,hasIconAfter:u}}(f),L=e.computed((()=>void 0!==i.value?i.value:k.value)),A=e.computed((()=>{if(b.value)return{onClick:C}}));function C(){if(b.value){if(Array.isArray(m.value))return P(L.value,m.value)?void(y.value&&(m.value=m.value.filter((e=>e!==L.value)))):void m.value.push(L.value);if(L.value===m.value&&y.value)return void(m.value=i.uncheckedValue);m.value=L.value}}return(o,t)=>(e.openBlock(),e.createBlock(I,e.mergeProps({...e.unref(a),...e.unref(A),disabled:e.unref(g),pressed:e.unref(B),active:o.active,type:o.type,to:o.to,href:o.href,target:o.target,rel:o.rel,ariaLabel:o.ariaLabel},{id:e.unref(h),ref_key:"element",ref:S,class:e.unref($)}),{default:e.withCtx((()=>[e.renderSlot(o.$slots,"default",{},(()=>[o.loading?e.renderSlot(o.$slots,"loading",{key:0},(()=>[o.loadingIcon?(e.openBlock(),e.createBlock(N,{key:0,class:"vv-button__loading-icon",name:o.loadingIcon},null,8,["name"])):e.createCommentVNode("v-if",!0),o.loadingLabel?(e.openBlock(),e.createElementBlock("span",O,e.toDisplayString(o.loadingLabel),1)):e.createCommentVNode("v-if",!0)])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.renderSlot(o.$slots,"before"),e.unref(w)?(e.openBlock(),e.createBlock(N,e.mergeProps({key:0},e.unref(w),{class:"vv-button__icon"}),null,16)):e.createCommentVNode("v-if",!0),e.unref(p)?(e.openBlock(),e.createElementBlock("span",_,[e.renderSlot(o.$slots,"label",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(p)),1)]))])):e.createCommentVNode("v-if",!0),e.renderSlot(o.$slots,"after")],64))]))])),_:3},16,["id","class"]))}})}));
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import { computed, isRef, defineComponent, h, inject, unref, mergeDefaults, ref, toRefs, createBlock, createCommentVNode, openBlock, mergeProps, createElementBlock, normalizeClass, renderSlot, createTextVNode, toDisplayString, toRef, getCurrentInstance, watch, resolveComponent, resolveDynamicComponent, withCtx, useId, useAttrs, useSlots, Fragment, provide, onMounted,
|
|
1
|
+
import { computed, isRef, defineComponent, h, inject, unref, mergeDefaults, ref, toRefs, createBlock, createCommentVNode, openBlock, mergeProps, createElementBlock, normalizeClass, renderSlot, createTextVNode, toDisplayString, toRef, getCurrentInstance, watch, resolveComponent, resolveDynamicComponent, withCtx, useId, useAttrs, useSlots, Fragment, provide, onMounted, createVNode, normalizeProps, guardReactiveProps, Transition, toHandlers, withDirectives, createElementVNode, normalizeStyle, vShow, nextTick, renderList, vModelSelect, createSlots, withModifiers, withKeys, vModelText } from "vue";
|
|
2
2
|
import { iconLoaded, Icon, addIcon } from "@iconify/vue";
|
|
3
3
|
import { autoPlacement, flip, shift, size, offset, arrow, useFloating, autoUpdate } from "@floating-ui/vue";
|
|
4
4
|
import { useMutationObserver, useVModel, onClickOutside, useFocusWithin, useElementHover, onKeyStroke, useFocus, useElementVisibility, refDebounced, computedAsync } from "@vueuse/core";
|
|
5
5
|
import mitt from "mitt";
|
|
6
6
|
import { get } from "ts-dot-prop";
|
|
7
|
+
const ACTION_ICONS = {
|
|
8
|
+
clear: "close"
|
|
9
|
+
};
|
|
10
|
+
const VvIconPropsDefaults = {
|
|
11
|
+
prefix: "normal"
|
|
12
|
+
/* normal */
|
|
13
|
+
};
|
|
7
14
|
var StorageType = /* @__PURE__ */ ((StorageType2) => {
|
|
8
15
|
StorageType2["local"] = "local";
|
|
9
16
|
StorageType2["session"] = "session";
|
|
@@ -187,6 +194,30 @@ const CurrentProps = {
|
|
|
187
194
|
default: false
|
|
188
195
|
}
|
|
189
196
|
};
|
|
197
|
+
const ClearProps = {
|
|
198
|
+
/**
|
|
199
|
+
* If true, the clear button will be shown
|
|
200
|
+
*/
|
|
201
|
+
showClearAction: {
|
|
202
|
+
type: Boolean,
|
|
203
|
+
default: false
|
|
204
|
+
},
|
|
205
|
+
/**
|
|
206
|
+
* VvIcon name for clear button
|
|
207
|
+
* @see VvIcon
|
|
208
|
+
*/
|
|
209
|
+
iconClear: {
|
|
210
|
+
type: [String, Object],
|
|
211
|
+
default: ACTION_ICONS.clear
|
|
212
|
+
},
|
|
213
|
+
/**
|
|
214
|
+
* Label for clear button
|
|
215
|
+
*/
|
|
216
|
+
labelClear: {
|
|
217
|
+
type: String,
|
|
218
|
+
default: "Clear"
|
|
219
|
+
}
|
|
220
|
+
};
|
|
190
221
|
const PressedProps = {
|
|
191
222
|
/**
|
|
192
223
|
* Whether the item is pressed
|
|
@@ -449,13 +480,6 @@ const ActionProps = {
|
|
|
449
480
|
default: StorageType.local
|
|
450
481
|
}
|
|
451
482
|
});
|
|
452
|
-
const ACTION_ICONS = {
|
|
453
|
-
clear: "close"
|
|
454
|
-
};
|
|
455
|
-
const VvIconPropsDefaults = {
|
|
456
|
-
prefix: "normal"
|
|
457
|
-
/* normal */
|
|
458
|
-
};
|
|
459
483
|
const VvComboboxProps = {
|
|
460
484
|
...IdNameProps,
|
|
461
485
|
...TabindexProps,
|
|
@@ -472,6 +496,7 @@ const VvComboboxProps = {
|
|
|
472
496
|
...DropdownProps,
|
|
473
497
|
...LabelProps,
|
|
474
498
|
...RequiredProps,
|
|
499
|
+
...ClearProps,
|
|
475
500
|
/**
|
|
476
501
|
* Dropdown show / hide transition name
|
|
477
502
|
*/
|
|
@@ -510,6 +535,10 @@ const VvComboboxProps = {
|
|
|
510
535
|
* Label for deselected option hint
|
|
511
536
|
*/
|
|
512
537
|
deselectHintLabel: { type: String, default: "Press enter to remove" },
|
|
538
|
+
/**
|
|
539
|
+
* Label for add new option hint
|
|
540
|
+
*/
|
|
541
|
+
addOptionHintLabel: { type: String, default: "Press enter to add" },
|
|
513
542
|
/**
|
|
514
543
|
* Label close button
|
|
515
544
|
*/
|
|
@@ -518,6 +547,10 @@ const VvComboboxProps = {
|
|
|
518
547
|
* Select input placeholder
|
|
519
548
|
*/
|
|
520
549
|
placeholder: String,
|
|
550
|
+
/**
|
|
551
|
+
* The options to add new options
|
|
552
|
+
*/
|
|
553
|
+
addable: Boolean,
|
|
521
554
|
/**
|
|
522
555
|
* Use input text to search on options
|
|
523
556
|
*/
|
|
@@ -623,21 +656,6 @@ const VvComboboxProps = {
|
|
|
623
656
|
focusOnHover: {
|
|
624
657
|
type: Boolean,
|
|
625
658
|
default: true
|
|
626
|
-
},
|
|
627
|
-
/**
|
|
628
|
-
* VvIcon name for clear button
|
|
629
|
-
* @see VvIcon
|
|
630
|
-
*/
|
|
631
|
-
iconClear: {
|
|
632
|
-
type: [String, Object],
|
|
633
|
-
default: ACTION_ICONS.clear
|
|
634
|
-
},
|
|
635
|
-
/**
|
|
636
|
-
* Label for clear button
|
|
637
|
-
*/
|
|
638
|
-
labelClear: {
|
|
639
|
-
type: String,
|
|
640
|
-
default: "Clear"
|
|
641
659
|
}
|
|
642
660
|
};
|
|
643
661
|
function useVvComboboxProps() {
|
|
@@ -1832,27 +1850,6 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
1832
1850
|
function init(el) {
|
|
1833
1851
|
referenceEl.value = el;
|
|
1834
1852
|
}
|
|
1835
|
-
__expose({
|
|
1836
|
-
toggle,
|
|
1837
|
-
show,
|
|
1838
|
-
hide,
|
|
1839
|
-
init,
|
|
1840
|
-
customPosition: hasCustomPosition
|
|
1841
|
-
});
|
|
1842
|
-
watch(expanded, (newValue) => {
|
|
1843
|
-
if (newValue && props.autofocusFirst) {
|
|
1844
|
-
nextTick(() => {
|
|
1845
|
-
const focusableElements = getKeyboardFocusableElements(
|
|
1846
|
-
floatingEl.value
|
|
1847
|
-
);
|
|
1848
|
-
if (focusableElements.length > 0) {
|
|
1849
|
-
focusableElements[0].focus({
|
|
1850
|
-
preventScroll: true
|
|
1851
|
-
});
|
|
1852
|
-
}
|
|
1853
|
-
});
|
|
1854
|
-
}
|
|
1855
|
-
});
|
|
1856
1853
|
onClickOutside(
|
|
1857
1854
|
floatingEl,
|
|
1858
1855
|
() => {
|
|
@@ -1899,6 +1896,30 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
1899
1896
|
(el) => !el.hasAttribute("disabled") && !el.getAttribute("aria-hidden")
|
|
1900
1897
|
);
|
|
1901
1898
|
}
|
|
1899
|
+
function focusFirst() {
|
|
1900
|
+
nextTick(() => {
|
|
1901
|
+
const focusableElements = getKeyboardFocusableElements(
|
|
1902
|
+
floatingEl.value
|
|
1903
|
+
);
|
|
1904
|
+
if (focusableElements.length > 0) {
|
|
1905
|
+
focusableElements[0].focus({
|
|
1906
|
+
preventScroll: true
|
|
1907
|
+
});
|
|
1908
|
+
}
|
|
1909
|
+
});
|
|
1910
|
+
}
|
|
1911
|
+
function focusFirstListElement() {
|
|
1912
|
+
nextTick(() => {
|
|
1913
|
+
const focusableElements = getKeyboardFocusableElements(
|
|
1914
|
+
listEl.value
|
|
1915
|
+
);
|
|
1916
|
+
if (focusableElements.length > 0) {
|
|
1917
|
+
focusableElements[0].focus({
|
|
1918
|
+
preventScroll: true
|
|
1919
|
+
});
|
|
1920
|
+
}
|
|
1921
|
+
});
|
|
1922
|
+
}
|
|
1902
1923
|
function focusNext() {
|
|
1903
1924
|
nextTick(() => {
|
|
1904
1925
|
if (focused.value) {
|
|
@@ -1947,6 +1968,22 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
1947
1968
|
}
|
|
1948
1969
|
});
|
|
1949
1970
|
}
|
|
1971
|
+
watch(expanded, (newValue) => {
|
|
1972
|
+
if (newValue && props.autofocusFirst) {
|
|
1973
|
+
focusFirst();
|
|
1974
|
+
}
|
|
1975
|
+
});
|
|
1976
|
+
__expose({
|
|
1977
|
+
toggle,
|
|
1978
|
+
show,
|
|
1979
|
+
hide,
|
|
1980
|
+
init,
|
|
1981
|
+
focusFirst,
|
|
1982
|
+
focusFirstListElement,
|
|
1983
|
+
focusNext,
|
|
1984
|
+
focusPrev,
|
|
1985
|
+
customPosition: hasCustomPosition
|
|
1986
|
+
});
|
|
1950
1987
|
const hovered = useElementHover(floatingEl);
|
|
1951
1988
|
const { itemRole } = useDropdownProvideItem({
|
|
1952
1989
|
role,
|
|
@@ -2210,6 +2247,7 @@ const VvSelectProps = {
|
|
|
2210
2247
|
...FloatingLabelProps,
|
|
2211
2248
|
...UnselectableProps,
|
|
2212
2249
|
...LabelProps,
|
|
2250
|
+
...ClearProps,
|
|
2213
2251
|
/**
|
|
2214
2252
|
* This Boolean attribute indicates that multiple options can be selected in the list.
|
|
2215
2253
|
* If it is not specified, then only one option can be selected at a time.
|
|
@@ -2246,22 +2284,7 @@ const VvSelectProps = {
|
|
|
2246
2284
|
/**
|
|
2247
2285
|
* Select placeholder
|
|
2248
2286
|
*/
|
|
2249
|
-
placeholder: String
|
|
2250
|
-
/**
|
|
2251
|
-
* VvIcon name for clear button
|
|
2252
|
-
* @see VvIcon
|
|
2253
|
-
*/
|
|
2254
|
-
iconClear: {
|
|
2255
|
-
type: [String, Object],
|
|
2256
|
-
default: ACTION_ICONS.clear
|
|
2257
|
-
},
|
|
2258
|
-
/**
|
|
2259
|
-
* Label for clear button
|
|
2260
|
-
*/
|
|
2261
|
-
labelClear: {
|
|
2262
|
-
type: String,
|
|
2263
|
-
default: "Clear"
|
|
2264
|
-
}
|
|
2287
|
+
placeholder: String
|
|
2265
2288
|
};
|
|
2266
2289
|
function useVvSelectProps() {
|
|
2267
2290
|
return {
|
|
@@ -2639,7 +2662,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
2639
2662
|
/* FULL_PROPS */
|
|
2640
2663
|
)) : createCommentVNode("v-if", true)
|
|
2641
2664
|
]),
|
|
2642
|
-
unref(isUnselectable) ? (openBlock(), createBlock(unref(VvInputClearAction), {
|
|
2665
|
+
unref(isUnselectable) && unref(propsDefaults).showClearAction ? (openBlock(), createBlock(unref(VvInputClearAction), {
|
|
2643
2666
|
key: 1,
|
|
2644
2667
|
"input-type": "select",
|
|
2645
2668
|
label: _ctx.labelClear,
|
|
@@ -2724,7 +2747,7 @@ const __default__ = {
|
|
|
2724
2747
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
2725
2748
|
...__default__,
|
|
2726
2749
|
props: useVvComboboxProps(),
|
|
2727
|
-
emits: ["update:modelValue", "update:search", "focus", "blur", "clear", "change:search"],
|
|
2750
|
+
emits: ["update:modelValue", "update:search", "update:options", "focus", "blur", "clear", "change:search"],
|
|
2728
2751
|
setup(__props, { emit: __emit }) {
|
|
2729
2752
|
const props = __props;
|
|
2730
2753
|
const emit = __emit;
|
|
@@ -2893,12 +2916,33 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2893
2916
|
"badges": props.badges
|
|
2894
2917
|
}))
|
|
2895
2918
|
);
|
|
2919
|
+
const addedOptions = ref(/* @__PURE__ */ new Set());
|
|
2896
2920
|
const {
|
|
2897
2921
|
getOptionLabel,
|
|
2898
2922
|
getOptionValue,
|
|
2899
2923
|
getOptionGrouped,
|
|
2900
2924
|
isOptionDisabled
|
|
2901
2925
|
} = useOptions(props);
|
|
2926
|
+
const hasOptions = computed(() => {
|
|
2927
|
+
const toReturn = [...props.options, ...addedOptions.value];
|
|
2928
|
+
for (const localModelValueItem of localModelValue.value) {
|
|
2929
|
+
if (!toReturn.some((option) => {
|
|
2930
|
+
const optionValue = getOptionValue(option);
|
|
2931
|
+
if (typeof optionValue === "object") {
|
|
2932
|
+
return JSON.stringify(optionValue) === JSON.stringify(localModelValueItem);
|
|
2933
|
+
}
|
|
2934
|
+
return optionValue === localModelValueItem;
|
|
2935
|
+
})) {
|
|
2936
|
+
toReturn.push(localModelValueItem);
|
|
2937
|
+
}
|
|
2938
|
+
}
|
|
2939
|
+
return toReturn;
|
|
2940
|
+
});
|
|
2941
|
+
watch(addedOptions, (newValue) => {
|
|
2942
|
+
if (newValue.size > 0) {
|
|
2943
|
+
emit("update:options", hasOptions.value);
|
|
2944
|
+
}
|
|
2945
|
+
});
|
|
2902
2946
|
function isOptionDisabledOrNotSelectable(option) {
|
|
2903
2947
|
return isOptionDisabled(option) || !isSelectable.value && !isOptionSelected(option);
|
|
2904
2948
|
}
|
|
@@ -2909,13 +2953,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2909
2953
|
const toReturn = await Promise.resolve(
|
|
2910
2954
|
propsDefaults.value.searchFunction(
|
|
2911
2955
|
debouncedSearchText.value,
|
|
2912
|
-
|
|
2956
|
+
hasOptions.value
|
|
2913
2957
|
)
|
|
2914
2958
|
);
|
|
2915
2959
|
localLoading.value = false;
|
|
2916
2960
|
return toReturn;
|
|
2917
2961
|
}
|
|
2918
|
-
return (_a =
|
|
2962
|
+
return (_a = hasOptions.value) == null ? void 0 : _a.filter((option) => {
|
|
2919
2963
|
return getOptionLabel(option).toLowerCase().includes(debouncedSearchText.value.toLowerCase().trim());
|
|
2920
2964
|
});
|
|
2921
2965
|
});
|
|
@@ -2932,7 +2976,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2932
2976
|
return localModelValue.value.includes(optionValue);
|
|
2933
2977
|
}
|
|
2934
2978
|
const selectedOptions = computed(() => {
|
|
2935
|
-
const
|
|
2979
|
+
const toReturn = hasOptions.value.reduce(
|
|
2936
2980
|
(acc, value) => {
|
|
2937
2981
|
if (isGroup(value)) {
|
|
2938
2982
|
return [...acc, ...getOptionGrouped(value)];
|
|
@@ -2941,7 +2985,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2941
2985
|
},
|
|
2942
2986
|
[]
|
|
2943
2987
|
);
|
|
2944
|
-
return
|
|
2988
|
+
return toReturn.filter((option) => {
|
|
2945
2989
|
return isOptionSelected(option);
|
|
2946
2990
|
});
|
|
2947
2991
|
});
|
|
@@ -2978,7 +3022,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
2978
3022
|
emit("clear");
|
|
2979
3023
|
}
|
|
2980
3024
|
watch(
|
|
2981
|
-
|
|
3025
|
+
hasOptions,
|
|
2982
3026
|
(newValue) => {
|
|
2983
3027
|
if ((newValue == null ? void 0 : newValue.length) && props.autoselectFirst && !isDirty.value) {
|
|
2984
3028
|
onInput(newValue[0]);
|
|
@@ -3047,6 +3091,31 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
3047
3091
|
},
|
|
3048
3092
|
{ target: inputEl }
|
|
3049
3093
|
);
|
|
3094
|
+
function onKeyupEnterInputSearch() {
|
|
3095
|
+
var _a, _b;
|
|
3096
|
+
if ((_a = filteredOptions.value) == null ? void 0 : _a.length) {
|
|
3097
|
+
if (filteredOptions.value.length === 1) {
|
|
3098
|
+
onInput(filteredOptions.value[0]);
|
|
3099
|
+
return;
|
|
3100
|
+
}
|
|
3101
|
+
(_b = dropdownEl.value) == null ? void 0 : _b.focusFirstListElement();
|
|
3102
|
+
return;
|
|
3103
|
+
}
|
|
3104
|
+
if (propsDefaults.value.addable) {
|
|
3105
|
+
const trimmedSearch = searchText.value.trim();
|
|
3106
|
+
if (!trimmedSearch) {
|
|
3107
|
+
return;
|
|
3108
|
+
}
|
|
3109
|
+
const exists = hasOptions.value.some(
|
|
3110
|
+
(opt) => getOptionLabel(opt).toLowerCase() === trimmedSearch.toLowerCase()
|
|
3111
|
+
);
|
|
3112
|
+
if (exists) {
|
|
3113
|
+
return;
|
|
3114
|
+
}
|
|
3115
|
+
addedOptions.value.add(trimmedSearch);
|
|
3116
|
+
onInput(trimmedSearch);
|
|
3117
|
+
}
|
|
3118
|
+
}
|
|
3050
3119
|
return (_ctx, _cache) => {
|
|
3051
3120
|
return !_ctx.native ? (openBlock(), createElementBlock("div", {
|
|
3052
3121
|
key: 0,
|
|
@@ -3170,7 +3239,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
3170
3239
|
/* FULL_PROPS */
|
|
3171
3240
|
)) : createCommentVNode("v-if", true)
|
|
3172
3241
|
]),
|
|
3173
|
-
unref(isUnselectable) ? (openBlock(), createBlock(unref(VvInputClearAction), {
|
|
3242
|
+
unref(isUnselectable) && unref(propsDefaults).showClearAction ? (openBlock(), createBlock(unref(VvInputClearAction), {
|
|
3174
3243
|
key: 1,
|
|
3175
3244
|
"input-type": "select",
|
|
3176
3245
|
label: _ctx.labelClear,
|
|
@@ -3304,7 +3373,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
3304
3373
|
default: withCtx(() => [
|
|
3305
3374
|
renderSlot(_ctx.$slots, "no-results", {}, () => [
|
|
3306
3375
|
createTextVNode(
|
|
3307
|
-
toDisplayString(unref(propsDefaults).noResultsLabel),
|
|
3376
|
+
toDisplayString(unref(propsDefaults).addable ? unref(propsDefaults).addOptionHintLabel : unref(propsDefaults).noResultsLabel),
|
|
3308
3377
|
1
|
|
3309
3378
|
/* TEXT */
|
|
3310
3379
|
)
|
|
@@ -3347,8 +3416,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
3347
3416
|
spellcheck: "false",
|
|
3348
3417
|
type: "search",
|
|
3349
3418
|
class: "vv-dropdown__search",
|
|
3350
|
-
placeholder: unref(propsDefaults).searchPlaceholder
|
|
3351
|
-
|
|
3419
|
+
placeholder: unref(propsDefaults).searchPlaceholder,
|
|
3420
|
+
onKeyup: withKeys(onKeyupEnterInputSearch, ["enter"])
|
|
3421
|
+
}, null, 40, _hoisted_3)), [
|
|
3352
3422
|
[vModelText, unref(searchText)]
|
|
3353
3423
|
]) : createCommentVNode("v-if", true)
|
|
3354
3424
|
]),
|