import{q as e,o as t,c as r,w as i,t as n,R as a,v as s,A as l,B as o,x as u,a2 as f,G as d,H as p,i as h}from"./index-q4e9g9yE.js";import{_ as c}from"./u-icon.-mUgdvoC.js";import{r as y}from"./uni-app.es.xrkMgk95.js";import{E as g}from"./emitter.DrjJCwnj.js";import{_ as m}from"./_plugin-vue_export-helper.BCo6x5W8.js";function b(){return b=Object.assign||function(e){for(var t=1;t=a)return e;switch(e){case"%s":return String(t[i++]);case"%d":return Number(t[i++]);case"%j":try{return JSON.stringify(t[i++])}catch(r){return"[Circular]"}break;default:return e}})),l=t[i];i()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,url:new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i"),hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},E={integer:function(e){return E.number(e)&&parseInt(e,10)===e},float:function(e){return E.number(e)&&!E.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch(t){return!1}},date:function(e){return"function"==typeof e.getTime&&"function"==typeof e.getMonth&&"function"==typeof e.getYear},number:function(e){return!isNaN(e)&&"number"==typeof+e},object:function(e){return"object"==typeof e&&!E.array(e)},method:function(e){return"function"==typeof e},email:function(e){return"string"==typeof e&&!!e.match(P.email)&&e.length<255},url:function(e){return"string"==typeof e&&!!e.match(P.url)},hex:function(e){return"string"==typeof e&&!!e.match(P.hex)}};var I={required:F,whitespace:function(e,t,r,i,n){(/^\s+$/.test(t)||""===t)&&i.push(x(n.messages.whitespace,e.fullField))},type:function(e,t,r,i,n){if(e.required&&void 0===t)F(e,t,r,i,n);else{var a=e.type;["integer","float","array","regexp","object","method","email","number","date","url","hex"].indexOf(a)>-1?E[a](t)||i.push(x(n.messages.types[a],e.fullField,e.type)):a&&typeof t!==e.type&&i.push(x(n.messages.types[a],e.fullField,e.type))}},range:function(e,t,r,i,n){var a="number"==typeof e.len,s="number"==typeof e.min,l="number"==typeof e.max,o=t,u=null,f="number"==typeof t,d="string"==typeof t,p=Array.isArray(t);if(f?u="number":d?u="string":p&&(u="array"),!u)return!1;p&&(o=t.length),d&&(o=t.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"_").length),a?o!==e.len&&i.push(x(n.messages[u].len,e.fullField,e.len)):s&&!l&&oe.max?i.push(x(n.messages[u].max,e.fullField,e.max)):s&&l&&(oe.max)&&i.push(x(n.messages[u].range,e.fullField,e.min,e.max))},enum:function(e,t,r,i,n){e.enum=Array.isArray(e.enum)?e.enum:[],-1===e.enum.indexOf(t)&&i.push(x(n.messages.enum,e.fullField,e.enum.join(", ")))},pattern:function(e,t,r,i,n){if(e.pattern)if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||i.push(x(n.messages.pattern.mismatch,e.fullField,t,e.pattern));else if("string"==typeof e.pattern){new RegExp(e.pattern).test(t)||i.push(x(n.messages.pattern.mismatch,e.fullField,t,e.pattern))}}};function k(e,t,r,i,n){var a=e.type,s=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(_(t,a)&&!e.required)return r();I.required(e,t,i,s,n,a),_(t,a)||I.type(e,t,i,s,n)}r(s)}var D={string:function(e,t,r,i,n){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(_(t,"string")&&!e.required)return r();I.required(e,t,i,a,n,"string"),_(t,"string")||(I.type(e,t,i,a,n),I.range(e,t,i,a,n),I.pattern(e,t,i,a,n),!0===e.whitespace&&I.whitespace(e,t,i,a,n))}r(a)},method:function(e,t,r,i,n){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(_(t)&&!e.required)return r();I.required(e,t,i,a,n),void 0!==t&&I.type(e,t,i,a,n)}r(a)},number:function(e,t,r,i,n){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(""===t&&(t=void 0),_(t)&&!e.required)return r();I.required(e,t,i,a,n),void 0!==t&&(I.type(e,t,i,a,n),I.range(e,t,i,a,n))}r(a)},boolean:function(e,t,r,i,n){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(_(t)&&!e.required)return r();I.required(e,t,i,a,n),void 0!==t&&I.type(e,t,i,a,n)}r(a)},regexp:function(e,t,r,i,n){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(_(t)&&!e.required)return r();I.required(e,t,i,a,n),_(t)||I.type(e,t,i,a,n)}r(a)},integer:function(e,t,r,i,n){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(_(t)&&!e.required)return r();I.required(e,t,i,a,n),void 0!==t&&(I.type(e,t,i,a,n),I.range(e,t,i,a,n))}r(a)},float:function(e,t,r,i,n){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(_(t)&&!e.required)return r();I.required(e,t,i,a,n),void 0!==t&&(I.type(e,t,i,a,n),I.range(e,t,i,a,n))}r(a)},array:function(e,t,r,i,n){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(_(t,"array")&&!e.required)return r();I.required(e,t,i,a,n,"array"),_(t,"array")||(I.type(e,t,i,a,n),I.range(e,t,i,a,n))}r(a)},object:function(e,t,r,i,n){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(_(t)&&!e.required)return r();I.required(e,t,i,a,n),void 0!==t&&I.type(e,t,i,a,n)}r(a)},enum:function(e,t,r,i,n){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(_(t)&&!e.required)return r();I.required(e,t,i,a,n),void 0!==t&&I.enum(e,t,i,a,n)}r(a)},pattern:function(e,t,r,i,n){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(_(t,"string")&&!e.required)return r();I.required(e,t,i,a,n),_(t,"string")||I.pattern(e,t,i,a,n)}r(a)},date:function(e,t,r,i,n){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(_(t)&&!e.required)return r();var s;if(I.required(e,t,i,a,n),!_(t))s="number"==typeof t?new Date(t):t,I.type(e,s,i,a,n),s&&I.range(e,s.getTime(),i,a,n)}r(a)},url:k,hex:k,email:k,required:function(e,t,r,i,n){var a=[],s=Array.isArray(t)?"array":typeof t;I.required(e,t,i,a,n,s),r(a)},any:function(e,t,r,i,n){var a=[];if(e.required||!e.required&&i.hasOwnProperty(e.field)){if(_(t)&&!e.required)return r();I.required(e,t,i,a,n)}r(a)}};function B(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var L=B();function $(e){this.rules=null,this._messages=L,this.define(e)}$.prototype={messages:function(e){return e&&(this._messages=j(B(),e)),this._messages},define:function(e){if(!e)throw new Error("Cannot configure a schema with no rules");if("object"!=typeof e||Array.isArray(e))throw new Error("Rules must be an object");var t,r;for(t in this.rules={},e)e.hasOwnProperty(t)&&(r=e[t],this.rules[t]=Array.isArray(r)?r:[r])},validate:function(e,t,r){var i=this;void 0===t&&(t={}),void 0===r&&(r=function(){});var n,a,s=e,l=t,o=r;if("function"==typeof l&&(o=l,l={}),!this.rules||0===Object.keys(this.rules).length)return o&&o(),Promise.resolve();if(l.messages){var u=this.messages();u===L&&(u=B()),j(u,l.messages),l.messages=u}else l.messages=this.messages();var f={};(l.keys||Object.keys(this.rules)).forEach((function(t){n=i.rules[t],a=s[t],n.forEach((function(r){var n=r;"function"==typeof n.transform&&(s===e&&(s=b({},s)),a=s[t]=n.transform(a)),(n="function"==typeof n?{validator:n}:b({},n)).validator=i.getValidationMethod(n),n.field=t,n.fullField=n.fullField||t,n.type=i.getType(n),n.validator&&(f[t]=f[t]||[],f[t].push({rule:n,value:a,source:s,field:t}))}))}));var d={};return A(f,l,(function(e,t){var r,i=e.rule,n=!("object"!==i.type&&"array"!==i.type||"object"!=typeof i.fields&&"object"!=typeof i.defaultField);function a(e,t){return b({},t,{fullField:i.fullField+"."+e})}function s(r){void 0===r&&(r=[]);var s=r;if(Array.isArray(s)||(s=[s]),!l.suppressWarning&&s.length&&$.warning("async-validator:",s),s.length&&i.message&&(s=[].concat(i.message)),s=s.map(S(i)),l.first&&s.length)return d[i.field]=1,t(s);if(n){if(i.required&&!e.value)return s=i.message?[].concat(i.message).map(S(i)):l.error?[l.error(i,x(l.messages.required,i.field))]:[],t(s);var o={};if(i.defaultField)for(var u in e.value)e.value.hasOwnProperty(u)&&(o[u]=i.defaultField);for(var f in o=b({},o,{},e.rule.fields))if(o.hasOwnProperty(f)){var p=Array.isArray(o[f])?o[f]:[o[f]];o[f]=p.map(a.bind(null,f))}var h=new $(o);h.messages(l.messages),e.rule.options&&(e.rule.options.messages=l.messages,e.rule.options.error=l.error),h.validate(e.value,e.rule.options||l,(function(e){var r=[];s&&s.length&&r.push.apply(r,s),e&&e.length&&r.push.apply(r,e),t(r.length?r:null)}))}else t(s)}n=n&&(i.required||!i.required&&e.value),i.field=e.field,i.asyncValidator?r=i.asyncValidator(i,e.value,s,e.source,l):i.validator&&(!0===(r=i.validator(i,e.value,s,e.source,l))?s():!1===r?s(i.message||i.field+" fails"):r instanceof Array?s(r):r instanceof Error&&s(r.message)),r&&r.then&&r.then((function(){return s()}),(function(e){return s(e)}))}),(function(e){!function(e){var t,r,i,n=[],a={};for(t=0;tnull}},props:{label:{type:String,default:""},prop:{type:String,default:""},borderBottom:{type:[String,Boolean],default:""},labelPosition:{type:String,default:""},labelWidth:{type:[String,Number],default:""},labelStyle:{type:Object,default:()=>({})},labelAlign:{type:String,default:""},rightIcon:{type:String,default:""},leftIcon:{type:String,default:""},leftIconStyle:{type:Object,default:()=>({})},rightIconStyle:{type:Object,default:()=>({})},required:{type:Boolean,default:!1},inputAlign:{type:String,default:""}},data:()=>({initialValue:"",validateState:"",validateMessage:"",errorType:["message"],fieldValue:"",parentData:{borderBottom:!0,labelWidth:90,labelPosition:"left",labelStyle:{},labelAlign:"left",inputAlign:"left"}}),watch:{validateState(e){this.broadcastInputError()},"uForm.errorType"(e){this.errorType=e,this.broadcastInputError()}},computed:{uLabelWidth(){return"left"==this.elLabelPosition?"true"===this.label||""===this.label?"auto":this.$u.addUnit(this.elLabelWidth):"100%"},showError(){return e=>!(this.errorType.indexOf("none")>=0)&&this.errorType.indexOf(e)>=0},elLabelWidth(){return 0!=this.labelWidth||""!=this.labelWidth?this.labelWidth:this.parentData.labelWidth?this.parentData.labelWidth:90},elLabelStyle(){return Object.keys(this.labelStyle).length?this.labelStyle:this.parentData.labelStyle?this.parentData.labelStyle:{}},elLabelPosition(){return this.labelPosition?this.labelPosition:this.parentData.labelPosition?this.parentData.labelPosition:"left"},elLabelAlign(){return this.labelAlign?this.labelAlign:this.parentData.labelAlign?this.parentData.labelAlign:"left"},elBorderBottom(){return""!==this.borderBottom?this.borderBottom:!this.parentData.borderBottom||this.parentData.borderBottom},elInputAlign(){return this.inputAlign?this.inputAlign:this.parentData.inputAlign?this.parentData.inputAlign:"left"}},methods:{clickIcon(){this.$emit("clickIcon")},broadcastInputError(){this.broadcast("u-input","onFormItemError","error"===this.validateState&&this.showError("border"))},setRules(){},getRules(){let e=this.parent.rules;return e=e?e[this.prop]:[],[].concat(e||[])},onFieldBlur(){this.validation("blur")},onFieldChange(){this.validation("change")},getFilteredRule(e=""){let t=this.getRules();return e?t.filter((t=>t.trigger&&-1!==t.trigger.indexOf(e))):t},getData(e,t,r){let i;if(e){i=JSON.parse(JSON.stringify(e));let r="",n=".",a="[",s="]";t=t.replace(/\s+/g,r)+n;let l=r;for(let e=0;e{})){this.fieldValue=this.getData(this.parent.model,this.prop);let r=this.getFilteredRule(e);if(!r||0===r.length)return t("");this.validateState="validating",new $({[this.prop]:r}).validate({[this.prop]:this.fieldValue},{firstFields:!0},((e,r)=>{this.validateState=e?"error":"success",this.validateMessage=e?e[0].message:"";let i=e?e[0].field:"";t(this.validateMessage,{state:this.validateState,key:i,msg:this.validateMessage})}))},resetField(){this.setData(this.parent.model,this.prop,this.initialValue),this.validateState="success"}},mounted(){this.parent=this.$u.$parent.call(this,"u-form"),this.parent&&(Object.keys(this.parentData).map((e=>{this.parentData[e]=this.parent[e]})),this.prop&&(this.parent.fields.push(this),this.errorType=this.parent.errorType,this.fieldValue=this.parent.model[this.prop],this.initialValue=this.fieldValue,this.$nextTick((()=>{this.setRules()}))))},beforeUnmount(){this.parent&&this.prop&&this.parent.fields.map(((e,t)=>{e===this&&this.parent.fields.splice(t,1)}))}},[["render",function(g,m,b,v,q,w){const x=p,_=y(e("u-icon"),c),O=h;return t(),r(O,{class:d(["u-form-item",{"u-border-bottom":w.elBorderBottom,"u-form-item__border-bottom--error":"error"===q.validateState&&w.showError("border-bottom")}])},{default:i((()=>[n(O,{class:"u-form-item__body",style:a({flexDirection:"left"==w.elLabelPosition?"row":"column"})},{default:i((()=>[n(O,{class:"u-form-item--left",style:a({width:w.uLabelWidth,flex:`0 0 ${w.uLabelWidth}`,marginBottom:"left"==w.elLabelPosition?0:"10rpx"})},{default:i((()=>[b.required||b.leftIcon||b.label?(t(),r(O,{key:0,class:"u-form-item--left__content"},{default:i((()=>[n(O,{class:"u-form-item--left__content__label",style:a([w.elLabelStyle,{"justify-content":"left"==w.elLabelAlign?"flex-start":"center"==w.elLabelAlign?"center":"flex-end"}]),onClick:w.clickIcon},{default:i((()=>[b.required?(t(),r(x,{key:0,style:{color:"red"}},{default:i((()=>[s("*")])),_:1})):l("",!0),n(O,null,{default:i((()=>[o("span",null,u(b.label),1),b.leftIcon?(t(),r(O,{key:0,class:"u-form-item--left__content__icon"},{default:i((()=>[n(_,{name:b.leftIcon,"custom-style":b.leftIconStyle},null,8,["name","custom-style"])])),_:1})):l("",!0)])),_:1})])),_:1},8,["style","onClick"])])),_:1})):l("",!0)])),_:1},8,["style"]),n(O,{class:"u-form-item--right u-flex"},{default:i((()=>[n(O,{class:"u-form-item--right__content"},{default:i((()=>[n(O,{class:"u-form-item--right__content__slot",style:a("left"==w.elLabelPosition&&"right"==w.elInputAlign?"text-align:right;display: inline-block;line-height:initial;":"")},{default:i((()=>[f(g.$slots,"default",{},void 0,!0)])),_:3},8,["style"]),g.$slots.right||b.rightIcon?(t(),r(O,{key:0,class:"u-form-item--right__content__icon u-flex"},{default:i((()=>[b.rightIcon?(t(),r(_,{key:0,"custom-style":b.rightIconStyle,name:b.rightIcon},null,8,["custom-style","name"])):l("",!0),f(g.$slots,"right",{},void 0,!0)])),_:3})):l("",!0)])),_:3})])),_:3})])),_:3},8,["style"]),"error"===q.validateState&&w.showError("message")?(t(),r(O,{key:0,class:"u-form-item__message",style:a({paddingLeft:"left"==w.elLabelPosition?g.$u.addUnit(w.elLabelWidth):"0",textAlign:"right"==w.elInputAlign?"right":"left"})},{default:i((()=>[s(u(q.validateMessage),1)])),_:1},8,["style"])):l("",!0)])),_:3},8,["class"])}],["__scopeId","data-v-914231d1"]]);const T=m({name:"u-form",props:{model:{type:Object,default:()=>({})},errorType:{type:Array,default:()=>["message","toast"]},borderBottom:{type:Boolean,default:!0},labelPosition:{type:String,default:"left"},labelWidth:{type:[String,Number],default:90},labelAlign:{type:String,default:"left"},labelStyle:{type:Object,default:()=>({})},inputAlign:{type:String,default:"left"},clearable:{type:Boolean,default:!0}},provide(){return{uForm:this}},data:()=>({rules:{}}),created(){this.fields=[]},methods:{setRules(e){this.rules=e},resetFields(){this.fields.map((e=>{e.resetField()}))},validate(e){return new Promise((t=>{let r=!0,i=0,n=[],a=[];if(!this.fields.length||"function"!=typeof e)return e(r);this.fields.map((s=>{s.validation("",((s,l)=>{s&&(r=!1,n.push(s),a.push(l)),++i===this.fields.length&&(t(r,a[0]),-1===this.errorType.indexOf("none")&&this.errorType.indexOf("toast")>=0&&n.length&&this.$u.toast(n[0]),"function"==typeof e&&e(r,a[0]))}))}))}))}}},[["render",function(e,n,a,s,l,o){const u=h;return t(),r(u,{class:"u-form"},{default:i((()=>[f(e.$slots,"default",{},void 0,!0)])),_:3})}],["__scopeId","data-v-d110f6f3"]]);export{R as _,T as a};