@farris/ui-vue 1.8.0-alpha.0 → 1.8.0-beta.1

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 (193) hide show
  1. package/components/avatar/index.esm.js +138 -1526
  2. package/components/avatar/index.umd.cjs +1 -6
  3. package/components/button/index.css +1 -1
  4. package/components/button/index.esm.js +15951 -15410
  5. package/components/button/index.umd.cjs +27 -27
  6. package/components/calendar/index.esm.js +269 -255
  7. package/components/calendar/index.umd.cjs +3 -3
  8. package/components/collection-property-editor/index.esm.js +243 -229
  9. package/components/collection-property-editor/index.umd.cjs +2 -2
  10. package/components/combo-list/index.esm.js +32 -32
  11. package/components/combo-list/index.umd.cjs +1 -1
  12. package/components/comment/index.esm.js +473 -456
  13. package/components/comment/index.umd.cjs +6 -6
  14. package/components/component/index.css +1 -1
  15. package/components/component/index.esm.js +2503 -2239
  16. package/components/component/index.umd.cjs +2 -2
  17. package/components/condition/index.esm.js +1064 -954
  18. package/components/condition/index.umd.cjs +2 -2
  19. package/components/data-grid/index.esm.js +1 -1
  20. package/components/data-grid/index.umd.cjs +1 -1
  21. package/components/designer-canvas/index.css +1 -1
  22. package/components/designer-canvas/index.esm.js +3894 -3058
  23. package/components/designer-canvas/index.umd.cjs +1 -1
  24. package/components/drawer/index.esm.js +91 -77
  25. package/components/drawer/index.umd.cjs +2 -2
  26. package/components/dynamic-form/index.esm.js +220 -215
  27. package/components/dynamic-form/index.umd.cjs +1 -1
  28. package/components/dynamic-resolver/index.esm.js +145 -131
  29. package/components/dynamic-resolver/index.umd.cjs +2 -2
  30. package/components/dynamic-view/index.esm.js +336 -329
  31. package/components/dynamic-view/index.umd.cjs +1 -1
  32. package/components/events-editor/index.esm.js +1611 -1536
  33. package/components/events-editor/index.umd.cjs +3 -3
  34. package/components/expression-editor/index.esm.js +219 -219
  35. package/components/expression-editor/index.umd.cjs +2 -2
  36. package/components/external-container/index.esm.js +179 -178
  37. package/components/external-container/index.umd.cjs +1 -1
  38. package/components/fieldset/index.esm.js +285 -221
  39. package/components/fieldset/index.umd.cjs +1 -1
  40. package/components/filter-bar/index.css +1 -0
  41. package/components/filter-bar/index.esm.js +1512 -1290
  42. package/components/filter-bar/index.umd.cjs +7 -7
  43. package/components/filter-condition-editor/index.esm.js +851 -831
  44. package/components/filter-condition-editor/index.umd.cjs +3 -3
  45. package/components/flow-canvas/index.esm.js +520 -501
  46. package/components/flow-canvas/index.umd.cjs +8 -8
  47. package/components/image/index.esm.js +101 -79
  48. package/components/image/index.umd.cjs +3 -3
  49. package/components/language-textbox/index.esm.js +330 -251
  50. package/components/language-textbox/index.umd.cjs +2 -2
  51. package/components/list-nav/index.esm.js +399 -313
  52. package/components/list-nav/index.umd.cjs +1 -1
  53. package/components/locale/index.esm.js +3 -0
  54. package/components/locale/index.umd.cjs +1 -1
  55. package/components/lookup/index.esm.js +997 -976
  56. package/components/lookup/index.umd.cjs +2 -2
  57. package/components/mapping-editor/index.esm.js +725 -705
  58. package/components/mapping-editor/index.umd.cjs +1 -1
  59. package/components/message-box/index.esm.js +542 -522
  60. package/components/message-box/index.umd.cjs +1 -1
  61. package/components/nav/index.esm.js +95 -308
  62. package/components/nav/index.umd.cjs +1 -1
  63. package/components/number-range/index.esm.js +115 -107
  64. package/components/number-range/index.umd.cjs +2 -2
  65. package/components/order/index.esm.js +56 -54
  66. package/components/order/index.umd.cjs +1 -1
  67. package/components/page-footer/index.esm.js +135 -123
  68. package/components/page-footer/index.umd.cjs +1 -1
  69. package/components/page-header/index.esm.js +266 -222
  70. package/components/page-header/index.umd.cjs +1 -1
  71. package/components/property-panel/index.esm.js +402 -375
  72. package/components/property-panel/index.umd.cjs +4 -4
  73. package/components/query-solution/index.esm.js +3171 -3061
  74. package/components/query-solution/index.umd.cjs +7 -7
  75. package/components/response-toolbar/index.esm.js +1 -1
  76. package/components/response-toolbar/index.umd.cjs +1 -1
  77. package/components/schema-selector/index.esm.js +1620 -1608
  78. package/components/schema-selector/index.umd.cjs +5 -5
  79. package/components/scroll-navbar/index.esm.js +150 -136
  80. package/components/scroll-navbar/index.umd.cjs +2 -2
  81. package/components/section/index.esm.js +323 -311
  82. package/components/section/index.umd.cjs +2 -2
  83. package/components/sort-condition-editor/index.esm.js +850 -830
  84. package/components/sort-condition-editor/index.umd.cjs +3 -3
  85. package/components/step/index.esm.js +991 -224
  86. package/components/step/index.umd.cjs +1 -1
  87. package/components/tabs/index.esm.js +356 -334
  88. package/components/tabs/index.umd.cjs +1 -1
  89. package/components/wizard/index.esm.js +159 -162
  90. package/components/wizard/index.umd.cjs +1 -1
  91. package/designer/avatar/index.esm.js +1721 -0
  92. package/designer/avatar/index.umd.cjs +6 -0
  93. package/designer/button-edit/index.esm.js +2 -1
  94. package/designer/button-edit/index.umd.cjs +1 -1
  95. package/designer/data-grid/index.esm.js +693 -659
  96. package/designer/data-grid/index.umd.cjs +6 -6
  97. package/designer/data-view/index.esm.js +90 -78
  98. package/designer/data-view/index.umd.cjs +2 -2
  99. package/designer/date-picker/index.esm.js +203 -203
  100. package/designer/date-picker/index.umd.cjs +1 -1
  101. package/designer/drawer/index.esm.js +181 -167
  102. package/designer/drawer/index.umd.cjs +2 -2
  103. package/designer/dynamic-form/index.esm.js +228 -206
  104. package/designer/dynamic-form/index.umd.cjs +2 -2
  105. package/designer/farris-designer.all.esm.js +10014 -9692
  106. package/designer/farris-designer.all.umd.cjs +18 -18
  107. package/designer/index.css +1 -1
  108. package/designer/input-group/index.esm.js +15 -15
  109. package/designer/input-group/index.umd.cjs +1 -1
  110. package/designer/nav/index.esm.js +1719 -0
  111. package/designer/nav/index.umd.cjs +6 -0
  112. package/designer/number-spinner/index.esm.js +8 -7
  113. package/designer/number-spinner/index.umd.cjs +1 -1
  114. package/designer/radio-group/index.esm.js +133 -125
  115. package/designer/radio-group/index.umd.cjs +2 -2
  116. package/designer/response-toolbar/index.esm.js +864 -863
  117. package/designer/response-toolbar/index.umd.cjs +1 -1
  118. package/designer/section/index.esm.js +245 -183
  119. package/designer/section/index.umd.cjs +1 -1
  120. package/designer/tabs/index.css +1 -1
  121. package/designer/tabs/index.esm.js +3667 -2810
  122. package/designer/tabs/index.umd.cjs +2 -2
  123. package/designer/time-picker/index.esm.js +26 -17
  124. package/designer/time-picker/index.umd.cjs +2 -2
  125. package/designer/tree-grid/index.esm.js +69 -37
  126. package/designer/tree-grid/index.umd.cjs +1 -1
  127. package/designer/wizard/index.esm.js +110 -110
  128. package/designer/wizard/index.umd.cjs +3 -3
  129. package/farris.all.esm.js +39993 -39089
  130. package/farris.all.umd.cjs +36 -36
  131. package/index.css +1 -1
  132. package/locales/filter-bar/ui/en.json +1 -0
  133. package/locales/filter-bar/ui/zh-CHS.json +1 -0
  134. package/locales/filter-bar/ui/zh-CHT.json +1 -0
  135. package/locales/ui/en.json +1 -0
  136. package/locales/ui/zh-CHS.json +1 -0
  137. package/locales/ui/zh-CHT.json +1 -0
  138. package/package.json +1 -1
  139. package/types/avatar/designer.d.ts +28 -0
  140. package/types/avatar/index.d.ts +0 -15
  141. package/types/avatar/src/composition/types.d.ts +3 -0
  142. package/types/avatar/src/composition/use-file.d.ts +19 -0
  143. package/types/avatar/src/composition/use-image.d.ts +1 -1
  144. package/types/avatar/src/designer/avatar.design.props.d.ts +24 -0
  145. package/types/avatar/src/property-config/avatar.property-config.d.ts +11 -13
  146. package/types/avatar/src/schema/schema-mapper.d.ts +2 -0
  147. package/types/components.d.ts +3 -0
  148. package/types/condition/index.d.ts +18 -6
  149. package/types/condition/src/condition-fields.component.d.ts +9 -3
  150. package/types/condition/src/condition-fields.design.component.d.ts +9 -3
  151. package/types/condition/src/condition-list.component.d.ts +9 -3
  152. package/types/condition/src/condition.props.d.ts +11 -0
  153. package/types/data-view/designer/property-config/use-appearance.d.ts +17 -10
  154. package/types/data-view/designer/property-config/use-pagination.d.ts +0 -6
  155. package/types/designer-canvas/src/composition/dg-control.d.ts +13 -0
  156. package/types/dynamic-form/src/component/dynamic-form-label/dynamic-form-label.component.d.ts +3 -0
  157. package/types/dynamic-form/src/component/dynamic-form-label/dynamic-form-label.props.d.ts +4 -0
  158. package/types/dynamic-resolver/src/converter/tree-auto-check.converter.d.ts +3 -0
  159. package/types/dynamic-view/src/components/maps.d.ts +130 -4
  160. package/types/filter-bar/src/composition/types.d.ts +2 -0
  161. package/types/filter-bar/src/filter-bar.props.d.ts +0 -1
  162. package/types/filter-bar/src/locale/locale.d.ts +2 -1
  163. package/types/filter-bar/src/property-config/filter-bar.property-config.d.ts +0 -1
  164. package/types/language-textbox/index.d.ts +65 -2
  165. package/types/language-textbox/src/designer/language-textbox.design.component.d.ts +36 -0
  166. package/types/language-textbox/src/language-textbox.component.d.ts +38 -1
  167. package/types/language-textbox/src/language-textbox.props.d.ts +20 -0
  168. package/types/lookup/src/components/popup-container.component.d.ts +3 -3
  169. package/types/lookup/src/composition/use-compat.d.ts +28 -0
  170. package/types/lookup/src/composition/use-state.d.ts +1 -0
  171. package/types/message-box/src/message-box.service.d.ts +2 -1
  172. package/types/nav/designer.d.ts +28 -0
  173. package/types/nav/index.d.ts +24 -20
  174. package/types/nav/src/designer/nav.design.props.d.ts +29 -0
  175. package/types/nav/src/designer/use-design-rules.d.ts +3 -0
  176. package/types/nav/src/property-config/nav.property-config.d.ts +9 -0
  177. package/types/nav/src/schema/schema-mapper.d.ts +4 -0
  178. package/types/page-footer/src/designer/use-designer-rules.d.ts +2 -2
  179. package/types/page-header/src/designer/use-designer-rules.d.ts +2 -2
  180. package/types/property-panel/src/composition/entity/input-base-property.d.ts +1 -0
  181. package/types/query-solution/src/designer/query-solution-config/composition/use-util.d.ts +1 -1
  182. package/types/query-solution/src/designer/query-solution-config/query-solution-config.props.d.ts +1 -1
  183. package/types/section/src/designer/section.design.props.d.ts +4 -0
  184. package/types/section/src/property-config/section.property-config.d.ts +39 -0
  185. package/types/section/src/schema/toolbar-resolver.d.ts +0 -1
  186. package/types/step/src/designer/use-designer-rules.d.ts +3 -0
  187. package/types/step/src/designer/use-step-creator.d.ts +6 -0
  188. package/types/step/src/property-config/step.property-config.d.ts +15 -0
  189. package/types/step/src/schema/schema-resolver.d.ts +2 -1
  190. package/types/tabs/src/composition/types.d.ts +4 -0
  191. package/types/tabs/src/tabs.props.d.ts +6 -0
  192. package/types/tooltip/index.d.ts +3 -3
  193. package/types/tooltip/src/tooltip.component.d.ts +2 -2
@@ -1,6 +1,6 @@
1
- (function($,z){typeof exports=="object"&&typeof module<"u"?z(exports,require("../../components/common/index.umd.js"),require("../../components/dynamic-resolver/index.umd.js"),require("../../components/radio-group/index.umd.js"),require("vue"),require("../../components/designer-canvas/index.umd.js"),require("lodash-es"),require("../../components/locale/index.umd.js"),require("../../components/property-panel/index.umd.js"),require("../../components/button/index.umd.js"),require("../../components/field-selector/index.umd.js"),require("../../components/tags/index.umd.js"),require("../../components/popover/index.umd.js"),require("../../components/data-grid/index.umd.js"),require("../../components/notify/index.umd.js"),require("bignumber.js")):typeof define=="function"&&define.amd?define(["exports","../../components/common/index.umd.js","../../components/dynamic-resolver/index.umd.js","../../components/radio-group/index.umd.js","vue","../../components/designer-canvas/index.umd.js","lodash-es","../../components/locale/index.umd.js","../../components/property-panel/index.umd.js","../../components/button/index.umd.js","../../components/field-selector/index.umd.js","../../components/tags/index.umd.js","../../components/popover/index.umd.js","../../components/data-grid/index.umd.js","../../components/notify/index.umd.js","bignumber.js"],z):($=typeof globalThis<"u"?globalThis:$||self,z($["radio-group"]={},$.common,$.dynamicResolver,$.FRadioGroup,$.Vue,$.designerCanvas,$.LodashES,$.locale,null,null,null,$.FTags,$.FPopover,$.FDataGrid,$.notify))})(this,function($,z,_,re,o,b,oe,Y,_t,Yt,Jt,Te,Se,Be,Pe){"use strict";var Kt=Object.defineProperty;var Xt=($,z,_)=>z in $?Kt($,z,{enumerable:!0,configurable:!0,writable:!0,value:_}):$[z]=_;var k=($,z,_)=>Xt($,typeof z!="symbol"?z+"":z,_);const Ne={...z.radioCheckboxCommonProps,id:String,disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},enumData:{type:Array},data:{type:Array},modelValue:{type:String,default:""},name:{type:String,default:""},tabIndex:{type:Number,default:-1},textField:{type:String,default:"name"},valueField:{type:String,default:"value"}};function Oe(n,t,e){const l=o.computed(()=>!n.disabled),i=o.computed(()=>n.data||n.enumData||n.options||[]);function a(d){return d[n.valueField]}function s(d){return d[n.textField]}function r(d,u){if(l.value){const f=a(d);e.value!==f&&(e.value=f,t.emit("change",f),t.emit("changeValue",f),t.emit("update:modelValue",f))}u.stopPropagation()}return{enumData:i,getValue:a,getText:s,onClickRadio:r}}function Re(n){const{formSchemaUtils:t,formStateMachineUtils:e}=n;function l(d,u=""){return{path:u+d.code,field:d.id,fullPath:d.code}}function i(d,u=""){const f=t.getViewModelById(d);return f?f.states.map(c=>l(c,u)):[]}function a(d){const u=t.getRootViewModelId(),f=i(d);if(d===u)return f;const c=i(u,"root-component.");return[...f,...c]}function s(d){return d.binding&&d.binding.path||d.id||""}function r(){return e&&e.getRenderStates()||[]}return{getVariables:a,getControlName:s,getStateMachines:r}}class me{constructor(t){k(this,"sessionVariables",[{key:"CurrentSysOrgName",name:"当前组织Name",description:"当前组织Name"},{key:"CurrentSysOrgId",name:"当前组织Id",description:"当前组织Id"},{key:"CurrentUserName",name:"当前用户Name",description:"当前用户Name"},{key:"CurrentUserCode",name:"当前用户Code",description:"当前用户Code"},{key:"CurrentUserId",name:"当前用户Id",description:"当前用户Id"},{key:"CurrentLanguage",name:"当前语言编号",description:"当前登录的语言编号,例如简体中文返回'zh-CHS',英文返回'en',繁体中文'zh-CHT'"}]);k(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});k(this,"getExpressionConverter",(t,e)=>({convertFrom:(l,i,a,s)=>{const r=a.getExpressionRuleValue(t,e||i);return r&&r.value||""},convertTo:(l,i,a,s,r)=>{var d;if(i==="dataPicking"&&(a!=null&&a.target)){const u=`${a.target}_dataPicking`;((d=a.rules)==null?void 0:d.some(c=>c.id===u&&c.value))?l.dictPickingExpressionId=u:delete l.dictPickingExpressionId}s.updateExpression(a)}}));this.formSchemaService=t}getExpressionRule(t,e){const l=this.formSchemaService.getExpressions();if(!l)return"";const i=l.find(s=>s.target===t);if(!i)return"";const a=i.rules.find(s=>s.type===e);return a||""}getContextFormVariables(){const{module:t}=this.formSchemaService.getFormSchema();if(!t.viewmodels||t.viewmodels.length===0)return[];const e=this.formSchemaService.getRootViewModelId(),l=this.formSchemaService.getViewModelById(e);if(!l||!l.states||l.states.length===0)return[];const i=[];return l.states.filter(a=>a.category==="remote").forEach(a=>{i.push({key:a.code,name:a.name,description:a.name,category:a.category})}),i}createTreeNode(t,e,l="label"){return{id:t.id,name:t.name,bindingPath:t[l],parents:e,type:"field"}}buildEntityFieldsTreeData(t=null,e){const l=[];return t==null||t.forEach(i=>{var r;const a=this.createTreeNode(i,e);let s=[];(r=i.type)!=null&&r.fields&&(s=this.buildEntityFieldsTreeData(i.type.fields,[...e,i.label])),l.push({data:a,children:s,expanded:!0})}),l}buildChildEntityTreeData(t=null,e){const l=[];return t==null||t.forEach(i=>{var d,u;const a=this.createTreeNode(i,e);a.type="entity";const s=this.buildEntityFieldsTreeData((d=i.type)==null?void 0:d.fields,[...e,i.label]),r=this.buildChildEntityTreeData((u=i.type)==null?void 0:u.entities,[...e,i.label]);r!=null&&r.length&&(s==null||s.push(...r)),l.push({data:a,children:s||[],expanded:!0})}),l}getEntitiesTreeData(){const t=this.formSchemaService.getSchemaEntities();if(!(t!=null&&t.length))return[];const e=t[0];if(!(e!=null&&e.type))return[];const l=this.buildEntityFieldsTreeData(e.type.fields,[e.code]),i=this.buildChildEntityTreeData(e.type.entities,[e.code]);return i!=null&&i.length&&(l==null||l.push(...i)),{entityCode:e.code,fields:[{data:this.createTreeNode(e,[],"code"),children:l||[]}]}}getEntitiesAndVariables(){return{entities:this.getEntitiesTreeData(),variables:{session:{name:"系统变量",items:this.sessionVariables,visible:!1},forms:{name:"表单变量",items:this.getContextFormVariables(),visible:!0}}}}onBeforeOpenExpression(t,e,l){const i=l==="Field"?t.binding.field:t.id,a=this.getExpressionRule(i,e),s=this.getEntitiesAndVariables(),r={message:["validate","required","dataPicking"].includes(e)&&a?a.message:"",...s};return a.messageType!=null&&(r.messageType=a.messageType),r}buildRule(t,e,l,i){const{expression:a,message:s,messageType:r}=e,d={id:`${t}_${l}`,type:l,value:a};return(l==="validate"||l==="dataPicking"||l==="required")&&(d.message=s),l==="dataPicking"&&(d.messageType=r),l==="validate"&&i&&(d.elementId=i),d}getExpressionData(){const{expressions:t}=this.formSchemaService.getFormSchema().module;return t||[]}updateExpression(t,e,l,i){const a=e==="Field"?t.binding.field:t.id,s=this.buildRule(a,l,i,t.type==="form-group"?t.id:"");let d=this.getExpressionData().find(f=>f.targetType===e&&f.target===a);const u=f=>f.value.trim()==="";if(d){const f=d.rules.find(c=>c.id===s.id);if(f)u(s)?d.rules=d.rules.filter(c=>c.id!==s.id):(Object.assign(f,s),i==="validate"&&t.type==="form-group"&&(f.elementId=t.id));else{if(u(s))return null;d.rules=d.rules||[],d.rules.push(s)}}else{if(u(s))return null;d={target:`${a}`,rules:[s],targetType:e}}return d}getExpressionEditorOptions(t,e,l,i){return l.reduce((a,s)=>{var d,u;const r=e==="Field"?(d=t==null?void 0:t.binding)==null?void 0:d.field:t.id;return a[s]={hide:e==="Field"?!!((u=t==null?void 0:t.binding)!=null&&u.field):!1,description:"",title:this.expressionNames[s],type:"string",$converter:this.getExpressionConverter(r),refreshPanelAfterChanged:!0,editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[s]}编辑器`,showMessage:s==="validate"||s==="dataPicking"||s==="required",showMessageType:s==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(t,s,e),onSubmitModal:f=>{const c=this.updateExpression(t,e,f,s);if(i){const v=this.buildRule(r,f,s);i(v)}return c}}},a},{})}getExpressionInfo(t,e,l){const i=e==="Field"?t.binding.field:t.id,a=this.getExpressionRule(i,l),s={value:a&&a.value,targetId:i,targetType:e,expressionType:l};return a&&a.message&&(s.message=a.message),s}getExpressionConfig(t,e,l=["compute","dependency","validate"],i){return{description:"表达式",title:"表达式",hide:!t.binding,properties:{...this.getExpressionEditorOptions(t,e,l,i)}}}getExpressionOptions(t,e,l){const i=this.getExpressionInfo(t,e,l);return{dialogTitle:`${this.expressionNames[l]}编辑器`,singleExpand:!1,showMessage:l==="required",beforeOpen:()=>this.onBeforeOpenExpression(t,l,e),expressionInfo:i}}}class De{constructor(t,e){k(this,"componentId");k(this,"viewModelId");k(this,"eventsEditorUtils");k(this,"formSchemaUtils");k(this,"formMetadataConverter");k(this,"designViewModelUtils");k(this,"designViewModelField");k(this,"controlCreatorUtils");k(this,"designerHostService");k(this,"designerContext");k(this,"schemaService",null);k(this,"metadataService",null);k(this,"propertyConfig",{type:"object",categories:{}});var l;this.componentId=t,this.designerHostService=e,this.eventsEditorUtils=e.eventsEditorUtils,this.formSchemaUtils=e.formSchemaUtils,this.formMetadataConverter=e.formMetadataConverter,this.viewModelId=((l=this.formSchemaUtils)==null?void 0:l.getViewModelIdByComponentId(t))||"",this.designViewModelUtils=e.designViewModelUtils,this.controlCreatorUtils=e.controlCreatorUtils,this.metadataService=e.metadataService,this.schemaService=e.schemaService,this.designerContext=e.designerContext}getFormDesignerInstance(){var t,e;return(e=(t=this.designerContext)==null?void 0:t.instances)==null?void 0:e.formDesigner.value}getTableInfo(){var t;return(t=this.schemaService)==null?void 0:t.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(t){var l;const e=t.binding&&t.binding.type==="Form"&&t.binding.field;if(e){if(!this.designViewModelField){const i=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=i.fields.find(a=>a.id===e)}t.updateOn=(l=this.designViewModelField)==null?void 0:l.updateOn}}getBasicPropConfig(t){return{description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"combo-list",textField:"name",valueField:"value",idField:"value",editable:!1,data:[{value:t.type,name:b.DgControl[t.type]&&b.DgControl[t.type].name}]}}}}}getAppearanceConfig(t=null,e={},l){const i={title:"外观",description:"Appearance"},a={class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"}};for(const s in e)a[s]=Object.assign(a[s]||{},e[s]);return{...i,properties:{...a},setPropertyRelates(s,r){if(s){switch(s&&s.propertyID){case"class":case"style":{b.canvasChanged.value++;break}}l&&l(s,t,r)}}}}getPropertyEditorParams(t,e=[],l="visible",i={},a={},s=""){const{getVariables:r,getControlName:d,getStateMachines:u}=Re(this.designerHostService),f=this.getRealTargetType(t),c=e&&e.length>0?e:["Const","Variable","StateMachine","Expression"],v={type:"property-editor",propertyTypes:c};return c.map(m=>{switch(m){case"Const":Object.assign(v,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},i);break;case"Expression":v.expressionConfig=this.getExpressionOptions(t,f,s||l);break;case"StateMachine":v.stateMachines=u();break;case"Variable":Object.assign(v,{controlName:d(t),newVariablePrefix:"is",newVariableType:"Boolean",variables:r(this.viewModelId),parentComponentId:this.componentId==="root-component"?"":"root-component",onBeforeOpenVariables:p=>{p.value=r(this.viewModelId)}},a),this.designerContext.designerMode==="PC_RTC"&&(v.newVariablePrefix="ext_"+v.newVariablePrefix);break}}),v}getVisibleProperty(t,e=""){var a;let l=["Const","Variable","StateMachine","Expression"];return e==="gridFieldEditor"?l=["Const","Expression"]:e==="form-group"&&!((a=t.binding)!=null&&a.field)?l=["Const","Variable","StateMachine"]:(e==="dataGrid"||e==="treeGrid"||e==="wizard")&&(l=["Const","Variable","Expression"]),{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(t,l,"visible")}}}getBehaviorConfig(t,e="",l={},i){const a={title:"行为",description:""},s=this.getVisibleProperty(t,e);for(const d in l)s[d]=Object.assign(s[d]||{},l[d]);const r=this;return{...a,properties:{...s},setPropertyRelates(d,u){if(d){switch(d.propertyID){case"disabled":case"readonly":case"visible":r.afterMutilEditorChanged(t,d);break}i&&i(d,u)}}}}afterMutilEditorChanged(t,e){this.addNewVariableToViewModel(e,this.viewModelId),this.updateExpressionValue(e),this.clearExpression(e,t)}updateElementByParentContainer(t,e){const l=e&&e.parent&&e.parent.schema;if(!l)return;const i=l.contents.findIndex(s=>s.id===t),a=oe.cloneDeep(l.contents[i]);l.contents.splice(i,1),l.contents.splice(i,0,a),b.refreshCanvas()}addNewVariableToViewModel(t,e){const l=t.propertyValue;if(!(l&&typeof l=="object")||!(l.type==="Variable"&&l.isNewVariable))return;const s={id:l.field,category:"locale",code:l.fullPath,name:l.fullPath,type:l.newVariableType||"String",isRtcVariable:this.designerContext.designerMode==="PC_RTC"?!0:void 0};delete l.newVariableType,delete l.isNewVariable,this.formSchemaUtils.getVariableByCode(s.code)||this.formSchemaUtils.getViewModelById("root-viewmodel").states.push(s)}updateExpressionValue(t){const e=t.propertyValue;if(!((e&&e.type)==="Expression"&&e.expressionInfo))return;const{expressionId:a,expressionInfo:s}=e,{targetId:r,targetType:d,expressionType:u,value:f,message:c}=s,v=this.formSchemaUtils.getModule();v.expressions=v.expressions||[];const{expressions:m}=v;let p=m.find(x=>x.target===r);p||(p={target:r,rules:[],targetType:d},m.push(p));const y=p.rules.find(x=>x.type===u);if(y)y.value=f,y.message=c;else{const x={id:a,type:u,value:f,message:c};p.rules.push(x)}delete e.expressionInfo}clearExpression(t,e){const l=t.propertyValue;if(l&&l.type==="Expression")return;const a=t.propertyID,s=this.formSchemaUtils.getExpressions(),r=e.binding?e.binding.field:e.id,d=s.find(u=>u.target===r);!d||!d.rules||(d.rules=d.rules.filter(u=>u.type!==a))}getExpressionOptions(t,e,l){return new me(this.formSchemaUtils).getExpressionOptions(t,e,l)}getRealTargetType(t){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item","drawer-toolbar-item"].indexOf(t.type)>-1?"Button":t.binding&&t.binding.field?"Field":"Container"}createBaseEventProperty(t){const e={};return e[this.viewModelId]={type:"events-editor",editor:{initialData:t,viewSourceHandle:l=>{var i;((i=l.controller)==null?void 0:i.label.indexOf(this.formSchemaUtils.getModule().code))>-1&&this.eventsEditorUtils.jumpToMethod(l)}}},e}}const ee=class ee{static getEditorTypesByMDataType(t,e=!1,l=""){if(e)return[{key:b.DgControl["language-textbox"].type,value:b.DgControl["language-textbox"].name}];let i=ee.fieldControlTypeMapping[t];if(l==="data-grid-column"&&(i!=null&&i.length)){const a=[b.DgControl["check-group"].type,b.DgControl["radio-group"].type,b.DgControl.image.type,b.DgControl["rich-text-editor"].type];i=i.filter(s=>!a.includes(s.key))}return i}static getAllInputTypes(){const t=[];for(const e in ee.fieldControlTypeMapping)ee.fieldControlTypeMapping[e].forEach(l=>{t.find(i=>i.key===l.key&&i.value===l.value)||t.push({key:l.key,value:l.value})});return t}static mappingDomPropAndSchemaProp(t,e){var a;const l=(a=t.editor)==null?void 0:a.type,i=[];return(t.type===b.DgControl["data-grid-column"].type||t.type===b.DgControl["tree-grid-column"].type)&&e&&e.categoryId&&e.categoryId.indexOf("gridFieldEditor")<0&&i.push({domField:"title",schemaField:"name"}),i.push({domField:"label",schemaField:"name"}),i.push({domField:"editor.required",schemaField:"require"}),i.push({domField:"editor.readonly",schemaField:"readonly"}),(l===b.DgControl["input-group"].type||l===b.DgControl.textarea.type||l===b.DgControl["number-spinner"].type)&&i.push({domField:"editor.maxLength",schemaField:"type.length"}),l===b.DgControl["number-spinner"].type&&i.push({domField:"editor.precision",schemaField:"type.precision"}),(t.type===b.DgControl["data-grid-column"].type||t.type===b.DgControl["tree-grid-column"].type)&&i.push({domField:"formatter.precision",schemaField:"type.precision"}),(l===b.DgControl["combo-list"].type||l===b.DgControl["radio-group"].type)&&i.push({domField:"editor.data",schemaField:"type.enumValues"}),(t.type===b.DgControl["data-grid-column"].type||t.type===b.DgControl["tree-grid-column"].type)&&i.push({domField:"formatter.data",schemaField:"type.enumValues"}),l===b.DgControl["date-picker"].type&&(i.push({domField:"editor.displayFormat",schemaField:"editor.format"}),i.push({domField:"editor.fieldType",schemaField:"type.name"})),l===b.DgControl["number-spinner"].type&&(i.push({domField:"editor.max",schemaField:"editor.maxValue"}),i.push({domField:"editor.min",schemaField:"editor.minValue"})),l===b.DgControl.lookup.type&&(i.push({domField:"editor.dataSource",schemaField:"editor.dataSource"}),i.push({domField:"editor.valueField",schemaField:"editor.valueField"}),i.push({domField:"editor.textField",schemaField:"editor.textField"}),i.push({domField:"editor.displayType",schemaField:"editor.displayType"}),i.push({domField:"editor.mapFields",schemaField:"editor.mapFields"}),i.push({domField:"editor.helpId",schemaField:"editor.helpId"})),i.push({domField:"path",schemaField:"bindingPath"}),i.push({domField:"binding.path",schemaField:"bindingField"}),i.push({domField:"binding.fullPath",schemaField:"path"}),(t.type===b.DgControl["data-grid-column"].type||t.type===b.DgControl["tree-grid-column"].type)&&i.push({domField:"field",schemaField:"bindingPath"}),i}};k(ee,"fieldControlTypeMapping",{String:[{key:b.DgControl["input-group"].type,value:b.DgControl["input-group"].name},{key:b.DgControl.lookup.type,value:b.DgControl.lookup.name},{key:b.DgControl.image.type,value:b.DgControl.image.name},{key:b.DgControl["date-picker"].type,value:b.DgControl["date-picker"].name},{key:b.DgControl.switch.type,value:b.DgControl.switch.name},{key:b.DgControl["check-box"].type,value:b.DgControl["check-box"].name},{key:b.DgControl["check-group"].type,value:b.DgControl["check-group"].name},{key:b.DgControl["radio-group"].type,value:b.DgControl["radio-group"].name},{key:b.DgControl["combo-list"].type,value:b.DgControl["combo-list"].name},{key:b.DgControl.textarea.type,value:b.DgControl.textarea.name},{key:b.DgControl["time-picker"].type,value:b.DgControl["time-picker"].name}],Text:[{key:b.DgControl.textarea.type,value:b.DgControl.textarea.name},{key:b.DgControl.lookup.type,value:b.DgControl.lookup.name},{key:b.DgControl.image.type,value:b.DgControl.image.name},{key:b.DgControl["rich-text-editor"].type,value:b.DgControl["rich-text-editor"].name}],Decimal:[{key:b.DgControl["number-spinner"].type,value:b.DgControl["number-spinner"].name}],Integer:[{key:b.DgControl["number-spinner"].type,value:b.DgControl["number-spinner"].name}],Number:[{key:b.DgControl["number-spinner"].type,value:b.DgControl["number-spinner"].name},{key:b.DgControl.switch.type,value:b.DgControl.switch.name},{key:b.DgControl["check-box"].type,value:b.DgControl["check-box"].name}],BigNumber:[{key:b.DgControl["number-spinner"].type,value:b.DgControl["number-spinner"].name}],Date:[{key:b.DgControl["date-picker"].type,value:b.DgControl["date-picker"].name}],DateTime:[{key:b.DgControl["date-picker"].type,value:b.DgControl["date-picker"].name}],Boolean:[{key:b.DgControl.switch.type,value:b.DgControl.switch.name},{key:b.DgControl["check-box"].type,value:b.DgControl["check-box"].name}],Enum:[{key:b.DgControl["combo-list"].type,value:b.DgControl["combo-list"].name},{key:b.DgControl["radio-group"].type,value:b.DgControl["radio-group"].name}],Object:[{key:b.DgControl.lookup.type,value:b.DgControl.lookup.name},{key:b.DgControl["combo-list"].type,value:b.DgControl["combo-list"].name},{key:b.DgControl["radio-group"].type,value:b.DgControl["radio-group"].name}]});let ie=ee;var le=(n=>(n.Form="Form",n.Variable="Variable",n))(le||{});class Le{constructor(){k(this,"label","");k(this,"id","");k(this,"columnInSM",12);k(this,"columnInMD",6);k(this,"columnInLG",3);k(this,"columnInEL",2);k(this,"displayWidthInSM",1);k(this,"displayWidthInMD",1);k(this,"displayWidthInLG",1);k(this,"displayWidthInEL",1);k(this,"displayColumnCountAtBreakPoint","md");k(this,"tagRow",0);k(this,"showTopBorder",0);k(this,"group",1);k(this,"isSupportedClass",!0);k(this,"fieldSetId","")}}function Ae(n){let t,e;const l=new Map;let i=[];function a(f,c){const m=f.split(" ").filter(C=>C.startsWith("col-"));if(m.length===0){c.isSupportedClass=!1;return}let p=m.find(C=>/^col-([1-9]|10|11|12)$/.test(C)),y=m.find(C=>/^col-md-([1-9]|10|11|12)$/.test(C)),x=m.find(C=>/^col-xl-([1-9]|10|11|12)$/.test(C)),F=m.find(C=>/^col-el-([1-9]|10|11|12)$/.test(C));p=p||"col-12",c.columnInSM=parseInt(p.replace("col-",""),10),c.displayWidthInSM=c.columnInSM/12,c.displayWidthInSM!==1&&(c.isSupportedClass=!1),y=y||"col-md-"+c.columnInSM,c.columnInMD=parseInt(y.replace("col-md-",""),10),c.displayWidthInMD=c.columnInMD/6,[1,2].includes(c.displayWidthInMD)||(c.isSupportedClass=!1),x=x||"col-xl-"+c.columnInMD,c.columnInLG=parseInt(x.replace("col-xl-",""),10),c.displayWidthInLG=c.columnInLG/3,[1,2,3,4].includes(c.displayWidthInLG)||(c.isSupportedClass=!1),F=F||"col-el-"+c.columnInLG,c.columnInEL=parseInt(F.replace("col-el-",""),10),c.displayWidthInEL=c.columnInEL/2,[1,2,3,4,5,6].includes(c.displayWidthInEL)||(c.isSupportedClass=!1)}function s(f,c,v,m=!1){let p=!1;f.contents.forEach(y=>{if(y.type==="fieldset"){v+=1,s(y,c,v,!0),p=!0;return}p&&(v+=1,p=!1);const x=y.appearance&&y.appearance.class,F=new Le;x?a(x,F):F.isSupportedClass=!1,F.label=y.label||y.id,F.id=y.id,F.group=v,m&&(F.fieldSetId=f.id),e===y.id&&(t=v),l.set(y.id,y),c.push(F)})}function r(f){const c=n.getComponentById(f);if(!c||!c.componentType||!c.componentType.startsWith("form"))return{result:!1,message:"只可以在响应式表单组件中调整响应式布局配置"};const v=n.selectNode(c,m=>m.type===b.DgControl["response-form"].type);return!v||!v.contents||v.contents.length===0?{result:!1,message:"Form区域内没有控件,请先添加控件"}:{result:!0,message:"",formNode:v}}function d(f,c){c=c||f.id;const{result:v,message:m,formNode:p}=r(c);if(!v)return{result:v,message:m};e=f.id,i=[],l.clear();const y=p.contents[0].type===b.DgControl.fieldset.type?0:1;s(p,i,y);const x=i.find(C=>!C.isSupportedClass);return{defaultState:{defaultGroupNumber:t||1,model:x?"customize":"standard"},importData:i}}function u(f,c){c=c;const{result:v,formNode:m}=r(c);if(!v)return"";const p=[];return f.forEach(y=>{var C;const x=l.get(y.id),F=x.appearance&&x.appearance.class;if(F){const N=F.split(" ").filter(D=>!D.startsWith("col-")),I="col-"+y.columnInSM,L="col-md-"+y.columnInMD,h="col-xl-"+y.columnInLG,V="col-el-"+y.columnInEL,P=[I,L,h,V].concat(N);x.appearance.class=P.join(" ")}if(y.fieldSetId){const B=m.contents.find(I=>I.id===y.fieldSetId),N=p.find(I=>I.id===y.fieldSetId);N?(C=N.contents)==null||C.push(x):(p.push(B),B.contents=[x])}else p.push(x)}),m.contents=p,m.id}return{checkCanFindFormNode:r,checkCanOpenLayoutEditor:d,changeFormControlsByResponseLayoutConfig:u,getResonseFormLayoutConfig:s}}const $e=n=>o.createVNode(o.Fragment,null,[o.createVNode("h5",null,[o.createTextVNode("代码示例")]),o.createVNode("pre",{style:"background-color: #f5f5f5; padding: 10px; border-radius: 5px;"},[o.createVNode("code",null,[`
1
+ (function($,z){typeof exports=="object"&&typeof module<"u"?z(exports,require("../../components/common/index.umd.js"),require("../../components/dynamic-resolver/index.umd.js"),require("../../components/radio-group/index.umd.js"),require("vue"),require("../../components/designer-canvas/index.umd.js"),require("lodash-es"),require("../../components/locale/index.umd.js"),require("../../components/property-panel/index.umd.js"),require("../../components/button/index.umd.js"),require("../../components/field-selector/index.umd.js"),require("../../components/tags/index.umd.js"),require("../../components/popover/index.umd.js"),require("../../components/data-grid/index.umd.js"),require("../../components/notify/index.umd.js"),require("bignumber.js")):typeof define=="function"&&define.amd?define(["exports","../../components/common/index.umd.js","../../components/dynamic-resolver/index.umd.js","../../components/radio-group/index.umd.js","vue","../../components/designer-canvas/index.umd.js","lodash-es","../../components/locale/index.umd.js","../../components/property-panel/index.umd.js","../../components/button/index.umd.js","../../components/field-selector/index.umd.js","../../components/tags/index.umd.js","../../components/popover/index.umd.js","../../components/data-grid/index.umd.js","../../components/notify/index.umd.js","bignumber.js"],z):($=typeof globalThis<"u"?globalThis:$||self,z($["radio-group"]={},$.common,$.dynamicResolver,$.FRadioGroup,$.Vue,$.designerCanvas,$.LodashES,$.locale,null,null,null,$.FTags,$.FPopover,$.FDataGrid,$.notify))})(this,function($,z,_,re,o,y,oe,Y,_t,Yt,Jt,Te,Se,Be,Pe){"use strict";var Kt=Object.defineProperty;var Xt=($,z,_)=>z in $?Kt($,z,{enumerable:!0,configurable:!0,writable:!0,value:_}):$[z]=_;var k=($,z,_)=>Xt($,typeof z!="symbol"?z+"":z,_);const Ne={...z.radioCheckboxCommonProps,id:String,disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},enumData:{type:Array},data:{type:Array},modelValue:{type:String,default:""},name:{type:String,default:""},tabIndex:{type:Number,default:-1},textField:{type:String,default:"name"},valueField:{type:String,default:"value"}};function Oe(n,t,e){const l=o.computed(()=>!n.disabled),i=o.computed(()=>n.data||n.enumData||n.options||[]);function a(d){return d[n.valueField]}function s(d){return d[n.textField]}function r(d,c){if(l.value){const f=a(d);e.value!==f&&(e.value=f,t.emit("change",f),t.emit("changeValue",f),t.emit("update:modelValue",f))}c.stopPropagation()}return{enumData:i,getValue:a,getText:s,onClickRadio:r}}function De(n){const{formSchemaUtils:t,formStateMachineUtils:e}=n;function l(d,c=""){return{path:c+d.code,field:d.id,fullPath:d.code}}function i(d,c=""){const f=t.getViewModelById(d);return f?f.states.map(u=>l(u,c)):[]}function a(d){const c=t.getRootViewModelId(),f=i(d);if(d===c)return f;const u=i(c,"root-component.");return[...f,...u]}function s(d){return d.binding&&d.binding.path||d.id||""}function r(){return e&&e.getRenderStates()||[]}return{getVariables:a,getControlName:s,getStateMachines:r}}class me{constructor(t){k(this,"sessionVariables",[{key:"CurrentSysOrgName",name:"当前组织Name",description:"当前组织Name"},{key:"CurrentSysOrgId",name:"当前组织Id",description:"当前组织Id"},{key:"CurrentUserName",name:"当前用户Name",description:"当前用户Name"},{key:"CurrentUserCode",name:"当前用户Code",description:"当前用户Code"},{key:"CurrentUserId",name:"当前用户Id",description:"当前用户Id"},{key:"CurrentLanguage",name:"当前语言编号",description:"当前登录的语言编号,例如简体中文返回'zh-CHS',英文返回'en',繁体中文'zh-CHT'"}]);k(this,"expressionNames",{compute:"计算表达式",dependency:"依赖表达式",validate:"验证表达式",dataPicking:"帮助前表达式",visible:"可见表达式",readonly:"只读表达式",required:"必填表达式"});k(this,"getExpressionConverter",(t,e)=>({convertFrom:(l,i,a,s)=>{const r=a.getExpressionRuleValue(t,e||i);return r&&r.value||""},convertTo:(l,i,a,s,r)=>{var d;if(i==="dataPicking"&&(a!=null&&a.target)){const c=`${a.target}_dataPicking`;((d=a.rules)==null?void 0:d.some(u=>u.id===c&&u.value))?l.dictPickingExpressionId=c:delete l.dictPickingExpressionId}s.updateExpression(a)}}));this.formSchemaService=t}getExpressionRule(t,e){const l=this.formSchemaService.getExpressions();if(!l)return"";const i=l.find(s=>s.target===t);if(!i)return"";const a=i.rules.find(s=>s.type===e);return a||""}getContextFormVariables(){const{module:t}=this.formSchemaService.getFormSchema();if(!t.viewmodels||t.viewmodels.length===0)return[];const e=this.formSchemaService.getRootViewModelId(),l=this.formSchemaService.getViewModelById(e);if(!l||!l.states||l.states.length===0)return[];const i=[];return l.states.filter(a=>a.category==="remote").forEach(a=>{i.push({key:a.code,name:a.name,description:a.name,category:a.category})}),i}createTreeNode(t,e,l="label"){return{id:t.id,name:t.name,bindingPath:t[l],parents:e,type:"field"}}buildEntityFieldsTreeData(t=null,e){const l=[];return t==null||t.forEach(i=>{var r;const a=this.createTreeNode(i,e);let s=[];(r=i.type)!=null&&r.fields&&(s=this.buildEntityFieldsTreeData(i.type.fields,[...e,i.label])),l.push({data:a,children:s,expanded:!0})}),l}buildChildEntityTreeData(t=null,e){const l=[];return t==null||t.forEach(i=>{var d,c;const a=this.createTreeNode(i,e);a.type="entity";const s=this.buildEntityFieldsTreeData((d=i.type)==null?void 0:d.fields,[...e,i.label]),r=this.buildChildEntityTreeData((c=i.type)==null?void 0:c.entities,[...e,i.label]);r!=null&&r.length&&(s==null||s.push(...r)),l.push({data:a,children:s||[],expanded:!0})}),l}getEntitiesTreeData(){const t=this.formSchemaService.getSchemaEntities();if(!(t!=null&&t.length))return[];const e=t[0];if(!(e!=null&&e.type))return[];const l=this.buildEntityFieldsTreeData(e.type.fields,[e.code]),i=this.buildChildEntityTreeData(e.type.entities,[e.code]);return i!=null&&i.length&&(l==null||l.push(...i)),{entityCode:e.code,fields:[{data:this.createTreeNode(e,[],"code"),children:l||[]}]}}getEntitiesAndVariables(){return{entities:this.getEntitiesTreeData(),variables:{session:{name:"系统变量",items:this.sessionVariables,visible:!1},forms:{name:"表单变量",items:this.getContextFormVariables(),visible:!0}}}}onBeforeOpenExpression(t,e,l){const i=l==="Field"?t.binding.field:t.id,a=this.getExpressionRule(i,e),s=this.getEntitiesAndVariables(),r={message:["validate","required","dataPicking"].includes(e)&&a?a.message:"",...s};return a.messageType!=null&&(r.messageType=a.messageType),r}buildRule(t,e,l,i){const{expression:a,message:s,messageType:r}=e,d={id:`${t}_${l}`,type:l,value:a};return(l==="validate"||l==="dataPicking"||l==="required")&&(d.message=s),l==="dataPicking"&&(d.messageType=r),l==="validate"&&i&&(d.elementId=i),d}getExpressionData(){const{expressions:t}=this.formSchemaService.getFormSchema().module;return t||[]}updateExpression(t,e,l,i){const a=e==="Field"?t.binding.field:t.id,s=this.buildRule(a,l,i,t.type==="form-group"?t.id:"");let d=this.getExpressionData().find(f=>f.targetType===e&&f.target===a);const c=f=>f.value.trim()==="";if(d){const f=d.rules.find(u=>u.id===s.id);if(f)c(s)?d.rules=d.rules.filter(u=>u.id!==s.id):(Object.assign(f,s),i==="validate"&&t.type==="form-group"&&(f.elementId=t.id));else{if(c(s))return null;d.rules=d.rules||[],d.rules.push(s)}}else{if(c(s))return null;d={target:`${a}`,rules:[s],targetType:e}}return d}getExpressionEditorOptions(t,e,l,i){return l.reduce((a,s)=>{var d,c;const r=e==="Field"?(d=t==null?void 0:t.binding)==null?void 0:d.field:t.id;return a[s]={hide:e==="Field"?!!((c=t==null?void 0:t.binding)!=null&&c.field):!1,description:"",title:this.expressionNames[s],type:"string",$converter:this.getExpressionConverter(r),refreshPanelAfterChanged:!0,editor:{type:"expression-editor",singleExpand:!1,dialogTitle:`${this.expressionNames[s]}编辑器`,showMessage:s==="validate"||s==="dataPicking"||s==="required",showMessageType:s==="dataPicking",beforeOpen:()=>this.onBeforeOpenExpression(t,s,e),onSubmitModal:f=>{const u=this.updateExpression(t,e,f,s);if(i){const v=this.buildRule(r,f,s);i(v)}return u}}},a},{})}getExpressionInfo(t,e,l){const i=e==="Field"?t.binding.field:t.id,a=this.getExpressionRule(i,l),s={value:a&&a.value,targetId:i,targetType:e,expressionType:l};return a&&a.message&&(s.message=a.message),s}getExpressionConfig(t,e,l=["compute","dependency","validate"],i){return{description:"表达式",title:"表达式",hide:!t.binding,properties:{...this.getExpressionEditorOptions(t,e,l,i)}}}getExpressionOptions(t,e,l){const i=this.getExpressionInfo(t,e,l);return{dialogTitle:`${this.expressionNames[l]}编辑器`,singleExpand:!1,showMessage:l==="required",beforeOpen:()=>this.onBeforeOpenExpression(t,l,e),expressionInfo:i}}}class Re{constructor(t,e){k(this,"componentId");k(this,"viewModelId");k(this,"eventsEditorUtils");k(this,"formSchemaUtils");k(this,"formMetadataConverter");k(this,"designViewModelUtils");k(this,"designViewModelField");k(this,"controlCreatorUtils");k(this,"designerHostService");k(this,"designerContext");k(this,"schemaService",null);k(this,"metadataService",null);k(this,"propertyConfig",{type:"object",categories:{}});var l;this.componentId=t,this.designerHostService=e,this.eventsEditorUtils=e.eventsEditorUtils,this.formSchemaUtils=e.formSchemaUtils,this.formMetadataConverter=e.formMetadataConverter,this.viewModelId=((l=this.formSchemaUtils)==null?void 0:l.getViewModelIdByComponentId(t))||"",this.designViewModelUtils=e.designViewModelUtils,this.controlCreatorUtils=e.controlCreatorUtils,this.metadataService=e.metadataService,this.schemaService=e.schemaService,this.designerContext=e.designerContext}getFormDesignerInstance(){var t,e;return(e=(t=this.designerContext)==null?void 0:t.instances)==null?void 0:e.formDesigner.value}getTableInfo(){var t;return(t=this.schemaService)==null?void 0:t.getTableInfoByViewModelId(this.viewModelId)}setDesignViewModelField(t){var l;const e=t.binding&&t.binding.type==="Form"&&t.binding.field;if(e){if(!this.designViewModelField){const i=this.designViewModelUtils.getDgViewModel(this.viewModelId);this.designViewModelField=i.fields.find(a=>a.id===e)}t.updateOn=(l=this.designViewModelField)==null?void 0:l.updateOn}}getBasicPropConfig(t){return{description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"combo-list",textField:"name",valueField:"value",idField:"value",editable:!1,data:[{value:t.type,name:y.DgControl[t.type]&&y.DgControl[t.type].name}]}}}}}getAppearanceConfig(t=null,e={},l){const i={title:"外观",description:"Appearance"},a={class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},style:{title:"style样式",type:"string",description:"组件的样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"}};for(const s in e)a[s]=Object.assign(a[s]||{},e[s]);return{...i,properties:{...a},setPropertyRelates(s,r){if(s){switch(s&&s.propertyID){case"class":case"style":{y.canvasChanged.value++;break}}l&&l(s,t,r)}}}}getPropertyEditorParams(t,e=[],l="visible",i={},a={},s=""){const{getVariables:r,getControlName:d,getStateMachines:c}=De(this.designerHostService),f=this.getRealTargetType(t),u=e&&e.length>0?e:["Const","Variable","StateMachine","Expression"],v={type:"property-editor",propertyTypes:u};return u.map(m=>{switch(m){case"Const":Object.assign(v,{constType:"enum",constEnums:[{id:!0,name:"是"},{id:!1,name:"否"}]},i);break;case"Expression":v.expressionConfig=this.getExpressionOptions(t,f,s||l);break;case"StateMachine":v.stateMachines=c();break;case"Variable":Object.assign(v,{controlName:d(t),newVariablePrefix:"is",newVariableType:"Boolean",variables:r(this.viewModelId),parentComponentId:this.componentId==="root-component"?"":"root-component",onBeforeOpenVariables:p=>{p.value=r(this.viewModelId)}},a),this.designerContext.designerMode==="PC_RTC"&&(v.newVariablePrefix="ext_"+v.newVariablePrefix);break}}),v}getVisibleProperty(t,e=""){var a;let l=["Const","Variable","StateMachine","Expression"];return e==="gridFieldEditor"?l=["Const","Expression"]:e==="form-group"&&!((a=t.binding)!=null&&a.field)?l=["Const","Variable","StateMachine"]:(e==="dataGrid"||e==="treeGrid"||e==="wizard")&&(l=["Const","Variable","Expression"]),{visible:{title:"是否可见",type:"boolean",description:"运行时组件是否可见",editor:this.getPropertyEditorParams(t,l,"visible")}}}getBehaviorConfig(t,e="",l={},i){const a={title:"行为",description:""},s=this.getVisibleProperty(t,e);for(const d in l)s[d]=Object.assign(s[d]||{},l[d]);const r=this;return{...a,properties:{...s},setPropertyRelates(d,c){if(d){switch(d.propertyID){case"disabled":case"readonly":case"visible":r.afterMutilEditorChanged(t,d);break}i&&i(d,c)}}}}afterMutilEditorChanged(t,e){this.addNewVariableToViewModel(e,this.viewModelId),this.updateExpressionValue(e),this.clearExpression(e,t)}updateElementByParentContainer(t,e){const l=e&&e.parent&&e.parent.schema;if(!l)return;const i=l.contents.findIndex(s=>s.id===t),a=oe.cloneDeep(l.contents[i]);l.contents.splice(i,1),l.contents.splice(i,0,a),y.refreshCanvas()}addNewVariableToViewModel(t,e){const l=t.propertyValue;if(!(l&&typeof l=="object")||!(l.type==="Variable"&&l.isNewVariable))return;const s={id:l.field,category:"locale",code:l.fullPath,name:l.fullPath,type:l.newVariableType||"String",isRtcVariable:this.designerContext.designerMode==="PC_RTC"?!0:void 0};delete l.newVariableType,delete l.isNewVariable,this.formSchemaUtils.getVariableByCode(s.code)||this.formSchemaUtils.getViewModelById("root-viewmodel").states.push(s)}updateExpressionValue(t){const e=t.propertyValue;if(!((e&&e.type)==="Expression"&&e.expressionInfo))return;const{expressionId:a,expressionInfo:s}=e,{targetId:r,targetType:d,expressionType:c,value:f,message:u}=s,v=this.formSchemaUtils.getModule();v.expressions=v.expressions||[];const{expressions:m}=v;let p=m.find(x=>x.target===r);p||(p={target:r,rules:[],targetType:d},m.push(p));const b=p.rules.find(x=>x.type===c);if(b)b.value=f,b.message=u;else{const x={id:a,type:c,value:f,message:u};p.rules.push(x)}delete e.expressionInfo}clearExpression(t,e){const l=t.propertyValue;if(l&&l.type==="Expression")return;const a=t.propertyID,s=this.formSchemaUtils.getExpressions(),r=e.binding?e.binding.field:e.id,d=s.find(c=>c.target===r);!d||!d.rules||(d.rules=d.rules.filter(c=>c.type!==a))}getExpressionOptions(t,e,l){return new me(this.formSchemaUtils).getExpressionOptions(t,e,l)}getRealTargetType(t){return["response-toolbar-item","tab-toolbar-item","section-toolbar-item","drawer-toolbar-item"].indexOf(t.type)>-1?"Button":t.binding&&t.binding.field?"Field":"Container"}createBaseEventProperty(t){const e={};return e[this.viewModelId]={type:"events-editor",editor:{initialData:t,viewSourceHandle:l=>{var i;((i=l.controller)==null?void 0:i.label.indexOf(this.formSchemaUtils.getModule().code))>-1&&this.eventsEditorUtils.jumpToMethod(l)}}},e}}const ee=class ee{static getEditorTypesByMDataType(t,e=!1,l=""){if(e)return[{key:y.DgControl["language-textbox"].type,value:y.DgControl["language-textbox"].name}];let i=ee.fieldControlTypeMapping[t];if(l==="data-grid-column"&&(i!=null&&i.length)){const a=[y.DgControl["check-group"].type,y.DgControl["radio-group"].type,y.DgControl.image.type,y.DgControl["rich-text-editor"].type];i=i.filter(s=>!a.includes(s.key))}return i}static getAllInputTypes(){const t=[];for(const e in ee.fieldControlTypeMapping)ee.fieldControlTypeMapping[e].forEach(l=>{t.find(i=>i.key===l.key&&i.value===l.value)||t.push({key:l.key,value:l.value})});return t}static mappingDomPropAndSchemaProp(t,e){var a;const l=(a=t.editor)==null?void 0:a.type,i=[];return(t.type===y.DgControl["data-grid-column"].type||t.type===y.DgControl["tree-grid-column"].type)&&e&&e.categoryId&&e.categoryId.indexOf("gridFieldEditor")<0&&i.push({domField:"title",schemaField:"name"}),i.push({domField:"label",schemaField:"name"}),i.push({domField:"editor.required",schemaField:"require"}),i.push({domField:"editor.readonly",schemaField:"readonly"}),(l===y.DgControl["input-group"].type||l===y.DgControl.textarea.type||l===y.DgControl["number-spinner"].type)&&i.push({domField:"editor.maxLength",schemaField:"type.length"}),l===y.DgControl["number-spinner"].type&&i.push({domField:"editor.precision",schemaField:"type.precision"}),(t.type===y.DgControl["data-grid-column"].type||t.type===y.DgControl["tree-grid-column"].type)&&i.push({domField:"formatter.precision",schemaField:"type.precision"}),(l===y.DgControl["combo-list"].type||l===y.DgControl["radio-group"].type)&&i.push({domField:"editor.data",schemaField:"type.enumValues"}),(t.type===y.DgControl["data-grid-column"].type||t.type===y.DgControl["tree-grid-column"].type)&&i.push({domField:"formatter.data",schemaField:"type.enumValues"}),l===y.DgControl["date-picker"].type&&(i.push({domField:"editor.displayFormat",schemaField:"editor.format"}),i.push({domField:"editor.fieldType",schemaField:"type.name"})),l===y.DgControl["number-spinner"].type&&(i.push({domField:"editor.max",schemaField:"editor.maxValue"}),i.push({domField:"editor.min",schemaField:"editor.minValue"})),l===y.DgControl.lookup.type&&(i.push({domField:"editor.dataSource",schemaField:"editor.dataSource"}),i.push({domField:"editor.valueField",schemaField:"editor.valueField"}),i.push({domField:"editor.textField",schemaField:"editor.textField"}),i.push({domField:"editor.displayType",schemaField:"editor.displayType"}),i.push({domField:"editor.mapFields",schemaField:"editor.mapFields"}),i.push({domField:"editor.helpId",schemaField:"editor.helpId"})),i.push({domField:"path",schemaField:"bindingPath"}),i.push({domField:"binding.path",schemaField:"bindingField"}),i.push({domField:"binding.fullPath",schemaField:"path"}),(t.type===y.DgControl["data-grid-column"].type||t.type===y.DgControl["tree-grid-column"].type)&&i.push({domField:"field",schemaField:"bindingPath"}),i}};k(ee,"fieldControlTypeMapping",{String:[{key:y.DgControl["input-group"].type,value:y.DgControl["input-group"].name},{key:y.DgControl.lookup.type,value:y.DgControl.lookup.name},{key:y.DgControl.image.type,value:y.DgControl.image.name},{key:y.DgControl["date-picker"].type,value:y.DgControl["date-picker"].name},{key:y.DgControl.switch.type,value:y.DgControl.switch.name},{key:y.DgControl["check-box"].type,value:y.DgControl["check-box"].name},{key:y.DgControl["check-group"].type,value:y.DgControl["check-group"].name},{key:y.DgControl["radio-group"].type,value:y.DgControl["radio-group"].name},{key:y.DgControl["combo-list"].type,value:y.DgControl["combo-list"].name},{key:y.DgControl.textarea.type,value:y.DgControl.textarea.name},{key:y.DgControl["time-picker"].type,value:y.DgControl["time-picker"].name}],Text:[{key:y.DgControl.textarea.type,value:y.DgControl.textarea.name},{key:y.DgControl.lookup.type,value:y.DgControl.lookup.name},{key:y.DgControl.image.type,value:y.DgControl.image.name},{key:y.DgControl.avatar.type,value:y.DgControl.avatar.name},{key:y.DgControl["rich-text-editor"].type,value:y.DgControl["rich-text-editor"].name}],Decimal:[{key:y.DgControl["number-spinner"].type,value:y.DgControl["number-spinner"].name}],Integer:[{key:y.DgControl["number-spinner"].type,value:y.DgControl["number-spinner"].name}],Number:[{key:y.DgControl["number-spinner"].type,value:y.DgControl["number-spinner"].name},{key:y.DgControl.switch.type,value:y.DgControl.switch.name},{key:y.DgControl["check-box"].type,value:y.DgControl["check-box"].name}],BigNumber:[{key:y.DgControl["number-spinner"].type,value:y.DgControl["number-spinner"].name}],Date:[{key:y.DgControl["date-picker"].type,value:y.DgControl["date-picker"].name}],DateTime:[{key:y.DgControl["date-picker"].type,value:y.DgControl["date-picker"].name}],Boolean:[{key:y.DgControl.switch.type,value:y.DgControl.switch.name},{key:y.DgControl["check-box"].type,value:y.DgControl["check-box"].name}],Enum:[{key:y.DgControl["combo-list"].type,value:y.DgControl["combo-list"].name},{key:y.DgControl["radio-group"].type,value:y.DgControl["radio-group"].name}],Object:[{key:y.DgControl.lookup.type,value:y.DgControl.lookup.name},{key:y.DgControl["combo-list"].type,value:y.DgControl["combo-list"].name},{key:y.DgControl["radio-group"].type,value:y.DgControl["radio-group"].name}]});let ie=ee;var le=(n=>(n.Form="Form",n.Variable="Variable",n))(le||{});class Le{constructor(){k(this,"label","");k(this,"id","");k(this,"columnInSM",12);k(this,"columnInMD",6);k(this,"columnInLG",3);k(this,"columnInEL",2);k(this,"displayWidthInSM",1);k(this,"displayWidthInMD",1);k(this,"displayWidthInLG",1);k(this,"displayWidthInEL",1);k(this,"displayColumnCountAtBreakPoint","md");k(this,"tagRow",0);k(this,"showTopBorder",0);k(this,"group",1);k(this,"isSupportedClass",!0);k(this,"fieldSetId","")}}function Ae(n){let t,e;const l=new Map;let i=[];function a(f,u){const m=f.split(" ").filter(C=>C.startsWith("col-"));if(m.length===0){u.isSupportedClass=!1;return}let p=m.find(C=>/^col-([1-9]|10|11|12)$/.test(C)),b=m.find(C=>/^col-md-([1-9]|10|11|12)$/.test(C)),x=m.find(C=>/^col-xl-([1-9]|10|11|12)$/.test(C)),F=m.find(C=>/^col-el-([1-9]|10|11|12)$/.test(C));p=p||"col-12",u.columnInSM=parseInt(p.replace("col-",""),10),u.displayWidthInSM=u.columnInSM/12,u.displayWidthInSM!==1&&(u.isSupportedClass=!1),b=b||"col-md-"+u.columnInSM,u.columnInMD=parseInt(b.replace("col-md-",""),10),u.displayWidthInMD=u.columnInMD/6,[1,2].includes(u.displayWidthInMD)||(u.isSupportedClass=!1),x=x||"col-xl-"+u.columnInMD,u.columnInLG=parseInt(x.replace("col-xl-",""),10),u.displayWidthInLG=u.columnInLG/3,[1,2,3,4].includes(u.displayWidthInLG)||(u.isSupportedClass=!1),F=F||"col-el-"+u.columnInLG,u.columnInEL=parseInt(F.replace("col-el-",""),10),u.displayWidthInEL=u.columnInEL/2,[1,2,3,4,5,6].includes(u.displayWidthInEL)||(u.isSupportedClass=!1)}function s(f,u,v,m=!1){let p=!1;f.contents.forEach(b=>{if(b.type==="fieldset"){v+=1,s(b,u,v,!0),p=!0;return}p&&(v+=1,p=!1);const x=b.appearance&&b.appearance.class,F=new Le;x?a(x,F):F.isSupportedClass=!1,F.label=b.label||b.id,F.id=b.id,F.group=v,m&&(F.fieldSetId=f.id),e===b.id&&(t=v),l.set(b.id,b),u.push(F)})}function r(f){const u=n.getComponentById(f);if(!u||!u.componentType||!u.componentType.startsWith("form"))return{result:!1,message:"只可以在响应式表单组件中调整响应式布局配置"};const v=n.selectNode(u,m=>m.type===y.DgControl["response-form"].type);return!v||!v.contents||v.contents.length===0?{result:!1,message:"Form区域内没有控件,请先添加控件"}:{result:!0,message:"",formNode:v}}function d(f,u){u=u||f.id;const{result:v,message:m,formNode:p}=r(u);if(!v)return{result:v,message:m};e=f.id,i=[],l.clear();const b=p.contents[0].type===y.DgControl.fieldset.type?0:1;s(p,i,b);const x=i.find(C=>!C.isSupportedClass);return{defaultState:{defaultGroupNumber:t||1,model:x?"customize":"standard"},importData:i}}function c(f,u){u=u;const{result:v,formNode:m}=r(u);if(!v)return"";const p=[];return f.forEach(b=>{var C;const x=l.get(b.id),F=x.appearance&&x.appearance.class;if(F){const N=F.split(" ").filter(R=>!R.startsWith("col-")),I="col-"+b.columnInSM,L="col-md-"+b.columnInMD,h="col-xl-"+b.columnInLG,V="col-el-"+b.columnInEL,P=[I,L,h,V].concat(N);x.appearance.class=P.join(" ")}if(b.fieldSetId){const B=m.contents.find(I=>I.id===b.fieldSetId),N=p.find(I=>I.id===b.fieldSetId);N?(C=N.contents)==null||C.push(x):(p.push(B),B.contents=[x])}else p.push(x)}),m.contents=p,m.id}return{checkCanFindFormNode:r,checkCanOpenLayoutEditor:d,changeFormControlsByResponseLayoutConfig:c,getResonseFormLayoutConfig:s}}const $e=n=>o.createVNode(o.Fragment,null,[o.createVNode("h5",null,[o.createTextVNode("代码示例")]),o.createVNode("pre",{style:"background-color: #f5f5f5; padding: 10px; border-radius: 5px;"},[o.createVNode("code",null,[`
2
2
  <h3>Tips:</h3>
3
3
  <span style="color: blue;">
4
4
  自定义提示内容
5
5
  </span>
6
- `])])]);class ze extends De{constructor(e,l){super(e,l);k(this,"responseLayoutEditorFunction");k(this,"bindingVarible");k(this,"formGroupEvents",[{label:"fieldValueChanging",name:"绑定字段值变化前事件"},{label:"fieldValueChanged",name:"绑定字段值变化后事件"},{label:"onClickLabel",name:"点击标签事件"}]);k(this,"numberEditorOptions",{type:"number-spinner",useThousands:!1,keyboard:!1,showButton:!1});this.responseLayoutEditorFunction=Ae(this.formSchemaUtils)}getCommonPropertyConfig(e,l,i="Card"){if(this.propertyConfig.categories.basic=this.getBasicProperties(e,l,i),this.propertyConfig.categories.appearance=this.getAppearanceProperties(e,l),this.propertyConfig.categories.behavior=this.getBehaviorConfig(e,"form-group"),i==="Card"){const a=this.getTipsConfig(e);this.propertyConfig.categories.behavior.properties={...this.propertyConfig.categories.behavior.properties,...a},["time-picker","date-picker","lookup","combo-list","number-spinner","input-group"].includes(e.editor.type)&&(this.propertyConfig.categories.expansion=this.getExpandProperties(e))}}getPropertyConfig(e,l){return this.getCommonPropertyConfig(e,l,"Card"),this.propertyConfig.categories.editor=this.getEditorProperties(e),this.propertyConfig.categories.expressions=this.getExpressionConfig(e,"Field"),this.propertyConfig.categories.eventsEditor=this.getEventPropertyConfig(e),this.propertyConfig}getGridFieldEdtiorPropConfig(e,l){return this.propertyConfig.categories={},this.getCommonPropertyConfig(e,l,"Grid"),this.getGridFieldEdtiorProperties?this.propertyConfig.categories.editor=this.getGridFieldEdtiorProperties(e):this.propertyConfig.categories.editor=this.getEditorProperties(e),this.propertyConfig.categories.expressons=this.getExpressionConfig(e,"Field"),this.propertyConfig.categories}getBasicProperties(e,l,i="Card"){var u;const a=this;this.setDesignViewModelField(e);const{canChangeControlType:s,editorTypeList:r}=this.getAvailableEditorType(e),d={description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"编辑器类型",title:"编辑器类型",type:"string",$converter:"/converter/change-editor.converter",parentPropertyID:"editor",editor:{type:"combo-list",textField:"value",valueField:"key",idField:"key",editable:!1,data:r,readonly:!s}},label:{title:"标签",type:"string",$converter:"/converter/form-group-label.converter"},showLabelType:{description:"标签显示方式:1、显示:显示标签 2、占位:保留标签空间,但不显示文本 3、不显示:不显示标签",title:"标签显示",type:"enum",editor:{data:[{id:"visible",name:"显示"},{id:"reserve-space",name:"占位"},{id:"none",name:"不显示"}]},defaultValue:((u=e.editor)==null?void 0:u.type)==="image"?"none":"visible"},binding:{description:"绑定的表单字段",title:"绑定",editor:{type:"binding-selector",bindingType:{enable:!0},editorParams:{componentSchema:e,needSyncToViewModel:!0,viewModelId:this.viewModelId,designerHostService:this.designerHostService,disableOccupiedFields:!0},textField:"bindingField"},refreshPanelAfterChanged:!0,readonly:this.formSchemaUtils.designerMode==="PC_RTC"&&!e.isRtcControl}},setPropertyRelates(f,c,v){if(f)switch(f&&f.propertyID){case"type":{a.changeControlType(e,f,l);break}case"label":{f.needRefreshControlTree=!0;break}case"binding":{a.changeBindingField(e,f,v);break}}}};return i.toLocaleLowerCase()!=="card"&&delete d.properties.showLabelType,d}getExpandProperties(e){const l=this,i=["Const","Variable"],a=this.getPropertyEditorParams(e,i,"expandable"),s=this.getPropertyEditorParams(e,i,"expandDisabled");return{description:"Expand Information",title:"扩展区域",properties:{expandable:{description:"是否启用扩展区域",title:"启用扩展区域",refreshPanelAfterChanged:!0,$converter:"/converter/property-editor.converter",editor:a},expandMode:{description:"扩展模式 text | button",title:"扩展模式",type:"enum",refreshPanelAfterChanged:!0,$converter:"/converter/property-editor.converter",editor:{data:[{id:"text",name:"静态文本"},{id:"button",name:"交互按钮"}]},defaultValue:"text",visible:!!e.editor.expandable},expandContent:{$converter:"/converter/property-editor.converter",description:"扩展内容",title:"扩展内容",type:"string",visible:!!e.editor.expandable},expandDisabled:{$converter:"/converter/property-editor.converter",description:"是否隐藏扩展区域",title:"隐藏扩展区域",editor:s,visible:!!e.editor.expandable}},setPropertyRelates(d,u){if(d)switch(d.propertyID){case"expandable":case"expandDisabled":l.afterMutilEditorChanged(e,d);break}}}}checkCanChangeControlType(e,l){if(!e.binding)return!1;if(e.binding.type==="Variable"){if(this.bindingVarible=this.formSchemaUtils.getVariableById(e.binding.field),!this.bindingVarible)return!1}else if(!this.designViewModelField||this.designViewModelField.$type!==z.FormSchemaEntityField$Type.SimpleField)return!1;return!0}getAvailableEditorType(e){var a;const l=this.checkCanChangeControlType(e,this.viewModelId);if(!l)return{canChangeControlType:!1,editorTypeList:[{key:e.editor.type,value:((a=b.DgControl[e.editor.type])==null?void 0:a.name)||e.editor.type}]};let i=[];return this.designViewModelField&&this.designViewModelField.$type===z.FormSchemaEntityField$Type.SimpleField?i=ie.getEditorTypesByMDataType(this.designViewModelField.type.name,this.designViewModelField.multiLanguage):this.bindingVarible&&(i=ie.getEditorTypesByMDataType(this.bindingVarible.type,!1)),{canChangeControlType:l,editorTypeList:i}}changeBindingField(e,l,i){l.needRefreshEntityTree=!0}getAppearanceProperties(e,l){const i=this;return{title:"外观",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},style:{title:"style样式",type:"string",description:"组件的内联样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},fill:{title:"填充宽度",description:"启用后,控件占满父容器宽度",type:"boolean",parentPropertyID:"appearance"},responseLayout:{description:"响应式列宽",title:"响应式列宽",type:"boolean",visible:!0,refreshPanelAfterChanged:!0,editor:{type:"response-layout-editor-setting",beforeOpen:()=>i.responseLayoutEditorFunction.checkCanOpenLayoutEditor(e,i.componentId)}}},setPropertyRelates(a,s){if(a)switch(a&&a.propertyID){case"responseLayout":i.responseLayoutEditorFunction.changeFormControlsByResponseLayoutConfig(a.propertyValue,i.componentId||e.id),i.updateUnifiedLayoutAfterResponseLayoutChanged(i.componentId),i.updateElementByParentContainer(e.id,l),delete e.responseLayout;break;case"class":i.updateUnifiedLayoutAfterControlChanged(a.propertyValue,e.id,this.componentId),b.canvasChanged.value++;break;case"style":{b.canvasChanged.value++;break}}}}}getEditorProperties(e){return this.getComponentConfig(e)}changeControlType(e,l,i){const a=l.propertyValue,s=i&&i.parent&&i.parent.schema;if(!s)return;const r=s.contents.findIndex(f=>f.id===e.id);if(r===-1)return;const d=s.contents[r];let u;if(this.designViewModelField){const v=this.formSchemaUtils.getViewModelById(this.viewModelId).fields.find(p=>p.id===this.designViewModelField.id).fieldSchema||{};v.editor||(v.editor={}),v.editor.$type=a,this.designViewModelUtils.getDgViewModel(this.viewModelId).changeField(this.designViewModelField.id,v,!1),u=this.controlCreatorUtils.setFormFieldProperty(this.designViewModelField,a)}u||(u=this.controlCreatorUtils.createFormGroupWithoutField(a)),Object.assign(u,{id:d.id,appearance:d.appearance,size:d.size,label:d.label,binding:d.binding}),Object.prototype.hasOwnProperty.call(d,"visible")&&Object.assign(u,{visible:d.visible}),d.editor&&["readonly","required","placeholder"].map(f=>{Object.prototype.hasOwnProperty.call(d.editor,f)&&(u.editor[f]=d.editor[f])}),i!=null&&i.updateContextSchema?i.updateContextSchema(u):(i.schema=Object.assign(d,u),Object.assign(e,u)),Array.from(document.getElementsByClassName("dgComponentSelected")).forEach(f=>f.classList.remove("dgComponentSelected")),Array.from(document.getElementsByClassName("dgComponentFocused")).forEach(f=>f.classList.remove("dgComponentFocused")),b.canvasChanged.value++,o.nextTick(()=>{this.getFormDesignerInstance().reloadPropertyPanel()})}getTipsConfig(e){return["time-picker","date-picker","lookup","combo-list","number-spinner","input-group","textarea","rich-text-editor"].includes(e.editor.type)?{enableTips:{refreshPanelAfterChanged:!0,description:"",title:"启用提示",type:"boolean",default:!1},tipsContent:{description:"提示内容",title:"提示内容",type:"string",editor:{type:"code-editor",language:"html",leftTemplate:$e},visible:!!e.enableTips}}:{}}getComponentConfig(e,l={},i={},a){var v,m;const s=Object.assign({description:"编辑器",title:"编辑器",type:"input-group",$converter:"/converter/property-editor.converter",parentPropertyID:"editor"},l),r=(v=e.binding)!=null&&v.field?[]:["Const","Variable","StateMachine"],d=this.getPropertyEditorParams(e,r,"readonly"),u=this.getPropertyEditorParams(e,r,"required"),f={readonly:{description:"",title:"只读",editor:d},required:{description:"",title:"必填",type:"boolean",editor:u,visible:!!((m=e.binding)!=null&&m.field)},placeholder:{description:"当控件没有值时在输入框中显示的文本",title:"提示文本",type:"string"}};for(const p in i)f[p]=Object.assign(f[p]||{},i[p]);const c=this;return{...s,properties:{...f},setPropertyRelates(p,y){if(p){switch(p.propertyID){case"readonly":case"required":c.afterMutilEditorChanged(e,p);break}a&&a.bind(c)(p,e,y)}}}}updateUnifiedLayoutAfterControlChanged(e,l,i){const a=e.split(" ");let s=a.find(c=>/^col-([1-9]|10|11|12)$/.test(c)),r=a.find(c=>/^col-md-([1-9]|10|11|12)$/.test(c)),d=a.find(c=>/^col-xl-([1-9]|10|11|12)$/.test(c)),u=a.find(c=>/^col-el-([1-9]|10|11|12)$/.test(c));s=s||"col-12",r=r||"col-md-"+s.replace("col-",""),d=d||"col-xl-"+r.replace("col-md-",""),u=u||"col-el-"+d.replace("col-xl-","");const f={id:l,columnInSM:parseInt(s.replace("col-",""),10),columnInMD:parseInt(r.replace("col-md-",""),10),columnInLG:parseInt(d.replace("col-xl-",""),10),columnInEL:parseInt(u.replace("col-el-",""),10)};this.updateUnifiedLayoutAfterResponseLayoutChanged(i,f)}updateUnifiedLayoutAfterResponseLayoutChanged(e,l){const{formNode:i}=this.responseLayoutEditorFunction.checkCanFindFormNode(e);if(!i||!i.unifiedLayout)return;const a=[];if(this.responseLayoutEditorFunction.getResonseFormLayoutConfig(i,a,1),l){const p=a.find(y=>y.id===l.id);Object.assign(p||{},l)}const s=a.map(p=>p.columnInSM),r=a.map(p=>p.columnInMD),d=a.map(p=>p.columnInLG),u=a.map(p=>p.columnInEL),f=this.checkIsUniqueColumn(s)?s[0]:null,c=this.checkIsUniqueColumn(r)?r[0]:null,v=this.checkIsUniqueColumn(d)?d[0]:null,m=this.checkIsUniqueColumn(u)?u[0]:null;Object.assign(i.unifiedLayout,{uniqueColClassInSM:f,uniqueColClassInMD:c,uniqueColClassInLG:v,uniqueColClassInEL:m})}checkIsUniqueColumn(e){const l=new Set(e);return Array.from(l).length===1}getItemCollectionEditor(e,l,i){return l=l||"value",i=i||"name",{editor:{columns:[{field:l,title:"值",dataType:"string"},{field:i,title:"名称",dataType:"string"}],type:"item-collection-editor",valueField:l,nameField:i,requiredFields:[l,i],uniqueFields:[l,i],readonly:this.checkEnumDataReadonly(e)}}}checkEnumDataReadonly(e){return!e.binding||e.binding.type!=="Form"?!1:!!(this.designViewModelField&&this.designViewModelField.type&&this.designViewModelField.type.$type===z.FormSchemaEntityFieldType$Type.EnumType)}appendFieldValueChangeEvents(e,l){e.binding&&e.binding.type===le.Form&&e.binding.field?(l.find(i=>i.label==="fieldValueChanging"),l.find(i=>i.label==="fieldValueChanged"),this.designViewModelField&&(e.fieldValueChanging=this.designViewModelField.valueChanging,e.fieldValueChanged=this.designViewModelField.valueChanged)):l=l.filter(i=>i.label!=="fieldValueChanging"&&i.label!=="fieldValueChanged")}getControlMethodType(e){if(!e.binding)return e.type;switch(e.binding.type){case le.Form:return e.binding.path||e.type;case le.Variable:return e.binding.fullPath||e.type}return e.type}getEventPropertyConfig(e,l="card",i,a){const s=this;let r=[...this.formGroupEvents];if(["time-picker","date-picker","lookup","combo-list","number-spinner","input-group"].includes(e.editor.type)&&r.push({lable:"onClear",name:"清空事件"}),i&&(r=r.concat(i)),r.length===0)return{title:"事件",hideTitle:!0,properties:{},tabId:"commands",tabName:"交互",hide:!0};this.appendFieldValueChangeEvents(e,r);const u=s.eventsEditorUtils.formProperties(e,s.viewModelId,r);return{title:"事件",hideTitle:!0,properties:s.createBaseEventProperty(u),tabId:"commands",tabName:"交互",setPropertyRelates(v,m){const p=v.propertyValue;delete e[s.viewModelId],p&&(p.setPropertyRelates=this.setPropertyRelates,p.controlInfo={type:s.getControlMethodType(e),name:e.title},s.eventsEditorUtils.saveRelatedParameters(e,s.viewModelId,p.events,p)),a&&a(v,m,p);const y=s.designViewModelUtils.getDgViewModel(s.viewModelId);y&&s.designViewModelField&&y.changeField(s.designViewModelField.id,{valueChanging:e.fieldValueChanging,valueChanged:e.fieldValueChanged})}}}getExpressionConfig(e,l,i=["compute","dependency","validate"],a){return new me(this.formSchemaUtils).getExpressionConfig(e,l,i,a)}getBindingDataType(){return this.designViewModelField?this.designViewModelField.type.name==="Number"?"number":this.designViewModelField.type.name==="String"?"string":"boolean":"boolean"}getEditor(){return this.getBindingDataType()==="number"?this.numberEditorOptions:{}}updatePropertyValue(e,l,i){var a;e.editor[l]!==i?e.editor[l]=i:(a=this.getFormDesignerInstance())==null||a.reloadPropertyPanel()}setBooleanValue(e,l,i){let a=i;this.getBindingDataType()==="string"&&(a=(a||"").trim()||(l==="trueValue"?"true":"false"));const r=l==="trueValue"?"falseValue":"trueValue";e.editor[r]===a&&(a=a+1),this.updatePropertyValue(e,l,a)}getBooleanValueConverter(){return{convertFrom:(e,l)=>e.editor[l],convertTo:(e,l,i)=>{this.setBooleanValue(e,l,i)}}}}class He extends ze{constructor(t,e){super(t,e)}getEditorProperties(t){const e=this;return e.getComponentConfig(t,{type:"radio-group"},{disabled:{visible:!1},placeholder:{visible:!1},direction:{description:"",title:"排列方向",type:"enum",editor:{data:[{id:"horizontal",name:"横向"},{id:"vertical",name:"纵向"}]}},dataSourceType:{description:"",title:"数据源类型",type:"enum",visible:!1,editor:{default:"static",data:[{id:"static",name:"静态"},{id:"dynamic",name:"动态"}]},refreshPanelAfterChanged:!0},data:{description:"",title:"数据",type:"array",visible:!t.editor.dataSourceType||t.editor.dataSourceType==="static",...e.getItemCollectionEditor(t,t.editor.valueField,t.editor.textField),refreshPanelAfterChanged:!0},bindDataSource:{description:"",title:"绑定数据源",type:"string",visible:t.editor.dataSourceType==="dynamic"},textField:{description:"",title:"文本字段",type:"string",readonly:t.editor.dataSourceType!=="dynamic"},valueField:{description:"",title:"值字段",type:"string",readonly:t.editor.dataSourceType!=="dynamic"}},this.setEditorPropertyRelates)}setEditorPropertyRelates(t,e,l){if(!t||!e.editor)return;const i=this;switch(t.propertyID){case"dataSourceType":{t.propertyValue==="static"&&(e.editor.valueField="value",e.editor.textField="name");break}case"data":{!i.checkEnumDataReadonly(e)&&e.formatter&&(e.formatter.data=[...t.propertyValue]);break}}}changeBindingField(t,e,l){var a;super.changeBindingField(t,e);const i=l;t.editor&&((a=i==null?void 0:i.type)==null?void 0:a.$type)===z.FormSchemaEntityFieldType$Type.EnumType&&(t.editor.data=i.type.enumValues||[])}}function je(n,t){const e=n.schema;function l(i,a){return new He(i,t).getPropertyConfig(e,a)}return{getPropsConfig:l}}const te=o.defineComponent({name:"FRadioGroupDesign",props:Ne,emits:["changeValue","update:modelValue"],setup(n,t){const e=o.ref(n.modelValue),{enumData:l,getValue:i,getText:a}=Oe(n,t,e),s=o.computed(()=>({"farris-checkradio-hor":n.direction==="horizontal"})),r=o.ref(),d=o.inject("designer-host-service"),u=o.inject("design-item-context"),f=je(u,d),c=b.useDesignerComponent(r,u,f);o.onMounted(()=>{r.value.componentInstance=c});const v=o.computed(()=>{if(!l.value||l.value.length===0){const m=[];return[{value:"example1",name:"示例一"},{value:"example2",name:"示例二"}].map(p=>{const y={};y[n.valueField]=p.value,y[n.textField]=p.name,m.push(y)}),m}return l.value});return t.expose(c.value),()=>o.createVNode("div",{class:["farris-input-wrap",s.value],ref:r},[v.value.map((m,p)=>{const y="radio_"+n.name+p;return o.createVNode("div",{class:"custom-control custom-radio"},[o.createVNode("input",{type:"radio",class:"custom-control-input",name:n.name,id:y,value:i(m),disabled:!0},null),o.createVNode("label",{class:"custom-control-label",for:y},[a(m)])])})])}}),qe={id:{type:String,default:""},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:{type:Number},tabIndex:Number,popupHost:{type:Object},popupRightBoundary:{type:Object},popupOffsetX:{type:Object},popupOnInput:{type:Boolean,default:!1},popupOnFocus:{type:Boolean,default:!1},popupOnClick:{type:Boolean,default:!1},popupClass:{type:String,default:""},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"},keepWidthWithReference:{type:Boolean,default:!0},placement:{type:String,default:"bottom-left"},limitContentBySpace:{type:Boolean,default:!1},beforeClosePopup:{type:Function,default:null},expandable:{type:Boolean,default:!1},expandMode:{type:String,default:"text"},expandContent:{type:String,default:""},expandDisabled:{type:Boolean,default:!1}},Ue={popupContentPosition:{type:Object,default:{left:0,top:0}},host:{type:Object},backgroundColor:{type:String,default:""}},We=o.defineComponent({name:"FOverlay",props:Ue,emits:["click"],setup(n,t){const e=o.ref(n.popupContentPosition),l=o.ref(n.host),i=o.computed(()=>({backgroundColor:n.backgroundColor||"",pointerEvents:"auto"}));function a(r){t.emit("click"),r.preventDefault(),r.stopPropagation()}o.computed(()=>{const r=l.value;if(r){const d=r.getBoundingClientRect(),{left:u,top:f,height:c}=d;return{left:u,top:f+c}}return e.value});const s=o.computed(()=>({}));return()=>o.createVNode(o.Teleport,{to:"body"},{default:()=>{var r,d;return[o.createVNode("div",{class:"overlay-container",onClick:u=>a(u),style:i.value},[o.createVNode("div",{style:s.value},[(d=(r=t.slots).default)==null?void 0:d.call(r)])])]}})}});function Ge(n){if(n.content&&n.content.render)return n.content.render;if(n.render&&typeof n.render=="function")return n.render}function Ke(n){const t=document.createElement("div");t.style.display="contents";let e;const l=n.onClickCallback||(()=>{}),i=()=>{l(),e&&e.unmount()};return e=o.createApp({setup(){o.onUnmounted(()=>{document.body.removeChild(t)});const a=Ge(n);return()=>o.createVNode(We,{"popup-content-position":n.popupPosition,host:n.host,onClick:i,backgroundColor:n.backgroundColor},{default:()=>[a&&a()]})}}),document.body.appendChild(t),e.mount(t),e}class Xe{static show(t){return Ke(t)}}const _e={allowClickMaskToClose:{type:Boolean,default:!1},beforeClose:{type:Function,default:()=>!0},class:{type:String,default:""},maskClass:{type:String,default:""},title:{type:String,default:""},width:{type:Number,default:500},height:{type:Number,default:320},buttons:{type:Array,default:[]},modelValue:{type:Boolean,default:!1},mask:{type:Boolean,default:!0},showHeader:{type:Boolean,default:!0},showButtons:{type:Boolean,default:!0},fitContent:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showFloatingClose:{type:Boolean,default:!1},showMaxButton:{type:Boolean,default:!1},minHeight:{type:Number},maxHeight:{type:Number},minWidth:{type:Number},maxWidth:{type:Number},containment:{type:Object,default:null},resizeable:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},dragHandle:{type:Object,default:null},closedCallback:{type:Function,default:null},resizeHandle:{type:Function,default:null},render:{type:Function,default:null},acceptCallback:{type:Function,default:null},rejectCallback:{type:Function,default:null},enableEsc:{type:Boolean,default:!0},enableEnter:{type:Boolean,default:!1},dialogType:{type:String,default:""},src:{type:String,default:""},footerHeight:{type:Number,default:60},position:{type:String,default:"center"},host:{type:Object,default:"body"},isMessager:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1}};class q{constructor(t,e){this.x=t,this.y=e}static getTransformInfo(t){const l=window.getComputedStyle(t).getPropertyValue("transform").replace(/[^-\d,]/g,"").split(",");if(l.length>=6){const i=parseInt(l[4],10),a=parseInt(l[5],10);return{x:i,y:a}}return{x:0,y:0}}static fromEvent(t,e=null){if(this.isMouseEvent(t))return new q(t.clientX,t.clientY);if(e===null||t.changedTouches.length===1)return new q(t.changedTouches[0].clientX,t.changedTouches[0].clientY);for(let l=0;l<t.changedTouches.length;l++)if(t.changedTouches[l].target===e)return new q(t.changedTouches[l].clientX,t.changedTouches[l].clientY)}static isMouseEvent(t){return Object.prototype.toString.apply(t).indexOf("MouseEvent")===8}static isIPosition(t){return!!t&&"x"in t&&"y"in t}static getCurrent(t){const e=new q(0,0);if(window){const l=window.getComputedStyle(t);if(l){const i=parseInt(l.getPropertyValue("left"),10),a=parseInt(l.getPropertyValue("top"),10);e.x=isNaN(i)?0:i,e.y=isNaN(a)?0:a}return e}return null}static copy(t){return new q(0,0).set(t)}get value(){return{x:this.x,y:this.y}}add(t){return this.x+=t.x,this.y+=t.y,this}subtract(t){return this.x-=t.x,this.y-=t.y,this}multiply(t){this.x*=t,this.y*=t}divide(t){this.x/=t,this.y/=t}reset(){return this.x=0,this.y=0,this}set(t){return this.x=t.x,this.y=t.y,this}}class J{constructor(t,e){this.width=t,this.height=e}static getCurrent(t){const e=new J(0,0);if(window){const l=window.getComputedStyle(t);return l&&(e.width=parseInt(l.getPropertyValue("width"),10),e.height=parseInt(l.getPropertyValue("height"),10)),e}return null}static copy(t){return new J(0,0).set(t)}set(t){return this.width=t.width,this.height=t.height,this}}function Ye(n,t){const e=o.ref(),l=o.ref(),i=o.ref(),a=o.ref(),s=o.ref(),r=o.ref(),d=o.ref(),u=o.ref(),f=o.ref(),c=o.ref(),v=o.ref(),m=o.ref(n.resizeable),p=o.ref(),y=o.ref(n.draggable),x=o.ref(!1);function F(){const w=l.value||document.body,E=window.getComputedStyle(w);if(!E||!e.value)return;const A=q.getTransformInfo(e.value),R={};d.value&&(R.deltaL=e.value.offsetLeft-d.value.x,R.deltaT=e.value.offsetTop-d.value.y);const G=E.getPropertyValue("position");R.width=w.clientWidth,R.height=w.clientHeight,R.pr=parseInt(E.getPropertyValue("padding-right"),10),R.pb=parseInt(E.getPropertyValue("padding-bottom"),10),R.position=E.getPropertyValue("position"),G==="static"&&(w.style.position="relative"),R.translateX=A.x,R.translateY=A.y,c.value=R}function C(w){if(e.value){a.value=J.getCurrent(e.value),s.value=q.getCurrent(e.value),r.value=a.value?J.copy(a.value):null,d.value=s.value?q.copy(s.value):null,F();const E=w.target.getAttribute("type")||"";u.value={n:!!E.match(/n/),s:!!E.match(/s/),w:!!E.match(/w/),e:!!E.match(/e/)}}}function B(){var w,E,A,R;if(e.value){const G=e.value;u.value&&((u.value.n||u.value.s)&&((w=r.value)!=null&&w.height)&&(G.style.height=r.value.height+"px"),(u.value.w||u.value.e)&&((E=r.value)!=null&&E.width)&&(G.style.width=r.value.width+"px"),d.value&&((A=d.value)!=null&&A.x&&(G.style.left=d.value.x+"px"),(R=d.value)!=null&&R.y&&(G.style.top=d.value.y+"px")))}}function N(){const w=n.minHeight?n.minHeight:1,E=n.minWidth?n.minWidth:1;r.value&&d.value&&u.value&&a.value&&(r.value.height<w&&(r.value.height=w,u.value.n&&s.value&&(d.value.y=s.value.y+(a.value.height-w))),r.value.width<E&&(r.value.width=E,u.value.w&&s.value&&(d.value.x=s.value.x+(a.value.width-E))),n.maxHeight&&r.value.height>n.maxHeight&&(r.value.height=n.maxHeight,s.value&&u.value.n&&(d.value.y=s.value.y+(a.value.height-n.maxHeight))),n.maxWidth&&r.value.width>n.maxWidth&&(r.value.width=n.maxWidth,u.value.w&&s.value&&(d.value.x=s.value.x+(a.value.width-n.maxWidth))))}function I(){if(l.value){const w=c.value;if(d.value&&r.value&&u.value&&a.value){const E=w.width-w.pr-w.deltaL-w.translateX-d.value.x,A=w.height-w.pb-w.deltaT-w.translateY-d.value.y;u.value.n&&d.value.y+w.translateY<0&&s.value&&(d.value.y=-w.translateY,r.value.height=a.value.height+s.value.y+w.translateY),u.value.w&&d.value.x+w.translateX<0&&s.value&&(d.value.x=-w.translateX,r.value.width=a.value.width+s.value.x+w.translateX),r.value.width>E&&(r.value.width=E),r.value.height>A&&(r.value.height=A)}}}function L(w){if(!i.value||!a.value||!s.value||!u.value)return;w.subtract(i.value);const E=w.x,A=w.y;u.value.n?(d.value.y=s.value.y+A,r.value.height=a.value.height-A):u.value.s&&(r.value.height=a.value.height+A),u.value.e?r.value.width=a.value.width+E:u.value.w&&(r.value.width=a.value.width-E,d.value.x=s.value.x+E),I(),N(),B()}function h(w){if(!f.value)return;const E=q.fromEvent(w);E&&L(E)}function V(){if(e.value){const{width:w,height:E,x:A,y:R}=e.value.getBoundingClientRect(),G=q.getTransformInfo(e.value);return{size:{width:w,height:E},position:{x:A-G.x,y:R-G.y}}}return null}function P(w){if(e.value){const E=V();v.value=E}i.value=void 0,a.value=null,s.value=null,r.value=null,d.value=null,u.value=null,f.value=null,document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",P)}function D(){document.addEventListener("mousemove",h),document.addEventListener("mouseup",P)}function M(w){w instanceof MouseEvent&&w.button===2||y.value&&(document.body.click(),w.stopPropagation(),w.preventDefault(),i.value=q.fromEvent(w),f.value=w.target,C(w),D())}function S(w){return e.value=w,m.value&&o.createVNode(o.Fragment,null,[o.createVNode("div",{class:"fv-resizable-handle fv-resizable-n",type:"n",onMousedown:E=>M(E)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-e",type:"e",onMousedown:E=>M(E)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-s",type:"s",onMousedown:E=>M(E)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-w",type:"w",onMousedown:E=>M(E)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-ne",type:"ne",onMousedown:E=>M(E)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-se fv-resizable-diagonal",type:"se",onMousedown:E=>M(E)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-sw",type:"sw",onMousedown:E=>M(E)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-nw",type:"nw",onMousedown:E=>M(E)},null)])}function H(w=!0){document.body.click();const E=l.value||document.body,A=J.getCurrent(E),R=e.value;w&&R&&(p.value=V(),p.value.transform=R.style.transform),A&&R&&(r.value=A,r.value.height-=14,r.value.width-=14,R.style.height=r.value.height+"px",R.style.width=r.value.width+"px",R.style.left="7px",R.style.top="7px",R.style.transform="",v.value={size:r.value,position:{x:0,y:0}},y.value=!1,x.value=!0)}function U(){var w,E;if(document.body.click(),p.value){const A={width:p.value.size.width||0,height:p.value.size.height||0},R={x:(window.innerWidth-A.width)/2,y:(window.innerHeight-A.height)/2};(w=r.value)==null||w.set(A),(E=d.value)==null||E.set(R);const G=e.value;G.style.height=A.height+"px",G.style.width=A.width+"px",G.style.left=`${R.x}px`,G.style.top=`${R.y}px`,G.style.transform="",v.value={size:A,position:R},y.value=n.draggable,x.value=!1}}function X(){if(e.value){const w=J.getCurrent(e.value);if(w){const{width:E,height:A}=w;e.value.style.left=`${(window.innerWidth-E)/2}px`,e.value.style.top=`${(window.innerHeight-A)/2}px`,e.value.style.transform=""}}}function O(){const w=()=>{x.value?H(!1):X(),document.body.click()};return window.addEventListener("resize",w),()=>{window.removeEventListener("resize",w)}}const W=O();return{renderResizeBar:S,boundingElement:l,resizedEventParam:v,maximize:H,restore:U,allowDrag:y,isMaximized:x,unWindowResizeHandle:W,moveToCenter:X}}function Je(n,t,e){const l=o.ref(),i=o.ref(n.draggable),a=o.ref(n.lockAxis),s=o.ref(),r=o.ref(),d=o.ref(!1),u=o.ref(new q(0,0)),f=o.ref(new q(0,0)),c=o.ref(new q(0,0)),v=o.ref(new q(0,0));o.watch(()=>e.value,h=>{s.value.style.cursor=h?"move":"default"});function m(h,V){if(V.tagName==="BUTTON")return!1;if(V===h)return!0;for(const P in V.children)if(Object.prototype.hasOwnProperty.call(V.children,P)&&m(h,V.children[P]))return!0;return!1}function p(){var D,M;let h=c.value.x+f.value.x,V=c.value.y+f.value.y;a.value==="x"?(h=((D=u.value)==null?void 0:D.x)||0,c.value.x=0):a.value==="y"&&(V=((M=u.value)==null?void 0:M.y)||0,c.value.y=0);const P=`translate3d(${Math.round(h)}px, ${Math.round(V)}px, 0px)`;l.value&&(l.value.style.transform=P),v.value.x=h,v.value.y=V}function y(){if(!r.value||!l.value)return null;const h=r.value.getBoundingClientRect(),V=l.value.getBoundingClientRect(),P={top:h.top<V.top,right:h.right>V.right,bottom:h.bottom>V.bottom,left:h.left<V.left};return P.top||(c.value.y-=V.top-h.top),P.bottom||(c.value.y-=V.bottom-h.bottom),P.right||(c.value.x-=V.right-h.right),P.left||(c.value.x-=V.left-h.left),p(),P}function x(h){h&&(u.value&&h.subtract(u.value),c.value.set(h),p(),y())}function F(h){d.value&&i.value&&(h.stopPropagation(),h.preventDefault(),x(q.fromEvent(h,s.value)))}function C(){var h;d.value&&(d.value=!1,f.value.add(c.value),c.value.reset(),(h=l.value)==null||h.classList.remove("ng-dragging"),t.emit("stopMove"),document.removeEventListener("mousemove",F),document.removeEventListener("mouseup",C))}function B(){!d.value&&s.value&&(d.value=!0,s.value.classList.add("ng-dragging"),document.addEventListener("mousemove",F),document.addEventListener("mouseup",C))}function N(){if(l.value){const h=q.getTransformInfo(l.value);f.value.set(h);return}f.value.reset()}function I(h){if(!e.value||h instanceof MouseEvent&&h.button===2)return;const V=h.target||h.srcElement;s.value!==void 0&&V&&!m(V,s.value)||i.value!==!1&&(document.body.click(),h.stopPropagation(),h.preventDefault(),u.value=q.fromEvent(h,l.value),N(),B())}function L(h,V,P){if(i.value&&V){if(h)s.value=h;else if(n.dragHandle){if(n.dragHandle instanceof HTMLElement)s.value=n.dragHandle;else if(typeof n.dragHandle=="string"){const D=V.querySelector(n.dragHandle);D&&(s.value=D)}}l.value=V,r.value=P,s.value?(s.value.classList.add("ng-draggable"),s.value.addEventListener("mousedown",I)):i.value=!1}}return{registerDraggle:L,resetTranslate:N}}function he(n,t){if(n){const e=l=>{l.key.toLowerCase()===n.toLowerCase()&&t({event:l,key:n})};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}}function Ze(n,t){const e=o.ref(n.enableEsc);let l=null;return e.value?(l=he("Escape",i=>{t.emit("esc",{event:i.event,type:"esc"})}),{remove:l}):null}function Qe(n,t){const e=o.ref(n.enableEnter);let l=null;return e.value?(l=he("Enter",i=>{t.emit("enter",{event:i.event,type:"enter"})}),{remove:l}):null}const ne=o.defineComponent({name:"FModal",props:_e,emits:["update:modelValue","accept","cancel","closed","resize","esc","enter","stopMove","buttonClick"],setup(n,t){const e=o.ref(n.width||300),l=o.ref(n.height||200),i=o.ref(n.modelValue),a=o.ref(""),s=o.ref(n.class),r=o.ref(n.fitContent),d=o.ref(n.showHeader),u=o.ref(""),f=o.ref(n.showCloseButton),c=o.ref(n.showMaxButton),v=o.ref(!1),m=o.ref(n.dialogType),p=o.ref(n.src),y=o.ref(""),x=o.ref(n.showButtons),F=o.ref(n.title),C=o.ref(n.containment||null),B=o.ref();F.value==="错误提示"&&(F.value=Y.LocaleService.getLocaleValue("messageBox.errorTitle"));const N=o.ref(!1);function I(g,T){const K=T?"accept":"cancel";Promise.resolve().then(()=>{var j;return(j=n.beforeClose)==null?void 0:j.call(n,{closeType:K})}).then(j=>{j&&(i.value=!1,t.emit("update:modelValue",!1),T!=null&&t.emit(T?"accept":"cancel"),t.emit("closed",g))})}const L=[{name:"cancel",text:Y.LocaleService.getLocaleValue("messageBox.cancel")||"取消",class:"btn btn-secondary",handle:g=>{I(g,!1)}},{name:"accept",text:Y.LocaleService.getLocaleValue("messageBox.ok")||"确定",class:"btn btn-primary",handle:g=>{I(g,!0)}}],h=o.ref(n.buttons&&n.buttons.length?n.buttons:L),V=o.computed(()=>!!u.value),P=o.computed(()=>!!x.value&&!!h.value),D=o.ref(),M=o.ref(),S=o.ref(!1),{renderResizeBar:H,maximize:U,restore:X,boundingElement:O,resizedEventParam:W,allowDrag:w,unWindowResizeHandle:E,moveToCenter:A}=Ye(n),{registerDraggle:R}=Je(n,t,w);function G(){return!!document.querySelectorAll(".farris-modal").length&&document.body.classList.contains("modal-open")}function Mt(){const g=document.querySelectorAll(".farris-modal").length;(!g||g-1<=0)&&document.body.classList.remove("modal-open"),B.value&&B.value.classList.remove("show")}o.watch(()=>n.title,(g,T)=>{g!==T&&(F.value=g)}),o.watch(()=>n.modelValue,(g,T)=>{g!==T&&(i.value=g,i.value&&n.draggable&&o.nextTick(()=>{M.value&&!C.value&&(C.value=M.value.parentElement,O.value=C.value,R(D.value,M.value,O.value),A())}),g||(C.value&&(C.value=null),Mt())),i.value?N.value=G():(S.value=!1,w.value=n.draggable)}),o.watch(()=>n.showHeader,(g,T)=>{g!==T&&(d.value=g)}),o.watch(()=>n.showButtons,(g,T)=>{g!==T&&(x.value=g)}),o.watch(()=>W.value,(g,T)=>{const K=g||{},j=T||{};JSON.stringify(K)!==JSON.stringify(j)&&t.emit("resize",{newSize:g,oldSize:T,isMaximized:S.value})}),o.watch([()=>n.width,()=>n.height],(g,T)=>{(g[0]!==T[0]||g[1]!==T[1])&&(e.value=g[0]||500,l.value=g[1]||600)}),o.watch(()=>n.class,(g,T)=>{s.value=g});const se=o.computed(()=>(i.value&&document.body.classList.add("modal-open"),i.value)),Et=o.computed(()=>{var K;const g={modal:!0,"farris-modal":!0,fade:!0,"fe-cmp-page-modal":!!n.showFloatingClose};g["f-modal-fitContent"]=!!r.value,g.show=!!se.value;const T=(K=n.maskClass)==null?void 0:K.split(" ");return T==null||T.reduce((j,Q)=>(j[Q]=!0,j),g),g}),Ft=o.computed(()=>{var K;const g={"modal-dialog":!0},T=(K=s.value)==null?void 0:K.split(" ");return T==null||T.reduce((j,Q)=>(j[Q]=!0,j),g),g}),It=()=>z.isMobilePhone()&&!n.isMessager||!!n.fullscreen,kt=o.computed(()=>{const g=document.documentElement.clientWidth,T=document.documentElement.clientHeight,K=Math.min(e.value,g),j=n.position==="right"?"100%":r.value?"auto":`${Math.min(l.value,T-10)}px`,Q=`${(window.innerHeight-(j==="100%"||j==="auto"?0:parseInt(j)))/2}px`,Gt=n.position==="right"?`${window.innerWidth-K}px`:`${(window.innerWidth-K)/2}px`,ke={position:"absolute",top:Q,left:Gt,width:`${K}px`,height:j};return n.mask||(ke.pointerEvents="auto"),ke}),Fe=o.ref(z.getMaxZIndex()||1050),Tt=o.computed(()=>{const g={display:"block",overflow:"hidden"};return n.mask||(g.pointerEvents="none",g.backgroundColor="transparent"),N.value&&(g.backgroundColor="transparent"),g.zIndex=Fe.value,g}),St=o.computed(()=>({"modal-content":!0,"modal-content-has-header":d.value,"is-mobile":It()})),Bt=o.computed(()=>{const g={display:d.value?"":"none"};return g["pointer-events"]=w.value?"auto":"none",g}),Pt=o.computed(()=>({"f-icon":!0,modal_maximize:!0,modalrevert:S.value})),Nt=o.computed(()=>({"modal-body":!0,"f-utils-flex-column":m.value==="iframe","f-utils-fill":!0}));function Ot(){return{height:`${n.footerHeight||60}px`}}const Rt=o.computed(()=>{const g={textAlgin:y.value},T=Ot();return Object.assign(g,T)});function Ie(g){if(g==null||g.stopPropagation(),S.value){S.value=!1,X();return}U(),S.value=!0}async function Dt(g,T){g.handle?await g.handle(T,g)&&t.emit("closed",T):(typeof g.onClick=="string"&&(g.onButtonClick=oe.cloneDeep(g.onClick||""),delete g.onClick),t.emit("buttonClick",{button:g,$event:T}))}function Lt(g){g.width&&(e.value=g.width),g.height&&(l.value=g.height),g.buttons&&(h.value=g.buttons),g.title&&(F.value=g.title)}let fe=null,pe=null;o.onBeforeMount(()=>{N.value=G()}),o.onMounted(()=>{M.value&&!C.value&&(C.value=M.value.parentElement,O.value=C.value,R(D.value,M.value,O.value)),se.value&&document.body.classList.add("modal-open"),fe=Ze(n,t),pe=Qe(n,t)}),o.onUnmounted(()=>{E&&E(),fe&&fe.remove(),pe&&pe.remove()}),t.expose({modalElementRef:M,updateModalOptions:Lt,close:I,maxDialog:Ie,isMaximized:S});function At(){return o.createVNode("div",{class:"action-wrapper",onClick:g=>I(g,!1)},[o.createVNode("span",{class:"close-icon"},[o.createVNode("i",{class:"f-icon f-icon-close"},null)])])}function $t(){return o.createVNode("ul",null,[v.value&&o.createVNode("li",{class:"f-btn-icon f-bare"},[o.createVNode("span",{class:"f-icon modal_minimize"},null)]),c.value&&o.createVNode("li",{onClick:Ie,class:"f-btn-icon f-bare",style:"pointer-events: auto;"},[o.createVNode("span",{class:Pt.value},null)]),f.value&&o.createVNode("li",{class:"f-btn-icon f-bare",onClick:g=>I(g,!1),style:"pointer-events: auto;"},[o.createVNode("span",{class:"f-icon modal_close"},null)])])}function zt(){return o.createVNode("div",{class:"modal-footer",style:Rt.value},[h.value&&h.value.map(g=>{var j;const T=o.ref(g.disabled),K=g.class||((j=g.appearance)==null?void 0:j.class);return o.createVNode("button",{name:g.name,type:"button",disabled:T.value,class:K+(g.iconClass?" btn-icontext":"")+(g.visible===!1?"d-none":""),onClick:Q=>{Dt(g,Q)}},[!!g.iconClass&&o.createVNode("i",{class:g.iconClass},null),g.text])})])}function Ht(){return o.createVNode("div",{ref:D,class:"modal-header",style:Bt.value},[t.slots.headerTemplate?t.slots.headerTemplate():o.createVNode("div",{class:"modal-title"},[V.value&&o.createVNode("span",{class:u.value,style:"margin-right: 8px"},null),o.createVNode("span",{class:"modal-title-label"},[F.value])]),o.createVNode("div",{class:"actions"},[$t()])])}function jt(){return t.slots.footerTemplate?t.slots.footerTemplate():P.value&&zt()}function qt(g){if(g.stopPropagation(),n.allowClickMaskToClose){if(g.target!==B.value)return;I(g,!1)}}function Ut(){var g,T;return o.createVNode("div",{id:a.value,class:Ft.value,style:kt.value,ref:M},[n.showFloatingClose&&At(),o.createVNode("div",{class:St.value},[d.value&&Ht(),o.createVNode("div",{class:Nt.value},[(T=(g=t.slots).default)==null?void 0:T.call(g),m.value==="iframe"&&o.createVNode("iframe",{title:a.value,class:"f-utils-fill",width:"100%",frameborder:"0",src:p.value},null)]),jt()]),!r.value&&M.value&&!S.value&&H(M.value)])}function Wt(g){return g||"body"}return o.watchEffect(()=>{se.value&&(Fe.value=z.getMaxZIndex()||1050)}),()=>o.createVNode(o.Teleport,{to:Wt(n.host)},{default:()=>[se.value&&o.createVNode(o.Transition,{name:"fade",appear:!0},{default:()=>[o.createVNode("div",{ref:B,class:Et.value,style:Tt.value,onClick:qt},[Ut()])]})]})}});function ge(n){if(n.content&&n.content.render)return n.content.render;if(n.render&&typeof n.render=="function")return n.render}function et(n){const t=document.createElement("div");t.style.display="contents";const e=o.createApp({setup(l,i){o.onUnmounted(()=>{document.body.removeChild(t)});const a=o.ref(),s=o.ref(n.class||""),r=o.ref(!!n.showButtons),d=o.ref(!!n.showHeader),u=o.ref(n.showCloseButton==null?!0:n.showCloseButton),f=o.ref(!!n.showFloatingClose),c=o.ref(!0),v=o.ref(n.title||""),m=n.acceptCallback||(()=>{}),p=n.rejectCallback||(()=>{}),y=n.closedCallback||(N=>{}),x=n.resizeHandle||(N=>{}),F=n.stopMoveHandle||(N=>{}),C=ge(n),B=N=>{c.value=!1,e.unmount(),y(N)};return o.onMounted(()=>{}),i.expose({modalRef:a}),()=>o.createVNode(ne,{ref:a,class:s.value,modelValue:c.value,"onUpdate:modelValue":N=>c.value=N,title:v.value,width:n.width,height:n.height,buttons:n.buttons,"show-header":d.value,"show-buttons":r.value,"show-close-button":u.value,"show-max-button":!1,showFloatingClose:f.value,onAccept:m,onCancel:p,fitContent:n.fitContent==null?!0:n.fitContent,onClosed:B,onResize:x,onStopMove:F},{default:()=>[C&&C(e)]})}});return document.body.appendChild(t),e.use(Y.LocaleService.i18n),e.mount(t),e}class tt{constructor(t){k(this,"appContext",null);k(this,"modalRef",o.ref());k(this,"activeModalIndex",o.ref(0));k(this,"modalRefs",{});k(this,"isUseEscCloseModal",o.ref(!1));k(this,"activeModalInstance",o.computed(()=>this.modalRefs[this.activeModalIndex.value]));this.app=t,this.appContext=t?t._context:null}getCurrentModal(){return this.activeModalInstance.value}adaptToWindow(t,e){const{width:l,height:i}={width:window.innerWidth,height:window.innerHeight};return l<t&&(t=l-14),i<e&&(e=i-14),{width:t,height:e}}static show(t){const e=Object.assign({title:"",showButtons:!0,showHeader:!0},t);return et(e)}close(t){var e,l;t?(l=t.value)==null||l.close():(e=this.getCurrentModal())==null||e.close()}open(t){const e=document.createDocumentFragment();t.showMaxButton&&t.fitContent&&(t.showMaxButton=!1);const l=o.shallowRef(Object.assign({title:"",showButtons:!0,showHeader:!0},t)),i=o.ref(!0),a=l.value.acceptCallback||(()=>{}),s=l.value.rejectCallback||(()=>{}),r=l.value.closedCallback||((I,L)=>{}),d=l.value.resizeHandle||(I=>{}),u=t.stopMoveHandle||(I=>{});let f;const c=ge(l.value),v=I=>{var h;i.value=!1;const L=(h=I==null?void 0:I.target)==null?void 0:h.classList.contains("modal_close");r(I,this.isUseEscCloseModal.value?"esc":L?"icon":"button")},m=I=>{v(I),f&&o.nextTick(()=>{if(this.modalRefs[this.activeModalIndex.value]&&delete this.modalRefs[this.activeModalIndex.value],o.render(null,e),f=null,this.modalRef.value=null,this.modalRefs){const L=Object.keys(this.modalRefs).map(h=>Number(h));L.length>0?this.activeModalIndex.value=Math.max(...L):this.activeModalIndex.value=0}this.isUseEscCloseModal.value=!1})},p=I=>{var L;this.isUseEscCloseModal.value=!0,this.activeModalInstance&&((L=this.activeModalInstance.value)==null||L.close(I==null?void 0:I.event))},{width:y,height:x}=l.value,F=this.adaptToWindow(y||500,x||320);Object.assign(l.value,F);const C=()=>o.createVNode(ne,o.mergeProps({ref:this.modalRef,modelValue:i.value,"onUpdate:modelValue":I=>i.value=I},l.value,{isMessager:l.value.class&&l.value.class.indexOf("modal-message")>-1,onAccept:a,onCancel:s,onClosed:m,onResize:d,onEsc:p,onStopMove:u}),{default:()=>[c&&c(this.app)]});return f=(I=>{const L=o.h(C,I);return L.appContext=this.appContext,o.render(L,e),L})({...l.value}),this.activeModalIndex.value++,this.modalRefs[this.activeModalIndex.value]=this.modalRef.value,{update:I=>{l.value={...l.value,...I},f&&o.render(o.cloneVNode(f,{...l}),e)},destroy:m,modalRef:this.activeModalInstance,close:()=>this.close()}}}const ye=Symbol("FModalService");ne.install=n=>{n.component(ne.name,ne);const t=new tt(n);n.provide(ye,t),n.provide("FModalService",t)};function be(n,t){function e(){const l=n.beforeOpen||n.beforeClickButton||null;let i=Promise.resolve(!0);if(l){const a=l(t.value);if(typeof a>"u")return i;typeof a=="boolean"?i=Promise.resolve(a):i=a}return i}return{judgeCanOpen:e}}function nt(n,t,e,l,i){const a=o.ref(n.buttonBehavior),s=o.ref(n.popupOnInput),r=o.computed(()=>({"input-group-append":!0,"append-force-show":n.showButtonWhenDisabled&&(n.readonly||n.disable)})),{judgeCanOpen:d}=be(n,i),u=o.computed(()=>n.showButtonWhenDisabled||(!n.editable||!n.readonly)&&!n.disable),f=o.inject(ye,null),c=o.ref();async function v(y){if(await d()&&u.value){const x=!!t.slots.default;if(a.value==="Modal"){const F=n.modalOptions,C=f==null?void 0:f.open({...F,render:()=>t.slots.default&&t.slots.default()});c.value=C==null?void 0:C.modalRef}a.value==="Overlay"&&Xe.show({host:document.body,backgroundColor:"rgba(0,0,0,.15)",render:()=>t.slots.default&&t.slots.default()}),x&&a.value==="Popup"&&l.togglePopup(!0),x&&s.value&&l.hidePopup(),t.emit("clickButton",{origin:y,value:n.modelValue})}}function m(y){t.emit("mouseEnterIcon",y)}function p(y){t.emit("mouseLeaveIcon",y)}return{buttonGroupClass:r,onClickButton:v,onMouseEnterButton:m,onMouseLeaveButton:p,modalRef:c}}function ot(n,t,e,l,i,a){const s=o.ref(!1),r=o.computed(()=>n.enableClear&&!n.readonly&&!n.disable),{changeTextBoxValue:d,hasClearClass:u}=a;function f(p){s.value=p,u.value=p}o.watch(i,()=>{f(!!i.value)});function c(p){const y=!n.readonly&&!n.disable&&n.editable,x=!n.editable;p.stopPropagation(),(y||x)&&(d(""),i.value="",f(!s.value),t.emit("clear"))}function v(p){if(r.value){if(!e.value){f(!1);return}!n.disable&&!n.readonly&&f(!0)}}function m(p){r.value&&f(!1)}return{enableClearButton:r,showClearButton:s,onClearValue:c,onMouseEnterTextBox:v,onMouseLeaveTextBox:m}}function it(n,t,e,l,i){const a=o.computed(()=>n.popupOnInput),s=o.computed(()=>n.popupOnFocus),{shouldPopupContent:r,closeAllPopover:d}=i,u=o.ref(!1),f=o.computed(()=>n.enableTitle?e.value:""),c=o.computed(()=>(n.disable||n.readonly)&&!n.forcePlaceholder?"":n.placeholder),v=o.computed(()=>n.readonly||!n.editable),m=o.ref(!1),p=o.computed(()=>!n.disable&&m.value),y=o.computed(()=>({"text-left":n.textAlign==="left","text-center":n.textAlign==="center","text-right":n.textAlign==="right","form-control":!0,"f-utils-fill":!0})),x=o.computed(()=>({"input-group":!0,"f-state-disabled":n.disable,"f-state-editable":n.editable&&!n.disable&&!n.readonly,"f-state-readonly":n.readonly,"f-state-focus":p.value,"input-group--has-clear":n.enableClear&&u.value}));function F(M,S=!0){e.value=M,S&&(t.emit("change",M),t.emit("update:modelValue",M))}function C(M){r.value=!1,F(M,!0)}o.watch(()=>n.modelValue,M=>{e.value=M});function B(M){m.value=!1,t.emit("blur",M),M.stopPropagation()}function N(M){t.emit("click",M),d(),t.slots.default&&!n.disable&&!n.readonly&&n.popupOnClick&&i.togglePopup()}function I(M){!n.disable&&!n.readonly&&(m.value=!0,v.value||(t.emit("focus",M),s.value&&!r.value&&i.popup()))}function L(M){t.emit("input",M);const S=M.target.value;l.value=S,e.value!==S&&F(S,n.updateOn==="change"),a.value&&!r.value&&i.popup()}function h(M){M.target.tagName!=="INPUT"&&M.preventDefault(),M.stopPropagation()}function V(M){t.emit("keydown",M)}function P(M){M.key==="Enter"&&(a.value||s.value)&&i.hidePopup(),t.emit("keyup",M)}function D(M){const S=M.target.value;M.stopPropagation(),F(S)}return{hasFocusedTextBox:p,isTextBoxReadonly:v,textBoxClass:y,textBoxPlaceholder:c,textBoxTitle:f,inputGroupClass:x,hasClearClass:u,changeTextBoxValue:F,commitValue:C,onBlurTextBox:B,onClickTextBox:N,onFocusTextBox:I,onInput:L,onKeyDownTextBox:V,onKeyUpTextBox:P,onMouseDownTextBox:h,onTextBoxValueChange:D}}const Z="FarrisVue_PopoverInstancesKey";function lt(n,t,e,l){const i=o.ref(),a=o.ref(!1),{judgeCanOpen:s}=be(n,l);o.watch(()=>i.value,(m,p)=>{window[Z]=window[Z]||new WeakMap,m?window[Z].set(e.value,m):window[Z].delete(e.value)});function r(){if(window[Z]){const m=window[Z];document.querySelectorAll(".f-button-edit,.v-popover").forEach(p=>{const y=m.get(p);y&&p!==e.value&&!e.value.closest(".popover-fitcontent")&&y.hide()})}}function d(){const m=i.value;m&&m.show(e.value)}async function u(m=!1){if(!!t.slots.default){if(!m&&!a.value&&!await s())return;a.value=!a.value,a.value&&(await o.nextTick(),d())}}async function f(m=!1){if(!!t.slots.default){if(!m&&!await s())return;a.value=!0,await o.nextTick(),d()}}function c(){a.value=!1}function v(){a.value=!0,o.nextTick(()=>{d()})}return{hidePopup:c,showPopup:v,popup:f,shouldPopupContent:a,togglePopup:u,popoverRef:i,closeAllPopover:r}}function at(n,t,e){const l=o.ref(),{isTextBoxReadonly:i,textBoxClass:a,textBoxPlaceholder:s,textBoxTitle:r,onBlurTextBox:d,onClickTextBox:u,onFocusTextBox:f,onInput:c,onKeyDownTextBox:v,onKeyUpTextBox:m,onMouseDownTextBox:p,onTextBoxValueChange:y}=e,x=o.ref(n.id),{uuid:F}=z.useGuid(),C=o.computed(()=>({}));o.onMounted(()=>{var h,V;n.selectOnCreated&&((h=l.value)==null||h.select()),n.focusOnCreated&&((V=l.value)==null||V.focus({preventScroll:!0})),x.value||(x.value="button-edit_"+F(8)),x.value=x.value+"-textbox"});const B=o.ref(!1),N=h=>{h.preventDefault(),B.value=!0},I=h=>{h.preventDefault(),B.value=!1,c(h)};function L(h){B.value||c(h)}return()=>o.createVNode("input",{id:n.id?n.id+"-textbox":void 0,ref:l,name:"input-group-value",autocomplete:n.autoComplete?"on":"off",class:a.value,style:C.value,disabled:n.disable,maxlength:n.maxLength,minlength:n.minLength,placeholder:s.value,readonly:i.value,tabindex:n.tabIndex,title:r.value,type:n.inputType,value:t.value,onBlur:d,onChange:y,onClick:u,onFocus:f,onInput:L,onKeydown:v,onKeyup:m,onMousedown:p,onCompositionend:I,onCompositionstart:N},null)}function st(n,t,e){const l=o.ref(n.separator),i=o.computed(()=>n.readonly||n.disable),{changeTextBoxValue:a,onFocusTextBox:s,onBlurTextBox:r,onClickTextBox:d,textBoxPlaceholder:u}=e,f=o.computed(()=>t.value?t.value.split(l.value).map(p=>({name:p,selectable:!0})):[]);function c(p){a(p.map(y=>y.name).join(l.value),!0)}o.watch(()=>n.separator,p=>{l.value=p});const v=o.ref(!n.disable&&!n.readonly);o.watch([()=>n.disable,()=>n.readonly],([p,y],[x,F])=>{v.value=!p&&!y});function m(p){d(p)}return()=>o.createVNode(Te,{tabindex:n.tabIndex,onFocus:s,onBlur:r,id:`${n.id}-tag-editor`,class:"form-control",placeholder:u.value,data:f.value,showClose:!i.value,showInput:!0,disable:i.value,onChange:c,onClick:m},null)}function rt(n,t,e,l){const{buttonGroupClass:i,onClickButton:a,onMouseEnterButton:s,onMouseLeaveButton:r}=e,{enableClearButton:d,showClearButton:u,onClearValue:f}=l,c=o.ref(),v=oe.debounce(x=>{a(x)},n.buttonBehavior==="Modal"?0:200),m=()=>{t.emit("beforeClearValue")},p=o.computed(()=>({"input-group-append input-append-wrapper":!0,"input-append-button":n.expandMode==="button","input-append-text":n.expandMode==="text","d-none":!!n.expandDisabled})),y=()=>{t.emit("expandClick")};return{renderButtonGroup:()=>o.createVNode("div",{id:n.id?`${n.id}-button-group`:void 0,class:i.value},[d.value&&o.withDirectives(o.createVNode("span",{class:"input-group-text input-group-clear",onClick:f,onMousedown:m},[o.createVNode("i",{class:"f-icon modal_close"},null)]),[[o.vShow,u.value]]),t.slots.buttonContent?o.createVNode("span",{class:"input-group-text input-group-append-button",onClick:v,onMouseenter:s,onMouseleave:r},[t.slots.buttonContent()]):n.buttonContent?o.createVNode("span",{class:"input-group-text input-group-append-button",innerHTML:n.buttonContent,ref:c,onClick:x=>v(x),onMouseenter:s,onMouseleave:r},null):null,n.expandable&&o.createVNode("div",{class:p.value,onClick:y},[o.createVNode("div",{class:"input-group-text"},[n.expandContent])])]),buttonHandleElement:c}}function dt(n,t,e){const l=o.ref(n.popupMinWidth),{hidePopup:i,popoverRef:a}=e,s=()=>{t.emit("shown")};return()=>o.createVNode(Se,{id:`${n.id}-popover`,ref:a,placement:n.placement,host:n.popupHost,"keep-width-with-reference":n.keepWidthWithReference,fitContent:!0,"right-boundary":n.popupRightBoundary,minWidth:l.value,class:n.popupClass,offsetX:n.popupOffsetX,onHidden:i,onShown:s,beforeClose:n.beforeClosePopup,limitContentBySpace:n.limitContentBySpace},{default:()=>{var r,d;return[(d=(r=t.slots).default)==null?void 0:d.call(r)]}})}const ct=o.defineComponent({name:"FButtonEdit",props:qe,emits:["updateExtendInfo","clear","change","click","clickButton","blur","focus","mouseEnterIcon","mouseLeaveIcon","keyup","keydown","inputClick","input","update:modelValue","beforeClearValue","expandClick"],setup(n,t){const e=o.ref(),l=o.ref(n.customClass),i=o.ref(n.modelValue),a=lt(n,t,e,i),{shouldPopupContent:s,hidePopup:r,showPopup:d,togglePopup:u}=a,f=nt(n,t,e,a,i),c=o.ref(""),v=it(n,t,i,c,a),{hasFocusedTextBox:m,commitValue:p,inputGroupClass:y}=v,x=ot(n,t,i,m,c,v),{onMouseEnterTextBox:F,onMouseLeaveTextBox:C}=x,B=o.ref(!1),N=o.computed(()=>{const O={"f-button-edit":!0,"f-cmp-inputgroup":!0,"f-button-edit-nowrap":!n.wrapText};return l.value&&l.value.split(" ").reduce((W,w)=>(W[w]=!0,W),O),O}),I=o.computed(()=>({overflow:n.wrapText?"hidden":""})),L=o.computed(()=>({}));function h(){if(!n.multiSelect||n.inputType!=="tag"||!e.value)return 0;let O=0;const W=Array.from(e.value.querySelectorAll(".farris-tag-item"));return W&&W.length&&(O=W.map(w=>w.offsetTop).filter(w=>w>20).length),O}const V=o.ref(h());o.onUpdated(()=>{V.value=h()});function P(){return n.multiSelect&&n.inputType==="tag"?()=>o.createVNode(o.Fragment,null,[st(n,i,v)(),!!V.value&&o.createVNode("div",{class:"d-flex flex-row mr-2 more-tags","more-tags":!0},[o.createVNode("span",{class:"multi--more-text"},[o.createTextVNode("+"),V.value])])]):at(n,i,v)}let D=P();o.watch([()=>n.multiSelect,()=>n.inputType],()=>{D=P()});const{renderButtonGroup:M,buttonHandleElement:S}=rt(n,t,f,x),H=dt(n,t,a),U=o.ref(s.value),X={displayText:c,commitValue:p,elementRef:e,hidePopup:r,showPopup:d,popoverRef:a.popoverRef,shouldPopupContent:s,togglePopup:u,openDialog:()=>{S.value&&n.buttonBehavior==="Modal"&&S.value.click()},getModal:()=>{var O;return n.buttonBehavior==="Modal"?(O=f.modalRef.value)==null?void 0:O.value:null},getTextbox:()=>{var O;return(O=e.value)==null?void 0:O.querySelector("input")},forceClosePopup:()=>{U.value=!1,B.value=!0,s.value=!1}};return o.onMounted(()=>{e.value.componentInstance=X,window.onresize=()=>{document.body.click()}}),o.onBeforeUnmount(()=>{var O;window.onresize=null,(O=window[Z])==null||O.delete(e.value)}),t.expose(X),o.watch(()=>s.value,async(O,W)=>{if(B.value){U.value=O,B.value=!1;return}if(!O&&n.beforeClosePopup&&typeof n.beforeClosePopup=="function"){try{const w=await n.beforeClosePopup();U.value=!w,(!w||n.readonly)&&(s.value=!0)}catch(w){console.error("Error in beforeClosePopup:",w),U.value=W,s.value=W}return}U.value=O}),()=>{var O,W;return o.createVNode(o.Fragment,null,[o.createVNode("div",o.mergeProps(t.attrs,{ref:e,class:N.value,id:n.id?n.id:void 0,style:I.value}),[o.createVNode("div",{id:n.id?`${n.id}-input-group`:void 0,class:y.value,style:L.value,onMouseenter:F,onMouseleave:C},[(W=(O=t.slots).precontent)==null?void 0:W.call(O),D(),M()])]),U.value&&H()])}}});function ve(n,t,e){return t}function Ce(n,t,e){return t}const we=new Map([["appearance",_.resolveAppearance]]),xe=new Map([]),Ve={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/radio-group.schema.json",title:"item-collection-editor",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a item-collection-editor",type:"string"},type:{description:"The type string of item-collection-editor component",type:"string",default:"item-collection-editor"},requiredFields:{description:"",type:"array",default:[]},uniqueFields:{description:"",type:"array",default:[]},dynamicMappingKeys:{type:"boolean",default:!1},columns:{description:"",type:"array",default:[]},modalTitle:{description:"",type:"string",default:""},canEmpty:{description:"",type:"boolean",default:!0},valueField:{description:"",type:"string",default:"value"},nameField:{description:"",type:"string",default:"name"},idField:{description:"",type:"string",default:"value"},readonly:{description:"",type:"boolean",default:!1},modelValue:{description:"",type:"string",default:""},beforeSubmit:{description:"",type:"object",default:null},title:{description:"",type:"string",default:"项编辑器"},modalWidth:{description:"",type:"number",default:900},modalHeight:{description:"",type:"number",default:600}},required:["id","type"],ignore:[]},de={requiredFields:{type:Array,default:[]},uniqueFields:{type:Array,default:[]},dynamicMappingKeys:{type:Boolean,default:!1},columns:{type:Array,default:[]},modalTitle:{type:String,default:"项编辑器"},canEmpty:{type:Boolean,default:!0},valueField:{type:String,default:"value"},nameField:{type:String,default:"name"},idField:{type:String,default:"value"},readonly:{type:Boolean,default:!1},modelValue:{type:Array,default:[]},beforeSubmit:{type:Function,default:null},title:{type:String,default:"项编辑器"},modalWidth:{type:Number,default:900},modalHeight:{type:Number,default:600}};_.createPropsResolver(de,Ve,xe,Ce);const ut=_.getPropsResolverGenerator(de,Ve,xe,Ce),ft={requiredFields:{type:Array,default:[]},uniqueFields:{type:Array,default:[]},dynamicMappingKeys:{type:Boolean,default:!1},columns:{type:Array,default:[]},canEmpty:{type:Boolean,default:!0},valueField:{type:String,default:"value"},nameField:{type:String,default:"value"},datas:{type:Array,default:[]},readonly:{type:Boolean,default:!1},commandOption:{type:Object,default:{enable:!1}}},pt=o.defineComponent({name:"FItemCollectionEditorInner",props:ft,emits:["change"],setup(n,t){let e="";const{guid:l}=z.useGuid(),i=new Pe.FNotifyService,a=o.ref(n.valueField),s=o.ref(n.nameField),r={editMode:"cell"},d={fitColumns:!0},u=o.ref(),f=n.columns;let c=n.datas;o.watch(()=>[n.datas],()=>{c=n.datas,u.value.updateDataSource(c)});function v(){const h={};return f.forEach(V=>{V.editor&&(V.editor.type==="checkbox"||V.editor.type==="switch")?h[V.field]=!1:h[V.field]=""}),h}function m(){if(n.dynamicMappingKeys){const h="请先填写XXX。",V=a.value.trim()?s.value.trim()?"":"枚举名称字段":"枚举值字段";return i.warning({position:"top-center",message:h.replace("XXX",V)}),!1}return!0}function p(h){const V="不允许重复。";if(!m())return!1;if(!h||h.length===0)return n.canEmpty?!0:(i.warning({position:"top-center",message:"请添加值。"}),!1);const P=n.requiredFields||[],D="不允许为空。";for(const S of h)for(const H of Object.keys(S)){const U=f.find(X=>X.field===H);if(U&&U.editor&&(U.editor.type==="checkbox"||U.editor.type==="switch")){if(P.includes(H)&&(S[H]===null||S[H]===void 0))return i.warning({position:"top-center",message:U.title+D}),!1}else if(P.includes(H)&&(S[H]===void 0||S[H]===""||S[H]===null))return i.warning({position:"top-center",message:U.title+D}),!1}const M=n.uniqueFields||[];for(const S of M){const H=h.map(O=>O[S]),U=new Set(H),X=Array.from(U);if(H.length!==X.length){const O=f.find(W=>W.field===S);return i.warning({position:"top-center",message:O.title+V}),!1}}return!0}function y(){if(n.readonly||!m())return;const h=v(),V=l();c.push({hId:V,...h}),u.value.updateDataSource(c),u.value.selectRowById(V)}function x(h){c&&c.length>0?(h||(h=c[0].hId),u.value.selectRowById(h)):e=""}function F(){if(!e){i.warning({position:"top-center",message:"请先选中行!"});return}const h=c.findIndex(D=>D.hId===e);c=[...c.filter(D=>D.hId!==e)],u.value.updateDataSource(c);let P="";h<c.length&&c.length>0&&(P=c[h].hId),x(P)}function C(h){if(!h||h.length===0)return h;const V=[];return h.forEach(P=>{const{value:D,name:M,...S}=P,H=Object.assign({},S);H[a.value.trim()]=D,H[s.value.trim()]=M,V.push(H)}),V}function B(){u.value.endEditCell();const h=[];return c.forEach(V=>{const{hId:P,...D}=V,M={};for(const S in D)S.startsWith("_")||(M[S]=D[S]);h.push(M)}),h}function N(){let h=B();return p(h)?(n.dynamicMappingKeys?(h=C(h),t.emit("change",h,void 0,{valueField:a.value.trim(),nameField:s.value.trim()})):t.emit("change",h,void 0,null),!0):!1}function I(){return c}t.expose({clickConfirm:N,getItems:B,getDataGridDatas:I}),o.onMounted(()=>{x()});function L(h){var V;e=(V=h[0])==null?void 0:V.hId}return()=>o.createVNode("div",{class:"f-utils-fill-flex-column h-100"},[!n.readonly&&o.createVNode("div",{class:"mb-1 py-1 ml-1"},[o.createVNode("button",{class:"btn f-rt-btn f-btn-ml btn-primary",onClick:()=>y()},[o.createTextVNode("新增")]),o.createVNode("button",{class:"btn f-rt-btn f-btn-ml btn-secondary",onClick:()=>F()},[o.createTextVNode("删除")])]),o.createVNode("div",{class:"f-utils-fill border",style:"margin:0 8px;border-radius:12px;"},[o.createVNode(Be,{ref:u,showBorder:!0,idField:"hId",columns:f,data:c,editable:!n.readonly,"edit-option":r,columnOption:d,commandOption:n.commandOption,fit:!0,onSelectionChange:L},null)])])}}),mt={showCloseButton:{type:Boolean,default:!0},position:{type:String,default:"top-center"},timeout:{type:Number,default:3e3},theme:{type:String,default:"bootstrap"},left:{type:Number},right:{type:Number},top:{type:Number},bottom:{type:Number},id:{type:String},animate:{type:String,default:"fadeIn"},options:{type:Object},safeHtml:{type:Boolean,default:!0}},ht={showCloseButton:{type:Boolean,default:!0},animate:{type:String,default:"fadeIn"},options:{type:Object}},ce=o.defineComponent({name:"Toast",props:ht,emits:["close","click"],setup:(n,t)=>{const e=o.ref(n.animate),l="fadeOut",i=o.computed(()=>n.options),a=o.ref(!1),s=o.computed(()=>i.value.title&&i.value.message),r=o.computed(()=>!i.value.title&&i.value.message),d=o.computed(()=>{const C={animated:a.value,toast:!0,"toast--only-content":!s.value};return C[n.animate]=!1,C[l]=a.value,C["toasty-type-"+i.value.type]=!0,i.value.theme&&(C[i.value.theme]=!0),C}),u=o.computed(()=>{const N=`f-icon-${i.value&&i.value.type?i.value.type.replace("toasty-type-",""):"default"}`,I={"f-icon":!0};return I[N]=!0,I}),f=o.computed(()=>i.value.title||i.value.message),c=o.computed(()=>n.showCloseButton),v=o.computed(()=>!!i.value.buttons||!!t.slots.default),m=o.computed(()=>Y.LocaleService.getLocale()==="en"?{wordBreak:"keep-all",overflowWrap:"break-word"}:{});function p(C){C.stopPropagation(),C.preventDefault(),a.value=!1,setTimeout(()=>{t.emit("close",i.value)},200)}function y(C,B){}function x(C){return`f-preten-link ${C.customClass?C.customClass:""}`}o.watch(e,()=>{e.value});const F=()=>{var C;return o.createVNode(o.Fragment,null,[o.createVNode("div",{class:"after-toast-msg text-right"},[!t.slots.default&&((C=i.value.buttons)==null?void 0:C.map(B=>o.createVNode("span",{class:x(B),onClick:N=>void 0},[B.text]))),t.slots.default&&t.slots.default()])])};return()=>o.createVNode("div",{class:d.value,style:"min-height:44px"},[c.value&&o.createVNode("button",{title:Y.LocaleService.getLocaleValue("messageBox.close"),class:"toast-close f-btn-icon f-bare",onClick:p},[o.createVNode("span",{class:"f-icon modal_close"},null)]),f.value&&o.createVNode("section",{class:"modal-tips"},[!s.value&&o.createVNode("div",{class:"float-left modal-tips-iconwrap"},[o.createVNode("span",{class:u.value},null)]),o.createVNode("div",{class:"modal-tips-content"},[s.value&&o.createVNode(o.Fragment,null,[o.createVNode("h5",{class:"toast-title modal-tips-title",innerHTML:i.value.title},null),o.createVNode("p",{class:"toast-msg",innerHTML:i.value.message,style:m.value},null),v.value&&F()]),r.value&&(i.value.buttons?o.createVNode("div",{class:"toast-title-btns-wrapper d-flex"},[o.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:m.value,innerHTML:i.value.message},null),o.createVNode("div",{class:"after-toast-title text-right ml-auto"},[F()])]):o.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:m.value,innerHTML:i.value.message},null))])])])}}),gt=["moz","ms","webkit"];function yt(){let n=0;return t=>{const e=new Date().getTime(),l=Math.max(0,16-(e-n)),i=setTimeout(()=>{t(e+l)},l);return n=e+l,i}}function bt(){if(typeof window>"u")return()=>0;if(window.requestAnimationFrame)return window.requestAnimationFrame.bind(window);const n=gt.filter(t=>`${t}RequestAnimationFrame`in window)[0];return n?window[`${n}RequestAnimationFrame`]:yt()}bt();function vt(){const n=navigator.userAgent||navigator.vendor||window.opera,t=[/iPhone/i,/iPod/i,/Android.*Mobile/i,/webOS/i,/BlackBerry/i,/IEMobile/i,/Opera Mini/i,/Harmony/i],e=[/iPad/i,/Android(?!.*Mobile)/i,/Tablet/i,/PlayBook/i,/Kindle/i,/Silk/i];for(const r of e)if(r.test(n))return!1;for(const r of t)if(r.test(n))return!0;const l="ontouchstart"in window||navigator.maxTouchPoints>0,i=screen.width,a=screen.height,s=Math.min(i,a);return!!(l&&s<=768)}const ae=o.defineComponent({name:"Notify",props:mt,emits:["close","empty"],setup(n,t){var y;const e=vt(),i=`farris-notify-${(y=n.options)!=null&&y.type?n.options.type:"info"}}`,a=o.computed(()=>({"farris-notify":!0,[i]:e})),s={left:12,right:12,top:20,bottom:12},r=o.ref(),d=o.ref(n.options),u=o.ref(n.showCloseButton),f=o.computed(()=>n.position||"bottom-right"),c=o.computed(()=>n.timeout!=null?n.timeout:3e3),v=o.computed(()=>{const x=n.bottom?n.bottom:s.bottom,F=n.top?n.top:s.top,C={transition:"all 0.2s ease",left:f.value.indexOf("left")>-1?`${n.left?n.left:s.left}px`:"",right:f.value.indexOf("right")>-1?`${n.right?n.right:s.right}px`:"",top:f.value.indexOf("top")>-1?`${F}px`:"",bottom:f.value.indexOf("bottom")>-1?`${x}px`:""};return f.value.indexOf("center")>-1&&(C.left="50%",C.marginLeft="calc(-24rem / 2)",f.value==="center-center"&&(C.top="50%",C.transform="translate(-50%, -50%)")),C});function m(x){t.emit("close")}c.value&&setTimeout(()=>{m()},c.value),t.expose({closeToast:m,container:r,notifyPosition:f});function p(x,F){m()}return()=>{var x;return e?o.createVNode("div",{class:a.value,ref:r},[(x=n.options)==null?void 0:x.message]):o.createVNode("div",{class:a.value,style:v.value,ref:r},[o.createVNode(ce,{options:d.value,showCloseButton:u.value,animate:n.animate,onClose:F=>p(F,d.value)},null)])}}});class Ct{constructor(){k(this,"notifyRefs",[]);k(this,"globalConfig",o.reactive({}))}escapeAllHtml(t){if(typeof t!="string"||!t)return"";const e=document.createElement("div");return e.textContent=t||"",e.innerHTML.replace(/\\n/g,"<br>").replace(/\\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;").replace(/\\r/g,"")}createNotifyInstance(t){const e=this,i=Object.assign({timeout:3e3,position:"bottom-right",showCloseButton:!0,safeHtml:!0},this.globalConfig,{...t}),a=document.createElement("div");a.style.display="contents";const s=o.createApp({setup(){var u;const r=o.ref();function d(){r.value.container.style.transform="scale(0)",setTimeout(()=>{e.updateNotifyPositionForClose(i,r),s.unmount()},220)}if(i.position.indexOf("top")>-1){const f=e.getNotifyInstances(i.position),c=f[f.length-1];if(c){const v=c.value.container.getBoundingClientRect();i.top=v.bottom}}return i.safeHtml&&((u=i.options)!=null&&u.message)&&(i.options.message=e.escapeAllHtml(i.options.message)),o.onUnmounted(()=>{document.body.removeChild(a)}),o.onMounted(()=>{e.updateNotifyPositionForCreate(i,r)}),()=>o.createVNode(o.Transition,{mode:"out-in",name:"fade",appear:!0},{default:()=>[o.createVNode(ae,o.mergeProps({ref:r},i,{onClose:d}),null)]})}});return s.provide("NotifyService",this),document.body.appendChild(a),s.use(Y.LocaleService.i18n),s.mount(a),s}getNotifyInstances(t){return this.notifyRefs.filter(e=>e.value.notifyPosition===t)}updateNotifyPositionForCreate(t,e){if(this.notifyRefs&&this.notifyRefs.length){const l=window.innerHeight;t.position.indexOf("bottom")>-1&&this.getNotifyInstances(t.position).forEach(i=>{const a=i.value.container.getBoundingClientRect();i.value.container.style.bottom=a.height+l-a.bottom+"px"})}this.notifyRefs=[...this.notifyRefs,e]}updateNotifyPositionForClose(t,e){const l=this.notifyRefs.indexOf(e);if(t.position.indexOf("top")>-1){const i=this.getNotifyInstances(t.position),a=i.indexOf(e);i.slice(a+1).forEach(s=>{s.value.container.style.top=s.value.container.offsetTop-s.value.container.offsetHeight+"px"})}l>-1&&this.notifyRefs.splice(l,1)}show(t){return this.createNotifyInstance(t)}buildNotifyProps(t,e){let l="",i="",a,s,r;typeof e=="string"?l=e:e&&(l=e.message||"",i=e.title||"",s=e.position||null,r=e.showCloseButton!=null?e.showCloseButton:null,a=e.timeout!=null?e.timeout:null);const u={options:{type:t,message:l,title:i}};return s!=null&&(u.position=s),r!=null&&(u.showCloseButton=r),a!=null&&(u.timeout=a),u}info(t){const e=this.buildNotifyProps("info",t);return this.show(e)}success(t){const e=this.buildNotifyProps("success",t);return this.show(e)}warning(t){const e=this.buildNotifyProps("warning",t);return this.show(e)}error(t){const e=this.buildNotifyProps("error",t);return this.show(e)}close(t){t&&t.unmount()}closeAll(){this.notifyRefs.forEach(t=>{t==null||t.value.closeToast()}),this.notifyRefs.length=0}}const Me=Symbol("NOTIFY_SERVICE_TOKEN");ae.install=n=>{n.component(ae.name,ae),n.component(ce.name,ce);const t=new Ct;n.provide(Me,t),n.provide("FNotifyService",t)};const wt=o.defineComponent({name:"FItemCollectionEditor",props:de,components:{},emits:["change"],setup(n,t){const e=o.inject(Me),{guid:l}=z.useGuid(),i=o.ref(`共 ${(n.modelValue||[]).length} 项`),a=o.ref(n.valueField),s=o.ref(n.nameField),r=o.ref();function d(){let m=[];return n.dynamicMappingKeys?(m=[],a.value=a.value.trim(),s.value=s.value.trim(),(n.modelValue||[]).forEach(p=>{if(a.value&&s.value){const{[a.value]:y,[s.value]:x,...F}=p,C=F||{};C.value=y,C.name=x,C.hId=l(),m.push(C)}})):(m=oe.cloneDeep(n.modelValue||[]),m.forEach(p=>{p.hId=l()})),m}function u(){let m=[];return n.columns&&n.columns.length>0?m=n.columns:m=[{field:n.valueField,title:"值",dataType:"string"},{field:n.nameField,title:"名称",dataType:"string"}],m}function f(){}const c={fitContent:!1,width:n.modalWidth||900,height:n.modalHeight||600,title:n.title||"项编辑器",resizeable:!0,draggable:!0,minWidth:500,minHeight:300,buttons:[{name:"cancel",text:"取消",class:"btn btn-secondary",handle:m=>!0},{name:"accept",text:"确定",class:"btn btn-primary",handle:async m=>{if(n.beforeSubmit&&typeof n.beforeSubmit=="function"){const y=r.value.getItems();if(!await n.beforeSubmit({notifyService:e,data:y}))return!1}return!!r.value.clickConfirm()}}]};function v(m,p,y){i.value=`共 ${m.length} 项`,t.emit("change",m,p,y)}return o.watch(()=>n.modelValue,m=>{i.value=`共 ${(n.modelValue||[]).length} 项`}),o.onMounted(()=>{}),()=>o.createVNode(ct,{"button-behavior":"Modal","modal-options":c,modelValue:i.value,"onUpdate:modelValue":m=>i.value=m,editable:!1,beforeOpen:f},{default:()=>[o.createVNode("div",{class:"f-utils-absolute-all f-utils-flex-column"},[n.dynamicMappingKeys&&o.createVNode("div",{class:"farris-form-controls-inline p-2 f-form-layout farris-form f-form-lable-auto"},[o.createVNode("div",{class:"farris-group-wrap mr-3"},[o.createVNode("div",{class:"form-group farris-form-group"},[o.createVNode("label",{class:"col-form-label"},[o.createVNode("span",{class:"farris-label-info text-danger"},[o.createTextVNode("*")]),o.createVNode("span",{class:"farris-label-text"},[o.createTextVNode("枚举值字段")])]),o.createVNode("div",{class:"farris-input-wrap"},[o.withDirectives(o.createVNode("input",{type:"input",class:"form-control","onUpdate:modelValue":m=>a.value=m,readonly:n.readonly},null),[[o.vModelText,a.value]])])])]),o.createVNode("div",{class:"farris-group-wrap"},[o.createVNode("div",{class:"form-group farris-form-group"},[o.createVNode("label",{class:"col-form-label"},[o.createVNode("span",{class:"farris-label-info text-danger"},[o.createTextVNode("*")]),o.createVNode("span",{class:"farris-label-text"},[o.createTextVNode("枚举名称字段")])]),o.createVNode("div",{class:"farris-input-wrap"},[o.withDirectives(o.createVNode("input",{type:"input",class:"form-control","onUpdate:modelValue":m=>s.value=m,readonly:n.readonly},null),[[o.vModelText,s.value]])])])])]),o.createVNode(pt,{ref:r,valueField:a.value,nameField:s.value,requiredFields:n.requiredFields,uniqueFields:n.uniqueFields,dynamicMappingKeys:n.dynamicMappingKeys,readonly:n.readonly,canEmpty:n.canEmpty,datas:d(),columns:u(),onChange:(m,p,y)=>v(m,p,y)},null)])]})}}),Ee={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/radio-group.schema.json",title:"radio-group",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a radio-group",type:"string"},type:{description:"The type string of radio-group component",type:"string",default:"radio-group"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disabled:{type:"boolean",default:!1},readonly:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0},textField:{description:"",type:"string",default:"name"},valueField:{description:"",type:"string",default:"value"},dataSourceType:{description:"",type:"string",default:"static"},data:{description:"",type:"array"},bindDataSource:{description:"",type:"string",default:""},direction:{description:"",type:"string",default:"horizontal"},onChange:{description:"值变化事件",type:"string"}},required:["type"],ignore:["id","appearance","binding","visible"]},xt=_.createPropsResolver(re.radioGroupProps,Ee,we,ve),ue=_.getPropsResolverGenerator(re.radioGroupProps,Ee,we,ve);te.register=(n,t,e,l,i)=>{n["radio-group"]=re,t["radio-group"]=ue(i),n["item-collection-editor"]=wt,t["item-collection-editor"]=ut(i)},te.registerDesigner=(n,t,e,l)=>{n["radio-group"]=te,t["radio-group"]=ue(l)};const Vt=z.withInstall(te);$.FRadioGroupDesign=te,$.default=Vt,$.propsResolver=xt,$.propsResolverGenerator=ue,Object.defineProperties($,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
6
+ `])])]);class ze extends Re{constructor(e,l){super(e,l);k(this,"responseLayoutEditorFunction");k(this,"bindingVarible");k(this,"formGroupEvents",[{label:"fieldValueChanging",name:"绑定字段值变化前事件"},{label:"fieldValueChanged",name:"绑定字段值变化后事件"},{label:"onClickLabel",name:"标签点击事件"}]);k(this,"numberEditorOptions",{type:"number-spinner",useThousands:!1,keyboard:!1,showButton:!1});this.responseLayoutEditorFunction=Ae(this.formSchemaUtils)}getCommonPropertyConfig(e,l,i="Card"){if(this.propertyConfig.categories.basic=this.getBasicProperties(e,l,i),this.propertyConfig.categories.appearance=this.getAppearanceProperties(e,l),this.propertyConfig.categories.behavior=this.getBehaviorConfig(e,"form-group"),i==="Card"){const a=this.getTipsConfig(e);this.propertyConfig.categories.behavior.properties={...this.propertyConfig.categories.behavior.properties,...a},["time-picker","date-picker","lookup","combo-list","number-spinner","input-group","language-textbox"].includes(e.editor.type)&&(this.propertyConfig.categories.expansion=this.getExpandProperties(e))}}getPropertyConfig(e,l){return this.getCommonPropertyConfig(e,l,"Card"),this.propertyConfig.categories.editor=this.getEditorProperties(e),this.propertyConfig.categories.expressions=this.getExpressionConfig(e,"Field"),this.propertyConfig.categories.eventsEditor=this.getEventPropertyConfig(e),this.propertyConfig}getGridFieldEdtiorPropConfig(e,l){return this.propertyConfig.categories={},this.getCommonPropertyConfig(e,l,"Grid"),this.getGridFieldEdtiorProperties?this.propertyConfig.categories.editor=this.getGridFieldEdtiorProperties(e):this.propertyConfig.categories.editor=this.getEditorProperties(e),this.propertyConfig.categories.expressons=this.getExpressionConfig(e,"Field"),this.propertyConfig.categories}getBasicProperties(e,l,i="Card"){var c;const a=this;this.setDesignViewModelField(e);const{canChangeControlType:s,editorTypeList:r}=this.getAvailableEditorType(e),d={description:"Basic Information",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"编辑器类型",title:"编辑器类型",type:"string",$converter:"/converter/change-editor.converter",parentPropertyID:"editor",editor:{type:"combo-list",textField:"value",valueField:"key",idField:"key",editable:!1,data:r,readonly:!s}},label:{title:"标签",type:"string",$converter:"/converter/form-group-label.converter"},showLabelType:{description:"标签显示方式:1、显示:显示标签 2、占位:保留标签空间,但不显示文本 3、不显示:不显示标签",title:"标签显示",type:"enum",editor:{data:[{id:"visible",name:"显示"},{id:"reserve-space",name:"占位"},{id:"none",name:"不显示"}]},defaultValue:((c=e.editor)==null?void 0:c.type)==="image"?"none":"visible"},binding:{description:"绑定的表单字段",title:"绑定",editor:{type:"binding-selector",bindingType:{enable:!0},editorParams:{componentSchema:e,needSyncToViewModel:!0,viewModelId:this.viewModelId,designerHostService:this.designerHostService,disableOccupiedFields:!0},textField:"bindingField"},refreshPanelAfterChanged:!0,readonly:this.formSchemaUtils.designerMode==="PC_RTC"&&!e.isRtcControl}},setPropertyRelates(f,u,v){if(f)switch(f&&f.propertyID){case"type":{a.changeControlType(e,f,l);break}case"label":{f.needRefreshControlTree=!0;break}case"binding":{a.changeBindingField(e,f,v);break}}}};return i.toLocaleLowerCase()!=="card"&&delete d.properties.showLabelType,d}getExpandProperties(e){const l=this,i=["Const","Variable"],a=this.getPropertyEditorParams(e,i,"expandable"),s=this.getPropertyEditorParams(e,i,"expandDisabled");return{description:"Expand Information",title:"扩展区域",properties:{expandable:{description:"是否启用扩展区域",title:"启用扩展区域",refreshPanelAfterChanged:!0,$converter:"/converter/property-editor.converter",editor:a},expandMode:{description:"扩展模式 text | button",title:"扩展模式",type:"enum",refreshPanelAfterChanged:!0,$converter:"/converter/property-editor.converter",editor:{data:[{id:"text",name:"静态文本"},{id:"button",name:"交互按钮"}]},defaultValue:"text",visible:!!e.editor.expandable},expandContent:{$converter:"/converter/property-editor.converter",description:"扩展内容",title:"扩展内容",type:"string",visible:!!e.editor.expandable},expandDisabled:{$converter:"/converter/property-editor.converter",description:"是否隐藏扩展区域",title:"隐藏扩展区域",editor:s,visible:!!e.editor.expandable}},setPropertyRelates(d,c){if(d)switch(d.propertyID){case"expandable":case"expandDisabled":l.afterMutilEditorChanged(e,d);break}}}}checkCanChangeControlType(e,l){if(!e.binding)return!1;if(e.binding.type==="Variable"){if(this.bindingVarible=this.formSchemaUtils.getVariableById(e.binding.field),!this.bindingVarible)return!1}else if(!this.designViewModelField||this.designViewModelField.$type!==z.FormSchemaEntityField$Type.SimpleField)return!1;return!0}getAvailableEditorType(e){var a;const l=this.checkCanChangeControlType(e,this.viewModelId);if(!l)return{canChangeControlType:!1,editorTypeList:[{key:e.editor.type,value:((a=y.DgControl[e.editor.type])==null?void 0:a.name)||e.editor.type}]};let i=[];return this.designViewModelField&&this.designViewModelField.$type===z.FormSchemaEntityField$Type.SimpleField?i=ie.getEditorTypesByMDataType(this.designViewModelField.type.name,this.designViewModelField.multiLanguage):this.bindingVarible&&(i=ie.getEditorTypesByMDataType(this.bindingVarible.type,!1)),{canChangeControlType:l,editorTypeList:i}}changeBindingField(e,l,i){l.needRefreshEntityTree=!0}getAppearanceProperties(e,l){const i=this;return{title:"外观",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:"组件的CSS样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},style:{title:"style样式",type:"string",description:"组件的内联样式",$converter:"/converter/appearance.converter",parentPropertyID:"appearance"},fill:{title:"填充宽度",description:"启用后,控件占满父容器宽度",type:"boolean",parentPropertyID:"appearance"},responseLayout:{description:"响应式列宽",title:"响应式列宽",type:"boolean",visible:!0,refreshPanelAfterChanged:!0,editor:{type:"response-layout-editor-setting",beforeOpen:()=>i.responseLayoutEditorFunction.checkCanOpenLayoutEditor(e,i.componentId)}}},setPropertyRelates(a,s){if(a)switch(a&&a.propertyID){case"responseLayout":i.responseLayoutEditorFunction.changeFormControlsByResponseLayoutConfig(a.propertyValue,i.componentId||e.id),i.updateUnifiedLayoutAfterResponseLayoutChanged(i.componentId),i.updateElementByParentContainer(e.id,l),delete e.responseLayout;break;case"class":i.updateUnifiedLayoutAfterControlChanged(a.propertyValue,e.id,this.componentId),y.canvasChanged.value++;break;case"style":{y.canvasChanged.value++;break}}}}}getEditorProperties(e){return this.getComponentConfig(e)}changeControlType(e,l,i){const a=l.propertyValue,s=i&&i.parent&&i.parent.schema;if(!s)return;const r=s.contents.findIndex(f=>f.id===e.id);if(r===-1)return;const d=s.contents[r];let c;if(this.designViewModelField){const v=this.formSchemaUtils.getViewModelById(this.viewModelId).fields.find(p=>p.id===this.designViewModelField.id).fieldSchema||{};v.editor||(v.editor={}),v.editor.$type=a,this.designViewModelUtils.getDgViewModel(this.viewModelId).changeField(this.designViewModelField.id,v,!1),c=this.controlCreatorUtils.setFormFieldProperty(this.designViewModelField,a)}c||(c=this.controlCreatorUtils.createFormGroupWithoutField(a)),Object.assign(c,{id:d.id,appearance:d.appearance,size:d.size,label:d.label,binding:d.binding}),Object.prototype.hasOwnProperty.call(d,"visible")&&Object.assign(c,{visible:d.visible}),d.editor&&["readonly","required","placeholder"].map(f=>{Object.prototype.hasOwnProperty.call(d.editor,f)&&(c.editor[f]=d.editor[f])}),i!=null&&i.updateContextSchema?i.updateContextSchema(c):(i.schema=Object.assign(d,c),Object.assign(e,c)),Array.from(document.getElementsByClassName("dgComponentSelected")).forEach(f=>f.classList.remove("dgComponentSelected")),Array.from(document.getElementsByClassName("dgComponentFocused")).forEach(f=>f.classList.remove("dgComponentFocused")),y.canvasChanged.value++,o.nextTick(()=>{this.getFormDesignerInstance().reloadPropertyPanel()})}getTipsConfig(e){return["time-picker","date-picker","lookup","combo-list","number-spinner","input-group","textarea","rich-text-editor","language-textbox"].includes(e.editor.type)?{enableTips:{refreshPanelAfterChanged:!0,description:"",title:"启用提示",type:"boolean",default:!1},tipsContent:{description:"提示内容",title:"提示内容",type:"string",editor:{type:"code-editor",language:"html",leftTemplate:$e},visible:!!e.enableTips}}:{}}getComponentConfig(e,l={},i={},a){var v,m;const s=Object.assign({description:"编辑器",title:"编辑器",type:"input-group",$converter:"/converter/property-editor.converter",parentPropertyID:"editor"},l),r=(v=e.binding)!=null&&v.field?[]:["Const","Variable","StateMachine"],d=this.getPropertyEditorParams(e,r,"readonly"),c=this.getPropertyEditorParams(e,r,"required"),f={readonly:{description:"",title:"只读",editor:d},required:{description:"",title:"必填",type:"boolean",editor:c,visible:!!((m=e.binding)!=null&&m.field)},placeholder:{description:"当控件没有值时在输入框中显示的文本",title:"提示文本",type:"string"}};for(const p in i)f[p]=Object.assign(f[p]||{},i[p]);const u=this;return{...s,properties:{...f},setPropertyRelates(p,b){if(p){switch(p.propertyID){case"readonly":case"required":u.afterMutilEditorChanged(e,p);break}a&&a.bind(u)(p,e,b)}}}}updateUnifiedLayoutAfterControlChanged(e,l,i){const a=e.split(" ");let s=a.find(u=>/^col-([1-9]|10|11|12)$/.test(u)),r=a.find(u=>/^col-md-([1-9]|10|11|12)$/.test(u)),d=a.find(u=>/^col-xl-([1-9]|10|11|12)$/.test(u)),c=a.find(u=>/^col-el-([1-9]|10|11|12)$/.test(u));s=s||"col-12",r=r||"col-md-"+s.replace("col-",""),d=d||"col-xl-"+r.replace("col-md-",""),c=c||"col-el-"+d.replace("col-xl-","");const f={id:l,columnInSM:parseInt(s.replace("col-",""),10),columnInMD:parseInt(r.replace("col-md-",""),10),columnInLG:parseInt(d.replace("col-xl-",""),10),columnInEL:parseInt(c.replace("col-el-",""),10)};this.updateUnifiedLayoutAfterResponseLayoutChanged(i,f)}updateUnifiedLayoutAfterResponseLayoutChanged(e,l){const{formNode:i}=this.responseLayoutEditorFunction.checkCanFindFormNode(e);if(!i||!i.unifiedLayout)return;const a=[];if(this.responseLayoutEditorFunction.getResonseFormLayoutConfig(i,a,1),l){const p=a.find(b=>b.id===l.id);Object.assign(p||{},l)}const s=a.map(p=>p.columnInSM),r=a.map(p=>p.columnInMD),d=a.map(p=>p.columnInLG),c=a.map(p=>p.columnInEL),f=this.checkIsUniqueColumn(s)?s[0]:null,u=this.checkIsUniqueColumn(r)?r[0]:null,v=this.checkIsUniqueColumn(d)?d[0]:null,m=this.checkIsUniqueColumn(c)?c[0]:null;Object.assign(i.unifiedLayout,{uniqueColClassInSM:f,uniqueColClassInMD:u,uniqueColClassInLG:v,uniqueColClassInEL:m})}checkIsUniqueColumn(e){const l=new Set(e);return Array.from(l).length===1}getItemCollectionEditor(e,l,i){return l=l||"value",i=i||"name",{editor:{columns:[{field:l,title:"值",dataType:"string"},{field:i,title:"名称",dataType:"string"}],type:"item-collection-editor",valueField:l,nameField:i,requiredFields:[l,i],uniqueFields:[l,i],readonly:this.checkEnumDataReadonly(e)}}}checkEnumDataReadonly(e){return!e.binding||e.binding.type!=="Form"?!1:!!(this.designViewModelField&&this.designViewModelField.type&&this.designViewModelField.type.$type===z.FormSchemaEntityFieldType$Type.EnumType)}appendFieldValueChangeEvents(e,l){e.binding&&e.binding.type===le.Form&&e.binding.field?(l.find(i=>i.label==="fieldValueChanging"),l.find(i=>i.label==="fieldValueChanged"),this.designViewModelField&&(e.fieldValueChanging=this.designViewModelField.valueChanging,e.fieldValueChanged=this.designViewModelField.valueChanged)):l=l.filter(i=>i.label!=="fieldValueChanging"&&i.label!=="fieldValueChanged")}getControlMethodType(e){if(!e.binding)return e.type;switch(e.binding.type){case le.Form:return e.binding.path||e.type;case le.Variable:return e.binding.fullPath||e.type}return e.type}updateLinkedLabel(e,l){if(e.boundEventsList&&e.boundEventsList.length>0){const i=e.boundEventsList.find(a=>a.boundEvents&&a.boundEvents.label==="onClickLabel");l.linkLabel=!!i}else l.linkLabel=!1}getEventPropertyConfig(e,l="card",i,a){const s=this;let r=[...this.formGroupEvents];if(["time-picker","date-picker","lookup","combo-list","number-spinner","input-group"].includes(e.editor.type)&&r.push({lable:"onClear",name:"清空事件"}),i&&(r=r.concat(i)),r.length===0)return{title:"事件",hideTitle:!0,properties:{},tabId:"commands",tabName:"交互",hide:!0};this.appendFieldValueChangeEvents(e,r);const c=s.eventsEditorUtils.formProperties(e,s.viewModelId,r);return{title:"事件",hideTitle:!0,properties:s.createBaseEventProperty(c),tabId:"commands",tabName:"交互",setPropertyRelates(v,m){const p=v.propertyValue;delete e[s.viewModelId],p&&(p.setPropertyRelates=this.setPropertyRelates,p.controlInfo={type:s.getControlMethodType(e),name:e.title},s.eventsEditorUtils.saveRelatedParameters(e,s.viewModelId,p.events,p),s.updateLinkedLabel(p,m)),a&&a(v,m,p);const b=s.designViewModelUtils.getDgViewModel(s.viewModelId);b&&s.designViewModelField&&b.changeField(s.designViewModelField.id,{valueChanging:e.fieldValueChanging,valueChanged:e.fieldValueChanged})}}}getExpressionConfig(e,l,i=["compute","dependency","validate"],a){return new me(this.formSchemaUtils).getExpressionConfig(e,l,i,a)}getBindingDataType(){return this.designViewModelField?this.designViewModelField.type.name==="Number"?"number":this.designViewModelField.type.name==="String"?"string":"boolean":"boolean"}getEditor(){return this.getBindingDataType()==="number"?this.numberEditorOptions:{}}updatePropertyValue(e,l,i){var a;e.editor[l]!==i?e.editor[l]=i:(a=this.getFormDesignerInstance())==null||a.reloadPropertyPanel()}setBooleanValue(e,l,i){let a=i;this.getBindingDataType()==="string"&&(a=(a||"").trim()||(l==="trueValue"?"true":"false"));const r=l==="trueValue"?"falseValue":"trueValue";e.editor[r]===a&&(a=a+1),this.updatePropertyValue(e,l,a)}getBooleanValueConverter(){return{convertFrom:(e,l)=>e.editor[l],convertTo:(e,l,i)=>{this.setBooleanValue(e,l,i)}}}}class He extends ze{constructor(t,e){super(t,e)}getEditorProperties(t){const e=this;return e.getComponentConfig(t,{type:"radio-group"},{disabled:{visible:!1},placeholder:{visible:!1},direction:{description:"",title:"排列方向",type:"enum",editor:{data:[{id:"horizontal",name:"横向"},{id:"vertical",name:"纵向"}]}},dataSourceType:{description:"",title:"数据源类型",type:"enum",visible:!1,editor:{default:"static",data:[{id:"static",name:"静态"},{id:"dynamic",name:"动态"}]},refreshPanelAfterChanged:!0},data:{description:"",title:"数据",type:"array",visible:!t.editor.dataSourceType||t.editor.dataSourceType==="static",...e.getItemCollectionEditor(t,t.editor.valueField,t.editor.textField),refreshPanelAfterChanged:!0},bindDataSource:{description:"",title:"绑定数据源",type:"string",visible:t.editor.dataSourceType==="dynamic"},textField:{description:"",title:"文本字段",type:"string",readonly:t.editor.dataSourceType!=="dynamic"},valueField:{description:"",title:"值字段",type:"string",readonly:t.editor.dataSourceType!=="dynamic"}},this.setEditorPropertyRelates)}setEditorPropertyRelates(t,e,l){if(!t||!e.editor)return;const i=this;switch(t.propertyID){case"dataSourceType":{t.propertyValue==="static"&&(e.editor.valueField="value",e.editor.textField="name");break}case"data":{!i.checkEnumDataReadonly(e)&&e.formatter&&(e.formatter.data=[...t.propertyValue]);break}}}changeBindingField(t,e,l){var a;super.changeBindingField(t,e);const i=l;t.editor&&((a=i==null?void 0:i.type)==null?void 0:a.$type)===z.FormSchemaEntityFieldType$Type.EnumType&&(t.editor.data=i.type.enumValues||[])}}function je(n,t){const e=n.schema;function l(i,a){return new He(i,t).getPropertyConfig(e,a)}return{getPropsConfig:l}}const te=o.defineComponent({name:"FRadioGroupDesign",props:Ne,emits:["changeValue","update:modelValue"],setup(n,t){const e=o.ref(n.modelValue),{enumData:l,getValue:i,getText:a}=Oe(n,t,e),s=o.computed(()=>({"farris-checkradio-hor":n.direction==="horizontal"})),r=o.ref(),d=o.inject("designer-host-service"),c=o.inject("design-item-context"),f=je(c,d),u=y.useDesignerComponent(r,c,f);o.onMounted(()=>{r.value.componentInstance=u});const v=o.computed(()=>{if(!l.value||l.value.length===0){const m=[];return[{value:"example1",name:"示例一"},{value:"example2",name:"示例二"}].map(p=>{const b={};b[n.valueField]=p.value,b[n.textField]=p.name,m.push(b)}),m}return l.value});return t.expose(u.value),()=>o.createVNode("div",{class:["farris-input-wrap",s.value],ref:r},[v.value.map((m,p)=>{const b="radio_"+n.name+p;return o.createVNode("div",{class:"custom-control custom-radio"},[o.createVNode("input",{type:"radio",class:"custom-control-input",name:n.name,id:b,value:i(m),disabled:!0},null),o.createVNode("label",{class:"custom-control-label",for:b},[a(m)])])})])}}),qe={id:{type:String,default:""},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:{type:Number},tabIndex:Number,popupHost:{type:Object},popupRightBoundary:{type:Object},popupOffsetX:{type:Object},popupOnInput:{type:Boolean,default:!1},popupOnFocus:{type:Boolean,default:!1},popupOnClick:{type:Boolean,default:!1},popupClass:{type:String,default:""},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"},keepWidthWithReference:{type:Boolean,default:!0},placement:{type:String,default:"bottom-left"},limitContentBySpace:{type:Boolean,default:!1},beforeClosePopup:{type:Function,default:null},expandable:{type:Boolean,default:!1},expandMode:{type:String,default:"text"},expandContent:{type:String,default:""},expandDisabled:{type:Boolean,default:!1}},Ue={popupContentPosition:{type:Object,default:{left:0,top:0}},host:{type:Object},backgroundColor:{type:String,default:""}},We=o.defineComponent({name:"FOverlay",props:Ue,emits:["click"],setup(n,t){const e=o.ref(n.popupContentPosition),l=o.ref(n.host),i=o.computed(()=>({backgroundColor:n.backgroundColor||"",pointerEvents:"auto"}));function a(r){t.emit("click"),r.preventDefault(),r.stopPropagation()}o.computed(()=>{const r=l.value;if(r){const d=r.getBoundingClientRect(),{left:c,top:f,height:u}=d;return{left:c,top:f+u}}return e.value});const s=o.computed(()=>({}));return()=>o.createVNode(o.Teleport,{to:"body"},{default:()=>{var r,d;return[o.createVNode("div",{class:"overlay-container",onClick:c=>a(c),style:i.value},[o.createVNode("div",{style:s.value},[(d=(r=t.slots).default)==null?void 0:d.call(r)])])]}})}});function Ge(n){if(n.content&&n.content.render)return n.content.render;if(n.render&&typeof n.render=="function")return n.render}function Ke(n){const t=document.createElement("div");t.style.display="contents";let e;const l=n.onClickCallback||(()=>{}),i=()=>{l(),e&&e.unmount()};return e=o.createApp({setup(){o.onUnmounted(()=>{document.body.removeChild(t)});const a=Ge(n);return()=>o.createVNode(We,{"popup-content-position":n.popupPosition,host:n.host,onClick:i,backgroundColor:n.backgroundColor},{default:()=>[a&&a()]})}}),document.body.appendChild(t),e.mount(t),e}class Xe{static show(t){return Ke(t)}}const _e={allowClickMaskToClose:{type:Boolean,default:!1},beforeClose:{type:Function,default:()=>!0},class:{type:String,default:""},maskClass:{type:String,default:""},title:{type:String,default:""},width:{type:Number,default:500},height:{type:Number,default:320},buttons:{type:Array,default:[]},modelValue:{type:Boolean,default:!1},mask:{type:Boolean,default:!0},showHeader:{type:Boolean,default:!0},showButtons:{type:Boolean,default:!0},fitContent:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},showFloatingClose:{type:Boolean,default:!1},showMaxButton:{type:Boolean,default:!1},minHeight:{type:Number},maxHeight:{type:Number},minWidth:{type:Number},maxWidth:{type:Number},containment:{type:Object,default:null},resizeable:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},dragHandle:{type:Object,default:null},closedCallback:{type:Function,default:null},resizeHandle:{type:Function,default:null},render:{type:Function,default:null},acceptCallback:{type:Function,default:null},rejectCallback:{type:Function,default:null},enableEsc:{type:Boolean,default:!0},enableEnter:{type:Boolean,default:!1},dialogType:{type:String,default:""},src:{type:String,default:""},footerHeight:{type:Number,default:60},position:{type:String,default:"center"},host:{type:Object,default:"body"},isMessager:{type:Boolean,default:!1},fullscreen:{type:Boolean,default:!1}};class q{constructor(t,e){this.x=t,this.y=e}static getTransformInfo(t){const l=window.getComputedStyle(t).getPropertyValue("transform").replace(/[^-\d,]/g,"").split(",");if(l.length>=6){const i=parseInt(l[4],10),a=parseInt(l[5],10);return{x:i,y:a}}return{x:0,y:0}}static fromEvent(t,e=null){if(this.isMouseEvent(t))return new q(t.clientX,t.clientY);if(e===null||t.changedTouches.length===1)return new q(t.changedTouches[0].clientX,t.changedTouches[0].clientY);for(let l=0;l<t.changedTouches.length;l++)if(t.changedTouches[l].target===e)return new q(t.changedTouches[l].clientX,t.changedTouches[l].clientY)}static isMouseEvent(t){return Object.prototype.toString.apply(t).indexOf("MouseEvent")===8}static isIPosition(t){return!!t&&"x"in t&&"y"in t}static getCurrent(t){const e=new q(0,0);if(window){const l=window.getComputedStyle(t);if(l){const i=parseInt(l.getPropertyValue("left"),10),a=parseInt(l.getPropertyValue("top"),10);e.x=isNaN(i)?0:i,e.y=isNaN(a)?0:a}return e}return null}static copy(t){return new q(0,0).set(t)}get value(){return{x:this.x,y:this.y}}add(t){return this.x+=t.x,this.y+=t.y,this}subtract(t){return this.x-=t.x,this.y-=t.y,this}multiply(t){this.x*=t,this.y*=t}divide(t){this.x/=t,this.y/=t}reset(){return this.x=0,this.y=0,this}set(t){return this.x=t.x,this.y=t.y,this}}class J{constructor(t,e){this.width=t,this.height=e}static getCurrent(t){const e=new J(0,0);if(window){const l=window.getComputedStyle(t);return l&&(e.width=parseInt(l.getPropertyValue("width"),10),e.height=parseInt(l.getPropertyValue("height"),10)),e}return null}static copy(t){return new J(0,0).set(t)}set(t){return this.width=t.width,this.height=t.height,this}}function Ye(n,t){const e=o.ref(),l=o.ref(),i=o.ref(),a=o.ref(),s=o.ref(),r=o.ref(),d=o.ref(),c=o.ref(),f=o.ref(),u=o.ref(),v=o.ref(),m=o.ref(n.resizeable),p=o.ref(),b=o.ref(n.draggable),x=o.ref(!1);function F(){const w=l.value||document.body,E=window.getComputedStyle(w);if(!E||!e.value)return;const A=q.getTransformInfo(e.value),D={};d.value&&(D.deltaL=e.value.offsetLeft-d.value.x,D.deltaT=e.value.offsetTop-d.value.y);const G=E.getPropertyValue("position");D.width=w.clientWidth,D.height=w.clientHeight,D.pr=parseInt(E.getPropertyValue("padding-right"),10),D.pb=parseInt(E.getPropertyValue("padding-bottom"),10),D.position=E.getPropertyValue("position"),G==="static"&&(w.style.position="relative"),D.translateX=A.x,D.translateY=A.y,u.value=D}function C(w){if(e.value){a.value=J.getCurrent(e.value),s.value=q.getCurrent(e.value),r.value=a.value?J.copy(a.value):null,d.value=s.value?q.copy(s.value):null,F();const E=w.target.getAttribute("type")||"";c.value={n:!!E.match(/n/),s:!!E.match(/s/),w:!!E.match(/w/),e:!!E.match(/e/)}}}function B(){var w,E,A,D;if(e.value){const G=e.value;c.value&&((c.value.n||c.value.s)&&((w=r.value)!=null&&w.height)&&(G.style.height=r.value.height+"px"),(c.value.w||c.value.e)&&((E=r.value)!=null&&E.width)&&(G.style.width=r.value.width+"px"),d.value&&((A=d.value)!=null&&A.x&&(G.style.left=d.value.x+"px"),(D=d.value)!=null&&D.y&&(G.style.top=d.value.y+"px")))}}function N(){const w=n.minHeight?n.minHeight:1,E=n.minWidth?n.minWidth:1;r.value&&d.value&&c.value&&a.value&&(r.value.height<w&&(r.value.height=w,c.value.n&&s.value&&(d.value.y=s.value.y+(a.value.height-w))),r.value.width<E&&(r.value.width=E,c.value.w&&s.value&&(d.value.x=s.value.x+(a.value.width-E))),n.maxHeight&&r.value.height>n.maxHeight&&(r.value.height=n.maxHeight,s.value&&c.value.n&&(d.value.y=s.value.y+(a.value.height-n.maxHeight))),n.maxWidth&&r.value.width>n.maxWidth&&(r.value.width=n.maxWidth,c.value.w&&s.value&&(d.value.x=s.value.x+(a.value.width-n.maxWidth))))}function I(){if(l.value){const w=u.value;if(d.value&&r.value&&c.value&&a.value){const E=w.width-w.pr-w.deltaL-w.translateX-d.value.x,A=w.height-w.pb-w.deltaT-w.translateY-d.value.y;c.value.n&&d.value.y+w.translateY<0&&s.value&&(d.value.y=-w.translateY,r.value.height=a.value.height+s.value.y+w.translateY),c.value.w&&d.value.x+w.translateX<0&&s.value&&(d.value.x=-w.translateX,r.value.width=a.value.width+s.value.x+w.translateX),r.value.width>E&&(r.value.width=E),r.value.height>A&&(r.value.height=A)}}}function L(w){if(!i.value||!a.value||!s.value||!c.value)return;w.subtract(i.value);const E=w.x,A=w.y;c.value.n?(d.value.y=s.value.y+A,r.value.height=a.value.height-A):c.value.s&&(r.value.height=a.value.height+A),c.value.e?r.value.width=a.value.width+E:c.value.w&&(r.value.width=a.value.width-E,d.value.x=s.value.x+E),I(),N(),B()}function h(w){if(!f.value)return;const E=q.fromEvent(w);E&&L(E)}function V(){if(e.value){const{width:w,height:E,x:A,y:D}=e.value.getBoundingClientRect(),G=q.getTransformInfo(e.value);return{size:{width:w,height:E},position:{x:A-G.x,y:D-G.y}}}return null}function P(w){if(e.value){const E=V();v.value=E}i.value=void 0,a.value=null,s.value=null,r.value=null,d.value=null,c.value=null,f.value=null,document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",P)}function R(){document.addEventListener("mousemove",h),document.addEventListener("mouseup",P)}function M(w){w instanceof MouseEvent&&w.button===2||b.value&&(document.body.click(),w.stopPropagation(),w.preventDefault(),i.value=q.fromEvent(w),f.value=w.target,C(w),R())}function S(w){return e.value=w,m.value&&o.createVNode(o.Fragment,null,[o.createVNode("div",{class:"fv-resizable-handle fv-resizable-n",type:"n",onMousedown:E=>M(E)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-e",type:"e",onMousedown:E=>M(E)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-s",type:"s",onMousedown:E=>M(E)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-w",type:"w",onMousedown:E=>M(E)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-ne",type:"ne",onMousedown:E=>M(E)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-se fv-resizable-diagonal",type:"se",onMousedown:E=>M(E)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-sw",type:"sw",onMousedown:E=>M(E)},null),o.createVNode("div",{class:"fv-resizable-handle fv-resizable-nw",type:"nw",onMousedown:E=>M(E)},null)])}function H(w=!0){document.body.click();const E=l.value||document.body,A=J.getCurrent(E),D=e.value;w&&D&&(p.value=V(),p.value.transform=D.style.transform),A&&D&&(r.value=A,r.value.height-=14,r.value.width-=14,D.style.height=r.value.height+"px",D.style.width=r.value.width+"px",D.style.left="7px",D.style.top="7px",D.style.transform="",v.value={size:r.value,position:{x:0,y:0}},b.value=!1,x.value=!0)}function U(){var w,E;if(document.body.click(),p.value){const A={width:p.value.size.width||0,height:p.value.size.height||0},D={x:(window.innerWidth-A.width)/2,y:(window.innerHeight-A.height)/2};(w=r.value)==null||w.set(A),(E=d.value)==null||E.set(D);const G=e.value;G.style.height=A.height+"px",G.style.width=A.width+"px",G.style.left=`${D.x}px`,G.style.top=`${D.y}px`,G.style.transform="",v.value={size:A,position:D},b.value=n.draggable,x.value=!1}}function X(){if(e.value){const w=J.getCurrent(e.value);if(w){const{width:E,height:A}=w;e.value.style.left=`${(window.innerWidth-E)/2}px`,e.value.style.top=`${(window.innerHeight-A)/2}px`,e.value.style.transform=""}}}function O(){const w=()=>{x.value?H(!1):X(),document.body.click()};return window.addEventListener("resize",w),()=>{window.removeEventListener("resize",w)}}const W=O();return{renderResizeBar:S,boundingElement:l,resizedEventParam:v,maximize:H,restore:U,allowDrag:b,isMaximized:x,unWindowResizeHandle:W,moveToCenter:X}}function Je(n,t,e){const l=o.ref(),i=o.ref(n.draggable),a=o.ref(n.lockAxis),s=o.ref(),r=o.ref(),d=o.ref(!1),c=o.ref(new q(0,0)),f=o.ref(new q(0,0)),u=o.ref(new q(0,0)),v=o.ref(new q(0,0));o.watch(()=>e.value,h=>{s.value.style.cursor=h?"move":"default"});function m(h,V){if(V.tagName==="BUTTON")return!1;if(V===h)return!0;for(const P in V.children)if(Object.prototype.hasOwnProperty.call(V.children,P)&&m(h,V.children[P]))return!0;return!1}function p(){var R,M;let h=u.value.x+f.value.x,V=u.value.y+f.value.y;a.value==="x"?(h=((R=c.value)==null?void 0:R.x)||0,u.value.x=0):a.value==="y"&&(V=((M=c.value)==null?void 0:M.y)||0,u.value.y=0);const P=`translate3d(${Math.round(h)}px, ${Math.round(V)}px, 0px)`;l.value&&(l.value.style.transform=P),v.value.x=h,v.value.y=V}function b(){if(!r.value||!l.value)return null;const h=r.value.getBoundingClientRect(),V=l.value.getBoundingClientRect(),P={top:h.top<V.top,right:h.right>V.right,bottom:h.bottom>V.bottom,left:h.left<V.left};return P.top||(u.value.y-=V.top-h.top),P.bottom||(u.value.y-=V.bottom-h.bottom),P.right||(u.value.x-=V.right-h.right),P.left||(u.value.x-=V.left-h.left),p(),P}function x(h){h&&(c.value&&h.subtract(c.value),u.value.set(h),p(),b())}function F(h){d.value&&i.value&&(h.stopPropagation(),h.preventDefault(),x(q.fromEvent(h,s.value)))}function C(){var h;d.value&&(d.value=!1,f.value.add(u.value),u.value.reset(),(h=l.value)==null||h.classList.remove("ng-dragging"),t.emit("stopMove"),document.removeEventListener("mousemove",F),document.removeEventListener("mouseup",C))}function B(){!d.value&&s.value&&(d.value=!0,s.value.classList.add("ng-dragging"),document.addEventListener("mousemove",F),document.addEventListener("mouseup",C))}function N(){if(l.value){const h=q.getTransformInfo(l.value);f.value.set(h);return}f.value.reset()}function I(h){if(!e.value||h instanceof MouseEvent&&h.button===2)return;const V=h.target||h.srcElement;s.value!==void 0&&V&&!m(V,s.value)||i.value!==!1&&(document.body.click(),h.stopPropagation(),h.preventDefault(),c.value=q.fromEvent(h,l.value),N(),B())}function L(h,V,P){if(i.value&&V){if(h)s.value=h;else if(n.dragHandle){if(n.dragHandle instanceof HTMLElement)s.value=n.dragHandle;else if(typeof n.dragHandle=="string"){const R=V.querySelector(n.dragHandle);R&&(s.value=R)}}l.value=V,r.value=P,s.value?(s.value.classList.add("ng-draggable"),s.value.addEventListener("mousedown",I)):i.value=!1}}return{registerDraggle:L,resetTranslate:N}}function he(n,t){if(n){const e=l=>{l.key.toLowerCase()===n.toLowerCase()&&t({event:l,key:n})};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}}function Ze(n,t){const e=o.ref(n.enableEsc);let l=null;return e.value?(l=he("Escape",i=>{t.emit("esc",{event:i.event,type:"esc"})}),{remove:l}):null}function Qe(n,t){const e=o.ref(n.enableEnter);let l=null;return e.value?(l=he("Enter",i=>{t.emit("enter",{event:i.event,type:"enter"})}),{remove:l}):null}const ne=o.defineComponent({name:"FModal",props:_e,emits:["update:modelValue","accept","cancel","closed","resize","esc","enter","stopMove","buttonClick"],setup(n,t){const e=o.ref(n.width||300),l=o.ref(n.height||200),i=o.ref(n.modelValue),a=o.ref(""),s=o.ref(n.class),r=o.ref(n.fitContent),d=o.ref(n.showHeader),c=o.ref(""),f=o.ref(n.showCloseButton),u=o.ref(n.showMaxButton),v=o.ref(!1),m=o.ref(n.dialogType),p=o.ref(n.src),b=o.ref(""),x=o.ref(n.showButtons),F=o.ref(n.title),C=o.ref(n.containment||null),B=o.ref();F.value==="错误提示"&&(F.value=Y.LocaleService.getLocaleValue("messageBox.errorTitle"));const N=o.ref(!1);function I(g,T){const K=T?"accept":"cancel";Promise.resolve().then(()=>{var j;return(j=n.beforeClose)==null?void 0:j.call(n,{closeType:K})}).then(j=>{j&&(i.value=!1,t.emit("update:modelValue",!1),T!=null&&t.emit(T?"accept":"cancel"),t.emit("closed",g))})}const L=[{name:"cancel",text:Y.LocaleService.getLocaleValue("messageBox.cancel")||"取消",class:"btn btn-secondary",handle:g=>{I(g,!1)}},{name:"accept",text:Y.LocaleService.getLocaleValue("messageBox.ok")||"确定",class:"btn btn-primary",handle:g=>{I(g,!0)}}],h=o.ref(n.buttons&&n.buttons.length?n.buttons:L),V=o.computed(()=>!!c.value),P=o.computed(()=>!!x.value&&!!h.value),R=o.ref(),M=o.ref(),S=o.ref(!1),{renderResizeBar:H,maximize:U,restore:X,boundingElement:O,resizedEventParam:W,allowDrag:w,unWindowResizeHandle:E,moveToCenter:A}=Ye(n),{registerDraggle:D}=Je(n,t,w);function G(){return!!document.querySelectorAll(".farris-modal").length&&document.body.classList.contains("modal-open")}function Mt(){const g=document.querySelectorAll(".farris-modal").length;(!g||g-1<=0)&&document.body.classList.remove("modal-open"),B.value&&B.value.classList.remove("show")}o.watch(()=>n.title,(g,T)=>{g!==T&&(F.value=g)}),o.watch(()=>n.modelValue,(g,T)=>{g!==T&&(i.value=g,i.value&&n.draggable&&o.nextTick(()=>{M.value&&!C.value&&(C.value=M.value.parentElement,O.value=C.value,D(R.value,M.value,O.value),A())}),g||(C.value&&(C.value=null),Mt())),i.value?N.value=G():(S.value=!1,w.value=n.draggable)}),o.watch(()=>n.showHeader,(g,T)=>{g!==T&&(d.value=g)}),o.watch(()=>n.showButtons,(g,T)=>{g!==T&&(x.value=g)}),o.watch(()=>W.value,(g,T)=>{const K=g||{},j=T||{};JSON.stringify(K)!==JSON.stringify(j)&&t.emit("resize",{newSize:g,oldSize:T,isMaximized:S.value})}),o.watch([()=>n.width,()=>n.height],(g,T)=>{(g[0]!==T[0]||g[1]!==T[1])&&(e.value=g[0]||500,l.value=g[1]||600)}),o.watch(()=>n.class,(g,T)=>{s.value=g});const se=o.computed(()=>(i.value&&document.body.classList.add("modal-open"),i.value)),Et=o.computed(()=>{var K;const g={modal:!0,"farris-modal":!0,fade:!0,"fe-cmp-page-modal":!!n.showFloatingClose};g["f-modal-fitContent"]=!!r.value,g.show=!!se.value;const T=(K=n.maskClass)==null?void 0:K.split(" ");return T==null||T.reduce((j,Q)=>(j[Q]=!0,j),g),g}),Ft=o.computed(()=>{var K;const g={"modal-dialog":!0},T=(K=s.value)==null?void 0:K.split(" ");return T==null||T.reduce((j,Q)=>(j[Q]=!0,j),g),g}),It=()=>z.isMobilePhone()&&!n.isMessager||!!n.fullscreen,kt=o.computed(()=>{const g=document.documentElement.clientWidth,T=document.documentElement.clientHeight,K=Math.min(e.value,g),j=n.position==="right"?"100%":r.value?"auto":`${Math.min(l.value,T-10)}px`,Q=`${(window.innerHeight-(j==="100%"||j==="auto"?0:parseInt(j)))/2}px`,Gt=n.position==="right"?`${window.innerWidth-K}px`:`${(window.innerWidth-K)/2}px`,ke={position:"absolute",top:Q,left:Gt,width:`${K}px`,height:j};return n.mask||(ke.pointerEvents="auto"),ke}),Fe=o.ref(z.getMaxZIndex()||1050),Tt=o.computed(()=>{const g={display:"block",overflow:"hidden"};return n.mask||(g.pointerEvents="none",g.backgroundColor="transparent"),N.value&&(g.backgroundColor="transparent"),g.zIndex=Fe.value,g}),St=o.computed(()=>({"modal-content":!0,"modal-content-has-header":d.value,"is-mobile":It()})),Bt=o.computed(()=>{const g={display:d.value?"":"none"};return g["pointer-events"]=w.value?"auto":"none",g}),Pt=o.computed(()=>({"f-icon":!0,modal_maximize:!0,modalrevert:S.value})),Nt=o.computed(()=>({"modal-body":!0,"f-utils-flex-column":m.value==="iframe","f-utils-fill":!0}));function Ot(){return{height:`${n.footerHeight||60}px`}}const Dt=o.computed(()=>{const g={textAlgin:b.value},T=Ot();return Object.assign(g,T)});function Ie(g){if(g==null||g.stopPropagation(),S.value){S.value=!1,X();return}U(),S.value=!0}async function Rt(g,T){g.handle?await g.handle(T,g)&&t.emit("closed",T):(typeof g.onClick=="string"&&(g.onButtonClick=oe.cloneDeep(g.onClick||""),delete g.onClick),t.emit("buttonClick",{button:g,$event:T}))}function Lt(g){g.width&&(e.value=g.width),g.height&&(l.value=g.height),g.buttons&&(h.value=g.buttons),g.title&&(F.value=g.title)}let fe=null,pe=null;o.onBeforeMount(()=>{N.value=G()}),o.onMounted(()=>{M.value&&!C.value&&(C.value=M.value.parentElement,O.value=C.value,D(R.value,M.value,O.value)),se.value&&document.body.classList.add("modal-open"),fe=Ze(n,t),pe=Qe(n,t)}),o.onUnmounted(()=>{E&&E(),fe&&fe.remove(),pe&&pe.remove()}),t.expose({modalElementRef:M,updateModalOptions:Lt,close:I,maxDialog:Ie,isMaximized:S});function At(){return o.createVNode("div",{class:"action-wrapper",onClick:g=>I(g,!1)},[o.createVNode("span",{class:"close-icon"},[o.createVNode("i",{class:"f-icon f-icon-close"},null)])])}function $t(){return o.createVNode("ul",null,[v.value&&o.createVNode("li",{class:"f-btn-icon f-bare"},[o.createVNode("span",{class:"f-icon modal_minimize"},null)]),u.value&&o.createVNode("li",{onClick:Ie,class:"f-btn-icon f-bare",style:"pointer-events: auto;"},[o.createVNode("span",{class:Pt.value},null)]),f.value&&o.createVNode("li",{class:"f-btn-icon f-bare",onClick:g=>I(g,!1),style:"pointer-events: auto;"},[o.createVNode("span",{class:"f-icon modal_close"},null)])])}function zt(){return o.createVNode("div",{class:"modal-footer",style:Dt.value},[h.value&&h.value.map(g=>{var j;const T=o.ref(g.disabled),K=g.class||((j=g.appearance)==null?void 0:j.class);return o.createVNode("button",{name:g.name,type:"button",disabled:T.value,class:K+(g.iconClass?" btn-icontext":"")+(g.visible===!1?"d-none":""),onClick:Q=>{Rt(g,Q)}},[!!g.iconClass&&o.createVNode("i",{class:g.iconClass},null),g.text])})])}function Ht(){return o.createVNode("div",{ref:R,class:"modal-header",style:Bt.value},[t.slots.headerTemplate?t.slots.headerTemplate():o.createVNode("div",{class:"modal-title"},[V.value&&o.createVNode("span",{class:c.value,style:"margin-right: 8px"},null),o.createVNode("span",{class:"modal-title-label"},[F.value])]),o.createVNode("div",{class:"actions"},[$t()])])}function jt(){return t.slots.footerTemplate?t.slots.footerTemplate():P.value&&zt()}function qt(g){if(g.stopPropagation(),n.allowClickMaskToClose){if(g.target!==B.value)return;I(g,!1)}}function Ut(){var g,T;return o.createVNode("div",{id:a.value,class:Ft.value,style:kt.value,ref:M},[n.showFloatingClose&&At(),o.createVNode("div",{class:St.value},[d.value&&Ht(),o.createVNode("div",{class:Nt.value},[(T=(g=t.slots).default)==null?void 0:T.call(g),m.value==="iframe"&&o.createVNode("iframe",{title:a.value,class:"f-utils-fill",width:"100%",frameborder:"0",src:p.value},null)]),jt()]),!r.value&&M.value&&!S.value&&H(M.value)])}function Wt(g){return g||"body"}return o.watchEffect(()=>{se.value&&(Fe.value=z.getMaxZIndex()||1050)}),()=>o.createVNode(o.Teleport,{to:Wt(n.host)},{default:()=>[se.value&&o.createVNode(o.Transition,{name:"fade",appear:!0},{default:()=>[o.createVNode("div",{ref:B,class:Et.value,style:Tt.value,onClick:qt},[Ut()])]})]})}});function ge(n){if(n.content&&n.content.render)return n.content.render;if(n.render&&typeof n.render=="function")return n.render}function et(n){const t=document.createElement("div");t.style.display="contents";const e=o.createApp({setup(l,i){o.onUnmounted(()=>{document.body.removeChild(t)});const a=o.ref(),s=o.ref(n.class||""),r=o.ref(!!n.showButtons),d=o.ref(!!n.showHeader),c=o.ref(n.showCloseButton==null?!0:n.showCloseButton),f=o.ref(!!n.showFloatingClose),u=o.ref(!0),v=o.ref(n.title||""),m=n.acceptCallback||(()=>{}),p=n.rejectCallback||(()=>{}),b=n.closedCallback||(N=>{}),x=n.resizeHandle||(N=>{}),F=n.stopMoveHandle||(N=>{}),C=ge(n),B=N=>{u.value=!1,e.unmount(),b(N)};return o.onMounted(()=>{}),i.expose({modalRef:a}),()=>o.createVNode(ne,{ref:a,class:s.value,modelValue:u.value,"onUpdate:modelValue":N=>u.value=N,title:v.value,width:n.width,height:n.height,buttons:n.buttons,"show-header":d.value,"show-buttons":r.value,"show-close-button":c.value,"show-max-button":!1,showFloatingClose:f.value,onAccept:m,onCancel:p,fitContent:n.fitContent==null?!0:n.fitContent,onClosed:B,onResize:x,onStopMove:F},{default:()=>[C&&C(e)]})}});return document.body.appendChild(t),e.use(Y.LocaleService.i18n),e.mount(t),e}class tt{constructor(t){k(this,"appContext",null);k(this,"modalRef",o.ref());k(this,"activeModalIndex",o.ref(0));k(this,"modalRefs",{});k(this,"isUseEscCloseModal",o.ref(!1));k(this,"activeModalInstance",o.computed(()=>this.modalRefs[this.activeModalIndex.value]));this.app=t,this.appContext=t?t._context:null}getCurrentModal(){return this.activeModalInstance.value}adaptToWindow(t,e){const{width:l,height:i}={width:window.innerWidth,height:window.innerHeight};return l<t&&(t=l-14),i<e&&(e=i-14),{width:t,height:e}}static show(t){const e=Object.assign({title:"",showButtons:!0,showHeader:!0},t);return et(e)}close(t){var e,l;t?(l=t.value)==null||l.close():(e=this.getCurrentModal())==null||e.close()}open(t){const e=document.createDocumentFragment();t.showMaxButton&&t.fitContent&&(t.showMaxButton=!1);const l=o.shallowRef(Object.assign({title:"",showButtons:!0,showHeader:!0},t)),i=o.ref(!0),a=l.value.acceptCallback||(()=>{}),s=l.value.rejectCallback||(()=>{}),r=l.value.closedCallback||((I,L)=>{}),d=l.value.resizeHandle||(I=>{}),c=t.stopMoveHandle||(I=>{});let f;const u=ge(l.value),v=I=>{var h;i.value=!1;const L=(h=I==null?void 0:I.target)==null?void 0:h.classList.contains("modal_close");r(I,this.isUseEscCloseModal.value?"esc":L?"icon":"button")},m=I=>{v(I),f&&o.nextTick(()=>{if(this.modalRefs[this.activeModalIndex.value]&&delete this.modalRefs[this.activeModalIndex.value],o.render(null,e),f=null,this.modalRef.value=null,this.modalRefs){const L=Object.keys(this.modalRefs).map(h=>Number(h));L.length>0?this.activeModalIndex.value=Math.max(...L):this.activeModalIndex.value=0}this.isUseEscCloseModal.value=!1})},p=I=>{var L;this.isUseEscCloseModal.value=!0,this.activeModalInstance&&((L=this.activeModalInstance.value)==null||L.close(I==null?void 0:I.event))},{width:b,height:x}=l.value,F=this.adaptToWindow(b||500,x||320);Object.assign(l.value,F);const C=()=>o.createVNode(ne,o.mergeProps({ref:this.modalRef,modelValue:i.value,"onUpdate:modelValue":I=>i.value=I},l.value,{isMessager:l.value.class&&l.value.class.indexOf("modal-message")>-1,onAccept:a,onCancel:s,onClosed:m,onResize:d,onEsc:p,onStopMove:c}),{default:()=>[u&&u(this.app)]});return f=(I=>{const L=o.h(C,I);return L.appContext=this.appContext,o.render(L,e),L})({...l.value}),this.activeModalIndex.value++,this.modalRefs[this.activeModalIndex.value]=this.modalRef.value,{update:I=>{l.value={...l.value,...I},f&&o.render(o.cloneVNode(f,{...l}),e)},destroy:m,modalRef:this.activeModalInstance,close:()=>this.close()}}}const ye=Symbol("FModalService");ne.install=n=>{n.component(ne.name,ne);const t=new tt(n);n.provide(ye,t),n.provide("FModalService",t)};function be(n,t){function e(){const l=n.beforeOpen||n.beforeClickButton||null;let i=Promise.resolve(!0);if(l){const a=l(t.value);if(typeof a>"u")return i;typeof a=="boolean"?i=Promise.resolve(a):i=a}return i}return{judgeCanOpen:e}}function nt(n,t,e,l,i){const a=o.ref(n.buttonBehavior),s=o.ref(n.popupOnInput),r=o.computed(()=>({"input-group-append":!0,"append-force-show":n.showButtonWhenDisabled&&(n.readonly||n.disable)})),{judgeCanOpen:d}=be(n,i),c=o.computed(()=>n.showButtonWhenDisabled||(!n.editable||!n.readonly)&&!n.disable),f=o.inject(ye,null),u=o.ref();async function v(b){if(await d()&&c.value){const x=!!t.slots.default;if(a.value==="Modal"){const F=n.modalOptions,C=f==null?void 0:f.open({...F,render:()=>t.slots.default&&t.slots.default()});u.value=C==null?void 0:C.modalRef}a.value==="Overlay"&&Xe.show({host:document.body,backgroundColor:"rgba(0,0,0,.15)",render:()=>t.slots.default&&t.slots.default()}),x&&a.value==="Popup"&&l.togglePopup(!0),x&&s.value&&l.hidePopup(),t.emit("clickButton",{origin:b,value:n.modelValue})}}function m(b){t.emit("mouseEnterIcon",b)}function p(b){t.emit("mouseLeaveIcon",b)}return{buttonGroupClass:r,onClickButton:v,onMouseEnterButton:m,onMouseLeaveButton:p,modalRef:u}}function ot(n,t,e,l,i,a){const s=o.ref(!1),r=o.computed(()=>n.enableClear&&!n.readonly&&!n.disable),{changeTextBoxValue:d,hasClearClass:c}=a;function f(p){s.value=p,c.value=p}o.watch(i,()=>{f(!!i.value)});function u(p){const b=!n.readonly&&!n.disable&&n.editable,x=!n.editable;p.stopPropagation(),(b||x)&&(d(""),i.value="",f(!s.value),t.emit("clear"))}function v(p){if(r.value){if(!e.value){f(!1);return}!n.disable&&!n.readonly&&f(!0)}}function m(p){r.value&&f(!1)}return{enableClearButton:r,showClearButton:s,onClearValue:u,onMouseEnterTextBox:v,onMouseLeaveTextBox:m}}function it(n,t,e,l,i){const a=o.computed(()=>n.popupOnInput),s=o.computed(()=>n.popupOnFocus),{shouldPopupContent:r,closeAllPopover:d}=i,c=o.ref(!1),f=o.computed(()=>n.enableTitle?e.value:""),u=o.computed(()=>(n.disable||n.readonly)&&!n.forcePlaceholder?"":n.placeholder),v=o.computed(()=>n.readonly||!n.editable),m=o.ref(!1),p=o.computed(()=>!n.disable&&m.value),b=o.computed(()=>({"text-left":n.textAlign==="left","text-center":n.textAlign==="center","text-right":n.textAlign==="right","form-control":!0,"f-utils-fill":!0})),x=o.computed(()=>({"input-group":!0,"f-state-disabled":n.disable,"f-state-editable":n.editable&&!n.disable&&!n.readonly,"f-state-readonly":n.readonly,"f-state-focus":p.value,"input-group--has-clear":n.enableClear&&c.value}));function F(M,S=!0){e.value=M,S&&(t.emit("change",M),t.emit("update:modelValue",M))}function C(M){r.value=!1,F(M,!0)}o.watch(()=>n.modelValue,M=>{e.value=M});function B(M){m.value=!1,t.emit("blur",M),M.stopPropagation()}function N(M){t.emit("click",M),d(),t.slots.default&&!n.disable&&!n.readonly&&n.popupOnClick&&i.togglePopup()}function I(M){!n.disable&&!n.readonly&&(m.value=!0,v.value||(t.emit("focus",M),s.value&&!r.value&&i.popup()))}function L(M){t.emit("input",M);const S=M.target.value;l.value=S,e.value!==S&&F(S,n.updateOn==="change"),a.value&&!r.value&&i.popup()}function h(M){M.target.tagName!=="INPUT"&&M.preventDefault(),M.stopPropagation()}function V(M){t.emit("keydown",M)}function P(M){M.key==="Enter"&&(a.value||s.value)&&i.hidePopup(),t.emit("keyup",M)}function R(M){const S=M.target.value;M.stopPropagation(),F(S)}return{hasFocusedTextBox:p,isTextBoxReadonly:v,textBoxClass:b,textBoxPlaceholder:u,textBoxTitle:f,inputGroupClass:x,hasClearClass:c,changeTextBoxValue:F,commitValue:C,onBlurTextBox:B,onClickTextBox:N,onFocusTextBox:I,onInput:L,onKeyDownTextBox:V,onKeyUpTextBox:P,onMouseDownTextBox:h,onTextBoxValueChange:R}}const Z="FarrisVue_PopoverInstancesKey";function lt(n,t,e,l){const i=o.ref(),a=o.ref(!1),{judgeCanOpen:s}=be(n,l);o.watch(()=>i.value,(m,p)=>{window[Z]=window[Z]||new WeakMap,m?window[Z].set(e.value,m):window[Z].delete(e.value)});function r(){if(window[Z]){const m=window[Z];document.querySelectorAll(".f-button-edit,.v-popover").forEach(p=>{const b=m.get(p);b&&p!==e.value&&!e.value.closest(".popover-fitcontent")&&b.hide()})}}function d(){const m=i.value;m&&m.show(e.value)}async function c(m=!1){if(!!t.slots.default){if(!m&&!a.value&&!await s())return;a.value=!a.value,a.value&&(await o.nextTick(),d())}}async function f(m=!1){if(!!t.slots.default){if(!m&&!await s())return;a.value=!0,await o.nextTick(),d()}}function u(){a.value=!1}function v(){a.value=!0,o.nextTick(()=>{d()})}return{hidePopup:u,showPopup:v,popup:f,shouldPopupContent:a,togglePopup:c,popoverRef:i,closeAllPopover:r}}function at(n,t,e){const l=o.ref(),{isTextBoxReadonly:i,textBoxClass:a,textBoxPlaceholder:s,textBoxTitle:r,onBlurTextBox:d,onClickTextBox:c,onFocusTextBox:f,onInput:u,onKeyDownTextBox:v,onKeyUpTextBox:m,onMouseDownTextBox:p,onTextBoxValueChange:b}=e,x=o.ref(n.id),{uuid:F}=z.useGuid(),C=o.computed(()=>({}));o.onMounted(()=>{var h,V;n.selectOnCreated&&((h=l.value)==null||h.select()),n.focusOnCreated&&((V=l.value)==null||V.focus({preventScroll:!0})),x.value||(x.value="button-edit_"+F(8)),x.value=x.value+"-textbox"});const B=o.ref(!1),N=h=>{h.preventDefault(),B.value=!0},I=h=>{h.preventDefault(),B.value=!1,u(h)};function L(h){B.value||u(h)}return()=>o.createVNode("input",{id:n.id?n.id+"-textbox":void 0,ref:l,name:"input-group-value",autocomplete:n.autoComplete?"on":"off",class:a.value,style:C.value,disabled:n.disable,maxlength:n.maxLength,minlength:n.minLength,placeholder:s.value,readonly:i.value,tabindex:n.tabIndex,title:r.value,type:n.inputType,value:t.value,onBlur:d,onChange:b,onClick:c,onFocus:f,onInput:L,onKeydown:v,onKeyup:m,onMousedown:p,onCompositionend:I,onCompositionstart:N},null)}function st(n,t,e){const l=o.ref(n.separator),i=o.computed(()=>n.readonly||n.disable),{changeTextBoxValue:a,onFocusTextBox:s,onBlurTextBox:r,onClickTextBox:d,textBoxPlaceholder:c}=e,f=o.computed(()=>t.value?t.value.split(l.value).map(p=>({name:p,selectable:!0})):[]);function u(p){a(p.map(b=>b.name).join(l.value),!0)}o.watch(()=>n.separator,p=>{l.value=p});const v=o.ref(!n.disable&&!n.readonly);o.watch([()=>n.disable,()=>n.readonly],([p,b],[x,F])=>{v.value=!p&&!b});function m(p){d(p)}return()=>o.createVNode(Te,{tabindex:n.tabIndex,onFocus:s,onBlur:r,id:`${n.id}-tag-editor`,class:"form-control",placeholder:c.value,data:f.value,showClose:!i.value,showInput:!0,disable:i.value,onChange:u,onClick:m},null)}function rt(n,t,e,l){const{buttonGroupClass:i,onClickButton:a,onMouseEnterButton:s,onMouseLeaveButton:r}=e,{enableClearButton:d,showClearButton:c,onClearValue:f}=l,u=o.ref(),v=oe.debounce(x=>{a(x)},n.buttonBehavior==="Modal"?0:200),m=()=>{t.emit("beforeClearValue")},p=o.computed(()=>({"input-group-append input-append-wrapper":!0,"input-append-button":n.expandMode==="button","input-append-text":n.expandMode==="text","d-none":!!n.expandDisabled})),b=()=>{t.emit("expandClick")};return{renderButtonGroup:()=>o.createVNode("div",{id:n.id?`${n.id}-button-group`:void 0,class:i.value},[d.value&&o.withDirectives(o.createVNode("span",{class:"input-group-text input-group-clear",onClick:f,onMousedown:m},[o.createVNode("i",{class:"f-icon modal_close"},null)]),[[o.vShow,c.value]]),t.slots.buttonContent?o.createVNode("span",{class:"input-group-text input-group-append-button",onClick:v,onMouseenter:s,onMouseleave:r},[t.slots.buttonContent()]):n.buttonContent?o.createVNode("span",{class:"input-group-text input-group-append-button",innerHTML:n.buttonContent,ref:u,onClick:x=>v(x),onMouseenter:s,onMouseleave:r},null):null,n.expandable&&o.createVNode("div",{class:p.value,onClick:b},[o.createVNode("div",{class:"input-group-text"},[n.expandContent])])]),buttonHandleElement:u}}function dt(n,t,e){const l=o.ref(n.popupMinWidth),{hidePopup:i,popoverRef:a}=e,s=()=>{t.emit("shown")};return()=>o.createVNode(Se,{id:`${n.id}-popover`,ref:a,placement:n.placement,host:n.popupHost,"keep-width-with-reference":n.keepWidthWithReference,fitContent:!0,"right-boundary":n.popupRightBoundary,minWidth:l.value,class:n.popupClass,offsetX:n.popupOffsetX,onHidden:i,onShown:s,beforeClose:n.beforeClosePopup,limitContentBySpace:n.limitContentBySpace},{default:()=>{var r,d;return[(d=(r=t.slots).default)==null?void 0:d.call(r)]}})}const ut=o.defineComponent({name:"FButtonEdit",props:qe,emits:["updateExtendInfo","clear","change","click","clickButton","blur","focus","mouseEnterIcon","mouseLeaveIcon","keyup","keydown","inputClick","input","update:modelValue","beforeClearValue","expandClick"],setup(n,t){const e=o.ref(),l=o.ref(n.customClass),i=o.ref(n.modelValue),a=lt(n,t,e,i),{shouldPopupContent:s,hidePopup:r,showPopup:d,togglePopup:c}=a,f=nt(n,t,e,a,i),u=o.ref(""),v=it(n,t,i,u,a),{hasFocusedTextBox:m,commitValue:p,inputGroupClass:b}=v,x=ot(n,t,i,m,u,v),{onMouseEnterTextBox:F,onMouseLeaveTextBox:C}=x,B=o.ref(!1),N=o.computed(()=>{const O={"f-button-edit":!0,"f-cmp-inputgroup":!0,"f-button-edit-nowrap":!n.wrapText};return l.value&&l.value.split(" ").reduce((W,w)=>(W[w]=!0,W),O),O}),I=o.computed(()=>({overflow:n.wrapText?"hidden":""})),L=o.computed(()=>({}));function h(){if(!n.multiSelect||n.inputType!=="tag"||!e.value)return 0;let O=0;const W=Array.from(e.value.querySelectorAll(".farris-tag-item"));return W&&W.length&&(O=W.map(w=>w.offsetTop).filter(w=>w>20).length),O}const V=o.ref(h());o.onUpdated(()=>{V.value=h()});function P(){return n.multiSelect&&n.inputType==="tag"?()=>o.createVNode(o.Fragment,null,[st(n,i,v)(),!!V.value&&o.createVNode("div",{class:"d-flex flex-row mr-2 more-tags","more-tags":!0},[o.createVNode("span",{class:"multi--more-text"},[o.createTextVNode("+"),V.value])])]):at(n,i,v)}let R=P();o.watch([()=>n.multiSelect,()=>n.inputType],()=>{R=P()});const{renderButtonGroup:M,buttonHandleElement:S}=rt(n,t,f,x),H=dt(n,t,a),U=o.ref(s.value),X={displayText:u,commitValue:p,elementRef:e,hidePopup:r,showPopup:d,popoverRef:a.popoverRef,shouldPopupContent:s,togglePopup:c,openDialog:()=>{S.value&&n.buttonBehavior==="Modal"&&S.value.click()},getModal:()=>{var O;return n.buttonBehavior==="Modal"?(O=f.modalRef.value)==null?void 0:O.value:null},getTextbox:()=>{var O;return(O=e.value)==null?void 0:O.querySelector("input")},forceClosePopup:()=>{U.value=!1,B.value=!0,s.value=!1}};return o.onMounted(()=>{e.value.componentInstance=X,window.onresize=()=>{document.body.click()}}),o.onBeforeUnmount(()=>{var O;window.onresize=null,(O=window[Z])==null||O.delete(e.value)}),t.expose(X),o.watch(()=>s.value,async(O,W)=>{if(B.value){U.value=O,B.value=!1;return}if(!O&&n.beforeClosePopup&&typeof n.beforeClosePopup=="function"){try{const w=await n.beforeClosePopup();U.value=!w,(!w||n.readonly)&&(s.value=!0)}catch(w){console.error("Error in beforeClosePopup:",w),U.value=W,s.value=W}return}U.value=O}),()=>{var O,W;return o.createVNode(o.Fragment,null,[o.createVNode("div",o.mergeProps(t.attrs,{ref:e,class:N.value,id:n.id?n.id:void 0,style:I.value}),[o.createVNode("div",{id:n.id?`${n.id}-input-group`:void 0,class:b.value,style:L.value,onMouseenter:F,onMouseleave:C},[(W=(O=t.slots).precontent)==null?void 0:W.call(O),R(),M()])]),U.value&&H()])}}});function ve(n,t,e){return t}function Ce(n,t,e){return t}const we=new Map([["appearance",_.resolveAppearance]]),xe=new Map([]),Ve={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/radio-group.schema.json",title:"item-collection-editor",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a item-collection-editor",type:"string"},type:{description:"The type string of item-collection-editor component",type:"string",default:"item-collection-editor"},requiredFields:{description:"",type:"array",default:[]},uniqueFields:{description:"",type:"array",default:[]},dynamicMappingKeys:{type:"boolean",default:!1},columns:{description:"",type:"array",default:[]},modalTitle:{description:"",type:"string",default:""},canEmpty:{description:"",type:"boolean",default:!0},valueField:{description:"",type:"string",default:"value"},nameField:{description:"",type:"string",default:"name"},idField:{description:"",type:"string",default:"value"},readonly:{description:"",type:"boolean",default:!1},modelValue:{description:"",type:"string",default:""},beforeSubmit:{description:"",type:"object",default:null},title:{description:"",type:"string",default:"项编辑器"},modalWidth:{description:"",type:"number",default:900},modalHeight:{description:"",type:"number",default:600}},required:["id","type"],ignore:[]},de={requiredFields:{type:Array,default:[]},uniqueFields:{type:Array,default:[]},dynamicMappingKeys:{type:Boolean,default:!1},columns:{type:Array,default:[]},modalTitle:{type:String,default:"项编辑器"},canEmpty:{type:Boolean,default:!0},valueField:{type:String,default:"value"},nameField:{type:String,default:"name"},idField:{type:String,default:"value"},readonly:{type:Boolean,default:!1},modelValue:{type:Array,default:[]},beforeSubmit:{type:Function,default:null},title:{type:String,default:"项编辑器"},modalWidth:{type:Number,default:900},modalHeight:{type:Number,default:600}};_.createPropsResolver(de,Ve,xe,Ce);const ct=_.getPropsResolverGenerator(de,Ve,xe,Ce),ft={requiredFields:{type:Array,default:[]},uniqueFields:{type:Array,default:[]},dynamicMappingKeys:{type:Boolean,default:!1},columns:{type:Array,default:[]},canEmpty:{type:Boolean,default:!0},valueField:{type:String,default:"value"},nameField:{type:String,default:"value"},datas:{type:Array,default:[]},readonly:{type:Boolean,default:!1},commandOption:{type:Object,default:{enable:!1}}},pt=o.defineComponent({name:"FItemCollectionEditorInner",props:ft,emits:["change"],setup(n,t){let e="";const{guid:l}=z.useGuid(),i=new Pe.FNotifyService,a=o.ref(n.valueField),s=o.ref(n.nameField),r={editMode:"cell"},d={fitColumns:!0},c=o.ref(),f=n.columns;let u=n.datas;o.watch(()=>[n.datas],()=>{u=n.datas,c.value.updateDataSource(u)});function v(){const h={};return f.forEach(V=>{V.editor&&(V.editor.type==="checkbox"||V.editor.type==="switch")?h[V.field]=!1:h[V.field]=""}),h}function m(){if(n.dynamicMappingKeys){const h="请先填写XXX。",V=a.value.trim()?s.value.trim()?"":"枚举名称字段":"枚举值字段";return i.warning({position:"top-center",message:h.replace("XXX",V)}),!1}return!0}function p(h){const V="不允许重复。";if(!m())return!1;if(!h||h.length===0)return n.canEmpty?!0:(i.warning({position:"top-center",message:"请添加值。"}),!1);const P=n.requiredFields||[],R="不允许为空。";for(const S of h)for(const H of Object.keys(S)){const U=f.find(X=>X.field===H);if(U&&U.editor&&(U.editor.type==="checkbox"||U.editor.type==="switch")){if(P.includes(H)&&(S[H]===null||S[H]===void 0))return i.warning({position:"top-center",message:U.title+R}),!1}else if(P.includes(H)&&(S[H]===void 0||S[H]===""||S[H]===null))return i.warning({position:"top-center",message:U.title+R}),!1}const M=n.uniqueFields||[];for(const S of M){const H=h.map(O=>O[S]),U=new Set(H),X=Array.from(U);if(H.length!==X.length){const O=f.find(W=>W.field===S);return i.warning({position:"top-center",message:O.title+V}),!1}}return!0}function b(){if(n.readonly||!m())return;const h=v(),V=l();u.push({hId:V,...h}),c.value.updateDataSource(u),c.value.selectRowById(V)}function x(h){u&&u.length>0?(h||(h=u[0].hId),c.value.selectRowById(h)):e=""}function F(){if(!e){i.warning({position:"top-center",message:"请先选中行!"});return}const h=u.findIndex(R=>R.hId===e);u=[...u.filter(R=>R.hId!==e)],c.value.updateDataSource(u);let P="";h<u.length&&u.length>0&&(P=u[h].hId),x(P)}function C(h){if(!h||h.length===0)return h;const V=[];return h.forEach(P=>{const{value:R,name:M,...S}=P,H=Object.assign({},S);H[a.value.trim()]=R,H[s.value.trim()]=M,V.push(H)}),V}function B(){c.value.endEditCell();const h=[];return u.forEach(V=>{const{hId:P,...R}=V,M={};for(const S in R)S.startsWith("_")||(M[S]=R[S]);h.push(M)}),h}function N(){let h=B();return p(h)?(n.dynamicMappingKeys?(h=C(h),t.emit("change",h,void 0,{valueField:a.value.trim(),nameField:s.value.trim()})):t.emit("change",h,void 0,null),!0):!1}function I(){return u}t.expose({clickConfirm:N,getItems:B,getDataGridDatas:I}),o.onMounted(()=>{x()});function L(h){var V;e=(V=h[0])==null?void 0:V.hId}return()=>o.createVNode("div",{class:"f-utils-fill-flex-column h-100"},[!n.readonly&&o.createVNode("div",{class:"mb-1 py-1 ml-1"},[o.createVNode("button",{class:"btn f-rt-btn f-btn-ml btn-primary",onClick:()=>b()},[o.createTextVNode("新增")]),o.createVNode("button",{class:"btn f-rt-btn f-btn-ml btn-secondary",onClick:()=>F()},[o.createTextVNode("删除")])]),o.createVNode("div",{class:"f-utils-fill border",style:"margin:0 8px;border-radius:12px;"},[o.createVNode(Be,{ref:c,showBorder:!0,idField:"hId",columns:f,data:u,editable:!n.readonly,"edit-option":r,columnOption:d,commandOption:n.commandOption,fit:!0,onSelectionChange:L},null)])])}}),mt={showCloseButton:{type:Boolean,default:!0},position:{type:String,default:"top-center"},timeout:{type:Number,default:3e3},theme:{type:String,default:"bootstrap"},left:{type:Number},right:{type:Number},top:{type:Number},bottom:{type:Number},id:{type:String},animate:{type:String,default:"fadeIn"},options:{type:Object},safeHtml:{type:Boolean,default:!0}},ht={showCloseButton:{type:Boolean,default:!0},animate:{type:String,default:"fadeIn"},options:{type:Object}},ue=o.defineComponent({name:"Toast",props:ht,emits:["close","click"],setup:(n,t)=>{const e=o.ref(n.animate),l="fadeOut",i=o.computed(()=>n.options),a=o.ref(!1),s=o.computed(()=>i.value.title&&i.value.message),r=o.computed(()=>!i.value.title&&i.value.message),d=o.computed(()=>{const C={animated:a.value,toast:!0,"toast--only-content":!s.value};return C[n.animate]=!1,C[l]=a.value,C["toasty-type-"+i.value.type]=!0,i.value.theme&&(C[i.value.theme]=!0),C}),c=o.computed(()=>{const N=`f-icon-${i.value&&i.value.type?i.value.type.replace("toasty-type-",""):"default"}`,I={"f-icon":!0};return I[N]=!0,I}),f=o.computed(()=>i.value.title||i.value.message),u=o.computed(()=>n.showCloseButton),v=o.computed(()=>!!i.value.buttons||!!t.slots.default),m=o.computed(()=>Y.LocaleService.getLocale()==="en"?{wordBreak:"keep-all",overflowWrap:"break-word"}:{});function p(C){C.stopPropagation(),C.preventDefault(),a.value=!1,setTimeout(()=>{t.emit("close",i.value)},200)}function b(C,B){}function x(C){return`f-preten-link ${C.customClass?C.customClass:""}`}o.watch(e,()=>{e.value});const F=()=>{var C;return o.createVNode(o.Fragment,null,[o.createVNode("div",{class:"after-toast-msg text-right"},[!t.slots.default&&((C=i.value.buttons)==null?void 0:C.map(B=>o.createVNode("span",{class:x(B),onClick:N=>void 0},[B.text]))),t.slots.default&&t.slots.default()])])};return()=>o.createVNode("div",{class:d.value,style:"min-height:44px"},[u.value&&o.createVNode("button",{title:Y.LocaleService.getLocaleValue("messageBox.close"),class:"toast-close f-btn-icon f-bare",onClick:p},[o.createVNode("span",{class:"f-icon modal_close"},null)]),f.value&&o.createVNode("section",{class:"modal-tips"},[!s.value&&o.createVNode("div",{class:"float-left modal-tips-iconwrap"},[o.createVNode("span",{class:c.value},null)]),o.createVNode("div",{class:"modal-tips-content"},[s.value&&o.createVNode(o.Fragment,null,[o.createVNode("h5",{class:"toast-title modal-tips-title",innerHTML:i.value.title},null),o.createVNode("p",{class:"toast-msg",innerHTML:i.value.message,style:m.value},null),v.value&&F()]),r.value&&(i.value.buttons?o.createVNode("div",{class:"toast-title-btns-wrapper d-flex"},[o.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:m.value,innerHTML:i.value.message},null),o.createVNode("div",{class:"after-toast-title text-right ml-auto"},[F()])]):o.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:m.value,innerHTML:i.value.message},null))])])])}}),gt=["moz","ms","webkit"];function yt(){let n=0;return t=>{const e=new Date().getTime(),l=Math.max(0,16-(e-n)),i=setTimeout(()=>{t(e+l)},l);return n=e+l,i}}function bt(){if(typeof window>"u")return()=>0;if(window.requestAnimationFrame)return window.requestAnimationFrame.bind(window);const n=gt.filter(t=>`${t}RequestAnimationFrame`in window)[0];return n?window[`${n}RequestAnimationFrame`]:yt()}bt();function vt(){const n=navigator.userAgent||navigator.vendor||window.opera,t=[/iPhone/i,/iPod/i,/Android.*Mobile/i,/webOS/i,/BlackBerry/i,/IEMobile/i,/Opera Mini/i,/Harmony/i],e=[/iPad/i,/Android(?!.*Mobile)/i,/Tablet/i,/PlayBook/i,/Kindle/i,/Silk/i];for(const r of e)if(r.test(n))return!1;for(const r of t)if(r.test(n))return!0;const l="ontouchstart"in window||navigator.maxTouchPoints>0,i=screen.width,a=screen.height,s=Math.min(i,a);return!!(l&&s<=768)}const ae=o.defineComponent({name:"Notify",props:mt,emits:["close","empty"],setup(n,t){var b;const e=vt(),i=`farris-notify-${(b=n.options)!=null&&b.type?n.options.type:"info"}}`,a=o.computed(()=>({"farris-notify":!0,[i]:e})),s={left:12,right:12,top:20,bottom:12},r=o.ref(),d=o.ref(n.options),c=o.ref(n.showCloseButton),f=o.computed(()=>n.position||"bottom-right"),u=o.computed(()=>n.timeout!=null?n.timeout:3e3),v=o.computed(()=>{const x=n.bottom?n.bottom:s.bottom,F=n.top?n.top:s.top,C={transition:"all 0.2s ease",left:f.value.indexOf("left")>-1?`${n.left?n.left:s.left}px`:"",right:f.value.indexOf("right")>-1?`${n.right?n.right:s.right}px`:"",top:f.value.indexOf("top")>-1?`${F}px`:"",bottom:f.value.indexOf("bottom")>-1?`${x}px`:""};return f.value.indexOf("center")>-1&&(C.left="50%",C.marginLeft="calc(-24rem / 2)",f.value==="center-center"&&(C.top="50%",C.transform="translate(-50%, -50%)")),C});function m(x){t.emit("close")}u.value&&setTimeout(()=>{m()},u.value),t.expose({closeToast:m,container:r,notifyPosition:f});function p(x,F){m()}return()=>{var x;return e?o.createVNode("div",{class:a.value,ref:r},[(x=n.options)==null?void 0:x.message]):o.createVNode("div",{class:a.value,style:v.value,ref:r},[o.createVNode(ue,{options:d.value,showCloseButton:c.value,animate:n.animate,onClose:F=>p(F,d.value)},null)])}}});class Ct{constructor(){k(this,"notifyRefs",[]);k(this,"globalConfig",o.reactive({}))}escapeAllHtml(t){if(typeof t!="string"||!t)return"";const e=document.createElement("div");return e.textContent=t||"",e.innerHTML.replace(/\\n/g,"<br>").replace(/\\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;").replace(/\\r/g,"")}createNotifyInstance(t){const e=this,i=Object.assign({timeout:3e3,position:"bottom-right",showCloseButton:!0,safeHtml:!0},this.globalConfig,{...t}),a=document.createElement("div");a.style.display="contents";const s=o.createApp({setup(){var c;const r=o.ref();function d(){r.value.container.style.transform="scale(0)",setTimeout(()=>{e.updateNotifyPositionForClose(i,r),s.unmount()},220)}if(i.position.indexOf("top")>-1){const f=e.getNotifyInstances(i.position),u=f[f.length-1];if(u){const v=u.value.container.getBoundingClientRect();i.top=v.bottom}}return i.safeHtml&&((c=i.options)!=null&&c.message)&&(i.options.message=e.escapeAllHtml(i.options.message)),o.onUnmounted(()=>{document.body.removeChild(a)}),o.onMounted(()=>{e.updateNotifyPositionForCreate(i,r)}),()=>o.createVNode(o.Transition,{mode:"out-in",name:"fade",appear:!0},{default:()=>[o.createVNode(ae,o.mergeProps({ref:r},i,{onClose:d}),null)]})}});return s.provide("NotifyService",this),document.body.appendChild(a),s.use(Y.LocaleService.i18n),s.mount(a),s}getNotifyInstances(t){return this.notifyRefs.filter(e=>e.value.notifyPosition===t)}updateNotifyPositionForCreate(t,e){if(this.notifyRefs&&this.notifyRefs.length){const l=window.innerHeight;t.position.indexOf("bottom")>-1&&this.getNotifyInstances(t.position).forEach(i=>{const a=i.value.container.getBoundingClientRect();i.value.container.style.bottom=a.height+l-a.bottom+"px"})}this.notifyRefs=[...this.notifyRefs,e]}updateNotifyPositionForClose(t,e){const l=this.notifyRefs.indexOf(e);if(t.position.indexOf("top")>-1){const i=this.getNotifyInstances(t.position),a=i.indexOf(e);i.slice(a+1).forEach(s=>{s.value.container.style.top=s.value.container.offsetTop-s.value.container.offsetHeight+"px"})}l>-1&&this.notifyRefs.splice(l,1)}show(t){return this.createNotifyInstance(t)}buildNotifyProps(t,e){let l="",i="",a,s,r;typeof e=="string"?l=e:e&&(l=e.message||"",i=e.title||"",s=e.position||null,r=e.showCloseButton!=null?e.showCloseButton:null,a=e.timeout!=null?e.timeout:null);const c={options:{type:t,message:l,title:i}};return s!=null&&(c.position=s),r!=null&&(c.showCloseButton=r),a!=null&&(c.timeout=a),c}info(t){const e=this.buildNotifyProps("info",t);return this.show(e)}success(t){const e=this.buildNotifyProps("success",t);return this.show(e)}warning(t){const e=this.buildNotifyProps("warning",t);return this.show(e)}error(t){const e=this.buildNotifyProps("error",t);return this.show(e)}close(t){t&&t.unmount()}closeAll(){this.notifyRefs.forEach(t=>{t==null||t.value.closeToast()}),this.notifyRefs.length=0}}const Me=Symbol("NOTIFY_SERVICE_TOKEN");ae.install=n=>{n.component(ae.name,ae),n.component(ue.name,ue);const t=new Ct;n.provide(Me,t),n.provide("FNotifyService",t)};const wt=o.defineComponent({name:"FItemCollectionEditor",props:de,components:{},emits:["change"],setup(n,t){const e=o.inject(Me),{guid:l}=z.useGuid(),i=o.ref(`共 ${(n.modelValue||[]).length} 项`),a=o.ref(n.valueField),s=o.ref(n.nameField),r=o.ref();function d(){let m=[];return n.dynamicMappingKeys?(m=[],a.value=a.value.trim(),s.value=s.value.trim(),(n.modelValue||[]).forEach(p=>{if(a.value&&s.value){const{[a.value]:b,[s.value]:x,...F}=p,C=F||{};C.value=b,C.name=x,C.hId=l(),m.push(C)}})):(m=oe.cloneDeep(n.modelValue||[]),m.forEach(p=>{p.hId=l()})),m}function c(){let m=[];return n.columns&&n.columns.length>0?m=n.columns:m=[{field:n.valueField,title:"值",dataType:"string"},{field:n.nameField,title:"名称",dataType:"string"}],m}function f(){}const u={fitContent:!1,width:n.modalWidth||900,height:n.modalHeight||600,title:n.title||"项编辑器",resizeable:!0,draggable:!0,minWidth:500,minHeight:300,buttons:[{name:"cancel",text:"取消",class:"btn btn-secondary",handle:m=>!0},{name:"accept",text:"确定",class:"btn btn-primary",handle:async m=>{if(n.beforeSubmit&&typeof n.beforeSubmit=="function"){const b=r.value.getItems();if(!await n.beforeSubmit({notifyService:e,data:b}))return!1}return!!r.value.clickConfirm()}}]};function v(m,p,b){i.value=`共 ${m.length} 项`,t.emit("change",m,p,b)}return o.watch(()=>n.modelValue,m=>{i.value=`共 ${(n.modelValue||[]).length} 项`}),o.onMounted(()=>{}),()=>o.createVNode(ut,{"button-behavior":"Modal","modal-options":u,modelValue:i.value,"onUpdate:modelValue":m=>i.value=m,editable:!1,beforeOpen:f},{default:()=>[o.createVNode("div",{class:"f-utils-absolute-all f-utils-flex-column"},[n.dynamicMappingKeys&&o.createVNode("div",{class:"farris-form-controls-inline p-2 f-form-layout farris-form f-form-lable-auto"},[o.createVNode("div",{class:"farris-group-wrap mr-3"},[o.createVNode("div",{class:"form-group farris-form-group"},[o.createVNode("label",{class:"col-form-label"},[o.createVNode("span",{class:"farris-label-info text-danger"},[o.createTextVNode("*")]),o.createVNode("span",{class:"farris-label-text"},[o.createTextVNode("枚举值字段")])]),o.createVNode("div",{class:"farris-input-wrap"},[o.withDirectives(o.createVNode("input",{type:"input",class:"form-control","onUpdate:modelValue":m=>a.value=m,readonly:n.readonly},null),[[o.vModelText,a.value]])])])]),o.createVNode("div",{class:"farris-group-wrap"},[o.createVNode("div",{class:"form-group farris-form-group"},[o.createVNode("label",{class:"col-form-label"},[o.createVNode("span",{class:"farris-label-info text-danger"},[o.createTextVNode("*")]),o.createVNode("span",{class:"farris-label-text"},[o.createTextVNode("枚举名称字段")])]),o.createVNode("div",{class:"farris-input-wrap"},[o.withDirectives(o.createVNode("input",{type:"input",class:"form-control","onUpdate:modelValue":m=>s.value=m,readonly:n.readonly},null),[[o.vModelText,s.value]])])])])]),o.createVNode(pt,{ref:r,valueField:a.value,nameField:s.value,requiredFields:n.requiredFields,uniqueFields:n.uniqueFields,dynamicMappingKeys:n.dynamicMappingKeys,readonly:n.readonly,canEmpty:n.canEmpty,datas:d(),columns:c(),onChange:(m,p,b)=>v(m,p,b)},null)])]})}}),Ee={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/radio-group.schema.json",title:"radio-group",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a radio-group",type:"string"},type:{description:"The type string of radio-group component",type:"string",default:"radio-group"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disabled:{type:"boolean",default:!1},readonly:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0},textField:{description:"",type:"string",default:"name"},valueField:{description:"",type:"string",default:"value"},dataSourceType:{description:"",type:"string",default:"static"},data:{description:"",type:"array"},bindDataSource:{description:"",type:"string",default:""},direction:{description:"",type:"string",default:"horizontal"},onChange:{description:"值变化事件",type:"string"}},required:["type"],ignore:["id","appearance","binding","visible"]},xt=_.createPropsResolver(re.radioGroupProps,Ee,we,ve),ce=_.getPropsResolverGenerator(re.radioGroupProps,Ee,we,ve);te.register=(n,t,e,l,i)=>{n["radio-group"]=re,t["radio-group"]=ce(i),n["item-collection-editor"]=wt,t["item-collection-editor"]=ct(i)},te.registerDesigner=(n,t,e,l)=>{n["radio-group"]=te,t["radio-group"]=ce(l)};const Vt=z.withInstall(te);$.FRadioGroupDesign=te,$.default=Vt,$.propsResolver=xt,$.propsResolverGenerator=ce,Object.defineProperties($,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});