@volverjs/ui-vue 0.0.13-beta.2 → 0.0.13-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/VvCombobox/VvCombobox.vue.d.ts +1 -1
- package/dist/components/VvInputText/VvInputText.es.js +3 -3
- package/dist/components/VvInputText/VvInputText.umd.js +1 -1
- package/dist/components/VvInputText/VvInputText.vue.d.ts +16 -6
- package/dist/components/VvInputText/index.d.ts +7 -0
- package/dist/components/VvVirtualScroll/VvVirtualScroll.es.js +1 -0
- package/dist/components/VvVirtualScroll/VvVirtualScroll.umd.js +1 -0
- package/dist/components/VvVirtualScroll/VvVirtualScroll.vue.d.ts +51 -0
- package/dist/components/index.es.js +5 -5
- package/dist/components/index.umd.js +1 -1
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/index.es.js +2 -2
- package/dist/composables/index.umd.js +1 -1
- package/dist/composables/useVirtualScroll.d.ts +35 -0
- package/dist/directives/index.es.js +2 -2
- package/dist/directives/index.umd.js +1 -1
- package/dist/directives/v-contextmenu.es.js +1 -1
- package/dist/directives/v-contextmenu.umd.js +1 -1
- package/dist/icons.es.js +1 -1
- package/dist/icons.umd.js +1 -1
- package/dist/stories/Accordion/Accordion.settings.d.ts +1 -1
- package/dist/stories/AlertGroup/AlertGroupWithComposable.stories.d.ts +3 -5
- package/dist/stories/Avatar/Avatar.settings.d.ts +1 -1
- package/dist/stories/InputText/InputTextSuggestions.stories.d.ts +8 -0
- package/dist/stories/Tooltip/Tooltip.settings.d.ts +1 -1
- package/dist/stories/VirtualScroll/VirtualScroll.settings.d.ts +5 -0
- package/dist/stories/VirtualScroll/VirtualScroll.stories.d.ts +7 -0
- package/dist/stories/VirtualScroll/VirtualScroll.test.d.ts +2 -0
- package/dist/stories/VirtualScroll/VirtualScrollWithComposable.stories.d.ts +4 -0
- package/package.json +42 -29
|
@@ -335,7 +335,7 @@ declare const __VLS_export: <T extends string | Option>(__VLS_props: NonNullable
|
|
|
335
335
|
loading: boolean;
|
|
336
336
|
}) => any;
|
|
337
337
|
};
|
|
338
|
-
emit: (((evt: "clear") => void) & ((evt: "update:modelValue", args_0: any) => void) & ((evt: "blur", args_0: import("@vueuse/core").MaybeElement) => void) & ((evt: "focus", args_0: import("@vueuse/core").MaybeElement) => void) & ((evt: "update:search", args_0: string) => void) & ((evt: "update:options", args_0: (string | Option)[]) => void) & ((evt: "change:search", args_0: string) => void)) & ((
|
|
338
|
+
emit: (((evt: "clear") => void) & ((evt: "update:modelValue", args_0: any) => void) & ((evt: "blur", args_0: import("@vueuse/core").MaybeElement) => void) & ((evt: "focus", args_0: import("@vueuse/core").MaybeElement) => void) & ((evt: "update:search", args_0: string) => void) & ((evt: "update:options", args_0: (string | Option)[]) => void) & ((evt: "change:search", args_0: string) => void)) & ((event: "update:search", value: string) => void);
|
|
339
339
|
}>) => import("vue").VNode & {
|
|
340
340
|
__ctx?: Awaited<typeof __VLS_setup>;
|
|
341
341
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{unref as e,computed as t,isRef as a,defineComponent as l,h as o,useId as i,Fragment as n,provide as r,ref as u,toRefs as s,useAttrs as d,onMounted as v,watch as c,createElementBlock as p,openBlock as f,createVNode as m,withCtx as b,renderSlot as h,normalizeProps as g,guardReactiveProps as y,Transition as S,mergeProps as w,toHandlers as E,withDirectives as $,createElementVNode as x,normalizeClass as L,normalizeStyle as T,createCommentVNode as D,vShow as k,nextTick as O,inject as A,createBlock as _,createTextVNode as I,toDisplayString as M,mergeDefaults as N,useSlots as H,withModifiers as C,createSlots as B,renderList as P}from"vue";import{useIMask as V}from"vue-imask";import{autoPlacement as R,flip as j,shift as U,size as F,offset as Y,arrow as W,useFloating as z,autoUpdate as q}from"@floating-ui/vue";import{useMutationObserver as K,useVModel as X,onClickOutside as J,useFocusWithin as Z,useElementHover as G,onKeyStroke as Q,useFocus as ee,useStorage as te,useElementVisibility as ae}from"@vueuse/core";import le from"mitt";import{iconLoaded as oe,Icon as ie,addIcon as ne}from"@iconify/vue";const re=e=>e.toString().padStart(2,"0");function ue(e){if("string"!=typeof e)return!1;if(!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?(?:Z|[+-]\d{2}:?\d{2})?$/.test(e))return!1;const t=new Date(e);return!Number.isNaN(t.getTime())&&t.toISOString()===e}function se(e,t="date",a){if("string"==typeof e&&!ue(e))return"";const l=new Date(e);if(Number.isNaN(l.getTime()))return"";let o=`${l.getFullYear()}-${re(l.getMonth()+1)}`;if("month"===t)return o;if(o+=`-${re(l.getDate())}`,"date"===t)return o;const i=a?`${re(l.getHours())}:${re(l.getMinutes())}:${re(l.getSeconds())}`:`${re(l.getHours())}:${re(l.getMinutes())}`;return"time"===t?i:`${o}T${i}`}function de(t){return null==(a=e(t))||""===a||Array.isArray(a)&&0===a.length||!(a instanceof Date)&&"object"==typeof a&&0===Object.keys(a).length;var a}function ve(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e).join(" "):e}var ce=/* @__PURE__ */(e=>(e.local="local",e.session="session",e))(ce||{}),pe=/* @__PURE__ */(e=>(e.absolute="absolute",e.fixed="fixed",e))(pe||{}),fe=/* @__PURE__ */(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(fe||{}),me=/* @__PURE__ */(e=>(e.topStart="top-start",e.topEnd="top-end",e.bottomStart="bottom-start",e.bottomEnd="bottom-end",e.leftStart="left-start",e.leftEnd="left-end",e.rightStart="right-start",e.rightEnd="right-end",e))(me||{}),be=/* @__PURE__ */(e=>(e.before="before",e.after="after",e))(be||{}),he=/* @__PURE__ */(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(he||{}),ge=/* @__PURE__ */(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(ge||{}),ye=/* @__PURE__ */(e=>(e.button="button",e.link="link",e.menuitem="menuitem",e))(ye||{}),Se=/* @__PURE__ */(e=>(e.listbox="listbox",e.menu="menu",e))(Se||{}),we=/* @__PURE__ */(e=>(e.option="option",e.presentation="presentation",e))(we||{});const Ee=/* @__PURE__ */Symbol.for("volver"),$e=/* @__PURE__ */Symbol.for("dropdownTrigger"),xe=/* @__PURE__ */Symbol.for("dropdownItem"),Le=/* @__PURE__ */Symbol.for("dropdownAction"),Te="eye-on",De="eye-off",ke="calendar",Oe="time",Ae="color",_e="close",Ie="trash",Me={prefix:"normal"},Ne={valid:{type:Boolean,default:!1},validLabel:{type:[String,Array],default:void 0}},He={invalid:{type:Boolean,default:!1},invalidLabel:{type:[String,Array],default:void 0}},Ce={loading:{type:Boolean,default:!1},loadingLabel:{type:String,default:"Loading..."}},Be={disabled:{type:Boolean,default:!1}},Pe={required:{type:Boolean,default:!1}},Ve={selected:{type:Boolean,default:!1}},Re={label:{type:[String,Number],default:void 0}},je={readonly:{type:Boolean,default:!1}},Ue={modifiers:{type:[String,Array],default:void 0}},Fe={hintLabel:{type:String,default:""}},Ye={count:{type:[Boolean,String],default:!1,validator:e=>[!0,!1,"limit","countdown"].includes(e)}},We={debounce:{type:[Number,String],default:void 0}},ze={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:be.before,validation:e=>Object.values(be).includes(e)}},qe={tabindex:{type:[String,Number],default:0}},Ke={floating:{type:Boolean,default:!1}},Xe={unselectable:{type:Boolean,default:!0}},Je={id:[String,Number]},Ze={placement:{type:String,default:fe.bottom,validator:e=>Object.values(fe).includes(e)||Object.values(me).includes(e)},strategy:{type:String,default:void 0,validator:e=>Object.values(pe).includes(e)},transitionName:{type:String,default:void 0},offset:{type:[Number,String,Object],default:0},shift:{type:[Boolean,Object],default:!1},flip:{type:[Boolean,Object],default:!0},size:{type:[Boolean,Object],default:()=>({padding:10})},autoPlacement:{type:[Boolean,Object],default:!1},arrow:{type:Boolean,default:!1},keepOpen:{type:Boolean,default:!1},autofocusFirst:{type:Boolean,default:!0},triggerWidth:{type:Boolean,default:!1}},Ge={...{...Je,name:{type:String,required:!0}},...{autofocus:{type:Boolean,default:!1}},...{autocomplete:{type:String,default:"off"}},...qe,...Be,...je,...Ne,...He,...Fe,...Ce,...Ue,...Ye,...We,...ze,...Ke,...Re,minlength:{type:[String,Number],default:void 0},maxlength:{type:[String,Number],default:void 0},placeholder:{type:String,default:void 0},...Pe};he.button,ge.button;const Qe={storageType:{type:String,default:ce.local,validator:e=>Object.values(ce).includes(e)},storageKey:String},et={...Je,...Ze,...Ue,modelValue:{type:Boolean,default:void 0},reference:{type:Object,default:null},role:{type:String,default:Se.menu,validator:e=>Object.values(Se).includes(e)}},tt={focusOnHover:{type:Boolean,default:!1}},at={...Be,...Ve,...Xe,...Ue,deselectHintLabel:{type:String},selectHintLabel:{type:String},selectedHintLabel:{type:String},focusOnHover:{type:Boolean,default:!1}};function lt(e){return t(()=>String(e?.value||i()))}function ot(a,l,o){return t(()=>{const t={[a]:!0},i="string"==typeof l?.value?l.value.split(" "):l?.value;return i&&Array.isArray(i)&&i.forEach(e=>{e&&(t[`${a}--${e}`]=!0)}),o&&Object.keys(o.value).forEach(l=>{t[`${a}--${l}`]=e(o.value[l])}),t})}const it=["id","tabindex","role","aria-labelledby"],nt=/* @__PURE__ */l({name:"VvDropdown",inheritAttrs:!1,props:et,emits:["update:modelValue","beforeEnter","afterLeave","beforeExpand","beforeCollapse","afterExpand","afterCollapse","before-enter","after-leave","enter","afterEnter","enterCancelled","beforeLeave","leave","leaveCancelled"],setup(a,{expose:i,emit:A}){const _=a,I=A,{id:M}=s(_),N=lt(M),H=d(),C=u("auto"),B=u("auto"),P=u(),V=u(),ee=u(),te=u(),ae=t({get:()=>_.reference??P.value,set:e=>{P.value=e}}),oe=u(!1);v(()=>{K(V.value,()=>{oe.value="true"===window.getComputedStyle(V.value).getPropertyValue("--dropdown-custom-position")?.trim()},{attributeFilter:["style"],window:window})});const ie=t(()=>{const e=[];if(_.autoPlacement?"boolean"==typeof _.autoPlacement?e.push(R()):e.push(R(_.autoPlacement)):_.flip&&("boolean"==typeof _.flip?e.push(j({fallbackStrategy:"initialPlacement"})):e.push(j(_.flip))),_.shift&&("boolean"==typeof _.shift?e.push(U()):e.push(U(_.shift))),_.size){const t=({availableWidth:e,availableHeight:t})=>{C.value=`${e}px`,B.value=`${t}px`};"boolean"==typeof _.size?e.push(F({apply:t})):e.push(F({..._.size,apply:t}))}return _.offset&&(e.push(Y(Number(_.offset))),["string","number"].includes(typeof _.offset)?e.push(Y(Number(_.offset))):e.push(Y(_.offset))),_.arrow&&e.push(W({element:ee})),e}),{x:ne,y:re,middlewareData:ue,placement:se,strategy:de}=z(ae,V,{whileElementsMounted:(...e)=>q(...e,{animationFrame:_.strategy===pe.fixed}),placement:t(()=>_.placement),strategy:t(()=>_.strategy),middleware:ie}),ve=t(()=>{if(oe.value)return;const e=_.triggerWidth&&ae.value?`${ae.value?.offsetWidth}px`:void 0;return{position:de.value,top:`${re.value??0}px`,left:`${ne.value??0}px`,maxWidth:e?void 0:C.value,maxHeight:B.value,width:e}}),ce=t(()=>se.value.split("-")[0]),me=t(()=>{if(oe.value)return;const e={[fe.top]:fe.bottom,[fe.right]:fe.left,[fe.bottom]:fe.top,[fe.left]:fe.right}[ce.value];return{left:void 0!==ue.value.arrow?.x?`${ue.value.arrow?.x}px`:void 0,top:void 0!==ue.value.arrow?.y?`${ue.value.arrow?.y}px`:void 0,[e]:-(ee.value?.offsetWidth??0)/2+"px"}}),be=X(_,"modelValue",I),he=u(!1),ge=t({get:()=>be.value??he.value,set:e=>{void 0!==be.value?be.value=e:he.value=e}});function ye(){ge.value=!0}function Ee(){ge.value=!1}function Le(){ge.value=!ge.value}function Te(e){ae.value=e}J(V,()=>{!_.keepOpen&&ge.value&&(ge.value=!1)},{ignore:[ae]});const De=t(()=>ae.value?.getAttribute?.("id")??void 0),ke=t(()=>({"aria-controls":N.value,"aria-haspopup":!0,"aria-expanded":ge.value})),{component:Oe,bus:Ae}=function({reference:e,id:t,expanded:a,aria:i}){const u=le(),s=l({name:"VvDropdownTriggerProvider",setup(){r($e,{reference:e,id:t,expanded:a,aria:i,bus:u})},render(){return o(n,{},this.$slots.default?.())}});return{bus:u,component:s}}({reference:ae,id:N,expanded:ge,aria:ke});Ae.on("click",Le);const{role:_e,modifiers:Ie}=s(_),Me=ot("vv-dropdown",Ie,t(()=>({arrow:_.arrow}))),{focused:Ne}=Z(V);function He(e){return e?[...e.querySelectorAll('a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])')].filter(e=>!e.hasAttribute("disabled")&&!e.getAttribute("aria-hidden")):[]}function Ce(){O(()=>{const e=He(V.value);e.length>0&&e[0].focus({preventScroll:!0})})}function Be(){O(()=>{if(Ne.value){const e=He(V.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t<e.length-1?e[t+1].focus({preventScroll:!0}):e[0].focus({preventScroll:!0})}})}function Pe(){O(()=>{if(Ne.value){const e=He(V.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t>0?e[t-1].focus({preventScroll:!0}):e[e.length-1].focus({preventScroll:!0})}})}c(ge,e=>{e&&_.autofocusFirst&&Ce()}),i({toggle:Le,show:ye,hide:Ee,init:Te,focusFirst:Ce,focusFirstListElement:function(){O(()=>{const e=He(te.value);e.length>0&&e[0].focus({preventScroll:!0})})},focusNext:Be,focusPrev:Pe,customPosition:oe});const Ve=G(V),{itemRole:Re}=function({role:e,...a}){const l=t(()=>e.value===Se.listbox?we.option:we.presentation);return r(xe,{role:l,...a}),{itemRole:l}}({role:_e,expanded:ge,focused:Ne,hovered:Ve});Q("Escape",e=>{ge.value&&(e.preventDefault(),Ee())}),Q("ArrowDown",e=>{ge.value&&Ne.value&&(e.preventDefault(),Be())}),Q("ArrowUp",e=>{ge.value&&Ne.value&&(e.preventDefault(),Pe())}),Q([" ","Enter"],e=>{const t=e.target;ge.value&&Ne.value&&t&&t?.click()});const je={"before-enter":()=>{I(ge.value?"beforeExpand":"beforeCollapse"),I("beforeEnter")},"after-leave":()=>{I(ge.value?"afterExpand":"afterCollapse"),I("afterLeave")},enter:()=>{I("enter")},"after-enter":()=>{I("afterEnter")},"enter-cancelled":()=>{I("enterCancelled")},"before-leave":()=>{I("beforeLeave")},leave:()=>{I("leave")},"leave-cancelled":()=>{I("leaveCancelled")}};return(t,a)=>(f(),p(n,null,[m(e(Oe),null,{default:b(()=>[h(t.$slots,"default",g(y({init:Te,show:ye,hide:Ee,toggle:Le,expanded:e(ge),aria:e(ke)})))]),_:3}),m(S,w({name:t.transitionName},E(je),{persisted:""}),{default:b(()=>[$(x("div",{ref_key:"floatingEl",ref:V,style:T(e(ve)),class:L(e(Me))},[_.arrow?(f(),p("div",{key:0,ref_key:"arrowEl",ref:ee,style:T(e(me)),class:"vv-dropdown__arrow"},null,4)):D("v-if",!0),h(t.$slots,"before",g(y({expanded:e(ge)}))),x("div",w(e(H),{id:e(N),ref_key:"listEl",ref:te,tabindex:e(ge)?void 0:-1,role:e(_e),"aria-labelledby":e(De),class:"vv-dropdown__list"}),[h(t.$slots,"items",g(y({role:e(Re)})))],16,it),h(t.$slots,"after",g(y({expanded:e(ge)})))],6),[[k,e(ge)]])]),_:3},16,["name"])],64))}});const rt=/* @__PURE__ */l({name:"VvDropdownItem",props:tt,setup(t){const a=t,{role:l,expanded:o}=A(xe,{}),i=u(null);!function({expanded:e}){r(Le,{role:u(ye.menuitem),expanded:e})}({expanded:o});const n=G(i),{focused:s}=ee(i),{focused:d}=Z(i);return c(n,e=>{e&&a.focusOnHover&&(s.value=!0)}),(t,a)=>(f(),p("div",w({role:e(l)},{ref_key:"element",ref:i,class:["vv-dropdown__item",{"focus-visible":e(s)||e(d)}]}),[h(t.$slots,"default")],16))}}),ut=["title"],st=/* @__PURE__ */l({name:"VvDropdownOption",props:at,setup(a){const l=a,{modifiers:o}=s(l),i=ot("vv-dropdown-option",o,t(()=>({disabled:l.disabled,selected:l.selected,unselectable:l.unselectable&&l.selected}))),n=t(()=>l.selected?l.unselectable?l.deselectHintLabel:l.selectedHintLabel:l.disabled?"":l.selectHintLabel);return(t,a)=>(f(),_(rt,{class:L(e(i)),tabindex:t.disabled?-1:0,"aria-selected":t.selected,"aria-disabled":t.disabled,"focus-on-hover":t.focusOnHover},{default:b(()=>[h(t.$slots,"default"),x("span",{class:"vv-dropdown-option__hint",title:e(n)},[h(t.$slots,"hint",g(y({disabled:t.disabled,selected:t.selected,unselectable:t.unselectable})),()=>[I(M(e(n)),1)])],8,ut)]),_:3},8,["class","tabindex","aria-selected","aria-disabled","focus-on-hover"]))}});function dt(){return A(Ee,void 0)}const vt=/* @__PURE__ */l({name:"VvIcon",props:/* @__PURE__ */N({name:{},color:{},width:{},height:{},provider:{},prefix:{},src:{},horizontalFlip:{type:Boolean},verticalFlip:{type:Boolean},flip:{},mode:{},inline:{type:Boolean},rotate:{},onLoad:{type:Function},svg:{},modifiers:{}},Me),setup(a){const l=a,o=t(()=>"string"==typeof l.rotate?Number.parseFloat(l.rotate):l.rotate),i=u(!0),n=dt(),{modifiers:r}=s(l),d=ot("vv-icon",r),v=t(()=>l.provider||n?.iconsProvider),c=t(()=>{const e=l.name??"",t=`@${v.value}:${l.prefix}:${e}`;if(oe(t))return t;const a=n?.iconsCollections.find(t=>{const a=`@${v.value}:${t.prefix}:${e}`;return oe(a)});return a?`@${v.value}:${a.prefix}:${e}`:e});function p(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&&ne(`@${v.value}:${l.prefix}:${l.name}`,{body:a,height:t.viewBox.baseVal.height,width:t.viewBox.baseVal.width})}return n&&l.src&&!oe(`@${v.value}:${l.prefix}:${l.name}`)&&(i.value=!1,n.fetchIcon(l.src).then(e=>{e&&(p(e),i.value=!0)}).catch(e=>{throw new Error(`Error during fetch icon: ${e?.message}`)})),l.svg&&p(l.svg),(t,l)=>e(i)?(f(),_(e(ie),w({key:0,class:e(d)},{inline:a.inline,width:a.width,height:a.height,horizontalFlip:a.horizontalFlip,verticalFlip:a.verticalFlip,flip:a.flip,rotate:e(o),color:a.color,icon:e(c)},{onLoad:a.onLoad}),null,16,["class","onLoad"])):D("v-if",!0)}}),ct={TEXT:"text",PASSWORD:"password",NUMBER:"number",EMAIL:"email",TEL:"tel",URL:"url",COLOR:"color",SEARCH:"search",DATE:"date",TIME:"time",DATETIME_LOCAL:"datetime-local",MONTH:"month",WEEK:"week"},pt={...Ge,...Qe,modelValue:[String,Number,Date],type:{type:String,default:ct.TEXT,validator:e=>Object.values(ct).includes(e)},min:[Number,Date,String],max:[Number,Date,String],step:{type:[String,Number],default:1},pattern:String,multiple:Boolean,iconShowPassword:{type:[String,Object],default:Te},iconHidePassword:{type:[String,Object],default:De},iconClear:{type:[String,Object],default:_e},iconRemoveSuggestion:{type:[String,Object],default:Ie},labelStepUp:{type:String,default:"Increase value"},labelStepDown:{type:String,default:"Decrease value"},labelShowPassword:{type:String,default:"Show password"},labelHidePassword:{type:String,default:"Hide password"},labelClear:{type:String,default:"Clear"},labelRemoveSuggestion:{type:String,default:"Remove suggestion"},iMask:{type:Object,default:void 0},masked:{type:String,default:void 0},autoWidth:{type:Boolean,default:!1},hideActions:{type:Boolean,default:!1},unit:{type:String},selectOnFocus:{type:Boolean,default:!1},maxSuggestions:{type:Number,default:5},inputMode:{type:String,default:"text"}};function ft(e,a){const l=t(()=>"string"==typeof e?.value?{name:e?.value}:e?.value),o=t(()=>a?.value===be.before?l.value:void 0),i=t(()=>a?.value===be.after?l.value:void 0),n=t(()=>a?.value===fe.left?l.value:void 0),r=t(()=>a?.value===fe.right?l.value:void 0),u=t(()=>a?.value===fe.top?l.value:void 0),s=t(()=>a?.value===fe.bottom?l.value:void 0);return{hasIcon:l,hasIconLeft:n,hasIconRight:r,hasIconTop:u,hasIconBottom:s,hasIconBefore:o,hasIconAfter:i}}const mt=l({components:{VvIcon:vt},props:{inputType:{type:String,default:"input-text"},disabled:{type:Boolean,default:!1},label:{type:String,default:"Clear"},icon:{type:[String,Object],default:"close"}},emits:["clear"],setup(e,{emit:a}){const{hasIcon:l}=ft(t(()=>e.icon));return{hasIcon:l,onClick:function(t){t?.stopPropagation(),e.disabled||a("clear")}}},render(){const e=this.hasIcon?o(vt,{...this.hasIcon,class:`vv-${this.inputType}__icon`}):void 0;return o("button",{disabled:this.disabled,class:`vv-${this.inputType}__action`,ariaLabel:this.label,type:"button",onClick:this.onClick},e)}}),bt=l({components:{VvIcon:vt},props:{inputType:{type:String,default:"input-text"},disabled:{type:Boolean,default:!1},labelShow:{type:String,default:"Show password"},labelHide:{type:String,default:"Hide password"},iconShow:{type:[String,Object],default:Te},iconHide:{type:[String,Object],default:De}},emits:["toggle-password"],setup(e,{emit:a}){const l=u(!1),o=t(()=>l.value?e.iconHide:e.iconShow),{hasIcon:i}=ft(o);return{active:l,activeIcon:o,hasIcon:i,onClick:function(t){t?.stopPropagation(),e.disabled||(l.value=!l.value,a("toggle-password",l.value))}}},render(){const e=this.hasIcon?o(vt,{...this.hasIcon,class:`vv-${this.inputType}__icon`}):void 0;return o("button",{disabled:this.disabled,class:`vv-${this.inputType}__action`,ariaLabel:this.active?this.labelHide:this.labelShow,type:"button",onClick:this.onClick},e)}}),ht=l({components:{VvIcon:vt},props:{inputType:{type:String,default:"input-text"},disabled:{type:Boolean,default:!1},label:{type:String},mode:{type:String,validator:e=>["up","down"].includes(e),default:"up"}},emits:["step-up","step-down"],setup(e,{emit:a}){const l=t(()=>"up"===e.mode);return{isUp:l,onClick:t=>{t?.stopPropagation(),e.disabled||a(l.value?"step-up":"step-down")}}},render(){return o("button",{class:[`vv-${this.inputType}__action`,`vv-${this.inputType}__action-chevron`,this.isUp?`vv-${this.inputType}__action-chevron-up`:void 0],disabled:this.disabled,ariaLabel:this.label,type:"button",onClick:this.onClick})}});function gt(e,a,l){return{name:"VvInputTextActions",components:{VvIcon:vt,VvInputPasswordAction:bt,VvInputStepAction:ht,VvInputClearAction:mt},setup(){const e=t(()=>a.disabled||a.readonly);return{isDirty:l,isDisabled:e,labelStepUp:a.labelStepUp,labelStepDown:a.labelStepDown,labelShowPassword:a.labelShowPassword,labelHidePassword:a.labelHidePassword,labelClear:a.labelClear,iconShowPassword:a.iconShowPassword,iconHidePassword:a.iconHidePassword}},render(){let t=null;switch(e){case ct.SEARCH:{const{onClear:e}=this.$attrs;t=[o(mt,{disabled:this.isDisabled||!this.isDirty,label:this.labelClear,onClear:e})];break}case ct.PASSWORD:{const{onTogglePassword:e}=this.$attrs;t=[o(bt,{disabled:this.isDisabled,onTogglePassword:e,labelShow:this.labelShowPassword,labelHide:this.labelHidePassword,iconShow:this.iconShowPassword,iconHide:this.iconHidePassword})];break}case ct.NUMBER:{const{onStepUp:e,onStepDown:l}=this.$attrs;t=[o(ht,{mode:"up",disabled:this.isDisabled||void 0!==a.max&&a.modelValue===a.max,label:this.labelStepUp,onStepUp:e,onStepDown:l}),o(ht,{mode:"down",disabled:this.isDisabled||void 0!==a.min&&a.modelValue===a.min,label:this.labelStepDown,onStepUp:e,onStepDown:l})];break}}return Array.isArray(t)?o("div",{class:"vv-input-text__actions-group"},t):t}}}const yt=["for"],St={key:0,class:"vv-input-text__input-before"},wt=["id"],Et={key:1,class:"vv-input-text__unit"},$t={key:5,class:"vv-input-text__input-after"},xt={key:6,class:"vv-input-text__limit"},Lt={class:"flex-1"},Tt=["title","onClick"],Dt=/* @__PURE__ */l({name:"VvInputText",props:pt,emits:["update:modelValue","update:masked","accept","accept:typed","accept:masked","accept:unmasked","complete","complete:typed","complete:masked","complete:unmasked","suggestion:selected","suggestion:removed","focus","blur","keyup","keydown","keypress","clear"],setup(i,{expose:r,emit:d}){const S=i,E=d,$=H(),T=dt(),k=function(e,a,l){const o=dt(),i=t(()=>{if(o&&o.defaults.value?.[e])return o.defaults.value[e]});return t(()=>{if(void 0===i.value)return l;const e=i.value,t=a,o=l;return Object.keys(t).reduce((a,l)=>{const i=o[l];if(a[l]=i,l in e){if(Array.isArray(t[l])){const o=t[l];o.length&&o[0]===i&&(a[l]=e[l])}if("function"==typeof t[l]&&(0,t[l])()===i&&(a[l]=e[l]),"object"==typeof t[l]){let o=t[l].default;"function"==typeof o&&(o=o()),"object"==typeof o?JSON.stringify(o)===JSON.stringify(i)&&(a[l]=e[l]):o===i&&(a[l]=e[l])}}return a},{})})}("VvInputText",pt,S),{count:O,debounce:A,icon:N,iconPosition:R,iconRemoveSuggestion:j,id:U,invalid:F,label:Y,loading:W,maxlength:z,minlength:q,modelValue:K,step:X,storageType:J,type:Z,valid:G}=s(S),Q=lt(U),le=t(()=>`${Q.value}-hint`),oe=t(()=>S.floating&&de(S.placeholder)?" ":S.placeholder),ie=function(e,a,l=0,{getter:o=e=>e,setter:i=e=>e}={}){let n;return"string"==typeof l&&(l=Number.parseInt(l)),t({get:()=>o(e?.value),set:e=>{n&&clearTimeout(n),n=setTimeout(()=>{a("update:modelValue",i(e))},l)}})}(K,E,A?.value??0),ne=t(()=>{const e="number"==typeof X.value?X.value:Number.parseInt(X.value);return!Number.isNaN(e)&&e%60!=0}),pe=/^-0?[.,]?[0*]?$/,fe=u(!1),me=u(),be=u(),{el:he,mask:ge,typed:ye,masked:Se,unmasked:we}=V(t(()=>{if(!S.iMask)return{mask:/./};if(S.iMask.mask===Number){const e={...S.iMask};return S.min&&(e.min=Number(S.min)),S.max&&(e.max=Number(S.max)),e}return S.iMask}),{emit:E,onAccept:()=>{if(fe.value){if(E("update:masked",Se.value),Z.value===ct.NUMBER){if(/^-$|^$/.test(we.value)){if(null===ie.value||void 0===ie.value)return;return void(ie.value=void 0)}return pe.test(we.value)?void(ie.value=0):"number"!=typeof ye.value?void(ie.value=Number(ye.value)):void(ie.value=ye.value)}if(Z.value===ct.DATETIME_LOCAL||Z.value===ct.DATE||Z.value===ct.TIME||Z.value===ct.MONTH){if(!ye.value){if(!ie.value)return;return me.value?void(ie.value=void 0):void(ie.value="")}if(!(ye.value instanceof Date||me.value||be.value))return void(ie.value=ye.value);let e=ye.value;if(e instanceof Date||(e=function(e,t="date"){if(!e?.trim())return null;const a=/* @__PURE__ */new Date,l=a.getFullYear(),o=a.getMonth(),i=a.getDate();if("date"===t){if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected: YYYY-MM-DD");/* @__PURE__ */
|
|
1
|
+
import{unref as e,computed as t,isRef as a,defineComponent as l,h as o,useId as i,Fragment as n,provide as r,ref as u,toRefs as s,useAttrs as d,onMounted as v,watch as c,createElementBlock as p,openBlock as f,createVNode as m,withCtx as b,renderSlot as g,normalizeProps as h,guardReactiveProps as y,Transition as S,mergeProps as w,toHandlers as $,withDirectives as x,createElementVNode as E,normalizeClass as L,normalizeStyle as k,createCommentVNode as D,vShow as T,nextTick as O,inject as A,createBlock as _,createTextVNode as I,toDisplayString as M,mergeDefaults as N,useSlots as H,withModifiers as C,createSlots as B,renderList as P}from"vue";import{useIMask as V}from"vue-imask";import{autoPlacement as R,flip as j,shift as F,size as U,offset as Y,arrow as W,useFloating as z,autoUpdate as q}from"@floating-ui/vue";import{useMutationObserver as K,useVModel as X,onClickOutside as J,useFocusWithin as Z,useElementHover as G,onKeyStroke as Q,useFocus as ee,useStorage as te,useElementVisibility as ae}from"@vueuse/core";import le from"mitt";import{iconLoaded as oe,Icon as ie,addIcon as ne}from"@iconify/vue";const re=e=>e.toString().padStart(2,"0");function ue(e){if("string"!=typeof e)return!1;if(!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?(?:Z|[+-]\d{2}:?\d{2})?$/.test(e))return!1;const t=new Date(e);return!Number.isNaN(t.getTime())&&t.toISOString()===e}function se(e,t="date",a){if("string"==typeof e&&!ue(e))return"";const l=new Date(e);if(Number.isNaN(l.getTime()))return"";let o=`${l.getFullYear()}-${re(l.getMonth()+1)}`;if("month"===t)return o;if(o+=`-${re(l.getDate())}`,"date"===t)return o;const i=a?`${re(l.getHours())}:${re(l.getMinutes())}:${re(l.getSeconds())}`:`${re(l.getHours())}:${re(l.getMinutes())}`;return"time"===t?i:`${o}T${i}`}function de(t){return null==(a=e(t))||""===a||Array.isArray(a)&&0===a.length||!(a instanceof Date)&&"object"==typeof a&&0===Object.keys(a).length;var a}function ve(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e).join(" "):e}var ce=/* @__PURE__ */(e=>(e.local="local",e.session="session",e))(ce||{}),pe=/* @__PURE__ */(e=>(e.absolute="absolute",e.fixed="fixed",e))(pe||{}),fe=/* @__PURE__ */(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(fe||{}),me=/* @__PURE__ */(e=>(e.topStart="top-start",e.topEnd="top-end",e.bottomStart="bottom-start",e.bottomEnd="bottom-end",e.leftStart="left-start",e.leftEnd="left-end",e.rightStart="right-start",e.rightEnd="right-end",e))(me||{}),be=/* @__PURE__ */(e=>(e.before="before",e.after="after",e))(be||{}),ge=/* @__PURE__ */(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(ge||{}),he=/* @__PURE__ */(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(he||{}),ye=/* @__PURE__ */(e=>(e.button="button",e.link="link",e.menuitem="menuitem",e))(ye||{}),Se=/* @__PURE__ */(e=>(e.listbox="listbox",e.menu="menu",e))(Se||{}),we=/* @__PURE__ */(e=>(e.option="option",e.presentation="presentation",e))(we||{});const $e=/* @__PURE__ */Symbol.for("volver"),xe=/* @__PURE__ */Symbol.for("dropdownTrigger"),Ee=/* @__PURE__ */Symbol.for("dropdownItem"),Le=/* @__PURE__ */Symbol.for("dropdownAction"),ke="eye-on",De="eye-off",Te="calendar",Oe="time",Ae="color",_e="close",Ie="trash",Me={prefix:"normal"},Ne={valid:{type:Boolean,default:!1},validLabel:{type:[String,Array],default:void 0}},He={invalid:{type:Boolean,default:!1},invalidLabel:{type:[String,Array],default:void 0}},Ce={loading:{type:Boolean,default:!1},loadingLabel:{type:String,default:"Loading..."}},Be={disabled:{type:Boolean,default:!1}},Pe={required:{type:Boolean,default:!1}},Ve={selected:{type:Boolean,default:!1}},Re={label:{type:[String,Number],default:void 0}},je={readonly:{type:Boolean,default:!1}},Fe={modifiers:{type:[String,Array],default:void 0}},Ue={hintLabel:{type:String,default:""}},Ye={count:{type:[Boolean,String],default:!1,validator:e=>[!0,!1,"limit","countdown"].includes(e)}},We={debounce:{type:[Number,String],default:void 0}},ze={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:be.before,validation:e=>Object.values(be).includes(e)}},qe={tabindex:{type:[String,Number],default:0}},Ke={floating:{type:Boolean,default:!1}},Xe={unselectable:{type:Boolean,default:!0}},Je={id:[String,Number]},Ze={placement:{type:String,default:fe.bottom,validator:e=>Object.values(fe).includes(e)||Object.values(me).includes(e)},strategy:{type:String,default:void 0,validator:e=>Object.values(pe).includes(e)},transitionName:{type:String,default:void 0},offset:{type:[Number,String,Object],default:0},shift:{type:[Boolean,Object],default:!1},flip:{type:[Boolean,Object],default:!0},size:{type:[Boolean,Object],default:()=>({padding:10})},autoPlacement:{type:[Boolean,Object],default:!1},arrow:{type:Boolean,default:!1},keepOpen:{type:Boolean,default:!1},autofocusFirst:{type:Boolean,default:!0},triggerWidth:{type:Boolean,default:!1}},Ge={...{...Je,name:{type:String,required:!0}},...{autofocus:{type:Boolean,default:!1}},...{autocomplete:{type:String,default:"off"}},...qe,...Be,...je,...Ne,...He,...Ue,...Ce,...Fe,...Ye,...We,...ze,...Ke,...Re,minlength:{type:[String,Number],default:void 0},maxlength:{type:[String,Number],default:void 0},placeholder:{type:String,default:void 0},...Pe};ge.button,he.button;const Qe={storageType:{type:String,default:ce.local,validator:e=>Object.values(ce).includes(e)},storageKey:String},et={...Je,...Ze,...Fe,modelValue:{type:Boolean,default:void 0},reference:{type:Object,default:null},role:{type:String,default:Se.menu,validator:e=>Object.values(Se).includes(e)}},tt={focusOnHover:{type:Boolean,default:!1}},at={...Be,...Ve,...Xe,...Fe,deselectHintLabel:{type:String},selectHintLabel:{type:String},selectedHintLabel:{type:String},focusOnHover:{type:Boolean,default:!1}};function lt(e){return t(()=>String(e?.value||i()))}function ot(a,l,o){return t(()=>{const t={[a]:!0},i="string"==typeof l?.value?l.value.split(" "):l?.value;return i&&Array.isArray(i)&&i.forEach(e=>{e&&(t[`${a}--${e}`]=!0)}),o&&Object.keys(o.value).forEach(l=>{t[`${a}--${l}`]=e(o.value[l])}),t})}const it=["id","tabindex","role","aria-labelledby"],nt=/* @__PURE__ */l({name:"VvDropdown",inheritAttrs:!1,props:et,emits:["update:modelValue","beforeEnter","afterLeave","beforeExpand","beforeCollapse","afterExpand","afterCollapse","before-enter","after-leave","enter","afterEnter","enterCancelled","beforeLeave","leave","leaveCancelled"],setup(a,{expose:i,emit:A}){const _=a,I=A,{id:M}=s(_),N=lt(M),H=d(),C=u("auto"),B=u("auto"),P=u(),V=u(),ee=u(),te=u(),ae=t({get:()=>_.reference??P.value,set:e=>{P.value=e}}),oe=u(!1);v(()=>{K(V.value,()=>{oe.value="true"===window.getComputedStyle(V.value).getPropertyValue("--dropdown-custom-position")?.trim()},{attributeFilter:["style"],window:window})});const ie=t(()=>{const e=[];if(_.autoPlacement?"boolean"==typeof _.autoPlacement?e.push(R()):e.push(R(_.autoPlacement)):_.flip&&("boolean"==typeof _.flip?e.push(j({fallbackStrategy:"initialPlacement"})):e.push(j(_.flip))),_.shift&&("boolean"==typeof _.shift?e.push(F()):e.push(F(_.shift))),_.size){const t=({availableWidth:e,availableHeight:t})=>{C.value=`${e}px`,B.value=`${t}px`};"boolean"==typeof _.size?e.push(U({apply:t})):e.push(U({..._.size,apply:t}))}return _.offset&&(e.push(Y(Number(_.offset))),["string","number"].includes(typeof _.offset)?e.push(Y(Number(_.offset))):e.push(Y(_.offset))),_.arrow&&e.push(W({element:ee})),e}),{x:ne,y:re,middlewareData:ue,placement:se,strategy:de}=z(ae,V,{whileElementsMounted:(...e)=>q(...e,{animationFrame:_.strategy===pe.fixed}),placement:t(()=>_.placement),strategy:t(()=>_.strategy),middleware:ie}),ve=t(()=>{if(oe.value)return;const e=_.triggerWidth&&ae.value?`${ae.value?.offsetWidth}px`:void 0;return{position:de.value,top:`${re.value??0}px`,left:`${ne.value??0}px`,maxWidth:e?void 0:C.value,maxHeight:B.value,width:e}}),ce=t(()=>se.value.split("-")[0]),me=t(()=>{if(oe.value)return;const e={[fe.top]:fe.bottom,[fe.right]:fe.left,[fe.bottom]:fe.top,[fe.left]:fe.right}[ce.value];return{left:void 0!==ue.value.arrow?.x?`${ue.value.arrow?.x}px`:void 0,top:void 0!==ue.value.arrow?.y?`${ue.value.arrow?.y}px`:void 0,[e]:-(ee.value?.offsetWidth??0)/2+"px"}}),be=X(_,"modelValue",I),ge=u(!1),he=t({get:()=>be.value??ge.value,set:e=>{void 0!==be.value?be.value=e:ge.value=e}});function ye(){he.value=!0}function $e(){he.value=!1}function Le(){he.value=!he.value}function ke(e){ae.value=e}J(V,()=>{!_.keepOpen&&he.value&&(he.value=!1)},{ignore:[ae]});const De=t(()=>ae.value?.getAttribute?.("id")??void 0),Te=t(()=>({"aria-controls":N.value,"aria-haspopup":!0,"aria-expanded":he.value})),{component:Oe,bus:Ae}=function({reference:e,id:t,expanded:a,aria:i}){const u=le(),s=l({name:"VvDropdownTriggerProvider",setup(){r(xe,{reference:e,id:t,expanded:a,aria:i,bus:u})},render(){return o(n,{},this.$slots.default?.())}});return{bus:u,component:s}}({reference:ae,id:N,expanded:he,aria:Te});Ae.on("click",Le);const{role:_e,modifiers:Ie}=s(_),Me=ot("vv-dropdown",Ie,t(()=>({arrow:_.arrow}))),{focused:Ne}=Z(V);function He(e){return e?[...e.querySelectorAll('a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])')].filter(e=>!e.hasAttribute("disabled")&&!e.getAttribute("aria-hidden")):[]}function Ce(){O(()=>{const e=He(V.value);e.length>0&&e[0].focus({preventScroll:!0})})}function Be(){O(()=>{if(Ne.value){const e=He(V.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t<e.length-1?e[t+1].focus({preventScroll:!0}):e[0].focus({preventScroll:!0})}})}function Pe(){O(()=>{if(Ne.value){const e=He(V.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t>0?e[t-1].focus({preventScroll:!0}):e[e.length-1].focus({preventScroll:!0})}})}c(he,e=>{e&&_.autofocusFirst&&Ce()}),i({toggle:Le,show:ye,hide:$e,init:ke,focusFirst:Ce,focusFirstListElement:function(){O(()=>{const e=He(te.value);e.length>0&&e[0].focus({preventScroll:!0})})},focusNext:Be,focusPrev:Pe,customPosition:oe});const Ve=G(V),{itemRole:Re}=function({role:e,...a}){const l=t(()=>e.value===Se.listbox?we.option:we.presentation);return r(Ee,{role:l,...a}),{itemRole:l}}({role:_e,expanded:he,focused:Ne,hovered:Ve});Q("Escape",e=>{he.value&&(e.preventDefault(),$e())}),Q("ArrowDown",e=>{he.value&&Ne.value&&(e.preventDefault(),Be())}),Q("ArrowUp",e=>{he.value&&Ne.value&&(e.preventDefault(),Pe())}),Q([" ","Enter"],e=>{const t=e.target;he.value&&Ne.value&&t&&t?.click()});const je={"before-enter":()=>{I(he.value?"beforeExpand":"beforeCollapse"),I("beforeEnter")},"after-leave":()=>{I(he.value?"afterExpand":"afterCollapse"),I("afterLeave")},enter:()=>{I("enter")},"after-enter":()=>{I("afterEnter")},"enter-cancelled":()=>{I("enterCancelled")},"before-leave":()=>{I("beforeLeave")},leave:()=>{I("leave")},"leave-cancelled":()=>{I("leaveCancelled")}};return(t,a)=>(f(),p(n,null,[m(e(Oe),null,{default:b(()=>[g(t.$slots,"default",h(y({init:ke,show:ye,hide:$e,toggle:Le,expanded:e(he),aria:e(Te)})))]),_:3}),m(S,w({name:t.transitionName},$(je),{persisted:""}),{default:b(()=>[x(E("div",{ref_key:"floatingEl",ref:V,style:k(e(ve)),class:L(e(Me))},[_.arrow?(f(),p("div",{key:0,ref_key:"arrowEl",ref:ee,style:k(e(me)),class:"vv-dropdown__arrow"},null,4)):D("v-if",!0),g(t.$slots,"before",h(y({expanded:e(he)}))),E("div",w(e(H),{id:e(N),ref_key:"listEl",ref:te,tabindex:e(he)?void 0:-1,role:e(_e),"aria-labelledby":e(De),class:"vv-dropdown__list"}),[g(t.$slots,"items",h(y({role:e(Re)})))],16,it),g(t.$slots,"after",h(y({expanded:e(he)})))],6),[[T,e(he)]])]),_:3},16,["name"])],64))}});const rt=/* @__PURE__ */l({name:"VvDropdownItem",props:tt,setup(t){const a=t,{role:l,expanded:o}=A(Ee,{}),i=u(null);!function({expanded:e}){r(Le,{role:u(ye.menuitem),expanded:e})}({expanded:o});const n=G(i),{focused:s}=ee(i),{focused:d}=Z(i);return c(n,e=>{e&&a.focusOnHover&&(s.value=!0)}),(t,a)=>(f(),p("div",w({role:e(l)},{ref_key:"element",ref:i,class:["vv-dropdown__item",{"focus-visible":e(s)||e(d)}]}),[g(t.$slots,"default")],16))}}),ut=["title"],st=/* @__PURE__ */l({name:"VvDropdownOption",props:at,setup(a){const l=a,{modifiers:o}=s(l),i=ot("vv-dropdown-option",o,t(()=>({disabled:l.disabled,selected:l.selected,unselectable:l.unselectable&&l.selected}))),n=t(()=>l.selected?l.unselectable?l.deselectHintLabel:l.selectedHintLabel:l.disabled?"":l.selectHintLabel);return(t,a)=>(f(),_(rt,{class:L(e(i)),tabindex:t.disabled?-1:0,"aria-selected":t.selected,"aria-disabled":t.disabled,"focus-on-hover":t.focusOnHover},{default:b(()=>[g(t.$slots,"default"),E("span",{class:"vv-dropdown-option__hint",title:e(n)},[g(t.$slots,"hint",h(y({disabled:t.disabled,selected:t.selected,unselectable:t.unselectable})),()=>[I(M(e(n)),1)])],8,ut)]),_:3},8,["class","tabindex","aria-selected","aria-disabled","focus-on-hover"]))}});function dt(){return A($e,void 0)}const vt=/* @__PURE__ */l({name:"VvIcon",props:/* @__PURE__ */N({name:{},color:{},width:{},height:{},provider:{},prefix:{},src:{},horizontalFlip:{type:Boolean},verticalFlip:{type:Boolean},flip:{},mode:{},inline:{type:Boolean},rotate:{},onLoad:{type:Function},svg:{},modifiers:{}},Me),setup(a){const l=a,o=t(()=>"string"==typeof l.rotate?Number.parseFloat(l.rotate):l.rotate),i=u(!0),n=dt(),{modifiers:r}=s(l),d=ot("vv-icon",r),v=t(()=>l.provider||n?.iconsProvider),c=t(()=>{const e=l.name??"",t=`@${v.value}:${l.prefix}:${e}`;if(oe(t))return t;const a=n?.iconsCollections.find(t=>{const a=`@${v.value}:${t.prefix}:${e}`;return oe(a)});return a?`@${v.value}:${a.prefix}:${e}`:e});function p(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&&ne(`@${v.value}:${l.prefix}:${l.name}`,{body:a,height:t.viewBox.baseVal.height,width:t.viewBox.baseVal.width})}return n&&l.src&&!oe(`@${v.value}:${l.prefix}:${l.name}`)&&(i.value=!1,n.fetchIcon(l.src).then(e=>{e&&(p(e),i.value=!0)}).catch(e=>{throw new Error(`Error during fetch icon: ${e?.message}`)})),l.svg&&p(l.svg),(t,l)=>e(i)?(f(),_(e(ie),w({key:0,class:e(d)},{inline:a.inline,width:a.width,height:a.height,horizontalFlip:a.horizontalFlip,verticalFlip:a.verticalFlip,flip:a.flip,rotate:e(o),color:a.color,icon:e(c)},{onLoad:a.onLoad}),null,16,["class","onLoad"])):D("v-if",!0)}}),ct={TEXT:"text",PASSWORD:"password",NUMBER:"number",EMAIL:"email",TEL:"tel",URL:"url",COLOR:"color",SEARCH:"search",DATE:"date",TIME:"time",DATETIME_LOCAL:"datetime-local",MONTH:"month",WEEK:"week"},pt={...Ge,...Qe,modelValue:[String,Number,Date],type:{type:String,default:ct.TEXT,validator:e=>Object.values(ct).includes(e)},min:[Number,Date,String],max:[Number,Date,String],step:{type:[String,Number],default:1},pattern:String,multiple:Boolean,iconShowPassword:{type:[String,Object],default:ke},iconHidePassword:{type:[String,Object],default:De},iconClear:{type:[String,Object],default:_e},iconRemoveSuggestion:{type:[String,Object],default:Ie},labelStepUp:{type:String,default:"Increase value"},labelStepDown:{type:String,default:"Decrease value"},labelShowPassword:{type:String,default:"Show password"},labelHidePassword:{type:String,default:"Hide password"},labelClear:{type:String,default:"Clear"},labelRemoveSuggestion:{type:String,default:"Remove suggestion"},iMask:{type:Object,default:void 0},masked:{type:String,default:void 0},autoWidth:{type:Boolean,default:!1},hideActions:{type:Boolean,default:!1},unit:{type:String},selectOnFocus:{type:Boolean,default:!1},maxSuggestions:{type:Number,default:5},suggestions:{type:Array,default:void 0},inputMode:{type:String,default:"text"}};function ft(e,a){const l=t(()=>"string"==typeof e?.value?{name:e?.value}:e?.value),o=t(()=>a?.value===be.before?l.value:void 0),i=t(()=>a?.value===be.after?l.value:void 0),n=t(()=>a?.value===fe.left?l.value:void 0),r=t(()=>a?.value===fe.right?l.value:void 0),u=t(()=>a?.value===fe.top?l.value:void 0),s=t(()=>a?.value===fe.bottom?l.value:void 0);return{hasIcon:l,hasIconLeft:n,hasIconRight:r,hasIconTop:u,hasIconBottom:s,hasIconBefore:o,hasIconAfter:i}}const mt=l({components:{VvIcon:vt},props:{inputType:{type:String,default:"input-text"},disabled:{type:Boolean,default:!1},label:{type:String,default:"Clear"},icon:{type:[String,Object],default:"close"}},emits:["clear"],setup(e,{emit:a}){const{hasIcon:l}=ft(t(()=>e.icon));return{hasIcon:l,onClick:function(t){t?.stopPropagation(),e.disabled||a("clear")}}},render(){const e=this.hasIcon?o(vt,{...this.hasIcon,class:`vv-${this.inputType}__icon`}):void 0;return o("button",{disabled:this.disabled,class:`vv-${this.inputType}__action`,ariaLabel:this.label,type:"button",onClick:this.onClick},e)}}),bt=l({components:{VvIcon:vt},props:{inputType:{type:String,default:"input-text"},disabled:{type:Boolean,default:!1},labelShow:{type:String,default:"Show password"},labelHide:{type:String,default:"Hide password"},iconShow:{type:[String,Object],default:ke},iconHide:{type:[String,Object],default:De}},emits:["toggle-password"],setup(e,{emit:a}){const l=u(!1),o=t(()=>l.value?e.iconHide:e.iconShow),{hasIcon:i}=ft(o);return{active:l,activeIcon:o,hasIcon:i,onClick:function(t){t?.stopPropagation(),e.disabled||(l.value=!l.value,a("toggle-password",l.value))}}},render(){const e=this.hasIcon?o(vt,{...this.hasIcon,class:`vv-${this.inputType}__icon`}):void 0;return o("button",{disabled:this.disabled,class:`vv-${this.inputType}__action`,ariaLabel:this.active?this.labelHide:this.labelShow,type:"button",onClick:this.onClick},e)}}),gt=l({components:{VvIcon:vt},props:{inputType:{type:String,default:"input-text"},disabled:{type:Boolean,default:!1},label:{type:String},mode:{type:String,validator:e=>["up","down"].includes(e),default:"up"}},emits:["step-up","step-down"],setup(e,{emit:a}){const l=t(()=>"up"===e.mode);return{isUp:l,onClick:t=>{t?.stopPropagation(),e.disabled||a(l.value?"step-up":"step-down")}}},render(){return o("button",{class:[`vv-${this.inputType}__action`,`vv-${this.inputType}__action-chevron`,this.isUp?`vv-${this.inputType}__action-chevron-up`:void 0],disabled:this.disabled,ariaLabel:this.label,type:"button",onClick:this.onClick})}});function ht(e,a,l){return{name:"VvInputTextActions",components:{VvIcon:vt,VvInputPasswordAction:bt,VvInputStepAction:gt,VvInputClearAction:mt},setup(){const e=t(()=>a.disabled||a.readonly);return{isDirty:l,isDisabled:e,labelStepUp:a.labelStepUp,labelStepDown:a.labelStepDown,labelShowPassword:a.labelShowPassword,labelHidePassword:a.labelHidePassword,labelClear:a.labelClear,iconShowPassword:a.iconShowPassword,iconHidePassword:a.iconHidePassword}},render(){let t=null;switch(e){case ct.SEARCH:{const{onClear:e}=this.$attrs;t=[o(mt,{disabled:this.isDisabled||!this.isDirty,label:this.labelClear,onClear:e})];break}case ct.PASSWORD:{const{onTogglePassword:e}=this.$attrs;t=[o(bt,{disabled:this.isDisabled,onTogglePassword:e,labelShow:this.labelShowPassword,labelHide:this.labelHidePassword,iconShow:this.iconShowPassword,iconHide:this.iconHidePassword})];break}case ct.NUMBER:{const{onStepUp:e,onStepDown:l}=this.$attrs;t=[o(gt,{mode:"up",disabled:this.isDisabled||void 0!==a.max&&a.modelValue===a.max,label:this.labelStepUp,onStepUp:e,onStepDown:l}),o(gt,{mode:"down",disabled:this.isDisabled||void 0!==a.min&&a.modelValue===a.min,label:this.labelStepDown,onStepUp:e,onStepDown:l})];break}}return Array.isArray(t)?o("div",{class:"vv-input-text__actions-group"},t):t}}}const yt=["for"],St={key:0,class:"vv-input-text__input-before"},wt=["id"],$t={key:1,class:"vv-input-text__unit"},xt={key:5,class:"vv-input-text__input-after"},Et={key:6,class:"vv-input-text__limit"},Lt={class:"flex-1"},kt=["title","onClick"],Dt=/* @__PURE__ */l({name:"VvInputText",props:pt,emits:["update:modelValue","update:masked","accept","accept:typed","accept:masked","accept:unmasked","complete","complete:typed","complete:masked","complete:unmasked","suggestion:selected","suggestion:removed","focus","blur","keyup","keydown","keypress","clear"],setup(i,{expose:r,emit:d}){const S=i,$=d,x=H(),k=dt(),T=function(e,a,l){const o=dt(),i=t(()=>{if(o&&o.defaults.value?.[e])return o.defaults.value[e]});return t(()=>{if(void 0===i.value)return l;const e=i.value,t=a,o=l;return Object.keys(t).reduce((a,l)=>{const i=o[l];if(a[l]=i,l in e){if(Array.isArray(t[l])){const o=t[l];o.length&&o[0]===i&&(a[l]=e[l])}if("function"==typeof t[l]&&(0,t[l])()===i&&(a[l]=e[l]),"object"==typeof t[l]){let o=t[l].default;"function"==typeof o&&(o=o()),"object"==typeof o?JSON.stringify(o)===JSON.stringify(i)&&(a[l]=e[l]):o===i&&(a[l]=e[l])}}return a},{})})}("VvInputText",pt,S),{count:O,debounce:A,icon:N,iconPosition:R,iconRemoveSuggestion:j,id:F,invalid:U,label:Y,labelRemoveSuggestion:W,loading:z,maxlength:q,minlength:K,modelValue:X,step:J,storageType:Z,type:G,unit:Q,valid:le}=s(S),oe=lt(F),ie=t(()=>`${oe.value}-hint`),ne=t(()=>S.floating&&de(S.placeholder)?" ":S.placeholder),pe=function(e,a,l=0,{getter:o=e=>e,setter:i=e=>e}={}){let n;return"string"==typeof l&&(l=Number.parseInt(l)),t({get:()=>o(e?.value),set:e=>{n&&clearTimeout(n),n=setTimeout(()=>{a("update:modelValue",i(e))},l)}})}(X,$,A?.value??0),fe=t(()=>{const e="number"==typeof J.value?J.value:Number.parseInt(J.value);return!Number.isNaN(e)&&e%60!=0}),me=/^-0?[.,]?[0*]?$/,be=u(!1),ge=u(),he=u(),{el:ye,mask:Se,typed:we,masked:$e,unmasked:xe}=V(t(()=>{if(!S.iMask)return{mask:/./};if(S.iMask.mask===Number){const e={...S.iMask};return S.min&&(e.min=Number(S.min)),S.max&&(e.max=Number(S.max)),e}return S.iMask}),{emit:$,onAccept:()=>{if(be.value){if($("update:masked",$e.value),G.value===ct.NUMBER){if(/^-$|^$/.test(xe.value)){if(null===pe.value||void 0===pe.value)return;return void(pe.value=void 0)}return me.test(xe.value)?void(pe.value=0):"number"!=typeof we.value?void(pe.value=Number(we.value)):void(pe.value=we.value)}if(G.value===ct.DATETIME_LOCAL||G.value===ct.DATE||G.value===ct.TIME||G.value===ct.MONTH){if(!we.value){if(!pe.value)return;return ge.value?void(pe.value=void 0):void(pe.value="")}if(!(we.value instanceof Date||ge.value||he.value))return void(pe.value=we.value);let e=we.value;if(e instanceof Date||(e=function(e,t="date"){if(!e?.trim())return null;const a=/* @__PURE__ */new Date,l=a.getFullYear(),o=a.getMonth(),i=a.getDate();if("date"===t){if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected: YYYY-MM-DD");/* @__PURE__ */
|
|
2
2
|
return new Date(`${e}T00:00:00`)}if("month"===t){if(!/^\d{4}-\d{2}$/.test(e))throw new Error("Invalid month format. Expected: YYYY-MM");/* @__PURE__ */
|
|
3
|
-
return new Date(`${e}-01T00:00:00`)}if("time"===t){if(!/^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/.test(e))throw new Error("Invalid time format. Expected: HH:mm or HH:mm:ss");return 8===e.length?/* @__PURE__ */new Date(`${l}-${re(o+1)}-${re(i)}T${e}`):/* @__PURE__ */new Date(`${l}-${re(o+1)}-${re(i)}T${e}:00`)}if(!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?$/.test(e))throw new Error("Invalid datetime format. Expected: YYYY-MM-DDThh:mm or YYYY-MM-DDThh:mm:ss");return 16===e.length?/* @__PURE__ */new Date(`${e}:00`):/* @__PURE__ */new Date(`${e}`)}(
|
|
4
|
-
/* @__PURE__ */new Set),Qe=t(()=>
|
|
3
|
+
return new Date(`${e}-01T00:00:00`)}if("time"===t){if(!/^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/.test(e))throw new Error("Invalid time format. Expected: HH:mm or HH:mm:ss");return 8===e.length?/* @__PURE__ */new Date(`${l}-${re(o+1)}-${re(i)}T${e}`):/* @__PURE__ */new Date(`${l}-${re(o+1)}-${re(i)}T${e}:00`)}if(!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?$/.test(e))throw new Error("Invalid datetime format. Expected: YYYY-MM-DDThh:mm or YYYY-MM-DDThh:mm:ss");return 16===e.length?/* @__PURE__ */new Date(`${e}:00`):/* @__PURE__ */new Date(`${e}`)}(we.value,G.value)),ge.value||he.value){const t=new Date(ge.value||he.value);if(G.value!==ct.DATETIME_LOCAL&&G.value!==ct.DATE&&G.value!==ct.MONTH||(t.setFullYear(e.getFullYear()),t.setMonth(e.getMonth())),G.value!==ct.DATETIME_LOCAL&&G.value!==ct.DATE||t.setDate(e.getDate()),G.value!==ct.DATETIME_LOCAL&&G.value!==ct.TIME||(t.setHours(e.getHours()),t.setMinutes(e.getMinutes()),t.setSeconds(e.getSeconds())),ge.value instanceof Date){if(pe.value?.getTime()===t.getTime())return;return void(pe.value=t)}return void(pe.value=t.toISOString())}return void(pe.value=se(e,G.value,fe.value))}(pe.value||xe.value)&&(pe.value=xe.value)}}});function Ee(e){if(null==e)return we.value="",void(xe.value="");if(S.iMask?.mask!==Date){if(G.value!==ct.NUMBER||!me.test(xe.value)||0!==e){if(mt.value){if(e instanceof Date||ue(e)){if(e instanceof Date?(ge.value=e,he.value=void 0):(he.value=e,ge.value=void 0),G.value!==ct.WEEK){const t=new Date(e),a=G.value;we.value=se(t,a,fe.value),xe.value=we.value}return}ge.value=void 0,he.value=void 0}we.value=e,xe.value=`${we.value}`}}else we.value=e instanceof Date?e:new Date(e)}v(()=>{Se.value&&(be.value=!0,Ee(S.modelValue))}),c(()=>S.modelValue,e=>{Se.value&&Ee(e)}),c(()=>S.masked,e=>{$e.value=e??""});const Le=ye,ke=u(),De=u(),_e=u();r({$input:Le,$inner:ke,$wrapper:De});const{focused:Ie}=function(t,a){const{focused:l}=ee(t);return c(l,l=>{a(l?"focus":"blur",e(t))}),{focused:l}}(Le,$),Me=t(()=>Ie.value&&!S.disabled&&!S.readonly);c(Me,function(e){e?function(){T.value.selectOnFocus&&Le.value&&Le.value.select();et.value.size&&_e.value?.show()}():function(){if(!Ze.value||!Qe.value)return;const e=S.maxSuggestions;if(void 0===pe.value||null===pe.value||""===pe.value)return;Qe.value.size>=e&&!Qe.value.has(pe.value)&&(Qe.value=new Set([...Qe.value].slice(Qe.value.size-e+1)));Qe.value.add(pe.value)}()});const Ne=ae(Le);c(Ne,e=>{e&&S.autofocus&&!S.disabled&&!S.readonly&&(Ie.value=!0)});const He=u(!1),Ce=t(()=>S.type===ct.PASSWORD);function Be(){He.value=!He.value}const Pe=t(()=>mt.value),Ve=t(()=>S.type===ct.NUMBER);function Re(){if(!Xe.value){if(S.iMask)return void(we.value=Number(we.value)+Number(J?.value??1));Le.value.stepUp(),pe.value=Number(Le.value.value)}}function je(){if(!Xe.value){if(S.iMask)return void(we.value=Number(we.value)-Number(J?.value??1));Le.value.stepDown(),pe.value=Number(Le.value.value)}}const Fe=t(()=>S.type===ct.SEARCH);function Ue(){pe.value="",$("clear")}const{hasIconBefore:Ye,hasIconAfter:We}=ft(N,R),ze=t(()=>{if(void 0!==We.value)return We.value;switch(S.type){case ct.COLOR:return{name:Ae};case ct.DATE:case ct.DATETIME_LOCAL:case ct.WEEK:case ct.MONTH:return{name:Te};case ct.TIME:return{name:Oe}}}),{hasIcon:qe}=ft(j),{formatted:Ke}=function(a,l){const o=t(()=>(e(a)??"").length),i=t(()=>void 0!==l?.lowerLimit&&o.value<l?.lowerLimit?o.value-l.lowerLimit:void 0!==l?.upperLimit&&o.value<l?.upperLimit?l.upperLimit-o.value:0),n=t(()=>{if(!1===l?.mode)return"";if("limit"===l?.mode&&l?.upperLimit)return`${o.value} / ${l.lowerLimit?`${l.lowerLimit}-`:""}${l.upperLimit}`;if("countdown"===l?.mode){if(0===i.value)return;return i}return o.value});return{length:o,gap:i,formatted:n}}(pe,{mode:O.value,upperLimit:Number(q?.value),lowerLimit:Number(K?.value)}),Xe=t(()=>S.disabled||S.readonly),Je=t(()=>Xe.value?-1:S.tabindex),Ze=t(()=>!de(X?.value)),Ge=t(()=>!0===U.value||!0!==le.value&&void 0),Qe=function(t,l=ce.local,o){const i=u();let n;return o&&(i.value=o),v(()=>{t&&c(t,(t,a)=>{const o=e(l)===ce.session?sessionStorage:localStorage;if(a&&a!==t&&o.removeItem(a),t)return n=te(t,n?.value??i.value,o),void(n.value&&(i.value=n.value));n=void 0},{immediate:!0}),a(l)&&c(l,(e,a)=>{if(t?.value){if(e){const a=e===ce.session?sessionStorage:localStorage;n=te(t.value,n?.value??i.value,a)}a&&a!==e&&(a===ce.session?sessionStorage:localStorage).removeItem(t.value)}})}),c(i,e=>{n&&(n.value=e)},{deep:!0,immediate:!0}),i}(t(()=>S.storageKey??(k?.experimentalFeatures.forceInputSuggestions?S.name:void 0)),Z,
|
|
4
|
+
/* @__PURE__ */new Set),et=t(()=>{const e=/* @__PURE__ */new Map;if(Qe.value)for(const t of Qe.value)e.set(t,{isFromStorage:!0});if(S.suggestions)for(const t of S.suggestions)e.set(t,{isFromStorage:!1});return e}),tt=t(()=>0===et.value.size?[]:[...et.value.entries()].filter(([e])=>de(pe.value)||`${e}`.toLowerCase().includes(`${pe.value}`.toLowerCase())&&e!==pe.value).reverse().map(([e])=>e)),at=t(()=>et.value.size>0);const{modifiers:it}=s(S),rt=ot("vv-input-text",it,t(()=>({valid:le.value,invalid:U.value,loading:z.value,disabled:S.disabled,required:S.required,readonly:S.readonly,"icon-before":!!Ye.value,"icon-after":!!ze.value,floating:S.floating&&!de(S.label),dirty:Ze.value,focus:Me.value&&!Xe.value,"auto-width":S.autoWidth}))),ut=t(()=>[ct.TEXT,ct.SEARCH,ct.URL,ct.TEL,ct.EMAIL,ct.PASSWORD].includes(G.value)),mt=t(()=>[ct.DATE,ct.MONTH,ct.WEEK,ct.TIME,ct.DATETIME_LOCAL].includes(G.value)),bt=t(()=>[ct.TEXT,ct.SEARCH,ct.URL,ct.TEL,ct.EMAIL,ct.PASSWORD].includes(G.value)),gt=t(()=>{const e=Ce.value&&He.value?ct.TEXT:!Pe.value||Ze.value||Ie.value?S.iMask?ct.TEXT:S.type:ct.TEXT,t={type:e,name:S.name,tabindex:Je.value,disabled:S.disabled,readonly:S.readonly,required:S.required,autocomplete:S.autocomplete,"aria-invalid":Ge.value,"aria-describedby":Ot.value?ie.value:void 0,"aria-errormessage":At.value?ie.value:void 0,inputMode:S.inputMode};if(mt.value||e===ct.NUMBER){let a=S.max;e!==ct.DATE||a||(a="9999-12-31"),t.step=S.step,t.max=void 0!==a?String(a):void 0,t.min=void 0!==S.min?String(S.min):void 0}return(ut.value||e===ct.NUMBER)&&(t.placeholder=ne.value),bt.value&&(t.minlength=S.minlength,t.maxlength=S.maxlength,t.pattern=S.pattern),e===ct.EMAIL&&(t.multiple=S.multiple),t}),Dt=t(()=>({valid:S.valid,invalid:S.invalid,modelValue:S.modelValue,togglePassword:Be,stepUp:Re,stepDown:je,clear:Ue})),{HintSlot:Tt,hasHintLabelOrSlot:Ot,hasInvalidLabelOrSlot:At,hintSlotScope:_t}=function(e,i){const n=t(()=>a(e)?e.value:e),r=t(()=>ve(n.value.invalidLabel)),u=t(()=>ve(n.value.validLabel)),s=t(()=>n.value.loadingLabel),d=t(()=>n.value.hintLabel),v=t(()=>Boolean(n.value.loading&&(i.loading||s.value))),c=t(()=>!v.value&&Boolean(n.value.invalid&&(i.invalid||r.value))),p=t(()=>!v.value&&!c.value&&Boolean(n.value.valid&&(i.valid||u.value))),f=t(()=>!v.value&&!c.value&&!p.value&&Boolean(i.hint||d.value)),m=t(()=>c.value||p.value||v.value||f.value),b=t(()=>({modelValue:n.value.modelValue,valid:n.value.valid,invalid:n.value.invalid,loading:n.value.loading})),g=l({name:"HintSlot",props:{tag:{type:String,default:"small"}},setup:()=>({isVisible:m,invalidLabel:r,validLabel:u,loadingLabel:s,hintLabel:d,hasInvalidLabelOrSlot:c,hasValidLabelOrSlot:p,hasLoadingLabelOrSlot:v,hasHintLabelOrSlot:f}),render(){if(this.isVisible){let e;return this.hasInvalidLabelOrSlot&&(e="alert"),this.hasValidLabelOrSlot&&(e="status"),this.hasLoadingLabelOrSlot?o(this.tag,{role:e},this.$slots.loading?.()??this.loadingLabel):this.hasInvalidLabelOrSlot?o(this.tag,{role:e},this.$slots.invalid?.()??this.$slots.invalid??this.invalidLabel):this.hasValidLabelOrSlot?o(this.tag,{role:e},this.$slots.valid?.()??this.validLabel):o(this.tag,{role:e},this.$slots.hint?.()??this.$slots.hint??this.hintLabel)}return null}});return{hasInvalidLabelOrSlot:c,hasHintLabelOrSlot:f,hasValidLabelOrSlot:p,hasLoadingLabelOrSlot:v,hintSlotScope:b,HintSlot:g}}(T,x),It=ht(ct.PASSWORD,S,Ze),Mt=ht(ct.NUMBER,S,Ze),Nt=ht(ct.SEARCH,S,Ze);function Ht(){Xe.value||(Ie.value=!0)}const Ct=t(()=>{if(S.autoWidth)return{width:void 0!==pe.value?`${String(pe.value).length+1}ch`:void 0}});function Bt(e){switch(e.code){case"ArrowUp":Ve.value&&(Re(),e.preventDefault());break;case"ArrowDown":Ve.value&&(je(),e.preventDefault())}$("keydown",e)}return(t,a)=>(f(),p("div",{class:L(e(rt))},[e(Y)?(f(),p("label",{key:0,for:e(oe),class:"vv-input-text__label"},M(e(Y)),9,yt)):D("v-if",!0),E("div",{ref_key:"wrapperEl",ref:De,class:"vv-input-text__wrapper"},[t.$slots.before?(f(),p("div",St,[g(t.$slots,"before",h(y(e(Dt))))])):D("v-if",!0),E("div",{ref_key:"innerEl",ref:ke,class:"vv-input-text__inner",onClick:C(Ht,["stop"])},[e(Ye)?(f(),_(vt,w({key:0},e(Ye),{class:"vv-input-text__icon"}),null,16)):D("v-if",!0),E("input",w({id:e(oe),ref_key:"inputEl",ref:Le},e(gt),{style:e(Ct),onKeyup:a[0]||(a[0]=e=>$("keyup",e)),onKeydown:Bt,onKeypress:a[1]||(a[1]=e=>$("keypress",e))}),null,16,wt),(e(Q)||t.$slots.unit)&&e(Ze)?(f(),p("div",$t,[g(t.$slots,"unit",h(y(e(Dt))),()=>[I(M(e(Q)),1)])])):D("v-if",!0)],512),e(ze)?(f(),_(vt,w({key:1},e(ze),{class:"vv-input-text__icon vv-input-text__icon-after"}),null,16)):!e(Ce)||t.hideActions||e(Xe)?!e(Ve)||t.hideActions||e(Xe)?!e(Fe)||t.hideActions||e(Xe)?D("v-if",!0):(f(),_(e(Nt),{key:4,onClear:Ue})):(f(),_(e(Mt),{key:3,onStepUp:Re,onStepDown:je})):(f(),_(e(It),{key:2,onTogglePassword:Be})),t.$slots.after?(f(),p("div",xt,[g(t.$slots,"after",h(y(e(Dt))))])):D("v-if",!0),e(O)?(f(),p("span",Et,[g(t.$slots,"count",h(y(e(Dt))),()=>[I(M(e(Ke)),1)])])):D("v-if",!0)],512),m(e(Tt),{id:e(ie),class:"vv-input-text__hint"},B({_:2},[t.$slots.hint?{name:"hint",fn:b(()=>[g(t.$slots,"hint",h(y(e(_t))))]),key:"0"}:void 0,t.$slots.loading?{name:"loading",fn:b(()=>[g(t.$slots,"loading",h(y(e(_t))))]),key:"1"}:void 0,t.$slots.valid?{name:"valid",fn:b(()=>[g(t.$slots,"valid",h(y(e(_t))))]),key:"2"}:void 0,t.$slots.invalid?{name:"invalid",fn:b(()=>[g(t.$slots,"invalid",h(y(e(_t))))]),key:"3"}:void 0]),1032,["id"]),e(at)?(f(),_(nt,{key:1,ref_key:"suggestionsDropdownEl",ref:_e,reference:e(De),"autofocus-first":!1,"trigger-width":!0},{items:b(()=>[(f(!0),p(n,null,P(e(tt),a=>(f(),_(st,{key:String(a),onClick:C(e=>{return t=a,pe.value=t,_e.value?.hide(),void $("suggestion:selected",t);var t},["stop"])},{default:b(()=>[E("div",Lt,[g(t.$slots,"suggestion",w({ref_for:!0},{value:a}),()=>[I(M(a),1)])]),e(et).get(a)?.isFromStorage&&e(qe)?(f(),p("button",{key:0,type:"button",tabindex:"-1",class:"cursor-pointer",title:e(W),onClick:C(e=>{return t=a,void(et.value.get(t)?.isFromStorage&&(Qe.value?.delete(t),$("suggestion:removed",t)));var t},["stop"])},[m(vt,w({ref_for:!0},e(qe)),null,16)],8,kt)):D("v-if",!0)]),_:2},1032,["onClick"]))),128))]),_:3},8,["reference"])):D("v-if",!0)],2))}});export{Dt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("vue-imask"),require("@floating-ui/vue"),require("@vueuse/core"),require("mitt"),require("@iconify/vue")):"function"==typeof define&&define.amd?define(["vue","vue-imask","@floating-ui/vue","@vueuse/core","mitt","@iconify/vue"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvInputText=t(e.vue,e.vueImask,e.vue$1,e.core,e.mitt,e.vue$2)}(this,function(e,t,o,a,l,n){"use strict";const i=e=>e.toString().padStart(2,"0");function r(e){if("string"!=typeof e)return!1;if(!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?(?:Z|[+-]\d{2}:?\d{2})?$/.test(e))return!1;const t=new Date(e);return!Number.isNaN(t.getTime())&&t.toISOString()===e}function u(e,t="date",o){if("string"==typeof e&&!r(e))return"";const a=new Date(e);if(Number.isNaN(a.getTime()))return"";let l=`${a.getFullYear()}-${i(a.getMonth()+1)}`;if("month"===t)return l;if(l+=`-${i(a.getDate())}`,"date"===t)return l;const n=o?`${i(a.getHours())}:${i(a.getMinutes())}:${i(a.getSeconds())}`:`${i(a.getHours())}:${i(a.getMinutes())}`;return"time"===t?n:`${l}T${n}`}function s(t){return null==(o=e.unref(t))||""===o||Array.isArray(o)&&0===o.length||!(o instanceof Date)&&"object"==typeof o&&0===Object.keys(o).length;var o}function d(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e).join(" "):e}var c=(e=>(e.local="local",e.session="session",e))(c||{}),v=(e=>(e.absolute="absolute",e.fixed="fixed",e))(v||{}),p=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(p||{}),f=(e=>(e.topStart="top-start",e.topEnd="top-end",e.bottomStart="bottom-start",e.bottomEnd="bottom-end",e.leftStart="left-start",e.leftEnd="left-end",e.rightStart="right-start",e.rightEnd="right-end",e))(f||{}),m=(e=>(e.before="before",e.after="after",e))(m||{}),h=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(h||{}),b=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(b||{}),g=(e=>(e.button="button",e.link="link",e.menuitem="menuitem",e))(g||{}),y=(e=>(e.listbox="listbox",e.menu="menu",e))(y||{}),S=(e=>(e.option="option",e.presentation="presentation",e))(S||{});const w=Symbol.for("volver"),k=Symbol.for("dropdownTrigger"),E=Symbol.for("dropdownItem"),x=Symbol.for("dropdownAction"),$="eye-on",T="eye-off",L="calendar",D="time",B="color",C="close",O="trash",N={prefix:"normal"},P={valid:{type:Boolean,default:!1},validLabel:{type:[String,Array],default:void 0}},A={invalid:{type:Boolean,default:!1},invalidLabel:{type:[String,Array],default:void 0}},M={loading:{type:Boolean,default:!1},loadingLabel:{type:String,default:"Loading..."}},I={disabled:{type:Boolean,default:!1}},_={required:{type:Boolean,default:!1}},V={selected:{type:Boolean,default:!1}},H={label:{type:[String,Number],default:void 0}},R={readonly:{type:Boolean,default:!1}},j={modifiers:{type:[String,Array],default:void 0}},z={hintLabel:{type:String,default:""}},F={count:{type:[Boolean,String],default:!1,validator:e=>[!0,!1,"limit","countdown"].includes(e)}},U={debounce:{type:[Number,String],default:void 0}},W={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:m.before,validation:e=>Object.values(m).includes(e)}},Y={tabindex:{type:[String,Number],default:0}},q={floating:{type:Boolean,default:!1}},K={unselectable:{type:Boolean,default:!0}},X={id:[String,Number]},J={placement:{type:String,default:p.bottom,validator:e=>Object.values(p).includes(e)||Object.values(f).includes(e)},strategy:{type:String,default:void 0,validator:e=>Object.values(v).includes(e)},transitionName:{type:String,default:void 0},offset:{type:[Number,String,Object],default:0},shift:{type:[Boolean,Object],default:!1},flip:{type:[Boolean,Object],default:!0},size:{type:[Boolean,Object],default:()=>({padding:10})},autoPlacement:{type:[Boolean,Object],default:!1},arrow:{type:Boolean,default:!1},keepOpen:{type:Boolean,default:!1},autofocusFirst:{type:Boolean,default:!0},triggerWidth:{type:Boolean,default:!1}},Z={...{...X,name:{type:String,required:!0}},...{autofocus:{type:Boolean,default:!1}},...{autocomplete:{type:String,default:"off"}},...Y,...I,...R,...P,...A,...z,...M,...j,...F,...U,...W,...q,...H,minlength:{type:[String,Number],default:void 0},maxlength:{type:[String,Number],default:void 0},placeholder:{type:String,default:void 0},..._};h.button,b.button;const G={storageType:{type:String,default:c.local,validator:e=>Object.values(c).includes(e)},storageKey:String},Q={...X,...J,...j,modelValue:{type:Boolean,default:void 0},reference:{type:Object,default:null},role:{type:String,default:y.menu,validator:e=>Object.values(y).includes(e)}},ee={focusOnHover:{type:Boolean,default:!1}},te={...I,...V,...K,...j,deselectHintLabel:{type:String},selectHintLabel:{type:String},selectedHintLabel:{type:String},focusOnHover:{type:Boolean,default:!1}};function oe(t){return e.computed(()=>String(t?.value||e.useId()))}function ae(t,o,a){return e.computed(()=>{const l={[t]:!0},n="string"==typeof o?.value?o.value.split(" "):o?.value;return n&&Array.isArray(n)&&n.forEach(e=>{e&&(l[`${t}--${e}`]=!0)}),a&&Object.keys(a.value).forEach(o=>{l[`${t}--${o}`]=e.unref(a.value[o])}),l})}const le=["id","tabindex","role","aria-labelledby"],ne=e.defineComponent({name:"VvDropdown",inheritAttrs:!1,props:Q,emits:["update:modelValue","beforeEnter","afterLeave","beforeExpand","beforeCollapse","afterExpand","afterCollapse","before-enter","after-leave","enter","afterEnter","enterCancelled","beforeLeave","leave","leaveCancelled"],setup(t,{expose:n,emit:i}){const r=t,u=i,{id:s}=e.toRefs(r),d=oe(s),c=e.useAttrs(),f=e.ref("auto"),m=e.ref("auto"),h=e.ref(),b=e.ref(),g=e.ref(),w=e.ref(),x=e.computed({get:()=>r.reference??h.value,set:e=>{h.value=e}}),$=e.ref(!1);e.onMounted(()=>{a.useMutationObserver(b.value,()=>{$.value="true"===window.getComputedStyle(b.value).getPropertyValue("--dropdown-custom-position")?.trim()},{attributeFilter:["style"],window:window})});const T=e.computed(()=>{const e=[];if(r.autoPlacement?"boolean"==typeof r.autoPlacement?e.push(o.autoPlacement()):e.push(o.autoPlacement(r.autoPlacement)):r.flip&&("boolean"==typeof r.flip?e.push(o.flip({fallbackStrategy:"initialPlacement"})):e.push(o.flip(r.flip))),r.shift&&("boolean"==typeof r.shift?e.push(o.shift()):e.push(o.shift(r.shift))),r.size){const t=({availableWidth:e,availableHeight:t})=>{f.value=`${e}px`,m.value=`${t}px`};"boolean"==typeof r.size?e.push(o.size({apply:t})):e.push(o.size({...r.size,apply:t}))}return r.offset&&(e.push(o.offset(Number(r.offset))),["string","number"].includes(typeof r.offset)?e.push(o.offset(Number(r.offset))):e.push(o.offset(r.offset))),r.arrow&&e.push(o.arrow({element:g})),e}),{x:L,y:D,middlewareData:B,placement:C,strategy:O}=o.useFloating(x,b,{whileElementsMounted:(...e)=>o.autoUpdate(...e,{animationFrame:r.strategy===v.fixed}),placement:e.computed(()=>r.placement),strategy:e.computed(()=>r.strategy),middleware:T}),N=e.computed(()=>{if($.value)return;const e=r.triggerWidth&&x.value?`${x.value?.offsetWidth}px`:void 0;return{position:O.value,top:`${D.value??0}px`,left:`${L.value??0}px`,maxWidth:e?void 0:f.value,maxHeight:m.value,width:e}}),P=e.computed(()=>C.value.split("-")[0]),A=e.computed(()=>{if($.value)return;const e={[p.top]:p.bottom,[p.right]:p.left,[p.bottom]:p.top,[p.left]:p.right}[P.value];return{left:void 0!==B.value.arrow?.x?`${B.value.arrow?.x}px`:void 0,top:void 0!==B.value.arrow?.y?`${B.value.arrow?.y}px`:void 0,[e]:-(g.value?.offsetWidth??0)/2+"px"}}),M=a.useVModel(r,"modelValue",u),I=e.ref(!1),_=e.computed({get:()=>M.value??I.value,set:e=>{void 0!==M.value?M.value=e:I.value=e}});function V(){_.value=!0}function H(){_.value=!1}function R(){_.value=!_.value}function j(e){x.value=e}a.onClickOutside(b,()=>{!r.keepOpen&&_.value&&(_.value=!1)},{ignore:[x]});const z=e.computed(()=>x.value?.getAttribute?.("id")??void 0),F=e.computed(()=>({"aria-controls":d.value,"aria-haspopup":!0,"aria-expanded":_.value})),{component:U,bus:W}=function({reference:t,id:o,expanded:a,aria:n}){const i=l(),r=e.defineComponent({name:"VvDropdownTriggerProvider",setup(){e.provide(k,{reference:t,id:o,expanded:a,aria:n,bus:i})},render(){return e.h(e.Fragment,{},this.$slots.default?.())}});return{bus:i,component:r}}({reference:x,id:d,expanded:_,aria:F});W.on("click",R);const{role:Y,modifiers:q}=e.toRefs(r),K=ae("vv-dropdown",q,e.computed(()=>({arrow:r.arrow}))),{focused:X}=a.useFocusWithin(b);function J(e){return e?[...e.querySelectorAll('a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])')].filter(e=>!e.hasAttribute("disabled")&&!e.getAttribute("aria-hidden")):[]}function Z(){e.nextTick(()=>{const e=J(b.value);e.length>0&&e[0].focus({preventScroll:!0})})}function G(){e.nextTick(()=>{if(X.value){const e=J(b.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t<e.length-1?e[t+1].focus({preventScroll:!0}):e[0].focus({preventScroll:!0})}})}function Q(){e.nextTick(()=>{if(X.value){const e=J(b.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t>0?e[t-1].focus({preventScroll:!0}):e[e.length-1].focus({preventScroll:!0})}})}e.watch(_,e=>{e&&r.autofocusFirst&&Z()}),n({toggle:R,show:V,hide:H,init:j,focusFirst:Z,focusFirstListElement:function(){e.nextTick(()=>{const e=J(w.value);e.length>0&&e[0].focus({preventScroll:!0})})},focusNext:G,focusPrev:Q,customPosition:$});const ee=a.useElementHover(b),{itemRole:te}=function({role:t,...o}){const a=e.computed(()=>t.value===y.listbox?S.option:S.presentation);return e.provide(E,{role:a,...o}),{itemRole:a}}({role:Y,expanded:_,focused:X,hovered:ee});a.onKeyStroke("Escape",e=>{_.value&&(e.preventDefault(),H())}),a.onKeyStroke("ArrowDown",e=>{_.value&&X.value&&(e.preventDefault(),G())}),a.onKeyStroke("ArrowUp",e=>{_.value&&X.value&&(e.preventDefault(),Q())}),a.onKeyStroke([" ","Enter"],e=>{const t=e.target;_.value&&X.value&&t&&t?.click()});const ne={"before-enter":()=>{u(_.value?"beforeExpand":"beforeCollapse"),u("beforeEnter")},"after-leave":()=>{u(_.value?"afterExpand":"afterCollapse"),u("afterLeave")},enter:()=>{u("enter")},"after-enter":()=>{u("afterEnter")},"enter-cancelled":()=>{u("enterCancelled")},"before-leave":()=>{u("beforeLeave")},leave:()=>{u("leave")},"leave-cancelled":()=>{u("leaveCancelled")}};return(t,o)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(U),null,{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps({init:j,show:V,hide:H,toggle:R,expanded:e.unref(_),aria:e.unref(F)})))]),_:3}),e.createVNode(e.Transition,e.mergeProps({name:t.transitionName},e.toHandlers(ne),{persisted:""}),{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{ref_key:"floatingEl",ref:b,style:e.normalizeStyle(e.unref(N)),class:e.normalizeClass(e.unref(K))},[r.arrow?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"arrowEl",ref:g,style:e.normalizeStyle(e.unref(A)),class:"vv-dropdown__arrow"},null,4)):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(_)}))),e.createElementVNode("div",e.mergeProps(e.unref(c),{id:e.unref(d),ref_key:"listEl",ref:w,tabindex:e.unref(_)?void 0:-1,role:e.unref(Y),"aria-labelledby":e.unref(z),class:"vv-dropdown__list"}),[e.renderSlot(t.$slots,"items",e.normalizeProps(e.guardReactiveProps({role:e.unref(te)})))],16,le),e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(_)})))],6),[[e.vShow,e.unref(_)]])]),_:3},16,["name"])],64))}});const ie=e.defineComponent({name:"VvDropdownItem",props:ee,setup(t){const o=t,{role:l,expanded:n}=e.inject(E,{}),i=e.ref(null);!function({expanded:t}){e.provide(x,{role:e.ref(g.menuitem),expanded:t})}({expanded:n});const r=a.useElementHover(i),{focused:u}=a.useFocus(i),{focused:s}=a.useFocusWithin(i);return e.watch(r,e=>{e&&o.focusOnHover&&(u.value=!0)}),(t,o)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({role:e.unref(l)},{ref_key:"element",ref:i,class:["vv-dropdown__item",{"focus-visible":e.unref(u)||e.unref(s)}]}),[e.renderSlot(t.$slots,"default")],16))}}),re=["title"],ue=e.defineComponent({name:"VvDropdownOption",props:te,setup(t){const o=t,{modifiers:a}=e.toRefs(o),l=ae("vv-dropdown-option",a,e.computed(()=>({disabled:o.disabled,selected:o.selected,unselectable:o.unselectable&&o.selected}))),n=e.computed(()=>o.selected?o.unselectable?o.deselectHintLabel:o.selectedHintLabel:o.disabled?"":o.selectHintLabel);return(t,o)=>(e.openBlock(),e.createBlock(ie,{class:e.normalizeClass(e.unref(l)),tabindex:t.disabled?-1:0,"aria-selected":t.selected,"aria-disabled":t.disabled,"focus-on-hover":t.focusOnHover},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default"),e.createElementVNode("span",{class:"vv-dropdown-option__hint",title:e.unref(n)},[e.renderSlot(t.$slots,"hint",e.normalizeProps(e.guardReactiveProps({disabled:t.disabled,selected:t.selected,unselectable:t.unselectable})),()=>[e.createTextVNode(e.toDisplayString(e.unref(n)),1)])],8,re)]),_:3},8,["class","tabindex","aria-selected","aria-disabled","focus-on-hover"]))}});function se(){return e.inject(w,void 0)}const de=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:{}},N),setup(t){const o=t,a=e.computed(()=>"string"==typeof o.rotate?Number.parseFloat(o.rotate):o.rotate),l=e.ref(!0),i=se(),{modifiers:r}=e.toRefs(o),u=ae("vv-icon",r),s=e.computed(()=>o.provider||i?.iconsProvider),d=e.computed(()=>{const e=o.name??"",t=`@${s.value}:${o.prefix}:${e}`;if(n.iconLoaded(t))return t;const a=i?.iconsCollections.find(t=>{const o=`@${s.value}:${t.prefix}:${e}`;return n.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&&n.addIcon(`@${s.value}:${o.prefix}:${o.name}`,{body:a,height:t.viewBox.baseVal.height,width:t.viewBox.baseVal.width})}return i&&o.src&&!n.iconLoaded(`@${s.value}:${o.prefix}:${o.name}`)&&(l.value=!1,i.fetchIcon(o.src).then(e=>{e&&(c(e),l.value=!0)}).catch(e=>{throw new Error(`Error during fetch icon: ${e?.message}`)})),o.svg&&c(o.svg),(o,i)=>e.unref(l)?(e.openBlock(),e.createBlock(e.unref(n.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)}}),ce={TEXT:"text",PASSWORD:"password",NUMBER:"number",EMAIL:"email",TEL:"tel",URL:"url",COLOR:"color",SEARCH:"search",DATE:"date",TIME:"time",DATETIME_LOCAL:"datetime-local",MONTH:"month",WEEK:"week"},ve={...Z,...G,modelValue:[String,Number,Date],type:{type:String,default:ce.TEXT,validator:e=>Object.values(ce).includes(e)},min:[Number,Date,String],max:[Number,Date,String],step:{type:[String,Number],default:1},pattern:String,multiple:Boolean,iconShowPassword:{type:[String,Object],default:$},iconHidePassword:{type:[String,Object],default:T},iconClear:{type:[String,Object],default:C},iconRemoveSuggestion:{type:[String,Object],default:O},labelStepUp:{type:String,default:"Increase value"},labelStepDown:{type:String,default:"Decrease value"},labelShowPassword:{type:String,default:"Show password"},labelHidePassword:{type:String,default:"Hide password"},labelClear:{type:String,default:"Clear"},labelRemoveSuggestion:{type:String,default:"Remove suggestion"},iMask:{type:Object,default:void 0},masked:{type:String,default:void 0},autoWidth:{type:Boolean,default:!1},hideActions:{type:Boolean,default:!1},unit:{type:String},selectOnFocus:{type:Boolean,default:!1},maxSuggestions:{type:Number,default:5},inputMode:{type:String,default:"text"}};function pe(t,o){const a=e.computed(()=>"string"==typeof t?.value?{name:t?.value}:t?.value),l=e.computed(()=>o?.value===m.before?a.value:void 0),n=e.computed(()=>o?.value===m.after?a.value:void 0),i=e.computed(()=>o?.value===p.left?a.value:void 0),r=e.computed(()=>o?.value===p.right?a.value:void 0),u=e.computed(()=>o?.value===p.top?a.value:void 0),s=e.computed(()=>o?.value===p.bottom?a.value:void 0);return{hasIcon:a,hasIconLeft:i,hasIconRight:r,hasIconTop:u,hasIconBottom:s,hasIconBefore:l,hasIconAfter:n}}const fe=e.defineComponent({components:{VvIcon:de},props:{inputType:{type:String,default:"input-text"},disabled:{type:Boolean,default:!1},label:{type:String,default:"Clear"},icon:{type:[String,Object],default:"close"}},emits:["clear"],setup(t,{emit:o}){const{hasIcon:a}=pe(e.computed(()=>t.icon));return{hasIcon:a,onClick:function(e){e?.stopPropagation(),t.disabled||o("clear")}}},render(){const t=this.hasIcon?e.h(de,{...this.hasIcon,class:`vv-${this.inputType}__icon`}):void 0;return e.h("button",{disabled:this.disabled,class:`vv-${this.inputType}__action`,ariaLabel:this.label,type:"button",onClick:this.onClick},t)}}),me=e.defineComponent({components:{VvIcon:de},props:{inputType:{type:String,default:"input-text"},disabled:{type:Boolean,default:!1},labelShow:{type:String,default:"Show password"},labelHide:{type:String,default:"Hide password"},iconShow:{type:[String,Object],default:$},iconHide:{type:[String,Object],default:T}},emits:["toggle-password"],setup(t,{emit:o}){const a=e.ref(!1),l=e.computed(()=>a.value?t.iconHide:t.iconShow),{hasIcon:n}=pe(l);return{active:a,activeIcon:l,hasIcon:n,onClick:function(e){e?.stopPropagation(),t.disabled||(a.value=!a.value,o("toggle-password",a.value))}}},render(){const t=this.hasIcon?e.h(de,{...this.hasIcon,class:`vv-${this.inputType}__icon`}):void 0;return e.h("button",{disabled:this.disabled,class:`vv-${this.inputType}__action`,ariaLabel:this.active?this.labelHide:this.labelShow,type:"button",onClick:this.onClick},t)}}),he=e.defineComponent({components:{VvIcon:de},props:{inputType:{type:String,default:"input-text"},disabled:{type:Boolean,default:!1},label:{type:String},mode:{type:String,validator:e=>["up","down"].includes(e),default:"up"}},emits:["step-up","step-down"],setup(t,{emit:o}){const a=e.computed(()=>"up"===t.mode);return{isUp:a,onClick:e=>{e?.stopPropagation(),t.disabled||o(a.value?"step-up":"step-down")}}},render(){return e.h("button",{class:[`vv-${this.inputType}__action`,`vv-${this.inputType}__action-chevron`,this.isUp?`vv-${this.inputType}__action-chevron-up`:void 0],disabled:this.disabled,ariaLabel:this.label,type:"button",onClick:this.onClick})}});function be(t,o,a){return{name:"VvInputTextActions",components:{VvIcon:de,VvInputPasswordAction:me,VvInputStepAction:he,VvInputClearAction:fe},setup(){const t=e.computed(()=>o.disabled||o.readonly);return{isDirty:a,isDisabled:t,labelStepUp:o.labelStepUp,labelStepDown:o.labelStepDown,labelShowPassword:o.labelShowPassword,labelHidePassword:o.labelHidePassword,labelClear:o.labelClear,iconShowPassword:o.iconShowPassword,iconHidePassword:o.iconHidePassword}},render(){let a=null;switch(t){case ce.SEARCH:{const{onClear:t}=this.$attrs;a=[e.h(fe,{disabled:this.isDisabled||!this.isDirty,label:this.labelClear,onClear:t})];break}case ce.PASSWORD:{const{onTogglePassword:t}=this.$attrs;a=[e.h(me,{disabled:this.isDisabled,onTogglePassword:t,labelShow:this.labelShowPassword,labelHide:this.labelHidePassword,iconShow:this.iconShowPassword,iconHide:this.iconHidePassword})];break}case ce.NUMBER:{const{onStepUp:t,onStepDown:l}=this.$attrs;a=[e.h(he,{mode:"up",disabled:this.isDisabled||void 0!==o.max&&o.modelValue===o.max,label:this.labelStepUp,onStepUp:t,onStepDown:l}),e.h(he,{mode:"down",disabled:this.isDisabled||void 0!==o.min&&o.modelValue===o.min,label:this.labelStepDown,onStepUp:t,onStepDown:l})];break}}return Array.isArray(a)?e.h("div",{class:"vv-input-text__actions-group"},a):a}}}const ge=["for"],ye={key:0,class:"vv-input-text__input-before"},Se=["id"],we={key:1,class:"vv-input-text__unit"},ke={key:5,class:"vv-input-text__input-after"},Ee={key:6,class:"vv-input-text__limit"},xe={class:"flex-1"},$e=["title","onClick"];return e.defineComponent({name:"VvInputText",props:ve,emits:["update:modelValue","update:masked","accept","accept:typed","accept:masked","accept:unmasked","complete","complete:typed","complete:masked","complete:unmasked","suggestion:selected","suggestion:removed","focus","blur","keyup","keydown","keypress","clear"],setup(o,{expose:l,emit:n}){const v=o,p=n,f=e.useSlots(),m=se(),h=function(t,o,a){const l=se(),n=e.computed(()=>{if(l&&l.defaults.value?.[t])return l.defaults.value[t]});return e.computed(()=>{if(void 0===n.value)return a;const e=n.value,t=o,l=a;return Object.keys(t).reduce((o,a)=>{const n=l[a];if(o[a]=n,a in e){if(Array.isArray(t[a])){const l=t[a];l.length&&l[0]===n&&(o[a]=e[a])}if("function"==typeof t[a]&&(0,t[a])()===n&&(o[a]=e[a]),"object"==typeof t[a]){let l=t[a].default;"function"==typeof l&&(l=l()),"object"==typeof l?JSON.stringify(l)===JSON.stringify(n)&&(o[a]=e[a]):l===n&&(o[a]=e[a])}}return o},{})})}("VvInputText",ve,v),{count:b,debounce:g,icon:y,iconPosition:S,iconRemoveSuggestion:w,id:k,invalid:E,label:x,loading:$,maxlength:T,minlength:C,modelValue:O,step:N,storageType:P,type:A,valid:M}=e.toRefs(v),I=oe(k),_=e.computed(()=>`${I.value}-hint`),V=e.computed(()=>v.floating&&s(v.placeholder)?" ":v.placeholder),H=function(t,o,a=0,{getter:l=e=>e,setter:n=e=>e}={}){let i;return"string"==typeof a&&(a=Number.parseInt(a)),e.computed({get:()=>l(t?.value),set:e=>{i&&clearTimeout(i),i=setTimeout(()=>{o("update:modelValue",n(e))},a)}})}(O,p,g?.value??0),R=e.computed(()=>{const e="number"==typeof N.value?N.value:Number.parseInt(N.value);return!Number.isNaN(e)&&e%60!=0}),j=/^-0?[.,]?[0*]?$/,z=e.ref(!1),F=e.ref(),U=e.ref(),{el:W,mask:Y,typed:q,masked:K,unmasked:X}=t.useIMask(e.computed(()=>{if(!v.iMask)return{mask:/./};if(v.iMask.mask===Number){const e={...v.iMask};return v.min&&(e.min=Number(v.min)),v.max&&(e.max=Number(v.max)),e}return v.iMask}),{emit:p,onAccept:()=>{if(z.value){if(p("update:masked",K.value),A.value===ce.NUMBER){if(/^-$|^$/.test(X.value)){if(null===H.value||void 0===H.value)return;return void(H.value=void 0)}return j.test(X.value)?void(H.value=0):"number"!=typeof q.value?void(H.value=Number(q.value)):void(H.value=q.value)}if(A.value===ce.DATETIME_LOCAL||A.value===ce.DATE||A.value===ce.TIME||A.value===ce.MONTH){if(!q.value){if(!H.value)return;return F.value?void(H.value=void 0):void(H.value="")}if(!(q.value instanceof Date||F.value||U.value))return void(H.value=q.value);let e=q.value;if(e instanceof Date||(e=function(e,t="date"){if(!e?.trim())return null;const o=new Date,a=o.getFullYear(),l=o.getMonth(),n=o.getDate();if("date"===t){if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected: YYYY-MM-DD");return new Date(`${e}T00:00:00`)}if("month"===t){if(!/^\d{4}-\d{2}$/.test(e))throw new Error("Invalid month format. Expected: YYYY-MM");return new Date(`${e}-01T00:00:00`)}if("time"===t){if(!/^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/.test(e))throw new Error("Invalid time format. Expected: HH:mm or HH:mm:ss");return 8===e.length?new Date(`${a}-${i(l+1)}-${i(n)}T${e}`):new Date(`${a}-${i(l+1)}-${i(n)}T${e}:00`)}if(!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?$/.test(e))throw new Error("Invalid datetime format. Expected: YYYY-MM-DDThh:mm or YYYY-MM-DDThh:mm:ss");return 16===e.length?new Date(`${e}:00`):new Date(`${e}`)}(q.value,A.value)),F.value||U.value){const t=new Date(F.value||U.value);if(A.value!==ce.DATETIME_LOCAL&&A.value!==ce.DATE&&A.value!==ce.MONTH||(t.setFullYear(e.getFullYear()),t.setMonth(e.getMonth())),A.value!==ce.DATETIME_LOCAL&&A.value!==ce.DATE||t.setDate(e.getDate()),A.value!==ce.DATETIME_LOCAL&&A.value!==ce.TIME||(t.setHours(e.getHours()),t.setMinutes(e.getMinutes()),t.setSeconds(e.getSeconds())),F.value instanceof Date){if(H.value?.getTime()===t.getTime())return;return void(H.value=t)}return void(H.value=t.toISOString())}return void(H.value=u(e,A.value,R.value))}(H.value||X.value)&&(H.value=X.value)}}});function J(e){if(null==e)return q.value="",void(X.value="");if(v.iMask?.mask!==Date){if(A.value!==ce.NUMBER||!j.test(X.value)||0!==e){if(A.value===ce.DATE||A.value===ce.MONTH||A.value===ce.DATETIME_LOCAL||A.value===ce.TIME){if(e instanceof Date||r(e)){e instanceof Date?(F.value=e,U.value=void 0):(U.value=e,F.value=void 0);const t=new Date(e);return q.value=u(t,A.value,R.value),void(X.value=q.value)}F.value=void 0,U.value=void 0}q.value=e,X.value=`${q.value}`}}else q.value=e instanceof Date?e:new Date(e)}e.onMounted(()=>{Y.value&&(z.value=!0,J(v.modelValue))}),e.watch(()=>v.modelValue,e=>{Y.value&&J(e)}),e.watch(()=>v.masked,e=>{K.value=e??""});const Z=W,G=e.ref(),Q=e.ref(),ee=e.ref();l({$input:Z,$inner:G,$wrapper:Q});const{focused:te}=function(t,o){const{focused:l}=a.useFocus(t);return e.watch(l,a=>{o(a?"focus":"blur",e.unref(t))}),{focused:l}}(Z,p),le=e.computed(()=>te.value&&!v.disabled&&!v.readonly);e.watch(le,e=>{if(e&&h.value.selectOnFocus&&Z.value&&Z.value.select(),e&&je.value?.size)ee.value?.show();else if(Ve.value&&je.value){const e=v.maxSuggestions;je.value.size>=e&&!je.value.has(H.value)&&(je.value=new Set([...je.value].slice(je.value.size-e+1))),je.value.add(H.value)}});const ie=a.useElementVisibility(Z);e.watch(ie,e=>{e&&v.autofocus&&!v.disabled&&!v.readonly&&(te.value=!0)});const re=e.ref(!1),fe=e.computed(()=>v.type===ce.PASSWORD);function me(){re.value=!re.value}const he=e.computed(()=>v.type===ce.TIME||v.type===ce.DATETIME_LOCAL||v.type===ce.DATE||v.type===ce.WEEK||v.type===ce.MONTH),Te=e.computed(()=>v.type===ce.NUMBER);function Le(){if(!Ie.value){if(v.iMask)return void(q.value=Number(q.value)+Number(N?.value??1));Z.value.stepUp(),H.value=Number(e.unref(Z).value)}}function De(){if(!Ie.value){if(v.iMask)return void(q.value=Number(q.value)-Number(N?.value??1));Z.value.stepDown(),H.value=Number(e.unref(Z).value)}}const Be=e.computed(()=>v.type===ce.SEARCH);function Ce(){H.value="",p("clear")}const{hasIconBefore:Oe,hasIconAfter:Ne}=pe(y,S),Pe=e.computed(()=>{if(void 0!==Ne.value)return Ne.value;switch(v.type){case ce.COLOR:return{name:B};case ce.DATE:case ce.DATETIME_LOCAL:case ce.WEEK:case ce.MONTH:return{name:L};case ce.TIME:return{name:D}}}),{hasIcon:Ae}=pe(w),{formatted:Me}=function(t,o){const a=e.computed(()=>(e.unref(t)??"").length),l=e.computed(()=>void 0!==o?.lowerLimit&&a.value<o?.lowerLimit?a.value-o.lowerLimit:void 0!==o?.upperLimit&&a.value<o?.upperLimit?o.upperLimit-a.value:0),n=e.computed(()=>{if(!1===o?.mode)return"";if("limit"===o?.mode&&o?.upperLimit)return`${a.value} / ${o.lowerLimit?`${o.lowerLimit}-`:""}${o.upperLimit}`;if("countdown"===o?.mode){if(0===l.value)return;return l}return a.value});return{length:a,gap:l,formatted:n}}(H,{mode:b.value,upperLimit:Number(T?.value),lowerLimit:Number(C?.value)}),Ie=e.computed(()=>v.disabled||v.readonly),_e=e.computed(()=>Ie.value?-1:v.tabindex),Ve=e.computed(()=>!s(O)),He=e.computed(()=>!0===E.value||!0!==M.value&&void 0),Re=e.computed(()=>v.storageKey??(m?.experimentalFeatures.forceInputSuggestions?v.name:void 0)),je=function(t,o=c.local,l){const n=e.ref();let i;return l&&(n.value=l),e.onMounted(()=>{t&&e.watch(t,(t,l)=>{const r=e.unref(o)===c.session?sessionStorage:localStorage;if(l&&l!==t&&r.removeItem(l),t)return i=a.useStorage(t,i?.value??n.value,r),void(i.value&&(n.value=i.value));i=void 0},{immediate:!0}),e.isRef(o)&&e.watch(o,(e,o)=>{if(t?.value){if(e){const o=e===c.session?sessionStorage:localStorage;i=a.useStorage(t.value,i?.value??n.value,o)}o&&o!==e&&(o===c.session?sessionStorage:localStorage).removeItem(t.value)}})}),e.watch(n,e=>{i&&(i.value=e)},{deep:!0,immediate:!0}),n}(Re,P,new Set),ze=e.computed(()=>je.value?[...je.value].filter(e=>s(H.value)||`${e}`.toLowerCase().includes(`${H.value}`.toLowerCase())&&e!==H.value).reverse():[]),Fe=e.computed(()=>Re?.value&&je.value&&je.value.size>0);const{modifiers:Ue}=e.toRefs(v),We=ae("vv-input-text",Ue,e.computed(()=>({valid:M.value,invalid:E.value,loading:$.value,disabled:v.disabled,required:v.required,readonly:v.readonly,"icon-before":!!Oe.value,"icon-after":!!Pe.value,floating:v.floating&&!s(v.label),dirty:Ve.value,focus:le.value&&!Ie.value,"auto-width":v.autoWidth}))),Ye=e.computed(()=>{const e=fe.value&&re.value?ce.TEXT:!he.value||Ve.value||te.value?v.iMask?ce.TEXT:v.type:ce.TEXT,t={type:e,name:v.name,tabindex:_e.value,disabled:v.disabled,readonly:v.readonly,required:v.required,autocomplete:v.autocomplete,"aria-invalid":He.value,"aria-describedby":Xe.value?_.value:void 0,"aria-errormessage":Je.value?_.value:void 0,inputMode:v.inputMode};if(e===ce.DATE||e===ce.MONTH||e===ce.WEEK||e===ce.TIME||e===ce.DATETIME_LOCAL||e===ce.NUMBER){let o=v.max;e!==ce.DATE||o||(o="9999-12-31"),t.step=v.step,t.max=void 0!==o?String(o):void 0,t.min=void 0!==v.min?String(v.min):void 0}return e!==ce.TEXT&&e!==ce.SEARCH&&e!==ce.URL&&e!==ce.TEL&&e!==ce.EMAIL&&e!==ce.PASSWORD&&e!==ce.NUMBER||(t.placeholder=V.value),e!==ce.TEXT&&e!==ce.SEARCH&&e!==ce.URL&&e!==ce.TEL&&e!==ce.EMAIL&&e!==ce.PASSWORD||(t.minlength=v.minlength,t.maxlength=v.maxlength,t.pattern=v.pattern),e===ce.EMAIL&&(t.multiple=v.multiple),t}),qe=e.computed(()=>({valid:v.valid,invalid:v.invalid,modelValue:v.modelValue,togglePassword:me,stepUp:Le,stepDown:De,clear:Ce})),{HintSlot:Ke,hasHintLabelOrSlot:Xe,hasInvalidLabelOrSlot:Je,hintSlotScope:Ze}=function(t,o){const a=e.computed(()=>e.isRef(t)?t.value:t),l=e.computed(()=>d(a.value.invalidLabel)),n=e.computed(()=>d(a.value.validLabel)),i=e.computed(()=>a.value.loadingLabel),r=e.computed(()=>a.value.hintLabel),u=e.computed(()=>Boolean(a.value.loading&&(o.loading||i.value))),s=e.computed(()=>!u.value&&Boolean(a.value.invalid&&(o.invalid||l.value))),c=e.computed(()=>!u.value&&!s.value&&Boolean(a.value.valid&&(o.valid||n.value))),v=e.computed(()=>!u.value&&!s.value&&!c.value&&Boolean(o.hint||r.value)),p=e.computed(()=>s.value||c.value||u.value||v.value),f=e.computed(()=>({modelValue:a.value.modelValue,valid:a.value.valid,invalid:a.value.invalid,loading:a.value.loading})),m=e.defineComponent({name:"HintSlot",props:{tag:{type:String,default:"small"}},setup:()=>({isVisible:p,invalidLabel:l,validLabel:n,loadingLabel:i,hintLabel:r,hasInvalidLabelOrSlot:s,hasValidLabelOrSlot:c,hasLoadingLabelOrSlot:u,hasHintLabelOrSlot:v}),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:v,hasValidLabelOrSlot:c,hasLoadingLabelOrSlot:u,hintSlotScope:f,HintSlot:m}}(h,f),Ge=be(ce.PASSWORD,v,Ve),Qe=be(ce.NUMBER,v,Ve),et=be(ce.SEARCH,v,Ve);function tt(){Ie.value||(te.value=!0)}const ot=e.computed(()=>{if(v.autoWidth)return{width:void 0!==H.value?`${String(H.value).length+1}ch`:void 0}});function at(e){switch(e.code){case"ArrowUp":Te.value&&(Le(),e.preventDefault());break;case"ArrowDown":Te.value&&(De(),e.preventDefault())}p("keydown",e)}return(t,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(We))},[e.unref(x)?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(I),class:"vv-input-text__label"},e.toDisplayString(e.unref(x)),9,ge)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{ref_key:"wrapperEl",ref:Q,class:"vv-input-text__wrapper"},[t.$slots.before?(e.openBlock(),e.createElementBlock("div",ye,[e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps(e.unref(qe))))])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{ref_key:"innerEl",ref:G,class:"vv-input-text__inner",onClick:e.withModifiers(tt,["stop"])},[e.unref(Oe)?(e.openBlock(),e.createBlock(de,e.mergeProps({key:0},e.unref(Oe),{class:"vv-input-text__icon"}),null,16)):e.createCommentVNode("v-if",!0),e.createElementVNode("input",e.mergeProps({id:e.unref(I),ref_key:"inputEl",ref:Z},e.unref(Ye),{style:e.unref(ot),onKeyup:o[0]||(o[0]=e=>p("keyup",e)),onKeydown:at,onKeypress:o[1]||(o[1]=e=>p("keypress",e))}),null,16,Se),(t.unit||t.$slots.unit)&&e.unref(Ve)?(e.openBlock(),e.createElementBlock("div",we,[e.renderSlot(t.$slots,"unit",e.normalizeProps(e.guardReactiveProps(e.unref(qe))),()=>[e.createTextVNode(e.toDisplayString(t.unit),1)])])):e.createCommentVNode("v-if",!0)],512),e.unref(Pe)?(e.openBlock(),e.createBlock(de,e.mergeProps({key:1},e.unref(Pe),{class:"vv-input-text__icon vv-input-text__icon-after"}),null,16)):!e.unref(fe)||t.hideActions||e.unref(Ie)?!e.unref(Te)||t.hideActions||e.unref(Ie)?!e.unref(Be)||t.hideActions||e.unref(Ie)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createBlock(e.unref(et),{key:4,onClear:Ce})):(e.openBlock(),e.createBlock(e.unref(Qe),{key:3,onStepUp:Le,onStepDown:De})):(e.openBlock(),e.createBlock(e.unref(Ge),{key:2,onTogglePassword:me})),t.$slots.after?(e.openBlock(),e.createElementBlock("div",ke,[e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps(e.unref(qe))))])):e.createCommentVNode("v-if",!0),e.unref(b)?(e.openBlock(),e.createElementBlock("span",Ee,[e.renderSlot(t.$slots,"count",e.normalizeProps(e.guardReactiveProps(e.unref(qe))),()=>[e.createTextVNode(e.toDisplayString(e.unref(Me)),1)])])):e.createCommentVNode("v-if",!0)],512),e.createVNode(e.unref(Ke),{id:e.unref(_),class:"vv-input-text__hint"},e.createSlots({_:2},[t.$slots.hint?{name:"hint",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"hint",e.normalizeProps(e.guardReactiveProps(e.unref(Ze))))]),key:"0"}:void 0,t.$slots.loading?{name:"loading",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"loading",e.normalizeProps(e.guardReactiveProps(e.unref(Ze))))]),key:"1"}:void 0,t.$slots.valid?{name:"valid",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"valid",e.normalizeProps(e.guardReactiveProps(e.unref(Ze))))]),key:"2"}:void 0,t.$slots.invalid?{name:"invalid",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"invalid",e.normalizeProps(e.guardReactiveProps(e.unref(Ze))))]),key:"3"}:void 0]),1032,["id"]),e.unref(Fe)?(e.openBlock(),e.createBlock(ne,{key:1,ref_key:"suggestionsDropdownEl",ref:ee,reference:e.unref(Q),"autofocus-first":!1,"trigger-width":!0},{items:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(ze),o=>(e.openBlock(),e.createBlock(ue,{key:o,onClick:e.withModifiers(e=>{return t=o,H.value=t,ee.value?.hide(),void p("suggestion:selected",t);var t},["stop"])},{default:e.withCtx(()=>[e.createElementVNode("div",xe,[e.renderSlot(t.$slots,"suggestion",e.mergeProps({ref_for:!0},{value:o}),()=>[e.createTextVNode(e.toDisplayString(o),1)])]),e.unref(je)&&e.unref(Ae)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",tabindex:"-1",class:"cursor-pointer",title:t.labelRemoveSuggestion,onClick:e.withModifiers(e=>{return t=o,je.value?.delete(t),void p("suggestion:removed",t);var t},["stop"])},[e.createVNode(de,e.mergeProps({ref_for:!0},e.unref(Ae)),null,16)],8,$e)):e.createCommentVNode("v-if",!0)]),_:2},1032,["onClick"]))),128))]),_:3},8,["reference"])):e.createCommentVNode("v-if",!0)],2))}})});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("vue-imask"),require("@floating-ui/vue"),require("@vueuse/core"),require("mitt"),require("@iconify/vue")):"function"==typeof define&&define.amd?define(["vue","vue-imask","@floating-ui/vue","@vueuse/core","mitt","@iconify/vue"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvInputText=t(e.vue,e.vueImask,e.vue$1,e.core,e.mitt,e.vue$2)}(this,function(e,t,o,a,l,n){"use strict";const i=e=>e.toString().padStart(2,"0");function r(e){if("string"!=typeof e)return!1;if(!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?(?:Z|[+-]\d{2}:?\d{2})?$/.test(e))return!1;const t=new Date(e);return!Number.isNaN(t.getTime())&&t.toISOString()===e}function u(e,t="date",o){if("string"==typeof e&&!r(e))return"";const a=new Date(e);if(Number.isNaN(a.getTime()))return"";let l=`${a.getFullYear()}-${i(a.getMonth()+1)}`;if("month"===t)return l;if(l+=`-${i(a.getDate())}`,"date"===t)return l;const n=o?`${i(a.getHours())}:${i(a.getMinutes())}:${i(a.getSeconds())}`:`${i(a.getHours())}:${i(a.getMinutes())}`;return"time"===t?n:`${l}T${n}`}function s(t){return null==(o=e.unref(t))||""===o||Array.isArray(o)&&0===o.length||!(o instanceof Date)&&"object"==typeof o&&0===Object.keys(o).length;var o}function d(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e).join(" "):e}var c=(e=>(e.local="local",e.session="session",e))(c||{}),v=(e=>(e.absolute="absolute",e.fixed="fixed",e))(v||{}),p=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(p||{}),f=(e=>(e.topStart="top-start",e.topEnd="top-end",e.bottomStart="bottom-start",e.bottomEnd="bottom-end",e.leftStart="left-start",e.leftEnd="left-end",e.rightStart="right-start",e.rightEnd="right-end",e))(f||{}),m=(e=>(e.before="before",e.after="after",e))(m||{}),g=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(g||{}),h=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(h||{}),b=(e=>(e.button="button",e.link="link",e.menuitem="menuitem",e))(b||{}),y=(e=>(e.listbox="listbox",e.menu="menu",e))(y||{}),S=(e=>(e.option="option",e.presentation="presentation",e))(S||{});const w=Symbol.for("volver"),k=Symbol.for("dropdownTrigger"),x=Symbol.for("dropdownItem"),E=Symbol.for("dropdownAction"),$="eye-on",L="eye-off",T="calendar",D="time",B="color",C="close",N="trash",O={prefix:"normal"},P={valid:{type:Boolean,default:!1},validLabel:{type:[String,Array],default:void 0}},A={invalid:{type:Boolean,default:!1},invalidLabel:{type:[String,Array],default:void 0}},I={loading:{type:Boolean,default:!1},loadingLabel:{type:String,default:"Loading..."}},M={disabled:{type:Boolean,default:!1}},_={required:{type:Boolean,default:!1}},V={selected:{type:Boolean,default:!1}},H={label:{type:[String,Number],default:void 0}},R={readonly:{type:Boolean,default:!1}},F={modifiers:{type:[String,Array],default:void 0}},j={hintLabel:{type:String,default:""}},z={count:{type:[Boolean,String],default:!1,validator:e=>[!0,!1,"limit","countdown"].includes(e)}},U={debounce:{type:[Number,String],default:void 0}},W={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:m.before,validation:e=>Object.values(m).includes(e)}},Y={tabindex:{type:[String,Number],default:0}},q={floating:{type:Boolean,default:!1}},K={unselectable:{type:Boolean,default:!0}},X={id:[String,Number]},J={placement:{type:String,default:p.bottom,validator:e=>Object.values(p).includes(e)||Object.values(f).includes(e)},strategy:{type:String,default:void 0,validator:e=>Object.values(v).includes(e)},transitionName:{type:String,default:void 0},offset:{type:[Number,String,Object],default:0},shift:{type:[Boolean,Object],default:!1},flip:{type:[Boolean,Object],default:!0},size:{type:[Boolean,Object],default:()=>({padding:10})},autoPlacement:{type:[Boolean,Object],default:!1},arrow:{type:Boolean,default:!1},keepOpen:{type:Boolean,default:!1},autofocusFirst:{type:Boolean,default:!0},triggerWidth:{type:Boolean,default:!1}},Z={...{...X,name:{type:String,required:!0}},...{autofocus:{type:Boolean,default:!1}},...{autocomplete:{type:String,default:"off"}},...Y,...M,...R,...P,...A,...j,...I,...F,...z,...U,...W,...q,...H,minlength:{type:[String,Number],default:void 0},maxlength:{type:[String,Number],default:void 0},placeholder:{type:String,default:void 0},..._};g.button,h.button;const G={storageType:{type:String,default:c.local,validator:e=>Object.values(c).includes(e)},storageKey:String},Q={...X,...J,...F,modelValue:{type:Boolean,default:void 0},reference:{type:Object,default:null},role:{type:String,default:y.menu,validator:e=>Object.values(y).includes(e)}},ee={focusOnHover:{type:Boolean,default:!1}},te={...M,...V,...K,...F,deselectHintLabel:{type:String},selectHintLabel:{type:String},selectedHintLabel:{type:String},focusOnHover:{type:Boolean,default:!1}};function oe(t){return e.computed(()=>String(t?.value||e.useId()))}function ae(t,o,a){return e.computed(()=>{const l={[t]:!0},n="string"==typeof o?.value?o.value.split(" "):o?.value;return n&&Array.isArray(n)&&n.forEach(e=>{e&&(l[`${t}--${e}`]=!0)}),a&&Object.keys(a.value).forEach(o=>{l[`${t}--${o}`]=e.unref(a.value[o])}),l})}const le=["id","tabindex","role","aria-labelledby"],ne=e.defineComponent({name:"VvDropdown",inheritAttrs:!1,props:Q,emits:["update:modelValue","beforeEnter","afterLeave","beforeExpand","beforeCollapse","afterExpand","afterCollapse","before-enter","after-leave","enter","afterEnter","enterCancelled","beforeLeave","leave","leaveCancelled"],setup(t,{expose:n,emit:i}){const r=t,u=i,{id:s}=e.toRefs(r),d=oe(s),c=e.useAttrs(),f=e.ref("auto"),m=e.ref("auto"),g=e.ref(),h=e.ref(),b=e.ref(),w=e.ref(),E=e.computed({get:()=>r.reference??g.value,set:e=>{g.value=e}}),$=e.ref(!1);e.onMounted(()=>{a.useMutationObserver(h.value,()=>{$.value="true"===window.getComputedStyle(h.value).getPropertyValue("--dropdown-custom-position")?.trim()},{attributeFilter:["style"],window:window})});const L=e.computed(()=>{const e=[];if(r.autoPlacement?"boolean"==typeof r.autoPlacement?e.push(o.autoPlacement()):e.push(o.autoPlacement(r.autoPlacement)):r.flip&&("boolean"==typeof r.flip?e.push(o.flip({fallbackStrategy:"initialPlacement"})):e.push(o.flip(r.flip))),r.shift&&("boolean"==typeof r.shift?e.push(o.shift()):e.push(o.shift(r.shift))),r.size){const t=({availableWidth:e,availableHeight:t})=>{f.value=`${e}px`,m.value=`${t}px`};"boolean"==typeof r.size?e.push(o.size({apply:t})):e.push(o.size({...r.size,apply:t}))}return r.offset&&(e.push(o.offset(Number(r.offset))),["string","number"].includes(typeof r.offset)?e.push(o.offset(Number(r.offset))):e.push(o.offset(r.offset))),r.arrow&&e.push(o.arrow({element:b})),e}),{x:T,y:D,middlewareData:B,placement:C,strategy:N}=o.useFloating(E,h,{whileElementsMounted:(...e)=>o.autoUpdate(...e,{animationFrame:r.strategy===v.fixed}),placement:e.computed(()=>r.placement),strategy:e.computed(()=>r.strategy),middleware:L}),O=e.computed(()=>{if($.value)return;const e=r.triggerWidth&&E.value?`${E.value?.offsetWidth}px`:void 0;return{position:N.value,top:`${D.value??0}px`,left:`${T.value??0}px`,maxWidth:e?void 0:f.value,maxHeight:m.value,width:e}}),P=e.computed(()=>C.value.split("-")[0]),A=e.computed(()=>{if($.value)return;const e={[p.top]:p.bottom,[p.right]:p.left,[p.bottom]:p.top,[p.left]:p.right}[P.value];return{left:void 0!==B.value.arrow?.x?`${B.value.arrow?.x}px`:void 0,top:void 0!==B.value.arrow?.y?`${B.value.arrow?.y}px`:void 0,[e]:-(b.value?.offsetWidth??0)/2+"px"}}),I=a.useVModel(r,"modelValue",u),M=e.ref(!1),_=e.computed({get:()=>I.value??M.value,set:e=>{void 0!==I.value?I.value=e:M.value=e}});function V(){_.value=!0}function H(){_.value=!1}function R(){_.value=!_.value}function F(e){E.value=e}a.onClickOutside(h,()=>{!r.keepOpen&&_.value&&(_.value=!1)},{ignore:[E]});const j=e.computed(()=>E.value?.getAttribute?.("id")??void 0),z=e.computed(()=>({"aria-controls":d.value,"aria-haspopup":!0,"aria-expanded":_.value})),{component:U,bus:W}=function({reference:t,id:o,expanded:a,aria:n}){const i=l(),r=e.defineComponent({name:"VvDropdownTriggerProvider",setup(){e.provide(k,{reference:t,id:o,expanded:a,aria:n,bus:i})},render(){return e.h(e.Fragment,{},this.$slots.default?.())}});return{bus:i,component:r}}({reference:E,id:d,expanded:_,aria:z});W.on("click",R);const{role:Y,modifiers:q}=e.toRefs(r),K=ae("vv-dropdown",q,e.computed(()=>({arrow:r.arrow}))),{focused:X}=a.useFocusWithin(h);function J(e){return e?[...e.querySelectorAll('a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])')].filter(e=>!e.hasAttribute("disabled")&&!e.getAttribute("aria-hidden")):[]}function Z(){e.nextTick(()=>{const e=J(h.value);e.length>0&&e[0].focus({preventScroll:!0})})}function G(){e.nextTick(()=>{if(X.value){const e=J(h.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t<e.length-1?e[t+1].focus({preventScroll:!0}):e[0].focus({preventScroll:!0})}})}function Q(){e.nextTick(()=>{if(X.value){const e=J(h.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t>0?e[t-1].focus({preventScroll:!0}):e[e.length-1].focus({preventScroll:!0})}})}e.watch(_,e=>{e&&r.autofocusFirst&&Z()}),n({toggle:R,show:V,hide:H,init:F,focusFirst:Z,focusFirstListElement:function(){e.nextTick(()=>{const e=J(w.value);e.length>0&&e[0].focus({preventScroll:!0})})},focusNext:G,focusPrev:Q,customPosition:$});const ee=a.useElementHover(h),{itemRole:te}=function({role:t,...o}){const a=e.computed(()=>t.value===y.listbox?S.option:S.presentation);return e.provide(x,{role:a,...o}),{itemRole:a}}({role:Y,expanded:_,focused:X,hovered:ee});a.onKeyStroke("Escape",e=>{_.value&&(e.preventDefault(),H())}),a.onKeyStroke("ArrowDown",e=>{_.value&&X.value&&(e.preventDefault(),G())}),a.onKeyStroke("ArrowUp",e=>{_.value&&X.value&&(e.preventDefault(),Q())}),a.onKeyStroke([" ","Enter"],e=>{const t=e.target;_.value&&X.value&&t&&t?.click()});const ne={"before-enter":()=>{u(_.value?"beforeExpand":"beforeCollapse"),u("beforeEnter")},"after-leave":()=>{u(_.value?"afterExpand":"afterCollapse"),u("afterLeave")},enter:()=>{u("enter")},"after-enter":()=>{u("afterEnter")},"enter-cancelled":()=>{u("enterCancelled")},"before-leave":()=>{u("beforeLeave")},leave:()=>{u("leave")},"leave-cancelled":()=>{u("leaveCancelled")}};return(t,o)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(U),null,{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps({init:F,show:V,hide:H,toggle:R,expanded:e.unref(_),aria:e.unref(z)})))]),_:3}),e.createVNode(e.Transition,e.mergeProps({name:t.transitionName},e.toHandlers(ne),{persisted:""}),{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{ref_key:"floatingEl",ref:h,style:e.normalizeStyle(e.unref(O)),class:e.normalizeClass(e.unref(K))},[r.arrow?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"arrowEl",ref:b,style:e.normalizeStyle(e.unref(A)),class:"vv-dropdown__arrow"},null,4)):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(_)}))),e.createElementVNode("div",e.mergeProps(e.unref(c),{id:e.unref(d),ref_key:"listEl",ref:w,tabindex:e.unref(_)?void 0:-1,role:e.unref(Y),"aria-labelledby":e.unref(j),class:"vv-dropdown__list"}),[e.renderSlot(t.$slots,"items",e.normalizeProps(e.guardReactiveProps({role:e.unref(te)})))],16,le),e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(_)})))],6),[[e.vShow,e.unref(_)]])]),_:3},16,["name"])],64))}});const ie=e.defineComponent({name:"VvDropdownItem",props:ee,setup(t){const o=t,{role:l,expanded:n}=e.inject(x,{}),i=e.ref(null);!function({expanded:t}){e.provide(E,{role:e.ref(b.menuitem),expanded:t})}({expanded:n});const r=a.useElementHover(i),{focused:u}=a.useFocus(i),{focused:s}=a.useFocusWithin(i);return e.watch(r,e=>{e&&o.focusOnHover&&(u.value=!0)}),(t,o)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({role:e.unref(l)},{ref_key:"element",ref:i,class:["vv-dropdown__item",{"focus-visible":e.unref(u)||e.unref(s)}]}),[e.renderSlot(t.$slots,"default")],16))}}),re=["title"],ue=e.defineComponent({name:"VvDropdownOption",props:te,setup(t){const o=t,{modifiers:a}=e.toRefs(o),l=ae("vv-dropdown-option",a,e.computed(()=>({disabled:o.disabled,selected:o.selected,unselectable:o.unselectable&&o.selected}))),n=e.computed(()=>o.selected?o.unselectable?o.deselectHintLabel:o.selectedHintLabel:o.disabled?"":o.selectHintLabel);return(t,o)=>(e.openBlock(),e.createBlock(ie,{class:e.normalizeClass(e.unref(l)),tabindex:t.disabled?-1:0,"aria-selected":t.selected,"aria-disabled":t.disabled,"focus-on-hover":t.focusOnHover},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default"),e.createElementVNode("span",{class:"vv-dropdown-option__hint",title:e.unref(n)},[e.renderSlot(t.$slots,"hint",e.normalizeProps(e.guardReactiveProps({disabled:t.disabled,selected:t.selected,unselectable:t.unselectable})),()=>[e.createTextVNode(e.toDisplayString(e.unref(n)),1)])],8,re)]),_:3},8,["class","tabindex","aria-selected","aria-disabled","focus-on-hover"]))}});function se(){return e.inject(w,void 0)}const de=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:{}},O),setup(t){const o=t,a=e.computed(()=>"string"==typeof o.rotate?Number.parseFloat(o.rotate):o.rotate),l=e.ref(!0),i=se(),{modifiers:r}=e.toRefs(o),u=ae("vv-icon",r),s=e.computed(()=>o.provider||i?.iconsProvider),d=e.computed(()=>{const e=o.name??"",t=`@${s.value}:${o.prefix}:${e}`;if(n.iconLoaded(t))return t;const a=i?.iconsCollections.find(t=>{const o=`@${s.value}:${t.prefix}:${e}`;return n.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&&n.addIcon(`@${s.value}:${o.prefix}:${o.name}`,{body:a,height:t.viewBox.baseVal.height,width:t.viewBox.baseVal.width})}return i&&o.src&&!n.iconLoaded(`@${s.value}:${o.prefix}:${o.name}`)&&(l.value=!1,i.fetchIcon(o.src).then(e=>{e&&(c(e),l.value=!0)}).catch(e=>{throw new Error(`Error during fetch icon: ${e?.message}`)})),o.svg&&c(o.svg),(o,i)=>e.unref(l)?(e.openBlock(),e.createBlock(e.unref(n.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)}}),ce={TEXT:"text",PASSWORD:"password",NUMBER:"number",EMAIL:"email",TEL:"tel",URL:"url",COLOR:"color",SEARCH:"search",DATE:"date",TIME:"time",DATETIME_LOCAL:"datetime-local",MONTH:"month",WEEK:"week"},ve={...Z,...G,modelValue:[String,Number,Date],type:{type:String,default:ce.TEXT,validator:e=>Object.values(ce).includes(e)},min:[Number,Date,String],max:[Number,Date,String],step:{type:[String,Number],default:1},pattern:String,multiple:Boolean,iconShowPassword:{type:[String,Object],default:$},iconHidePassword:{type:[String,Object],default:L},iconClear:{type:[String,Object],default:C},iconRemoveSuggestion:{type:[String,Object],default:N},labelStepUp:{type:String,default:"Increase value"},labelStepDown:{type:String,default:"Decrease value"},labelShowPassword:{type:String,default:"Show password"},labelHidePassword:{type:String,default:"Hide password"},labelClear:{type:String,default:"Clear"},labelRemoveSuggestion:{type:String,default:"Remove suggestion"},iMask:{type:Object,default:void 0},masked:{type:String,default:void 0},autoWidth:{type:Boolean,default:!1},hideActions:{type:Boolean,default:!1},unit:{type:String},selectOnFocus:{type:Boolean,default:!1},maxSuggestions:{type:Number,default:5},suggestions:{type:Array,default:void 0},inputMode:{type:String,default:"text"}};function pe(t,o){const a=e.computed(()=>"string"==typeof t?.value?{name:t?.value}:t?.value),l=e.computed(()=>o?.value===m.before?a.value:void 0),n=e.computed(()=>o?.value===m.after?a.value:void 0),i=e.computed(()=>o?.value===p.left?a.value:void 0),r=e.computed(()=>o?.value===p.right?a.value:void 0),u=e.computed(()=>o?.value===p.top?a.value:void 0),s=e.computed(()=>o?.value===p.bottom?a.value:void 0);return{hasIcon:a,hasIconLeft:i,hasIconRight:r,hasIconTop:u,hasIconBottom:s,hasIconBefore:l,hasIconAfter:n}}const fe=e.defineComponent({components:{VvIcon:de},props:{inputType:{type:String,default:"input-text"},disabled:{type:Boolean,default:!1},label:{type:String,default:"Clear"},icon:{type:[String,Object],default:"close"}},emits:["clear"],setup(t,{emit:o}){const{hasIcon:a}=pe(e.computed(()=>t.icon));return{hasIcon:a,onClick:function(e){e?.stopPropagation(),t.disabled||o("clear")}}},render(){const t=this.hasIcon?e.h(de,{...this.hasIcon,class:`vv-${this.inputType}__icon`}):void 0;return e.h("button",{disabled:this.disabled,class:`vv-${this.inputType}__action`,ariaLabel:this.label,type:"button",onClick:this.onClick},t)}}),me=e.defineComponent({components:{VvIcon:de},props:{inputType:{type:String,default:"input-text"},disabled:{type:Boolean,default:!1},labelShow:{type:String,default:"Show password"},labelHide:{type:String,default:"Hide password"},iconShow:{type:[String,Object],default:$},iconHide:{type:[String,Object],default:L}},emits:["toggle-password"],setup(t,{emit:o}){const a=e.ref(!1),l=e.computed(()=>a.value?t.iconHide:t.iconShow),{hasIcon:n}=pe(l);return{active:a,activeIcon:l,hasIcon:n,onClick:function(e){e?.stopPropagation(),t.disabled||(a.value=!a.value,o("toggle-password",a.value))}}},render(){const t=this.hasIcon?e.h(de,{...this.hasIcon,class:`vv-${this.inputType}__icon`}):void 0;return e.h("button",{disabled:this.disabled,class:`vv-${this.inputType}__action`,ariaLabel:this.active?this.labelHide:this.labelShow,type:"button",onClick:this.onClick},t)}}),ge=e.defineComponent({components:{VvIcon:de},props:{inputType:{type:String,default:"input-text"},disabled:{type:Boolean,default:!1},label:{type:String},mode:{type:String,validator:e=>["up","down"].includes(e),default:"up"}},emits:["step-up","step-down"],setup(t,{emit:o}){const a=e.computed(()=>"up"===t.mode);return{isUp:a,onClick:e=>{e?.stopPropagation(),t.disabled||o(a.value?"step-up":"step-down")}}},render(){return e.h("button",{class:[`vv-${this.inputType}__action`,`vv-${this.inputType}__action-chevron`,this.isUp?`vv-${this.inputType}__action-chevron-up`:void 0],disabled:this.disabled,ariaLabel:this.label,type:"button",onClick:this.onClick})}});function he(t,o,a){return{name:"VvInputTextActions",components:{VvIcon:de,VvInputPasswordAction:me,VvInputStepAction:ge,VvInputClearAction:fe},setup(){const t=e.computed(()=>o.disabled||o.readonly);return{isDirty:a,isDisabled:t,labelStepUp:o.labelStepUp,labelStepDown:o.labelStepDown,labelShowPassword:o.labelShowPassword,labelHidePassword:o.labelHidePassword,labelClear:o.labelClear,iconShowPassword:o.iconShowPassword,iconHidePassword:o.iconHidePassword}},render(){let a=null;switch(t){case ce.SEARCH:{const{onClear:t}=this.$attrs;a=[e.h(fe,{disabled:this.isDisabled||!this.isDirty,label:this.labelClear,onClear:t})];break}case ce.PASSWORD:{const{onTogglePassword:t}=this.$attrs;a=[e.h(me,{disabled:this.isDisabled,onTogglePassword:t,labelShow:this.labelShowPassword,labelHide:this.labelHidePassword,iconShow:this.iconShowPassword,iconHide:this.iconHidePassword})];break}case ce.NUMBER:{const{onStepUp:t,onStepDown:l}=this.$attrs;a=[e.h(ge,{mode:"up",disabled:this.isDisabled||void 0!==o.max&&o.modelValue===o.max,label:this.labelStepUp,onStepUp:t,onStepDown:l}),e.h(ge,{mode:"down",disabled:this.isDisabled||void 0!==o.min&&o.modelValue===o.min,label:this.labelStepDown,onStepUp:t,onStepDown:l})];break}}return Array.isArray(a)?e.h("div",{class:"vv-input-text__actions-group"},a):a}}}const be=["for"],ye={key:0,class:"vv-input-text__input-before"},Se=["id"],we={key:1,class:"vv-input-text__unit"},ke={key:5,class:"vv-input-text__input-after"},xe={key:6,class:"vv-input-text__limit"},Ee={class:"flex-1"},$e=["title","onClick"];return e.defineComponent({name:"VvInputText",props:ve,emits:["update:modelValue","update:masked","accept","accept:typed","accept:masked","accept:unmasked","complete","complete:typed","complete:masked","complete:unmasked","suggestion:selected","suggestion:removed","focus","blur","keyup","keydown","keypress","clear"],setup(o,{expose:l,emit:n}){const v=o,p=n,f=e.useSlots(),m=se(),g=function(t,o,a){const l=se(),n=e.computed(()=>{if(l&&l.defaults.value?.[t])return l.defaults.value[t]});return e.computed(()=>{if(void 0===n.value)return a;const e=n.value,t=o,l=a;return Object.keys(t).reduce((o,a)=>{const n=l[a];if(o[a]=n,a in e){if(Array.isArray(t[a])){const l=t[a];l.length&&l[0]===n&&(o[a]=e[a])}if("function"==typeof t[a]&&(0,t[a])()===n&&(o[a]=e[a]),"object"==typeof t[a]){let l=t[a].default;"function"==typeof l&&(l=l()),"object"==typeof l?JSON.stringify(l)===JSON.stringify(n)&&(o[a]=e[a]):l===n&&(o[a]=e[a])}}return o},{})})}("VvInputText",ve,v),{count:h,debounce:b,icon:y,iconPosition:S,iconRemoveSuggestion:w,id:k,invalid:x,label:E,labelRemoveSuggestion:$,loading:L,maxlength:C,minlength:N,modelValue:O,step:P,storageType:A,type:I,unit:M,valid:_}=e.toRefs(v),V=oe(k),H=e.computed(()=>`${V.value}-hint`),R=e.computed(()=>v.floating&&s(v.placeholder)?" ":v.placeholder),F=function(t,o,a=0,{getter:l=e=>e,setter:n=e=>e}={}){let i;return"string"==typeof a&&(a=Number.parseInt(a)),e.computed({get:()=>l(t?.value),set:e=>{i&&clearTimeout(i),i=setTimeout(()=>{o("update:modelValue",n(e))},a)}})}(O,p,b?.value??0),j=e.computed(()=>{const e="number"==typeof P.value?P.value:Number.parseInt(P.value);return!Number.isNaN(e)&&e%60!=0}),z=/^-0?[.,]?[0*]?$/,U=e.ref(!1),W=e.ref(),Y=e.ref(),{el:q,mask:K,typed:X,masked:J,unmasked:Z}=t.useIMask(e.computed(()=>{if(!v.iMask)return{mask:/./};if(v.iMask.mask===Number){const e={...v.iMask};return v.min&&(e.min=Number(v.min)),v.max&&(e.max=Number(v.max)),e}return v.iMask}),{emit:p,onAccept:()=>{if(U.value){if(p("update:masked",J.value),I.value===ce.NUMBER){if(/^-$|^$/.test(Z.value)){if(null===F.value||void 0===F.value)return;return void(F.value=void 0)}return z.test(Z.value)?void(F.value=0):"number"!=typeof X.value?void(F.value=Number(X.value)):void(F.value=X.value)}if(I.value===ce.DATETIME_LOCAL||I.value===ce.DATE||I.value===ce.TIME||I.value===ce.MONTH){if(!X.value){if(!F.value)return;return W.value?void(F.value=void 0):void(F.value="")}if(!(X.value instanceof Date||W.value||Y.value))return void(F.value=X.value);let e=X.value;if(e instanceof Date||(e=function(e,t="date"){if(!e?.trim())return null;const o=new Date,a=o.getFullYear(),l=o.getMonth(),n=o.getDate();if("date"===t){if(!/^\d{4}-\d{2}-\d{2}$/.test(e))throw new Error("Invalid date format. Expected: YYYY-MM-DD");return new Date(`${e}T00:00:00`)}if("month"===t){if(!/^\d{4}-\d{2}$/.test(e))throw new Error("Invalid month format. Expected: YYYY-MM");return new Date(`${e}-01T00:00:00`)}if("time"===t){if(!/^(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d)?$/.test(e))throw new Error("Invalid time format. Expected: HH:mm or HH:mm:ss");return 8===e.length?new Date(`${a}-${i(l+1)}-${i(n)}T${e}`):new Date(`${a}-${i(l+1)}-${i(n)}T${e}:00`)}if(!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?$/.test(e))throw new Error("Invalid datetime format. Expected: YYYY-MM-DDThh:mm or YYYY-MM-DDThh:mm:ss");return 16===e.length?new Date(`${e}:00`):new Date(`${e}`)}(X.value,I.value)),W.value||Y.value){const t=new Date(W.value||Y.value);if(I.value!==ce.DATETIME_LOCAL&&I.value!==ce.DATE&&I.value!==ce.MONTH||(t.setFullYear(e.getFullYear()),t.setMonth(e.getMonth())),I.value!==ce.DATETIME_LOCAL&&I.value!==ce.DATE||t.setDate(e.getDate()),I.value!==ce.DATETIME_LOCAL&&I.value!==ce.TIME||(t.setHours(e.getHours()),t.setMinutes(e.getMinutes()),t.setSeconds(e.getSeconds())),W.value instanceof Date){if(F.value?.getTime()===t.getTime())return;return void(F.value=t)}return void(F.value=t.toISOString())}return void(F.value=u(e,I.value,j.value))}(F.value||Z.value)&&(F.value=Z.value)}}});function G(e){if(null==e)return X.value="",void(Z.value="");if(v.iMask?.mask!==Date){if(I.value!==ce.NUMBER||!z.test(Z.value)||0!==e){if(Xe.value){if(e instanceof Date||r(e)){if(e instanceof Date?(W.value=e,Y.value=void 0):(Y.value=e,W.value=void 0),I.value!==ce.WEEK){const t=new Date(e),o=I.value;X.value=u(t,o,j.value),Z.value=X.value}return}W.value=void 0,Y.value=void 0}X.value=e,Z.value=`${X.value}`}}else X.value=e instanceof Date?e:new Date(e)}e.onMounted(()=>{K.value&&(U.value=!0,G(v.modelValue))}),e.watch(()=>v.modelValue,e=>{K.value&&G(e)}),e.watch(()=>v.masked,e=>{J.value=e??""});const Q=q,ee=e.ref(),te=e.ref(),le=e.ref();l({$input:Q,$inner:ee,$wrapper:te});const{focused:ie}=function(t,o){const{focused:l}=a.useFocus(t);return e.watch(l,a=>{o(a?"focus":"blur",e.unref(t))}),{focused:l}}(Q,p),re=e.computed(()=>ie.value&&!v.disabled&&!v.readonly);e.watch(re,function(e){e?function(){g.value.selectOnFocus&&Q.value&&Q.value.select();ze.value.size&&le.value?.show()}():function(){if(!Re.value||!je.value)return;const e=v.maxSuggestions;if(void 0===F.value||null===F.value||""===F.value)return;je.value.size>=e&&!je.value.has(F.value)&&(je.value=new Set([...je.value].slice(je.value.size-e+1)));je.value.add(F.value)}()});const fe=a.useElementVisibility(Q);e.watch(fe,e=>{e&&v.autofocus&&!v.disabled&&!v.readonly&&(ie.value=!0)});const me=e.ref(!1),ge=e.computed(()=>v.type===ce.PASSWORD);function Le(){me.value=!me.value}const Te=e.computed(()=>Xe.value),De=e.computed(()=>v.type===ce.NUMBER);function Be(){if(!Ve.value){if(v.iMask)return void(X.value=Number(X.value)+Number(P?.value??1));Q.value.stepUp(),F.value=Number(Q.value.value)}}function Ce(){if(!Ve.value){if(v.iMask)return void(X.value=Number(X.value)-Number(P?.value??1));Q.value.stepDown(),F.value=Number(Q.value.value)}}const Ne=e.computed(()=>v.type===ce.SEARCH);function Oe(){F.value="",p("clear")}const{hasIconBefore:Pe,hasIconAfter:Ae}=pe(y,S),Ie=e.computed(()=>{if(void 0!==Ae.value)return Ae.value;switch(v.type){case ce.COLOR:return{name:B};case ce.DATE:case ce.DATETIME_LOCAL:case ce.WEEK:case ce.MONTH:return{name:T};case ce.TIME:return{name:D}}}),{hasIcon:Me}=pe(w),{formatted:_e}=function(t,o){const a=e.computed(()=>(e.unref(t)??"").length),l=e.computed(()=>void 0!==o?.lowerLimit&&a.value<o?.lowerLimit?a.value-o.lowerLimit:void 0!==o?.upperLimit&&a.value<o?.upperLimit?o.upperLimit-a.value:0),n=e.computed(()=>{if(!1===o?.mode)return"";if("limit"===o?.mode&&o?.upperLimit)return`${a.value} / ${o.lowerLimit?`${o.lowerLimit}-`:""}${o.upperLimit}`;if("countdown"===o?.mode){if(0===l.value)return;return l}return a.value});return{length:a,gap:l,formatted:n}}(F,{mode:h.value,upperLimit:Number(C?.value),lowerLimit:Number(N?.value)}),Ve=e.computed(()=>v.disabled||v.readonly),He=e.computed(()=>Ve.value?-1:v.tabindex),Re=e.computed(()=>!s(O?.value)),Fe=e.computed(()=>!0===x.value||!0!==_.value&&void 0),je=function(t,o=c.local,l){const n=e.ref();let i;return l&&(n.value=l),e.onMounted(()=>{t&&e.watch(t,(t,l)=>{const r=e.unref(o)===c.session?sessionStorage:localStorage;if(l&&l!==t&&r.removeItem(l),t)return i=a.useStorage(t,i?.value??n.value,r),void(i.value&&(n.value=i.value));i=void 0},{immediate:!0}),e.isRef(o)&&e.watch(o,(e,o)=>{if(t?.value){if(e){const o=e===c.session?sessionStorage:localStorage;i=a.useStorage(t.value,i?.value??n.value,o)}o&&o!==e&&(o===c.session?sessionStorage:localStorage).removeItem(t.value)}})}),e.watch(n,e=>{i&&(i.value=e)},{deep:!0,immediate:!0}),n}(e.computed(()=>v.storageKey??(m?.experimentalFeatures.forceInputSuggestions?v.name:void 0)),A,new Set),ze=e.computed(()=>{const e=new Map;if(je.value)for(const t of je.value)e.set(t,{isFromStorage:!0});if(v.suggestions)for(const t of v.suggestions)e.set(t,{isFromStorage:!1});return e}),Ue=e.computed(()=>0===ze.value.size?[]:[...ze.value.entries()].filter(([e])=>s(F.value)||`${e}`.toLowerCase().includes(`${F.value}`.toLowerCase())&&e!==F.value).reverse().map(([e])=>e)),We=e.computed(()=>ze.value.size>0);const{modifiers:Ye}=e.toRefs(v),qe=ae("vv-input-text",Ye,e.computed(()=>({valid:_.value,invalid:x.value,loading:L.value,disabled:v.disabled,required:v.required,readonly:v.readonly,"icon-before":!!Pe.value,"icon-after":!!Ie.value,floating:v.floating&&!s(v.label),dirty:Re.value,focus:re.value&&!Ve.value,"auto-width":v.autoWidth}))),Ke=e.computed(()=>[ce.TEXT,ce.SEARCH,ce.URL,ce.TEL,ce.EMAIL,ce.PASSWORD].includes(I.value)),Xe=e.computed(()=>[ce.DATE,ce.MONTH,ce.WEEK,ce.TIME,ce.DATETIME_LOCAL].includes(I.value)),Je=e.computed(()=>[ce.TEXT,ce.SEARCH,ce.URL,ce.TEL,ce.EMAIL,ce.PASSWORD].includes(I.value)),Ze=e.computed(()=>{const e=ge.value&&me.value?ce.TEXT:!Te.value||Re.value||ie.value?v.iMask?ce.TEXT:v.type:ce.TEXT,t={type:e,name:v.name,tabindex:He.value,disabled:v.disabled,readonly:v.readonly,required:v.required,autocomplete:v.autocomplete,"aria-invalid":Fe.value,"aria-describedby":et.value?H.value:void 0,"aria-errormessage":tt.value?H.value:void 0,inputMode:v.inputMode};if(Xe.value||e===ce.NUMBER){let o=v.max;e!==ce.DATE||o||(o="9999-12-31"),t.step=v.step,t.max=void 0!==o?String(o):void 0,t.min=void 0!==v.min?String(v.min):void 0}return(Ke.value||e===ce.NUMBER)&&(t.placeholder=R.value),Je.value&&(t.minlength=v.minlength,t.maxlength=v.maxlength,t.pattern=v.pattern),e===ce.EMAIL&&(t.multiple=v.multiple),t}),Ge=e.computed(()=>({valid:v.valid,invalid:v.invalid,modelValue:v.modelValue,togglePassword:Le,stepUp:Be,stepDown:Ce,clear:Oe})),{HintSlot:Qe,hasHintLabelOrSlot:et,hasInvalidLabelOrSlot:tt,hintSlotScope:ot}=function(t,o){const a=e.computed(()=>e.isRef(t)?t.value:t),l=e.computed(()=>d(a.value.invalidLabel)),n=e.computed(()=>d(a.value.validLabel)),i=e.computed(()=>a.value.loadingLabel),r=e.computed(()=>a.value.hintLabel),u=e.computed(()=>Boolean(a.value.loading&&(o.loading||i.value))),s=e.computed(()=>!u.value&&Boolean(a.value.invalid&&(o.invalid||l.value))),c=e.computed(()=>!u.value&&!s.value&&Boolean(a.value.valid&&(o.valid||n.value))),v=e.computed(()=>!u.value&&!s.value&&!c.value&&Boolean(o.hint||r.value)),p=e.computed(()=>s.value||c.value||u.value||v.value),f=e.computed(()=>({modelValue:a.value.modelValue,valid:a.value.valid,invalid:a.value.invalid,loading:a.value.loading})),m=e.defineComponent({name:"HintSlot",props:{tag:{type:String,default:"small"}},setup:()=>({isVisible:p,invalidLabel:l,validLabel:n,loadingLabel:i,hintLabel:r,hasInvalidLabelOrSlot:s,hasValidLabelOrSlot:c,hasLoadingLabelOrSlot:u,hasHintLabelOrSlot:v}),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:v,hasValidLabelOrSlot:c,hasLoadingLabelOrSlot:u,hintSlotScope:f,HintSlot:m}}(g,f),at=he(ce.PASSWORD,v,Re),lt=he(ce.NUMBER,v,Re),nt=he(ce.SEARCH,v,Re);function it(){Ve.value||(ie.value=!0)}const rt=e.computed(()=>{if(v.autoWidth)return{width:void 0!==F.value?`${String(F.value).length+1}ch`:void 0}});function ut(e){switch(e.code){case"ArrowUp":De.value&&(Be(),e.preventDefault());break;case"ArrowDown":De.value&&(Ce(),e.preventDefault())}p("keydown",e)}return(t,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(qe))},[e.unref(E)?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(V),class:"vv-input-text__label"},e.toDisplayString(e.unref(E)),9,be)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{ref_key:"wrapperEl",ref:te,class:"vv-input-text__wrapper"},[t.$slots.before?(e.openBlock(),e.createElementBlock("div",ye,[e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps(e.unref(Ge))))])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{ref_key:"innerEl",ref:ee,class:"vv-input-text__inner",onClick:e.withModifiers(it,["stop"])},[e.unref(Pe)?(e.openBlock(),e.createBlock(de,e.mergeProps({key:0},e.unref(Pe),{class:"vv-input-text__icon"}),null,16)):e.createCommentVNode("v-if",!0),e.createElementVNode("input",e.mergeProps({id:e.unref(V),ref_key:"inputEl",ref:Q},e.unref(Ze),{style:e.unref(rt),onKeyup:o[0]||(o[0]=e=>p("keyup",e)),onKeydown:ut,onKeypress:o[1]||(o[1]=e=>p("keypress",e))}),null,16,Se),(e.unref(M)||t.$slots.unit)&&e.unref(Re)?(e.openBlock(),e.createElementBlock("div",we,[e.renderSlot(t.$slots,"unit",e.normalizeProps(e.guardReactiveProps(e.unref(Ge))),()=>[e.createTextVNode(e.toDisplayString(e.unref(M)),1)])])):e.createCommentVNode("v-if",!0)],512),e.unref(Ie)?(e.openBlock(),e.createBlock(de,e.mergeProps({key:1},e.unref(Ie),{class:"vv-input-text__icon vv-input-text__icon-after"}),null,16)):!e.unref(ge)||t.hideActions||e.unref(Ve)?!e.unref(De)||t.hideActions||e.unref(Ve)?!e.unref(Ne)||t.hideActions||e.unref(Ve)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createBlock(e.unref(nt),{key:4,onClear:Oe})):(e.openBlock(),e.createBlock(e.unref(lt),{key:3,onStepUp:Be,onStepDown:Ce})):(e.openBlock(),e.createBlock(e.unref(at),{key:2,onTogglePassword:Le})),t.$slots.after?(e.openBlock(),e.createElementBlock("div",ke,[e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps(e.unref(Ge))))])):e.createCommentVNode("v-if",!0),e.unref(h)?(e.openBlock(),e.createElementBlock("span",xe,[e.renderSlot(t.$slots,"count",e.normalizeProps(e.guardReactiveProps(e.unref(Ge))),()=>[e.createTextVNode(e.toDisplayString(e.unref(_e)),1)])])):e.createCommentVNode("v-if",!0)],512),e.createVNode(e.unref(Qe),{id:e.unref(H),class:"vv-input-text__hint"},e.createSlots({_:2},[t.$slots.hint?{name:"hint",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"hint",e.normalizeProps(e.guardReactiveProps(e.unref(ot))))]),key:"0"}:void 0,t.$slots.loading?{name:"loading",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"loading",e.normalizeProps(e.guardReactiveProps(e.unref(ot))))]),key:"1"}:void 0,t.$slots.valid?{name:"valid",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"valid",e.normalizeProps(e.guardReactiveProps(e.unref(ot))))]),key:"2"}:void 0,t.$slots.invalid?{name:"invalid",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"invalid",e.normalizeProps(e.guardReactiveProps(e.unref(ot))))]),key:"3"}:void 0]),1032,["id"]),e.unref(We)?(e.openBlock(),e.createBlock(ne,{key:1,ref_key:"suggestionsDropdownEl",ref:le,reference:e.unref(te),"autofocus-first":!1,"trigger-width":!0},{items:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(Ue),o=>(e.openBlock(),e.createBlock(ue,{key:String(o),onClick:e.withModifiers(e=>{return t=o,F.value=t,le.value?.hide(),void p("suggestion:selected",t);var t},["stop"])},{default:e.withCtx(()=>[e.createElementVNode("div",Ee,[e.renderSlot(t.$slots,"suggestion",e.mergeProps({ref_for:!0},{value:o}),()=>[e.createTextVNode(e.toDisplayString(o),1)])]),e.unref(ze).get(o)?.isFromStorage&&e.unref(Me)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",tabindex:"-1",class:"cursor-pointer",title:e.unref($),onClick:e.withModifiers(e=>{return t=o,void(ze.value.get(t)?.isFromStorage&&(je.value?.delete(t),p("suggestion:removed",t)));var t},["stop"])},[e.createVNode(de,e.mergeProps({ref_for:!0},e.unref(Me)),null,16)],8,$e)):e.createCommentVNode("v-if",!0)]),_:2},1032,["onClick"]))),128))]),_:3},8,["reference"])):e.createCommentVNode("v-if",!0)],2))}})});
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import type { InputType } from '../VvInputText';
|
|
1
2
|
declare const _default: typeof __VLS_export;
|
|
2
3
|
export default _default;
|
|
3
4
|
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<globalThis.ExtractPropTypes<{
|
|
4
5
|
modelValue: (StringConstructor | NumberConstructor | DateConstructor)[];
|
|
5
6
|
type: {
|
|
6
|
-
type: PropType<
|
|
7
|
+
type: PropType<InputType>;
|
|
7
8
|
default: "text";
|
|
8
|
-
validator: (value:
|
|
9
|
+
validator: (value: InputType) => boolean;
|
|
9
10
|
};
|
|
10
11
|
min: (StringConstructor | NumberConstructor | DateConstructor)[];
|
|
11
12
|
max: (StringConstructor | NumberConstructor | DateConstructor)[];
|
|
@@ -82,6 +83,10 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<global
|
|
|
82
83
|
type: NumberConstructor;
|
|
83
84
|
default: number;
|
|
84
85
|
};
|
|
86
|
+
suggestions: {
|
|
87
|
+
type: PropType<(string | number | Date)[]>;
|
|
88
|
+
default: undefined;
|
|
89
|
+
};
|
|
85
90
|
inputMode: {
|
|
86
91
|
type: StringConstructor;
|
|
87
92
|
default: string;
|
|
@@ -201,9 +206,9 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<global
|
|
|
201
206
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<globalThis.ExtractPropTypes<{
|
|
202
207
|
modelValue: (StringConstructor | NumberConstructor | DateConstructor)[];
|
|
203
208
|
type: {
|
|
204
|
-
type: PropType<
|
|
209
|
+
type: PropType<InputType>;
|
|
205
210
|
default: "text";
|
|
206
|
-
validator: (value:
|
|
211
|
+
validator: (value: InputType) => boolean;
|
|
207
212
|
};
|
|
208
213
|
min: (StringConstructor | NumberConstructor | DateConstructor)[];
|
|
209
214
|
max: (StringConstructor | NumberConstructor | DateConstructor)[];
|
|
@@ -280,6 +285,10 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<global
|
|
|
280
285
|
type: NumberConstructor;
|
|
281
286
|
default: number;
|
|
282
287
|
};
|
|
288
|
+
suggestions: {
|
|
289
|
+
type: PropType<(string | number | Date)[]>;
|
|
290
|
+
default: undefined;
|
|
291
|
+
};
|
|
283
292
|
inputMode: {
|
|
284
293
|
type: StringConstructor;
|
|
285
294
|
default: string;
|
|
@@ -394,7 +403,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<global
|
|
|
394
403
|
label: string | number;
|
|
395
404
|
disabled: boolean;
|
|
396
405
|
modifiers: string | string[];
|
|
397
|
-
type:
|
|
406
|
+
type: InputType;
|
|
398
407
|
storageType: "local" | "session";
|
|
399
408
|
icon: string | import("../VvIcon").VvIconProps;
|
|
400
409
|
iconPosition: "before" | "after";
|
|
@@ -429,6 +438,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<global
|
|
|
429
438
|
hideActions: boolean;
|
|
430
439
|
selectOnFocus: boolean;
|
|
431
440
|
maxSuggestions: number;
|
|
441
|
+
suggestions: (string | number | Date)[];
|
|
432
442
|
inputMode: string;
|
|
433
443
|
minlength: string | number;
|
|
434
444
|
maxlength: string | number;
|
|
@@ -504,7 +514,7 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<global
|
|
|
504
514
|
}) => any;
|
|
505
515
|
} & {
|
|
506
516
|
suggestion?: (props: {
|
|
507
|
-
value: string;
|
|
517
|
+
value: string | number | Date;
|
|
508
518
|
}) => any;
|
|
509
519
|
}>;
|
|
510
520
|
type __VLS_WithSlots<T, S> = T & {
|
|
@@ -189,6 +189,13 @@ export declare const VvInputTextProps: {
|
|
|
189
189
|
type: NumberConstructor;
|
|
190
190
|
default: number;
|
|
191
191
|
};
|
|
192
|
+
/**
|
|
193
|
+
* External suggestions to display
|
|
194
|
+
*/
|
|
195
|
+
suggestions: {
|
|
196
|
+
type: PropType<(string | number | Date)[]>;
|
|
197
|
+
default: undefined;
|
|
198
|
+
};
|
|
192
199
|
/**
|
|
193
200
|
* The input mode to use for the input
|
|
194
201
|
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{unref as e,computed as t,defineComponent as r,ref as a,watch as l,nextTick as o,createBlock as n,openBlock as i,resolveDynamicComponent as s,withCtx as u,createCommentVNode as c,createElementBlock as p,mergeProps as m,Fragment as f,renderList as d,renderSlot as v}from"vue";import{useVirtualizer as g}from"@tanstack/vue-virtual";function y(e){if(void 0!==e)return"number"==typeof e?e:Number.parseInt(e.replace("px",""),10)}function z(e){return{width:`${e}px`}}function S(e){return{height:`${e}px`}}const h=/* @__PURE__ */r({__name:"VvVirtualScroll",props:{items:{},estimateSize:{},wrapperTag:{default:"ul"},itemTag:{default:"li"},itemProps:{},startSpacerProps:{},endSpacerProps:{},startSpacerTag:{},endSpacerTag:{},overscan:{default:10},getItemKey:{type:Function,default:e=>e},horizontal:{type:Boolean,default:!1},focusable:{type:Boolean,default:!0}},setup(r,{expose:h}){const T=r,I=a(null),x=t(()=>"string"==typeof T.wrapperTag&&["ul","ol","menu"].includes(T.wrapperTag)?void 0:"list"),w=t(()=>"string"==typeof T.itemTag&&"li"===T.itemTag?void 0:"listitem"),{virtualizer:P,virtualItems:_,startSpacer:b,endSpacer:k}=function(r){const a=g({get count(){return e(r.count)},getScrollElement:()=>e(r.scrollEl),getItemKey:r.getItemKey,estimateSize:t=>{const a=e(r.estimateSize);return"function"==typeof a?a(t):y(a)},overscan:y(e(r.overscan)),horizontal:e(r.horizontal)}),l=t(()=>a.value.getVirtualItems()),o=t(()=>l.value.length),n=t(()=>l.value[0]),i=t(()=>l.value[o.value-1]),s=t(()=>a.value.getTotalSize()??0),u=t(()=>{const t=n.value?.start??0;return{show:t>0,size:t,style:e(r.horizontal)?z(t):S(t)}}),c=t(()=>{const t=i.value?.end??0,a=s.value-t;return{show:a>0,size:a,style:e(r.horizontal)?z(a):S(a)}});return{virtualizer:a,virtualItems:l,virtualItemsLength:o,firstVirtualItem:n,lastVirtualItem:i,totalSize:s,startSpacer:u,endSpacer:c}}({scrollEl:I,count:t(()=>T.items.length),estimateSize:t(()=>T.estimateSize),getItemKey:T.getItemKey,overscan:t(()=>T.overscan),horizontal:t(()=>T.horizontal)});function E(e){return T.items[e]}function K(e,t){P.value?.scrollToIndex(e,t)}function V(e,t){P.value?.scrollToOffset(e,t)}return l([()=>T.items.length,()=>T.estimateSize,()=>T.horizontal,()=>T.overscan],()=>{o(()=>P.value?.measure())}),h({virtualizer:P,getElementAtIndex:E,scrollToIndex:K,scrollToOffset:V,measure:()=>P.value?.measure()}),(t,a)=>(i(),n(s(r.wrapperTag),{ref_key:"scrollEl",ref:I,tabindex:r.focusable?0:void 0,role:e(x)},{default:u(()=>[e(b).show?(i(),n(s(r.startSpacerTag||r.itemTag),m({key:0},r.startSpacerProps,{style:e(b).style,"aria-hidden":"true",role:"presentation"}),null,16,["style"])):c("v-if",!0),(i(!0),p(f,null,d(e(_),({index:a,start:l,end:o,key:c},p)=>(i(),n(s(r.itemTag),m({key:c},{ref_for:!0},"function"==typeof r.itemProps?r.itemProps(a):r.itemProps,{role:e(w)}),{default:u(()=>[v(t.$slots,"default",m({ref_for:!0},{item:E(a),start:l,end:o,index:a,virtualIndex:p,scrollToIndex:K,scrollToOffset:V,virtualizer:e(P)}))]),_:2},1040,["role"]))),128)),e(k).show?(i(),n(s(r.endSpacerTag||r.itemTag),m({key:1},r.endSpacerProps,{style:e(k).style,"aria-hidden":"true",role:"presentation"}),null,16,["style"])):c("v-if",!0)]),_:3},8,["tabindex","role"]))}});export{h as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("@tanstack/vue-virtual")):"function"==typeof define&&define.amd?define(["vue","@tanstack/vue-virtual"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvVirtualScroll=t(e.vue,e.vueVirtual)}(this,function(e,t){"use strict";function r(e){if(void 0!==e)return"number"==typeof e?e:Number.parseInt(e.replace("px",""),10)}function o(e){return{width:`${e}px`}}function n(e){return{height:`${e}px`}}return e.defineComponent({__name:"VvVirtualScroll",props:{items:{},estimateSize:{},wrapperTag:{default:"ul"},itemTag:{default:"li"},itemProps:{},startSpacerProps:{},endSpacerProps:{},startSpacerTag:{},endSpacerTag:{},overscan:{default:10},getItemKey:{type:Function,default:e=>e},horizontal:{type:Boolean,default:!1},focusable:{type:Boolean,default:!0}},setup(l,{expose:a}){const u=l,i=e.ref(null),s=e.computed(()=>"string"==typeof u.wrapperTag&&["ul","ol","menu"].includes(u.wrapperTag)?void 0:"list"),c=e.computed(()=>"string"==typeof u.itemTag&&"li"===u.itemTag?void 0:"listitem"),{virtualizer:p,virtualItems:m,startSpacer:f,endSpacer:d}=function(l){const a=t.useVirtualizer({get count(){return e.unref(l.count)},getScrollElement:()=>e.unref(l.scrollEl),getItemKey:l.getItemKey,estimateSize:t=>{const o=e.unref(l.estimateSize);return"function"==typeof o?o(t):r(o)},overscan:r(e.unref(l.overscan)),horizontal:e.unref(l.horizontal)}),u=e.computed(()=>a.value.getVirtualItems()),i=e.computed(()=>u.value.length),s=e.computed(()=>u.value[0]),c=e.computed(()=>u.value[i.value-1]),p=e.computed(()=>a.value.getTotalSize()??0),m=e.computed(()=>{const t=s.value?.start??0;return{show:t>0,size:t,style:e.unref(l.horizontal)?o(t):n(t)}}),f=e.computed(()=>{const t=c.value?.end??0,r=p.value-t;return{show:r>0,size:r,style:e.unref(l.horizontal)?o(r):n(r)}});return{virtualizer:a,virtualItems:u,virtualItemsLength:i,firstVirtualItem:s,lastVirtualItem:c,totalSize:p,startSpacer:m,endSpacer:f}}({scrollEl:i,count:e.computed(()=>u.items.length),estimateSize:e.computed(()=>u.estimateSize),getItemKey:u.getItemKey,overscan:e.computed(()=>u.overscan),horizontal:e.computed(()=>u.horizontal)});function v(e){return u.items[e]}function g(e,t){p.value?.scrollToIndex(e,t)}function y(e,t){p.value?.scrollToOffset(e,t)}return e.watch([()=>u.items.length,()=>u.estimateSize,()=>u.horizontal,()=>u.overscan],()=>{e.nextTick(()=>p.value?.measure())}),a({virtualizer:p,getElementAtIndex:v,scrollToIndex:g,scrollToOffset:y,measure:()=>p.value?.measure()}),(t,r)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.wrapperTag),{ref_key:"scrollEl",ref:i,tabindex:l.focusable?0:void 0,role:e.unref(s)},{default:e.withCtx(()=>[e.unref(f).show?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.startSpacerTag||l.itemTag),e.mergeProps({key:0},l.startSpacerProps,{style:e.unref(f).style,"aria-hidden":"true",role:"presentation"}),null,16,["style"])):e.createCommentVNode("v-if",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(m),({index:r,start:o,end:n,key:a},u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.itemTag),e.mergeProps({key:a},{ref_for:!0},"function"==typeof l.itemProps?l.itemProps(r):l.itemProps,{role:e.unref(c)}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",e.mergeProps({ref_for:!0},{item:v(r),start:o,end:n,index:r,virtualIndex:u,scrollToIndex:g,scrollToOffset:y,virtualizer:e.unref(p)}))]),_:2},1040,["role"]))),128)),e.unref(d).show?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.endSpacerTag||l.itemTag),e.mergeProps({key:1},l.endSpacerProps,{style:e.unref(d).style,"aria-hidden":"true",role:"presentation"}),null,16,["style"])):e.createCommentVNode("v-if",!0)]),_:3},8,["tabindex","role"]))}})});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { Component } from 'vue';
|
|
2
|
+
import type { ScrollToOptions } from '@/composables/useVirtualScroll';
|
|
3
|
+
declare const __VLS_export: <ListItem extends (Record<string | number | symbol, any> | string | number | symbol)>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
4
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<{
|
|
5
|
+
items: ListItem[];
|
|
6
|
+
estimateSize: string | number | ((index: number) => number);
|
|
7
|
+
wrapperTag?: string | Component;
|
|
8
|
+
itemTag?: string | Component;
|
|
9
|
+
itemProps?: Record<string, unknown> | ((index: number) => Record<string, unknown>);
|
|
10
|
+
startSpacerProps?: Record<string, unknown>;
|
|
11
|
+
endSpacerProps?: Record<string, unknown>;
|
|
12
|
+
startSpacerTag?: string | Component;
|
|
13
|
+
endSpacerTag?: string | Component;
|
|
14
|
+
overscan?: string | number;
|
|
15
|
+
getItemKey?: (index: number) => number | string;
|
|
16
|
+
horizontal?: boolean;
|
|
17
|
+
focusable?: boolean;
|
|
18
|
+
}> & (typeof globalThis extends {
|
|
19
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
20
|
+
} ? P : {});
|
|
21
|
+
expose: (exposed: import("vue").ShallowUnwrapRef<{
|
|
22
|
+
virtualizer: globalThis.Ref<import("@tanstack/virtual-core").Virtualizer<HTMLElement, Element>, import("@tanstack/virtual-core").Virtualizer<HTMLElement, Element>>;
|
|
23
|
+
getElementAtIndex: (index: number) => ListItem;
|
|
24
|
+
scrollToIndex: (index: number, options?: ScrollToOptions) => void;
|
|
25
|
+
scrollToOffset: (offset: number, options?: ScrollToOptions) => void;
|
|
26
|
+
measure: () => void;
|
|
27
|
+
}>) => void;
|
|
28
|
+
attrs: any;
|
|
29
|
+
slots: {
|
|
30
|
+
default?: (props: {
|
|
31
|
+
item: ListItem;
|
|
32
|
+
start: number;
|
|
33
|
+
end: number;
|
|
34
|
+
index: number;
|
|
35
|
+
virtualIndex: number;
|
|
36
|
+
scrollToIndex: (index: number, options?: ScrollToOptions) => void;
|
|
37
|
+
scrollToOffset: (offset: number, options?: ScrollToOptions) => void;
|
|
38
|
+
virtualizer: import("@tanstack/virtual-core").Virtualizer<HTMLElement, Element>;
|
|
39
|
+
}) => any;
|
|
40
|
+
};
|
|
41
|
+
emit: {};
|
|
42
|
+
}>) => import("vue").VNode & {
|
|
43
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
44
|
+
};
|
|
45
|
+
declare const _default: typeof __VLS_export;
|
|
46
|
+
export default _default;
|
|
47
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
48
|
+
[K in keyof T]: T[K];
|
|
49
|
+
} : {
|
|
50
|
+
[K in keyof T as K]: T[K];
|
|
51
|
+
}) & {};
|