@volverjs/ui-vue 0.0.1-beta.5 → 0.0.1-beta.8

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.
Files changed (82) hide show
  1. package/README.md +61 -2
  2. package/dist/components/VvButton/vv-button.es.js +56 -58
  3. package/dist/components/VvButton/vv-button.umd.js +1 -1
  4. package/dist/components/VvCheckGroup/vv-check-group.es.js +221 -203
  5. package/dist/components/VvCheckGroup/vv-check-group.umd.js +2 -2
  6. package/dist/components/VvInputText/VvInputText.d.ts +14 -0
  7. package/dist/components/VvInputText/VvInputText.vue.d.ts +36 -1
  8. package/dist/components/VvInputText/VvInputTextActions.d.ts +3 -0
  9. package/dist/components/VvInputText/vv-input-text.es.js +509 -380
  10. package/dist/components/VvInputText/vv-input-text.umd.js +2 -2
  11. package/dist/components/VvNativeSelect/vv-native-select.es.js +180 -161
  12. package/dist/components/VvNativeSelect/vv-native-select.umd.js +2 -2
  13. package/dist/components/VvRadioGroup/vv-radio-group.es.js +211 -193
  14. package/dist/components/VvRadioGroup/vv-radio-group.umd.js +2 -2
  15. package/dist/components/VvSelect/vv-select.es.js +189 -171
  16. package/dist/components/VvSelect/vv-select.umd.js +2 -2
  17. package/dist/components/VvTextarea/VvTextarea.d.ts +43 -22
  18. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +140 -85
  19. package/dist/components/VvTextarea/vv-textarea.es.js +364 -288
  20. package/dist/components/VvTextarea/vv-textarea.umd.js +2 -2
  21. package/dist/composables/debouncedInput/useDebouncedInput.d.ts +2 -0
  22. package/dist/composables/icons/useComponentIcons.d.ts +6 -0
  23. package/dist/composables/textLimit/useTextLimit.d.ts +14 -0
  24. package/dist/composables/useModifiers.d.ts +3 -2
  25. package/dist/icons.es.js +3 -3
  26. package/dist/icons.umd.js +1 -1
  27. package/dist/props/index.d.ts +42 -0
  28. package/dist/stories/utils.d.ts +5 -0
  29. package/dist/ui-vue.es.js +417 -401
  30. package/dist/ui-vue.umd.js +2 -2
  31. package/package.json +3 -1
  32. package/src/assets/icons/detailed.json +1 -1
  33. package/src/assets/icons/normal.json +1 -1
  34. package/src/assets/icons/simple.json +1 -1
  35. package/src/components/VvButton/VvButton.vue +1 -2
  36. package/src/components/VvInputText/VvInputText.ts +19 -2
  37. package/src/components/VvInputText/VvInputText.vue +123 -149
  38. package/src/components/VvInputText/VvInputTextActions.ts +151 -0
  39. package/src/components/VvTextarea/VvTextarea.ts +25 -16
  40. package/src/components/VvTextarea/VvTextarea.vue +89 -93
  41. package/src/components/common/HintSlot.ts +31 -13
  42. package/src/composables/debouncedInput/useDebouncedInput.ts +19 -0
  43. package/src/composables/icons/useComponentIcons.ts +35 -0
  44. package/src/composables/textLimit/useTextLimit.ts +44 -0
  45. package/src/composables/useModifiers.ts +47 -1
  46. package/src/props/index.ts +39 -0
  47. package/src/stories/InputText/InputTextMaxLength.stories.mdx +21 -0
  48. package/src/stories/Textarea/Textarea.stories.mdx +33 -51
  49. package/src/stories/Textarea/TextareaAutoclear.stories.mdx +23 -0
  50. package/src/stories/Textarea/TextareaAutocomplete.stories.mdx +10 -2
  51. package/src/stories/Textarea/TextareaAutofocus.stories.mdx +5 -1
  52. package/src/stories/Textarea/TextareaDebounce.stories.mdx +23 -0
  53. package/src/stories/Textarea/TextareaDisabled.stories.mdx +5 -1
  54. package/src/stories/Textarea/TextareaError.stories.mdx +6 -3
  55. package/src/stories/Textarea/TextareaErrorLabel.stories.mdx +37 -0
  56. package/src/stories/Textarea/TextareaFloating.stories.mdx +7 -2
  57. package/src/stories/Textarea/TextareaHintLabel.stories.mdx +5 -1
  58. package/src/stories/Textarea/TextareaIcon.stories.mdx +5 -1
  59. package/src/stories/Textarea/TextareaIconPosition.stories.mdx +9 -1
  60. package/src/stories/Textarea/TextareaId.stories.mdx +19 -0
  61. package/src/stories/Textarea/TextareaLabel.stories.mdx +5 -1
  62. package/src/stories/Textarea/TextareaLimit.stories.mdx +50 -0
  63. package/src/stories/Textarea/TextareaLoading.stories.mdx +6 -3
  64. package/src/stories/Textarea/TextareaLoadingLabel.stories.mdx +23 -0
  65. package/src/stories/Textarea/TextareaMaxLength.stories.mdx +6 -2
  66. package/src/stories/Textarea/TextareaMinLength.stories.mdx +5 -1
  67. package/src/stories/Textarea/TextareaModifiers.stories.mdx +24 -0
  68. package/src/stories/Textarea/TextareaName.stories.mdx +23 -0
  69. package/src/stories/Textarea/TextareaPlaceholder.stories.mdx +5 -1
  70. package/src/stories/Textarea/TextareaReadonly.stories.mdx +5 -1
  71. package/src/stories/Textarea/TextareaRequired.stories.mdx +22 -0
  72. package/src/stories/Textarea/TextareaResizable.stories.mdx +22 -0
  73. package/src/stories/Textarea/TextareaRowsCols.stories.mdx +9 -1
  74. package/src/stories/Textarea/TextareaValid.stories.mdx +7 -4
  75. package/src/stories/Textarea/TextareaValidLabel.stories.mdx +35 -0
  76. package/src/stories/stories.scss +11 -0
  77. package/src/stories/utils.ts +12 -0
  78. package/src/stories/volver-ui-vue.stories.mdx +7 -1
  79. package/dist/components/VvInputText/useInputNumber.d.ts +0 -16
  80. package/dist/components/VvInputText/useInputPassword.d.ts +0 -16
  81. package/src/components/VvInputText/useInputNumber.ts +0 -40
  82. package/src/components/VvInputText/useInputPassword.ts +0 -38
@@ -1,2 +1,2 @@
1
- (function(t,B){typeof exports=="object"&&typeof module<"u"?module.exports=B(require("vue"),require("uuid"),require("@iconify/vue")):typeof define=="function"&&define.amd?define(["vue","uuid","@iconify/vue"],B):(t=typeof globalThis<"u"?globalThis:t||self,t.VvNativeSelect=B(t.vue,t.uuid,t.vue$1))})(this,function(t,B,k){"use strict";const S={equals(e,r,n){return n?this.resolveFieldData(e,n)===this.resolveFieldData(r,n):this.deepEquals(e,r)},deepEquals(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){const n=Array.isArray(e),l=Array.isArray(r);let s,f,a;if(n&&l){if(f=e.length,f!=r.length)return!1;for(s=f;s--!==0;)if(!this.deepEquals(e[s],r[s]))return!1;return!0}if(n!=l)return!1;const o=e instanceof Date,y=r instanceof Date;if(o!=y)return!1;if(o&&y)return e.getTime()==r.getTime();const p=e instanceof RegExp,i=r instanceof RegExp;if(p!=i)return!1;if(p&&i)return e.toString()==r.toString();const c=Object.keys(e);if(f=c.length,f!==Object.keys(r).length)return!1;for(s=f;s--!==0;)if(!Object.prototype.hasOwnProperty.call(r,c[s]))return!1;for(s=f;s--!==0;)if(a=c[s],!this.deepEquals(e[a],r[a]))return!1;return!0}return e!==e&&r!==r},resolveFieldData(e,r){if(e&&Object.keys(e).length&&r){if(r.indexOf(".")===-1)return e[r];{const n=r.split(".");let l=e;for(let s=0,f=n.length;s<f;++s){if(e==null)return null;l=l[n[s]]}return l}}else return null},isFunction(e){return!!(e&&e.constructor&&e.call&&e.apply)},findIndexInList(e,r){let n=-1;if(r){for(let l=0;l<r.length;l++)if(this.equals(r[l],e)){n=l;break}}return n},contains(e,r){if(e!=null&&r&&r.length){for(const n of r)if(this.equals(e,n))return!0}return!1},isEmpty(e){return e==null||e===""||Array.isArray(e)&&e.length===0||!(e instanceof Date)&&typeof e=="object"&&Object.keys(e).length===0},isNotEmpty(e){return!this.isEmpty(e)},pickBy(e,r){return Object.fromEntries(Object.entries(e).filter(([n])=>r(n)))},removeFromList(e,r){const n=this.findIndexInList(e,r);return n>-1?r.filter((l,s)=>s!==n):r},isString(e){return typeof e=="string"||e instanceof String},propsToObject(e){return Object.keys(e).reduce((r,n)=>{var l,s,f,a,o;return this.isFunction(e[n])?r[n]=e[n]():Array.isArray(e[n])?r[n]=e[n][0]():(l=e[n])!=null&&l.type&&(Array.isArray(e[n].type)?r[n]=((s=e[n])==null?void 0:s.default)||((f=e[n])==null?void 0:f.type[0]()):r[n]=((a=e[n])==null?void 0:a.default)||((o=e[n])==null?void 0:o.type())),r},{})},filterArray(e,r,n){return e.filter(l=>r.some(s=>typeof s=="string"?l[n]==s:this.equals(l[n],s[n])))},kebabCase(e){var r,n;if(e)return(n=(r=e.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g))==null?void 0:r.join("-"))==null?void 0:n.toLowerCase()}},D={...{valid:Boolean,validLabel:[String,Array]},...{error:Boolean,errorLabel:[String,Array]},...{hintLabel:{type:String,default:""}},...{loading:Boolean,loadingLabel:String},...{disabled:Boolean},...{readonly:Boolean},...{modifiers:[String,Array]},modelValue:{type:[String,Object],required:!0},label:String,placeholder:String,options:{type:Array,required:!0},useObject:Boolean,labelKey:{type:String,default:"label"},valueKey:{type:String,default:"value"},iconLeft:String,iconRight:String,modifiers:[String,Array]},_={color:String,width:{type:[String,Number]},height:{type:[String,Number]},name:{type:String,required:!0},provider:{type:String},prefix:{type:String,default:"normal"},src:String,horizontalFlip:Boolean,verticalFlip:Boolean,flip:String,mode:String,inline:Boolean,rotate:[Number,String],onLoad:Function,svg:String,modifiers:{type:[String,Array]}};function V(e,r){const n={[`${e}`]:!0};return{bemCssClasses:t.computed(()=>Object.keys(r).reduce((s,f)=>{const a=t.unref(r[f])||!1;if(!a)return s;if(f==="modifiers"){const o=Array.isArray(a)?a:[a];return{...s,...o.reduce((y,p)=>({...y,[`${e}--${S.kebabCase(p)}`]:!0}),{})}}else return{...s,[`${e}--${S.kebabCase(f)}`]:a}},n)||{})}}const b=t.defineComponent({__name:"VvIcon",props:_,setup(e){const r=e,n=t.ref(!0),{modifiers:l}=t.toRefs(r),s=t.inject("ds"),{bemCssClasses:f}=V("vv-icon",{modifiers:l}),a=t.computed(()=>r.provider||(s==null?void 0:s.provider)),o=t.computed(()=>{const i=r.name||"",c=`@${a.value}:${r.prefix}:${r.name}`;return k.iconExists(i)?i:k.iconExists(c)?c:(s==null?void 0:s.iconsCollections.find(u=>{const m=`@${a.value}:${u.prefix}:${i}`;if(k.iconExists(m))return m}))||i});function y(i){let c=null;if(typeof window>"u"){const{JSDOM:E}=require("jsdom");c=new E().window}return(c?new c.DOMParser:new window.DOMParser).parseFromString(i,"text/html").querySelector("svg")}function p(i){const c=y(i),u=(c==null?void 0:c.innerHTML.trim())||"";c&&u&&k.addIcon(`@${a.value}:${r.prefix}:${r.name}`,{body:u,height:c.viewBox.baseVal.height,width:c.viewBox.baseVal.width})}return s&&(r.src?(n.value=!1,s.fetchIcon(r.src).then(i=>{i&&(p(i),n.value=!0)}).catch(i=>{throw new Error(`During fetch icon: ${i==null?void 0:i.message}`)})):r.svg&&p(r.svg)),(i,c)=>n.value?(t.openBlock(),t.createBlock(t.unref(k.Icon),t.mergeProps({key:0,class:t.unref(f)},{...i.$props,provider:t.unref(a),icon:t.unref(o)}),null,16,["class"])):t.createCommentVNode("",!0)}});function N(e){return Array.isArray(e)?e.filter(r=>S.isString(r)).reduce((r,n)=>r.length>0?r+`
2
- `+n:n,""):e}function q(e,r){return{name:"HintSlot",setup(){const n=t.toRefs(e),{error:l,valid:s,hint:f,loading:a}=r,{hintLabel:o,modelValue:y,valid:p,validLabel:i,error:c,errorLabel:u}=n,m=S.resolveFieldData(n,"loading"),g=S.resolveFieldData(n,"loadingLabel"),E=t.computed(()=>c.value?!!(c.value&&l||(u==null?void 0:u.value)&&Array.isArray(u.value)&&u.value.length>0||(u==null?void 0:u.value)&&S.isNotEmpty(u.value)):!1),j=t.computed(()=>!!(o&&o.value||f||s||i&&i.value||E.value||(m==null?void 0:m.value)&&a||(m==null?void 0:m.value)&&(g==null?void 0:g.value))),C=t.computed(()=>Array.isArray(u==null?void 0:u.value)?N((u==null?void 0:u.value)||""):u==null?void 0:u.value),d=t.computed(()=>{const h={modelValue:y,error:c,valid:p};return c!=null&&c.value?(l==null?void 0:l(h))||(C==null?void 0:C.value)||(o==null?void 0:o.value):p!=null&&p.value?(s==null?void 0:s(h))||(i==null?void 0:i.value)||(o==null?void 0:o.value):m!=null&&m.value?(a==null?void 0:a(h))||(g==null?void 0:g.value)||(o==null?void 0:o.value):(f==null?void 0:f(h))||(o==null?void 0:o.value)||(o==null?void 0:o.value)});return{hasHint:j,hintContent:d}},render(){if(this.hasHint)return t.h("span",null,this.hintContent)}}}const $=["for"],F={class:"vv-select__wrapper"},I=["id","value","disabled"],R={key:0,value:"",disabled:"",selected:""},x=["disabled","value"];return t.defineComponent({__name:"VvNativeSelect",props:D,emits:["update:modelValue"],setup(e,{emit:r}){const n=e,l=t.useSlots(),s=q(n,l),{modifiers:f,disabled:a,readonly:o,loading:y,iconLeft:p,iconRight:i,error:c,valid:u}=t.toRefs(n),m=B.v4(),{bemCssClasses:g}=V("vv-select",{modifiers:f,loading:y,readonly:o,iconLeft:p,iconRight:i,valid:u,invalid:c,dirty:t.computed(()=>S.isNotEmpty(n.modelValue))});function E(d){return typeof d=="string"?d:d[n.valueKey]}function j(d){return typeof d=="string"?d:d[n.labelKey]}function C(d){var P;const h=d.target,A=(n.useObject?(P=n.options)==null?void 0:P.find(O=>O[n.valueKey]==h.value):null)||h.value;r("update:modelValue",A)}return(d,h)=>{var w;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(t.unref(g))},[d.label?(t.openBlock(),t.createElementBlock("label",{key:0,for:t.unref(m)},t.toDisplayString(d.label),9,$)):t.createCommentVNode("",!0),t.createElementVNode("div",F,[t.renderSlot(d.$slots,"icon-left",{},()=>[t.unref(p)?(t.openBlock(),t.createBlock(b,{key:0,name:t.unref(p)},null,8,["name"])):t.createCommentVNode("",!0)]),t.createElementVNode("select",{id:t.unref(m),value:typeof d.modelValue=="string"?d.modelValue:(w=d.modelValue)==null?void 0:w[d.valueKey],disabled:t.unref(a)||t.unref(o),onInput:C},[d.placeholder?(t.openBlock(),t.createElementBlock("option",R,t.toDisplayString(d.placeholder),1)):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(d.options,(A,P)=>{var O;return t.openBlock(),t.createElementBlock("option",{key:P,disabled:typeof A=="object"&&(O=A.disabled)!=null?O:t.unref(a),value:E(A)},t.toDisplayString(j(A)),9,x)}),128))],40,I),t.renderSlot(d.$slots,"icon-right",{},()=>[t.unref(i)?(t.openBlock(),t.createBlock(b,{key:0,name:t.unref(i)},null,8,["name"])):t.createCommentVNode("",!0)])]),t.createVNode(t.unref(s),{class:"vv-select__hint"})],2)}}})});
1
+ (function(t,A){typeof exports=="object"&&typeof module<"u"?module.exports=A(require("vue"),require("uuid"),require("@iconify/vue"),require("@vueuse/core")):typeof define=="function"&&define.amd?define(["vue","uuid","@iconify/vue","@vueuse/core"],A):(t=typeof globalThis<"u"?globalThis:t||self,t.VvNativeSelect=A(t.vue,t.uuid,t.vue$1,t.core))})(this,function(t,A,C,_){"use strict";const B={equals(e,r,n){return n?this.resolveFieldData(e,n)===this.resolveFieldData(r,n):this.deepEquals(e,r)},deepEquals(e,r){if(e===r)return!0;if(e&&r&&typeof e=="object"&&typeof r=="object"){const n=Array.isArray(e),i=Array.isArray(r);let s,u,a;if(n&&i){if(u=e.length,u!=r.length)return!1;for(s=u;s--!==0;)if(!this.deepEquals(e[s],r[s]))return!1;return!0}if(n!=i)return!1;const p=e instanceof Date,l=r instanceof Date;if(p!=l)return!1;if(p&&l)return e.getTime()==r.getTime();const y=e instanceof RegExp,o=r instanceof RegExp;if(y!=o)return!1;if(y&&o)return e.toString()==r.toString();const c=Object.keys(e);if(u=c.length,u!==Object.keys(r).length)return!1;for(s=u;s--!==0;)if(!Object.prototype.hasOwnProperty.call(r,c[s]))return!1;for(s=u;s--!==0;)if(a=c[s],!this.deepEquals(e[a],r[a]))return!1;return!0}return e!==e&&r!==r},resolveFieldData(e,r){if(e&&Object.keys(e).length&&r){if(r.indexOf(".")===-1)return e[r];{const n=r.split(".");let i=e;for(let s=0,u=n.length;s<u;++s){if(e==null)return null;i=i[n[s]]}return i}}else return null},isFunction(e){return!!(e&&e.constructor&&e.call&&e.apply)},findIndexInList(e,r){let n=-1;if(r){for(let i=0;i<r.length;i++)if(this.equals(r[i],e)){n=i;break}}return n},contains(e,r){if(e!=null&&r&&r.length){for(const n of r)if(this.equals(e,n))return!0}return!1},isEmpty(e){return e==null||e===""||Array.isArray(e)&&e.length===0||!(e instanceof Date)&&typeof e=="object"&&Object.keys(e).length===0},isNotEmpty(e){return!this.isEmpty(e)},pickBy(e,r){return Object.fromEntries(Object.entries(e).filter(([n])=>r(n)))},removeFromList(e,r){const n=this.findIndexInList(e,r);return n>-1?r.filter((i,s)=>s!==n):r},isString(e){return typeof e=="string"||e instanceof String},propsToObject(e){return Object.keys(e).reduce((r,n)=>{var i,s,u,a,p;return this.isFunction(e[n])?r[n]=e[n]():Array.isArray(e[n])?r[n]=e[n][0]():(i=e[n])!=null&&i.type&&(Array.isArray(e[n].type)?r[n]=((s=e[n])==null?void 0:s.default)||((u=e[n])==null?void 0:u.type[0]()):r[n]=((a=e[n])==null?void 0:a.default)||((p=e[n])==null?void 0:p.type())),r},{})},filterArray(e,r,n){return e.filter(i=>r.some(s=>typeof s=="string"?i[n]==s:this.equals(i[n],s[n])))},kebabCase(e){var r,n;if(e)return(n=(r=e.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g))==null?void 0:r.join("-"))==null?void 0:n.toLowerCase()}},N={...{valid:Boolean,validLabel:[String,Array]},...{error:Boolean,errorLabel:[String,Array]},...{hintLabel:{type:String,default:""}},...{loading:Boolean,loadingLabel:String},...{disabled:Boolean},...{readonly:Boolean},...{modifiers:[String,Array]},modelValue:{type:[String,Object],required:!0},label:String,placeholder:String,options:{type:Array,required:!0},useObject:Boolean,labelKey:{type:String,default:"label"},valueKey:{type:String,default:"value"},iconLeft:String,iconRight:String,modifiers:[String,Array]},q={color:String,width:{type:[String,Number]},height:{type:[String,Number]},name:{type:String,required:!0},provider:{type:String},prefix:{type:String,default:"normal"},src:String,horizontalFlip:Boolean,verticalFlip:Boolean,flip:String,mode:String,inline:Boolean,rotate:[Number,String],onLoad:Function,svg:String,modifiers:{type:[String,Array]}};function V(e,r){const n={[`${e}`]:!0};return{bemCssClasses:t.computed(()=>Object.keys(r).reduce((s,u)=>{const a=t.unref(r[u])||!1;if(!a)return s;if(u==="modifiers"){const p=Array.isArray(a)?a:[a];return{...s,...p.reduce((l,y)=>({...l,[`${e}--${B.kebabCase(y)}`]:!0}),{})}}else return{...s,[`${e}--${B.kebabCase(u)}`]:a}},n)||{})}}const D=t.defineComponent({__name:"VvIcon",props:q,setup(e){const r=e,n=t.ref(!0),{modifiers:i}=t.toRefs(r),s=t.inject("ds"),{bemCssClasses:u}=V("vv-icon",{modifiers:i}),a=t.computed(()=>r.provider||(s==null?void 0:s.provider)),p=t.computed(()=>{const o=r.name||"",c=`@${a.value}:${r.prefix}:${r.name}`;return C.iconExists(o)?o:C.iconExists(c)?c:(s==null?void 0:s.iconsCollections.find(m=>{const d=`@${a.value}:${m.prefix}:${o}`;if(C.iconExists(d))return d}))||o});function l(o){let c=null;if(typeof window>"u"){const{JSDOM:h}=require("jsdom");c=new h().window}return(c?new c.DOMParser:new window.DOMParser).parseFromString(o,"text/html").querySelector("svg")}function y(o){const c=l(o),m=(c==null?void 0:c.innerHTML.trim())||"";c&&m&&C.addIcon(`@${a.value}:${r.prefix}:${r.name}`,{body:m,height:c.viewBox.baseVal.height,width:c.viewBox.baseVal.width})}return s&&(r.src?(n.value=!1,s.fetchIcon(r.src).then(o=>{o&&(y(o),n.value=!0)}).catch(o=>{throw new Error(`During fetch icon: ${o==null?void 0:o.message}`)})):r.svg&&y(r.svg)),(o,c)=>n.value?(t.openBlock(),t.createBlock(t.unref(C.Icon),t.mergeProps({key:0,class:t.unref(u)},{...o.$props,provider:t.unref(a),icon:t.unref(p)}),null,16,["class"])):t.createCommentVNode("",!0)}});function E(e){return Array.isArray(e)?e.filter(r=>B.isString(r)).reduce((r,n)=>r.length>0?r+`
2
+ `+n:n,""):e}function $(e,r){return{name:"HintSlot",props:{params:{type:Object,default:()=>{}}},setup(n){const i=t.toRefs(e),{error:s,valid:u,hint:a,loading:p}=r,{hintLabel:l,modelValue:y,valid:o,validLabel:c,error:m,errorLabel:d}=i,g=B.resolveFieldData(i,"loading"),h=B.resolveFieldData(i,"loadingLabel"),O=t.computed(()=>m.value?!!(m.value&&s||(d==null?void 0:d.value)&&Array.isArray(d.value)&&d.value.length>0||(d==null?void 0:d.value)&&B.isNotEmpty(d.value)):!1),j=t.computed(()=>!!(l&&l.value||a||u||c&&c.value||O.value||(g==null?void 0:g.value)&&p||(g==null?void 0:g.value)&&(h==null?void 0:h.value))),f=t.computed(()=>{const S=_.toReactive({hintLabel:l,modelValue:y,valid:o,validLabel:c,error:m,errorLabel:d,loading:g,loadingLabel:h,...n.params});return m!=null&&m.value?(s==null?void 0:s(S))||E(d==null?void 0:d.value)||(l==null?void 0:l.value):o!=null&&o.value?(u==null?void 0:u(S))||E(c==null?void 0:c.value)||(l==null?void 0:l.value):g!=null&&g.value?(p==null?void 0:p(S))||E(h==null?void 0:h.value)||(l==null?void 0:l.value):(a==null?void 0:a(S))||E(l==null?void 0:l.value)||(l==null?void 0:l.value)});return{hasHint:j,hintContent:f}},render(){if(this.hasHint)return t.h("pre",{style:{"white-space":"pre"}},this.hintContent)}}}const F=["for"],I={class:"vv-select__wrapper"},R=["id","value","disabled"],v={key:0,value:"",disabled:"",selected:""},x=["disabled","value"];return t.defineComponent({__name:"VvNativeSelect",props:N,emits:["update:modelValue"],setup(e,{emit:r}){const n=e,i=t.useSlots(),s=$(n,i),{modifiers:u,disabled:a,readonly:p,loading:l,iconLeft:y,iconRight:o,error:c,valid:m}=t.toRefs(n),d=A.v4(),{bemCssClasses:g}=V("vv-select",{modifiers:u,loading:l,readonly:p,iconLeft:y,iconRight:o,valid:m,invalid:c,dirty:t.computed(()=>B.isNotEmpty(n.modelValue))});function h(f){return typeof f=="string"?f:f[n.valueKey]}function O(f){return typeof f=="string"?f:f[n.labelKey]}function j(f){var P;const S=f.target,k=(n.useObject?(P=n.options)==null?void 0:P.find(b=>b[n.valueKey]==S.value):null)||S.value;r("update:modelValue",k)}return(f,S)=>{var w;return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(t.unref(g))},[f.label?(t.openBlock(),t.createElementBlock("label",{key:0,for:t.unref(d)},t.toDisplayString(f.label),9,F)):t.createCommentVNode("",!0),t.createElementVNode("div",I,[t.renderSlot(f.$slots,"icon-left",{},()=>[t.unref(y)?(t.openBlock(),t.createBlock(D,{key:0,name:t.unref(y)},null,8,["name"])):t.createCommentVNode("",!0)]),t.createElementVNode("select",{id:t.unref(d),value:typeof f.modelValue=="string"?f.modelValue:(w=f.modelValue)==null?void 0:w[f.valueKey],disabled:t.unref(a)||t.unref(p),onInput:j},[f.placeholder?(t.openBlock(),t.createElementBlock("option",v,t.toDisplayString(f.placeholder),1)):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(f.options,(k,P)=>{var b;return t.openBlock(),t.createElementBlock("option",{key:P,disabled:typeof k=="object"&&(b=k.disabled)!=null?b:t.unref(a),value:h(k)},t.toDisplayString(O(k)),9,x)}),128))],40,R),t.renderSlot(f.$slots,"icon-right",{},()=>[t.unref(o)?(t.openBlock(),t.createBlock(D,{key:0,name:t.unref(o)},null,8,["name"])):t.createCommentVNode("",!0)])]),t.createVNode(t.unref(s),{class:"vv-select__hint"})],2)}}})});