@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 7.54 kB
JavaScript
(function(r,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):(r=typeof globalThis<"u"?globalThis:r||self,u(r["number-spinner"]={},r.common,r.FNumberSpinner,r.Vue,r.dynamicResolver,r.designerCanvas,r.propertyPanel))})(this,function(r,u,h,n,y,N,V){"use strict";const w=new Map([["appearance",y.resolveAppearance]]),P={$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},expandable:{description:"",type:"boolean",default:!1},expandMode:{description:"",type:"string",default:"text"},expandContent:{description:"",type:"string",default:""},expandDisabled:{description:"",type:"boolean",default:!1},onExpandClick:{description:"",type:"string",default:""}},required:["type"],ignore:["id","appearance","binding","visible"]};function S(t,e,i){return e}const f=Object.assign({},h.numberSpinnerProps,{readonly:{}}),g=y.createPropsResolver(f,P,w,S);function M(t){const e=n.computed(()=>({"f-cmp-inputgroup":!0,"input-group-append":!0,"btn-group":!0,"btn-group-number":!0})),i=n.computed(()=>({btn:!0,"btn-secondary":!0,"btn-number-flag":!0})),s=n.computed(()=>({cursor:"pointer","margin-left":0})),d=n.computed(()=>({cursor:"pointer","margin-left":0})),o=n.computed(()=>({"input-group-append input-append-wrapper":!0,"input-append-button":t.expandMode==="button","input-append-text":t.expandMode==="text"}));return()=>n.createVNode(n.Fragment,null,[!!t.showButton&&n.createVNode("div",{class:e.value},[n.createVNode("button",{class:i.value,style:s.value},[n.createVNode("span",{class:"f-icon f-icon-arrow-chevron-up number-arrow-chevron"},null)]),n.createVNode("button",{class:i.value,style:d.value},[n.createVNode("span",{class:"f-icon f-icon-arrow-chevron-down number-arrow-chevron"},null)])]),t.expandable&&t.expandContent&&n.createVNode("div",{class:o.value},[n.createVNode("div",{class:"input-group-text",style:"padding-left: 8px",innerHTML:t.expandContent},null)])])}class F extends V.InputBaseProperty{constructor(e,i){super(e,i)}getEditorProperties(e){var o,l,a,m,b,x,j,v;let i,s=!1;if(((o=e==null?void 0:e.binding)==null?void 0:o.type)==="Form"){const c=this.schemaService.getFieldByIDAndVMID(e.binding.field,this.viewModelId);(l=c==null?void 0:c.schemaField)!=null&&l.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:1,needValid:!0,precision:(a=e==null?void 0:e.editor)==null?void 0:a.precision}},min:{description:"",title:"最小值",type:"number",editor:{nullable:!0,max:(m=e==null?void 0:e.editor)==null?void 0:m.max,precision:(b=e==null?void 0:e.editor)==null?void 0:b.precision,bigNumber:s,needValid:!0},refreshPanelAfterChanged:!0,visible:this.designViewModelField!=null||this.formRule!=null},max:{description:"",title:"最大值",type:"number",editor:{nullable:!0,min:((x=e==null?void 0:e.editor)==null?void 0:x.min)===void 0||(j=e==null?void 0:e.editor)==null?void 0:j.min,precision:(v=e==null?void 0:e.editor)==null?void 0:v.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,C,L){if(c)switch(c.propertyID){case"precision":{C.formatter&&(C.formatter.precision=c.propertyValue);break}}})}changeBindingField(e,i,s){var o;super.changeBindingField(e,i);const d=s;e.editor&&((o=d==null?void 0:d.type)==null?void 0:o.name)===u.FormSchemaEntityFieldTypeName.Number&&(e.editor.precision=d.type.precision)}}function R(t,e){const i=t.schema;function s(d,o){return new F(d,e).getPropertyConfig(i,o)}return{getPropsConfig:s}}const p=n.defineComponent({name:"FNumberSpinnerDesign",props:f,emits:["update:modelValue","valueChange","change","blur","focus","click","input"],setup(t,e){const i=M(t),s=n.ref(),d=n.inject("designer-host-service"),o=n.inject("design-item-context"),l=R(o,d),a=N.useDesignerComponent(s,o,l);n.onMounted(()=>{s.value.componentInstance=a});const m=n.computed(()=>({"form-control":!0,"text-left":t.textAlign==="left","text-center":t.textAlign==="center","text-right":t.textAlign==="right"}));e.expose(a.value);const b=n.ref();return()=>n.createVNode("div",{ref:s,class:"f-cmp-inputgroup input-group flex-row f-cmp-number-spinner",style:"pointer-events: none;"},[n.createVNode("input",{ref:b,class:m.value,readonly:!0,placeholder:t.placeholder},null),i()])}});p.register=(t,e,i,s)=>{t["number-spinner"]=h,e["number-spinner"]=g},p.registerDesigner=(t,e,i)=>{t["number-spinner"]=p,e["number-spinner"]=g};const A=u.withInstall(p);r.FNumberSpinnerDesign=p,r.default=A,r.numberSpinnerDesignProps=f,r.propsResolver=g,Object.defineProperties(r,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});