@davincihealthcare/elty-design-system-vue 2.13.1 → 2.14.0

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.
@@ -43,9 +43,9 @@ declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_T
43
43
  color: "primary" | "secondary";
44
44
  disabled: boolean;
45
45
  leadingIcon: ElIconProps;
46
- focused: boolean;
47
46
  semiboldText: string;
48
47
  check: boolean;
48
+ focused: boolean;
49
49
  }, {}>;
50
50
  export default _default;
51
51
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -1,10 +1,24 @@
1
- declare const _default: import('vue').DefineComponent<__VLS_TypePropsToRuntimeProps<{
1
+ export declare const elSuggestionChipColors: readonly ["primary", "secondary"];
2
+ export type ElSuggestionChipColor = (typeof elSuggestionChipColors)[number];
3
+ interface ElSuggestionChipProps {
2
4
  label: string;
3
- focused?: boolean;
4
- }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
5
- label: string;
6
- focused?: boolean;
7
- }>>>, {}, {}>;
5
+ color?: ElSuggestionChipColor;
6
+ active?: boolean;
7
+ disabled?: boolean;
8
+ }
9
+ declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<ElSuggestionChipProps>, {
10
+ color: ElSuggestionChipColor;
11
+ active: boolean;
12
+ disabled: boolean;
13
+ }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<ElSuggestionChipProps>, {
14
+ color: ElSuggestionChipColor;
15
+ active: boolean;
16
+ disabled: boolean;
17
+ }>>>, {
18
+ color: ElSuggestionChipColor;
19
+ disabled: boolean;
20
+ active: boolean;
21
+ }, {}>;
8
22
  export default _default;
9
23
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
10
24
  type __VLS_TypePropsToRuntimeProps<T> = {
@@ -15,3 +29,11 @@ type __VLS_TypePropsToRuntimeProps<T> = {
15
29
  required: true;
16
30
  };
17
31
  };
32
+ type __VLS_WithDefaults<P, D> = {
33
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
34
+ default: D[K];
35
+ }> : P[K];
36
+ };
37
+ type __VLS_Prettify<T> = {
38
+ [K in keyof T]: T[K];
39
+ } & {};
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./ElSuggestionChip.vue.cjs2.js");exports.default=e.default;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./ElSuggestionChip.vue.cjs2.js");exports.default=e.default;exports.elSuggestionChipColors=e.elSuggestionChipColors;
2
2
  //# sourceMappingURL=ElSuggestionChip.vue.cjs.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),t=e.defineComponent({__name:"ElSuggestionChip",props:{label:{},focused:{type:Boolean}},setup(o){return(r,i)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:e.normalizeClass(["transition-colors h-8 items-center justify-center px-4 min-w-20 rounded-md text-sm font-semibold leading-4 border text-primary bg-white border-primary hover:text-primary-hover hover:bg-primary-light-hover hover:border-primary-hover active:text-primary-pressed active:bg-primary-light-pressed active:border-primary-pressed",{"text-primary-pressed bg-primary-light-pressed border-primary-pressed outlined-primary":r.focused}])},e.toDisplayString(r.label),3))}});exports.default=t;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("vue"),o=["disabled"],l=["primary","secondary"],s=r.defineComponent({__name:"ElSuggestionChip",props:{label:{},color:{default:"primary"},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(t){const a=t;return(e,i)=>(r.openBlock(),r.createElementBlock("button",{type:"button",disabled:e.disabled,class:r.normalizeClass(["transition-colors flex h-8 items-center justify-center gap-1 px-4 min-w-20 rounded-md text-sm font-medium leading-4 border",[a.color==="primary"&&!e.active&&!e.disabled&&"text-neutral-darker bg-neutral-surface border-neutral-surface hover:bg-neutral-hover hover:border-neutral-surface active:bg-neutral-pressed active:border-neutral-surface",a.color==="primary"&&e.active&&!e.disabled&&"text-primary-active bg-primary-light-active border-primary-active",a.color==="secondary"&&!e.active&&!e.disabled&&"text-neutral-darker bg-neutral-surface border-neutral-surface hover:bg-neutral-hover hover:border-neutral-surface active:bg-neutral-pressed active:border-neutral-surface",a.color==="secondary"&&e.active&&!e.disabled&&"text-secondary-active bg-secondary-light-active border-secondary-active",e.disabled&&"opacity-50 cursor-not-allowed"]])},r.toDisplayString(e.label),11,o))}});exports.default=s;exports.elSuggestionChipColors=l;
2
2
  //# sourceMappingURL=ElSuggestionChip.vue.cjs2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElSuggestionChip.vue.cjs2.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"ElSuggestionChip.vue.cjs2.js","sources":["../../src/ElSuggestionChip.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elSuggestionChipColors = ['primary', 'secondary'] as const;\nexport type ElSuggestionChipColor = (typeof elSuggestionChipColors)[number];\n\ninterface ElSuggestionChipProps {\n label: string;\n color?: ElSuggestionChipColor;\n active?: boolean;\n disabled?: boolean;\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = withDefaults(defineProps<ElSuggestionChipProps>(), {\n color: 'primary' as ElSuggestionChipColor,\n active: false,\n disabled: false,\n});\n</script>\n\n<template>\n <button\n type=\"button\"\n :disabled=\"disabled\"\n class=\"transition-colors flex h-8 items-center justify-center gap-1 px-4 min-w-20 rounded-md text-sm font-medium leading-4 border\"\n :class=\"[\n // Base styles for primary color\n props.color === 'primary' &&\n !active &&\n !disabled &&\n 'text-neutral-darker bg-neutral-surface border-neutral-surface hover:bg-neutral-hover hover:border-neutral-surface active:bg-neutral-pressed active:border-neutral-surface',\n\n // Active state for primary color\n props.color === 'primary' && active && !disabled && 'text-primary-active bg-primary-light-active border-primary-active',\n\n // Base styles for secondary color\n props.color === 'secondary' &&\n !active &&\n !disabled &&\n 'text-neutral-darker bg-neutral-surface border-neutral-surface hover:bg-neutral-hover hover:border-neutral-surface active:bg-neutral-pressed active:border-neutral-surface',\n\n // Active state for secondary color\n props.color === 'secondary' && active && !disabled && 'text-secondary-active bg-secondary-light-active border-secondary-active',\n\n // Disabled state\n disabled && 'opacity-50 cursor-not-allowed',\n ]\"\n >\n {{ label }}\n </button>\n</template>\n"],"names":["elSuggestionChipColors","props","__props"],"mappings":"kJACaA,EAAyB,CAAC,UAAW,WAAW,yKAY7D,MAAMC,EAAQC"}
@@ -1,2 +1,2 @@
1
- import f from"./ElSuggestionChip.vue.esm2.js";export{f as default};
1
+ import r from"./ElSuggestionChip.vue.esm2.js";import{elSuggestionChipColors as f}from"./ElSuggestionChip.vue.esm2.js";export{r as default,f as elSuggestionChipColors};
2
2
  //# sourceMappingURL=ElSuggestionChip.vue.esm.js.map
@@ -1,2 +1,2 @@
1
- import{defineComponent as r,openBlock as t,createElementBlock as o,normalizeClass as i,toDisplayString as p}from"vue";const m=r({__name:"ElSuggestionChip",props:{label:{},focused:{type:Boolean}},setup(s){return(e,a)=>(t(),o("button",{type:"button",class:i(["transition-colors h-8 items-center justify-center px-4 min-w-20 rounded-md text-sm font-semibold leading-4 border text-primary bg-white border-primary hover:text-primary-hover hover:bg-primary-light-hover hover:border-primary-hover active:text-primary-pressed active:bg-primary-light-pressed active:border-primary-pressed",{"text-primary-pressed bg-primary-light-pressed border-primary-pressed outlined-primary":e.focused}])},p(e.label),3))}});export{m as default};
1
+ import{defineComponent as t,openBlock as o,createElementBlock as l,normalizeClass as s,toDisplayString as i}from"vue";const n=["disabled"],u=["primary","secondary"],b=t({__name:"ElSuggestionChip",props:{label:{},color:{default:"primary"},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(a){const r=a;return(e,d)=>(o(),l("button",{type:"button",disabled:e.disabled,class:s(["transition-colors flex h-8 items-center justify-center gap-1 px-4 min-w-20 rounded-md text-sm font-medium leading-4 border",[r.color==="primary"&&!e.active&&!e.disabled&&"text-neutral-darker bg-neutral-surface border-neutral-surface hover:bg-neutral-hover hover:border-neutral-surface active:bg-neutral-pressed active:border-neutral-surface",r.color==="primary"&&e.active&&!e.disabled&&"text-primary-active bg-primary-light-active border-primary-active",r.color==="secondary"&&!e.active&&!e.disabled&&"text-neutral-darker bg-neutral-surface border-neutral-surface hover:bg-neutral-hover hover:border-neutral-surface active:bg-neutral-pressed active:border-neutral-surface",r.color==="secondary"&&e.active&&!e.disabled&&"text-secondary-active bg-secondary-light-active border-secondary-active",e.disabled&&"opacity-50 cursor-not-allowed"]])},i(e.label),11,n))}});export{b as default,u as elSuggestionChipColors};
2
2
  //# sourceMappingURL=ElSuggestionChip.vue.esm2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElSuggestionChip.vue.esm2.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"ElSuggestionChip.vue.esm2.js","sources":["../../src/ElSuggestionChip.vue"],"sourcesContent":["<script lang=\"ts\">\nexport const elSuggestionChipColors = ['primary', 'secondary'] as const;\nexport type ElSuggestionChipColor = (typeof elSuggestionChipColors)[number];\n\ninterface ElSuggestionChipProps {\n label: string;\n color?: ElSuggestionChipColor;\n active?: boolean;\n disabled?: boolean;\n}\n</script>\n\n<script setup lang=\"ts\">\nconst props = withDefaults(defineProps<ElSuggestionChipProps>(), {\n color: 'primary' as ElSuggestionChipColor,\n active: false,\n disabled: false,\n});\n</script>\n\n<template>\n <button\n type=\"button\"\n :disabled=\"disabled\"\n class=\"transition-colors flex h-8 items-center justify-center gap-1 px-4 min-w-20 rounded-md text-sm font-medium leading-4 border\"\n :class=\"[\n // Base styles for primary color\n props.color === 'primary' &&\n !active &&\n !disabled &&\n 'text-neutral-darker bg-neutral-surface border-neutral-surface hover:bg-neutral-hover hover:border-neutral-surface active:bg-neutral-pressed active:border-neutral-surface',\n\n // Active state for primary color\n props.color === 'primary' && active && !disabled && 'text-primary-active bg-primary-light-active border-primary-active',\n\n // Base styles for secondary color\n props.color === 'secondary' &&\n !active &&\n !disabled &&\n 'text-neutral-darker bg-neutral-surface border-neutral-surface hover:bg-neutral-hover hover:border-neutral-surface active:bg-neutral-pressed active:border-neutral-surface',\n\n // Active state for secondary color\n props.color === 'secondary' && active && !disabled && 'text-secondary-active bg-secondary-light-active border-secondary-active',\n\n // Disabled state\n disabled && 'opacity-50 cursor-not-allowed',\n ]\"\n >\n {{ label }}\n </button>\n</template>\n"],"names":["elSuggestionChipColors","props","__props"],"mappings":"2IACaA,EAAyB,CAAC,UAAW,WAAW,yJAY7D,MAAMC,EAAQC"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("vue"),N=require("./input.cjs.js"),O=require("../ElDropdown.vue.cjs2.js"),F=require("../ElInputChip.vue.cjs2.js"),T=require("../../node_modules/@vueuse/core/index.cjs.js"),z=require("../ElSpinner.vue.cjs2.js"),K=require("./ElInputContainer.vue.cjs2.js"),P=require("../../node_modules/@vueuse/core/node_modules/@vueuse/shared/index.cjs.js"),U={class:"flex flex-col gap-1"},W={class:"flex items-center gap-1 px-2"},$=["disabled","validation","placeholder"],j={key:0,class:"text-xs font-normal text-error"},H=a.defineComponent({__name:"ElInputAutocomplete",props:{...N.withCommonElInputProps(),modelValue:{type:[Array,String],required:!1,default:void 0},placeholder:{type:String,default:"",required:!1},items:{type:Array,required:!1,default:()=>[]},selectedItems:{type:Array,default:()=>[]},labelSelectAll:{type:String,default:"Seleziona tutto"},labelDeselectAll:{type:String,default:"Deseleziona tutto"},disableSelectAll:{type:Boolean,default:!1},focusOnMount:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},debounceTime:{type:Number,default:300,requied:!1},dataController:{type:Function,required:!1,default:void 0}},emits:["update:modelValue","item:click","update:selectedItems","endOfList"],setup(p,{expose:w,emit:E}){const o=p,c=E,v=a.ref(!1),i=a.ref(!1),r=a.ref(o.modelValue),u=a.ref([]),n=a.ref(o.selectedItems),m=a.ref(),f=a.ref();a.onMounted(async()=>{if(o.dataController){const l=await y(r.value);u.value=(l==null?void 0:l.data)||[]}else u.value=o.items});const B=a.computed(()=>{var e;const l=(e=u.value)==null?void 0:e.map((t,d)=>({...t,text:t.label||t.text,check:n.value.some(s=>s.text?s.text===t.text:s.label===t.label),onClick:()=>{var s;if(o.multiple){const h=n.value.findIndex(b=>b.text?b.text===t.text:b.label===t.label);h!==-1?n.value=n.value.filter((b,L)=>L!==h):n.value.push({...t,check:!0}),r.value="",f.value=void 0,(s=m.value)==null||s.focus(),c("update:selectedItems",n.value)}else r.value=t.text||t.label||t.value||"";c("update:modelValue",t.text||t.label||t.value||""),c("item:click",d)}}));return o.multiple&&!o.disableSelectAll&&l.unshift({text:n.value.length===u.value.length?o.labelDeselectAll:o.labelSelectAll,check:!1,onClick:()=>{var t;n.value.length===u.value.length?n.value=[]:n.value=u.value,(t=m.value)==null||t.focus(),c("update:selectedItems",n.value)}}),l}),g=T.useMemoize(async(l,e)=>{var t;return await((t=o.dataController)==null?void 0:t.call(o,l,e))}),y=P.useDebounceFn(g,o.debounceTime),S=()=>g.cache.clear(),q=async()=>{var e;r.value=void 0,u.value=o.items,n.value=o.selectedItems;const l=await((e=o.dataController)==null?void 0:e.call(o,r.value));u.value=(l==null?void 0:l.data)||[]},M=()=>{u.value=[]},k=l=>{var e;((e=l.relatedTarget)==null?void 0:e.role)!=="option"&&(i.value?i.value=!1:i.value=!0)},V=({target:l})=>{l instanceof HTMLInputElement&&l.value.charAt(l.value.length-1)!==" "&&_(l.value)},x=(l,e)=>{n.value=n.value.filter(t=>t.text!==e.text),c("update:selectedItems",n.value)},_=async l=>{if(o.dataController){v.value=!0;const e=await y(l);i.value=!!e,v.value=!e,u.value=(e==null?void 0:e.data)||[]}else l?u.value=o.items.filter(e=>{var t;return(t=e.text)==null?void 0:t.toLowerCase().includes(l.toLowerCase())}):u.value=o.items;c("update:modelValue",l)},A=async l=>{if(o.dataController){v.value=!0;const e=await y(r.value,l);v.value=!e,u.value=(e==null?void 0:e.data)||[]}else u.value=o.items},C=l=>{var e,t;if(!r.value)if(n.value.length>0&&!f.value){const d=n.value.length-1;f.value=n.value[d],(e=document.getElementById(d.toString()))==null||e.focus()}else x(l,f.value),f.value=void 0,(t=m.value)==null||t.focus()},I=l=>{const e=l.currentTarget;e.scrollLeft+=l.deltaY,l.preventDefault()},D=l=>{o.multiple?i.value=!0:i.value=l};return w({resetAllAndFetch:q,clearCache:S,resetItems:M}),(l,e)=>(a.openBlock(),a.createElementBlock("div",U,[a.createElementVNode("label",{class:a.normalizeClass(["block text-base font-medium",{"text-error":l.errorMessage,"text-neutral-darker":!l.errorMessage}])},a.toDisplayString(l.label),3),a.createVNode(O.default,{items:B.value,multiple:p.multiple,"is-open":i.value,disabled:l.disabled,"onUpdate:isOpen":e[7]||(e[7]=t=>D(t)),onEndOfList:e[8]||(e[8]=t=>A({isEndOfList:!0}))},{anchor:a.withCtx(()=>[a.createVNode(K.default,{color:l.color,name:l.name},{default:a.withCtx(()=>[a.createElementVNode("div",W,[p.multiple?(a.openBlock(),a.createElementBlock("div",{key:0,name:"scrollable-container",class:"flex items-center gap-1 overflow-x-scroll no-scrollbar cursor-grab active:cursor-grabbing",onWheel:I},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.value,(t,d)=>(a.openBlock(),a.createBlock(F.default,{id:d,key:d,text:t.text||t.label||"",class:"border flex-shrink-0 rounded-md px-3 py-2",onClick:s=>x(s,t),onKeydown:e[0]||(e[0]=a.withKeys(s=>C(s),["backspace"]))},null,8,["id","text","onClick"]))),128))],32)):a.createCommentVNode("",!0),a.withDirectives(a.createElementVNode("input",{ref_key:"inputField",ref:m,"onUpdate:modelValue":e[1]||(e[1]=t=>r.value=t),disabled:l.disabled,type:"text",class:a.normalizeClass(["border-none tex-tsm font-normal flex flex-1 focus:outline-none focus:ring-0",{"cursor-not-allowed":l.disabled}]),validation:l.validation,placeholder:p.placeholder,onInput:e[2]||(e[2]=t=>V(t)),onKeydown:e[3]||(e[3]=a.withKeys(t=>C(t),["backspace"])),onClick:e[4]||(e[4]=a.withModifiers(t=>k(t),["prevent"])),onBlur:e[5]||(e[5]=a.withModifiers(t=>k(t),["prevent"])),onWheel:e[6]||(e[6]=t=>I(t))},null,42,$),[[a.vModelText,r.value]]),v.value?(a.openBlock(),a.createBlock(z.default,{key:1,class:"mx-2",size:"normal"})):a.createCommentVNode("",!0)])]),_:1},8,["color","name"])]),_:1},8,["items","multiple","is-open","disabled"]),l.errorMessage?(a.openBlock(),a.createElementBlock("div",j,a.toDisplayString(l.errorMessage),1)):a.createCommentVNode("",!0)]))}});exports.default=H;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("vue"),w=require("./input.cjs.js"),F=require("../ElDropdown.vue.cjs2.js"),T=require("../ElInputChip.vue.cjs2.js"),N=require("../../node_modules/@vueuse/core/index.cjs.js"),z=require("../ElSpinner.vue.cjs2.js"),K=require("./ElInputContainer.vue.cjs2.js"),P=require("../../node_modules/@vueuse/core/node_modules/@vueuse/shared/index.cjs.js"),U={class:"flex items-center gap-1 px-2"},W=["disabled","validation","placeholder"],$=a.defineComponent({__name:"ElInputAutocomplete",props:{...w.withCommonElInputProps(),modelValue:{type:[Array,String],required:!1,default:void 0},placeholder:{type:String,default:"",required:!1},items:{type:Array,required:!1,default:()=>[]},selectedItems:{type:Array,default:()=>[]},labelSelectAll:{type:String,default:"Seleziona tutto"},labelDeselectAll:{type:String,default:"Deseleziona tutto"},disableSelectAll:{type:Boolean,default:!1},focusOnMount:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},debounceTime:{type:Number,default:300,requied:!1},dataController:{type:Function,required:!1,default:void 0}},emits:["update:modelValue","item:click","update:selectedItems","endOfList"],setup(p,{expose:q,emit:E}){const o=p,c=E,v=a.ref(!1),i=a.ref(!1),r=a.ref(o.modelValue),u=a.ref([]),n=a.ref(o.selectedItems),m=a.ref(),f=a.ref();a.onMounted(async()=>{if(o.dataController){const t=await g(r.value);u.value=(t==null?void 0:t.data)||[]}else u.value=o.items});const B=a.computed(()=>{var e;const t=(e=u.value)==null?void 0:e.map((l,d)=>({...l,text:l.label||l.text,check:n.value.some(s=>s.text?s.text===l.text:s.label===l.label),onClick:()=>{var s;if(o.multiple){const I=n.value.findIndex(b=>b.text?b.text===l.text:b.label===l.label);I!==-1?n.value=n.value.filter((b,O)=>O!==I):n.value.push({...l,check:!0}),r.value="",f.value=void 0,(s=m.value)==null||s.focus(),c("update:selectedItems",n.value)}else r.value=l.text||l.label||l.value||"";c("update:modelValue",l.text||l.label||l.value||""),c("item:click",d)}}));return o.multiple&&!o.disableSelectAll&&t.unshift({text:n.value.length===u.value.length?o.labelDeselectAll:o.labelSelectAll,check:!1,onClick:()=>{var l;n.value.length===u.value.length?n.value=[]:n.value=u.value,(l=m.value)==null||l.focus(),c("update:selectedItems",n.value)}}),t}),y=N.useMemoize(async(t,e)=>{var l;return await((l=o.dataController)==null?void 0:l.call(o,t,e))}),g=P.useDebounceFn(y,o.debounceTime),M=()=>y.cache.clear(),S=async()=>{var e;r.value=void 0,u.value=o.items,n.value=o.selectedItems;const t=await((e=o.dataController)==null?void 0:e.call(o,r.value));u.value=(t==null?void 0:t.data)||[]},A=()=>{u.value=[]},k=t=>{var e;((e=t.relatedTarget)==null?void 0:e.role)!=="option"&&(i.value?i.value=!1:i.value=!0)},V=({target:t})=>{t instanceof HTMLInputElement&&t.value.charAt(t.value.length-1)!==" "&&_(t.value)},x=(t,e)=>{n.value=n.value.filter(l=>l.text!==e.text),c("update:selectedItems",n.value)},_=async t=>{if(o.dataController){v.value=!0;const e=await g(t);i.value=!!e,v.value=!e,u.value=(e==null?void 0:e.data)||[]}else t?u.value=o.items.filter(e=>{var l;return(l=e.text)==null?void 0:l.toLowerCase().includes(t.toLowerCase())}):u.value=o.items;c("update:modelValue",t)},D=async t=>{if(o.dataController){v.value=!0;const e=await g(r.value,t);v.value=!e,u.value=(e==null?void 0:e.data)||[]}else u.value=o.items},C=t=>{var e,l;if(!r.value)if(n.value.length>0&&!f.value){const d=n.value.length-1;f.value=n.value[d],(e=document.getElementById(d.toString()))==null||e.focus()}else x(t,f.value),f.value=void 0,(l=m.value)==null||l.focus()},h=t=>{const e=t.currentTarget;e.scrollLeft+=t.deltaY,t.preventDefault()},L=t=>{o.multiple?i.value=!0:i.value=t};return q({resetAllAndFetch:S,clearCache:M,resetItems:A}),(t,e)=>(a.openBlock(),a.createBlock(K.default,a.mergeProps(t.$attrs,{name:t.label,color:t.color,label:t.label,"error-message":o.errorMessage===!1?!1:o.errorMessage||t.errorMessage,"hidden-error-message":t.hiddenErrorMessage,"set-required-mark":a.unref(w.showRequiredMark)([o.validation])}),{default:a.withCtx(()=>[a.createVNode(F.default,{items:B.value,multiple:p.multiple,"is-open":i.value,disabled:t.disabled,"onUpdate:isOpen":e[7]||(e[7]=l=>L(l)),onEndOfList:e[8]||(e[8]=l=>D({isEndOfList:!0}))},{anchor:a.withCtx(()=>[a.createElementVNode("div",U,[p.multiple?(a.openBlock(),a.createElementBlock("div",{key:0,name:"scrollable-container",class:"flex items-center gap-1 overflow-x-scroll no-scrollbar cursor-grab active:cursor-grabbing",onWheel:h},[(a.openBlock(!0),a.createElementBlock(a.Fragment,null,a.renderList(n.value,(l,d)=>(a.openBlock(),a.createBlock(T.default,{id:d,key:d,text:l.text||l.label||"",class:"border flex-shrink-0 rounded-md px-3 py-2",onClick:s=>x(s,l),onKeydown:e[0]||(e[0]=a.withKeys(s=>C(s),["backspace"]))},null,8,["id","text","onClick"]))),128))],32)):a.createCommentVNode("",!0),a.withDirectives(a.createElementVNode("input",{ref_key:"inputField",ref:m,"onUpdate:modelValue":e[1]||(e[1]=l=>r.value=l),disabled:t.disabled,type:"text",class:a.normalizeClass(["border-none tex-tsm font-normal flex flex-1 focus:outline-none focus:ring-0",{"cursor-not-allowed":t.disabled}]),validation:t.validation,placeholder:p.placeholder,onInput:e[2]||(e[2]=l=>V(l)),onKeydown:e[3]||(e[3]=a.withKeys(l=>C(l),["backspace"])),onClick:e[4]||(e[4]=a.withModifiers(l=>k(l),["prevent"])),onBlur:e[5]||(e[5]=a.withModifiers(l=>k(l),["prevent"])),onWheel:e[6]||(e[6]=l=>h(l))},null,42,W),[[a.vModelText,r.value]]),v.value?(a.openBlock(),a.createBlock(z.default,{key:1,class:"mx-2",size:"normal"})):a.createCommentVNode("",!0)])]),_:1},8,["items","multiple","is-open","disabled"])]),_:1},16,["name","color","label","error-message","hidden-error-message","set-required-mark"]))}});exports.default=$;
2
2
  //# sourceMappingURL=ElInputAutocomplete.vue.cjs2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElInputAutocomplete.vue.cjs2.js","sources":["../../../src/forms/ElInputAutocomplete.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type InputAutocompleteItemsDataControl = string;\nexport type ElInputAutocompleteItems = Array<DropdownItem & { label?: string; value?: string }>;\nexport type EventOptions = { isEndOfList: boolean };\n</script>\n\n<script lang=\"ts\" setup>\nimport { computed, onMounted, PropType, ref } from 'vue';\nimport { TextualValueType, withCommonElInputProps } from './input';\nimport ElDropdown, { DropdownItem } from '@/ElDropdown.vue';\nimport ElInputChip from '@/ElInputChip.vue';\nimport { useDebounceFn, useMemoize } from '@vueuse/core';\nimport ElSpinner from '@/ElSpinner.vue';\nimport ElInputContainer from './ElInputContainer.vue';\n\nconst props = defineProps({\n ...withCommonElInputProps(),\n modelValue: {\n type: [Array, String] as PropType<TextualValueType>,\n required: false,\n default: undefined,\n },\n placeholder: {\n type: String,\n default: '',\n required: false,\n },\n items: {\n type: Array as PropType<ElInputAutocompleteItems>,\n required: false,\n default: () => [],\n },\n selectedItems: {\n type: Array as PropType<ElInputAutocompleteItems>,\n default: () => [],\n },\n labelSelectAll: {\n type: String,\n default: 'Seleziona tutto',\n },\n labelDeselectAll: {\n type: String,\n default: 'Deseleziona tutto',\n },\n disableSelectAll: {\n type: Boolean,\n default: false,\n },\n focusOnMount: {\n type: Boolean,\n default: false,\n },\n multiple: {\n type: Boolean as PropType<InstanceType<typeof ElDropdown>['multiple']>,\n default: false,\n },\n debounceTime: {\n type: Number,\n default: 300,\n requied: false,\n },\n dataController: {\n type: Function as PropType<(args: TextualValueType, eventOptions?: EventOptions) => Promise<{ data: ElInputAutocompleteItems }>>,\n required: false,\n default: undefined,\n },\n});\n\nconst emit = defineEmits<{\n (event: 'update:modelValue', value: TextualValueType): void;\n (event: 'item:click', itemIndex: number): void;\n (event: 'update:selectedItems', value: ElInputAutocompleteItems): void;\n (event: 'endOfList'): void;\n}>();\n\nconst isLoading = ref(false);\nconst isOpen = ref(false);\nconst query = ref<TextualValueType>(props.modelValue);\nconst filteredItems = ref<ElInputAutocompleteItems>([]);\nconst selectedItems = ref<ElInputAutocompleteItems>(props.selectedItems);\nconst inputField = ref<HTMLInputElement>();\nconst lastSelectedItem = ref();\n\nonMounted(async () => {\n if (props.dataController) {\n const response = await debounceDataController(query.value);\n filteredItems.value = response?.data || [];\n } else {\n filteredItems.value = props.items;\n }\n});\n\nconst items = computed(() => {\n const mappedItems = filteredItems.value?.map((item, index) => ({\n ...item,\n text: item.label || item.text,\n check: selectedItems.value.some(selectedItem =>\n selectedItem.text ? selectedItem.text === item.text : selectedItem.label === item.label,\n ),\n onClick: () => {\n if (props.multiple) {\n // If the item is already selected, remove it from the selectedItems array\n const clickedItemIndex = selectedItems.value.findIndex(currentItem =>\n currentItem.text ? currentItem.text === item.text : currentItem.label === item.label,\n );\n\n if (clickedItemIndex !== -1) {\n selectedItems.value = selectedItems.value.filter((_, index) => index !== clickedItemIndex);\n } else {\n selectedItems.value.push({ ...item, check: true });\n }\n\n // Reset query to empty string to clear the input\n query.value = '';\n // Reset last selected item because the selectedItems array is updated\n lastSelectedItem.value = undefined;\n inputField.value?.focus();\n\n emit('update:selectedItems', selectedItems.value);\n } else {\n query.value = item.text || item.label || item.value || '';\n }\n\n emit('update:modelValue', item.text || item.label || item.value || '');\n emit('item:click', index);\n },\n }));\n\n if (props.multiple && !props.disableSelectAll) {\n mappedItems.unshift({\n text: selectedItems.value.length === filteredItems.value.length ? props.labelDeselectAll : props.labelSelectAll,\n check: false,\n onClick: () => {\n if (selectedItems.value.length === filteredItems.value.length) {\n selectedItems.value = [];\n } else {\n selectedItems.value = filteredItems.value;\n }\n\n inputField.value?.focus();\n emit('update:selectedItems', selectedItems.value);\n },\n });\n }\n\n return mappedItems;\n});\n\nconst debounceFunction = useMemoize(async (value: TextualValueType, eventOptions?: EventOptions) => {\n return await props.dataController?.(value, eventOptions);\n});\n\nconst debounceDataController = useDebounceFn(debounceFunction, props.debounceTime);\nconst clearCache = () => debounceFunction.cache.clear();\n\nconst resetAllAndFetch = async () => {\n query.value = undefined;\n filteredItems.value = props.items;\n selectedItems.value = props.selectedItems;\n const response = await props.dataController?.(query.value);\n filteredItems.value = response?.data || [];\n};\n\nconst resetItems = () => {\n filteredItems.value = [];\n};\n/**\n * Handle input click event necessary to open or close dropdown\n * @param e FocusEvent\n */\nconst onInputClick = (e: FocusEvent) => {\n if ((e.relatedTarget as HTMLElement)?.role !== 'option') {\n if (!isOpen.value) {\n isOpen.value = true;\n } else {\n isOpen.value = false;\n }\n }\n};\n\n/**\n * Handle input change event to update model value\n * @param event Event\n */\nconst onChangeEvent = ({ target }: Event) => {\n if (target instanceof HTMLInputElement) {\n if (target.value.charAt(target.value.length - 1) !== ' ') {\n updateModel(target.value);\n }\n }\n};\n\n/**\n * Handle remove item fr m selected items by clicking on the item\n * @param _event Event\n * @param item DropdownItem\n */\nconst onRemoveItem = (_event: Event, item: DropdownItem) => {\n selectedItems.value = selectedItems.value.filter(currentItem => currentItem.text !== item.text);\n emit('update:selectedItems', selectedItems.value);\n};\n\nconst updateModel = async (value: TextualValueType) => {\n if (props.dataController) {\n isLoading.value = true;\n const response = await debounceDataController(value);\n isOpen.value = !!response;\n isLoading.value = !response;\n filteredItems.value = response?.data || [];\n } else {\n if (value) {\n filteredItems.value = props.items.filter(result => result.text?.toLowerCase().includes(value.toLowerCase()));\n } else {\n filteredItems.value = props.items;\n }\n }\n\n emit('update:modelValue', value);\n};\nconst triggerEventOption = async (eventOptions: EventOptions) => {\n if (props.dataController) {\n isLoading.value = true;\n const response = await debounceDataController(query.value, eventOptions);\n isLoading.value = !response;\n\n filteredItems.value = response?.data || [];\n } else {\n filteredItems.value = props.items;\n }\n};\n\n/**\n Handle backspace key press to re last selected item wh multiple is true\n param e KeyboardEvent\n */\nconst onDeleteKeyPress = (e: KeyboardEvent) => {\n if (!query.value) {\n if (selectedItems.value.length > 0 && !lastSelectedItem.value) {\n const lastItemIndex = selectedItems.value.length - 1;\n lastSelectedItem.value = selectedItems.value[lastItemIndex];\n document.getElementById(lastItemIndex.toString())?.focus();\n } else {\n onRemoveItem(e, lastSelectedItem.value);\n lastSelectedItem.value = undefined;\n inputField.value?.focus();\n }\n }\n};\n\n/**\n Handle wheel sc event to scroll the li ox horizontally\n param event WheelEvent\n */\nconst onWheelScroll = (event: WheelEvent) => {\n const container = event.currentTarget as HTMLElement;\n container.scrollLeft += event.deltaY;\n // Prevent vertical scrolling he page\n event.preventDefault();\n};\n\n/**\n Handle update isOpen eve o open the dropdown n multiple is true\n param event boolean\n */\nconst onUpdateIsOpen = (event: boolean) => {\n if (props.multiple) {\n isOpen.value = true;\n } else {\n isOpen.value = event;\n }\n};\n\ndefineExpose({\n resetAllAndFetch,\n clearCache,\n resetItems,\n});\n</script>\n\n<template>\n <div class=\"flex flex-col gap-1\">\n <label class=\"block text-base font-medium\" :class=\"{ 'text-error': errorMessage, 'text-neutral-darker': !errorMessage }\">\n {{ label }}\n </label>\n <ElDropdown\n :items=\"items\"\n :multiple=\"multiple\"\n :is-open=\"isOpen\"\n :disabled=\"disabled\"\n @update:is-open=\"onUpdateIsOpen($event)\"\n @end-of-list=\"triggerEventOption({ isEndOfList: true })\"\n >\n <template #anchor>\n <ElInputContainer :color=\"color\" :name=\"name\">\n <template #default>\n <div class=\"flex items-center gap-1 px-2\">\n <div\n v-if=\"multiple\"\n name=\"scrollable-container\"\n class=\"flex items-center gap-1 overflow-x-scroll no-scrollbar cursor-grab active:cursor-grabbing\"\n @wheel=\"onWheelScroll\"\n >\n <ElInputChip\n v-for=\"(item, index) in selectedItems\"\n :id=\"index\"\n :key=\"index\"\n :text=\"item.text || item.label || ''\"\n class=\"border flex-shrink-0 rounded-md px-3 py-2\"\n @click=\"onRemoveItem($event, item)\"\n @keydown.backspace=\"onDeleteKeyPress($event)\"\n />\n </div>\n\n <input\n ref=\"inputField\"\n v-model=\"query\"\n :disabled=\"disabled\"\n type=\"text\"\n class=\"border-none tex-tsm font-normal flex flex-1 focus:outline-none focus:ring-0\"\n :class=\"{ 'cursor-not-allowed': disabled }\"\n :validation=\"validation\"\n :placeholder=\"placeholder\"\n @input=\"onChangeEvent($event)\"\n @keydown.backspace=\"onDeleteKeyPress($event)\"\n @click.prevent=\"onInputClick($event)\"\n @blur.prevent=\"onInputClick($event)\"\n @wheel=\"onWheelScroll($event)\"\n />\n\n <ElSpinner v-if=\"isLoading\" class=\"mx-2\" size=\"normal\" />\n </div>\n </template>\n </ElInputContainer>\n </template>\n </ElDropdown>\n <div v-if=\"errorMessage\" class=\"text-xs font-normal text-error\">{{ errorMessage }}</div>\n </div>\n</template>\n"],"names":["props","__props","emit","__emit","isLoading","ref","isOpen","query","filteredItems","selectedItems","inputField","lastSelectedItem","onMounted","response","debounceDataController","items","computed","mappedItems","_a","item","index","selectedItem","clickedItemIndex","currentItem","_","debounceFunction","useMemoize","value","eventOptions","useDebounceFn","clearCache","resetAllAndFetch","resetItems","onInputClick","e","onChangeEvent","target","updateModel","onRemoveItem","_event","result","triggerEventOption","onDeleteKeyPress","lastItemIndex","_b","onWheelScroll","event","container","onUpdateIsOpen","__expose"],"mappings":"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"}
1
+ {"version":3,"file":"ElInputAutocomplete.vue.cjs2.js","sources":["../../../src/forms/ElInputAutocomplete.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type InputAutocompleteItemsDataControl = string;\nexport type ElInputAutocompleteItems = Array<DropdownItem & { label?: string; value?: string }>;\nexport type EventOptions = { isEndOfList: boolean };\n</script>\n\n<script lang=\"ts\" setup>\nimport { computed, onMounted, PropType, ref } from 'vue';\nimport { showRequiredMark, TextualValueType, withCommonElInputProps } from './input';\nimport ElDropdown, { DropdownItem } from '@/ElDropdown.vue';\nimport ElInputChip from '@/ElInputChip.vue';\nimport { useDebounceFn, useMemoize } from '@vueuse/core';\nimport ElSpinner from '@/ElSpinner.vue';\nimport ElInputContainer from './ElInputContainer.vue';\n\nconst props = defineProps({\n ...withCommonElInputProps(),\n modelValue: {\n type: [Array, String] as PropType<TextualValueType>,\n required: false,\n default: undefined,\n },\n placeholder: {\n type: String,\n default: '',\n required: false,\n },\n items: {\n type: Array as PropType<ElInputAutocompleteItems>,\n required: false,\n default: () => [],\n },\n selectedItems: {\n type: Array as PropType<ElInputAutocompleteItems>,\n default: () => [],\n },\n labelSelectAll: {\n type: String,\n default: 'Seleziona tutto',\n },\n labelDeselectAll: {\n type: String,\n default: 'Deseleziona tutto',\n },\n disableSelectAll: {\n type: Boolean,\n default: false,\n },\n focusOnMount: {\n type: Boolean,\n default: false,\n },\n multiple: {\n type: Boolean as PropType<InstanceType<typeof ElDropdown>['multiple']>,\n default: false,\n },\n debounceTime: {\n type: Number,\n default: 300,\n requied: false,\n },\n dataController: {\n type: Function as PropType<(args: TextualValueType, eventOptions?: EventOptions) => Promise<{ data: ElInputAutocompleteItems }>>,\n required: false,\n default: undefined,\n },\n});\n\nconst emit = defineEmits<{\n (event: 'update:modelValue', value: TextualValueType): void;\n (event: 'item:click', itemIndex: number): void;\n (event: 'update:selectedItems', value: ElInputAutocompleteItems): void;\n (event: 'endOfList'): void;\n}>();\n\nconst isLoading = ref(false);\nconst isOpen = ref(false);\nconst query = ref<TextualValueType>(props.modelValue);\nconst filteredItems = ref<ElInputAutocompleteItems>([]);\nconst selectedItems = ref<ElInputAutocompleteItems>(props.selectedItems);\nconst inputField = ref<HTMLInputElement>();\nconst lastSelectedItem = ref();\n\nonMounted(async () => {\n if (props.dataController) {\n const response = await debounceDataController(query.value);\n filteredItems.value = response?.data || [];\n } else {\n filteredItems.value = props.items;\n }\n});\n\nconst items = computed(() => {\n const mappedItems = filteredItems.value?.map((item, index) => ({\n ...item,\n text: item.label || item.text,\n check: selectedItems.value.some(selectedItem =>\n selectedItem.text ? selectedItem.text === item.text : selectedItem.label === item.label,\n ),\n onClick: () => {\n if (props.multiple) {\n // If the item is already selected, remove it from the selectedItems array\n const clickedItemIndex = selectedItems.value.findIndex(currentItem =>\n currentItem.text ? currentItem.text === item.text : currentItem.label === item.label,\n );\n\n if (clickedItemIndex !== -1) {\n selectedItems.value = selectedItems.value.filter((_, index) => index !== clickedItemIndex);\n } else {\n selectedItems.value.push({ ...item, check: true });\n }\n\n // Reset query to empty string to clear the input\n query.value = '';\n // Reset last selected item because the selectedItems array is updated\n lastSelectedItem.value = undefined;\n inputField.value?.focus();\n\n emit('update:selectedItems', selectedItems.value);\n } else {\n query.value = item.text || item.label || item.value || '';\n }\n\n emit('update:modelValue', item.text || item.label || item.value || '');\n emit('item:click', index);\n },\n }));\n\n if (props.multiple && !props.disableSelectAll) {\n mappedItems.unshift({\n text: selectedItems.value.length === filteredItems.value.length ? props.labelDeselectAll : props.labelSelectAll,\n check: false,\n onClick: () => {\n if (selectedItems.value.length === filteredItems.value.length) {\n selectedItems.value = [];\n } else {\n selectedItems.value = filteredItems.value;\n }\n\n inputField.value?.focus();\n emit('update:selectedItems', selectedItems.value);\n },\n });\n }\n\n return mappedItems;\n});\n\nconst debounceFunction = useMemoize(async (value: TextualValueType, eventOptions?: EventOptions) => {\n return await props.dataController?.(value, eventOptions);\n});\n\nconst debounceDataController = useDebounceFn(debounceFunction, props.debounceTime);\nconst clearCache = () => debounceFunction.cache.clear();\n\nconst resetAllAndFetch = async () => {\n query.value = undefined;\n filteredItems.value = props.items;\n selectedItems.value = props.selectedItems;\n const response = await props.dataController?.(query.value);\n filteredItems.value = response?.data || [];\n};\n\nconst resetItems = () => {\n filteredItems.value = [];\n};\n/**\n * Handle input click event necessary to open or close dropdown\n * @param e FocusEvent\n */\nconst onInputClick = (e: FocusEvent) => {\n if ((e.relatedTarget as HTMLElement)?.role !== 'option') {\n if (!isOpen.value) {\n isOpen.value = true;\n } else {\n isOpen.value = false;\n }\n }\n};\n\n/**\n * Handle input change event to update model value\n * @param event Event\n */\nconst onChangeEvent = ({ target }: Event) => {\n if (target instanceof HTMLInputElement) {\n if (target.value.charAt(target.value.length - 1) !== ' ') {\n updateModel(target.value);\n }\n }\n};\n\n/**\n * Handle remove item fr m selected items by clicking on the item\n * @param _event Event\n * @param item DropdownItem\n */\nconst onRemoveItem = (_event: Event, item: DropdownItem) => {\n selectedItems.value = selectedItems.value.filter(currentItem => currentItem.text !== item.text);\n emit('update:selectedItems', selectedItems.value);\n};\n\nconst updateModel = async (value: TextualValueType) => {\n if (props.dataController) {\n isLoading.value = true;\n const response = await debounceDataController(value);\n isOpen.value = !!response;\n isLoading.value = !response;\n filteredItems.value = response?.data || [];\n } else {\n if (value) {\n filteredItems.value = props.items.filter(result => result.text?.toLowerCase().includes(value.toLowerCase()));\n } else {\n filteredItems.value = props.items;\n }\n }\n\n emit('update:modelValue', value);\n};\nconst triggerEventOption = async (eventOptions: EventOptions) => {\n if (props.dataController) {\n isLoading.value = true;\n const response = await debounceDataController(query.value, eventOptions);\n isLoading.value = !response;\n\n filteredItems.value = response?.data || [];\n } else {\n filteredItems.value = props.items;\n }\n};\n\n/**\n Handle backspace key press to re last selected item wh multiple is true\n param e KeyboardEvent\n */\nconst onDeleteKeyPress = (e: KeyboardEvent) => {\n if (!query.value) {\n if (selectedItems.value.length > 0 && !lastSelectedItem.value) {\n const lastItemIndex = selectedItems.value.length - 1;\n lastSelectedItem.value = selectedItems.value[lastItemIndex];\n document.getElementById(lastItemIndex.toString())?.focus();\n } else {\n onRemoveItem(e, lastSelectedItem.value);\n lastSelectedItem.value = undefined;\n inputField.value?.focus();\n }\n }\n};\n\n/**\n Handle wheel sc event to scroll the li ox horizontally\n param event WheelEvent\n */\nconst onWheelScroll = (event: WheelEvent) => {\n const container = event.currentTarget as HTMLElement;\n container.scrollLeft += event.deltaY;\n // Prevent vertical scrolling he page\n event.preventDefault();\n};\n\n/**\n Handle update isOpen eve o open the dropdown n multiple is true\n param event boolean\n */\nconst onUpdateIsOpen = (event: boolean) => {\n if (props.multiple) {\n isOpen.value = true;\n } else {\n isOpen.value = event;\n }\n};\n\ndefineExpose({\n resetAllAndFetch,\n clearCache,\n resetItems,\n});\n</script>\n\n<template>\n <ElInputContainer\n v-bind=\"$attrs\"\n :name=\"label\"\n :color=\"color\"\n :label=\"label\"\n :error-message=\"props.errorMessage === false ? false : props.errorMessage || errorMessage\"\n :hidden-error-message=\"hiddenErrorMessage\"\n :set-required-mark=\"showRequiredMark([props.validation])\"\n >\n <ElDropdown\n :items=\"items\"\n :multiple=\"multiple\"\n :is-open=\"isOpen\"\n :disabled=\"disabled\"\n @update:is-open=\"onUpdateIsOpen($event)\"\n @end-of-list=\"triggerEventOption({ isEndOfList: true })\"\n >\n <template #anchor>\n <div class=\"flex items-center gap-1 px-2\">\n <div\n v-if=\"multiple\"\n name=\"scrollable-container\"\n class=\"flex items-center gap-1 overflow-x-scroll no-scrollbar cursor-grab active:cursor-grabbing\"\n @wheel=\"onWheelScroll\"\n >\n <ElInputChip\n v-for=\"(item, index) in selectedItems\"\n :id=\"index\"\n :key=\"index\"\n :text=\"item.text || item.label || ''\"\n class=\"border flex-shrink-0 rounded-md px-3 py-2\"\n @click=\"onRemoveItem($event, item)\"\n @keydown.backspace=\"onDeleteKeyPress($event)\"\n />\n </div>\n <input\n ref=\"inputField\"\n v-model=\"query\"\n :disabled=\"disabled\"\n type=\"text\"\n class=\"border-none tex-tsm font-normal flex flex-1 focus:outline-none focus:ring-0\"\n :class=\"{ 'cursor-not-allowed': disabled }\"\n :validation=\"validation\"\n :placeholder=\"placeholder\"\n @input=\"onChangeEvent($event)\"\n @keydown.backspace=\"onDeleteKeyPress($event)\"\n @click.prevent=\"onInputClick($event)\"\n @blur.prevent=\"onInputClick($event)\"\n @wheel=\"onWheelScroll($event)\"\n />\n <ElSpinner v-if=\"isLoading\" class=\"mx-2\" size=\"normal\" />\n </div>\n </template>\n </ElDropdown>\n </ElInputContainer>\n</template>\n"],"names":["props","__props","emit","__emit","isLoading","ref","isOpen","query","filteredItems","selectedItems","inputField","lastSelectedItem","onMounted","response","debounceDataController","items","computed","mappedItems","_a","item","index","selectedItem","clickedItemIndex","currentItem","_","debounceFunction","useMemoize","value","eventOptions","useDebounceFn","clearCache","resetAllAndFetch","resetItems","onInputClick","e","onChangeEvent","target","updateModel","onRemoveItem","_event","result","triggerEventOption","onDeleteKeyPress","lastItemIndex","_b","onWheelScroll","event","container","onUpdateIsOpen","__expose"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{defineComponent as Y,ref as d,onMounted as j,computed as G,openBlock as f,createElementBlock as x,createElementVNode as k,normalizeClass as E,toDisplayString as D,createVNode as L,withCtx as V,Fragment as J,renderList as Q,createBlock as B,withKeys as O,createCommentVNode as C,withDirectives as X,withModifiers as F,vModelText as Z}from"vue";import{withCommonElInputProps as _}from"./input.esm.js";import ee from"../ElDropdown.vue.esm2.js";import le from"../ElInputChip.vue.esm2.js";import{useMemoize as te}from"../../node_modules/@vueuse/core/index.esm.js";import ae from"../ElSpinner.vue.esm2.js";import oe from"./ElInputContainer.vue.esm2.js";import{useDebounceFn as ne}from"../../node_modules/@vueuse/core/node_modules/@vueuse/shared/index.esm.js";const se={class:"flex flex-col gap-1"},ue={class:"flex items-center gap-1 px-2"},re=["disabled","validation","placeholder"],ie={key:0,class:"text-xs font-normal text-error"},xe=Y({__name:"ElInputAutocomplete",props:{..._(),modelValue:{type:[Array,String],required:!1,default:void 0},placeholder:{type:String,default:"",required:!1},items:{type:Array,required:!1,default:()=>[]},selectedItems:{type:Array,default:()=>[]},labelSelectAll:{type:String,default:"Seleziona tutto"},labelDeselectAll:{type:String,default:"Deseleziona tutto"},disableSelectAll:{type:Boolean,default:!1},focusOnMount:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},debounceTime:{type:Number,default:300,requied:!1},dataController:{type:Function,required:!1,default:void 0}},emits:["update:modelValue","item:click","update:selectedItems","endOfList"],setup(p,{expose:q,emit:T}){const a=p,c=T,v=d(!1),r=d(!1),u=d(a.modelValue),n=d([]),o=d(a.selectedItems),b=d(),m=d();j(async()=>{if(a.dataController){const l=await g(u.value);n.value=(l==null?void 0:l.data)||[]}else n.value=a.items});const z=G(()=>{var e;const l=(e=n.value)==null?void 0:e.map((t,i)=>({...t,text:t.label||t.text,check:o.value.some(s=>s.text?s.text===t.text:s.label===t.label),onClick:()=>{var s;if(a.multiple){const M=o.value.findIndex(y=>y.text?y.text===t.text:y.label===t.label);M!==-1?o.value=o.value.filter((y,R)=>R!==M):o.value.push({...t,check:!0}),u.value="",m.value=void 0,(s=b.value)==null||s.focus(),c("update:selectedItems",o.value)}else u.value=t.text||t.label||t.value||"";c("update:modelValue",t.text||t.label||t.value||""),c("item:click",i)}}));return a.multiple&&!a.disableSelectAll&&l.unshift({text:o.value.length===n.value.length?a.labelDeselectAll:a.labelSelectAll,check:!1,onClick:()=>{var t;o.value.length===n.value.length?o.value=[]:o.value=n.value,(t=b.value)==null||t.focus(),c("update:selectedItems",o.value)}}),l}),I=te(async(l,e)=>{var t;return await((t=a.dataController)==null?void 0:t.call(a,l,e))}),g=ne(I,a.debounceTime),$=()=>I.cache.clear(),K=async()=>{var e;u.value=void 0,n.value=a.items,o.value=a.selectedItems;const l=await((e=a.dataController)==null?void 0:e.call(a,u.value));n.value=(l==null?void 0:l.data)||[]},N=()=>{n.value=[]},h=l=>{var e;((e=l.relatedTarget)==null?void 0:e.role)!=="option"&&(r.value?r.value=!1:r.value=!0)},U=({target:l})=>{l instanceof HTMLInputElement&&l.value.charAt(l.value.length-1)!==" "&&W(l.value)},w=(l,e)=>{o.value=o.value.filter(t=>t.text!==e.text),c("update:selectedItems",o.value)},W=async l=>{if(a.dataController){v.value=!0;const e=await g(l);r.value=!!e,v.value=!e,n.value=(e==null?void 0:e.data)||[]}else l?n.value=a.items.filter(e=>{var t;return(t=e.text)==null?void 0:t.toLowerCase().includes(l.toLowerCase())}):n.value=a.items;c("update:modelValue",l)},P=async l=>{if(a.dataController){v.value=!0;const e=await g(u.value,l);v.value=!e,n.value=(e==null?void 0:e.data)||[]}else n.value=a.items},A=l=>{var e,t;if(!u.value)if(o.value.length>0&&!m.value){const i=o.value.length-1;m.value=o.value[i],(e=document.getElementById(i.toString()))==null||e.focus()}else w(l,m.value),m.value=void 0,(t=b.value)==null||t.focus()},S=l=>{const e=l.currentTarget;e.scrollLeft+=l.deltaY,l.preventDefault()},H=l=>{a.multiple?r.value=!0:r.value=l};return q({resetAllAndFetch:K,clearCache:$,resetItems:N}),(l,e)=>(f(),x("div",se,[k("label",{class:E(["block text-base font-medium",{"text-error":l.errorMessage,"text-neutral-darker":!l.errorMessage}])},D(l.label),3),L(ee,{items:z.value,multiple:p.multiple,"is-open":r.value,disabled:l.disabled,"onUpdate:isOpen":e[7]||(e[7]=t=>H(t)),onEndOfList:e[8]||(e[8]=t=>P({isEndOfList:!0}))},{anchor:V(()=>[L(oe,{color:l.color,name:l.name},{default:V(()=>[k("div",ue,[p.multiple?(f(),x("div",{key:0,name:"scrollable-container",class:"flex items-center gap-1 overflow-x-scroll no-scrollbar cursor-grab active:cursor-grabbing",onWheel:S},[(f(!0),x(J,null,Q(o.value,(t,i)=>(f(),B(le,{id:i,key:i,text:t.text||t.label||"",class:"border flex-shrink-0 rounded-md px-3 py-2",onClick:s=>w(s,t),onKeydown:e[0]||(e[0]=O(s=>A(s),["backspace"]))},null,8,["id","text","onClick"]))),128))],32)):C("",!0),X(k("input",{ref_key:"inputField",ref:b,"onUpdate:modelValue":e[1]||(e[1]=t=>u.value=t),disabled:l.disabled,type:"text",class:E(["border-none tex-tsm font-normal flex flex-1 focus:outline-none focus:ring-0",{"cursor-not-allowed":l.disabled}]),validation:l.validation,placeholder:p.placeholder,onInput:e[2]||(e[2]=t=>U(t)),onKeydown:e[3]||(e[3]=O(t=>A(t),["backspace"])),onClick:e[4]||(e[4]=F(t=>h(t),["prevent"])),onBlur:e[5]||(e[5]=F(t=>h(t),["prevent"])),onWheel:e[6]||(e[6]=t=>S(t))},null,42,re),[[Z,u.value]]),v.value?(f(),B(ae,{key:1,class:"mx-2",size:"normal"})):C("",!0)])]),_:1},8,["color","name"])]),_:1},8,["items","multiple","is-open","disabled"]),l.errorMessage?(f(),x("div",ie,D(l.errorMessage),1)):C("",!0)]))}});export{xe as default};
1
+ import{defineComponent as W,ref as d,onMounted as R,computed as H,openBlock as m,createBlock as k,mergeProps as Y,unref as j,withCtx as M,createVNode as G,createElementVNode as S,createElementBlock as E,Fragment as J,renderList as Q,withKeys as q,createCommentVNode as L,withDirectives as X,normalizeClass as Z,withModifiers as V,vModelText as _}from"vue";import{withCommonElInputProps as ee,showRequiredMark as le}from"./input.esm.js";import te from"../ElDropdown.vue.esm2.js";import ae from"../ElInputChip.vue.esm2.js";import{useMemoize as oe}from"../../node_modules/@vueuse/core/index.esm.js";import ne from"../ElSpinner.vue.esm2.js";import se from"./ElInputContainer.vue.esm2.js";import{useDebounceFn as ue}from"../../node_modules/@vueuse/core/node_modules/@vueuse/shared/index.esm.js";const re={class:"flex items-center gap-1 px-2"},ie=["disabled","validation","placeholder"],ye=W({__name:"ElInputAutocomplete",props:{...ee(),modelValue:{type:[Array,String],required:!1,default:void 0},placeholder:{type:String,default:"",required:!1},items:{type:Array,required:!1,default:()=>[]},selectedItems:{type:Array,default:()=>[]},labelSelectAll:{type:String,default:"Seleziona tutto"},labelDeselectAll:{type:String,default:"Deseleziona tutto"},disableSelectAll:{type:Boolean,default:!1},focusOnMount:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},debounceTime:{type:Number,default:300,requied:!1},dataController:{type:Function,required:!1,default:void 0}},emits:["update:modelValue","item:click","update:selectedItems","endOfList"],setup(p,{expose:B,emit:D}){const a=p,c=D,f=d(!1),r=d(!1),u=d(a.modelValue),n=d([]),o=d(a.selectedItems),b=d(),v=d();R(async()=>{if(a.dataController){const t=await y(u.value);n.value=(t==null?void 0:t.data)||[]}else n.value=a.items});const O=H(()=>{var e;const t=(e=n.value)==null?void 0:e.map((l,i)=>({...l,text:l.label||l.text,check:o.value.some(s=>s.text?s.text===l.text:s.label===l.label),onClick:()=>{var s;if(a.multiple){const A=o.value.findIndex(g=>g.text?g.text===l.text:g.label===l.label);A!==-1?o.value=o.value.filter((g,U)=>U!==A):o.value.push({...l,check:!0}),u.value="",v.value=void 0,(s=b.value)==null||s.focus(),c("update:selectedItems",o.value)}else u.value=l.text||l.label||l.value||"";c("update:modelValue",l.text||l.label||l.value||""),c("item:click",i)}}));return a.multiple&&!a.disableSelectAll&&t.unshift({text:o.value.length===n.value.length?a.labelDeselectAll:a.labelSelectAll,check:!1,onClick:()=>{var l;o.value.length===n.value.length?o.value=[]:o.value=n.value,(l=b.value)==null||l.focus(),c("update:selectedItems",o.value)}}),t}),x=oe(async(t,e)=>{var l;return await((l=a.dataController)==null?void 0:l.call(a,t,e))}),y=ue(x,a.debounceTime),F=()=>x.cache.clear(),T=async()=>{var e;u.value=void 0,n.value=a.items,o.value=a.selectedItems;const t=await((e=a.dataController)==null?void 0:e.call(a,u.value));n.value=(t==null?void 0:t.data)||[]},$=()=>{n.value=[]},C=t=>{var e;((e=t.relatedTarget)==null?void 0:e.role)!=="option"&&(r.value?r.value=!1:r.value=!0)},z=({target:t})=>{t instanceof HTMLInputElement&&t.value.charAt(t.value.length-1)!==" "&&K(t.value)},I=(t,e)=>{o.value=o.value.filter(l=>l.text!==e.text),c("update:selectedItems",o.value)},K=async t=>{if(a.dataController){f.value=!0;const e=await y(t);r.value=!!e,f.value=!e,n.value=(e==null?void 0:e.data)||[]}else t?n.value=a.items.filter(e=>{var l;return(l=e.text)==null?void 0:l.toLowerCase().includes(t.toLowerCase())}):n.value=a.items;c("update:modelValue",t)},N=async t=>{if(a.dataController){f.value=!0;const e=await y(u.value,t);f.value=!e,n.value=(e==null?void 0:e.data)||[]}else n.value=a.items},h=t=>{var e,l;if(!u.value)if(o.value.length>0&&!v.value){const i=o.value.length-1;v.value=o.value[i],(e=document.getElementById(i.toString()))==null||e.focus()}else I(t,v.value),v.value=void 0,(l=b.value)==null||l.focus()},w=t=>{const e=t.currentTarget;e.scrollLeft+=t.deltaY,t.preventDefault()},P=t=>{a.multiple?r.value=!0:r.value=t};return B({resetAllAndFetch:T,clearCache:F,resetItems:$}),(t,e)=>(m(),k(se,Y(t.$attrs,{name:t.label,color:t.color,label:t.label,"error-message":a.errorMessage===!1?!1:a.errorMessage||t.errorMessage,"hidden-error-message":t.hiddenErrorMessage,"set-required-mark":j(le)([a.validation])}),{default:M(()=>[G(te,{items:O.value,multiple:p.multiple,"is-open":r.value,disabled:t.disabled,"onUpdate:isOpen":e[7]||(e[7]=l=>P(l)),onEndOfList:e[8]||(e[8]=l=>N({isEndOfList:!0}))},{anchor:M(()=>[S("div",re,[p.multiple?(m(),E("div",{key:0,name:"scrollable-container",class:"flex items-center gap-1 overflow-x-scroll no-scrollbar cursor-grab active:cursor-grabbing",onWheel:w},[(m(!0),E(J,null,Q(o.value,(l,i)=>(m(),k(ae,{id:i,key:i,text:l.text||l.label||"",class:"border flex-shrink-0 rounded-md px-3 py-2",onClick:s=>I(s,l),onKeydown:e[0]||(e[0]=q(s=>h(s),["backspace"]))},null,8,["id","text","onClick"]))),128))],32)):L("",!0),X(S("input",{ref_key:"inputField",ref:b,"onUpdate:modelValue":e[1]||(e[1]=l=>u.value=l),disabled:t.disabled,type:"text",class:Z(["border-none tex-tsm font-normal flex flex-1 focus:outline-none focus:ring-0",{"cursor-not-allowed":t.disabled}]),validation:t.validation,placeholder:p.placeholder,onInput:e[2]||(e[2]=l=>z(l)),onKeydown:e[3]||(e[3]=q(l=>h(l),["backspace"])),onClick:e[4]||(e[4]=V(l=>C(l),["prevent"])),onBlur:e[5]||(e[5]=V(l=>C(l),["prevent"])),onWheel:e[6]||(e[6]=l=>w(l))},null,42,ie),[[_,u.value]]),f.value?(m(),k(ne,{key:1,class:"mx-2",size:"normal"})):L("",!0)])]),_:1},8,["items","multiple","is-open","disabled"])]),_:1},16,["name","color","label","error-message","hidden-error-message","set-required-mark"]))}});export{ye as default};
2
2
  //# sourceMappingURL=ElInputAutocomplete.vue.esm2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElInputAutocomplete.vue.esm2.js","sources":["../../../src/forms/ElInputAutocomplete.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type InputAutocompleteItemsDataControl = string;\nexport type ElInputAutocompleteItems = Array<DropdownItem & { label?: string; value?: string }>;\nexport type EventOptions = { isEndOfList: boolean };\n</script>\n\n<script lang=\"ts\" setup>\nimport { computed, onMounted, PropType, ref } from 'vue';\nimport { TextualValueType, withCommonElInputProps } from './input';\nimport ElDropdown, { DropdownItem } from '@/ElDropdown.vue';\nimport ElInputChip from '@/ElInputChip.vue';\nimport { useDebounceFn, useMemoize } from '@vueuse/core';\nimport ElSpinner from '@/ElSpinner.vue';\nimport ElInputContainer from './ElInputContainer.vue';\n\nconst props = defineProps({\n ...withCommonElInputProps(),\n modelValue: {\n type: [Array, String] as PropType<TextualValueType>,\n required: false,\n default: undefined,\n },\n placeholder: {\n type: String,\n default: '',\n required: false,\n },\n items: {\n type: Array as PropType<ElInputAutocompleteItems>,\n required: false,\n default: () => [],\n },\n selectedItems: {\n type: Array as PropType<ElInputAutocompleteItems>,\n default: () => [],\n },\n labelSelectAll: {\n type: String,\n default: 'Seleziona tutto',\n },\n labelDeselectAll: {\n type: String,\n default: 'Deseleziona tutto',\n },\n disableSelectAll: {\n type: Boolean,\n default: false,\n },\n focusOnMount: {\n type: Boolean,\n default: false,\n },\n multiple: {\n type: Boolean as PropType<InstanceType<typeof ElDropdown>['multiple']>,\n default: false,\n },\n debounceTime: {\n type: Number,\n default: 300,\n requied: false,\n },\n dataController: {\n type: Function as PropType<(args: TextualValueType, eventOptions?: EventOptions) => Promise<{ data: ElInputAutocompleteItems }>>,\n required: false,\n default: undefined,\n },\n});\n\nconst emit = defineEmits<{\n (event: 'update:modelValue', value: TextualValueType): void;\n (event: 'item:click', itemIndex: number): void;\n (event: 'update:selectedItems', value: ElInputAutocompleteItems): void;\n (event: 'endOfList'): void;\n}>();\n\nconst isLoading = ref(false);\nconst isOpen = ref(false);\nconst query = ref<TextualValueType>(props.modelValue);\nconst filteredItems = ref<ElInputAutocompleteItems>([]);\nconst selectedItems = ref<ElInputAutocompleteItems>(props.selectedItems);\nconst inputField = ref<HTMLInputElement>();\nconst lastSelectedItem = ref();\n\nonMounted(async () => {\n if (props.dataController) {\n const response = await debounceDataController(query.value);\n filteredItems.value = response?.data || [];\n } else {\n filteredItems.value = props.items;\n }\n});\n\nconst items = computed(() => {\n const mappedItems = filteredItems.value?.map((item, index) => ({\n ...item,\n text: item.label || item.text,\n check: selectedItems.value.some(selectedItem =>\n selectedItem.text ? selectedItem.text === item.text : selectedItem.label === item.label,\n ),\n onClick: () => {\n if (props.multiple) {\n // If the item is already selected, remove it from the selectedItems array\n const clickedItemIndex = selectedItems.value.findIndex(currentItem =>\n currentItem.text ? currentItem.text === item.text : currentItem.label === item.label,\n );\n\n if (clickedItemIndex !== -1) {\n selectedItems.value = selectedItems.value.filter((_, index) => index !== clickedItemIndex);\n } else {\n selectedItems.value.push({ ...item, check: true });\n }\n\n // Reset query to empty string to clear the input\n query.value = '';\n // Reset last selected item because the selectedItems array is updated\n lastSelectedItem.value = undefined;\n inputField.value?.focus();\n\n emit('update:selectedItems', selectedItems.value);\n } else {\n query.value = item.text || item.label || item.value || '';\n }\n\n emit('update:modelValue', item.text || item.label || item.value || '');\n emit('item:click', index);\n },\n }));\n\n if (props.multiple && !props.disableSelectAll) {\n mappedItems.unshift({\n text: selectedItems.value.length === filteredItems.value.length ? props.labelDeselectAll : props.labelSelectAll,\n check: false,\n onClick: () => {\n if (selectedItems.value.length === filteredItems.value.length) {\n selectedItems.value = [];\n } else {\n selectedItems.value = filteredItems.value;\n }\n\n inputField.value?.focus();\n emit('update:selectedItems', selectedItems.value);\n },\n });\n }\n\n return mappedItems;\n});\n\nconst debounceFunction = useMemoize(async (value: TextualValueType, eventOptions?: EventOptions) => {\n return await props.dataController?.(value, eventOptions);\n});\n\nconst debounceDataController = useDebounceFn(debounceFunction, props.debounceTime);\nconst clearCache = () => debounceFunction.cache.clear();\n\nconst resetAllAndFetch = async () => {\n query.value = undefined;\n filteredItems.value = props.items;\n selectedItems.value = props.selectedItems;\n const response = await props.dataController?.(query.value);\n filteredItems.value = response?.data || [];\n};\n\nconst resetItems = () => {\n filteredItems.value = [];\n};\n/**\n * Handle input click event necessary to open or close dropdown\n * @param e FocusEvent\n */\nconst onInputClick = (e: FocusEvent) => {\n if ((e.relatedTarget as HTMLElement)?.role !== 'option') {\n if (!isOpen.value) {\n isOpen.value = true;\n } else {\n isOpen.value = false;\n }\n }\n};\n\n/**\n * Handle input change event to update model value\n * @param event Event\n */\nconst onChangeEvent = ({ target }: Event) => {\n if (target instanceof HTMLInputElement) {\n if (target.value.charAt(target.value.length - 1) !== ' ') {\n updateModel(target.value);\n }\n }\n};\n\n/**\n * Handle remove item fr m selected items by clicking on the item\n * @param _event Event\n * @param item DropdownItem\n */\nconst onRemoveItem = (_event: Event, item: DropdownItem) => {\n selectedItems.value = selectedItems.value.filter(currentItem => currentItem.text !== item.text);\n emit('update:selectedItems', selectedItems.value);\n};\n\nconst updateModel = async (value: TextualValueType) => {\n if (props.dataController) {\n isLoading.value = true;\n const response = await debounceDataController(value);\n isOpen.value = !!response;\n isLoading.value = !response;\n filteredItems.value = response?.data || [];\n } else {\n if (value) {\n filteredItems.value = props.items.filter(result => result.text?.toLowerCase().includes(value.toLowerCase()));\n } else {\n filteredItems.value = props.items;\n }\n }\n\n emit('update:modelValue', value);\n};\nconst triggerEventOption = async (eventOptions: EventOptions) => {\n if (props.dataController) {\n isLoading.value = true;\n const response = await debounceDataController(query.value, eventOptions);\n isLoading.value = !response;\n\n filteredItems.value = response?.data || [];\n } else {\n filteredItems.value = props.items;\n }\n};\n\n/**\n Handle backspace key press to re last selected item wh multiple is true\n param e KeyboardEvent\n */\nconst onDeleteKeyPress = (e: KeyboardEvent) => {\n if (!query.value) {\n if (selectedItems.value.length > 0 && !lastSelectedItem.value) {\n const lastItemIndex = selectedItems.value.length - 1;\n lastSelectedItem.value = selectedItems.value[lastItemIndex];\n document.getElementById(lastItemIndex.toString())?.focus();\n } else {\n onRemoveItem(e, lastSelectedItem.value);\n lastSelectedItem.value = undefined;\n inputField.value?.focus();\n }\n }\n};\n\n/**\n Handle wheel sc event to scroll the li ox horizontally\n param event WheelEvent\n */\nconst onWheelScroll = (event: WheelEvent) => {\n const container = event.currentTarget as HTMLElement;\n container.scrollLeft += event.deltaY;\n // Prevent vertical scrolling he page\n event.preventDefault();\n};\n\n/**\n Handle update isOpen eve o open the dropdown n multiple is true\n param event boolean\n */\nconst onUpdateIsOpen = (event: boolean) => {\n if (props.multiple) {\n isOpen.value = true;\n } else {\n isOpen.value = event;\n }\n};\n\ndefineExpose({\n resetAllAndFetch,\n clearCache,\n resetItems,\n});\n</script>\n\n<template>\n <div class=\"flex flex-col gap-1\">\n <label class=\"block text-base font-medium\" :class=\"{ 'text-error': errorMessage, 'text-neutral-darker': !errorMessage }\">\n {{ label }}\n </label>\n <ElDropdown\n :items=\"items\"\n :multiple=\"multiple\"\n :is-open=\"isOpen\"\n :disabled=\"disabled\"\n @update:is-open=\"onUpdateIsOpen($event)\"\n @end-of-list=\"triggerEventOption({ isEndOfList: true })\"\n >\n <template #anchor>\n <ElInputContainer :color=\"color\" :name=\"name\">\n <template #default>\n <div class=\"flex items-center gap-1 px-2\">\n <div\n v-if=\"multiple\"\n name=\"scrollable-container\"\n class=\"flex items-center gap-1 overflow-x-scroll no-scrollbar cursor-grab active:cursor-grabbing\"\n @wheel=\"onWheelScroll\"\n >\n <ElInputChip\n v-for=\"(item, index) in selectedItems\"\n :id=\"index\"\n :key=\"index\"\n :text=\"item.text || item.label || ''\"\n class=\"border flex-shrink-0 rounded-md px-3 py-2\"\n @click=\"onRemoveItem($event, item)\"\n @keydown.backspace=\"onDeleteKeyPress($event)\"\n />\n </div>\n\n <input\n ref=\"inputField\"\n v-model=\"query\"\n :disabled=\"disabled\"\n type=\"text\"\n class=\"border-none tex-tsm font-normal flex flex-1 focus:outline-none focus:ring-0\"\n :class=\"{ 'cursor-not-allowed': disabled }\"\n :validation=\"validation\"\n :placeholder=\"placeholder\"\n @input=\"onChangeEvent($event)\"\n @keydown.backspace=\"onDeleteKeyPress($event)\"\n @click.prevent=\"onInputClick($event)\"\n @blur.prevent=\"onInputClick($event)\"\n @wheel=\"onWheelScroll($event)\"\n />\n\n <ElSpinner v-if=\"isLoading\" class=\"mx-2\" size=\"normal\" />\n </div>\n </template>\n </ElInputContainer>\n </template>\n </ElDropdown>\n <div v-if=\"errorMessage\" class=\"text-xs font-normal text-error\">{{ errorMessage }}</div>\n </div>\n</template>\n"],"names":["props","__props","emit","__emit","isLoading","ref","isOpen","query","filteredItems","selectedItems","inputField","lastSelectedItem","onMounted","response","debounceDataController","items","computed","mappedItems","_a","item","index","selectedItem","clickedItemIndex","currentItem","_","debounceFunction","useMemoize","value","eventOptions","useDebounceFn","clearCache","resetAllAndFetch","resetItems","onInputClick","e","onChangeEvent","target","updateModel","onRemoveItem","_event","result","triggerEventOption","onDeleteKeyPress","lastItemIndex","_b","onWheelScroll","event","container","onUpdateIsOpen","__expose"],"mappings":"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"}
1
+ {"version":3,"file":"ElInputAutocomplete.vue.esm2.js","sources":["../../../src/forms/ElInputAutocomplete.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type InputAutocompleteItemsDataControl = string;\nexport type ElInputAutocompleteItems = Array<DropdownItem & { label?: string; value?: string }>;\nexport type EventOptions = { isEndOfList: boolean };\n</script>\n\n<script lang=\"ts\" setup>\nimport { computed, onMounted, PropType, ref } from 'vue';\nimport { showRequiredMark, TextualValueType, withCommonElInputProps } from './input';\nimport ElDropdown, { DropdownItem } from '@/ElDropdown.vue';\nimport ElInputChip from '@/ElInputChip.vue';\nimport { useDebounceFn, useMemoize } from '@vueuse/core';\nimport ElSpinner from '@/ElSpinner.vue';\nimport ElInputContainer from './ElInputContainer.vue';\n\nconst props = defineProps({\n ...withCommonElInputProps(),\n modelValue: {\n type: [Array, String] as PropType<TextualValueType>,\n required: false,\n default: undefined,\n },\n placeholder: {\n type: String,\n default: '',\n required: false,\n },\n items: {\n type: Array as PropType<ElInputAutocompleteItems>,\n required: false,\n default: () => [],\n },\n selectedItems: {\n type: Array as PropType<ElInputAutocompleteItems>,\n default: () => [],\n },\n labelSelectAll: {\n type: String,\n default: 'Seleziona tutto',\n },\n labelDeselectAll: {\n type: String,\n default: 'Deseleziona tutto',\n },\n disableSelectAll: {\n type: Boolean,\n default: false,\n },\n focusOnMount: {\n type: Boolean,\n default: false,\n },\n multiple: {\n type: Boolean as PropType<InstanceType<typeof ElDropdown>['multiple']>,\n default: false,\n },\n debounceTime: {\n type: Number,\n default: 300,\n requied: false,\n },\n dataController: {\n type: Function as PropType<(args: TextualValueType, eventOptions?: EventOptions) => Promise<{ data: ElInputAutocompleteItems }>>,\n required: false,\n default: undefined,\n },\n});\n\nconst emit = defineEmits<{\n (event: 'update:modelValue', value: TextualValueType): void;\n (event: 'item:click', itemIndex: number): void;\n (event: 'update:selectedItems', value: ElInputAutocompleteItems): void;\n (event: 'endOfList'): void;\n}>();\n\nconst isLoading = ref(false);\nconst isOpen = ref(false);\nconst query = ref<TextualValueType>(props.modelValue);\nconst filteredItems = ref<ElInputAutocompleteItems>([]);\nconst selectedItems = ref<ElInputAutocompleteItems>(props.selectedItems);\nconst inputField = ref<HTMLInputElement>();\nconst lastSelectedItem = ref();\n\nonMounted(async () => {\n if (props.dataController) {\n const response = await debounceDataController(query.value);\n filteredItems.value = response?.data || [];\n } else {\n filteredItems.value = props.items;\n }\n});\n\nconst items = computed(() => {\n const mappedItems = filteredItems.value?.map((item, index) => ({\n ...item,\n text: item.label || item.text,\n check: selectedItems.value.some(selectedItem =>\n selectedItem.text ? selectedItem.text === item.text : selectedItem.label === item.label,\n ),\n onClick: () => {\n if (props.multiple) {\n // If the item is already selected, remove it from the selectedItems array\n const clickedItemIndex = selectedItems.value.findIndex(currentItem =>\n currentItem.text ? currentItem.text === item.text : currentItem.label === item.label,\n );\n\n if (clickedItemIndex !== -1) {\n selectedItems.value = selectedItems.value.filter((_, index) => index !== clickedItemIndex);\n } else {\n selectedItems.value.push({ ...item, check: true });\n }\n\n // Reset query to empty string to clear the input\n query.value = '';\n // Reset last selected item because the selectedItems array is updated\n lastSelectedItem.value = undefined;\n inputField.value?.focus();\n\n emit('update:selectedItems', selectedItems.value);\n } else {\n query.value = item.text || item.label || item.value || '';\n }\n\n emit('update:modelValue', item.text || item.label || item.value || '');\n emit('item:click', index);\n },\n }));\n\n if (props.multiple && !props.disableSelectAll) {\n mappedItems.unshift({\n text: selectedItems.value.length === filteredItems.value.length ? props.labelDeselectAll : props.labelSelectAll,\n check: false,\n onClick: () => {\n if (selectedItems.value.length === filteredItems.value.length) {\n selectedItems.value = [];\n } else {\n selectedItems.value = filteredItems.value;\n }\n\n inputField.value?.focus();\n emit('update:selectedItems', selectedItems.value);\n },\n });\n }\n\n return mappedItems;\n});\n\nconst debounceFunction = useMemoize(async (value: TextualValueType, eventOptions?: EventOptions) => {\n return await props.dataController?.(value, eventOptions);\n});\n\nconst debounceDataController = useDebounceFn(debounceFunction, props.debounceTime);\nconst clearCache = () => debounceFunction.cache.clear();\n\nconst resetAllAndFetch = async () => {\n query.value = undefined;\n filteredItems.value = props.items;\n selectedItems.value = props.selectedItems;\n const response = await props.dataController?.(query.value);\n filteredItems.value = response?.data || [];\n};\n\nconst resetItems = () => {\n filteredItems.value = [];\n};\n/**\n * Handle input click event necessary to open or close dropdown\n * @param e FocusEvent\n */\nconst onInputClick = (e: FocusEvent) => {\n if ((e.relatedTarget as HTMLElement)?.role !== 'option') {\n if (!isOpen.value) {\n isOpen.value = true;\n } else {\n isOpen.value = false;\n }\n }\n};\n\n/**\n * Handle input change event to update model value\n * @param event Event\n */\nconst onChangeEvent = ({ target }: Event) => {\n if (target instanceof HTMLInputElement) {\n if (target.value.charAt(target.value.length - 1) !== ' ') {\n updateModel(target.value);\n }\n }\n};\n\n/**\n * Handle remove item fr m selected items by clicking on the item\n * @param _event Event\n * @param item DropdownItem\n */\nconst onRemoveItem = (_event: Event, item: DropdownItem) => {\n selectedItems.value = selectedItems.value.filter(currentItem => currentItem.text !== item.text);\n emit('update:selectedItems', selectedItems.value);\n};\n\nconst updateModel = async (value: TextualValueType) => {\n if (props.dataController) {\n isLoading.value = true;\n const response = await debounceDataController(value);\n isOpen.value = !!response;\n isLoading.value = !response;\n filteredItems.value = response?.data || [];\n } else {\n if (value) {\n filteredItems.value = props.items.filter(result => result.text?.toLowerCase().includes(value.toLowerCase()));\n } else {\n filteredItems.value = props.items;\n }\n }\n\n emit('update:modelValue', value);\n};\nconst triggerEventOption = async (eventOptions: EventOptions) => {\n if (props.dataController) {\n isLoading.value = true;\n const response = await debounceDataController(query.value, eventOptions);\n isLoading.value = !response;\n\n filteredItems.value = response?.data || [];\n } else {\n filteredItems.value = props.items;\n }\n};\n\n/**\n Handle backspace key press to re last selected item wh multiple is true\n param e KeyboardEvent\n */\nconst onDeleteKeyPress = (e: KeyboardEvent) => {\n if (!query.value) {\n if (selectedItems.value.length > 0 && !lastSelectedItem.value) {\n const lastItemIndex = selectedItems.value.length - 1;\n lastSelectedItem.value = selectedItems.value[lastItemIndex];\n document.getElementById(lastItemIndex.toString())?.focus();\n } else {\n onRemoveItem(e, lastSelectedItem.value);\n lastSelectedItem.value = undefined;\n inputField.value?.focus();\n }\n }\n};\n\n/**\n Handle wheel sc event to scroll the li ox horizontally\n param event WheelEvent\n */\nconst onWheelScroll = (event: WheelEvent) => {\n const container = event.currentTarget as HTMLElement;\n container.scrollLeft += event.deltaY;\n // Prevent vertical scrolling he page\n event.preventDefault();\n};\n\n/**\n Handle update isOpen eve o open the dropdown n multiple is true\n param event boolean\n */\nconst onUpdateIsOpen = (event: boolean) => {\n if (props.multiple) {\n isOpen.value = true;\n } else {\n isOpen.value = event;\n }\n};\n\ndefineExpose({\n resetAllAndFetch,\n clearCache,\n resetItems,\n});\n</script>\n\n<template>\n <ElInputContainer\n v-bind=\"$attrs\"\n :name=\"label\"\n :color=\"color\"\n :label=\"label\"\n :error-message=\"props.errorMessage === false ? false : props.errorMessage || errorMessage\"\n :hidden-error-message=\"hiddenErrorMessage\"\n :set-required-mark=\"showRequiredMark([props.validation])\"\n >\n <ElDropdown\n :items=\"items\"\n :multiple=\"multiple\"\n :is-open=\"isOpen\"\n :disabled=\"disabled\"\n @update:is-open=\"onUpdateIsOpen($event)\"\n @end-of-list=\"triggerEventOption({ isEndOfList: true })\"\n >\n <template #anchor>\n <div class=\"flex items-center gap-1 px-2\">\n <div\n v-if=\"multiple\"\n name=\"scrollable-container\"\n class=\"flex items-center gap-1 overflow-x-scroll no-scrollbar cursor-grab active:cursor-grabbing\"\n @wheel=\"onWheelScroll\"\n >\n <ElInputChip\n v-for=\"(item, index) in selectedItems\"\n :id=\"index\"\n :key=\"index\"\n :text=\"item.text || item.label || ''\"\n class=\"border flex-shrink-0 rounded-md px-3 py-2\"\n @click=\"onRemoveItem($event, item)\"\n @keydown.backspace=\"onDeleteKeyPress($event)\"\n />\n </div>\n <input\n ref=\"inputField\"\n v-model=\"query\"\n :disabled=\"disabled\"\n type=\"text\"\n class=\"border-none tex-tsm font-normal flex flex-1 focus:outline-none focus:ring-0\"\n :class=\"{ 'cursor-not-allowed': disabled }\"\n :validation=\"validation\"\n :placeholder=\"placeholder\"\n @input=\"onChangeEvent($event)\"\n @keydown.backspace=\"onDeleteKeyPress($event)\"\n @click.prevent=\"onInputClick($event)\"\n @blur.prevent=\"onInputClick($event)\"\n @wheel=\"onWheelScroll($event)\"\n />\n <ElSpinner v-if=\"isLoading\" class=\"mx-2\" size=\"normal\" />\n </div>\n </template>\n </ElDropdown>\n </ElInputContainer>\n</template>\n"],"names":["props","__props","emit","__emit","isLoading","ref","isOpen","query","filteredItems","selectedItems","inputField","lastSelectedItem","onMounted","response","debounceDataController","items","computed","mappedItems","_a","item","index","selectedItem","clickedItemIndex","currentItem","_","debounceFunction","useMemoize","value","eventOptions","useDebounceFn","clearCache","resetAllAndFetch","resetItems","onInputClick","e","onChangeEvent","target","updateModel","onRemoveItem","_event","result","triggerEventOption","onDeleteKeyPress","lastItemIndex","_b","onWheelScroll","event","container","onUpdateIsOpen","__expose"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */require("./polyfills.cjs.js");const P=require("./vue.plugin.cjs.js"),E=require("./tailwind.plugin.cjs.js"),k=require("../node_modules/@davincihealthcare/elty-design-system-foundations/dist/index.cjs.js"),e=require("./types.cjs.js"),g=require("./ElAccordion.vue.cjs2.js"),C=require("./ElAvatar.vue.cjs2.js"),S=require("./ElBadge.vue.cjs2.js"),n=require("./ElButton.vue.cjs2.js"),a=require("./ElCalendarCard.vue.cjs2.js"),s=require("./ElCalendarCell.vue.cjs2.js"),F=require("./ElDrawer.vue.cjs2.js"),T=require("./ElDropdown.vue.cjs2.js"),y=require("./ElFile.vue.cjs2.js"),I=require("./ElIcon.vue.cjs2.js"),q=require("./ElIconButton.vue.cjs2.js"),t=require("./forms/ElInputCheckbox.vue.cjs2.js"),f=require("./forms/ElInputContainer.vue.cjs2.js"),b=require("./forms/ElInputDate.vue.cjs2.js"),h=require("./forms/ElInputFile.vue.cjs2.js"),H=require("./forms/ElInputMeasureUnit.vue.cjs2.js"),L=require("./forms/ElInputNumber.vue.cjs2.js"),U=require("./forms/ElInputPhone.vue.cjs2.js"),G=require("./forms/ElInputSelect.vue.cjs2.js"),B=require("./forms/ElInputText.vue.cjs2.js"),N=require("./forms/ElInputTextarea.vue.cjs2.js"),W=require("./ElItem.vue.cjs2.js"),i=require("./ElLogo.vue.cjs2.js"),A=require("./ElSortingHeader.vue.cjs2.js"),j=require("./ElSuggestionChip.vue.cjs2.js"),o=require("./ElTab.vue.cjs2.js"),O=require("./ElTabGroup.vue.cjs2.js"),J=require("./ElTableHead.vue.cjs2.js"),K=require("./ElTabs.vue.cjs2.js"),l=require("./ElTag.vue.cjs2.js"),p=require("./ElToast.vue.cjs2.js"),M=require("./ElInlineBanner.vue.cjs2.js"),c=require("./forms/ElInputRadioButton.vue.cjs2.js"),D=require("./ElClipToAnchor.vue.cjs2.js"),Q=require("./table/ElTable.vue.cjs2.js"),X=require("./table/ElServerSideTable.vue.cjs2.js"),z=require("./ElSpinner.vue.cjs2.js"),x=require("./ElDivider.vue.cjs2.js"),u=require("./ElModal.vue.cjs2.js"),v=require("./ElVerticalTab.vue.cjs2.js"),V=require("./ElContainerTemplate.vue.cjs2.js"),r=require("./forms/ElInputSwitch.vue.cjs2.js"),w=require("./ElCarousel.vue.cjs2.js"),_=require("./ElActionButton.vue.cjs2.js"),Y=require("./ElListItem.vue.cjs2.js"),Z=require("./table/ElMobileTable.vue.cjs2.js"),d=require("./forms/ElInputSearch.vue.cjs2.js"),$=require("./forms/ElInputRichText.vue.cjs2.js"),ee=require("./table/ElResponsiveTable.vue.cjs2.js"),te=require("./table/ElServerSideMobileTable.vue.cjs2.js"),le=require("./table/ElServerSideResponsiveTable.vue.cjs2.js"),m=require("./ElTooltip.vue.cjs2.js"),ue=require("./forms/validation-rules.cjs.js"),re=require("./composable/mobileComposable.cjs.js"),R=require("./ElInputChip.vue.cjs2.js"),_e=require("./forms/ElInputAutocomplete.vue.cjs2.js");exports.EltyVuePlugin=P.default;exports.EltyTailwindPlugin=E.defaultPlugin;exports.EltyTailwindPluginWithoutStyle=E.pluginWithoutStyles;exports.EltyTailwindPreset=k.preset;exports.DrugDurationMeasures=e.DrugDurationMeasures;exports.DrugTimeMeasures=e.DrugTimeMeasures;exports.DrugUnitMeasures=e.DrugUnitMeasures;exports.Role=e.Role;exports.ElAccordion=g.default;exports.elAccordionColors=g.elAccordionColors;exports.ElAvatar=C.default;exports.elAvatarSizes=C.elAvatarSizes;exports.ElBadge=S.default;exports.elBadgeColors=S.elBadgeColors;exports.ElButton=n.default;exports.elButtonSizes=n.elButtonSizes;exports.elButtonVariants=n.elButtonVariants;exports.ElCalendarCard=a.default;exports.elCalendarCardColors=a.elCalendarCardColors;exports.elCalendarCardStatuses=a.elCalendarCardStatuses;exports.ElCalendarCell=s.default;exports.elCalendarCellAvailabilities=s.elCalendarCellAvailabilities;exports.elCalendarCellColors=s.elCalendarCellColors;exports.ElDrawer=F.default;exports.ElDropdown=T.default;exports.elDropdownMaxHeight=T.elDropdownMaxHeight;exports.ElFile=y.default;exports.elFileVariants=y.elFileVariants;exports.ElIcon=I.default;exports.elIconColors=I.elIconColors;exports.ElIconButton=q.default;exports.elIconButtonSizes=q.elIconButtonSizes;exports.ElInputCheckbox=t.default;exports.elInputCheckboxColors=t.elInputCheckboxColors;exports.elInputCheckboxModelValues=t.elInputCheckboxModelValues;exports.elInputCheckboxSizes=t.elInputCheckboxSizes;exports.ElInputContainer=f.default;exports.elInputContainerColor=f.elInputContainerColor;exports.ElInputDate=b.default;exports.elInputDateTypes=b.elInputDateTypes;exports.ElInputFile=h.default;exports.elInputFileTypes=h.elInputFileTypes;exports.ElInputMeasureUnit=H.default;exports.ElInputNumber=L.default;exports.ElInputPhone=U.default;exports.ElInputSelect=G.default;exports.ElInputText=B.default;exports.elInputTextTypes=B.elInputTextTypes;exports.ElInputTextarea=N.default;exports.ElItem=W.default;exports.ElLogo=i.default;exports.elLogoColors=i.elLogoColors;exports.elLogoVariants=i.elLogoVariants;exports.ElSortingHeader=A.default;exports.elSortingHeaderDirections=A.elSortingHeaderDirections;exports.ElSuggestionChip=j.default;exports.ElTab=o.default;exports.elTabColors=o.elTabColors;exports.elTabStatuses=o.elTabStatuses;exports.ElTabGroup=O.default;exports.ElTableHead=J.default;exports.ElTabs=K.default;exports.ElTag=l.default;exports.elTagAppearance=l.elTagAppearance;exports.elTagColors=l.elTagColors;exports.elTagSizes=l.elTagSizes;exports.ElToast=p.default;exports.elToastStates=p.elToastStates;exports.toast=p.toast;exports.ElInlineBanner=M.default;exports.elInlineBannerStatuses=M.elInlineBannerStatuses;exports.ElInputRadioButton=c.default;exports.elRadioButtonColors=c.elRadioButtonColors;exports.elRadioButtonSizes=c.elRadioButtonSizes;exports.ElClipToAnchor=D.default;exports.elClipToAnchorPositions=D.elClipToAnchorPositions;exports.ElTable=Q.default;exports.ElServerSideTable=X.default;exports.ElSpinner=z.default;exports.elSpinnerSize=z.elSpinnerSize;exports.ElDivider=x.default;exports.elDividerDirection=x.elDividerDirection;exports.ElModal=u.default;exports.elModalColors=u.elModalColors;exports.elModalSizes=u.elModalSizes;exports.elModalSizesBreakpoints=u.elModalSizesBreakpoints;exports.ElVerticalTab=v.default;exports.elVerticalTabColors=v.elVerticalTabColors;exports.elVerticalTabStatus=v.elVerticalTabStatus;exports.ElContainerTemplate=V.default;exports.elContainerTemplateVariants=V.elContainerTemplateVariants;exports.ElInputSwitch=r.default;exports.elSwitchAligns=r.elSwitchAligns;exports.elSwitchColors=r.elSwitchColors;exports.elSwitchSizes=r.elSwitchSizes;exports.ElCarousel=w.default;exports.elCarouselSizes=w.elCarouselSizes;exports.ElActionButton=_.default;exports.elActionButtonColors=_.elActionButtonColors;exports.elActionButtonSizes=_.elActionButtonSizes;exports.elActionButtonStatus=_.elActionButtonStatus;exports.ElListItem=Y.default;exports.ElMobileTable=Z.default;exports.ElInputSearch=d.default;exports.elInputSearchColors=d.elInputSearchColors;exports.elInputSearchStatus=d.elInputSearchStatus;exports.ElInputRichText=$.default;exports.ElResponsiveTable=ee.default;exports.ElServerSideMobileTable=te.default;exports.ElServerSideResponsiveTable=le.default;exports.ElTooltip=m.default;exports.elTooltipPositions=m.elTooltipPositions;exports.defineValidationRules=ue.defineValidationRules;exports.useMobile=re.useMobile;exports.ElInputChip=R.default;exports.elInputChipStatus=R.elInputChipStatus;exports.ElInputAutocomplete=_e.default;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */require("./polyfills.cjs.js");const k=require("./vue.plugin.cjs.js"),E=require("./tailwind.plugin.cjs.js"),F=require("../node_modules/@davincihealthcare/elty-design-system-foundations/dist/index.cjs.js"),e=require("./types.cjs.js"),g=require("./ElAccordion.vue.cjs2.js"),C=require("./ElAvatar.vue.cjs2.js"),S=require("./ElBadge.vue.cjs2.js"),n=require("./ElButton.vue.cjs2.js"),s=require("./ElCalendarCard.vue.cjs2.js"),a=require("./ElCalendarCell.vue.cjs2.js"),H=require("./ElDrawer.vue.cjs2.js"),T=require("./ElDropdown.vue.cjs2.js"),y=require("./ElFile.vue.cjs2.js"),I=require("./ElIcon.vue.cjs2.js"),q=require("./ElIconButton.vue.cjs2.js"),t=require("./forms/ElInputCheckbox.vue.cjs2.js"),f=require("./forms/ElInputContainer.vue.cjs2.js"),b=require("./forms/ElInputDate.vue.cjs2.js"),h=require("./forms/ElInputFile.vue.cjs2.js"),L=require("./forms/ElInputMeasureUnit.vue.cjs2.js"),U=require("./forms/ElInputNumber.vue.cjs2.js"),G=require("./forms/ElInputPhone.vue.cjs2.js"),N=require("./forms/ElInputSelect.vue.cjs2.js"),B=require("./forms/ElInputText.vue.cjs2.js"),W=require("./forms/ElInputTextarea.vue.cjs2.js"),j=require("./ElItem.vue.cjs2.js"),i=require("./ElLogo.vue.cjs2.js"),A=require("./ElSortingHeader.vue.cjs2.js"),M=require("./ElSuggestionChip.vue.cjs2.js"),o=require("./ElTab.vue.cjs2.js"),O=require("./ElTabGroup.vue.cjs2.js"),J=require("./ElTableHead.vue.cjs2.js"),K=require("./ElTabs.vue.cjs2.js"),l=require("./ElTag.vue.cjs2.js"),p=require("./ElToast.vue.cjs2.js"),D=require("./ElInlineBanner.vue.cjs2.js"),c=require("./forms/ElInputRadioButton.vue.cjs2.js"),z=require("./ElClipToAnchor.vue.cjs2.js"),Q=require("./table/ElTable.vue.cjs2.js"),X=require("./table/ElServerSideTable.vue.cjs2.js"),x=require("./ElSpinner.vue.cjs2.js"),V=require("./ElDivider.vue.cjs2.js"),u=require("./ElModal.vue.cjs2.js"),v=require("./ElVerticalTab.vue.cjs2.js"),w=require("./ElContainerTemplate.vue.cjs2.js"),r=require("./forms/ElInputSwitch.vue.cjs2.js"),m=require("./ElCarousel.vue.cjs2.js"),_=require("./ElActionButton.vue.cjs2.js"),Y=require("./ElListItem.vue.cjs2.js"),Z=require("./table/ElMobileTable.vue.cjs2.js"),d=require("./forms/ElInputSearch.vue.cjs2.js"),$=require("./forms/ElInputRichText.vue.cjs2.js"),ee=require("./table/ElResponsiveTable.vue.cjs2.js"),te=require("./table/ElServerSideMobileTable.vue.cjs2.js"),le=require("./table/ElServerSideResponsiveTable.vue.cjs2.js"),R=require("./ElTooltip.vue.cjs2.js"),ue=require("./forms/validation-rules.cjs.js"),re=require("./composable/mobileComposable.cjs.js"),P=require("./ElInputChip.vue.cjs2.js"),_e=require("./forms/ElInputAutocomplete.vue.cjs2.js");exports.EltyVuePlugin=k.default;exports.EltyTailwindPlugin=E.defaultPlugin;exports.EltyTailwindPluginWithoutStyle=E.pluginWithoutStyles;exports.EltyTailwindPreset=F.preset;exports.DrugDurationMeasures=e.DrugDurationMeasures;exports.DrugTimeMeasures=e.DrugTimeMeasures;exports.DrugUnitMeasures=e.DrugUnitMeasures;exports.Role=e.Role;exports.ElAccordion=g.default;exports.elAccordionColors=g.elAccordionColors;exports.ElAvatar=C.default;exports.elAvatarSizes=C.elAvatarSizes;exports.ElBadge=S.default;exports.elBadgeColors=S.elBadgeColors;exports.ElButton=n.default;exports.elButtonSizes=n.elButtonSizes;exports.elButtonVariants=n.elButtonVariants;exports.ElCalendarCard=s.default;exports.elCalendarCardColors=s.elCalendarCardColors;exports.elCalendarCardStatuses=s.elCalendarCardStatuses;exports.ElCalendarCell=a.default;exports.elCalendarCellAvailabilities=a.elCalendarCellAvailabilities;exports.elCalendarCellColors=a.elCalendarCellColors;exports.ElDrawer=H.default;exports.ElDropdown=T.default;exports.elDropdownMaxHeight=T.elDropdownMaxHeight;exports.ElFile=y.default;exports.elFileVariants=y.elFileVariants;exports.ElIcon=I.default;exports.elIconColors=I.elIconColors;exports.ElIconButton=q.default;exports.elIconButtonSizes=q.elIconButtonSizes;exports.ElInputCheckbox=t.default;exports.elInputCheckboxColors=t.elInputCheckboxColors;exports.elInputCheckboxModelValues=t.elInputCheckboxModelValues;exports.elInputCheckboxSizes=t.elInputCheckboxSizes;exports.ElInputContainer=f.default;exports.elInputContainerColor=f.elInputContainerColor;exports.ElInputDate=b.default;exports.elInputDateTypes=b.elInputDateTypes;exports.ElInputFile=h.default;exports.elInputFileTypes=h.elInputFileTypes;exports.ElInputMeasureUnit=L.default;exports.ElInputNumber=U.default;exports.ElInputPhone=G.default;exports.ElInputSelect=N.default;exports.ElInputText=B.default;exports.elInputTextTypes=B.elInputTextTypes;exports.ElInputTextarea=W.default;exports.ElItem=j.default;exports.ElLogo=i.default;exports.elLogoColors=i.elLogoColors;exports.elLogoVariants=i.elLogoVariants;exports.ElSortingHeader=A.default;exports.elSortingHeaderDirections=A.elSortingHeaderDirections;exports.ElSuggestionChip=M.default;exports.elSuggestionChipColors=M.elSuggestionChipColors;exports.ElTab=o.default;exports.elTabColors=o.elTabColors;exports.elTabStatuses=o.elTabStatuses;exports.ElTabGroup=O.default;exports.ElTableHead=J.default;exports.ElTabs=K.default;exports.ElTag=l.default;exports.elTagAppearance=l.elTagAppearance;exports.elTagColors=l.elTagColors;exports.elTagSizes=l.elTagSizes;exports.ElToast=p.default;exports.elToastStates=p.elToastStates;exports.toast=p.toast;exports.ElInlineBanner=D.default;exports.elInlineBannerStatuses=D.elInlineBannerStatuses;exports.ElInputRadioButton=c.default;exports.elRadioButtonColors=c.elRadioButtonColors;exports.elRadioButtonSizes=c.elRadioButtonSizes;exports.ElClipToAnchor=z.default;exports.elClipToAnchorPositions=z.elClipToAnchorPositions;exports.ElTable=Q.default;exports.ElServerSideTable=X.default;exports.ElSpinner=x.default;exports.elSpinnerSize=x.elSpinnerSize;exports.ElDivider=V.default;exports.elDividerDirection=V.elDividerDirection;exports.ElModal=u.default;exports.elModalColors=u.elModalColors;exports.elModalSizes=u.elModalSizes;exports.elModalSizesBreakpoints=u.elModalSizesBreakpoints;exports.ElVerticalTab=v.default;exports.elVerticalTabColors=v.elVerticalTabColors;exports.elVerticalTabStatus=v.elVerticalTabStatus;exports.ElContainerTemplate=w.default;exports.elContainerTemplateVariants=w.elContainerTemplateVariants;exports.ElInputSwitch=r.default;exports.elSwitchAligns=r.elSwitchAligns;exports.elSwitchColors=r.elSwitchColors;exports.elSwitchSizes=r.elSwitchSizes;exports.ElCarousel=m.default;exports.elCarouselSizes=m.elCarouselSizes;exports.ElActionButton=_.default;exports.elActionButtonColors=_.elActionButtonColors;exports.elActionButtonSizes=_.elActionButtonSizes;exports.elActionButtonStatus=_.elActionButtonStatus;exports.ElListItem=Y.default;exports.ElMobileTable=Z.default;exports.ElInputSearch=d.default;exports.elInputSearchColors=d.elInputSearchColors;exports.elInputSearchStatus=d.elInputSearchStatus;exports.ElInputRichText=$.default;exports.ElResponsiveTable=ee.default;exports.ElServerSideMobileTable=te.default;exports.ElServerSideResponsiveTable=le.default;exports.ElTooltip=R.default;exports.elTooltipPositions=R.elTooltipPositions;exports.defineValidationRules=ue.defineValidationRules;exports.useMobile=re.useMobile;exports.ElInputChip=P.default;exports.elInputChipStatus=P.elInputChipStatus;exports.ElInputAutocomplete=_e.default;
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -1,2 +1,2 @@
1
- /* empty css */import"./polyfills.esm.js";import{default as a}from"./vue.plugin.esm.js";import{defaultPlugin as s,pluginWithoutStyles as u}from"./tailwind.plugin.esm.js";import{preset as p}from"../node_modules/@davincihealthcare/elty-design-system-foundations/dist/index.esm.js";import{DrugDurationMeasures as i,DrugTimeMeasures as d,DrugUnitMeasures as m,Role as x}from"./types.esm.js";import{default as C,elAccordionColors as S}from"./ElAccordion.vue.esm2.js";import{default as c,elAvatarSizes as I}from"./ElAvatar.vue.esm2.js";import{default as g,elBadgeColors as h}from"./ElBadge.vue.esm2.js";import{default as A,elButtonSizes as D,elButtonVariants as M}from"./ElButton.vue.esm2.js";import{default as v,elCalendarCardColors as w,elCalendarCardStatuses as V}from"./ElCalendarCard.vue.esm2.js";import{default as P,elCalendarCellAvailabilities as R,elCalendarCellColors as k}from"./ElCalendarCell.vue.esm2.js";import{default as H}from"./ElDrawer.vue.esm2.js";import{default as U,elDropdownMaxHeight as W}from"./ElDropdown.vue.esm2.js";import{default as N,elFileVariants as j}from"./ElFile.vue.esm2.js";import{default as J,elIconColors as K}from"./ElIcon.vue.esm2.js";import{default as Q,elIconButtonSizes as X}from"./ElIconButton.vue.esm2.js";import{default as Z,elInputCheckboxColors as _,elInputCheckboxModelValues as $,elInputCheckboxSizes as ee}from"./forms/ElInputCheckbox.vue.esm2.js";import{default as le,elInputContainerColor as oe}from"./forms/ElInputContainer.vue.esm2.js";import{default as re,elInputDateTypes as se}from"./forms/ElInputDate.vue.esm2.js";import{default as fe,elInputFileTypes as pe}from"./forms/ElInputFile.vue.esm2.js";import{default as ie}from"./forms/ElInputMeasureUnit.vue.esm2.js";import{default as me}from"./forms/ElInputNumber.vue.esm2.js";import{default as Ee}from"./forms/ElInputPhone.vue.esm2.js";import{default as Se}from"./forms/ElInputSelect.vue.esm2.js";import{default as ce,elInputTextTypes as Ie}from"./forms/ElInputText.vue.esm2.js";import{default as ge}from"./forms/ElInputTextarea.vue.esm2.js";import{default as Be}from"./ElItem.vue.esm2.js";import{default as De,elLogoColors as Me,elLogoVariants as ze}from"./ElLogo.vue.esm2.js";import{default as we,elSortingHeaderDirections as Ve}from"./ElSortingHeader.vue.esm2.js";import{default as Pe}from"./ElSuggestionChip.vue.esm2.js";import{default as ke,elTabColors as Fe,elTabStatuses as He}from"./ElTab.vue.esm2.js";import{default as Ue}from"./ElTabGroup.vue.esm2.js";import{default as Ge}from"./ElTableHead.vue.esm2.js";import{default as je}from"./ElTabs.vue.esm2.js";import{default as Je,elTagAppearance as Ke,elTagColors as Oe,elTagSizes as Qe}from"./ElTag.vue.esm2.js";import{default as Ye,elToastStates as Ze,toast as _e}from"./ElToast.vue.esm2.js";import{default as et,elInlineBannerStatuses as tt}from"./ElInlineBanner.vue.esm2.js";import{default as ot,elRadioButtonColors as at,elRadioButtonSizes as rt}from"./forms/ElInputRadioButton.vue.esm2.js";import{default as ut,elClipToAnchorPositions as ft}from"./ElClipToAnchor.vue.esm2.js";import{default as nt}from"./table/ElTable.vue.esm2.js";import{default as dt}from"./table/ElServerSideTable.vue.esm2.js";import{default as xt,elSpinnerSize as Et}from"./ElSpinner.vue.esm2.js";import{default as St,elDividerDirection as Tt}from"./ElDivider.vue.esm2.js";import{default as It,elModalColors as bt,elModalSizes as gt,elModalSizesBreakpoints as ht}from"./ElModal.vue.esm2.js";import{default as At,elVerticalTabColors as Dt,elVerticalTabStatus as Mt}from"./ElVerticalTab.vue.esm2.js";import{default as vt,elContainerTemplateVariants as wt}from"./ElContainerTemplate.vue.esm2.js";import{default as yt,elSwitchAligns as Pt,elSwitchColors as Rt,elSwitchSizes as kt}from"./forms/ElInputSwitch.vue.esm2.js";import{default as Ht,elCarouselSizes as Lt}from"./ElCarousel.vue.esm2.js";import{default as Wt,elActionButtonColors as Gt,elActionButtonSizes as Nt,elActionButtonStatus as jt}from"./ElActionButton.vue.esm2.js";import{default as Jt}from"./ElListItem.vue.esm2.js";import{default as Ot}from"./table/ElMobileTable.vue.esm2.js";import{default as Xt,elInputSearchColors as Yt,elInputSearchStatus as Zt}from"./forms/ElInputSearch.vue.esm2.js";import{default as $t}from"./forms/ElInputRichText.vue.esm2.js";import{default as tl}from"./table/ElResponsiveTable.vue.esm2.js";import{default as ol}from"./table/ElServerSideMobileTable.vue.esm2.js";import{default as rl}from"./table/ElServerSideResponsiveTable.vue.esm2.js";import{default as ul,elTooltipPositions as fl}from"./ElTooltip.vue.esm2.js";import{defineValidationRules as nl}from"./forms/validation-rules.esm.js";import{useMobile as dl}from"./composable/mobileComposable.esm.js";import{default as xl,elInputChipStatus as El}from"./ElInputChip.vue.esm2.js";import{default as Sl}from"./forms/ElInputAutocomplete.vue.esm2.js";export{i as DrugDurationMeasures,d as DrugTimeMeasures,m as DrugUnitMeasures,C as ElAccordion,Wt as ElActionButton,c as ElAvatar,g as ElBadge,A as ElButton,v as ElCalendarCard,P as ElCalendarCell,Ht as ElCarousel,ut as ElClipToAnchor,vt as ElContainerTemplate,St as ElDivider,H as ElDrawer,U as ElDropdown,N as ElFile,J as ElIcon,Q as ElIconButton,et as ElInlineBanner,Sl as ElInputAutocomplete,Z as ElInputCheckbox,xl as ElInputChip,le as ElInputContainer,re as ElInputDate,fe as ElInputFile,ie as ElInputMeasureUnit,me as ElInputNumber,Ee as ElInputPhone,ot as ElInputRadioButton,$t as ElInputRichText,Xt as ElInputSearch,Se as ElInputSelect,yt as ElInputSwitch,ce as ElInputText,ge as ElInputTextarea,Be as ElItem,Jt as ElListItem,De as ElLogo,Ot as ElMobileTable,It as ElModal,tl as ElResponsiveTable,ol as ElServerSideMobileTable,rl as ElServerSideResponsiveTable,dt as ElServerSideTable,we as ElSortingHeader,xt as ElSpinner,Pe as ElSuggestionChip,ke as ElTab,Ue as ElTabGroup,nt as ElTable,Ge as ElTableHead,je as ElTabs,Je as ElTag,Ye as ElToast,ul as ElTooltip,At as ElVerticalTab,s as EltyTailwindPlugin,u as EltyTailwindPluginWithoutStyle,p as EltyTailwindPreset,a as EltyVuePlugin,x as Role,nl as defineValidationRules,S as elAccordionColors,Gt as elActionButtonColors,Nt as elActionButtonSizes,jt as elActionButtonStatus,I as elAvatarSizes,h as elBadgeColors,D as elButtonSizes,M as elButtonVariants,w as elCalendarCardColors,V as elCalendarCardStatuses,R as elCalendarCellAvailabilities,k as elCalendarCellColors,Lt as elCarouselSizes,ft as elClipToAnchorPositions,wt as elContainerTemplateVariants,Tt as elDividerDirection,W as elDropdownMaxHeight,j as elFileVariants,X as elIconButtonSizes,K as elIconColors,tt as elInlineBannerStatuses,_ as elInputCheckboxColors,$ as elInputCheckboxModelValues,ee as elInputCheckboxSizes,El as elInputChipStatus,oe as elInputContainerColor,se as elInputDateTypes,pe as elInputFileTypes,Yt as elInputSearchColors,Zt as elInputSearchStatus,Ie as elInputTextTypes,Me as elLogoColors,ze as elLogoVariants,bt as elModalColors,gt as elModalSizes,ht as elModalSizesBreakpoints,at as elRadioButtonColors,rt as elRadioButtonSizes,Ve as elSortingHeaderDirections,Et as elSpinnerSize,Pt as elSwitchAligns,Rt as elSwitchColors,kt as elSwitchSizes,Fe as elTabColors,He as elTabStatuses,Ke as elTagAppearance,Oe as elTagColors,Qe as elTagSizes,Ze as elToastStates,fl as elTooltipPositions,Dt as elVerticalTabColors,Mt as elVerticalTabStatus,_e as toast,dl as useMobile};
1
+ /* empty css */import"./polyfills.esm.js";import{default as a}from"./vue.plugin.esm.js";import{defaultPlugin as s,pluginWithoutStyles as u}from"./tailwind.plugin.esm.js";import{preset as p}from"../node_modules/@davincihealthcare/elty-design-system-foundations/dist/index.esm.js";import{DrugDurationMeasures as i,DrugTimeMeasures as d,DrugUnitMeasures as m,Role as x}from"./types.esm.js";import{default as C,elAccordionColors as S}from"./ElAccordion.vue.esm2.js";import{default as c,elAvatarSizes as I}from"./ElAvatar.vue.esm2.js";import{default as b,elBadgeColors as h}from"./ElBadge.vue.esm2.js";import{default as A,elButtonSizes as D,elButtonVariants as M}from"./ElButton.vue.esm2.js";import{default as v,elCalendarCardColors as w,elCalendarCardStatuses as V}from"./ElCalendarCard.vue.esm2.js";import{default as P,elCalendarCellAvailabilities as R,elCalendarCellColors as k}from"./ElCalendarCell.vue.esm2.js";import{default as H}from"./ElDrawer.vue.esm2.js";import{default as U,elDropdownMaxHeight as W}from"./ElDropdown.vue.esm2.js";import{default as N,elFileVariants as j}from"./ElFile.vue.esm2.js";import{default as J,elIconColors as K}from"./ElIcon.vue.esm2.js";import{default as Q,elIconButtonSizes as X}from"./ElIconButton.vue.esm2.js";import{default as Z,elInputCheckboxColors as _,elInputCheckboxModelValues as $,elInputCheckboxSizes as ee}from"./forms/ElInputCheckbox.vue.esm2.js";import{default as le,elInputContainerColor as oe}from"./forms/ElInputContainer.vue.esm2.js";import{default as re,elInputDateTypes as se}from"./forms/ElInputDate.vue.esm2.js";import{default as fe,elInputFileTypes as pe}from"./forms/ElInputFile.vue.esm2.js";import{default as ie}from"./forms/ElInputMeasureUnit.vue.esm2.js";import{default as me}from"./forms/ElInputNumber.vue.esm2.js";import{default as Ee}from"./forms/ElInputPhone.vue.esm2.js";import{default as Se}from"./forms/ElInputSelect.vue.esm2.js";import{default as ce,elInputTextTypes as Ie}from"./forms/ElInputText.vue.esm2.js";import{default as be}from"./forms/ElInputTextarea.vue.esm2.js";import{default as Be}from"./ElItem.vue.esm2.js";import{default as De,elLogoColors as Me,elLogoVariants as ze}from"./ElLogo.vue.esm2.js";import{default as we,elSortingHeaderDirections as Ve}from"./ElSortingHeader.vue.esm2.js";import{default as Pe,elSuggestionChipColors as Re}from"./ElSuggestionChip.vue.esm2.js";import{default as Fe,elTabColors as He,elTabStatuses as Le}from"./ElTab.vue.esm2.js";import{default as We}from"./ElTabGroup.vue.esm2.js";import{default as Ne}from"./ElTableHead.vue.esm2.js";import{default as qe}from"./ElTabs.vue.esm2.js";import{default as Ke,elTagAppearance as Oe,elTagColors as Qe,elTagSizes as Xe}from"./ElTag.vue.esm2.js";import{default as Ze,elToastStates as _e,toast as $e}from"./ElToast.vue.esm2.js";import{default as tt,elInlineBannerStatuses as lt}from"./ElInlineBanner.vue.esm2.js";import{default as at,elRadioButtonColors as rt,elRadioButtonSizes as st}from"./forms/ElInputRadioButton.vue.esm2.js";import{default as ft,elClipToAnchorPositions as pt}from"./ElClipToAnchor.vue.esm2.js";import{default as it}from"./table/ElTable.vue.esm2.js";import{default as mt}from"./table/ElServerSideTable.vue.esm2.js";import{default as Et,elSpinnerSize as Ct}from"./ElSpinner.vue.esm2.js";import{default as Tt,elDividerDirection as ct}from"./ElDivider.vue.esm2.js";import{default as gt,elModalColors as bt,elModalSizes as ht,elModalSizesBreakpoints as Bt}from"./ElModal.vue.esm2.js";import{default as Dt,elVerticalTabColors as Mt,elVerticalTabStatus as zt}from"./ElVerticalTab.vue.esm2.js";import{default as wt,elContainerTemplateVariants as Vt}from"./ElContainerTemplate.vue.esm2.js";import{default as Pt,elSwitchAligns as Rt,elSwitchColors as kt,elSwitchSizes as Ft}from"./forms/ElInputSwitch.vue.esm2.js";import{default as Lt,elCarouselSizes as Ut}from"./ElCarousel.vue.esm2.js";import{default as Gt,elActionButtonColors as Nt,elActionButtonSizes as jt,elActionButtonStatus as qt}from"./ElActionButton.vue.esm2.js";import{default as Kt}from"./ElListItem.vue.esm2.js";import{default as Qt}from"./table/ElMobileTable.vue.esm2.js";import{default as Yt,elInputSearchColors as Zt,elInputSearchStatus as _t}from"./forms/ElInputSearch.vue.esm2.js";import{default as el}from"./forms/ElInputRichText.vue.esm2.js";import{default as ll}from"./table/ElResponsiveTable.vue.esm2.js";import{default as al}from"./table/ElServerSideMobileTable.vue.esm2.js";import{default as sl}from"./table/ElServerSideResponsiveTable.vue.esm2.js";import{default as fl,elTooltipPositions as pl}from"./ElTooltip.vue.esm2.js";import{defineValidationRules as il}from"./forms/validation-rules.esm.js";import{useMobile as ml}from"./composable/mobileComposable.esm.js";import{default as El,elInputChipStatus as Cl}from"./ElInputChip.vue.esm2.js";import{default as Tl}from"./forms/ElInputAutocomplete.vue.esm2.js";export{i as DrugDurationMeasures,d as DrugTimeMeasures,m as DrugUnitMeasures,C as ElAccordion,Gt as ElActionButton,c as ElAvatar,b as ElBadge,A as ElButton,v as ElCalendarCard,P as ElCalendarCell,Lt as ElCarousel,ft as ElClipToAnchor,wt as ElContainerTemplate,Tt as ElDivider,H as ElDrawer,U as ElDropdown,N as ElFile,J as ElIcon,Q as ElIconButton,tt as ElInlineBanner,Tl as ElInputAutocomplete,Z as ElInputCheckbox,El as ElInputChip,le as ElInputContainer,re as ElInputDate,fe as ElInputFile,ie as ElInputMeasureUnit,me as ElInputNumber,Ee as ElInputPhone,at as ElInputRadioButton,el as ElInputRichText,Yt as ElInputSearch,Se as ElInputSelect,Pt as ElInputSwitch,ce as ElInputText,be as ElInputTextarea,Be as ElItem,Kt as ElListItem,De as ElLogo,Qt as ElMobileTable,gt as ElModal,ll as ElResponsiveTable,al as ElServerSideMobileTable,sl as ElServerSideResponsiveTable,mt as ElServerSideTable,we as ElSortingHeader,Et as ElSpinner,Pe as ElSuggestionChip,Fe as ElTab,We as ElTabGroup,it as ElTable,Ne as ElTableHead,qe as ElTabs,Ke as ElTag,Ze as ElToast,fl as ElTooltip,Dt as ElVerticalTab,s as EltyTailwindPlugin,u as EltyTailwindPluginWithoutStyle,p as EltyTailwindPreset,a as EltyVuePlugin,x as Role,il as defineValidationRules,S as elAccordionColors,Nt as elActionButtonColors,jt as elActionButtonSizes,qt as elActionButtonStatus,I as elAvatarSizes,h as elBadgeColors,D as elButtonSizes,M as elButtonVariants,w as elCalendarCardColors,V as elCalendarCardStatuses,R as elCalendarCellAvailabilities,k as elCalendarCellColors,Ut as elCarouselSizes,pt as elClipToAnchorPositions,Vt as elContainerTemplateVariants,ct as elDividerDirection,W as elDropdownMaxHeight,j as elFileVariants,X as elIconButtonSizes,K as elIconColors,lt as elInlineBannerStatuses,_ as elInputCheckboxColors,$ as elInputCheckboxModelValues,ee as elInputCheckboxSizes,Cl as elInputChipStatus,oe as elInputContainerColor,se as elInputDateTypes,pe as elInputFileTypes,Zt as elInputSearchColors,_t as elInputSearchStatus,Ie as elInputTextTypes,Me as elLogoColors,ze as elLogoVariants,bt as elModalColors,ht as elModalSizes,Bt as elModalSizesBreakpoints,rt as elRadioButtonColors,st as elRadioButtonSizes,Ve as elSortingHeaderDirections,Ct as elSpinnerSize,Re as elSuggestionChipColors,Rt as elSwitchAligns,kt as elSwitchColors,Ft as elSwitchSizes,He as elTabColors,Le as elTabStatuses,Oe as elTagAppearance,Qe as elTagColors,Xe as elTagSizes,_e as elToastStates,pl as elTooltipPositions,Mt as elVerticalTabColors,zt as elVerticalTabStatus,$e as toast,ml as useMobile};
2
2
  //# sourceMappingURL=index.esm.js.map