@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 14.5 kB
JavaScript
(function(d,u){typeof exports=="object"&&typeof module<"u"?u(exports,require("../../components/common/index.umd.js"),require("../../components/dynamic-resolver/index.umd.js"),require("../../components/input-group/index.umd.js"),require("vue"),require("../../components/designer-canvas/index.umd.js"),require("../../components/property-panel/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","../../components/common/index.umd.js","../../components/dynamic-resolver/index.umd.js","../../components/input-group/index.umd.js","vue","../../components/designer-canvas/index.umd.js","../../components/property-panel/index.umd.js"],u):(d=typeof globalThis<"u"?globalThis:d||self,u(d["input-group"]={},d.common,d.dynamicResolver,d.FInputGroup,d.Vue,d.designerCanvas,d.propertyPanel))})(this,function(d,u,g,m,i,B,P){"use strict";const I={id:{Type:String,default:""},autocomplete:{Type:String,default:"off"},customClass:{Type:String,default:""},disabled:{Type:Boolean,default:!1},editable:{Type:Boolean,default:!0},enableClear:{Type:Boolean,default:!0},enableTitle:{Type:Boolean,default:!0},enableViewPassword:{Type:Boolean,default:!0},forcePlaceholder:{Type:Boolean,default:!1},groupText:{Type:String,default:""},showType:{Type:String,default:"text"},type:{Type:String,default:"text"},max:{type:[Number,String]},min:{type:[Number,String]},maxLength:{Type:Number||void 0,default:void 0},minLength:{Type:Number||void 0,default:void 0},modelValue:{Type:String||Boolean,default:""},showBorder:{Type:Boolean,default:!0},step:{Type:Number,default:1},placeholder:{Type:String,default:""},precision:{Type:Number,default:0},readonly:{Type:Boolean,default:!1},showButtonWhenDisabled:{Type:Boolean,default:!1},tabIndex:{Type:Number,default:0},textAlign:{Type:String,default:"left"},useExtendInfo:{Type:Boolean,default:!1},extendInfo:{Type:String,default:""},value:{Type:String,default:""},autoHeight:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},rows:{type:Number,default:2},showCount:{type:Boolean,default:!1},showZero:{type:Boolean,default:!1},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},updateOn:{type:String,default:"blur"},formatValidation:{type:Object,default:{}},keyboard:{type:Boolean,default:!0}},h=[{key:"none",value:"无"},{key:"cellNumber",value:"手机号"},{key:"tel",value:"座机号/传真号"},{key:"telOrCell",value:"手机号/座机号/传真号"},{key:"postCode",value:"邮编"},{key:"email",value:"电子邮箱"},{key:"idCode",value:"身份证号"},{key:"carCode",value:"车牌号"},{key:"subjectCode",value:"10位数字会计科目代码"},{key:"custom",value:"自定义"}];function A(n){switch(n){case"none":return"";case"cellNumber":return"^1[0-9]{10}$";case"tel":return"^(0[0-9]{2,3}\\-)?([2-9][0-9]{6,7})+(\\-[0-9]{1,4})?$";case"telOrCell":return"^(0[0-9]{2,3}\\-)?([2-9][0-9]{6,7})+(\\-[0-9]{1,4})?$|^1[0-9]{10}$";case"postCode":return"^[1-9]\\d{5}(?!\\d)$";case"workCode":return"^\\d{8}$";case"email":return"^[A-Za-z\\d]+([-_.][A-Za-z\\d]+)*@([A-Za-z\\d]+[-.])+[A-Za-z]{2,5}$";case"idCode":return"^[1-9]\\d{5}[1-9]\\d{3}((0[1-9])|(1[0-2]))(0[1-9]|([1|2][0-9])|3[0-1])((\\d{4})|\\d{3}X)$";case"carCode":return"^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][·\\s]?[A-HJ-NP-Z0-9]{4,5}[挂学警港澳]?|粤[Z港澳][·\\s]?[港澳][0-9A-HJ-NP-Z]{4}|[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼][A-Z][·\\s]?([DF][0-9A-HJ-NP-Z][0-9]{4}|[0-9]{5}[DF])[挂港澳]?|[使领][0-9]{3}[·\\s]?[0-9]{3}|临[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼][A-Z][·\\s]?[0-9A-Z]{4,5}|[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼][A-Z]?[·\\s]?警[0-9A-Z]{4}|[军海空][A-Z][·\\s]?[0-9]{4,5}|WJ(?:[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼]|\\d{2})[·\\s]?[0-9A-Z]{4,5})$";case"carCodeNew":return"^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF])|([DF][A-HJ-NP-Z0-9][0-9]{4}))$";case"subjectCode":return"^\\d{10}$"}return""}function F(n){var e;return"请输入正确的"+((e=h.find(t=>t.key===n))==null?void 0:e.value)}const k={convertTo:(n,e,t,o)=>{n.editor.formatValidation||(n.editor.formatValidation={type:"none"}),n.editor.formatValidation.type=t,n.editor.formatValidation.expression=A(t),n.editor.formatValidation.message=F(t)},convertFrom:(n,e,t)=>n.editor.formatValidation?e==="type"?n.editor.formatValidation[e]||"none":n.editor.formatValidation[e]:"none"},b={convertTo:(n,e,t,o)=>{n.editor.formatValidation||(n.editor.formatValidation={type:"none"}),n.editor.formatValidation[e]=t},convertFrom:(n,e,t)=>n.editor.formatValidation?n.editor.formatValidation[e]:n.editor[e]},N=["lookup","more-vertical","add","edit","x","search","image-edit","copy","source-code","top_developmenttool","reorder","reload"];function M(n,e,t){const o=`<i class="f-icon f-icon-${e}"></i>`;t.value.insertText?t.value.insertText(o):t.value.setValue(o)}const T=n=>i.createVNode(i.Fragment,null,[i.createVNode("h5",null,[i.createTextVNode("按钮图标示例")]),i.createVNode("ul",{class:"d-flex",style:"width: 200px; flex-wrap: wrap;align-items: center;height: 100px;"},[N.map(e=>i.createVNode("li",{key:e,class:"btn",title:"双击添加到内容区域",onDblclick:t=>M(t,e,n)},[i.createVNode("i",{class:`f-icon f-icon-${e}`},null)]))])]);class S extends P.InputBaseProperty{constructor(e,t){super(e,t)}getPropertyConfig(e,t){return super.getPropertyConfig(e,t),this.propertyConfig.categories.formatValidation=this.getFormatValidation(e),this.propertyConfig}getEditorProperties(e){var o,s;let t;if(((o=e==null?void 0:e.binding)==null?void 0:o.type)==="Form"){const r=this.schemaService.getFieldByIDAndVMID(e.binding.field,this.viewModelId);(s=r==null?void 0:r.schemaField)!=null&&s.type&&(t=r.schemaField.type.length)}return this.getComponentConfig(e,{},{maxLength:{description:"文本字数最大长度",title:"最大长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1,max:t,needValid:!0}},showType:{description:"指定是文本框还是密码框",title:"展示类型",type:"enum",editor:{type:"combo-list",data:[{id:"text",name:"文本框"},{id:"password",name:"密码框"}]},refreshPanelAfterChanged:!0,defaultValue:"text"},enableViewPassword:{description:"",title:"能否查看密码",visible:e.editor.showType==="password",type:"boolean"},groupText:{description:"按钮文本",title:"按钮文本",type:"string",refreshPanelAfterChanged:!0,visible:e.editor.showType==="text"||!e.editor.showType,editor:{type:"code-editor",language:"html",leftTemplate:T}}})}getGridFieldEdtiorProperties(e){var o,s;let t;if(((o=e==null?void 0:e.binding)==null?void 0:o.type)==="Form"){const r=this.schemaService.getFieldByIDAndVMID(e.binding.field,this.viewModelId);(s=r==null?void 0:r.schemaField)!=null&&s.type&&(t=r.schemaField.type.length)}return this.getComponentConfig(e,{},{maxLength:{description:"文本字数最大长度",title:"最大长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1,max:t}},showType:{description:"指定是文本框还是密码框",title:"展示类型",type:"enum",editor:{type:"combo-list",data:[{id:"text",name:"文本框"},{id:"password",name:"密码框"}]},refreshPanelAfterChanged:!0,defaultValue:"text"},enableViewPassword:{description:"",title:"能否查看密码",visible:e.editor.showType==="password",type:"boolean"},groupText:{description:"按钮文本",title:"按钮文本",type:"string",refreshPanelAfterChanged:!0,visible:e.editor.showType==="text"||!e.editor.showType,editor:{type:"code-editor",language:"html",leftTemplate:T}}})}getFormatValidation(e){var o,s,r,p;const t={title:"输入格式校验",description:"输入校验",hide:!((o=e.binding)!=null&&o.field)&&!!this.formRule,properties:{type:{title:"格式类型",type:"enum",description:"格式类型",defaultValue:"",editor:{type:"combo-list",textField:"value",valueField:"key",idField:"key",editable:!1,data:h},refreshPanelAfterChanged:!0,$converter:k,parentPropertyID:"formatValidation"}}};return(s=e.editor.formatValidation)!=null&&s.type&&((r=e.editor.formatValidation)==null?void 0:r.type)!=="none"&&(t.properties.message={title:"输入错误提示",type:"string",description:"输入错误提示",$converter:b,parentPropertyID:"formatValidation"}),((p=e.editor.formatValidation)==null?void 0:p.type)==="custom"&&(t.properties.expression={title:"匹配正则",type:"string",description:"匹配正则",$converter:b,parentPropertyID:"formatValidation"}),t}getEventPropertyConfig(e){const t=this;let o=[...this.getInputCommonEvents(e)];(!e.editor.showType||e.editor.showType==="text")&&e.editor.groupText&&e.editor.groupText.trim().length>0&&(o=[...this.getInputCommonEvents(e),{label:"onClickHandle",name:"按钮点击事件"}]);const s=t.eventsEditorUtils.formProperties(e,t.viewModelId,o);return{title:"事件",hideTitle:!0,properties:t.createBaseEventProperty(s),refreshPanelAfterChanged:!0,tabId:"commands",tabName:"交互",setPropertyRelates(p,l){const a=p.propertyValue;delete l[t.viewModelId],a&&(t.eventsEditorUtils.saveRelatedParameters(l,t.viewModelId,a.events,a),t.updateLinkedLabel(a,l));const f=t.designViewModelUtils.getDgViewModel(t.viewModelId);f&&t.designViewModelField&&f.changeField(t.designViewModelField.id,{valueChanging:l.fieldValueChanging,valueChanged:l.fieldValueChanged})}}}}function j(n,e){const t=n.schema;function o(s,r){return new S(s,e).getPropertyConfig(t,r)}return{getPropsConfig:o}}const c=i.defineComponent({name:"FInputGroupDesign",props:I,emits:["updateExtendInfo","clear","valueChange","clickHandle","blurHandle","focusHandle","enterHandle","iconMouseEnter","iconMouseLeave","keyupHandle","keydownHandle","inputClick"],setup(n,e){const t=i.ref(n.modelValue),o=i.ref(n.modelValue),s=u.useTextBoxDesign(n,e,t,o),{inputGroupClass:r,inputType:p,inputGroupStyle:l}=s,a=i.ref(),f=i.inject("designer-host-service"),V=i.inject("design-item-context"),Z=j(V,f),w=B.useDesignerComponent(a,V,Z),H=i.computed(()=>n.showType==="password"?"password":"");return i.onMounted(()=>{a.value.componentInstance=w}),e.expose(w.value),()=>i.createVNode("div",{id:"inputGroup",ref:a,class:r.value,style:l.value},[i.createVNode("input",{class:"form-control",type:n.showType,placeholder:n.placeholder,value:H.value,readonly:!0},null),n.showType==="password"&&n.enableViewPassword&&i.createVNode("span",{class:"input-group-append"},[i.createVNode("span",{class:"input-group-text"},[i.createVNode("span",{class:"f-icon f-icon-eye"},null)])]),n.showType==="text"&&n.groupText&&i.createVNode("span",{class:"input-group-append"},[i.createVNode("span",{class:"input-group-text",innerHTML:n.groupText},null)])])}}),v=new Map([["appearance",g.resolveAppearance]]);function x(n,e,t){return e}const C={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/input-group.schema.json",title:"input-group",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a Input Group",type:"string"},type:{description:"The type string of Input Group component",type:"string",default:"input-group"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},formatValidation:{description:"",type:"object",default:{}},editable:{description:"",type:"boolean",default:!0},enableLinkLabel:{description:"",type:"boolean",default:!1},label:{description:"",type:"string",default:""},labelWidth:{description:"",type:"number"},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},disabled:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabIndex:{description:"",type:"number",default:-1},maxLength:{description:"",type:"number",default:""},textAlign:{description:"",type:"enum",enum:["left","middle","right"],default:"left"},visible:{description:"",type:"boolean",default:!0},onBlur:{description:"",type:"string",default:""},onClickLinkLabel:{description:"",type:"string",default:""},addonDisabled:{description:"",type:"boolean",default:!1},addonContent:{description:"",type:"string",default:""},autoHeight:{description:"",type:"boolean",default:!1},enableAddon:{description:"",type:"boolean",default:!1},addonType:{description:"",type:"string",enum:["button","static"],default:"button"},enableClear:{description:"",type:"boolean",default:!0},enableViewPassword:{description:"",type:"boolean",default:!0},inputType:{description:"",type:"string",enum:["input","password","text"],default:"input"},showType:{description:"",type:"string",enum:["password","text"],default:"text"},maxHeight:{description:"",type:"number",default:500},popUp:{description:"",type:"object",properties:{footerButtons:{type:"array",default:[]},height:{type:"number",default:600},dataMapping:{type:"object"},contents:{type:"array",default:[]},showMaxButton:{type:"boolean",default:!0},showCloseButton:{type:"boolean",default:!0},showFooter:{type:"boolean",default:!0},title:{type:"string",default:""},width:{type:"number",default:800}}},groupText:{description:"",type:"string",default:""},onClickHandle:{description:"",type:"string",default:""},showButtonWhenDisabled:{description:"",type:"boolean",default:!1},onClear:{description:"",type:"string",default:""},updateOn:{description:"",type:"string",default:"blur"},onChange:{description:"值变化事件",type:"string",default:""},onClick:{description:"点击事件",type:"string",default:""},onFocus:{description:"获取焦点事件",type:"string",default:""},onInput:{description:"输入事件",type:"string",default:""},onKeydown:{description:"按键按下事件",type:"string",default:""},onKeyup:{description:"按键松开事件",type:"string",default:""}},required:["type"],ignore:["id","appearance","binding","visible"],events:{onClickHandle:"按钮点击事件"}},$=g.createPropsResolver(m.inputGroupProps,C,v,x),y=g.getPropsResolverGenerator(m.inputGroupProps,C,v,x);c.register=(n,e,t,o,s)=>{n["input-group"]=m,e["input-group"]=y(s)},c.registerDesigner=(n,e,t,o)=>{n["input-group"]=c,e["input-group"]=y(o)};const G=u.withInstall(c);d.FInputGroupDesgin=c,d.default=G,d.propsResolver=$,d.propsResolverGenerator=y,Object.defineProperties(d,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});