@farris/ui-vue 1.3.5 → 1.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/components/accordion/index.esm.js +16 -16
  2. package/components/accordion/index.umd.cjs +1 -1
  3. package/components/avatar/index.esm.js +65 -65
  4. package/components/avatar/index.umd.cjs +1 -1
  5. package/components/button-edit/index.esm.js +13 -13
  6. package/components/button-edit/index.umd.cjs +1 -1
  7. package/components/calendar/index.esm.js +504 -490
  8. package/components/calendar/index.umd.cjs +1 -1
  9. package/components/capsule/index.esm.js +247 -233
  10. package/components/capsule/index.umd.cjs +1 -1
  11. package/components/checkbox/index.esm.js +356 -344
  12. package/components/checkbox/index.umd.cjs +1 -1
  13. package/components/color-picker/index.esm.js +159 -145
  14. package/components/color-picker/index.umd.cjs +2 -2
  15. package/components/combo-list/index.esm.js +127 -128
  16. package/components/combo-list/index.umd.cjs +1 -1
  17. package/components/combo-tree/index.esm.js +15 -15
  18. package/components/combo-tree/index.umd.cjs +1 -1
  19. package/components/component/index.esm.js +101 -87
  20. package/components/component/index.umd.cjs +1 -1
  21. package/components/condition/index.esm.js +7 -5
  22. package/components/condition/index.umd.cjs +1 -1
  23. package/components/content-container/index.esm.js +181 -167
  24. package/components/content-container/index.umd.cjs +1 -1
  25. package/components/data-grid/index.esm.js +4057 -4304
  26. package/components/data-grid/index.umd.cjs +1 -1
  27. package/components/data-view/index.esm.js +2450 -2467
  28. package/components/data-view/index.umd.cjs +1 -1
  29. package/components/date-picker/index.esm.js +789 -777
  30. package/components/date-picker/index.umd.cjs +1 -1
  31. package/components/designer-canvas/index.esm.js +3593 -3585
  32. package/components/designer-canvas/index.umd.cjs +1 -1
  33. package/components/dropdown/index.esm.js +257 -243
  34. package/components/dropdown/index.umd.cjs +2 -2
  35. package/components/dynamic-form/index.esm.js +322 -306
  36. package/components/dynamic-form/index.umd.cjs +1 -1
  37. package/components/dynamic-resolver/index.esm.js +177 -163
  38. package/components/dynamic-resolver/index.umd.cjs +1 -1
  39. package/components/event-parameter/index.esm.js +163 -2643
  40. package/components/event-parameter/index.umd.cjs +1 -1
  41. package/components/events-editor/index.esm.js +500 -486
  42. package/components/events-editor/index.umd.cjs +1 -1
  43. package/components/expression-editor/index.esm.js +37 -37
  44. package/components/expression-editor/index.umd.cjs +1 -1
  45. package/components/external-container/index.esm.js +485 -470
  46. package/components/external-container/index.umd.cjs +1 -1
  47. package/components/field-selector/index.esm.js +2611 -2623
  48. package/components/field-selector/index.umd.cjs +1 -1
  49. package/components/filter-bar/index.esm.js +3825 -3837
  50. package/components/filter-bar/index.umd.cjs +1 -1
  51. package/components/flow-canvas/index.esm.js +3720 -3712
  52. package/components/flow-canvas/index.umd.cjs +1 -1
  53. package/components/image-cropper/index.esm.js +402 -388
  54. package/components/image-cropper/index.umd.cjs +1 -1
  55. package/components/input-group/index.esm.js +201 -202
  56. package/components/input-group/index.umd.cjs +1 -1
  57. package/components/layout/index.esm.js +264 -245
  58. package/components/layout/index.umd.cjs +1 -1
  59. package/components/list-nav/index.esm.js +157 -143
  60. package/components/list-nav/index.umd.cjs +1 -1
  61. package/components/list-view/index.esm.js +312 -296
  62. package/components/list-view/index.umd.cjs +1 -1
  63. package/components/lookup/index.esm.js +4748 -4992
  64. package/components/lookup/index.umd.cjs +1 -1
  65. package/components/mapping-editor/index.esm.js +4215 -4462
  66. package/components/mapping-editor/index.umd.cjs +1 -1
  67. package/components/nav/index.esm.js +169 -155
  68. package/components/nav/index.umd.cjs +2 -2
  69. package/components/number-range/index.esm.js +150 -137
  70. package/components/number-range/index.umd.cjs +1 -1
  71. package/components/number-spinner/index.esm.js +207 -194
  72. package/components/number-spinner/index.umd.cjs +1 -1
  73. package/components/order/index.esm.js +427 -414
  74. package/components/order/index.umd.cjs +1 -1
  75. package/components/page-footer/index.esm.js +22 -22
  76. package/components/page-footer/index.umd.cjs +1 -1
  77. package/components/page-header/index.esm.js +510 -492
  78. package/components/page-header/index.umd.cjs +1 -1
  79. package/components/pagination/index.esm.js +192 -178
  80. package/components/pagination/index.umd.cjs +1 -1
  81. package/components/progress/index.esm.js +234 -220
  82. package/components/progress/index.umd.cjs +3 -3
  83. package/components/property-editor/index.esm.js +288 -277
  84. package/components/property-editor/index.umd.cjs +2 -2
  85. package/components/property-panel/index.esm.js +62 -61
  86. package/components/property-panel/index.umd.cjs +1 -1
  87. package/components/query-solution/index.esm.js +3015 -3027
  88. package/components/query-solution/index.umd.cjs +5 -5
  89. package/components/radio-button/index.esm.js +64 -64
  90. package/components/radio-button/index.umd.cjs +1 -1
  91. package/components/radio-group/index.esm.js +293 -280
  92. package/components/radio-group/index.umd.cjs +1 -1
  93. package/components/rate/index.esm.js +222 -208
  94. package/components/rate/index.umd.cjs +1 -1
  95. package/components/response-layout/index.esm.js +187 -173
  96. package/components/response-layout/index.umd.cjs +1 -1
  97. package/components/response-layout-editor/index.esm.js +554 -542
  98. package/components/response-layout-editor/index.umd.cjs +1 -1
  99. package/components/response-toolbar/index.esm.js +483 -469
  100. package/components/response-toolbar/index.umd.cjs +1 -1
  101. package/components/schema-selector/index.esm.js +632 -617
  102. package/components/schema-selector/index.umd.cjs +2 -2
  103. package/components/search-box/index.esm.js +228 -214
  104. package/components/search-box/index.umd.cjs +1 -1
  105. package/components/section/index.esm.js +419 -406
  106. package/components/section/index.umd.cjs +1 -1
  107. package/components/smoke-detector/index.esm.js +162 -148
  108. package/components/smoke-detector/index.umd.cjs +1 -1
  109. package/components/splitter/index.esm.js +308 -284
  110. package/components/splitter/index.umd.cjs +1 -1
  111. package/components/step/index.esm.js +279 -265
  112. package/components/step/index.umd.cjs +1 -1
  113. package/components/switch/index.esm.js +183 -170
  114. package/components/switch/index.umd.cjs +1 -1
  115. package/components/tabs/index.esm.js +307 -294
  116. package/components/tabs/index.umd.cjs +1 -1
  117. package/components/tags/index.esm.js +320 -306
  118. package/components/tags/index.umd.cjs +1 -1
  119. package/components/text/index.esm.js +245 -231
  120. package/components/text/index.umd.cjs +1 -1
  121. package/components/textarea/index.esm.js +260 -247
  122. package/components/textarea/index.umd.cjs +1 -1
  123. package/components/time-picker/index.esm.js +409 -396
  124. package/components/time-picker/index.umd.cjs +1 -1
  125. package/components/transfer/index.esm.js +424 -410
  126. package/components/transfer/index.umd.cjs +1 -1
  127. package/components/tree-grid/index.esm.js +2994 -3006
  128. package/components/tree-grid/index.umd.cjs +1 -1
  129. package/components/tree-view/index.esm.js +749 -733
  130. package/components/tree-view/index.umd.cjs +1 -1
  131. package/components/uploader/index.esm.js +325 -311
  132. package/components/uploader/index.umd.cjs +2 -2
  133. package/components/verify-detail/index.esm.js +304 -290
  134. package/components/verify-detail/index.umd.cjs +1 -1
  135. package/components/video/index.esm.js +99 -85
  136. package/components/video/index.umd.cjs +1 -1
  137. package/components/weather/index.esm.js +947 -933
  138. package/components/weather/index.umd.cjs +4 -4
  139. package/farris.all.esm.js +7750 -7990
  140. package/farris.all.umd.cjs +12 -12
  141. package/package.json +1 -1
  142. package/types/data-view/composition/types.d.ts +0 -1
  143. package/types/entity-binding-selector/composition/use-entity-tree.d.ts +3 -0
  144. package/types/entity-binding-selector/composition/use-field-tree.d.ts +1 -0
  145. package/components/event-parameter/index.css +0 -1
  146. package/types/data-grid/src/components/data/data-grid-area.component.d.ts +0 -8
  147. package/types/data-grid/src/components/data/data-grid-area.props.d.ts +0 -3
@@ -1 +1 @@
1
- (function(F,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("vue"),require("lodash-es"),require("../list-view/index.umd.js"),require("../button-edit/index.umd.js"),require("../dynamic-resolver/index.umd.js"),require("../designer-canvas/index.umd.js"),require("../common/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../list-view/index.umd.js","../button-edit/index.umd.js","../dynamic-resolver/index.umd.js","../designer-canvas/index.umd.js","../common/index.umd.js"],a):(F=typeof globalThis<"u"?globalThis:F||self,a(F["combo-list"]={},F.Vue,F.LodashES,F.FListView,F.FButtonEdit,F.dynamicResolver,F.designerCanvas,F.common))})(this,function(F,a,w,R,W,H,T,z){"use strict";var Pe=Object.defineProperty;var Ee=(F,a,w)=>a in F?Pe(F,a,{enumerable:!0,configurable:!0,writable:!0,value:w}):F[a]=w;var v=(F,a,w)=>Ee(F,typeof a!="symbol"?a+"":a,w);const X={},_={};function A(e){const{properties:t,title:n,ignore:i}=e,l=i&&Array.isArray(i),r=Object.keys(t).reduce((d,y)=>((!l||!i.find(g=>g===y))&&(d[y]=t[y].type==="object"&&t[y].properties?A(t[y]):w.cloneDeep(t[y].default)),d),{});if(n&&(!l||!i.find(d=>d==="id"))){const d=n.toLowerCase().replace(/-/g,"_");r.id=`${d}_${Math.random().toString().slice(2,6)}`}return r}function J(e,t){const n=A(t);return Object.keys(n).reduce((i,l)=>(i[l]&&w.isPlainObject(i[l])&&w.isPlainObject(e[l]||!e[l])?Object.assign(i[l],e[l]||{}):i[l]=e[l],i),n),n}function Q(e,t){return Object.keys(e).filter(i=>e[i]!=null).reduce((i,l)=>{if(t.has(l)){const r=t.get(l);if(typeof r=="string")i[r]=e[l];else{const d=r(l,e[l],e);Object.assign(i,d)}}else i[l]=e[l];return i},{})}function Y(e,t,n=new Map){const i=J(e,t);return Q(i,n)}function Z(e={}){function t(c,u,o,s){if(typeof o=="number")return s[c].length===o;if(typeof o=="object"){const p=Object.keys(o)[0],f=o[p];if(p==="not")return Number(s[c].length)!==Number(f);if(p==="moreThan")return Number(s[c].length)>=Number(f);if(p==="lessThan")return Number(s[c].length)<=Number(f)}return!1}function n(c,u,o,s){return s[c]&&s[c].propertyValue&&String(s[c].propertyValue.value)===String(o)}const i=new Map([["length",t],["getProperty",n]]);Object.keys(e).reduce((c,u)=>(c.set(u,e[u]),c),i);function l(c,u){const o=c;return typeof u=="number"?[{target:o,operator:"length",param:null,value:Number(u)}]:typeof u=="boolean"?[{target:o,operator:"getProperty",param:c,value:!!u}]:typeof u=="object"?Object.keys(u).map(s=>{if(s==="length")return{target:o,operator:"length",param:null,value:u[s]};const p=s,f=u[s];return{target:o,operator:"getProperty",param:p,value:f}}):[]}function r(c){return Object.keys(c).reduce((o,s)=>{const p=l(s,c[s]);return o.push(...p),o},[])}function d(c,u){if(i.has(c.operator)){const o=i.get(c.operator);return o&&o(c.target,c.param,c.value,u)||!1}return!1}function y(c,u){return r(c).reduce((p,f)=>p&&d(f,u),!0)}function g(c,u){const o=Object.keys(c),s=o.includes("allOf"),p=o.includes("anyOf"),f=s||p,C=(f?c[f?s?"allOf":"anyOf":"allOf"]:[c]).map(k=>y(k,u));return s?!C.includes(!1):C.includes(!0)}return{parseValueSchema:g}}const h={button:{type:"button",name:"按钮",icon:"Button"},"response-toolbar":{type:"response-toolbar",name:"工具栏",icon:"ButtonGroup"},"response-toolbar-item":{type:"response-toolbar-item",name:"按钮",icon:"Button"},"content-container":{type:"content-container",name:"容器",icon:"ContentContainer"},"input-group":{type:"input-group",name:"文本",icon:"TextBox"},textarea:{type:"textarea",name:"多行文本",icon:"MultiTextBox"},lookup:{type:"lookup",name:"帮助",icon:"LookupEdit"},"number-spinner":{type:"number-spinner",name:"数值",icon:"NumericBox"},"date-picker":{type:"date-picker",name:"日期",icon:"DateBox"},switch:{type:"switch",name:"开关",icon:"SwitchField"},"radio-group":{type:"radio-group",name:"单选组",icon:"RadioGroup"},"check-box":{type:"check-box",name:"复选框",icon:"CheckBox"},"check-group":{type:"check-group",name:"复选框组",icon:"CheckGroup"},"combo-list":{type:"combo-list",name:"下拉列表",icon:"EnumField"},"response-form":{type:"response-form",name:"卡片面板",icon:"Form"},"response-layout":{type:"response-layout",name:"布局容器",icon:"ResponseLayout3"},"response-layout-item":{type:"response-layout-item",name:"布局",icon:"ResponseLayout1"},"tree-grid":{type:"tree-grid",name:"树表格",icon:"TreeGrid"},"tree-grid-column":{type:"tree-grid-column",name:"树表格列"},"data-grid":{type:"data-grid",name:"表格",icon:"DataGrid"},"data-grid-column":{type:"data-grid-column",name:"表格列"},module:{type:"Module",name:"模块",icon:"Module"},component:{type:"component",name:"组件",icon:"Component"},tabs:{type:"tabs",name:"标签页",icon:"Tab"},"tab-page":{type:"tab-page",name:"标签页项",dependentParentControl:"Tab"},"tab-toolbar-item":{type:"tab-toolbar-item",name:"标签页工具栏按钮",icon:"Button"},"time-picker":{type:"time-picker",name:"时间选择",icon:"TimePicker"},section:{type:"section",name:"分组面板",icon:"Section"},"section-toolbar":{type:"section-toolbar",name:"分组面板工具栏"},"section-toolbar-item":{type:"section-toolbar-item",name:"分组面板按钮"},splitter:{type:"splitter",name:"分栏面板",icon:"Splitter"},"splitter-pane":{type:"splitter-pane",name:"分栏面板项",dependentParentControl:"Splitter"},"component-ref":{type:"component-ref",name:"组件引用节点"},uploader:{type:"uploader",name:"附件上传",icon:"FileUpload"},"page-header":{type:"page-header",name:"页头",icon:"Header"},"page-footer":{type:"page-footer",name:"页脚",icon:"ModalFooter"},"tab-toolbar":{type:"tab-toolbar",name:"标签页工具栏",icon:"TabToolbar"},fieldset:{type:"fieldset",name:"分组",icon:"fieldset"},"query-solution":{type:"query-solution",name:"筛选方案",icon:"QueryScheme"}},K={},ee={};Z();function N(e,t,n=new Map,i=(d,y,g,c)=>y,l={},r=d=>d){return X[t.title]=t,_[t.title]=i,K[t.title]=l,ee[t.title]=r,(d={})=>{const y=Y(d,t,n),g=Object.keys(e).reduce((c,u)=>(c[u]=e[u].default,c),{});return Object.assign(g,y)}}function te(e,t){return{customClass:t.class,customStyle:t.style}}const ne=new Map([["appearance",te]]),oe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/combo-list.schema.json",title:"combo-list",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-list"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disabled:{description:"",type:"boolean",default:!1},enableClear:{description:"",type:"boolean",default:!0},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:""},idField:{description:"",type:"string",default:"id"},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:""}},required:["id","type"],ignore:["id","appearance","binding","visible"]};function ie(e,t,n){return t}var D=(e=>(e.Text="text",e.Tag="tag",e))(D||{}),q=(e=>(e.top="top",e.bottom="bottom",e.auto="auto",e))(q||{});const O={id:{type:String},data:{type:Array,default:[]},disabled:{default:!1,type:Boolean},dropDownIcon:{type:String,default:'<span class="f-icon f-icon-arrow-60-down"></span>'},editable:{default:!1,type:Boolean},enableClear:{default:!0,type:Boolean},enableSearch:{type:Boolean,default:!1},enableTitle:{default:!0,type:Boolean},fitEditor:{default:!1,type:Boolean},forcePlaceholder:{default:!1,type:Boolean},hidePanelOnClear:{default:!0,type:Boolean},idField:{default:"id",type:String},mapFields:{type:Object},maxHeight:{default:350,type:Number},maxLength:{type:Number},multiSelect:{type:Boolean,default:!1},modelValue:{},placeholder:{type:String},placement:{type:String,default:"auto"},readonly:{default:!1,type:Boolean},remote:{default:null,type:Object},remoteSearch:{default:!1,type:Boolean},separator:{default:",",type:String},tabIndex:{type:Number,default:-1},textField:{default:"name",type:String},titleField:{default:"name",type:String},valueField:{default:"id",type:String},viewType:{default:"tag",type:String},change:{type:Function,default:()=>{}},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},autoHeight:{type:Boolean,default:!0},beforeOpen:{type:Function,default:null},searchOption:{type:[Boolean,Function],default:!1},enableHighlightSearch:{type:Boolean,default:!0}},E=N(O,oe,ne,ie),le={dataSource:{type:Array,default:[]},enableSearch:{type:Boolean,default:!1},idField:{type:String,default:"id"},multiSelect:{type:Boolean,default:!1},selectedValues:{type:String,default:""},separator:{type:String,default:","},textField:{type:String,default:"name"},titleField:{type:String,default:"name"},width:{type:Number},maxHeight:{type:Number},valueField:{type:String,default:"id"},onSelectionChange:{type:Function,default:()=>{}},searchOption:{type:[Boolean,Function],default:!1},enableHighlightSearch:{type:Boolean,default:!0}},ae=a.defineComponent({name:"FComboListContainer",props:le,emits:["selectionChange"],setup(e,t){const n=a.ref(),i=a.ref(e.dataSource),l=a.ref([]),r=a.ref(e.separator),d=a.ref(e.width),y=a.ref(e.maxHeight),g=a.ref(String(e.selectedValues).split(r.value)),c=a.computed(()=>e.multiSelect),u=a.computed(()=>({enableSelectRow:!0,multiSelect:e.multiSelect,multiSelectMode:"OnCheckAndClick",showCheckbox:c.value,showSelectAll:!1,showSelection:!0}));a.watch(e.dataSource,()=>{i.value=e.dataSource});const o=a.computed(()=>e.enableSearch?"SearchBar":"ContentHeader"),s=a.computed(()=>{const m={};return d.value!==void 0&&(m.width=`${d.value}px`),y.value!==void 0&&y.value>0&&(m.maxHeight=`${y.value}px`),m});function p(m){l.value=m.map(b=>Object.assign({},b)),g.value=m.map(b=>b[e.idField]),t.emit("selectionChange",l.value)}function f(m){if(e.enableHighlightSearch)return;let b=[];const{searchOption:C}=e;typeof C=="function"?b=i.value.filter(S=>C(m,S)):b=i.value.filter(S=>S[e.valueField].indexOf(m)>-1||S[e.textField].indexOf(m)>-1),n.value.updateDataSource(b)}return a.watch([()=>e.selectedValues],([m])=>{g.value=m.split(r.value)}),()=>a.createVNode("div",{class:"f-combo-list-container pl-1",style:s.value},[a.createVNode(R,{ref:n,size:"small",itemClass:"f-combo-list-item",header:o.value,headerClass:"f-combo-list-search-box",data:i.value,idField:e.idField,textField:e.textField,titleField:e.titleField,multiSelect:e.multiSelect,selection:u.value,enableHighlightSearch:e.enableHighlightSearch,selectionValues:g.value,onSelectionChange:p,onAfterSearch:f},null)])}});function re(e){const t=a.ref(""),n=a.ref(e.modelValue),i=a.ref(e.data||[]),l=a.ref(e.editable);function r(o){const s=String(o).split(e.separator),p=s.map(b=>[b,!0]),f=new Map(p);return i.value.filter(b=>f.has(String(b[e.valueField]))).sort((b,C)=>{const S=s.indexOf(b[e.valueField]),k=s.indexOf(C[e.valueField]);return S-k})}function d(o){const s=r(o).map(p=>p[e.textField]).join(e.separator);t.value=l.value?s||o:s}function y(o){const s=o.split(e.separator).map(f=>[f,!0]),p=new Map(s);return i.value.filter(f=>p.has(f[e.textField]))}function g(o){const s={};return s[e.idField]=o,s[e.textField]=o,[s]}function c(o){let s=y(o);const p=s&&s.length>0;return l.value&&!p&&(s=g(o)),s}function u(){const{url:o,method:s="GET",headers:p={},body:f=null}=e.remote,m=s.toLowerCase()==="get"?{method:s,headers:p}:{method:s,headers:p,body:f};let b=!1;fetch(o,m).then(C=>{var k,B;if(C.status===200)return b=!!((B=(k=C.headers)==null?void 0:k.get("content-type"))!=null&&B.includes("application/json")),b?C.text():C.json();throw new Error(C.statusText)}).then(C=>{i.value=b?JSON.parse(C):C}).catch(C=>{console.error(C)})}return e.remote&&u(),a.watch(()=>e.data,()=>{i.value=e.data}),a.watch([i],([o])=>{if(e.modelValue!=null){const s=o.find(p=>p[e.valueField]===e.modelValue);s&&(t.value=s[e.textField])}}),a.watch(()=>e.modelValue,o=>{n.value=o,d(o)}),d(e.modelValue),{dataSource:i,displayText:t,editable:l,modelValue:n,getItemsByDisplayText:y,getItemsByValue:r,getSelectedItemsByDisplayText:c}}const V=a.defineComponent({name:"FComboList",props:O,emits:["clear","update:modelValue","change","input"],setup(e,t){const n=a.ref(),i=a.ref(e.disabled),l=a.ref(e.enableClear),r=a.ref(e.enableSearch),d=a.ref(e.readonly),{dataSource:y,displayText:g,editable:c,modelValue:u,getSelectedItemsByDisplayText:o}=re(e),s=a.computed(()=>e.multiSelect),p=a.computed(()=>n.value?n.value.elementRef.getBoundingClientRect().width:0);function f(){!s.value&&n.value&&n.value.hidePopup()}function m(I){g.value=I.map(M=>M[e.textField]).join(e.separator),I.length===1?u.value=I[0][e.valueField]:u.value=I.map(M=>M[e.valueField]).join(e.separator),t.emit("update:modelValue",u.value),t.emit("change",I,u.value),f()}function b(){d.value||n.value.togglePopup()}function C(I){u.value="",t.emit("update:modelValue",""),t.emit("clear")}function S(I){const M=o(I);m(M)}function k(){return g.value}function B(I){t.emit("input",I)}return t.expose({getDisplayText:k}),a.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([I,M,L,j,$])=>{i.value=I,c.value=M,l.value=L,r.value=j,d.value=$}),()=>a.createVNode(W,{ref:n,id:e.id,disable:i.value,readonly:d.value,forcePlaceholder:e.forcePlaceholder,editable:c.value,buttonContent:e.dropDownIcon,placeholder:e.placeholder,enableClear:l.value,maxLength:e.maxLength,tabIndex:e.tabIndex,enableTitle:e.enableTitle,multiSelect:e.multiSelect,inputType:e.multiSelect?e.viewType:"text",modelValue:g.value,"onUpdate:modelValue":I=>g.value=I,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated,onClear:C,onClick:b,onChange:S,onInput:B,beforeOpen:e.beforeOpen},{default:()=>[a.createVNode(ae,{idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,dataSource:y.value,selectedValues:u.value,multiSelect:e.multiSelect,enableSearch:r.value,maxHeight:e.maxHeight,enableHighlightSearch:e.enableHighlightSearch,width:e.fitEditor?p.value:void 0,onSelectionChange:m},null)]})}}),se=new Map([["appearance",H.resolveAppearance]]);function de(e,t,n){return t}const ce={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/button-edit.schema.json",title:"button-edit",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a Input Group",type:"string"},type:{description:"The type string of Input Group component",type:"string",default:"button-edit"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},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:""},readonly:{description:"",type:"boolean",default:!1},require:{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:""},autoComplete:{description:"",type:"boolean",default:!1},buttonContent:{description:"",type:"string",default:""},enableClear:{description:"",type:"boolean",default:!0},inputType:{description:"",type:"string",enum:["text","tag"],default:"text"},multiSelect:{description:"",type:"boolean",default:!1},popup:{description:"",type:"object",properties:{footerButtons:{type:"array",default:[]},height:{type:"number",default:600},dataMapping:{type:"object"},contents:{type:"array",default:[]},showMaxButton:{type:"boolean",default:!0},showCloseButton:{type:"boolean",default:!0},showFooter:{type:"boolean",default:!0},title:{type:"string",default:""},width:{type:"number",default:800}}},separator:{type:"string",default:","},showButtonWhenDisabled:{description:"",type:"boolean",default:!1},wrapText:{type:"boolean",default:!1},onClear:{description:"",type:"string",default:""}},required:["id","type"]},ue={title:"buttonEdit",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}},behavior:{description:"Basic Infomation",title:"行为",properties:{editable:{description:"",title:"允许编辑",type:"boolean"},readonly:{description:"",title:"只读",type:"string"},required:{description:"",title:"必填",type:"boolean"},visible:{description:"",title:"可见",type:"boolean"},placeholder:{description:"",title:"提示文本",type:"string"},tabindex:{description:"",title:"tab索引",type:"number"},textAlign:{description:"",title:"对齐方式",type:"enum",editor:{type:"combo-list",textField:"name",valueField:"value",data:[{value:"left",name:"左对齐"},{value:"center",name:"居中"},{value:"right",name:"右对齐"}]}}}}}},G={id:String,buttonContent:{type:String,default:'<i class="f-icon f-icon-lookup"></i>'},buttonBehavior:{type:String,default:"Popup"},autoComplete:{type:Boolean,default:!1},customClass:{type:String,default:""},disable:{type:Boolean,default:!1},editable:{type:Boolean,default:!0},enableClear:{type:Boolean,default:!1},modelValue:{type:String,default:""},readonly:{type:Boolean,default:!1},showButtonWhenDisabled:{type:Boolean,default:!1},enableTitle:{type:Boolean,default:!1},inputType:{type:String,default:"text"},forcePlaceholder:{type:Boolean,default:!1},placeholder:{type:String,default:""},minLength:Number,maxLength:Number,tabIndex:Number,popupHost:{type:Object},popupRightBoundary:{type:Object},popupOffsetX:{type:Object},popupOnInput:{type:Boolean,default:!1},popupOnFocus:{type:Boolean,default:!1},popupMinWidth:{type:Number,default:160},modalOptions:{type:Object,default:{}},wrapText:{type:Boolean,default:!1},multiSelect:{type:Boolean,default:!1},separator:{type:String,default:","},textAlign:{type:String,default:"left"},beforeClickButton:{type:Function,default:null},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},beforeOpen:{type:Function,default:null},updateOn:{type:String,default:"change"}};N(G,ce,se,de,ue);const pe={popupContentPosition:{type:Object,default:{left:0,top:0}},host:{type:Object},backgroundColor:{type:String,default:""}},fe=a.defineComponent({name:"FOverlay",props:pe,emits:["click"],setup(e,t){const n=a.ref(e.popupContentPosition),i=a.ref(e.host),l=a.computed(()=>({backgroundColor:e.backgroundColor||"",pointerEvents:"auto"}));function r(y){t.emit("click"),y.preventDefault(),y.stopPropagation()}a.computed(()=>{const y=i.value;if(y){const g=y.getBoundingClientRect(),{left:c,top:u,height:o}=g;return{left:c,top:u+o}}return n.value});const d=a.computed(()=>({}));return()=>a.createVNode(a.Teleport,{to:"body"},{default:()=>{var y,g;return[a.createVNode("div",{class:"overlay-container",onClick:c=>r(c),style:l.value},[a.createVNode("div",{style:d.value},[(g=(y=t.slots).default)==null?void 0:g.call(y)])])]}})}});function me(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function ye(e){const t=document.createElement("div");t.style.display="contents";let n;const i=e.onClickCallback||(()=>{}),l=()=>{i(),n&&n.unmount()};return n=a.createApp({setup(){a.onUnmounted(()=>{document.body.removeChild(t)});const r=me(e);return()=>a.createVNode(fe,{"popup-content-position":e.popupPosition,host:e.host,onClick:l,backgroundColor:e.backgroundColor},{default:()=>[r&&r()]})}}),document.body.appendChild(t),n.mount(t),n}class ge{static show(t){return ye(t)}}const he=Symbol("FModalService");function U(e,t){function n(){const i=e.beforeOpen||e.beforeClickButton||null;let l=Promise.resolve(!0);if(i){const r=i(t.value);if(typeof r>"u")return l;typeof r=="boolean"?l=Promise.resolve(r):l=r}return l}return{judgeCanOpen:n}}function be(e,t,n,i,l){const r=a.ref(e.buttonBehavior),d=a.ref(e.popupOnInput),y=a.computed(()=>({"input-group-append":!0,"append-force-show":e.showButtonWhenDisabled&&(e.readonly||e.disable)})),{judgeCanOpen:g}=U(e,l),c=a.computed(()=>e.showButtonWhenDisabled||(!e.editable||!e.readonly)&&!e.disable),u=a.inject(he,null),o=a.ref();async function s(m){if(await g()&&c.value){const b=!!t.slots.default;if(r.value==="Modal"){const C=e.modalOptions,S=u==null?void 0:u.open({...C,render:()=>t.slots.default&&t.slots.default()});o.value=S==null?void 0:S.modalRef}r.value==="Overlay"&&ge.show({host:document.body,backgroundColor:"rgba(0,0,0,.15)",render:()=>t.slots.default&&t.slots.default()}),b&&r.value==="Popup"&&i.togglePopup(!0),b&&d.value&&i.hidePopup(),t.emit("clickButton",{origin:m,value:e.modelValue})}}function p(m){t.emit("mouseEnterIcon",m)}function f(m){t.emit("mouseLeaveIcon",m)}return{buttonGroupClass:y,onClickButton:s,onMouseEnterButton:p,onMouseLeaveButton:f,modalRef:o}}function Ce(e,t,n,i){const l=a.ref(),r=a.ref(!1),{judgeCanOpen:d}=U(e,i);function y(){const o=l.value;o&&o.show(n.value)}async function g(o=!1){if(!!t.slots.default){if(!o&&!r.value&&!await d())return;r.value=!r.value,await a.nextTick(),y()}}async function c(o=!1){if(!!t.slots.default){if(!o&&!await d())return;r.value=!0,await a.nextTick(),y()}}function u(){r.value=!1}return{hidePopup:u,popup:c,shouldPopupContent:r,togglePopup:g,popoverRef:l}}function ve(e,t,n){const{buttonGroupClass:i}=n,l=a.ref();return{renderButtonGroup:()=>a.createVNode("div",{id:`${e.id}-button-group`,class:i.value},[t.slots.buttonContent?a.createVNode("span",{class:"input-group-text input-group-append-button"},[t.slots.buttonContent()]):e.buttonContent?a.createVNode("span",{class:"input-group-text input-group-append-button",innerHTML:e.buttonContent,ref:l},null):null]),buttonHandleElement:l}}const Se=a.defineComponent({name:"FButtonEdit",props:G,emits:["updateExtendInfo","clear","change","click","clickButton","blur","focus","mouseEnterIcon","mouseLeaveIcon","keyup","keydown","inputClick","input","update:modelValue"],setup(e,t){const n=a.ref(),i=a.inject("design-item-context"),l=T.useDesignerComponent(n,i),r=a.ref(e.customClass),d=a.ref(e.modelValue),y=Ce(e,t,n,d),g=be(e,t,n,y,d),c=a.ref(),u=a.computed(()=>({"f-cmp-inputgroup":!0,"input-group":!0,"f-state-disable":!0,"f-state-editable":!1,"f-state-readonly":!0}));a.onMounted(()=>{n.value.componentInstance=l}),t.expose(l.value);const o=a.computed(()=>{const p={"f-button-edit":!0,"f-cmp-inputgroup":!0,"f-button-edit-nowrap":!e.wrapText};return r.value&&r.value.split(" ").reduce((f,m)=>(f[m]=!0,f),p),p}),{renderButtonGroup:s}=ve(e,t,g);return()=>a.createVNode("div",a.mergeProps(t.attrs,{ref:n,class:o.value,id:e.id}),[a.createVNode("div",{class:u.value},[a.createVNode("input",{ref:c,class:"form-control",readonly:!0,placeholder:e.placeholder},null),s()])])}});class Fe{constructor(t,n){v(this,"componentId");v(this,"viewModelId");v(this,"eventsEditorUtils");v(this,"formSchemaUtils");v(this,"formMetadataConverter");v(this,"designViewModelUtils");v(this,"designViewModelField");v(this,"controlCreatorUtils");v(this,"designerHostService");v(this,"schemaService",null);v(this,"metadataService",null);v(this,"propertyConfig",{type:"object",categories:{}});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}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 l=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=l.fields.find(r=>r.id===n)}t.updateOn=(i=this.designViewModelField)==null?void 0:i.updateOn}}changeFieldEditorType(t,n){}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",data:[{value:t.type,name:h[t.type].name}]}}}}}getAppearanceConfig(t=null){return{title:"样式",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter"}}}}updateElementByParentContainer(t,n){const i=n&&n.parent&&n.parent.schema;if(!i)return;const l=i.contents.findIndex(d=>d.id===t),r=w.cloneDeep(i.contents[l]);i.contents.splice(l,1),i.contents.splice(l,0,r)}}const x=class x{static getEditorTypesByMDataType(t){const n=x.fieldControlTypeMapping[t];return n||[{key:"",value:""}]}static getAllInputTypes(){const t=[];for(const n in x.fieldControlTypeMapping)x.fieldControlTypeMapping[n].forEach(i=>{t.find(l=>l.key===i.key&&l.value===i.value)||t.push({key:i.key,value:i.value})});return t}};v(x,"fieldControlTypeMapping",{String:[{key:h["input-group"].type,value:h["input-group"].name},{key:h.lookup.type,value:h.lookup.name},{key:h["date-picker"].type,value:h["date-picker"].name},{key:h["check-box"].type,value:h["check-box"].name},{key:h["check-group"].type,value:h["check-group"].name},{key:h["radio-group"].type,value:h["radio-group"].name},{key:h["combo-list"].type,value:h["combo-list"].name},{key:h.textarea.type,value:h.textarea.name}],Text:[{key:h.textarea.type,value:h.textarea.name},{key:h.lookup.type,value:h.lookup.name}],Decimal:[{key:h["number-spinner"].type,value:h["number-spinner"].name}],Integer:[{key:h["number-spinner"].type,value:h["number-spinner"].name}],Number:[{key:h["number-spinner"].type,value:h["number-spinner"].name}],BigNumber:[{key:h["number-spinner"].type,value:h["number-spinner"].name}],Date:[{key:h["date-picker"].type,value:h["date-picker"].name}],DateTime:[{key:h["date-picker"].type,value:h["date-picker"].name}],Boolean:[{key:h.switch.type,value:h.switch.name},{key:h["check-box"].type,value:h["check-box"].name}],Enum:[{key:h["combo-list"].type,value:h["combo-list"].name},{key:h["radio-group"].type,value:h["radio-group"].name}],Object:[{key:h.lookup.type,value:h.lookup.name},{key:h["combo-list"].type,value:h["combo-list"].name},{key:h["radio-group"].type,value:h["radio-group"].name}]});let P=x;const Ie=a.ref(0);class ke{constructor(){v(this,"label","");v(this,"id","");v(this,"columnInSM",12);v(this,"columnInMD",6);v(this,"columnInLG",3);v(this,"columnInEL",2);v(this,"displayWidthInSM",1);v(this,"displayWidthInMD",1);v(this,"displayWidthInLG",1);v(this,"displayWidthInEL",1);v(this,"displayColumnCountAtBreakPoint","md");v(this,"tagRow",0);v(this,"showTopBorder",0);v(this,"group",1);v(this,"isSupportedClass",!0);v(this,"fieldSetId","")}}function we(e){let t,n;const i=new Map;let l=[];function r(u,o){const p=u.split(" ").filter(S=>S.startsWith("col-"));if(p.length===0){o.isSupportedClass=!1;return}let f=p.find(S=>/^col-([1-9]|10|11|12)$/.test(S)),m=p.find(S=>/^col-md-([1-9]|10|11|12)$/.test(S)),b=p.find(S=>/^col-xl-([1-9]|10|11|12)$/.test(S)),C=p.find(S=>/^col-el-([1-9]|10|11|12)$/.test(S));f=f||"col-12",o.columnInSM=parseInt(f.replace("col-",""),10),o.displayWidthInSM=o.columnInSM/12,o.displayWidthInSM!==1&&(o.isSupportedClass=!1),m=m||"col-md-"+o.columnInSM,o.columnInMD=parseInt(m.replace("col-md-",""),10),o.displayWidthInMD=o.columnInMD/6,[1,2].includes(o.displayWidthInMD)||(o.isSupportedClass=!1),b=b||"col-xl-"+o.columnInMD,o.columnInLG=parseInt(b.replace("col-xl-",""),10),o.displayWidthInLG=o.columnInLG/3,[1,2,3,4].includes(o.displayWidthInLG)||(o.isSupportedClass=!1),C=C||"col-el-"+o.columnInLG,o.columnInEL=parseInt(C.replace("col-el-",""),10),o.displayWidthInEL=o.columnInEL/2,[1,2,3,4,5,6].includes(o.displayWidthInEL)||(o.isSupportedClass=!1)}function d(u,o,s,p=!1){let f=!1;u.contents.forEach(m=>{if(m.type==="fieldset"){s+=1,d(m,o,s,!0),f=!0;return}f&&(s+=1,f=!1);const b=m.appearance&&m.appearance.class,C=new ke;b?r(b,C):C.isSupportedClass=!1,C.label=m.label||m.id,C.id=m.id,C.group=s,p&&(C.fieldSetId=u.id),n===m.id&&(t=s),i.set(m.id,m),o.push(C)})}function y(u){const o=e.getComponentById(u);if(!o||!o.componentType||!o.componentType.startsWith("form"))return{result:!1,message:"只可以在响应式表单组件中调整响应式布局配置"};const s=e.selectNode(o,p=>p.type===T.DgControl["response-form"].type);return!s||!s.contents||s.contents.length===0?{result:!1,message:"Form区域内没有控件,请先添加控件"}:{result:!0,message:"",formNode:s}}function g(u,o){o=o||u.id;const{result:s,message:p,formNode:f}=y(o);if(!s)return{result:s,message:p};n=u.id,l=[],i.clear();const m=f.contents[0].type===T.DgControl.fieldset.type?0:1;d(f,l,m);const b=l.find(S=>!S.isSupportedClass);return{defaultState:{defaultGroupNumber:t||1,model:b?"customize":"standard"},importData:l}}function c(u,o){o=o;const{result:s,formNode:p}=y(o);if(!s)return"";const f=[];return u.forEach(m=>{var S;const b=i.get(m.id),C=b.appearance&&b.appearance.class;if(C){const B=C.split(" ").filter(Oe=>!Oe.startsWith("col-")),I="col-"+m.columnInSM,M="col-md-"+m.columnInMD,L="col-xl-"+m.columnInLG,j="col-el-"+m.columnInEL,$=[I,M,L,j].concat(B);b.appearance.class=$.join(" ")}if(m.fieldSetId){const k=p.contents.find(I=>I.id===m.fieldSetId),B=f.find(I=>I.id===m.fieldSetId);B?(S=B.contents)==null||S.push(b):(f.push(k),k.contents=[b])}else f.push(b)}),p.contents=f,p.id}return{checkCanFindFormNode:y,checkCanOpenLayoutEditor:g,changeFormControlsByResponseLayoutConfig:c,getResonseFormLayoutConfig:d}}class Be extends Fe{constructor(n,i){super(n,i);v(this,"responseLayoutEditorFunction");this.responseLayoutEditorFunction=we(this.formSchemaUtils)}getPropertyConfig(n,i){return this.propertyConfig.categories.basic=this.getBasicProperties(n,i),this.propertyConfig.categories.appearance=this.getAppearanceProperties(n,i),this.propertyConfig.categories.editor=this.getEditorProperties(n),this.propertyConfig}getBasicProperties(n,i){var r;const l=this;return this.setDesignViewModelField(n),this.formSchemaUtils.getFormMetadataBasicInfo(),{description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"编辑器类型",title:"编辑器类型",type:"string",refreshPanelAfterChanged:!0,$converter:"/converter/change-editor.converter",editor:{type:"combo-list",textField:"value",valueField:"key",editable:!1,data:l.designViewModelField?P.getEditorTypesByMDataType((r=l.designViewModelField.type)==null?void 0:r.name):P.getAllInputTypes()}},label:{title:"标签",type:"string",$converter:"/converter/form-group-label.converter"},binding:{description:"绑定的表单字段",title:"绑定",editor:{type:"binding-selector",bindingType:{enable:!1},editorParams:{componentSchema:n,needSyncToViewModel:!0,viewModelId:this.viewModelId,designerHostService:this.designerHostService,disableOccupiedFields:!0},textField:"bindingField"}}},setPropertyRelates(d,y){if(d)switch(d&&d.propertyID){case"type":{l.changeControlType(n,d,i);break}case"label":{d.needRefreshControlTree=!0;break}}}}}getAppearanceProperties(n,i){const l=this;return{title:"样式",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter"},responseLayout:{description:"响应式列宽",title:"响应式列宽",type:"boolean",visible:!0,refreshPanelAfterChanged:!0,editor:{type:"response-layout-editor-setting",initialState:l.responseLayoutEditorFunction.checkCanOpenLayoutEditor(n,l.componentId)}}},setPropertyRelates(r,d){if(r)switch(r&&r.propertyID){case"responseLayout":l.responseLayoutEditorFunction.changeFormControlsByResponseLayoutConfig(r.propertyValue,l.componentId||n.id),l.updateUnifiedLayoutAfterResponseLayoutChanged(l.componentId),l.updateElementByParentContainer(n.id,i),delete n.responseLayout;break;case"class":l.updateUnifiedLayoutAfterControlChanged(r.propertyValue,n.id,this.componentId),l.updateElementByParentContainer(n.id,i);break}}}}getEditorProperties(n){return this.getComponentConfig(n)}changeControlType(n,i,l){var u,o,s,p;const r=i.propertyValue,d=l&&l.parent&&l.parent.schema;if(!d)return;const y=d.contents.findIndex(f=>f.id===n.id),g=d.contents[y];let c;this.designViewModelField&&(this.designViewModelUtils.getDgViewModel(this.viewModelId).changeField(this.designViewModelField.id,{editor:{$type:r},name:this.designViewModelField.name,require:this.designViewModelField.require,readonly:this.designViewModelField.readonly},!1),c=this.controlCreatorUtils.setFormFieldProperty(this.designViewModelField,r)),c||(c=this.controlCreatorUtils.createFormGroupWithoutField(r)),Object.assign(c,{id:g.id,appearance:g.appearance,size:g.size,label:g.label,binding:g.binding,visible:g.visible}),Object.assign(c.editor,{isTextArea:c.isTextArea&&g.isTextArea,placeholder:(u=g.editor)==null?void 0:u.placeholder,holdPlace:(o=g.editor)==null?void 0:o.holdPlace,readonly:(s=g.editor)==null?void 0:s.readonly,require:(p=g.editor)==null?void 0:p.require}),d.contents.splice(y,1),d.contents.splice(y,0,c),l.schema=Object.assign(g,c),Array.from(document.getElementsByClassName("dgComponentSelected")).forEach(f=>f.classList.remove("dgComponentSelected")),Ie.value++}getComponentConfig(n,i={},l={}){const r=Object.assign({description:"编辑器",title:"编辑器",type:"input-group",$converter:"/converter/property-editor.converter"},i),d=Object.assign({readonly:{description:"",title:"只读",type:"boolean"},disabled:{description:"",title:"禁用",type:"boolean"},placeholder:{description:"空值时,输入控件内的占位文本",title:"提示文本",type:"string"}},l);return{...r,properties:{...d}}}updateUnifiedLayoutAfterControlChanged(n,i,l){const r=n.split(" ");let d=r.find(o=>/^col-([1-9]|10|11|12)$/.test(o)),y=r.find(o=>/^col-md-([1-9]|10|11|12)$/.test(o)),g=r.find(o=>/^col-xl-([1-9]|10|11|12)$/.test(o)),c=r.find(o=>/^col-el-([1-9]|10|11|12)$/.test(o));d=d||"col-12",y=y||"col-md-"+d.replace("col-",""),g=g||"col-xl-"+y.replace("col-md-",""),c=c||"col-el-"+g.replace("col-xl-","");const u={id:i,columnInSM:parseInt(d.replace("col-",""),10),columnInMD:parseInt(y.replace("col-md-",""),10),columnInLG:parseInt(g.replace("col-xl-",""),10),columnInEL:parseInt(c.replace("col-el-",""),10)};this.updateUnifiedLayoutAfterResponseLayoutChanged(l,u)}updateUnifiedLayoutAfterResponseLayoutChanged(n,i){const{formNode:l}=this.responseLayoutEditorFunction.checkCanFindFormNode(n);if(!l||!l.unifiedLayout)return;const r=[];if(this.responseLayoutEditorFunction.getResonseFormLayoutConfig(l,r,1),i){const f=r.find(m=>m.id===i.id);Object.assign(f||{},i)}const d=r.map(f=>f.columnInSM),y=r.map(f=>f.columnInMD),g=r.map(f=>f.columnInLG),c=r.map(f=>f.columnInEL),u=this.checkIsUniqueColumn(d)?d[0]:null,o=this.checkIsUniqueColumn(y)?y[0]:null,s=this.checkIsUniqueColumn(g)?g[0]:null,p=this.checkIsUniqueColumn(c)?c[0]:null;Object.assign(l.unifiedLayout,{uniqueColClassInSM:u,uniqueColClassInMD:o,uniqueColClassInLG:s,uniqueColClassInEL:p})}checkIsUniqueColumn(n){const i=new Set(n);return Array.from(i).length===1}}class Me extends Be{constructor(t,n){super(t,n)}getEditorProperties(t){const n=this.getComponentConfig(t,{type:"combo-list"},{editable:{description:"",title:"允许编辑",type:"boolean"},enableClear:{description:"",title:"启用清空",type:"boolean"},textField:{visible:!1,description:"",title:"数据源显示字段",type:"string"},valueField:{visible:!1,description:"",title:"数据源值字段",type:"string"},idField:{visible:!1,description:"",title:"数据源标识字段",type:"string"},data:{description:"",title:"数据",type:"array",editor:{columns:[{field:t.editor.valueField,title:"值",dataType:"string"},{field:t.editor.textField,title:"名称",dataType:"string"},{field:"disabled",title:"禁用",visible:!1,dataType:"boolean",editor:{type:"switch"}}],type:"item-collection-editor",valueField:t.editor.valueField,nameField:t.editor.textField,requiredFields:[t.editor.valueField,t.editor.textField],uniqueFields:[t.editor.valueField,t.editor.textField]},refreshPanelAfterChanged:!0}});return n.setPropertyRelates=function(i){if(i)switch(i.propertyID){case"data":{i.propertyValue.parameters&&(t.editor.valueField=i.propertyValue.parameters.valueField,t.editor.textField=i.propertyValue.parameters.nameField),t.editor.data=i.propertyValue.value;break}}},n}}function xe(e,t){const n=e.schema;function i(l,r){return new Me(l,t).getPropertyConfig(n,r)}return{getPropsConfig:i}}const Ve=a.defineComponent({name:"FComboListDesign",props:O,emits:["clear","update:modelValue","change"],setup(e,t){const n=a.ref(),i=a.inject("designer-host-service"),l=a.inject("design-item-context"),r=xe(l,i),d=T.useDesignerComponent(n,l,r);return a.onMounted(()=>{n.value.componentInstance=d}),t.expose(d.value),()=>a.createVNode(Se,{ref:n,buttonContent:e.dropDownIcon,readonly:!0,editable:!1,forcePlaceholder:!0,placeholder:e.placeholder,enableClear:!0},null)}});V.register=(e,t,n,i)=>{e["combo-list"]=V,t["combo-list"]=E},V.registerDesigner=(e,t,n)=>{e["combo-list"]=Ve,t["combo-list"]=E};const Te=z.withInstall(V);F.FComboList=V,F.Placement=q,F.ViewType=D,F.comboListProps=O,F.default=Te,F.propsResolver=E,Object.defineProperties(F,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
1
+ (function(F,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("vue"),require("lodash-es"),require("../list-view/index.umd.js"),require("../button-edit/index.umd.js"),require("../dynamic-resolver/index.umd.js"),require("../designer-canvas/index.umd.js"),require("../common/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","vue","lodash-es","../list-view/index.umd.js","../button-edit/index.umd.js","../dynamic-resolver/index.umd.js","../designer-canvas/index.umd.js","../common/index.umd.js"],a):(F=typeof globalThis<"u"?globalThis:F||self,a(F["combo-list"]={},F.Vue,F.LodashES,F.FListView,F.FButtonEdit,F.dynamicResolver,F.designerCanvas,F.common))})(this,function(F,a,w,R,W,H,T,z){"use strict";var Pe=Object.defineProperty;var Ee=(F,a,w)=>a in F?Pe(F,a,{enumerable:!0,configurable:!0,writable:!0,value:w}):F[a]=w;var v=(F,a,w)=>Ee(F,typeof a!="symbol"?a+"":a,w);const X={},_={};function A(e){const{properties:t,title:n,ignore:i}=e,l=i&&Array.isArray(i),r=Object.keys(t).reduce((d,y)=>((!l||!i.find(g=>g===y))&&(d[y]=t[y].type==="object"&&t[y].properties?A(t[y]):w.cloneDeep(t[y].default)),d),{});if(n&&(!l||!i.find(d=>d==="id"))){const d=n.toLowerCase().replace(/-/g,"_");r.id=`${d}_${Math.random().toString().slice(2,6)}`}return r}function J(e,t){const n=A(t);return Object.keys(n).reduce((i,l)=>(Object.prototype.hasOwnProperty.call(e,l)&&(i[l]&&w.isPlainObject(i[l])&&w.isPlainObject(e[l]||!e[l])?Object.assign(i[l],e[l]||{}):i[l]=e[l]),i),n),n}function Q(e,t){return Object.keys(e).filter(i=>e[i]!=null).reduce((i,l)=>{if(t.has(l)){const r=t.get(l);if(typeof r=="string")i[r]=e[l];else{const d=r(l,e[l],e);Object.assign(i,d)}}else i[l]=e[l];return i},{})}function Y(e,t,n=new Map){const i=J(e,t);return Q(i,n)}function Z(e={}){function t(c,u,o,s){if(typeof o=="number")return s[c].length===o;if(typeof o=="object"){const p=Object.keys(o)[0],f=o[p];if(p==="not")return Number(s[c].length)!==Number(f);if(p==="moreThan")return Number(s[c].length)>=Number(f);if(p==="lessThan")return Number(s[c].length)<=Number(f)}return!1}function n(c,u,o,s){return s[c]&&s[c].propertyValue&&String(s[c].propertyValue.value)===String(o)}const i=new Map([["length",t],["getProperty",n]]);Object.keys(e).reduce((c,u)=>(c.set(u,e[u]),c),i);function l(c,u){const o=c;return typeof u=="number"?[{target:o,operator:"length",param:null,value:Number(u)}]:typeof u=="boolean"?[{target:o,operator:"getProperty",param:c,value:!!u}]:typeof u=="object"?Object.keys(u).map(s=>{if(s==="length")return{target:o,operator:"length",param:null,value:u[s]};const p=s,f=u[s];return{target:o,operator:"getProperty",param:p,value:f}}):[]}function r(c){return Object.keys(c).reduce((o,s)=>{const p=l(s,c[s]);return o.push(...p),o},[])}function d(c,u){if(i.has(c.operator)){const o=i.get(c.operator);return o&&o(c.target,c.param,c.value,u)||!1}return!1}function y(c,u){return r(c).reduce((p,f)=>p&&d(f,u),!0)}function g(c,u){const o=Object.keys(c),s=o.includes("allOf"),p=o.includes("anyOf"),f=s||p,C=(f?c[f?s?"allOf":"anyOf":"allOf"]:[c]).map(k=>y(k,u));return s?!C.includes(!1):C.includes(!0)}return{parseValueSchema:g}}const h={button:{type:"button",name:"按钮",icon:"Button"},"response-toolbar":{type:"response-toolbar",name:"工具栏",icon:"ButtonGroup"},"response-toolbar-item":{type:"response-toolbar-item",name:"按钮",icon:"Button"},"content-container":{type:"content-container",name:"容器",icon:"ContentContainer"},"input-group":{type:"input-group",name:"文本",icon:"TextBox"},textarea:{type:"textarea",name:"多行文本",icon:"MultiTextBox"},lookup:{type:"lookup",name:"帮助",icon:"LookupEdit"},"number-spinner":{type:"number-spinner",name:"数值",icon:"NumericBox"},"date-picker":{type:"date-picker",name:"日期",icon:"DateBox"},switch:{type:"switch",name:"开关",icon:"SwitchField"},"radio-group":{type:"radio-group",name:"单选组",icon:"RadioGroup"},"check-box":{type:"check-box",name:"复选框",icon:"CheckBox"},"check-group":{type:"check-group",name:"复选框组",icon:"CheckGroup"},"combo-list":{type:"combo-list",name:"下拉列表",icon:"EnumField"},"response-form":{type:"response-form",name:"卡片面板",icon:"Form"},"response-layout":{type:"response-layout",name:"布局容器",icon:"ResponseLayout3"},"response-layout-item":{type:"response-layout-item",name:"布局",icon:"ResponseLayout1"},"tree-grid":{type:"tree-grid",name:"树表格",icon:"TreeGrid"},"tree-grid-column":{type:"tree-grid-column",name:"树表格列"},"data-grid":{type:"data-grid",name:"表格",icon:"DataGrid"},"data-grid-column":{type:"data-grid-column",name:"表格列"},module:{type:"Module",name:"模块",icon:"Module"},component:{type:"component",name:"组件",icon:"Component"},tabs:{type:"tabs",name:"标签页",icon:"Tab"},"tab-page":{type:"tab-page",name:"标签页项",dependentParentControl:"Tab"},"tab-toolbar-item":{type:"tab-toolbar-item",name:"标签页工具栏按钮",icon:"Button"},"time-picker":{type:"time-picker",name:"时间选择",icon:"TimePicker"},section:{type:"section",name:"分组面板",icon:"Section"},"section-toolbar":{type:"section-toolbar",name:"分组面板工具栏"},"section-toolbar-item":{type:"section-toolbar-item",name:"分组面板按钮"},splitter:{type:"splitter",name:"分栏面板",icon:"Splitter"},"splitter-pane":{type:"splitter-pane",name:"分栏面板项",dependentParentControl:"Splitter"},"component-ref":{type:"component-ref",name:"组件引用节点"},uploader:{type:"uploader",name:"附件上传",icon:"FileUpload"},"page-header":{type:"page-header",name:"页头",icon:"Header"},"page-footer":{type:"page-footer",name:"页脚",icon:"ModalFooter"},"tab-toolbar":{type:"tab-toolbar",name:"标签页工具栏",icon:"TabToolbar"},fieldset:{type:"fieldset",name:"分组",icon:"fieldset"},"query-solution":{type:"query-solution",name:"筛选方案",icon:"QueryScheme"}},K={},ee={};Z();function N(e,t,n=new Map,i=(d,y,g,c)=>y,l={},r=d=>d){return X[t.title]=t,_[t.title]=i,K[t.title]=l,ee[t.title]=r,(d={})=>{const y=Y(d,t,n),g=Object.keys(e).reduce((c,u)=>(c[u]=e[u].default,c),{});return Object.assign(g,y)}}function te(e,t){return{customClass:t.class,customStyle:t.style}}const ne=new Map([["appearance",te]]),oe={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/combo-list.schema.json",title:"combo-list",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-list"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disabled:{description:"",type:"boolean",default:!1},enableClear:{description:"",type:"boolean",default:!0},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:""},idField:{description:"",type:"string",default:"id"},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:""}},required:["type"],ignore:["id","appearance","binding","visible"]};function ie(e,t,n){return t}var D=(e=>(e.Text="text",e.Tag="tag",e))(D||{}),q=(e=>(e.top="top",e.bottom="bottom",e.auto="auto",e))(q||{});const O={id:{type:String},data:{type:Array,default:[]},disabled:{default:!1,type:Boolean},dropDownIcon:{type:String,default:'<span class="f-icon f-icon-arrow-60-down"></span>'},editable:{default:!1,type:Boolean},enableClear:{default:!0,type:Boolean},enableSearch:{type:Boolean,default:!1},enableTitle:{default:!0,type:Boolean},fitEditor:{default:!1,type:Boolean},forcePlaceholder:{default:!1,type:Boolean},hidePanelOnClear:{default:!0,type:Boolean},idField:{default:"id",type:String},mapFields:{type:Object},maxHeight:{default:350,type:Number},maxLength:{type:Number},multiSelect:{type:Boolean,default:!1},modelValue:{},placeholder:{type:String},placement:{type:String,default:"auto"},readonly:{default:!1,type:Boolean},remote:{default:null,type:Object},remoteSearch:{default:!1,type:Boolean},separator:{default:",",type:String},tabIndex:{type:Number,default:-1},textField:{default:"name",type:String},titleField:{default:"name",type:String},valueField:{default:"id",type:String},viewType:{default:"tag",type:String},change:{type:Function,default:()=>{}},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},autoHeight:{type:Boolean,default:!0},beforeOpen:{type:Function,default:null},searchOption:{type:[Boolean,Function],default:!1},enableHighlightSearch:{type:Boolean,default:!0}},E=N(O,oe,ne,ie),le={dataSource:{type:Array,default:[]},enableSearch:{type:Boolean,default:!1},idField:{type:String,default:"id"},multiSelect:{type:Boolean,default:!1},selectedValues:{type:String,default:""},separator:{type:String,default:","},textField:{type:String,default:"name"},titleField:{type:String,default:"name"},width:{type:Number},maxHeight:{type:Number},valueField:{type:String,default:"id"},onSelectionChange:{type:Function,default:()=>{}},searchOption:{type:[Boolean,Function],default:!1},enableHighlightSearch:{type:Boolean,default:!0}},ae=a.defineComponent({name:"FComboListContainer",props:le,emits:["selectionChange"],setup(e,t){const n=a.ref(),i=a.ref(e.dataSource),l=a.ref([]),r=a.ref(e.separator),d=a.ref(e.width),y=a.ref(e.maxHeight),g=a.ref(String(e.selectedValues).split(r.value)),c=a.computed(()=>e.multiSelect),u=a.computed(()=>({enableSelectRow:!0,multiSelect:e.multiSelect,multiSelectMode:"OnCheckAndClick",showCheckbox:c.value,showSelectAll:!1,showSelection:!0}));a.watch(e.dataSource,()=>{i.value=e.dataSource});const o=a.computed(()=>e.enableSearch?"SearchBar":"ContentHeader"),s=a.computed(()=>{const m={};return d.value!==void 0&&(m.width=`${d.value}px`),y.value!==void 0&&y.value>0&&(m.maxHeight=`${y.value}px`),m});function p(m){l.value=m.map(b=>Object.assign({},b)),g.value=m.map(b=>b[e.idField]),t.emit("selectionChange",l.value)}function f(m){if(e.enableHighlightSearch)return;let b=[];const{searchOption:C}=e;typeof C=="function"?b=i.value.filter(S=>C(m,S)):b=i.value.filter(S=>S[e.valueField].indexOf(m)>-1||S[e.textField].indexOf(m)>-1),n.value.updateDataSource(b)}return a.watch([()=>e.selectedValues],([m])=>{g.value=m.split(r.value)}),()=>a.createVNode("div",{class:"f-combo-list-container pl-1",style:s.value},[a.createVNode(R,{ref:n,size:"small",itemClass:"f-combo-list-item",header:o.value,headerClass:"f-combo-list-search-box",data:i.value,idField:e.idField,textField:e.textField,titleField:e.titleField,multiSelect:e.multiSelect,selection:u.value,enableHighlightSearch:e.enableHighlightSearch,selectionValues:g.value,onSelectionChange:p,onAfterSearch:f},null)])}});function re(e){const t=a.ref(""),n=a.ref(e.modelValue),i=a.ref(e.data||[]),l=a.ref(e.editable);function r(o){const s=String(o).split(e.separator),p=s.map(b=>[b,!0]),f=new Map(p);return i.value.filter(b=>f.has(String(b[e.valueField]))).sort((b,C)=>{const S=s.indexOf(b[e.valueField]),k=s.indexOf(C[e.valueField]);return S-k})}function d(o){const s=r(o).map(p=>p[e.textField]).join(e.separator);t.value=l.value?s||o:s}function y(o){const s=o.split(e.separator).map(f=>[f,!0]),p=new Map(s);return i.value.filter(f=>p.has(f[e.textField]))}function g(o){const s={};return s[e.idField]=o,s[e.textField]=o,[s]}function c(o){let s=y(o);const p=s&&s.length>0;return l.value&&!p&&(s=g(o)),s}function u(){const{url:o,method:s="GET",headers:p={},body:f=null}=e.remote,m=s.toLowerCase()==="get"?{method:s,headers:p}:{method:s,headers:p,body:f};let b=!1;fetch(o,m).then(C=>{var k,B;if(C.status===200)return b=!!((B=(k=C.headers)==null?void 0:k.get("content-type"))!=null&&B.includes("application/json")),b?C.text():C.json();throw new Error(C.statusText)}).then(C=>{i.value=b?JSON.parse(C):C}).catch(C=>{console.error(C)})}return e.remote&&u(),a.watch(()=>e.data,()=>{i.value=e.data}),a.watch([i],([o])=>{if(e.modelValue!=null){const s=o.find(p=>p[e.valueField]===e.modelValue);s&&(t.value=s[e.textField])}}),a.watch(()=>e.modelValue,o=>{n.value=o,d(o)}),d(e.modelValue),{dataSource:i,displayText:t,editable:l,modelValue:n,getItemsByDisplayText:y,getItemsByValue:r,getSelectedItemsByDisplayText:c}}const V=a.defineComponent({name:"FComboList",props:O,emits:["clear","update:modelValue","change","input"],setup(e,t){const n=a.ref(),i=a.ref(e.disabled),l=a.ref(e.enableClear),r=a.ref(e.enableSearch),d=a.ref(e.readonly),{dataSource:y,displayText:g,editable:c,modelValue:u,getSelectedItemsByDisplayText:o}=re(e),s=a.computed(()=>e.multiSelect),p=a.computed(()=>n.value?n.value.elementRef.getBoundingClientRect().width:0);function f(){!s.value&&n.value&&n.value.hidePopup()}function m(I){g.value=I.map(M=>M[e.textField]).join(e.separator),I.length===1?u.value=I[0][e.valueField]:u.value=I.map(M=>M[e.valueField]).join(e.separator),t.emit("update:modelValue",u.value),t.emit("change",I,u.value),f()}function b(){d.value||n.value.togglePopup()}function C(I){u.value="",t.emit("update:modelValue",""),t.emit("clear")}function S(I){const M=o(I);m(M)}function k(){return g.value}function B(I){t.emit("input",I)}return t.expose({getDisplayText:k}),a.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([I,M,L,j,$])=>{i.value=I,c.value=M,l.value=L,r.value=j,d.value=$}),()=>a.createVNode(W,{ref:n,id:e.id,disable:i.value,readonly:d.value,forcePlaceholder:e.forcePlaceholder,editable:c.value,buttonContent:e.dropDownIcon,placeholder:e.placeholder,enableClear:l.value,maxLength:e.maxLength,tabIndex:e.tabIndex,enableTitle:e.enableTitle,multiSelect:e.multiSelect,inputType:e.multiSelect?e.viewType:"text",modelValue:g.value,"onUpdate:modelValue":I=>g.value=I,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated,onClear:C,onClick:b,onChange:S,onInput:B,beforeOpen:e.beforeOpen},{default:()=>[a.createVNode(ae,{idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,dataSource:y.value,selectedValues:u.value,multiSelect:e.multiSelect,enableSearch:r.value,maxHeight:e.maxHeight,enableHighlightSearch:e.enableHighlightSearch,width:e.fitEditor?p.value:void 0,onSelectionChange:m},null)]})}}),se=new Map([["appearance",H.resolveAppearance]]);function de(e,t,n){return t}const ce={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/button-edit.schema.json",title:"button-edit",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a Input Group",type:"string"},type:{description:"The type string of Input Group component",type:"string",default:"button-edit"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},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:""},readonly:{description:"",type:"boolean",default:!1},require:{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:""},autoComplete:{description:"",type:"boolean",default:!1},buttonContent:{description:"",type:"string",default:""},enableClear:{description:"",type:"boolean",default:!0},inputType:{description:"",type:"string",enum:["text","tag"],default:"text"},multiSelect:{description:"",type:"boolean",default:!1},popup:{description:"",type:"object",properties:{footerButtons:{type:"array",default:[]},height:{type:"number",default:600},dataMapping:{type:"object"},contents:{type:"array",default:[]},showMaxButton:{type:"boolean",default:!0},showCloseButton:{type:"boolean",default:!0},showFooter:{type:"boolean",default:!0},title:{type:"string",default:""},width:{type:"number",default:800}}},separator:{type:"string",default:","},showButtonWhenDisabled:{description:"",type:"boolean",default:!1},wrapText:{type:"boolean",default:!1},onClear:{description:"",type:"string",default:""}},required:["id","type"]},ue={title:"buttonEdit",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}},behavior:{description:"Basic Infomation",title:"行为",properties:{editable:{description:"",title:"允许编辑",type:"boolean"},readonly:{description:"",title:"只读",type:"string"},required:{description:"",title:"必填",type:"boolean"},visible:{description:"",title:"可见",type:"boolean"},placeholder:{description:"",title:"提示文本",type:"string"},tabindex:{description:"",title:"tab索引",type:"number"},textAlign:{description:"",title:"对齐方式",type:"enum",editor:{type:"combo-list",textField:"name",valueField:"value",data:[{value:"left",name:"左对齐"},{value:"center",name:"居中"},{value:"right",name:"右对齐"}]}}}}}},G={id:String,buttonContent:{type:String,default:'<i class="f-icon f-icon-lookup"></i>'},buttonBehavior:{type:String,default:"Popup"},autoComplete:{type:Boolean,default:!1},customClass:{type:String,default:""},disable:{type:Boolean,default:!1},editable:{type:Boolean,default:!0},enableClear:{type:Boolean,default:!1},modelValue:{type:String,default:""},readonly:{type:Boolean,default:!1},showButtonWhenDisabled:{type:Boolean,default:!1},enableTitle:{type:Boolean,default:!1},inputType:{type:String,default:"text"},forcePlaceholder:{type:Boolean,default:!1},placeholder:{type:String,default:""},minLength:Number,maxLength:Number,tabIndex:Number,popupHost:{type:Object},popupRightBoundary:{type:Object},popupOffsetX:{type:Object},popupOnInput:{type:Boolean,default:!1},popupOnFocus:{type:Boolean,default:!1},popupMinWidth:{type:Number,default:160},modalOptions:{type:Object,default:{}},wrapText:{type:Boolean,default:!1},multiSelect:{type:Boolean,default:!1},separator:{type:String,default:","},textAlign:{type:String,default:"left"},beforeClickButton:{type:Function,default:null},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},beforeOpen:{type:Function,default:null},updateOn:{type:String,default:"change"}};N(G,ce,se,de,ue);const pe={popupContentPosition:{type:Object,default:{left:0,top:0}},host:{type:Object},backgroundColor:{type:String,default:""}},fe=a.defineComponent({name:"FOverlay",props:pe,emits:["click"],setup(e,t){const n=a.ref(e.popupContentPosition),i=a.ref(e.host),l=a.computed(()=>({backgroundColor:e.backgroundColor||"",pointerEvents:"auto"}));function r(y){t.emit("click"),y.preventDefault(),y.stopPropagation()}a.computed(()=>{const y=i.value;if(y){const g=y.getBoundingClientRect(),{left:c,top:u,height:o}=g;return{left:c,top:u+o}}return n.value});const d=a.computed(()=>({}));return()=>a.createVNode(a.Teleport,{to:"body"},{default:()=>{var y,g;return[a.createVNode("div",{class:"overlay-container",onClick:c=>r(c),style:l.value},[a.createVNode("div",{style:d.value},[(g=(y=t.slots).default)==null?void 0:g.call(y)])])]}})}});function me(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function ye(e){const t=document.createElement("div");t.style.display="contents";let n;const i=e.onClickCallback||(()=>{}),l=()=>{i(),n&&n.unmount()};return n=a.createApp({setup(){a.onUnmounted(()=>{document.body.removeChild(t)});const r=me(e);return()=>a.createVNode(fe,{"popup-content-position":e.popupPosition,host:e.host,onClick:l,backgroundColor:e.backgroundColor},{default:()=>[r&&r()]})}}),document.body.appendChild(t),n.mount(t),n}class ge{static show(t){return ye(t)}}const he=Symbol("FModalService");function U(e,t){function n(){const i=e.beforeOpen||e.beforeClickButton||null;let l=Promise.resolve(!0);if(i){const r=i(t.value);if(typeof r>"u")return l;typeof r=="boolean"?l=Promise.resolve(r):l=r}return l}return{judgeCanOpen:n}}function be(e,t,n,i,l){const r=a.ref(e.buttonBehavior),d=a.ref(e.popupOnInput),y=a.computed(()=>({"input-group-append":!0,"append-force-show":e.showButtonWhenDisabled&&(e.readonly||e.disable)})),{judgeCanOpen:g}=U(e,l),c=a.computed(()=>e.showButtonWhenDisabled||(!e.editable||!e.readonly)&&!e.disable),u=a.inject(he,null),o=a.ref();async function s(m){if(await g()&&c.value){const b=!!t.slots.default;if(r.value==="Modal"){const C=e.modalOptions,S=u==null?void 0:u.open({...C,render:()=>t.slots.default&&t.slots.default()});o.value=S==null?void 0:S.modalRef}r.value==="Overlay"&&ge.show({host:document.body,backgroundColor:"rgba(0,0,0,.15)",render:()=>t.slots.default&&t.slots.default()}),b&&r.value==="Popup"&&i.togglePopup(!0),b&&d.value&&i.hidePopup(),t.emit("clickButton",{origin:m,value:e.modelValue})}}function p(m){t.emit("mouseEnterIcon",m)}function f(m){t.emit("mouseLeaveIcon",m)}return{buttonGroupClass:y,onClickButton:s,onMouseEnterButton:p,onMouseLeaveButton:f,modalRef:o}}function Ce(e,t,n,i){const l=a.ref(),r=a.ref(!1),{judgeCanOpen:d}=U(e,i);function y(){const o=l.value;o&&o.show(n.value)}async function g(o=!1){if(!!t.slots.default){if(!o&&!r.value&&!await d())return;r.value=!r.value,await a.nextTick(),y()}}async function c(o=!1){if(!!t.slots.default){if(!o&&!await d())return;r.value=!0,await a.nextTick(),y()}}function u(){r.value=!1}return{hidePopup:u,popup:c,shouldPopupContent:r,togglePopup:g,popoverRef:l}}function ve(e,t,n){const{buttonGroupClass:i}=n,l=a.ref();return{renderButtonGroup:()=>a.createVNode("div",{id:`${e.id}-button-group`,class:i.value},[t.slots.buttonContent?a.createVNode("span",{class:"input-group-text input-group-append-button"},[t.slots.buttonContent()]):e.buttonContent?a.createVNode("span",{class:"input-group-text input-group-append-button",innerHTML:e.buttonContent,ref:l},null):null]),buttonHandleElement:l}}const Se=a.defineComponent({name:"FButtonEdit",props:G,emits:["updateExtendInfo","clear","change","click","clickButton","blur","focus","mouseEnterIcon","mouseLeaveIcon","keyup","keydown","inputClick","input","update:modelValue"],setup(e,t){const n=a.ref(),i=a.inject("design-item-context"),l=T.useDesignerComponent(n,i),r=a.ref(e.customClass),d=a.ref(e.modelValue),y=Ce(e,t,n,d),g=be(e,t,n,y,d),c=a.ref(),u=a.computed(()=>({"f-cmp-inputgroup":!0,"input-group":!0,"f-state-disable":!0,"f-state-editable":!1,"f-state-readonly":!0}));a.onMounted(()=>{n.value.componentInstance=l}),t.expose(l.value);const o=a.computed(()=>{const p={"f-button-edit":!0,"f-cmp-inputgroup":!0,"f-button-edit-nowrap":!e.wrapText};return r.value&&r.value.split(" ").reduce((f,m)=>(f[m]=!0,f),p),p}),{renderButtonGroup:s}=ve(e,t,g);return()=>a.createVNode("div",a.mergeProps(t.attrs,{ref:n,class:o.value,id:e.id}),[a.createVNode("div",{class:u.value},[a.createVNode("input",{ref:c,class:"form-control",readonly:!0,placeholder:e.placeholder},null),s()])])}});class Fe{constructor(t,n){v(this,"componentId");v(this,"viewModelId");v(this,"eventsEditorUtils");v(this,"formSchemaUtils");v(this,"formMetadataConverter");v(this,"designViewModelUtils");v(this,"designViewModelField");v(this,"controlCreatorUtils");v(this,"designerHostService");v(this,"schemaService",null);v(this,"metadataService",null);v(this,"propertyConfig",{type:"object",categories:{}});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}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 l=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=l.fields.find(r=>r.id===n)}t.updateOn=(i=this.designViewModelField)==null?void 0:i.updateOn}}changeFieldEditorType(t,n){}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",data:[{value:t.type,name:h[t.type].name}]}}}}}getAppearanceConfig(t=null){return{title:"样式",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter"}}}}updateElementByParentContainer(t,n){const i=n&&n.parent&&n.parent.schema;if(!i)return;const l=i.contents.findIndex(d=>d.id===t),r=w.cloneDeep(i.contents[l]);i.contents.splice(l,1),i.contents.splice(l,0,r)}}const x=class x{static getEditorTypesByMDataType(t){const n=x.fieldControlTypeMapping[t];return n||[{key:"",value:""}]}static getAllInputTypes(){const t=[];for(const n in x.fieldControlTypeMapping)x.fieldControlTypeMapping[n].forEach(i=>{t.find(l=>l.key===i.key&&l.value===i.value)||t.push({key:i.key,value:i.value})});return t}};v(x,"fieldControlTypeMapping",{String:[{key:h["input-group"].type,value:h["input-group"].name},{key:h.lookup.type,value:h.lookup.name},{key:h["date-picker"].type,value:h["date-picker"].name},{key:h["check-box"].type,value:h["check-box"].name},{key:h["check-group"].type,value:h["check-group"].name},{key:h["radio-group"].type,value:h["radio-group"].name},{key:h["combo-list"].type,value:h["combo-list"].name},{key:h.textarea.type,value:h.textarea.name}],Text:[{key:h.textarea.type,value:h.textarea.name},{key:h.lookup.type,value:h.lookup.name}],Decimal:[{key:h["number-spinner"].type,value:h["number-spinner"].name}],Integer:[{key:h["number-spinner"].type,value:h["number-spinner"].name}],Number:[{key:h["number-spinner"].type,value:h["number-spinner"].name}],BigNumber:[{key:h["number-spinner"].type,value:h["number-spinner"].name}],Date:[{key:h["date-picker"].type,value:h["date-picker"].name}],DateTime:[{key:h["date-picker"].type,value:h["date-picker"].name}],Boolean:[{key:h.switch.type,value:h.switch.name},{key:h["check-box"].type,value:h["check-box"].name}],Enum:[{key:h["combo-list"].type,value:h["combo-list"].name},{key:h["radio-group"].type,value:h["radio-group"].name}],Object:[{key:h.lookup.type,value:h.lookup.name},{key:h["combo-list"].type,value:h["combo-list"].name},{key:h["radio-group"].type,value:h["radio-group"].name}]});let P=x;const Ie=a.ref(0);class ke{constructor(){v(this,"label","");v(this,"id","");v(this,"columnInSM",12);v(this,"columnInMD",6);v(this,"columnInLG",3);v(this,"columnInEL",2);v(this,"displayWidthInSM",1);v(this,"displayWidthInMD",1);v(this,"displayWidthInLG",1);v(this,"displayWidthInEL",1);v(this,"displayColumnCountAtBreakPoint","md");v(this,"tagRow",0);v(this,"showTopBorder",0);v(this,"group",1);v(this,"isSupportedClass",!0);v(this,"fieldSetId","")}}function we(e){let t,n;const i=new Map;let l=[];function r(u,o){const p=u.split(" ").filter(S=>S.startsWith("col-"));if(p.length===0){o.isSupportedClass=!1;return}let f=p.find(S=>/^col-([1-9]|10|11|12)$/.test(S)),m=p.find(S=>/^col-md-([1-9]|10|11|12)$/.test(S)),b=p.find(S=>/^col-xl-([1-9]|10|11|12)$/.test(S)),C=p.find(S=>/^col-el-([1-9]|10|11|12)$/.test(S));f=f||"col-12",o.columnInSM=parseInt(f.replace("col-",""),10),o.displayWidthInSM=o.columnInSM/12,o.displayWidthInSM!==1&&(o.isSupportedClass=!1),m=m||"col-md-"+o.columnInSM,o.columnInMD=parseInt(m.replace("col-md-",""),10),o.displayWidthInMD=o.columnInMD/6,[1,2].includes(o.displayWidthInMD)||(o.isSupportedClass=!1),b=b||"col-xl-"+o.columnInMD,o.columnInLG=parseInt(b.replace("col-xl-",""),10),o.displayWidthInLG=o.columnInLG/3,[1,2,3,4].includes(o.displayWidthInLG)||(o.isSupportedClass=!1),C=C||"col-el-"+o.columnInLG,o.columnInEL=parseInt(C.replace("col-el-",""),10),o.displayWidthInEL=o.columnInEL/2,[1,2,3,4,5,6].includes(o.displayWidthInEL)||(o.isSupportedClass=!1)}function d(u,o,s,p=!1){let f=!1;u.contents.forEach(m=>{if(m.type==="fieldset"){s+=1,d(m,o,s,!0),f=!0;return}f&&(s+=1,f=!1);const b=m.appearance&&m.appearance.class,C=new ke;b?r(b,C):C.isSupportedClass=!1,C.label=m.label||m.id,C.id=m.id,C.group=s,p&&(C.fieldSetId=u.id),n===m.id&&(t=s),i.set(m.id,m),o.push(C)})}function y(u){const o=e.getComponentById(u);if(!o||!o.componentType||!o.componentType.startsWith("form"))return{result:!1,message:"只可以在响应式表单组件中调整响应式布局配置"};const s=e.selectNode(o,p=>p.type===T.DgControl["response-form"].type);return!s||!s.contents||s.contents.length===0?{result:!1,message:"Form区域内没有控件,请先添加控件"}:{result:!0,message:"",formNode:s}}function g(u,o){o=o||u.id;const{result:s,message:p,formNode:f}=y(o);if(!s)return{result:s,message:p};n=u.id,l=[],i.clear();const m=f.contents[0].type===T.DgControl.fieldset.type?0:1;d(f,l,m);const b=l.find(S=>!S.isSupportedClass);return{defaultState:{defaultGroupNumber:t||1,model:b?"customize":"standard"},importData:l}}function c(u,o){o=o;const{result:s,formNode:p}=y(o);if(!s)return"";const f=[];return u.forEach(m=>{var S;const b=i.get(m.id),C=b.appearance&&b.appearance.class;if(C){const B=C.split(" ").filter(Oe=>!Oe.startsWith("col-")),I="col-"+m.columnInSM,M="col-md-"+m.columnInMD,L="col-xl-"+m.columnInLG,j="col-el-"+m.columnInEL,$=[I,M,L,j].concat(B);b.appearance.class=$.join(" ")}if(m.fieldSetId){const k=p.contents.find(I=>I.id===m.fieldSetId),B=f.find(I=>I.id===m.fieldSetId);B?(S=B.contents)==null||S.push(b):(f.push(k),k.contents=[b])}else f.push(b)}),p.contents=f,p.id}return{checkCanFindFormNode:y,checkCanOpenLayoutEditor:g,changeFormControlsByResponseLayoutConfig:c,getResonseFormLayoutConfig:d}}class Be extends Fe{constructor(n,i){super(n,i);v(this,"responseLayoutEditorFunction");this.responseLayoutEditorFunction=we(this.formSchemaUtils)}getPropertyConfig(n,i){return this.propertyConfig.categories.basic=this.getBasicProperties(n,i),this.propertyConfig.categories.appearance=this.getAppearanceProperties(n,i),this.propertyConfig.categories.editor=this.getEditorProperties(n),this.propertyConfig}getBasicProperties(n,i){var r;const l=this;return this.setDesignViewModelField(n),{description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"编辑器类型",title:"编辑器类型",type:"string",refreshPanelAfterChanged:!0,$converter:"/converter/change-editor.converter",editor:{type:"combo-list",textField:"value",valueField:"key",editable:!1,data:l.designViewModelField?P.getEditorTypesByMDataType((r=l.designViewModelField.type)==null?void 0:r.name):P.getAllInputTypes()}},label:{title:"标签",type:"string",$converter:"/converter/form-group-label.converter"},binding:{description:"绑定的表单字段",title:"绑定",editor:{type:"binding-selector",bindingType:{enable:!1},editorParams:{componentSchema:n,needSyncToViewModel:!0,viewModelId:this.viewModelId,designerHostService:this.designerHostService,disableOccupiedFields:!0},textField:"bindingField"}}},setPropertyRelates(d,y){if(d)switch(d&&d.propertyID){case"type":{l.changeControlType(n,d,i);break}case"label":{d.needRefreshControlTree=!0;break}}}}}getAppearanceProperties(n,i){const l=this;return{title:"样式",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter"},responseLayout:{description:"响应式列宽",title:"响应式列宽",type:"boolean",visible:!0,refreshPanelAfterChanged:!0,editor:{type:"response-layout-editor-setting",initialState:l.responseLayoutEditorFunction.checkCanOpenLayoutEditor(n,l.componentId)}}},setPropertyRelates(r,d){if(r)switch(r&&r.propertyID){case"responseLayout":l.responseLayoutEditorFunction.changeFormControlsByResponseLayoutConfig(r.propertyValue,l.componentId||n.id),l.updateUnifiedLayoutAfterResponseLayoutChanged(l.componentId),l.updateElementByParentContainer(n.id,i),delete n.responseLayout;break;case"class":l.updateUnifiedLayoutAfterControlChanged(r.propertyValue,n.id,this.componentId),l.updateElementByParentContainer(n.id,i);break}}}}getEditorProperties(n){return this.getComponentConfig(n)}changeControlType(n,i,l){var u,o,s,p;const r=i.propertyValue,d=l&&l.parent&&l.parent.schema;if(!d)return;const y=d.contents.findIndex(f=>f.id===n.id),g=d.contents[y];let c;this.designViewModelField&&(this.designViewModelUtils.getDgViewModel(this.viewModelId).changeField(this.designViewModelField.id,{editor:{$type:r},name:this.designViewModelField.name,require:this.designViewModelField.require,readonly:this.designViewModelField.readonly},!1),c=this.controlCreatorUtils.setFormFieldProperty(this.designViewModelField,r)),c||(c=this.controlCreatorUtils.createFormGroupWithoutField(r)),Object.assign(c,{id:g.id,appearance:g.appearance,size:g.size,label:g.label,binding:g.binding,visible:g.visible}),Object.assign(c.editor,{isTextArea:c.isTextArea&&g.isTextArea,placeholder:(u=g.editor)==null?void 0:u.placeholder,holdPlace:(o=g.editor)==null?void 0:o.holdPlace,readonly:(s=g.editor)==null?void 0:s.readonly,require:(p=g.editor)==null?void 0:p.require}),d.contents.splice(y,1),d.contents.splice(y,0,c),l.schema=Object.assign(g,c),Array.from(document.getElementsByClassName("dgComponentSelected")).forEach(f=>f.classList.remove("dgComponentSelected")),Ie.value++}getComponentConfig(n,i={},l={}){const r=Object.assign({description:"编辑器",title:"编辑器",type:"input-group",$converter:"/converter/property-editor.converter"},i),d=Object.assign({readonly:{description:"",title:"只读",type:"boolean"},disabled:{description:"",title:"禁用",type:"boolean"},placeholder:{description:"空值时,输入控件内的占位文本",title:"提示文本",type:"string"}},l);return{...r,properties:{...d}}}updateUnifiedLayoutAfterControlChanged(n,i,l){const r=n.split(" ");let d=r.find(o=>/^col-([1-9]|10|11|12)$/.test(o)),y=r.find(o=>/^col-md-([1-9]|10|11|12)$/.test(o)),g=r.find(o=>/^col-xl-([1-9]|10|11|12)$/.test(o)),c=r.find(o=>/^col-el-([1-9]|10|11|12)$/.test(o));d=d||"col-12",y=y||"col-md-"+d.replace("col-",""),g=g||"col-xl-"+y.replace("col-md-",""),c=c||"col-el-"+g.replace("col-xl-","");const u={id:i,columnInSM:parseInt(d.replace("col-",""),10),columnInMD:parseInt(y.replace("col-md-",""),10),columnInLG:parseInt(g.replace("col-xl-",""),10),columnInEL:parseInt(c.replace("col-el-",""),10)};this.updateUnifiedLayoutAfterResponseLayoutChanged(l,u)}updateUnifiedLayoutAfterResponseLayoutChanged(n,i){const{formNode:l}=this.responseLayoutEditorFunction.checkCanFindFormNode(n);if(!l||!l.unifiedLayout)return;const r=[];if(this.responseLayoutEditorFunction.getResonseFormLayoutConfig(l,r,1),i){const f=r.find(m=>m.id===i.id);Object.assign(f||{},i)}const d=r.map(f=>f.columnInSM),y=r.map(f=>f.columnInMD),g=r.map(f=>f.columnInLG),c=r.map(f=>f.columnInEL),u=this.checkIsUniqueColumn(d)?d[0]:null,o=this.checkIsUniqueColumn(y)?y[0]:null,s=this.checkIsUniqueColumn(g)?g[0]:null,p=this.checkIsUniqueColumn(c)?c[0]:null;Object.assign(l.unifiedLayout,{uniqueColClassInSM:u,uniqueColClassInMD:o,uniqueColClassInLG:s,uniqueColClassInEL:p})}checkIsUniqueColumn(n){const i=new Set(n);return Array.from(i).length===1}}class Me extends Be{constructor(t,n){super(t,n)}getEditorProperties(t){const n=this.getComponentConfig(t,{type:"combo-list"},{editable:{description:"",title:"允许编辑",type:"boolean"},enableClear:{description:"",title:"启用清空",type:"boolean"},textField:{visible:!1,description:"",title:"数据源显示字段",type:"string"},valueField:{visible:!1,description:"",title:"数据源值字段",type:"string"},idField:{visible:!1,description:"",title:"数据源标识字段",type:"string"},data:{description:"",title:"数据",type:"array",editor:{columns:[{field:t.editor.valueField,title:"值",dataType:"string"},{field:t.editor.textField,title:"名称",dataType:"string"},{field:"disabled",title:"禁用",visible:!1,dataType:"boolean",editor:{type:"switch"}}],type:"item-collection-editor",valueField:t.editor.valueField,nameField:t.editor.textField,requiredFields:[t.editor.valueField,t.editor.textField],uniqueFields:[t.editor.valueField,t.editor.textField]},refreshPanelAfterChanged:!0}});return n.setPropertyRelates=function(i){if(i)switch(i.propertyID){case"data":{i.propertyValue.parameters&&(t.editor.valueField=i.propertyValue.parameters.valueField,t.editor.textField=i.propertyValue.parameters.nameField),t.editor.data=i.propertyValue.value;break}}},n}}function xe(e,t){const n=e.schema;function i(l,r){return new Me(l,t).getPropertyConfig(n,r)}return{getPropsConfig:i}}const Ve=a.defineComponent({name:"FComboListDesign",props:O,emits:["clear","update:modelValue","change"],setup(e,t){const n=a.ref(),i=a.inject("designer-host-service"),l=a.inject("design-item-context"),r=xe(l,i),d=T.useDesignerComponent(n,l,r);return a.onMounted(()=>{n.value.componentInstance=d}),t.expose(d.value),()=>a.createVNode(Se,{ref:n,buttonContent:e.dropDownIcon,readonly:!0,editable:!1,forcePlaceholder:!0,placeholder:e.placeholder,enableClear:!0},null)}});V.register=(e,t,n,i)=>{e["combo-list"]=V,t["combo-list"]=E},V.registerDesigner=(e,t,n)=>{e["combo-list"]=Ve,t["combo-list"]=E};const Te=z.withInstall(V);F.FComboList=V,F.Placement=q,F.ViewType=D,F.comboListProps=O,F.default=Te,F.propsResolver=E,Object.defineProperties(F,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
@@ -1,4 +1,4 @@
1
- import { defineComponent as B, ref as g, inject as M, computed as S, onMounted as I, createVNode as x, watch as v } from "vue";
1
+ import { defineComponent as B, ref as p, inject as M, computed as S, onMounted as I, createVNode as x, watch as v } from "vue";
2
2
  import N from "../button-edit/index.esm.js";
3
3
  import { isPlainObject as O, cloneDeep as k } from "lodash-es";
4
4
  import E from "../tree-view/index.esm.js";
@@ -14,7 +14,7 @@ function V(e) {
14
14
  }
15
15
  function R(e, r) {
16
16
  const s = V(r);
17
- return Object.keys(s).reduce((l, o) => (l[o] && O(l[o]) && O(e[o] || !e[o]) ? Object.assign(l[o], e[o] || {}) : l[o] = e[o], l), s), s;
17
+ return Object.keys(s).reduce((l, o) => (Object.prototype.hasOwnProperty.call(e, o) && (l[o] && O(l[o]) && O(e[o] || !e[o]) ? Object.assign(l[o], e[o] || {}) : l[o] = e[o]), l), s), s;
18
18
  }
19
19
  function $(e, r) {
20
20
  return Object.keys(e).filter((l) => e[l] != null).reduce((l, o) => {
@@ -84,8 +84,8 @@ function q(e = {}) {
84
84
  return m(n).reduce((i, d) => i && c(d, u), !0);
85
85
  }
86
86
  function y(n, u) {
87
- const t = Object.keys(n), a = t.includes("allOf"), i = t.includes("anyOf"), d = a || i, p = (d ? n[d ? a ? "allOf" : "anyOf" : "allOf"] : [n]).map((F) => f(F, u));
88
- return a ? !p.includes(!1) : p.includes(!0);
87
+ const t = Object.keys(n), a = t.includes("allOf"), i = t.includes("anyOf"), d = a || i, g = (d ? n[d ? a ? "allOf" : "anyOf" : "allOf"] : [n]).map((F) => f(F, u));
88
+ return a ? !g.includes(!1) : g.includes(!0);
89
89
  }
90
90
  return { parseValueSchema: y };
91
91
  }
@@ -402,7 +402,7 @@ const j = {
402
402
  props: re,
403
403
  emits: ["selectionChange"],
404
404
  setup(e, r) {
405
- const s = g(e.data), l = g([]), o = g(e.separator), m = g(e.width), c = g(e.height), f = g(e.maxHeight), y = g(String(e.selectedValues).split(o.value));
405
+ const s = p(e.data), l = p([]), o = p(e.separator), m = p(e.width), c = p(e.height), f = p(e.maxHeight), y = p(String(e.selectedValues).split(o.value));
406
406
  let n = null;
407
407
  e.repositoryToken && (n = M(e.repositoryToken));
408
408
  const u = S(() => [{
@@ -434,7 +434,7 @@ const j = {
434
434
  }
435
435
  });
436
436
  function ue(e) {
437
- const r = g(""), s = g(e.modelValue), l = g(e.data || []), o = g(e.editable);
437
+ const r = p(""), s = p(e.modelValue), l = p(e.data || []), o = p(e.editable);
438
438
  function m(t, a = []) {
439
439
  return t = t || [], t.reduce((i, d) => (i.push(d), d.children && d.children.length && m(d.children, i), i), a);
440
440
  }
@@ -476,7 +476,7 @@ const C = /* @__PURE__ */ B({
476
476
  emits: ["clear", "update:modelValue", "change"],
477
477
  setup(e, r) {
478
478
  return () => {
479
- const s = g(), l = g(e.disabled), o = g(e.enableClear), m = g(e.enableSearch), c = g(e.readonly), {
479
+ const s = p(), l = p(e.disabled), o = p(e.enableClear), m = p(e.enableSearch), c = p(e.readonly), {
480
480
  dataSource: f,
481
481
  displayText: y,
482
482
  editable: n,
@@ -487,18 +487,18 @@ const C = /* @__PURE__ */ B({
487
487
  function i() {
488
488
  !a.value && s.value && s.value.hidePopup();
489
489
  }
490
- function d(p) {
491
- y.value = p.map((h) => h[e.textField]).join(e.separator), u.value = p.map((h) => h[e.valueField]).join(e.separator), r.emit("update:modelValue", u.value), r.emit("change", p, u.value), i();
490
+ function d(g) {
491
+ y.value = g.map((h) => h[e.textField]).join(e.separator), u.value = g.map((h) => h[e.valueField]).join(e.separator), r.emit("update:modelValue", u.value), r.emit("change", g, u.value), i();
492
492
  }
493
- function b(p) {
493
+ function b(g) {
494
494
  u.value = "", r.emit("update:modelValue", ""), r.emit("clear");
495
495
  }
496
- function T(p) {
497
- const h = t(p);
496
+ function T(g) {
497
+ const h = t(g);
498
498
  d(h);
499
499
  }
500
- return v([() => e.disabled, () => e.editable, () => e.enableClear, () => e.enableSearch, () => e.readonly], ([p, h, F, P, w]) => {
501
- l.value = p, n.value = h, o.value = F, m.value = P, c.value = w;
500
+ return v([() => e.disabled, () => e.editable, () => e.enableClear, () => e.enableSearch, () => e.readonly], ([g, h, F, P, w]) => {
501
+ l.value = g, n.value = h, o.value = F, m.value = P, c.value = w;
502
502
  }), x(N, {
503
503
  ref: s,
504
504
  id: e.id,
@@ -515,7 +515,7 @@ const C = /* @__PURE__ */ B({
515
515
  multiSelect: e.multiSelect,
516
516
  inputType: e.multiSelect ? "tag" : "text",
517
517
  modelValue: y.value,
518
- "onUpdate:modelValue": (p) => y.value = p,
518
+ "onUpdate:modelValue": (g) => y.value = g,
519
519
  onClear: b,
520
520
  onChange: T,
521
521
  focusOnCreated: e.focusOnCreated,
@@ -1 +1 @@
1
- (function(p,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("vue"),require("../button-edit/index.umd.js"),require("lodash-es"),require("../tree-view/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","../common/index.umd.js"],o):(p=typeof globalThis<"u"?globalThis:p||self,o(p["combo-tree"]={},p.Vue,p.FButtonEdit,p.LodashES,p.FTreeView,p.common))})(this,function(p,o,P,C,w,M){"use strict";const N={},I={};function v(e){const{properties:r,title:c,ignore:l}=e,u=l&&Array.isArray(l),y=Object.keys(r).reduce((f,m)=>((!u||!l.find(g=>g===m))&&(f[m]=r[m].type==="object"&&r[m].properties?v(r[m]):C.cloneDeep(r[m].default)),f),{});if(c&&(!u||!l.find(f=>f==="id"))){const f=c.toLowerCase().replace(/-/g,"_");y.id=`${f}_${Math.random().toString().slice(2,6)}`}return y}function k(e,r){const c=v(r);return Object.keys(c).reduce((l,u)=>(l[u]&&C.isPlainObject(l[u])&&C.isPlainObject(e[u]||!e[u])?Object.assign(l[u],e[u]||{}):l[u]=e[u],l),c),c}function D(e,r){return Object.keys(e).filter(l=>e[l]!=null).reduce((l,u)=>{if(r.has(u)){const y=r.get(u);if(typeof y=="string")l[y]=e[u];else{const f=y(u,e[u],e);Object.assign(l,f)}}else l[u]=e[u];return l},{})}function E(e,r,c=new Map){const l=k(e,r);return D(l,c)}function $(e={}){function r(a,d,t,n){if(typeof t=="number")return n[a].length===t;if(typeof t=="object"){const i=Object.keys(t)[0],s=t[i];if(i==="not")return Number(n[a].length)!==Number(s);if(i==="moreThan")return Number(n[a].length)>=Number(s);if(i==="lessThan")return Number(n[a].length)<=Number(s)}return!1}function c(a,d,t,n){return n[a]&&n[a].propertyValue&&String(n[a].propertyValue.value)===String(t)}const l=new Map([["length",r],["getProperty",c]]);Object.keys(e).reduce((a,d)=>(a.set(d,e[d]),a),l);function u(a,d){const t=a;return typeof d=="number"?[{target:t,operator:"length",param:null,value:Number(d)}]:typeof d=="boolean"?[{target:t,operator:"getProperty",param:a,value:!!d}]:typeof d=="object"?Object.keys(d).map(n=>{if(n==="length")return{target:t,operator:"length",param:null,value:d[n]};const i=n,s=d[n];return{target:t,operator:"getProperty",param:i,value:s}}):[]}function y(a){return Object.keys(a).reduce((t,n)=>{const i=u(n,a[n]);return t.push(...i),t},[])}function f(a,d){if(l.has(a.operator)){const t=l.get(a.operator);return t&&t(a.target,a.param,a.value,d)||!1}return!1}function m(a,d){return y(a).reduce((i,s)=>i&&f(s,d),!0)}function g(a,d){const t=Object.keys(a),n=t.includes("allOf"),i=t.includes("anyOf"),s=n||i,b=(s?a[s?n?"allOf":"anyOf":"allOf"]:[a]).map(T=>m(T,d));return n?!b.includes(!1):b.includes(!0)}return{parseValueSchema:g}}const H={},L={};$();function R(e,r,c=new Map,l=(f,m,g,a)=>m,u={},y=f=>f){return N[r.title]=r,I[r.title]=l,H[r.title]=u,L[r.title]=y,(f={})=>{const m=E(f,r,c),g=Object.keys(e).reduce((a,d)=>(a[d]=e[d].default,a),{});return Object.assign(g,m)}}function q(e,r){return{customClass:r.class,customStyle:r.style}}const A=new Map([["appearance",q]]),_={$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:""}},required:["id","type"]};function U(e,r,c){return r}var j=(e=>(e.Text="text",e.Tag="tag",e))(j||{}),O=(e=>(e.top="top",e.bottom="bottom",e.auto="auto",e))(O||{});const F={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-60-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},editorParams:{type:Object},repositoryToken:{type:Symbol,default:null}},V=R(F,_,A,U),W={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}},z=o.defineComponent({name:"FComboTreeContainer",props:W,emits:["selectionChange"],setup(e,r){const c=o.ref(e.data),l=o.ref([]),u=o.ref(e.separator),y=o.ref(e.width),f=o.ref(e.height),m=o.ref(e.maxHeight),g=o.ref(String(e.selectedValues).split(u.value));let a=null;e.repositoryToken&&(a=o.inject(e.repositoryToken));const d=o.computed(()=>[{field:e.textField,title:"",dataType:"string",formatter:e.formatter}]),t=o.computed(()=>{const i={};return y.value!==void 0&&(i.width=`${y.value}px`),f.value!==void 0&&(i.height=`${f.value}px`),m.value!==void 0&&m.value>0&&(i.maxHeight=`${m.value}px`,i.overflow="auto"),i});function n(i){l.value=i.map(s=>Object.assign({},s)),g.value=i.map(s=>s[e.idField]),r.emit("selectionChange",l.value)}return o.onMounted(()=>{a&&a.getData(e.editorParams).then(i=>{c.value=i})}),()=>o.createVNode("div",{class:"f-combo-tree-container",style:t.value},[o.createVNode(w,{data:c.value,idField:e.idField,columns:d.value,"selection-values":g.value,onSelectionChange:n},null)])}});function G(e){const r=o.ref(""),c=o.ref(e.modelValue),l=o.ref(e.data||[]),u=o.ref(e.editable);function y(t,n=[]){return t=t||[],t.reduce((i,s)=>(i.push(s),s.children&&s.children.length&&y(s.children,i),i),n)}function f(t){const n=String(t).split(e.separator).map(h=>[h,!0]),i=new Map(n),s=[];return y(l.value,s),s.filter(h=>h.data?i.has(String(h.data[e.valueField])):i.has(String(h[e.valueField]))).map(h=>h.data?h.data:h)}function m(t){const n=f(t).map(i=>i[e.textField]).join(e.separator);r.value=u.value?n||t:n}function g(t){const n=t.split(e.separator).map(s=>[s,!0]),i=new Map(n);return l.value[0].children&&y(l.value,[]),l.value.filter(s=>i.has(s[e.textField]))}function a(t){const n={};return n[e.idField]=t,n[e.textField]=t,[n]}function d(t){let n=g(t);const i=n&&n.length>0;return u.value&&!i&&(n=a(t)),n}return o.watch(()=>e.data,()=>{l.value=e.data}),o.watch([l],([t])=>{if(e.modelValue){const n=t.find(i=>i[e.valueField]===e.modelValue);n&&(r.value=n[e.textField])}}),o.watch(()=>e.modelValue,(t,n)=>{t!==n&&(c.value=t,m(t))}),m(e.modelValue),{dataSource:l,displayText:r,editable:u,modelValue:c,getItemsByDisplayText:g,getItemsByValue:f,getSelectedItemsByDisplayText:d}}const x=o.defineComponent({name:"FComboTree",props:F,emits:["clear","update:modelValue","change"],setup(e,r){return()=>{const c=o.ref(),l=o.ref(e.disabled),u=o.ref(e.enableClear),y=o.ref(e.enableSearch),f=o.ref(e.readonly),{dataSource:m,displayText:g,editable:a,modelValue:d,getSelectedItemsByDisplayText:t}=G(e),n=o.computed(()=>e.multiSelect);o.computed(()=>c.value?c.value.elementRef.getBoundingClientRect().width:0);function i(){!n.value&&c.value&&c.value.hidePopup()}function s(b){g.value=b.map(S=>S[e.textField]).join(e.separator),d.value=b.map(S=>S[e.valueField]).join(e.separator),r.emit("update:modelValue",d.value),r.emit("change",b,d.value),i()}function h(b){d.value="",r.emit("update:modelValue",""),r.emit("clear")}function B(b){const S=t(b);s(S)}return o.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([b,S,T,Q,X])=>{l.value=b,a.value=S,u.value=T,y.value=Q,f.value=X}),o.createVNode(P,{ref:c,id:e.id,disable:l.value,readonly:f.value,forcePlaceholder:e.forcePlaceholder,editable:a.value,buttonContent:e.dropDownIcon,placeholder:e.placeholder,enableClear:u.value,maxLength:e.maxLength,tabIndex:e.tabIndex,enableTitle:e.enableTitle,multiSelect:e.multiSelect,inputType:e.multiSelect?"tag":"text",modelValue:g.value,"onUpdate:modelValue":b=>g.value=b,onClear:h,onChange:B,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated},{default:()=>[o.createVNode(z,{maxHeight:e.maxHeight,idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,data:m.value,selectedValues:d.value,onSelectionChange:s,formatter:e.formatter,editorParams:e.editorParams,repositoryToken:e.repositoryToken},null)]})}}});x.register=(e,r,c,l)=>{e["combo-tree"]=x,r["combo-tree"]=V};const J=M.withInstall(x);p.FComboTree=x,p.Placement=O,p.ViewType=j,p.comboTreeProps=F,p.default=J,p.propsResolver=V,Object.defineProperties(p,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
1
+ (function(p,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("vue"),require("../button-edit/index.umd.js"),require("lodash-es"),require("../tree-view/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","../common/index.umd.js"],o):(p=typeof globalThis<"u"?globalThis:p||self,o(p["combo-tree"]={},p.Vue,p.FButtonEdit,p.LodashES,p.FTreeView,p.common))})(this,function(p,o,P,C,w,M){"use strict";const N={},I={};function v(e){const{properties:r,title:c,ignore:l}=e,u=l&&Array.isArray(l),y=Object.keys(r).reduce((f,m)=>((!u||!l.find(g=>g===m))&&(f[m]=r[m].type==="object"&&r[m].properties?v(r[m]):C.cloneDeep(r[m].default)),f),{});if(c&&(!u||!l.find(f=>f==="id"))){const f=c.toLowerCase().replace(/-/g,"_");y.id=`${f}_${Math.random().toString().slice(2,6)}`}return y}function k(e,r){const c=v(r);return Object.keys(c).reduce((l,u)=>(Object.prototype.hasOwnProperty.call(e,u)&&(l[u]&&C.isPlainObject(l[u])&&C.isPlainObject(e[u]||!e[u])?Object.assign(l[u],e[u]||{}):l[u]=e[u]),l),c),c}function D(e,r){return Object.keys(e).filter(l=>e[l]!=null).reduce((l,u)=>{if(r.has(u)){const y=r.get(u);if(typeof y=="string")l[y]=e[u];else{const f=y(u,e[u],e);Object.assign(l,f)}}else l[u]=e[u];return l},{})}function E(e,r,c=new Map){const l=k(e,r);return D(l,c)}function $(e={}){function r(a,d,t,n){if(typeof t=="number")return n[a].length===t;if(typeof t=="object"){const i=Object.keys(t)[0],s=t[i];if(i==="not")return Number(n[a].length)!==Number(s);if(i==="moreThan")return Number(n[a].length)>=Number(s);if(i==="lessThan")return Number(n[a].length)<=Number(s)}return!1}function c(a,d,t,n){return n[a]&&n[a].propertyValue&&String(n[a].propertyValue.value)===String(t)}const l=new Map([["length",r],["getProperty",c]]);Object.keys(e).reduce((a,d)=>(a.set(d,e[d]),a),l);function u(a,d){const t=a;return typeof d=="number"?[{target:t,operator:"length",param:null,value:Number(d)}]:typeof d=="boolean"?[{target:t,operator:"getProperty",param:a,value:!!d}]:typeof d=="object"?Object.keys(d).map(n=>{if(n==="length")return{target:t,operator:"length",param:null,value:d[n]};const i=n,s=d[n];return{target:t,operator:"getProperty",param:i,value:s}}):[]}function y(a){return Object.keys(a).reduce((t,n)=>{const i=u(n,a[n]);return t.push(...i),t},[])}function f(a,d){if(l.has(a.operator)){const t=l.get(a.operator);return t&&t(a.target,a.param,a.value,d)||!1}return!1}function m(a,d){return y(a).reduce((i,s)=>i&&f(s,d),!0)}function g(a,d){const t=Object.keys(a),n=t.includes("allOf"),i=t.includes("anyOf"),s=n||i,b=(s?a[s?n?"allOf":"anyOf":"allOf"]:[a]).map(T=>m(T,d));return n?!b.includes(!1):b.includes(!0)}return{parseValueSchema:g}}const H={},L={};$();function R(e,r,c=new Map,l=(f,m,g,a)=>m,u={},y=f=>f){return N[r.title]=r,I[r.title]=l,H[r.title]=u,L[r.title]=y,(f={})=>{const m=E(f,r,c),g=Object.keys(e).reduce((a,d)=>(a[d]=e[d].default,a),{});return Object.assign(g,m)}}function q(e,r){return{customClass:r.class,customStyle:r.style}}const A=new Map([["appearance",q]]),_={$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:""}},required:["id","type"]};function U(e,r,c){return r}var O=(e=>(e.Text="text",e.Tag="tag",e))(O||{}),j=(e=>(e.top="top",e.bottom="bottom",e.auto="auto",e))(j||{});const F={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-60-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},editorParams:{type:Object},repositoryToken:{type:Symbol,default:null}},V=R(F,_,A,U),W={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}},z=o.defineComponent({name:"FComboTreeContainer",props:W,emits:["selectionChange"],setup(e,r){const c=o.ref(e.data),l=o.ref([]),u=o.ref(e.separator),y=o.ref(e.width),f=o.ref(e.height),m=o.ref(e.maxHeight),g=o.ref(String(e.selectedValues).split(u.value));let a=null;e.repositoryToken&&(a=o.inject(e.repositoryToken));const d=o.computed(()=>[{field:e.textField,title:"",dataType:"string",formatter:e.formatter}]),t=o.computed(()=>{const i={};return y.value!==void 0&&(i.width=`${y.value}px`),f.value!==void 0&&(i.height=`${f.value}px`),m.value!==void 0&&m.value>0&&(i.maxHeight=`${m.value}px`,i.overflow="auto"),i});function n(i){l.value=i.map(s=>Object.assign({},s)),g.value=i.map(s=>s[e.idField]),r.emit("selectionChange",l.value)}return o.onMounted(()=>{a&&a.getData(e.editorParams).then(i=>{c.value=i})}),()=>o.createVNode("div",{class:"f-combo-tree-container",style:t.value},[o.createVNode(w,{data:c.value,idField:e.idField,columns:d.value,"selection-values":g.value,onSelectionChange:n},null)])}});function G(e){const r=o.ref(""),c=o.ref(e.modelValue),l=o.ref(e.data||[]),u=o.ref(e.editable);function y(t,n=[]){return t=t||[],t.reduce((i,s)=>(i.push(s),s.children&&s.children.length&&y(s.children,i),i),n)}function f(t){const n=String(t).split(e.separator).map(h=>[h,!0]),i=new Map(n),s=[];return y(l.value,s),s.filter(h=>h.data?i.has(String(h.data[e.valueField])):i.has(String(h[e.valueField]))).map(h=>h.data?h.data:h)}function m(t){const n=f(t).map(i=>i[e.textField]).join(e.separator);r.value=u.value?n||t:n}function g(t){const n=t.split(e.separator).map(s=>[s,!0]),i=new Map(n);return l.value[0].children&&y(l.value,[]),l.value.filter(s=>i.has(s[e.textField]))}function a(t){const n={};return n[e.idField]=t,n[e.textField]=t,[n]}function d(t){let n=g(t);const i=n&&n.length>0;return u.value&&!i&&(n=a(t)),n}return o.watch(()=>e.data,()=>{l.value=e.data}),o.watch([l],([t])=>{if(e.modelValue){const n=t.find(i=>i[e.valueField]===e.modelValue);n&&(r.value=n[e.textField])}}),o.watch(()=>e.modelValue,(t,n)=>{t!==n&&(c.value=t,m(t))}),m(e.modelValue),{dataSource:l,displayText:r,editable:u,modelValue:c,getItemsByDisplayText:g,getItemsByValue:f,getSelectedItemsByDisplayText:d}}const x=o.defineComponent({name:"FComboTree",props:F,emits:["clear","update:modelValue","change"],setup(e,r){return()=>{const c=o.ref(),l=o.ref(e.disabled),u=o.ref(e.enableClear),y=o.ref(e.enableSearch),f=o.ref(e.readonly),{dataSource:m,displayText:g,editable:a,modelValue:d,getSelectedItemsByDisplayText:t}=G(e),n=o.computed(()=>e.multiSelect);o.computed(()=>c.value?c.value.elementRef.getBoundingClientRect().width:0);function i(){!n.value&&c.value&&c.value.hidePopup()}function s(b){g.value=b.map(S=>S[e.textField]).join(e.separator),d.value=b.map(S=>S[e.valueField]).join(e.separator),r.emit("update:modelValue",d.value),r.emit("change",b,d.value),i()}function h(b){d.value="",r.emit("update:modelValue",""),r.emit("clear")}function B(b){const S=t(b);s(S)}return o.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([b,S,T,Q,X])=>{l.value=b,a.value=S,u.value=T,y.value=Q,f.value=X}),o.createVNode(P,{ref:c,id:e.id,disable:l.value,readonly:f.value,forcePlaceholder:e.forcePlaceholder,editable:a.value,buttonContent:e.dropDownIcon,placeholder:e.placeholder,enableClear:u.value,maxLength:e.maxLength,tabIndex:e.tabIndex,enableTitle:e.enableTitle,multiSelect:e.multiSelect,inputType:e.multiSelect?"tag":"text",modelValue:g.value,"onUpdate:modelValue":b=>g.value=b,onClear:h,onChange:B,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated},{default:()=>[o.createVNode(z,{maxHeight:e.maxHeight,idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,data:m.value,selectedValues:d.value,onSelectionChange:s,formatter:e.formatter,editorParams:e.editorParams,repositoryToken:e.repositoryToken},null)]})}}});x.register=(e,r,c,l)=>{e["combo-tree"]=x,r["combo-tree"]=V};const J=M.withInstall(x);p.FComboTree=x,p.Placement=j,p.ViewType=O,p.comboTreeProps=F,p.default=J,p.propsResolver=V,Object.defineProperties(p,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});