@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,4 +1,4 @@
1
- (function(H,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("../dynamic-resolver/index.umd.js"),require("../common/index.umd.js"),require("../designer-canvas/index.umd.js"),require("../button-edit/index.umd.js"),require("../locale/index.umd.js"),require("../list-view/index.umd.js"),require("lodash-es"),require("../../designer/button-edit/index.umd.js"),require("../property-panel/index.umd.js"),require("../tree-view/index.umd.js"),require("../button/index.umd.js"),require("../field-selector/index.umd.js"),require("../tags/index.umd.js"),require("../popover/index.umd.js"),require("bignumber.js")):typeof define=="function"&&define.amd?define(["exports","vue","../dynamic-resolver/index.umd.js","../common/index.umd.js","../designer-canvas/index.umd.js","../button-edit/index.umd.js","../locale/index.umd.js","../list-view/index.umd.js","lodash-es","../../designer/button-edit/index.umd.js","../property-panel/index.umd.js","../tree-view/index.umd.js","../button/index.umd.js","../field-selector/index.umd.js","../tags/index.umd.js","../popover/index.umd.js","bignumber.js"],t):(H=typeof globalThis<"u"?globalThis:H||self,t(H["expression-editor"]={},H.Vue,H.dynamicResolver,H.common,H.designerCanvas,H.FButtonEdit$1,H.locale,H.FListView,H.LodashES,H.FButtonEditDesign,H.propertyPanel,H.FTreeView,null,null,H.FTags,H.FPopover))})(this,function(H,t,U,_,se,he,G,at,ne,ot,it,lt,Na,Ma,rt,st){"use strict";var Ta=Object.defineProperty;var Sa=(H,t,U)=>t in H?Ta(H,t,{enumerable:!0,configurable:!0,writable:!0,value:U}):H[t]=U;var X=(H,t,U)=>Sa(H,typeof t!="symbol"?t+"":t,U);const Te={modelValue:{type:String,default:""},singleExpand:{type:Boolean,default:!0},entities:{type:Array,default:[]},variables:{type:Array,default:[]},disabledFunctions:{type:Object,default:null},esprimaPath:{type:String,default:"assets/esprima-config.json"},showMessage:{type:Boolean,default:!1},validateMessage:{type:String,default:""},messageType:{type:String,default:"info"},showMessageType:{type:Boolean,default:!1},showDataPanel:{type:Boolean,default:!0},isServerSide:{type:Boolean,default:!1}},Se=new Map([["appearance",U.resolveAppearance]]);function Ne(e,n,a){return n}const ct={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/layout.schema.json",title:"layout",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for layout component",type:"string"},type:{description:"The type string of layout component",type:"string",default:"layout"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},contents:{description:"",type:"array",default:[]},collapsable:{description:"",type:"boolean",default:!1},resizable:{description:"",type:"boolean",default:!0},visible:{description:"",type:"boolean",default:!0}},required:["id","type","contents"]},ut={title:"layout",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"类型",title:"类型",type:"string",readonly:!0}}},behavior:{description:"Basic Infomation",title:"行为",properties:{collapsable:{description:"",title:"可收折",type:"boolean"},resizable:{description:"",title:"可调整尺寸",type:"boolean"}}}}},ge={customStyle:{type:String,defaut:""},customClass:{type:String,defaut:""}},Me=U.createPropsResolver(ge,ct,Se,Ne,ut);function Oe(e){const n=t.ref(-1),a=t.ref(-1),o=t.ref(0),i=t.ref(0),l=t.ref(!1),r=t.ref(!1),c=t.computed(()=>({display:l.value?"block":"none",left:`${o.value}px`,cursor:"e-resize"})),u=t.computed(()=>({display:r.value?"block":"none",top:`${i.value}px`,cursor:"n-resize"})),f=t.computed(()=>{const s={display:r.value||l.value?"block":"none"};return i.value>0&&(s.cursor="n-resize"),s});function v(s,p,m,T){const w=e.value;if(w){const{left:d,right:g,width:k}=w.getBoundingClientRect();let N=s.clientX-d;T==="right"&&(N=g-s.clientX),N>p&&(N=p),N<m&&(N=m),T==="right"&&(N=k-N),o.value=N}}function h(s,p,m,T){const w=e.value;if(w){const{top:d,bottom:g,height:k}=w.getBoundingClientRect();let N=s.clientY-d;T==="bottom"&&(N=g-s.clientY),N>p&&(N=p),N<m&&(N=m),T==="bottom"&&(N=k-N),i.value=N}}function b(){const s=e.value;if(s){const{width:p,height:m}=s.getBoundingClientRect();return{width:p,height:m}}return null}function x(){const s=e.value;return s?Array.from(s.querySelectorAll("[data-position]")).reduce((p,m)=>{const T=m.getAttribute("data-position");return p=Object.assign(p,{[T]:m}),p},{}):null}function F(s,p){const m=b(),T=x();if(m&&T){const w=T==null?void 0:T.right,d=T==null?void 0:T.left;if(s==="left"&&d)return w?m.width-w.clientWidth-p:m.width-p;if(s==="right"&&w)return d?m.width-d.clientWidth-p:m.width-p}}function y(s,p){const m=b(),T=x();if(m&&T){const w=T==null?void 0:T.bottom,d=T==null?void 0:T.top;if(s==="top"&&d)return w?m.height-w.clientHeight-p:m.height-p;if(s==="bottom"&&w)return d?m.height-d.clientHeight-p:m.height-p}}return{horizontalResizeHandleStyle:c,verticalResizeHandleStyle:u,resizeOverlayStyle:f,showHorizontalResizeHandle:l,showVerticalResizeHandle:r,horizontalResizeBarPosition:n,verticalResizeBarPosition:a,verticalResizeHandleOffset:i,horizontalResizeHandleOffset:o,draggingHorizontalResizeHandle:v,draggingVerticalResizeHandle:h,getPanelMaxHeight:y,getPanelMaxWidth:F}}const J=t.defineComponent({name:"FLayout",props:ge,emits:[],setup(e,n){const a=t.ref(),o=Oe(a),{horizontalResizeHandleStyle:i,verticalResizeHandleStyle:l,resizeOverlayStyle:r}=o;t.provide("layout",{useResizeHandleComposition:o});const c=t.computed(()=>{const f={"f-layout":!0};return _.getCustomClass(f,e==null?void 0:e.customClass)}),u=t.computed(()=>{const f={};return _.getCustomStyle(f,e==null?void 0:e.customStyle)});return()=>t.createVNode("div",{class:c.value,style:u.value,ref:a},[n.slots.default&&n.slots.default(),t.createVNode("div",{class:"f-layout-resize-overlay",style:r.value},null),t.createVNode("div",{class:"f-layout-horizontal-resize-proxy",style:i.value},null),t.createVNode("div",{class:"f-layout-vertical-resize-proxy",style:l.value},null)])}}),dt={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/layout-pane.schema.json",title:"layout-pane",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for a layout pane",type:"string"},type:{description:"The type string of layout paney",type:"string",default:"layout-pane"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},collapsable:{description:"",type:"boolean",default:!1},contents:{description:"",type:"array",default:[]},height:{description:"",type:"number"},position:{description:"",type:"string",default:"left",enum:["left","center","right","top","bottom"]},resizeable:{description:"",type:"boolean",default:!0},width:{description:"",type:"number"},visible:{description:"",type:"number",default:!0}},required:["id","type","contents"]},ft={title:"layout-pane",description:"A Farris Container Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"enum"},width:{description:"",type:"number",title:"宽度"},height:{description:"",type:"number",title:"高度"}}},appearance:{title:"样式",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:""},style:{title:"style",type:"string",description:""}}},behavior:{description:"",title:"行为",properties:{collapsable:{description:"",type:"boolean",title:"允许收折"},position:{description:"",type:"enum",title:"位置",editor:{type:"combo-list",data:[{id:"left",name:"左侧"},{id:"center",name:"居中"},{id:"right",name:"右侧"},{id:"top",name:"顶部"},{id:"bottom",name:"底部"}]}},resizeable:{description:"",type:"boolean",title:"允许调整尺寸"},visible:{description:"运行时组件是否可见",type:"boolean",title:"是否可见"}}}}},ve={customClass:{type:String,defaut:""},customStyle:{type:String,defaut:""},width:{type:Number,default:-1},height:{type:Number,default:-1},position:{type:String,default:"left"},visible:{type:Boolean,default:!0},resizable:{type:Boolean,default:!0},collapsable:{type:Boolean,default:!1},minWidth:{type:Number,default:100},minHeight:{type:Number,default:100}},Ve=U.createPropsResolver(ve,dt,Se,Ne,ft);function Be(e,n,a,o,i){const{horizontalResizeBarPosition:l,horizontalResizeHandleOffset:r,showHorizontalResizeHandle:c,showVerticalResizeHandle:u,verticalResizeBarPosition:f,verticalResizeHandleOffset:v,draggingHorizontalResizeHandle:h,draggingVerticalResizeHandle:b,getPanelMaxHeight:x,getPanelMaxWidth:F}=i;let y="",s,p,m;function T(g){if((y==="left"||y==="right")&&p){const{left:k}=p.getBoundingClientRect(),{width:N}=s.getBoundingClientRect(),I=g.clientX-k;let j=y==="left"?(N||0)+(I-l.value):(N||0)-(I-l.value);j=a.value>0?Math.max(a.value,j):j;const O=F(y,a.value);O!=null&&(j=O>j?j:O),e.value=j}if((y==="top"||y==="bottom")&&p){const{top:k}=p.getBoundingClientRect(),{height:N}=s.getBoundingClientRect(),I=g.clientY-k;let j=y==="top"?(N||0)+(I-f.value):(N||0)-(I-f.value);j=o.value>0?Math.max(o.value,j):j;const O=x(y,o.value);O!=null&&(j=O>j?j:O),n.value=j}r.value=0,v.value=0,l.value=-1,f.value=-1,c.value=!1,u.value=!1,document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",T),document.body.style.userSelect="",y="",s=null,p=null}function w(g,k,N){if(y=k,s=N,c.value=!0,p=g.composedPath().find(j=>(j.className||"").split(" ")[0]==="f-layout"),p){const{left:j}=p.getBoundingClientRect(),O=g.clientX-j;r.value=O,l.value=O;const P=F(y,a.value)||0;m=S=>h(S,P,a.value,y),document.addEventListener("mousemove",m),document.addEventListener("mouseup",T),document.body.style.userSelect="none"}}function d(g,k,N){if(y=k,s=N,u.value=!0,p=g.composedPath().find(j=>(j.className||"").split(" ")[0]==="f-layout"),p){const{top:j}=p.getBoundingClientRect();v.value=g.clientY-j,f.value=g.clientY-j;const O=x(y,o.value)||0;m=P=>b(P,O,o.value,y),document.addEventListener("mousemove",m),document.addEventListener("mouseup",T),document.body.style.userSelect="none"}}return{onClickHorizontalResizeBar:w,onClickVerticalResizeBar:d}}const K=t.defineComponent({name:"FLayoutPane",props:ve,emits:[],setup(e,n){const a=t.ref(e.minHeight<=0?100:e.minHeight),o=t.ref(e.minWidth<=0?100:e.minWidth),i=t.ref(e.width<=0?100:e.width),l=t.ref(e.height<=0?100:e.height),r=t.ref(Math.max(a.value,l.value)),c=t.ref(Math.max(o.value,i.value)),u=t.ref(),f=t.ref(e.position),v=t.ref(e.resizable);t.watch(()=>e.resizable,d=>{v.value=d});const h=t.inject("layout"),{useResizeHandleComposition:b}=h,x=Be(c,r,o,a,b),{onClickHorizontalResizeBar:F,onClickVerticalResizeBar:y}=x,s=t.computed(()=>({"f-layout-resize-bar":!0,"f-layout-resize-bar-e":f.value==="left","f-layout-resize-bar-n":f.value==="bottom","f-layout-resize-bar-s":f.value==="top","f-layout-resize-bar-w":f.value==="right"})),p=t.computed(()=>f.value!=="center"&&v.value);function m(d,g){(g==="left"||g==="right")&&F(d,g,u.value),(g==="top"||g==="bottom")&&y(d,g,u.value)}const T=t.computed(()=>{const d={"f-layout-pane":!0,"f-page-content-nav":f.value==="left"||f.value==="right","f-page-content-main":f.value==="center"};return e.customClass&&String(e.customClass).split(" ").reduce((g,k)=>(g[k]=!0,g),d),d}),w=t.computed(()=>{const d={};return(c.value&&f.value==="left"||f.value==="right")&&(d.width=`${c.value}px`),(r.value&&f.value==="bottom"||f.value==="top")&&(d.height=`${r.value}px`),e.visible||(d.display="none"),d});return()=>t.createVNode("div",{ref:u,class:T.value,style:w.value,"data-position":f.value},[n.slots.default&&n.slots.default(),p.value&&t.createVNode("span",{class:s.value,onMousedown:d=>m(d,f.value)},null)])}});function mt(e,n){function a(){return!1}return{canAccepts:a}}const yt=t.defineComponent({name:"FLayoutDesign",props:ge,emits:[],setup(e,n){var v;const a=t.ref(),o=t.inject("design-item-context"),i=mt(o.schema,(v=o.parent)==null?void 0:v.schema),l=se.useDesignerComponent(a,o,i);l.value.canNested=!1;const r=Oe(a),{horizontalResizeHandleStyle:c,verticalResizeHandleStyle:u,resizeOverlayStyle:f}=r;return t.provide("layout",{useResizeHandleComposition:r}),t.onMounted(()=>{a.value.componentInstance=l}),n.expose(l.value),()=>t.createVNode("div",{class:"f-layout f-page-content",ref:a},[n.slots.default&&n.slots.default(),t.createVNode("div",{class:"f-layout-resize-overlay",style:f.value},null),t.createVNode("div",{class:"f-layout-horizontal-resize-proxy",style:c.value},null),t.createVNode("div",{class:"f-layout-vertical-resize-proxy",style:u.value},null)])}});function pt(e,n){const a=e.schema;function o(l){return!!se.useDragulaCommonRule().basalDragulaRuleForContainer(l)}function i(){const l=["f-layout-pane"];return(a.position==="left"||a.position==="right")&&l.push("f-page-content-nav"),a.position==="center"&&l.push("f-page-content-main"),l.join(" ")}return{canAccepts:o,getDesignerClass:i}}const ht=t.defineComponent({name:"FLayoutPaneDesign",props:ve,emits:[],setup(e,n){const a=t.ref(),o=t.ref();t.inject("designer-host-service");const i=t.inject("design-item-context"),l=pt(i),r=se.useDesignerComponent(o,i,l);r.value.canNested=!1,r.value.canMove=!1,r.value.canDelete=!1,t.onMounted(()=>{o.value.componentInstance=r}),n.expose(r.value);const c=t.ref(Math.max(e.minHeight,e.height)),u=t.ref(Math.max(e.minWidth,e.width)),f=t.ref(e.minHeight),v=t.ref(e.minWidth),h=t.ref(e.position),b=t.inject("layout"),{useResizeHandleComposition:x}=b,F=Be(u,c,v,f,x),{onClickHorizontalResizeBar:y,onClickVerticalResizeBar:s}=F,p=t.computed(()=>({"f-layout-resize-bar":!0,"f-layout-resize-bar-e":h.value==="left","f-layout-resize-bar-n":h.value==="bottom","f-layout-resize-bar-s":h.value==="top","f-layout-resize-bar-w":h.value==="right"}));function m(d,g){(g==="left"||g==="right")&&y(d,g,a.value),(g==="top"||g==="bottom")&&s(d,g,a.value)}const T=t.computed(()=>{const d={"f-layout-pane":!0,"f-page-content-nav":h.value==="left"||h.value==="right","f-page-content-main":h.value==="center"};return e.customClass&&String(e.customClass).split(" ").reduce((g,k)=>(g[k]=!0,g),d),d}),w=t.computed(()=>{const d={flex:"1"};return(u.value&&h.value==="left"||h.value==="right")&&(d.width=`${u.value}px`),(c.value&&h.value==="bottom"||h.value==="top")&&(d.height=`${c.value}px`),d});return()=>t.createVNode("div",{ref:a,class:T.value,style:w.value},[t.createVNode("div",{ref:o,class:"drag-container","data-dragref":`${i.schema.id}-container`},[n.slots.default&&n.slots.default()]),t.createVNode("span",{class:p.value,onMousedown:d=>m(d,h.value)},null)])}});J.install=e=>{e.component(J.name,J),e.component(K.name,K)},J.register=(e,n,a,o)=>{e.layout=J,n.layout=Me,e["layout-pane"]=K,n["layout-pane"]=Ve},J.registerDesigner=(e,n,a)=>{e.layout=yt,n.layout=Me,e["layout-pane"]=ht,n["layout-pane"]=Ve};const De=new Map([["appearance",U.resolveAppearance]]),Ee={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/combo-list.schema.json",title:"combo-list",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a combo list",type:"string"},type:{description:"The type string of number combo list component",type:"string",default:"combo-list"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disabled:{description:"",type:"boolean",default:!1},enableClear:{description:"",type:"boolean",default:!1},editable:{description:"",type:"boolean",default:!1},enableLinkLabel:{description:"",type:"boolean",default:!1},label:{description:"",type:"string",default:""},lableWidth:{description:"",type:"number"},placeholder:{description:"",type:"string",default:"请选择"},idField:{description:"",type:"string",default:"id"},valueField:{description:"",type:"string",default:"id"},titleField:{description:"",type:"string",default:"name"},textField:{description:"",type:"string",default:"name"},dataSourceType:{description:"",type:"string",default:"static"},data:{description:"",type:"array"},remote:{description:"",type:"string"},readonly:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},textAlign:{description:"",type:"string",enum:["left","middle","right"],default:"left"},multiSelect:{description:"",type:"boolean",default:!1},maxLength:{description:"",type:"number",default:null},visible:{description:"",type:"boolean",default:!0},onBlur:{description:"",type:"string",default:""},onClickLinkLabel:{description:"",type:"string",default:""},maxHeight:{description:"",type:"number",default:350},minPanelWidth:{description:"",type:"number",default:160},popupOnClick:{description:"",type:"boolean",default:!0},separator:{description:"",type:"string",default:","},viewType:{description:"",type:"string",default:"tag"},enableSearch:{description:"启用搜索",type:"boolean",default:!0},enableHighlightSearch:{description:"启用高亮搜索",type:"boolean",default:!1},beforeOpen:{description:"打卡面板前回调",type:"string"},onChange:{description:"值变化事件",type:"string",default:""},onInput:{description:"输入事件",type:"string",default:""},onClear:{description:"清空事件",type:"string",default:""}},required:["type"],ignore:["id","appearance","binding","visible"],events:{onClear:"清空事件",onChange:"值变化事件",beforeOpen:"打开下拉面板前事件"}};function Pe(e,n,a){return n}function gt(){function e(n,a,o){const i={};return i.beforeOpen=l=>a.call("beforeOpen",n,[l,n],o),i}return{resolve:e}}const ce={id:{type:String},data:{type:Array,default:[]},disabled:{default:!1,type:Boolean},dropDownIcon:{type:String,default:'<span class="f-icon f-icon-arrow-chevron-down"></span>'},editable:{default:!1,type:Boolean},enableClear:{default:!0,type:Boolean},enableSearch:{type:Boolean,default:!1},enableTitle:{default:!0,type:Boolean},fitEditor:{default:!1,type:Boolean},forcePlaceholder:{default:!1,type:Boolean},hidePanelOnClear:{default:!0,type:Boolean},idField:{default:"id",type:String},mapFields:{type:Object},maxHeight:{default:350,type:Number},maxLength:{type:Number},multiSelect:{type:Boolean,default:!1},modelValue:{},placeholder:{type:String,default:"请选择"},placement:{type:String,default:"auto"},readonly:{default:!1,type:Boolean},remote:{default:null,type:Object},remoteSearch:{default:!1,type:Boolean},separator:{default:",",type:String},tabIndex:{type:Number,default:-1},textField:{default:"name",type:String},titleField:{default:"name",type:String},valueField:{default:"id",type:String},viewType:{default:"tag",type:String},change:{type:Function,default:()=>{}},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},autoHeight:{type:Boolean,default:!0},beforeOpen:{type:Function,default:null},load:{type:Function},searchOption:{type:[Boolean,Function],default:!1},enableHighlightSearch:{type:Boolean,default:!0},minPanelWidth:{type:Number,default:160},popupOnClick:{type:Boolean,default:!0},expandable:{type:Boolean,default:!1},expandMode:{type:String,default:"text"},expandContent:{type:String,default:""},expandDisabled:{type:Boolean,default:!1}},vt=Object.assign({},ce,{readonly:{}});U.createPropsResolver(ce,Ee,De,Pe);const je=U.getPropsResolverGenerator(ce,Ee,De,Pe),bt=gt(),kt={dataSource:{type:Array,default:[]},enableSearch:{type:Boolean,default:!1},idField:{type:String,default:"id"},multiSelect:{type:Boolean,default:!1},selectedValues:{type:String,default:""},separator:{type:String,default:","},textField:{type:String,default:"name"},titleField:{type:String,default:"name"},width:{type:Number},maxHeight:{type:Number},valueField:{type:String,default:"id"},onSelectionChange:{type:Function,default:()=>{}},searchOption:{type:[Boolean,Function],default:!1},enableHighlightSearch:{type:Boolean,default:!0}},Ct=t.defineComponent({name:"FComboListContainer",props:kt,emits:["selectionChange"],setup(e,n){const a=t.ref(),o=t.ref(e.dataSource),i=t.ref([]),l=t.ref(e.separator),r=t.ref(e.width),c=t.ref(e.maxHeight),u=t.computed(()=>e.multiSelect),f=t.ref(e.multiSelect?String(e.selectedValues).split(l.value):[e.selectedValues]),v=t.computed(()=>({enableSelectRow:!0,multiSelect:e.multiSelect,multiSelectMode:"OnCheckAndClick",showCheckbox:u.value,showSelectAll:!1,showSelection:!0}));t.watch(e.dataSource,()=>{o.value=e.dataSource}),t.computed(()=>e.enableSearch?"SearchBar":"ContentHeader");const h=t.computed(()=>{const s={};return r.value!==void 0&&(s.width=`${r.value}px`),c.value!==void 0&&c.value>0&&(s.maxHeight=`${c.value}px`),s});function b(s){a.value.search(s)}function x(s){i.value=s.map(p=>Object.assign({},p)),f.value=s.map(p=>p[e.idField]),n.emit("selectionChange",i.value)}function F(s){if(e.enableHighlightSearch)return;let p=[];const{searchOption:m}=e;typeof m=="function"?p=o.value.filter(T=>m(s,T)):p=o.value.filter(T=>T[e.valueField].indexOf(s)>-1||T[e.textField].indexOf(s)>-1),a.value.updateDataSource(p)}t.watch([()=>e.selectedValues],([s])=>{e.multiSelect?f.value=s.split(l.value):f.value=[s]});function y(s){a.value.activeRowById(s)}return t.onMounted(()=>{var s,p;if(!e.multiSelect){const m=(s=f.value)==null?void 0:s[0];let T=m;const w=o.value.map(d=>d[e.valueField||e.idField]);if(!ne.isUndefined(m)&&w.includes(m)){const d=typeof m,g=typeof((p=o.value[0])==null?void 0:p[e.valueField||e.idField]);g==="number"&&d!==g&&(T=Number(m)),g==="boolean"&&d!==g&&(T=m==="true"?!0:m==="false"?!1:m),y(T)}}}),n.expose({search:b,activeRowById:y}),()=>t.createVNode("div",{class:"f-combo-list-container",style:h.value},[t.createVNode(at,{ref:a,size:"small",itemClass:"f-combo-list-item",itemContentClass:"text-truncate",header:"ContentHeader",headerClass:"f-combo-list-search-box",data:o.value,idField:e.idField,textField:e.textField,titleField:e.titleField,multiSelect:e.multiSelect,selection:v.value,enableHighlightSearch:e.enableHighlightSearch,selectionValues:f.value,onSelectionUpdate:x,onAfterSearch:F},null)])}});function xt(e){const n=t.ref(""),a=t.ref(e.modelValue),o=t.ref(e.data||[]),i=t.ref(e.editable);function l(y){const s=e.multiSelect?String(y).split(e.separator):[String(y)],p=s.map(w=>[w,!0]),m=new Map(p);return o.value.filter(w=>m.has(String(w[e.valueField]))).sort((w,d)=>{const g=s.indexOf(w[e.valueField]),k=s.indexOf(d[e.valueField]);return g-k})}function r(y){const s=l(y).map(p=>p[e.textField]).join(e.separator);n.value=i.value?s||y:s}function c(y){if(e.multiSelect){const s=y.split(e.separator).map(m=>[m,!0]),p=new Map(s);return o.value.filter(m=>p.has(m[e.textField]))}return o.value.filter(s=>""+s[e.textField]===y)}function u(y){const s={};return s[e.idField]=y,s[e.textField]=y,[s]}function f(y){let s=c(y);const p=s&&s.length>0;return i.value&&!p&&(s=u(y)),s}function v(){const{url:y,method:s="GET",headers:p={"Content-Type":"application/json;charset=utf-8;"},body:m=null}=e.remote;if(!y)return;const T=s.toLowerCase()==="get"?{method:s,headers:p}:{method:s,headers:p,body:m};let w=!1;fetch(new Request(y,T)).then(d=>{var k,N;if(d.status===200)return w=!!((N=(k=d.headers)==null?void 0:k.get("content-type"))!=null&&N.includes("application/json")),w?d.text():d.json();throw d.status===405?new Error(G.LocaleService.getLocaleValue("comboList.remoteError")):new Error(d.statusText)}).then(d=>{d.length&&(o.value=w?JSON.parse(d):d)}).catch(d=>{console.warn(d)})}e.remote&&(e.load?e.load().then(y=>{o.value=y}).catch(y=>{console.log(y)}):v()),t.watch(()=>e.data,()=>{o.value=e.data}),t.watch([o],([y])=>{if(e.modelValue!=null){const s=y.find(p=>p[e.valueField]===e.modelValue);s&&(n.value=s[e.textField])}}),t.watch(()=>e.modelValue,y=>{a.value=y,r(y)});function h(y){o.value=y}function b(){return o.value}function x(){return n.value}function F(){const y=typeof e.beforeOpen=="function";return!e.beforeOpen||!y?Promise.resolve(!0):Promise.resolve().then(()=>e.beforeOpen({instance:{updateDataSource:h,getData:b,getDisplayText:x}})).then(s=>typeof(s==null?void 0:s.canOpen)=="boolean"?s==null?void 0:s.canOpen:!0)}return r(e.modelValue),{dataSource:o,displayText:n,editable:i,modelValue:a,beforeOpenList:F,getItemsByDisplayText:c,getItemsByValue:l,getSelectedItemsByDisplayText:f}}const ae=t.defineComponent({name:"FComboList",props:ce,emits:["clear","update:modelValue","change","input"],setup(e,n){const a=t.ref(),o=t.ref(),i=t.ref(e.disabled||e.readonly),l=t.ref(e.enableClear),r=t.ref(e.enableSearch),c=t.ref(e.readonly),{dataSource:u,displayText:f,editable:v,modelValue:h,getItemsByDisplayText:b,getItemsByValue:x,beforeOpenList:F}=xt(e),y=t.ref(e.dropDownIcon);y.value==='<span class="f-icon f-icon-arrow-chevron-down"></span>'&&(y.value='<span id="'+e.id+'-icon-dropdown" class="f-icon f-icon-arrow-chevron-down"></span>');const s=t.computed(()=>e.multiSelect),p=t.computed(()=>o.value?o.value.elementRef.getBoundingClientRect().width:0);function m(){!s.value&&o.value&&o.value.hidePopup()}function T(B){f.value=B.map(L=>L[e.textField]).join(e.separator)||h.value;let E="";B.length===1?E=B[0][e.valueField]:E=B.map(L=>L[e.valueField]).join(e.separator),h.value!==E&&(h.value=E,n.emit("update:modelValue",h.value),n.emit("change",B,h.value))}function w(){const B=x(h.value);T(B)}function d(){c.value||f.value}function g(B){var E;h.value="",(E=a.value)==null||E.activeRowById(""),n.emit("clear")}function k(B){var E,L;e.enableSearch&&e.enableHighlightSearch&&((E=a.value)==null||E.search(B)),(L=a.value)==null||L.activeRowById(B),n.emit("change",[h.value],h.value)}function N(B){if(e.multiSelect){const E=b(B);e.viewType;const M=E.map(D=>D[e.idField||e.valueField]).join(e.separator);h.value!==M&&(h.value=M,n.emit("update:modelValue",h.value),n.emit("change",E,h.value))}else B!==h.value&&(h.value=B,n.emit("update:modelValue",h.value),n.emit("change",[],B))}function I(){return f.value}function j(B){const{value:E}=B.target;k(E),n.emit("input",E)}function O(){o.value.hidePopup()}function P(B){u.value=B}function S(){return u.value}const V={getDisplayText:I,hidePopup:O,updateDataSource:P,getData:S};return n.expose(V),t.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([B,E,L,M,D])=>{i.value=B,v.value=E,l.value=L,r.value=M,c.value=D}),()=>t.createVNode(he,{ref:o,id:e.id,disable:i.value,readonly:c.value,forcePlaceholder:e.forcePlaceholder,editable:v.value,buttonContent:y.value,placeholder:e.placeholder==="请选择"?G.LocaleService.getLocaleValue("comboList.placeholder"):e.placeholder,enableClear:l.value,maxLength:e.maxLength,tabIndex:e.tabIndex,enableTitle:e.enableTitle,multiSelect:e.multiSelect,inputType:e.multiSelect?e.viewType:"text",modelValue:f.value,"onUpdate:modelValue":B=>f.value=B,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated,onClear:g,onClick:d,onChange:N,onBlur:w,onInput:j,beforeOpen:F,placement:e.placement,popupMinWidth:e.minPanelWidth,popupClass:"f-combo-list-wrapper",popupOnClick:e.popupOnClick,limitContentBySpace:!0},{default:()=>[t.createVNode(Ct,{ref:a,idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,dataSource:u.value,selectedValues:h.value,separator:e.separator,multiSelect:e.multiSelect,enableSearch:r.value,maxHeight:e.maxHeight,enableHighlightSearch:e.enableHighlightSearch,width:e.fitEditor?p.value:void 0,onSelectionChange:B=>{T(B),m()}},null)]})}}),Ie={convertFrom:(e,n)=>(e.editor.remote||{})[n],convertTo:(e,n,a)=>{e.editor.remote=e.editor.remote||{},e.editor.remote[n]=a}};class wt extends it.InputBaseProperty{constructor(n,a){super(n,a)}getCommonEditorProperties(n){var a,o,i;return{viewType:{visible:!!((a=n.editor)!=null&&a.multiSelect),description:"数据展示类型,有标签和文本两种方式",title:"数据展示类型",type:"enum",editor:{data:[{id:"tag",name:"标签"},{id:"text",name:"文本"}]},refreshPanelAfterChanged:!0},separator:{visible:!!((o=n.editor)!=null&&o.multiSelect)&&((i=n.editor)==null?void 0:i.viewType)==="text",description:"下拉列表启用多选且数据展示类型为文本时的分隔符",title:"分隔符",type:"enum",editor:{data:[{id:",",name:"逗号(,)"},{id:"#",name:"井号(#)"},{id:".",name:"句号(.)"},{id:"|",name:"竖线(|)"}]}},editable:{description:"",title:"允许编辑",type:"boolean",refreshPanelAfterChanged:!0,readonly:!0}}}getEditorProperties(n){var l,r;const a=this;let o="";if(((l=n==null?void 0:n.binding)==null?void 0:l.type)==="Form"){const c=this.schemaService.getFieldByIDAndVMID(n.binding.field,this.viewModelId);(r=c==null?void 0:c.schemaField)!=null&&r.type&&(o=c.schemaField.type.$type)}return a.getComponentConfig(n,{type:"combo-list"},{enableClear:{description:"",title:"启用清空",type:"boolean"},dataSourceType:{description:"",title:"数据源类型",type:"enum",editor:{default:"static",data:[{id:"static",name:"静态"},{id:"dynamic",name:"动态"}]},refreshPanelAfterChanged:!0},data:{description:"",title:"数据",type:"array",visible:!n.editor.dataSourceType||n.editor.dataSourceType==="static",...a.getItemCollectionEditor(n,n.editor.valueField,n.editor.textField),refreshPanelAfterChanged:!0},url:{visible:n.editor.dataSourceType==="dynamic",$converter:Ie,description:"",title:"服务端API",type:"string"},body:{visible:!1,$converter:Ie,description:"",title:"服务端API参数",type:"string"},textField:{description:"",title:"数据源显示字段",type:"string",readonly:n.editor.dataSourceType!=="dynamic"},valueField:{description:"",title:"数据源值字段",type:"string",readonly:n.editor.dataSourceType!=="dynamic"},multiSelect:{description:"",title:"启用多选",visible:!o||o==="StringType",type:"boolean",refreshPanelAfterChanged:!0},maxLength:{description:"",title:"最大输入长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1,needValid:!0}},...this.getCommonEditorProperties(n)},(c,u)=>{if(!c||!u.editor)return;const f=this;switch(c.propertyID){case"dataSourceType":{c.propertyValue==="static"?(u.editor.valueField="value",u.editor.textField="name",u.editor.remote=null):c.propertyValue==="dynamic"&&(u.editor.remote={method:"GET"},u.editor.valueField="value",u.editor.textField="name");break}case"data":{!f.checkEnumDataReadonly(u)&&u.formatter&&(u.formatter.data=[...c.propertyValue]);break}case"viewType":c.propertyValue==="tag"&&(u.editor.editable=!1)}})}getGridFieldEdtiorProperties(n,a){var r,c,u,f,v,h;const o=this;let i="";if(((r=n==null?void 0:n.binding)==null?void 0:r.type)==="Form"){const b=this.schemaService.getFieldByIDAndVMID(n.binding.field,this.viewModelId);(c=b==null?void 0:b.schemaField)!=null&&c.type&&(i=b.schemaField.type.$type)}return o.getComponentConfig(n,{type:"combo-list"},{enableClear:{description:"",title:"启用清空",type:"boolean"},data:{description:"",title:"数据",type:"array",visible:!((u=n.editor)!=null&&u.dataSourceType)||((f=n.editor)==null?void 0:f.dataSourceType)==="static",...o.getItemCollectionEditor(n,(v=n.editor)==null?void 0:v.valueField,(h=n.editor)==null?void 0:h.textField),refreshPanelAfterChanged:!0},textField:{description:"",title:"数据源显示字段",type:"string",readonly:!0},valueField:{description:"",title:"数据源值字段",type:"string",readonly:!0},multiSelect:{description:"",title:"启用多选",visible:i==="StringType",type:"boolean",refreshPanelAfterChanged:!0},maxLength:{description:"",title:"最大输入长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1,needValid:!0}},...this.getCommonEditorProperties(n)},(b,x)=>{if(!b||!x.editor)return;const F=this;switch(b.propertyID){case"dataSourceType":{b.propertyValue==="static"?(x.editor.valueField="value",x.editor.textField="name",x.editor.remote=null):b.propertyValue==="dynamic"&&(x.editor.remote={method:"GET"},x.editor.valueField="value",x.editor.textField="name");break}case"data":{!F.checkEnumDataReadonly(x)&&x.formatter&&(x.formatter.data=[...b.propertyValue]);break}}})}setEditorPropertyRelates(n,a,o){if(!n||!a.editor)return;const i=this;switch(n.propertyID){case"dataSourceType":{n.propertyValue==="static"&&(a.editor.valueField="value",a.editor.textField="name",a.editor.remote={});break}case"data":{!i.checkEnumDataReadonly(a)&&a.formatter&&(a.formatter.data=[...n.propertyValue]);break}}}changeBindingField(n,a,o){var l;super.changeBindingField(n,a);const i=o;n.editor&&((l=i==null?void 0:i.type)==null?void 0:l.$type)===_.FormSchemaEntityFieldType$Type.EnumType&&(n.editor.data=i.type.enumValues||[])}getEventPropertyConfig(n,a="card",o,i){const l=this;let r=[{label:"onChange",name:"值变化事件"},{label:"beforeOpen",name:"下拉面板前事件"}];o&&(r=r.concat(o)),this.appendFieldValueChangeEvents(n,r);const c=l.eventsEditorUtils.formProperties(n,l.viewModelId,r);return{title:"事件",hideTitle:!0,properties:l.createBaseEventProperty(c),tabId:"commands",tabName:"交互",setPropertyRelates(v,h){const b=v.propertyValue;delete n[l.viewModelId],b&&(b.setPropertyRelates=this.setPropertyRelates,l.eventsEditorUtils.saveRelatedParameters(n,l.viewModelId,b.events,b)),i&&i(v,h,b);const x=l.designViewModelUtils.getDgViewModel(l.viewModelId);x&&l.designViewModelField&&x.changeField(l.designViewModelField.id,{valueChanging:n.fieldValueChanging,valueChanged:n.fieldValueChanged}),n.editor.beforeOpen!==n.beforeOpen&&(n.editor.beforeOpen=n.beforeOpen),n.editor.onChange!==n.onChange&&(n.editor.onChange=n.onChange),n.editor.onClear!==n.onClear&&(n.editor.onClear=n.onClear)}}}}function Ft(e,n){const a=e.schema;function o(i,l){return new wt(i,n).getPropertyConfig(a,l)}return{getPropsConfig:o}}const Tt=t.defineComponent({name:"FComboListDesign",props:vt,emits:["clear","update:modelValue","change"],setup(e,n){const a=t.ref(),o=t.inject("designer-host-service"),i=t.inject("design-item-context"),l=Ft(i,o),r=se.useDesignerComponent(a,i,l);return t.onMounted(()=>{a.value.componentInstance=r}),n.expose(r.value),()=>t.createVNode(ot,{ref:a,buttonContent:e.dropDownIcon,readonly:!0,editable:!1,forcePlaceholder:!0,placeholder:e.placeholder,expandable:e.expandable,expandMode:e.expandMode,expandContent:e.expandContent,expandDisabled:e.expandDisabled},null)}});ae.register=(e,n,a,o,i)=>{e["combo-list"]=ae,n["combo-list"]=je(i),o["combo-list"]={callbackResolver:bt}},ae.registerDesigner=(e,n,a,o)=>{e["combo-list"]=Tt,n["combo-list"]=je(o)},_.withInstall(ae);const St={analytical:{name:"数据",items:[{key:"IsNull",name:"是空值",params:[{key:"obj",name:"检测对象",type:"object"}],description:`【功能】判断检测对象是否为空值(null)。检测对象为null返回true,否则返回false
1
+ (function(H,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue"),require("../dynamic-resolver/index.umd.js"),require("../common/index.umd.js"),require("../designer-canvas/index.umd.js"),require("../button-edit/index.umd.js"),require("../locale/index.umd.js"),require("../list-view/index.umd.js"),require("lodash-es"),require("../../designer/button-edit/index.umd.js"),require("../property-panel/index.umd.js"),require("../tree-view/index.umd.js"),require("../button/index.umd.js"),require("../field-selector/index.umd.js"),require("../tags/index.umd.js"),require("../popover/index.umd.js"),require("bignumber.js")):typeof define=="function"&&define.amd?define(["exports","vue","../dynamic-resolver/index.umd.js","../common/index.umd.js","../designer-canvas/index.umd.js","../button-edit/index.umd.js","../locale/index.umd.js","../list-view/index.umd.js","lodash-es","../../designer/button-edit/index.umd.js","../property-panel/index.umd.js","../tree-view/index.umd.js","../button/index.umd.js","../field-selector/index.umd.js","../tags/index.umd.js","../popover/index.umd.js","bignumber.js"],t):(H=typeof globalThis<"u"?globalThis:H||self,t(H["expression-editor"]={},H.Vue,H.dynamicResolver,H.common,H.designerCanvas,H.FButtonEdit$1,H.locale,H.FListView,H.LodashES,H.FButtonEditDesign,H.propertyPanel,H.FTreeView,null,null,H.FTags,H.FPopover))})(this,function(H,t,U,_,se,he,G,at,ne,ot,it,lt,Na,Ma,rt,st){"use strict";var Ta=Object.defineProperty;var Sa=(H,t,U)=>t in H?Ta(H,t,{enumerable:!0,configurable:!0,writable:!0,value:U}):H[t]=U;var X=(H,t,U)=>Sa(H,typeof t!="symbol"?t+"":t,U);const Te={modelValue:{type:String,default:""},singleExpand:{type:Boolean,default:!0},entities:{type:Array,default:[]},variables:{type:Array,default:[]},disabledFunctions:{type:Object,default:null},esprimaPath:{type:String,default:"assets/esprima-config.json"},showMessage:{type:Boolean,default:!1},validateMessage:{type:String,default:""},messageType:{type:String,default:"info"},showMessageType:{type:Boolean,default:!1},showDataPanel:{type:Boolean,default:!0},isServerSide:{type:Boolean,default:!1}},Se=new Map([["appearance",U.resolveAppearance]]);function Ne(e,n,a){return n}const ct={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/layout.schema.json",title:"layout",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for layout component",type:"string"},type:{description:"The type string of layout component",type:"string",default:"layout"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},contents:{description:"",type:"array",default:[]},collapsable:{description:"",type:"boolean",default:!1},resizable:{description:"",type:"boolean",default:!0},visible:{description:"",type:"boolean",default:!0}},required:["id","type","contents"]},ut={title:"layout",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"类型",title:"类型",type:"string",readonly:!0}}},behavior:{description:"Basic Infomation",title:"行为",properties:{collapsable:{description:"",title:"可收折",type:"boolean"},resizable:{description:"",title:"可调整尺寸",type:"boolean"}}}}},ge={customStyle:{type:String,defaut:""},customClass:{type:String,defaut:""}},Me=U.createPropsResolver(ge,ct,Se,Ne,ut);function Oe(e){const n=t.ref(-1),a=t.ref(-1),o=t.ref(0),i=t.ref(0),l=t.ref(!1),r=t.ref(!1),c=t.computed(()=>({display:l.value?"block":"none",left:`${o.value}px`,cursor:"e-resize"})),u=t.computed(()=>({display:r.value?"block":"none",top:`${i.value}px`,cursor:"n-resize"})),f=t.computed(()=>{const s={display:r.value||l.value?"block":"none"};return i.value>0&&(s.cursor="n-resize"),s});function v(s,h,m,T){const w=e.value;if(w){const{left:d,right:g,width:k}=w.getBoundingClientRect();let N=s.clientX-d;T==="right"&&(N=g-s.clientX),N>h&&(N=h),N<m&&(N=m),T==="right"&&(N=k-N),o.value=N}}function p(s,h,m,T){const w=e.value;if(w){const{top:d,bottom:g,height:k}=w.getBoundingClientRect();let N=s.clientY-d;T==="bottom"&&(N=g-s.clientY),N>h&&(N=h),N<m&&(N=m),T==="bottom"&&(N=k-N),i.value=N}}function b(){const s=e.value;if(s){const{width:h,height:m}=s.getBoundingClientRect();return{width:h,height:m}}return null}function x(){const s=e.value;return s?Array.from(s.querySelectorAll("[data-position]")).reduce((h,m)=>{const T=m.getAttribute("data-position");return h=Object.assign(h,{[T]:m}),h},{}):null}function F(s,h){const m=b(),T=x();if(m&&T){const w=T==null?void 0:T.right,d=T==null?void 0:T.left;if(s==="left"&&d)return w?m.width-w.clientWidth-h:m.width-h;if(s==="right"&&w)return d?m.width-d.clientWidth-h:m.width-h}}function y(s,h){const m=b(),T=x();if(m&&T){const w=T==null?void 0:T.bottom,d=T==null?void 0:T.top;if(s==="top"&&d)return w?m.height-w.clientHeight-h:m.height-h;if(s==="bottom"&&w)return d?m.height-d.clientHeight-h:m.height-h}}return{horizontalResizeHandleStyle:c,verticalResizeHandleStyle:u,resizeOverlayStyle:f,showHorizontalResizeHandle:l,showVerticalResizeHandle:r,horizontalResizeBarPosition:n,verticalResizeBarPosition:a,verticalResizeHandleOffset:i,horizontalResizeHandleOffset:o,draggingHorizontalResizeHandle:v,draggingVerticalResizeHandle:p,getPanelMaxHeight:y,getPanelMaxWidth:F}}const J=t.defineComponent({name:"FLayout",props:ge,emits:[],setup(e,n){const a=t.ref(),o=Oe(a),{horizontalResizeHandleStyle:i,verticalResizeHandleStyle:l,resizeOverlayStyle:r}=o;t.provide("layout",{useResizeHandleComposition:o});const c=t.computed(()=>{const f={"f-layout":!0};return _.getCustomClass(f,e==null?void 0:e.customClass)}),u=t.computed(()=>{const f={};return _.getCustomStyle(f,e==null?void 0:e.customStyle)});return()=>t.createVNode("div",{class:c.value,style:u.value,ref:a},[n.slots.default&&n.slots.default(),t.createVNode("div",{class:"f-layout-resize-overlay",style:r.value},null),t.createVNode("div",{class:"f-layout-horizontal-resize-proxy",style:i.value},null),t.createVNode("div",{class:"f-layout-vertical-resize-proxy",style:l.value},null)])}}),dt={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/layout-pane.schema.json",title:"layout-pane",description:"A Farris Container Component",type:"object",properties:{id:{description:"The unique identifier for a layout pane",type:"string"},type:{description:"The type string of layout paney",type:"string",default:"layout-pane"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},collapsable:{description:"",type:"boolean",default:!1},contents:{description:"",type:"array",default:[]},height:{description:"",type:"number"},position:{description:"",type:"string",default:"left",enum:["left","center","right","top","bottom"]},resizeable:{description:"",type:"boolean",default:!0},width:{description:"",type:"number"},visible:{description:"",type:"number",default:!0}},required:["id","type","contents"]},ft={title:"layout-pane",description:"A Farris Container Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"enum"},width:{description:"",type:"number",title:"宽度"},height:{description:"",type:"number",title:"高度"}}},appearance:{title:"样式",description:"Appearance",properties:{class:{title:"class样式",type:"string",description:""},style:{title:"style",type:"string",description:""}}},behavior:{description:"",title:"行为",properties:{collapsable:{description:"",type:"boolean",title:"允许收折"},position:{description:"",type:"enum",title:"位置",editor:{type:"combo-list",data:[{id:"left",name:"左侧"},{id:"center",name:"居中"},{id:"right",name:"右侧"},{id:"top",name:"顶部"},{id:"bottom",name:"底部"}]}},resizeable:{description:"",type:"boolean",title:"允许调整尺寸"},visible:{description:"运行时组件是否可见",type:"boolean",title:"是否可见"}}}}},ve={customClass:{type:String,defaut:""},customStyle:{type:String,defaut:""},width:{type:Number,default:-1},height:{type:Number,default:-1},position:{type:String,default:"left"},visible:{type:Boolean,default:!0},resizable:{type:Boolean,default:!0},collapsable:{type:Boolean,default:!1},minWidth:{type:Number,default:100},minHeight:{type:Number,default:100}},Ve=U.createPropsResolver(ve,dt,Se,Ne,ft);function Be(e,n,a,o,i){const{horizontalResizeBarPosition:l,horizontalResizeHandleOffset:r,showHorizontalResizeHandle:c,showVerticalResizeHandle:u,verticalResizeBarPosition:f,verticalResizeHandleOffset:v,draggingHorizontalResizeHandle:p,draggingVerticalResizeHandle:b,getPanelMaxHeight:x,getPanelMaxWidth:F}=i;let y="",s,h,m;function T(g){if((y==="left"||y==="right")&&h){const{left:k}=h.getBoundingClientRect(),{width:N}=s.getBoundingClientRect(),I=g.clientX-k;let j=y==="left"?(N||0)+(I-l.value):(N||0)-(I-l.value);j=a.value>0?Math.max(a.value,j):j;const O=F(y,a.value);O!=null&&(j=O>j?j:O),e.value=j}if((y==="top"||y==="bottom")&&h){const{top:k}=h.getBoundingClientRect(),{height:N}=s.getBoundingClientRect(),I=g.clientY-k;let j=y==="top"?(N||0)+(I-f.value):(N||0)-(I-f.value);j=o.value>0?Math.max(o.value,j):j;const O=x(y,o.value);O!=null&&(j=O>j?j:O),n.value=j}r.value=0,v.value=0,l.value=-1,f.value=-1,c.value=!1,u.value=!1,document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",T),document.body.style.userSelect="",y="",s=null,h=null}function w(g,k,N){if(y=k,s=N,c.value=!0,h=g.composedPath().find(j=>(j.className||"").split(" ")[0]==="f-layout"),h){const{left:j}=h.getBoundingClientRect(),O=g.clientX-j;r.value=O,l.value=O;const P=F(y,a.value)||0;m=S=>p(S,P,a.value,y),document.addEventListener("mousemove",m),document.addEventListener("mouseup",T),document.body.style.userSelect="none"}}function d(g,k,N){if(y=k,s=N,u.value=!0,h=g.composedPath().find(j=>(j.className||"").split(" ")[0]==="f-layout"),h){const{top:j}=h.getBoundingClientRect();v.value=g.clientY-j,f.value=g.clientY-j;const O=x(y,o.value)||0;m=P=>b(P,O,o.value,y),document.addEventListener("mousemove",m),document.addEventListener("mouseup",T),document.body.style.userSelect="none"}}return{onClickHorizontalResizeBar:w,onClickVerticalResizeBar:d}}const K=t.defineComponent({name:"FLayoutPane",props:ve,emits:[],setup(e,n){const a=t.ref(e.minHeight<=0?100:e.minHeight),o=t.ref(e.minWidth<=0?100:e.minWidth),i=t.ref(e.width<=0?100:e.width),l=t.ref(e.height<=0?100:e.height),r=t.ref(Math.max(a.value,l.value)),c=t.ref(Math.max(o.value,i.value)),u=t.ref(),f=t.ref(e.position),v=t.ref(e.resizable);t.watch(()=>e.resizable,d=>{v.value=d});const p=t.inject("layout"),{useResizeHandleComposition:b}=p,x=Be(c,r,o,a,b),{onClickHorizontalResizeBar:F,onClickVerticalResizeBar:y}=x,s=t.computed(()=>({"f-layout-resize-bar":!0,"f-layout-resize-bar-e":f.value==="left","f-layout-resize-bar-n":f.value==="bottom","f-layout-resize-bar-s":f.value==="top","f-layout-resize-bar-w":f.value==="right"})),h=t.computed(()=>f.value!=="center"&&v.value);function m(d,g){(g==="left"||g==="right")&&F(d,g,u.value),(g==="top"||g==="bottom")&&y(d,g,u.value)}const T=t.computed(()=>{const d={"f-layout-pane":!0,"f-page-content-nav":f.value==="left"||f.value==="right","f-page-content-main":f.value==="center"};return e.customClass&&String(e.customClass).split(" ").reduce((g,k)=>(g[k]=!0,g),d),d}),w=t.computed(()=>{const d={};return(c.value&&f.value==="left"||f.value==="right")&&(d.width=`${c.value}px`),(r.value&&f.value==="bottom"||f.value==="top")&&(d.height=`${r.value}px`),e.visible||(d.display="none"),d});return()=>t.createVNode("div",{ref:u,class:T.value,style:w.value,"data-position":f.value},[n.slots.default&&n.slots.default(),h.value&&t.createVNode("span",{class:s.value,onMousedown:d=>m(d,f.value)},null)])}});function mt(e,n){function a(){return!1}return{canAccepts:a}}const yt=t.defineComponent({name:"FLayoutDesign",props:ge,emits:[],setup(e,n){var v;const a=t.ref(),o=t.inject("design-item-context"),i=mt(o.schema,(v=o.parent)==null?void 0:v.schema),l=se.useDesignerComponent(a,o,i);l.value.canNested=!1;const r=Oe(a),{horizontalResizeHandleStyle:c,verticalResizeHandleStyle:u,resizeOverlayStyle:f}=r;return t.provide("layout",{useResizeHandleComposition:r}),t.onMounted(()=>{a.value.componentInstance=l}),n.expose(l.value),()=>t.createVNode("div",{class:"f-layout f-page-content",ref:a},[n.slots.default&&n.slots.default(),t.createVNode("div",{class:"f-layout-resize-overlay",style:f.value},null),t.createVNode("div",{class:"f-layout-horizontal-resize-proxy",style:c.value},null),t.createVNode("div",{class:"f-layout-vertical-resize-proxy",style:u.value},null)])}});function pt(e,n){const a=e.schema;function o(l){return!!se.useDragulaCommonRule().basalDragulaRuleForContainer(l)}function i(){const l=["f-layout-pane"];return(a.position==="left"||a.position==="right")&&l.push("f-page-content-nav"),a.position==="center"&&l.push("f-page-content-main"),l.join(" ")}return{canAccepts:o,getDesignerClass:i}}const ht=t.defineComponent({name:"FLayoutPaneDesign",props:ve,emits:[],setup(e,n){const a=t.ref(),o=t.ref();t.inject("designer-host-service");const i=t.inject("design-item-context"),l=pt(i),r=se.useDesignerComponent(o,i,l);r.value.canNested=!1,r.value.canMove=!1,r.value.canDelete=!1,t.onMounted(()=>{o.value.componentInstance=r}),n.expose(r.value);const c=t.ref(Math.max(e.minHeight,e.height)),u=t.ref(Math.max(e.minWidth,e.width)),f=t.ref(e.minHeight),v=t.ref(e.minWidth),p=t.ref(e.position),b=t.inject("layout"),{useResizeHandleComposition:x}=b,F=Be(u,c,v,f,x),{onClickHorizontalResizeBar:y,onClickVerticalResizeBar:s}=F,h=t.computed(()=>({"f-layout-resize-bar":!0,"f-layout-resize-bar-e":p.value==="left","f-layout-resize-bar-n":p.value==="bottom","f-layout-resize-bar-s":p.value==="top","f-layout-resize-bar-w":p.value==="right"}));function m(d,g){(g==="left"||g==="right")&&y(d,g,a.value),(g==="top"||g==="bottom")&&s(d,g,a.value)}const T=t.computed(()=>{const d={"f-layout-pane":!0,"f-page-content-nav":p.value==="left"||p.value==="right","f-page-content-main":p.value==="center"};return e.customClass&&String(e.customClass).split(" ").reduce((g,k)=>(g[k]=!0,g),d),d}),w=t.computed(()=>{const d={flex:"1"};return(u.value&&p.value==="left"||p.value==="right")&&(d.width=`${u.value}px`),(c.value&&p.value==="bottom"||p.value==="top")&&(d.height=`${c.value}px`),d});return()=>t.createVNode("div",{ref:a,class:T.value,style:w.value},[t.createVNode("div",{ref:o,class:"drag-container","data-dragref":`${i.schema.id}-container`},[n.slots.default&&n.slots.default()]),t.createVNode("span",{class:h.value,onMousedown:d=>m(d,p.value)},null)])}});J.install=e=>{e.component(J.name,J),e.component(K.name,K)},J.register=(e,n,a,o)=>{e.layout=J,n.layout=Me,e["layout-pane"]=K,n["layout-pane"]=Ve},J.registerDesigner=(e,n,a)=>{e.layout=yt,n.layout=Me,e["layout-pane"]=ht,n["layout-pane"]=Ve};const De=new Map([["appearance",U.resolveAppearance]]),Ee={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/combo-list.schema.json",title:"combo-list",description:"A Farris Input Component",type:"object",properties:{id:{description:"The unique identifier for a combo list",type:"string"},type:{description:"The type string of number combo list component",type:"string",default:"combo-list"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disabled:{description:"",type:"boolean",default:!1},enableClear:{description:"",type:"boolean",default:!1},editable:{description:"",type:"boolean",default:!1},enableLinkLabel:{description:"",type:"boolean",default:!1},label:{description:"",type:"string",default:""},lableWidth:{description:"",type:"number"},placeholder:{description:"",type:"string",default:"请选择"},idField:{description:"",type:"string",default:"id"},valueField:{description:"",type:"string",default:"id"},titleField:{description:"",type:"string",default:"name"},textField:{description:"",type:"string",default:"name"},dataSourceType:{description:"",type:"string",default:"static"},data:{description:"",type:"array"},remote:{description:"",type:"string"},readonly:{description:"",type:"boolean",default:!1},required:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},textAlign:{description:"",type:"string",enum:["left","middle","right"],default:"left"},multiSelect:{description:"",type:"boolean",default:!1},maxLength:{description:"",type:"number",default:null},visible:{description:"",type:"boolean",default:!0},onBlur:{description:"",type:"string",default:""},onClickLinkLabel:{description:"",type:"string",default:""},maxHeight:{description:"",type:"number",default:350},minPanelWidth:{description:"",type:"number",default:160},popupOnClick:{description:"",type:"boolean",default:!0},separator:{description:"",type:"string",default:","},viewType:{description:"",type:"string",default:"tag"},enableSearch:{description:"启用搜索",type:"boolean",default:!0},enableHighlightSearch:{description:"启用高亮搜索",type:"boolean",default:!1},beforeOpen:{description:"打卡面板前回调",type:"string"},onChange:{description:"值变化事件",type:"string",default:""},onInput:{description:"输入事件",type:"string",default:""},onClear:{description:"清空事件",type:"string",default:""}},required:["type"],ignore:["id","appearance","binding","visible"],events:{onClear:"清空事件",onChange:"值变化事件",beforeOpen:"打开下拉面板前事件"}};function Pe(e,n,a){return n}function gt(){function e(n,a,o){const i={};return i.beforeOpen=l=>a.call("beforeOpen",n,[l,n],o),i}return{resolve:e}}const ce={id:{type:String},data:{type:Array,default:[]},disabled:{default:!1,type:Boolean},dropDownIcon:{type:String,default:'<span class="f-icon f-icon-arrow-chevron-down"></span>'},editable:{default:!1,type:Boolean},enableClear:{default:!0,type:Boolean},enableSearch:{type:Boolean,default:!1},enableTitle:{default:!0,type:Boolean},fitEditor:{default:!1,type:Boolean},forcePlaceholder:{default:!1,type:Boolean},hidePanelOnClear:{default:!0,type:Boolean},idField:{default:"id",type:String},mapFields:{type:Object},maxHeight:{default:350,type:Number},maxLength:{type:Number},multiSelect:{type:Boolean,default:!1},modelValue:{},placeholder:{type:String,default:"请选择"},placement:{type:String,default:"auto"},readonly:{default:!1,type:Boolean},remote:{default:null,type:Object},remoteSearch:{default:!1,type:Boolean},separator:{default:",",type:String},tabIndex:{type:Number,default:-1},textField:{default:"name",type:String},titleField:{default:"name",type:String},valueField:{default:"id",type:String},viewType:{default:"tag",type:String},change:{type:Function,default:()=>{}},focusOnCreated:{type:Boolean,default:!1},selectOnCreated:{type:Boolean,default:!1},autoHeight:{type:Boolean,default:!0},beforeOpen:{type:Function,default:null},load:{type:Function},searchOption:{type:[Boolean,Function],default:!1},enableHighlightSearch:{type:Boolean,default:!0},minPanelWidth:{type:Number,default:160},popupOnClick:{type:Boolean,default:!0},expandable:{type:Boolean,default:!1},expandMode:{type:String,default:"text"},expandContent:{type:String,default:""},expandDisabled:{type:Boolean,default:!1}},vt=Object.assign({},ce,{readonly:{}});U.createPropsResolver(ce,Ee,De,Pe);const je=U.getPropsResolverGenerator(ce,Ee,De,Pe),bt=gt(),kt={dataSource:{type:Array,default:[]},enableSearch:{type:Boolean,default:!1},idField:{type:String,default:"id"},multiSelect:{type:Boolean,default:!1},selectedValues:{type:String,default:""},separator:{type:String,default:","},textField:{type:String,default:"name"},titleField:{type:String,default:"name"},width:{type:Number},maxHeight:{type:Number},valueField:{type:String,default:"id"},onSelectionChange:{type:Function,default:()=>{}},searchOption:{type:[Boolean,Function],default:!1},enableHighlightSearch:{type:Boolean,default:!0}},Ct=t.defineComponent({name:"FComboListContainer",props:kt,emits:["selectionChange"],setup(e,n){const a=t.ref(),o=t.ref(e.dataSource),i=t.ref([]),l=t.ref(e.separator),r=t.ref(e.width),c=t.ref(e.maxHeight),u=t.computed(()=>e.multiSelect),f=t.ref(e.multiSelect?String(e.selectedValues).split(l.value):[e.selectedValues]),v=t.computed(()=>({enableSelectRow:!0,multiSelect:e.multiSelect,multiSelectMode:"OnCheckAndClick",showCheckbox:u.value,showSelectAll:!1,showSelection:!0}));t.watch(e.dataSource,()=>{o.value=e.dataSource}),t.computed(()=>e.enableSearch?"SearchBar":"ContentHeader");const p=t.computed(()=>{const s={};return r.value!==void 0&&(s.width=`${r.value}px`),c.value!==void 0&&c.value>0&&(s.maxHeight=`${c.value}px`),s});function b(s){a.value.search(s)}function x(s){i.value=s.map(h=>Object.assign({},h)),f.value=s.map(h=>h[e.idField]),n.emit("selectionChange",i.value)}function F(s){if(e.enableHighlightSearch)return;let h=[];const{searchOption:m}=e;typeof m=="function"?h=o.value.filter(T=>m(s,T)):h=o.value.filter(T=>T[e.valueField].indexOf(s)>-1||T[e.textField].indexOf(s)>-1),a.value.updateDataSource(h)}t.watch([()=>e.selectedValues],([s])=>{e.multiSelect?f.value=s.split(l.value):f.value=[s]});function y(s){a.value.activeRowById(s)}return t.onMounted(()=>{var s,h;if(!e.multiSelect){const m=(s=f.value)==null?void 0:s[0];let T=m;const w=o.value.map(d=>d[e.valueField||e.idField]);if(!ne.isUndefined(m)&&w.includes(m)){const d=typeof m,g=typeof((h=o.value[0])==null?void 0:h[e.valueField||e.idField]);g==="number"&&d!==g&&(T=Number(m)),g==="boolean"&&d!==g&&(T=m==="true"?!0:m==="false"?!1:m),y(T)}}}),n.expose({search:b,activeRowById:y}),()=>t.createVNode("div",{class:"f-combo-list-container",style:p.value},[t.createVNode(at,{ref:a,size:"small",itemClass:"f-combo-list-item",itemContentClass:"text-truncate",header:"ContentHeader",headerClass:"f-combo-list-search-box",data:o.value,idField:e.idField,textField:e.textField,titleField:e.titleField,multiSelect:e.multiSelect,selection:v.value,enableHighlightSearch:e.enableHighlightSearch,selectionValues:f.value,onSelectionUpdate:x,onAfterSearch:F},null)])}});function xt(e){const n=t.ref(""),a=t.ref(e.modelValue),o=t.ref(e.data||[]),i=t.ref(e.editable);function l(y){const s=e.multiSelect?String(y).split(e.separator):[String(y)],h=s.map(w=>[w,!0]),m=new Map(h);return o.value.filter(w=>m.has(String(w[e.valueField]))).sort((w,d)=>{const g=s.indexOf(w[e.valueField]),k=s.indexOf(d[e.valueField]);return g-k})}function r(y){const s=l(y).map(h=>h[e.textField]).join(e.separator);n.value=i.value?s||y:s}function c(y){if(e.multiSelect){const s=y.split(e.separator).map(m=>[m,!0]),h=new Map(s);return o.value.filter(m=>h.has(m[e.textField]))}return o.value.filter(s=>""+s[e.textField]===y)}function u(y){const s={};return s[e.idField]=y,s[e.textField]=y,[s]}function f(y){let s=c(y);const h=s&&s.length>0;return i.value&&!h&&(s=u(y)),s}function v(){const{url:y,method:s="GET",headers:h={"Content-Type":"application/json;charset=utf-8;"},body:m=null}=e.remote;if(!y)return;const T=s.toLowerCase()==="get"?{method:s,headers:h}:{method:s,headers:h,body:m};let w=!1;fetch(new Request(y,T)).then(d=>{var k,N;if(d.status===200)return w=!!((N=(k=d.headers)==null?void 0:k.get("content-type"))!=null&&N.includes("application/json")),w?d.text():d.json();throw d.status===405?new Error(G.LocaleService.getLocaleValue("comboList.remoteError")):new Error(d.statusText)}).then(d=>{d.length&&(o.value=w?JSON.parse(d):d)}).catch(d=>{console.warn(d)})}e.remote&&(e.load?e.load().then(y=>{o.value=y}).catch(y=>{console.log(y)}):v()),t.watch(()=>e.data,()=>{o.value=e.data}),t.watch([o],([y])=>{if(e.modelValue!=null){const s=y.find(h=>h[e.valueField]===e.modelValue);s&&(n.value=s[e.textField])}}),t.watch(()=>e.modelValue,y=>{a.value=y,r(y)});function p(y){o.value=y}function b(){return o.value}function x(){return n.value}function F(){const y=typeof e.beforeOpen=="function";return!e.beforeOpen||!y?Promise.resolve(!0):Promise.resolve().then(()=>e.beforeOpen({instance:{updateDataSource:p,getData:b,getDisplayText:x}})).then(s=>typeof(s==null?void 0:s.canOpen)=="boolean"?s==null?void 0:s.canOpen:!0)}return r(e.modelValue),{dataSource:o,displayText:n,editable:i,modelValue:a,beforeOpenList:F,getItemsByDisplayText:c,getItemsByValue:l,getSelectedItemsByDisplayText:f}}const ae=t.defineComponent({name:"FComboList",props:ce,emits:["clear","update:modelValue","change","input"],setup(e,n){const a=t.ref(),o=t.ref(),i=t.ref(e.disabled||e.readonly),l=t.ref(e.enableClear),r=t.ref(e.enableSearch),c=t.ref(e.readonly),{dataSource:u,displayText:f,editable:v,modelValue:p,getItemsByDisplayText:b,getItemsByValue:x,beforeOpenList:F}=xt(e),y=t.ref(e.dropDownIcon);y.value==='<span class="f-icon f-icon-arrow-chevron-down"></span>'&&(y.value='<span id="'+e.id+'-icon-dropdown" class="f-icon f-icon-arrow-chevron-down"></span>');const s=t.computed(()=>e.multiSelect),h=t.computed(()=>o.value?o.value.elementRef.getBoundingClientRect().width:0);function m(){!s.value&&o.value&&o.value.hidePopup()}function T(B){f.value=B.map(L=>L[e.textField]).join(e.separator)||p.value;let E="";B.length===1?E=B[0][e.valueField]:E=B.map(L=>L[e.valueField]).join(e.separator),p.value!==E&&(p.value=E,n.emit("update:modelValue",p.value),n.emit("change",B,p.value))}function w(){const B=x(p.value);T(B)}function d(){c.value||f.value}function g(B){var E;p.value="",(E=a.value)==null||E.activeRowById(""),n.emit("clear")}function k(B){var E,L;e.enableSearch&&e.enableHighlightSearch&&((E=a.value)==null||E.search(B)),(L=a.value)==null||L.activeRowById(B),n.emit("change",[p.value],p.value)}function N(B){if(e.multiSelect){const E=b(B);e.viewType;const M=E.map(D=>D[e.idField||e.valueField]).join(e.separator);p.value!==M&&(p.value=M,n.emit("update:modelValue",p.value),n.emit("change",E,p.value))}else B!==p.value&&(p.value=B,n.emit("update:modelValue",p.value),n.emit("change",[],B))}function I(){return f.value}function j(B){const{value:E}=B.target;k(E),n.emit("input",E)}function O(){o.value.hidePopup()}function P(B){u.value=B}function S(){return u.value}const V={getDisplayText:I,hidePopup:O,updateDataSource:P,getData:S};return n.expose(V),t.watch([()=>e.disabled,()=>e.editable,()=>e.enableClear,()=>e.enableSearch,()=>e.readonly],([B,E,L,M,D])=>{i.value=B,v.value=E,l.value=L,r.value=M,c.value=D}),()=>t.createVNode(he,{ref:o,id:e.id,disable:i.value,readonly:c.value,forcePlaceholder:e.forcePlaceholder,editable:v.value,buttonContent:y.value,placeholder:e.placeholder==="请选择"?G.LocaleService.getLocaleValue("comboList.placeholder"):e.placeholder,enableClear:l.value,maxLength:e.maxLength,tabIndex:e.tabIndex,enableTitle:e.enableTitle,multiSelect:e.multiSelect,inputType:e.multiSelect?e.viewType:"text",modelValue:f.value,"onUpdate:modelValue":B=>f.value=B,focusOnCreated:e.focusOnCreated,selectOnCreated:e.selectOnCreated,onClear:g,onClick:d,onChange:N,onBlur:w,onInput:j,beforeOpen:F,placement:e.placement,popupMinWidth:e.minPanelWidth,popupClass:"f-combo-list-wrapper",popupOnClick:e.popupOnClick,limitContentBySpace:!0},{default:()=>[t.createVNode(Ct,{ref:a,idField:e.idField,valueField:e.valueField,textField:e.textField,titleField:e.titleField,dataSource:u.value,selectedValues:p.value,separator:e.separator,multiSelect:e.multiSelect,enableSearch:r.value,maxHeight:e.maxHeight,enableHighlightSearch:e.enableHighlightSearch,width:e.fitEditor?h.value:void 0,onSelectionChange:B=>{T(B),m()}},null)]})}}),Ie={convertFrom:(e,n)=>(e.editor.remote||{})[n],convertTo:(e,n,a)=>{e.editor.remote=e.editor.remote||{},e.editor.remote[n]=a}};class wt extends it.InputBaseProperty{constructor(n,a){super(n,a)}getCommonEditorProperties(n){var a,o,i;return{viewType:{visible:!!((a=n.editor)!=null&&a.multiSelect),description:"数据展示类型,有标签和文本两种方式",title:"数据展示类型",type:"enum",editor:{data:[{id:"tag",name:"标签"},{id:"text",name:"文本"}]},refreshPanelAfterChanged:!0},separator:{visible:!!((o=n.editor)!=null&&o.multiSelect)&&((i=n.editor)==null?void 0:i.viewType)==="text",description:"下拉列表启用多选且数据展示类型为文本时的分隔符",title:"分隔符",type:"enum",editor:{data:[{id:",",name:"逗号(,)"},{id:"#",name:"井号(#)"},{id:".",name:"句号(.)"},{id:"|",name:"竖线(|)"}]}},editable:{description:"",title:"允许编辑",type:"boolean",refreshPanelAfterChanged:!0,readonly:!0}}}getEditorProperties(n){var l,r;const a=this;let o="";if(((l=n==null?void 0:n.binding)==null?void 0:l.type)==="Form"){const c=this.schemaService.getFieldByIDAndVMID(n.binding.field,this.viewModelId);(r=c==null?void 0:c.schemaField)!=null&&r.type&&(o=c.schemaField.type.$type)}return a.getComponentConfig(n,{type:"combo-list"},{enableClear:{description:"",title:"启用清空",type:"boolean"},dataSourceType:{description:"",title:"数据源类型",type:"enum",editor:{default:"static",data:[{id:"static",name:"静态"},{id:"dynamic",name:"动态"}]},refreshPanelAfterChanged:!0},data:{description:"",title:"数据",type:"array",visible:!n.editor.dataSourceType||n.editor.dataSourceType==="static",...a.getItemCollectionEditor(n,n.editor.valueField,n.editor.textField),refreshPanelAfterChanged:!0},url:{visible:n.editor.dataSourceType==="dynamic",$converter:Ie,description:"",title:"服务端API",type:"string"},body:{visible:!1,$converter:Ie,description:"",title:"服务端API参数",type:"string"},textField:{description:"",title:"数据源显示字段",type:"string",readonly:n.editor.dataSourceType!=="dynamic"},valueField:{description:"",title:"数据源值字段",type:"string",readonly:n.editor.dataSourceType!=="dynamic"},multiSelect:{description:"",title:"启用多选",visible:!o||o==="StringType",type:"boolean",refreshPanelAfterChanged:!0},maxLength:{description:"",title:"最大输入长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1,needValid:!0}},...this.getCommonEditorProperties(n)},(c,u)=>{if(!c||!u.editor)return;const f=this;switch(c.propertyID){case"dataSourceType":{c.propertyValue==="static"?(u.editor.valueField="value",u.editor.textField="name",u.editor.remote=null):c.propertyValue==="dynamic"&&(u.editor.remote={method:"GET"},u.editor.valueField="value",u.editor.textField="name");break}case"data":{!f.checkEnumDataReadonly(u)&&u.formatter&&(u.formatter.data=[...c.propertyValue]);break}case"viewType":c.propertyValue==="tag"&&(u.editor.editable=!1)}})}getGridFieldEdtiorProperties(n,a){var r,c,u,f,v,p;const o=this;let i="";if(((r=n==null?void 0:n.binding)==null?void 0:r.type)==="Form"){const b=this.schemaService.getFieldByIDAndVMID(n.binding.field,this.viewModelId);(c=b==null?void 0:b.schemaField)!=null&&c.type&&(i=b.schemaField.type.$type)}return o.getComponentConfig(n,{type:"combo-list"},{enableClear:{description:"",title:"启用清空",type:"boolean"},data:{description:"",title:"数据",type:"array",visible:!((u=n.editor)!=null&&u.dataSourceType)||((f=n.editor)==null?void 0:f.dataSourceType)==="static",...o.getItemCollectionEditor(n,(v=n.editor)==null?void 0:v.valueField,(p=n.editor)==null?void 0:p.textField),refreshPanelAfterChanged:!0},textField:{description:"",title:"数据源显示字段",type:"string",readonly:!0},valueField:{description:"",title:"数据源值字段",type:"string",readonly:!0},multiSelect:{description:"",title:"启用多选",visible:i==="StringType",type:"boolean",refreshPanelAfterChanged:!0},maxLength:{description:"",title:"最大输入长度",type:"number",editor:{nullable:!0,min:0,useThousands:!1,needValid:!0}},...this.getCommonEditorProperties(n)},(b,x)=>{if(!b||!x.editor)return;const F=this;switch(b.propertyID){case"dataSourceType":{b.propertyValue==="static"?(x.editor.valueField="value",x.editor.textField="name",x.editor.remote=null):b.propertyValue==="dynamic"&&(x.editor.remote={method:"GET"},x.editor.valueField="value",x.editor.textField="name");break}case"data":{!F.checkEnumDataReadonly(x)&&x.formatter&&(x.formatter.data=[...b.propertyValue]);break}}})}setEditorPropertyRelates(n,a,o){if(!n||!a.editor)return;const i=this;switch(n.propertyID){case"dataSourceType":{n.propertyValue==="static"&&(a.editor.valueField="value",a.editor.textField="name",a.editor.remote={});break}case"data":{!i.checkEnumDataReadonly(a)&&a.formatter&&(a.formatter.data=[...n.propertyValue]);break}}}changeBindingField(n,a,o){var l;super.changeBindingField(n,a);const i=o;n.editor&&((l=i==null?void 0:i.type)==null?void 0:l.$type)===_.FormSchemaEntityFieldType$Type.EnumType&&(n.editor.data=i.type.enumValues||[])}getEventPropertyConfig(n,a="card",o,i){const l=this;let r=[{label:"onChange",name:"值变化事件"},{label:"beforeOpen",name:"下拉面板前事件"}];o&&(r=r.concat(o)),this.appendFieldValueChangeEvents(n,r);const c=l.eventsEditorUtils.formProperties(n,l.viewModelId,r);return{title:"事件",hideTitle:!0,properties:l.createBaseEventProperty(c),tabId:"commands",tabName:"交互",setPropertyRelates(v,p){const b=v.propertyValue;delete n[l.viewModelId],b&&(b.setPropertyRelates=this.setPropertyRelates,l.eventsEditorUtils.saveRelatedParameters(n,l.viewModelId,b.events,b),l.updateLinkedLabel(b,p)),i&&i(v,p,b);const x=l.designViewModelUtils.getDgViewModel(l.viewModelId);x&&l.designViewModelField&&x.changeField(l.designViewModelField.id,{valueChanging:n.fieldValueChanging,valueChanged:n.fieldValueChanged}),n.editor.beforeOpen!==n.beforeOpen&&(n.editor.beforeOpen=n.beforeOpen),n.editor.onChange!==n.onChange&&(n.editor.onChange=n.onChange),n.editor.onClear!==n.onClear&&(n.editor.onClear=n.onClear)}}}}function Ft(e,n){const a=e.schema;function o(i,l){return new wt(i,n).getPropertyConfig(a,l)}return{getPropsConfig:o}}const Tt=t.defineComponent({name:"FComboListDesign",props:vt,emits:["clear","update:modelValue","change"],setup(e,n){const a=t.ref(),o=t.inject("designer-host-service"),i=t.inject("design-item-context"),l=Ft(i,o),r=se.useDesignerComponent(a,i,l);return t.onMounted(()=>{a.value.componentInstance=r}),n.expose(r.value),()=>t.createVNode(ot,{ref:a,buttonContent:e.dropDownIcon,readonly:!0,editable:!1,forcePlaceholder:!0,placeholder:e.placeholder,expandable:e.expandable,expandMode:e.expandMode,expandContent:e.expandContent,expandDisabled:e.expandDisabled},null)}});ae.register=(e,n,a,o,i)=>{e["combo-list"]=ae,n["combo-list"]=je(i),o["combo-list"]={callbackResolver:bt}},ae.registerDesigner=(e,n,a,o)=>{e["combo-list"]=Tt,n["combo-list"]=je(o)},_.withInstall(ae);const St={analytical:{name:"数据",items:[{key:"IsNull",name:"是空值",params:[{key:"obj",name:"检测对象",type:"object"}],description:`【功能】判断检测对象是否为空值(null)。检测对象为null返回true,否则返回false
2
2
  【参数】
3
3
  【obj】检测对象
4
4
  【返回值】true或false
@@ -424,4 +424,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
424
424
  monaco.config({ paths: { vs: '...' } })
425
425
 
426
426
  For more please check the link https://github.com/suren-atoyan/monaco-loader#config
427
- `},We=Jt(tn)($e),nn={config:Qt},an=function(){for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return function(i){return a.reduceRight(function(l,r){return r(l)},i)}};function qe(e,n){return Object.keys(n).forEach(function(a){n[a]instanceof Object&&e[a]&&Object.assign(n[a],qe(e[a],n[a]))}),Le(Le({},e),n)}var on={type:"cancelation",msg:"operation is manually canceled"};function be(e){var n=!1,a=new Promise(function(o,i){e.then(function(l){return n?i(on):o(l)}),e.catch(i)});return a.cancel=function(){return n=!0},a}var ln=Xt.create({config:_t,isInitialized:!1,resolve:null,reject:null,monaco:null}),Ye=Vt(ln,2),le=Ye[0],fe=Ye[1];function rn(e){var n=nn.config(e),a=n.monaco,o=Ot(n,["monaco"]);fe(function(i){return{config:qe(i.config,o),monaco:a}})}function sn(){var e=le(function(n){var a=n.monaco,o=n.isInitialized,i=n.resolve;return{monaco:a,isInitialized:o,resolve:i}});if(!e.isInitialized){if(fe({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),be(ke);if(window.monaco&&window.monaco.editor)return Ue(window.monaco),e.resolve(window.monaco),be(ke);an(cn,dn)(fn)}return be(ke)}function cn(e){return document.body.appendChild(e)}function un(e){var n=document.createElement("script");return e&&(n.src=e),n}function dn(e){var n=le(function(o){var i=o.config,l=o.reject;return{config:i,reject:l}}),a=un("".concat(n.config.paths.vs,"/loader.js"));return a.onload=function(){return e()},a.onerror=n.reject,a}function fn(){var e=le(function(a){var o=a.config,i=a.resolve,l=a.reject;return{config:o,resolve:i,reject:l}}),n=window.require;n.config(e.config),n(["vs/editor/editor.main"],function(a){Ue(a),e.resolve(a)},function(a){e.reject(a)})}function Ue(e){le().monaco||fe({monaco:e})}function mn(){return le(function(e){var n=e.monaco;return n})}var ke=new Promise(function(e,n){return fe({resolve:e,reject:n})}),Ce={config:rn,init:sn,__getMonacoInstance:mn};const yn=t.defineComponent({name:"expression-code",props:{modelValue:{type:String,default:""},language:{type:String,default:"javascript"},theme:{type:String,default:"vs"},readOnly:{type:Boolean,default:!1},configPath:{type:String,default:"assets/monaco-editor.config.json"}},emits:[],setup(e,n){const a=t.ref(),o=t.ref();let i=null;const l=t.ref(e.modelValue);async function r(){return fetch(e.configPath).then(F=>F.json())}async function c(){if(a.value&&!i){const F=await r(),{vsPath:y}=F;Ce.config({paths:{vs:window.location.origin+y}}),Ce.config({"vs/nls":{availableLanguages:{"*":"zh-cn"}}}),Ce.init().then(s=>{o.value=s,i=s.editor.create(a.value,{value:l.value,automaticLayout:!0,language:e.language,theme:e.theme,folding:!0,readOnly:e.readOnly,minimap:{enabled:!1},lineNumbers:"on",lineNumbersMinChars:3,overviewRulerLanes:0,fixedOverflowWidgets:!1,scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:8,horizontalScrollbarSize:8}})})}}t.watch(()=>e.modelValue,F=>{l.value=F,i==null||i.setValue(F)});const u=t.ref(),f=new ResizeObserver(F=>{i==null||i.layout();const{width:y,height:s}=F[0].contentRect;u.value={width:`${y-1}px`,height:`${s}px`}});function v(){return i==null?void 0:i.getValue()}function h(F){const y=i.getSelection(),s=new o.value.Range(y.startLineNumber,y.startColumn,y.endLineNumber,y.endColumn);i.executeEdits("insert-text",[{range:s,text:F,forceMoveMarkers:!0}])}t.onMounted(()=>{c(),a.value&&f.observe(a.value.parentElement)}),t.onBeforeUnmount(()=>{i&&i.dispose(),f&&a.value&&(f.unobserve(a.value),f.disconnect())});function b(F){i.setValue(F)}function x(){b("")}return n.expose({getContent:v,insertText:h,clearText:x,setContent:b}),()=>t.createVNode("div",{class:"expression-code-editor",style:u.value,ref:a},null)}}),pn={dataSource:{type:Object,default:{}}},hn={data:{type:Array,default:[]},idField:{type:String,default:"id"},textField:{type:String,default:"name"},formatter:{type:Function},customRowStatus:{type:Object,default:null}},gn=t.defineComponent({name:"FEntitiesTree",props:hn,emits:["dblclickNode"],setup(e,n){const a=t.ref(e.data),o=t.ref(),i=t.ref();function l(){let h=0;return document.querySelectorAll(".entity-variable .fv-grid-hierarchy-cell").forEach(x=>{x.style.width="auto";const F=x.scrollWidth;F>h&&(h=F)}),h}t.watch(()=>e.data,h=>{var b;a.value=h,(b=o.value)==null||b.updateDataSource(h)});const r={customRowStatus:e.customRowStatus},c=t.computed(()=>[{field:e.textField,title:"",dataType:"string",formatter:e.formatter}]);function u({$event:h,node:b}){n.emit("dblclickNode",{$event:h,node:b})}function f(){const h=l();i.value={minWidth:`${h+10}px`}}function v({row:h}){t.nextTick(f)}return t.onMounted(()=>{t.nextTick(f)}),()=>t.createVNode("div",{class:"h-100 f-utils-fill",style:"overflow:auto",id:"entity-tree-view"},[t.createVNode(lt,{ref:o,fit:!1,rowNumber:{enable:!1},data:a.value,idField:e.idField,columns:c.value,rowOption:r,columnOption:{fitColumns:!0,fitMode:"percentage"},onDblclickNode:u,style:i.value,autoHeight:!0,onExpandNode:v},null)])}}),vn=t.defineComponent({name:"entity-variable",props:pn,emits:["variableItemDblClick","entityItemDblClick","fieldClick"],setup(e,n){const a=t.ref("dataEntity"),o=t.ref(e.dataSource),{entities:i,variables:l}=o.value,r=t.ref(""),c=t.ref((i==null?void 0:i.fields)||[]),u=(S,V)=>{S.stopPropagation(),n.emit("fieldClick",{$event:S,item:V.raw})},f=(S,V)=>{const B=`${V.raw.name} [${V.raw.bindingPath}]`;return t.createVNode("div",{class:"d-flex align-items-center w-100 entity-field",style:"justify-content: space-between;"},[t.createVNode("span",{title:B,class:"f-utils-fill text-truncate"},[B]),t.createVNode("button",{title:"插入属性名称",class:"btn btn-link d-none",style:"width:24px;height:24px",onClick:E=>u(E,V),onDblclick:E=>E.stopPropagation()},[t.createVNode("span",{class:"f-icon f-icon-new-edit",style:"font-size: 12px;"},null)])])},v=t.ref({}),h=t.ref(),b=t.computed(()=>S=>({"list-group d-flex flex-column":!0,"f-utils-fill":a.value===S,expand:a.value===S,collapse:a.value!==S})),x=t.computed(()=>S=>({"f-icon f-icon-arrow-chevron-up":a.value!==S,"f-icon f-icon-arrow-chevron-down":a.value===S})),F=t.computed(()=>S=>({"functions-type d-flex flex-column":!0,open:v.value[S],closed:!v.value[S]})),y=t.computed(()=>S=>({"f-icon f-icon-arrow-chevron-down":v.value[S],"f-icon f-icon-arrow-chevron-right":!v.value[S]})),s=t.computed(()=>S=>{var V;return{"functions-item pl-2":!0,selected:((V=h.value)==null?void 0:V.key)===S.key}});function p(S,V){S.stopPropagation(),v.value=v.value||{},v.value[V]=!v.value[V]}function m(S,V){S.stopPropagation(),h.value=V}function T(S,V){n.emit("variableItemDblClick",{$event:S,item:V})}function w({$event:S,node:V}){n.emit("entityItemDblClick",{$event:S,item:V.data,entityCode:i==null?void 0:i.entityCode,parentCodes:V.data.parents.join(".")})}function d(){return t.createVNode(gn,{data:c.value,formatter:f,onDblclickNode:w},null)}function g(){if(l)return t.createVNode("ul",{class:"w-100 functions-list"},[Object.keys(l).map(S=>l[S].visible&&t.createVNode("li",{"variable-type":S,class:F.value(S)},[t.createVNode("div",{class:"functions-type-name pl-2 d-flex align-items-center",onClick:V=>{p(V,S)}},[t.createVNode("span",{class:y.value(S)},null),l[S].name]),t.createVNode("ul",{class:"pl-3 mr-2"},[l[S].items.map(V=>t.createVNode("li",{class:s.value(V),onClick:B=>m(B,V),onDblclick:B=>T(B,V),title:`${V.name} [${V.key}]`},[V.name]))])]))])}function k(S,V){if(S.stopPropagation(),a.value===V){a.value="";return}a.value=V}t.onMounted(()=>{if(l){const S=Object.keys(l)[0];v.value[S]=!0}});function N(S,V){const B=S.children.map(L=>N(L,V)).filter(L=>L!==null);return S.data.name.toLowerCase().includes(V.toLowerCase())||S.data.bindingPath.toLowerCase().includes(V.toLowerCase())?{data:{...S.data},children:S.children}:B.length>0?{data:{...S.data},children:B}:null}function I(S,V){return S.map(B=>N(B,V)).filter(B=>B!==null)}function j(){const S=I((i==null?void 0:i.fields)||[],r.value);c.value=S}function O(){c.value=(i==null?void 0:i.fields)||[]}function P(S){S.key==="Enter"&&j()}return()=>t.createVNode("div",{class:"f-utils-fill entity-variable"},[t.createVNode("ul",{class:"d-flex flex-column h-100"},[t.createVNode("li",{class:b.value("dataEntity")},[t.createVNode("div",{class:"title px-2 d-flex align-items-center",onClick:S=>k(S,"dataEntity")},[t.createTextVNode("数据实体"),t.createVNode("span",{class:x.value("dataEntity")},null)]),t.createVNode("div",{class:"data-area f-utils-fill d-flex flex-column"},[t.createVNode("div",{class:"w-100"},[t.createVNode(he.FButtonEdit,{class:"m-2",buttonContent:'<i class="f-icon f-icon-search"></i>',enableClear:!0,popupOnClick:!0,placeholder:"请输入名称或编号,按回车查询",modelValue:r.value,"onUpdate:modelValue":S=>r.value=S,onClickButton:j,onClear:O,onKeyup:P},null)]),d()])]),t.createVNode("li",{class:b.value("variables")},[t.createVNode("div",{class:"title px-2 d-flex align-items-center",onClick:S=>k(S,"variables")},[t.createTextVNode("变量"),t.createVNode("span",{class:x.value("variables")},null)]),t.createVNode("div",{class:"data-area f-utils-fill"},[g()])])])])}}),bn={functionItems:{type:Array,default:[]},singleExpand:{type:Boolean,default:!0}},kn=t.defineComponent({name:"FExpressionEditor",props:bn,emits:["insertFunction","search"],setup(e,n){const a=t.ref(),o=t.ref(""),i=t.ref(),l=t.ref({}),r=t.ref(""),c="没有与搜索条件匹配的项",u=t.ref(e.functionItems),f=t.computed(()=>d=>e.singleExpand?{"functions-type d-flex flex-column":!0,open:o.value===d,closed:o.value!==d}:{"functions-type d-flex flex-column":!0,open:l.value[d],closed:!l.value[d]}),v=t.computed(()=>d=>e.singleExpand?{"f-icon f-icon-arrow-chevron-down":o.value===d,"f-icon f-icon-arrow-chevron-right":o.value!==d}:{"f-icon f-icon-arrow-chevron-down":l.value[d],"f-icon f-icon-arrow-chevron-right":!l.value[d]}),h=t.computed(()=>d=>{var g;return{"functions-item pl-2":!0,selected:((g=i.value)==null?void 0:g.key)===d.key}}),b=t.ref(Object.keys(u.value));t.watch(()=>e.functionItems,d=>{u.value=d,b.value=Object.keys(u.value),r.value&&(l.value=b.value.reduce((g,k)=>(g[k]=!0,g),{}))});function x(d){d||(d=o.value);const g=a.value.querySelector('li[function-type="'+d+'"] > div.functions-type-name');g&&(a.value.querySelector(".expression-left").scrollTop=0,g.scrollIntoViewIfNeeded?g.scrollIntoViewIfNeeded(!0):g.scrollIntoView({behavior:"smooth",block:"nearest"}))}function F(d){if(e.singleExpand){if(o.value===d){o.value="";return}o.value=d}else l.value=l.value||{},l.value[d]=!l.value[d]}function y(d,g){d.stopPropagation(),i.value=g}function s(d,g){d.stopPropagation(),n.emit("insertFunction",{$event:d,item:g})}t.watch(()=>o.value,(d,g,k)=>{if(d){const N=setTimeout(()=>{x(d)},200);k(()=>clearTimeout(N))}});function p(){n.emit("search",r.value)}function m(){n.emit("search","")}function T(d){d.key==="Enter"&&p()}function w(){return b.value.length?b.value.map(d=>t.createVNode("li",{"function-type":d,class:f.value(d)},[t.createVNode("div",{class:"functions-type-name pl-2 d-flex align-items-center",onClick:()=>{F(d)}},[t.createVNode("span",{class:v.value(d)},null),u.value[d].name]),t.createVNode("ul",{class:"pl-3 mr-2"},[u.value[d].items.map(g=>{if(g.visible!==!1)return t.createVNode("li",{class:h.value(g),onClick:k=>y(k,g),onDblclick:k=>s(k,g)},[d==="advanced"?g.key:g.name])})])])):t.createVNode("li",{class:"empty-message"},[c])}return t.onMounted(()=>{o.value=b.value[0],l.value=b.value.reduce((d,g)=>(d[g]=o.value===g,d),{})}),()=>t.createVNode("div",{class:"d-flex f-utils-fill flex-column",ref:a},[t.createVNode(J,{class:"flex-column expression-left"},{default:()=>[t.createVNode(K,{position:"top",minHeight:50,height:50,"custom-class":"position-relative d-flex align-items-center search-bar",resizable:!1},{default:()=>[t.createVNode(he.FButtonEdit,{class:"w-100 mx-2",buttonContent:'<i class="f-icon f-icon-search"></i>',enableClear:!0,popupOnClick:!0,placeholder:"请输入函数名称,按回车查询",modelValue:r.value,"onUpdate:modelValue":d=>r.value=d,onClickButton:p,onClear:m,onKeyup:T},null)]}),t.createVNode(K,{position:"center","custom-class":"layout-border"},{default:()=>[t.createVNode("ul",{class:"w-100 functions-list",style:"user-select: none"},[w()])]}),t.createVNode(K,{"custom-class":"position-relative",position:"bottom",minHeight:80},{default:()=>{var d;return[t.createVNode("textarea",{title:"函数说明",class:"h-100 w-100 function-remark p-1",disabled:!0},[(d=i.value)==null?void 0:d.description])]}})]})])}});function Cn(e){async function n(){return fetch(e.esprimaPath).then(r=>r.json())}async function a(){if(window.esprima==null){const r=await n(),{path:c}=r;return new Promise((u,f)=>{const v=document.createElement("script");v.type="text/javascript",v.src=c+"?v="+Date.now(),v.onload=u,v.onerror=f,document.head.appendChild(v)})}}function o(r){const c=[],u=window.esprima.tokenize(r);for(let b=0;b<u.length;b++)c.push(u[b].value);const f=[];for(let b=0;b<c.length;b++){const x=r.indexOf(c[b]);x!==-1?f.push(r.substring(0,x)):f.push(""),r=r.slice(x+c[b].length),b===c.length-1&&f.push(r)}const v=[],h=c.length;for(let b=0;b<h;b++)f[b]!==""&&v.push(f[b]),c[b]!==""&&v.push(c[b]),b===h-1&&f[b+1]!==""&&v.push(f[b+1]);return v}function i(r,c="key2name"){const u=new Map;if(!r)return u;let v=Object.values(r).map(h=>h.items).flat();for(;v.length>0;){const h=v.filter(b=>b.name===v[0].name);h.length>1?v.filter(b=>b.name===v[0].name).forEach(b=>{c==="key2name"?u.set(b.key,b.key+"_"+b.name):c==="name2key"&&u.set(b.key+"_"+b.name,b.key)}):c==="key2name"?u.set(h[0].key,h[0].name):c==="name2key"&&u.set(h[0].name,h[0].key),v=v.filter(b=>b.name!==v[0].name)}return u}a();async function l(r){return window.esprima?r():await a().then(()=>r())}return{loadEsprima:a,getTokens:o,getVariableMaps:i,runWithEsprima:l}}function xn(e,n,a){const o=t.ref(e.disabledFunctions),{getTokens:i,getVariableMaps:l,runWithEsprima:r}=Cn(e);function c(){const s=ne.cloneDeep(n);if(o.value){let p=Object.keys(s);const{types:m,functions:T}=o.value;return m&&m.length&&(p=p.filter(w=>m.includes(w))),T&&T.length&&Object.values(s).forEach(w=>{w.items.forEach(d=>{T.includes(d.name)&&(d.visible=!1)})}),s}return s}function u(s){const p=n.analytical.items.find(m=>m.key==="GetContextParameter");if(p)return p.name+'("'+s.name+'")'}function f(s){if(!s||s.length===0)return"";const p=m=>{switch(m.type){case"string":return`"${m.name}"`;case"list":return`[${m.name}]`;default:return m.name}};return s.map(p).join(",")}function v(s){let p=s.name;return s.type.toLowerCase()!=="advanced"&&(p+="("+f(s.params)+")"),p}function h(s){return s==null?void 0:s.bindingPath}function b(s){if(!s)return"";const p=i(s),m=l(a,"name2key");for(let w=0;w<p.length;w++){let d=0;if(d===0&&m&&p[w].length>2&&p[w][0]==='"'&&p[w][p[w].length-1]==='"'){const g=p[w].substring(1,p[w].length-1);if(m.has(g)&&p[w-1]==="("&&p[w+1]===")"){const k=m.get(g);k!==void 0&&(p[w]=`"${k}"`,d=1)}}if(d===0){const g=Object.values(n).map(k=>k.items).flat();for(let k=0;k<g.length;k++)if(p[w]===g[k].name){p[w]=g[k].keyFront+"."+g[k].key,d=1;break}}}const T=p.join("");return JSON.stringify({expr:T,sexpr:""})}function x(s,p,m,T){let w="";const d=[];for(const g of p)g.keyFront==="Math"&&d.push(g.key);for(let g=0;g<s.length;g++){if(s[g]==="Math"&&s[g+1]==="."&&!d.includes(s[g+2])){w=w+s[g]+s[g+1]+s[g+2],g=g+2;continue}if(T.includes(s[g])&&s[g+1]==="."){g=g+1;continue}else{let k=0;if(k===0&&s[g].length>2&&s[g][0]==='"'&&s[g][s[g].length-1]==='"'){const N=s[g].substring(1,s[g].length-1);if(m.has(N)&&s[g-1]==="("&&s[g+1]===")"){const I=m.get(N);I!==void 0&&(w=w+`"${I}"`,k=1)}}if(k===0){for(let N=0;N<p.length;N++)if(s[g]===p[N].key&&p[N].type.toLowerCase()!=="advanced"){w=w+p[N].name,k=1;break}}k===0&&(w=w+s[g])}}return w}function F(s){if(!s)return"";const p=i(s),m=l(a,"key2name"),T=Object.values(n).map(d=>d.items).flat();return x(p,T,m,["DefaultFunction","Math","DefaultExtendFunctionProxy"])}async function y(s){return await r(()=>F(s))}return{resetFunctionItems:c,getFieldExpression:h,getFunctionExpression:v,getContextVariableExpression:u,getExpressionCodeValue:b,getExpressionTextValue:y}}function wn(e,n){const a=t.ref([]),o=ne.cloneDeep(n.value),i=Object.values(o).map(c=>c.items).flat();function l(c){const u=ne.cloneDeep(o);return Object.keys(u).forEach(f=>{const v=u[f].items.filter(h=>c.includes(h.key));v.length>0?u[f].items=v:delete u[f]}),u}function r(c){if(!c){n.value=o;return}const u=i.filter(f=>f.name.toLowerCase().includes(c.toLowerCase())).map(f=>f.key);n.value=l(u)}return{searchResultList:a,filterFunctions:l,onFunctionSearch:r}}const Ge=t.defineComponent({name:"FExpressionEditor",props:Te,emits:[],setup(e,n){var O;const a=t.ref(),o=t.ref(e.validateMessage),i=t.ref(e.messageType),l=t.ref(e.modelValue),r=t.ref(),c=[{label:"提示",value:"info"},{label:"警告",value:"warning"},{label:"错误",value:"error"}],{getFunctionExpression:u,getContextVariableExpression:f,resetFunctionItems:v,getFieldExpression:h,getExpressionCodeValue:b,getExpressionTextValue:x}=xn(e,St,e.variables),F=t.ref(v()),{onFunctionSearch:y}=wn(e,F);function s({$event:P,item:S}){var B;const V=u(S);(B=r.value)==null||B.insertText(V)}function p({$event:P,item:S}){var B;const V=f(S);(B=r.value)==null||B.insertText(V)}function m(P){return P.reduce((S,V)=>{var B;return S.push(V.data),(B=V.children)!=null&&B.length&&S.push(...m(V.children)),S},[])}const T=m(((O=e==null?void 0:e.entities)==null?void 0:O.fields)||[]);function w(P){return P.map(S=>{const V=T.find(B=>B.bindingPath===S);return V&&V.type==="entity"?`${S}[0]`:S}).join(".")}function d({$event:P,item:S,parentCodes:V,entityCode:B}){var M;const E=h(S);V=e.isServerSide?w(S.parents):V;let L=`${V}.${E}`;B===E&&(L=E),(M=r.value)==null||M.insertText(`${L}`)}function g({$event:P,item:S}){var B;const V=h(S);(B=r.value)==null||B.insertText(`${V}`)}function k(){var P;return(P=r.value)==null?void 0:P.getContent()}function N(){var S;const P=(S=r.value)==null?void 0:S.getContent();return{value:b(P),message:o.value,messageType:i.value}}const I=t.ref("");function j(){var P;(P=r.value)==null||P.clearText()}return t.onMounted(async()=>{if(l.value){const P=JSON.parse(l.value),{expr:S}=P;S&&(I.value=await x(S)||"")}}),n.expose({getExpressionContext:k,getExpressionValue:N,resetExpression:j}),()=>t.createVNode("div",{ref:a,class:"h-100 d-flex flex-column f-utils-fill mx-3 expression-editor"},[t.createVNode(J,null,{default:()=>[t.createVNode(K,{position:"left",width:248,minWidth:130},{default:()=>[t.createVNode(kn,{functionItems:F.value,singleExpand:e.singleExpand,onInsertFunction:s,onSearch:y},null)]}),t.createVNode(K,{position:"center","custom-class":"layout-border flex-column",style:"overflow:hidden"},{default:()=>[t.createVNode("div",{class:"f-utils-fill my-2 ml-1"},[t.createVNode(yn,{modelValue:I.value,"onUpdate:modelValue":P=>I.value=P,ref:r},null)]),e.showMessage&&t.createVNode("div",{class:"d-flex flex-column p-1",style:"background: #fafafa"},[t.createVNode("div",{class:"d-flex align-items-center py-1"},[t.createVNode("b",null,[t.createTextVNode("提示信息:")]),e.showMessageType&&t.createVNode(ae,{style:"width: 75px",data:c,modelValue:i.value,"onUpdate:modelValue":P=>i.value=P,textField:"label",valueField:"value",idField:"value",enableClear:!1,minPanelWidth:130,placement:"auto"},null)]),t.withDirectives(t.createVNode("textarea",{"onUpdate:modelValue":P=>o.value=P,class:"form-control",style:"resize:none;border:none;outline:1px solid var(--f-neutral-04);"},null),[[t.vModelText,o.value]])])]}),e.showDataPanel&&t.createVNode(K,{position:"right",width:258,minWidth:130},{default:()=>[t.createVNode(vn,{dataSource:{entities:e.entities,variables:e.variables},onVariableItemDblClick:p,onEntityItemDblClick:d,onFieldClick:g},null)]})]})])}}),Fn={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}},Tn={popupContentPosition:{type:Object,default:{left:0,top:0}},host:{type:Object},backgroundColor:{type:String,default:""}},Sn=t.defineComponent({name:"FOverlay",props:Tn,emits:["click"],setup(e,n){const a=t.ref(e.popupContentPosition),o=t.ref(e.host),i=t.computed(()=>({backgroundColor:e.backgroundColor||"",pointerEvents:"auto"}));function l(c){n.emit("click"),c.preventDefault(),c.stopPropagation()}t.computed(()=>{const c=o.value;if(c){const u=c.getBoundingClientRect(),{left:f,top:v,height:h}=u;return{left:f,top:v+h}}return a.value});const r=t.computed(()=>({}));return()=>t.createVNode(t.Teleport,{to:"body"},{default:()=>{var c,u;return[t.createVNode("div",{class:"overlay-container",onClick:f=>l(f),style:i.value},[t.createVNode("div",{style:r.value},[(u=(c=n.slots).default)==null?void 0:u.call(c)])])]}})}});function Nn(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function Mn(e){const n=document.createElement("div");n.style.display="contents";let a;const o=e.onClickCallback||(()=>{}),i=()=>{o(),a&&a.unmount()};return a=t.createApp({setup(){t.onUnmounted(()=>{document.body.removeChild(n)});const l=Nn(e);return()=>t.createVNode(Sn,{"popup-content-position":e.popupPosition,host:e.host,onClick:i,backgroundColor:e.backgroundColor},{default:()=>[l&&l()]})}}),document.body.appendChild(n),a.mount(n),a}class On{static show(n){return Mn(n)}}const Vn={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 W{constructor(n,a){this.x=n,this.y=a}static getTransformInfo(n){const o=window.getComputedStyle(n).getPropertyValue("transform").replace(/[^-\d,]/g,"").split(",");if(o.length>=6){const i=parseInt(o[4],10),l=parseInt(o[5],10);return{x:i,y:l}}return{x:0,y:0}}static fromEvent(n,a=null){if(this.isMouseEvent(n))return new W(n.clientX,n.clientY);if(a===null||n.changedTouches.length===1)return new W(n.changedTouches[0].clientX,n.changedTouches[0].clientY);for(let o=0;o<n.changedTouches.length;o++)if(n.changedTouches[o].target===a)return new W(n.changedTouches[o].clientX,n.changedTouches[o].clientY)}static isMouseEvent(n){return Object.prototype.toString.apply(n).indexOf("MouseEvent")===8}static isIPosition(n){return!!n&&"x"in n&&"y"in n}static getCurrent(n){const a=new W(0,0);if(window){const o=window.getComputedStyle(n);if(o){const i=parseInt(o.getPropertyValue("left"),10),l=parseInt(o.getPropertyValue("top"),10);a.x=isNaN(i)?0:i,a.y=isNaN(l)?0:l}return a}return null}static copy(n){return new W(0,0).set(n)}get value(){return{x:this.x,y:this.y}}add(n){return this.x+=n.x,this.y+=n.y,this}subtract(n){return this.x-=n.x,this.y-=n.y,this}multiply(n){this.x*=n,this.y*=n}divide(n){this.x/=n,this.y/=n}reset(){return this.x=0,this.y=0,this}set(n){return this.x=n.x,this.y=n.y,this}}class Q{constructor(n,a){this.width=n,this.height=a}static getCurrent(n){const a=new Q(0,0);if(window){const o=window.getComputedStyle(n);return o&&(a.width=parseInt(o.getPropertyValue("width"),10),a.height=parseInt(o.getPropertyValue("height"),10)),a}return null}static copy(n){return new Q(0,0).set(n)}set(n){return this.width=n.width,this.height=n.height,this}}function Bn(e,n){const a=t.ref(),o=t.ref(),i=t.ref(),l=t.ref(),r=t.ref(),c=t.ref(),u=t.ref(),f=t.ref(),v=t.ref(),h=t.ref(),b=t.ref(),x=t.ref(e.resizeable),F=t.ref(),y=t.ref(e.draggable),s=t.ref(!1);function p(){const M=o.value||document.body,D=window.getComputedStyle(M);if(!D||!a.value)return;const A=W.getTransformInfo(a.value),z={};u.value&&(z.deltaL=a.value.offsetLeft-u.value.x,z.deltaT=a.value.offsetTop-u.value.y);const q=D.getPropertyValue("position");z.width=M.clientWidth,z.height=M.clientHeight,z.pr=parseInt(D.getPropertyValue("padding-right"),10),z.pb=parseInt(D.getPropertyValue("padding-bottom"),10),z.position=D.getPropertyValue("position"),q==="static"&&(M.style.position="relative"),z.translateX=A.x,z.translateY=A.y,h.value=z}function m(M){if(a.value){l.value=Q.getCurrent(a.value),r.value=W.getCurrent(a.value),c.value=l.value?Q.copy(l.value):null,u.value=r.value?W.copy(r.value):null,p();const D=M.target.getAttribute("type")||"";f.value={n:!!D.match(/n/),s:!!D.match(/s/),w:!!D.match(/w/),e:!!D.match(/e/)}}}function T(){var M,D,A,z;if(a.value){const q=a.value;f.value&&((f.value.n||f.value.s)&&((M=c.value)!=null&&M.height)&&(q.style.height=c.value.height+"px"),(f.value.w||f.value.e)&&((D=c.value)!=null&&D.width)&&(q.style.width=c.value.width+"px"),u.value&&((A=u.value)!=null&&A.x&&(q.style.left=u.value.x+"px"),(z=u.value)!=null&&z.y&&(q.style.top=u.value.y+"px")))}}function w(){const M=e.minHeight?e.minHeight:1,D=e.minWidth?e.minWidth:1;c.value&&u.value&&f.value&&l.value&&(c.value.height<M&&(c.value.height=M,f.value.n&&r.value&&(u.value.y=r.value.y+(l.value.height-M))),c.value.width<D&&(c.value.width=D,f.value.w&&r.value&&(u.value.x=r.value.x+(l.value.width-D))),e.maxHeight&&c.value.height>e.maxHeight&&(c.value.height=e.maxHeight,r.value&&f.value.n&&(u.value.y=r.value.y+(l.value.height-e.maxHeight))),e.maxWidth&&c.value.width>e.maxWidth&&(c.value.width=e.maxWidth,f.value.w&&r.value&&(u.value.x=r.value.x+(l.value.width-e.maxWidth))))}function d(){if(o.value){const M=h.value;if(u.value&&c.value&&f.value&&l.value){const D=M.width-M.pr-M.deltaL-M.translateX-u.value.x,A=M.height-M.pb-M.deltaT-M.translateY-u.value.y;f.value.n&&u.value.y+M.translateY<0&&r.value&&(u.value.y=-M.translateY,c.value.height=l.value.height+r.value.y+M.translateY),f.value.w&&u.value.x+M.translateX<0&&r.value&&(u.value.x=-M.translateX,c.value.width=l.value.width+r.value.x+M.translateX),c.value.width>D&&(c.value.width=D),c.value.height>A&&(c.value.height=A)}}}function g(M){if(!i.value||!l.value||!r.value||!f.value)return;M.subtract(i.value);const D=M.x,A=M.y;f.value.n?(u.value.y=r.value.y+A,c.value.height=l.value.height-A):f.value.s&&(c.value.height=l.value.height+A),f.value.e?c.value.width=l.value.width+D:f.value.w&&(c.value.width=l.value.width-D,u.value.x=r.value.x+D),d(),w(),T()}function k(M){if(!v.value)return;const D=W.fromEvent(M);D&&g(D)}function N(){if(a.value){const{width:M,height:D,x:A,y:z}=a.value.getBoundingClientRect(),q=W.getTransformInfo(a.value);return{size:{width:M,height:D},position:{x:A-q.x,y:z-q.y}}}return null}function I(M){if(a.value){const D=N();b.value=D}i.value=void 0,l.value=null,r.value=null,c.value=null,u.value=null,f.value=null,v.value=null,document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",I)}function j(){document.addEventListener("mousemove",k),document.addEventListener("mouseup",I)}function O(M){M instanceof MouseEvent&&M.button===2||y.value&&(document.body.click(),M.stopPropagation(),M.preventDefault(),i.value=W.fromEvent(M),v.value=M.target,m(M),j())}function P(M){return a.value=M,x.value&&t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"fv-resizable-handle fv-resizable-n",type:"n",onMousedown:D=>O(D)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-e",type:"e",onMousedown:D=>O(D)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-s",type:"s",onMousedown:D=>O(D)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-w",type:"w",onMousedown:D=>O(D)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-ne",type:"ne",onMousedown:D=>O(D)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-se fv-resizable-diagonal",type:"se",onMousedown:D=>O(D)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-sw",type:"sw",onMousedown:D=>O(D)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-nw",type:"nw",onMousedown:D=>O(D)},null)])}function S(M=!0){document.body.click();const D=o.value||document.body,A=Q.getCurrent(D),z=a.value;M&&z&&(F.value=N(),F.value.transform=z.style.transform),A&&z&&(c.value=A,c.value.height-=14,c.value.width-=14,z.style.height=c.value.height+"px",z.style.width=c.value.width+"px",z.style.left="7px",z.style.top="7px",z.style.transform="",b.value={size:c.value,position:{x:0,y:0}},y.value=!1,s.value=!0)}function V(){var M,D;if(document.body.click(),F.value){const A={width:F.value.size.width||0,height:F.value.size.height||0},z={x:(window.innerWidth-A.width)/2,y:(window.innerHeight-A.height)/2};(M=c.value)==null||M.set(A),(D=u.value)==null||D.set(z);const q=a.value;q.style.height=A.height+"px",q.style.width=A.width+"px",q.style.left=`${z.x}px`,q.style.top=`${z.y}px`,q.style.transform="",b.value={size:A,position:z},y.value=e.draggable,s.value=!1}}function B(){if(a.value){const M=Q.getCurrent(a.value);if(M){const{width:D,height:A}=M;a.value.style.left=`${(window.innerWidth-D)/2}px`,a.value.style.top=`${(window.innerHeight-A)/2}px`,a.value.style.transform=""}}}function E(){const M=()=>{s.value?S(!1):B(),document.body.click()};return window.addEventListener("resize",M),()=>{window.removeEventListener("resize",M)}}const L=E();return{renderResizeBar:P,boundingElement:o,resizedEventParam:b,maximize:S,restore:V,allowDrag:y,isMaximized:s,unWindowResizeHandle:L,moveToCenter:B}}function Dn(e,n,a){const o=t.ref(),i=t.ref(e.draggable),l=t.ref(e.lockAxis),r=t.ref(),c=t.ref(),u=t.ref(!1),f=t.ref(new W(0,0)),v=t.ref(new W(0,0)),h=t.ref(new W(0,0)),b=t.ref(new W(0,0));t.watch(()=>a.value,k=>{r.value.style.cursor=k?"move":"default"});function x(k,N){if(N.tagName==="BUTTON")return!1;if(N===k)return!0;for(const I in N.children)if(Object.prototype.hasOwnProperty.call(N.children,I)&&x(k,N.children[I]))return!0;return!1}function F(){var j,O;let k=h.value.x+v.value.x,N=h.value.y+v.value.y;l.value==="x"?(k=((j=f.value)==null?void 0:j.x)||0,h.value.x=0):l.value==="y"&&(N=((O=f.value)==null?void 0:O.y)||0,h.value.y=0);const I=`translate3d(${Math.round(k)}px, ${Math.round(N)}px, 0px)`;o.value&&(o.value.style.transform=I),b.value.x=k,b.value.y=N}function y(){if(!c.value||!o.value)return null;const k=c.value.getBoundingClientRect(),N=o.value.getBoundingClientRect(),I={top:k.top<N.top,right:k.right>N.right,bottom:k.bottom>N.bottom,left:k.left<N.left};return I.top||(h.value.y-=N.top-k.top),I.bottom||(h.value.y-=N.bottom-k.bottom),I.right||(h.value.x-=N.right-k.right),I.left||(h.value.x-=N.left-k.left),F(),I}function s(k){k&&(f.value&&k.subtract(f.value),h.value.set(k),F(),y())}function p(k){u.value&&i.value&&(k.stopPropagation(),k.preventDefault(),s(W.fromEvent(k,r.value)))}function m(){var k;u.value&&(u.value=!1,v.value.add(h.value),h.value.reset(),(k=o.value)==null||k.classList.remove("ng-dragging"),n.emit("stopMove"),document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",m))}function T(){!u.value&&r.value&&(u.value=!0,r.value.classList.add("ng-dragging"),document.addEventListener("mousemove",p),document.addEventListener("mouseup",m))}function w(){if(o.value){const k=W.getTransformInfo(o.value);v.value.set(k);return}v.value.reset()}function d(k){if(!a.value||k instanceof MouseEvent&&k.button===2)return;const N=k.target||k.srcElement;r.value!==void 0&&N&&!x(N,r.value)||i.value!==!1&&(document.body.click(),k.stopPropagation(),k.preventDefault(),f.value=W.fromEvent(k,o.value),w(),T())}function g(k,N,I){if(i.value&&N){if(k)r.value=k;else if(e.dragHandle){if(e.dragHandle instanceof HTMLElement)r.value=e.dragHandle;else if(typeof e.dragHandle=="string"){const j=N.querySelector(e.dragHandle);j&&(r.value=j)}}o.value=N,c.value=I,r.value?(r.value.classList.add("ng-draggable"),r.value.addEventListener("mousedown",d)):i.value=!1}}return{registerDraggle:g,resetTranslate:w}}function Ke(e,n){if(e){const a=o=>{o.key.toLowerCase()===e.toLowerCase()&&n({event:o,key:e})};return document.addEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)}}}function En(e,n){const a=t.ref(e.enableEsc);let o=null;return a.value?(o=Ke("Escape",i=>{n.emit("esc",{event:i.event,type:"esc"})}),{remove:o}):null}function Pn(e,n){const a=t.ref(e.enableEnter);let o=null;return a.value?(o=Ke("Enter",i=>{n.emit("enter",{event:i.event,type:"enter"})}),{remove:o}):null}const re=t.defineComponent({name:"FModal",props:Vn,emits:["update:modelValue","accept","cancel","closed","resize","esc","enter","stopMove","buttonClick"],setup(e,n){const a=t.ref(e.width||300),o=t.ref(e.height||200),i=t.ref(e.modelValue),l=t.ref(""),r=t.ref(e.class),c=t.ref(e.fitContent),u=t.ref(e.showHeader),f=t.ref(""),v=t.ref(e.showCloseButton),h=t.ref(e.showMaxButton),b=t.ref(!1),x=t.ref(e.dialogType),F=t.ref(e.src),y=t.ref(""),s=t.ref(e.showButtons),p=t.ref(e.title),m=t.ref(e.containment||null),T=t.ref();p.value==="错误提示"&&(p.value=G.LocaleService.getLocaleValue("messageBox.errorTitle"));const w=t.ref(!1);function d(C,R){const Y=R?"accept":"cancel";Promise.resolve().then(()=>{var $;return($=e.beforeClose)==null?void 0:$.call(e,{closeType:Y})}).then($=>{$&&(i.value=!1,n.emit("update:modelValue",!1),R!=null&&n.emit(R?"accept":"cancel"),n.emit("closed",C))})}const g=[{name:"cancel",text:G.LocaleService.getLocaleValue("messageBox.cancel")||"取消",class:"btn btn-secondary",handle:C=>{d(C,!1)}},{name:"accept",text:G.LocaleService.getLocaleValue("messageBox.ok")||"确定",class:"btn btn-primary",handle:C=>{d(C,!0)}}],k=t.ref(e.buttons&&e.buttons.length?e.buttons:g),N=t.computed(()=>!!f.value),I=t.computed(()=>!!s.value&&!!k.value),j=t.ref(),O=t.ref(),P=t.ref(!1),{renderResizeBar:S,maximize:V,restore:B,boundingElement:E,resizedEventParam:L,allowDrag:M,unWindowResizeHandle:D,moveToCenter:A}=Bn(e),{registerDraggle:z}=Dn(e,n,M);function q(){return!!document.querySelectorAll(".farris-modal").length&&document.body.classList.contains("modal-open")}function na(){const C=document.querySelectorAll(".farris-modal").length;(!C||C-1<=0)&&document.body.classList.remove("modal-open"),T.value&&T.value.classList.remove("show")}t.watch(()=>e.title,(C,R)=>{C!==R&&(p.value=C)}),t.watch(()=>e.modelValue,(C,R)=>{C!==R&&(i.value=C,i.value&&e.draggable&&t.nextTick(()=>{O.value&&!m.value&&(m.value=O.value.parentElement,E.value=m.value,z(j.value,O.value,E.value),A())}),C||(m.value&&(m.value=null),na())),i.value?w.value=q():(P.value=!1,M.value=e.draggable)}),t.watch(()=>e.showHeader,(C,R)=>{C!==R&&(u.value=C)}),t.watch(()=>e.showButtons,(C,R)=>{C!==R&&(s.value=C)}),t.watch(()=>L.value,(C,R)=>{const Y=C||{},$=R||{};JSON.stringify(Y)!==JSON.stringify($)&&n.emit("resize",{newSize:C,oldSize:R,isMaximized:P.value})}),t.watch([()=>e.width,()=>e.height],(C,R)=>{(C[0]!==R[0]||C[1]!==R[1])&&(a.value=C[0]||500,o.value=C[1]||600)}),t.watch(()=>e.class,(C,R)=>{r.value=C});const pe=t.computed(()=>(i.value&&document.body.classList.add("modal-open"),i.value)),aa=t.computed(()=>{var Y;const C={modal:!0,"farris-modal":!0,fade:!0,"fe-cmp-page-modal":!!e.showFloatingClose};C["f-modal-fitContent"]=!!c.value,C.show=!!pe.value;const R=(Y=e.maskClass)==null?void 0:Y.split(" ");return R==null||R.reduce(($,te)=>($[te]=!0,$),C),C}),oa=t.computed(()=>{var Y;const C={"modal-dialog":!0},R=(Y=r.value)==null?void 0:Y.split(" ");return R==null||R.reduce(($,te)=>($[te]=!0,$),C),C}),ia=()=>_.isMobilePhone()&&!e.isMessager||!!e.fullscreen,la=t.computed(()=>{const C=document.documentElement.clientWidth,R=document.documentElement.clientHeight,Y=Math.min(a.value,C),$=e.position==="right"?"100%":c.value?"auto":`${Math.min(o.value,R-10)}px`,te=`${(window.innerHeight-($==="100%"||$==="auto"?0:parseInt($)))/2}px`,Fa=e.position==="right"?`${window.innerWidth-Y}px`:`${(window.innerWidth-Y)/2}px`,nt={position:"absolute",top:te,left:Fa,width:`${Y}px`,height:$};return e.mask||(nt.pointerEvents="auto"),nt}),et=t.ref(_.getMaxZIndex()||1050),ra=t.computed(()=>{const C={display:"block",overflow:"hidden"};return e.mask||(C.pointerEvents="none",C.backgroundColor="transparent"),w.value&&(C.backgroundColor="transparent"),C.zIndex=et.value,C}),sa=t.computed(()=>({"modal-content":!0,"modal-content-has-header":u.value,"is-mobile":ia()})),ca=t.computed(()=>{const C={display:u.value?"":"none"};return C["pointer-events"]=M.value?"auto":"none",C}),ua=t.computed(()=>({"f-icon":!0,modal_maximize:!0,modalrevert:P.value})),da=t.computed(()=>({"modal-body":!0,"f-utils-flex-column":x.value==="iframe","f-utils-fill":!0}));function fa(){return{height:`${e.footerHeight||60}px`}}const ma=t.computed(()=>{const C={textAlgin:y.value},R=fa();return Object.assign(C,R)});function tt(C){if(C==null||C.stopPropagation(),P.value){P.value=!1,B();return}V(),P.value=!0}async function ya(C,R){C.handle?await C.handle(R,C)&&n.emit("closed",R):(typeof C.onClick=="string"&&(C.onButtonClick=ne.cloneDeep(C.onClick||""),delete C.onClick),n.emit("buttonClick",{button:C,$event:R}))}function pa(C){C.width&&(a.value=C.width),C.height&&(o.value=C.height),C.buttons&&(k.value=C.buttons),C.title&&(p.value=C.title)}let we=null,Fe=null;t.onBeforeMount(()=>{w.value=q()}),t.onMounted(()=>{O.value&&!m.value&&(m.value=O.value.parentElement,E.value=m.value,z(j.value,O.value,E.value)),pe.value&&document.body.classList.add("modal-open"),we=En(e,n),Fe=Pn(e,n)}),t.onUnmounted(()=>{D&&D(),we&&we.remove(),Fe&&Fe.remove()}),n.expose({modalElementRef:O,updateModalOptions:pa,close:d,maxDialog:tt,isMaximized:P});function ha(){return t.createVNode("div",{class:"action-wrapper",onClick:C=>d(C,!1)},[t.createVNode("span",{class:"close-icon"},[t.createVNode("i",{class:"f-icon f-icon-close"},null)])])}function ga(){return t.createVNode("ul",null,[b.value&&t.createVNode("li",{class:"f-btn-icon f-bare"},[t.createVNode("span",{class:"f-icon modal_minimize"},null)]),h.value&&t.createVNode("li",{onClick:tt,class:"f-btn-icon f-bare",style:"pointer-events: auto;"},[t.createVNode("span",{class:ua.value},null)]),v.value&&t.createVNode("li",{class:"f-btn-icon f-bare",onClick:C=>d(C,!1),style:"pointer-events: auto;"},[t.createVNode("span",{class:"f-icon modal_close"},null)])])}function va(){return t.createVNode("div",{class:"modal-footer",style:ma.value},[k.value&&k.value.map(C=>{var $;const R=t.ref(C.disabled),Y=C.class||(($=C.appearance)==null?void 0:$.class);return t.createVNode("button",{name:C.name,type:"button",disabled:R.value,class:Y+(C.iconClass?" btn-icontext":"")+(C.visible===!1?"d-none":""),onClick:te=>{ya(C,te)}},[!!C.iconClass&&t.createVNode("i",{class:C.iconClass},null),C.text])})])}function ba(){return t.createVNode("div",{ref:j,class:"modal-header",style:ca.value},[n.slots.headerTemplate?n.slots.headerTemplate():t.createVNode("div",{class:"modal-title"},[N.value&&t.createVNode("span",{class:f.value,style:"margin-right: 8px"},null),t.createVNode("span",{class:"modal-title-label"},[p.value])]),t.createVNode("div",{class:"actions"},[ga()])])}function ka(){return n.slots.footerTemplate?n.slots.footerTemplate():I.value&&va()}function Ca(C){if(C.stopPropagation(),e.allowClickMaskToClose){if(C.target!==T.value)return;d(C,!1)}}function xa(){var C,R;return t.createVNode("div",{id:l.value,class:oa.value,style:la.value,ref:O},[e.showFloatingClose&&ha(),t.createVNode("div",{class:sa.value},[u.value&&ba(),t.createVNode("div",{class:da.value},[(R=(C=n.slots).default)==null?void 0:R.call(C),x.value==="iframe"&&t.createVNode("iframe",{title:l.value,class:"f-utils-fill",width:"100%",frameborder:"0",src:F.value},null)]),ka()]),!c.value&&O.value&&!P.value&&S(O.value)])}function wa(C){return C||"body"}return t.watchEffect(()=>{pe.value&&(et.value=_.getMaxZIndex()||1050)}),()=>t.createVNode(t.Teleport,{to:wa(e.host)},{default:()=>[pe.value&&t.createVNode(t.Transition,{name:"fade",appear:!0},{default:()=>[t.createVNode("div",{ref:T,class:aa.value,style:ra.value,onClick:Ca},[xa()])]})]})}});function Xe(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function jn(e){const n=document.createElement("div");n.style.display="contents";const a=t.createApp({setup(o,i){t.onUnmounted(()=>{document.body.removeChild(n)});const l=t.ref(),r=t.ref(e.class||""),c=t.ref(!!e.showButtons),u=t.ref(!!e.showHeader),f=t.ref(e.showCloseButton==null?!0:e.showCloseButton),v=t.ref(!!e.showFloatingClose),h=t.ref(!0),b=t.ref(e.title||""),x=e.acceptCallback||(()=>{}),F=e.rejectCallback||(()=>{}),y=e.closedCallback||(w=>{}),s=e.resizeHandle||(w=>{}),p=e.stopMoveHandle||(w=>{}),m=Xe(e),T=w=>{h.value=!1,a.unmount(),y(w)};return t.onMounted(()=>{}),i.expose({modalRef:l}),()=>t.createVNode(re,{ref:l,class:r.value,modelValue:h.value,"onUpdate:modelValue":w=>h.value=w,title:b.value,width:e.width,height:e.height,buttons:e.buttons,"show-header":u.value,"show-buttons":c.value,"show-close-button":f.value,"show-max-button":!1,showFloatingClose:v.value,onAccept:x,onCancel:F,fitContent:e.fitContent==null?!0:e.fitContent,onClosed:T,onResize:s,onStopMove:p},{default:()=>[m&&m(a)]})}});return document.body.appendChild(n),a.use(G.LocaleService.i18n),a.mount(n),a}class In{constructor(n){X(this,"appContext",null);X(this,"modalRef",t.ref());X(this,"activeModalIndex",t.ref(0));X(this,"modalRefs",{});X(this,"isUseEscCloseModal",t.ref(!1));X(this,"activeModalInstance",t.computed(()=>this.modalRefs[this.activeModalIndex.value]));this.app=n,this.appContext=n?n._context:null}getCurrentModal(){return this.activeModalInstance.value}adaptToWindow(n,a){const{width:o,height:i}={width:window.innerWidth,height:window.innerHeight};return o<n&&(n=o-14),i<a&&(a=i-14),{width:n,height:a}}static show(n){const a=Object.assign({title:"",showButtons:!0,showHeader:!0},n);return jn(a)}close(n){var a,o;n?(o=n.value)==null||o.close():(a=this.getCurrentModal())==null||a.close()}open(n){const a=document.createDocumentFragment();n.showMaxButton&&n.fitContent&&(n.showMaxButton=!1);const o=t.shallowRef(Object.assign({title:"",showButtons:!0,showHeader:!0},n)),i=t.ref(!0),l=o.value.acceptCallback||(()=>{}),r=o.value.rejectCallback||(()=>{}),c=o.value.closedCallback||((d,g)=>{}),u=o.value.resizeHandle||(d=>{}),f=n.stopMoveHandle||(d=>{});let v;const h=Xe(o.value),b=d=>{var k;i.value=!1;const g=(k=d==null?void 0:d.target)==null?void 0:k.classList.contains("modal_close");c(d,this.isUseEscCloseModal.value?"esc":g?"icon":"button")},x=d=>{b(d),v&&t.nextTick(()=>{if(this.modalRefs[this.activeModalIndex.value]&&delete this.modalRefs[this.activeModalIndex.value],t.render(null,a),v=null,this.modalRef.value=null,this.modalRefs){const g=Object.keys(this.modalRefs).map(k=>Number(k));g.length>0?this.activeModalIndex.value=Math.max(...g):this.activeModalIndex.value=0}this.isUseEscCloseModal.value=!1})},F=d=>{var g;this.isUseEscCloseModal.value=!0,this.activeModalInstance&&((g=this.activeModalInstance.value)==null||g.close(d==null?void 0:d.event))},{width:y,height:s}=o.value,p=this.adaptToWindow(y||500,s||320);Object.assign(o.value,p);const m=()=>t.createVNode(re,t.mergeProps({ref:this.modalRef,modelValue:i.value,"onUpdate:modelValue":d=>i.value=d},o.value,{isMessager:o.value.class&&o.value.class.indexOf("modal-message")>-1,onAccept:l,onCancel:r,onClosed:x,onResize:u,onEsc:F,onStopMove:f}),{default:()=>[h&&h(this.app)]});return v=(d=>{const g=t.h(m,d);return g.appContext=this.appContext,t.render(g,a),g})({...o.value}),this.activeModalIndex.value++,this.modalRefs[this.activeModalIndex.value]=this.modalRef.value,{update:d=>{o.value={...o.value,...d},v&&t.render(t.cloneVNode(v,{...o}),a)},destroy:x,modalRef:this.activeModalInstance,close:()=>this.close()}}}const _e=Symbol("FModalService");re.install=e=>{e.component(re.name,re);const n=new In(e);e.provide(_e,n),e.provide("FModalService",n)};function Je(e,n){function a(){const o=e.beforeOpen||e.beforeClickButton||null;let i=Promise.resolve(!0);if(o){const l=o(n.value);if(typeof l>"u")return i;typeof l=="boolean"?i=Promise.resolve(l):i=l}return i}return{judgeCanOpen:a}}function Rn(e,n,a,o,i){const l=t.ref(e.buttonBehavior),r=t.ref(e.popupOnInput),c=t.computed(()=>({"input-group-append":!0,"append-force-show":e.showButtonWhenDisabled&&(e.readonly||e.disable)})),{judgeCanOpen:u}=Je(e,i),f=t.computed(()=>e.showButtonWhenDisabled||(!e.editable||!e.readonly)&&!e.disable),v=t.inject(_e,null),h=t.ref();async function b(y){if(await u()&&f.value){const s=!!n.slots.default;if(l.value==="Modal"){const p=e.modalOptions,m=v==null?void 0:v.open({...p,render:()=>n.slots.default&&n.slots.default()});h.value=m==null?void 0:m.modalRef}l.value==="Overlay"&&On.show({host:document.body,backgroundColor:"rgba(0,0,0,.15)",render:()=>n.slots.default&&n.slots.default()}),s&&l.value==="Popup"&&o.togglePopup(!0),s&&r.value&&o.hidePopup(),n.emit("clickButton",{origin:y,value:e.modelValue})}}function x(y){n.emit("mouseEnterIcon",y)}function F(y){n.emit("mouseLeaveIcon",y)}return{buttonGroupClass:c,onClickButton:b,onMouseEnterButton:x,onMouseLeaveButton:F,modalRef:h}}function Ln(e,n,a,o,i,l){const r=t.ref(!1),c=t.computed(()=>e.enableClear&&!e.readonly&&!e.disable),{changeTextBoxValue:u,hasClearClass:f}=l;function v(F){r.value=F,f.value=F}t.watch(i,()=>{v(!!i.value)});function h(F){const y=!e.readonly&&!e.disable&&e.editable,s=!e.editable;F.stopPropagation(),(y||s)&&(u(""),i.value="",v(!r.value),n.emit("clear"))}function b(F){if(c.value){if(!a.value){v(!1);return}!e.disable&&!e.readonly&&v(!0)}}function x(F){c.value&&v(!1)}return{enableClearButton:c,showClearButton:r,onClearValue:h,onMouseEnterTextBox:b,onMouseLeaveTextBox:x}}function zn(e,n,a,o,i){const l=t.computed(()=>e.popupOnInput),r=t.computed(()=>e.popupOnFocus),{shouldPopupContent:c,closeAllPopover:u}=i,f=t.ref(!1),v=t.computed(()=>e.enableTitle?a.value:""),h=t.computed(()=>(e.disable||e.readonly)&&!e.forcePlaceholder?"":e.placeholder),b=t.computed(()=>e.readonly||!e.editable),x=t.ref(!1),F=t.computed(()=>!e.disable&&x.value),y=t.computed(()=>({"text-left":e.textAlign==="left","text-center":e.textAlign==="center","text-right":e.textAlign==="right","form-control":!0,"f-utils-fill":!0})),s=t.computed(()=>({"input-group":!0,"f-state-disabled":e.disable,"f-state-editable":e.editable&&!e.disable&&!e.readonly,"f-state-readonly":e.readonly,"f-state-focus":F.value,"input-group--has-clear":e.enableClear&&f.value}));function p(O,P=!0){a.value=O,P&&(n.emit("change",O),n.emit("update:modelValue",O))}function m(O){c.value=!1,p(O,!0)}t.watch(()=>e.modelValue,O=>{a.value=O});function T(O){x.value=!1,n.emit("blur",O),O.stopPropagation()}function w(O){n.emit("click",O),u(),n.slots.default&&!e.disable&&!e.readonly&&e.popupOnClick&&i.togglePopup()}function d(O){!e.disable&&!e.readonly&&(x.value=!0,b.value||(n.emit("focus",O),r.value&&!c.value&&i.popup()))}function g(O){n.emit("input",O);const P=O.target.value;o.value=P,a.value!==P&&p(P,e.updateOn==="change"),l.value&&!c.value&&i.popup()}function k(O){O.target.tagName!=="INPUT"&&O.preventDefault(),O.stopPropagation()}function N(O){n.emit("keydown",O)}function I(O){O.key==="Enter"&&(l.value||r.value)&&i.hidePopup(),n.emit("keyup",O)}function j(O){const P=O.target.value;O.stopPropagation(),p(P)}return{hasFocusedTextBox:F,isTextBoxReadonly:b,textBoxClass:y,textBoxPlaceholder:h,textBoxTitle:v,inputGroupClass:s,hasClearClass:f,changeTextBoxValue:p,commitValue:m,onBlurTextBox:T,onClickTextBox:w,onFocusTextBox:d,onInput:g,onKeyDownTextBox:N,onKeyUpTextBox:I,onMouseDownTextBox:k,onTextBoxValueChange:j}}const ee="FarrisVue_PopoverInstancesKey";function Hn(e,n,a,o){const i=t.ref(),l=t.ref(!1),{judgeCanOpen:r}=Je(e,o);t.watch(()=>i.value,(x,F)=>{window[ee]=window[ee]||new WeakMap,x?window[ee].set(a.value,x):window[ee].delete(a.value)});function c(){if(window[ee]){const x=window[ee];document.querySelectorAll(".f-button-edit,.v-popover").forEach(F=>{const y=x.get(F);y&&F!==a.value&&!a.value.closest(".popover-fitcontent")&&y.hide()})}}function u(){const x=i.value;x&&x.show(a.value)}async function f(x=!1){if(!!n.slots.default){if(!x&&!l.value&&!await r())return;l.value=!l.value,l.value&&(await t.nextTick(),u())}}async function v(x=!1){if(!!n.slots.default){if(!x&&!await r())return;l.value=!0,await t.nextTick(),u()}}function h(){l.value=!1}function b(){l.value=!0,t.nextTick(()=>{u()})}return{hidePopup:h,showPopup:b,popup:v,shouldPopupContent:l,togglePopup:f,popoverRef:i,closeAllPopover:c}}function An(e,n,a){const o=t.ref(),{isTextBoxReadonly:i,textBoxClass:l,textBoxPlaceholder:r,textBoxTitle:c,onBlurTextBox:u,onClickTextBox:f,onFocusTextBox:v,onInput:h,onKeyDownTextBox:b,onKeyUpTextBox:x,onMouseDownTextBox:F,onTextBoxValueChange:y}=a,s=t.ref(e.id),{uuid:p}=_.useGuid(),m=t.computed(()=>({}));t.onMounted(()=>{var k,N;e.selectOnCreated&&((k=o.value)==null||k.select()),e.focusOnCreated&&((N=o.value)==null||N.focus({preventScroll:!0})),s.value||(s.value="button-edit_"+p(8)),s.value=s.value+"-textbox"});const T=t.ref(!1),w=k=>{k.preventDefault(),T.value=!0},d=k=>{k.preventDefault(),T.value=!1,h(k)};function g(k){T.value||h(k)}return()=>t.createVNode("input",{id:e.id?e.id+"-textbox":void 0,ref:o,name:"input-group-value",autocomplete:e.autoComplete?"on":"off",class:l.value,style:m.value,disabled:e.disable,maxlength:e.maxLength,minlength:e.minLength,placeholder:r.value,readonly:i.value,tabindex:e.tabIndex,title:c.value,type:e.inputType,value:n.value,onBlur:u,onChange:y,onClick:f,onFocus:v,onInput:g,onKeydown:b,onKeyup:x,onMousedown:F,onCompositionend:d,onCompositionstart:w},null)}function $n(e,n,a){const o=t.ref(e.separator),i=t.computed(()=>e.readonly||e.disable),{changeTextBoxValue:l,onFocusTextBox:r,onBlurTextBox:c,onClickTextBox:u,textBoxPlaceholder:f}=a,v=t.computed(()=>n.value?n.value.split(o.value).map(F=>({name:F,selectable:!0})):[]);function h(F){l(F.map(y=>y.name).join(o.value),!0)}t.watch(()=>e.separator,F=>{o.value=F});const b=t.ref(!e.disable&&!e.readonly);t.watch([()=>e.disable,()=>e.readonly],([F,y],[s,p])=>{b.value=!F&&!y});function x(F){u(F)}return()=>t.createVNode(rt,{tabindex:e.tabIndex,onFocus:r,onBlur:c,id:`${e.id}-tag-editor`,class:"form-control",placeholder:f.value,data:v.value,showClose:!i.value,showInput:!0,disable:i.value,onChange:h,onClick:x},null)}function Wn(e,n,a,o){const{buttonGroupClass:i,onClickButton:l,onMouseEnterButton:r,onMouseLeaveButton:c}=a,{enableClearButton:u,showClearButton:f,onClearValue:v}=o,h=t.ref(),b=ne.debounce(s=>{l(s)},e.buttonBehavior==="Modal"?0:200),x=()=>{n.emit("beforeClearValue")},F=t.computed(()=>({"input-group-append input-append-wrapper":!0,"input-append-button":e.expandMode==="button","input-append-text":e.expandMode==="text","d-none":!!e.expandDisabled})),y=()=>{n.emit("expandClick")};return{renderButtonGroup:()=>t.createVNode("div",{id:e.id?`${e.id}-button-group`:void 0,class:i.value},[u.value&&t.withDirectives(t.createVNode("span",{class:"input-group-text input-group-clear",onClick:v,onMousedown:x},[t.createVNode("i",{class:"f-icon modal_close"},null)]),[[t.vShow,f.value]]),n.slots.buttonContent?t.createVNode("span",{class:"input-group-text input-group-append-button",onClick:b,onMouseenter:r,onMouseleave:c},[n.slots.buttonContent()]):e.buttonContent?t.createVNode("span",{class:"input-group-text input-group-append-button",innerHTML:e.buttonContent,ref:h,onClick:s=>b(s),onMouseenter:r,onMouseleave:c},null):null,e.expandable&&t.createVNode("div",{class:F.value,onClick:y},[t.createVNode("div",{class:"input-group-text"},[e.expandContent])])]),buttonHandleElement:h}}function qn(e,n,a){const o=t.ref(e.popupMinWidth),{hidePopup:i,popoverRef:l}=a,r=()=>{n.emit("shown")};return()=>t.createVNode(st,{id:`${e.id}-popover`,ref:l,placement:e.placement,host:e.popupHost,"keep-width-with-reference":e.keepWidthWithReference,fitContent:!0,"right-boundary":e.popupRightBoundary,minWidth:o.value,class:e.popupClass,offsetX:e.popupOffsetX,onHidden:i,onShown:r,beforeClose:e.beforeClosePopup,limitContentBySpace:e.limitContentBySpace},{default:()=>{var c,u;return[(u=(c=n.slots).default)==null?void 0:u.call(c)]}})}const Yn=t.defineComponent({name:"FButtonEdit",props:Fn,emits:["updateExtendInfo","clear","change","click","clickButton","blur","focus","mouseEnterIcon","mouseLeaveIcon","keyup","keydown","inputClick","input","update:modelValue","beforeClearValue","expandClick"],setup(e,n){const a=t.ref(),o=t.ref(e.customClass),i=t.ref(e.modelValue),l=Hn(e,n,a,i),{shouldPopupContent:r,hidePopup:c,showPopup:u,togglePopup:f}=l,v=Rn(e,n,a,l,i),h=t.ref(""),b=zn(e,n,i,h,l),{hasFocusedTextBox:x,commitValue:F,inputGroupClass:y}=b,s=Ln(e,n,i,x,h,b),{onMouseEnterTextBox:p,onMouseLeaveTextBox:m}=s,T=t.ref(!1),w=t.computed(()=>{const E={"f-button-edit":!0,"f-cmp-inputgroup":!0,"f-button-edit-nowrap":!e.wrapText};return o.value&&o.value.split(" ").reduce((L,M)=>(L[M]=!0,L),E),E}),d=t.computed(()=>({overflow:e.wrapText?"hidden":""})),g=t.computed(()=>({}));function k(){if(!e.multiSelect||e.inputType!=="tag"||!a.value)return 0;let E=0;const L=Array.from(a.value.querySelectorAll(".farris-tag-item"));return L&&L.length&&(E=L.map(M=>M.offsetTop).filter(M=>M>20).length),E}const N=t.ref(k());t.onUpdated(()=>{N.value=k()});function I(){return e.multiSelect&&e.inputType==="tag"?()=>t.createVNode(t.Fragment,null,[$n(e,i,b)(),!!N.value&&t.createVNode("div",{class:"d-flex flex-row mr-2 more-tags","more-tags":!0},[t.createVNode("span",{class:"multi--more-text"},[t.createTextVNode("+"),N.value])])]):An(e,i,b)}let j=I();t.watch([()=>e.multiSelect,()=>e.inputType],()=>{j=I()});const{renderButtonGroup:O,buttonHandleElement:P}=Wn(e,n,v,s),S=qn(e,n,l),V=t.ref(r.value),B={displayText:h,commitValue:F,elementRef:a,hidePopup:c,showPopup:u,popoverRef:l.popoverRef,shouldPopupContent:r,togglePopup:f,openDialog:()=>{P.value&&e.buttonBehavior==="Modal"&&P.value.click()},getModal:()=>{var E;return e.buttonBehavior==="Modal"?(E=v.modalRef.value)==null?void 0:E.value:null},getTextbox:()=>{var E;return(E=a.value)==null?void 0:E.querySelector("input")},forceClosePopup:()=>{V.value=!1,T.value=!0,r.value=!1}};return t.onMounted(()=>{a.value.componentInstance=B,window.onresize=()=>{document.body.click()}}),t.onBeforeUnmount(()=>{var E;window.onresize=null,(E=window[ee])==null||E.delete(a.value)}),n.expose(B),t.watch(()=>r.value,async(E,L)=>{if(T.value){V.value=E,T.value=!1;return}if(!E&&e.beforeClosePopup&&typeof e.beforeClosePopup=="function"){try{const M=await e.beforeClosePopup();V.value=!M,(!M||e.readonly)&&(r.value=!0)}catch(M){console.error("Error in beforeClosePopup:",M),V.value=L,r.value=L}return}V.value=E}),()=>{var E,L;return t.createVNode(t.Fragment,null,[t.createVNode("div",t.mergeProps(n.attrs,{ref:a,class:w.value,id:e.id?e.id:void 0,style:d.value}),[t.createVNode("div",{id:e.id?`${e.id}-input-group`:void 0,class:y.value,style:g.value,onMouseenter:p,onMouseleave:m},[(L=(E=n.slots).precontent)==null?void 0:L.call(E),j(),O()])]),V.value&&S()])}}}),Un={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/expression-editor.schema.json",title:"expression-editor",description:"A Farris Expression Editor Component",type:"object",properties:{id:{description:"The unique identifier for a Expression Editor",type:"string"},type:{description:"The type string of Expression Editor component",type:"string",default:"expression-editor"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},beforeOpen:{type:"object",default:null},modelValue:{description:"The value of Expression Editor",type:"string",default:""},variables:{description:"The variables of Expression Editor",type:"array",default:[]},entities:{description:"The entities of Expression Editor",type:"array",default:[]},onSubmitModal:{description:"The event of Expression Editor",type:"function",default:null},onExpressionChanged:{description:"The event of Expression Editor",type:"function",default:null},esprimaPath:{description:"The path of esprima",type:"string",default:"assets/esprima-config.json"},singleExpand:{description:"The singleExpand of Expression Editor",type:"boolean",default:!0},showMessage:{description:"The showMessage of Expression Editor",type:"boolean",default:!1},dialogTitle:{description:"The dialogTitle of Expression Editor",type:"string",default:"表达式编辑器"},dialogWidth:{description:"The dialogWidth of Expression Editor",type:"string",default:975},dialogHeight:{description:"The dialogHeight of Expression Editor",type:"string",default:600},beforeSubmit:{description:"The beforeSubmit of Expression Editor",type:"function",default:null},showMessageType:{description:"The showMessageType of Expression Editor",type:"boolean",default:!1},showDataPanel:{description:"Show right panel",type:"boolean",default:!0}},required:["id","type"]},Ze={disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},enableClear:{type:Boolean,default:!0},modelValue:{type:String,default:""},displayText:{type:String,default:""},repositoryToken:{type:Object,default:null},editorParams:{},singleExpand:{type:Boolean,default:!0},beforeOpen:{type:Function,default:()=>{}},onSubmitModal:{type:Function,default:()=>{}},entities:{type:Array,default:[]},variables:{type:Array,default:[]},disabledFunctions:{type:Object,default:null},onExpressionChanged:{type:Function,default:()=>{}},esprimaPath:{type:String,default:"assets/esprima-config.json"},showMessage:{type:Boolean,default:!1},showMessageType:{type:Boolean,default:!1},dialogTitle:{type:String,default:"表达式编辑器"},dialogWidth:{type:Number,default:975},dialogHeight:{type:Number,default:600},validateMessage:{type:String,default:""},beforeSubmit:{type:Function,default:null},showDataPanel:{type:Boolean,default:!0},isServerSide:{type:Boolean,default:!1}},Gn=U.createPropsResolver(Ze,Un),Kn={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}},Xn={showCloseButton:{type:Boolean,default:!0},animate:{type:String,default:"fadeIn"},options:{type:Object}},xe=t.defineComponent({name:"Toast",props:Xn,emits:["close","click"],setup:(e,n)=>{const a=t.ref(e.animate),o="fadeOut",i=t.computed(()=>e.options),l=t.ref(!1),r=t.computed(()=>i.value.title&&i.value.message),c=t.computed(()=>!i.value.title&&i.value.message),u=t.computed(()=>{const m={animated:l.value,toast:!0,"toast--only-content":!r.value};return m[e.animate]=!1,m[o]=l.value,m["toasty-type-"+i.value.type]=!0,i.value.theme&&(m[i.value.theme]=!0),m}),f=t.computed(()=>{const w=`f-icon-${i.value&&i.value.type?i.value.type.replace("toasty-type-",""):"default"}`,d={"f-icon":!0};return d[w]=!0,d}),v=t.computed(()=>i.value.title||i.value.message),h=t.computed(()=>e.showCloseButton),b=t.computed(()=>!!i.value.buttons||!!n.slots.default),x=t.computed(()=>G.LocaleService.getLocale()==="en"?{wordBreak:"keep-all",overflowWrap:"break-word"}:{});function F(m){m.stopPropagation(),m.preventDefault(),l.value=!1,setTimeout(()=>{n.emit("close",i.value)},200)}function y(m,T){}function s(m){return`f-preten-link ${m.customClass?m.customClass:""}`}t.watch(a,()=>{a.value});const p=()=>{var m;return t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"after-toast-msg text-right"},[!n.slots.default&&((m=i.value.buttons)==null?void 0:m.map(T=>t.createVNode("span",{class:s(T),onClick:w=>void 0},[T.text]))),n.slots.default&&n.slots.default()])])};return()=>t.createVNode("div",{class:u.value,style:"min-height:44px"},[h.value&&t.createVNode("button",{title:G.LocaleService.getLocaleValue("messageBox.close"),class:"toast-close f-btn-icon f-bare",onClick:F},[t.createVNode("span",{class:"f-icon modal_close"},null)]),v.value&&t.createVNode("section",{class:"modal-tips"},[!r.value&&t.createVNode("div",{class:"float-left modal-tips-iconwrap"},[t.createVNode("span",{class:f.value},null)]),t.createVNode("div",{class:"modal-tips-content"},[r.value&&t.createVNode(t.Fragment,null,[t.createVNode("h5",{class:"toast-title modal-tips-title",innerHTML:i.value.title},null),t.createVNode("p",{class:"toast-msg",innerHTML:i.value.message,style:x.value},null),b.value&&p()]),c.value&&(i.value.buttons?t.createVNode("div",{class:"toast-title-btns-wrapper d-flex"},[t.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:x.value,innerHTML:i.value.message},null),t.createVNode("div",{class:"after-toast-title text-right ml-auto"},[p()])]):t.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:x.value,innerHTML:i.value.message},null))])])])}}),_n=["moz","ms","webkit"];function Jn(){let e=0;return n=>{const a=new Date().getTime(),o=Math.max(0,16-(a-e)),i=setTimeout(()=>{n(a+o)},o);return e=a+o,i}}function Zn(){if(typeof window>"u")return()=>0;if(window.requestAnimationFrame)return window.requestAnimationFrame.bind(window);const e=_n.filter(n=>`${n}RequestAnimationFrame`in window)[0];return e?window[`${e}RequestAnimationFrame`]:Jn()}Zn();function Qn(){const e=navigator.userAgent||navigator.vendor||window.opera,n=[/iPhone/i,/iPod/i,/Android.*Mobile/i,/webOS/i,/BlackBerry/i,/IEMobile/i,/Opera Mini/i,/Harmony/i],a=[/iPad/i,/Android(?!.*Mobile)/i,/Tablet/i,/PlayBook/i,/Kindle/i,/Silk/i];for(const c of a)if(c.test(e))return!1;for(const c of n)if(c.test(e))return!0;const o="ontouchstart"in window||navigator.maxTouchPoints>0,i=screen.width,l=screen.height,r=Math.min(i,l);return!!(o&&r<=768)}const me=t.defineComponent({name:"Notify",props:Kn,emits:["close","empty"],setup(e,n){var y;const a=Qn(),i=`farris-notify-${(y=e.options)!=null&&y.type?e.options.type:"info"}}`,l=t.computed(()=>({"farris-notify":!0,[i]:a})),r={left:12,right:12,top:20,bottom:12},c=t.ref(),u=t.ref(e.options),f=t.ref(e.showCloseButton),v=t.computed(()=>e.position||"bottom-right"),h=t.computed(()=>e.timeout!=null?e.timeout:3e3),b=t.computed(()=>{const s=e.bottom?e.bottom:r.bottom,p=e.top?e.top:r.top,m={transition:"all 0.2s ease",left:v.value.indexOf("left")>-1?`${e.left?e.left:r.left}px`:"",right:v.value.indexOf("right")>-1?`${e.right?e.right:r.right}px`:"",top:v.value.indexOf("top")>-1?`${p}px`:"",bottom:v.value.indexOf("bottom")>-1?`${s}px`:""};return v.value.indexOf("center")>-1&&(m.left="50%",m.marginLeft="calc(-24rem / 2)",v.value==="center-center"&&(m.top="50%",m.transform="translate(-50%, -50%)")),m});function x(s){n.emit("close")}h.value&&setTimeout(()=>{x()},h.value),n.expose({closeToast:x,container:c,notifyPosition:v});function F(s,p){x()}return()=>{var s;return a?t.createVNode("div",{class:l.value,ref:c},[(s=e.options)==null?void 0:s.message]):t.createVNode("div",{class:l.value,style:b.value,ref:c},[t.createVNode(xe,{options:u.value,showCloseButton:f.value,animate:e.animate,onClose:p=>F(p,u.value)},null)])}}});class ea{constructor(){X(this,"notifyRefs",[]);X(this,"globalConfig",t.reactive({}))}escapeAllHtml(n){if(typeof n!="string"||!n)return"";const a=document.createElement("div");return a.textContent=n||"",a.innerHTML.replace(/\\n/g,"<br>").replace(/\\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;").replace(/\\r/g,"")}createNotifyInstance(n){const a=this,i=Object.assign({timeout:3e3,position:"bottom-right",showCloseButton:!0,safeHtml:!0},this.globalConfig,{...n}),l=document.createElement("div");l.style.display="contents";const r=t.createApp({setup(){var f;const c=t.ref();function u(){c.value.container.style.transform="scale(0)",setTimeout(()=>{a.updateNotifyPositionForClose(i,c),r.unmount()},220)}if(i.position.indexOf("top")>-1){const v=a.getNotifyInstances(i.position),h=v[v.length-1];if(h){const b=h.value.container.getBoundingClientRect();i.top=b.bottom}}return i.safeHtml&&((f=i.options)!=null&&f.message)&&(i.options.message=a.escapeAllHtml(i.options.message)),t.onUnmounted(()=>{document.body.removeChild(l)}),t.onMounted(()=>{a.updateNotifyPositionForCreate(i,c)}),()=>t.createVNode(t.Transition,{mode:"out-in",name:"fade",appear:!0},{default:()=>[t.createVNode(me,t.mergeProps({ref:c},i,{onClose:u}),null)]})}});return r.provide("NotifyService",this),document.body.appendChild(l),r.use(G.LocaleService.i18n),r.mount(l),r}getNotifyInstances(n){return this.notifyRefs.filter(a=>a.value.notifyPosition===n)}updateNotifyPositionForCreate(n,a){if(this.notifyRefs&&this.notifyRefs.length){const o=window.innerHeight;n.position.indexOf("bottom")>-1&&this.getNotifyInstances(n.position).forEach(i=>{const l=i.value.container.getBoundingClientRect();i.value.container.style.bottom=l.height+o-l.bottom+"px"})}this.notifyRefs=[...this.notifyRefs,a]}updateNotifyPositionForClose(n,a){const o=this.notifyRefs.indexOf(a);if(n.position.indexOf("top")>-1){const i=this.getNotifyInstances(n.position),l=i.indexOf(a);i.slice(l+1).forEach(r=>{r.value.container.style.top=r.value.container.offsetTop-r.value.container.offsetHeight+"px"})}o>-1&&this.notifyRefs.splice(o,1)}show(n){return this.createNotifyInstance(n)}buildNotifyProps(n,a){let o="",i="",l,r,c;typeof a=="string"?o=a:a&&(o=a.message||"",i=a.title||"",r=a.position||null,c=a.showCloseButton!=null?a.showCloseButton:null,l=a.timeout!=null?a.timeout:null);const f={options:{type:n,message:o,title:i}};return r!=null&&(f.position=r),c!=null&&(f.showCloseButton=c),l!=null&&(f.timeout=l),f}info(n){const a=this.buildNotifyProps("info",n);return this.show(a)}success(n){const a=this.buildNotifyProps("success",n);return this.show(a)}warning(n){const a=this.buildNotifyProps("warning",n);return this.show(a)}error(n){const a=this.buildNotifyProps("error",n);return this.show(a)}close(n){n&&n.unmount()}closeAll(){this.notifyRefs.forEach(n=>{n==null||n.value.closeToast()}),this.notifyRefs.length=0}}const Qe=Symbol("NOTIFY_SERVICE_TOKEN");me.install=e=>{e.component(me.name,me),e.component(xe.name,xe);const n=new ea;e.provide(Qe,n),e.provide("FNotifyService",n)};const ye=t.defineComponent({name:"f-expression-textbox",props:Ze,setup(e,n){const a=t.inject(Qe),o=t.inject("FLoadingService"),i='<i class="f-icon f-icon-lookup"></i>',l=t.ref(e.modelValue),r=t.ref(e.entities),c=t.ref(e.variables),u=t.ref(),f=t.ref(e.validateMessage||""),v=t.ref("info");async function h(){const{value:y,message:s,messageType:p}=u.value.getExpressionValue();if(f.value=s,v.value=p,e.beforeSubmit&&typeof e.beforeSubmit=="function"){const m=await e.beforeSubmit({notifyService:a,expressionValue:y});if(typeof m=="boolean"&&!m)return!1;if(typeof m=="object"){const{canClose:T,message:w}=m;if(!T)return w&&(a==null||a.error({message:w})),!1}}if(n.emit("update:modelValue",y),l.value=y,e.onSubmitModal){const m={expression:y,message:s};e.showMessageType&&(m.messageType=v.value);const T=e.onSubmitModal(m);e.onExpressionChanged&&e.onExpressionChanged(T)}return!0}const b={title:e.dialogTitle||"表达式编辑器",width:e.dialogWidth||975,height:e.dialogHeight||600,fitContent:!1,minWidth:300,minHeight:200,showMaxButton:!0,resizeable:!0,draggable:!0,buttons:[{name:"reset",text:"清空",class:"btn btn-secondary mr-2",handle:y=>{var s;return(s=u.value)==null||s.resetExpression(),!1}},{name:"cancel",text:"取消",class:"btn btn-secondary",handle:y=>!0},{name:"accept",text:"确定",class:"btn btn-primary",handle:async y=>await h()}]};async function x(){if(e.beforeOpen)try{o==null||o.show();const y=await e.beforeOpen({notifyService:a});if(y)return r.value=y.entities||{},c.value=y.variables||{},f.value=y.message||"",v.value=y.messageType||"info",o==null||o.clearAll(),!0}catch{return a==null||a.error({message:"获取数据失败!"}),!1}finally{o==null||o.clearAll()}return!0}function F(){if(n.emit("update:modelValue",""),l.value="",e.onSubmitModal){const y=e.onSubmitModal({expression:"",message:""});e.onExpressionChanged&&e.onExpressionChanged(y)}}return t.watch(()=>e.modelValue,y=>{l.value=y}),()=>t.createVNode(Yn,{editable:!1,enableTitle:!0,modelValue:l.value,"onUpdate:modelValue":y=>l.value=y,disabled:e.disabled,readonly:e.readonly,inputType:"text",enableClear:e.enableClear,buttonContent:i,buttonBehavior:"Modal",modalOptions:b,beforeOpen:x,onClear:F},{default:()=>[t.createVNode("div",{class:"h-100 d-flex flex-column"},[t.createVNode(Ge,{ref:u,validateMessage:f.value,showMessageType:e.showMessageType,messageType:v.value,modelValue:l.value,"onUpdate:modelValue":y=>l.value=y,esprimaPath:e.esprimaPath,showMessage:e.showMessage,entities:r.value,variables:c.value,disabledFunctions:e.disabledFunctions,showDataPanel:e.showDataPanel,singleExpand:e.singleExpand,isServerSide:e.isServerSide},null)])]})}}),ta={install(e){e.component(ye.name,ye)},register(e,n,a,o){e["expression-editor"]=ye,n["expression-editor"]=Gn}};H.ExpressionEditor=Ge,H.FExpressionTextbox=ye,H.default=ta,H.expressionEditorProps=Te,Object.defineProperties(H,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
427
+ `},We=Jt(tn)($e),nn={config:Qt},an=function(){for(var n=arguments.length,a=new Array(n),o=0;o<n;o++)a[o]=arguments[o];return function(i){return a.reduceRight(function(l,r){return r(l)},i)}};function qe(e,n){return Object.keys(n).forEach(function(a){n[a]instanceof Object&&e[a]&&Object.assign(n[a],qe(e[a],n[a]))}),Le(Le({},e),n)}var on={type:"cancelation",msg:"operation is manually canceled"};function be(e){var n=!1,a=new Promise(function(o,i){e.then(function(l){return n?i(on):o(l)}),e.catch(i)});return a.cancel=function(){return n=!0},a}var ln=Xt.create({config:_t,isInitialized:!1,resolve:null,reject:null,monaco:null}),Ye=Vt(ln,2),le=Ye[0],fe=Ye[1];function rn(e){var n=nn.config(e),a=n.monaco,o=Ot(n,["monaco"]);fe(function(i){return{config:qe(i.config,o),monaco:a}})}function sn(){var e=le(function(n){var a=n.monaco,o=n.isInitialized,i=n.resolve;return{monaco:a,isInitialized:o,resolve:i}});if(!e.isInitialized){if(fe({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),be(ke);if(window.monaco&&window.monaco.editor)return Ue(window.monaco),e.resolve(window.monaco),be(ke);an(cn,dn)(fn)}return be(ke)}function cn(e){return document.body.appendChild(e)}function un(e){var n=document.createElement("script");return e&&(n.src=e),n}function dn(e){var n=le(function(o){var i=o.config,l=o.reject;return{config:i,reject:l}}),a=un("".concat(n.config.paths.vs,"/loader.js"));return a.onload=function(){return e()},a.onerror=n.reject,a}function fn(){var e=le(function(a){var o=a.config,i=a.resolve,l=a.reject;return{config:o,resolve:i,reject:l}}),n=window.require;n.config(e.config),n(["vs/editor/editor.main"],function(a){Ue(a),e.resolve(a)},function(a){e.reject(a)})}function Ue(e){le().monaco||fe({monaco:e})}function mn(){return le(function(e){var n=e.monaco;return n})}var ke=new Promise(function(e,n){return fe({resolve:e,reject:n})}),Ce={config:rn,init:sn,__getMonacoInstance:mn};const yn=t.defineComponent({name:"expression-code",props:{modelValue:{type:String,default:""},language:{type:String,default:"javascript"},theme:{type:String,default:"vs"},readOnly:{type:Boolean,default:!1},configPath:{type:String,default:"assets/monaco-editor.config.json"}},emits:[],setup(e,n){const a=t.ref(),o=t.ref();let i=null;const l=t.ref(e.modelValue);async function r(){return fetch(e.configPath).then(F=>F.json())}async function c(){if(a.value&&!i){const F=await r(),{vsPath:y}=F;Ce.config({paths:{vs:window.location.origin+y}}),Ce.config({"vs/nls":{availableLanguages:{"*":"zh-cn"}}}),Ce.init().then(s=>{o.value=s,i=s.editor.create(a.value,{value:l.value,automaticLayout:!0,language:e.language,theme:e.theme,folding:!0,readOnly:e.readOnly,minimap:{enabled:!1},lineNumbers:"on",lineNumbersMinChars:3,overviewRulerLanes:0,fixedOverflowWidgets:!1,scrollBeyondLastLine:!1,scrollbar:{verticalScrollbarSize:8,horizontalScrollbarSize:8}})})}}t.watch(()=>e.modelValue,F=>{l.value=F,i==null||i.setValue(F)});const u=t.ref(),f=new ResizeObserver(F=>{i==null||i.layout();const{width:y,height:s}=F[0].contentRect;u.value={width:`${y-1}px`,height:`${s}px`}});function v(){return i==null?void 0:i.getValue()}function p(F){const y=i.getSelection(),s=new o.value.Range(y.startLineNumber,y.startColumn,y.endLineNumber,y.endColumn);i.executeEdits("insert-text",[{range:s,text:F,forceMoveMarkers:!0}])}t.onMounted(()=>{c(),a.value&&f.observe(a.value.parentElement)}),t.onBeforeUnmount(()=>{i&&i.dispose(),f&&a.value&&(f.unobserve(a.value),f.disconnect())});function b(F){i.setValue(F)}function x(){b("")}return n.expose({getContent:v,insertText:p,clearText:x,setContent:b}),()=>t.createVNode("div",{class:"expression-code-editor",style:u.value,ref:a},null)}}),pn={dataSource:{type:Object,default:{}}},hn={data:{type:Array,default:[]},idField:{type:String,default:"id"},textField:{type:String,default:"name"},formatter:{type:Function},customRowStatus:{type:Object,default:null}},gn=t.defineComponent({name:"FEntitiesTree",props:hn,emits:["dblclickNode"],setup(e,n){const a=t.ref(e.data),o=t.ref(),i=t.ref();function l(){let p=0;return document.querySelectorAll(".entity-variable .fv-grid-hierarchy-cell").forEach(x=>{x.style.width="auto";const F=x.scrollWidth;F>p&&(p=F)}),p}t.watch(()=>e.data,p=>{var b;a.value=p,(b=o.value)==null||b.updateDataSource(p)});const r={customRowStatus:e.customRowStatus},c=t.computed(()=>[{field:e.textField,title:"",dataType:"string",formatter:e.formatter}]);function u({$event:p,node:b}){n.emit("dblclickNode",{$event:p,node:b})}function f(){const p=l();i.value={minWidth:`${p+10}px`}}function v({row:p}){t.nextTick(f)}return t.onMounted(()=>{t.nextTick(f)}),()=>t.createVNode("div",{class:"h-100 f-utils-fill",style:"overflow:auto",id:"entity-tree-view"},[t.createVNode(lt,{ref:o,fit:!1,rowNumber:{enable:!1},data:a.value,idField:e.idField,columns:c.value,rowOption:r,columnOption:{fitColumns:!0,fitMode:"percentage"},onDblclickNode:u,style:i.value,autoHeight:!0,onExpandNode:v},null)])}}),vn=t.defineComponent({name:"entity-variable",props:pn,emits:["variableItemDblClick","entityItemDblClick","fieldClick"],setup(e,n){const a=t.ref("dataEntity"),o=t.ref(e.dataSource),{entities:i,variables:l}=o.value,r=t.ref(""),c=t.ref((i==null?void 0:i.fields)||[]),u=(S,V)=>{S.stopPropagation(),n.emit("fieldClick",{$event:S,item:V.raw})},f=(S,V)=>{const B=`${V.raw.name} [${V.raw.bindingPath}]`;return t.createVNode("div",{class:"d-flex align-items-center w-100 entity-field",style:"justify-content: space-between;"},[t.createVNode("span",{title:B,class:"f-utils-fill text-truncate"},[B]),t.createVNode("button",{title:"插入属性名称",class:"btn btn-link d-none",style:"width:24px;height:24px",onClick:E=>u(E,V),onDblclick:E=>E.stopPropagation()},[t.createVNode("span",{class:"f-icon f-icon-new-edit",style:"font-size: 12px;"},null)])])},v=t.ref({}),p=t.ref(),b=t.computed(()=>S=>({"list-group d-flex flex-column":!0,"f-utils-fill":a.value===S,expand:a.value===S,collapse:a.value!==S})),x=t.computed(()=>S=>({"f-icon f-icon-arrow-chevron-up":a.value!==S,"f-icon f-icon-arrow-chevron-down":a.value===S})),F=t.computed(()=>S=>({"functions-type d-flex flex-column":!0,open:v.value[S],closed:!v.value[S]})),y=t.computed(()=>S=>({"f-icon f-icon-arrow-chevron-down":v.value[S],"f-icon f-icon-arrow-chevron-right":!v.value[S]})),s=t.computed(()=>S=>{var V;return{"functions-item pl-2":!0,selected:((V=p.value)==null?void 0:V.key)===S.key}});function h(S,V){S.stopPropagation(),v.value=v.value||{},v.value[V]=!v.value[V]}function m(S,V){S.stopPropagation(),p.value=V}function T(S,V){n.emit("variableItemDblClick",{$event:S,item:V})}function w({$event:S,node:V}){n.emit("entityItemDblClick",{$event:S,item:V.data,entityCode:i==null?void 0:i.entityCode,parentCodes:V.data.parents.join(".")})}function d(){return t.createVNode(gn,{data:c.value,formatter:f,onDblclickNode:w},null)}function g(){if(l)return t.createVNode("ul",{class:"w-100 functions-list"},[Object.keys(l).map(S=>l[S].visible&&t.createVNode("li",{"variable-type":S,class:F.value(S)},[t.createVNode("div",{class:"functions-type-name pl-2 d-flex align-items-center",onClick:V=>{h(V,S)}},[t.createVNode("span",{class:y.value(S)},null),l[S].name]),t.createVNode("ul",{class:"pl-3 mr-2"},[l[S].items.map(V=>t.createVNode("li",{class:s.value(V),onClick:B=>m(B,V),onDblclick:B=>T(B,V),title:`${V.name} [${V.key}]`},[V.name]))])]))])}function k(S,V){if(S.stopPropagation(),a.value===V){a.value="";return}a.value=V}t.onMounted(()=>{if(l){const S=Object.keys(l)[0];v.value[S]=!0}});function N(S,V){const B=S.children.map(L=>N(L,V)).filter(L=>L!==null);return S.data.name.toLowerCase().includes(V.toLowerCase())||S.data.bindingPath.toLowerCase().includes(V.toLowerCase())?{data:{...S.data},children:S.children}:B.length>0?{data:{...S.data},children:B}:null}function I(S,V){return S.map(B=>N(B,V)).filter(B=>B!==null)}function j(){const S=I((i==null?void 0:i.fields)||[],r.value);c.value=S}function O(){c.value=(i==null?void 0:i.fields)||[]}function P(S){S.key==="Enter"&&j()}return()=>t.createVNode("div",{class:"f-utils-fill entity-variable"},[t.createVNode("ul",{class:"d-flex flex-column h-100"},[t.createVNode("li",{class:b.value("dataEntity")},[t.createVNode("div",{class:"title px-2 d-flex align-items-center",onClick:S=>k(S,"dataEntity")},[t.createTextVNode("数据实体"),t.createVNode("span",{class:x.value("dataEntity")},null)]),t.createVNode("div",{class:"data-area f-utils-fill d-flex flex-column"},[t.createVNode("div",{class:"w-100"},[t.createVNode(he.FButtonEdit,{class:"m-2",buttonContent:'<i class="f-icon f-icon-search"></i>',enableClear:!0,popupOnClick:!0,placeholder:"请输入名称或编号,按回车查询",modelValue:r.value,"onUpdate:modelValue":S=>r.value=S,onClickButton:j,onClear:O,onKeyup:P},null)]),d()])]),t.createVNode("li",{class:b.value("variables")},[t.createVNode("div",{class:"title px-2 d-flex align-items-center",onClick:S=>k(S,"variables")},[t.createTextVNode("变量"),t.createVNode("span",{class:x.value("variables")},null)]),t.createVNode("div",{class:"data-area f-utils-fill"},[g()])])])])}}),bn={functionItems:{type:Array,default:[]},singleExpand:{type:Boolean,default:!0}},kn=t.defineComponent({name:"FExpressionEditor",props:bn,emits:["insertFunction","search"],setup(e,n){const a=t.ref(),o=t.ref(""),i=t.ref(),l=t.ref({}),r=t.ref(""),c="没有与搜索条件匹配的项",u=t.ref(e.functionItems),f=t.computed(()=>d=>e.singleExpand?{"functions-type d-flex flex-column":!0,open:o.value===d,closed:o.value!==d}:{"functions-type d-flex flex-column":!0,open:l.value[d],closed:!l.value[d]}),v=t.computed(()=>d=>e.singleExpand?{"f-icon f-icon-arrow-chevron-down":o.value===d,"f-icon f-icon-arrow-chevron-right":o.value!==d}:{"f-icon f-icon-arrow-chevron-down":l.value[d],"f-icon f-icon-arrow-chevron-right":!l.value[d]}),p=t.computed(()=>d=>{var g;return{"functions-item pl-2":!0,selected:((g=i.value)==null?void 0:g.key)===d.key}}),b=t.ref(Object.keys(u.value));t.watch(()=>e.functionItems,d=>{u.value=d,b.value=Object.keys(u.value),r.value&&(l.value=b.value.reduce((g,k)=>(g[k]=!0,g),{}))});function x(d){d||(d=o.value);const g=a.value.querySelector('li[function-type="'+d+'"] > div.functions-type-name');g&&(a.value.querySelector(".expression-left").scrollTop=0,g.scrollIntoViewIfNeeded?g.scrollIntoViewIfNeeded(!0):g.scrollIntoView({behavior:"smooth",block:"nearest"}))}function F(d){if(e.singleExpand){if(o.value===d){o.value="";return}o.value=d}else l.value=l.value||{},l.value[d]=!l.value[d]}function y(d,g){d.stopPropagation(),i.value=g}function s(d,g){d.stopPropagation(),n.emit("insertFunction",{$event:d,item:g})}t.watch(()=>o.value,(d,g,k)=>{if(d){const N=setTimeout(()=>{x(d)},200);k(()=>clearTimeout(N))}});function h(){n.emit("search",r.value)}function m(){n.emit("search","")}function T(d){d.key==="Enter"&&h()}function w(){return b.value.length?b.value.map(d=>t.createVNode("li",{"function-type":d,class:f.value(d)},[t.createVNode("div",{class:"functions-type-name pl-2 d-flex align-items-center",onClick:()=>{F(d)}},[t.createVNode("span",{class:v.value(d)},null),u.value[d].name]),t.createVNode("ul",{class:"pl-3 mr-2"},[u.value[d].items.map(g=>{if(g.visible!==!1)return t.createVNode("li",{class:p.value(g),onClick:k=>y(k,g),onDblclick:k=>s(k,g)},[d==="advanced"?g.key:g.name])})])])):t.createVNode("li",{class:"empty-message"},[c])}return t.onMounted(()=>{o.value=b.value[0],l.value=b.value.reduce((d,g)=>(d[g]=o.value===g,d),{})}),()=>t.createVNode("div",{class:"d-flex f-utils-fill flex-column",ref:a},[t.createVNode(J,{class:"flex-column expression-left"},{default:()=>[t.createVNode(K,{position:"top",minHeight:50,height:50,"custom-class":"position-relative d-flex align-items-center search-bar",resizable:!1},{default:()=>[t.createVNode(he.FButtonEdit,{class:"w-100 mx-2",buttonContent:'<i class="f-icon f-icon-search"></i>',enableClear:!0,popupOnClick:!0,placeholder:"请输入函数名称,按回车查询",modelValue:r.value,"onUpdate:modelValue":d=>r.value=d,onClickButton:h,onClear:m,onKeyup:T},null)]}),t.createVNode(K,{position:"center","custom-class":"layout-border"},{default:()=>[t.createVNode("ul",{class:"w-100 functions-list",style:"user-select: none"},[w()])]}),t.createVNode(K,{"custom-class":"position-relative",position:"bottom",minHeight:80},{default:()=>{var d;return[t.createVNode("textarea",{title:"函数说明",class:"h-100 w-100 function-remark p-1",disabled:!0},[(d=i.value)==null?void 0:d.description])]}})]})])}});function Cn(e){async function n(){return fetch(e.esprimaPath).then(r=>r.json())}async function a(){if(window.esprima==null){const r=await n(),{path:c}=r;return new Promise((u,f)=>{const v=document.createElement("script");v.type="text/javascript",v.src=c+"?v="+Date.now(),v.onload=u,v.onerror=f,document.head.appendChild(v)})}}function o(r){const c=[],u=window.esprima.tokenize(r);for(let b=0;b<u.length;b++)c.push(u[b].value);const f=[];for(let b=0;b<c.length;b++){const x=r.indexOf(c[b]);x!==-1?f.push(r.substring(0,x)):f.push(""),r=r.slice(x+c[b].length),b===c.length-1&&f.push(r)}const v=[],p=c.length;for(let b=0;b<p;b++)f[b]!==""&&v.push(f[b]),c[b]!==""&&v.push(c[b]),b===p-1&&f[b+1]!==""&&v.push(f[b+1]);return v}function i(r,c="key2name"){const u=new Map;if(!r)return u;let v=Object.values(r).map(p=>p.items).flat();for(;v.length>0;){const p=v.filter(b=>b.name===v[0].name);p.length>1?v.filter(b=>b.name===v[0].name).forEach(b=>{c==="key2name"?u.set(b.key,b.key+"_"+b.name):c==="name2key"&&u.set(b.key+"_"+b.name,b.key)}):c==="key2name"?u.set(p[0].key,p[0].name):c==="name2key"&&u.set(p[0].name,p[0].key),v=v.filter(b=>b.name!==v[0].name)}return u}a();async function l(r){return window.esprima?r():await a().then(()=>r())}return{loadEsprima:a,getTokens:o,getVariableMaps:i,runWithEsprima:l}}function xn(e,n,a){const o=t.ref(e.disabledFunctions),{getTokens:i,getVariableMaps:l,runWithEsprima:r}=Cn(e);function c(){const s=ne.cloneDeep(n);if(o.value){let h=Object.keys(s);const{types:m,functions:T}=o.value;return m&&m.length&&(h=h.filter(w=>m.includes(w))),T&&T.length&&Object.values(s).forEach(w=>{w.items.forEach(d=>{T.includes(d.name)&&(d.visible=!1)})}),s}return s}function u(s){const h=n.analytical.items.find(m=>m.key==="GetContextParameter");if(h)return h.name+'("'+s.name+'")'}function f(s){if(!s||s.length===0)return"";const h=m=>{switch(m.type){case"string":return`"${m.name}"`;case"list":return`[${m.name}]`;default:return m.name}};return s.map(h).join(",")}function v(s){let h=s.name;return s.type.toLowerCase()!=="advanced"&&(h+="("+f(s.params)+")"),h}function p(s){return s==null?void 0:s.bindingPath}function b(s){if(!s)return"";const h=i(s),m=l(a,"name2key");for(let w=0;w<h.length;w++){let d=0;if(d===0&&m&&h[w].length>2&&h[w][0]==='"'&&h[w][h[w].length-1]==='"'){const g=h[w].substring(1,h[w].length-1);if(m.has(g)&&h[w-1]==="("&&h[w+1]===")"){const k=m.get(g);k!==void 0&&(h[w]=`"${k}"`,d=1)}}if(d===0){const g=Object.values(n).map(k=>k.items).flat();for(let k=0;k<g.length;k++)if(h[w]===g[k].name){h[w]=g[k].keyFront+"."+g[k].key,d=1;break}}}const T=h.join("");return JSON.stringify({expr:T,sexpr:""})}function x(s,h,m,T){let w="";const d=[];for(const g of h)g.keyFront==="Math"&&d.push(g.key);for(let g=0;g<s.length;g++){if(s[g]==="Math"&&s[g+1]==="."&&!d.includes(s[g+2])){w=w+s[g]+s[g+1]+s[g+2],g=g+2;continue}if(T.includes(s[g])&&s[g+1]==="."){g=g+1;continue}else{let k=0;if(k===0&&s[g].length>2&&s[g][0]==='"'&&s[g][s[g].length-1]==='"'){const N=s[g].substring(1,s[g].length-1);if(m.has(N)&&s[g-1]==="("&&s[g+1]===")"){const I=m.get(N);I!==void 0&&(w=w+`"${I}"`,k=1)}}if(k===0){for(let N=0;N<h.length;N++)if(s[g]===h[N].key&&h[N].type.toLowerCase()!=="advanced"){w=w+h[N].name,k=1;break}}k===0&&(w=w+s[g])}}return w}function F(s){if(!s)return"";const h=i(s),m=l(a,"key2name"),T=Object.values(n).map(d=>d.items).flat();return x(h,T,m,["DefaultFunction","Math","DefaultExtendFunctionProxy"])}async function y(s){return await r(()=>F(s))}return{resetFunctionItems:c,getFieldExpression:p,getFunctionExpression:v,getContextVariableExpression:u,getExpressionCodeValue:b,getExpressionTextValue:y}}function wn(e,n){const a=t.ref([]),o=ne.cloneDeep(n.value),i=Object.values(o).map(c=>c.items).flat();function l(c){const u=ne.cloneDeep(o);return Object.keys(u).forEach(f=>{const v=u[f].items.filter(p=>c.includes(p.key));v.length>0?u[f].items=v:delete u[f]}),u}function r(c){if(!c){n.value=o;return}const u=i.filter(f=>f.name.toLowerCase().includes(c.toLowerCase())).map(f=>f.key);n.value=l(u)}return{searchResultList:a,filterFunctions:l,onFunctionSearch:r}}const Ge=t.defineComponent({name:"FExpressionEditor",props:Te,emits:[],setup(e,n){var O;const a=t.ref(),o=t.ref(e.validateMessage),i=t.ref(e.messageType),l=t.ref(e.modelValue),r=t.ref(),c=[{label:"提示",value:"info"},{label:"警告",value:"warning"},{label:"错误",value:"error"}],{getFunctionExpression:u,getContextVariableExpression:f,resetFunctionItems:v,getFieldExpression:p,getExpressionCodeValue:b,getExpressionTextValue:x}=xn(e,St,e.variables),F=t.ref(v()),{onFunctionSearch:y}=wn(e,F);function s({$event:P,item:S}){var B;const V=u(S);(B=r.value)==null||B.insertText(V)}function h({$event:P,item:S}){var B;const V=f(S);(B=r.value)==null||B.insertText(V)}function m(P){return P.reduce((S,V)=>{var B;return S.push(V.data),(B=V.children)!=null&&B.length&&S.push(...m(V.children)),S},[])}const T=m(((O=e==null?void 0:e.entities)==null?void 0:O.fields)||[]);function w(P){return P.map(S=>{const V=T.find(B=>B.bindingPath===S);return V&&V.type==="entity"?`${S}[0]`:S}).join(".")}function d({$event:P,item:S,parentCodes:V,entityCode:B}){var M;const E=p(S);V=e.isServerSide?w(S.parents):V;let L=`${V}.${E}`;B===E&&(L=E),(M=r.value)==null||M.insertText(`${L}`)}function g({$event:P,item:S}){var B;const V=p(S);(B=r.value)==null||B.insertText(`${V}`)}function k(){var P;return(P=r.value)==null?void 0:P.getContent()}function N(){var S;const P=(S=r.value)==null?void 0:S.getContent();return{value:b(P),message:o.value,messageType:i.value}}const I=t.ref("");function j(){var P;(P=r.value)==null||P.clearText()}return t.onMounted(async()=>{if(l.value){const P=JSON.parse(l.value),{expr:S}=P;S&&(I.value=await x(S)||"")}}),n.expose({getExpressionContext:k,getExpressionValue:N,resetExpression:j}),()=>t.createVNode("div",{ref:a,class:"h-100 d-flex flex-column f-utils-fill mx-3 expression-editor"},[t.createVNode(J,null,{default:()=>[t.createVNode(K,{position:"left",width:248,minWidth:130},{default:()=>[t.createVNode(kn,{functionItems:F.value,singleExpand:e.singleExpand,onInsertFunction:s,onSearch:y},null)]}),t.createVNode(K,{position:"center","custom-class":"layout-border flex-column",style:"overflow:hidden"},{default:()=>[t.createVNode("div",{class:"f-utils-fill my-2 ml-1"},[t.createVNode(yn,{modelValue:I.value,"onUpdate:modelValue":P=>I.value=P,ref:r},null)]),e.showMessage&&t.createVNode("div",{class:"d-flex flex-column p-1",style:"background: #fafafa"},[t.createVNode("div",{class:"d-flex align-items-center py-1"},[t.createVNode("b",null,[t.createTextVNode("提示信息:")]),e.showMessageType&&t.createVNode(ae,{style:"width: 75px",data:c,modelValue:i.value,"onUpdate:modelValue":P=>i.value=P,textField:"label",valueField:"value",idField:"value",enableClear:!1,minPanelWidth:130,placement:"auto"},null)]),t.withDirectives(t.createVNode("textarea",{"onUpdate:modelValue":P=>o.value=P,class:"form-control",style:"resize:none;border:none;outline:1px solid var(--f-neutral-04);"},null),[[t.vModelText,o.value]])])]}),e.showDataPanel&&t.createVNode(K,{position:"right",width:258,minWidth:130},{default:()=>[t.createVNode(vn,{dataSource:{entities:e.entities,variables:e.variables},onVariableItemDblClick:h,onEntityItemDblClick:d,onFieldClick:g},null)]})]})])}}),Fn={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}},Tn={popupContentPosition:{type:Object,default:{left:0,top:0}},host:{type:Object},backgroundColor:{type:String,default:""}},Sn=t.defineComponent({name:"FOverlay",props:Tn,emits:["click"],setup(e,n){const a=t.ref(e.popupContentPosition),o=t.ref(e.host),i=t.computed(()=>({backgroundColor:e.backgroundColor||"",pointerEvents:"auto"}));function l(c){n.emit("click"),c.preventDefault(),c.stopPropagation()}t.computed(()=>{const c=o.value;if(c){const u=c.getBoundingClientRect(),{left:f,top:v,height:p}=u;return{left:f,top:v+p}}return a.value});const r=t.computed(()=>({}));return()=>t.createVNode(t.Teleport,{to:"body"},{default:()=>{var c,u;return[t.createVNode("div",{class:"overlay-container",onClick:f=>l(f),style:i.value},[t.createVNode("div",{style:r.value},[(u=(c=n.slots).default)==null?void 0:u.call(c)])])]}})}});function Nn(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function Mn(e){const n=document.createElement("div");n.style.display="contents";let a;const o=e.onClickCallback||(()=>{}),i=()=>{o(),a&&a.unmount()};return a=t.createApp({setup(){t.onUnmounted(()=>{document.body.removeChild(n)});const l=Nn(e);return()=>t.createVNode(Sn,{"popup-content-position":e.popupPosition,host:e.host,onClick:i,backgroundColor:e.backgroundColor},{default:()=>[l&&l()]})}}),document.body.appendChild(n),a.mount(n),a}class On{static show(n){return Mn(n)}}const Vn={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 W{constructor(n,a){this.x=n,this.y=a}static getTransformInfo(n){const o=window.getComputedStyle(n).getPropertyValue("transform").replace(/[^-\d,]/g,"").split(",");if(o.length>=6){const i=parseInt(o[4],10),l=parseInt(o[5],10);return{x:i,y:l}}return{x:0,y:0}}static fromEvent(n,a=null){if(this.isMouseEvent(n))return new W(n.clientX,n.clientY);if(a===null||n.changedTouches.length===1)return new W(n.changedTouches[0].clientX,n.changedTouches[0].clientY);for(let o=0;o<n.changedTouches.length;o++)if(n.changedTouches[o].target===a)return new W(n.changedTouches[o].clientX,n.changedTouches[o].clientY)}static isMouseEvent(n){return Object.prototype.toString.apply(n).indexOf("MouseEvent")===8}static isIPosition(n){return!!n&&"x"in n&&"y"in n}static getCurrent(n){const a=new W(0,0);if(window){const o=window.getComputedStyle(n);if(o){const i=parseInt(o.getPropertyValue("left"),10),l=parseInt(o.getPropertyValue("top"),10);a.x=isNaN(i)?0:i,a.y=isNaN(l)?0:l}return a}return null}static copy(n){return new W(0,0).set(n)}get value(){return{x:this.x,y:this.y}}add(n){return this.x+=n.x,this.y+=n.y,this}subtract(n){return this.x-=n.x,this.y-=n.y,this}multiply(n){this.x*=n,this.y*=n}divide(n){this.x/=n,this.y/=n}reset(){return this.x=0,this.y=0,this}set(n){return this.x=n.x,this.y=n.y,this}}class Q{constructor(n,a){this.width=n,this.height=a}static getCurrent(n){const a=new Q(0,0);if(window){const o=window.getComputedStyle(n);return o&&(a.width=parseInt(o.getPropertyValue("width"),10),a.height=parseInt(o.getPropertyValue("height"),10)),a}return null}static copy(n){return new Q(0,0).set(n)}set(n){return this.width=n.width,this.height=n.height,this}}function Bn(e,n){const a=t.ref(),o=t.ref(),i=t.ref(),l=t.ref(),r=t.ref(),c=t.ref(),u=t.ref(),f=t.ref(),v=t.ref(),p=t.ref(),b=t.ref(),x=t.ref(e.resizeable),F=t.ref(),y=t.ref(e.draggable),s=t.ref(!1);function h(){const M=o.value||document.body,D=window.getComputedStyle(M);if(!D||!a.value)return;const A=W.getTransformInfo(a.value),z={};u.value&&(z.deltaL=a.value.offsetLeft-u.value.x,z.deltaT=a.value.offsetTop-u.value.y);const q=D.getPropertyValue("position");z.width=M.clientWidth,z.height=M.clientHeight,z.pr=parseInt(D.getPropertyValue("padding-right"),10),z.pb=parseInt(D.getPropertyValue("padding-bottom"),10),z.position=D.getPropertyValue("position"),q==="static"&&(M.style.position="relative"),z.translateX=A.x,z.translateY=A.y,p.value=z}function m(M){if(a.value){l.value=Q.getCurrent(a.value),r.value=W.getCurrent(a.value),c.value=l.value?Q.copy(l.value):null,u.value=r.value?W.copy(r.value):null,h();const D=M.target.getAttribute("type")||"";f.value={n:!!D.match(/n/),s:!!D.match(/s/),w:!!D.match(/w/),e:!!D.match(/e/)}}}function T(){var M,D,A,z;if(a.value){const q=a.value;f.value&&((f.value.n||f.value.s)&&((M=c.value)!=null&&M.height)&&(q.style.height=c.value.height+"px"),(f.value.w||f.value.e)&&((D=c.value)!=null&&D.width)&&(q.style.width=c.value.width+"px"),u.value&&((A=u.value)!=null&&A.x&&(q.style.left=u.value.x+"px"),(z=u.value)!=null&&z.y&&(q.style.top=u.value.y+"px")))}}function w(){const M=e.minHeight?e.minHeight:1,D=e.minWidth?e.minWidth:1;c.value&&u.value&&f.value&&l.value&&(c.value.height<M&&(c.value.height=M,f.value.n&&r.value&&(u.value.y=r.value.y+(l.value.height-M))),c.value.width<D&&(c.value.width=D,f.value.w&&r.value&&(u.value.x=r.value.x+(l.value.width-D))),e.maxHeight&&c.value.height>e.maxHeight&&(c.value.height=e.maxHeight,r.value&&f.value.n&&(u.value.y=r.value.y+(l.value.height-e.maxHeight))),e.maxWidth&&c.value.width>e.maxWidth&&(c.value.width=e.maxWidth,f.value.w&&r.value&&(u.value.x=r.value.x+(l.value.width-e.maxWidth))))}function d(){if(o.value){const M=p.value;if(u.value&&c.value&&f.value&&l.value){const D=M.width-M.pr-M.deltaL-M.translateX-u.value.x,A=M.height-M.pb-M.deltaT-M.translateY-u.value.y;f.value.n&&u.value.y+M.translateY<0&&r.value&&(u.value.y=-M.translateY,c.value.height=l.value.height+r.value.y+M.translateY),f.value.w&&u.value.x+M.translateX<0&&r.value&&(u.value.x=-M.translateX,c.value.width=l.value.width+r.value.x+M.translateX),c.value.width>D&&(c.value.width=D),c.value.height>A&&(c.value.height=A)}}}function g(M){if(!i.value||!l.value||!r.value||!f.value)return;M.subtract(i.value);const D=M.x,A=M.y;f.value.n?(u.value.y=r.value.y+A,c.value.height=l.value.height-A):f.value.s&&(c.value.height=l.value.height+A),f.value.e?c.value.width=l.value.width+D:f.value.w&&(c.value.width=l.value.width-D,u.value.x=r.value.x+D),d(),w(),T()}function k(M){if(!v.value)return;const D=W.fromEvent(M);D&&g(D)}function N(){if(a.value){const{width:M,height:D,x:A,y:z}=a.value.getBoundingClientRect(),q=W.getTransformInfo(a.value);return{size:{width:M,height:D},position:{x:A-q.x,y:z-q.y}}}return null}function I(M){if(a.value){const D=N();b.value=D}i.value=void 0,l.value=null,r.value=null,c.value=null,u.value=null,f.value=null,v.value=null,document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",I)}function j(){document.addEventListener("mousemove",k),document.addEventListener("mouseup",I)}function O(M){M instanceof MouseEvent&&M.button===2||y.value&&(document.body.click(),M.stopPropagation(),M.preventDefault(),i.value=W.fromEvent(M),v.value=M.target,m(M),j())}function P(M){return a.value=M,x.value&&t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"fv-resizable-handle fv-resizable-n",type:"n",onMousedown:D=>O(D)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-e",type:"e",onMousedown:D=>O(D)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-s",type:"s",onMousedown:D=>O(D)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-w",type:"w",onMousedown:D=>O(D)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-ne",type:"ne",onMousedown:D=>O(D)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-se fv-resizable-diagonal",type:"se",onMousedown:D=>O(D)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-sw",type:"sw",onMousedown:D=>O(D)},null),t.createVNode("div",{class:"fv-resizable-handle fv-resizable-nw",type:"nw",onMousedown:D=>O(D)},null)])}function S(M=!0){document.body.click();const D=o.value||document.body,A=Q.getCurrent(D),z=a.value;M&&z&&(F.value=N(),F.value.transform=z.style.transform),A&&z&&(c.value=A,c.value.height-=14,c.value.width-=14,z.style.height=c.value.height+"px",z.style.width=c.value.width+"px",z.style.left="7px",z.style.top="7px",z.style.transform="",b.value={size:c.value,position:{x:0,y:0}},y.value=!1,s.value=!0)}function V(){var M,D;if(document.body.click(),F.value){const A={width:F.value.size.width||0,height:F.value.size.height||0},z={x:(window.innerWidth-A.width)/2,y:(window.innerHeight-A.height)/2};(M=c.value)==null||M.set(A),(D=u.value)==null||D.set(z);const q=a.value;q.style.height=A.height+"px",q.style.width=A.width+"px",q.style.left=`${z.x}px`,q.style.top=`${z.y}px`,q.style.transform="",b.value={size:A,position:z},y.value=e.draggable,s.value=!1}}function B(){if(a.value){const M=Q.getCurrent(a.value);if(M){const{width:D,height:A}=M;a.value.style.left=`${(window.innerWidth-D)/2}px`,a.value.style.top=`${(window.innerHeight-A)/2}px`,a.value.style.transform=""}}}function E(){const M=()=>{s.value?S(!1):B(),document.body.click()};return window.addEventListener("resize",M),()=>{window.removeEventListener("resize",M)}}const L=E();return{renderResizeBar:P,boundingElement:o,resizedEventParam:b,maximize:S,restore:V,allowDrag:y,isMaximized:s,unWindowResizeHandle:L,moveToCenter:B}}function Dn(e,n,a){const o=t.ref(),i=t.ref(e.draggable),l=t.ref(e.lockAxis),r=t.ref(),c=t.ref(),u=t.ref(!1),f=t.ref(new W(0,0)),v=t.ref(new W(0,0)),p=t.ref(new W(0,0)),b=t.ref(new W(0,0));t.watch(()=>a.value,k=>{r.value.style.cursor=k?"move":"default"});function x(k,N){if(N.tagName==="BUTTON")return!1;if(N===k)return!0;for(const I in N.children)if(Object.prototype.hasOwnProperty.call(N.children,I)&&x(k,N.children[I]))return!0;return!1}function F(){var j,O;let k=p.value.x+v.value.x,N=p.value.y+v.value.y;l.value==="x"?(k=((j=f.value)==null?void 0:j.x)||0,p.value.x=0):l.value==="y"&&(N=((O=f.value)==null?void 0:O.y)||0,p.value.y=0);const I=`translate3d(${Math.round(k)}px, ${Math.round(N)}px, 0px)`;o.value&&(o.value.style.transform=I),b.value.x=k,b.value.y=N}function y(){if(!c.value||!o.value)return null;const k=c.value.getBoundingClientRect(),N=o.value.getBoundingClientRect(),I={top:k.top<N.top,right:k.right>N.right,bottom:k.bottom>N.bottom,left:k.left<N.left};return I.top||(p.value.y-=N.top-k.top),I.bottom||(p.value.y-=N.bottom-k.bottom),I.right||(p.value.x-=N.right-k.right),I.left||(p.value.x-=N.left-k.left),F(),I}function s(k){k&&(f.value&&k.subtract(f.value),p.value.set(k),F(),y())}function h(k){u.value&&i.value&&(k.stopPropagation(),k.preventDefault(),s(W.fromEvent(k,r.value)))}function m(){var k;u.value&&(u.value=!1,v.value.add(p.value),p.value.reset(),(k=o.value)==null||k.classList.remove("ng-dragging"),n.emit("stopMove"),document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",m))}function T(){!u.value&&r.value&&(u.value=!0,r.value.classList.add("ng-dragging"),document.addEventListener("mousemove",h),document.addEventListener("mouseup",m))}function w(){if(o.value){const k=W.getTransformInfo(o.value);v.value.set(k);return}v.value.reset()}function d(k){if(!a.value||k instanceof MouseEvent&&k.button===2)return;const N=k.target||k.srcElement;r.value!==void 0&&N&&!x(N,r.value)||i.value!==!1&&(document.body.click(),k.stopPropagation(),k.preventDefault(),f.value=W.fromEvent(k,o.value),w(),T())}function g(k,N,I){if(i.value&&N){if(k)r.value=k;else if(e.dragHandle){if(e.dragHandle instanceof HTMLElement)r.value=e.dragHandle;else if(typeof e.dragHandle=="string"){const j=N.querySelector(e.dragHandle);j&&(r.value=j)}}o.value=N,c.value=I,r.value?(r.value.classList.add("ng-draggable"),r.value.addEventListener("mousedown",d)):i.value=!1}}return{registerDraggle:g,resetTranslate:w}}function Ke(e,n){if(e){const a=o=>{o.key.toLowerCase()===e.toLowerCase()&&n({event:o,key:e})};return document.addEventListener("keydown",a),()=>{document.removeEventListener("keydown",a)}}}function En(e,n){const a=t.ref(e.enableEsc);let o=null;return a.value?(o=Ke("Escape",i=>{n.emit("esc",{event:i.event,type:"esc"})}),{remove:o}):null}function Pn(e,n){const a=t.ref(e.enableEnter);let o=null;return a.value?(o=Ke("Enter",i=>{n.emit("enter",{event:i.event,type:"enter"})}),{remove:o}):null}const re=t.defineComponent({name:"FModal",props:Vn,emits:["update:modelValue","accept","cancel","closed","resize","esc","enter","stopMove","buttonClick"],setup(e,n){const a=t.ref(e.width||300),o=t.ref(e.height||200),i=t.ref(e.modelValue),l=t.ref(""),r=t.ref(e.class),c=t.ref(e.fitContent),u=t.ref(e.showHeader),f=t.ref(""),v=t.ref(e.showCloseButton),p=t.ref(e.showMaxButton),b=t.ref(!1),x=t.ref(e.dialogType),F=t.ref(e.src),y=t.ref(""),s=t.ref(e.showButtons),h=t.ref(e.title),m=t.ref(e.containment||null),T=t.ref();h.value==="错误提示"&&(h.value=G.LocaleService.getLocaleValue("messageBox.errorTitle"));const w=t.ref(!1);function d(C,R){const Y=R?"accept":"cancel";Promise.resolve().then(()=>{var $;return($=e.beforeClose)==null?void 0:$.call(e,{closeType:Y})}).then($=>{$&&(i.value=!1,n.emit("update:modelValue",!1),R!=null&&n.emit(R?"accept":"cancel"),n.emit("closed",C))})}const g=[{name:"cancel",text:G.LocaleService.getLocaleValue("messageBox.cancel")||"取消",class:"btn btn-secondary",handle:C=>{d(C,!1)}},{name:"accept",text:G.LocaleService.getLocaleValue("messageBox.ok")||"确定",class:"btn btn-primary",handle:C=>{d(C,!0)}}],k=t.ref(e.buttons&&e.buttons.length?e.buttons:g),N=t.computed(()=>!!f.value),I=t.computed(()=>!!s.value&&!!k.value),j=t.ref(),O=t.ref(),P=t.ref(!1),{renderResizeBar:S,maximize:V,restore:B,boundingElement:E,resizedEventParam:L,allowDrag:M,unWindowResizeHandle:D,moveToCenter:A}=Bn(e),{registerDraggle:z}=Dn(e,n,M);function q(){return!!document.querySelectorAll(".farris-modal").length&&document.body.classList.contains("modal-open")}function na(){const C=document.querySelectorAll(".farris-modal").length;(!C||C-1<=0)&&document.body.classList.remove("modal-open"),T.value&&T.value.classList.remove("show")}t.watch(()=>e.title,(C,R)=>{C!==R&&(h.value=C)}),t.watch(()=>e.modelValue,(C,R)=>{C!==R&&(i.value=C,i.value&&e.draggable&&t.nextTick(()=>{O.value&&!m.value&&(m.value=O.value.parentElement,E.value=m.value,z(j.value,O.value,E.value),A())}),C||(m.value&&(m.value=null),na())),i.value?w.value=q():(P.value=!1,M.value=e.draggable)}),t.watch(()=>e.showHeader,(C,R)=>{C!==R&&(u.value=C)}),t.watch(()=>e.showButtons,(C,R)=>{C!==R&&(s.value=C)}),t.watch(()=>L.value,(C,R)=>{const Y=C||{},$=R||{};JSON.stringify(Y)!==JSON.stringify($)&&n.emit("resize",{newSize:C,oldSize:R,isMaximized:P.value})}),t.watch([()=>e.width,()=>e.height],(C,R)=>{(C[0]!==R[0]||C[1]!==R[1])&&(a.value=C[0]||500,o.value=C[1]||600)}),t.watch(()=>e.class,(C,R)=>{r.value=C});const pe=t.computed(()=>(i.value&&document.body.classList.add("modal-open"),i.value)),aa=t.computed(()=>{var Y;const C={modal:!0,"farris-modal":!0,fade:!0,"fe-cmp-page-modal":!!e.showFloatingClose};C["f-modal-fitContent"]=!!c.value,C.show=!!pe.value;const R=(Y=e.maskClass)==null?void 0:Y.split(" ");return R==null||R.reduce(($,te)=>($[te]=!0,$),C),C}),oa=t.computed(()=>{var Y;const C={"modal-dialog":!0},R=(Y=r.value)==null?void 0:Y.split(" ");return R==null||R.reduce(($,te)=>($[te]=!0,$),C),C}),ia=()=>_.isMobilePhone()&&!e.isMessager||!!e.fullscreen,la=t.computed(()=>{const C=document.documentElement.clientWidth,R=document.documentElement.clientHeight,Y=Math.min(a.value,C),$=e.position==="right"?"100%":c.value?"auto":`${Math.min(o.value,R-10)}px`,te=`${(window.innerHeight-($==="100%"||$==="auto"?0:parseInt($)))/2}px`,Fa=e.position==="right"?`${window.innerWidth-Y}px`:`${(window.innerWidth-Y)/2}px`,nt={position:"absolute",top:te,left:Fa,width:`${Y}px`,height:$};return e.mask||(nt.pointerEvents="auto"),nt}),et=t.ref(_.getMaxZIndex()||1050),ra=t.computed(()=>{const C={display:"block",overflow:"hidden"};return e.mask||(C.pointerEvents="none",C.backgroundColor="transparent"),w.value&&(C.backgroundColor="transparent"),C.zIndex=et.value,C}),sa=t.computed(()=>({"modal-content":!0,"modal-content-has-header":u.value,"is-mobile":ia()})),ca=t.computed(()=>{const C={display:u.value?"":"none"};return C["pointer-events"]=M.value?"auto":"none",C}),ua=t.computed(()=>({"f-icon":!0,modal_maximize:!0,modalrevert:P.value})),da=t.computed(()=>({"modal-body":!0,"f-utils-flex-column":x.value==="iframe","f-utils-fill":!0}));function fa(){return{height:`${e.footerHeight||60}px`}}const ma=t.computed(()=>{const C={textAlgin:y.value},R=fa();return Object.assign(C,R)});function tt(C){if(C==null||C.stopPropagation(),P.value){P.value=!1,B();return}V(),P.value=!0}async function ya(C,R){C.handle?await C.handle(R,C)&&n.emit("closed",R):(typeof C.onClick=="string"&&(C.onButtonClick=ne.cloneDeep(C.onClick||""),delete C.onClick),n.emit("buttonClick",{button:C,$event:R}))}function pa(C){C.width&&(a.value=C.width),C.height&&(o.value=C.height),C.buttons&&(k.value=C.buttons),C.title&&(h.value=C.title)}let we=null,Fe=null;t.onBeforeMount(()=>{w.value=q()}),t.onMounted(()=>{O.value&&!m.value&&(m.value=O.value.parentElement,E.value=m.value,z(j.value,O.value,E.value)),pe.value&&document.body.classList.add("modal-open"),we=En(e,n),Fe=Pn(e,n)}),t.onUnmounted(()=>{D&&D(),we&&we.remove(),Fe&&Fe.remove()}),n.expose({modalElementRef:O,updateModalOptions:pa,close:d,maxDialog:tt,isMaximized:P});function ha(){return t.createVNode("div",{class:"action-wrapper",onClick:C=>d(C,!1)},[t.createVNode("span",{class:"close-icon"},[t.createVNode("i",{class:"f-icon f-icon-close"},null)])])}function ga(){return t.createVNode("ul",null,[b.value&&t.createVNode("li",{class:"f-btn-icon f-bare"},[t.createVNode("span",{class:"f-icon modal_minimize"},null)]),p.value&&t.createVNode("li",{onClick:tt,class:"f-btn-icon f-bare",style:"pointer-events: auto;"},[t.createVNode("span",{class:ua.value},null)]),v.value&&t.createVNode("li",{class:"f-btn-icon f-bare",onClick:C=>d(C,!1),style:"pointer-events: auto;"},[t.createVNode("span",{class:"f-icon modal_close"},null)])])}function va(){return t.createVNode("div",{class:"modal-footer",style:ma.value},[k.value&&k.value.map(C=>{var $;const R=t.ref(C.disabled),Y=C.class||(($=C.appearance)==null?void 0:$.class);return t.createVNode("button",{name:C.name,type:"button",disabled:R.value,class:Y+(C.iconClass?" btn-icontext":"")+(C.visible===!1?"d-none":""),onClick:te=>{ya(C,te)}},[!!C.iconClass&&t.createVNode("i",{class:C.iconClass},null),C.text])})])}function ba(){return t.createVNode("div",{ref:j,class:"modal-header",style:ca.value},[n.slots.headerTemplate?n.slots.headerTemplate():t.createVNode("div",{class:"modal-title"},[N.value&&t.createVNode("span",{class:f.value,style:"margin-right: 8px"},null),t.createVNode("span",{class:"modal-title-label"},[h.value])]),t.createVNode("div",{class:"actions"},[ga()])])}function ka(){return n.slots.footerTemplate?n.slots.footerTemplate():I.value&&va()}function Ca(C){if(C.stopPropagation(),e.allowClickMaskToClose){if(C.target!==T.value)return;d(C,!1)}}function xa(){var C,R;return t.createVNode("div",{id:l.value,class:oa.value,style:la.value,ref:O},[e.showFloatingClose&&ha(),t.createVNode("div",{class:sa.value},[u.value&&ba(),t.createVNode("div",{class:da.value},[(R=(C=n.slots).default)==null?void 0:R.call(C),x.value==="iframe"&&t.createVNode("iframe",{title:l.value,class:"f-utils-fill",width:"100%",frameborder:"0",src:F.value},null)]),ka()]),!c.value&&O.value&&!P.value&&S(O.value)])}function wa(C){return C||"body"}return t.watchEffect(()=>{pe.value&&(et.value=_.getMaxZIndex()||1050)}),()=>t.createVNode(t.Teleport,{to:wa(e.host)},{default:()=>[pe.value&&t.createVNode(t.Transition,{name:"fade",appear:!0},{default:()=>[t.createVNode("div",{ref:T,class:aa.value,style:ra.value,onClick:Ca},[xa()])]})]})}});function Xe(e){if(e.content&&e.content.render)return e.content.render;if(e.render&&typeof e.render=="function")return e.render}function jn(e){const n=document.createElement("div");n.style.display="contents";const a=t.createApp({setup(o,i){t.onUnmounted(()=>{document.body.removeChild(n)});const l=t.ref(),r=t.ref(e.class||""),c=t.ref(!!e.showButtons),u=t.ref(!!e.showHeader),f=t.ref(e.showCloseButton==null?!0:e.showCloseButton),v=t.ref(!!e.showFloatingClose),p=t.ref(!0),b=t.ref(e.title||""),x=e.acceptCallback||(()=>{}),F=e.rejectCallback||(()=>{}),y=e.closedCallback||(w=>{}),s=e.resizeHandle||(w=>{}),h=e.stopMoveHandle||(w=>{}),m=Xe(e),T=w=>{p.value=!1,a.unmount(),y(w)};return t.onMounted(()=>{}),i.expose({modalRef:l}),()=>t.createVNode(re,{ref:l,class:r.value,modelValue:p.value,"onUpdate:modelValue":w=>p.value=w,title:b.value,width:e.width,height:e.height,buttons:e.buttons,"show-header":u.value,"show-buttons":c.value,"show-close-button":f.value,"show-max-button":!1,showFloatingClose:v.value,onAccept:x,onCancel:F,fitContent:e.fitContent==null?!0:e.fitContent,onClosed:T,onResize:s,onStopMove:h},{default:()=>[m&&m(a)]})}});return document.body.appendChild(n),a.use(G.LocaleService.i18n),a.mount(n),a}class In{constructor(n){X(this,"appContext",null);X(this,"modalRef",t.ref());X(this,"activeModalIndex",t.ref(0));X(this,"modalRefs",{});X(this,"isUseEscCloseModal",t.ref(!1));X(this,"activeModalInstance",t.computed(()=>this.modalRefs[this.activeModalIndex.value]));this.app=n,this.appContext=n?n._context:null}getCurrentModal(){return this.activeModalInstance.value}adaptToWindow(n,a){const{width:o,height:i}={width:window.innerWidth,height:window.innerHeight};return o<n&&(n=o-14),i<a&&(a=i-14),{width:n,height:a}}static show(n){const a=Object.assign({title:"",showButtons:!0,showHeader:!0},n);return jn(a)}close(n){var a,o;n?(o=n.value)==null||o.close():(a=this.getCurrentModal())==null||a.close()}open(n){const a=document.createDocumentFragment();n.showMaxButton&&n.fitContent&&(n.showMaxButton=!1);const o=t.shallowRef(Object.assign({title:"",showButtons:!0,showHeader:!0},n)),i=t.ref(!0),l=o.value.acceptCallback||(()=>{}),r=o.value.rejectCallback||(()=>{}),c=o.value.closedCallback||((d,g)=>{}),u=o.value.resizeHandle||(d=>{}),f=n.stopMoveHandle||(d=>{});let v;const p=Xe(o.value),b=d=>{var k;i.value=!1;const g=(k=d==null?void 0:d.target)==null?void 0:k.classList.contains("modal_close");c(d,this.isUseEscCloseModal.value?"esc":g?"icon":"button")},x=d=>{b(d),v&&t.nextTick(()=>{if(this.modalRefs[this.activeModalIndex.value]&&delete this.modalRefs[this.activeModalIndex.value],t.render(null,a),v=null,this.modalRef.value=null,this.modalRefs){const g=Object.keys(this.modalRefs).map(k=>Number(k));g.length>0?this.activeModalIndex.value=Math.max(...g):this.activeModalIndex.value=0}this.isUseEscCloseModal.value=!1})},F=d=>{var g;this.isUseEscCloseModal.value=!0,this.activeModalInstance&&((g=this.activeModalInstance.value)==null||g.close(d==null?void 0:d.event))},{width:y,height:s}=o.value,h=this.adaptToWindow(y||500,s||320);Object.assign(o.value,h);const m=()=>t.createVNode(re,t.mergeProps({ref:this.modalRef,modelValue:i.value,"onUpdate:modelValue":d=>i.value=d},o.value,{isMessager:o.value.class&&o.value.class.indexOf("modal-message")>-1,onAccept:l,onCancel:r,onClosed:x,onResize:u,onEsc:F,onStopMove:f}),{default:()=>[p&&p(this.app)]});return v=(d=>{const g=t.h(m,d);return g.appContext=this.appContext,t.render(g,a),g})({...o.value}),this.activeModalIndex.value++,this.modalRefs[this.activeModalIndex.value]=this.modalRef.value,{update:d=>{o.value={...o.value,...d},v&&t.render(t.cloneVNode(v,{...o}),a)},destroy:x,modalRef:this.activeModalInstance,close:()=>this.close()}}}const _e=Symbol("FModalService");re.install=e=>{e.component(re.name,re);const n=new In(e);e.provide(_e,n),e.provide("FModalService",n)};function Je(e,n){function a(){const o=e.beforeOpen||e.beforeClickButton||null;let i=Promise.resolve(!0);if(o){const l=o(n.value);if(typeof l>"u")return i;typeof l=="boolean"?i=Promise.resolve(l):i=l}return i}return{judgeCanOpen:a}}function Rn(e,n,a,o,i){const l=t.ref(e.buttonBehavior),r=t.ref(e.popupOnInput),c=t.computed(()=>({"input-group-append":!0,"append-force-show":e.showButtonWhenDisabled&&(e.readonly||e.disable)})),{judgeCanOpen:u}=Je(e,i),f=t.computed(()=>e.showButtonWhenDisabled||(!e.editable||!e.readonly)&&!e.disable),v=t.inject(_e,null),p=t.ref();async function b(y){if(await u()&&f.value){const s=!!n.slots.default;if(l.value==="Modal"){const h=e.modalOptions,m=v==null?void 0:v.open({...h,render:()=>n.slots.default&&n.slots.default()});p.value=m==null?void 0:m.modalRef}l.value==="Overlay"&&On.show({host:document.body,backgroundColor:"rgba(0,0,0,.15)",render:()=>n.slots.default&&n.slots.default()}),s&&l.value==="Popup"&&o.togglePopup(!0),s&&r.value&&o.hidePopup(),n.emit("clickButton",{origin:y,value:e.modelValue})}}function x(y){n.emit("mouseEnterIcon",y)}function F(y){n.emit("mouseLeaveIcon",y)}return{buttonGroupClass:c,onClickButton:b,onMouseEnterButton:x,onMouseLeaveButton:F,modalRef:p}}function Ln(e,n,a,o,i,l){const r=t.ref(!1),c=t.computed(()=>e.enableClear&&!e.readonly&&!e.disable),{changeTextBoxValue:u,hasClearClass:f}=l;function v(F){r.value=F,f.value=F}t.watch(i,()=>{v(!!i.value)});function p(F){const y=!e.readonly&&!e.disable&&e.editable,s=!e.editable;F.stopPropagation(),(y||s)&&(u(""),i.value="",v(!r.value),n.emit("clear"))}function b(F){if(c.value){if(!a.value){v(!1);return}!e.disable&&!e.readonly&&v(!0)}}function x(F){c.value&&v(!1)}return{enableClearButton:c,showClearButton:r,onClearValue:p,onMouseEnterTextBox:b,onMouseLeaveTextBox:x}}function zn(e,n,a,o,i){const l=t.computed(()=>e.popupOnInput),r=t.computed(()=>e.popupOnFocus),{shouldPopupContent:c,closeAllPopover:u}=i,f=t.ref(!1),v=t.computed(()=>e.enableTitle?a.value:""),p=t.computed(()=>(e.disable||e.readonly)&&!e.forcePlaceholder?"":e.placeholder),b=t.computed(()=>e.readonly||!e.editable),x=t.ref(!1),F=t.computed(()=>!e.disable&&x.value),y=t.computed(()=>({"text-left":e.textAlign==="left","text-center":e.textAlign==="center","text-right":e.textAlign==="right","form-control":!0,"f-utils-fill":!0})),s=t.computed(()=>({"input-group":!0,"f-state-disabled":e.disable,"f-state-editable":e.editable&&!e.disable&&!e.readonly,"f-state-readonly":e.readonly,"f-state-focus":F.value,"input-group--has-clear":e.enableClear&&f.value}));function h(O,P=!0){a.value=O,P&&(n.emit("change",O),n.emit("update:modelValue",O))}function m(O){c.value=!1,h(O,!0)}t.watch(()=>e.modelValue,O=>{a.value=O});function T(O){x.value=!1,n.emit("blur",O),O.stopPropagation()}function w(O){n.emit("click",O),u(),n.slots.default&&!e.disable&&!e.readonly&&e.popupOnClick&&i.togglePopup()}function d(O){!e.disable&&!e.readonly&&(x.value=!0,b.value||(n.emit("focus",O),r.value&&!c.value&&i.popup()))}function g(O){n.emit("input",O);const P=O.target.value;o.value=P,a.value!==P&&h(P,e.updateOn==="change"),l.value&&!c.value&&i.popup()}function k(O){O.target.tagName!=="INPUT"&&O.preventDefault(),O.stopPropagation()}function N(O){n.emit("keydown",O)}function I(O){O.key==="Enter"&&(l.value||r.value)&&i.hidePopup(),n.emit("keyup",O)}function j(O){const P=O.target.value;O.stopPropagation(),h(P)}return{hasFocusedTextBox:F,isTextBoxReadonly:b,textBoxClass:y,textBoxPlaceholder:p,textBoxTitle:v,inputGroupClass:s,hasClearClass:f,changeTextBoxValue:h,commitValue:m,onBlurTextBox:T,onClickTextBox:w,onFocusTextBox:d,onInput:g,onKeyDownTextBox:N,onKeyUpTextBox:I,onMouseDownTextBox:k,onTextBoxValueChange:j}}const ee="FarrisVue_PopoverInstancesKey";function Hn(e,n,a,o){const i=t.ref(),l=t.ref(!1),{judgeCanOpen:r}=Je(e,o);t.watch(()=>i.value,(x,F)=>{window[ee]=window[ee]||new WeakMap,x?window[ee].set(a.value,x):window[ee].delete(a.value)});function c(){if(window[ee]){const x=window[ee];document.querySelectorAll(".f-button-edit,.v-popover").forEach(F=>{const y=x.get(F);y&&F!==a.value&&!a.value.closest(".popover-fitcontent")&&y.hide()})}}function u(){const x=i.value;x&&x.show(a.value)}async function f(x=!1){if(!!n.slots.default){if(!x&&!l.value&&!await r())return;l.value=!l.value,l.value&&(await t.nextTick(),u())}}async function v(x=!1){if(!!n.slots.default){if(!x&&!await r())return;l.value=!0,await t.nextTick(),u()}}function p(){l.value=!1}function b(){l.value=!0,t.nextTick(()=>{u()})}return{hidePopup:p,showPopup:b,popup:v,shouldPopupContent:l,togglePopup:f,popoverRef:i,closeAllPopover:c}}function An(e,n,a){const o=t.ref(),{isTextBoxReadonly:i,textBoxClass:l,textBoxPlaceholder:r,textBoxTitle:c,onBlurTextBox:u,onClickTextBox:f,onFocusTextBox:v,onInput:p,onKeyDownTextBox:b,onKeyUpTextBox:x,onMouseDownTextBox:F,onTextBoxValueChange:y}=a,s=t.ref(e.id),{uuid:h}=_.useGuid(),m=t.computed(()=>({}));t.onMounted(()=>{var k,N;e.selectOnCreated&&((k=o.value)==null||k.select()),e.focusOnCreated&&((N=o.value)==null||N.focus({preventScroll:!0})),s.value||(s.value="button-edit_"+h(8)),s.value=s.value+"-textbox"});const T=t.ref(!1),w=k=>{k.preventDefault(),T.value=!0},d=k=>{k.preventDefault(),T.value=!1,p(k)};function g(k){T.value||p(k)}return()=>t.createVNode("input",{id:e.id?e.id+"-textbox":void 0,ref:o,name:"input-group-value",autocomplete:e.autoComplete?"on":"off",class:l.value,style:m.value,disabled:e.disable,maxlength:e.maxLength,minlength:e.minLength,placeholder:r.value,readonly:i.value,tabindex:e.tabIndex,title:c.value,type:e.inputType,value:n.value,onBlur:u,onChange:y,onClick:f,onFocus:v,onInput:g,onKeydown:b,onKeyup:x,onMousedown:F,onCompositionend:d,onCompositionstart:w},null)}function $n(e,n,a){const o=t.ref(e.separator),i=t.computed(()=>e.readonly||e.disable),{changeTextBoxValue:l,onFocusTextBox:r,onBlurTextBox:c,onClickTextBox:u,textBoxPlaceholder:f}=a,v=t.computed(()=>n.value?n.value.split(o.value).map(F=>({name:F,selectable:!0})):[]);function p(F){l(F.map(y=>y.name).join(o.value),!0)}t.watch(()=>e.separator,F=>{o.value=F});const b=t.ref(!e.disable&&!e.readonly);t.watch([()=>e.disable,()=>e.readonly],([F,y],[s,h])=>{b.value=!F&&!y});function x(F){u(F)}return()=>t.createVNode(rt,{tabindex:e.tabIndex,onFocus:r,onBlur:c,id:`${e.id}-tag-editor`,class:"form-control",placeholder:f.value,data:v.value,showClose:!i.value,showInput:!0,disable:i.value,onChange:p,onClick:x},null)}function Wn(e,n,a,o){const{buttonGroupClass:i,onClickButton:l,onMouseEnterButton:r,onMouseLeaveButton:c}=a,{enableClearButton:u,showClearButton:f,onClearValue:v}=o,p=t.ref(),b=ne.debounce(s=>{l(s)},e.buttonBehavior==="Modal"?0:200),x=()=>{n.emit("beforeClearValue")},F=t.computed(()=>({"input-group-append input-append-wrapper":!0,"input-append-button":e.expandMode==="button","input-append-text":e.expandMode==="text","d-none":!!e.expandDisabled})),y=()=>{n.emit("expandClick")};return{renderButtonGroup:()=>t.createVNode("div",{id:e.id?`${e.id}-button-group`:void 0,class:i.value},[u.value&&t.withDirectives(t.createVNode("span",{class:"input-group-text input-group-clear",onClick:v,onMousedown:x},[t.createVNode("i",{class:"f-icon modal_close"},null)]),[[t.vShow,f.value]]),n.slots.buttonContent?t.createVNode("span",{class:"input-group-text input-group-append-button",onClick:b,onMouseenter:r,onMouseleave:c},[n.slots.buttonContent()]):e.buttonContent?t.createVNode("span",{class:"input-group-text input-group-append-button",innerHTML:e.buttonContent,ref:p,onClick:s=>b(s),onMouseenter:r,onMouseleave:c},null):null,e.expandable&&t.createVNode("div",{class:F.value,onClick:y},[t.createVNode("div",{class:"input-group-text"},[e.expandContent])])]),buttonHandleElement:p}}function qn(e,n,a){const o=t.ref(e.popupMinWidth),{hidePopup:i,popoverRef:l}=a,r=()=>{n.emit("shown")};return()=>t.createVNode(st,{id:`${e.id}-popover`,ref:l,placement:e.placement,host:e.popupHost,"keep-width-with-reference":e.keepWidthWithReference,fitContent:!0,"right-boundary":e.popupRightBoundary,minWidth:o.value,class:e.popupClass,offsetX:e.popupOffsetX,onHidden:i,onShown:r,beforeClose:e.beforeClosePopup,limitContentBySpace:e.limitContentBySpace},{default:()=>{var c,u;return[(u=(c=n.slots).default)==null?void 0:u.call(c)]}})}const Yn=t.defineComponent({name:"FButtonEdit",props:Fn,emits:["updateExtendInfo","clear","change","click","clickButton","blur","focus","mouseEnterIcon","mouseLeaveIcon","keyup","keydown","inputClick","input","update:modelValue","beforeClearValue","expandClick"],setup(e,n){const a=t.ref(),o=t.ref(e.customClass),i=t.ref(e.modelValue),l=Hn(e,n,a,i),{shouldPopupContent:r,hidePopup:c,showPopup:u,togglePopup:f}=l,v=Rn(e,n,a,l,i),p=t.ref(""),b=zn(e,n,i,p,l),{hasFocusedTextBox:x,commitValue:F,inputGroupClass:y}=b,s=Ln(e,n,i,x,p,b),{onMouseEnterTextBox:h,onMouseLeaveTextBox:m}=s,T=t.ref(!1),w=t.computed(()=>{const E={"f-button-edit":!0,"f-cmp-inputgroup":!0,"f-button-edit-nowrap":!e.wrapText};return o.value&&o.value.split(" ").reduce((L,M)=>(L[M]=!0,L),E),E}),d=t.computed(()=>({overflow:e.wrapText?"hidden":""})),g=t.computed(()=>({}));function k(){if(!e.multiSelect||e.inputType!=="tag"||!a.value)return 0;let E=0;const L=Array.from(a.value.querySelectorAll(".farris-tag-item"));return L&&L.length&&(E=L.map(M=>M.offsetTop).filter(M=>M>20).length),E}const N=t.ref(k());t.onUpdated(()=>{N.value=k()});function I(){return e.multiSelect&&e.inputType==="tag"?()=>t.createVNode(t.Fragment,null,[$n(e,i,b)(),!!N.value&&t.createVNode("div",{class:"d-flex flex-row mr-2 more-tags","more-tags":!0},[t.createVNode("span",{class:"multi--more-text"},[t.createTextVNode("+"),N.value])])]):An(e,i,b)}let j=I();t.watch([()=>e.multiSelect,()=>e.inputType],()=>{j=I()});const{renderButtonGroup:O,buttonHandleElement:P}=Wn(e,n,v,s),S=qn(e,n,l),V=t.ref(r.value),B={displayText:p,commitValue:F,elementRef:a,hidePopup:c,showPopup:u,popoverRef:l.popoverRef,shouldPopupContent:r,togglePopup:f,openDialog:()=>{P.value&&e.buttonBehavior==="Modal"&&P.value.click()},getModal:()=>{var E;return e.buttonBehavior==="Modal"?(E=v.modalRef.value)==null?void 0:E.value:null},getTextbox:()=>{var E;return(E=a.value)==null?void 0:E.querySelector("input")},forceClosePopup:()=>{V.value=!1,T.value=!0,r.value=!1}};return t.onMounted(()=>{a.value.componentInstance=B,window.onresize=()=>{document.body.click()}}),t.onBeforeUnmount(()=>{var E;window.onresize=null,(E=window[ee])==null||E.delete(a.value)}),n.expose(B),t.watch(()=>r.value,async(E,L)=>{if(T.value){V.value=E,T.value=!1;return}if(!E&&e.beforeClosePopup&&typeof e.beforeClosePopup=="function"){try{const M=await e.beforeClosePopup();V.value=!M,(!M||e.readonly)&&(r.value=!0)}catch(M){console.error("Error in beforeClosePopup:",M),V.value=L,r.value=L}return}V.value=E}),()=>{var E,L;return t.createVNode(t.Fragment,null,[t.createVNode("div",t.mergeProps(n.attrs,{ref:a,class:w.value,id:e.id?e.id:void 0,style:d.value}),[t.createVNode("div",{id:e.id?`${e.id}-input-group`:void 0,class:y.value,style:g.value,onMouseenter:h,onMouseleave:m},[(L=(E=n.slots).precontent)==null?void 0:L.call(E),j(),O()])]),V.value&&S()])}}}),Un={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/expression-editor.schema.json",title:"expression-editor",description:"A Farris Expression Editor Component",type:"object",properties:{id:{description:"The unique identifier for a Expression Editor",type:"string"},type:{description:"The type string of Expression Editor component",type:"string",default:"expression-editor"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},beforeOpen:{type:"object",default:null},modelValue:{description:"The value of Expression Editor",type:"string",default:""},variables:{description:"The variables of Expression Editor",type:"array",default:[]},entities:{description:"The entities of Expression Editor",type:"array",default:[]},onSubmitModal:{description:"The event of Expression Editor",type:"function",default:null},onExpressionChanged:{description:"The event of Expression Editor",type:"function",default:null},esprimaPath:{description:"The path of esprima",type:"string",default:"assets/esprima-config.json"},singleExpand:{description:"The singleExpand of Expression Editor",type:"boolean",default:!0},showMessage:{description:"The showMessage of Expression Editor",type:"boolean",default:!1},dialogTitle:{description:"The dialogTitle of Expression Editor",type:"string",default:"表达式编辑器"},dialogWidth:{description:"The dialogWidth of Expression Editor",type:"string",default:975},dialogHeight:{description:"The dialogHeight of Expression Editor",type:"string",default:600},beforeSubmit:{description:"The beforeSubmit of Expression Editor",type:"function",default:null},showMessageType:{description:"The showMessageType of Expression Editor",type:"boolean",default:!1},showDataPanel:{description:"Show right panel",type:"boolean",default:!0}},required:["id","type"]},Ze={disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},enableClear:{type:Boolean,default:!0},modelValue:{type:String,default:""},displayText:{type:String,default:""},repositoryToken:{type:Object,default:null},editorParams:{},singleExpand:{type:Boolean,default:!0},beforeOpen:{type:Function,default:()=>{}},onSubmitModal:{type:Function,default:()=>{}},entities:{type:Array,default:[]},variables:{type:Array,default:[]},disabledFunctions:{type:Object,default:null},onExpressionChanged:{type:Function,default:()=>{}},esprimaPath:{type:String,default:"assets/esprima-config.json"},showMessage:{type:Boolean,default:!1},showMessageType:{type:Boolean,default:!1},dialogTitle:{type:String,default:"表达式编辑器"},dialogWidth:{type:Number,default:975},dialogHeight:{type:Number,default:600},validateMessage:{type:String,default:""},beforeSubmit:{type:Function,default:null},showDataPanel:{type:Boolean,default:!0},isServerSide:{type:Boolean,default:!1}},Gn=U.createPropsResolver(Ze,Un),Kn={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}},Xn={showCloseButton:{type:Boolean,default:!0},animate:{type:String,default:"fadeIn"},options:{type:Object}},xe=t.defineComponent({name:"Toast",props:Xn,emits:["close","click"],setup:(e,n)=>{const a=t.ref(e.animate),o="fadeOut",i=t.computed(()=>e.options),l=t.ref(!1),r=t.computed(()=>i.value.title&&i.value.message),c=t.computed(()=>!i.value.title&&i.value.message),u=t.computed(()=>{const m={animated:l.value,toast:!0,"toast--only-content":!r.value};return m[e.animate]=!1,m[o]=l.value,m["toasty-type-"+i.value.type]=!0,i.value.theme&&(m[i.value.theme]=!0),m}),f=t.computed(()=>{const w=`f-icon-${i.value&&i.value.type?i.value.type.replace("toasty-type-",""):"default"}`,d={"f-icon":!0};return d[w]=!0,d}),v=t.computed(()=>i.value.title||i.value.message),p=t.computed(()=>e.showCloseButton),b=t.computed(()=>!!i.value.buttons||!!n.slots.default),x=t.computed(()=>G.LocaleService.getLocale()==="en"?{wordBreak:"keep-all",overflowWrap:"break-word"}:{});function F(m){m.stopPropagation(),m.preventDefault(),l.value=!1,setTimeout(()=>{n.emit("close",i.value)},200)}function y(m,T){}function s(m){return`f-preten-link ${m.customClass?m.customClass:""}`}t.watch(a,()=>{a.value});const h=()=>{var m;return t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"after-toast-msg text-right"},[!n.slots.default&&((m=i.value.buttons)==null?void 0:m.map(T=>t.createVNode("span",{class:s(T),onClick:w=>void 0},[T.text]))),n.slots.default&&n.slots.default()])])};return()=>t.createVNode("div",{class:u.value,style:"min-height:44px"},[p.value&&t.createVNode("button",{title:G.LocaleService.getLocaleValue("messageBox.close"),class:"toast-close f-btn-icon f-bare",onClick:F},[t.createVNode("span",{class:"f-icon modal_close"},null)]),v.value&&t.createVNode("section",{class:"modal-tips"},[!r.value&&t.createVNode("div",{class:"float-left modal-tips-iconwrap"},[t.createVNode("span",{class:f.value},null)]),t.createVNode("div",{class:"modal-tips-content"},[r.value&&t.createVNode(t.Fragment,null,[t.createVNode("h5",{class:"toast-title modal-tips-title",innerHTML:i.value.title},null),t.createVNode("p",{class:"toast-msg",innerHTML:i.value.message,style:x.value},null),b.value&&h()]),c.value&&(i.value.buttons?t.createVNode("div",{class:"toast-title-btns-wrapper d-flex"},[t.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:x.value,innerHTML:i.value.message},null),t.createVNode("div",{class:"after-toast-title text-right ml-auto"},[h()])]):t.createVNode("h5",{class:"toast-title modal-tips-title only-toast-msg",style:x.value,innerHTML:i.value.message},null))])])])}}),_n=["moz","ms","webkit"];function Jn(){let e=0;return n=>{const a=new Date().getTime(),o=Math.max(0,16-(a-e)),i=setTimeout(()=>{n(a+o)},o);return e=a+o,i}}function Zn(){if(typeof window>"u")return()=>0;if(window.requestAnimationFrame)return window.requestAnimationFrame.bind(window);const e=_n.filter(n=>`${n}RequestAnimationFrame`in window)[0];return e?window[`${e}RequestAnimationFrame`]:Jn()}Zn();function Qn(){const e=navigator.userAgent||navigator.vendor||window.opera,n=[/iPhone/i,/iPod/i,/Android.*Mobile/i,/webOS/i,/BlackBerry/i,/IEMobile/i,/Opera Mini/i,/Harmony/i],a=[/iPad/i,/Android(?!.*Mobile)/i,/Tablet/i,/PlayBook/i,/Kindle/i,/Silk/i];for(const c of a)if(c.test(e))return!1;for(const c of n)if(c.test(e))return!0;const o="ontouchstart"in window||navigator.maxTouchPoints>0,i=screen.width,l=screen.height,r=Math.min(i,l);return!!(o&&r<=768)}const me=t.defineComponent({name:"Notify",props:Kn,emits:["close","empty"],setup(e,n){var y;const a=Qn(),i=`farris-notify-${(y=e.options)!=null&&y.type?e.options.type:"info"}}`,l=t.computed(()=>({"farris-notify":!0,[i]:a})),r={left:12,right:12,top:20,bottom:12},c=t.ref(),u=t.ref(e.options),f=t.ref(e.showCloseButton),v=t.computed(()=>e.position||"bottom-right"),p=t.computed(()=>e.timeout!=null?e.timeout:3e3),b=t.computed(()=>{const s=e.bottom?e.bottom:r.bottom,h=e.top?e.top:r.top,m={transition:"all 0.2s ease",left:v.value.indexOf("left")>-1?`${e.left?e.left:r.left}px`:"",right:v.value.indexOf("right")>-1?`${e.right?e.right:r.right}px`:"",top:v.value.indexOf("top")>-1?`${h}px`:"",bottom:v.value.indexOf("bottom")>-1?`${s}px`:""};return v.value.indexOf("center")>-1&&(m.left="50%",m.marginLeft="calc(-24rem / 2)",v.value==="center-center"&&(m.top="50%",m.transform="translate(-50%, -50%)")),m});function x(s){n.emit("close")}p.value&&setTimeout(()=>{x()},p.value),n.expose({closeToast:x,container:c,notifyPosition:v});function F(s,h){x()}return()=>{var s;return a?t.createVNode("div",{class:l.value,ref:c},[(s=e.options)==null?void 0:s.message]):t.createVNode("div",{class:l.value,style:b.value,ref:c},[t.createVNode(xe,{options:u.value,showCloseButton:f.value,animate:e.animate,onClose:h=>F(h,u.value)},null)])}}});class ea{constructor(){X(this,"notifyRefs",[]);X(this,"globalConfig",t.reactive({}))}escapeAllHtml(n){if(typeof n!="string"||!n)return"";const a=document.createElement("div");return a.textContent=n||"",a.innerHTML.replace(/\\n/g,"<br>").replace(/\\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;").replace(/\\r/g,"")}createNotifyInstance(n){const a=this,i=Object.assign({timeout:3e3,position:"bottom-right",showCloseButton:!0,safeHtml:!0},this.globalConfig,{...n}),l=document.createElement("div");l.style.display="contents";const r=t.createApp({setup(){var f;const c=t.ref();function u(){c.value.container.style.transform="scale(0)",setTimeout(()=>{a.updateNotifyPositionForClose(i,c),r.unmount()},220)}if(i.position.indexOf("top")>-1){const v=a.getNotifyInstances(i.position),p=v[v.length-1];if(p){const b=p.value.container.getBoundingClientRect();i.top=b.bottom}}return i.safeHtml&&((f=i.options)!=null&&f.message)&&(i.options.message=a.escapeAllHtml(i.options.message)),t.onUnmounted(()=>{document.body.removeChild(l)}),t.onMounted(()=>{a.updateNotifyPositionForCreate(i,c)}),()=>t.createVNode(t.Transition,{mode:"out-in",name:"fade",appear:!0},{default:()=>[t.createVNode(me,t.mergeProps({ref:c},i,{onClose:u}),null)]})}});return r.provide("NotifyService",this),document.body.appendChild(l),r.use(G.LocaleService.i18n),r.mount(l),r}getNotifyInstances(n){return this.notifyRefs.filter(a=>a.value.notifyPosition===n)}updateNotifyPositionForCreate(n,a){if(this.notifyRefs&&this.notifyRefs.length){const o=window.innerHeight;n.position.indexOf("bottom")>-1&&this.getNotifyInstances(n.position).forEach(i=>{const l=i.value.container.getBoundingClientRect();i.value.container.style.bottom=l.height+o-l.bottom+"px"})}this.notifyRefs=[...this.notifyRefs,a]}updateNotifyPositionForClose(n,a){const o=this.notifyRefs.indexOf(a);if(n.position.indexOf("top")>-1){const i=this.getNotifyInstances(n.position),l=i.indexOf(a);i.slice(l+1).forEach(r=>{r.value.container.style.top=r.value.container.offsetTop-r.value.container.offsetHeight+"px"})}o>-1&&this.notifyRefs.splice(o,1)}show(n){return this.createNotifyInstance(n)}buildNotifyProps(n,a){let o="",i="",l,r,c;typeof a=="string"?o=a:a&&(o=a.message||"",i=a.title||"",r=a.position||null,c=a.showCloseButton!=null?a.showCloseButton:null,l=a.timeout!=null?a.timeout:null);const f={options:{type:n,message:o,title:i}};return r!=null&&(f.position=r),c!=null&&(f.showCloseButton=c),l!=null&&(f.timeout=l),f}info(n){const a=this.buildNotifyProps("info",n);return this.show(a)}success(n){const a=this.buildNotifyProps("success",n);return this.show(a)}warning(n){const a=this.buildNotifyProps("warning",n);return this.show(a)}error(n){const a=this.buildNotifyProps("error",n);return this.show(a)}close(n){n&&n.unmount()}closeAll(){this.notifyRefs.forEach(n=>{n==null||n.value.closeToast()}),this.notifyRefs.length=0}}const Qe=Symbol("NOTIFY_SERVICE_TOKEN");me.install=e=>{e.component(me.name,me),e.component(xe.name,xe);const n=new ea;e.provide(Qe,n),e.provide("FNotifyService",n)};const ye=t.defineComponent({name:"f-expression-textbox",props:Ze,setup(e,n){const a=t.inject(Qe),o=t.inject("FLoadingService"),i='<i class="f-icon f-icon-lookup"></i>',l=t.ref(e.modelValue),r=t.ref(e.entities),c=t.ref(e.variables),u=t.ref(),f=t.ref(e.validateMessage||""),v=t.ref("info");async function p(){const{value:y,message:s,messageType:h}=u.value.getExpressionValue();if(f.value=s,v.value=h,e.beforeSubmit&&typeof e.beforeSubmit=="function"){const m=await e.beforeSubmit({notifyService:a,expressionValue:y});if(typeof m=="boolean"&&!m)return!1;if(typeof m=="object"){const{canClose:T,message:w}=m;if(!T)return w&&(a==null||a.error({message:w})),!1}}if(n.emit("update:modelValue",y),l.value=y,e.onSubmitModal){const m={expression:y,message:s};e.showMessageType&&(m.messageType=v.value);const T=e.onSubmitModal(m);e.onExpressionChanged&&e.onExpressionChanged(T)}return!0}const b={title:e.dialogTitle||"表达式编辑器",width:e.dialogWidth||975,height:e.dialogHeight||600,fitContent:!1,minWidth:300,minHeight:200,showMaxButton:!0,resizeable:!0,draggable:!0,buttons:[{name:"reset",text:"清空",class:"btn btn-secondary mr-2",handle:y=>{var s;return(s=u.value)==null||s.resetExpression(),!1}},{name:"cancel",text:"取消",class:"btn btn-secondary",handle:y=>!0},{name:"accept",text:"确定",class:"btn btn-primary",handle:async y=>await p()}]};async function x(){if(e.beforeOpen)try{o==null||o.show();const y=await e.beforeOpen({notifyService:a});if(y)return r.value=y.entities||{},c.value=y.variables||{},f.value=y.message||"",v.value=y.messageType||"info",o==null||o.clearAll(),!0}catch{return a==null||a.error({message:"获取数据失败!"}),!1}finally{o==null||o.clearAll()}return!0}function F(){if(n.emit("update:modelValue",""),l.value="",e.onSubmitModal){const y=e.onSubmitModal({expression:"",message:""});e.onExpressionChanged&&e.onExpressionChanged(y)}}return t.watch(()=>e.modelValue,y=>{l.value=y}),()=>t.createVNode(Yn,{editable:!1,enableTitle:!0,modelValue:l.value,"onUpdate:modelValue":y=>l.value=y,disabled:e.disabled,readonly:e.readonly,inputType:"text",enableClear:e.enableClear,buttonContent:i,buttonBehavior:"Modal",modalOptions:b,beforeOpen:x,onClear:F},{default:()=>[t.createVNode("div",{class:"h-100 d-flex flex-column"},[t.createVNode(Ge,{ref:u,validateMessage:f.value,showMessageType:e.showMessageType,messageType:v.value,modelValue:l.value,"onUpdate:modelValue":y=>l.value=y,esprimaPath:e.esprimaPath,showMessage:e.showMessage,entities:r.value,variables:c.value,disabledFunctions:e.disabledFunctions,showDataPanel:e.showDataPanel,singleExpand:e.singleExpand,isServerSide:e.isServerSide},null)])]})}}),ta={install(e){e.component(ye.name,ye)},register(e,n,a,o){e["expression-editor"]=ye,n["expression-editor"]=Gn}};H.ExpressionEditor=Ge,H.FExpressionTextbox=ye,H.default=ta,H.expressionEditorProps=Te,Object.defineProperties(H,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});