@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 6.66 kB
JavaScript
(function(t,u){typeof exports=="object"&&typeof module<"u"?u(exports,require("../../components/common/index.umd.js"),require("../../components/number-spinner/index.umd.js"),require("vue"),require("../../components/dynamic-resolver/index.umd.js"),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/number-spinner/index.umd.js","vue","../../components/dynamic-resolver/index.umd.js","../../components/designer-canvas/index.umd.js","../../components/property-panel/index.umd.js"],u):(t=typeof globalThis<"u"?globalThis:t||self,u(t["number-spinner"]={},t.common,t.FNumberSpinner,t.Vue,t.dynamicResolver,t.designerCanvas,t.propertyPanel))})(this,function(t,u,g,n,h,P,S){"use strict";const V=new Map([["appearance",h.resolveAppearance]]),w={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/number-spinner.schema.json",title:"number-spinner",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a number spinner",type:"string"},type:{description:"The type string of number spinner component",type:"string",default:"number-spinner"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},editable:{description:"",type:"boolean",default:!0},placeholder:{description:"",type:"string",default:"请输入数字"},readonly:{description:"",type:"boolean",default:!1},disabled:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},precision:{description:"",type:"number",default:0},min:{description:"",type:"number"},step:{description:"",type:"number",default:1},tabindex:{description:"",type:"number",default:-1},textAlign:{description:"",type:"string",enum:["left","middle","right"],default:"left"},nullable:{description:"",type:"boolean",default:!1},max:{description:"",type:"number"},onBlur:{description:"",type:"string",default:""},onClickLinkLabel:{description:"",type:"string",default:""},showZero:{description:"",type:"boolean",default:!0},useThousands:{description:"",type:"boolean",default:!0},keyboard:{description:"",type:"boolean",default:!0},bigNumber:{description:"",type:"boolean",default:!1},updateOn:{description:"",type:"string",default:"blur"},showButton:{description:"",type:"boolean",default:!0},needValid:{description:"",type:"boolean",default:!1}},required:["type"],ignore:["id","appearance","binding","visible"]};function C(o,e,i){return e}const b=Object.assign({},g.numberSpinnerProps,{readonly:{}}),f=h.createPropsResolver(b,w,V,C);function F(){const o=n.computed(()=>({"input-group-append":!0,"btn-group":!0,"btn-group-number":!0})),e=n.computed(()=>({btn:!0,"btn-secondary":!0,"btn-number-flag":!0})),i=n.computed(()=>({cursor:"pointer","margin-left":0})),s=n.computed(()=>({cursor:"pointer","margin-left":0}));return()=>n.createVNode("div",{class:o.value},[n.createVNode("button",{class:e.value,style:i.value},[n.createVNode("span",{class:"f-icon f-icon-arrow-chevron-up number-arrow-chevron"},null)]),n.createVNode("button",{class:e.value,style:s.value},[n.createVNode("span",{class:"f-icon f-icon-arrow-chevron-down number-arrow-chevron"},null)])])}class R extends S.InputBaseProperty{constructor(e,i){super(e,i)}getEditorProperties(e){var d,p,m,a,y,j,v,x;let i,s=!1;if(((d=e==null?void 0:e.binding)==null?void 0:d.type)==="Form"){const c=this.schemaService.getFieldByIDAndVMID(e.binding.field,this.viewModelId);(p=c==null?void 0:c.schemaField)!=null&&p.type&&(i=c.schemaField.type.precision,s=c.schemaField.type.name==="BigNumber")}return this.getComponentConfig(e,{type:"number-spinner"},{precision:{description:"",title:"精度",type:"number",editor:{readonly:i===0,min:0,max:i,needValid:!0},refreshPanelAfterChanged:!0},step:{description:"",title:"步长",type:"number",editor:{min:0,needValid:!0,precision:(m=e==null?void 0:e.editor)==null?void 0:m.precision}},min:{description:"",title:"最小值",type:"number",editor:{nullable:!0,max:(a=e==null?void 0:e.editor)==null?void 0:a.max,precision:(y=e==null?void 0:e.editor)==null?void 0:y.precision,bigNumber:s,needValid:!0},refreshPanelAfterChanged:!0,visible:this.designViewModelField!=null||this.formRule!=null},max:{description:"",title:"最大值",type:"number",editor:{nullable:!0,min:((j=e==null?void 0:e.editor)==null?void 0:j.min)===void 0||(v=e==null?void 0:e.editor)==null?void 0:v.min,precision:(x=e==null?void 0:e.editor)==null?void 0:x.precision,bigNumber:s,needValid:!0},refreshPanelAfterChanged:!0,visible:this.designViewModelField!=null||this.formRule!=null},textAlign:{description:"",title:"对齐方式",type:"enum",editor:{editable:!1,data:[{id:"left",name:"左对齐"},{id:"center",name:"居中"},{id:"right",name:"右对齐"}]}},bigNumber:{description:"",title:"支持大数字",type:"boolean",readonly:!0,visible:s},showZero:{description:"",title:"显示0值",type:"boolean"},nullable:{description:"允许设置为 null",title:"允许为空",type:"boolean"},useThousands:{description:"",title:"启用千分位",type:"boolean"},showButton:{description:"",title:"显示加减按钮",type:"boolean"}},function(c,N,G){if(c)switch(c.propertyID){case"precision":{N.formatter&&(N.formatter.precision=c.propertyValue);break}}})}changeBindingField(e,i,s){var d;super.changeBindingField(e,i);const r=s;e.editor&&((d=r==null?void 0:r.type)==null?void 0:d.name)===u.FormSchemaEntityFieldTypeName.Number&&(e.editor.precision=r.type.precision)}}function M(o,e){const i=o.schema;function s(r,d){return new R(r,e).getPropertyConfig(i,d)}return{getPropsConfig:s}}const l=n.defineComponent({name:"FNumberSpinnerDesign",props:b,emits:["update:modelValue","valueChange","change","blur","focus","click","input"],setup(o,e){const i=F(),s=n.ref(),r=n.inject("designer-host-service"),d=n.inject("design-item-context"),p=M(d,r),m=P.useDesignerComponent(s,d,p);n.onMounted(()=>{s.value.componentInstance=m}),e.expose(m.value);const a=n.ref();return()=>n.createVNode("div",{ref:s,class:"input-group flex-row f-cmp-number-spinner"},[n.createVNode("input",{ref:a,class:"form-control",readonly:!0,placeholder:o.placeholder},null),i()])}});l.register=(o,e,i,s)=>{o["number-spinner"]=g,e["number-spinner"]=f},l.registerDesigner=(o,e,i)=>{o["number-spinner"]=l,e["number-spinner"]=f};const q=u.withInstall(l);t.FNumberSpinnerDesign=l,t.default=q,t.numberSpinnerDesignProps=b,t.propsResolver=f,Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});