@farris/ui-vue
Version:
Farris Vue, a Farris Design based Vue3 component library.
1 lines • 189 kB
JavaScript
(function(B,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("vue"),require("../dynamic-resolver/index.umd.js"),require("../designer-canvas/index.umd.js"),require("lodash-es"),require("../common/index.umd.js"),require("../locale/index.umd.js"),require("bignumber.js"),require("@vueuse/core"),require("../data-view/index.umd.js"),require("../common/index.umd.js/utils/resolve-field"),require("../input-group/index.umd.js"),require("../button/index.umd.js"),require("../dynamic-view/index.umd.js"),require("../section/index.umd.js"),require("../accordion/index.umd.js"),require("../../designer/avatar/index.umd.js"),require("../../designer/approval-logs/index.umd.js"),require("../../designer/button-edit/index.umd.js"),require("../button-group/index.umd.js"),require("../calendar/index.umd.js"),require("../../designer/capsule/index.umd.js"),require("../../designer/checkbox/index.umd.js"),require("../../designer/checkbox-group/index.umd.js"),require("../combo-list/index.umd.js"),require("../combo-tree/index.umd.js"),require("../component/index.umd.js"),require("../color-picker/index.umd.js"),require("../content-container/index.umd.js"),require("../table/index.umd.js"),require("../../designer/date-picker/index.umd.js"),require("../../designer/data-grid/index.umd.js"),require("../dropdown/index.umd.js"),require("../../designer/dynamic-form/index.umd.js"),require("../events-editor/index.umd.js"),require("../filter-bar/index.umd.js"),require("../field-selector/index.umd.js"),require("../binding-selector/index.umd.js"),require("../image-cropper/index.umd.js"),require("../../designer/input-group/index.umd.js"),require("../layout/index.umd.js"),require("../list-nav/index.umd.js"),require("../../designer/list-view/index.umd.js"),require("../lookup/index.umd.js"),require("../mapping-editor/index.umd.js"),require("../../designer/nav/index.umd.js"),require("../number-range/index.umd.js"),require("../../designer/number-spinner/index.umd.js"),require("../order/index.umd.js"),require("../page-header/index.umd.js"),require("../page-footer/index.umd.js"),require("../pagination/index.umd.js"),require("../progress/index.umd.js"),require("../query-solution/index.umd.js"),require("../../designer/radio-group/index.umd.js"),require("../../designer/rate/index.umd.js"),require("../../designer/response-toolbar/index.umd.js"),require("../response-layout/index.umd.js"),require("../../designer/response-layout-editor/index.umd.js"),require("../search-box/index.umd.js"),require("../../designer/section/index.umd.js"),require("../smoke-detector/index.umd.js"),require("../splitter/index.umd.js"),require("../step/index.umd.js"),require("../../designer/switch/index.umd.js"),require("../../designer/tabs/index.umd.js"),require("../../designer/tags/index.umd.js"),require("../text/index.umd.js"),require("../../designer/time-picker/index.umd.js"),require("../transfer/index.umd.js"),require("../tree-view/index.umd.js"),require("../uploader/index.umd.js"),require("../verify-detail/index.umd.js"),require("../video/index.umd.js"),require("../../designer/textarea/index.umd.js"),require("../schema-selector/index.umd.js"),require("../../designer/tree-grid/index.umd.js"),require("../event-parameter/index.umd.js"),require("../filter-condition-editor/index.umd.js"),require("../fieldset/index.umd.js"),require("../sort-condition-editor/index.umd.js"),require("../menu-lookup/index.umd.js"),require("../../designer/drawer/index.umd.js"),require("../json-editor/index.umd.js"),require("../property-editor/index.umd.js"),require("../expression-editor/index.umd.js"),require("../code-editor/index.umd.js"),require("../html-template/index.umd.js"),require("../collection-property-editor/index.umd.js"),require("../../designer/modal/index.umd.js"),require("../external-container/index.umd.js"),require("../language-textbox/index.umd.js"),require("../image/index.umd.js"),require("../comment/index.umd.js"),require("../../designer/wizard/index.umd.js"),require("../tooltip/index.umd.js"),require("../property-panel/index.umd.js"),require("../notify/index.umd.js"),require("../collection-property-editor/index.umd.js/src/use-button-items.designer"),require("../tree-grid/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../dynamic-resolver/index.umd.js","../designer-canvas/index.umd.js","lodash-es","../common/index.umd.js","../locale/index.umd.js","bignumber.js","@vueuse/core","../data-view/index.umd.js","../common/index.umd.js/utils/resolve-field","../input-group/index.umd.js","../button/index.umd.js","../dynamic-view/index.umd.js","../section/index.umd.js","../accordion/index.umd.js","../../designer/avatar/index.umd.js","../../designer/approval-logs/index.umd.js","../../designer/button-edit/index.umd.js","../button-group/index.umd.js","../calendar/index.umd.js","../../designer/capsule/index.umd.js","../../designer/checkbox/index.umd.js","../../designer/checkbox-group/index.umd.js","../combo-list/index.umd.js","../combo-tree/index.umd.js","../component/index.umd.js","../color-picker/index.umd.js","../content-container/index.umd.js","../table/index.umd.js","../../designer/date-picker/index.umd.js","../../designer/data-grid/index.umd.js","../dropdown/index.umd.js","../../designer/dynamic-form/index.umd.js","../events-editor/index.umd.js","../filter-bar/index.umd.js","../field-selector/index.umd.js","../binding-selector/index.umd.js","../image-cropper/index.umd.js","../../designer/input-group/index.umd.js","../layout/index.umd.js","../list-nav/index.umd.js","../../designer/list-view/index.umd.js","../lookup/index.umd.js","../mapping-editor/index.umd.js","../../designer/nav/index.umd.js","../number-range/index.umd.js","../../designer/number-spinner/index.umd.js","../order/index.umd.js","../page-header/index.umd.js","../page-footer/index.umd.js","../pagination/index.umd.js","../progress/index.umd.js","../query-solution/index.umd.js","../../designer/radio-group/index.umd.js","../../designer/rate/index.umd.js","../../designer/response-toolbar/index.umd.js","../response-layout/index.umd.js","../../designer/response-layout-editor/index.umd.js","../search-box/index.umd.js","../../designer/section/index.umd.js","../smoke-detector/index.umd.js","../splitter/index.umd.js","../step/index.umd.js","../../designer/switch/index.umd.js","../../designer/tabs/index.umd.js","../../designer/tags/index.umd.js","../text/index.umd.js","../../designer/time-picker/index.umd.js","../transfer/index.umd.js","../tree-view/index.umd.js","../uploader/index.umd.js","../verify-detail/index.umd.js","../video/index.umd.js","../../designer/textarea/index.umd.js","../schema-selector/index.umd.js","../../designer/tree-grid/index.umd.js","../event-parameter/index.umd.js","../filter-condition-editor/index.umd.js","../fieldset/index.umd.js","../sort-condition-editor/index.umd.js","../menu-lookup/index.umd.js","../../designer/drawer/index.umd.js","../json-editor/index.umd.js","../property-editor/index.umd.js","../expression-editor/index.umd.js","../code-editor/index.umd.js","../html-template/index.umd.js","../collection-property-editor/index.umd.js","../../designer/modal/index.umd.js","../external-container/index.umd.js","../language-textbox/index.umd.js","../image/index.umd.js","../comment/index.umd.js","../../designer/wizard/index.umd.js","../tooltip/index.umd.js","../property-panel/index.umd.js","../notify/index.umd.js","../collection-property-editor/index.umd.js/src/use-button-items.designer","../tree-grid/index.umd.js"],o):(B=typeof globalThis<"u"?globalThis:B||self,o(B.component={},B.Vue,B.dynamicResolver,B.designerCanvas,B.LodashES,B.common,B.locale,B.BigNumber,B.VueUseCore,B.dataView,B.resolveField,B.FInputGroup,B.FButton,B.dynamicView,B.FSection,B.FAccordion,B.FAvatar,B.FApprovalLogs,B.FButtonEdit,B.FButtonGroup,B.FCalendar,B.FCapsule,B.FCheckbox,B.FCheckboxGroup,B.FComboList,B.FComboTree,B.FComponent,B.FColorPicker,B.FContentContainer,B.FTable,B.FDatePicker,B.FDataGrid,B.FDropdown,B.FDynamicForm$1,B.FEventsEditor,B.FFilterBar,B.FFieldSelector,B.FBindingSelector,B.FImageCropper,B.FInputGroup$1,B.FLayout,B.FListNav,B.FListView,B.FLookup,B.FMappingEditor,B.FNav,B.FNumberRange,B.FNumberSpinner,B.FOrder,B.FPageHeader,B.FPageFooter,B.FPagination,B.FProgress,B.FQuerySolution,B.FRadioGroup,B.FRate,B.FResponseToolbar,B.FResponseLayout,B.FResponseLayoutEditorSetting,B.FSearchBox,B.FSection$1,B.FSmokeDetector,B.FSplitter,B.FStep$1,B.FSwitch,B.FTabs,B.FTags,B.FText,B.FTimePicker,B.FTransfer,B.FTreeview,B.FUploader,B.FVerifyDetail,B.FVideo,B.FTextArea,B.FSchemaSelector,B.FTreeGrid$1,B.FEventParameter,B.FFilterConditionEditor,B.FFieldset,B.FSortConditionEditor,B.FMenuLookup,B.FDrawer,B.FJsonEditor,B.FPropertyEditor,B.FExpressionEditor,B.FCodeEditor,B.FHtmlTemplate,B.FCollectionPropertyEditor,B.FModal$1,B.FExternalContainer,B.FLanguageTextbox,B.FImage,B.FComment,B.FWizard,B.FTooltip,B.propertyPanel,B.notify,null,B.FTreeGrid$2))})(this,function(B,o,Te,R,xe,Ee,Le,Cl,bn,le,Cn,wn,ft,Xe,xn,Fn,Tn,Sn,Vn,Nn,Mn,En,Wt,Yt,In,kn,jn,Bn,Dn,Pn,On,Rn,Ln,$n,qn,An,_n,Un,zn,Hn,Gn,Wn,Yn,Xn,Qn,Jn,Zn,Kn,eo,to,no,oo,io,ro,lo,ao,so,co,uo,fo,mo,po,go,ho,yo,vo,bo,Co,wo,xo,Fo,To,So,Vo,No,Mo,Eo,Io,ko,jo,Bo,Do,Po,Oo,Ro,Lo,$o,qo,Ao,_o,Uo,zo,Ho,Go,Wo,Yo,Xo,Qo,wl,Jo){"use strict";var vl=Object.defineProperty;var bl=(B,o,Te)=>o in B?vl(B,o,{enumerable:!0,configurable:!0,writable:!0,value:Te}):B[o]=Te;var me=(B,o,Te)=>bl(B,typeof o!="symbol"?o+"":o,Te);const Xt=new Map([["appearance",Te.resolveAppearance]]),Zo={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/component.schema.json",title:"component",description:"A Farris Visual Component",type:"object",properties:{id:{description:"The unique identifier for a component",type:"string"},type:{description:"The type string of component",type:"string",default:"component"},componentType:{description:"The type string of component",type:"string"},viewModel:{description:"The viewModel string of component",type:"string"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},contents:{description:"",type:"array",default:[]},visible:{description:"",type:"boolean",default:!0},onInit:{description:"初始化事件",type:"string",default:""},onAfterViewInit:{description:"视图初始化后事件",type:"string",default:""}},required:["id","type","contents"],events:{onInit:"初始化事件",onAfterViewInit:"视图初始化后事件"}};function Qt(e,t,n){return t}const mt={id:{type:String,default:""},customClass:{type:String,default:""},customStyle:{type:String,default:""},componentType:{type:String,default:""},formColumns:{type:Number,default:4},code:{type:String,default:""}},Dt=Te.createPropsResolver(mt,Zo,Xt,Qt),Ko=Object.assign({},mt,{componentId:{type:String,default:""}}),Ft=o.defineComponent({name:"FComponent",props:mt,emits:["init","afterViewInit"],setup(e,t){const n=o.ref();return o.onBeforeMount(()=>{t.emit("init",e.id)}),o.onMounted(()=>{n.value&&e.code&&n.value.setAttribute("scope-"+e.code.toLowerCase(),""),t.emit("afterViewInit",e.id)}),()=>o.createVNode("div",{ref:n,class:e.id+" "+e.customClass,style:e.customStyle,id:e.id},[t.slots.default&&t.slots.default()])}});function ei(e){const{formSchemaUtils:t,formStateMachineUtils:n}=e;function i(s,c=""){return{path:c+s.code,field:s.id,fullPath:s.code}}function r(s,c=""){const m=t.getViewModelById(s);return m?m.states.map(f=>i(f,c)):[]}function l(s){const c=t.getRootViewModelId(),m=r(s);if(s===c)return m;const f=r(c,"root-component.");return[...m,...f]}function a(s){return s.binding&&s.binding.path||s.id||""}function u(){return n&&n.getRenderStates()||[]}return{getVariables:l,getControlName:a,getStateMachines:u}}class ti{constructor(t){me(this,"sessionVariables",[{key:"CurrentSysOrgName",name:"当前组织Name",description:"当前组织Name"},{key:"CurrentSysOrgId",name:"当前组织Id",description:"当前组织Id"},{key:"CurrentUserName",name:"当前用户Name",description:"当前用户Name"},{key:"CurrentUserCode",name:"当前用户Code",description:"当前用户Code"},{key:"CurrentUserId",name:"当前用户Id",description:"当前用户Id"},{key:"CurrentLanguage",name:"当前语言编号",description:"当前登录的语言编号,例如简体中文返回'zh-CHS',英文返回'en',繁体中文'zh-CHT'"}]);me(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});me(this,"getExpressionConverter",(t,n)=>({convertFrom:(i,r,l,a)=>{const u=l.getExpressionRuleValue(t,n||r);return u&&u.value||""},convertTo:(i,r,l,a,u)=>{var s;if(r==="dataPicking"&&(l!=null&&l.target)){const c=`${l.target}_dataPicking`;((s=l.rules)==null?void 0:s.some(f=>f.id===c&&f.value))?i.dictPickingExpressionId=c:delete i.dictPickingExpressionId}a.updateExpression(l)}}));this.formSchemaService=t}getExpressionRule(t,n){const i=this.getExpressionData();if(!i)return"";const r=i.find(a=>a.target===t);if(!r)return"";const l=r.rules.find(a=>a.type===n);return l||""}getContextFormVariables(){const{module:t}=this.formSchemaService.getFormSchema();if(!t.viewmodels||t.viewmodels.length===0)return[];const n=this.formSchemaService.getRootViewModelId(),i=this.formSchemaService.getViewModelById(n);if(!i||!i.states||i.states.length===0)return[];const r=[];return i.states.filter(l=>l.category==="remote").forEach(l=>{r.push({key:l.code,name:l.name,description:l.name,category:l.category})}),r}createTreeNode(t,n,i="label"){return{id:t.id,name:t.name,bindingPath:t[i],parents:n,type:"field"}}buildEntityFieldsTreeData(t=null,n){const i=[];return t==null||t.forEach(r=>{var u;const l=this.createTreeNode(r,n);let a=[];(u=r.type)!=null&&u.fields&&(a=this.buildEntityFieldsTreeData(r.type.fields,[...n,r.label])),i.push({data:l,children:a,expanded:!0})}),i}buildChildEntityTreeData(t=null,n){const i=[];return t==null||t.forEach(r=>{var s,c;const l=this.createTreeNode(r,n);l.type="entity";const a=this.buildEntityFieldsTreeData((s=r.type)==null?void 0:s.fields,[...n,r.label]),u=this.buildChildEntityTreeData((c=r.type)==null?void 0:c.entities,[...n,r.label]);u!=null&&u.length&&(a==null||a.push(...u)),i.push({data:l,children:a||[],expanded:!0})}),i}getEntitiesTreeData(){const t=this.formSchemaService.getSchemaEntities();if(!(t!=null&&t.length))return[];const n=t[0];if(!(n!=null&&n.type))return[];const i=this.buildEntityFieldsTreeData(n.type.fields,[n.code]),r=this.buildChildEntityTreeData(n.type.entities,[n.code]);return r!=null&&r.length&&(i==null||i.push(...r)),{entityCode:n.code,fields:[{data:this.createTreeNode(n,[],"code"),children:i||[]}]}}getEntitiesAndVariables(){return{entities:this.getEntitiesTreeData(),variables:{session:{name:"系统变量",items:this.sessionVariables,visible:!1},forms:{name:"表单变量",items:this.getContextFormVariables(),visible:!0}}}}onBeforeOpenExpression(t,n,i){const r=i==="Field"?t.binding.field:t.id,l=this.getExpressionRule(r,n),a=this.getEntitiesAndVariables(),u={message:["validate","required","dataPicking"].includes(n)&&l?l.message:"",...a};return l.messageType!=null&&(u.messageType=l.messageType),u}buildRule(t,n,i,r){const{expression:l,message:a,messageType:u}=n,s={id:`${t}_${i}`,type:i,value:l};return(i==="validate"||i==="dataPicking"||i==="required")&&(s.message=a),i==="dataPicking"&&(s.messageType=u),i==="validate"&&r&&(s.elementId=r),s}getExpressionData(){const{expressions:t}=this.formSchemaService.getFormSchema().module;return t||[]}updateExpression(t,n,i,r){const l=n==="Field"?t.binding.field:t.id,a=this.buildRule(l,i,r,t.type==="form-group"?t.id:"");let s=this.getExpressionData().find(m=>m.targetType===n&&m.target===l);const c=m=>m.value.trim()==="";if(s){const m=s.rules.find(f=>f.id===a.id);if(m)c(a)?s.rules=s.rules.filter(f=>f.id!==a.id):(Object.assign(m,a),r==="validate"&&t.type==="form-group"&&(m.elementId=t.id));else{if(c(a))return null;s.rules=s.rules||[],s.rules.push(a)}}else{if(c(a))return null;s={target:`${l}`,rules:[a],targetType:n}}return s}getExpressionEditorOptions(t,n,i,r){return i.reduce((l,a)=>{var s,c;const u=n==="Field"?(s=t==null?void 0:t.binding)==null?void 0:s.field:t.id;return l[a]={hide:n==="Field"?!!((c=t==null?void 0:t.binding)!=null&&c.field):!1,description:"",title:this.expressionNames[a],type:"string",$converter:this.getExpressionConverter(u),refreshPanelAfterChanged:!0,editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[a]}编辑器`,showMessage:a==="validate"||a==="dataPicking"||a==="required",showMessageType:a==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(t,a,n),onSubmitModal:m=>{const f=this.updateExpression(t,n,m,a);if(r){const g=this.buildRule(u,m,a);r(g)}return f}}},l},{})}getExpressionInfo(t,n,i){const r=n==="Field"?t.binding.field:t.id,l=this.getExpressionRule(r,i),a={value:l&&l.value,targetId:r,targetType:n,expressionType:i};return l&&l.message&&(a.message=l.message),a}getExpressionConfig(t,n,i=["compute","dependency","validate"],r){var l;return{description:"表达式",title:"表达式",hide:!(t.binding&&((l=t.binding)==null?void 0:l.type)==="Form"),properties:{...this.getExpressionEditorOptions(t,n,i,r)}}}getExpressionOptions(t,n,i){const r=this.getExpressionInfo(t,n,i);return{dialogTitle:`${this.expressionNames[i]||"表达式"}编辑器`,singleExpand:!1,showMessage:i==="required",beforeOpen:()=>this.onBeforeOpenExpression(t,i,n),expressionInfo:r}}}class Jt{constructor(t,n){me(this,"componentId");me(this,"viewModelId");me(this,"eventsEditorUtils");me(this,"formSchemaUtils");me(this,"formMetadataConverter");me(this,"designViewModelUtils");me(this,"designViewModelField");me(this,"controlCreatorUtils");me(this,"designerHostService");me(this,"designerContext");me(this,"modalService",null);me(this,"formRule",null);me(this,"schemaService",null);me(this,"metadataService",null);me(this,"propertyConfig",{type:"object",categories:{}});me(this,"expressionProperty");var i;this.componentId=t,this.designerHostService=n,this.eventsEditorUtils=n.eventsEditorUtils,this.formSchemaUtils=n.formSchemaUtils,this.formMetadataConverter=n.formMetadataConverter,this.viewModelId=((i=this.formSchemaUtils)==null?void 0:i.getViewModelIdByComponentId(t))||"",this.designViewModelUtils=n.designViewModelUtils,this.controlCreatorUtils=n.controlCreatorUtils,this.metadataService=n.metadataService,this.schemaService=n.schemaService,this.designerContext=n.designerContext,this.modalService=n.modalService,this.expressionProperty=new ti(this.formSchemaUtils)}inResponsiveForm(){var t;return!!((t=this.designerContext)!=null&&t.responsiveForm)}getFormDesignerInstance(){var t,n;return(n=(t=this.designerContext)==null?void 0:t.instances)==null?void 0:n.formDesigner.value}getTableInfo(){var t;return(t=this.schemaService)==null?void 0:t.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(t){var i;const n=t.binding&&t.binding.type==="Form"&&t.binding.field;if(n){if(!this.designViewModelField){const r=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=r.fields.find(l=>l.id===n)}t.updateOn=(i=this.designViewModelField)==null?void 0:i.updateOn}}getBasicPropConfig(t){return{description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"combo-list",textField:"name",valueField:"value",idField:"value",editable:!1,data:[{value:t.type,name:R.DgControl[t.type]&&R.DgControl[t.type].name}]}}}}}getAppearanceConfig(t=null,n={},i){const r={title:"外观",description:"Appearance"},l={class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"}};for(const a in n)l[a]=Object.assign(l[a]||{},n[a]);return{...r,properties:{...l},setPropertyRelates(a,u){if(a){switch(a&&a.propertyID){case"class":case"style":{R.canvasChanged.value++;break}}i&&i(a,t,u)}}}}getPropertyEditorParams(t,n=[],i="visible",r={},l={},a=""){const{getVariables:u,getControlName:s,getStateMachines:c}=ei(this.designerHostService),m=this.getRealTargetType(t),f=n&&n.length>0?n:["Const","Variable","StateMachine","Expression"],g={type:"property-editor",propertyTypes:f};return f.map(v=>{switch(v){case"Const":Object.assign(g,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},r);break;case"Expression":g.expressionConfig=this.getExpressionOptions(t,m,a||i);break;case"StateMachine":g.stateMachines=c();break;case"Variable":Object.assign(g,{controlName:s(t),newVariablePrefix:"is",newVariableType:"Boolean",variables:u(this.viewModelId),parentComponentId:this.componentId==="root-component"?"":"root-component",onBeforeOpenVariables:p=>{p.value=u(this.viewModelId)}},l),this.designerContext.designerMode==="PC_RTC"&&(g.newVariablePrefix="ext_"+g.newVariablePrefix);break}}),g}getVisibleProperty(t,n=""){var l;let i=["Const","Variable","StateMachine","Expression"];return n==="gridFieldEditor"?i=["Const","Expression"]:n==="form-group"&&!((l=t.binding)!=null&&l.field)?i=["Const","Variable","StateMachine","Custom"]:n==="dataGrid"||n==="treeGrid"||n==="wizard"?i=["Const","Variable","Expression"]:(t.type.indexOf("toolbar-item")>-1||n==="form-group")&&(i=["Const","Variable","StateMachine","Custom","Expression"]),{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(t,i,"visible")}}}getBehaviorConfig(t,n="",i={},r){const l={title:"行为",description:""},a=this.getVisibleProperty(t,n);for(const s in i)a[s]=Object.assign(a[s]||{},i[s]);const u=this;return{...l,properties:{...a},setPropertyRelates(s,c){if(s){switch(s.propertyID){case"disabled":case"readonly":case"visible":u.afterMutilEditorChanged(t,s);break}r&&r(s,c)}}}}afterMutilEditorChanged(t,n){this.addNewVariableToViewModel(n,this.viewModelId),this.updateExpressionValue(n,t),this.clearExpression(n,t)}updateElementByParentContainer(t,n){const i=n&&n.parent&&n.parent.schema;if(!i)return;const r=i.contents.findIndex(a=>a.id===t),l=xe.cloneDeep(i.contents[r]);i.contents.splice(r,1),i.contents.splice(r,0,l),R.refreshCanvas()}addNewVariableToViewModel(t,n){const i=t.propertyValue;if(!(i&&typeof i=="object")||!(i.type==="Variable"&&i.isNewVariable))return;const a={id:i.field,category:"locale",code:i.fullPath,name:i.fullPath,type:i.newVariableType||"String",isRtcVariable:this.designerContext.designerMode==="PC_RTC"?!0:void 0};delete i.newVariableType,delete i.isNewVariable,this.formSchemaUtils.getVariableByCode(a.code)||this.formSchemaUtils.getViewModelById("root-viewmodel").states.push(a)}getExpressions(){let t=[];return this.formRule?(this.formRule.expressions=this.formRule.expressions||[],t=this.formRule.expressions||[]):t=this.formSchemaUtils.getExpressions(),t}updateExpressionValue(t,n){const i=t.propertyValue;if(!((i&&i.type)==="Expression"&&i.expressionInfo))return;const{expressionId:a,expressionInfo:u}=i,{targetId:s,targetType:c,expressionType:m,value:f,message:g}=u,v=this.getExpressions();let p=v.find(F=>F.target===s);p||(p={target:s,rules:[],targetType:c},v.push(p));const b=p.rules.find(F=>F.type===m);if(b)b.id=a,b.value=f,b.message=g,(m==="minDate"||m==="maxDate"||m==="defaultTime")&&(b.elementId=n.id);else{const F={id:a,type:m,value:f,message:g,elementId:n.id};p.rules.push(F)}delete i.expressionInfo}clearExpression(t,n){const i=t.propertyValue;if(i&&i.type==="Expression")return;const l=t.propertyID,a=this.getExpressions(),u=n.binding?n.binding.field:n.id,s=a.find(c=>c.target===u);!s||!s.rules||(s.rules=s.rules.filter(c=>c.type!==l))}getExpressionOptions(t,n,i){return this.expressionProperty.getExpressionOptions(t,n,i)}getRealTargetType(t){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item","drawer-toolbar-item"].indexOf(t.type)>-1?"Button":t.binding&&t.binding.field?"Field":"Container"}createBaseEventProperty(t){const n={};return n[this.viewModelId]={type:"events-editor",editor:{initialData:t,viewSourceHandle:i=>{var r;((r=i.controller)==null?void 0:r.label.indexOf(this.formSchemaUtils.getModule().code))>-1&&this.eventsEditorUtils.jumpToMethod(i)}}},n}}class ni extends Jt{constructor(t,n){super(t,n)}getPropertyConfig(t){return this.propertyConfig.categories.basic=this.getBasicPropConfig(t),this.propertyConfig.categories.appearance=this.getAppearancePropConfig(t),this.getBehaviorConfig(t),this.getEventPropConfig(t),this.propertyConfig}getAppearancePropConfig(t){const n=this.formSchemaUtils.getViewModelById(this.viewModelId);t.name=n?n.name:null;const i=this;return this.getAppearanceConfig(t,{name:{title:"组件名称",type:"string",description:"组件名称",defaultValue:t.name}},(l,a,u)=>{switch(l.propertyID){case"name":i.syncChangesToViewModel({name:l.propertyValue}),delete a.name;break}})}getEventPropConfig(t){const n=[{label:"onInit",name:"初始化事件"},{label:"onAfterViewInit",name:"视图初始化后事件"}];this.designerContext&&this.designerContext.responsiveForm&&t.componentType==="frame"&&n.push({label:"goBack",name:"原生返回事件"});const i=this,r=i.eventsEditorUtils.formProperties(t,i.viewModelId,n),l=i.createBaseEventProperty(r);this.propertyConfig.categories.eventsEditor={title:"事件",hideTitle:!0,properties:l,refreshPanelAfterChanged:!0,tabId:Ee.EVENT_PROPERTY_TAB_IDS,tabName:"交互",setPropertyRelates(a,u){const s=a.propertyValue;delete t[i.viewModelId],s&&(s.setPropertyRelates=this.setPropertyRelates,i.eventsEditorUtils.saveRelatedParameters(t,i.viewModelId,s.events,s))}}}getBehaviorConfig(t){const n=this.formSchemaUtils.getViewModelById(this.viewModelId),i=n?n.enableValidation:null,r=this;this.propertyConfig.categories.behavior={title:"行为",description:"",properties:{enableValidation:{title:"启用校验",type:"boolean",description:"运行时组件是否启用校验",defaultValue:i}},setPropertyRelates:l=>{if(l)switch(l.propertyID){case"enableValidation":{r.syncChangesToViewModel({enableValidation:l.propertyValue}),delete t.enableValidation;break}}}}}syncChangesToViewModel(t){const n=this.formSchemaUtils.getViewModelById(this.viewModelId);n&&Object.assign(n,t)}}const oi={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}},ii={showCloseButton:{type:Boolean,default:!0},animate:{type:String,default:"fadeIn"},options:{type:Object}},Pt=o.defineComponent({name:"Toast",props:ii,emits:["close","click"],setup:(e,t)=>{const n=o.ref(e.animate),i="fadeOut",r=o.computed(()=>e.options),l=o.ref(!1),a=o.computed(()=>r.value.title&&r.value.message),u=o.computed(()=>!r.value.title&&r.value.message),s=o.computed(()=>{const y={animated:l.value,toast:!0,"toast--only-content":!a.value};return y[e.animate]=!1,y[i]=l.value,y["toasty-type-"+r.value.type]=!0,r.value.theme&&(y[r.value.theme]=!0),y}),c=o.computed(()=>{const M=`f-icon-${r.value&&r.value.type?r.value.type.replace("toasty-type-",""):"default"}`,N={"f-icon":!0};return N[M]=!0,N}),m=o.computed(()=>r.value.title||r.value.message),f=o.computed(()=>e.showCloseButton),g=o.computed(()=>!!r.value.buttons||!!t.slots.default),v=o.computed(()=>Le.LocaleService.getLocale()==="en"?{wordBreak:"keep-all",overflowWrap:"break-word"}:{});function p(y){y.stopPropagation(),y.preventDefault(),l.value=!1,setTimeout(()=>{t.emit("close",r.value)},200)}function b(y,w){}function F(y){return`f-preten-link ${y.customClass?y.customClass:""}`}o.watch(n,()=>{n.value});const V=()=>{var y;return o.createVNode(o.Fragment,null,[o.createVNode("div",{class:"after-toast-msg text-right"},[!t.slots.default&&((y=r.value.buttons)==null?void 0:y.map(w=>o.createVNode("span",{class:F(w),onClick:M=>void 0},[w.text]))),t.slots.default&&t.slots.default()])])};return()=>o.createVNode("div",{class:s.value,style:"min-height:44px"},[f.value&&o.createVNode("button",{title:Le.LocaleService.getLocaleValue("messageBox.close"),class:"toast-close f-btn-icon f-bare",onClick:p},[o.createVNode("span",{class:"f-icon modal_close"},null)]),m.value&&o.createVNode("section",{class:"modal-tips"},[!a.value&&o.createVNode("div",{class:"float-left modal-tips-iconwrap"},[o.createVNode("span",{class:c.value},null)]),o.createVNode("div",{class:"modal-tips-content"},[a.value&&o.createVNode(o.Fragment,null,[o.createVNode("h5",{class:"toast-title modal-tips-title",innerHTML:r.value.title},null),o.createVNode("p",{class:"toast-msg",innerHTML:r.value.message,style:v.value},null),g.value&&V()]),u.value&&(r.value.buttons?o.createVNode("div",{class:"toast-title-btns-wrapper d-flex"},[o.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:v.value,innerHTML:r.value.message},null),o.createVNode("div",{class:"after-toast-title text-right ml-auto"},[V()])]):o.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:v.value,innerHTML:r.value.message},null))])])])}});function Zt(){function e(){const n=i=>{const r=Math.random()*16|0;return(i==="x"?r:r&3|8).toString(16)};return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,n)}function t(n,i){const r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),l=[];let a;if(i=i||r.length,n)for(a=0;a<n;a++)l[a]=r[0|Math.random()*i];else{let u;for(l[8]=l[13]=l[18]=l[23]="-",l[14]="4",a=0;a<36;a++)l[a]||(u=0|Math.random()*16,l[a]=r[a===19?u&3|8:u])}return l.join("")}return{guid:e,uuid:t}}const ri=["moz","ms","webkit"];function li(){let e=0;return t=>{const n=new Date().getTime(),i=Math.max(0,16-(n-e)),r=setTimeout(()=>{t(n+i)},i);return e=n+i,r}}function ai(){if(typeof window>"u")return()=>0;if(window.requestAnimationFrame)return window.requestAnimationFrame.bind(window);const e=ri.filter(t=>`${t}RequestAnimationFrame`in window)[0];return e?window[`${e}RequestAnimationFrame`]:li()}ai(),o.ref("");function Kt(){if(typeof window>"u"||typeof navigator>"u")return!1;const e=navigator.userAgent||navigator.vendor||window.opera,t=[/iPhone/i,/iPod/i,/Android.*Mobile/i,/webOS/i,/BlackBerry/i,/IEMobile/i,/Opera Mini/i,/Harmony/i],n=[/iPad/i,/Android(?!.*Mobile)/i,/Tablet/i,/PlayBook/i,/Kindle/i,/Silk/i];for(const s of n)if(s.test(e))return!1;for(const s of t)if(s.test(e))return!0;if(typeof screen>"u")return!1;const i="ontouchstart"in window||navigator.maxTouchPoints>0,r=screen.width,l=screen.height,a=Math.min(r,l);return!!(i&&a<=768)}function si(){const e=Kt();return e&&document.body.classList.add("f-mobile"),e}typeof document<"u"&&si();const Tt=o.defineComponent({name:"Notify",props:oi,emits:["close","empty"],setup(e,t){var b;const n=Kt(),r=`farris-notify-${(b=e.options)!=null&&b.type?e.options.type:"info"}}`,l=o.computed(()=>({"farris-notify":!0,[r]:n})),a={left:12,right:12,top:20,bottom:12},u=o.ref(),s=o.ref(e.options),c=o.ref(e.showCloseButton),m=o.computed(()=>e.position||"bottom-right"),f=o.computed(()=>e.timeout!=null?e.timeout:3e3),g=o.computed(()=>{const F=e.bottom?e.bottom:a.bottom,V=e.top?e.top:a.top,y={transition:"all 0.2s ease",left:m.value.indexOf("left")>-1?`${e.left?e.left:a.left}px`:"",right:m.value.indexOf("right")>-1?`${e.right?e.right:a.right}px`:"",top:m.value.indexOf("top")>-1?`${V}px`:"",bottom:m.value.indexOf("bottom")>-1?`${F}px`:""};return m.value.indexOf("center")>-1&&(y.left="50%",y.marginLeft="calc(-24rem / 2)",m.value==="center-center"&&(y.top="50%",y.transform="translate(-50%, -50%)")),y});function v(F){t.emit("close")}f.value&&setTimeout(()=>{v()},f.value),t.expose({closeToast:v,container:u,notifyPosition:m});function p(F,V){v()}return()=>{var F;return n?o.createVNode("div",{class:l.value,ref:u},[(F=e.options)==null?void 0:F.message]):o.createVNode("div",{class:l.value,style:g.value,ref:u},[o.createVNode(Pt,{options:s.value,showCloseButton:c.value,animate:e.animate,onClose:V=>p(V,s.value)},null)])}}});class Ot{constructor(){me(this,"notifyRefs",[]);me(this,"globalConfig",o.reactive({}))}escapeAllHtml(t){if(typeof t!="string"||!t)return"";const n=document.createElement("div");return n.textContent=t||"",n.innerHTML.replace(/\\n/g,"<br>").replace(/\\t/g," ").replace(/\\r/g,"")}createNotifyInstance(t){const n=this,r=Object.assign({timeout:3e3,position:"bottom-right",showCloseButton:!0,safeHtml:!0},this.globalConfig,{...t}),l=document.createElement("div");l.style.display="contents";const a=o.createApp({setup(){var c;const u=o.ref();function s(){u.value.container.style.transform="scale(0)",setTimeout(()=>{n.updateNotifyPositionForClose(r,u),a.unmount()},220)}if(r.position.indexOf("top")>-1){const m=n.getNotifyInstances(r.position),f=m[m.length-1];if(f){const g=f.value.container.getBoundingClientRect();r.top=g.bottom}}return r.safeHtml&&((c=r.options)!=null&&c.message)&&(r.options.message=n.escapeAllHtml(r.options.message)),o.onUnmounted(()=>{document.body.removeChild(l)}),o.onMounted(()=>{n.updateNotifyPositionForCreate(r,u)}),()=>o.createVNode(o.Transition,{mode:"out-in",name:"fade",appear:!0},{default:()=>[o.createVNode(Tt,o.mergeProps({ref:u},r,{onClose:s}),null)]})}});return a.provide("NotifyService",this),document.body.appendChild(l),a.use(Le.LocaleService.i18n),a.mount(l),a}getNotifyInstances(t){return this.notifyRefs.filter(n=>n.value.notifyPosition===t)}updateNotifyPositionForCreate(t,n){if(this.notifyRefs&&this.notifyRefs.length){const i=window.innerHeight;t.position.indexOf("bottom")>-1&&this.getNotifyInstances(t.position).forEach(r=>{const l=r.value.container.getBoundingClientRect();r.value.container.style.bottom=l.height+i-l.bottom+"px"})}this.notifyRefs=[...this.notifyRefs,n]}updateNotifyPositionForClose(t,n){const i=this.notifyRefs.indexOf(n);if(t.position.indexOf("top")>-1){const r=this.getNotifyInstances(t.position),l=r.indexOf(n);r.slice(l+1).forEach(a=>{a.value.container.style.top=a.value.container.offsetTop-a.value.container.offsetHeight+"px"})}i>-1&&this.notifyRefs.splice(i,1)}show(t){return this.createNotifyInstance(t)}buildNotifyProps(t,n){let i="",r="",l,a,u;typeof n=="string"?i=n:n&&(i=n.message||"",r=n.title||"",a=n.position||null,u=n.showCloseButton!=null?n.showCloseButton:null,l=n.timeout!=null?n.timeout:null);const c={options:{type:t,message:i,title:r}};return a!=null&&(c.position=a),u!=null&&(c.showCloseButton=u),l!=null&&(c.timeout=l),c}info(t){const n=this.buildNotifyProps("info",t);return this.show(n)}success(t){const n=this.buildNotifyProps("success",t);return this.show(n)}warning(t){const n=this.buildNotifyProps("warning",t);return this.show(n)}error(t){const n=this.buildNotifyProps("error",t);return this.show(n)}close(t){t&&t.unmount()}closeAll(){this.notifyRefs.forEach(t=>{t==null||t.value.closeToast()}),this.notifyRefs.length=0}}const ci=Symbol("NOTIFY_SERVICE_TOKEN");Tt.install=e=>{e.component(Tt.name,Tt),e.component(Pt.name,Pt);const t=new Ot;e.provide(ci,t),e.provide("FNotifyService",t)};const ui={designerHostService:{type:Object,default:{}},componentType:{type:String,default:""},bindingEntityId:{type:String,default:""},steps:{type:Array,default:["selectEntity","selectFields"]},targetComponentInstance:{type:Object,default:{}}};`${Le.LocaleService.getLocaleValue("datagrid.loadingMessage")}`;const di={customClass:{type:String,default:""},sort:{type:Object},filter:{type:Object},autoCheckChildren:{type:Boolean,default:!1},columns:{type:Array,default:[]},columnOption:{type:Object},commandOption:{type:Object,default:{enable:!1,commands:[]}},data:{type:Array,default:[]},disabled:{type:Boolean,default:!1},disabledField:{type:String,default:"disabled"},displayField:{type:String,default:"name"},editable:{type:Boolean,default:!1},editOption:{type:Object,default:{selectOnEditing:!1,editMode:"cell"}},fit:{type:Boolean,default:!1},header:{type:Object},height:{type:Number,default:-1},hierarchy:{type:Object,default:{cascadeOption:{autoCancelParent:!0,autoCheckChildren:!1,autoCheckParent:!1,selectionRange:"All"},parentIdField:"parent"}},id:{type:String,default:""},idField:{type:String,default:"id",required:!0},loadData:{type:Function},loading:{type:Boolean,default:!1},minHeight:{type:Number,default:300},minWidth:{type:Number,default:400},newDataItem:{type:Function,default:()=>{}},pagination:{type:Object,default:{enable:!1,mode:"server",size:-1}},rowNumber:{type:Object,default:{enable:!0,width:36,heading:"序号"}},rowOption:{type:Object,default:{wrapContent:!1}},selection:{type:Object,default:{enableSelectRow:!0,multiSelect:!1,multiSelectMode:"DependOnCheck",showCheckbox:!1,showSelectAll:!1,showSelection:!1}},selectionValues:{type:Array,default:[]},showBorder:{type:Boolean,default:!1},showHeader:{type:Boolean,default:!0},showHorizontalLines:{type:Boolean,default:!0},showLines:{type:Boolean,default:!1},showOptions:{type:Boolean,default:!1},showScrollBar:{type:String,default:"auto"},showSetting:{type:Boolean,default:!1},showStripe:{type:Boolean,default:!0},showTreeNodeIcons:{type:Boolean,default:!1},showVerticallLines:{type:Boolean,default:!1},treeNodeIconsData:{type:[Object,String],default:{}},width:{type:Number,default:-1},virtualized:{type:Boolean,default:!1},emptyTemplate:{type:Object},summary:{type:Object,default:{enable:!1,groupFields:["numericField1","numericField2"]}},autoHeight:{type:Boolean,default:!1},visible:{type:Boolean,default:!0},checkboxPosition:{type:String,default:"after-expand"},enableColumnSettingSolution:{type:Boolean,default:!1},searchable:{type:Boolean,default:!1},searchPlaceholder:{type:String,default:""},customSearch:{type:Function},beforeEditCell:{type:Function,default:e=>!0},focusOnEditingCell:{type:Boolean,default:!0}},fi="enum",mi="boolean";function pi(e){const{formatter:t}=e;return!t||typeof t=="function"?null:t}function gi(e,t){const n=t.options||t,{data:i}=n;if(!i||!i.length)return"";const r=Object.prototype.hasOwnProperty.call(n,"valueField")&&n.valueField||"value",l=Object.prototype.hasOwnProperty.call(n,"textField")&&n.textField||"name";if(typeof e=="string"&&e.includes(",")){const u=e.split(","),s=i.reduce((m,f)=>(m[f[r]]=f,m),{}),c=u.map(m=>{var f;return(f=s[m])==null?void 0:f[l]}).filter(m=>m!=null);return c.length?c.join(","):""}const a=i.find(u=>u[r]===e);return(a==null?void 0:a[l])??(e==null?"":String(e))}function hi(e,t){if(e==null)return"";const n=t.options||t,i=e?n==null?void 0:n.trueText:n==null?void 0:n.falseText;return i==null?"":String(i)}function yi(e,t){const n=Cn.resolveField(t,e.field),i=pi(e),r=i==null?void 0:i.type;return r===fi?gi(n,i):r===mi||e.dataType==="boolean"?hi(n,i||{}):n==null?"":String(n)}function vi(e,t,n,i,r,l,a,u,s,c,m,f,g,v,p,b,F,V,y){const{calculateCellPositionInRow:w}=l,{columnContext:M,hasLeftFixedColumn:N,hasRightFixedColumn:E}=a,{gridDataStyle:T,leftFixedGridDataStyle:d,rightFixedGridDataStyle:C}=v,{renderDataRow:h}=le.getHierarchyRow(e,t,M,F,u,s,c,m,f,g,v,p,b,V,y),x=[h];function k(Y,q){const $=w(Y);return F.value.filter(ne=>ne.visible!==!1).map((ne,W)=>x[ne.type](ne,$,q,W))}function D(){return o.createVNode("div",{ref:i,class:"fv-grid-content-left-fixed"},[o.createVNode("div",{class:"fv-grid-data",style:d.value},[k(M.value.leftColumns.filter(Y=>Y.visible),"left")])])}function j(){return o.createVNode("div",{ref:n,class:"fv-grid-content-primary"},[o.createVNode("div",{class:"fv-grid-data",style:T.value},[k(M.value.primaryColumns.filter(Y=>Y.visible),"primary")])])}function L(){return o.createVNode("div",{ref:r,class:"fv-grid-content-right-fixed"},[o.createVNode("div",{class:"fv-grid-data",style:C.value},[k(M.value.rightColumns.filter(Y=>Y.visible),"right")])])}function J(){const Y=[];return N.value&&Y.push(D()),Y.push(j()),E.value&&Y.push(L()),Y}return{renderDataArea:J}}const Rt=o.defineComponent({name:"FTreeGrid",props:di,emits:["selectionChange","clickRow","expandNode","unSelectItem","dblclickNode","doubleClickRow","selectItem","filterChanged","unSelectAll","selectAll","sortChanged","selectionUpdate","beginEditCell","endEditCell"],setup(e,t){var yn,vn;const n=o.ref(!1),i=o.ref(!1),r=0,l=o.ref(((yn=e.rowOption)==null?void 0:yn.height)||28);let a=[],u=[];const s=o.ref(20),c=o.ref(e.columns),m=le.useIdentify(e),{idField:f}=m,g=o.ref(),v=o.ref(),p=o.ref(),b=o.ref(),F=o.ref(),V=o.ref([]),y=o.ref(!1),w=o.ref(((vn=e.rowOption)==null?void 0:vn.wrapContent)||!1),M=le.useGroupData(e,m),N=le.useFilter(e,t),E=le.useHierarchy(e),{collapseField:T}=E,{showLoading:d,renderLoading:C}=le.useLoading(e,g),h=le.useDataView(e,new Map,N,E,m),{dataView:x}=h,k=le.useSelection(e,h,m,V,t),{showSelection:D,selectedValues:j}=k,L=le.useSelectHierarchyItem(e,V,h,m,k,t),J=o.computed(()=>e.disabled),Y=o.computed(()=>e.virtualized?Math.min(h.dataView.value.length,s.value):h.dataView.value.length),q=le.usePagination(e,h),{shouldRenderPagination:$}=q,{containerStyleObject:ne}=le.useDataViewContainerStyle(e,V),W=o.ref(""),Q=o.ref([]),he=o.computed(()=>e.searchable||!1),pe=o.ref(0),ie=o.computed(()=>Q.value.length?`${pe.value+1}/${Q.value.length}`:""),Se=o.computed(()=>Le.LocaleService.getRealPropertyValue(e.searchPlaceholder,"","datagrid.search.placeholder")),Be=o.computed(()=>Le.LocaleService.getLocaleValue("datagrid.search.search")),we=o.computed(()=>Le.LocaleService.getLocaleValue("datagrid.search.prev")),Z=o.computed(()=>Le.LocaleService.getLocaleValue("datagrid.search.next")),S=o.computed(()=>Le.LocaleService.getLocaleValue("datagrid.search.clear")),K=le.useCommandColumn(e),{applyCommands:ee}=K;ee(c);const{applyColumnSetting:oe,removeColumnSetting:ge}=le.useSettingColumn(e);e.showSetting&&oe(c);const Ne=le.useColumn(e,t),Oe=le.useSort(e),{applyColumnSorter:De,columnContext:ve,updateColumnRenderContext:ke}=Ne;De(h,Oe);const je=le.useGroupColumn(e,ve),Me=le.useRow(e,t,k,m),Fe=le.useEdit(e,t,m,Me,V),ot=le.useVisualDataBound(e,h,l),st=le.useVisualDataCell(e,Fe,ot),ct=le.useVisualDataRow(e,h,Fe,E,m,ot,st,l),We=le.useVisualData(e,c,h,Y,r,ct),{getVisualData:Qe}=We,ut=le.useCellPosition(e,ve,l,n),et=le.useSidebar(e,k),{sidebarWidth:it}=et,Ve=le.useVirtualScroll(e,h,V,ve,We,Y,r,it,l,n),{onWheel:O,dataGridWidth:re,viewPortHeight:be,viewPortWidth:Ce,resetScroll:qe,updateVisibleRowsOnLatestVisibleScope:ht}=Ve,rt=le.useFitColumn(e,ve,v,Ce,je),{calculateColumnsSize:dt}=rt,kt=le.useFilterHistory(),jt=le.useColumnFilter(v,F,h,kt,Ve),$t=le.useDragColumn(e,t,Ne,h,je,M,Ve),qt=o.computed(()=>{const P={"fv-grid":!0,"fv-grid-bordered":e.showBorder,"fv-grid-horizontal-bordered":e.showHorizontalLines,"fv-datagrid-strip":e.showStripe};return Ee.getCustomClass(P,e.customClass)}),At=o.computed(()=>({"fv-grid-content":!0,"fv-grid-content-hover":y.value,"fv-grid-wrap-content":w.value,"fv-grid-scrollbar-visible":Ve.shouldShowVirticalScrollbar.value&&y.value})),{renderDataArea:_t}=vi(e,t,p,b,F,ut,Ne,h,Fe,E,Me,k,L,Ve,We,ot,V,l,n),{renderGridHeader:Ut,renderGridColumnResizeOverlay:Bt,shouldShowHeader:zt}=le.getColumnHeader(e,t,v,b,F,Ne,h,$t,jt,N,kt,rt,je,k,et,Oe,Ve,Ce,V,i),{renderDataGridSidebar:I}=le.getSidebar(e,Me,k,et,Ve),{renderDisableMask:G}=le.getDisableMask(),{renderHorizontalScrollbar:X}=le.getHorizontalScrollbar(e,v,Ve),{renderVerticalScrollbar:te}=le.getVerticalScrollbar(e,v,Ve);let de=null;function ye(){var P,H,ae;if(v.value&&v.value.clientHeight>0&&((P=v.value)==null?void 0:P.clientWidth)>0){const ue=Math.ceil(v.value.clientHeight/l.value);ue>s.value&&(s.value=ue,ht()),be.value=((H=p.value)==null?void 0:H.clientHeight)||0,re.value=((ae=v.value)==null?void 0:ae.clientWidth)||0,p.value&&(Ce.value=p.value.clientWidth)}v.value&&(v.value.clientHeight>0||v.value.clientWidth>0)&&dt()}function He(){de!==null&&cancelAnimationFrame(de),de=requestAnimationFrame(()=>{de=null,ye()})}o.onMounted(()=>{v.value&&(s.value=Math.max(Math.ceil(v.value.clientHeight/l.value),s.value),V.value=Qe(0,Y.value+r-1),bn.useResizeObserver(v.value,He),dt(),o.nextTick(()=>{v.value&&(re.value=v.value.clientWidth),p.value&&(Ce.value=p.value.clientWidth,be.value=p.value.clientHeight)})),d.value&&C()}),o.onUnmounted(()=>{de!==null&&cancelAnimationFrame(de)});function $e(P){h.collapseTo(P),h.reOrderVisibleIndex(),qe()}function _e(P){h.expandTo(P),h.reOrderVisibleIndex(),qe()}function Ue(){const P=k.getSelectionRow();return P?P.dataIndex-1:-1}function Pe(P){const H=P!==void 0?P:Ue(),ae=h.insertNewDataItem(H===-1?0:H);return V.value=Qe(0,Y.value+r-1),ae}function Ye(){const P=Ue();h.insertNewChildDataItem(P),V.value=Qe(0,Y.value+r-1)}function Ae(P,H){const ae=V.value.find(ce=>ce.raw[f.value]===H),ue=ae?ae.dataIndex-1:-1;h.insertNewChildDataItems(P,ue)}function Re(){const P=Ue(),H=L.getNextSelectableHierarchyItemId(P);h.removeHierarchyDataItem(P),V.value=Qe(0,Y.value+r-1),H&&L.selectItemById(H)}function yt(P){Fe.onEditingRow(P)}function vt(P){Fe.acceptEditingRow(P)}function bt(P){Fe.cancelEditingRow(P)}function Ct(P){P&&(c.value=P,ee(c),e.showSetting&&oe(c),ke(c.value),De(h,Oe),dt())}o.watch(()=>e.columns,P=>{if(e.showSetting&&e.enableColumnSettingSolution){Ct(c.value);return}Ct(P)});function Rr(P,H){if(P){const ae=!!(H!=null&&H.keepScrollTop||H!=null&&H.keepScrollPosition),ue=ae?Ve.offsetY.value:0;h.load(P),h.reOrderVisibleIndex(),le.refreshScrollAfterDataSourceLoad({keepScroll:ae,savedOffsetY:ue,resetScroll:qe,scrollTo:Ve.scrollTo})}}function Ht(P){Me.activeRowById(P)}function Lr(P,H={isCurrent:!0}){H!=null&&H.isCurrent&&Ht(P),L.selectItemById(P)}function $r(P){const H=V.value.find(ae=>ae.raw[m.idField.value]===P);H&&Me.clickRowItem(H)}function qr(P){L.selectItemByIds(P)}function Ar(){return k.getSelectedItems()}function mn(){k.clearSelection()}function _r(){k.emptyCurrentRowId()}const Ur=o.computed(()=>!V.value||!V.value.length),{renderEmpty:zr}=le.getEmpty(e,t);function Hr(){return k.getSelectionRow()}function Gr(P,H={clearCurrent:!0}){H!=null&&H.clearCurrent&&Ht(""),L.unSelectItemByIds(P)}function Wr(){return k.currentSelectedDataId.value}function Yr(P,H,ae){const ue=x.value.find(ce=>ce[f.value]===P);if(ue){if(Object.keys(ue).forEach(fe=>{Object.prototype.hasOwnProperty.call(H,fe)&&(ue[fe]=H[fe])}),ae){const{collapseField:fe,disabledField:ze,checkedField:Je,visibleField:Ge,hasChildren:xt}=ae;fe&&!xe.isUndefined(H[fe])&&(ue.__fv_collapse__=H[fe]),Je&&!xe.isUndefined(H[Je])&&(ue.__fv_checked__=H[Je]),ze&&!xe.isUndefined(H[ze])&&(ue.__fv_disabled__=H[ze]),Ge&&!xe.isUndefined(H[Ge])&&(ue.__fv_visible__=H[Ge]),xe.isUndefined(xt)||(ue.__fv_hasChildren__=xt)}const ce=V.value.find(fe=>fe.raw[f.value]===P),se=V.value.findIndex(fe=>fe.raw[f.value]===P);if(ce){if(ce.raw=ue,Object.keys(ce.data).forEach(fe=>{ce.data[fe].updateData(ue)}),ae){const{collapseField:fe,disabledField:ze,checkedField:Je,visibleField:Ge,hasChildren:xt}=ae;fe&&!xe.isUndefined(H[fe])&&(ce.collapse=H[fe]),Je&&!xe.isUndefined(H[Je])&&(ce.checked=H[Je]),ze&&!xe.isUndefined(H[ze])&&(ce.disabled=H[ze]),Ge&&!xe.isUndefined(H[Ge])&&(ce.visible=H[Ge]),xe.isUndefined(xt)||(ce.raw.__fv_hasChildren__=xt)}V.value=[...V.value.slice(0,se),ce,...V.value.slice(se+1)],h.updateSummary()}}}function Xr(P){return Object.prototype.hasOwnProperty.call(P,"raw")?h.hasRealChildren(P.raw):h.hasRealChildren(P)}function Qr(P){const H=h.dataView.value.find(ae=>ae[f.value]===P);return H?H[T.value]:""}function Jr(){return T.value}o.watch(()=>e.showSetting,(P,H)=>{P!==H&&(P?oe(c):ge(c),Ct(c.value))});function Zr(P){return V.value.filter(H=>P.includes(H.raw[e.idField]))}function pn(P){const H=m.idField.value,ae=V.value.find(ue=>ue.raw[H]===P);ae&&Me.changeRow(ae)}function Kr(){k.keepSelectingOnPaging.value||mn(),h.updateVisibleDataSummary(V.value)}function el(){Fe.endEditCell()}function tl(P){k.updateSelectedValues(P)}function nl(P){k.removeSelectedValues(P)}const ol=100;function il(P,H){const ae=H[P].__fv_layer__||0;let ue=P+1;for(;ue<H.length&&(H[ue].__fv_layer__||0)>ae;)ue++;return ue-1}function rl(P){const H=h.dataView.value,ae=E.collapseField.value,ue=P.__fv_index__,ce=P.__fv_layer__||0;if(typeof ue!="number"||P.__fv_visible__===!1||P[ae])return;let se=ue+1;for(;se<H.length;){const fe=H[se];if((fe.__fv_layer__||0)<=ce)break;if(fe.__fv_visible__=!0,fe[ae]){se=il(se,H)+1;continue}se++}}function ll(P){let H=P;const ae=[];let ue=0;for(;H&&H[E.parentIdField.value]&&ue<ol;){ue++;const ce=h.rawView.value.find(se=>se[m.idField.value]===H[E.parentIdField.value]);if(ce)ce[E.collapseField.value]&&ae.push(ce),H=ce;else break}ae.reverse().forEach(ce=>{ce[E.collapseField.value]=!1,h.toggleChildrenVisibiltyByCollapseStatus(ce),rl(ce)})}function al(P,H){if(P.length!==H.length)return!1;const ae=P.map(ce=>ce[m.idField.value]).sort(),ue=H.map(ce=>ce[m.idField.value]).sort();return ae.every((ce,se)=>ce===ue[se])}function Gt(){const P=Q.value[pe.value];P&&(ll(P),o.nextTick(()=>{h.reOrderVisibleIndex();const H=P[m.idField.value],ae=P.__fv_visible_index__;ae!==void 0&&ae!==""&&ae>=0?(Ve.scrollToRowByIndex(ae),o.nextTick(()=>{pn(H)})):console.warn("搜索结果的节点不在当前可见范围内,无法定位",H)}))}function gn(){!W.value.trim()||!Q.value.length||(pe.value=(pe.value+1)%Q.value.length,Gt())}function sl(){if(!W.value.trim()){Q.value=[],pe.value=0;return}const P=[],H=W.value.toLowerCase().trim();h.rawView.value.forEach(ue=>{let ce=!1;e.customSearch?ce=e.customSearch(H,ue,e.columns):e.columns.forEach(se=>{if(!ce&&se.field){const fe=yi(se,ue);fe&&fe.toLowerCase().includes(H)&&(ce=!0)}}),ce&&P.push(ue)});const ae=!al(P,Q.value);P.length>0?ae?(Q.value=P,pe.value=0,Gt()):gn():(Q.value=[],pe.value=0)}function cl(){if(!W.value.trim()||!Q.value.length)return;const P=Q.value.length;pe.value=(pe.value-1+P)%P,Gt()}const wt=xe.debounce(sl,300);function hn(){wt.cancel(),W.value="",Q.value=[],pe.value=0}o.watch(W,P=>{P.trim()||(wt.cancel(),Q.value=[],pe.value=0)}),o.onUnmounted(()=>{wt.cancel()});function ul(P){if(P.key==="Enter"){if(!W.value.trim())return;wt()}}function dl(){W.value.trim()&&wt()}t.expose({activeRowById:Ht,addNewDataItem:Pe,addNewChildDataItem:Ye,addChildrenToNode:Ae,collapseTo:$e,expandTo:_e,removeDataItem:Re,editDataItem:yt,acceptDataItem:vt,cancelDataItem:bt,updateColumns:Ct,updateDataSource:Rr,selectItemById:Lr,selectItemByIds:qr,getSelectedItems:Ar,clearSelection:mn,getSelectionRow:Hr,clickRowItemById:$r,unSelectItemByIds:Gr,getCurrentRowId:Wr,reassignRowData:Yr,hasChildren:Xr,getCollapseField:Jr,getCollapseStatusById:Qr,getVisibleDataByIds:Zr,selectRowById:pn,updateDerivedData:Kr,emptyCurrentRowId:_r,calculateColumnsSize:dt,endEditCell:el,updateSelectedValues:tl