UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

2 lines (1 loc) 26.5 kB
(function(x,f){typeof exports=="object"&&typeof module<"u"?f(exports,require("vue"),require("../button-edit/index.umd.js"),require("lodash-es"),require("../tree-view/index.umd.js"),require("../input-group/index.umd.js"),require("../common/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","../button-edit/index.umd.js","lodash-es","../tree-view/index.umd.js","../input-group/index.umd.js","../common/index.umd.js"],f):(x=typeof globalThis<"u"?globalThis:x||self,f(x["combo-tree"]={},x.Vue,x.FButtonEdit,x.LodashES,x.FTreeView,x.inputGroup,x.common))})(this,function(x,f,te,B,ne,re,oe){"use strict";function L(e,t){let n;function u(r){const{properties:o,title:c,ignore:i}=r,a=i&&Array.isArray(i),l=Object.keys(o).reduce((d,g)=>((!a||!i.find(w=>w===g))&&(d[g]=o[g].type==="object"&&o[g].properties?u(o[g]):B.cloneDeep(o[g].default)),d),{});if(c&&(!a||!i.find(d=>d==="id"))){const d=c.toLowerCase().replace(/-/g,"_");l.id=`${d}_${Math.random().toString().slice(2,6)}`}return l}function v(r){const{properties:o,title:c,required:i}=r;if(i&&Array.isArray(i)){const a=i.reduce((l,d)=>(l[d]=o[d].type==="object"&&o[d].properties?u(o[d]):B.cloneDeep(o[d].default),l),{});if(c&&i.find(l=>l==="id")){const l=c.toLowerCase().replace(/-/g,"_");a.id=`${l}_${Math.random().toString().slice(2,6)}`}return a}return{type:c}}function T(r,o={},c){const i=e[r];if(i){let a=v(i);const l=t[r];return a=l?l({getSchemaByType:T},a,o,c):a,n!=null&&n.appendIdentifyForNewControl&&n.appendIdentifyForNewControl(a),a}return null}function y(r,o){const c=u(o);return Object.keys(c).reduce((i,a)=>(Object.prototype.hasOwnProperty.call(r,a)&&(i[a]&&B.isPlainObject(i[a])&&B.isPlainObject(r[a]||!r[a])?Object.assign(i[a],r[a]||{}):i[a]=r[a]),i),c),c}function h(r,o){return Object.keys(r).filter(i=>r[i]!=null).reduce((i,a)=>{if(o.has(a)){const l=o.get(a);if(typeof l=="string")i[l]=r[a];else{const d=l(a,r[a],r);Object.assign(i,d)}}else i[a]=r[a];return i},{})}function S(r,o,c=new Map){const i=y(r,o);return h(i,c)}function s(r){var c;const o=r.type;if(o){const i=e[o];if(!i)return r;const a=y(r,i),l=((c=r.editor)==null?void 0:c.type)||"";if(l){const d=e[l],g=y(r.editor,d);a.editor=g}return a}return r}function p(r){n=r}return{getSchemaByType:T,resolveSchemaWithDefaultValue:s,resolveSchemaToProps:S,mappingSchemaToProps:h,setDesignerContext:p}}const A={},z={},{getSchemaByType:Qe,resolveSchemaWithDefaultValue:ie,resolveSchemaToProps:ae,mappingSchemaToProps:le,setDesignerContext:Xe}=L(A,z);function ce(e={}){function t(s,p,r,o){if(typeof r=="number")return o[s].length===r;if(typeof r=="object"){const c=Object.keys(r)[0],i=r[c];if(c==="not")return Number(o[s].length)!==Number(i);if(c==="moreThan")return Number(o[s].length)>=Number(i);if(c==="lessThan")return Number(o[s].length)<=Number(i)}return!1}function n(s,p,r,o){return o[s]&&o[s].propertyValue&&String(o[s].propertyValue.value)===String(r)}const u=new Map([["length",t],["getProperty",n]]);Object.keys(e).reduce((s,p)=>(s.set(p,e[p]),s),u);function v(s,p){const r=s;return typeof p=="number"?[{target:r,operator:"length",param:null,value:Number(p)}]:typeof p=="boolean"?[{target:r,operator:"getProperty",param:s,value:!!p}]:typeof p=="object"?Object.keys(p).map(o=>{if(o==="length")return{target:r,operator:"length",param:null,value:p[o]};const c=o,i=p[o];return{target:r,operator:"getProperty",param:c,value:i}}):[]}function T(s){return Object.keys(s).reduce((r,o)=>{const c=v(o,s[o]);return r.push(...c),r},[])}function y(s,p){if(u.has(s.operator)){const r=u.get(s.operator);return r&&r(s.target,s.param,s.value,p)||!1}return!1}function h(s,p){return T(s).reduce((c,i)=>c&&y(i,p),!0)}function S(s,p){const r=Object.keys(s),o=r.includes("allOf"),c=r.includes("anyOf"),i=o||c,d=(i?s[i?o?"allOf":"anyOf":"allOf"]:[s]).map(w=>h(w,p));return o?!d.includes(!1):d.includes(!0)}return{parseValueSchema:S}}const ue={convertTo:(e,t,n,u)=>{e.appearance||(e.appearance={}),e.appearance[t]=n},convertFrom:(e,t,n)=>e.appearance?e.appearance[t]:e[t]},se={convertFrom:(e,t,n)=>e.buttons&&e.buttons.length?`共 ${e.buttons.length} 项`:"无"},de={convertTo:(e,t,n,u)=>{e.editor&&(e.editor[t]=n)},convertFrom:(e,t,n)=>e.editor&&Object.prototype.hasOwnProperty.call(e.editor,t)?e.editor[t]:e[t]},fe={button:{type:"button",name:"按钮"},"response-toolbar":{type:"response-toolbar",name:"工具栏"},"response-toolbar-item":{type:"response-toolbar-item",name:"按钮"},"content-container":{type:"content-container",name:"容器"},"input-group":{type:"input-group",name:"文本"},textarea:{type:"textarea",name:"多行文本"},lookup:{type:"lookup",name:"帮助"},"number-spinner":{type:"number-spinner",name:"数值"},"date-picker":{type:"date-picker",name:"日期"},switch:{type:"switch",name:"开关"},"radio-group":{type:"radio-group",name:"单选组"},"check-box":{type:"check-box",name:"复选框"},"check-group":{type:"check-group",name:"复选框组"},"combo-list":{type:"combo-list",name:"下拉列表"},"response-form":{type:"response-form",name:"卡片面板"},"response-layout":{type:"response-layout",name:"布局容器",icon:"response-layout-3"},"response-layout-item":{type:"response-layout-item",name:"布局",icon:"response-layout-1"},"tree-grid":{type:"tree-grid",name:"树表格"},"tree-grid-column":{type:"tree-grid-column",name:"树表格列"},"data-grid":{type:"data-grid",name:"表格"},"data-grid-column":{type:"data-grid-column",name:"表格列"},module:{type:"Module",name:"模块"},component:{type:"component",name:"组件"},tabs:{type:"tabs",name:"标签页"},"tab-page":{type:"tab-page",name:"标签页项",dependentParentControl:"Tab"},"tab-toolbar-item":{type:"tab-toolbar-item",name:"标签页工具栏按钮"},"html-template":{type:"html-template",name:"模板容器"},"time-picker":{type:"time-picker",name:"时间选择"},section:{type:"section",name:"分组面板"},"section-toolbar":{type:"section-toolbar",name:"分组面板工具栏"},"section-toolbar-item":{type:"section-toolbar-item",name:"分组面板按钮"},splitter:{type:"splitter",name:"分栏面板"},"splitter-pane":{type:"splitter-pane",name:"分栏面板项",dependentParentControl:"Splitter"},"component-ref":{type:"component-ref",name:"组件引用节点"},uploader:{type:"uploader",name:"附件上传"},"page-header":{type:"page-header",name:"页头"},"page-footer":{type:"page-footer",name:"页脚"},"tab-toolbar":{type:"tab-toolbar",name:"标签页工具栏"},fieldset:{type:"fieldset",name:"分组"},"query-solution":{type:"query-solution",name:"筛选方案"},drawer:{type:"drawer",name:"抽屉"},"external-container":{type:"external-container",name:"外部容器",icon:"content-container"},"list-nav":{type:"list-nav",name:"列表导航"},"list-view":{type:"list-view",name:"列表"},"filter-bar":{type:"filter-bar",name:"筛选条"},"language-textbox":{type:"language-textbox",name:"多语输入框"}},me={convertFrom:(e,t,n)=>{var v;const u=e.editor&&e.editor[t]?e.editor[t]:e[t];return((v=fe[u])==null?void 0:v.name)||u}},pe={convertTo:(e,t,n,u)=>{e[t]=e[t]},convertFrom:(e,t,n)=>e.editor?n.getRealEditorType(e.editor.type):""},ve={convertTo:(e,t,n,u)=>{(e.type==="data-grid-column"||e.type==="tree-grid-column")&&(e.formatter?e.formatter[t]=n:e.formatter={[t]:n})},convertFrom:(e,t,n)=>{if(e.formatter){if(t==="trueText")return e.formatter.trueText;if(t==="falseText")return e.formatter.falseText;if(t==="prefix")return e.formatter.prefix;if(t==="suffix")return e.formatter.suffix;if(t==="precision")return e.formatter.precision;if(t==="decimal")return e.formatter.decimal;if(t==="thousand")return e.formatter.thousand;if(t==="tempDateFormat")return e.formatter.dateFormat==="yyyy年MM月dd日"?"yearMonthDay":e.formatter.dateFormat==="yyyy-MM-dd HH:mm:ss"?"yyyy-MM-ddTHH:mm:ss":e.formatter.dateFormat==="yyyy/MM/dd HH:mm:ss"?"yyyy/MM/ddTHH:mm:ss":e.formatter.dateFormat==="yyyy年MM月dd日 HH时mm分ss秒"?"yearMonthDayHourMinuteSecond":e.formatter.tempDateFormat||e.formatter.dateFormat||"yyyy-MM-dd";if(t==="customFormat")return e.formatter.customFormat;if(t==="type")return e.formatter.type||"none"}return"none"}},ge={convertTo:(e,t,n,u)=>{e.command?e.command[t]=n:e.command={[t]:n},t==="enable"&&n&&(e.command.commands||(e.command.commands=[{text:"编辑",type:"primary",command:"edit"},{text:"删除",type:"danger",command:"remove"}]))},convertFrom:(e,t,n)=>e.command&&t==="enable"?e.command.enable:""},ye={convertTo:(e,t,n,u)=>{e.column?e.column[t]=n:e.column={[t]:n},t==="fitColumns"&&n&&(e.column.fitMode||(e.column.fitMode="average"))},convertFrom:(e,t,n)=>{if(e.column){if(t==="fitColumns")return e.column.fitColumns;if(t==="fitMode")return e.column.fitMode}return""}},be={convertTo:(e,t,n,u)=>{e.summary?e.summary[t]=n:e.summary={[t]:n},t==="enable"&&n&&(e.summary?e.summary.groupFields||(e.summary.groupFields=[]):e.summary={enable:n,groupFields:[]})},convertFrom:(e,t,n)=>e.summary&&t==="enable"?e.summary.enable:e.type==="data-grid-column"?e.enableSummary===void 0?!1:e.enableSummary:""},Se={convertTo:(e,t,n,u)=>{e.group?e.group[t]=n:e.group={[t]:n},t==="enable"&&n&&(e.group?e.group.groupFields||(e.group.groupFields=[]):e.group={enable:n,groupFields:[],showSummary:!1})},convertFrom:(e,t,n)=>{if(e.group){if(t==="enable")return e.group.enable;if(t==="showSummary")return e.group.showSummary}}},he={convertFrom:(e,t)=>e.binding?e.binding.path:"",convertTo:(e,t,n)=>{if(n&&n.length>0){const u=n[0];e.binding||(e.binding={}),e.binding.type="Form",e.binding.path=u.bindingField,e.binding.field=u.id,e.binding.fullPath=u.path,e.path=u.bindingPath}}},Fe={convertTo:(e,t,n,u)=>{e.pagination||(e.pagination={}),e.pagination[t]=n},convertFrom:(e,t,n)=>e.pagination?e.pagination[t]:e[t]},Ce={convertTo:(e,t,n,u)=>{e.rowNumber||(e.rowNumber={}),e.rowNumber[t]=n},convertFrom:(e,t,n)=>e.rowNumber?e.rowNumber[t]:e[t]},Te={convertTo:(e,t,n,u)=>{e.selection||(e.selection={}),e.selection[t]=n},convertFrom:(e,t,n)=>e.selection?e.selection[t]:e[t]},xe={convertFrom:(e,t,n)=>e[t]&&e[t].length?`共 ${e[t].length} 项`:""},we={convertFrom:(e,t)=>e[t]||"",convertTo:(e,t,n)=>{e[t]=n}},Oe={convertTo:(e,t,n,u)=>{e.size||(e.size={}),e.size[t]=n},convertFrom:(e,t,n)=>e.size?e.size[t]:e[t]},Pe={convertFrom:(e,t,n)=>{var u,v;return(u=e.formatter)!=null&&u.data&&t==="formatterEnumData"&&!e.formatterEnumData?(v=e.formatter)==null?void 0:v.data:e.formatterEnumData}},Me={convertTo:(e,t,n,u)=>{e.sort||(e.sort={}),e.sort[t]=n},convertFrom:(e,t,n)=>{var u,v;if(t==="mode")return((u=e.sort)==null?void 0:u.mode)||"client";if(t==="multiSort")return!!((v=e.sort)!=null&&v.multiSort)}},je={convertTo:(e,t,n,u)=>{e.filter||(e.filter={}),e.filter[t]=n},convertFrom:(e,t,n)=>{var u;if(t==="mode")return((u=e.filter)==null?void 0:u.mode)||"client"}},De={convertTo:(e,t,n,u)=>{e.rowOption?e.rowOption[t]=n:e.rowOption={[t]:n}},convertFrom:(e,t,n)=>{if(e.rowOption){if(t==="customRowStyle")return e.rowOption.customRowStyle;if(t==="customCellStyle")return e.rowOption.customCellStyle}return""}};function W(e,t,n){const u=new Map([["/converter/appearance.converter",ue],["/converter/buttons.converter",se],["/converter/property-editor.converter",de],["/converter/items-count.converter",xe],["/converter/type.converter",me],["/converter/change-editor.converter",pe],["/converter/change-formatter.converter",ve],["/converter/column-command.converter",ge],["/converter/column-option.converter",ye],["/converter/summary.converter",be],["/converter/group.converter",Se],["/converter/form-group-label.converter",we],["/converter/field-selector.converter",he],["/converter/pagination.converter",Fe],["/converter/row-number.converter",Ce],["/converter/grid-selection.converter",Te],["/converter/size.converter",Oe],["/converter/change-formatter-enum.converter",Pe],["/converter/grid-sort.converter",Me],["/converter/grid-filter.converter",je],["/converter/row-option.converter",De]]),v=new Map([["string",{type:"input-group",enableClear:!1}],["boolean",{type:"combo-list",textField:"name",valueField:"value",idField:"value",enableClear:!1,editable:!1,data:[{value:!0,name:"是"},{value:!1,name:"否"}]}],["enum",{type:"combo-list",maxHeight:128,enableClear:!1,editable:!1}],["array",{type:"button-edit"}],["number",{type:"number-spinner",placeholder:""}],["events-editor",{type:"events-editor",hide:!0}]]),T=ce();function y(i,a){return()=>T.parseValueSchema(i,a)}function h(i,a,l){return i.includes("visible")&&a.visible!==void 0?typeof a.visible=="boolean"?()=>!!a.visible:a.visible===void 0?!0:y(a.visible,l):()=>!0}function S(i,a,l){return i.includes("readonly")&&a.readonly!==void 0?typeof a.readonly=="boolean"?()=>!!a.readonly:y(a.readonly,l):()=>!1}function s(i,a){const l=i.$converter||a;return typeof l=="string"&&l&&u.has(l)?u.get(l)||null:l||null}function p(i,a,l,d,g,w="",M=""){return Object.keys(i).map(F=>{const b=f.ref(1),C=F,m=i[F],O=Object.keys(m),R=m.title,k=m.type,E=v.get(k)||{type:"input-group",enableClear:!1},N=m.editor?Object.assign({},E,m.editor):Object.assign({},E),I=h(O,m,a),H=S(O,m,a);N.readonly=N.readonly===void 0?H():N.readonly;const q=m.type==="cascade"?p(m.properties,a,l,d,g,w,M):[],Ae=!0;let j=s(m,M);const ze=f.computed({get(){if(b.value){if(["class","style"].find(Je=>Je===C)&&!j&&(j=u.get("/converter/appearance.converter")||null),j&&j.convertFrom)return j.convertFrom(l,F,g,w);const D=l[F];return Object.prototype.hasOwnProperty.call(m,"defaultValue")&&(D===void 0||typeof D=="string"&&D==="")?m.type==="boolean"?m.defaultValue:m.defaultValue||"":D}return null},set(D){b.value+=1,j&&j.convertTo?(j.convertTo(d,F,D,g,w),j.convertTo(l,F,D,g,w)):(d[F]=D,l[F]=D)}}),{refreshPanelAfterChanged:We,description:_e,isExpand:Ge,parentPropertyID:Ue}=m,ee={propertyID:C,propertyName:R,propertyType:k,propertyValue:ze,editor:N,visible:I,readonly:H,cascadeConfig:q,hideCascadeTitle:Ae,refreshPanelAfterChanged:We,description:_e,isExpand:Ge,parentPropertyID:Ue};return a[C]=ee,ee})}function r(i,a,l={}){const d={},g=e[i];return g&&g.categories?Object.keys(g.categories).map(M=>{const P=g.categories[M],F=P==null?void 0:P.title,b=p(P.properties||{},d,{},l,a);return{categoryId:M,categoryName:F,properties:b}}):[]}function o(i,a,l,d,g=""){const w=a.$ref.schema,M=a.$ref.converter,P=l[w],F=P.type,b=n(P),C={},m=e[F];if(m&&m.categories){const O=m.categories[i],R=O==null?void 0:O.title;M&&Object.keys(O.properties).forEach(N=>{O.properties[N].$converter=M});const k=(O==null?void 0:O.properties)||{},E=p(k,C,b,P,d,g);return{categoryId:i,categoryName:R,properties:E}}return{categoryId:i,categoryName:"",properties:[]}}function c(i,a,l,d,g){const w=i.type,M=n(i),P={};let F=g||e[w];if(F&&Object.keys(F).length===0&&l&&l.getPropConfig&&(F=l.getPropConfig(d)),F&&F.categories){const b=[];return Object.keys(F.categories).map(C=>{const m=F.categories[C];if(m.$ref){b.push(o(C,m,i,a,d));return}const O=m==null?void 0:m.title,R=m==null?void 0:m.tabId,k=m==null?void 0:m.tabName,E=m==null?void 0:m.hide,N=m==null?void 0:m.hideTitle,I=p(m.properties||{},P,M,i,a,d,m.$converter),{setPropertyRelates:H}=m,q=m==null?void 0:m.parentPropertyID;b.push({categoryId:C,categoryName:O,tabId:R,tabName:k,hide:E,properties:I,hideTitle:N,setPropertyRelates:H,parentPropertyID:q})}),b}return[]}return{getPropertyConfigBySchema:c,getPropertyConfigByType:r,propertyConverterMap:u}}const _={},G={};W(_,G,ie);const U={},J={},{getSchemaByType:Ye,resolveSchemaWithDefaultValue:Be,resolveSchemaToProps:Ze,mappingSchemaToProps:Ke,setDesignerContext:et}=L(U,J),Q={},X={};W(Q,X,Be);function Ne(e,t,n=new Map,u=(y,h,S,s)=>h,v={},T=y=>y){return A[t.title]=t,z[t.title]=u,_[t.title]=v,G[t.title]=T,U[t.title]=t,J[t.title]=u,Q[t.title]=v,X[t.title]=T,(y={},h=!0)=>{if(!h)return le(y,n);const S=ae(y,t,n),s=Object.keys(e).reduce((p,r)=>(p[r]=e[r].default,p),{});return Object.assign(s,S)}}function Re(e,t){return{customClass:t.class,customStyle:t.style}}const ke=new Map([["appearance",Re]]),Ee={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/combo-list.schema.json",title:"combo-tree",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a combo list",type:"string"},type:{description:"The type string of number combo list component",type:"string",default:"combo-tree"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},editable:{description:"",type:"boolean",default:!0},enableLinkLabel:{description:"",type:"boolean",default:!1},label:{description:"",type:"string",default:""},lableWidth:{description:"",type:"number"},placeholder:{description:"",type:"string",default:""},valueField:{description:"",type:"string",default:"id"},titleField:{description:"",type:"string",default:"name"},textField:{description:"",type:"string",default:"name"},data:{description:"",type:"array"},readonly:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},textAlign:{description:"",type:"string",enum:["left","middle","right"],default:"left"},visible:{description:"",type:"boolean",default:!0},onBlur:{description:"",type:"string",default:""},onClickLinkLabel:{description:"",type:"sting",default:""},formatter:{type:"object",default:null},customRowStatus:{type:"object",default:null},minPanelWidth:{description:"",type:"number",default:160},idField:{description:"",type:"string",default:"id"},multiSelect:{description:"",type:"boolean",default:!1},viewType:{description:"",type:"string",default:"text"},searchFields:{description:"",type:"array",default:[]},enableSearch:{description:"",type:"boolean",default:!1},displayFormatter:{type:"object",default:null}},required:["id","type"]};function $e(e,t,n){return t}var Y=(e=>(e.Text="text",e.Tag="tag",e))(Y||{}),Z=(e=>(e.top="top",e.bottom="bottom",e.auto="auto",e))(Z||{});const V={id:{type:String},data:{type:Array,default:[]},displayText:{type:String,default:""},disabled:{type:Boolean,default:!1},dropDownIcon:{type:String,default:'<span class="f-icon f-icon-arrow-chevron-down"></span>'},editable:{type:Boolean,default:!1},enableClear:{type:Boolean,default:!0},enableSearch:{type:Boolean,default:!1},enableTitle:{type:Boolean,default:!0},fitEditor:{type:Boolean,default:!1},forcePlaceholder:{type:Boolean,default:!1},hidePanelOnClear:{type:Boolean,default:!0},idField:{type:String,default:"id"},mapFields:{type:Object},maxHeight:{type:Number,default:350},maxLength:{type:Number},multiSelect:{type:Boolean,default:!1},modelValue:{type:String,default:""},placeholder:{type:String},placement:{type:String,default:"auto"},readonly:{type:Boolean,default:!1},remoteSearch:{type:Boolean,default:!1},separator:{type:String,default:","},tabIndex:{type:Number,default:-1},textField:{type:String,default:"name"},titleField:{type:String,default:"name"},valueField:{type:String,default:"id"},viewType:{type:String,default:"text"},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},formatter:{type:Function,default:null},displayFormatter:{type:Function,default:null},editorParams:{type:Object},repositoryToken:{type:Symbol,default:null},customRowStatus:{type:Object,default:null},minPanelWidth:{type:Number,default:160},searchFields:{type:Array,default:["name"]}},K=Ne(V,Ee,ke,$e),He={data:{type:Array,default:[]},enableSearch:{type:Boolean,default:!1},idField:{type:String,default:"id"},multiSelect:{default:!1,type:Boolean},selectedValues:{type:String,default:""},separator:{type:String,default:","},textField:{type:String,default:"name"},titleField:{type:String,default:"name"},width:{type:Number},height:{type:Number},valueField:{type:String,default:"id"},formatter:{type:Function},maxHeight:{type:Number,default:350},repositoryToken:{type:Symbol,default:null},editorParams:{type:Object},customRowStatus:{type:Object,default:null},searchHandler:{type:Function,default:()=>{}}},Ve=f.defineComponent({name:"FComboTreeContainer",props:He,emits:["selectionChange"],setup(e,t){const n=f.ref(e.data),u=f.ref([]),v=f.ref(e.separator),T=f.ref(e.width),y=f.ref(e.height),h=f.ref(e.maxHeight),S=f.ref(String(e.selectedValues).split(v.value)),s=f.ref(),p={customRowStatus:e.customRowStatus};f.watch(()=>e.data,l=>{var d;n.value=l,(d=s.value)==null||d.updateDataSource(l)});const r={enableSelectRow:!0,multiSelect:e.multiSelect,showCheckbox:e.multiSelect,multiSelectMode:"OnCheckAndClick"};let o=null;e.repositoryToken&&(o=f.inject(e.repositoryToken));const c=f.computed(()=>[{field:e.textField,title:"",dataType:"string",formatter:e.formatter}]),i=f.computed(()=>{const l={};return T.value!==void 0&&(l.width=`${T.value}px`),y.value!==void 0&&(l.height=`${y.value}px`),h.value!==void 0&&h.value>0&&(l.maxHeight=`${h.value}px`,l.overflow="auto"),n.value.length===0&&(l.height="200px"),l.position="relative",l});function a(l=[]){l&&l.length>0?(u.value=[...l],S.value=u.value.map(d=>d[e.idField])):(u.value=[],S.value=[]),t.emit("selectionChange",u.value)}return f.onMounted(()=>{o&&o.getData(e.editorParams).then(l=>{n.value=l}),S.value&&s.value.activeRowById(S.value[0])}),t.expose({treeInstance:s}),()=>f.createVNode("div",{class:"f-combo-tree-container",style:i.value},[e.multiSelect&&e.enableSearch&&f.createVNode("div",{class:"p-2",style:"position: sticky;top:0;z-index: 2; background:white",onMousedown:l=>l.stopPropagation()},[f.createVNode(re.FInputGroup,{buttonContent:'<i class="f-icon f-icon-search"></i>',enableClear:!0,placeholder:"请输入搜索内容",onClear:()=>t.emit("clearSearch"),onInput:(l,d)=>e.searchHandler(d)},null)]),f.createVNode(ne,{ref:s,fit:!0,data:n.value,idField:e.idField,columns:c.value,"selection-values":S.value,onSelectionChange:a,columnOption:{fitColumns:!0,fitMode:"expand"},rowOption:p,selection:r,rowNumber:{enable:!1}},null)])}});function Ie(e){const t=f.ref(""),n=f.ref(e.modelValue),u=f.ref(e.data||[]),v=f.ref(e.editable);function T(r,o=[]){return r=r||[],r.reduce((c,i)=>(c.push(i),i.children&&i.children.length&&T(i.children,c),c),o)}function y(r){const o=String(r).split(e.separator).map((l,d)=>[l,d]),c=new Map(o),i=[];return T(u.value,i),i.filter(l=>{const d=l.data?String(l.data[e.valueField]):String(l[e.valueField]);return c.has(d)}).map(l=>l.data?l.data:l).sort((l,d)=>{const g=c.get(String(l[e.valueField]))||0,w=c.get(String(d[e.valueField]))||0;return g-w})}function h(r){const o=y(r),c=e.displayFormatter?e.displayFormatter(o):o.map(i=>i[e.textField]).join(e.separator);t.value=v.value?c||r:c}function S(r){const o=r.split(e.separator).map(a=>[a,!0]),c=new Map(o);let i=[];return u.value[0].data?T(u.value,i):i=u.value,i=i.map(a=>a.data?a.data:a),i.filter(a=>c.has(a[e.textField])||c.has(a[e.valueField]))}function s(r){const o={};return o[e.idField]=r,o[e.textField]=r,[o]}function p(r){let o=S(r);const c=o&&o.length>0;return v.value&&!c&&(o=s(r)),o}return f.watch(()=>e.data,()=>{u.value=e.data}),f.watch([u],([r])=>{if(e.modelValue){const o=r.find(c=>c[e.valueField]===e.modelValue);o&&(t.value=o[e.textField])}}),f.watch(()=>e.modelValue,(r,o)=>{r!==o&&(n.value=r,h(r))}),h(e.modelValue),{dataSource:u,displayText:t,editable:v,modelValue:n,getItemsByDisplayText:S,getItemsByValue:y,getSelectedItemsByDisplayText:p}}function qe(e){const{comboEditorRef:t,dataSource:n,searchFields:u,originalValue:v,showPopover:T}=e;function y(r,o){const c=(r.children||[]).map(a=>y(a,o)).filter(a=>a!==null);return u.value.some(a=>{var l;return(l=r.data[a])==null?void 0:l.toString().toLowerCase().includes(o.toLowerCase())})?{data:{...r.data},children:r.children}:c.length>0?{data:{...r.data},children:c}:null}function h(){v.value=B.cloneDeep(n.value)}function S(r){var c;if(T.value||(c=t.value)==null||c.showPopup(),!r){h();return}const o=n.value.map(i=>y(i,r)).filter(i=>i!==null);v.value=B.cloneDeep(o)}const s=B.debounce(r=>{var c;const o=(c=r.target)==null?void 0:c.value;S(o)},200);function p(r){var c;let o=(c=r.target)==null?void 0:c.value;o!==""&&(o=o.trim()),r.target._value!==o&&s(r)}return{onValueChange:p,resetDataSource:h}}const $=f.defineComponent({name:"FComboTree",props:V,emits:["clear","update:modelValue","change","search"],setup(e,t){const n=f.ref(),u=f.ref(e.disabled),v=f.ref(e.enableClear),T=f.ref(e.enableSearch),y=f.ref(e.readonly),h=f.ref(e.searchFields||[e.textField]),S=f.ref(),s=f.ref(),{dataSource:p,displayText:r,editable:o,modelValue:c,getSelectedItemsByDisplayText:i}=Ie(e),a=f.computed(()=>e.multiSelect);f.computed(()=>n.value?n.value.elementRef.getBoundingClientRect().width:0);const l=f.computed(()=>{var C;const b=(C=n.value)==null?void 0:C.popoverRef;return b?b.shown:!1}),{onValueChange:d,resetDataSource:g}=qe({comboEditorRef:n,dataSource:p,searchFields:h,originalValue:S,showPopover:l});function w(){!a.value&&n.value&&n.value.hidePopup()}function M(b){r.value=e.displayFormatter?e.displayFormatter(b):b.map(C=>C[e.textField]).join(e.separator),c.value=b.map(C=>C[e.valueField]).join(e.separator),t.emit("update:modelValue",c.value),t.emit("change",b,c.value),w()}function P(b){var C;c.value="",l.value&&((C=n.value)==null||C.hidePopup()),t.emit("update:modelValue",""),t.emit("change",null,c.value),t.emit("clear")}f.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([b,C,m,O,R])=>{u.value=b,o.value=C,v.value=m,T.value=O,y.value=R});const F=()=>{S.value=B.cloneDeep(p.value)};return()=>f.createVNode(te,{ref:n,id:e.id,disable:u.value,readonly:y.value,forcePlaceholder:e.forcePlaceholder,editable:o.value&&!e.multiSelect,buttonContent:e.dropDownIcon,placeholder:e.placeholder,enableClear:v.value,maxLength:e.maxLength,tabIndex:e.tabIndex,enableTitle:e.enableTitle,inputType:e.viewType,popupOnClick:!0,modelValue:r.value,"onUpdate:modelValue":b=>r.value=b,onClear:P,onInput:d,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated,beforeOpen:F,placement:e.placement,popupMinWidth:e.minPanelWidth},{default:()=>[l.value&&f.createVNode(Ve,{ref:s,maxHeight:e.maxHeight,multiSelect:e.multiSelect,enableSearch:e.enableSearch,idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,data:S.value,selectedValues:c.value,onSelectionChange:M,formatter:e.formatter,editorParams:e.editorParams,repositoryToken:e.repositoryToken,customRowStatus:e.customRowStatus,searchHandler:d,onClearSearch:g},null)]})}});$.register=(e,t,n,u)=>{e["combo-tree"]=$,t["combo-tree"]=K};const Le=oe.withInstall($);x.FComboTree=$,x.Placement=Z,x.ViewType=Y,x.comboTreeProps=V,x.default=Le,x.propsResolver=K,Object.defineProperties(x,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});