@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
2 lines (1 loc) • 25.3 kB
JavaScript
(function(y,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("../button-edit/index.umd.js"),require("../tree-grid/index.umd.js"),require("../radio-group/index.umd.js"),require("../common/index.umd.js"),require("../dynamic-resolver/index.umd.js"),require("../locale/index.umd.js"),require("bignumber.js"),require("lodash-es"),require("../property-panel/index.umd.js"),require("../notify/index.umd.js"),require("../data-grid/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../button-edit/index.umd.js","../tree-grid/index.umd.js","../radio-group/index.umd.js","../common/index.umd.js","../dynamic-resolver/index.umd.js","../locale/index.umd.js","bignumber.js","lodash-es","../property-panel/index.umd.js","../notify/index.umd.js","../data-grid/index.umd.js"],t):(y=typeof globalThis<"u"?globalThis:y||self,t(y["binding-selector"]={},y.Vue,y.FButtonEdit,y.FTreeGrid,y.FRadioGroup,y.common,y.dynamicResolver,y.locale,y.BigNumber,y.LodashES,y.propertyPanel,y.notify,y.dataGrid))})(this,function(y,t,q,ge,ye,K,he,Q,Me,oe,_,be,Fe){"use strict";var Pe=Object.defineProperty;var Be=(y,t,q)=>t in y?Pe(y,t,{enumerable:!0,configurable:!0,writable:!0,value:q}):y[t]=q;var ne=(y,t,q)=>Be(y,typeof t!="symbol"?t+"":t,q);const Te={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/binding-selector.schema.json",title:"binding-selector",description:"字段绑定选择器",type:"object",properties:{disabled:{description:"",type:"boolean",default:!1},readonly:{description:"",type:"boolean",default:!1},bindingType:{description:"",type:"object",default:{}},idField:{description:"",type:"string",default:"id"},title:{description:"",type:"string",default:"字段选择器"},modalWidth:{description:"",type:"number",default:800},modalHeight:{description:"",type:"number",default:600},separator:{description:"",type:"string",default:","},bindingData:{description:"",type:"array",default:[]},textField:{description:"",type:"string",default:"code"},editorParams:{description:"",type:"object",default:{}}}},ie=[{field:"name",title:"名称"},{field:"bindingField",title:"绑定字段"},{field:"fieldType",title:"字段类型"}],ae=[{field:"name",title:"名称"},{field:"code",title:"编号"},{field:"displayTypeName",title:"变量类型"},{field:"fromSource",title:"来源"}],le=[{value:"Form",text:"绑定字段"},{value:"Variable",text:"绑定变量"}],X={disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},modelValue:{type:Object,default:null},bindingType:{type:Object,default:{enable:!0,value:"Form",textField:"text",valueField:"value"}},data:{type:Array,default:[]},idField:{type:String,default:"id"},title:{type:String,default:"字段选择器"},modalWidth:{type:Number,default:800},modalHeight:{type:Number,default:600},multiSelect:{type:Boolean,default:!1},separator:{type:String,default:","},bindingData:{type:Array,default:[]},textField:{type:String,default:"code"},beforeOpenDialog:{type:Function,default:null},editorParams:{type:Object,default:null},onFieldSelected:{type:Function,default:null},showCustomFooter:{type:Boolean,default:!1},enableClear:{type:Boolean,default:!1},canChangeFieldType:{type:Boolean,default:!1}},re=he.createPropsResolver(X,Te),Se={showCloseButton:{type:Boolean,default:!0},position:{type:String,default:"top-center"},timeout:{type:Number,default:3e3},theme:{type:String,default:"bootstrap"},left:{type:Number},right:{type:Number},top:{type:Number},bottom:{type:Number},id:{type:String},animate:{type:String,default:"fadeIn"},options:{type:Object},safeHtml:{type:Boolean,default:!0}},we={showCloseButton:{type:Boolean,default:!0},animate:{type:String,default:"fadeIn"},options:{type:Object}},Z=t.defineComponent({name:"Toast",props:we,emits:["close","click"],setup:(e,o)=>{const d=t.ref(e.animate),s="fadeOut",a=t.computed(()=>e.options),u=t.ref(!1),f=t.computed(()=>a.value.title&&a.value.message),h=t.computed(()=>!a.value.title&&a.value.message),T=t.computed(()=>{const b={animated:u.value,toast:!0,"toast--only-content":!f.value};return b[e.animate]=!1,b[s]=u.value,b["toasty-type-"+a.value.type]=!0,a.value.theme&&(b[a.value.theme]=!0),b}),w=t.computed(()=>{const k=`f-icon-${a.value&&a.value.type?a.value.type.replace("toasty-type-",""):"default"}`,L={"f-icon":!0};return L[k]=!0,L}),S=t.computed(()=>a.value.title||a.value.message),v=t.computed(()=>e.showCloseButton),O=t.computed(()=>!!a.value.buttons||!!o.slots.default),M=t.computed(()=>Q.LocaleService.getLocale()==="en"?{wordBreak:"keep-all",overflowWrap:"break-word"}:{});function R(b){b.stopPropagation(),b.preventDefault(),u.value=!1,setTimeout(()=>{o.emit("close",a.value)},200)}function I(b,E){}function x(b){return`f-preten-link ${b.customClass?b.customClass:""}`}t.watch(d,()=>{d.value});const V=()=>{var b;return t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"after-toast-msg text-right"},[!o.slots.default&&((b=a.value.buttons)==null?void 0:b.map(E=>t.createVNode("span",{class:x(E),onClick:k=>void 0},[E.text]))),o.slots.default&&o.slots.default()])])};return()=>t.createVNode("div",{class:T.value,style:"min-height:44px"},[v.value&&t.createVNode("button",{title:Q.LocaleService.getLocaleValue("messageBox.close"),class:"toast-close f-btn-icon f-bare",onClick:R},[t.createVNode("span",{class:"f-icon modal_close"},null)]),S.value&&t.createVNode("section",{class:"modal-tips"},[!f.value&&t.createVNode("div",{class:"float-left modal-tips-iconwrap"},[t.createVNode("span",{class:w.value},null)]),t.createVNode("div",{class:"modal-tips-content"},[f.value&&t.createVNode(t.Fragment,null,[t.createVNode("h5",{class:"toast-title modal-tips-title",innerHTML:a.value.title},null),t.createVNode("p",{class:"toast-msg",innerHTML:a.value.message,style:M.value},null),O.value&&V()]),h.value&&(a.value.buttons?t.createVNode("div",{class:"toast-title-btns-wrapper d-flex"},[t.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:M.value,innerHTML:a.value.message},null),t.createVNode("div",{class:"after-toast-title text-right ml-auto"},[V()])]):t.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:M.value,innerHTML:a.value.message},null))])])])}}),Ne=["moz","ms","webkit"];function Ce(){let e=0;return o=>{const d=new Date().getTime(),s=Math.max(0,16-(d-e)),a=setTimeout(()=>{o(d+s)},s);return e=d+s,a}}function Ve(){if(typeof window>"u")return()=>0;if(window.requestAnimationFrame)return window.requestAnimationFrame.bind(window);const e=Ne.filter(o=>`${o}RequestAnimationFrame`in window)[0];return e?window[`${e}RequestAnimationFrame`]:Ce()}Ve(),t.ref("");function de(){if(typeof window>"u"||typeof navigator>"u")return!1;const e=navigator.userAgent||navigator.vendor||window.opera,o=[/iPhone/i,/iPod/i,/Android.*Mobile/i,/webOS/i,/BlackBerry/i,/IEMobile/i,/Opera Mini/i,/Harmony/i],d=[/iPad/i,/Android(?!.*Mobile)/i,/Tablet/i,/PlayBook/i,/Kindle/i,/Silk/i];for(const T of d)if(T.test(e))return!1;for(const T of o)if(T.test(e))return!0;if(typeof screen>"u")return!1;const s="ontouchstart"in window||navigator.maxTouchPoints>0,a=screen.width,u=screen.height,f=Math.min(a,u);return!!(s&&f<=768)}function ve(){const e=de();return e&&document.body.classList.add("f-mobile"),e}typeof document<"u"&&ve();const Y=t.defineComponent({name:"Notify",props:Se,emits:["close","empty"],setup(e,o){var I;const d=de(),a=`farris-notify-${(I=e.options)!=null&&I.type?e.options.type:"info"}}`,u=t.computed(()=>({"farris-notify":!0,[a]:d})),f={left:12,right:12,top:20,bottom:12},h=t.ref(),T=t.ref(e.options),w=t.ref(e.showCloseButton),S=t.computed(()=>e.position||"bottom-right"),v=t.computed(()=>e.timeout!=null?e.timeout:3e3),O=t.computed(()=>{const x=e.bottom?e.bottom:f.bottom,V=e.top?e.top:f.top,b={transition:"all 0.2s ease",left:S.value.indexOf("left")>-1?`${e.left?e.left:f.left}px`:"",right:S.value.indexOf("right")>-1?`${e.right?e.right:f.right}px`:"",top:S.value.indexOf("top")>-1?`${V}px`:"",bottom:S.value.indexOf("bottom")>-1?`${x}px`:""};return S.value.indexOf("center")>-1&&(b.left="50%",b.marginLeft="calc(-24rem / 2)",S.value==="center-center"&&(b.top="50%",b.transform="translate(-50%, -50%)")),b});function M(x){o.emit("close")}v.value&&setTimeout(()=>{M()},v.value),o.expose({closeToast:M,container:h,notifyPosition:S});function R(x,V){M()}return()=>{var x;return d?t.createVNode("div",{class:u.value,ref:h},[(x=e.options)==null?void 0:x.message]):t.createVNode("div",{class:u.value,style:O.value,ref:h},[t.createVNode(Z,{options:T.value,showCloseButton:w.value,animate:e.animate,onClose:V=>R(V,T.value)},null)])}}});class se{constructor(){ne(this,"notifyRefs",[]);ne(this,"globalConfig",t.reactive({}))}escapeAllHtml(o){if(typeof o!="string"||!o)return"";const d=document.createElement("div");return d.textContent=o||"",d.innerHTML.replace(/\\n/g,"<br>").replace(/\\t/g," ").replace(/\\r/g,"")}createNotifyInstance(o){const d=this,a=Object.assign({timeout:3e3,position:"bottom-right",showCloseButton:!0,safeHtml:!0},this.globalConfig,{...o}),u=document.createElement("div");u.style.display="contents";const f=t.createApp({setup(){var w;const h=t.ref();function T(){h.value.container.style.transform="scale(0)",setTimeout(()=>{d.updateNotifyPositionForClose(a,h),f.unmount()},220)}if(a.position.indexOf("top")>-1){const S=d.getNotifyInstances(a.position),v=S[S.length-1];if(v){const O=v.value.container.getBoundingClientRect();a.top=O.bottom}}return a.safeHtml&&((w=a.options)!=null&&w.message)&&(a.options.message=d.escapeAllHtml(a.options.message)),t.onUnmounted(()=>{document.body.removeChild(u)}),t.onMounted(()=>{d.updateNotifyPositionForCreate(a,h)}),()=>t.createVNode(t.Transition,{mode:"out-in",name:"fade",appear:!0},{default:()=>[t.createVNode(Y,t.mergeProps({ref:h},a,{onClose:T}),null)]})}});return f.provide("NotifyService",this),document.body.appendChild(u),f.use(Q.LocaleService.i18n),f.mount(u),f}getNotifyInstances(o){return this.notifyRefs.filter(d=>d.value.notifyPosition===o)}updateNotifyPositionForCreate(o,d){if(this.notifyRefs&&this.notifyRefs.length){const s=window.innerHeight;o.position.indexOf("bottom")>-1&&this.getNotifyInstances(o.position).forEach(a=>{const u=a.value.container.getBoundingClientRect();a.value.container.style.bottom=u.height+s-u.bottom+"px"})}this.notifyRefs=[...this.notifyRefs,d]}updateNotifyPositionForClose(o,d){const s=this.notifyRefs.indexOf(d);if(o.position.indexOf("top")>-1){const a=this.getNotifyInstances(o.position),u=a.indexOf(d);a.slice(u+1).forEach(f=>{f.value.container.style.top=f.value.container.offsetTop-f.value.container.offsetHeight+"px"})}s>-1&&this.notifyRefs.splice(s,1)}show(o){return this.createNotifyInstance(o)}buildNotifyProps(o,d){let s="",a="",u,f,h;typeof d=="string"?s=d:d&&(s=d.message||"",a=d.title||"",f=d.position||null,h=d.showCloseButton!=null?d.showCloseButton:null,u=d.timeout!=null?d.timeout:null);const w={options:{type:o,message:s,title:a}};return f!=null&&(w.position=f),h!=null&&(w.showCloseButton=h),u!=null&&(w.timeout=u),w}info(o){const d=this.buildNotifyProps("info",o);return this.show(d)}success(o){const d=this.buildNotifyProps("success",o);return this.show(d)}warning(o){const d=this.buildNotifyProps("warning",o);return this.show(d)}error(o){const d=this.buildNotifyProps("error",o);return this.show(d)}close(o){o&&o.unmount()}closeAll(){this.notifyRefs.forEach(o=>{o==null||o.value.closeToast()}),this.notifyRefs.length=0}}const xe=Symbol("NOTIFY_SERVICE_TOKEN");Y.install=e=>{e.component(Y.name,Y),e.component(Z.name,Z);const o=new se;e.provide(xe,o),e.provide("FNotifyService",o)};function ce(e){const{designViewModelUtils:o,schemaService:d,formSchemaUtils:s,designerContext:a}=e.editorParams.designerHostService,{viewModelId:u}=e.editorParams;let f=[],h=[],T=[];const w=t.ref(!1),S=new se;S.globalConfig={position:"top-center"};function v(n){switch(n){case"LocaleVariable":return h;case"RemoteVariable":return T;default:return f}}function O(){f=o.getAllFields2TreeByVMId(u)}function M(){const n=s.getViewModelById(u);if(n.parent){const r=s.getLocaleVariablesByViewModelId(n.parent);r&&r.length&&(r[0].data.name="根组件",h=h.concat(r))}const l=s.getLocaleVariablesByViewModelId(u);return h=h.concat(l),h||[]}function R(){return T=s.getRemoteVariables(),T||[]}function I(n,l=null){const r=[];return n&&n.forEach(m=>{var g;if(!m.nodeType&&(!m.children||!m.children.length))m.data&&r.push({...m.data,fromSource:(g=l==null?void 0:l.data)==null?void 0:g.name});else if(m.children){const i=I(m.children,m);r.push(...i)}}),r}function x(){const n=I(M()),l=R().map(r=>({...r.data,fromSource:"视图对象"}));return[...n,...l]}function V(n){var i,c,p,F;const l=oe.merge({},n.rawData,{groupId:null,groupName:null}),r=(i=e.editorParams.componentSchema)==null?void 0:i.binding,m=(c=e.editorParams.componentSchema)==null?void 0:c.label,g=o.getDgViewModel(u);if(r!=null&&r.field){const P=g.fields.find(C=>C.id===r.field);if(g.removeField([r.field]),P){const{groupId:C,groupName:A,editor:B}=P;oe.merge(l,{editor:B,groupId:C,groupName:A})}}g.addField(l),(F=(p=e.editorParams.componentSchema)==null?void 0:p.editor)!=null&&F.type&&g.changeField(l.id,{editor:l.editor}),m&&g.changeField(l.id,{name:m})}function b(n){var g;const l=(g=e.editorParams.componentSchema)==null?void 0:g.binding,r=o.getDgViewModel(u),m={type:"Variable",id:n.id,fieldName:n.code,groupId:"",groupName:""};if(l!=null&&l.field){const i=s.getViewModelById(u),c=i==null?void 0:i.fields.find(p=>p.id===(l==null?void 0:l.field));c&&(m.groupName=c.groupName,m.groupId=c.groupId),r.removeField([l==null?void 0:l.field])}s.addViewModelField(u,m)}function E(n,l){if(!e.editorParams.needSyncToViewModel||!e.editorParams.viewModelId||!e.editorParams.designerHostService)return;const r=e.editorParams.componentSchema.binding;r&&r.field===n.id||(l==="Form"?V(n):b(n))}function k(n){if(!e.editorParams.needSyncToViewModel||!e.editorParams.viewModelId||!e.editorParams.designerHostService)return;const l=e.editorParams.componentSchema.binding;if(!(!l||l.field===(n==null?void 0:n.id))&&s.getExpressions().length){const{componentSchema:r}=e.editorParams,m=s.getExpressions().findIndex(g=>g.target===l.field);m>-1&&(s.getExpressions().splice(m,1),S.warning("切换绑定后,请重新配置表达式"),Object.keys(r).forEach(g=>{r[g]&&r[g].type==="Expression"&&(r[g].expressionId=""),r.editor&&Object.keys(r.editor).forEach(i=>{r.editor[i]&&r.editor[i].type==="Expression"&&(r.editor[i].expressionId="")})}))}}function L(n){var r;[K.FormSchemaEntityFieldTypeName.Number,K.FormSchemaEntityFieldTypeName.String,K.FormSchemaEntityFieldTypeName.Text].includes(n.type.name)&&((r=n.type)==null?void 0:r.length)&&e.editorParams.componentSchema.editor&&!Object.prototype.hasOwnProperty.call(e.editorParams.componentSchema.editor,"maxLength")&&(e.editorParams.componentSchema.editor.maxLength=n.type.length)}function G(n,l){if(e.editorParams.componentSchema)return e.editorParams.componentSchema.binding||(e.editorParams.componentSchema.binding={}),l==="Form"?(e.editorParams.componentSchema.binding.path=n.bindingField,e.editorParams.componentSchema.binding.field=n.id,e.editorParams.componentSchema.binding.fullPath=n.path):n.category==="locale"?(e.editorParams.componentSchema.binding.path=n.viewModelId===u?n.code:"root-component."+n.code,e.editorParams.componentSchema.binding.field=n.id,e.editorParams.componentSchema.binding.fullPath=n.code):(e.editorParams.componentSchema.binding.path="root-component."+n.code,e.editorParams.componentSchema.binding.field=n.id,e.editorParams.componentSchema.binding.fullPath=n.code),e.editorParams.componentSchema.binding.type=l,e.editorParams.componentSchema.path=n.bindingPath,L(n),e.editorParams.componentSchema.binding}function U(n){const l=n==null?void 0:n.field,r=new Set,m=s.getFormSchema().module,g=s.getViewModelById(u),i=m.components.find(F=>F.viewModel===u),c=s.checkComponentExistInDrawer(i.id);let p=i.componentType;return(p==="frame"||p==="table")&&(p="form"),m.viewmodels.forEach(F=>{if(!F.fields||F.fields.length===0)return;const P=m.components.find(B=>B.viewModel===F.id);let{componentType:C}=P;if((C==="frame"||C==="table")&&(C="form"),C!==p||F.bindTo!==g.bindTo)return;const A=s.checkComponentExistInDrawer(P.id);c&&A&&F.fields.forEach(B=>{B.id!==l&&r.add(B.id)}),!c&&!A&&F.fields.forEach(B=>{B.id!==l&&r.add(B.id)})}),r}function H(n){if(!n)return[];const l={},r=a&&a.schemaDOMMapping?a.schemaDOMMapping:_.SchemaDOMMapping,{fieldControlTypeMapping:m}=r;for(const g in m){const i=m[g];!i||!i.length||i.forEach(c=>{l[c.key]=l[c.key]||[],l[c.key].push(g)})}return l["language-textbox"]=["multiLanguage"],l[n]}function N(){O()}function j(n,l){if(n.multiLanguage)return{fieldType:"multiLanguage",fieldTypeName:"多语言"};const r=l===_.FormBindingType.Form?n.type.name:n.type,m=l===_.FormBindingType.Form?n.type.displayName:n.displayTypeName;return{fieldType:r,fieldTypeName:m}}function W(){var g;const n=(g=e.editorParams)==null?void 0:g.componentSchema,l=n==null?void 0:n.binding;if(!l)return{originalFieldType:"",isOriginalBindComplexField:!1};let r,m=!1;if(l.type===_.FormBindingType.Form){const i=d.getFieldByID(l.field);i&&(r=j(i,_.FormBindingType.Form).fieldType,i.$type===K.FormSchemaEntityField$Type.ComplexField&&(m=!0))}else{const i=s.getVariableById(l.field);i&&(r=i.type)}return{originalFieldType:r,isOriginalBindComplexField:m}}function D(n,l){var ue,fe,me,pe;if(!(n!=null&&n.length))return S.warning({message:"请先选择数据"}),!1;const r=(ue=e.editorParams)==null?void 0:ue.componentSchema;if(!(r==null?void 0:r.binding))return!0;let g=!0;w.value=!1;const{originalFieldType:i,isOriginalBindComplexField:c}=W(),p=n[0],{fieldType:F,fieldTypeName:P}=j(p,l),C="不可以切换成",A="类型字段,请重新选择!",B=(pe=(me=(fe=e.editorParams)==null?void 0:fe.componentSchema)==null?void 0:me.editor)==null?void 0:pe.type,z=H(B);return c||!i?(w.value=!0,z!=null&&z.length&&!z.includes(F)&&(S.warning(`${C}${P}${A}`),g=!1),g):i&&i!==F?e.editorParams.canChangeFieldType?(w.value=!0,!0):B==="combo-list"||B==="lookup"||B==="radio-group"?l===_.FormBindingType.Form?z.includes(F):F==="String"||F==="Object":(S.warning(`${C}${P}${A}`),!1):g}function ee(){var r;if(!e.editorParams.needSyncToViewModel||!e.editorParams.viewModelId||!e.editorParams.designerHostService)return;const n=(r=e.editorParams.componentSchema)==null?void 0:r.binding;if(!(n!=null&&n.field))return;o.getDgViewModel(u).removeField([n.field])}function te(){const{componentSchema:n}=e.editorParams;n&&(n.binding=null,n.path="")}return{initTreeData:N,getTreeDataSource:v,updateViewModel:E,updateComponentSchema:G,resolveOccupiedFields:U,resolveFieldTypesByEditorType:H,checkFieldValiation:D,clearExpresssionConfig:k,getOriginalFieldType:W,getVariableData:x,fieldTypeChanged:w,clearViewModel:ee,clearComponentSchema:te}}const J=t.defineComponent({name:"FBindingSelectorContainer",props:X,emits:["selected","bindingTypeChange","cancel","submit","skip"],setup(e,o){var r,m,g;const d=t.ref(e.data),s=t.ref(((r=e.modelValue)==null?void 0:r.type)||"Form"),a=t.ref(e.bindingData),u=t.ref(),f=t.ref(),h=t.ref(),T=t.ref(),{getTreeDataSource:w,initTreeData:S,resolveOccupiedFields:v,resolveFieldTypesByEditorType:O,getOriginalFieldType:M,getVariableData:R}=ce(e),{originalFieldType:I,isOriginalBindComplexField:x}=M(),V=t.ref([]),b={};t.onBeforeMount(()=>{var i,c,p,F,P,C;S(),V.value=R(),d.value=w(s.value),(i=e.editorParams)!=null&&i.disableOccupiedFields&&(h.value=v((p=(c=e.editorParams)==null?void 0:c.componentSchema)==null?void 0:p.binding)),T.value=O((C=(P=(F=e.editorParams)==null?void 0:F.componentSchema)==null?void 0:P.editor)==null?void 0:C.type)}),t.onMounted(()=>{setTimeout(()=>{var c,p,F;const i=(F=(p=(c=e.editorParams)==null?void 0:c.componentSchema)==null?void 0:p.binding)==null?void 0:F.field;i&&(s.value==="Form"?(u.value.selectItemById(i),a.value=u.value.getSelectedItems()):(f.value.selectItemById(i),f.value.activeRowById(i),a.value=f.value.getSelectedItems()),b[s.value]=a.value,o.emit("selected",a.value))})});const E={"f-utils-fill":!0,"m-2":(m=e.bindingType)==null?void 0:m.enable,"mx-2":!((g=e.bindingType)!=null&&g.enable),border:!0};function k(i){o.emit("selected",b[i]||[]),o.emit("bindingTypeChange",i)}function L(i){a.value=i,b[s.value]=i,o.emit("selected",i)}function G(){return t.createVNode("div",{class:"px-3"},[t.createVNode(ye,{name:"bindingType",textField:e.bindingType.textField||"text",valueField:e.bindingType.valueField||"value",data:le,modelValue:s.value,"onUpdate:modelValue":i=>s.value=i,onChangeValue:k},null)])}function U(i,c="Form"){var p;return i.raw.multiLanguage?"multiLanguage":c==="Form"?(p=i.raw.type)==null?void 0:p.name:i.raw.type}const H=()=>{var i,c,p;return((p=(c=(i=e.editorParams)==null?void 0:i.componentSchema)==null?void 0:c.editor)==null?void 0:p.type)||""},N=t.computed(()=>{var i,c,p;return(((p=(c=(i=e.editorParams)==null?void 0:i.componentSchema)==null?void 0:c.editor)==null?void 0:p.type)||"")==="language-textbox"}),j=i=>({customRowStatus:c=>{var P,C;if(c.raw.$type&&c.raw.$type!==K.FormSchemaEntityField$Type.SimpleField||h.value&&h.value.has(c.raw.id))return c.disabled=!0,c;if((P=e.editorParams)!=null&&P.canChangeFieldType)return c.disabled=!1,c;const p=U(c,i),F=H();if(F==="combo-list"||F==="lookup")return i!=="Form"?(c.disabled=p!=="Object",c):(c.disabled=!T.value.includes(p),c);if(F==="radio-group")return i!=="Form"?c.disabled=p!=="String":c.disabled=!T.value.includes(p),c;if(x||!I){if(p&&((C=T.value)!=null&&C.length)&&!T.value.includes(p))return c.disabled=!0,c}else if(I&&I!==p)return c.disabled=!0,c;return c.disabled=!1,c}});function W(){return t.createVNode(ge,{ref:u,fit:!0,data:d.value,idField:e.idField,columns:ie,rowNumber:{enable:!1},columnOption:{fitColumns:!0},onSelectionChange:L,"row-option":j("Form")},null)}function D(){return t.createVNode(Fe.FDataGrid,{ref:f,fit:!0,data:V.value,idField:e.idField,columns:ae,rowNumber:{enable:!1},columnOption:{fitColumns:!0},onSelectionChange:L,"row-option":j("Variable")},null)}function ee(){o.emit("cancel")}function te(){if(!a.value||!a.value.length){const i=new be.FNotifyService;return i.globalConfig={position:"top-center"},i.warning({message:"请先选择数据"}),!1}return!0}function n(){te()&&o.emit("submit",{selectedData:a.value[0],bindingType:s.value})}function l(){o.emit("skip")}return()=>t.createVNode("div",{class:"h-100 d-flex flex-column"},[e.bindingType.enable&&!N.value&&G(),t.createVNode("div",{class:E,style:"position:relative;border-radius:10px;"},[t.createVNode("div",{class:{"h-100":!0,"d-none":s.value!=="Form"}},[W()]),t.createVNode("div",{class:{"h-100":!0,"d-none":s.value==="Form"}},[D()])]),e.showCustomFooter?t.createVNode("div",{class:"modal-footer"},[t.createVNode("button",{type:"button",class:"btn btn-secondary",onClick:ee},[t.createTextVNode("取消")]),t.createVNode("button",{type:"button",class:"btn btn-secondary",onClick:l},[t.createTextVNode("跳过绑定")]),t.createVNode("button",{type:"button",class:"btn btn-primary",onClick:n},[t.createTextVNode("确定")])]):""])}}),$=t.defineComponent({name:"FBindingSelector",props:X,emits:["selected","bindingTypeChanged"],setup(e,o){var G,U,H;const d='<i class="f-icon f-icon-lookup"></i>',s=t.ref(e.bindingData),a=t.ref(e.data),u=t.ref(),f=t.ref(((G=e.modelValue)==null?void 0:G.type)||"Form"),h=t.ref(f.value==="Form"?(U=e.modelValue)==null?void 0:U.path:(H=e.modelValue)==null?void 0:H.fullPath),{updateViewModel:T,updateComponentSchema:w,checkFieldValiation:S,clearExpresssionConfig:v,fieldTypeChanged:O,clearViewModel:M,clearComponentSchema:R}=ce(e);function I(N){s.value=N}function x(N){f.value=N}function V(N){if(!N){h.value="";return}h.value=(N==null?void 0:N.type)==="Form"?N.path:N.fullPath}function b(){return t.createVNode(J,{ref:u,data:a.value,onSelected:I,modelValue:e.modelValue,idField:e.idField,bindingData:s.value,onBindingTypeChange:x,editorParams:e.editorParams,bindingType:e.bindingType,showCustomFooter:!1,canChangeFieldType:e.editorParams.canChangeFieldType},null)}function E(){return!!S(s.value,f.value)}const k={title:e.title,fitContent:!1,height:e.modalHeight,width:e.modalWidth,buttons:[{name:"cancel",text:"取消",class:"btn btn-secondary",handle:N=>(s.value=[],!0)},{name:"accept",text:"确定",class:"btn btn-primary",handle:N=>{if(!E())return!1;T(s.value[0],f.value),v(s.value[0]);const j=w(s.value[0],f.value);if(V(j),e.onFieldSelected&&typeof e.onFieldSelected=="function"){const W={fieldTypeChanged:O.value,...s.value[0]};e.onFieldSelected(j,void 0,W)}return!0}}],resizeable:!1,draggable:!0};function L(){M(),v(),R(),V(null),e.onFieldSelected(void 0,void 0)}return()=>{var N;return t.createVNode(q,{modelValue:h.value,"onUpdate:modelValue":j=>h.value=j,editable:!1,disabled:e.disabled,readonly:e.readonly,inputType:"text",enableClear:(N=e.editorParams)==null?void 0:N.enableClear,buttonContent:d,buttonBehavior:"Modal",modalOptions:k,enableTitle:!0,onClear:L},{default:()=>[t.createVNode("div",{class:"h-100 d-flex flex-column"},[b()])]})}}});$.install=e=>{e.component($.name,$),e.component(J.name,J)},$.register=(e,o,d,s)=>{e["binding-selector"]=$,o["binding-selector"]=re},y.BindingSelector=$,y.FBindingSelectorContainer=J,y.bindingSelectorProps=X,y.bindingTypes=le,y.default=$,y.fieldColumns=ie,y.propsResolver=re,y.variableColumns=ae,Object.defineProperties(y,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});