@volverjs/ui-vue 0.0.11 → 0.0.13-beta.1
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/bin/icons.js +1 -93
- package/dist/components/VvAccordion/VvAccordion.es.js +1 -366
- package/dist/components/VvAccordion/VvAccordion.vue.d.ts +7 -2
- package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +2 -702
- package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +5 -2
- package/dist/components/VvAction/VvAction.es.js +1 -302
- package/dist/components/VvAction/VvAction.umd.js +1 -1
- package/dist/components/VvAction/VvAction.vue.d.ts +3 -2
- package/dist/components/VvAlert/VvAlert.es.js +1 -527
- package/dist/components/VvAlert/VvAlert.vue.d.ts +3 -2
- package/dist/components/VvAlertGroup/VvAlertGroup.es.js +1 -730
- package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +3 -3
- package/dist/components/VvAvatar/VvAvatar.es.js +1 -132
- package/dist/components/VvAvatar/VvAvatar.vue.d.ts +2 -2
- package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +1 -250
- package/dist/components/VvAvatarGroup/VvAvatarGroup.vue.d.ts +2 -2
- package/dist/components/VvBadge/VvBadge.es.js +1 -131
- package/dist/components/VvBadge/VvBadge.vue.d.ts +2 -2
- package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +1 -410
- package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
- package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +2 -2
- package/dist/components/VvButton/VvButton.es.js +1 -882
- package/dist/components/VvButton/VvButton.umd.js +1 -1
- package/dist/components/VvButton/VvButton.vue.d.ts +3 -2
- package/dist/components/VvButtonGroup/VvButtonGroup.es.js +1 -214
- package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +2 -2
- package/dist/components/VvCard/VvCard.es.js +1 -152
- package/dist/components/VvCard/VvCard.vue.d.ts +2 -2
- package/dist/components/VvCheckbox/VvCheckbox.es.js +1 -741
- package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +2 -2
- package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +1 -981
- package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +2 -2
- package/dist/components/VvCombobox/VvCombobox.es.js +1 -3463
- package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
- package/dist/components/VvCombobox/VvCombobox.vue.d.ts +16 -7
- package/dist/components/VvDialog/VvDialog.es.js +1 -317
- package/dist/components/VvDialog/VvDialog.vue.d.ts +4 -2
- package/dist/components/VvDropdown/VvDropdown.es.js +1 -750
- package/dist/components/VvDropdown/VvDropdown.vue.d.ts +14 -2
- package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +2 -2
- package/dist/components/VvDropdown/VvDropdownItem.vue.d.ts +2 -2
- package/dist/components/VvDropdown/VvDropdownOptgroup.vue.d.ts +11 -4
- package/dist/components/VvDropdown/VvDropdownOption.vue.d.ts +2 -2
- package/dist/components/VvDropdownAction/VvDropdownAction.es.js +1 -448
- package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
- package/dist/components/VvDropdownItem/VvDropdownItem.es.js +1 -149
- package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.es.js +1 -104
- package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.umd.js +1 -1
- package/dist/components/VvDropdownOption/VvDropdownOption.es.js +1 -281
- package/dist/components/VvIcon/VvIcon.es.js +1 -143
- package/dist/components/VvIcon/VvIcon.vue.d.ts +2 -2
- package/dist/components/VvInputFile/VvInputFile.es.js +1 -1704
- package/dist/components/VvInputFile/VvInputFile.umd.js +1 -1
- package/dist/components/VvInputFile/VvInputFile.vue.d.ts +34 -4
- package/dist/components/VvInputFile/index.d.ts +7 -0
- package/dist/components/VvInputText/VvInputText.es.js +4 -2790
- package/dist/components/VvInputText/VvInputText.umd.js +1 -1
- package/dist/components/VvInputText/VvInputText.vue.d.ts +8 -3
- package/dist/components/VvNav/VvNav.es.js +1 -438
- package/dist/components/VvNav/VvNav.umd.js +1 -1
- package/dist/components/VvNav/VvNav.vue.d.ts +2 -2
- package/dist/components/VvNav/VvNavItem.vue.d.ts +2 -2
- package/dist/components/VvNav/VvNavSeparator.vue.d.ts +1 -1
- package/dist/components/VvNavItem/VvNavItem.es.js +1 -337
- package/dist/components/VvNavItem/VvNavItem.umd.js +1 -1
- package/dist/components/VvNavSeparator/VvNavSeparator.es.js +1 -24
- package/dist/components/VvProgress/VvProgress.es.js +1 -163
- package/dist/components/VvProgress/VvProgress.vue.d.ts +2 -2
- package/dist/components/VvRadio/VvRadio.es.js +1 -661
- package/dist/components/VvRadio/VvRadio.vue.d.ts +2 -2
- package/dist/components/VvRadioGroup/VvRadioGroup.es.js +1 -901
- package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +2 -2
- package/dist/components/VvSelect/VvSelect.es.js +1 -1103
- package/dist/components/VvSelect/VvSelect.vue.d.ts +11 -7
- package/dist/components/VvTab/VvTab.es.js +1 -558
- package/dist/components/VvTab/VvTab.umd.js +1 -1
- package/dist/components/VvTab/VvTab.vue.d.ts +2 -2
- package/dist/components/VvTextarea/VvTextarea.es.js +2 -1989
- package/dist/components/VvTextarea/VvTextarea.vue.d.ts +3 -3
- package/dist/components/VvTooltip/VvTooltip.es.js +1 -154
- package/dist/components/VvTooltip/VvTooltip.vue.d.ts +2 -2
- package/dist/components/index.es.js +6 -8558
- package/dist/components/index.umd.js +1 -1
- package/dist/composables/index.es.js +2 -247
- package/dist/composables/index.umd.js +1 -1
- package/dist/directives/index.es.js +2 -311
- package/dist/directives/index.umd.js +1 -1
- package/dist/directives/v-contextmenu.es.js +2 -142
- package/dist/directives/v-contextmenu.umd.js +1 -1
- package/dist/directives/v-tooltip.es.js +1 -172
- package/dist/icons.es.js +1 -39
- package/dist/icons.umd.js +1 -1
- package/dist/index.es.js +1 -219
- package/dist/props/index.d.ts +7 -0
- package/dist/resolvers/unplugin.es.js +1 -187
- package/dist/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +2 -2
- package/dist/stories/Avatar/Avatar.settings.d.ts +1 -1
- package/package.json +47 -40
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("@vueuse/core"),require("vuedraggable"),require("@iconify/vue")):"function"==typeof define&&define.amd?define(["vue","@vueuse/core","vuedraggable","@iconify/vue"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvInputFile=t(e.vue,e.core,e.Sortable,e.vue$1)}(this,function(e,t,o,l){"use strict";const a="add",n="edit",r="download",i={prefix:"normal"};var u=(e=>(e.local="local",e.session="session",e))(u||{}),s=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(s||{}),d=(e=>(e.before="before",e.after="after",e))(d||{}),c=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(c||{}),v=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(v||{});const f=Symbol.for("volver"),p=Symbol.for("buttonGroup"),m=Symbol.for("dropdownTrigger"),g=Symbol.for("dropdownAction"),b={to:{type:[String,Object]},href:String,target:String,rel:{type:String,default:"noopener noreferrer"}},y={valid:{type:Boolean,default:!1},validLabel:{type:[String,Array],default:void 0}},h={invalid:{type:Boolean,default:!1},invalidLabel:{type:[String,Array],default:void 0}},k={loading:{type:Boolean,default:!1},loadingLabel:{type:String,default:"Loading..."}},S={disabled:{type:Boolean,default:!1}},B={required:{type:Boolean,default:!1}},L={active:{type:Boolean,default:!1}},w={current:{type:Boolean,default:!1}},V={pressed:{type:Boolean,default:!1}},A={label:{type:[String,Number],default:void 0}},C={readonly:{type:Boolean,default:!1}},$={modifiers:{type:[String,Array],default:void 0}},N={hintLabel:{type:String,default:""}},O={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:d.before,validation:e=>Object.values(d).includes(e)}},x={unselectable:{type:Boolean,default:!0}},_={id:[String,Number]};s.bottom;const I={..._,name:{type:String,required:!0}},P={...S,...A,...V,...L,...w,...b,type:{type:String,default:c.button,validator:e=>Object.values(c).includes(e)},ariaLabel:{type:String,default:void 0},defaultTag:{type:String,default:v.button}};u.local;const R={...I,...$,...y,...h,...N,...A,...k,...C,...S,...B,...O,modelValue:{type:Object},progress:{type:[Number,String],default:void 0},placeholder:{type:String,default:void 0},accept:{type:String,default:"*"},multiple:{type:Boolean,default:!1},capture:{type:String,default:void 0,validation:e=>void 0===e||["user","environment"].includes(e)},max:{type:[Number,String],default:void 0},dropArea:{type:Boolean,default:!1},sortable:{type:Boolean,default:!1},labelAdd:{type:String,default:"Add file"},iconAdd:{type:[String,Object],default:a},labelReplace:{type:String,default:"Replace file"},iconReplace:{type:[String,Object],default:n},labelDownload:{type:String,default:"Downlaod file"},iconDownload:{type:[String,Object],default:r},labelRemove:{type:String,default:"Remove file"}};function j(e,t,o){return E(e,t)}function E(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){const o=Array.isArray(e),l=Array.isArray(t);let a,n,r;if(o&&l){if(n=e.length,n!==t.length)return!1;for(a=n;0!==a--;)if(!E(e[a],t[a]))return!1;return!0}if(o!==l)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 s=e instanceof RegExp,d=t instanceof RegExp;if(s!==d)return!1;if(s&&d)return e.toString()===t.toString();const c=Object.keys(e);if(n=c.length,n!==Object.keys(t).length)return!1;for(a=n;0!==a--;)if(!Object.prototype.hasOwnProperty.call(t,c[a]))return!1;for(a=n;0!==a--;)if(r=c[a],!E(e[r],t[r]))return!1;return!0}return Number.isNaN(e)&&Number.isNaN(t)}function D(e,t){if(null!=e&&t&&t.length)for(const o of t)if(j(e,o))return!0;return!1}function M(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e).join(" "):e}const F={...P,..._,...$,...x,...k,...O,iconPosition:{type:String,default:s.left,validator:e=>Object.values(s).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 T(t,o){const{group:l,isInGroup:a,getGroupOrLocalRef:n}=function(t){const o=e.inject(t,void 0),l=e.computed(()=>void 0!==o);return{group:o,isInGroup:l,getGroupOrLocalRef:function(t,l,a){const n=o?.[t];if(n)return e.computed({get:()=>n.value,set(e){n.value=e}});const r=e.toRef(l,t);return e.computed({get:()=>r.value,set(e){a&&a(`update:${t}`,e)}})}}}(p),{id:r,iconPosition:i,icon:u,label:s,pressed:d}=e.toRefs(t),c=n("modelValue",t,o),v=n("toggle",t),f=n("unselectable",t),m=e.computed(()=>l?.multiple.value??!1),g=e.computed(()=>{let e=t.modifiers,o=l?.modifiers.value;const a=new Set;return e&&(Array.isArray(e)||(e=e.split(" ")),e.forEach(e=>a.add(e))),o&&(Array.isArray(o)||(o=o.split(" ")),o.forEach(e=>a.add(e))),Array.from(a)}),b=e.computed(()=>Boolean(t.disabled||l?.disabled.value));return{group:l,isInGroup:a,modelValue:c,toggle:v,unselectable:f,multiple:m,modifiers:g,disabled:b,id:r,pressed:d,iconPosition:i,icon:u,label:s}}const z=P;function U(){return e.inject(f,void 0)}const q=e.defineComponent({name:"VvAction",props:z,emits:["click","mouseover","mouseleave"],setup(t,{expose:o,emit:l}){const a=t,n=l,r=e.getCurrentInstance(),i=U(),u=e.ref(null);o({$el:u});const{reference:s,bus:d,aria:c,expanded:f}=e.inject(m,{});e.watch(()=>u.value,e=>{s&&(s.value=e)});const p=e.computed(()=>a.pressed||f?.value),{role:b}=e.inject(g,{}),y=e.computed(()=>{switch(!0){case a.disabled:return v.button;case void 0!==a.to:return i?.nuxt?e.resolveComponent(v.nuxtLink):v.routerLink;case void 0!==a.href:return v.a;default:return a.defaultTag}}),h=e.computed(()=>{const e={...c?.value,ariaPressed:!!p.value||void 0,ariaLabel:a.ariaLabel,role:b?.value};switch(y.value){case v.a:return{...e,href:a.href,target:a.target,rel:a.rel};case v.routerLink:case v.nuxtLink:return{...e,to:a.to,target:a.target};case v.button:return{...e,type:a.type,disabled:a.disabled};default:return e}});function k(e){a.disabled?e.preventDefault():r?.vnode.props?.onClick?n("click",e):d?.emit("click",e)}function S(e){r?.vnode.props?.onMouseover?n("mouseover",e):d?.emit("mouseover",e)}function B(e){r?.vnode.props?.onMouseleave?n("mouseleave",e):d?.emit("mouseleave",e)}return(t,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(y)),e.mergeProps(e.unref(h),{ref_key:"element",ref:u,class:{active:t.active,pressed:e.unref(p),disabled:t.disabled,current:t.current},onClickPassive:k,onMouseoverPassive:S,onMouseleavePassive:B}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.label),1)])]),_:3},16,["class"]))}});function G(t,o,l){return e.computed(()=>{const a={[t]:!0},n="string"==typeof o?.value?o.value.split(" "):o?.value;return n&&Array.isArray(n)&&n.forEach(e=>{e&&(a[`${t}--${e}`]=!0)}),l&&Object.keys(l.value).forEach(o=>{a[`${t}--${o}`]=e.unref(l.value[o])}),a})}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:{}},i),setup(t){const o=t,a=e.computed(()=>"string"==typeof o.rotate?Number.parseFloat(o.rotate):o.rotate),n=e.ref(!0),r=U(),{modifiers:i}=e.toRefs(o),u=G("vv-icon",i),s=e.computed(()=>o.provider||r?.iconsProvider),d=e.computed(()=>{const e=o.name??"",t=`@${s.value}:${o.prefix}:${e}`;if(l.iconLoaded(t))return t;const a=r?.iconsCollections.find(t=>{const o=`@${s.value}:${t.prefix}:${e}`;return l.iconLoaded(o)});return a?`@${s.value}:${a.prefix}:${e}`:e});function c(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),a=t?.innerHTML.trim()||"";t&&a&&l.addIcon(`@${s.value}:${o.prefix}:${o.name}`,{body:a,height:t.viewBox.baseVal.height,width:t.viewBox.baseVal.width})}return r&&o.src&&!l.iconLoaded(`@${s.value}:${o.prefix}:${o.name}`)&&(n.value=!1,r.fetchIcon(o.src).then(e=>{e&&(c(e),n.value=!0)}).catch(e=>{throw new Error(`Error during fetch icon: ${e?.message}`)})),o.svg&&c(o.svg),(o,r)=>e.unref(n)?(e.openBlock(),e.createBlock(e.unref(l.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(a),color:t.color,icon:e.unref(d)},{onLoad:t.onLoad}),null,16,["class","onLoad"])):e.createCommentVNode("v-if",!0)}});function J(t){return e.computed(()=>String(t?.value||e.useId()))}function W(t,o){const l=e.computed(()=>"string"==typeof t?.value?{name:t?.value}:t?.value),a=e.computed(()=>o?.value===d.before?l.value:void 0),n=e.computed(()=>o?.value===d.after?l.value:void 0),r=e.computed(()=>o?.value===s.left?l.value:void 0),i=e.computed(()=>o?.value===s.right?l.value:void 0),u=e.computed(()=>o?.value===s.top?l.value:void 0),c=e.computed(()=>o?.value===s.bottom?l.value:void 0);return{hasIcon:l,hasIconLeft:r,hasIconRight:i,hasIconTop:u,hasIconBottom:c,hasIconBefore:a,hasIconAfter:n}}const K={key:1,class:"vv-button__label"},Y={key:1,class:"vv-button__label"},Z=e.defineComponent({name:"VvButton",inheritAttrs:!1,props:F,emits:["update:modelValue"],setup(t,{expose:o,emit:l}){const a=t,n=l,r=e.useAttrs(),i=e.useSlots(),{id:u,modifiers:d,iconPosition:c,icon:v,label:f,modelValue:p,disabled:m,toggle:g,unselectable:b}=T(a,n),y=J(u),h=e.computed(()=>r?.name||y.value),k=e.ref(null);o({$el:e.computed(()=>k.value?.$el)});const S=e.computed(()=>g.value?Array.isArray(p.value)?D(h.value,p.value):j(h.value,p.value):a.pressed),B=G("vv-button",d,e.computed(()=>({reverse:[s.right,s.bottom].includes(c.value),column:[s.top,s.bottom].includes(c.value),"icon-only":Boolean(v?.value&&!f?.value&&!i.default)}))),{hasIcon:L}=W(v),w=e.computed(()=>void 0!==a.value?a.value:h.value),V=e.computed(()=>{if(g.value)return{onClick:A}});function A(){if(g.value){if(Array.isArray(p.value))return D(w.value,p.value)?void(b.value&&(p.value=p.value.filter(e=>e!==w.value))):void p.value.push(w.value);if(w.value===p.value&&b.value)return void(p.value=a.uncheckedValue);p.value=w.value}}return(t,o)=>(e.openBlock(),e.createBlock(q,e.mergeProps({...e.unref(r),...e.unref(V),disabled:e.unref(m),pressed:e.unref(S),active:t.active,type:t.type,to:t.to,href:t.href,target:t.target,rel:t.rel,ariaLabel:t.ariaLabel},{id:e.unref(y),ref_key:"element",ref:k,class:e.unref(B)}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{},()=>[t.loading?e.renderSlot(t.$slots,"loading",{key:0},()=>[t.loadingIcon?(e.openBlock(),e.createBlock(H,{key:0,class:"vv-button__loading-icon",name:t.loadingIcon},null,8,["name"])):e.createCommentVNode("v-if",!0),t.loadingLabel?(e.openBlock(),e.createElementBlock("span",K,e.toDisplayString(t.loadingLabel),1)):e.createCommentVNode("v-if",!0)]):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.renderSlot(t.$slots,"before"),e.unref(L)?(e.openBlock(),e.createBlock(H,e.mergeProps({key:0},e.unref(L),{class:"vv-button__icon"}),null,16)):e.createCommentVNode("v-if",!0),e.unref(f)?(e.openBlock(),e.createElementBlock("span",Y,[e.renderSlot(t.$slots,"label",{},()=>[e.createTextVNode(e.toDisplayString(e.unref(f)),1)])])):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"after")],64))])]),_:3},16,["id","class"]))}});const Q=["for"],X={class:"vv-input-file__preview"},ee=["src","alt"],te={class:"vv-input-file__wrapper"},oe=["id","readonly","disabled","required","placeholder","aria-describedby","aria-invalid","aria-errormessage","multiple","accept","capture","name"],le=["value"],ae=["onClick"],ne=["title","onClick"],re={class:"vv-input-file__item-name"},ie={class:"vv-input-file__item-info"},ue=["title","disabled","onClick"];return e.defineComponent({name:"VvInputFile",props:R,emits:["remove","download","update:modelValue"],setup(l,{emit:a}){const n=l,r=a,i=e.useSlots(),u=function(t,o,l){const a=U(),n=e.computed(()=>{if(a&&a.defaults.value?.[t])return a.defaults.value[t]});return e.computed(()=>{if(void 0===n.value)return l;const e=n.value,t=o,a=l;return Object.keys(t).reduce((o,l)=>{const n=a[l];if(o[l]=n,l in e){if(Array.isArray(t[l])){const a=t[l];a.length&&a[0]===n&&(o[l]=e[l])}if("function"==typeof t[l]&&(0,t[l])()===n&&(o[l]=e[l]),"object"==typeof t[l]){let a=t[l].default;"function"==typeof a&&(a=a()),"object"==typeof a?JSON.stringify(a)===JSON.stringify(n)&&(o[l]=e[l]):a===n&&(o[l]=e[l])}}return o},{})})}("VvInputFile",R,n),{modifiers:s,id:d,readonly:c,disabled:v,icon:f,iconPosition:p,iconDownload:m}=e.toRefs(n),g=J(d),b=e.computed(()=>`${g.value}-hint`),y=e.computed(()=>{if(!n.progress)return!1;const e="string"==typeof n.progress?Number.parseInt(n.progress):n.progress;return e>0&&e<100}),{hasIconBefore:h,hasIconAfter:k}=W(f,p),{hasIcon:S}=W(m),B=G("vv-input-file",s,e.computed(()=>({valid:!0===n.valid,invalid:!0===n.invalid,loading:n.loading&&!y.value,disabled:n.disabled,required:n.required,readonly:n.readonly,dragging:I.value,"icon-before":!!h.value,"icon-after":!!k.value,"drop-area":x.value}))),{HintSlot:L,hasHintLabelOrSlot:w,hasInvalidLabelOrSlot:V,hintSlotScope:A}=function(t,o){const l=e.computed(()=>e.isRef(t)?t.value:t),a=e.computed(()=>M(l.value.invalidLabel)),n=e.computed(()=>M(l.value.validLabel)),r=e.computed(()=>l.value.loadingLabel),i=e.computed(()=>l.value.hintLabel),u=e.computed(()=>Boolean(l.value.loading&&(o.loading||r.value))),s=e.computed(()=>!u.value&&Boolean(l.value.invalid&&(o.invalid||a.value))),d=e.computed(()=>!u.value&&!s.value&&Boolean(l.value.valid&&(o.valid||n.value))),c=e.computed(()=>!u.value&&!s.value&&!d.value&&Boolean(o.hint||i.value)),v=e.computed(()=>s.value||d.value||u.value||c.value),f=e.computed(()=>({modelValue:l.value.modelValue,valid:l.value.valid,invalid:l.value.invalid,loading:l.value.loading})),p=e.defineComponent({name:"HintSlot",props:{tag:{type:String,default:"small"}},setup:()=>({isVisible:v,invalidLabel:a,validLabel:n,loadingLabel:r,hintLabel:i,hasInvalidLabelOrSlot:s,hasValidLabelOrSlot:d,hasLoadingLabelOrSlot:u,hasHintLabelOrSlot:c}),render(){if(this.isVisible){let t;return this.hasInvalidLabelOrSlot&&(t="alert"),this.hasValidLabelOrSlot&&(t="status"),this.hasLoadingLabelOrSlot?e.h(this.tag,{role:t},this.$slots.loading?.()??this.loadingLabel):this.hasInvalidLabelOrSlot?e.h(this.tag,{role:t},this.$slots.invalid?.()??this.$slots.invalid??this.invalidLabel):this.hasValidLabelOrSlot?e.h(this.tag,{role:t},this.$slots.valid?.()??this.validLabel):e.h(this.tag,{role:t},this.$slots.hint?.()??this.$slots.hint??this.hintLabel)}return null}});return{hasInvalidLabelOrSlot:s,hasHintLabelOrSlot:c,hasValidLabelOrSlot:d,hasLoadingLabelOrSlot:u,hintSlotScope:f,HintSlot:p}}(u,i),C=t.useVModel(n,"modelValue",r),$=e.computed({get:()=>C.value&&(Array.isArray(C.value)||C.value?.name)?Array.isArray(C.value)?C.value:[C.value]:[],set:e=>{_.value?C.value=e:C.value=e?.[0]}}),N=e.computed(()=>n.disabled||n.readonly),O=e.computed(()=>"string"==typeof n.max?Number.parseInt(n.max):n.max),x=e.computed(()=>n.dropArea&&!N.value),_=e.computed(()=>!!n.multiple&&(!O.value||O.value-$.value.length>1)),I=e.ref(!1),P=e.ref();function j(){I.value=!0}function E(){I.value=!1}function D(e){e.dataTransfer?.files&&(I.value=!1,T(e.dataTransfer?.files))}function F(){P.value?.files&&(T(P.value.files),P.value.value="")}function T(e){const t=function(e,t){if(!t||""===t.trim()||"*"===t)return Array.from(e);const{mimeTypes:o,extensions:l,wildcards:a}=function(e){const t=[],o=[],l=[],a=e?.split(",").map(e=>e.trim().toLowerCase());return a?.length&&a.forEach(e=>{e.startsWith(".")?o.push(e):e.includes("/*")?l.push(e.replace("/*","")):t.push(e)}),{mimeTypes:t,extensions:o,wildcards:l}}(t);return Array.from(e).filter(e=>{const t=e.type.toLowerCase(),n=`.${e.name.split(".").pop()?.toLowerCase()}`,r=o.includes(t),i=a.some(e=>t.startsWith(`${e}/`)),u=l.some(e=>n===e.toLowerCase());return r||i||u})}(e,n.accept);if(!n.multiple)return Array.isArray(C.value)?void(C.value=t):void(C.value=t[0]);let o=[];o=!Array.isArray(C.value)&&C.value?[C.value]:C.value&&Array.isArray(C.value)?[...C.value]:o;for(const l of t){if(O.value&&o.length>=O.value)break;o.push(l)}C.value=o,q.value=o.length-1}function z(){P.value&&(N.value||P.value.click())}const q=e.ref(0),K=["image/jpeg","image/png"],Y=e.computed(()=>{if(0===$.value.length)return;if(!$.value[q.value])return;if($.value[q.value]instanceof File){const e=$.value[q.value];if(!K.includes(e.type))return;return URL.createObjectURL(e)}const e=$.value[q.value];return e.thumbnailUrl?e.thumbnailUrl:K.includes(e.type)?e.url:void 0});function se(e,t){if(!e)return;if(0===e)return"0 Bytes";const o=Math.floor(Math.log(e)/Math.log(1024));return`${Number.parseFloat((e/1024**o).toFixed(2))} ${["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"][o]}`}e.watch(Y,(e,t)=>{t&&URL.revokeObjectURL(t)}),e.onBeforeUnmount(()=>{Y.value&&URL.revokeObjectURL(Y.value)});const de=e.computed(()=>0===$.value.length||_.value?n.labelAdd:n.labelReplace),ce=e.computed(()=>0===$.value.length||_.value?n.iconAdd:n.iconReplace);function ve({newIndex:e}){null!==e&&(q.value=e)}return(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(B))},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(g)},e.toDisplayString(t.label),9,Q)):e.createCommentVNode("v-if",!0),x.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:"vv-input-file__drop-area",onDragenter:e.withModifiers(j,["prevent","stop"]),onDragleave:e.withModifiers(E,["prevent","stop"]),onDrop:e.withModifiers(D,["prevent","stop"]),onDragover:l[0]||(l[0]=e.withModifiers(()=>{},["prevent","stop"])),onClick:e.withModifiers(z,["stop"])},[e.renderSlot(t.$slots,"drop-area",{},()=>[e.createElementVNode("picture",X,[Y.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:Y.value,alt:$.value[q.value].name},null,8,ee)):e.createCommentVNode("v-if",!0)]),e.unref(c)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createBlock(Z,{key:0,modifiers:"action",label:Y.value?void 0:de.value,title:Y.value?de.value:void 0,disabled:e.unref(v),class:e.normalizeClass({"vv-input-file__drop-area-action":Y.value}),icon:ce.value,onClick:e.withModifiers(z,["stop"])},null,8,["label","title","disabled","class","icon"]))])],32)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",te,[e.unref(h)?(e.openBlock(),e.createBlock(H,e.normalizeProps(e.mergeProps({key:0},e.unref(h))),null,16)):e.createCommentVNode("v-if",!0),e.createElementVNode("input",{id:e.unref(g),ref_key:"inputEl",ref:P,type:"file",readonly:e.unref(c),disabled:e.unref(v),required:t.required,placeholder:t.placeholder,"aria-describedby":e.unref(w)?b.value:void 0,"aria-invalid":t.invalid,"aria-errormessage":e.unref(V)?b.value:void 0,multiple:_.value,accept:t.accept,capture:t.capture,name:t.name,onChange:F},null,40,oe),y.value?(e.openBlock(),e.createElementBlock("progress",{key:1,class:"vv-input-file__progress",value:t.progress,max:"100"},e.toDisplayString(t.progress)+"% ",9,le)):e.createCommentVNode("v-if",!0),e.unref(k)?(e.openBlock(),e.createBlock(H,e.normalizeProps(e.mergeProps({key:2},e.unref(k))),null,16)):e.createCommentVNode("v-if",!0)]),e.createVNode(e.unref(o),{modelValue:$.value,"onUpdate:modelValue":l[1]||(l[1]=e=>$.value=e),tag:"ul",class:"vv-input-file__list","item-key":"name",move:()=>t.sortable,onEnd:ve},{item:e.withCtx(({element:o,index:l})=>[e.createElementVNode("li",{class:e.normalizeClass(["vv-input-file__item",{active:l===q.value&&x.value&&$.value.length>1,"cursor-move":t.sortable}]),onClick:e.withModifiers(e=>function(e){q.value=e}(l),["stop"])},[e.unref(S)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"vv-input-file__item-action",title:t.labelDownload,onClick:e.withModifiers(e=>function(e){r("download",e);const t=e instanceof File?URL.createObjectURL(e):e.url;if(!t)return;const o=document.createElement("a");o.href=t,o.setAttribute("download",e.name),document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(o.href)}(o),["stop"])},[e.createVNode(H,e.normalizeProps(e.guardReactiveProps(e.unref(S))),null,16)],8,ne)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",re,e.toDisplayString(o.name),1),e.createElementVNode("small",ie,e.toDisplayString(se(o.size)),1),e.unref(c)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vv-input-file__item-remove",title:t.labelRemove,disabled:e.unref(v),onClick:e.withModifiers(e=>function(e){const t=Array.isArray(C.value)?C.value[e]:C.value;if(!t)return;if(r("remove",t),!Array.isArray(C.value))return void(C.value=void 0);q.value===e&&(q.value=0);const o=[...C.value];o.splice(e,1),C.value=o}(l),["stop"])},null,8,ue))],10,ae)]),_:1},8,["modelValue","move"]),e.createVNode(e.unref(L),{id:b.value,class:"vv-input-file__hint"},e.createSlots({_:2},[t.$slots.hint?{name:"hint",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"hint",e.normalizeProps(e.guardReactiveProps(e.unref(A))))]),key:"0"}:void 0,t.$slots.loading?{name:"loading",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"loading",e.normalizeProps(e.guardReactiveProps(e.unref(A))))]),key:"1"}:void 0,t.$slots.valid?{name:"valid",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"valid",e.normalizeProps(e.guardReactiveProps(e.unref(A))))]),key:"2"}:void 0,t.$slots.invalid?{name:"invalid",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"invalid",e.normalizeProps(e.guardReactiveProps(e.unref(A))))]),key:"3"}:void 0]),1032,["id"])],2))}})});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("@vueuse/core"),require("vuedraggable"),require("@iconify/vue")):"function"==typeof define&&define.amd?define(["vue","@vueuse/core","vuedraggable","@iconify/vue"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvInputFile=t(e.vue,e.core,e.Sortable,e.vue$1)}(this,function(e,t,o,l){"use strict";const a="add",r="edit",n="download",i={prefix:"normal"};var u=(e=>(e.local="local",e.session="session",e))(u||{}),s=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(s||{}),d=(e=>(e.before="before",e.after="after",e))(d||{}),c=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(c||{}),v=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(v||{});const f=Symbol.for("volver"),p=Symbol.for("buttonGroup"),m=Symbol.for("dropdownTrigger"),g=Symbol.for("dropdownAction"),b={to:{type:[String,Object]},href:String,target:String,rel:{type:String,default:"noopener noreferrer"}},y={valid:{type:Boolean,default:!1},validLabel:{type:[String,Array],default:void 0}},h={invalid:{type:Boolean,default:!1},invalidLabel:{type:[String,Array],default:void 0}},S={loading:{type:Boolean,default:!1},loadingLabel:{type:String,default:"Loading..."}},k={disabled:{type:Boolean,default:!1}},B={required:{type:Boolean,default:!1}},L={active:{type:Boolean,default:!1}},w={current:{type:Boolean,default:!1}},V={pressed:{type:Boolean,default:!1}},A={label:{type:[String,Number],default:void 0}},$={readonly:{type:Boolean,default:!1}},C={modifiers:{type:[String,Array],default:void 0}},x={hintLabel:{type:String,default:""}},N={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:d.before,validation:e=>Object.values(d).includes(e)}},O={unselectable:{type:Boolean,default:!0}},P={id:[String,Number]};s.bottom;const _={...P,name:{type:String,required:!0}},I={...k,...A,...V,...L,...w,...b,type:{type:String,default:c.button,validator:e=>Object.values(c).includes(e)},ariaLabel:{type:String,default:void 0},defaultTag:{type:String,default:v.button}};u.local;const R={..._,...C,...y,...h,...x,...A,...S,...$,...k,...B,...N,modelValue:{type:Object},progress:{type:[Number,String],default:void 0},placeholder:{type:String,default:void 0},accept:{type:String,default:"*"},multiple:{type:Boolean,default:!1},capture:{type:String,default:void 0,validation:e=>void 0===e||["user","environment"].includes(e)},max:{type:[Number,String],default:void 0},dropArea:{type:Boolean,default:!1},sortable:{type:Boolean,default:!1},hidePreview:{type:Boolean,default:!1},labelAdd:{type:String,default:"Add file"},iconAdd:{type:[String,Object],default:a},labelReplace:{type:String,default:"Replace file"},iconReplace:{type:[String,Object],default:r},labelDownload:{type:String,default:"Downlaod file"},iconDownload:{type:[String,Object],default:n},labelRemove:{type:String,default:"Remove file"}};function j(e,t,o){return E(e,t)}function E(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){const o=Array.isArray(e),l=Array.isArray(t);let a,r,n;if(o&&l){if(r=e.length,r!==t.length)return!1;for(a=r;0!==a--;)if(!E(e[a],t[a]))return!1;return!0}if(o!==l)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 s=e instanceof RegExp,d=t instanceof RegExp;if(s!==d)return!1;if(s&&d)return e.toString()===t.toString();const c=Object.keys(e);if(r=c.length,r!==Object.keys(t).length)return!1;for(a=r;0!==a--;)if(!Object.prototype.hasOwnProperty.call(t,c[a]))return!1;for(a=r;0!==a--;)if(n=c[a],!E(e[n],t[n]))return!1;return!0}return Number.isNaN(e)&&Number.isNaN(t)}function D(e,t){if(null!=e&&t&&t.length)for(const o of t)if(j(e,o))return!0;return!1}function M(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e).join(" "):e}const F={...I,...P,...C,...O,...S,...N,iconPosition:{type:String,default:s.left,validator:e=>Object.values(s).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 z(t,o){const{group:l,isInGroup:a,getGroupOrLocalRef:r}=function(t){const o=e.inject(t,void 0),l=e.computed(()=>void 0!==o);return{group:o,isInGroup:l,getGroupOrLocalRef:function(t,l,a){const r=o?.[t];if(r)return e.computed({get:()=>r.value,set(e){r.value=e}});const n=e.toRef(l,t);return e.computed({get:()=>n.value,set(e){a&&a(`update:${t}`,e)}})}}}(p),{id:n,iconPosition:i,icon:u,label:s,pressed:d}=e.toRefs(t),c=r("modelValue",t,o),v=r("toggle",t),f=r("unselectable",t),m=e.computed(()=>l?.multiple.value??!1),g=e.computed(()=>{let e=t.modifiers,o=l?.modifiers.value;const a=new Set;return e&&(Array.isArray(e)||(e=e.split(" ")),e.forEach(e=>a.add(e))),o&&(Array.isArray(o)||(o=o.split(" ")),o.forEach(e=>a.add(e))),Array.from(a)}),b=e.computed(()=>Boolean(t.disabled||l?.disabled.value));return{group:l,isInGroup:a,modelValue:c,toggle:v,unselectable:f,multiple:m,modifiers:g,disabled:b,id:n,pressed:d,iconPosition:i,icon:u,label:s}}const T=I;function U(){return e.inject(f,void 0)}const q=e.defineComponent({name:"VvAction",props:T,emits:["click","mouseover","mouseleave"],setup(t,{expose:o,emit:l}){const a=t,r=l,n=e.getCurrentInstance(),i=U(),u=e.ref(null);o({$el:u});const{reference:s,bus:d,aria:c,expanded:f}=e.inject(m,{});e.watch(()=>u.value,e=>{s&&(s.value=e)});const p=e.computed(()=>a.pressed||f?.value),{role:b}=e.inject(g,{}),y=e.computed(()=>{switch(!0){case a.disabled:return v.button;case void 0!==a.to:return i?.nuxt?e.resolveComponent(v.nuxtLink):v.routerLink;case void 0!==a.href:return v.a;default:return a.defaultTag}}),h=e.computed(()=>{const e={...c?.value,ariaPressed:!!p.value||void 0,ariaLabel:a.ariaLabel,role:b?.value};switch(y.value){case v.a:return{...e,href:a.href,target:a.target,rel:a.rel};case v.routerLink:case v.nuxtLink:return{...e,to:a.to,target:a.target};case v.button:return{...e,type:a.type,disabled:a.disabled};default:return e}});function S(e){a.disabled?e.preventDefault():n?.vnode.props?.onClick?r("click",e):d?.emit("click",e)}function k(e){n?.vnode.props?.onMouseover?r("mouseover",e):d?.emit("mouseover",e)}function B(e){n?.vnode.props?.onMouseleave?r("mouseleave",e):d?.emit("mouseleave",e)}return(t,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(y)),e.mergeProps(e.unref(h),{ref_key:"rootEl",ref:u,class:{active:t.active,pressed:e.unref(p),disabled:t.disabled,current:t.current},onClickPassive:S,onMouseoverPassive:k,onMouseleavePassive:B}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.label),1)])]),_:3},16,["class"]))}});function G(t,o,l){return e.computed(()=>{const a={[t]:!0},r="string"==typeof o?.value?o.value.split(" "):o?.value;return r&&Array.isArray(r)&&r.forEach(e=>{e&&(a[`${t}--${e}`]=!0)}),l&&Object.keys(l.value).forEach(o=>{a[`${t}--${o}`]=e.unref(l.value[o])}),a})}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:{}},i),setup(t){const o=t,a=e.computed(()=>"string"==typeof o.rotate?Number.parseFloat(o.rotate):o.rotate),r=e.ref(!0),n=U(),{modifiers:i}=e.toRefs(o),u=G("vv-icon",i),s=e.computed(()=>o.provider||n?.iconsProvider),d=e.computed(()=>{const e=o.name??"",t=`@${s.value}:${o.prefix}:${e}`;if(l.iconLoaded(t))return t;const a=n?.iconsCollections.find(t=>{const o=`@${s.value}:${t.prefix}:${e}`;return l.iconLoaded(o)});return a?`@${s.value}:${a.prefix}:${e}`:e});function c(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),a=t?.innerHTML.trim()||"";t&&a&&l.addIcon(`@${s.value}:${o.prefix}:${o.name}`,{body:a,height:t.viewBox.baseVal.height,width:t.viewBox.baseVal.width})}return n&&o.src&&!l.iconLoaded(`@${s.value}:${o.prefix}:${o.name}`)&&(r.value=!1,n.fetchIcon(o.src).then(e=>{e&&(c(e),r.value=!0)}).catch(e=>{throw new Error(`Error during fetch icon: ${e?.message}`)})),o.svg&&c(o.svg),(o,n)=>e.unref(r)?(e.openBlock(),e.createBlock(e.unref(l.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(a),color:t.color,icon:e.unref(d)},{onLoad:t.onLoad}),null,16,["class","onLoad"])):e.createCommentVNode("v-if",!0)}});function J(t){return e.computed(()=>String(t?.value||e.useId()))}function W(t,o){const l=e.computed(()=>"string"==typeof t?.value?{name:t?.value}:t?.value),a=e.computed(()=>o?.value===d.before?l.value:void 0),r=e.computed(()=>o?.value===d.after?l.value:void 0),n=e.computed(()=>o?.value===s.left?l.value:void 0),i=e.computed(()=>o?.value===s.right?l.value:void 0),u=e.computed(()=>o?.value===s.top?l.value:void 0),c=e.computed(()=>o?.value===s.bottom?l.value:void 0);return{hasIcon:l,hasIconLeft:n,hasIconRight:i,hasIconTop:u,hasIconBottom:c,hasIconBefore:a,hasIconAfter:r}}const K={key:1,class:"vv-button__label"},Y={key:1,class:"vv-button__label"},Z=e.defineComponent({name:"VvButton",inheritAttrs:!1,props:F,emits:["update:modelValue"],setup(t,{expose:o,emit:l}){const a=t,r=l,n=e.useAttrs(),i=e.useSlots(),{id:u,modifiers:d,iconPosition:c,icon:v,label:f,modelValue:p,disabled:m,toggle:g,unselectable:b}=z(a,r),y=J(u),h=e.computed(()=>n?.name||y.value),S=e.ref(null);o({$el:e.computed(()=>S.value?.$el)});const k=e.computed(()=>g.value?Array.isArray(p.value)?D(h.value,p.value):j(h.value,p.value):a.pressed),B=G("vv-button",d,e.computed(()=>({reverse:[s.right,s.bottom].includes(c.value),column:[s.top,s.bottom].includes(c.value),"icon-only":Boolean(v?.value&&!f?.value&&!i.default)}))),{hasIcon:L}=W(v),w=e.computed(()=>void 0!==a.value?a.value:h.value),V=e.computed(()=>{if(g.value)return{onClick:A}});function A(){if(g.value){if(Array.isArray(p.value))return D(w.value,p.value)?void(b.value&&(p.value=p.value.filter(e=>e!==w.value))):void p.value.push(w.value);if(w.value===p.value&&b.value)return void(p.value=a.uncheckedValue);p.value=w.value}}return(t,o)=>(e.openBlock(),e.createBlock(q,e.mergeProps({...e.unref(n),...e.unref(V),disabled:e.unref(m),pressed:e.unref(k),active:t.active,type:t.type,to:t.to,href:t.href,target:t.target,rel:t.rel,ariaLabel:t.ariaLabel},{id:e.unref(y),ref_key:"rootEl",ref:S,class:e.unref(B)}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{},()=>[t.loading?e.renderSlot(t.$slots,"loading",{key:0},()=>[t.loadingIcon?(e.openBlock(),e.createBlock(H,{key:0,class:"vv-button__loading-icon",name:t.loadingIcon},null,8,["name"])):e.createCommentVNode("v-if",!0),t.loadingLabel?(e.openBlock(),e.createElementBlock("span",K,e.toDisplayString(t.loadingLabel),1)):e.createCommentVNode("v-if",!0)]):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.renderSlot(t.$slots,"before"),e.unref(L)?(e.openBlock(),e.createBlock(H,e.mergeProps({key:0},e.unref(L),{class:"vv-button__icon"}),null,16)):e.createCommentVNode("v-if",!0),e.unref(f)?(e.openBlock(),e.createElementBlock("span",Y,[e.renderSlot(t.$slots,"label",{},()=>[e.createTextVNode(e.toDisplayString(e.unref(f)),1)])])):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"after")],64))])]),_:3},16,["id","class"]))}});const Q=["for"],X={class:"vv-input-file__preview"},ee=["src","alt"],te={class:"vv-input-file__wrapper"},oe=["id","readonly","disabled","required","placeholder","aria-describedby","aria-invalid","aria-errormessage","multiple","accept","capture","name"],le=["value"],ae=["onClick"],re=["title","onClick"],ne={class:"vv-input-file__item-name"},ie={class:"vv-input-file__item-info"},ue=["title","disabled","onClick"];return e.defineComponent({name:"VvInputFile",props:R,emits:["remove","download","update:modelValue"],setup(l,{emit:a}){const r=l,n=a,i=e.useSlots(),u=function(t,o,l){const a=U(),r=e.computed(()=>{if(a&&a.defaults.value?.[t])return a.defaults.value[t]});return e.computed(()=>{if(void 0===r.value)return l;const e=r.value,t=o,a=l;return Object.keys(t).reduce((o,l)=>{const r=a[l];if(o[l]=r,l in e){if(Array.isArray(t[l])){const a=t[l];a.length&&a[0]===r&&(o[l]=e[l])}if("function"==typeof t[l]&&(0,t[l])()===r&&(o[l]=e[l]),"object"==typeof t[l]){let a=t[l].default;"function"==typeof a&&(a=a()),"object"==typeof a?JSON.stringify(a)===JSON.stringify(r)&&(o[l]=e[l]):a===r&&(o[l]=e[l])}}return o},{})})}("VvInputFile",R,r),{modifiers:s,id:d,readonly:c,disabled:v,icon:f,iconPosition:p,iconDownload:m}=e.toRefs(r),g=J(d),b=e.computed(()=>`${g.value}-hint`),y=e.computed(()=>{if(!r.progress)return!1;const e="string"==typeof r.progress?Number.parseInt(r.progress):r.progress;return e>0&&e<100}),{hasIconBefore:h,hasIconAfter:S}=W(f,p),{hasIcon:k}=W(m),B=G("vv-input-file",s,e.computed(()=>({valid:!0===r.valid,invalid:!0===r.invalid,loading:r.loading&&!y.value,disabled:r.disabled,required:r.required,readonly:r.readonly,dragging:_.value,"icon-before":!!h.value,"icon-after":!!S.value,"drop-area":O.value}))),{HintSlot:L,hasHintLabelOrSlot:w,hasInvalidLabelOrSlot:V,hintSlotScope:A}=function(t,o){const l=e.computed(()=>e.isRef(t)?t.value:t),a=e.computed(()=>M(l.value.invalidLabel)),r=e.computed(()=>M(l.value.validLabel)),n=e.computed(()=>l.value.loadingLabel),i=e.computed(()=>l.value.hintLabel),u=e.computed(()=>Boolean(l.value.loading&&(o.loading||n.value))),s=e.computed(()=>!u.value&&Boolean(l.value.invalid&&(o.invalid||a.value))),d=e.computed(()=>!u.value&&!s.value&&Boolean(l.value.valid&&(o.valid||r.value))),c=e.computed(()=>!u.value&&!s.value&&!d.value&&Boolean(o.hint||i.value)),v=e.computed(()=>s.value||d.value||u.value||c.value),f=e.computed(()=>({modelValue:l.value.modelValue,valid:l.value.valid,invalid:l.value.invalid,loading:l.value.loading})),p=e.defineComponent({name:"HintSlot",props:{tag:{type:String,default:"small"}},setup:()=>({isVisible:v,invalidLabel:a,validLabel:r,loadingLabel:n,hintLabel:i,hasInvalidLabelOrSlot:s,hasValidLabelOrSlot:d,hasLoadingLabelOrSlot:u,hasHintLabelOrSlot:c}),render(){if(this.isVisible){let t;return this.hasInvalidLabelOrSlot&&(t="alert"),this.hasValidLabelOrSlot&&(t="status"),this.hasLoadingLabelOrSlot?e.h(this.tag,{role:t},this.$slots.loading?.()??this.loadingLabel):this.hasInvalidLabelOrSlot?e.h(this.tag,{role:t},this.$slots.invalid?.()??this.$slots.invalid??this.invalidLabel):this.hasValidLabelOrSlot?e.h(this.tag,{role:t},this.$slots.valid?.()??this.validLabel):e.h(this.tag,{role:t},this.$slots.hint?.()??this.$slots.hint??this.hintLabel)}return null}});return{hasInvalidLabelOrSlot:s,hasHintLabelOrSlot:c,hasValidLabelOrSlot:d,hasLoadingLabelOrSlot:u,hintSlotScope:f,HintSlot:p}}(u,i),$=t.useVModel(r,"modelValue",n),C=e.computed({get:()=>$.value&&(Array.isArray($.value)||$.value?.name)?Array.isArray($.value)?$.value:[$.value]:[],set:e=>{P.value?$.value=e:$.value=e?.[0]}}),x=e.computed(()=>r.disabled||r.readonly),N=e.computed(()=>"string"==typeof r.max?Number.parseInt(r.max):r.max),O=e.computed(()=>r.dropArea&&!x.value),P=e.computed(()=>!!r.multiple&&(!N.value||N.value-C.value.length>1)),_=e.ref(!1),I=e.ref();function j(){_.value=!0}function E(){_.value=!1}function D(e){e.dataTransfer?.files&&(_.value=!1,z(e.dataTransfer?.files))}function F(){I.value?.files&&(z(I.value.files),I.value.value="")}function z(e){const t=function(e,t){if(!t||""===t.trim()||"*"===t)return Array.from(e);const{mimeTypes:o,extensions:l,wildcards:a}=function(e){const t=[],o=[],l=[],a=e?.split(",").map(e=>e.trim().toLowerCase());return a?.length&&a.forEach(e=>{e.startsWith(".")?o.push(e):e.includes("/*")?l.push(e.replace("/*","")):t.push(e)}),{mimeTypes:t,extensions:o,wildcards:l}}(t);return Array.from(e).filter(e=>{const t=e.type.toLowerCase(),r=`.${e.name.split(".").pop()?.toLowerCase()}`,n=o.includes(t),i=a.some(e=>t.startsWith(`${e}/`)),u=l.some(e=>r===e.toLowerCase());return n||i||u})}(e,r.accept);if(!r.multiple)return Array.isArray($.value)?void($.value=t):void($.value=t[0]);let o=[];o=!Array.isArray($.value)&&$.value?[$.value]:$.value&&Array.isArray($.value)?[...$.value]:o;for(const l of t){if(N.value&&o.length>=N.value)break;o.push(l)}$.value=o,K.value=o.length-1}function T(){I.value&&(x.value||I.value.click())}function q(e){const t=Array.isArray($.value)?$.value[e]:$.value;if(!t)return;if(n("remove",t),!Array.isArray($.value))return void($.value=void 0);K.value===e&&(K.value=0);const o=[...$.value];o.splice(e,1),$.value=o}const K=e.ref(0),Y=["image/jpeg","image/png"],se=e.computed(()=>{if(r.hidePreview)return;if(0===C.value.length)return;if(!C.value[K.value])return;if(C.value[K.value]instanceof File){const e=C.value[K.value];if(!Y.includes(e.type))return;return URL.createObjectURL(e)}const e=C.value[K.value];return e.thumbnailUrl?e.thumbnailUrl:Y.includes(e.type)?e.url:void 0});function de(e,t){if(!e)return;if(0===e)return"0 Bytes";const o=t?t<=0?0:t:2,l=Math.floor(Math.log(e)/Math.log(1024));return`${Number.parseFloat((e/1024**l).toFixed(o))} ${["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"][l]}`}function ce(e){n("download",e);const t=e instanceof File?URL.createObjectURL(e):e.url;if(!t)return;const o=document.createElement("a");o.href=t,o.setAttribute("download",e.name),document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(o.href)}function ve(e){K.value=e}e.watch(se,(e,t)=>{t&&URL.revokeObjectURL(t)}),e.onBeforeUnmount(()=>{se.value&&URL.revokeObjectURL(se.value)});const fe=e.computed(()=>0===C.value.length||P.value?r.labelAdd:r.labelReplace),pe=e.computed(()=>0===C.value.length||P.value?r.iconAdd:r.iconReplace);function me({newIndex:e}){null!==e&&(K.value=e)}return(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(B))},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(g)},e.toDisplayString(t.label),9,Q)):e.createCommentVNode("v-if",!0),O.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:"vv-input-file__drop-area",onDragenter:e.withModifiers(j,["prevent","stop"]),onDragleave:e.withModifiers(E,["prevent","stop"]),onDrop:e.withModifiers(D,["prevent","stop"]),onDragover:l[0]||(l[0]=e.withModifiers(()=>{},["prevent","stop"])),onClick:e.withModifiers(T,["stop"])},[e.renderSlot(t.$slots,"drop-area",e.normalizeProps(e.guardReactiveProps({previewSrc:se.value,onClickDropArea:T})),()=>[e.createElementVNode("picture",X,[se.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:se.value,alt:C.value[K.value].name},null,8,ee)):e.createCommentVNode("v-if",!0)]),e.unref(c)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createBlock(Z,{key:0,modifiers:"action",label:se.value?void 0:fe.value,title:se.value?fe.value:void 0,disabled:e.unref(v),class:e.normalizeClass({"vv-input-file__drop-area-action":se.value}),icon:pe.value,onClick:e.withModifiers(T,["stop"])},null,8,["label","title","disabled","class","icon"]))])],32)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",te,[e.unref(h)?(e.openBlock(),e.createBlock(H,e.normalizeProps(e.mergeProps({key:0},e.unref(h))),null,16)):e.createCommentVNode("v-if",!0),e.createElementVNode("input",{id:e.unref(g),ref_key:"inputEl",ref:I,type:"file",readonly:e.unref(c),disabled:e.unref(v),required:t.required,placeholder:t.placeholder,"aria-describedby":e.unref(w)?b.value:void 0,"aria-invalid":t.invalid,"aria-errormessage":e.unref(V)?b.value:void 0,multiple:P.value,accept:t.accept,capture:t.capture,name:t.name,onChange:F},null,40,oe),y.value?(e.openBlock(),e.createElementBlock("progress",{key:1,class:"vv-input-file__progress",value:t.progress,max:"100"},e.toDisplayString(t.progress)+"% ",9,le)):e.createCommentVNode("v-if",!0),e.unref(S)?(e.openBlock(),e.createBlock(H,e.normalizeProps(e.mergeProps({key:2},e.unref(S))),null,16)):e.createCommentVNode("v-if",!0)]),e.renderSlot(t.$slots,"file-list",e.normalizeProps(e.guardReactiveProps({files:C.value,selectedFileIndex:K.value,onSelectIndex:ve,onRemoveIndex:q,onDownloadFile:ce,formatBytes:de})),()=>[e.createVNode(e.unref(o),{modelValue:C.value,"onUpdate:modelValue":l[1]||(l[1]=e=>C.value=e),tag:"ul",class:"vv-input-file__list","item-key":"name",move:()=>t.sortable,onEnd:me},{item:e.withCtx(({element:o,index:l})=>[e.createElementVNode("li",{class:e.normalizeClass(["vv-input-file__item",{active:l===K.value&&O.value&&C.value.length>1,"cursor-move":t.sortable}]),onClick:e.withModifiers(e=>ve(l),["stop"])},[e.renderSlot(t.$slots,"file-item",e.normalizeProps(e.guardReactiveProps({file:o,index:l,isSelected:l===K.value,onRemoveIndex:q,onDownloadFile:ce,formatBytes:de})),()=>[e.unref(k)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"vv-input-file__item-action",title:t.labelDownload,onClick:e.withModifiers(e=>ce(o),["stop"])},[e.createVNode(H,e.normalizeProps(e.guardReactiveProps(e.unref(k))),null,16)],8,re)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",ne,e.toDisplayString(o.name),1),e.createElementVNode("small",ie,e.toDisplayString(de(o.size)),1),e.unref(c)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vv-input-file__item-remove",title:t.labelRemove,disabled:e.unref(v),onClick:e.withModifiers(e=>q(l),["stop"])},null,8,ue))])],10,ae)]),_:3},8,["modelValue","move"])]),e.createVNode(e.unref(L),{id:b.value,class:"vv-input-file__hint"},e.createSlots({_:2},[t.$slots.hint?{name:"hint",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"hint",e.normalizeProps(e.guardReactiveProps(e.unref(A))))]),key:"0"}:void 0,t.$slots.loading?{name:"loading",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"loading",e.normalizeProps(e.guardReactiveProps(e.unref(A))))]),key:"1"}:void 0,t.$slots.valid?{name:"valid",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"valid",e.normalizeProps(e.guardReactiveProps(e.unref(A))))]),key:"2"}:void 0,t.$slots.invalid?{name:"invalid",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"invalid",e.normalizeProps(e.guardReactiveProps(e.unref(A))))]),key:"3"}:void 0]),1032,["id"])],2))}})});
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { UploadedFile } from '../../types';
|
|
2
|
+
declare const _default: typeof __VLS_export;
|
|
3
|
+
export default _default;
|
|
2
4
|
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<globalThis.ExtractPropTypes<{
|
|
3
5
|
modelValue: {
|
|
4
6
|
type: PropType<File | UploadedFile | (File | UploadedFile)[]>;
|
|
@@ -36,6 +38,10 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<global
|
|
|
36
38
|
type: BooleanConstructor;
|
|
37
39
|
default: boolean;
|
|
38
40
|
};
|
|
41
|
+
hidePreview: {
|
|
42
|
+
type: BooleanConstructor;
|
|
43
|
+
default: boolean;
|
|
44
|
+
};
|
|
39
45
|
labelAdd: {
|
|
40
46
|
type: StringConstructor;
|
|
41
47
|
default: string;
|
|
@@ -167,6 +173,10 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<global
|
|
|
167
173
|
type: BooleanConstructor;
|
|
168
174
|
default: boolean;
|
|
169
175
|
};
|
|
176
|
+
hidePreview: {
|
|
177
|
+
type: BooleanConstructor;
|
|
178
|
+
default: boolean;
|
|
179
|
+
};
|
|
170
180
|
labelAdd: {
|
|
171
181
|
type: StringConstructor;
|
|
172
182
|
default: string;
|
|
@@ -266,7 +276,6 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<global
|
|
|
266
276
|
disabled: boolean;
|
|
267
277
|
modifiers: string | string[];
|
|
268
278
|
progress: string | number;
|
|
269
|
-
placeholder: string;
|
|
270
279
|
icon: string | import("../VvIcon").VvIconProps;
|
|
271
280
|
iconPosition: "before" | "after";
|
|
272
281
|
required: boolean;
|
|
@@ -279,11 +288,13 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<global
|
|
|
279
288
|
invalidLabel: string | unknown[];
|
|
280
289
|
valid: boolean;
|
|
281
290
|
validLabel: string | unknown[];
|
|
291
|
+
placeholder: string;
|
|
282
292
|
accept: string;
|
|
283
293
|
capture: "user" | "environment";
|
|
284
294
|
max: string | number;
|
|
285
295
|
dropArea: boolean;
|
|
286
296
|
sortable: boolean;
|
|
297
|
+
hidePreview: boolean;
|
|
287
298
|
labelAdd: string;
|
|
288
299
|
iconAdd: string | import("../VvIcon").VvIconProps;
|
|
289
300
|
labelReplace: string;
|
|
@@ -292,7 +303,28 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<global
|
|
|
292
303
|
iconDownload: string | import("../VvIcon").VvIconProps;
|
|
293
304
|
labelRemove: string;
|
|
294
305
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
|
|
295
|
-
'drop-area'?: (props: {
|
|
306
|
+
'drop-area'?: (props: {
|
|
307
|
+
previewSrc: string | undefined;
|
|
308
|
+
onClickDropArea: () => void;
|
|
309
|
+
}) => any;
|
|
310
|
+
} & {
|
|
311
|
+
'file-list'?: (props: {
|
|
312
|
+
files: (File | UploadedFile)[];
|
|
313
|
+
selectedFileIndex: number;
|
|
314
|
+
onSelectIndex: (index: number) => void;
|
|
315
|
+
onRemoveIndex: (index: number) => void;
|
|
316
|
+
onDownloadFile: (file: File | UploadedFile) => void;
|
|
317
|
+
formatBytes: (bytes?: number, decimals?: number) => string | undefined;
|
|
318
|
+
}) => any;
|
|
319
|
+
} & {
|
|
320
|
+
'file-item'?: (props: {
|
|
321
|
+
file: any;
|
|
322
|
+
index: any;
|
|
323
|
+
isSelected: boolean;
|
|
324
|
+
onRemoveIndex: (index: number) => void;
|
|
325
|
+
onDownloadFile: (file: File | UploadedFile) => void;
|
|
326
|
+
formatBytes: (bytes?: number, decimals?: number) => string | undefined;
|
|
327
|
+
}) => any;
|
|
296
328
|
} & {
|
|
297
329
|
hint?: (props: {
|
|
298
330
|
modelValue: unknown;
|
|
@@ -322,8 +354,6 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<global
|
|
|
322
354
|
loading: boolean;
|
|
323
355
|
}) => any;
|
|
324
356
|
}>;
|
|
325
|
-
declare const _default: typeof __VLS_export;
|
|
326
|
-
export default _default;
|
|
327
357
|
type __VLS_WithSlots<T, S> = T & {
|
|
328
358
|
new (): {
|
|
329
359
|
$slots: S;
|